/* Not Another App: terminal theme */
@font-face{font-family:"Bricolage Grotesque";font-weight:400;font-display:swap;src:url(../assets/fonts/bricolage-grotesque-400.woff2) format("woff2")}
@font-face{font-family:"Bricolage Grotesque";font-weight:600;font-display:swap;src:url(../assets/fonts/bricolage-grotesque-600.woff2) format("woff2")}
@font-face{font-family:"Bricolage Grotesque";font-weight:700;font-display:swap;src:url(../assets/fonts/bricolage-grotesque-700.woff2) format("woff2")}
@font-face{font-family:"Bricolage Grotesque";font-weight:800;font-display:swap;src:url(../assets/fonts/bricolage-grotesque-800.woff2) format("woff2")}
@font-face{font-family:"JetBrains Mono";font-weight:400;font-display:swap;src:url(../assets/fonts/jetbrains-mono-400.woff2) format("woff2")}
@font-face{font-family:"JetBrains Mono";font-weight:500;font-display:swap;src:url(../assets/fonts/jetbrains-mono-500.woff2) format("woff2")}
@font-face{font-family:"JetBrains Mono";font-weight:600;font-display:swap;src:url(../assets/fonts/jetbrains-mono-600.woff2) format("woff2")}

:root{
  --bg:#030303;--bg2:#0b0b0b;--txt:#f4f6f0;--dim:rgba(244,246,240,.7);--faint:rgba(244,246,240,.46);--line:rgba(244,246,240,.12);
  --lime:#c6ff00;--cyan:#00f0ff;--magenta:#ff2bd6;--amber:#ffa31a;--yellow:#fff23b;--violet:#9d8cff;--grey:#7d8590;
  --g1:rgba(255,255,255,.045);--g2:rgba(255,255,255,.012);
  --disp:"Bricolage Grotesque",system-ui,sans-serif;--mono:"JetBrains Mono",ui-monospace,SFMono-Regular,Menlo,monospace;
  --out:cubic-bezier(.16,1,.3,1);--pad:clamp(20px,3.1vw,44px);--max:1520px
}
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
html{overflow-x:clip;background:var(--bg);color:var(--txt);-webkit-text-size-adjust:100%;scroll-padding-top:90px}
html.lenis,html.lenis body{height:auto}
.lenis.lenis-smooth{scroll-behavior:auto!important}
.lenis.lenis-stopped{overflow:hidden}
body{font:400 17px/1.55 var(--disp);overflow-x:clip;-webkit-font-smoothing:antialiased;min-height:100vh}
a{color:inherit;text-decoration:none}
button{font:inherit;color:inherit;background:none;border:0;cursor:pointer}
ol,ul{list-style:none}
:focus-visible{outline:2px solid var(--lime);outline-offset:3px;border-radius:4px}
::selection{background:var(--lime);color:#000}
.skiplink{position:fixed;left:16px;top:-60px;z-index:300;background:var(--lime);color:#000;font:600 14px var(--mono);padding:10px 14px;border-radius:4px;transition:top .2s}
.skiplink:focus{top:16px}
main:focus{outline:none}

/* ---------- background layers ---------- */
#rain{position:fixed;inset:0;width:100%;height:100%;z-index:-1;pointer-events:none}
body::after{content:"";position:fixed;inset:0;z-index:89;pointer-events:none;background:repeating-linear-gradient(180deg,rgba(255,255,255,.022) 0 1px,transparent 1px 3px)}
body::before{content:"";position:fixed;inset:0;z-index:-1;pointer-events:none;background:radial-gradient(1100px 700px at 78% 30%,rgba(198,255,0,.07),transparent 60%),radial-gradient(900px 600px at 10% 110%,rgba(0,240,255,.05),transparent 60%)}
#grain{position:fixed;inset:-100px;z-index:90;pointer-events:none;opacity:.05;mix-blend-mode:overlay;
  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='.9' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
  animation:grain 1s steps(5) infinite}
@keyframes grain{20%{transform:translate(-30px,20px)}40%{transform:translate(20px,-40px)}60%{transform:translate(-40px,-10px)}80%{transform:translate(30px,30px)}}

/* ---------- HUD ---------- */
#hud{position:fixed;inset:0;z-index:70;pointer-events:none;font:500 10.5px var(--mono);color:var(--faint);letter-spacing:.04em}
#hud .c{position:absolute;width:18px;height:18px;border:1px solid rgba(198,255,0,.55)}
#hud .tl{left:14px;top:14px;border-right:0;border-bottom:0}#hud .tr{right:14px;top:14px;border-left:0;border-bottom:0}
#hud .bl{left:14px;bottom:14px;border-right:0;border-top:0}#hud .br{right:14px;bottom:14px;border-left:0;border-top:0}
#hud .ch{position:absolute;left:44px;bottom:22px;display:flex;gap:10px;align-items:center;color:var(--txt)}
#hud .ch span{background:var(--lime);color:#000;padding:2px 6px;font-weight:600}
#hud .ch b{font-weight:500;letter-spacing:.08em}
#hud .geo{position:absolute;right:44px;bottom:24px}
#hud .inf{color:var(--lime)}
#scanx{position:absolute;left:0;right:0;height:1px;top:0;background:linear-gradient(90deg,transparent,rgba(198,255,0,.35),transparent);opacity:.5;animation:scan 9s linear infinite}
@keyframes scan{0%{transform:translateY(-10vh)}100%{transform:translateY(110vh)}}

/* ---------- custom cursor ---------- */
#cur,#ring{position:fixed;left:0;top:0;z-index:200;opacity:0;transition:opacity .4s;pointer-events:none;border-radius:50%}
#cur{width:8px;height:8px;margin:-4px;background:var(--lime);mix-blend-mode:difference}
#cur #coord{position:absolute;left:18px;top:14px;font:500 9.5px var(--mono);color:var(--lime);white-space:nowrap;letter-spacing:.04em}
#ring{width:44px;height:44px;margin:-22px;border:1px solid rgba(198,255,0,.6);display:flex;align-items:center;justify-content:center;transition:opacity .4s,width .35s var(--out),height .35s var(--out),margin .35s var(--out),background .35s}
#ring span{font:600 10px var(--mono);color:#000;opacity:0;transition:opacity .2s;text-transform:uppercase;letter-spacing:.06em}
#ring.big{width:78px;height:78px;margin:-39px;background:var(--lime);border-color:var(--lime)}
#ring.big span{opacity:1}
html.fine body,html.fine a,html.fine button{cursor:none}
html:not(.fine) #cur,html:not(.fine) #ring{display:none}

/* ---------- page wipe ---------- */
#wipe{position:fixed;inset:0;z-index:120;pointer-events:none;transform:translateY(100%);visibility:hidden;background:linear-gradient(180deg,#c6ff00,#1a2600 40%,#000)}

/* ---------- intro / boot ---------- */
#intro{position:fixed;inset:0;z-index:150;background:#000;display:none;align-items:center;padding:0 clamp(24px,8vw,120px)}
html.booting #intro{display:flex}
html.booting body{overflow:hidden}
#boot{font:500 clamp(12px,1.25vw,15px)/2 var(--mono);color:var(--txt);white-space:pre-wrap}
#boot .ok{color:var(--lime)}#boot .dots{color:var(--faint)}
#boot u{display:inline-block;width:.6em;height:1.1em;background:var(--lime);vertical-align:-.2em;text-decoration:none;animation:caret 1.05s steps(1) infinite}
#intro .skip{position:absolute;right:28px;bottom:26px;font:500 11px var(--mono);color:var(--dim);border:1px solid var(--line);border-radius:999px;padding:9px 14px}
@keyframes caret{50%{opacity:0}}

/* ---------- nav ---------- */
.nav{position:fixed;top:0;left:0;right:0;z-index:80;display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:16px;padding:22px var(--pad);background:linear-gradient(rgba(3,3,3,.82),rgba(3,3,3,0))}
.brand{display:inline-flex;align-items:center;gap:10px;font:600 16px var(--mono);letter-spacing:-.02em;min-height:44px;justify-self:start}
.mark{width:24px;height:24px;border-radius:6px;border:1px solid rgba(198,255,0,.6);display:inline-flex;align-items:center;justify-content:center;box-shadow:0 0 18px rgba(198,255,0,.25)}
.mark span{width:9px;height:9px;border-radius:2.5px;background:var(--lime);box-shadow:0 0 10px var(--lime);animation:pulse 2.4s infinite}
@keyframes pulse{50%{box-shadow:0 0 3px var(--lime);opacity:.75}}
.tabs{position:relative;display:flex;gap:2px;padding:5px;border:1px solid var(--line);border-radius:999px;background:rgba(10,10,10,.6);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px)}
.tabs a{position:relative;z-index:1;font:500 13px var(--mono);letter-spacing:-.02em;color:var(--dim);padding:0 16px;min-height:36px;display:inline-flex;align-items:center;border-radius:999px;transition:color .35s}
.tabs a:hover{color:var(--txt)}
.tabs a.on{color:#000}
.pill{position:absolute;top:5px;bottom:5px;left:5px;width:0;border-radius:999px;background:var(--txt);opacity:0;transition:left .7s var(--out),width .7s var(--out),opacity .3s}
.pill.show{opacity:1}
.sound{justify-self:end;display:flex;align-items:center;gap:10px;font:500 12px var(--mono);color:var(--dim);padding:0 4px;min-height:44px}
.sound .eq{display:flex;gap:2px;align-items:flex-end;height:12px;border:1px solid var(--line);border-radius:999px;padding:8px 12px;box-sizing:content-box}
.sound .eq b{width:2px;height:5px;background:currentColor;transition:height .3s}
.sound[aria-pressed=true]{color:var(--lime)}
.sound[aria-pressed=true] .eq b{animation:eq .9s infinite alternate}
.sound[aria-pressed=true] .eq b:nth-child(2){animation-delay:-.3s}.sound[aria-pressed=true] .eq b:nth-child(3){animation-delay:-.6s}.sound[aria-pressed=true] .eq b:nth-child(4){animation-delay:-.15s}
@keyframes eq{0%{height:3px}100%{height:12px}}

/* ---------- shared ---------- */
section{position:relative;max-width:var(--max);margin:0 auto;padding:clamp(72px,8.5vw,128px) var(--pad)}
.kicker{font:500 13px var(--mono);color:var(--lime);display:flex;align-items:center;gap:10px}
.kicker::before{content:">";font-weight:700}
.kicker::after{content:"";width:.6em;height:1.1em;background:var(--lime);margin-left:-4px;animation:caret 1.05s steps(1) infinite}
h2{font:800 clamp(40px,6.2vw,104px)/.9 var(--disp);letter-spacing:-.055em;margin-top:18px;text-shadow:-.6px 0 rgba(0,240,255,.45),.6px 0 rgba(255,43,214,.45)}
h3{font:700 24px/1.1 var(--disp);letter-spacing:-.03em}
.sec-head{margin-bottom:clamp(40px,5vw,72px)}
.split-head{display:flex;justify-content:space-between;align-items:flex-end;gap:24px 60px;flex-wrap:wrap}
.sec-lede{font-size:clamp(17px,1.5vw,21px);line-height:1.5;color:var(--dim);max-width:46ch;margin-top:22px}
.split-head .sec-lede{margin-top:0;font-family:var(--mono);font-size:15px}
.btn{display:inline-flex;align-items:center;gap:12px;min-height:52px;padding:0 24px;border-radius:999px;font:600 15px var(--mono);letter-spacing:-.02em;transition:background .3s,color .3s,box-shadow .3s,border-color .3s;will-change:transform}
.btn i{font-style:normal;transition:transform .4s var(--out)}
.btn:hover i{transform:translate(3px,-3px)}
.btn-lime{background:var(--lime);color:#000;box-shadow:0 0 0 0 rgba(198,255,0,.4)}
.btn-lime:hover{box-shadow:0 0 34px rgba(198,255,0,.45)}
.btn-ghost{border:1px solid rgba(244,246,240,.28);color:var(--txt)}
.btn-ghost:hover{border-color:var(--lime);color:var(--lime)}
.card{position:relative;overflow:hidden;border-radius:6px;padding:30px 32px;background:linear-gradient(155deg,var(--g1),var(--g2));border:1px solid var(--line);backdrop-filter:blur(18px) saturate(1.3);-webkit-backdrop-filter:blur(18px) saturate(1.3);isolation:isolate}
.card::before{content:"";position:absolute;inset:0;z-index:-1;opacity:0;transition:opacity .5s;background:radial-gradient(420px circle at var(--mx,50%) var(--my,50%),rgba(198,255,0,.12),transparent 60%)}
.card:hover::before{opacity:1}
.card::after{content:"";position:absolute;inset:0;border-radius:inherit;pointer-events:none;padding:1px;background:radial-gradient(260px circle at var(--mx,50%) var(--my,50%),rgba(198,255,0,.7),transparent 60%);-webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);-webkit-mask-composite:xor;mask-composite:exclude;opacity:0;transition:opacity .5s}
.card:hover::after{opacity:1}
.tag{display:inline-flex;align-items:center;gap:6px;font:500 11px var(--mono);color:var(--dim);border:1px solid var(--line);padding:4px 8px;border-radius:3px;letter-spacing:.02em}
.tag::before{content:"";width:6px;height:6px;background:currentColor}
.tag.real{color:var(--lime);border-color:rgba(198,255,0,.45)}

/* ---------- hero ---------- */
.hero{min-height:100svh;display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,1fr);align-items:center;gap:20px;padding-top:130px;padding-bottom:80px}
.hero h1{font:800 clamp(48px,6.4vw,118px)/.9 var(--disp);letter-spacing:-.06em;margin-top:22px}
.hero h1 .line{display:block;overflow:hidden;padding-bottom:.06em}
.hero h1 .li{display:inline-block}
.hero h1 .line:not(.l2){text-shadow:-.6px 0 rgba(0,240,255,.45),.6px 0 rgba(255,43,214,.45)}
.hero h1 .l2 s{position:relative;text-decoration:none;color:transparent;-webkit-text-stroke:1.5px var(--txt);display:inline-block}
.strike{position:absolute;left:-2%;right:-2%;top:54%;height:.075em;background:var(--magenta);box-shadow:0 0 18px rgba(255,43,214,.6);transform-origin:left;transform:scaleX(1)}
.hero h1 .l3 .li{color:var(--lime);text-shadow:0 0 40px rgba(198,255,0,.25)}
.lede{display:flex;justify-content:space-between;align-items:flex-end;gap:40px;margin-top:30px}
.lede p:not(.readout){font-size:clamp(17px,1.45vw,20px);line-height:1.5;color:var(--dim);max-width:48ch}
.readout{font:500 12.5px/1.6 var(--mono);color:var(--lime);margin-bottom:14px;min-height:1.6em}
.ctas{display:flex;flex-wrap:wrap;gap:12px;margin-top:30px}
.scrollcue{font:500 12px var(--mono);color:var(--faint);display:flex;align-items:center;gap:12px;white-space:nowrap}
.scrollcue i{width:1px;height:46px;background:linear-gradient(var(--txt),transparent);animation:cue 2s infinite var(--out);transform-origin:top}
@keyframes cue{0%{transform:scaleY(0)}60%{transform:scaleY(1);opacity:1}100%{transform:scaleY(1);opacity:0}}
.hero-viz{position:relative;align-self:stretch;min-height:520px;overflow:visible}
#swarm{position:absolute;inset:-6% 0 -6% -6%;width:106%;height:112%}
.viz-cap{position:absolute;left:8%;bottom:4%;font:500 12px var(--mono);color:var(--lime);display:flex;gap:8px;align-items:center}
.viz-cap span{color:var(--dim)}
.viz-cap u,.foot-mid u{display:inline-block;width:.6em;height:1.1em;background:var(--lime);text-decoration:none;animation:caret 1.05s steps(1) infinite}

