/* Headroom landing page. Native CSS, Geist (self-hosted), one accent taken from the app icon. */

@font-face{font-family:"Geist";font-style:normal;font-weight:100 900;font-display:swap;src:url("fonts/geist-latin-wght-normal.woff2") format("woff2")}
@font-face{font-family:"Geist";font-style:italic;font-weight:100 900;font-display:swap;src:url("fonts/geist-latin-wght-italic.woff2") format("woff2")}
@font-face{font-family:"Geist Mono";font-style:normal;font-weight:100 900;font-display:swap;src:url("fonts/geist-mono-latin-wght-normal.woff2") format("woff2")}

:root{
  --bg:#f6f6f8;--bg-2:#ececf1;--surface:#ffffff;--line:rgba(20,20,40,.1);--line-strong:rgba(20,20,40,.18);
  --fg:#15151c;--fg-2:#4d4d5e;--fg-3:#62627a;
  --accent:#6c5ce7;--accent-ink:#ffffff;--accent-soft:rgba(108,92,231,.1);
  --safe:#1f7a4a;--usually:#1d6f82;--caution:#935a00;--never:#d2504f;
  --radius:14px;--radius-sm:10px;
  --shadow:0 1px 2px rgba(20,20,40,.06),0 24px 48px -24px rgba(60,50,120,.25);
  --ease:cubic-bezier(.16,1,.3,1);--mode:light;
  color-scheme:light dark;
}
@media (prefers-color-scheme:dark){:root:not([data-theme=light]){
  --bg:#0f0f14;--bg-2:#15151c;--surface:#191922;--line:rgba(255,255,255,.09);--line-strong:rgba(255,255,255,.16);
  --fg:#f1f1f6;--fg-2:#b4b4c4;--fg-3:#80809a;
  --accent:#8b7cf6;--accent-ink:#0f0f14;--accent-soft:rgba(139,124,246,.14);
  --safe:#5cc68a;--usually:#5bc0d3;--caution:#e4a53a;--never:#ec6e6e;
  --shadow:0 1px 2px rgba(0,0,0,.4),0 30px 60px -30px rgba(0,0,0,.7);--mode:dark;
}}
:root[data-theme=dark]{
  --bg:#0f0f14;--bg-2:#15151c;--surface:#191922;--line:rgba(255,255,255,.09);--line-strong:rgba(255,255,255,.16);
  --fg:#f1f1f6;--fg-2:#b4b4c4;--fg-3:#80809a;
  --accent:#8b7cf6;--accent-ink:#0f0f14;--accent-soft:rgba(139,124,246,.14);
  --safe:#5cc68a;--usually:#5bc0d3;--caution:#e4a53a;--never:#ec6e6e;
  --shadow:0 1px 2px rgba(0,0,0,.4),0 30px 60px -30px rgba(0,0,0,.7);--mode:dark;
}

*{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:84px;-webkit-text-size-adjust:100%}
body{margin:0;background:var(--bg);color:var(--fg);font:16px/1.6 "Geist",ui-sans-serif,system-ui,-apple-system,"Segoe UI",sans-serif;-webkit-font-smoothing:antialiased;font-feature-settings:"ss01","cv11"}
img{max-width:100%;height:auto;display:block}
a{color:inherit}
code{color:var(--fg-2);font:.9em "Geist Mono",ui-monospace,SFMono-Regular,Menlo,monospace;background:var(--accent-soft);padding:.1em .4em;border-radius:6px}
h1,h2,h3{margin:0;letter-spacing:-.02em;text-wrap:balance}
h2{font-size:clamp(28px,3.4vw,40px);line-height:1.1;font-weight:600}
h3{font-size:18px;font-weight:600;letter-spacing:-.01em}
p{margin:0}
.wrap{max-width:1180px;margin:0 auto;padding:0 20px}
.skip{position:absolute;left:-999px}.skip:focus{left:12px;top:12px;background:var(--surface);color:var(--fg);padding:8px 12px;border-radius:8px;z-index:99}
.ic{width:18px;height:18px;flex:none}
.ic-lg{width:28px;height:28px;color:var(--accent)}

