/* ============================================================
   NAVAAL — LIGHT DESIGN SYSTEM · /assets/tokens.css
   Single source of truth: tokens → base → components.
   Warm paper surfaces, ink text, one green action colour,
   "instrument" signature (ruler ticks, gauge arcs, dials,
   tabular numerals). Strict 8px spacing grid.
   ============================================================ */

/* metric-adjusted fallbacks — kill font-swap layout shift */
@font-face{font-family:"Inter-fb";src:local("Arial");size-adjust:107%;ascent-override:90.4%;descent-override:22.5%;line-gap-override:0%}
@font-face{font-family:"SG-fb";src:local("Arial");size-adjust:100.5%;ascent-override:98%;descent-override:29%;line-gap-override:0%}
@font-face{font-family:"JBM-fb";src:local("Courier New");size-adjust:104%;ascent-override:102%;descent-override:30%;line-gap-override:0%}

:root{
  /* surfaces */
  --page:#FAF9F7;
  --card:#FFFFFF;
  --wash:#F4F2EF;
  --footer:#1C1917;            /* the one dark surface */

  /* ink */
  --ink:#1C1917;
  --ink-2:#57534E;
  --ink-3:#A8A29E;             /* decorative / disabled / dark-surface captions only */
  --label:#6E675F;             /* readable micro-labels on light (AA 4.5 incl. wash) */

  /* borders */
  --border:#E7E5E4;
  --divider:#F0EEEB;

  /* accent */
  --accent:#0E9F7E;            /* accents, large display text, borders, underlines */
  --accent-fill:#0A7B61;       /* filled-button bg — deep enough for AA white text */
  --accent-hover:#08654F;      /* hover darkens from fill; AA with white */
  --accent-tint:#ECFDF5;
  --ring:rgba(14,159,126,.35);

  /* severity (Untitled-UI AA trios) */
  --pass:#067647;   --pass-bg:#ECFDF3;  --pass-border:#ABEFC6;
  --warn:#B54708;   --warn-bg:#FFFAEB;  --warn-border:#FEDF89;
  --fail:#B42318;   --fail-bg:#FEF3F2;  --fail-border:#FECDCA;

  /* shadows — exactly three */
  --sh-sm:0 1px 2px rgb(28 25 23/.05);
  --sh-md:0 4px 12px rgb(28 25 23/.07);
  --sh-lg:0 12px 32px rgb(28 25 23/.10);

  /* radii */
  --r-ctl:10px;
  --r-card:16px;
  --r-hero:24px;

  /* type */
  --display:"Space Grotesk","SG-fb",-apple-system,sans-serif;   /* H1/H2 only — brand DNA */
  --sans:"Inter","Inter-fb",-apple-system,"Segoe UI",system-ui,sans-serif;
  --mono:"JetBrains Mono","JBM-fb",ui-monospace,Menlo,monospace; /* micro-labels only */

  --maxw:1200px;
  --ease:cubic-bezier(.22,1,.36,1);

  /* ============================================================
     PLATFORM LAYER (Amendment A + BILBY-DESIGN-SPEC) — additive.
     Three accents, each with ONE job, never decorating:
       --accent  (green)  = live / healthy / success   (unchanged)
       --product (indigo) = product identity + interactive focus
       --amber            = highlights / deltas
     ============================================================ */
  --product:#4F5DFF;
  --product-grad:#7C5CFF;      /* gradient partner — the hero's ONE gradient only */
  --product-tint:#EEF0FF;
  --product-fill:#4351E8;      /* AA with white text */
  --product-ring:rgba(79,93,255,.4);
  --amber:#B45309;             /* AA on paper/card — delta arrows, highlights */
  --amber-bg:#FFFAEB;

  /* status quartet (reserved for STATUS, always icon+word; validated set — do not theme) */
  --st-good:#0ca30c;
  --st-warn:#fab219;
  --st-serious:#ec835a;
  --st-critical:#d03b3b;

  /* platform dark surfaces (dashboards/Bilby — designed, not inverted) */
  --dk-page:#0B0B10;
  --dk-card:#141419;
  --dk-ink:#F5F5F7;
  --dk-ink-2:#A6A6AF;
  --dk-border:rgba(245,245,247,.09);

  /* motion — 200–400ms, ease-out, once, never looping */
  --t-fast:200ms;
  --t-slow:400ms;
}

