/* PlanSift landing page. Dependency-free; tokens on :root; light + dark (prefers-color-scheme or data-theme override, same switch as the viewer).
   No inline styles anywhere (CSP style-src 'self'). Brand: indigo #4338ca, ink #1e1b4b, amber evidence node #fbbf24 (brand/README.md). */
:root{color-scheme:light dark;
  --bg:#fafaff; --bg-alt:#f1f2fb; --surface:#ffffff; --surface-2:#f5f6fd;
  --ink:#1e1b4b; --text:#34365a; --muted:#5a5d80; --line:#e2e4f2; --line-strong:#cdd1e8;
  --brand:#4338ca; --brand-hover:#3730a3; --brand-soft:#eceefe; --btn:#4338ca; --btn-hover:#3730a3; --btn-ink:#ffffff;
  --amber:#f59e0b; --amber-node:#fbbf24; --amber-soft:#fef3c7; --amber-ink:#8a4b08;
  --ok:#0b8a63; --ok-soft:#dcf4ea; --ok-ink:#065a40; --alarm:#d1242f; --alarm-soft:#fce0e2; --alarm-ink:#98131d; --nf:#6b7380; --nf-soft:#e8ebef; --nf-ink:#454c58;
  --paper:#ffffff; --plan-ink:#23264a; --plan-room:#f1f3fc; --plan-line:#8d93ba; --plan-grid:#eef0f8;
  --band:#15143a; --band-2:#1c1b4a; --band-ink:#eef0ff; --band-text:#c3c8ee; --band-line:#2d2c66;
  --glow:rgba(67,56,202,.13);
  --shadow-1:0 1px 2px rgba(30,27,75,.05),0 4px 14px rgba(30,27,75,.06);
  --shadow-2:0 2px 4px rgba(30,27,75,.06),0 14px 34px rgba(30,27,75,.11);
  --shadow-3:0 4px 10px rgba(30,27,75,.07),0 30px 70px rgba(30,27,75,.18);
  --r:14px; --r-lg:22px;
  --font:"Inter","Segoe UI Variable Text","Segoe UI",-apple-system,BlinkMacSystemFont,Roboto,"Helvetica Neue","Lato","Noto Sans",system-ui,Arial,sans-serif;
  --display:"Inter Display","Inter","Segoe UI Variable Display","Segoe UI",-apple-system,BlinkMacSystemFont,Roboto,"Helvetica Neue","Lato","Noto Sans",system-ui,Arial,sans-serif;
  --mono:ui-monospace,"SF Mono",SFMono-Regular,Menlo,Consolas,"Liberation Mono",monospace;
  --ease:cubic-bezier(.2,.7,.2,1);
}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]){
  --bg:#0b0c1c; --bg-alt:#0f1126; --surface:#161935; --surface-2:#1b1f40;
  --ink:#eef0ff; --text:#c8cceb; --muted:#9a9fc6; --line:#252a52; --line-strong:#353b6e;
  --brand:#a5b4fc; --brand-hover:#c7d2fe; --brand-soft:#1e2250; --btn:#a5b4fc; --btn-hover:#c7d2fe; --btn-ink:#1e1b4b;
  --amber:#fbbf24; --amber-soft:#3b2c08; --amber-ink:#fcd34d;
  --ok:#35c795; --ok-soft:#12372b; --ok-ink:#7be3bf; --alarm:#ff6b74; --alarm-soft:#4a1c20; --alarm-ink:#ffaab0; --nf:#8d97a6; --nf-soft:#262e38; --nf-ink:#b8c1cd;
  --paper:#14173a; --plan-ink:#dfe2fb; --plan-room:#1b1f4a; --plan-line:#7c84c2; --plan-grid:#1a1d44;
  --band:#101130; --band-2:#16173d; --band-line:#272a5c;
  --glow:rgba(129,140,248,.16);
  --shadow-1:0 1px 2px rgba(0,0,0,.35),0 4px 14px rgba(0,0,0,.28);
  --shadow-2:0 2px 4px rgba(0,0,0,.4),0 14px 34px rgba(0,0,0,.4);
  --shadow-3:0 4px 10px rgba(0,0,0,.45),0 30px 70px rgba(0,0,0,.55);
}}
:root[data-theme="dark"]{color-scheme:dark;
  --bg:#0b0c1c; --bg-alt:#0f1126; --surface:#161935; --surface-2:#1b1f40;
  --ink:#eef0ff; --text:#c8cceb; --muted:#9a9fc6; --line:#252a52; --line-strong:#353b6e;
  --brand:#a5b4fc; --brand-hover:#c7d2fe; --brand-soft:#1e2250; --btn:#a5b4fc; --btn-hover:#c7d2fe; --btn-ink:#1e1b4b;
  --amber:#fbbf24; --amber-soft:#3b2c08; --amber-ink:#fcd34d;
  --ok:#35c795; --ok-soft:#12372b; --ok-ink:#7be3bf; --alarm:#ff6b74; --alarm-soft:#4a1c20; --alarm-ink:#ffaab0; --nf:#8d97a6; --nf-soft:#262e38; --nf-ink:#b8c1cd;
  --paper:#14173a; --plan-ink:#dfe2fb; --plan-room:#1b1f4a; --plan-line:#7c84c2; --plan-grid:#1a1d44;
  --band:#101130; --band-2:#16173d; --band-line:#272a5c;
  --glow:rgba(129,140,248,.16);
  --shadow-1:0 1px 2px rgba(0,0,0,.35),0 4px 14px rgba(0,0,0,.28);
  --shadow-2:0 2px 4px rgba(0,0,0,.4),0 14px 34px rgba(0,0,0,.4);
  --shadow-3:0 4px 10px rgba(0,0,0,.45),0 30px 70px rgba(0,0,0,.55);
}
:root[data-theme="light"]{color-scheme:light}

