/* Right Hand NWA: site styles.
   Brand core (from the brand board, exact): navy #0B1F3B, blue #2F80ED, sky #E6F0FF, gray #E5E7EB.
   Color meaning: blue = Right Hand worked here (beam, scan, bracket). Amber = needs you. Green = done. Navy = you and the final say.
   Type: Plus Jakarta Sans (display 800, headings 700, UI 600, body 400/500). Geist Mono for amounts, dates, IDs and sample tags. */

@font-face{font-family:"Plus Jakarta Sans";src:url(fonts/plus-jakarta-sans-latin-var.woff2) format("woff2");font-weight:200 800;font-style:normal;font-display:swap}
@font-face{font-family:"Geist Mono";src:url(fonts/geist-mono-latin.woff2) format("woff2");font-weight:400 600;font-style:normal;font-display:swap}

:root{
  --rh-navy:#0B1F3B;--rh-blue:#2F80ED;--rh-sky:#E6F0FF;--rh-gray:#E5E7EB;
  --navy-50:#F4F7FB;--navy-100:#E5EAF2;--navy-200:#C8D2E0;--navy-300:#A7B5CA;--navy-400:#8497B1;--navy-500:#637998;--navy-600:#445C7E;--navy-700:#2B4365;--navy-800:#193051;--navy-850:#122846;--navy-900:#0B1F3B;--navy-950:#051326;
  --blue-50:#F2F7FF;--blue-100:#E6F0FF;--blue-200:#C4DDFF;--blue-300:#95C0FE;--blue-400:#5F9FFA;--blue-500:#2F80ED;--blue-600:#1B6BD1;--blue-700:#115AB5;--blue-800:#0F4386;--blue-900:#0E2F5D;
  --gray-50:#F7F8FA;--gray-100:#EEF0F4;--gray-200:#E5E7EB;--gray-300:#D1D4DA;--gray-400:#A0A5AC;--gray-500:#6F757E;--gray-600:#535862;--gray-700:#3A404B;
  --green-50:#E2F8EA;--green-300:#63D99B;--green-500:#15AD6E;--green-700:#14764A;--green-950:#0D362A;
  --amber-50:#FFF1DA;--amber-300:#FDC357;--amber-400:#FCB442;--amber-700:#985B1A;--amber-950:#402C12;
  --red-50:#FFEDEB;--red-300:#F58B84;--red-500:#DB4241;--red-700:#BA2B2E;
  --font-sans:"Plus Jakarta Sans",ui-sans-serif,system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;
  --font-mono:"Geist Mono",ui-monospace,"Cascadia Mono",Consolas,monospace;
  --fs-micro:.75rem;--fs-sm:.875rem;--fs-body:1.0625rem;--fs-lead:clamp(1.125rem,1.05rem + .35vw,1.3125rem);
  --fs-h3:clamp(1.25rem,1.1rem + .6vw,1.5rem);--fs-h2:clamp(2rem,1.45rem + 2.3vw,3.25rem);--fs-h1:clamp(2.6rem,1.6rem + 4.6vw,5rem);
  --container:1200px;--container-wide:1320px;--pad-x:clamp(1.125rem,.6rem + 2.4vw,2.5rem);--gutter:clamp(1rem,.6rem + 1.6vw,1.5rem);
  --section-y:clamp(4.5rem,3rem + 6vw,8.5rem);--section-head-gap:clamp(2rem,1.5rem + 2vw,3.5rem);
  --r-paper:4px;--r-xs:6px;--r-sm:8px;--r-btn:10px;--r-md:12px;--r-lg:16px;--r-xl:24px;
  --sh-1:0 1px 2px rgba(11,31,59,.06),0 1px 3px rgba(11,31,59,.05);
  --sh-2:0 2px 6px -1px rgba(11,31,59,.08),0 12px 24px -12px rgba(11,31,59,.18);
  --sh-3:0 4px 10px -2px rgba(11,31,59,.08),0 28px 56px -24px rgba(11,31,59,.32);
  --sh-d:inset 0 1px 0 rgba(230,240,255,.06),0 0 0 1px rgba(167,181,202,.10),0 28px 56px -28px rgba(0,0,0,.7);
  --glow:0 0 0 1px rgba(47,128,237,.55),0 10px 36px -10px rgba(47,128,237,.55);
  --bracket-w:3px;--bracket-off:10px;--bracket-trim:38%;
  --dur-press:120ms;--dur-hover:180ms;--dur-chip:240ms;--dur-reveal:320ms;--dur-move:420ms;--dur-draw:600ms;--dur-chart:700ms;--dur-tick:900ms;
  --ease-out:cubic-bezier(.23,1,.32,1);--ease-io:cubic-bezier(.65,0,.35,1);
  --ease-land:linear(0,.13 6%,.45 13%,.78 20%,.97 27%,1.04 34%,1.05 40%,1.03 48%,1.005 60%,.998 75%,1);
}
/* light scope (paper) */
:root,.paper{
  --bg:var(--navy-50);--surface:#FFFFFF;--surface-2:var(--gray-100);--surface-3:var(--gray-200);--wash:var(--blue-100);
  --ink:var(--navy-900);--ink-2:var(--navy-700);--soft:var(--navy-600);--mute:var(--gray-500);
  --line:var(--gray-200);--line-ui:var(--gray-500);
  --accent:var(--blue-500);--accent-ink:var(--blue-700);
  --btn-bg:var(--blue-600);--btn-bg-hover:var(--blue-700);--btn-ink:#FFFFFF;--focus:var(--blue-600);
  --ok:var(--green-700);--ok-wash:var(--green-50);--warn:var(--amber-700);--warn-wash:var(--amber-50);--err:var(--red-700);--err-wash:var(--red-50);
  --mark-box:var(--navy-900);--mark-bracket:var(--blue-500);
  color-scheme:light;
}
.paper{background:var(--surface);color:var(--ink)}
/* dark scope (instrument) */
.dark{
  --bg:var(--navy-950);--surface:var(--navy-900);--surface-2:var(--navy-850);--surface-3:var(--navy-800);--wash:rgba(47,128,237,.12);
  --ink:var(--navy-50);--ink-2:var(--navy-200);--soft:var(--navy-300);--mute:var(--navy-400);
  --line:rgba(167,181,202,.14);--line-ui:var(--navy-500);
  --accent:var(--blue-500);--accent-ink:var(--blue-400);
  --btn-bg:var(--blue-400);--btn-bg-hover:var(--blue-300);--btn-ink:var(--navy-950);--focus:var(--blue-400);
  --ok:var(--green-300);--ok-wash:var(--green-950);--warn:var(--amber-300);--warn-wash:var(--amber-950);--err:var(--red-300);--err-wash:#3B1517;
  --mark-box:#FFFFFF;--mark-bracket:var(--blue-500);
  background:var(--bg);color:var(--ink);color-scheme:dark;
}
.dark .paper{color-scheme:light}