/* ---------- report bento ---------- */
.bento{display:grid;grid-template-columns:repeat(12,1fr);gap:16px}
.r-card{display:flex;flex-direction:column;gap:18px;min-height:240px}
.r-card.planned{grid-column:span 4}.r-card.built{grid-column:span 8}
.r-card.finished{grid-column:span 7}.r-card.foot{grid-column:span 5;justify-content:space-between;background:linear-gradient(155deg,rgba(198,255,0,.08),rgba(198,255,0,.01))}
.r-card.foot p{font:500 15px/1.6 var(--mono);color:var(--dim)}
.big{font:500 clamp(64px,8vw,132px)/.9 var(--mono);letter-spacing:-.06em;color:var(--txt)}
.planned .big{color:var(--faint)}
.big-txt{font:800 clamp(34px,4.2vw,68px)/.95 var(--disp);letter-spacing:-.05em}
.built .big-txt{color:var(--lime);text-shadow:0 0 30px rgba(198,255,0,.35)}
.meter{height:10px;border-radius:2px;background:rgba(255,255,255,.06);position:relative;margin-top:auto}
.meter .fill{position:absolute;left:0;top:0;bottom:0;border-radius:2px;transform-origin:left}
.planned-fill{width:6%;background:var(--grey)}
.meter-run{display:flex;align-items:center;gap:8px;background:none}
.meter-run .fill{position:relative;flex:1;height:10px;background:linear-gradient(90deg,var(--lime),var(--cyan));box-shadow:0 0 18px rgba(198,255,0,.4)}
.meter-run svg{fill:none;stroke:var(--lime);stroke-width:2;stroke-linecap:round;stroke-linejoin:round;flex:none}
.meter-dash{background:repeating-linear-gradient(90deg,rgba(255,255,255,.22) 0 8px,transparent 8px 14px);background-size:28px 100%;animation:dash 1.4s linear infinite}
@keyframes dash{to{background-position:28px 0}}
.src{font:400 12.5px/1.5 var(--mono);color:var(--faint)}