*,*::before,*::after{box-sizing:border-box}
html{font-size:clamp(16px,calc(9px + .5vw),30px);scroll-behavior:smooth;scroll-padding-top:5rem;-webkit-text-size-adjust:100%;text-size-adjust:100%}
body{margin:0;background:var(--bg);color:var(--text);font:1rem/1.6 var(--font);-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;overflow-x:hidden}
h1,h2,h3,h4,p,ul,ol,dl,dd,figure{margin:0}
ul,ol{padding:0;list-style:none}
a{color:var(--brand);text-decoration-thickness:.07em;text-underline-offset:.18em}
a:hover{color:var(--brand-hover)}
button,input{font:inherit;color:inherit}
button{cursor:pointer}
svg{display:block}
[hidden]{display:none!important}
.defs{position:absolute;width:0;height:0;overflow:hidden}
.mono{font-family:var(--mono);font-size:.86em;font-variant-numeric:tabular-nums}
:focus-visible{outline:3px solid var(--amber);outline-offset:3px;border-radius:6px}
.skip{position:absolute;left:-999px;top:0;z-index:100;background:var(--btn);color:var(--btn-ink);padding:.6rem 1rem;border-radius:0 0 10px 0;font-weight:650}
.skip:focus{left:0}
.wrap{width:min(100% - 2.5rem,74rem);margin-inline:auto}
svg.ic{width:1.2em;height:1.2em;flex:none;fill:none;stroke:currentColor;stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round}
svg.ic .fill,symbol .fill{fill:currentColor;stroke:none}
svg.ic .dot{stroke-width:2.6}

/* ---------------------------------------------------------------- header */
.site-head{position:sticky;top:0;z-index:50;background:var(--bg);background:color-mix(in srgb,var(--bg) 82%,transparent);backdrop-filter:saturate(1.4) blur(14px);-webkit-backdrop-filter:saturate(1.4) blur(14px);border-bottom:1px solid transparent;transition:border-color .3s,box-shadow .3s}
.site-head.scrolled{border-bottom-color:var(--line);box-shadow:0 6px 24px -18px rgba(30,27,75,.5)}
.head-row{display:flex;align-items:center;gap:1.5rem;height:4rem}
.logo{display:inline-flex;align-items:center;gap:.6rem;text-decoration:none;color:var(--ink);font-family:var(--display);font-size:1.3rem;letter-spacing:-.02em}
.logo .mark{width:2rem;height:2rem;border-radius:.5rem}
.logo .w-plan{font-weight:500}
.logo .w-sift{font-weight:800;color:var(--brand)}
.site-nav{display:flex;gap:.25rem;margin-left:auto}
.site-nav a{padding:.4rem .75rem;border-radius:999px;color:var(--muted);text-decoration:none;font-size:.92rem;font-weight:550;transition:color .2s,background .2s}
.site-nav a:hover{color:var(--ink);background:var(--brand-soft)}
.head-tools{display:flex;align-items:center;gap:.6rem}
.langsw{display:inline-flex;border:1px solid var(--line-strong);border-radius:999px;padding:2px;background:var(--surface)}
.langsw button{border:0;background:none;padding:.22rem .6rem;border-radius:999px;font-size:.78rem;font-weight:700;letter-spacing:.04em;color:var(--muted)}
.langsw button[aria-pressed="true"]{background:var(--brand-soft);color:var(--brand)}
.iconbtn{display:inline-grid;place-items:center;width:2.2rem;height:2.2rem;border-radius:999px;border:1px solid var(--line-strong);background:var(--surface);color:var(--muted)}
.iconbtn:hover{color:var(--ink);border-color:var(--brand)}

/* ---------------------------------------------------------------- buttons */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:.55rem;padding:.85rem 1.4rem;border-radius:999px;border:1px solid transparent;font-weight:650;font-size:1rem;line-height:1.2;text-decoration:none;transition:transform .2s var(--ease),box-shadow .2s,background .2s,border-color .2s,color .2s;white-space:nowrap}
.btn.small{padding:.5rem 1rem;font-size:.9rem}
.btn.primary{background:var(--btn);color:var(--btn-ink);box-shadow:0 1px 0 rgba(255,255,255,.25) inset,0 8px 22px -8px color-mix(in srgb,var(--btn) 70%,transparent)}
.btn.primary:hover{background:var(--btn-hover);color:var(--btn-ink);transform:translateY(-1px)}
.btn.primary .ic{transition:transform .25s var(--ease)}
.btn.primary:hover .ic{transform:translateX(3px)}
.btn.ghost{background:var(--surface);color:var(--ink);border-color:var(--line-strong);box-shadow:var(--shadow-1)}
.btn.ghost:hover{border-color:var(--brand);color:var(--brand);transform:translateY(-1px)}
.btn.ghost .ic{color:var(--brand)}
.cta-row{display:flex;flex-wrap:wrap;gap:.8rem;margin-top:2.2rem}
.cta-row.center{justify-content:center}

