:root{--acc:#F5B83D;--bg:#07080A;--tx:#ECEAE4;--mu:#9298A2;--mono:'Geist Mono',ui-monospace,SFMono-Regular,Menlo,monospace;--sans:'Geist',ui-sans-serif,system-ui,sans-serif;--disp:'Bricolage Grotesque',ui-sans-serif,system-ui,sans-serif}
*{box-sizing:border-box}
html,body{margin:0;height:100%;background:var(--bg);overflow:hidden}
body{color:var(--tx);font-family:var(--sans);-webkit-font-smoothing:antialiased}
a{color:var(--tx)}a:hover{color:#fff}
::selection{background:var(--acc);color:var(--bg)}
button{font:inherit}
button:focus-visible,a:focus-visible,.splash:focus-visible{outline:1px solid var(--acc);outline-offset:4px}
.acc{color:var(--acc)}

.scroller{height:100vh;height:100dvh;overflow-y:auto;overflow-x:hidden;scrollbar-width:none}
.scroller::-webkit-scrollbar{display:none}
.spacer{position:relative;height:1000vh}
.sticky{position:sticky;top:0;height:100vh;height:100dvh;overflow:hidden}

.stage{position:absolute;inset:0;touch-action:pan-y;cursor:grab;user-select:none;-webkit-user-select:none}
.stage:active{cursor:grabbing}
.stage svg{position:absolute;inset:0;width:100%;height:100%;display:block}
.w-n0{fill:none;stroke:rgba(236,234,228,.68);stroke-width:1;stroke-linecap:round}
.w-n1{fill:none;stroke:rgba(236,234,228,.15);stroke-width:1;stroke-linecap:round}
.w-a0{fill:none;stroke:var(--acc);stroke-width:1.5;stroke-linecap:round;filter:drop-shadow(0 0 5px var(--acc))}
.w-a1{fill:none;stroke:var(--acc);stroke-opacity:.36;stroke-width:1;stroke-linecap:round}
.w-p{fill:none;stroke:rgba(236,234,228,.82);stroke-width:1.7;stroke-linecap:round}
.w-g{fill:none;stroke:rgba(236,234,228,.07);stroke-width:1}
.w-l{fill:none;stroke:var(--acc);stroke-opacity:.55;stroke-width:1;stroke-dasharray:2 6}

.pin{position:absolute;transform:translate(-4px,-50%);display:flex;align-items:center;gap:10px;pointer-events:none;white-space:nowrap;font-family:var(--mono);font-size:12px;letter-spacing:.08em;text-transform:uppercase;text-shadow:0 0 10px var(--bg),0 0 4px var(--bg)}
.pin i{width:8px;height:8px;border-radius:50%;background:var(--acc);box-shadow:0 0 0 4px rgba(7,8,10,.9),0 0 0 5px rgba(236,234,228,.35)}

.vignette{position:absolute;inset:0;pointer-events:none;background:radial-gradient(ellipse 75% 70% at 58% 50%,transparent 55%,rgba(0,0,0,.6) 100%)}
.grain{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;opacity:.07;mix-blend-mode:screen}

.scene{position:absolute;left:clamp(20px,5vw,80px);bottom:clamp(88px,13vh,160px);width:min(88vw,620px);display:flex;flex-direction:column;gap:20px;text-shadow:0 2px 30px var(--bg);opacity:0;pointer-events:none;will-change:opacity,transform}
.kicker{font-family:var(--mono);font-size:12px;letter-spacing:.28em;text-transform:uppercase;color:var(--acc)}
.scene h1,.scene h2{margin:0;font-family:var(--disp);font-weight:500;line-height:1;letter-spacing:-.035em;text-wrap:balance;font-size:calc(clamp(36px,4.4vw,72px)*.9)}
.scene h1{font-size:calc(clamp(44px,5.6vw,92px)*.9)}
.scene h1 em,.scene h2 em{color:var(--acc);font-style:normal;font-weight:300}
.scene p{margin:0;max-width:500px;font-size:clamp(15px,1.2vw,18px);line-height:1.6;color:#C2C5CB;text-wrap:pretty}
.done{display:flex;gap:14px;align-items:baseline;max-width:520px;border-top:1px solid rgba(236,234,228,.14);padding-top:16px}
.done b{font-family:var(--mono);font-weight:400;font-size:11px;letter-spacing:.2em;text-transform:uppercase;color:var(--acc);white-space:nowrap}
.done span{font-size:15px;line-height:1.55;color:#C2C5CB}
.steps{display:flex;flex-direction:column;border-top:1px solid rgba(236,234,228,.14);max-width:520px}
.steps div{display:flex;gap:16px;align-items:baseline;padding:11px 0;border-bottom:1px solid rgba(236,234,228,.08)}
.steps .n{font-family:var(--mono);font-size:11px;color:var(--acc);width:22px;flex:none}
.steps .t{font-size:16px;color:var(--tx);width:150px;flex:none}
.steps .d{font-size:14px;color:var(--mu)}

.portrait{display:flex;align-items:flex-end;gap:16px}
.photo{position:relative;width:clamp(92px,8.5vw,128px);aspect-ratio:4/5;overflow:hidden;background:#121418;border:1px solid rgba(236,234,228,.2)}
.photo img,.avatar img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;filter:grayscale(1) contrast(1.15) brightness(.95)}
.photo .ph{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;font-family:var(--mono);font-size:10px;letter-spacing:.16em;color:#6B717B}
.photo .tint{position:absolute;inset:0;background:var(--acc);mix-blend-mode:multiply;opacity:.32}
.photo .lines{position:absolute;inset:0;background:repeating-linear-gradient(0deg,rgba(0,0,0,.28) 0 1px,transparent 1px 3px)}
.photo .scan{position:absolute;left:0;right:0;height:2px;background:var(--acc);opacity:.55;box-shadow:0 0 10px var(--acc)}
.photo-meta{font-family:var(--mono);font-size:11px;line-height:1.7;letter-spacing:.1em;color:var(--mu);text-shadow:none}
.me{display:flex;align-items:center;gap:14px}
.avatar img{object-position:50% 30%}
.avatar{position:relative;width:48px;height:48px;border-radius:50%;overflow:hidden;background:#121418;border:1px solid rgba(236,234,228,.25);flex:none}
.me .name{font-size:15px;color:var(--tx)}
.me .role{font-family:var(--mono);font-size:11px;letter-spacing:.12em;color:var(--mu)}

.cta{font-family:var(--mono);font-size:12px;letter-spacing:.18em;text-transform:uppercase;text-decoration:none;padding:18px 24px;min-height:52px;display:inline-flex;align-items:center;border:1px solid var(--acc);background:var(--acc);color:var(--bg);cursor:pointer;transition:background .25s,color .25s,border-color .25s}
.cta.ghost{background:transparent;color:var(--tx);border-color:rgba(236,234,228,.3)}
.cta.small{padding:12px 18px;min-height:44px}
.cta:hover{background:var(--tx);color:var(--bg);border-color:var(--tx)}
.row{display:flex;flex-wrap:wrap;gap:12px}
.links{display:flex;flex-wrap:wrap;gap:14px 28px;font-family:var(--mono);font-size:12px;letter-spacing:.12em}
.lnk{text-decoration:none;border-bottom:1px solid rgba(236,234,228,.25);transition:border-color .2s,color .2s}
.lnk:hover{border-color:var(--acc);color:var(--acc)}

.hud-top{position:absolute;left:0;right:0;top:0;padding:22px clamp(20px,4vw,56px);display:flex;justify-content:space-between;align-items:center;opacity:0}
.logo{background:none;border:0;padding:8px 0;cursor:pointer;color:var(--tx);font-family:var(--mono);font-size:15px;letter-spacing:.02em}
.logo span{color:var(--acc)}
.hud-bottom{position:absolute;left:0;right:0;bottom:0;padding:22px clamp(20px,4vw,56px);display:flex;align-items:center;gap:24px;font-family:var(--mono);font-size:11px;letter-spacing:.2em;text-transform:uppercase;color:var(--mu);opacity:0}
.count{white-space:nowrap}
.track{flex:1;height:1px;background:rgba(236,234,228,.12);position:relative}
.fill{position:absolute;left:0;top:0;height:1px;width:0;background:var(--acc)}
.hint{position:absolute;right:clamp(20px,4vw,56px);bottom:64px;opacity:0;pointer-events:none;font-family:var(--mono);font-size:11px;letter-spacing:.26em;text-transform:uppercase}
.bob{animation:dzbob 1.8s ease-in-out infinite}
@keyframes dzbob{50%{transform:translateY(6px)}}

.splash{position:absolute;inset:0;cursor:pointer;z-index:10}
.half{position:absolute;inset:0;background:#0B0C0F}
.term{position:absolute;inset:0;padding:clamp(18px,3.4vw,48px);display:flex;flex-direction:column;gap:14px;font-family:var(--mono);font-size:clamp(10.5px,.95vw,13px);line-height:1.62;overflow:hidden}
.term-head{display:flex;flex-wrap:wrap;justify-content:space-between;gap:8px 24px;color:#6B717B;letter-spacing:.08em;border-bottom:1px solid #1C1F24;padding-bottom:12px}
.term-head b{font-weight:400;color:var(--tx)}
.term-body{flex:1;display:flex;flex-direction:column;justify-content:flex-end;overflow:hidden;min-height:0}
.term-body div{display:flex;gap:14px;white-space:pre;min-width:0}
.term-body span:nth-child(2){overflow:hidden;text-overflow:ellipsis}
.term-body span:nth-child(3){margin-left:auto;padding-left:16px}
.term-foot{display:flex;flex-wrap:wrap;gap:8px 20px;align-items:center;border-top:1px solid #1C1F24;padding-top:12px;color:var(--mu);white-space:pre}
.term-foot .skip{margin-left:auto;color:#6B717B}
.zip-svg{position:absolute;inset:0;width:100%;height:100%;display:block;pointer-events:none}

@media (prefers-reduced-motion:reduce){.bob{animation:none}}