/* nav */
.nav{position:sticky;top:0;z-index:20;background:color-mix(in srgb,var(--bg) 78%,transparent);backdrop-filter:saturate(1.5) blur(14px);-webkit-backdrop-filter:saturate(1.5) blur(14px);border-bottom:1px solid var(--line)}
.nav-row{display:flex;align-items:center;justify-content:space-between;height:64px}
.brand{display:flex;align-items:center;gap:10px;text-decoration:none;font-weight:600;font-size:17px}
.brand img{border-radius:7px}
.nav nav{display:flex;align-items:center;gap:22px}
.nav nav a:not(.btn){text-decoration:none;color:var(--fg-2);font-size:15px;font-weight:500;transition:color .2s}
.nav nav a:not(.btn):hover{color:var(--fg)}
.nav-gh{display:inline-flex;color:var(--fg-2)}.nav-gh .ic{width:20px;height:20px}
.tt{display:inline-flex;align-items:center;justify-content:center;width:34px;height:34px;border-radius:999px;border:1px solid transparent;background:transparent;color:var(--fg-2);cursor:pointer;padding:0;transition:color .2s,border-color .2s,background .2s}
.tt:hover{color:var(--fg);border-color:var(--line-strong)}
.tt .ic{width:19px;height:19px}
.tt .moon{display:none}
@media (prefers-color-scheme:dark){:root:not([data-theme=light]) .tt .sun{display:none}:root:not([data-theme=light]) .tt .moon{display:block}}
:root[data-theme=dark] .tt .sun{display:none}:root[data-theme=dark] .tt .moon{display:block}
.progress{position:absolute;left:0;bottom:-1px;height:2px;width:100%;background:var(--accent);transform-origin:0 50%;transform:scaleX(0)}
@supports (animation-timeline:scroll()){.progress{animation:grow linear both;animation-timeline:scroll(root)}}
@keyframes grow{from{transform:scaleX(0)}to{transform:scaleX(1)}}
::view-transition-old(root),::view-transition-new(root){animation-duration:.35s}
@media (max-width:760px){.nav nav a:not(.btn):not(.nav-gh){display:none}.nav nav{gap:12px}}

/* buttons: one shape system (pill) */
.btn{display:inline-flex;align-items:center;gap:8px;padding:12px 20px;border-radius:999px;font-weight:600;font-size:15px;text-decoration:none;border:1px solid transparent;white-space:nowrap;transition:transform .2s var(--ease),background .2s,border-color .2s,color .2s}
.btn:active{transform:translateY(1px) scale(.985)}
.btn-primary{background:var(--accent);color:var(--accent-ink);border-color:var(--accent)}
.btn-primary:hover{background:color-mix(in srgb,var(--accent) 88%,var(--fg))}
.btn-ghost{background:transparent;color:var(--fg);border-color:var(--line-strong)}
.btn-ghost:hover{background:var(--accent-soft);border-color:var(--accent)}
.btn-sm{padding:9px 16px;font-size:14px}
.btn:focus-visible,a:focus-visible,summary:focus-visible{outline:2px solid var(--accent);outline-offset:3px}

/* reveal */
.reveal{opacity:0;transform:translateY(14px);transition:opacity .7s var(--ease),transform .7s var(--ease)}
.reveal.in{opacity:1;transform:none}
.hero h1.reveal,.hero .hero-strip.reveal{opacity:1}
.reveal.d1{transition-delay:.08s}.reveal.d2{transition-delay:.16s}.reveal.d3{transition-delay:.24s}