/* ---------------------------------------------------------------- hero */
.hero{position:relative;padding:clamp(2.5rem,6vw,5.5rem) 0 clamp(3.5rem,7vw,6.5rem);overflow:hidden}
.hero::before{content:"";position:absolute;inset:0;z-index:-1;
  background:
    radial-gradient(60rem 34rem at 78% 18%,var(--glow),transparent 62%),
    linear-gradient(var(--line) 1px,transparent 1px) 0 0/100% 3rem,
    linear-gradient(90deg,var(--line) 1px,transparent 1px) 0 0/3rem 100%;
  -webkit-mask-image:radial-gradient(70rem 40rem at 70% 30%,#000 10%,transparent 72%);mask-image:radial-gradient(70rem 40rem at 70% 30%,#000 10%,transparent 72%);opacity:.75}
.hero-grid{display:grid;grid-template-columns:minmax(0,1.04fr) minmax(0,1fr);gap:clamp(1.5rem,4vw,4rem);align-items:center}
.eyebrow{display:inline-flex;align-items:center;gap:.6rem;font-size:.82rem;font-weight:650;letter-spacing:.02em;color:var(--muted);background:var(--surface);border:1px solid var(--line);border-radius:999px;padding:.35rem .9rem .35rem .7rem;box-shadow:var(--shadow-1)}
.node{width:.6rem;height:.6rem;border-radius:50%;background:var(--amber-node);box-shadow:0 0 0 .22rem color-mix(in srgb,var(--amber-node) 28%,transparent);flex:none}
h1{font-family:var(--display);font-size:clamp(2.3rem,4.6vw,3.9rem);line-height:1.05;letter-spacing:-.032em;font-weight:800;color:var(--ink);margin-top:1.4rem;text-wrap:balance}
.mark-word{background:linear-gradient(var(--amber-node),var(--amber-node)) 0 94%/100% .13em no-repeat;padding-bottom:.02em;white-space:nowrap}
h1 .dot{color:var(--amber)}
.lead{font-size:clamp(1.05rem,1.35vw,1.22rem);line-height:1.62;color:var(--text);margin-top:1.5rem;max-width:38rem;text-wrap:pretty}
.hero-facts{display:flex;flex-wrap:wrap;gap:.5rem 1.4rem;margin-top:1.8rem;font-size:.9rem;color:var(--muted);font-weight:550}
.hero-facts li{display:inline-flex;align-items:center;gap:.4rem}
.hero-facts .ic{color:var(--ok);stroke-width:2.6}
.hero-art{position:relative;min-width:0}
.hero-svg{width:100%;height:auto;overflow:visible}
.sheet-back{fill:var(--paper);stroke:var(--line-strong);stroke-width:1;opacity:.75}
.sheet-shadow{filter:drop-shadow(0 18px 30px rgba(30,27,75,.16)) drop-shadow(0 2px 4px rgba(30,27,75,.08))}

/* the shared plan drawing (symbol #ps-plan) */
.pl-paper{fill:var(--paper);stroke:var(--line-strong);stroke-width:1}
.pl-grid{stroke:var(--plan-grid);stroke-width:1;fill:none}
.pl-room rect{fill:var(--plan-room)}
.pl-wall{fill:none;stroke:var(--plan-ink);stroke-width:10;stroke-linejoin:miter}
.pl-wall.thin{stroke-width:4.5;stroke-linecap:butt}
.pl-win rect{fill:var(--paper);stroke:var(--plan-ink);stroke-width:1}
.pl-win path{stroke:var(--plan-ink);stroke-width:1;fill:none}
.pl-swing{fill:none;stroke:var(--plan-line);stroke-width:1;stroke-dasharray:3 2.5}
.pl-tag{font:700 9.5px var(--font);fill:var(--brand);letter-spacing:.01em}
.pl-stamp .nm{font:700 11.5px var(--font);fill:var(--plan-ink)}
.pl-stamp .ar{font:500 11px var(--font);fill:var(--plan-ink)}
.pl-stamp .sm{font:400 8.5px var(--font);fill:var(--plan-line)}
.pl-dim path{stroke:var(--plan-line);stroke-width:.8;fill:none}
.pl-dim text{font:400 8px var(--font);fill:var(--plan-line)}
.pl-title path{stroke:var(--plan-line);stroke-width:.8}
.pl-title text{font:600 8.5px var(--font);fill:var(--plan-line);letter-spacing:.08em}

.ev{fill:rgba(11,138,99,.13);fill:color-mix(in srgb,var(--ok) 13%,transparent);stroke:var(--ok);stroke-width:1.3}
.ev.amber{fill:rgba(251,191,36,.26);fill:color-mix(in srgb,var(--amber-node) 26%,transparent);stroke:var(--amber);stroke-width:1.8}
.ev.alarm{fill:rgba(209,36,47,.14);fill:color-mix(in srgb,var(--alarm) 14%,transparent);stroke:var(--alarm);stroke-width:1.8}
.ev.nf{fill:none;stroke:var(--nf);stroke-dasharray:3 2.5}
.ev.geom{fill:rgba(251,191,36,.1);fill:color-mix(in srgb,var(--amber-node) 10%,transparent);stroke:var(--amber);stroke-width:1.8;stroke-dasharray:6 4}
.thread{fill:none;stroke-linecap:round}
.thread.amber{stroke:var(--amber);stroke-width:2}
.thread.sum{stroke:var(--brand);stroke-width:1.1;opacity:.45;stroke-dasharray:2 4}
.node-dot{fill:var(--amber-node);stroke:var(--paper);stroke-width:2}
.vcard .vc-bg{fill:var(--surface);stroke:var(--line);stroke-width:1;filter:drop-shadow(0 10px 22px rgba(30,27,75,.16))}
.vc-label{font:650 13px var(--font);fill:var(--muted);letter-spacing:.01em}
.vc-value{font:780 34px var(--display);fill:var(--ink);letter-spacing:-.03em}
.vc-track{fill:var(--line)}
.vc-bar{fill:var(--ok)}
.vc-pct{font:650 11.5px var(--font);fill:var(--ok-ink)}
.vc-meta{font:500 11.5px var(--mono);fill:var(--muted)}
html.js .hero-svg .thread.amber{stroke-dasharray:260;stroke-dashoffset:260;animation:draw 1.2s .5s var(--ease) forwards}
html.js .hero-svg .vcard{opacity:0;animation:rise .7s var(--ease) forwards}
html.js .hero-svg .vcard:nth-of-type(1){animation-delay:1.1s}
html.js .hero-svg .vcard:nth-of-type(2){animation-delay:1.7s}
html.js .hero-svg .thread.sum{opacity:0;animation:fade .9s 1.5s forwards}
html.js .hero-svg .ev.ok{opacity:0;animation:fade1 .5s forwards}
html.js .hero-svg .ev-set .ev:nth-child(1){animation-delay:.15s}html.js .hero-svg .ev-set .ev:nth-child(2){animation-delay:.25s}html.js .hero-svg .ev-set .ev:nth-child(3){animation-delay:.35s}html.js .hero-svg .ev-set .ev:nth-child(4){animation-delay:.45s}html.js .hero-svg .ev-set .ev:nth-child(5){animation-delay:.55s}
.node-dot{transform-box:fill-box;transform-origin:center;animation:pulse 2.6s 2s ease-in-out infinite}
@keyframes draw{to{stroke-dashoffset:0}}
@keyframes rise{from{opacity:0;translate:0 10px}to{opacity:1;translate:0 0}}
@keyframes fade{to{opacity:.45}}
@keyframes fade1{to{opacity:1}}
@keyframes pulse{0%,100%{scale:1}50%{scale:1.35}}

/* ---------------------------------------------------------------- sections */
.sec{padding:clamp(4rem,8.5vw,7.5rem) 0;position:relative}
.sec.alt{background:var(--bg-alt);border-block:1px solid var(--line)}
.kicker{display:inline-flex;align-items:center;gap:.55rem;font-size:.8rem;font-weight:750;letter-spacing:.12em;text-transform:uppercase;color:var(--brand)}
.kicker::before{content:"";width:.5rem;height:.5rem;border-radius:50%;background:var(--amber-node)}
h2{font-family:var(--display);font-size:clamp(1.8rem,3.5vw,2.9rem);line-height:1.1;letter-spacing:-.03em;font-weight:760;color:var(--ink);margin-top:.9rem;max-width:24ch;text-wrap:balance}
.sub{font-size:clamp(1.02rem,1.25vw,1.16rem);color:var(--text);margin-top:1.1rem;max-width:42rem;text-wrap:pretty}
h3{font-family:var(--display);font-size:1.2rem;line-height:1.25;letter-spacing:-.015em;font-weight:720;color:var(--ink)}
h4{font-family:var(--display);font-size:1.05rem;line-height:1.3;font-weight:720;color:var(--ink)}

.tri{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1.25rem;margin-top:3rem}
.pcard{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg);padding:1.9rem 1.7rem 2rem;box-shadow:var(--shadow-1);transition:transform .3s var(--ease),box-shadow .3s}
.pcard:hover{transform:translateY(-3px);box-shadow:var(--shadow-2)}
.pcard h3{margin-top:1.2rem}
.pcard p{margin-top:.6rem;color:var(--text);font-size:.98rem}
.pcard.accent{border-color:color-mix(in srgb,var(--brand) 45%,var(--line));background:linear-gradient(180deg,var(--brand-soft),var(--surface) 70%)}
.pcard.plain h3{margin-top:0}
.pcard.plain{border-top:3px solid var(--amber-node)}
.picon{display:inline-grid;place-items:center;width:2.9rem;height:2.9rem;border-radius:.9rem;background:var(--surface-2);border:1px solid var(--line);color:var(--muted);font-size:1.25rem}
.picon.warn{background:var(--amber-soft);border-color:color-mix(in srgb,var(--amber) 40%,transparent);color:var(--amber-ink)}
.picon.brand{background:var(--btn);border-color:transparent;color:var(--btn-ink)}

/* steps */
.steps{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:1.25rem;margin-top:3rem;counter-reset:s;position:relative}
.steps::before{content:"";position:absolute;left:2rem;right:2rem;top:3.35rem;border-top:2px dashed var(--line-strong)}
.step{position:relative;background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg);padding:1.6rem 1.5rem 1.7rem;box-shadow:var(--shadow-1)}
.step .sicon{display:inline-grid;place-items:center;width:3.5rem;height:3.5rem;border-radius:1.1rem;background:var(--brand-soft);color:var(--brand);font-size:1.5rem;position:relative}
.step .snum{position:absolute;top:1.2rem;right:1.3rem;font:800 2.6rem/1 var(--display);letter-spacing:-.04em;color:var(--line-strong)}
.step h3{margin-top:1.1rem;font-size:1.3rem}
.step p{margin-top:.5rem;font-size:.95rem}
.levels-title{margin-top:3.5rem;font-size:1.05rem;letter-spacing:.01em;color:var(--muted);font-weight:650}
.levels{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:1.25rem;margin-top:1.2rem;align-items:end}
.level{position:relative;background:var(--surface);border:1px solid var(--line);border-radius:var(--r);padding:1.3rem 1.3rem 1.4rem;box-shadow:var(--shadow-1)}
.level:nth-child(2){padding-bottom:2.2rem}.level:nth-child(3){padding-bottom:3rem}.level:nth-child(4){padding-bottom:3.8rem;border-color:color-mix(in srgb,var(--amber) 55%,var(--line))}
.level .lv{display:inline-block;font:800 .72rem/1 var(--mono);letter-spacing:.06em;color:var(--brand);background:var(--brand-soft);padding:.3rem .5rem;border-radius:.4rem}
.level>.ic{position:absolute;top:1.2rem;right:1.2rem;font-size:1.25rem;color:var(--muted)}
.level h4{margin-top:.8rem}
.level p{margin-top:.35rem;font-size:.92rem}

