:root{
  --bg:#EDF1F2; --surface:#FFFFFF; --surface-alt:#F4F7F7;
  --primary:#1C8F88; --primary-dark:#0F5C57; --primary-light:#34B6AE; --primary-contrast:#FFFFFF;
  --primary-wash:#E3F3F1;
  --secondary:#3B4750;
  --text:#0E1517; --text-secondary:#4B5C60; --text-disabled:#9FB0B2;
  --divider:#D6DEE0;
  --success:#1F8557; --warning:#A5721E; --error:#B24734; --info:#3A6EA0; --tertiary:#6B7C80;
  --radius:4px;
  --shadow: 0 1px 2px rgba(19,28,31,0.04), 0 16px 40px -20px rgba(19,28,31,0.28);
  --font-display:'Jost','-apple-system','Segoe UI',sans-serif;
  --font-body:-apple-system,'Segoe UI',Roboto,Helvetica,Arial,sans-serif;
  --font-mono:'Cascadia Code',Consolas,'SF Mono',monospace;
}
@font-face{
  font-family:'Jost'; font-style:normal; font-weight:400 700; font-display:swap;
  src:url('../fonts/Jost-latin.woff2') format('woff2');
  unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+2000-206F,U+2122,U+2212;
}
@font-face{
  font-family:'Cascadia Code'; font-style:normal; font-weight:400 600; font-display:swap;
  src:url('../fonts/CascadiaCode-latin.woff2') format('woff2');
  unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+2000-206F,U+2122,U+2212;
}

*{box-sizing:border-box;}
html{color-scheme:light;}
body{margin:0; background:var(--surface); color:var(--text); font-family:var(--font-body); font-size:1rem; line-height:1.6; -webkit-font-smoothing:antialiased;}
@media (prefers-reduced-motion: reduce){ *{animation:none !important; transition:none !important;} }
a{color:inherit;} img{max-width:100%; height:auto; display:block;}
.wrap{max-width:1120px; margin:0 auto; padding:0 28px;}
@media (max-width:760px){ .wrap{padding:0 20px;} }

h1,h2,h3{font-family:var(--font-display); font-weight:600; margin:0; text-wrap:balance;}
h1{font-size:clamp(3rem,6.4vw,4.75rem); line-height:1.02; letter-spacing:-0.02em;}
h2{font-size:clamp(2.1rem,4vw,2.9rem); line-height:1.1; letter-spacing:-0.015em;}
h3{font-size:1.2rem; line-height:1.35; font-weight:700; font-family:var(--font-body);}
p{margin:0;}

.eyebrow{font-family:var(--font-mono); font-size:0.72rem; font-weight:600; letter-spacing:0.14em; text-transform:uppercase; color:var(--primary-dark); margin-bottom:18px; display:block;}

.btn{display:inline-flex; align-items:center; justify-content:center; gap:8px; font-family:var(--font-body); font-size:1.02rem; font-weight:700; padding:16px 28px; border-radius:8px; border:1px solid transparent; cursor:pointer; text-decoration:none; transition:background .15s ease,border-color .15s ease,color .15s ease,transform .1s ease;}
.btn:active{transform:translateY(1px);}
.btn-primary{background:var(--primary); color:var(--primary-contrast); border-color:var(--primary); box-shadow:0 10px 24px -10px rgba(28,143,136,0.55);}
.btn-primary:hover{background:var(--primary-dark); border-color:var(--primary-dark);}
.btn-ghost{background:transparent; color:var(--text); border-color:var(--divider); font-weight:600;}
.btn-ghost:hover{border-color:var(--primary); color:var(--primary-dark);}
.btn:focus-visible{outline:2px solid var(--primary); outline-offset:2px;}