/* ---------- what we do ---------- */
.cards3{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;perspective:1200px}
.cards3 .card{min-height:340px;display:flex;flex-direction:column;gap:16px;transform-style:preserve-3d;transition:border-color .4s}
.cards3 .card:hover{border-color:rgba(198,255,0,.35)}
.num{font:600 15px var(--mono);color:var(--lime)}
.cards3 h3{font-size:clamp(30px,3vw,44px);letter-spacing:-.045em;margin-top:auto}
.cards3 p{color:var(--dim);font-size:16px;line-height:1.6;max-width:36ch}
.glyph{position:absolute;right:26px;top:22px;font:500 46px var(--mono);color:rgba(244,246,240,.08);transition:color .4s,transform .6s var(--out)}
.cards3 .card:hover .glyph{color:rgba(198,255,0,.5);transform:translateZ(30px) scale(1.08)}

/* ---------- brain map ---------- */
.brain{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);grid-template-areas:'copy map' 'panel map';gap:0 40px;align-items:center}
.brain-copy{grid-area:copy;align-self:end}.brain-map{grid-area:map}.brain-panel{grid-area:panel;align-self:start}
.brain h2{font-size:clamp(40px,5vw,84px)}
.key{display:flex;flex-wrap:wrap;gap:12px 22px;margin-top:28px;font:500 12px var(--mono);color:var(--dim)}
.key li{display:flex;gap:8px;align-items:center}
.key i{width:9px;height:9px;border-radius:50%;background:var(--cyan);box-shadow:0 0 10px var(--cyan)}
.key i{background:var(--lime);box-shadow:0 0 10px var(--lime)}
.key i.leak{background:var(--magenta);box-shadow:0 0 10px var(--magenta)}
.key .tally{font-family:var(--mono);color:var(--lime)}
.steps{display:flex;flex-wrap:wrap;gap:8px;margin-top:26px;font:500 13px var(--mono);color:var(--txt)}
.steps li{border:1px solid var(--line);border-radius:3px;padding:6px 10px;display:flex;gap:8px}
.steps b{color:var(--cyan);font-weight:600}
.btn-sm{min-height:44px;padding:0 18px;font-size:13px;margin-top:22px}
#bmap .wire.loop{stroke:rgba(0,240,255,.28);stroke-dasharray:3 6}
#bmap .leakwire{stroke:rgba(255,43,214,.3);stroke-dasharray:4 6;transition:stroke .6s}
#bmap .leakwire.fixedwire{stroke:rgba(198,255,0,.45);stroke-dasharray:none}
#bmap .drip{fill:var(--magenta);filter:drop-shadow(0 0 4px var(--magenta))}
#bmap .leak circle.b{stroke-dasharray:5 4;transition:stroke .5s}
#bmap .leak.fixed circle.b{stroke-dasharray:none;fill:#070a00}
#bmap .leak .lab{font-size:17px}
#bmap .leak.fixed .sub{fill:var(--lime)}
#bmap .step .sub{fill:var(--cyan)}
.focus{margin-top:30px;border-left:1px solid rgba(198,255,0,.5);padding:4px 0 4px 18px;min-height:110px}
.f-k{font:500 12px var(--mono);color:var(--lime)}
.f-t{font:700 26px/1.15 var(--disp);letter-spacing:-.03em;margin-top:6px}
.f-d{font-size:15px;color:var(--dim);margin-top:6px;max-width:42ch}
.brain-map{position:relative;aspect-ratio:1;width:100%;max-width:760px;justify-self:center}
#bmap{width:100%;height:100%;overflow:visible}
#bmap .ringc{fill:none;stroke:rgba(244,246,240,.08)}
#bmap .ringd{fill:none;stroke:rgba(198,255,0,.18);stroke-dasharray:2 8}
#bmap .wire{fill:none;stroke:rgba(244,246,240,.18);stroke-width:1.2}
#bmap .wire.soon{stroke-dasharray:4 6;stroke:rgba(125,133,144,.4)}
#bmap .pulse{fill:none;stroke-width:3.5;stroke-linecap:butt;filter:drop-shadow(0 0 4px currentColor)}
#bmap .node{cursor:pointer;outline:none}
#bmap .node circle.b{fill:#060606;stroke-width:1.5;transition:r .4s var(--out),stroke-width .3s}
#bmap .node .lab{font:600 22px var(--mono);fill:var(--txt);letter-spacing:-.02em}
#bmap .node .sub{font:500 15px var(--mono);fill:var(--faint)}
#bmap .node .halo{fill:currentColor;opacity:0;transition:opacity .4s}
#bmap .node:hover .halo,#bmap .node:focus .halo,#bmap .node.on .halo{opacity:.16}
#bmap .node:focus-visible circle.b{stroke-width:3}
#bmap .core circle.b{fill:#050800;stroke:var(--lime)}
#bmap .core .lab{font-size:34px;font-weight:600;fill:var(--lime)}
#bmap .bot{fill:currentColor;opacity:.75}
#bmap .soon circle.b{stroke-dasharray:4 4}