/* dark band (demo) */
.dark-band{background:radial-gradient(60rem 30rem at 50% -10%,#2a2880 0%,transparent 65%),linear-gradient(180deg,var(--band),var(--band-2));color:var(--band-text);--line:var(--band-line)}
.dark-band h2{color:var(--band-ink);max-width:28ch}
.dark-band .sub{color:var(--band-text)}
.dark-band .kicker{color:#c7d2fe}
.reel-after{display:flex;justify-content:center;margin-top:2rem}
.dark-band .btn.primary{background:#fbbf24;color:#1e1b4b;box-shadow:0 10px 30px -10px rgba(251,191,36,.6)}
.dark-band .btn.primary:hover{background:#fcd34d}

/* bento */
.bento{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:1.25rem;margin-top:3rem}
.bcard{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg);padding:1.7rem 1.6rem 1.8rem;box-shadow:var(--shadow-1);transition:transform .3s var(--ease),box-shadow .3s}
.bcard:hover{transform:translateY(-3px);box-shadow:var(--shadow-2)}
.bcard h3{margin-top:1.1rem}
.bcard p{margin-top:.55rem;font-size:.95rem}
.bcard.wide{grid-column:1/-1;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.05fr);gap:clamp(1.5rem,4vw,3.5rem);align-items:center;padding:clamp(1.8rem,3vw,2.8rem)}
.bcard.feature{background:linear-gradient(135deg,var(--brand-soft),var(--surface) 55%);border-color:color-mix(in srgb,var(--brand) 35%,var(--line))}
.bcard.feature h3{font-size:clamp(1.4rem,2.2vw,1.9rem);letter-spacing:-.025em}
.bcard.feature p{font-size:1.05rem;max-width:34rem}
.anatomy{background:var(--surface);border:1px solid var(--line);border-radius:var(--r);box-shadow:var(--shadow-2);overflow:hidden}
.anatomy li{display:grid;grid-template-columns:9.5rem minmax(0,1fr);gap:1rem;align-items:baseline;padding:.8rem 1.2rem;border-bottom:1px solid var(--line)}
.anatomy li:last-child{border-bottom:0}
.anatomy b{font-size:.85rem;color:var(--muted);font-weight:650;display:inline-flex;align-items:center;gap:.5rem}
.anatomy b::before{content:"";width:.45rem;height:.45rem;border-radius:50%;background:var(--amber-node);flex:none}
.anatomy .mono{color:var(--ink);overflow-wrap:anywhere}

/* small drawings on the cards */
.vig{width:100%;height:auto;max-width:17rem;background:var(--surface-2);border:1px solid var(--line);border-radius:.9rem;margin-bottom:.2rem}
.vig text{font:600 9px var(--font);fill:var(--muted);letter-spacing:.02em}
.v-cell{fill:var(--surface);stroke:var(--nf);stroke-width:1.3;stroke-dasharray:4 3}
.v-cell.bad{stroke:var(--alarm);stroke-dasharray:none;fill:var(--alarm-soft)}
.v-dash{stroke:var(--nf);stroke-width:2.5;stroke-linecap:round;fill:none}
.vig .v-guess{font:700 12px var(--font);fill:var(--alarm-ink);text-decoration:line-through}
.v-okdot{fill:var(--ok)}.v-baddot{fill:var(--alarm)}
.v-tick{fill:none;stroke:#fff;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.v-sheet{fill:var(--paper);stroke:var(--line-strong);stroke-width:1}
.v-sheet.scan{fill:var(--nf-soft);fill:color-mix(in srgb,var(--nf-soft) 70%,var(--paper))}
.v-sheet.photo{fill:var(--amber-soft);fill:color-mix(in srgb,var(--amber-soft) 45%,var(--paper))}
.v-plan{fill:none;stroke:var(--plan-ink);stroke-width:1.6;stroke-linejoin:round}
.v-plan.dx{stroke:var(--brand);stroke-width:1.100}
.v-plan.faint{stroke:var(--plan-line);stroke-width:1.400}
.v-node{stroke:var(--amber);stroke-width:3.4;stroke-linecap:round;fill:none}
.v-noise{stroke:var(--nf);stroke-width:1;opacity:.6;fill:none}
.v-axis{stroke:var(--line-strong);stroke-width:2;stroke-linecap:round;fill:none}
.v-band{fill:var(--ok-soft);stroke:var(--ok);stroke-width:1}
.v-move{stroke:var(--alarm);stroke-width:1.3;stroke-dasharray:3 3;fill:none}
.vig .v-oktx{fill:var(--ok-ink);font-weight:700;font-size:10px}.vig .v-badtx{fill:var(--alarm-ink);font-weight:800;font-size:11px}
.v-arrow{fill:none;stroke:var(--brand);stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.v-changed{fill:rgba(251,191,36,.38);fill:color-mix(in srgb,var(--amber-node) 38%,transparent);stroke:var(--amber);stroke-width:1}
.vig .v-delta{fill:var(--amber-ink);font-weight:800;font-size:8px}
.bcard .vig+h3{margin-top:1.1rem}

/* confidence heuristic */
.heur{margin-top:1.6rem;background:var(--surface);border:1px solid var(--line);border-radius:var(--r);box-shadow:var(--shadow-1);max-width:56rem}
.heur summary{cursor:pointer;padding:1rem 1.3rem;font-weight:680;color:var(--ink);list-style-position:inside}
.heur summary:hover{color:var(--brand)}
.heur table{width:calc(100% - 2.6rem);margin:0 1.3rem;border-collapse:collapse;font-size:.93rem}
.heur th{text-align:left;font-size:.76rem;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);padding:.5rem .6rem .5rem 0;border-bottom:1px solid var(--line-strong)}
.heur td{padding:.6rem .6rem .6rem 0;border-bottom:1px solid var(--line);vertical-align:top}
.heur td:last-child,.heur th:last-child{padding-right:0;width:46%}
.heur td:last-child{font-family:var(--mono);font-size:.84rem;color:var(--ink)}
.heur p{padding:.9rem 1.3rem 1.2rem;font-size:.9rem;color:var(--muted)}

/* teaser */
.teaser{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,1fr);gap:clamp(1.25rem,3vw,2.5rem);margin-top:3rem;align-items:start}
.t-plan{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg);padding:clamp(.8rem,2vw,1.4rem);box-shadow:var(--shadow-2)}
.t-svg{width:100%;height:auto}
.t-svg .pl-paper{stroke:none}
#t-boxes .ev{opacity:0;transition:opacity .25s}
#t-boxes .ev.on{opacity:1}
#t-boxes .ev.hit{fill:transparent;stroke:transparent;opacity:1;cursor:pointer;pointer-events:all}
.pl-tag.f07.bad{fill:var(--alarm)}
.t-typo{display:flex;align-items:center;gap:.7rem;margin-top:.9rem;padding:.75rem .9rem;border:1px dashed var(--line-strong);border-radius:var(--r);font-size:.92rem;color:var(--text);cursor:pointer}
.t-typo input{position:absolute;opacity:0;width:1px;height:1px}
.t-typo .sw{position:relative;flex:none;width:2.5rem;height:1.4rem;border-radius:999px;background:var(--line-strong);transition:background .2s}
.t-typo .sw::after{content:"";position:absolute;top:.16rem;left:.16rem;width:1.08rem;height:1.08rem;border-radius:50%;background:#fff;box-shadow:0 1px 3px rgba(0,0,0,.3);transition:translate .2s var(--ease)}
.t-typo input:checked+.sw{background:var(--alarm)}
.t-typo input:checked+.sw::after{translate:1.1rem 0}
.t-typo input:focus-visible+.sw{outline:3px solid var(--amber);outline-offset:3px}
.t-side,.t-plan{min-width:0}
.t-values{display:grid;gap:.4rem}
.t-val{display:grid;grid-template-columns:minmax(0,1fr) auto auto;align-items:center;gap:.8rem;width:100%;text-align:left;background:var(--surface);border:1px solid var(--line);border-radius:.8rem;padding:.6rem .9rem;transition:border-color .2s,box-shadow .2s,background .2s}
.t-val:hover,.t-val[aria-pressed="true"]{border-color:var(--amber);box-shadow:0 0 0 3px color-mix(in srgb,var(--amber-node) 25%,transparent)}
.t-val .nm{font-weight:600;color:var(--ink);font-size:.95rem;min-width:0}
.t-val .nm small{display:block;font:500 .72rem var(--mono);color:var(--muted)}
.t-val .vv{font:700 1rem var(--mono);font-variant-numeric:tabular-nums;color:var(--ink);white-space:nowrap}
.chip{display:inline-flex;align-items:center;gap:.3rem;font-size:.72rem;font-weight:700;letter-spacing:.02em;padding:.16rem .55rem;border-radius:999px;white-space:nowrap;background:var(--ok-soft);color:var(--ok-ink)}
.chip.calc{background:var(--brand-soft);color:var(--brand)}
.chip.meas{background:var(--amber-soft);background:color-mix(in srgb,var(--amber-soft) 80%,transparent);color:var(--amber-ink)}
.chip.nf{background:var(--nf-soft);color:var(--nf-ink)}
.chip.alarm{background:var(--alarm-soft);color:var(--alarm-ink)}
.t-val.is-alarm{border-color:var(--alarm)}
.t-val.is-alarm .vv{color:var(--alarm-ink)}
.t-detail{margin-top:1rem;background:var(--surface);border:1px solid var(--line);border-left:4px solid var(--amber-node);border-radius:var(--r);padding:1.1rem 1.2rem;min-height:11.5rem;box-shadow:var(--shadow-1)}
.t-detail h3{font-size:1.02rem}
.t-detail .big{font:780 1.9rem/1.15 var(--display);letter-spacing:-.03em;color:var(--ink);margin-top:.2rem}
.t-detail .big.nf{color:var(--nf)}
.t-detail .big.alarm{color:var(--alarm-ink)}
.t-detail dl{display:grid;grid-template-columns:auto minmax(0,1fr);gap:.3rem 1rem;margin-top:.7rem;font-size:.88rem}
.t-detail dt{color:var(--muted);font-weight:600}
.t-detail dd{color:var(--ink);font-family:var(--mono);font-size:.84rem;overflow-wrap:anywhere}
.confbar{display:inline-block;vertical-align:middle;width:5.5rem;height:.36rem;border-radius:999px;background:var(--line);margin-right:.5rem;overflow:hidden}
.confbar i{display:block;height:100%;background:var(--ok);border-radius:999px}
.confbar.mid i{background:var(--amber)}

/* note, limits, results */
.note{display:flex;gap:.8rem;align-items:flex-start;margin-top:1.6rem;padding:1rem 1.2rem;border-radius:var(--r);background:var(--brand-soft);color:var(--ink);font-size:.97rem;max-width:56rem}
.note .ic{color:var(--brand);margin-top:.2rem}
.limits{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.9rem 1.25rem;margin-top:2.6rem}
.limits li{position:relative;padding:1rem 1.2rem 1rem 3rem;border:1px dashed var(--line-strong);border-radius:var(--r);background:var(--surface);font-size:.97rem}
.limits li::before{content:"";position:absolute;left:1.15rem;top:1.62rem;width:1rem;border-top:2.5px solid var(--nf)}
.results{margin-top:1rem}
.results-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:1.25rem;margin-top:1.2rem}
.rtile{display:flex;flex-direction:column-reverse;background:var(--surface);border:1px solid var(--line);border-radius:var(--r);padding:1.2rem 1.3rem;box-shadow:var(--shadow-1)}
.rtile dt{font-size:.88rem;color:var(--muted);margin-top:.3rem}
.rtile dd{font:780 2.2rem/1.1 var(--display);letter-spacing:-.03em;color:var(--ink);font-variant-numeric:tabular-nums}
.results-note{margin-top:1rem;font-size:.85rem;color:var(--muted);max-width:52rem}

/* pipeline */
.pipe{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:1.6rem;margin-top:3rem}
.pipe li{position:relative;background:var(--surface);border:1px solid var(--line);border-radius:var(--r);padding:1.1rem 1.1rem 1.2rem;box-shadow:var(--shadow-1)}
.pipe li:not(:last-child)::after{content:"";position:absolute;right:-1.15rem;top:50%;width:.55rem;height:.55rem;border-top:2px solid var(--brand);border-right:2px solid var(--brand);transform:translateY(-50%) rotate(45deg)}
.pipe li:nth-child(3){border-color:var(--amber);box-shadow:0 0 0 3px color-mix(in srgb,var(--amber-node) 22%,transparent),var(--shadow-1)}
.pipe b{display:block;font-family:var(--display);color:var(--ink);font-size:1.05rem;font-weight:720}
.pipe span{display:block;margin-top:.25rem;font:500 .8rem var(--mono);color:var(--muted)}
.stages{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1.1rem 1.25rem;margin-top:1.2rem;counter-reset:st}
.stages li{position:relative;padding:1.1rem 1.2rem 1.2rem 3.6rem;background:var(--surface);border:1px solid var(--line);border-radius:var(--r);box-shadow:var(--shadow-1)}
.stages .stn{position:absolute;left:1.1rem;top:1.1rem;display:grid;place-items:center;width:1.8rem;height:1.8rem;border-radius:.55rem;background:var(--brand-soft);color:var(--brand);font:800 .85rem var(--mono)}
.stages p{margin-top:.3rem;font-size:.9rem}
.news{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:1.1rem 1.25rem;margin-top:2.4rem}
.news li{background:var(--surface);border:1px solid var(--line);border-radius:var(--r);padding:1.2rem 1.2rem 1.3rem;box-shadow:var(--shadow-1)}
.news h3{margin-top:.9rem;font-size:1.05rem}
.news p{margin-top:.35rem;font-size:.9rem}
.news a{color:var(--brand);font-weight:650}
.m3d{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,1fr);gap:2.5rem;align-items:center;margin-top:2.4rem}
.m3d-fig{margin:0;background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg);padding:1.2rem;box-shadow:var(--shadow-1)}
.m3d-svg{display:block;width:100%;height:auto}
.m3d-fig figcaption{margin-top:.6rem;font-size:.85rem;color:var(--muted)}
.m3d-list{display:grid;gap:1.1rem}
.m3d-list li{padding-left:1rem;border-left:3px solid var(--brand)}
.m3d-list h3{font-size:1.05rem}
.m3d-list p{margin-top:.25rem;font-size:.92rem}
.m-edge{fill:var(--line)}
.m-slab{fill:var(--surface-2)}
.m-r{stroke:var(--ink);stroke-width:1.4;stroke-linejoin:round}
.m-z1{fill:var(--brand-soft);fill:color-mix(in srgb,var(--brand) 55%,var(--surface))}
.m-z2{fill:var(--amber-soft);fill:color-mix(in srgb,var(--amber) 50%,var(--surface))}
.m-z3{fill:var(--brand-soft);fill:color-mix(in srgb,var(--brand) 25%,var(--surface))}
.m-z4{fill:var(--surface-2)}
.m-lbl{font:700 13px var(--mono);fill:var(--muted)}
.m-flag{fill:var(--amber)}
.m-flagtx{font:800 14px var(--mono);fill:var(--surface)}
#pipeline{scroll-margin-top:5.5rem}
.techfacts{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:1.25rem;margin-top:2.2rem}
.techfacts li{padding-left:1rem;border-left:2px solid var(--line-strong)}
.techfacts b{display:block;color:var(--ink);font-family:var(--display);font-weight:720}
.techfacts span{display:block;font-size:.9rem;color:var(--muted);margin-top:.15rem}