header.site{position:sticky; top:0; z-index:40; background:color-mix(in srgb, var(--surface) 92%, transparent); backdrop-filter:blur(10px); border-bottom:1px solid var(--divider);}
.nav{display:flex; align-items:center; justify-content:space-between; padding:16px 0;}
.brand{display:flex; align-items:center; gap:10px; font-family:var(--font-display); font-size:1.3rem; font-weight:500;}
.brand .mark{width:18px; height:18px; border-radius:4px; background:var(--primary); flex-shrink:0;}
.navlinks{display:flex; gap:28px; font-size:0.92rem; color:var(--text-secondary);}
.navlinks a{text-decoration:none;}
.navlinks a:hover{color:var(--text);}
.navcta{display:flex; gap:12px; align-items:center;}
.langtoggle{display:flex; border:1px solid var(--divider); border-radius:var(--radius); overflow:hidden; font-family:var(--font-mono); font-size:0.72rem; letter-spacing:0.06em;}
.langtoggle a{padding:7px 10px; color:var(--text-secondary); text-decoration:none; display:block;}
.langtoggle a[aria-current="true"]{background:var(--primary); color:var(--primary-contrast);}
@media (max-width:860px){ .navlinks{display:none;} }

.hero{padding:80px 0 96px;}
.hero-copy{max-width:640px; margin:0 auto; text-align:center;}
.hero h1{margin-bottom:24px;}
.hero .sub{font-size:1.2rem; color:var(--text-secondary); margin:0 auto 34px; max-width:52ch;}
.cta-row{display:flex; gap:14px; flex-wrap:wrap; justify-content:center; margin-bottom:16px;}
.proof-line{font-size:0.85rem; color:var(--text-disabled); text-align:center;}

.shot{margin:56px auto 0; max-width:1020px; border-radius:var(--radius); box-shadow:var(--shadow); border:1px solid var(--divider); overflow:hidden; background:var(--surface);}
.shot img{width:100%; height:auto; display:block;}
.shot-placeholder{aspect-ratio:16/10; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:12px; background:var(--surface-alt); color:var(--text-disabled); text-align:center; padding:24px;}
.shot-placeholder svg{opacity:0.45;}
.shot-placeholder .lbl{font-family:var(--font-mono); font-size:0.72rem; letter-spacing:0.08em; text-transform:uppercase; color:var(--text-secondary);}
.shot-placeholder .hint{font-size:0.8rem; max-width:30ch;}

.shot-tile{margin:0; max-width:300px; padding:20px; display:flex; align-items:center; justify-content:center; background:var(--surface-alt);}
.shot-tile img{width:100%; height:auto; border-radius:6px; box-shadow:var(--shadow); border:1px solid var(--divider);}

section{padding:96px 0;}
@media (max-width:760px){ section{padding:60px 0;} }
.band-alt{background:var(--bg);}

.section-head{max-width:56ch; margin:0 0 48px;}
.section-head.center{margin-left:auto; margin-right:auto; text-align:center;}
.section-head .lede{font-size:1.08rem; color:var(--text-secondary); margin-top:14px;}

.problem-list{max-width:760px;}
.problem-row{display:grid; grid-template-columns:40px 1fr; gap:20px; padding:26px 0; border-top:1px solid var(--divider);}
.problem-row:last-child{border-bottom:1px solid var(--divider);}
.problem-row .n{font-family:var(--font-mono); font-size:0.8rem; color:var(--text-disabled); padding-top:3px;}
.problem-row h3{margin-bottom:6px;}
.problem-row p{color:var(--text-secondary); font-size:0.98rem; max-width:60ch;}
.punchline{margin-top:44px; font-family:var(--font-display); font-weight:500; font-size:1.4rem; text-wrap:balance; max-width:34ch;}