*{box-sizing:border-box}
[hidden]{display:none!important}
html{scroll-padding-top:84px;-webkit-text-size-adjust:100%}
@media (prefers-reduced-motion:no-preference){html:not([data-motion=off]){scroll-behavior:smooth}}
body{margin:0;background:var(--bg);color:var(--ink);font:400 var(--fs-body)/1.6 var(--font-sans);-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}
::selection{background:var(--blue-200);color:var(--navy-950)}
a{color:var(--accent-ink);text-underline-offset:3px}
:focus-visible{outline:3px solid var(--focus);outline-offset:2px;border-radius:2px}
h1,h2,h3,h4{margin:0;text-wrap:balance}
h1{font-size:var(--fs-h1);font-weight:800;line-height:1.02;letter-spacing:-.035em}
h2{font-size:var(--fs-h2);font-weight:700;line-height:1.08;letter-spacing:-.025em}
h3{font-size:var(--fs-h3);font-weight:700;line-height:1.25;letter-spacing:-.01em}
h4{font-size:1.125rem;font-weight:600;line-height:1.3}
p{margin:0;text-wrap:pretty}
ul,ol{margin:0;padding:0}
.wrap{max-width:var(--container);margin:0 auto;padding:0 var(--pad-x)}
.wrap-wide{max-width:var(--container-wide);margin:0 auto;padding:0 var(--pad-x)}
.mono{font-family:var(--font-mono);font-variant-numeric:tabular-nums;letter-spacing:.02em}
.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.skip{position:absolute;left:12px;top:-80px;z-index:300;background:var(--btn-bg);color:var(--btn-ink);padding:10px 14px;border-radius:var(--r-sm);font-weight:600}
.skip:focus{top:12px}
.i{width:24px;height:24px;flex:none}
.eyebrow{font-size:var(--fs-micro);font-weight:600;letter-spacing:.18em;text-transform:uppercase;color:var(--accent-ink)}
.lead{font-size:var(--fs-lead);line-height:1.55;color:var(--soft);max-width:38em}
.sec-h{max-width:48rem;margin-bottom:var(--section-head-gap)}
.sec-h .lead{margin-top:18px}
.band{padding:var(--section-y) 0;position:relative}
.band.light{background:var(--bg)}
.band.white{background:var(--surface)}
.fine{font-size:var(--fs-sm);color:var(--soft)}
.tag{display:inline-flex;align-items:center;gap:6px;font:500 var(--fs-micro)/1 var(--font-mono);letter-spacing:.06em;text-transform:uppercase;color:var(--soft);padding:5px 8px;border:1px solid var(--line);border-radius:var(--r-xs)}

/* swoosh under one word per heading (from the brand board) */
.sw{position:relative;white-space:nowrap}
.sw::after{content:"";position:absolute;left:-2%;right:-2%;bottom:-.14em;height:.32em;background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 200 20' preserveAspectRatio='none'%3E%3Cpath d='M4 14 C 50 4, 140 2, 196 9' fill='none' stroke='%232F80ED' stroke-width='5' stroke-linecap='round'/%3E%3C/svg%3E") center/100% 100% no-repeat;transform-origin:left center}
.js .sw::after{transform:scaleX(0)}
.js .in .sw::after,.js .sw.in::after{transform:scaleX(1);transition:transform .6s var(--ease-out) .15s}

/* buttons */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:10px;min-height:48px;padding:14px 22px;font:600 1rem/1.2 var(--font-sans);color:var(--btn-ink);background:var(--btn-bg);border:1.5px solid var(--btn-bg);border-radius:var(--r-btn);cursor:pointer;text-decoration:none;white-space:nowrap;transition:background-color var(--dur-hover) ease,border-color var(--dur-hover) ease,transform var(--dur-press) var(--ease-out)}
.btn:hover{background:var(--btn-bg-hover);border-color:var(--btn-bg-hover)}
.btn:active{transform:scale(.98)}
.btn.ghost{background:transparent;color:var(--ink);border-color:var(--line-ui)}
.btn.ghost:hover{border-color:var(--ink);background:var(--wash)}
.btn.sm{min-height:40px;padding:9px 15px;font-size:.9375rem}
.btn[disabled]{opacity:.5;cursor:not-allowed}
.linkbtn{font:inherit;font-weight:600;color:var(--accent-ink);background:none;border:0;padding:4px 0;cursor:pointer;text-decoration:underline;text-underline-offset:4px}
@media (pointer:coarse){.btn.sm,.chip,.bar-btn{min-height:44px}}

/* logo */
.mark{width:28px;height:28px;flex:none;overflow:visible}
.mark .mk-br{fill:var(--mark-bracket)}
.mark .mk-bx,.mark .mk-ck{stroke:var(--mark-box)}
.lockup{display:inline-flex;align-items:center;gap:10px;text-decoration:none;color:var(--ink)}
.lockup b{font:800 1.25rem/1 var(--font-sans);letter-spacing:-.02em}
.lockup b span{color:var(--blue-400)}
.paper .lockup b span{color:var(--blue-700)}

/* offset bracket motif */
.bracket{position:relative}
.bracket::before{content:"";position:absolute;top:calc(var(--bracket-off)*-1);right:calc(var(--bracket-off)*-1);width:100%;height:100%;border:solid var(--accent);border-width:var(--bracket-w) var(--bracket-w) 0 0;border-top-right-radius:calc(var(--r-lg) + var(--bracket-off));clip-path:inset(0 0 0 var(--bracket-trim));pointer-events:none;z-index:0}