/* ---------- timeline ---------- */
.how{max-width:none;padding-left:0;padding-right:0}
.how .sec-head{max-width:var(--max);margin-left:auto;margin-right:auto;padding:0 var(--pad)}
.tl-wrap{position:relative;overflow-x:auto;-webkit-overflow-scrolling:touch}
html.pinning .tl-wrap{overflow:hidden}
.tl{display:flex;gap:16px;padding:0 var(--pad);width:max-content}
.tl li{position:relative;width:clamp(280px,30vw,420px);min-height:300px;flex:none;border:1px solid var(--line);border-radius:6px;padding:28px;display:flex;flex-direction:column;gap:14px;background:linear-gradient(155deg,var(--g1),var(--g2))}
.tl li::before{content:"";position:absolute;left:28px;right:28px;top:0;height:2px;background:var(--line)}
.tl .when{font:600 13px var(--mono);color:var(--faint);letter-spacing:.04em;text-transform:uppercase}
.tl .say{font:700 clamp(22px,2vw,30px)/1.15 var(--disp);letter-spacing:-.03em}
.tl .cnt{margin-top:auto;font:500 12px var(--mono);color:var(--faint)}
.tl li.now{border-color:rgba(198,255,0,.5);background:linear-gradient(155deg,rgba(198,255,0,.12),rgba(198,255,0,.02))}
.tl li.now::before{background:var(--lime);box-shadow:0 0 14px var(--lime)}
.tl li.now .when,.tl li.now .cnt{color:var(--lime)}
.tl-progress{max-width:var(--max);margin:0 auto 26px;padding:0 var(--pad);height:2px}
.tl-progress::before{content:"";display:block;height:2px;background:var(--line)}
.tl-progress i{display:block;height:2px;margin-top:-2px;background:var(--lime);box-shadow:0 0 10px var(--lime);transform-origin:left;transform:scaleX(0)}
html.js:not(.rm) .how-pin{min-height:100vh;display:flex;flex-direction:column;justify-content:center}