.compare-wrap{overflow-x:auto; border:1px solid var(--divider); border-radius:var(--radius);}
table.compare{width:100%; border-collapse:collapse; min-width:600px; font-size:0.94rem;}
table.compare th, table.compare td{padding:16px 22px; text-align:left; border-bottom:1px solid var(--divider); vertical-align:top;}
table.compare thead th{font-family:var(--font-mono); font-size:0.7rem; text-transform:uppercase; letter-spacing:0.08em; color:var(--text-disabled); background:var(--surface-alt);}
table.compare thead th.hl{color:var(--primary);}
table.compare tbody th{font-weight:600; color:var(--text-secondary); width:24%;}
table.compare td.spread{color:var(--text-disabled);}
table.compare td.gov{color:var(--text); font-weight:500;}
table.compare tbody tr:last-child td, table.compare tbody tr:last-child th{border-bottom:none;}

.solution-grid{display:grid; grid-template-columns:0.95fr 1.05fr; gap:64px; align-items:center;}
@media (max-width:900px){ .solution-grid{grid-template-columns:1fr; gap:36px;} }
.cap-list{list-style:none; margin:22px 0 0; padding:0;}
.cap-list li{display:flex; gap:13px; padding:14px 0; border-top:1px solid var(--divider); font-size:0.98rem;}
.cap-list li:last-child{border-bottom:1px solid var(--divider);}
.cap-list .check{font-family:var(--font-mono); color:var(--primary); font-size:0.82rem; flex-shrink:0; padding-top:2px;}

.feat-list{display:flex; flex-direction:column;}
.feat-row{display:grid; grid-template-columns:280px 1fr; gap:40px; padding:32px 0; border-top:1px solid var(--divider);}
.feat-row:last-child{border-bottom:1px solid var(--divider);}
@media (max-width:760px){ .feat-row{grid-template-columns:1fr; gap:8px;} }
.feat-row .tag{font-family:var(--font-mono); font-size:0.68rem; letter-spacing:0.08em; color:var(--primary); display:block; margin-bottom:8px;}
.feat-row h3{font-size:1.15rem;}
.feat-row p{color:var(--text-secondary); font-size:0.98rem; max-width:56ch; margin-top:8px;}

.persona-list{border-top:1px solid var(--divider);}
.persona-row{display:grid; grid-template-columns:260px 1fr; gap:28px; padding:20px 0; border-bottom:1px solid var(--divider); align-items:baseline;}
@media (max-width:640px){ .persona-row{grid-template-columns:1fr; gap:4px;} }
.persona-row .role{font-weight:600; font-size:0.98rem;}
.persona-row p{font-family:var(--font-display); font-weight:500; font-size:1.08rem; color:var(--text-secondary); line-height:1.35;}

.stage-strip{display:flex; gap:0; overflow-x:auto; padding-bottom:8px; margin-top:8px;}
.stage-pill{flex:0 0 auto; display:flex; align-items:center; gap:8px; padding:9px 16px; border-radius:20px; font-size:0.82rem; font-weight:600; white-space:nowrap; margin-right:10px;}
.stage-pill .dot{width:7px; height:7px; border-radius:50%;}
.stage-detail{display:grid; grid-template-columns:repeat(3,1fr); gap:28px 40px; margin-top:40px;}
@media (max-width:820px){ .stage-detail{grid-template-columns:repeat(2,1fr);} }
@media (max-width:560px){ .stage-detail{grid-template-columns:1fr;} }
.stage-detail .s{font-size:0.9rem;}
.stage-detail .s b{display:block; font-weight:600; margin-bottom:4px;}
.stage-detail .s span{color:var(--text-secondary);}
.stage-close{color:var(--text-secondary); font-size:0.92rem; margin-top:36px; max-width:60ch;}