/* header */
.top{position:sticky;top:0;z-index:50;background:var(--navy-900);border-bottom:1px solid rgba(167,181,202,.14)}
.top .wrap,.top .wrap-wide{display:flex;align-items:center;gap:22px;height:66px}
.top .lockup{margin-right:auto}
.top nav ul{display:flex;gap:22px;list-style:none}
.top nav a{color:var(--navy-200);text-decoration:none;font-weight:500;font-size:.9375rem;padding:8px 0}
.top nav a:hover{color:#FFF}
.motion-btn{min-height:36px;padding:0 12px;font:600 .8125rem var(--font-sans);color:var(--navy-200);background:none;border:1px solid var(--navy-600);border-radius:var(--r-sm);cursor:pointer}
.motion-btn:hover{color:#FFF;border-color:var(--navy-300)}
.progress-rail{position:absolute;left:0;right:0;bottom:-1px;height:2px;background:var(--blue-500);transform-origin:left;transform:scaleX(0)}
@supports (animation-timeline:scroll()){@media (prefers-reduced-motion:no-preference){.progress-rail{animation:rail linear both;animation-timeline:scroll(root)}}}
@keyframes rail{to{transform:scaleX(1)}}
@media (max-width:1100px){.top nav{display:none}}
@media (max-width:560px){.motion-btn{display:none}.top .btn.sm{padding:9px 12px;font-size:.875rem}}
.mobile-bar{position:fixed;left:0;right:0;bottom:0;z-index:45;display:none;align-items:center;justify-content:space-between;gap:12px;padding:10px 16px calc(10px + env(safe-area-inset-bottom));background:var(--navy-900);border-top:1px solid rgba(167,181,202,.18);color:var(--navy-100);font-weight:600;font-size:.9375rem}
@media (max-width:760px){.mobile-bar.on{display:flex}}

/* hero */
.hero{position:relative;overflow:hidden;isolation:isolate;padding:clamp(2.5rem,1.5rem + 4vw,5.5rem) 0 clamp(4rem,3rem + 4vw,7rem);background:var(--navy-950)}
.hero::before{content:"";position:absolute;inset:0;z-index:-2;background:linear-gradient(180deg,var(--navy-900) 0%,var(--navy-950) 60%)}
.grid-48::after{content:"";position:absolute;inset:0;z-index:-1;pointer-events:none;
  background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='192' height='192'%3E%3Cpath d='M96.5 91v11M91 96.5h11' stroke='%23445C7E' stroke-opacity='.7'/%3E%3C/svg%3E"),linear-gradient(rgba(167,181,202,.07) 1px,transparent 1px),linear-gradient(90deg,rgba(167,181,202,.07) 1px,transparent 1px);
  background-size:192px 192px,48px 48px,48px 48px;background-position:-1px -1px;
  -webkit-mask-image:radial-gradient(120% 90% at 70% 35%,#000 30%,transparent 78%);mask-image:radial-gradient(120% 90% at 70% 35%,#000 30%,transparent 78%)}
.topo{position:absolute;left:-4%;bottom:-6%;width:46%;z-index:-1;opacity:.6;pointer-events:none}
.topo path{fill:none;stroke:var(--navy-800);stroke-width:1}
.hero-grid{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:clamp(2rem,1rem + 3vw,4.5rem);align-items:center}
.hero h1{margin-top:18px;max-width:12ch;color:#FFF}
.hero .lead{margin-top:22px;color:var(--navy-200);max-width:33em}
.trio{display:flex;flex-wrap:wrap;gap:8px;margin-top:22px;list-style:none}
.trio li{display:inline-flex;align-items:center;gap:8px;padding:7px 12px;border:1px solid rgba(167,181,202,.2);border-radius:var(--r-xs);font-weight:600;font-size:.9375rem;color:var(--navy-100);background:rgba(18,40,70,.6)}
.trio li b{color:var(--blue-400);font-weight:700}
.ctas{display:flex;flex-wrap:wrap;gap:12px;margin-top:28px}
.hero .micro{margin-top:14px;font-size:var(--fs-sm);color:var(--navy-300)}
.towns{margin-top:28px;font:500 var(--fs-micro)/1.7 var(--font-mono);letter-spacing:.12em;color:var(--navy-300)}
.hero-visual{position:relative}
.hero-glow{position:absolute;inset:8% 6% 10% 10%;z-index:-1;background:radial-gradient(closest-side,rgba(47,128,237,.16),transparent);pointer-events:none}
@media (max-width:1020px){.hero-grid{grid-template-columns:minmax(0,1fr)}.hero h1{max-width:14ch}}

/* demo window (shared by hero map and all demos) */
.win{position:relative;background:var(--navy-900);border-radius:var(--r-lg);box-shadow:var(--sh-d)}
.win-bar{display:flex;align-items:center;gap:12px;min-height:44px;padding:6px 10px 6px 16px;border-bottom:1px solid rgba(167,181,202,.12);font:500 .8125rem/1 var(--font-mono);color:var(--navy-300)}
.win-bar .path{margin-right:auto;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}

/* NWA map + hero queue */
.top{--mark-box:#FFFFFF}
footer{--mark-box:#FFFFFF}
.nwa{position:relative;padding:12px 14px 12px}
.nwa-layout{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,1fr);gap:14px;align-items:center}
.nwa-svg{display:block;width:100%;height:auto;aspect-ratio:560/520;color:var(--navy-300)}
.nwa-area{fill:rgba(47,128,237,.06);stroke:rgba(95,159,250,.32);stroke-width:1.2;stroke-dasharray:4 6}
.nwa-hwy-bg{fill:none;stroke:rgba(167,181,202,.14);stroke-width:10;stroke-linecap:round}
.nwa-hwy{fill:none;stroke:var(--blue-500);stroke-width:3.5;stroke-linecap:round;stroke-dasharray:100;stroke-dashoffset:0}
.nwa-hwy.west{stroke:var(--blue-400);stroke-width:2.5;opacity:.8}
.nwa.armed:not(.drawn) .nwa-hwy{stroke-dashoffset:100}
.nwa.drawn .nwa-hwy{transition:stroke-dashoffset .6s var(--ease-io) .5s}
.nwa.drawn .nwa-hwy.west{transition-delay:.9s}
.nwa-shield rect{fill:var(--navy-800);stroke:var(--blue-400);stroke-width:1.2}
.nwa-shield text{font:700 14px var(--font-mono);fill:#FFF}
.nwa-small{fill:var(--navy-400)}
.nwa-city text{font:600 21px var(--font-sans);fill:var(--navy-100)}
.nwa-dot{fill:var(--navy-900);stroke:#FFF;stroke-width:2.4;transition:fill .2s ease}
.nwa-pulse{fill:rgba(47,128,237,.4);opacity:0;transform-box:fill-box;transform-origin:center}
.nwa-city.live .nwa-dot{fill:var(--blue-500)}
.nwa-city.live .nwa-pulse{animation:pulse .9s var(--ease-out)}
@keyframes pulse{from{transform:scale(1);opacity:1}to{transform:scale(3.4);opacity:0}}
.nwa-city{transform-box:fill-box;transform-origin:center}
.nwa.armed:not(.drawn) .nwa-city{opacity:0;transform:scale(.6)}
.nwa.drawn .nwa-city{transition:opacity .24s ease,transform .24s var(--ease-land);transition-delay:calc(var(--i)*80ms + .55s)}
.queue{padding:12px;border-radius:var(--r-md);background:rgba(5,19,38,.55);border:1px solid rgba(167,181,202,.14)}
.q-head{display:flex;justify-content:space-between;gap:8px;margin-bottom:10px;font:600 .75rem/1 var(--font-mono);letter-spacing:.06em;text-transform:uppercase;color:var(--navy-300)}
.q-head .mono{letter-spacing:.02em;text-transform:none}
.q-list{list-style:none;display:grid;gap:7px}
.q-row{position:relative;overflow:hidden;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:1px 10px;align-items:center;padding:9px 11px;border:1px solid rgba(167,181,202,.14);border-radius:var(--r-sm);background:var(--navy-900)}
.q-city{grid-column:1;font:600 .6875rem/1.3 var(--font-mono);letter-spacing:.04em;color:var(--blue-300)}
.q-task{grid-column:1;font-size:.9375rem;color:#FFF}
.q-note{grid-column:1;font-size:.8125rem;line-height:1.35;color:var(--navy-300)}
.q-st,.q-approve{grid-column:2;grid-row:1/4}
.q-st{display:inline-flex;align-items:center;gap:5px;font:600 .75rem/1 var(--font-mono);color:var(--green-300);opacity:0;transition:opacity .2s ease}
.q-st .ck{width:15px;height:15px;color:var(--green-300)}
.q-row.ready .q-st{opacity:1}
.q-row.ready .q-st .ck path,.q-st.on .ck path{stroke-dashoffset:0;transition:stroke-dashoffset .32s var(--ease-out)}
.q-scan{position:absolute;inset:0;pointer-events:none;background:linear-gradient(90deg,transparent,rgba(47,128,237,.35),transparent);transform:translateX(-100%)}
.q-row.scan .q-scan{animation:scan .18s linear forwards}
.q-row.ready .q-scan{animation:none;opacity:0}
@keyframes scan{to{transform:translateX(100%)}}
.nwa.armed .q-row:not(.in){opacity:0;transform:translateY(8px)}
.nwa.armed .q-row.in{transition:opacity .3s var(--ease-out),transform .3s var(--ease-out)}
.q-ask{border-color:rgba(252,180,66,.6);background:rgba(64,44,18,.5)}
.q-ask .q-note{color:var(--amber-300);font-weight:600}
.q-ask .q-approve{--btn-bg:var(--blue-400);--btn-bg-hover:var(--blue-300);--btn-ink:var(--navy-950);min-height:40px;padding:8px 14px}
.q-ask.approved{border-color:rgba(99,217,155,.6);background:rgba(13,54,42,.55)}
.q-ask.approved .q-note{color:var(--green-300)}
.q-st.ok{opacity:1}
.map-cap{margin:10px 2px 0;font:500 var(--fs-micro)/1.5 var(--font-mono);letter-spacing:.04em;color:var(--navy-400)}
@media (max-width:640px){.nwa-layout{grid-template-columns:minmax(0,1fr)}.nwa-svg{max-width:420px;margin:0 auto}}

/* header mark builds once */
@media (prefers-reduced-motion:no-preference){
  .js-motion .top .mark .mk-br{animation:mk-br .45s var(--ease-out) both}
  .js-motion .top .mark .mk-bx{animation:mk-bx .4s var(--ease-out) both;transform-box:fill-box;transform-origin:center}
  .js-motion .top .mark .mk-ck{stroke-dasharray:1;animation:mk-ck .32s var(--ease-out) .2s both}
}
@keyframes mk-br{from{opacity:0;transform:translate(-12%,10%)}}
@keyframes mk-bx{from{transform:scale(.96)}}
@keyframes mk-ck{from{stroke-dashoffset:1}to{stroke-dashoffset:0}}

/* numbers band */
.stats{list-style:none;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(1rem,.5rem + 2vw,2rem)}
.stat{padding:22px 22px 18px;background:var(--surface);border:1px solid var(--line);border-radius:var(--r-md);box-shadow:var(--sh-1)}
.stat b{display:block;font:800 clamp(2.2rem,1.6rem + 2.4vw,3.4rem)/1 var(--font-sans);letter-spacing:-.035em;font-variant-numeric:tabular-nums;color:var(--ink)}
.stat p{margin-top:10px;font-size:1rem;color:var(--ink-2)}
.stat .src{margin-top:12px;font:500 var(--fs-micro)/1.5 var(--font-mono);color:var(--soft)}
.stat .src a{color:var(--soft)}
.aside-read{margin-top:28px;padding:18px 20px;border-left:3px solid var(--accent);background:var(--surface);border-radius:0 var(--r-md) var(--r-md) 0;color:var(--ink-2);max-width:52em}
.aside-read b{color:var(--ink)}
@media (max-width:860px){.stats{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:480px){.stats{grid-template-columns:minmax(0,1fr)}}

/* problem */
.pstats{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:28px}
.pstat{padding:28px;border-radius:var(--r-lg);background:var(--surface-2);box-shadow:var(--sh-d)}
.pstat b{display:block;font:800 clamp(3rem,2rem + 4vw,5rem)/1 var(--font-sans);letter-spacing:-.04em;color:#FFF}
.pstat p{margin-top:12px;font-size:1.0625rem;color:var(--navy-200);max-width:30em}
.pstat .src{margin-top:14px;font:500 var(--fs-micro)/1.5 var(--font-mono);color:var(--navy-300)}
.pstat .src a{color:var(--navy-300)}
.loop3{display:flex;flex-wrap:wrap;align-items:center;gap:10px;margin-top:36px;list-style:none}
.loop3 li{display:inline-flex;align-items:center;gap:10px;padding:10px 16px;border-radius:var(--r-md);border:1px solid rgba(167,181,202,.2);background:var(--surface);font-weight:700;color:#FFF}
.loop3 li.on{border-color:var(--blue-400);box-shadow:var(--glow)}
.loop3 svg.arr{width:28px;height:12px;stroke:var(--navy-400);fill:none;stroke-width:1.5}
.bridge{margin-top:24px;font-size:var(--fs-lead);color:var(--navy-200);max-width:44em}
@media (max-width:760px){.pstats{grid-template-columns:minmax(0,1fr)}}

/* how it works */
.steps{list-style:none;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:20px;counter-reset:s}
.step{position:relative;padding:22px 20px 20px;background:var(--surface);border:1px solid var(--line);border-radius:var(--r-md);counter-increment:s;transition:border-color .3s ease,box-shadow .3s ease}
.step::before{content:"0" counter(s);font:600 .8125rem var(--font-mono);color:var(--accent-ink)}
.step h3{margin-top:10px;font-size:1.2rem}
.step p{margin-top:8px;color:var(--soft);font-size:.9875rem}
.step .ck{position:absolute;top:18px;right:18px;width:22px;height:22px;fill:none;stroke:var(--green-700);stroke-width:2.2;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:1;stroke-dashoffset:1}
.step.done .ck{stroke-dashoffset:0;transition:stroke-dashoffset var(--dur-reveal) var(--ease-out)}
.step.active{border-color:var(--accent);box-shadow:var(--glow)}
.inner-loop{margin-top:12px;font:500 .8125rem var(--font-mono);color:var(--accent-ink)}
@media (max-width:960px){.steps{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:540px){.steps{grid-template-columns:minmax(0,1fr)}}

/* live demos */
.demos-band{background:var(--navy-950)}
.demo-index{display:flex;flex-wrap:wrap;gap:8px;list-style:none;margin-bottom:28px}
.demo-index a{display:inline-flex;gap:8px;align-items:center;padding:8px 12px;border:1px solid rgba(167,181,202,.2);border-radius:var(--r-sm);text-decoration:none;color:var(--navy-100);font-size:.9375rem;font-weight:600}
.demo-index a span{font:500 .8125rem var(--font-mono);color:var(--blue-400)}
.demo-index a:hover{border-color:var(--blue-400)}
.demo{position:relative;margin-top:clamp(3rem,2rem + 3vw,5rem);background:var(--navy-900);border-radius:var(--r-lg);box-shadow:var(--sh-d);scroll-margin-top:90px}
.demo-head{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:6px 24px;align-items:end;padding:22px 24px 0}
.demo-head .num{font:600 .8125rem var(--font-mono);color:var(--blue-400)}
.demo-head h3{grid-column:1;color:#FFF}
.demo-head p{grid-column:1;color:var(--navy-300);max-width:46em}
.proto-bar{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin:18px 24px 0;padding:8px 8px 8px 14px;border:1px solid rgba(167,181,202,.14);border-radius:var(--r-md);background:var(--navy-850)}
.proto-title{margin-right:auto;font:600 .875rem/1.2 var(--font-mono);color:var(--navy-200);letter-spacing:.02em}
.pill{display:inline-flex;align-items:center;gap:7px;font:600 .8125rem var(--font-mono);color:var(--blue-300);white-space:nowrap}
.pill i{width:7px;height:7px;border-radius:2px;background:currentColor}
.pill.playing i{animation:blink 1.6s steps(1,end) infinite}
.pill.turn{color:var(--amber-300)}
@keyframes blink{50%{opacity:.25}}
.bar-btn{min-height:34px;padding:0 12px;font:600 .8125rem/1 var(--font-mono);color:#FFF;background:none;border:1px solid var(--navy-500);border-radius:var(--r-sm);cursor:pointer;white-space:nowrap}
.bar-btn:hover{border-color:var(--navy-200)}
.stage{position:relative;margin:14px 24px 0;min-height:var(--stage-h,420px);border-radius:var(--r-md);overflow:hidden}
.stage-foot{display:flex;flex-wrap:wrap;justify-content:space-between;gap:8px 16px;margin:12px 24px 0;font:500 var(--fs-micro)/1.5 var(--font-mono);letter-spacing:.04em;color:var(--navy-400)}
.demo-cta{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:12px 20px;margin:20px 24px 0;padding:18px 0 24px;border-top:1px solid rgba(167,181,202,.12);color:var(--navy-100);font-weight:600;font-size:1.0625rem}
.demo-notes{margin:14px 24px 0;display:grid;gap:4px;font-size:var(--fs-sm);color:var(--navy-300);list-style:none}
@media (max-width:600px){.demo-head,.proto-bar,.stage,.stage-foot,.demo-cta,.demo-notes{margin-left:12px;margin-right:12px}.demo-head{padding:18px 12px 0;grid-template-columns:minmax(0,1fr)}}
/* cursors */
.cursor{position:absolute;left:0;top:0;z-index:20;pointer-events:none;opacity:0;display:flex;align-items:flex-start;gap:4px;transition:transform .7s var(--ease-io),opacity .2s ease}
.cursor svg{width:18px;height:18px;fill:var(--navy-900);stroke:#FFF;stroke-width:1.3;transition:transform .12s ease;transform-origin:2px 1px}
.cursor span{margin-top:14px;font:600 .6875rem/1 var(--font-mono);color:#FFF;background:var(--navy-900);padding:4px 7px;border-radius:4px;box-shadow:0 0 0 1px rgba(255,255,255,.25)}
.cursor-rh i{display:block;width:14px;height:14px;margin-top:2px;border:2.5px solid #FFF;border-radius:4px;box-shadow:3px -3px 0 0 var(--blue-500)}
.cursor-rh span{background:var(--blue-700)}
.cursor.down svg,.cursor.down i{transform:scale(.88)}
@media (prefers-reduced-motion:reduce){.cursor{display:none}}
html[data-motion=off] .cursor{display:none}

/* shared check draw */
.ck{fill:none;stroke:currentColor;stroke-width:2.4;stroke-linecap:round;stroke-linejoin:round}
.ck path{stroke-dasharray:1;stroke-dashoffset:1}
.ck.on path,.on > .ck path{stroke-dashoffset:0;transition:stroke-dashoffset var(--dur-reveal) var(--ease-out)}

/* chips (shared) */
.chip{display:inline-flex;align-items:center;gap:8px;min-height:36px;padding:7px 12px;font:600 .875rem/1.15 var(--font-sans);color:var(--ink);background:var(--surface);border:1.5px solid var(--line-ui);border-radius:var(--r-xs);cursor:pointer;transition:background-color var(--dur-hover) ease,border-color var(--dur-hover) ease}
.chip:hover{border-color:var(--ink)}
.chip[aria-pressed=true],.chip.on{background:var(--ink);color:var(--surface);border-color:var(--ink)}

/* services */
.who{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:26px}
.svc-lines{display:grid;gap:44px}
.svc-line h3{display:flex;align-items:center;gap:12px;margin-bottom:16px}
.svc-line h3 .tile{display:grid;place-items:center;width:44px;height:44px;border-radius:12px;background:var(--wash);color:var(--accent-ink)}
.svc-grid{list-style:none;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}
.svc{position:relative;background:var(--surface);border:1px solid var(--line);border-radius:var(--r-md);box-shadow:var(--sh-1);transition:border-color var(--dur-hover) ease,opacity .25s ease}
.svc.dim{opacity:.4}
.svc.hit{border-color:var(--accent)}
.svc > button{all:unset;box-sizing:border-box;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:6px 12px;width:100%;padding:16px 16px 14px;cursor:pointer;border-radius:var(--r-md)}
.svc > button:focus-visible{outline:3px solid var(--focus);outline-offset:2px}
.svc .nm{font-weight:700;font-size:1.0625rem;line-height:1.3;color:var(--ink)}
.svc .sum{grid-column:1/-1;font-size:.9375rem;color:var(--soft)}
.svc .plus{grid-row:1;grid-column:2;width:22px;height:22px;stroke:var(--soft);transition:transform var(--dur-hover) ease}
.svc[data-open] .plus{transform:rotate(45deg)}
.svc .kind{grid-column:1/-1;justify-self:start;margin-top:4px;font:600 .75rem/1 var(--font-mono);letter-spacing:.04em;padding:5px 7px;border-radius:5px;background:var(--surface-2);color:var(--ink-2)}
.svc .kind.ai{background:var(--wash);color:var(--accent-ink)}
.svc .more{display:grid;grid-template-rows:0fr;transition:grid-template-rows var(--dur-reveal) var(--ease-out)}
.svc[data-open] .more{grid-template-rows:1fr}
.svc .more > div{overflow:hidden;transition:visibility var(--dur-reveal)}
/* the catalog ships as static HTML: closed panels stay out of the tab order and the reading order until opened */
.js .svc:not([data-open]) .more > div{visibility:hidden}
/* without JavaScript the panels cannot open, so show them open and hide the controls that need a script */
html:not(.js) .svc .more{grid-template-rows:1fr}
html:not(.js) .svc .plus,html:not(.js) .svc .pick .chip,html:not(.js) .who{display:none}
.svc dl{margin:0 16px 14px;padding-top:12px;border-top:1px dashed var(--line);display:grid;gap:8px;font-size:.9rem}
.svc dt{font:600 .75rem var(--font-mono);letter-spacing:.05em;text-transform:uppercase;color:var(--soft)}
.svc dd{margin:2px 0 0;color:var(--ink-2)}
.svc .pick{margin:0 16px 16px}
.svc.picked{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent)}
.svc.pro{background:var(--surface-2)}
@media (max-width:980px){.svc-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:560px){.svc-grid{grid-template-columns:minmax(0,1fr)}}
.picker{position:sticky;bottom:16px;z-index:30;margin-top:28px;display:flex;flex-wrap:wrap;align-items:center;gap:10px 18px;padding:14px 16px;border-radius:var(--r-md);background:var(--navy-900);color:var(--navy-100);box-shadow:var(--sh-3)}
.picker b{color:#FFF}
.picker .list{flex:1;min-width:200px;font-size:.9375rem;color:var(--navy-200)}
.trust-line{margin-top:30px;padding:16px 18px;border-radius:var(--r-md);background:var(--surface-2);color:var(--ink-2);font-weight:600}
.svc-cta{margin-top:28px;display:flex;flex-wrap:wrap;align-items:center;gap:14px 20px;font-size:1.0625rem;font-weight:600}
.buy{margin-top:56px;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}
.buy > div{padding:20px;background:var(--surface);border:1px solid var(--line);border-radius:var(--r-md)}
.buy h4{margin-bottom:8px}
.buy p,.buy li{font-size:.9375rem;color:var(--soft)}
.buy ul{list-style:none;display:grid;gap:6px;margin-top:8px}
@media (max-width:860px){.buy{grid-template-columns:minmax(0,1fr)}}

/* offer + admin map */
.offer-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:clamp(2rem,1rem + 3vw,4rem);align-items:start}
.inc{list-style:none;display:grid;gap:14px;counter-reset:inc}
.inc li{display:grid;grid-template-columns:30px 1fr;gap:12px;color:var(--navy-100);font-size:1.0625rem}
.inc .ck{width:26px;height:26px;color:var(--green-300)}
.terms{margin-top:24px;padding:18px 20px;border:1px solid rgba(167,181,202,.2);border-radius:var(--r-md);color:var(--navy-100);background:rgba(18,40,70,.55)}
.terms b{color:#FFF}
.amap{position:relative;padding:26px 28px;background:#FFF;color:var(--navy-900);border-radius:var(--r-paper);box-shadow:var(--sh-3)}
.amap .t{font-weight:800;font-size:1.25rem}
.amap .s{margin-top:4px;font:500 .8125rem var(--font-mono);color:var(--navy-600)}
.amap ol{list-style:none;margin-top:18px;display:grid;gap:10px}
.amap ol li{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:4px 12px;align-items:center;padding:12px 14px;border:1px solid var(--gray-200);border-radius:var(--r-sm)}
.amap ol li b{font-size:1rem}
.amap ol li span{grid-column:1;font-size:.875rem;color:var(--navy-600)}
.amap .st{grid-column:2;grid-row:1/3;font:600 .75rem var(--font-mono);padding:5px 8px;border-radius:5px;background:var(--amber-50);color:var(--amber-700);white-space:nowrap}
.amap .st.ok{background:var(--green-50);color:var(--green-700)}
.amap .extra{margin-top:16px;display:grid;gap:6px;font-size:.9375rem;color:var(--navy-700)}
.amap .extra b{color:var(--navy-900)}
@media (max-width:900px){.offer-grid{grid-template-columns:minmax(0,1fr)}}

/* promises */
.prom-grid{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,1fr);gap:clamp(2rem,1rem + 3vw,4rem);align-items:start}
.prom{list-style:none;display:grid;gap:12px;counter-reset:p}
.prom li{display:grid;grid-template-columns:32px 1fr;gap:12px;align-items:start;padding:14px 16px;background:var(--surface);border:1px solid var(--line);border-radius:var(--r-md);font-size:1.0125rem}
.prom .ck{width:24px;height:24px;color:var(--green-700);margin-top:1px}
.dataCard{padding:24px;border-radius:var(--r-md);background:var(--surface);border:1px solid var(--line)}
.dataCard h3{display:flex;align-items:center;gap:10px}
.dataCard ul{list-style:none;margin-top:14px;display:grid;gap:9px;font-size:.9875rem;color:var(--ink-2)}
.dataCard li{display:grid;grid-template-columns:20px 1fr;gap:10px}
.dataCard li::before{content:"";width:8px;height:8px;margin-top:9px;border-radius:2px;background:var(--accent)}
.notwe{margin-top:16px;font-size:.9375rem;color:var(--soft)}
@media (max-width:900px){.prom-grid{grid-template-columns:minmax(0,1fr)}}

/* team */
.team{list-style:none;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px}
.team li{padding:20px;border-radius:var(--r-md);background:var(--surface-2);box-shadow:var(--sh-d)}
.team .ini{display:grid;place-items:center;width:56px;height:56px;border-radius:14px;background:var(--navy-800);color:#FFF;font-weight:800;font-size:1.125rem;position:relative}
.team .ini::after{content:"";position:absolute;top:-5px;right:-5px;width:100%;height:100%;border:solid var(--blue-500);border-width:2.5px 2.5px 0 0;border-top-right-radius:18px;clip-path:inset(0 0 0 38%)}
.team b{display:block;margin-top:14px;font-size:1.0625rem;color:#FFF}
.team span{display:block;margin-top:2px;font-size:.875rem;color:var(--navy-300)}
@media (max-width:860px){.team{grid-template-columns:repeat(2,minmax(0,1fr))}}

/* FAQ */
.faq{max-width:52rem;display:grid;gap:10px}
.faq details{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-md)}
.faq summary{display:flex;justify-content:space-between;align-items:center;gap:16px;padding:16px 18px;cursor:pointer;font-weight:700;font-size:1.0625rem;list-style:none}
.faq summary::-webkit-details-marker{display:none}
.faq summary svg{width:20px;height:20px;flex:none;stroke:var(--soft);transition:transform var(--dur-hover) ease}
.faq details[open] summary svg{transform:rotate(45deg)}
.faq details p{padding:0 18px 18px;color:var(--ink-2);max-width:46em}

/* close + composer */
.close-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.1fr);gap:clamp(2rem,1rem + 3vw,4rem);align-items:start}
.close-grid h2{color:#FFF}
.close-grid .lead{color:var(--navy-200)}
.promise-strip{margin-top:22px;display:flex;flex-wrap:wrap;gap:8px;list-style:none}
.promise-strip li{padding:7px 11px;border-radius:var(--r-xs);border:1px solid rgba(167,181,202,.22);font-weight:600;font-size:.9rem;color:var(--navy-100)}
.composer{position:relative;background:#FFF;color:var(--navy-900);border-radius:var(--r-md);box-shadow:var(--sh-3);padding:24px}
.composer h3{font-size:1.35rem}
.composer .sub{margin-top:6px;color:var(--navy-600);font-size:.9375rem}
.field{display:grid;gap:6px;margin-top:14px}
.field label,.field legend{font-weight:600;font-size:.9375rem;color:var(--navy-900);padding:0}
.field .opt{font-weight:400;color:var(--navy-600)}
.field fieldset{border:0;margin:0;padding:0;min-width:0}
.two{display:grid;grid-template-columns:1fr 1fr;gap:12px}
@media (max-width:520px){.two{grid-template-columns:1fr;gap:0}}
input,select,textarea{font:inherit;font-size:1rem;color:var(--navy-900);background:#FFF;border:1.5px solid var(--gray-500);border-radius:var(--r-sm);padding:11px 12px;width:100%;min-height:48px}
input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid var(--blue-600);outline-offset:1px;border-color:var(--navy-900)}
[aria-invalid=true]{border-color:var(--red-700)}
.err{font-size:.875rem;font-weight:600;color:var(--red-700)}
.chips{display:flex;flex-wrap:wrap;gap:8px;margin-top:4px}
.composer .chip{--ink:var(--navy-900);--surface:#FFF;--line-ui:var(--gray-500)}
.preview{margin-top:14px;padding:14px 16px;background:var(--navy-50);border:1px solid var(--gray-200);border-radius:var(--r-sm);font:400 .8125rem/1.6 var(--font-mono);white-space:pre-wrap;word-break:break-word;color:var(--navy-700);max-height:14em;overflow:auto}
.c-acts{display:flex;flex-wrap:wrap;gap:10px;margin-top:16px;align-items:center}
.composer .btn{--btn-bg:var(--blue-600);--btn-bg-hover:var(--blue-700);--btn-ink:#FFF}
.composer .btn.ghost{color:var(--navy-900);border-color:var(--gray-500)}
.c-status{margin-top:12px;font-size:.9375rem;font-weight:600;color:var(--green-700)}
.confirm{margin-top:16px;padding:16px;border-radius:var(--r-sm);background:var(--green-50);color:var(--navy-900)}
@media (max-width:900px){.close-grid{grid-template-columns:minmax(0,1fr)}}

/* footer */
footer{background:var(--navy-950);color:var(--navy-300);padding:48px 0 calc(48px + env(safe-area-inset-bottom));font-size:.9375rem}
footer .wrap{display:grid;gap:14px}
footer a{color:var(--navy-200)}
footer .row{display:flex;flex-wrap:wrap;gap:8px 22px;align-items:center}
@media (max-width:760px){footer{padding-bottom:96px}}

/* interest pop-up */
#interest{border:0;padding:0;background:transparent;width:min(520px,calc(100vw - 24px));max-height:calc(100dvh - 24px);overflow:auto;color:var(--navy-900)}
#interest::backdrop{background:rgba(5,19,38,.7)}
#interest[open]{animation:pop .28s var(--ease-out)}
@keyframes pop{from{opacity:0;transform:translateY(10px) scale(.98)}to{opacity:1;transform:none}}
.int-card{position:relative;background:#FFF;border-radius:var(--r-lg);padding:26px 24px 22px;border-top:4px solid var(--blue-500)}
.int-card h2{font-size:1.6rem;margin-top:12px}
.int-card .sub{margin-top:8px;color:var(--navy-600)}
.int-x{position:absolute;right:12px;top:12px;width:40px;height:40px;display:grid;place-items:center;border-radius:50%;border:1px solid var(--gray-300);background:#FFF;cursor:pointer;color:var(--navy-900)}
.int-x svg{width:18px;height:18px;stroke:currentColor;stroke-width:2;fill:none;stroke-linecap:round}
.int-card .chip{--ink:var(--navy-900);--surface:#FFF;--line-ui:var(--gray-500)}
.int-card label.chip input{position:absolute;opacity:0;pointer-events:none}
.int-card label.chip:has(input:checked){background:var(--navy-900);color:#FFF;border-color:var(--navy-900)}
.int-card label.chip:has(input:focus-visible){outline:3px solid var(--blue-600);outline-offset:2px}
.int-fine{margin-top:12px;font-size:.8125rem;color:var(--navy-600)}
.int-status{margin-top:10px;font-size:.9rem;font-weight:600;color:var(--red-700)}

/* present mode */
.presenting body{overflow:hidden}
#stage-present{position:fixed;inset:0;z-index:200;display:flex;flex-direction:column;overflow:auto;background:var(--navy-950);color:#FFF}
#stage-present .stop{flex:1;display:none;flex-direction:column;justify-content:center;width:min(1120px,calc(100% - 64px));margin:0 auto;padding:40px 0}
#stage-present .stop.on{display:flex}
#stage-present .big{font-size:clamp(2rem,4.2vw,4.2rem);font-weight:800;line-height:1.06;letter-spacing:-.035em;max-width:22ch}
#stage-present .sub{margin-top:20px;font-size:clamp(1.1rem,1.8vw,1.6rem);color:var(--navy-200);max-width:40em}
#stage-present .srcline{margin-top:24px;font:500 1rem var(--font-mono);color:var(--navy-400)}
.stage-nav{position:sticky;bottom:0;background:var(--navy-950);display:flex;align-items:center;gap:14px;padding:14px 24px;border-top:1px solid rgba(167,181,202,.14);font:500 .9rem var(--font-mono);color:var(--navy-300)}
.stage-nav .grow{flex:1}

/* reveals: content is visible without JS; only .js hides */
@media (prefers-reduced-motion:no-preference){
  .js-motion [data-reveal]{opacity:0;transform:translateY(16px)}
  .js-motion [data-reveal].in{opacity:1;transform:none;transition:opacity .42s var(--ease-out),transform .42s var(--ease-out);transition-delay:calc(var(--i,0)*60ms)}
}
html[data-motion=off] [data-reveal]{opacity:1!important;transform:none!important}
html[data-motion=off] *,html[data-motion=off] *::before,html[data-motion=off] *::after{animation-duration:1ms!important;animation-iteration-count:1!important;transition-duration:1ms!important}
@media (prefers-reduced-motion:reduce){*,*::before,*::after{animation-duration:1ms!important;animation-iteration-count:1!important;transition-duration:1ms!important;scroll-behavior:auto!important}}
@media (forced-colors:active){.chip[aria-pressed=true]{forced-color-adjust:none;background:Highlight;color:HighlightText}}
@media print{.top,.mobile-bar,#interest,.demos-band,.picker{display:none!important}body,.dark,.band,.hero{background:#FFF!important;color:#000!important}[data-reveal]{opacity:1!important;transform:none!important}}

/* ---------- page additions ---------- */
.step .ck,.inc .ck,.prom .ck{stroke-dasharray:1;stroke-dashoffset:0}
.js-motion .step .ck,.js-motion .inc .ck,.js-motion .prom .ck{stroke-dashoffset:1}
.js-motion .step.done .ck,.js-motion .inc .ck.on,.js-motion .prom .ck.on{stroke-dashoffset:0;transition:stroke-dashoffset var(--dur-reveal) var(--ease-out)}
.step .ck{color:var(--green-700)}
.loop3 .arrw{padding:0;border:0;background:none}
.loop3 li:not(.arrw){transition:border-color .25s ease,box-shadow .25s ease,color .25s ease}
.js-motion .loop3 li:not(.arrw):not(.lit){color:var(--navy-300)}
.svc-line h3 .line-note{margin-left:auto;font:500 .8125rem var(--font-mono);color:var(--soft)}
@media (max-width:640px){.svc-line h3{flex-wrap:wrap}.svc-line h3 .line-note{margin-left:56px;flex-basis:100%}}
.svc .plus{fill:none;stroke-width:2}
.svc.is-ai::after{content:"";position:absolute;top:-5px;right:-5px;width:18px;height:18px;border:solid var(--accent);border-width:2.5px 2.5px 0 0;border-top-right-radius:7px;pointer-events:none}
.svc .pick{display:flex;flex-wrap:wrap;align-items:center;gap:8px 14px}
.svc .pick .linkbtn{font-size:.9rem}
.stays{margin-top:44px}
.stays-card{padding:20px 22px;background:var(--surface-2);border-color:var(--gray-300)}
.stays-card h3{display:flex;align-items:center;gap:12px;margin-bottom:12px}
.stays-card ul{list-style:none;display:flex;flex-wrap:wrap;gap:8px;margin-bottom:12px}
.stays-card li{padding:6px 10px;border-radius:var(--r-xs);background:var(--surface);border:1px solid var(--line);font-weight:600;font-size:.9rem;color:var(--ink-2)}
.svc-line .tile,.stays-card .tile{display:grid;place-items:center;width:44px;height:44px;border-radius:12px;background:var(--wash);color:var(--accent-ink);flex:none}
.stays-card .tile{background:var(--surface);color:var(--soft)}
.buy{grid-template-columns:repeat(auto-fit,minmax(min(100%,230px),1fr))}
.buy-h{grid-column:1/-1;margin-bottom:4px}
.price-line{grid-column:1/-1;font-weight:600;color:var(--ink-2)}
.team-mail{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin-top:28px;color:var(--navy-200)}
.team-mail a{color:var(--blue-300)}
.close-alt{margin-top:22px;color:var(--navy-300)}
.close-alt a,.close-alt .linkbtn{color:var(--blue-300)}
.composer .ws-h{margin-top:16px;font-weight:600;color:var(--navy-900)}
.composer .preview{margin-top:6px}
.c-status.bad{color:var(--red-700)}
.pick-line{margin-top:14px;padding:10px 12px;border-radius:var(--r-sm);background:var(--blue-50);color:var(--navy-800)}
.composer .fine{color:var(--navy-700)}
footer .lockup b{color:#FFF;font-size:1.0625rem}
footer .linkbtn{color:var(--navy-200);font-weight:500;padding:0}
.int-card h2,.int-card .field label,.int-card .field legend{color:var(--navy-900)}
.int-card .btn{--btn-bg:var(--blue-600);--btn-bg-hover:var(--blue-700);--btn-ink:#FFF}
.int-card .btn.ghost{color:var(--navy-900);border-color:var(--gray-500);background:#FFF}
.amap .st{font-style:normal;transition:background-color .3s ease,color .3s ease}

/* source links: 24px tap height on phones */
.src a{display:inline-block;padding:4px 0;line-height:1.35}
.team-mail a,.close-alt a,footer a{display:inline-block;padding:3px 0}
