/* MiMic: five sites, one engine. Each site has its own layout below; only the shell, widgets and flow are shared. */
:root{--e-reveal:cubic-bezier(.5,0,.1,1);--e-out:cubic-bezier(.165,.84,.44,1);--e-io:cubic-bezier(.77,0,.175,1);--e-spring:cubic-bezier(.34,1.2,.64,1);--pad:clamp(20px,4vw,56px)}
body,body.t-noct{--bg:#0b0b0c;--surface:#141416;--raised:#212124;--stage:#101012;--ink:#efebe4;--muted:#8f8a83;--line:rgb(255 255 255 / .1);--acc:#ff5b1f;--on-acc:#0b0b0c;--sans:"Geist",system-ui,sans-serif;--disp:"Geist",system-ui,sans-serif;--mono:"Geist Mono",ui-monospace,monospace;--r:22px;--r-s:12px}
body.t-orig{--bg:#000;--surface:#111214;--ink:#f4f5f6;--muted:#9a9ea6;--line:rgb(255 255 255 / .1);--acc:#eaff52;--on-acc:#000}
body.t-ledg{--bg:#f3f2ee;--surface:#ebe9e3;--raised:#dcd9d0;--stage:#e6e4dd;--ink:#111110;--muted:#67665f;--line:rgb(17 17 16 / .16);--acc:#e5321b;--on-acc:#fff;--sans:"Archivo",system-ui,sans-serif;--disp:"Archivo",system-ui,sans-serif;--mono:"JetBrains Mono",ui-monospace,monospace;--r:0px;--r-s:0px}
body.t-spec{--bg:#16130f;--surface:#1e1a15;--raised:#2b251e;--stage:#1a1611;--ink:#efe8db;--muted:#9d9486;--line:rgb(239 232 219 / .13);--acc:#ff6a4d;--on-acc:#16130f;--sans:"Geist",system-ui,sans-serif;--disp:"Fraunces",Georgia,serif;--mono:"Geist Mono",ui-monospace,monospace;--r:4px;--r-s:3px}
body.t-field{--bg:#060f0c;--surface:#0b1a15;--raised:#14291f;--stage:#081410;--ink:#e3f2ea;--muted:#86a297;--line:rgb(125 255 196 / .14);--acc:#7dffc4;--on-acc:#04110b;--sans:"Sora",system-ui,sans-serif;--disp:"Sora",system-ui,sans-serif;--mono:"Geist Mono",ui-monospace,monospace;--r:28px;--r-s:16px}

*{box-sizing:border-box;margin:0;padding:0}
html{background:var(--bg);-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}
body{background:var(--bg);color:var(--ink);font-family:var(--sans);font-size:15px;line-height:1.5;overflow-x:hidden}
a{color:inherit;text-decoration:none}
button{font:inherit;color:inherit;background:none;border:0;cursor:pointer}
::selection{background:var(--acc);color:var(--on-acc)}
:focus-visible{outline:2px solid var(--acc);outline-offset:4px}
em{font-style:normal}
.mono{font-family:var(--mono);font-size:12px;letter-spacing:.01em;font-feature-settings:"tnum","zero"}
.muted{color:var(--muted)}
.acc{color:var(--acc)}
.sr{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}
.pg{min-height:100vh;background:var(--bg);color:var(--ink)}

/* ---------- shell: loader, wipe, cursor ---------- */
.loader{position:fixed;inset:0;z-index:300;background:#0b0b0c;color:#efebe4;display:grid;place-items:center;transition:clip-path 900ms var(--e-io)}
.loader.out{clip-path:inset(0 0 100% 0)}
.loader-mark{display:flex;align-items:flex-end;font-family:"Geist",sans-serif;font-weight:600;font-size:clamp(72px,16vw,240px);letter-spacing:-.06em;line-height:.8;overflow:hidden;padding-bottom:.04em}
.loader-mark span{display:inline-block;transition:transform 800ms var(--e-io)}
.loader.lift .loader-mark span{transform:translateY(-110%)}
.loader-win{position:relative;width:.86em;height:.72em;margin:0 .02em;border-radius:.06em;overflow:hidden;background:#1c1c1f}
.loader-win i{position:absolute;inset:0;display:grid;place-items:center;font-style:normal;font-size:.36em;opacity:0}
.loader-win i.on{opacity:1}
.loader-meta{position:absolute;bottom:var(--pad);left:var(--pad);right:var(--pad);display:flex;justify-content:space-between;color:#8f8a83}
.wipe{position:fixed;inset:0;z-index:250;pointer-events:none;display:grid;grid-template-columns:repeat(6,1fr)}
.wipe span{background:var(--wipe,#ff5b1f);transform:scaleY(0);transform-origin:50% 100%}
.wipe.in span{animation:wIn 520ms var(--e-io) both;animation-delay:calc(var(--k) * 42ms)}
.wipe.out span{transform:scaleY(1);transform-origin:50% 0;animation:wOut 640ms var(--e-io) both;animation-delay:calc(var(--k) * 42ms)}
@keyframes wIn{to{transform:scaleY(1)}}
@keyframes wOut{to{transform:scaleY(0)}}
.wipe-name{position:fixed;inset:0;z-index:251;display:grid;place-items:center;pointer-events:none;font-family:"Geist",sans-serif;font-weight:600;font-size:clamp(48px,9vw,140px);letter-spacing:-.05em;color:var(--wipe-ink,#0b0b0c);opacity:0;transition:opacity 260ms}
.wipe-name.on{opacity:1}
.cursor{opacity:0;position:fixed;left:0;top:0;width:10px;height:10px;margin:-5px 0 0 -5px;border-radius:50%;background:#fff;mix-blend-mode:difference;pointer-events:none;z-index:240;transition:width 300ms var(--e-out),height 300ms var(--e-out),margin 300ms var(--e-out)}
.cursor.big{width:56px;height:56px;margin:-28px 0 0 -28px}
@media (hover:none){.cursor{display:none}}

/* ---------- shared pieces ---------- */
.hero{position:relative;overflow:hidden;isolation:isolate}
.hero canvas.scene{position:absolute;inset:0;width:100%;height:100%;z-index:-2;display:block}
.hero-hint{position:absolute;z-index:3;display:flex;align-items:center;gap:8px;pointer-events:none}
.hero-hint::before{content:"";width:18px;height:18px;border:1px solid var(--line);border-radius:50%;background:radial-gradient(circle,var(--acc) 0 3px,transparent 4px);animation:ping 2.4s var(--e-out) infinite}
@media (max-width:600px){.hero-hint{display:none}}
h1{font-family:var(--disp)}
.line{display:block;overflow:hidden;padding-bottom:.08em;margin-bottom:-.08em}
.word{display:inline-block;white-space:nowrap;transform:translateY(108%)}
.ready .word{animation:wordIn 1s var(--e-reveal) both;animation-delay:calc(var(--i) * 79ms + 120ms)}
@keyframes wordIn{from{transform:translateY(108%)}to{transform:none}}
.ch{display:inline-block}
.fade{opacity:0}
.ready .fade{animation:fadeIn .7s var(--e-reveal) both;animation-delay:var(--dl,0ms)}
@keyframes fadeIn{from{opacity:0;transform:translateY(16px)}to{opacity:1;transform:none}}
.reveal{opacity:0;transform:translateY(28px);transition:opacity .7s var(--e-reveal),transform .7s var(--e-reveal);transition-delay:calc(var(--i,0) * 79ms)}
.reveal.in{opacity:1;transform:none}
.kicker{display:flex;gap:18px;flex-wrap:wrap;align-items:center}
.kicker span{display:inline-flex;align-items:center;gap:8px}
.dot{width:6px;height:6px;border-radius:50%;background:var(--acc);animation:ping 2.4s var(--e-out) infinite;display:inline-block}
@keyframes ping{0%{box-shadow:0 0 0 0 color-mix(in srgb,var(--acc) 60%,transparent)}70%,100%{box-shadow:0 0 0 10px transparent}}
.chip{border:1px solid var(--acc);color:var(--acc);border-radius:99px;padding:2px 10px}
.mq{overflow:hidden;white-space:nowrap}
.mq-t{display:inline-flex;will-change:transform}
.btn{display:inline-flex;align-items:center;gap:14px;height:60px;padding:0 28px;border-radius:99px;background:var(--acc);color:var(--on-acc);font-weight:500;font-size:16px;will-change:transform;transition:transform 500ms var(--e-spring)}
.btn i{display:inline-block;font-style:normal;transition:transform 400ms var(--e-io)}
.btn:hover i{transform:translateX(5px)}
.btn.ghost{background:transparent;color:var(--ink);border:1px solid var(--line)}
.sound-toggle{display:inline-flex;align-items:center;gap:8px;font-family:var(--mono);font-size:12px;color:var(--muted);transition:color 300ms}
.sound-toggle:hover,.sound-on .sound-toggle{color:var(--ink)}
.sound-bars{display:flex;gap:2px;align-items:flex-end;height:10px}
.sound-bars b{width:2px;height:3px;background:currentColor}
.sound-on .sound-bars b{animation:bar 900ms var(--e-io) infinite alternate}
.sound-on .sound-bars b:nth-child(2){animation-delay:-300ms}
.sound-on .sound-bars b:nth-child(3){animation-delay:-600ms}
@keyframes bar{to{height:10px}}
.logo{height:22px;width:auto;display:block}
.sound-toggle .sl,.n-req,.s-cta,.f-cta,.l-sub{white-space:nowrap}
@media (max-width:900px){.sound-toggle .sl{display:none}}
.foot{display:flex;justify-content:space-between;gap:20px;flex-wrap:wrap;padding:28px var(--pad) 110px;border-top:1px solid var(--line);color:var(--muted)}
.foot a{color:var(--ink);border-bottom:1px solid var(--line);transition:color 300ms,border-color 300ms}
.foot a:hover{color:var(--acc);border-color:var(--acc)}
/* console */
.console{background:color-mix(in srgb,var(--surface) 82%,transparent);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);border:1px solid var(--line);border-radius:14px;overflow:hidden}
.console-top{display:flex;justify-content:space-between;padding:12px 16px;border-bottom:1px solid var(--line)}
.console-prompt{padding:16px 16px 10px;font-family:var(--mono);font-size:14px;min-height:48px}
.caret{display:inline-block;width:8px;height:16px;background:var(--acc);vertical-align:-3px;margin-left:2px;animation:blink 1s steps(1) infinite}
@keyframes blink{50%{opacity:0}}
.console-rows{padding:0 16px 14px;display:grid;gap:2px;min-height:226px}
.row{display:grid;grid-template-columns:78px 1fr;gap:12px;align-items:center;padding:6px 0;border-top:1px solid var(--line);opacity:0;transform:translateX(-8px);transition:opacity .4s var(--e-reveal),transform .4s var(--e-reveal)}
.row.in{opacity:1;transform:none}
.row .k{color:var(--muted)}
.row .v{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.sw{display:inline-block;width:14px;height:14px;border-radius:3px;border:1px solid var(--line)}

/* ---------- live widgets ---------- */
.stage{position:relative;display:grid;place-items:center;padding:24px;overflow:hidden;background:var(--stage)}
.w-bars{width:min(100%,380px);display:grid;gap:18px}
.bar-row{display:grid;gap:8px}
.bar-row .meta{display:flex;justify-content:space-between}
.bar{height:10px;background:var(--raised);border-radius:99px;overflow:hidden}
.bar i{display:block;height:100%;width:0;background:var(--ink);border-radius:inherit;transition:width 1200ms var(--e-reveal)}
.bar.acc i{background:var(--acc)}
.tier{padding:14px;border:1px dashed var(--line);border-radius:var(--r-s);line-height:1.7}
.w-curve{width:min(100%,320px)}
.w-curve svg{width:100%;height:auto;overflow:visible;display:block}
.w-curve rect,.w-curve line{stroke:var(--line)}
.w-curve path{stroke:var(--acc)}
.w-curve circle{fill:var(--acc)}
.curve-meta{display:flex;justify-content:space-between;gap:10px;margin-top:14px}
.w-spec{width:100%;max-width:420px}
.spec-aa{font-size:clamp(84px,10vw,160px);line-height:.9;letter-spacing:-.04em;transition:opacity 300ms var(--e-out)}
.spec-line{font-size:20px;line-height:1.25;margin:16px 0 20px;transition:opacity 300ms var(--e-out)}
.spec-meta{display:flex;justify-content:space-between;gap:10px;border-top:1px solid var(--line);padding-top:12px}
.w-pal{width:min(100%,400px)}
.pal-bar{display:flex;height:130px;border-radius:var(--r-s);overflow:hidden;border:1px solid var(--line)}
.pal-bar i{transition:flex-grow 900ms var(--e-io),background-color 900ms var(--e-io)}
.pal-chips{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin-top:12px}
.pal-chips div{display:grid;gap:6px}
.pal-chips span{height:32px;border-radius:calc(var(--r-s) * .7);border:1px solid var(--line);transition:background-color 900ms var(--e-io)}
.pal-name{margin-top:14px;display:flex;justify-content:space-between;gap:12px}
.w-flow{width:min(100%,400px);display:grid;gap:9px}
.step{display:flex;justify-content:space-between;align-items:center;padding:12px 16px;border:1px solid var(--line);border-radius:calc(var(--r-s) * .8);background:var(--surface);transition:background-color 400ms var(--e-out),color 400ms,transform 500ms var(--e-spring),border-color 400ms}
.step.on{background:var(--acc);color:var(--on-acc);border-color:var(--acc);transform:translateX(10px)}
.step.done{color:var(--muted)}
.w-shell{position:absolute;inset:0;width:100%;height:100%}
.scene-meta{position:absolute;left:22px;right:22px;bottom:18px;display:flex;justify-content:space-between}
.w-sounds{width:min(100%,400px);display:grid;gap:9px}
.snd{display:grid;grid-template-columns:1fr auto;align-items:center;gap:12px;padding:12px 16px;border:1px solid var(--line);border-radius:calc(var(--r-s) * .8);text-align:left;transition:border-color 300ms,background-color 300ms}
.snd:hover{border-color:color-mix(in srgb,var(--ink) 35%,transparent)}
.snd.hit{background:var(--raised)}
.snd.mine{border-color:var(--acc)}
.snd canvas{width:120px;height:28px}
.w-layers{position:relative;width:min(100%,320px);aspect-ratio:1;perspective:1100px}
.layer{position:absolute;inset:14% 6%;border:1px solid color-mix(in srgb,var(--ink) 22%,transparent);border-radius:var(--r-s);background:color-mix(in srgb,var(--surface) 85%,transparent);display:flex;align-items:flex-end;padding:12px 14px;transform:rotateX(58deg) rotateZ(-38deg);transition:transform 1200ms var(--e-io)}
.stage.live .layer{transform:rotateX(58deg) rotateZ(-38deg) translateZ(calc(var(--z) * 60px))}
.layer.top{border-color:var(--acc)}
.layer.top span{color:var(--acc)}

/* =========================================================
   NOCTURNE: control room
   ========================================================= */
.pg-noct{--rail:224px}
.pg-noct h1{font-weight:600;font-size:clamp(54px,9.4vw,168px);line-height:.92;letter-spacing:-.055em}
.pg-noct em{color:var(--acc)}
.n-rail{position:fixed;top:0;left:0;bottom:0;width:var(--rail);z-index:60;display:flex;flex-direction:column;gap:26px;padding:24px 22px;border-right:1px solid var(--line);background:rgb(11 11 12 / .9);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px)}
.n-mark{color:var(--ink);transition:color .3s}.n-mark:hover{color:var(--acc)}
.n-status{display:flex;align-items:center;gap:8px;color:var(--muted)}
.n-rlinks{display:grid;gap:2px;margin-top:20px}
.n-rlinks a{position:relative;padding:12px 12px;border-radius:10px;font-size:14px;color:var(--muted);transition:background-color .3s,color .3s}
.n-rlinks a::before{content:"";position:absolute;left:0;top:50%;width:3px;height:0;background:var(--acc);border-radius:3px;transform:translateY(-50%);transition:height .4s var(--e-io)}
.n-rlinks a:hover{background:var(--surface);color:var(--ink)}
.n-rlinks a:hover::before{height:60%}
.n-rfoot{margin-top:auto;display:grid;gap:14px}
.n-req{height:44px;border-radius:12px;background:var(--acc);color:var(--on-acc);font-weight:600;font-size:14px;white-space:nowrap;transition:transform .5s var(--e-spring)}
.n-req:hover{transform:translateY(-2px)}
.n-main{margin-left:var(--rail)}
.n-hero{min-height:100svh;padding:0 4vw;display:grid;grid-template-rows:1fr auto}
.n-shade{position:absolute;inset:0;z-index:-1;pointer-events:none;background:linear-gradient(90deg,color-mix(in srgb,var(--bg) 82%,transparent),transparent 55%),linear-gradient(0deg,var(--bg),transparent 34%)}
.n-hero .hero-hint{top:28px;right:4vw}
.n-copy{align-self:end;padding-top:110px}
.n-copy .kicker{margin-bottom:26px}
.n-foot{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,500px);gap:40px;align-items:end;padding:36px 0 110px}
.n-sub{max-width:420px;font-size:17px;line-height:1.45;color:var(--muted)}
.n-sub strong{color:var(--ink);font-weight:500}
.n-strip{display:grid;grid-template-columns:repeat(4,1fr);border-top:1px solid var(--line);border-bottom:1px solid var(--line);background:var(--surface)}
.n-strip>div{padding:22px 4vw 22px 24px;border-right:1px solid var(--line);display:flex;flex-direction:column-reverse;gap:6px}
.n-strip>div:last-child{border-right:0}
.n-strip b{font-family:var(--mono);font-weight:500;font-size:clamp(28px,3vw,46px);letter-spacing:-.04em;line-height:1;color:var(--acc)}
.n-strip span{font-size:11px;text-transform:uppercase}
.n-mon{height:calc(100svh + 8 * 55vh);position:relative}
.n-msticky{position:sticky;top:0;height:100svh;display:grid;grid-template-rows:auto 1fr;gap:26px;padding:56px 4vw 90px}
.n-mhead,.n-lhead{display:grid;grid-template-columns:auto 1fr auto;gap:30px;align-items:end}
.n-mhead h2,.n-lhead h2{font-size:clamp(40px,5vw,84px);font-weight:600;letter-spacing:-.05em;line-height:.95}
.n-mhead p,.n-lhead p{max-width:36ch;justify-self:end;line-height:1.5}
.n-mhead .mono,.n-lhead .mono{align-self:start;padding-top:10px}
.n-mgrid{display:grid;grid-template-columns:280px 1fr;gap:16px;min-height:0}
.n-chans{display:grid;gap:6px;align-content:start}
.n-chan{display:grid;grid-template-columns:44px 1fr;grid-template-rows:auto auto;column-gap:12px;row-gap:6px;align-items:center;text-align:left;padding:12px 14px;border:1px solid var(--line);border-radius:12px;background:var(--surface);transition:border-color .3s,background-color .3s,transform .5s var(--e-spring)}
.n-chan .mono{color:var(--muted);grid-row:1/3}
.n-chan b{font-weight:500;font-size:16px;letter-spacing:-.02em}
.n-meter{height:3px;background:var(--raised);border-radius:3px;overflow:hidden}
.n-meter i{display:block;height:100%;background:var(--muted);transform-origin:left;transform:scaleX(.3)}
.n-chan:hover{border-color:rgb(255 255 255 / .25)}
.n-chan.on{border-color:var(--acc);background:#1a1310;transform:translateX(8px)}
.n-chan.on .mono,.n-chan.on b{color:var(--acc)}
.n-chan.on .n-meter i{background:var(--acc)}
.n-screen{position:relative;display:grid;grid-template-rows:auto 1fr auto;border:1px solid var(--line);border-radius:22px;background:var(--stage);overflow:hidden;min-height:0;box-shadow:0 0 0 6px #0f0f11,0 40px 120px rgb(0 0 0 / .5)}
.n-screen::after{content:"";position:absolute;inset:0;pointer-events:none;background:repeating-linear-gradient(0deg,rgb(255 255 255 / .025) 0 1px,transparent 1px 4px)}
.n-stop{display:flex;justify-content:space-between;padding:14px 18px;border-bottom:1px solid var(--line)}
.n-rec{display:flex;align-items:center;gap:8px;color:var(--acc)}
.n-rec i{width:8px;height:8px;border-radius:50%;background:var(--acc);animation:blink 1.2s steps(1) infinite}
.n-sstage{position:relative;min-height:0}
.n-sv{position:absolute;inset:0;background:transparent;opacity:0;transform:scale(.97);transition:opacity .45s,transform .6s var(--e-out);pointer-events:none}
.n-sv.on{opacity:1;transform:none;pointer-events:auto}
.n-scopy{display:grid;grid-template-columns:auto 1fr;gap:30px;align-items:end;padding:18px 22px;border-top:1px solid var(--line)}
.n-scopy h3{font-size:clamp(26px,2.6vw,42px);font-weight:600;letter-spacing:-.045em;line-height:1}
.n-scopy p{color:var(--muted);font-size:14px;max-width:56ch}
.n-scopy.flip{animation:fadeIn .5s var(--e-reveal)}
.n-log{height:240vh;position:relative;border-top:1px solid var(--line)}
.n-lsticky{position:sticky;top:0;height:100svh;display:grid;grid-template-rows:auto 1fr;gap:30px;padding:56px 4vw 90px}
.n-term{border:1px solid var(--line);border-radius:18px;background:#070708;overflow:hidden;display:grid;grid-template-rows:auto 1fr}
.n-tbar{display:flex;justify-content:space-between;padding:14px 18px;border-bottom:1px solid var(--line)}
.n-lines{padding:22px;display:grid;align-content:start;gap:4px;font-size:clamp(12px,1.05vw,15px)}
.n-ll{display:grid;grid-template-columns:72px 150px 1fr;gap:16px;padding:10px 0;border-bottom:1px dashed var(--line);opacity:0;transform:translateX(-10px);transition:opacity .4s,transform .4s var(--e-out)}
.n-ll.on{opacity:1;transform:none}
.n-ll .nm{color:var(--ink)}
.n-ll .nm::before{content:"› ";color:var(--acc)}
.n-ll .tx{color:var(--muted)}
.n-done .tx{color:var(--ink)}
.n-lev{padding:110px 4vw 120px;border-top:1px solid var(--line)}
.n-eq{display:grid;grid-template-columns:repeat(14,1fr);gap:8px;align-items:end;height:420px;margin-top:60px;border-bottom:1px solid var(--line)}
.n-bar{position:relative;height:100%;display:flex;align-items:flex-end;cursor:default}
.n-bar i{display:block;width:100%;height:100%;border-radius:8px 8px 0 0;background:repeating-linear-gradient(0deg,var(--raised) 0 10px,transparent 10px 13px);transform-origin:bottom;transform:scaleY(calc(var(--h) + var(--j,0)));transition:background .3s}
.n-bar.on i,.n-bar:hover i{background:repeating-linear-gradient(0deg,var(--acc) 0 10px,transparent 10px 13px)}
.n-bar .mono{position:absolute;left:50%;bottom:10px;transform:translateX(-50%) rotate(-90deg);transform-origin:center;white-space:nowrap;font-size:11px;color:var(--muted);pointer-events:none;translate:0 -60px}
.n-bar.on .mono{color:var(--on-acc)}
.n-eqread{display:grid;grid-template-columns:auto auto 1fr;gap:20px;align-items:baseline;padding-top:20px}
.n-eqn{font-size:clamp(28px,3vw,48px);font-weight:600;letter-spacing:-.045em}
.n-eqc{font-size:18px}
.n-sheets{padding:110px 0 80px;border-top:1px solid var(--line)}
.n-sheets .n-lhead{padding:0 4vw}
.n-drag{margin-top:50px;overflow-x:auto;scrollbar-width:none;cursor:grab;user-select:none;-webkit-user-select:none;touch-action:pan-y}
.n-drag::-webkit-scrollbar{display:none}
.n-drag.grab{cursor:grabbing}
.n-dtrack{display:flex;gap:14px;padding:0 4vw;width:max-content}
.n-sheet{width:300px;height:360px;flex-shrink:0;display:flex;flex-direction:column;padding:22px;border:1px solid var(--line);border-radius:18px;background:var(--surface);transition:transform .5s var(--e-spring),border-color .3s}
.n-sheet:hover{transform:translateY(-6px);border-color:rgb(255 255 255 / .25)}
.n-sheet.alt{background:#1a1310;border-color:rgb(255 91 31 / .3)}
.n-shh{display:flex;justify-content:space-between;padding-bottom:12px;border-bottom:1px solid var(--line);color:var(--muted)}
.n-sheet p{margin-top:auto;font-size:22px;line-height:1.25;letter-spacing:-.025em}
.n-sheet small{margin-top:14px;display:block}
.n-end{min-height:90svh;display:grid;grid-template-columns:1.3fr .7fr;gap:4vw;align-items:end;padding:120px 4vw 80px;border-top:1px solid var(--line);background:radial-gradient(ellipse at 20% 100%,rgb(255 91 31 / .12),transparent 50%)}
.n-end h2{font-size:clamp(90px,16vw,280px);font-weight:600;letter-spacing:-.07em;line-height:.82}
.n-endside{display:grid;gap:26px;justify-items:start;padding-bottom:20px}
.n-endside p{color:var(--muted);font-size:17px;max-width:32ch}
.pg-noct .foot{padding-left:4vw}
@media (max-width:900px){
  .n-rail{bottom:auto;right:0;width:auto;flex-direction:row;align-items:center;padding:12px 16px;border-right:0;border-bottom:1px solid var(--line)}
  .n-rlinks,.n-status{display:none}.n-rfoot{margin:0 0 0 auto;display:flex;align-items:center}.n-req{height:38px;padding:0 14px}
  .n-main{margin-left:0}
  .n-foot{grid-template-columns:1fr}
  .n-strip{grid-template-columns:1fr 1fr}.n-strip>div:nth-child(2){border-right:0}.n-strip>div:nth-child(-n+2){border-bottom:1px solid var(--line)}
  .n-mon,.n-log{height:auto}.n-msticky,.n-lsticky{position:static;height:auto;padding:90px 4vw 40px}
  .n-mhead,.n-lhead{grid-template-columns:1fr;gap:14px}.n-mhead p,.n-lhead p{justify-self:start}
  .n-mgrid{grid-template-columns:1fr}.n-chans{grid-template-columns:1fr 1fr}.n-chan.on{transform:none}.n-sstage{height:340px}
  .n-scopy{grid-template-columns:1fr;gap:10px}
  .n-ll{grid-template-columns:60px 1fr;}.n-ll .tx{grid-column:2}
  .n-eq{gap:4px;height:300px}.n-bar .mono{display:none}
  .n-end{grid-template-columns:1fr}
}
.pg-orig{position:fixed;inset:0;z-index:1;background:#000}
.pg-orig iframe{display:block;width:100%;height:100%;border:0;background:#000}
html.orig-on,html.orig-on body{overflow:hidden}
html.orig-on .cursor{display:none}

/* =========================================================
   LEDGER: newspaper
   ========================================================= */
.pg-ledg{background:var(--bg)}
.pg-ledg h1{font-weight:900;font-stretch:72%;text-transform:uppercase;font-size:clamp(46px,9.4vw,170px);line-height:.84;letter-spacing:-.03em}
.l-mast{border-bottom:3px double var(--ink);background:var(--bg);position:relative;z-index:5}
.l-strip{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:20px;padding:10px 4vw;border-bottom:1px solid var(--ink);text-transform:uppercase;font-size:11px}
.l-mid{font-family:var(--disp);font-weight:800;font-stretch:80%;letter-spacing:.02em;font-size:13px}
.l-r{display:flex;gap:18px;justify-content:flex-end;align-items:center}
.l-sub{background:var(--ink);color:var(--bg);padding:8px 14px;font-family:var(--mono);font-size:11px;text-transform:uppercase;transition:background-color .3s}
.l-sub:hover{background:var(--acc)}
.l-nav{display:flex;align-items:center;gap:34px;padding:16px 4vw}
.l-mark .logo{height:28px}
.l-nav a:not(.l-mark){font-weight:700;font-stretch:85%;text-transform:uppercase;font-size:14px;letter-spacing:.02em;position:relative}
.l-nav a:not(.l-mark)::after{content:"";position:absolute;left:0;right:0;bottom:-4px;height:3px;background:var(--acc);transform:scaleX(0);transform-origin:left;transition:transform .45s var(--e-io)}
.l-nav a:hover::after{transform:scaleX(1)}
.l-price{margin-left:auto;text-transform:uppercase;color:var(--muted)}
.l-hero{padding:0 4vw 36px;min-height:calc(100svh - 110px);display:grid;grid-template-rows:1fr auto;gap:30px;background-image:repeating-linear-gradient(90deg,transparent 0 calc(100% / 12 - 1px),rgb(17 17 16 / .06) calc(100% / 12 - 1px) calc(100% / 12))}
.l-hero .hero-hint{top:44px;right:4vw}
.l-hgrid{display:grid;grid-template-columns:1fr 280px;gap:4vw;align-items:end;padding-top:90px}
.l-hl .kicker{margin-bottom:22px;text-transform:uppercase}
.l-spec{border-top:3px solid var(--ink);background:color-mix(in srgb,var(--bg) 88%,transparent)}
.l-spec h6{font-weight:500;text-transform:uppercase;padding:10px 0;border-bottom:1px solid var(--ink)}
.l-spec dl div{display:grid;grid-template-columns:86px 1fr;gap:10px;padding:8px 0;border-bottom:1px solid var(--line);font:11px/1.5 var(--mono)}
.l-spec dt{text-transform:uppercase;color:var(--muted)}
.l-hfoot{display:grid;grid-template-columns:1fr 1.1fr;gap:4vw;padding-top:18px;border-top:3px solid var(--ink)}
.l-hfoot p{font-size:clamp(16px,1.45vw,20px);line-height:1.45;max-width:46ch;column-gap:30px}
.l-hfoot strong{font-weight:800}
.l-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:0}
.l-stats>div{padding:0 14px;border-left:1px solid var(--ink)}
.l-stats b{display:block;font-weight:900;font-stretch:75%;font-size:clamp(28px,3.4vw,52px);letter-spacing:-.03em;line-height:1}
.l-stats small{display:block;margin-top:6px;font-size:10px;text-transform:uppercase;color:var(--muted)}
.l-ticker{background:var(--ink);color:var(--bg);padding:10px 0;font-family:var(--mono);font-size:13px}
.l-ticker span{padding-right:44px}
.l-ticker b{color:#fff;font-weight:500}
.l-ticker i{font-style:normal;color:var(--acc)}
.l-head{display:grid;grid-template-columns:repeat(12,1fr);gap:16px;align-items:end;padding:110px 4vw 40px;border-top:3px solid var(--ink)}
.l-head h2{grid-column:span 8;font-weight:900;font-stretch:72%;text-transform:uppercase;font-size:clamp(52px,8.4vw,150px);line-height:.84;letter-spacing:-.03em}
.l-head h2 em{color:var(--acc)}
.l-head p{grid-column:span 4;color:var(--muted);line-height:1.55}
.l-table{margin:0 4vw 120px;border-top:3px solid var(--ink)}
.l-th{display:grid;grid-template-columns:1.1fr 1fr 1fr 40px;gap:20px;padding:10px 0;border-bottom:1px solid var(--ink);text-transform:uppercase;color:var(--muted)}
.l-row{border-bottom:1px solid var(--ink)}
.l-rh{width:100%;display:grid;grid-template-columns:1.1fr 1fr 1fr 40px;gap:20px;align-items:center;text-align:left;padding:18px 0;transition:background-color .3s,padding .45s var(--e-io)}
.l-rh:hover{background:var(--ink);color:var(--bg);padding-left:14px}
.l-n{font-weight:900;font-stretch:72%;text-transform:uppercase;font-size:clamp(30px,3.8vw,60px);letter-spacing:-.02em;line-height:.9}
.l-plus{width:26px;height:26px;position:relative;justify-self:end}
.l-plus::before,.l-plus::after{content:"";position:absolute;left:0;right:0;top:50%;height:3px;margin-top:-1.5px;background:currentColor;transition:transform .45s var(--e-io)}
.l-plus::after{transform:rotate(90deg)}
.l-row.open .l-plus::after{transform:rotate(0)}
.l-row.open .l-n{color:var(--acc)}
.l-drawer{display:grid;grid-template-rows:0fr;transition:grid-template-rows .65s var(--e-io)}
.l-row.open .l-drawer{grid-template-rows:1fr}
.l-drawer>div{overflow:hidden}
.l-dbody{display:grid;grid-template-columns:1fr 1.3fr;gap:4vw;padding:10px 0 34px}
.l-dcopy h3{font-weight:900;font-stretch:72%;text-transform:uppercase;font-size:clamp(34px,4vw,64px);line-height:.9;letter-spacing:-.02em}
.l-dcopy h3 em{color:var(--acc)}
.l-dcopy p{margin-top:18px;color:var(--muted);max-width:40ch;line-height:1.55}
.l-dbody .stage{min-height:340px;border:2px solid var(--ink)}
.l-how{height:330vh;position:relative;background:var(--ink);color:var(--bg)}
.l-hstick{position:sticky;top:0;height:100svh;display:grid;grid-template-rows:1fr auto;padding:90px 4vw 70px;overflow:hidden}
.l-htop{align-self:center}
.l-sname{font-weight:900;font-stretch:68%;text-transform:uppercase;font-size:clamp(64px,13vw,240px);line-height:.82;letter-spacing:-.03em;margin:18px 0 26px;color:#f3f2ee}
.l-stext{max-width:52ch;font-size:clamp(16px,1.5vw,21px);line-height:1.5;color:#c9c7bf}
.l-ruler{position:relative;height:120px}
.l-ticks{position:absolute;left:0;right:0;top:0;height:30px;border-top:2px solid #f3f2ee;background:repeating-linear-gradient(90deg,#f3f2ee 0 1px,transparent 1px 12px) top/100% 10px no-repeat,repeating-linear-gradient(90deg,#f3f2ee 0 2px,transparent 2px 60px) top/100% 24px no-repeat}
.l-marker{position:absolute;top:-24px;left:0;width:3px;height:70px;background:var(--acc);transform:translateX(-1px)}
.l-marker span{position:absolute;bottom:100%;left:6px;color:var(--acc);margin-bottom:4px}
.l-labels{position:absolute;top:50px;left:0;right:0;display:grid;grid-template-columns:repeat(6,1fr)}
.l-labels span{border-left:1px solid #f3f2ee;padding:6px 8px;text-transform:uppercase;font-size:11px;opacity:.35;transition:opacity .3s,color .3s}
.l-labels span.on{opacity:1;color:var(--acc)}
.l-pack{padding-bottom:110px}
.l-bars{padding:0 4vw;display:grid;grid-template-columns:1fr 1fr;gap:0 4vw}
.l-bar{display:grid;grid-template-columns:170px 1fr 44px;gap:16px;align-items:center;padding:14px 0;border-bottom:1px solid var(--ink);font:12px var(--mono);text-transform:uppercase}
.l-bar i{height:16px;background:var(--line);position:relative;overflow:hidden}
.l-bar i::after{content:"";position:absolute;inset:0;background:var(--ink);transform:scaleX(0);transform-origin:0 50%;transition:transform 1.4s var(--e-io)}
.l-bar.in i::after{transform:scaleX(var(--w))}
.l-bar:hover i::after{background:var(--acc)}
.l-bar b{text-align:right;font-weight:500}
.l-cols{display:grid;grid-template-columns:repeat(3,1fr);margin:0 4vw;border-top:3px solid var(--ink);border-bottom:1px solid var(--ink)}
.l-cols article{padding:34px 28px 40px;border-right:1px solid var(--ink)}
.l-cols article:first-child{padding-left:0}
.l-cols article:last-child{border-right:0}
.l-cols h5{font-weight:900;font-stretch:75%;text-transform:uppercase;font-size:28px;letter-spacing:-.01em;margin-bottom:12px}
.l-cols p{line-height:1.6;color:var(--muted)}
.l-cols p::first-letter{float:left;font-family:var(--disp);font-weight:900;font-stretch:70%;font-size:58px;line-height:.85;margin:4px 8px 0 0;color:var(--ink)}
.l-colo{padding-bottom:110px}
.l-pull{margin:0 4vw 40px;padding:30px 0;border-top:1px solid var(--ink);border-bottom:1px solid var(--ink);font-family:var(--mono);font-size:clamp(18px,2.4vw,34px);line-height:1.3;color:var(--acc)}
.l-rec{display:grid;grid-template-columns:repeat(4,1fr);margin:0 4vw;gap:0}
.l-rec>div{padding:20px 20px 26px 0;border-top:1px solid var(--ink)}
.l-rec dt{text-transform:uppercase;color:var(--muted);margin-bottom:8px}
.l-rec dd{font-size:16px;line-height:1.4}
.l-rec small{display:block;margin-top:8px;color:var(--muted)}
.l-cta{background:var(--acc);color:#fff;padding:110px 4vw 70px;display:grid;grid-template-columns:1.4fr .6fr;gap:4vw;align-items:end}
.l-cta h2{font-weight:900;font-stretch:66%;text-transform:uppercase;font-size:clamp(100px,22vw,400px);line-height:.76;letter-spacing:-.04em}
.l-cside p{max-width:30ch;line-height:1.55;margin-bottom:34px;font-size:17px}
.l-stamp{width:190px;height:190px;border-radius:50%;background:#111110;color:#fff;display:grid;place-items:center;font-family:var(--mono);font-size:12px;text-transform:uppercase;letter-spacing:.08em;position:relative;transform:rotate(-12deg);transition:transform .5s var(--e-spring)}
.l-stamp::before{content:"";position:absolute;inset:10px;border:1px dashed #fff;border-radius:50%;animation:spin 18s linear infinite}
.l-stamp:hover{transform:rotate(0) scale(1.05)}
@keyframes spin{to{transform:rotate(1turn)}}
.pg-ledg .foot{border-top:3px double var(--ink)}
@media (max-width:900px){
  .l-strip{grid-template-columns:1fr;text-align:center}.l-strip>span:first-child{display:none}.l-r{justify-content:center}
  .l-nav{gap:18px;overflow-x:auto}.l-nav a:not(.l-mark){font-size:12px;white-space:nowrap}.l-price{display:none}
  .l-hgrid{grid-template-columns:1fr;padding-top:60px}.l-spec{display:none}
  .l-hfoot{grid-template-columns:1fr}.l-stats{grid-template-columns:1fr 1fr;row-gap:16px}
  .l-head{display:block;padding-top:80px}.l-head p{margin-top:16px}
  .l-th{display:none}.l-rh{grid-template-columns:1fr 30px}.l-rh .mono{display:none}
  .l-dbody{grid-template-columns:1fr}
  .l-labels span{font-size:9px;padding:4px}
  .l-bars{grid-template-columns:1fr}.l-bar{grid-template-columns:110px 1fr 34px}
  .l-cols{grid-template-columns:1fr}.l-cols article{border-right:0;border-bottom:1px solid var(--ink);padding:26px 0}
  .l-rec{grid-template-columns:1fr 1fr}
  .l-cta{grid-template-columns:1fr}.l-stamp{width:150px;height:150px}
}

/* =========================================================
   SPECIMEN: type book
   ========================================================= */
.pg-spec{font-family:var(--sans)}
.pg-spec h1{font-weight:300;font-size:clamp(64px,13vw,224px);line-height:.88;letter-spacing:-.045em;font-variation-settings:"opsz" 144}
.pg-spec h1 .acc{font-style:italic}
.s-nav{position:absolute;top:0;left:0;right:0;z-index:20;display:grid;grid-template-columns:1fr auto 1fr;align-items:center;padding:24px var(--pad)}
.s-l,.s-r{display:flex;gap:26px;align-items:center}
.s-r{justify-content:flex-end}
.s-l a,.s-r a{font-size:14px;color:var(--muted);transition:color .3s}
.s-l a:hover,.s-r a:hover{color:var(--ink)}
.s-mark{font-family:var(--disp);font-style:italic;font-weight:400;font-size:32px;letter-spacing:-.03em}
.s-cta{border:1px solid var(--line);border-radius:99px;padding:9px 16px;font-size:13px;transition:background-color .3s,color .3s,border-color .3s}
.s-cta:hover{background:var(--acc);color:var(--on-acc);border-color:var(--acc)}
.s-hero{min-height:100svh;padding:110px var(--pad) 60px;display:flex;align-items:flex-end}
.s-hero .hero-hint{top:92px;right:var(--pad)}
.s-hcopy{width:100%}
.s-hcopy .kicker{margin-bottom:26px}
.s-hfoot{display:grid;grid-template-columns:1fr 1fr;gap:5vw;align-items:end;margin-top:40px;padding-top:24px;border-top:1px solid var(--line)}
.s-hfoot p{font-family:var(--disp);font-weight:300;font-size:clamp(19px,1.7vw,25px);line-height:1.4;max-width:34ch}
.s-hfoot strong{font-style:italic;font-weight:400;color:var(--acc)}
.s-meta{display:grid;grid-template-columns:1fr 1fr;gap:10px 20px;color:var(--muted)}
.s-meta span{border-top:1px solid var(--line);padding-top:8px}
.s-fall{padding:120px var(--pad) 140px;border-top:1px solid var(--line)}
.s-fhead{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:50px}
.s-fhead p{font-family:var(--disp);font-style:italic;font-weight:300;font-size:22px;color:var(--muted)}
.s-line{display:grid;grid-template-columns:90px 1fr;gap:20px;align-items:baseline;padding:10px 0;border-bottom:1px solid var(--line);overflow:hidden}
.s-line .mono{line-height:1.4}
.s-line .mono em{color:var(--acc);font-style:normal}
.s-t{font-family:var(--disp);font-size:var(--s);line-height:1.08;letter-spacing:-.025em;white-space:nowrap;transition:color .4s}
.s-line.hot .s-t{color:var(--acc)}
.s-chap{padding:150px var(--pad) 70px;text-align:center;display:grid;gap:22px;justify-items:center}
.s-chap h2{font-family:var(--disp);font-weight:300;font-size:clamp(58px,9vw,160px);line-height:.88;letter-spacing:-.045em}
.s-chap h2 em{font-style:italic;color:var(--acc)}
.s-chap p{color:var(--muted);max-width:40ch}
.s-book{position:relative}
.s-page{position:sticky;top:0;min-height:100svh;display:grid;grid-template-columns:.85fr 1.15fr;gap:5vw;align-items:center;padding:12vh 6vw;background:var(--bg);border-top:1px solid var(--line);transform-origin:50% 0;will-change:transform}
.s-page:nth-child(odd){background:#1b1712}
.s-pcopy h3{font-family:var(--disp);font-weight:300;font-size:clamp(54px,6.6vw,118px);line-height:.92;letter-spacing:-.045em;margin:18px 0 22px}
.s-pcopy h3 em{font-style:italic;color:var(--acc)}
.s-pcopy p{font-size:18px;line-height:1.6;color:#c4bba9;max-width:38ch}
.s-pcopy dl{display:grid;grid-template-columns:auto 1fr;gap:6px 16px;margin-top:30px;padding-top:16px;border-top:1px solid var(--line)}
.s-pcopy dt{color:var(--muted)}
.s-plate{margin:0;border:1px solid var(--line);background:var(--stage);padding:14px;box-shadow:0 30px 80px rgb(0 0 0 / .35)}
.s-plate .stage{height:min(56svh,480px);background:transparent}
.s-plate figcaption{display:flex;justify-content:space-between;padding-top:10px;border-top:1px solid var(--line);margin-top:10px}
.s-method{display:grid;grid-template-columns:1fr 1fr;gap:5vw;padding:120px var(--pad);border-top:1px solid var(--line)}
.s-mstick{position:sticky;top:22svh;align-self:start}
.s-swap{font-family:var(--disp);font-style:italic;font-weight:300;font-size:clamp(60px,8.4vw,150px);line-height:.92;letter-spacing:-.05em;color:var(--acc);margin:22px 0 18px;min-height:1em}
.s-step{min-height:60svh;display:flex;flex-direction:column;justify-content:center;border-bottom:1px solid var(--line);opacity:.28;transition:opacity .6s}
.s-step.on{opacity:1}
.s-step h3{font-family:var(--disp);font-weight:400;font-size:clamp(30px,3vw,46px);letter-spacing:-.03em;margin-bottom:14px}
.s-step p{color:#c4bba9;line-height:1.65;font-size:17px;max-width:40ch}
.s-vocab{padding-bottom:100px;border-top:1px solid var(--line)}
.s-mq{font-family:var(--disp);font-weight:300;font-size:clamp(42px,6vw,100px);letter-spacing:-.04em;padding:10px 0}
.s-mq.it{font-style:italic;color:var(--muted)}
.s-mq span{padding-right:.4em}
.s-mq sup{font:11px var(--mono);color:var(--acc);vertical-align:top;padding-left:.3em;font-style:normal}
.s-mq i{font-style:normal;color:var(--acc);padding-left:.4em}
.s-quotes{display:grid;gap:80px;padding:120px var(--pad);border-top:1px solid var(--line);justify-items:center;text-align:center}
.s-quotes blockquote{max-width:30ch}
.s-quotes span{display:block;font-size:26px;margin-bottom:16px}
.s-quotes p{font-family:var(--disp);font-weight:300;font-size:clamp(24px,2.8vw,44px);line-height:1.12;letter-spacing:-.03em}
.s-quotes em{font-style:italic;color:var(--acc)}
.s-colo{padding:130px var(--pad);border-top:1px solid var(--line);text-align:center;display:grid;justify-items:center;gap:30px}
.s-clede{font-family:var(--disp);font-weight:300;font-size:clamp(22px,2.2vw,32px);line-height:1.35;max-width:32ch}
.s-clede em{font-style:italic;color:var(--acc)}
.s-colo dl{display:grid;grid-template-columns:1fr 1fr;gap:40px 6vw;max-width:980px;margin-top:20px;text-align:left}
.s-colo dt{color:var(--acc);margin-bottom:8px}
.s-colo dd{font-family:var(--disp);font-size:20px;line-height:1.35}
.s-colo dd.mono{font-family:var(--mono);font-size:12px;margin-top:6px}
.s-end{padding:140px var(--pad) 80px;border-top:1px solid var(--line);text-align:center;display:grid;justify-items:center;gap:30px}
.s-end h2{font-family:var(--disp);font-weight:300;font-size:clamp(100px,21vw,370px);line-height:.8;letter-spacing:-.06em}
.s-end h2 em{font-style:italic;color:var(--acc)}
.s-end p{color:#c4bba9;max-width:40ch;line-height:1.6}
@media (max-width:900px){
  .s-nav{grid-template-columns:1fr auto}.s-l,.s-r a{display:none}.s-mark{order:-1}
  .s-hfoot{grid-template-columns:1fr}
  .s-line{grid-template-columns:56px 1fr}
  .s-page{position:relative;grid-template-columns:1fr;min-height:auto;padding:80px var(--pad)}
  .s-plate .stage{height:340px}
  .s-method{grid-template-columns:1fr}.s-mstick{position:sticky;top:0;background:var(--bg);z-index:2;padding:14px 0}.s-swap{font-size:56px;margin:8px 0}
  .s-step{min-height:auto;padding:36px 0;opacity:1}
  .s-colo dl{grid-template-columns:1fr}
}

/* =========================================================
   FIELD: spatial app
   ========================================================= */
.pg-field h1{font-weight:600;font-size:clamp(56px,7.6vw,136px);line-height:.9;letter-spacing:-.065em;margin:30px 0 24px}
.pg-field em{color:var(--acc)}
.f-nav{position:fixed;top:16px;left:50%;transform:translateX(-50%);z-index:60;display:flex;align-items:center;gap:22px;padding:8px 8px 8px 20px;border-radius:99px;border:1px solid var(--line);background:rgb(8 22 17 / .72);backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px);transition:transform .6s var(--e-io),opacity .4s}
.f-nav.hide{transform:translate(-50%,-140%)}
.f-mark{display:flex;align-items:center;gap:6px}
.f-mark .logo{height:18px}
.f-mark i{width:7px;height:7px;border-radius:50%;background:var(--acc);box-shadow:0 0 12px var(--acc)}
.f-links{display:flex;gap:4px}
.f-links a{padding:8px 14px;border-radius:99px;font-size:13px;color:var(--muted);transition:background-color .3s,color .3s}
.f-links a:hover{background:rgb(125 255 196 / .1);color:var(--ink)}
.f-cta{background:var(--acc);color:var(--on-acc);border-radius:99px;padding:10px 18px;font-size:13px;font-weight:600}
.f-hero{min-height:100svh;display:grid;grid-template-columns:.95fr 1.05fr;align-items:center;padding:110px 4vw 60px;user-select:none;-webkit-user-select:none;touch-action:pan-y;cursor:grab}
.f-hero:active{cursor:grabbing}
.f-hero .hero-hint{bottom:30px;right:4vw}
.f-copy{position:relative;z-index:2}
.f-copy p{color:var(--muted);line-height:1.7;font-size:17px;max-width:46ch}
.f-copy p strong{color:var(--ink);font-weight:500}
.f-actions{display:flex;gap:12px;flex-wrap:wrap;margin-top:32px}
.pg-field .btn{box-shadow:0 0 40px color-mix(in srgb,var(--acc) 30%,transparent)}
.pg-field .btn.ghost{box-shadow:none}
.badge{display:inline-flex;align-items:center;gap:9px;padding:8px 14px;border-radius:99px;border:1px solid var(--line);font:11px var(--mono);letter-spacing:.06em;text-transform:uppercase;color:var(--acc)}
.badge::before{content:"";width:6px;height:6px;border-radius:50%;background:var(--acc);box-shadow:0 0 12px var(--acc)}
.f-labels{position:absolute;inset:0;pointer-events:none;z-index:-1}
.f-lab{position:absolute;left:0;top:0;padding:6px 10px;border:1px solid rgb(125 255 196 / .4);border-radius:8px;background:rgb(6 15 12 / .8);font:10px var(--mono);letter-spacing:.08em;text-transform:uppercase;white-space:nowrap}
.f-widgets{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;padding:0 4vw}
.f-w{position:relative;padding:22px 22px 24px;border:1px solid var(--line);border-radius:22px;background:linear-gradient(160deg,rgb(125 255 196 / .06),rgb(255 255 255 / .01));overflow:hidden}
.f-w canvas{position:absolute;left:0;right:0;bottom:0;width:100%;height:60%;opacity:.9}
.f-w b{position:relative;display:block;font-size:clamp(34px,4.2vw,68px);font-weight:600;letter-spacing:-.06em;line-height:1}
.f-w small{position:relative;display:block;margin-top:10px;color:var(--muted);text-transform:uppercase;font-size:10px}
.f-sec{padding-bottom:120px}
.f-head{text-align:center;max-width:900px;margin:0 auto;padding:150px 20px 56px;display:grid;justify-items:center;gap:20px}
.f-head h2{font-size:clamp(46px,6.8vw,112px);font-weight:600;letter-spacing:-.065em;line-height:.94}
.f-head p{color:var(--muted);max-width:44ch;line-height:1.6}
.f-bento{display:grid;grid-template-columns:repeat(4,1fr);grid-auto-rows:340px;gap:14px;padding:0 4vw}
.f-card{position:relative;display:flex;flex-direction:column;border:1px solid var(--line);border-radius:26px;overflow:hidden;background:radial-gradient(320px circle at var(--mx,50%) var(--my,0%),rgb(125 255 196 / .1),transparent 70%),var(--surface);transition:transform .6s var(--e-spring),border-color .4s,opacity .7s var(--e-reveal);transform-style:preserve-3d}
.f-card:hover{border-color:rgb(125 255 196 / .45)}
.f-card .stage{flex:1;min-height:0;background:transparent;padding:18px}
.f-ccopy{padding:0 22px 22px}
.f-ccopy h3{font-size:clamp(22px,2vw,32px);font-weight:600;letter-spacing:-.05em;line-height:1;margin:8px 0 8px}
.f-ccopy p{color:var(--muted);font-size:13px;line-height:1.5;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.c-reference{grid-column:1/3;grid-row:1}
.c-motion{grid-column:3;grid-row:1/3}
.c-type{grid-column:4;grid-row:1}
.c-colour{grid-column:1;grid-row:2}
.c-flow{grid-column:2;grid-row:2/4}
.c-sound{grid-column:4;grid-row:2/4}
.c-scene{grid-column:1;grid-row:3}
.c-studio{grid-column:3;grid-row:3}
.f-card .w-curve{width:min(100%,240px)}
.f-card .spec-aa{font-size:84px}.f-card .spec-line{font-size:15px;margin:8px 0 12px}
.f-card .pal-bar{height:70px}.f-card .pal-chips{display:none}
.f-card .w-layers{width:min(100%,200px)}
.f-card .tier{display:none}
.f-graph{height:300vh;position:relative}
.f-gstick{position:sticky;top:0;height:100svh;display:grid;grid-template-rows:auto 1fr auto;padding:70px 4vw 60px;overflow:hidden}
.f-graph .f-head{padding:0 20px 10px}
.f-gwrap{position:relative;width:100%;max-width:1200px;aspect-ratio:1200/360;margin:auto;align-self:center}
.f-svg{position:absolute;inset:0;width:100%;height:100%;overflow:visible}
.f-rail{fill:none;stroke:var(--line);stroke-width:2;stroke-dasharray:4 8}
.f-lit{fill:none;stroke:var(--acc);stroke-width:3;filter:drop-shadow(0 0 8px var(--acc))}
.f-pulse{fill:var(--acc);filter:drop-shadow(0 0 12px var(--acc))}
.f-node{position:absolute;transform:translate(-50%,-50%);display:grid;justify-items:center;gap:10px}
.f-node i{width:22px;height:22px;border-radius:50%;border:2px solid var(--line);background:var(--bg);transition:background-color .4s,border-color .4s,box-shadow .4s,transform .5s var(--e-spring)}
.f-node.on i{background:var(--acc);border-color:var(--acc);box-shadow:0 0 22px var(--acc);transform:scale(1.15)}
.f-node span{white-space:nowrap;padding:6px 10px;border:1px solid var(--line);border-radius:8px;background:var(--surface);color:var(--muted);transition:color .4s,border-color .4s}
.f-node.on span{color:var(--ink);border-color:rgb(125 255 196 / .45)}
.f-detail{justify-self:center;text-align:center;max-width:620px;padding:22px 28px;border:1px solid var(--line);border-radius:22px;background:rgb(11 26 21 / .8)}
.f-detail h3{font-size:32px;font-weight:600;letter-spacing:-.05em;margin:6px 0}
.f-detail p{color:var(--muted);line-height:1.55}
.f-detail.pop{animation:pop .6s var(--e-spring)}
@keyframes pop{from{transform:translateY(12px) scale(.97);opacity:.4}to{transform:none;opacity:1}}
.f-cloud{position:relative;height:520px;margin:0 4vw;border:1px solid var(--line);border-radius:28px;background:radial-gradient(circle at 50% 50%,rgb(125 255 196 / .07),transparent 65%);overflow:hidden}
.f-chip{position:absolute;left:0;top:0;display:inline-flex;align-items:center;gap:10px;padding:14px 20px;border:1px solid var(--line);border-radius:99px;background:var(--surface);font-size:clamp(14px,1.3vw,18px);white-space:nowrap;will-change:transform;transition:border-color .3s,background-color .3s}
.f-chip:hover{border-color:var(--acc);background:#0f2a21}
.f-chip small{color:var(--acc)}
.f-term{margin:0 auto;max-width:980px;border:1px solid var(--line);border-radius:20px;background:#03100b;overflow:hidden;box-shadow:0 40px 120px rgb(0 0 0 / .4)}
.f-tbar{display:flex;align-items:center;gap:8px;padding:14px 18px;border-bottom:1px solid var(--line)}
.f-tbar i{width:9px;height:9px;border-radius:50%;background:var(--acc);opacity:.7}
.f-tbar span{margin-left:auto;color:var(--muted)}
.f-term pre{padding:26px;font-size:13px;line-height:1.75;white-space:pre-wrap;word-break:break-word;min-height:420px;color:#bfe9d4}
.f-term .k{color:var(--acc)}
.f-term .s{color:#e3f2ea}
.f-end{padding:60px 4vw 90px;text-align:center;display:grid;justify-items:center;gap:26px;background:radial-gradient(circle at 50% 70%,rgb(125 255 196 / .1),transparent 55%)}
.f-princ{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;width:100%;text-align:left;margin-bottom:90px}
.f-princ>div{padding:24px;border:1px solid var(--line);border-radius:20px;background:var(--surface)}
.f-princ h5{font-size:20px;font-weight:600;letter-spacing:-.04em;margin-bottom:8px}
.f-princ p{color:var(--muted);font-size:14px;line-height:1.55}
.f-end h2{font-size:clamp(96px,18vw,300px);font-weight:600;letter-spacing:-.09em;line-height:.84}
.f-end>p{color:var(--muted);max-width:44ch;line-height:1.6}
@media (max-width:900px){
  .f-nav{left:12px;right:12px;transform:none;justify-content:space-between}.f-nav.hide{transform:translateY(-140%)}.f-links{display:none}
  .f-hero{grid-template-columns:1fr;padding-top:100px}.f-labels{display:none}.f-hero canvas.scene{opacity:.55}
  .f-widgets{grid-template-columns:1fr 1fr}
  .f-bento{grid-template-columns:1fr;grid-auto-rows:auto}.f-bento .f-card{grid-column:auto!important;grid-row:auto!important}.f-card .stage{min-height:280px}
  .f-graph{height:auto}.f-gstick{position:static;height:auto;display:block;padding:90px 4vw 60px}.f-gwrap{aspect-ratio:auto;display:grid;gap:12px}.f-svg{display:none}
  .f-node{position:static;transform:none;justify-items:start;grid-template-columns:22px 1fr;align-items:center}.f-node i{background:var(--acc);border-color:var(--acc)}
  .f-detail{display:none}
  .f-cloud{height:640px}
  .f-princ{grid-template-columns:1fr}
}

/* ---------- switcher ---------- */
.switch{position:fixed;left:50%;bottom:16px;transform:translateX(-50%);z-index:220;display:flex;align-items:center;gap:6px;padding:6px;border-radius:999px;background:rgb(14 14 16 / .86);border:1px solid rgb(255 255 255 / .16);backdrop-filter:blur(22px);-webkit-backdrop-filter:blur(22px);color:#f1efe9;font-family:"Geist Mono",monospace;box-shadow:0 18px 60px rgb(0 0 0 / .35)}
.switch .arrow{width:40px;height:40px;border-radius:50%;border:1px solid rgb(255 255 255 / .18);background:#1c1c1f;display:grid;place-items:center;transition:background-color .25s,color .25s,transform .4s var(--e-spring)}
.switch .arrow:hover{background:var(--acc);color:var(--on-acc);transform:scale(1.06)}
.switch svg{width:18px;height:18px}
.sw-mid{display:grid;justify-items:center;gap:6px;min-width:150px;padding:0 10px}
.sw-name{font-size:11px;letter-spacing:.12em;text-transform:uppercase}
.sw-dots{display:flex;gap:6px}
.sw-dots button{width:7px;height:7px;padding:0;border-radius:99px;background:rgb(255 255 255 / .3);transition:width .45s var(--e-io),background-color .3s}
.sw-dots button[aria-current="true"]{width:22px;background:var(--acc)}
.sw-hint{position:absolute;bottom:calc(100% + 12px);left:50%;transform:translateX(-50%);background:var(--acc);color:var(--on-acc);font-size:10px;letter-spacing:.1em;text-transform:uppercase;padding:8px 12px;border-radius:8px;white-space:nowrap;animation:hint 1.6s var(--e-io) infinite;pointer-events:none}
@keyframes hint{50%{transform:translate(-50%,-6px)}}
.ptag{position:fixed;right:16px;bottom:24px;z-index:210;font:10px "Geist Mono",monospace;letter-spacing:.08em;text-transform:uppercase;color:#cfccc4;background:rgb(14 14 16 / .72);border:1px solid rgb(255 255 255 / .14);padding:8px 10px;border-radius:6px;pointer-events:none}
@media (max-width:900px){.ptag{display:none}.sw-mid{min-width:112px}}

/* ---------- access sheet ---------- */
.sheet{position:fixed;inset:0;z-index:280;display:grid;justify-items:end;pointer-events:none}
#sheetStep{margin-left:12px;padding-left:12px;border-left:1px solid var(--line)}
.sheet-bg{position:absolute;inset:0;background:rgb(0 0 0 / .62);opacity:0;transition:opacity .5s var(--e-out)}
.sheet-panel{position:relative;width:min(560px,100%);height:100%;background:var(--surface);color:var(--ink);border-left:1px solid var(--line);display:grid;grid-template-rows:auto 1fr;clip-path:inset(0 0 0 100%);transition:clip-path .8s var(--e-io);overflow:hidden}
.sheet.open{pointer-events:auto}
.sheet.open .sheet-bg{opacity:1}
.sheet.open .sheet-panel{clip-path:inset(0 0 0 0)}
.sheet-top{display:flex;justify-content:space-between;align-items:center;padding:20px 28px;border-bottom:1px solid var(--line);position:relative}
.sheet-close{width:36px;height:36px;border-radius:50%;border:1px solid var(--line);display:grid;place-items:center;font-size:16px;transition:border-color .3s,transform .5s var(--e-io)}
.sheet-close:hover{border-color:var(--ink);transform:rotate(90deg)}
.sheet-prog{position:absolute;left:0;bottom:-1px;height:1px;width:100%;background:var(--acc);transform-origin:left;transform:scaleX(.33);transition:transform .7s var(--e-io)}
.sheet-body{position:relative;overflow:auto}
.fstep{position:absolute;inset:0;padding:40px 28px 32px;display:flex;flex-direction:column;gap:26px;opacity:0;transform:translateX(40px);pointer-events:none;visibility:hidden;transition:opacity .5s var(--e-reveal),transform .7s var(--e-reveal);overflow:auto}
.fstep.on{opacity:1;transform:none;pointer-events:auto;visibility:visible}
.fstep.gone{transform:translateX(-40px);visibility:visible}
.fstep h3{font-family:var(--disp);font-size:clamp(32px,4vw,46px);font-weight:600;letter-spacing:-.045em;line-height:1}
.t-ledg .fstep h3{font-weight:900;font-stretch:72%;text-transform:uppercase;letter-spacing:-.02em}
.t-spec .fstep h3{font-weight:300}
.fstep .lede{color:var(--muted);font-size:16px;max-width:40ch;margin-top:14px}
.choices{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.choice{position:relative;text-align:left;padding:18px 16px 16px;border:1px solid var(--line);border-radius:var(--r-s);background:var(--bg);display:grid;gap:22px;overflow:hidden;transition:border-color .3s}
.choice::before{content:"";position:absolute;inset:0;background:var(--acc);clip-path:circle(0% at 0 100%);transition:clip-path .7s var(--e-io)}
.choice>*{position:relative;transition:color .3s}
.choice:hover{border-color:color-mix(in srgb,var(--ink) 35%,transparent)}
.choice[aria-checked="true"]{border-color:var(--acc)}
.choice[aria-checked="true"]::before{clip-path:circle(150% at 0 100%)}
.choice[aria-checked="true"]>*{color:var(--on-acc)}
.choice b{font-size:18px;font-weight:500;letter-spacing:-.02em}
.choice small{font-family:var(--mono);font-size:11px;color:var(--muted)}
.fld{display:grid;gap:8px}
.fld label{font-family:var(--mono);font-size:12px;color:var(--muted);display:flex;justify-content:space-between}
.fld input,.fld textarea{font:inherit;font-size:17px;color:var(--ink);background:transparent;border:0;border-bottom:1px solid var(--line);padding:10px 0;outline:none;resize:none;border-radius:0;transition:border-color .3s}
.fld input:focus,.fld textarea:focus{border-color:var(--acc)}
.fld.bad input{border-color:#ff6b5b}
.opt{opacity:.6;margin-left:6px}
.fld .err{font-family:var(--mono);font-size:12px;color:#ff6b5b;display:none}
.fld.bad .err{display:block}
.hp{position:absolute;left:-9999px;width:1px;height:1px;opacity:0}
.note{font-family:var(--mono);font-size:12px;color:var(--muted);border-left:2px solid var(--acc);padding-left:12px}
.hint{font-family:var(--mono);font-size:12px;color:var(--muted);min-height:16px}
.fnav{margin-top:auto;display:flex;gap:12px;align-items:center;padding-top:8px;flex-wrap:wrap}
.fbtn{height:56px;padding:0 26px;border-radius:99px;background:var(--acc);color:var(--on-acc);font-weight:500;display:inline-flex;align-items:center;gap:12px;min-width:170px;justify-content:center;transition:opacity .3s,transform .5s var(--e-spring)}
.fbtn i{font-style:normal}
.t-ledg .fbtn,.t-ledg .fghost{border-radius:0}
.fbtn:disabled{opacity:.35;cursor:not-allowed}
.fbtn:not(:disabled):hover{transform:translateY(-2px)}
.fghost{height:56px;padding:0 20px;border-radius:99px;border:1px solid var(--line);font-family:var(--mono);font-size:12px;transition:border-color .3s}
.fghost:hover{border-color:var(--ink)}
.spin{width:14px;height:14px;border-radius:50%;border:2px solid currentColor;border-right-color:transparent;animation:spin 700ms linear infinite;display:none}
.sending .spin{display:inline-block}
.refbox{display:flex;justify-content:space-between;align-items:center;padding:18px 20px;border:1px solid var(--line);border-radius:var(--r-s);background:var(--bg)}
.refbox b{font-family:var(--mono);font-size:22px;font-weight:500;color:var(--acc)}
.tick{width:64px;height:64px;border-radius:50%;background:var(--acc);color:var(--on-acc);display:grid;place-items:center;transform:scale(0);transition:transform .7s var(--e-spring) .2s}
.fstep.on .tick{transform:scale(1)}
.tick svg{width:28px;height:28px}
.tick path{stroke:currentColor;stroke-dasharray:40;stroke-dashoffset:40;transition:stroke-dashoffset .6s var(--e-reveal) .6s}
.fstep.on .tick path{stroke-dashoffset:0}
.next-list{display:grid;gap:12px;border-top:1px solid var(--line);padding-top:18px}
.next-list div{display:grid;grid-template-columns:110px 1fr;gap:12px}
.next-list dt{font-family:var(--mono);font-size:12px;color:var(--muted)}
.fallback textarea{width:100%;height:150px;font-family:var(--mono);font-size:12px;color:var(--ink);background:var(--bg);border:1px solid var(--line);border-radius:var(--r-s);padding:12px;resize:none}
@media (max-width:600px){.sheet-panel{width:100%;border-left:0}.choices{grid-template-columns:1fr}.fstep{padding:28px 20px 24px}}

@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation:none!important;transition-duration:1ms!important;transition-delay:0ms!important}
  .loader,.wipe{display:none}.word{transform:none}.fade{opacity:1}
  .n-phases{height:auto}.n-pstick{position:static;height:auto;display:block;padding:100px var(--pad)}.n-phase{position:static;display:block;margin-bottom:56px}.n-phase .w>span{transform:none!important}.n-pbar{display:none}
}