.partner{background:var(--secondary); color:#EEF2F1;}
.partner-inner{display:grid; grid-template-columns:1.05fr 1fr; gap:56px;}
@media (max-width:860px){ .partner-inner{grid-template-columns:1fr;} }
.partner .eyebrow{color:var(--primary-light);}
.partner h2{color:#F4F7F6;}
.partner .lede{color:rgba(238,242,241,0.82); margin-top:16px; font-size:1.05rem; max-width:48ch;}
.partner .stamp{display:inline-flex; align-items:center; gap:7px; font-family:var(--font-mono); font-size:0.68rem; letter-spacing:0.08em; text-transform:uppercase; border:1px solid rgba(238,242,241,0.35); padding:7px 13px; border-radius:20px; color:#EEF2F1; margin-top:26px;}
.partner-col h4{font-family:var(--font-mono); font-size:0.68rem; text-transform:uppercase; letter-spacing:0.08em; color:var(--primary-light); margin:0 0 14px;}
.partner-col ul{list-style:none; margin:0 0 30px; padding:0; display:flex; flex-direction:column; gap:10px;}
.partner-col li{font-size:0.95rem; color:rgba(238,242,241,0.88); padding-left:16px; position:relative;}
.partner-col li::before{content:"·"; position:absolute; left:0; color:var(--primary-light);}
.partner .btn-primary{margin-top:26px;}
.partner .btn-ghost{border-color:rgba(238,242,241,0.4); color:#EEF2F1;}
.partner .btn-ghost:hover{border-color:#EEF2F1;}

.faq-list{max-width:760px;}
details{border-bottom:1px solid var(--divider); padding:22px 0;}
details:first-child{border-top:1px solid var(--divider);}
summary{cursor:pointer; font-family:var(--font-display); font-weight:500; font-size:1.08rem; list-style:none; display:flex; justify-content:space-between; align-items:center; gap:18px;}
summary::-webkit-details-marker{display:none;}
summary::after{content:"+"; font-family:var(--font-mono); color:var(--primary); font-size:1.2rem; flex-shrink:0;}
details[open] summary::after{content:"–";}
details p{margin-top:14px; color:var(--text-secondary); font-size:0.96rem; max-width:64ch;}
summary:focus-visible{outline:2px solid var(--primary); outline-offset:4px;}

.final{text-align:center; padding:110px 0;}
.final h2{max-width:20ch; margin:0 auto 16px;}
.final .sub{color:var(--text-secondary); font-size:1.08rem; max-width:48ch; margin:0 auto 32px;}
.final .cta-row{justify-content:center;}

.contact-form{max-width:520px; margin:8px auto 0; text-align:left; background:var(--surface); border:1px solid var(--divider); border-radius:8px; padding:32px; box-shadow:var(--shadow);}
.form-row{display:grid; grid-template-columns:1fr 1fr; gap:16px;}
@media (max-width:560px){ .form-row{grid-template-columns:1fr;} }
.field{display:flex; flex-direction:column; gap:6px; margin-bottom:16px;}
.field label{font-size:0.82rem; font-weight:600; color:var(--text-secondary);}
.field input, .field textarea{font-family:var(--font-body); font-size:0.98rem; padding:11px 13px; border-radius:6px; border:1px solid var(--divider); background:var(--surface); color:var(--text); resize:vertical;}
.field input:focus, .field textarea:focus{outline:2px solid var(--primary); outline-offset:1px; border-color:var(--primary);}
.hp-field{position:absolute; left:-9999px; width:1px; height:1px; opacity:0;}
.form-submit{width:100%; margin-top:4px;}
.form-note{font-size:0.85rem; color:var(--text-disabled); text-align:center; margin-top:20px;}
.form-note a{color:var(--primary-dark); text-decoration:underline;}
.form-status{font-size:0.9rem; text-align:center; margin-top:12px; min-height:1.2em;}
.form-status.success{color:var(--success); font-weight:600;}
.form-status.error{color:var(--error); font-weight:600;}

footer{padding:36px 0; border-top:1px solid var(--divider);}
.foot-row{display:flex; justify-content:space-between; align-items:center; gap:16px; flex-wrap:wrap;}
.foot-brand{font-family:var(--font-mono); font-size:0.72rem; letter-spacing:0.06em; color:var(--text-disabled);}
.foot-links{display:flex; gap:22px; font-size:0.85rem; color:var(--text-secondary);}
.foot-links a{text-decoration:none;}
.foot-links a:hover{color:var(--text);}