/* ---------- base ---------- */
*{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%;background:var(--page);font-variant-numeric:tabular-nums}
body{font-family:var(--sans);background:var(--page);color:var(--ink-2);font-size:16px;line-height:1.65;-webkit-font-smoothing:antialiased;overflow-x:clip;position:relative}
/* optional 2% static noise */
body::after{content:'';position:fixed;inset:0;z-index:0;pointer-events:none;opacity:.02;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='3'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E")}
body>*{position:relative;z-index:1}
body>header{z-index:100}
body>.mpanel{z-index:120}
a{color:inherit;text-decoration:none}
img,svg{display:block;max-width:100%}
.wrap{max-width:var(--maxw);margin:0 auto;padding:0 40px}
@media(max-width:680px){.wrap{padding:0 20px}}
::selection{background:var(--accent-tint);color:var(--ink)}

h1,h2{font-family:var(--display);font-weight:600;letter-spacing:-.02em;line-height:1.06;color:var(--ink)}
h3,h4{font-family:var(--sans);font-weight:650;letter-spacing:-.01em;color:var(--ink)}
h1{font-size:clamp(36px,4.4vw,56px)}
h2{font-size:clamp(30px,3.4vw,44px)}
h3{font-size:24px}
h4{font-size:18px}
p{color:var(--ink-2)}
strong{color:var(--ink);font-weight:600}
.lead{font-size:18px;line-height:1.6;color:var(--ink-2)}
.cap{font-size:13px;color:var(--label)}
.accent-word{color:var(--accent)}
/* the hero's ONE gradient (Amendment A) — an underline, used once per site, nowhere else */
.grad-word{color:var(--accent);background:linear-gradient(90deg,var(--accent),var(--product) 85%,var(--product-grad)) no-repeat left 100%/100% 3px;padding-bottom:6px}

/* focus */
/* interactive focus wears the product accent (Amendment A role split: green = success, indigo = interactive) */
a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,summary:focus-visible{outline:3px solid var(--product-ring);outline-offset:2px;border-radius:6px}
.sr{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}
.skip{position:absolute;left:-9999px;top:0;z-index:10000;background:var(--ink);color:#fff;font-size:13px;font-weight:600;padding:12px 18px;border-radius:0 0 8px 0}
.skip:focus{left:0}

/* ---------- signature: mono micro-labels ---------- */
.sl{font-family:var(--mono);font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--label);font-weight:500}
.sl b{color:var(--accent-fill);font-weight:600}

/* ---------- signature: ruler ticks (under H2s) ---------- */
.ruler{width:128px;height:10px;margin-top:16px;position:relative}
.ruler::before{content:'';position:absolute;left:0;right:0;bottom:0;height:6px;
  background:repeating-linear-gradient(90deg,var(--border) 0 1px,transparent 1px 8px)}
.ruler::after{content:'';position:absolute;left:0;right:0;bottom:0;height:10px;
  background:repeating-linear-gradient(90deg,#D6D3D1 0 1px,transparent 1px 40px)}

/* ---------- signature: gauge-arc card corner ---------- */
.gauge-corner{position:absolute;top:14px;right:14px;width:22px;height:22px;pointer-events:none}
.gauge-corner::before{content:'';position:absolute;inset:0;border:1.5px solid var(--border);border-radius:50%;
  -webkit-mask:conic-gradient(from 0deg,#000 0 90deg,transparent 90deg);mask:conic-gradient(from 0deg,#000 0 90deg,transparent 90deg)}
.gauge-corner::after{content:'';position:absolute;top:-1px;right:9.5px;width:3px;height:3px;border-radius:50%;background:var(--ink-3)}
.card:hover .gauge-corner::before{border-color:var(--accent)}
.card:hover .gauge-corner::after{background:var(--accent)}

/* ---------- nav (glass) ---------- */
.nav{position:fixed;top:0;left:0;right:0;z-index:100;background:rgba(250,249,247,.8);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border-bottom:1px solid var(--border)}
.nav .wrap{display:flex;align-items:center;justify-content:space-between;height:64px}
.brand{display:flex;align-items:center;gap:10px;font-family:var(--display);font-weight:600;font-size:17px;letter-spacing:-.01em;color:var(--ink)}
.brand .mk{width:26px;height:26px;flex-shrink:0}
.nav-links{display:flex;align-items:center;gap:4px}
.nav-links .lk{font-size:14px;font-weight:500;padding:8px 12px;border-radius:8px;color:var(--ink-2);transition:color .15s,background .15s;position:relative}
.nav-links .lk:hover{color:var(--ink);background:var(--wash)}
.nav-links .lk.active{color:var(--ink);background:none}
.nav-links .lk.active::after{content:'';position:absolute;left:12px;right:12px;bottom:2px;height:2px;border-radius:1px;background:var(--accent)}
.nav-cta{font-size:14px;font-weight:600;padding:10px 16px;border-radius:var(--r-ctl);margin-left:8px;background:var(--accent-fill);color:#fff !important;transition:background .15s,box-shadow .15s;box-shadow:var(--sh-sm)}
.nav-cta:hover{background:var(--accent-hover);box-shadow:var(--sh-md)}
.burger{display:none;width:44px;height:44px;border:1px solid var(--border);border-radius:var(--r-ctl);background:var(--card);color:var(--ink);align-items:center;justify-content:center;font-size:17px;cursor:pointer}
@media(max-width:860px){.nav-links .lk{display:none}.burger{display:flex}}
.mpanel{position:fixed;inset:0;z-index:99;background:rgba(250,249,247,.97);backdrop-filter:blur(12px);display:flex;flex-direction:column;justify-content:center;padding:40px;transform:translateX(100%);transition:transform .4s var(--ease);gap:4px}
.mpanel.open{transform:translateX(0)}
.mpanel a{font-family:var(--display);font-weight:600;font-size:clamp(26px,7vw,36px);color:var(--ink);padding:6px 0}
.mpanel a:hover{color:var(--accent-fill)}
.mclose{position:absolute;top:20px;right:20px;width:44px;height:44px;background:var(--card);border:1px solid var(--border);border-radius:var(--r-ctl);color:var(--ink);font-size:20px;cursor:pointer}
@media(prefers-reduced-motion:reduce){.mpanel{transition:none}}

/* ---------- buttons ---------- */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;font-family:var(--sans);font-weight:600;font-size:15px;min-height:44px;padding:0 24px;border-radius:var(--r-ctl);border:none;cursor:pointer;transition:background .15s,box-shadow .15s,border-color .15s,transform .1s;text-decoration:none}
.btn:active{transform:scale(.98)}
.btn-primary{background:var(--accent-fill);color:#fff;box-shadow:var(--sh-sm)}
.btn-primary:hover{background:var(--accent-hover);box-shadow:var(--sh-md)}
.btn-secondary{background:var(--card);color:var(--ink);border:1px solid var(--border);box-shadow:var(--sh-sm)}
.btn-secondary:hover{border-color:#D6D3D1;box-shadow:var(--sh-md)}
.btn-quiet{background:none;color:var(--accent-fill);padding:0 4px;min-height:44px}
.btn-quiet:hover{color:var(--accent-hover);text-decoration:underline;text-underline-offset:4px}
.btn .arr{transition:transform .15s var(--ease)}
.btn:hover .arr{transform:translateX(3px)}
@media(prefers-reduced-motion:reduce){.btn:active{transform:none}.btn .arr{transition:none}}

/* ---------- cards ---------- */
.card{position:relative;background:var(--card);border:1px solid var(--border);border-radius:var(--r-card);box-shadow:var(--sh-sm);padding:32px;transition:box-shadow .15s var(--ease),transform .15s var(--ease)}
a.card:hover,.card.hoverable:hover{box-shadow:var(--sh-md);transform:translateY(-2px)}
@media(prefers-reduced-motion:reduce){a.card:hover,.card.hoverable:hover{transform:none}}
.card h3{font-size:20px;margin-bottom:8px}
.card p{font-size:15px;line-height:1.6}

/* ---------- forms ---------- */
.f-label{display:block;font-size:13px;font-weight:600;color:var(--ink);margin-bottom:8px}
.f-input{width:100%;height:52px;background:var(--card);border:1px solid var(--border);border-radius:var(--r-ctl);padding:0 16px;color:var(--ink);font-family:var(--sans);font-size:16px;outline:none;transition:border-color .15s,box-shadow .15s}
.f-input::placeholder{color:var(--ink-3)}
.f-input:focus{border-color:var(--accent);box-shadow:0 0 0 4px var(--ring);outline:none}
textarea.f-input{height:auto;min-height:120px;padding:14px 16px;resize:vertical}

/* ---------- chips ---------- */
.chip{display:inline-flex;align-items:center;gap:6px;background:var(--wash);color:var(--ink-2);font-size:13px;font-weight:500;padding:6px 12px;border-radius:8px}

/* ---------- severity pills ---------- */
.pill{display:inline-flex;align-items:center;gap:6px;font-size:11px;font-weight:700;letter-spacing:.06em;padding:4px 10px;border-radius:999px;border:1px solid}
.pill-pass{color:var(--pass);background:var(--pass-bg);border-color:var(--pass-border)}
.pill-warn{color:var(--warn);background:var(--warn-bg);border-color:var(--warn-border)}
.pill-fail{color:var(--fail);background:var(--fail-bg);border-color:var(--fail-border)}

/* ---------- sections ---------- */
.sec{padding:96px 0}
.sec-sm{padding:64px 0}
@media(max-width:680px){.sec{padding:64px 0}.sec-sm{padding:48px 0}}
.sec-head{max-width:720px;margin-bottom:48px}
.sec-head .lead{margin-top:16px}
.sec-head .sl{margin-bottom:12px;display:block}
.on-wash{background:var(--wash)}

/* hero mesh — static, never behind body text */
.hero-mesh{position:absolute;inset:0;pointer-events:none;z-index:-1;
  background:radial-gradient(52% 62% at 82% 0%,var(--accent-tint) 0%,rgba(236,253,245,.4) 42%,transparent 70%)}

/* ---------- fade-up (once, IO-driven via .fx/.fx.in) ---------- */
.fx{opacity:0;transform:translateY(12px);transition:opacity .4s var(--ease),transform .4s var(--ease)}
.fx.in{opacity:1;transform:none}
.fx-d1{transition-delay:.06s}.fx-d2{transition-delay:.12s}.fx-d3{transition-delay:.18s}
@media(prefers-reduced-motion:reduce){.fx{opacity:1;transform:none;transition:none}}

/* ---------- stat band ---------- */
.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:16px}
@media(max-width:900px){.stats{grid-template-columns:repeat(2,1fr)}}
.stat{background:var(--card);border:1px solid var(--border);border-radius:var(--r-card);box-shadow:var(--sh-sm);padding:24px;position:relative}
.stat .num{font-family:var(--display);font-weight:600;font-size:clamp(32px,3.6vw,44px);line-height:1.1;color:var(--ink);font-variant-numeric:tabular-nums}
.stat .num em{font-style:normal;color:var(--accent-fill)}
.stat .lbl{font-size:13px;color:var(--label);margin-top:8px;line-height:1.45}

/* ---------- step rows ---------- */
.steps{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}
@media(max-width:860px){.steps{grid-template-columns:1fr}}
.step{background:var(--card);border:1px solid var(--border);border-radius:var(--r-card);box-shadow:var(--sh-sm);padding:28px}
.step .sn{font-family:var(--mono);font-size:11px;letter-spacing:.12em;color:var(--accent-fill);font-weight:600;margin-bottom:12px}
.step h3{font-size:18px;margin-bottom:8px}
.step p{font-size:14.5px;line-height:1.6}

/* ---------- FAQ ---------- */
.faq{display:flex;flex-direction:column;gap:12px}
.faq details{background:var(--card);border:1px solid var(--border);border-radius:var(--r-card);box-shadow:var(--sh-sm);overflow:hidden;transition:box-shadow .15s}
.faq details[open]{box-shadow:var(--sh-md)}
.faq summary{list-style:none;cursor:pointer;padding:20px 24px;font-weight:600;font-size:16px;color:var(--ink);display:flex;justify-content:space-between;align-items:center;gap:16px;min-height:44px}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:'+';color:var(--accent-fill);font-size:20px;font-weight:400;flex-shrink:0;transition:transform .2s}
.faq details[open] summary::after{transform:rotate(45deg)}
.faq .fa{padding:0 24px 20px;color:var(--ink-2);font-size:15px;line-height:1.65}
.faq .fa a{color:var(--accent-fill);text-decoration:underline;text-underline-offset:3px}
@media(prefers-reduced-motion:reduce){.faq summary::after{transition:none}}

/* ---------- proof strip ---------- */
.proof{font-size:13px;color:var(--label);text-align:center}
.proof a{color:var(--accent-fill);text-decoration:underline;text-underline-offset:3px}

/* ---------- CTA panel ---------- */
.cta-panel{background:var(--wash);border:1px solid var(--border);border-radius:var(--r-hero);padding:clamp(40px,6vw,72px) 40px;text-align:center}
.cta-panel h2{margin-bottom:16px}
.cta-panel .lead{max-width:520px;margin:0 auto 32px}

/* ---------- email capture card ---------- */
.emailcap{background:var(--card);border:1px solid var(--border);border-radius:var(--r-card);box-shadow:var(--sh-sm);padding:32px}
.emailcap .row{display:flex;gap:12px;flex-wrap:wrap;margin-top:16px}
.emailcap .row .f-input{flex:1;min-width:220px;width:auto}
.emailcap .hp,.hp{position:absolute;left:-9999px;width:1px;height:1px;opacity:0}
.emailcap .note{font-size:13px;margin-top:12px;min-height:18px}
.emailcap .note.ok{color:var(--pass)}
.emailcap .note.err{color:var(--fail)}

/* ---------- footer (the one dark surface) ---------- */
.footer{background:var(--footer);color:#D6D3D1;padding:64px 0 40px;margin-top:96px}
.footer a{color:#D6D3D1;transition:color .15s}
.footer a:hover{color:#fff}
.footer-top{display:grid;grid-template-columns:1.5fr 1fr 1fr 1fr 1fr 1fr;gap:40px;margin-bottom:48px}
@media(max-width:1000px){.footer-top{grid-template-columns:1fr 1fr 1fr}}
@media(max-width:640px){.footer-top{grid-template-columns:1fr 1fr;gap:32px 20px}}
.footer-brand .brand{color:#fff}
.footer-brand .fb{font-family:var(--display);font-weight:600;font-size:22px;color:#fff;margin:16px 0 8px}
.footer-brand p{color:#A8A29E;font-size:14px;max-width:280px;line-height:1.6}
.footer-col h3{font-family:var(--mono);font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:#A8A29E;font-weight:500;margin-bottom:16px}
.footer-col a{display:block;font-size:14px;padding:6px 0}
.footer-bot{display:flex;justify-content:space-between;align-items:center;padding-top:24px;border-top:1px solid rgba(255,255,255,.12);flex-wrap:wrap;gap:12px}
.footer-bot span{font-family:var(--mono);font-size:11px;letter-spacing:.06em;color:#A8A29E}

/* ---------- misc ---------- */
.crumb{font-size:13px;color:var(--label);display:flex;flex-wrap:wrap;gap:8px;align-items:center}
.crumb a{color:var(--ink-2)}
.crumb a:hover{color:var(--accent-fill)}
.crumb .sep{color:var(--border)}
.center{text-align:center}

/* ============================================================
   LEGACY CONTENT-CLASS COMPATIBILITY (light renderings)
   Existing page markup keeps its classnames and inline var()
   references; everything below renders them in the light system.
   New pages use the canonical classes above this line.
   ============================================================ */

/* legacy token aliases — old names resolve to light values */
:root{
  --void:var(--page);--void2:var(--wash);--panel:var(--card);--panel2:var(--wash);
  --dim:var(--ink-2);--muted:var(--label);--faint:var(--label);
  --cyan:var(--accent-fill);--cyan-br:var(--accent);--iris:var(--accent-fill);--blue:var(--accent-fill);
  --line:var(--border);--line-strong:#D6D3D1;--glow:rgba(14,159,126,.18);--glow-iris:rgba(14,159,126,.18);
  --text:var(--ink);--accent-dim:var(--accent-tint);
  --warn-dim:var(--warn-bg);--loss:var(--fail);--loss-dim:var(--fail-bg);
  --radius:16px;--ease2:var(--ease);
}

/* labels */
.hud,.eyebrow{font-family:var(--mono);font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--label);font-weight:500;display:inline-flex;align-items:center;gap:10px}
.hud::before{content:'';width:24px;height:1px;background:var(--accent)}
.hud b,.eyebrow b{color:var(--accent-fill);font-weight:600}

/* kill gradient text + dark reveal motion (static in light) */
.grad{background:none;-webkit-background-clip:initial;background-clip:initial;-webkit-text-fill-color:currentColor;color:inherit;animation:none}
.rev{opacity:1;transform:none}

/* interior page hero */
.page-hero{position:relative;padding:152px 0 56px;overflow:hidden;text-align:left}
.page-hero::before{content:'';position:absolute;inset:0;pointer-events:none;background:radial-gradient(52% 62% at 82% 0%,var(--accent-tint) 0%,rgba(236,253,245,.4) 42%,transparent 70%)}
.page-hero>.wrap{position:relative}
.page-hero .hero-grid,.hero-veil,.cta-glow{display:none}
.page-hero h1{font-size:clamp(34px,4.2vw,56px)}
.page-hero .lead{max-width:640px;margin-top:20px}
.hero-actions{display:flex;gap:12px;flex-wrap:wrap;margin-top:32px}

/* legacy buttons → light equivalents */
.btn-cyan,.btn-primary{background:var(--accent-fill);color:#fff;box-shadow:var(--sh-sm)}
.btn-cyan:hover,.btn-primary:hover{background:var(--accent-hover);box-shadow:var(--sh-md)}
.btn-ghost,.btn-iris{background:var(--card);color:var(--ink);border:1px solid var(--border);box-shadow:var(--sh-sm)}
.btn-ghost:hover,.btn-iris:hover{border-color:#D6D3D1;box-shadow:var(--sh-md)}

/* cards vocabulary */
.card .ix,.card .tag{font-family:var(--mono);font-size:11px;letter-spacing:.12em;color:var(--accent-fill);font-weight:600;margin-bottom:16px;text-transform:uppercase}
.card h3{font-size:20px}
.tags,.ptags{display:flex;flex-wrap:wrap;gap:6px;margin-top:16px}
.tags span,.ptags span{display:inline-flex;align-items:center;background:var(--wash);color:var(--ink-2);font-size:13px;font-weight:500;padding:6px 12px;border-radius:8px;border:none}
.corner{display:none}
.grid3{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}
@media(max-width:900px){.grid3{grid-template-columns:1fr !important}}
a.card{text-decoration:none}
.card p{color:var(--ink-2)}

/* split / rlist / ritem */
.split{display:grid;grid-template-columns:1fr 1fr;gap:64px;align-items:center}
@media(max-width:900px){.split{grid-template-columns:1fr;gap:40px}}
.rlist{background:var(--card);border:1px solid var(--border);border-radius:var(--r-card);box-shadow:var(--sh-sm);overflow:hidden}
.ritem{padding:24px;border-top:1px solid var(--divider);display:grid;grid-template-columns:44px 1fr;gap:16px}
.ritem:first-child{border-top:none}
.ritem .rn{width:32px;height:32px;border-radius:50%;background:var(--accent-tint);color:var(--accent-fill);font-family:var(--mono);font-size:12px;font-weight:600;display:flex;align-items:center;justify-content:center}
.ritem h3{font-size:17px;margin-bottom:4px}
.ritem h4{font-size:16px;margin-bottom:2px}
.ritem p{font-size:14px;line-height:1.55;color:var(--ink-2)}
.split-visual{aspect-ratio:1;border-radius:var(--r-card);border:1px solid var(--border);background:var(--card);box-shadow:var(--sh-sm);position:relative;overflow:hidden}

/* gauge step markers (services How-we-work) */
.step .sn{display:inline-flex;align-items:center;gap:8px}
.step .sn::before{content:'';width:14px;height:14px;border:1.5px solid var(--accent);border-radius:50%;-webkit-mask:conic-gradient(from 0deg,#000 0 270deg,transparent 270deg);mask:conic-gradient(from 0deg,#000 0 270deg,transparent 270deg);flex:none}
.step h4{font-size:18px;margin-bottom:8px}

/* legacy CTA panel */
.cta{position:relative;background:var(--wash);border:1px solid var(--border);border-radius:var(--r-hero);padding:clamp(40px,6vw,72px) 40px;text-align:center;overflow:hidden;backdrop-filter:none}
.cta h2{margin-bottom:8px}
.cta .lead{margin-left:auto;margin-right:auto}

/* legacy forms (contact) */
.field{margin-bottom:20px}
.field label{display:block;font-size:13px;font-weight:600;color:var(--ink);margin-bottom:8px}
.field input,.field select,.field textarea{width:100%;background:var(--card);border:1px solid var(--border);border-radius:var(--r-ctl);padding:0 16px;height:52px;color:var(--ink);font-family:var(--sans);font-size:16px;outline:none;transition:border-color .15s,box-shadow .15s}
.field textarea{height:auto;min-height:120px;padding:14px 16px;resize:vertical}
.field input:focus,.field select:focus,.field textarea:focus{border-color:var(--accent);box-shadow:0 0 0 4px var(--ring)}

/* tiers (pricing) */
.tiers{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}
@media(max-width:980px){.tiers{grid-template-columns:repeat(2,1fr)}}
@media(max-width:520px){.tiers{grid-template-columns:1fr}}
.tier{background:var(--card);border:1px solid var(--border);border-radius:var(--r-card);box-shadow:var(--sh-sm);padding:28px;transition:box-shadow .15s var(--ease),transform .15s var(--ease)}
.tier:hover{box-shadow:var(--sh-md);transform:translateY(-2px)}
.tier.feat{border-color:var(--accent)}
.tier .tn{font-family:var(--mono);font-size:11px;letter-spacing:.1em;color:var(--label);text-transform:uppercase;font-weight:500}
.tier .tp{font-family:var(--display);font-weight:600;font-size:40px;margin:12px 0 4px;color:var(--ink);font-variant-numeric:tabular-nums}
.tier .tp span{font-size:14px;color:var(--label)}
.tier .tp .cyc{display:block;font-family:var(--mono);font-size:12px;color:var(--label);margin-top:6px}
.tier .tbadge{font-family:var(--mono);font-size:10px;letter-spacing:.1em;text-transform:uppercase;color:#fff;background:var(--accent-fill);border-radius:5px;padding:3px 8px;display:inline-block;margin-bottom:6px}
.tier ul{list-style:none;margin-top:18px;display:flex;flex-direction:column;gap:9px}
.tier li{font-size:13.5px;color:var(--ink-2);padding-left:18px;position:relative}
.tier li::before{content:'✓';position:absolute;left:0;color:var(--pass);font-weight:600}

/* article / prose */
.reading{max-width:680px}
.reading.wide{max-width:760px}
.prose{color:var(--ink-2);font-size:16px;line-height:1.7}
.prose>*+*{margin-top:20px}
.prose h2{margin-top:48px}
.prose h3{font-size:22px;margin-top:36px}
.prose h2+p,.prose h3+p{margin-top:14px}
.prose a{color:var(--accent-fill);text-decoration:underline;text-underline-offset:3px}
.prose ul,.prose ol{margin-left:4px;padding-left:22px;display:flex;flex-direction:column;gap:10px}
.prose ul li{list-style:none;position:relative;padding-left:20px}
.prose ul li::before{content:'–';position:absolute;left:0;color:var(--accent-fill);font-weight:600}
.prose ol{list-style:none;counter-reset:s;padding-left:0}
.prose ol>li{counter-increment:s;position:relative;padding-left:44px;min-height:30px}
.prose ol>li::before{content:counter(s);position:absolute;left:0;top:-2px;width:30px;height:30px;border:1px solid var(--accent);border-radius:8px;display:flex;align-items:center;justify-content:center;font-family:var(--mono);font-size:13px;color:var(--accent-fill)}
.prose blockquote{border-left:2px solid var(--accent);padding:6px 0 6px 22px;color:var(--ink);font-size:18px}
.prose figure{margin:32px 0}
.prose figcaption{font-size:12.5px;color:var(--label);margin-top:10px;text-align:center}
code{font-family:var(--mono);font-size:.85em;background:var(--wash);border:1px solid var(--border);border-radius:5px;padding:1px 6px;color:var(--ink)}
.prose .answer{background:var(--card);border:1px solid var(--accent);border-radius:14px;padding:24px 28px;font-size:17px;color:var(--ink);line-height:1.65;position:relative;box-shadow:var(--sh-sm)}
.prose .answer::before{content:'DIRECT ANSWER';position:absolute;top:-9px;left:20px;background:var(--card);padding:0 10px;font-family:var(--mono);font-size:10px;letter-spacing:.14em;color:var(--accent-fill);font-weight:600}

/* data table */
.tbl-wrap{overflow-x:auto;border:1px solid var(--border);border-radius:14px;background:var(--card);box-shadow:var(--sh-sm)}
table.data{width:100%;border-collapse:collapse;font-size:14.5px;min-width:520px}
table.data th,table.data td{text-align:left;padding:14px 18px;border-bottom:1px solid var(--divider);vertical-align:top;color:var(--ink-2)}
table.data thead th{font-family:var(--mono);font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:var(--label);background:var(--wash);font-weight:500}
table.data tbody tr:last-child td{border-bottom:none}
table.data td strong{color:var(--ink)}

/* toc / callout / article meta */
.toc{border:1px solid var(--border);border-radius:14px;background:var(--card);box-shadow:var(--sh-sm);padding:22px 24px}
.toc h3,.toc h5{font-family:var(--mono);font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--label);margin-bottom:14px;font-weight:500}
.toc a{display:block;color:var(--ink-2);font-size:14px;padding:6px 0}
.toc a:hover{color:var(--accent-fill)}
.callout{background:var(--accent-tint);border:1px solid rgba(14,159,126,.25);border-radius:14px;padding:22px 24px;color:var(--ink-2);font-size:15px;line-height:1.65}
.callout strong{color:var(--ink)}
.amv{display:flex;flex-wrap:wrap;gap:10px 22px;font-family:var(--mono);font-size:12px;color:var(--label);margin-top:22px;position:relative}
.amv span{display:inline-flex;align-items:center;gap:8px}
.amv .dot{width:6px;height:6px;border-radius:50%;background:var(--accent)}

/* blog cards / changelog */
.post-card{position:relative;background:var(--card);border:1px solid var(--border);border-radius:var(--r-card);box-shadow:var(--sh-sm);padding:28px;display:flex;flex-direction:column;min-height:230px;transition:box-shadow .15s var(--ease),transform .15s var(--ease);text-decoration:none}
.post-card:hover{box-shadow:var(--sh-md);transform:translateY(-2px)}
.post-card .pk{font-family:var(--mono);font-size:11px;color:var(--accent-fill);letter-spacing:.08em;margin-bottom:14px;text-transform:uppercase;font-weight:600}
.post-card h3{font-size:19px;line-height:1.25;margin-bottom:8px}
.post-card p{font-size:14px;color:var(--ink-2);flex-grow:1;line-height:1.6}
.post-card .rd{font-size:13px;color:var(--accent-fill);margin-top:16px;font-weight:500}
.log-entry{border-top:1px solid var(--divider);padding:32px 0;display:grid;grid-template-columns:200px 1fr;gap:24px}
.log-entry:first-child{border-top:none}
@media(max-width:760px){.log-entry{grid-template-columns:1fr;gap:12px}}
.log-meta .ver{font-family:var(--display);font-weight:600;font-size:22px;color:var(--ink);font-variant-numeric:tabular-nums}
.log-meta .date{font-family:var(--mono);font-size:12px;color:var(--label);margin-top:6px}
.log-meta .tag{display:inline-block;margin-top:10px;font-family:var(--mono);font-size:10px;letter-spacing:.1em;text-transform:uppercase;color:var(--accent-fill);border:1px solid rgba(14,159,126,.3);border-radius:5px;padding:3px 8px}
.log-body ul{list-style:none;display:flex;flex-direction:column;gap:10px}
.log-body li{position:relative;padding-left:22px;color:var(--ink-2);font-size:15px;line-height:1.55}
.log-body li::before{content:'+';position:absolute;left:0;color:var(--accent-fill);font-family:var(--mono)}

/* checklist (geo-checklist) */
.checklist{display:flex;flex-direction:column;gap:12px;counter-reset:ck}
.check-item{counter-increment:ck;display:grid;grid-template-columns:44px 1fr;gap:16px;background:var(--card);border:1px solid var(--border);border-radius:var(--r-card);box-shadow:var(--sh-sm);padding:22px 24px;transition:box-shadow .15s var(--ease),transform .15s var(--ease)}
.check-item:hover{box-shadow:var(--sh-md);transform:translateY(-2px)}
.check-item .ckn{width:36px;height:36px;border:1px solid rgba(14,159,126,.4);border-radius:9px;display:flex;align-items:center;justify-content:center;font-family:var(--mono);font-size:13px;color:var(--accent-fill);background:var(--accent-tint)}
.check-item .ckn::before{content:counter(ck,decimal-leading-zero)}
.check-item h3{font-size:17px;margin-bottom:6px}
.check-item p{font-size:14px;color:var(--ink-2);line-height:1.6}
.check-item .why{font-family:var(--mono);font-size:11.5px;color:var(--label);margin-top:8px}
.check-item .why b{color:var(--accent-fill);font-weight:600}

/* legacy emailcap markup (label/input without new classes) */
.emailcap label{display:block;font-size:13px !important;font-weight:600;color:var(--ink) !important;margin-bottom:8px;font-family:var(--sans) !important;letter-spacing:0 !important;text-transform:none !important}
.emailcap input[type=email]{flex:1;min-width:220px;height:52px;background:var(--card);border:1px solid var(--border);border-radius:var(--r-ctl);padding:0 16px;color:var(--ink);font-family:var(--sans);font-size:16px;outline:none;transition:border-color .15s,box-shadow .15s;width:auto}
.emailcap input[type=email]:focus{border-color:var(--accent);box-shadow:0 0 0 4px var(--ring)}
form.emailcap{background:none;border:none;padding:0;box-shadow:none}

/* light terminal (shared artifact) */
.term{background:var(--card);border:1px solid var(--border);border-radius:var(--r-card);box-shadow:var(--sh-md);overflow:hidden}
.term-bar{display:flex;align-items:center;gap:6px;padding:12px 16px;border-bottom:1px solid var(--divider)}
.term-bar i{width:10px;height:10px;border-radius:50%}
.term-bar i:nth-child(1){background:var(--fail-border)}
.term-bar i:nth-child(2){background:var(--warn-border)}
.term-bar i:nth-child(3){background:var(--pass-border)}
.term-bar span{margin-left:6px;font-family:var(--mono);font-size:11px;letter-spacing:.08em;color:var(--label)}
.term-body{padding:20px;font-family:var(--mono);font-size:13px;line-height:1.9;color:var(--ink-2)}
/* micro gauge (stats, outcome rows, thumbnails) */
.g-arc{position:absolute;top:16px;right:16px;width:28px;height:28px}
.g-arc circle{fill:none;stroke-width:2.5}
.g-arc .gt{stroke:var(--divider)}
.g-arc .gf{stroke:var(--accent);stroke-linecap:round;stroke-dasharray:69.1;stroke-dashoffset:69.1;transition:stroke-dashoffset .7s cubic-bezier(.22,1,.36,1) .2s}
.fx.in .g-arc .gf,.g-arc.drawn .gf{stroke-dashoffset:var(--go)}
@media(prefers-reduced-motion:reduce){.g-arc .gf{transition:none;stroke-dashoffset:var(--go)}}