/* final + footer */
.final{padding-top:clamp(3rem,6vw,5rem)}
.final-box{text-align:center;background:linear-gradient(135deg,#312e81,#4338ca 55%,#4f46e5);border-radius:calc(var(--r-lg) + 8px);padding:clamp(2.5rem,6vw,5rem) 1.5rem;box-shadow:var(--shadow-3);position:relative;overflow:hidden}
.final-box::before{content:"";position:absolute;inset:0;background:linear-gradient(rgba(255,255,255,.07) 1px,transparent 1px) 0 0/100% 2.6rem,linear-gradient(90deg,rgba(255,255,255,.07) 1px,transparent 1px) 0 0/2.6rem 100%;pointer-events:none}
.final-box h2{color:#fff;margin-inline:auto;max-width:22ch;position:relative}
.final-box .cta-row{position:relative}
.final-box .btn.primary{background:#fbbf24;color:#1e1b4b;box-shadow:0 10px 30px -10px rgba(0,0,0,.5)}
.final-box .btn.primary:hover{background:#fcd34d}
.final-box .btn.ghost{background:rgba(255,255,255,.1);border-color:rgba(255,255,255,.35);color:#fff;box-shadow:none}
.final-box .btn.ghost .ic{color:#fff}
.final-box .btn.ghost:hover{background:rgba(255,255,255,.18);color:#fff;border-color:#fff}
.site-foot{border-top:1px solid var(--line);padding:3rem 0 3.5rem;font-size:.92rem;color:var(--muted)}
.foot-grid{display:grid;grid-template-columns:minmax(0,1.2fr) auto;gap:2rem 4rem;align-items:start}
.foot-grid p{margin-top:.9rem;max-width:30rem}
.site-foot nav{display:grid;gap:.45rem;justify-items:start}
.site-foot nav a{color:var(--text);text-decoration:none;font-weight:550}
.site-foot nav a:hover{color:var(--brand);text-decoration:underline}
.privacy{grid-column:1/-1;display:flex;gap:.7rem;align-items:flex-start;padding-top:1.5rem;border-top:1px solid var(--line);max-width:none!important;font-size:.85rem}
.privacy .ic{margin-top:.15rem;flex:none}

/* without JavaScript: no dead controls */
html:not(.js) .reel-frame,html:not(.js) .transcript,html:not(.js) .t-typo,html:not(.js) .t-detail,html:not(.js) .langsw,html:not(.js) #btn-theme{display:none}
.t-noscript,.reel-noscript{padding:1rem 1.2rem;border:1px dashed var(--line-strong);border-radius:var(--r);font-size:.95rem}
.reel-noscript{color:var(--band-text);border-color:var(--band-line)}

/* ---------------------------------------------------------------- scroll reveal (only with JS; never when reduced motion is requested) */
html.js .reveal{opacity:0;translate:0 1.4rem;transition:opacity .8s var(--ease),translate .8s var(--ease)}
html.js .reveal.in{opacity:1;translate:0 0}
html.js .reveal.in>*{animation:rise .7s var(--ease) backwards}
html.js .reveal.in>*:nth-child(2){animation-delay:.08s}html.js .reveal.in>*:nth-child(3){animation-delay:.16s}html.js .reveal.in>*:nth-child(4){animation-delay:.24s}html.js .reveal.in>*:nth-child(5){animation-delay:.32s}html.js .reveal.in>*:nth-child(6){animation-delay:.4s}

/* ---------------------------------------------------------------- responsive */
@media (max-width:68rem){
  .site-nav{display:none}
  .head-tools{margin-left:auto}
  .bento{grid-template-columns:repeat(2,minmax(0,1fr))}
  .steps,.levels,.results-grid,.techfacts,.stages,.news{grid-template-columns:repeat(2,minmax(0,1fr))}
  .steps::before{display:none}
  .level:nth-child(n){padding-bottom:1.4rem}
  .pipe{grid-template-columns:1fr;gap:1.3rem;max-width:26rem}
  .pipe li:not(:last-child)::after{right:auto;left:1.6rem;top:auto;bottom:-1rem;transform:rotate(135deg)}
}
@media (max-width:56rem){
  .m3d{grid-template-columns:1fr}
  .hero-grid{grid-template-columns:1fr}
  .hero-art{max-width:36rem;margin-inline:auto;width:100%}
  .tri{grid-template-columns:1fr}
  .bcard.wide{grid-template-columns:1fr}
  .teaser{grid-template-columns:1fr}
  .t-values{display:flex;gap:.5rem;overflow-x:auto;scroll-snap-type:x proximity;padding:.3rem .2rem .7rem;margin-inline:-.2rem;scrollbar-width:thin}
  .t-values li{flex:none;scroll-snap-align:start}
  .t-val{display:flex;flex-direction:column;align-items:flex-start;gap:.1rem;width:auto;padding:.55rem .8rem}
  .t-val .nm small,.t-val .chip{display:none}
  .t-val .nm{font-size:.82rem;color:var(--muted);white-space:nowrap}
  .t-detail{margin-top:.4rem}
  .limits{grid-template-columns:1fr}
  .foot-grid{grid-template-columns:1fr}
}
@media (max-width:36rem){
  .wrap{width:min(100% - 2rem,74rem)}
  .head-row{gap:.6rem;height:3.6rem}
  .logo{font-size:1.15rem}
  .logo .mark{width:1.75rem;height:1.75rem}
  .head-tools .btn{display:none}
  .btn{width:100%}
  .cta-row{flex-direction:column}
  .bento,.steps,.levels,.results-grid,.techfacts,.stages,.news{grid-template-columns:1fr}
  .anatomy li{grid-template-columns:1fr;gap:.15rem}
  .eyebrow{font-size:.74rem}
}
@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *,*::before,*::after{animation-duration:.001s!important;animation-delay:0s!important;animation-iteration-count:1!important;transition-duration:.001s!important}
  html.js .reveal{opacity:1;translate:none}
}
@media print{.site-head,.reel,.reel-after{display:none}.sec{padding:1.5rem 0}}

/* ---------------------------------------------------------------- 404 */
.nf-page{min-height:100vh;display:grid;place-items:center}
.nf-main{width:min(100% - 2.5rem,44rem);text-align:center;padding:3rem 0}
.nf-main .logo{display:flex;justify-content:center}
.nf-code{display:block;width:fit-content;margin:2.5rem auto 0;font:700 .8rem var(--mono);letter-spacing:.14em;text-transform:uppercase;color:var(--nf-ink);background:var(--nf-soft);border:1px dashed var(--nf);border-radius:999px;padding:.3rem .9rem}
.nf-main h1{font-size:clamp(2rem,5vw,3.2rem)}
.nf-main .lead{margin-inline:auto}
.nf-main .lead span{display:block;margin-top:.5rem;color:var(--muted);font-size:.95em}

/* ---------------------------------------------------------------- social image mode (?og=1, 1200 x 630): the build screenshots this */
html.og{font-size:17px}
html.og body{overflow:hidden}
html.og .site-head{position:absolute;inset:0 0 auto 0;background:none;border:0;box-shadow:none;backdrop-filter:none;-webkit-backdrop-filter:none}
html.og .site-head .wrap,html.og .hero .wrap{width:1080px}
html.og .head-row{height:6.2rem}
html.og .logo{font-size:1.9rem}
html.og .logo .mark{width:2.9rem;height:2.9rem;border-radius:.7rem}
html.og .site-nav,html.og .head-tools,html.og .skip,html.og .cta-row,html.og .hero-facts,html.og .eyebrow{display:none}
html.og .hero{height:630px;padding:5.2rem 0 0;display:grid;align-items:center}
html.og .hero-grid{grid-template-columns:minmax(0,1.02fr) minmax(0,1fr);gap:2.4rem}
html.og h1{font-size:3.25rem;margin-top:0}
html.og .lead{font-size:1.12rem;margin-top:1.2rem}
html.og .hero-svg *{animation:none!important}
html.og .hero-svg .vcard,html.og .hero-svg .ev{opacity:1!important}
html.og .hero-svg .thread.sum{opacity:.45!important}
html.og .hero-svg .thread.amber{stroke-dasharray:none;stroke-dashoffset:0}