/* hero: headline, then the app itself running on the page */
.hero{padding:56px 0 56px}
.hero-head{text-align:center;max-width:820px;margin:0 auto 32px}
.hero-strip{font-size:14px;font-weight:500;color:var(--fg-3);margin:0 0 18px}
h1{font-size:clamp(36px,5.2vw,68px);line-height:1.02;font-weight:600;letter-spacing:-.035em;margin:0 0 20px}
.lead{font-size:19px;line-height:1.5;color:var(--fg-2);max-width:40ch;margin:0 auto 28px}
.cta{display:flex;gap:12px;flex-wrap:wrap;justify-content:center}
.shot{margin:0;border-radius:var(--radius);overflow:hidden;border:1px solid var(--line);background:var(--surface);box-shadow:var(--shadow)}
.shot img{display:block}
.shot figcaption{padding:14px 18px;font-size:14px;color:var(--fg-2);border-top:1px solid var(--line)}
.demo{border:1px solid var(--line);border-radius:16px;background:var(--surface);box-shadow:var(--shadow);overflow:hidden;position:relative}
.demo-bar{display:flex;align-items:center;gap:14px;height:42px;padding:0 14px;border-bottom:1px solid var(--line);background:var(--bg-2)}
.lights{display:flex;gap:6px}.lights i{width:11px;height:11px;border-radius:50%;background:var(--line-strong)}
.demo-crumbs{display:flex;align-items:center;gap:6px;font-size:13px;color:var(--fg-3);min-width:0;overflow:hidden;white-space:nowrap}
.demo-crumbs button{font:inherit;background:none;border:0;padding:2px 4px;border-radius:5px;color:var(--fg-2);cursor:pointer}
.demo-crumbs button:hover:not(:disabled){background:var(--accent-soft);color:var(--accent)}
.demo-crumbs button:disabled{color:var(--fg);cursor:default;font-weight:500}
.demo-legend{list-style:none;margin:0 0 0 auto;padding:0;display:flex;gap:14px;font-size:12px;color:var(--fg-2);white-space:nowrap}
.demo-legend li{display:inline-flex;align-items:center;gap:6px}
.demo-legend li::before{content:"";width:9px;height:9px;border-radius:3px;background:var(--cl)}
@media (prefers-color-scheme:dark){:root:not([data-theme=light]) .demo-legend li::before{background:var(--c)}}
:root[data-theme=dark] .demo-legend li::before{background:var(--c)}
.demo-label{font-size:12px;color:var(--fg-3);white-space:nowrap;padding-left:14px;border-left:1px solid var(--line)}
.demo-canvas{position:relative;background:var(--bg)}
.demo-canvas canvas{display:block;width:100%;height:clamp(300px,50vh,500px);cursor:crosshair}
.demo-hint{position:absolute;left:50%;bottom:14px;transform:translateX(-50%);font-size:13px;color:var(--fg);background:color-mix(in srgb,var(--surface) 85%,transparent);backdrop-filter:blur(8px);padding:7px 12px;border-radius:999px;border:1px solid var(--line);opacity:0;transition:opacity .5s .3s;pointer-events:none;white-space:nowrap}
.demo.scanned .demo-hint{opacity:1}
.demo.scanned .demo-canvas:hover .demo-hint{opacity:0;transition-delay:0s}
.demo-tip[hidden]{display:none}
.demo-tip{position:absolute;left:0;top:0;width:260px;pointer-events:none;background:var(--surface);border:1px solid var(--line-strong);border-radius:10px;padding:10px 12px;box-shadow:var(--shadow);font-size:13px;display:grid;gap:3px;z-index:2}
.demo-tip b{font-weight:600;color:var(--fg)}.demo-tip span{color:var(--fg-3);font-size:12px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.demo-tip em{font-style:normal;font-family:"Geist Mono",monospace;color:var(--fg-2)}
.demo-tip .v{font-style:normal;font-size:12px;font-weight:500;justify-self:start;padding:2px 8px;border-radius:999px;margin-top:3px;color:#fff}
.v.safe{background:var(--safe)}.v.usually{background:var(--usually)}.v.caution{background:var(--caution)}.v.never{background:var(--never)}
.demo-status{display:flex;align-items:center;gap:22px;padding:12px 16px;border-top:1px solid var(--line);font-size:13.5px;color:var(--fg-2);flex-wrap:wrap;font-variant-numeric:tabular-nums}
.demo-status strong{color:var(--fg);font-weight:600}
.demo-status em{font-style:normal;color:var(--fg-3)}
.st{display:inline-flex;align-items:center;gap:6px;white-space:nowrap}
.st-safe strong{color:var(--safe)}
.demo.cleaned .st-safe{opacity:.5}
.demo-ring{width:18px;height:18px;transform:rotate(-90deg)}
.demo-ring circle{fill:none;stroke-width:3;stroke-linecap:round}.demo-ring .track{stroke:var(--accent);opacity:.2}.demo-ring .arc{stroke:var(--accent);stroke-dasharray:56.55;stroke-dashoffset:52;transition:stroke-dashoffset .9s var(--ease)}
.demo-clean{margin-left:auto}
.demo-clean:disabled{opacity:.5}
@media (max-width:600px){h1 br{display:none}}
@media (max-width:900px){.hero{padding:40px 0 36px}.hero-head{margin-bottom:24px}.demo-canvas canvas{height:clamp(260px,46vh,380px)}.demo-label,.demo-hint,.demo-legend{display:none}.demo-status{gap:14px;font-size:13px}.demo-clean{margin-left:0;width:100%;justify-content:center}}

/* numbers strip */
.numbers{border-block:1px solid var(--line);background:var(--bg-2)}
.numbers-row{display:grid;grid-template-columns:repeat(4,1fr);gap:18px;padding:22px 20px}
.numbers-row div{display:flex;flex-direction:column;gap:2px}
.numbers-row strong{font-size:26px;font-weight:600;letter-spacing:-.02em;font-variant-numeric:tabular-nums}
.numbers-row span{font-size:14px;color:var(--fg-2)}
@media (max-width:800px){.numbers-row{grid-template-columns:1fr 1fr}}

/* sections */
.section{padding:88px 0}
.section-tint{background:var(--bg-2);border-block:1px solid var(--line)}
.section-head{max-width:62ch;margin:0 0 36px}
.section-head p{margin-top:12px;font-size:17px;color:var(--fg-2)}
@media (max-width:900px){.section{padding:64px 0}}

/* bento: 6 cells, varied sizes, two with real screenshots */
.bento{display:grid;grid-template-columns:repeat(6,1fr);grid-auto-rows:minmax(180px,auto);gap:14px}
.cell{position:relative;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:24px;display:flex;flex-direction:column;gap:10px;transition:border-color .25s,transform .35s var(--ease)}
.cell:hover{border-color:var(--line-strong);transform:translateY(-2px)}
.cell p{color:var(--fg-2);font-size:15px}
.cell .ic-lg{margin-bottom:4px}
.cell-wide{grid-column:span 4;grid-row:span 2}
.cell-tall{grid-column:span 2;grid-row:span 2}
.cell:not(.cell-wide):not(.cell-tall){grid-column:span 2}
.cell-accent{background:var(--accent);color:var(--accent-ink);border-color:var(--accent)}
.cell-accent .ic-lg,.cell-accent p{color:inherit}.cell-accent p{opacity:.85}
.cell-accent code{background:rgba(255,255,255,.18);color:inherit}
.mini-map{width:120px;height:48px;margin-bottom:6px;overflow:visible}
.mini-map rect{fill:currentColor;opacity:.22;transform:scale(.6);transform-box:fill-box;transform-origin:center;transition:transform .6s var(--ease),opacity .6s var(--ease);transition-delay:calc(var(--i)*70ms)}
.mini-map rect:nth-child(odd){opacity:.34}.mini-map rect:first-child{opacity:.55}
.cell.in .mini-map rect{transform:scale(1)}
.cell-img{padding:0;overflow:hidden}
.cell-img img{width:100%;height:auto;flex:1;object-fit:cover;object-position:top left}
.cell-tall img{height:auto;max-height:420px;object-fit:cover;object-position:top}
.cell-img .cell-text{padding:20px 24px 24px;border-top:1px solid var(--line);display:flex;flex-direction:column;gap:8px}
@media (max-width:1000px){.bento{grid-template-columns:1fr 1fr}.cell,.cell-wide,.cell-tall,.cell:not(.cell-wide):not(.cell-tall){grid-column:span 1;grid-row:auto}.cell-wide{grid-column:span 2}}
@media (max-width:600px){.bento{grid-template-columns:1fr}.cell-wide{grid-column:span 1}}

/* menu bar section: simulated menu bar, notification, sparkline */
.mb-grid{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:56px;align-items:center}
.mb-copy .sub{margin:14px 0 26px;color:var(--fg-2);font-size:17px}
.mb-points{list-style:none;margin:0;padding:0;display:grid;gap:10px;counter-reset:mb}
.mb-points li{position:relative;padding:13px 16px 13px 52px;border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--surface);color:var(--fg-2);font-size:15px;opacity:.6;transition:opacity .4s,border-color .4s,transform .5s var(--ease)}
.mb-points li::before{counter-increment:mb;content:counter(mb);position:absolute;left:16px;top:12px;width:24px;height:24px;border-radius:50%;background:var(--accent-soft);color:var(--accent);font:600 13px/24px "Geist Mono",monospace;text-align:center;transition:background .4s,color .4s}
.mb-points strong{color:var(--fg)}
.mbsec[data-on="1"] li[data-phase="1"],.mbsec[data-on="2"] li[data-phase="2"],.mbsec[data-on="3"] li[data-phase="3"]{opacity:1;border-color:var(--accent);transform:translateX(4px)}
.mbsec[data-on="1"] li[data-phase="1"]::before,.mbsec[data-on="2"] li[data-phase="2"]::before,.mbsec[data-on="3"] li[data-phase="3"]::before{background:var(--accent);color:var(--accent-ink)}
.mbsec[data-on="0"] .mb-points li{opacity:.85}
.mb-demo{border:1px solid var(--line);border-radius:16px;background:var(--surface);box-shadow:var(--shadow);overflow:hidden}
.mb-bar{display:flex;justify-content:space-between;align-items:center;height:34px;padding:0 14px;font-size:13px;background:var(--bg-2);border-bottom:1px solid var(--line);color:var(--fg-2)}
.mb-left,.mb-right{display:flex;align-items:center;gap:14px}
.mb-left b{color:var(--fg);font-weight:600}
.mb-apple{width:12px;height:14px;border-radius:40% 40% 50% 50%;background:var(--fg);opacity:.85}
.mb-item{display:inline-flex;align-items:center;gap:6px;font-variant-numeric:tabular-nums;color:var(--fg)}
.mb-item em{font-style:normal}
.mb-ring{width:17px;height:17px;transform:rotate(-90deg)}
.mb-ring circle{fill:none;stroke-width:2.8;stroke-linecap:round}
.mb-ring .track{stroke:currentColor;opacity:.2}
.mb-ring .arc{stroke:currentColor;stroke-dasharray:53.4;stroke-dashoffset:13;transition:stroke .4s}
.mb-item.warn{color:var(--caution)}.mb-item.crit{color:var(--never)}
.mb-stage{position:relative;height:380px;background:var(--bg);overflow:hidden}
.mb-spark{position:absolute;left:0;right:0;bottom:52px;width:100%;height:240px;pointer-events:none}
.spark-fill{fill:var(--accent);opacity:.08}
.spark-line{fill:none;stroke:var(--accent);stroke-width:2.5;stroke-linejoin:round;stroke-linecap:round;stroke-dasharray:1;stroke-dashoffset:1}
.spark-up{opacity:0;fill:none;stroke:var(--safe);stroke-width:2.5;stroke-linecap:round;stroke-dasharray:1;stroke-dashoffset:1}
.mb-status{position:absolute;left:18px;right:18px;bottom:16px;display:flex;justify-content:space-between;align-items:center;font-size:13.5px;color:var(--fg-2)}
.mb-replay{font:inherit;color:var(--accent);background:none;border:0;padding:0;cursor:pointer}
.mb-replay[hidden]{display:none}
.mb-note{position:absolute;z-index:2;top:14px;right:14px;width:min(360px,calc(100% - 28px));display:grid;grid-template-columns:44px 1fr auto;gap:12px;align-items:center;padding:12px 14px;background:color-mix(in srgb,var(--surface) 92%,transparent);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);border:1px solid var(--line-strong);border-radius:16px;box-shadow:var(--shadow);font-size:13.5px;transform:translateX(calc(100% + 28px));opacity:0;transition:transform .6s var(--ease),opacity .4s}
.mb-note.in{transform:none;opacity:1}
.mb-note[hidden]{display:grid}
.mb-note img{border-radius:10px}
.mb-note div{display:grid;gap:2px;min-width:0}
.mb-note b{font-weight:600;color:var(--fg)}.mb-note span{color:var(--fg)}.mb-note small{color:var(--fg-2);font-size:12.5px;line-height:1.35}
.mb-note em{font-style:normal}
.mb-clean{font:600 13px Geist,system-ui,sans-serif;padding:8px 13px;border-radius:999px;border:0;background:var(--accent);color:var(--accent-ink);cursor:pointer}
.mb-clean:hover{filter:brightness(1.08)}
@media (max-width:1000px){.mb-left span{display:none}}
@media (max-width:900px){.mb-grid{grid-template-columns:1fr;gap:28px}.mb-stage{height:300px}.mb-spark{height:180px}}
/* duplicates: pinned stage, scroll drives data-pass 0..4; file cards flip out as passes eliminate them */
.dup{padding:0;--cw:168px;--gap:20px}
.dup-stage{height:340vh}
.dup-sticky{position:sticky;top:64px;min-height:calc(100vh - 64px);display:flex;align-items:center;padding:40px 0}
.dup-inner{display:flex;flex-direction:column;align-items:center;text-align:center;width:100%}
.dup-head{max-width:640px}
.dup-head .sub{margin:12px 0 0;color:var(--fg-2);font-size:17px}
.rail{list-style:none;margin:30px 0 0;padding:0;display:flex;align-items:center;gap:0}
.rail li{display:flex;align-items:center;gap:8px;font-size:14px;font-weight:500;color:var(--fg-3);transition:color .4s}
.rail li b{width:26px;height:26px;border-radius:50%;background:var(--accent-soft);color:var(--accent);font:600 13px/26px "Geist Mono",monospace;text-align:center;transition:background .4s,color .4s,box-shadow .4s}
.rail li+li::before{content:"";width:48px;height:1px;background:var(--line-strong);margin:0 14px;transition:background .4s}
[data-pass="1"] .rail li[data-i="1"],[data-pass="2"] .rail li[data-i="2"],[data-pass="3"] .rail li[data-i="3"],[data-pass="4"] .rail li[data-i="4"]{color:var(--fg)}
[data-pass="1"] .rail li[data-i="1"] b,[data-pass="2"] .rail li[data-i="2"] b,[data-pass="3"] .rail li[data-i="3"] b,[data-pass="4"] .rail li[data-i="4"] b{background:var(--accent);color:var(--accent-ink);box-shadow:0 0 0 5px var(--accent-soft)}
[data-pass="2"] .rail li[data-i="1"] b,[data-pass="3"] .rail li[data-i="1"] b,[data-pass="3"] .rail li[data-i="2"] b,[data-pass="4"] .rail li[data-i="1"] b,[data-pass="4"] .rail li[data-i="2"] b,[data-pass="4"] .rail li[data-i="3"] b{background:var(--accent);color:var(--accent-ink)}
[data-pass="2"] .rail li[data-i="2"]::before,[data-pass="3"] .rail li[data-i="2"]::before,[data-pass="3"] .rail li[data-i="3"]::before,[data-pass="4"] .rail li[data-i="2"]::before,[data-pass="4"] .rail li[data-i="3"]::before,[data-pass="4"] .rail li[data-i="4"]::before{background:var(--accent)}
.rail-desc{margin:16px 0 0;min-height:48px;max-width:560px;color:var(--fg-2);font-size:15.5px}
.cards{list-style:none;margin:28px 0 0;padding:0;display:flex;gap:var(--gap);perspective:1400px;position:relative}
.card{position:relative;width:var(--cw);height:calc(var(--cw) * 1.28);transform-style:preserve-3d;transition:transform .8s var(--ease);--tx:0px;--rot:0deg;--flip:0deg;--sc:1;transform:translateX(var(--tx)) rotate(var(--rot)) rotateY(var(--flip)) scale(var(--sc))}
.face{transition:opacity .5s;position:absolute;inset:0;border-radius:14px;border:1px solid var(--line);background:var(--surface);box-shadow:var(--shadow);backface-visibility:hidden;-webkit-backface-visibility:hidden;display:flex;flex-direction:column;padding:12px;text-align:left}
.face b{font-size:13.5px;font-weight:600;color:var(--fg);margin-top:10px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.face span{font-size:12px;color:var(--fg-3);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.face em{font-style:normal;font:12px "Geist Mono",monospace;color:var(--fg-2);margin-top:4px}
.thumb{height:46%;border-radius:9px;overflow:hidden;background:var(--bg-2)}
.thumb svg{width:100%;height:100%;display:block}
.reads{position:absolute;left:12px;right:12px;bottom:12px;height:6px;border-radius:3px;background:var(--bg-2);overflow:hidden;display:block}
.reads s{position:absolute;top:0;bottom:0;background:var(--accent);opacity:0;transform:scaleX(0);transform-origin:0 50%;transition:opacity .4s,transform .5s var(--ease)}
.reads .head{left:0;width:14%}.reads .mid{left:43%;width:14%}.reads .tail{right:0;width:14%;transform-origin:100% 50%}.reads .full{left:0;width:100%}
[data-pass="2"] .reads .head,[data-pass="3"] .reads .head,[data-pass="3"] .reads .mid,[data-pass="3"] .reads .tail{opacity:1;transform:scaleX(1)}
[data-pass="4"] .reads .full{opacity:1;transform:scaleX(1)}
.back{transform:rotateY(180deg);justify-content:center;align-items:center;text-align:center;background:var(--bg-2);border-color:var(--line-strong)}
.back b{margin:0;white-space:normal}.back span{white-space:normal;margin-top:6px;line-height:1.4}
.decoy-size .back b{color:var(--caution)}.decoy-head .back b{color:var(--usually)}.same .back b{color:var(--safe)}
[data-pass="1"] .decoy-size,[data-pass="2"] .decoy-size,[data-pass="3"] .decoy-size,[data-pass="4"] .decoy-size{--flip:180deg;--sc:.92}
[data-pass="2"] .decoy-head,[data-pass="3"] .decoy-head,[data-pass="4"] .decoy-head{--flip:180deg;--sc:.92}
[data-pass="4"] .decoy-size .face,[data-pass="4"] .decoy-head .face{opacity:0}
[data-pass="4"] .decoy-size,[data-pass="4"] .decoy-head{--sc:.8}
[data-pass="4"] .card.d1{--tx:calc(2 * (var(--cw) + var(--gap)) - 44px);--rot:-7deg;--sc:.96}
[data-pass="4"] .card.d3{--tx:calc(-2 * (var(--cw) + var(--gap)) + 44px);--rot:7deg;--sc:.96}
[data-pass="4"] .card.d2{--sc:1.04;z-index:2}
[data-pass="4"] .same .thumb{box-shadow:inset 0 0 0 2px var(--safe)}
[data-pass="4"] .card.d1{z-index:1}[data-pass="4"] .card.d3{z-index:1}
.group-badge{margin-top:22px;padding:7px 14px;border-radius:999px;background:var(--accent);color:var(--accent-ink);font-size:13.5px;font-weight:600;opacity:0;transform:translateY(8px);transition:opacity .5s .3s,transform .5s .3s var(--ease)}
[data-pass="4"] .group-badge{opacity:1;transform:none}
.dup-foot{margin:14px 0 0;display:flex;align-items:center;gap:16px;font-size:13.5px;color:var(--fg-3);font-variant-numeric:tabular-nums}
.dup-foot strong{color:var(--fg);font-family:"Geist Mono",monospace;font-weight:500}
.demo-steps{display:flex;gap:5px}.demo-steps i{width:18px;height:4px;border-radius:2px;background:var(--bg-2);transition:background .4s}
[data-pass="1"] .demo-steps i:nth-child(-n+1),[data-pass="2"] .demo-steps i:nth-child(-n+2),[data-pass="3"] .demo-steps i:nth-child(-n+3),[data-pass="4"] .demo-steps i:nth-child(-n+4){background:var(--accent)}
.dup .wide-shot{margin:0 auto 88px}
.dup .wide-shot[hidden]{display:none}
@media (max-width:900px){
  .dup{padding:64px 0 0;--cw:120px;--gap:12px}
  .dup-stage{height:auto}
  .dup-sticky{position:static;min-height:0;padding:0 0 40px}
  .cards{flex-wrap:wrap;justify-content:center}
  .rail li span{display:none}.rail li+li::before{width:24px;margin:0 8px}
  .dup .wide-shot{margin-bottom:64px}
}
@media (max-width:600px){.dup{--cw:96px;--gap:10px}.face b{font-size:12px}.face span,.face em{font-size:11px}}
@media (prefers-reduced-motion:reduce){.dup-stage{height:auto}.dup-sticky{position:static;min-height:0}.card,.reads s,.group-badge{transition:none}}

/* safety */
.levels{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin-bottom:28px}
.level{padding:20px;border:1px solid var(--line);border-radius:var(--radius);background:var(--surface)}
.level p{color:var(--fg-2);font-size:14.5px;margin-top:6px}
.dot{display:inline-block;width:10px;height:10px;border-radius:50%;margin-bottom:12px}
.dot.safe{background:var(--safe)}.dot.usually{background:var(--usually)}.dot.caution{background:var(--caution)}.dot.never{background:var(--never)}
.wide-shot{max-width:1080px;margin:0 auto}
@media (max-width:900px){.levels{grid-template-columns:1fr 1fr}}
@media (max-width:520px){.levels{grid-template-columns:1fr}}

/* install */
.install-grid{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,6fr);gap:48px;align-items:center}
.steps{list-style:none;margin:24px 0 0;padding:0;display:grid;gap:14px}
.steps li{display:flex;gap:14px;align-items:flex-start;color:var(--fg-2);font-size:15.5px}
.steps li span{flex:none;width:28px;height:28px;border-radius:50%;background:var(--accent);color:var(--accent-ink);font:600 14px/28px "Geist Mono",monospace;text-align:center}
.steps strong{color:var(--fg)}
.fine{margin-top:22px;font-size:14px;color:var(--fg-3)}
@media (max-width:900px){.install-grid{grid-template-columns:1fr;gap:28px}}

/* faq */
.faq-grid{display:grid;grid-template-columns:minmax(0,4fr) minmax(0,8fr);gap:48px;align-items:start}
.faq-intro p{margin-top:10px;color:var(--fg-2)}
.faq-list details{border-top:1px solid var(--line)}
.faq-list details:last-child{border-bottom:1px solid var(--line)}
summary{list-style:none;cursor:pointer;display:flex;justify-content:space-between;align-items:center;gap:16px;padding:18px 0;font-weight:500;font-size:16.5px}
summary::-webkit-details-marker{display:none}
.plus{position:relative;width:14px;height:14px;flex:none}
.plus::before,.plus::after{content:"";position:absolute;background:var(--fg-3);inset:6px 0;transition:transform .25s var(--ease)}
.plus::after{inset:0 6px}
details[open] .plus::after{transform:rotate(90deg)}
.answer{overflow:hidden}
.answer p{padding:0 0 18px;color:var(--fg-2);max-width:65ch}
@media (max-width:900px){.faq-grid{grid-template-columns:1fr;gap:20px}}

/* final */
.final{background:var(--surface);border-top:1px solid var(--line)}
.final-row{display:grid;grid-template-columns:auto 1fr auto;gap:24px;align-items:center;padding:48px 20px}
.final img{border-radius:16px}
.final p{color:var(--fg-2);margin-top:4px}
@media (max-width:760px){.final-row{grid-template-columns:1fr;text-align:left}}

footer{padding:24px 0;border-top:1px solid var(--line);font-size:14px;color:var(--fg-3)}
.foot{display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap}
.foot nav{display:flex;gap:18px}.foot a{color:var(--fg-2);text-decoration:none}.foot a:hover{color:var(--fg)}
.foot p a{text-decoration:underline;text-underline-offset:3px}

@media (prefers-reduced-motion:reduce){.reveal{opacity:1;transform:none;transition:none}.cell,.btn{transition:none}.mini-map rect{transform:none;transition:none}.progress{animation:none}.seg,.row,.passes li{transition:none}}