/* ---------- CTA ---------- */
.cta{padding-top:40px}
.cta-box{display:flex;justify-content:space-between;align-items:flex-end;gap:32px;flex-wrap:wrap;padding:clamp(36px,6vw,80px);border-color:rgba(198,255,0,.3);background:radial-gradient(800px 400px at 90% 100%,rgba(198,255,0,.14),transparent 60%),linear-gradient(155deg,var(--g1),var(--g2))}
.cta-box h2{font-size:clamp(48px,8vw,140px)}
.btn-soon{cursor:default}
.btn-soon .dot{width:8px;height:8px;border-radius:50%;background:#000;animation:caret 1.05s steps(1) infinite}

/* ---------- footer ---------- */
.foot{max-width:var(--max);margin:0 auto;padding:30px var(--pad) 70px;display:flex;flex-wrap:wrap;justify-content:space-between;gap:12px 24px;font:500 13px var(--mono);color:var(--faint);border-top:1px solid var(--line)}
.foot-mid{color:var(--lime);display:flex;gap:6px;align-items:center}

/* ---------- reveal defaults (JS adds motion) ---------- */
html.js:not(.rm) [data-r]{opacity:0;transform:translateY(40px)}

/* ---------- responsive ---------- */
@media (max-width:1100px){
  .hero{grid-template-columns:1fr;padding-top:120px}
  .hero-viz{min-height:420px;order:2}
  .brain{grid-template-columns:1fr;grid-template-areas:'copy' 'map' 'panel';gap:24px}
  .r-card.planned,.r-card.built,.r-card.finished,.r-card.foot{grid-column:span 6}
}
@media (max-width:760px){
  .brain-map{width:116%;margin-left:-8%;max-width:none}
  .nav{grid-template-columns:1fr auto;padding:14px 16px;gap:10px}
  .tabs{grid-column:1/-1;grid-row:2;justify-self:stretch;justify-content:space-between}
  .tabs a{padding:0 6px;font-size:11.5px;flex:1;justify-content:center;white-space:nowrap;letter-spacing:-.04em}
  .sound .lbl{display:none}
  section{padding:84px 20px}
  .hero{padding-top:150px;min-height:auto}
  .hero h1{font-size:clamp(44px,13vw,64px)}
  .lede{flex-direction:column;align-items:flex-start;gap:26px}
  .scrollcue{display:none}
  .hero-viz{min-height:340px}
  .bento{grid-template-columns:1fr}
  .r-card.planned,.r-card.built,.r-card.finished,.r-card.foot{grid-column:auto;min-height:200px}
  .cards3{grid-template-columns:1fr}
  .cards3 .card{min-height:260px}
  #hud .geo{display:none}
  #hud .ch{left:20px;bottom:16px}
  #hud .c{display:none}
  .tl{flex-direction:column;width:auto;padding:0 20px}
  .tl li{width:auto;min-height:0}
  .tl-progress{display:none}
  .foot{flex-direction:column;padding-bottom:60px}
  .card{padding:24px}
}

/* ---------- reduced motion ---------- */
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation:none!important;transition-duration:.01ms!important;scroll-behavior:auto!important}
  #intro{display:none!important}
  [data-r]{opacity:1!important;transform:none!important}
}
html.rm .how-pin{min-height:0}
html.rm .tl,html:not(.js) .tl{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));width:auto}
html.rm .tl li,html:not(.js) .tl li{width:auto}
html.rm .tl-progress,html:not(.js) .tl-progress{display:none}
@media print{#rain,#grain,#hud,#cur,#ring,#wipe,#intro,.nav,body::after{display:none!important}html,body{background:#fff;color:#000}}
