:root{--bg:#0b0d0c;--p1:#121513;--p2:#1a1e1b;--p3:#232824;--rule:#3a403c;--hi:#4c544e;--lo:#050606;--ink:#dfe4e0;--txt:#b8c0ba;--dim:#7f8882;--mute:#59615b;--sig:#76B900;--amb:#E8A317;--mono:"IBM Plex Mono",ui-monospace,monospace;--sans:"Inter",Helvetica,Arial,sans-serif}
*{box-sizing:border-box;margin:0;padding:0}
html,body{overflow-x:hidden}
html{background:var(--bg);color:var(--txt);font:400 14px/1.45 var(--sans);-webkit-font-smoothing:antialiased;font-variant-numeric:tabular-nums}
a{color:inherit;text-decoration:none}a:hover{color:var(--ink);text-decoration:underline}
.red{background:#8e958f;color:transparent;user-select:none}
*{scrollbar-width:thin;scrollbar-color:#3a403c #121513}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:#121513}::-webkit-scrollbar-thumb{background:#3a403c}
/* bevels */
.bevel-out,.p,.in-card,.btn,.in-go,.introbtn{border:1px solid;border-color:var(--hi) var(--lo) var(--lo) var(--hi)}
.bevel-in{border:1px solid;border-color:var(--lo) var(--hi) var(--hi) var(--lo)}
/* boot */
#boot{position:fixed;inset:0;z-index:80;background:var(--bg);display:flex;align-items:center;justify-content:center;transition:opacity .4s}
body:not(.booting) #boot{opacity:0;pointer-events:none}
.boot-in{width:min(560px,88vw);background:var(--p1);border:1px solid var(--rule);padding:18px 20px}
.boot-h{color:var(--ink);font:600 13px var(--sans);margin-bottom:10px;border-bottom:1px solid var(--rule);padding-bottom:8px}
#bootlog{list-style:none;color:var(--dim);font:400 13px var(--mono);display:grid;gap:3px}#bootlog b{color:var(--ink);font-weight:400}#bootlog .ok{color:var(--sig)}
/* console */
.console{height:100vh;min-height:760px;display:grid;gap:6px;padding:6px;grid-template-columns:repeat(12,minmax(0,1fr));grid-template-rows:auto auto 57fr 43fr auto;background:var(--bg)}
.top{grid-column:1/-1;display:flex;align-items:center;justify-content:space-between;gap:16px;padding:6px 10px;background:linear-gradient(180deg,#2a302c,#1c201d);border:1px solid;border-color:var(--hi) var(--lo) var(--lo) var(--hi)}
.brand{display:flex;align-items:center;gap:12px;font-size:14px}.brand b{font:600 15px var(--sans);color:var(--ink)}.tk{color:var(--sig);font:600 14px var(--sans)}
.mark{display:inline-grid;grid-template-columns:repeat(3,4px);gap:2px;align-items:end;height:14px}.mark i{background:var(--sig);display:block}.mark i:nth-child(1){height:6px}.mark i:nth-child(2){height:14px}.mark i:nth-child(3){height:10px}
.lights{display:flex;gap:16px;font-size:12px;color:var(--txt)}.lights span{display:flex;align-items:center;gap:6px}
.lights i{flex:none;width:9px;height:9px;background:var(--mute);border:1px solid var(--lo)}.lights i.g{background:var(--sig)}.lights i.c{background:#9aa39d}.lights i.r{background:var(--amb)}.lights i.off{background:#3a403c}
.clock{display:flex;gap:16px;align-items:center;font:400 13px var(--mono);color:var(--dim)}.clock b{color:var(--ink);font-weight:500}
.introbtn,.btn{font:500 12px var(--sans);background:linear-gradient(180deg,#2f3631,#222724);color:var(--ink);padding:4px 12px;cursor:pointer}.introbtn:active,.btn:active{border-color:var(--lo) var(--hi) var(--hi) var(--lo);background:#1a1e1b}
.menu{grid-column:1/-1;display:flex;gap:2px;align-items:center;background:var(--p1);border-bottom:1px solid var(--rule);padding:0 4px;font-size:13px}
.menu a{padding:4px 10px;color:var(--txt)}.menu a:first-letter{text-decoration:underline}.menu a:hover{background:var(--sig);color:#0b0d0c;text-decoration:none}
.menu-r{margin-left:auto;color:var(--mute);font-size:12px;letter-spacing:.04em}
.p{position:relative;background:var(--p1);display:flex;flex-direction:column;min-height:0;overflow:hidden;opacity:0;transition:opacity .3s}
body.live .p{opacity:1}
.ph{display:flex;align-items:center;gap:12px;padding:4px 8px;font-size:12.5px;white-space:nowrap;overflow:hidden;
 background:linear-gradient(90deg,#2b322d 0%,#1c211e 100%);border-bottom:1px solid var(--lo);box-shadow:inset 0 1px 0 rgba(255,255,255,.06)}
.pt{color:var(--ink);font-weight:600;letter-spacing:.02em}.ps{color:var(--dim);flex:1;overflow:hidden;text-overflow:ellipsis;font-size:12px}.ps a{text-decoration:underline;text-decoration-color:var(--mute)}
.st{font:600 11px var(--sans);padding:1px 7px;border:1px solid var(--rule);background:var(--bg);letter-spacing:.04em}.st.live{color:var(--sig)}.st.cache{color:var(--txt)}.st.rep{color:var(--amb)}.st.err{color:#d9534f}
.cap{font:400 14px/1.4 var(--sans);color:var(--txt);padding:6px 10px;border-bottom:1px solid var(--rule);background:var(--p2)}.cap b{color:var(--ink);font-weight:600}
.pb{position:relative;flex:1;min-height:0;background:#090b0a;margin:6px;border:1px solid;border-color:var(--lo) var(--hi) var(--hi) var(--lo)}
.pb canvas{position:absolute;inset:0;width:100%;height:100%;display:block}
.p-rx{grid-column:1/9;grid-row:3}.p-now{grid-column:9/13;grid-row:3}.p-sky{grid-column:1/5;grid-row:4}.p-oh{grid-column:5/8;grid-row:4}.p-log{grid-column:8/13;grid-row:4}
.rx{overflow:hidden}#wf{top:0;bottom:60px;right:64px;width:auto;height:auto}#spec{top:auto;bottom:0;height:60px;right:64px;width:auto;border-top:1px solid var(--rule)}
.cbar{position:absolute;right:0;top:0;bottom:60px;width:64px;border-left:1px solid var(--rule);display:flex;flex-direction:column;align-items:center;padding:8px 0;font:400 11px var(--mono);color:var(--txt);gap:4px;background:var(--p1)}
.cbar i{flex:1;width:14px;background:linear-gradient(180deg,#e4ebd2,#76B900 18%,#1c3412 62%,#0a0c0b);border:1px solid var(--rule)}.cbar em{font-style:normal;font-size:9.5px;color:var(--dim);writing-mode:vertical-rl;transform:rotate(180deg);position:absolute;left:4px;top:40%}
/* agent state */
.now{padding:10px 12px;flex:1;display:flex;flex-direction:column;min-height:0;overflow:hidden}.now>*{flex-shrink:0}
.now-act{font:600 12.5px var(--sans);letter-spacing:.08em;color:var(--sig);display:flex;align-items:center;gap:8px}.now-act::before{content:"";width:8px;height:8px;background:var(--sig)}
.now-tgt{font:600 clamp(24px,2.4vw,36px)/1.1 var(--sans);color:var(--ink);margin-top:6px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;letter-spacing:-.01em}
.now-det{font-size:15px;color:var(--txt);margin-top:4px;min-height:2.9em}
.now-last{margin-top:6px;display:grid;grid-template-columns:auto 1fr;gap:10px;align-items:baseline;border-top:1px solid var(--rule);padding-top:6px}.now-last span{font-size:11.5px;color:var(--dim);letter-spacing:.04em}
.now-last b{font:600 14.5px var(--sans);color:var(--amb)}.now-last b.g{color:var(--sig)}
.now-ver2{font:400 12.5px var(--mono);color:var(--dim);padding-top:2px}
.tick{display:grid;grid-template-columns:1fr 1fr;border-top:1px solid var(--rule)}
.tick div{padding:6px 12px;border-right:1px solid var(--rule);border-bottom:1px solid var(--rule)}.tick div:nth-child(2n){border-right:0}.tick .wide{grid-column:1/-1;border-right:0;border-bottom:0}
.tick b{display:block;font:600 clamp(22px,2vw,32px)/1.1 var(--sans);color:var(--ink);letter-spacing:-.01em}.tick b.am{color:var(--amb)}.tick b.g{color:var(--sig)}
.tick span{font-size:11.5px;color:var(--dim);letter-spacing:.03em}
.ohn{position:absolute;right:10px;top:8px;text-align:right;display:grid;font-size:11.5px;color:var(--dim)}.ohn b{font:600 34px/1 var(--sans);color:var(--amb)}
#log{list-style:none;overflow:hidden;padding:8px 10px;display:flex;flex-direction:column;gap:6px;font:400 13px/1.45 var(--mono);color:var(--txt)}
#log .t{color:var(--mute);margin-right:6px}#log .k{color:var(--ink);font-weight:500}#log li.cand .k{color:var(--sig)}#log li.rfi .k{color:var(--amb)}
#log .cur{display:inline-block;width:7px;height:13px;background:var(--txt);vertical-align:-2px}
#log .ai{margin-left:6px;font:600 10px var(--sans);color:var(--sig);border:1px solid var(--rule);padding:0 4px;letter-spacing:.04em}
.skyleg{display:none}
.status{grid-column:1/-1;display:flex;flex-wrap:wrap;gap:0;font:400 12px var(--sans);color:var(--dim);background:var(--p1);border:1px solid;border-color:var(--lo) var(--hi) var(--hi) var(--lo)}
.status span{padding:3px 10px;border-right:1px solid var(--rule);white-space:nowrap}.status b{color:var(--ink);font:500 12px var(--mono)}.status b.ok{color:var(--sig)}.status b.rep{color:var(--amb)}
/* intro dialog */
.intro{position:fixed;inset:0;z-index:70;display:flex;align-items:center;justify-content:center;padding:16px;background:rgba(5,6,6,.72);opacity:0;transition:opacity .2s}
.intro.on{opacity:1}.intro[hidden]{display:none}
.in-card{width:min(1080px,100%);max-height:calc(100vh - 32px);overflow-x:hidden;overflow-y:auto;background:var(--p1);box-shadow:0 0 0 1px #000,6px 6px 0 rgba(0,0,0,.45)}
.in-top{display:flex;justify-content:space-between;align-items:center;padding:4px 6px 4px 10px;font:600 13px var(--sans);color:var(--ink);background:linear-gradient(90deg,#3d5a1c,#24301d 60%,#1c211e);border-bottom:1px solid var(--lo)}
.in-x{width:22px;height:20px;background:linear-gradient(180deg,#2f3631,#222724);border:1px solid;border-color:var(--hi) var(--lo) var(--lo) var(--hi);color:var(--ink);font-size:11px;cursor:pointer}
.in-doc{display:flex;flex-wrap:wrap;border-bottom:1px solid var(--rule);background:var(--p2);font-size:12px;color:var(--dim)}.in-doc span{padding:5px 12px;border-right:1px solid var(--rule)}.in-doc b{color:var(--ink);font:500 12px var(--mono)}
.in-main{padding:16px 20px 0}
.in-body{display:grid;grid-template-columns:1fr 1fr;gap:24px;align-items:start}
.in-l,.in-r{min-width:0}
.in-lines{list-style:none;display:grid;gap:2px;font:500 17px/1.35 var(--sans);color:var(--ink)}.in-lines a{text-decoration:underline;text-decoration-color:var(--sig);text-underline-offset:3px}
.intro h2{margin-top:12px;font:700 clamp(40px,5vw,68px)/.95 var(--sans);letter-spacing:-.03em;color:var(--ink);text-transform:uppercase}.intro h2 em{font-style:normal;color:var(--sig)}
.in-kick{margin-top:12px;font:500 15px var(--sans);color:var(--txt)}
.in-facts{list-style:none;border:1px solid var(--rule)}
.in-facts li{display:grid;grid-template-columns:84px 1fr;border-bottom:1px solid var(--rule);font-size:14px}.in-facts li:last-child{border-bottom:0}
.in-facts b{padding:6px 10px;background:var(--p2);border-right:1px solid var(--rule);font:600 11.5px var(--sans);letter-spacing:.06em;color:var(--dim)}.in-facts span{padding:6px 10px;color:var(--ink)}
.in-count{display:grid;grid-template-columns:repeat(3,1fr);border:1px solid var(--rule);border-top:0}
.in-count div{padding:6px 10px;border-right:1px solid var(--rule)}.in-count div:last-child{border-right:0}
.in-count b{display:block;font:600 26px/1.15 var(--sans);color:var(--ink)}.in-count div:last-child b{color:var(--amb)}.in-count span{font-size:11px;color:var(--dim);letter-spacing:.04em}
.in-bar{margin-top:14px;padding:10px 20px;border-top:1px solid var(--rule);background:var(--p2)}
.in-foot{display:flex;justify-content:space-between;align-items:center;gap:14px;flex-wrap:wrap}
.in-tk{display:flex;align-items:baseline;gap:14px}.in-tk b{font:700 26px var(--sans);color:var(--sig)}.in-tk span{font-size:12px;color:var(--dim)}.in-tk code{font:500 13px var(--mono);color:var(--ink)}
.in-go{font:600 14px var(--sans);letter-spacing:.06em;background:linear-gradient(180deg,#86c912,#5f9600);color:#0b0d0c;padding:11px 26px;cursor:pointer;border-color:#a6dd4d #2e4a00 #2e4a00 #a6dd4d}
.in-go:active{border-color:#2e4a00 #a6dd4d #a6dd4d #2e4a00;background:#5f9600;padding:12px 25px 10px 27px}
.in-fine{margin-top:8px;font-size:11.5px;color:var(--mute)}
.rv{opacity:1}
/* briefing + fees */
.fees,.brief{max-width:1240px;margin:0 auto;padding:90px 24px 20px}
.memo-h{display:grid;grid-template-columns:repeat(4,auto);justify-content:start;border:1px solid var(--rule);background:var(--p1);margin-bottom:28px}
.memo-h div{padding:6px 14px;border-right:1px solid var(--rule)}.memo-h span{display:block;font-size:11px;color:var(--dim);letter-spacing:.06em}.memo-h b{font:500 14px var(--sans);color:var(--ink)}
.fees h2{font:700 clamp(40px,6vw,80px)/.95 var(--sans);letter-spacing:-.03em;color:var(--ink);text-transform:uppercase}.fees h2 em{font-style:normal;color:var(--sig)}
.fees-grid{display:grid;grid-template-columns:1fr 1fr 1.2fr;margin-top:28px;border:1px solid var(--rule);background:var(--p1)}
.fees-grid p{padding:18px 20px;font-size:17px;line-height:1.5;color:var(--txt);border-right:1px solid var(--rule)}.fees-grid p:last-child{border-right:0}.fees-grid b{color:var(--ink)}
.fees-grid .goal{font-size:20px;font-weight:600;color:var(--ink);background:var(--p2)}
.fees .fine{margin-top:12px;font-size:12px;color:var(--dim)}
.file{font:500 12px var(--mono);color:var(--dim);margin-bottom:14px}
.b-hero h1{font:700 clamp(40px,6vw,80px)/.95 var(--sans);letter-spacing:-.03em;color:var(--ink)}.b-hero h1 em{font-style:normal;color:var(--sig)}
.b-hero p{margin-top:16px;font-size:17px;max-width:600px}
.b-grid{display:grid;grid-template-columns:1fr 1fr;margin-top:40px;border:1px solid var(--rule);background:var(--p1)}
.b{padding:20px 22px;border-right:1px solid var(--rule);border-bottom:1px solid var(--rule)}.b:nth-child(2n){border-right:0}
.n{font:500 12px var(--mono);color:var(--sig)}.b h3,.b-data h3{font:600 19px var(--sans);color:var(--ink);margin:6px 0 8px}.b p{font-size:15.5px;line-height:1.55}.b a{text-decoration:underline;color:var(--ink)}
.tag{font:600 10px var(--sans);color:var(--sig);border:1px solid var(--rule);padding:0 4px}
.b-data{margin-top:40px}.b-data ul{list-style:none;border:1px solid var(--rule);background:var(--p1)}
.b-data li{display:grid;grid-template-columns:100px 1fr auto;gap:16px;padding:10px 14px;border-bottom:1px solid var(--rule);font-size:15px;align-items:baseline}.b-data li:last-child{border-bottom:0}
.b-data li span{font:600 12px var(--sans);color:var(--txt)}.b-data li span.g{color:var(--sig)}.b-data li:first-child span{color:var(--amb)}.b-data li b{font-weight:500;color:var(--ink)}.b-data li a{font-size:12px;color:var(--dim);text-decoration:underline}
.b-token{margin-top:40px;display:grid;grid-template-columns:1fr 1fr;gap:24px;align-items:center;border:1px solid var(--rule);background:var(--p1);padding:22px}
.b-token h2{font:700 clamp(40px,5vw,64px)/1 var(--sans);color:var(--sig)}.tk-l p{font-size:15px;margin-top:6px}
.tk-r .row{display:flex;align-items:center;gap:14px;padding:10px 0;border-bottom:1px solid var(--rule)}.tk-r .row span{width:30px;color:var(--dim);font-size:12px}code{font:500 14px var(--mono);color:var(--ink);flex:1;word-break:break-all}
.foot{margin-top:40px;padding:18px 0 30px;border-top:1px solid var(--rule);display:flex;justify-content:space-between;gap:30px;font-size:13px;color:var(--dim)}.foot b{color:var(--ink);white-space:nowrap}.foot p{max-width:620px}
@media (max-height:800px) and (min-width:1001px){.cap{font-size:13px;padding:4px 10px}.now-det{font-size:14px;min-height:0}.tick div{padding:4px 10px}.tick b{font-size:22px}.now-ver2{display:none}
 .in-main{padding-top:12px}.intro h2{font-size:clamp(36px,4.4vw,56px)}.in-facts li{font-size:13px}.in-facts b,.in-facts span{padding:4px 10px}.in-count b{font-size:22px}.in-bar{margin-top:10px;padding:8px 20px}.in-go{padding:9px 22px}}
@media (max-width:1000px){
 .console{height:auto;min-height:0;grid-template-columns:1fr;grid-template-rows:none}
 .p,.top,.menu,.status{grid-column:1!important;grid-row:auto!important}
 .top{flex-wrap:wrap;gap:8px}.lights{flex-wrap:wrap;gap:10px;order:3;width:100%}.hide-s,.menu-r{display:none}
 .p-rx{height:460px}.p-now{height:auto}.p-sky{height:360px}.p-oh{height:380px}.p-log{height:440px}
 .in-body{grid-template-columns:1fr;gap:12px}.fees-grid,.b-grid{grid-template-columns:1fr}.fees-grid p,.b{border-right:0;border-bottom:1px solid var(--rule)}
 .memo-h{grid-template-columns:1fr 1fr}.b-data li{grid-template-columns:1fr;gap:2px}.b-token{grid-template-columns:1fr}.foot{flex-direction:column}
}
@media (max-width:600px){.intro{padding:8px;align-items:flex-start}.in-card{max-height:calc(100vh - 16px)}.in-main{padding:10px 12px 0}.in-bar{padding:8px 12px}.in-lines{font-size:15px}.intro h2{font-size:36px;margin-top:8px}.in-kick{font-size:13.5px;margin-top:8px}
 .in-facts li{grid-template-columns:62px 1fr;font-size:13px}.in-facts b,.in-facts span{padding:4px 8px}.in-facts b{font-size:10.5px}.in-count b{font-size:20px}.in-count span{font-size:10px}.in-go{width:100%}.in-doc span{padding:3px 8px;font-size:11px}.in-doc b{font-size:11px}
 .cbar{width:48px}#wf,#spec{right:48px}}
/* ===== room hero + app mode ===== */
#boot{display:none}
.hero{position:relative;height:100vh;min-height:560px;overflow:hidden;background:#050606}
.room{position:absolute;will-change:transform}
.room img{position:absolute;inset:0;width:100%;height:100%;display:block;user-select:none}
#crt{position:absolute;opacity:.92;mix-blend-mode:screen;filter:blur(.3px) contrast(1.05);border-radius:2px}
.screen-hit{position:absolute;background:transparent;border:1px solid rgba(118,185,0,.35);cursor:pointer;box-shadow:0 0 18px rgba(118,185,0,.18);animation:crtp 3s ease-in-out infinite}
.screen-hit:hover{border-color:rgba(118,185,0,.8);box-shadow:0 0 26px rgba(118,185,0,.3)}
@keyframes crtp{50%{box-shadow:0 0 8px rgba(118,185,0,.08)}}
.screen-hint{position:absolute;transform:translateX(-50%);font:500 12px var(--mono);letter-spacing:.12em;color:var(--sig);white-space:nowrap;background:rgba(5,6,6,.75);border:1px solid var(--rule);padding:3px 8px;pointer-events:none}
.hero-shade{position:absolute;inset:0;pointer-events:none;background:linear-gradient(90deg,rgba(5,6,6,.82) 0%,rgba(5,6,6,.35) 38%,rgba(5,6,6,0) 60%),linear-gradient(0deg,rgba(5,6,6,.85) 0%,rgba(5,6,6,0) 30%)}
.hero-txt{position:absolute;left:max(28px,4vw);top:max(28px,7vh);max-width:560px}
.h-id{font:500 13px var(--mono);letter-spacing:.14em;color:var(--sig)}
.hero-txt h1{font:700 clamp(56px,8vw,120px)/.95 var(--sans);letter-spacing:-.035em;color:#e9ece9;margin-top:10px}
.hero-txt p{margin-top:12px;font:400 clamp(15px,1.4vw,19px)/1.4 var(--sans);color:#c3cac5}
.hero-scroll{position:absolute;left:50%;bottom:18px;transform:translateX(-50%);font:500 12px var(--mono);letter-spacing:.14em;color:var(--dim)}
body.zooming .hero-txt,body.zooming .hero-scroll,body.zooming .screen-hint,body.zooming .hero-shade{opacity:0;transition:opacity .3s}
body.in-app{overflow:hidden}
.app{position:fixed;inset:0;z-index:60;background:var(--bg);opacity:0;transition:opacity .25s}.app.on{opacity:1}.app[hidden]{display:none}
.app .console{height:100vh}
.exit{border-color:var(--hi) var(--lo) var(--lo) var(--hi);color:var(--sig)!important}
@media (max-width:1000px){.app{overflow-y:auto}.app .console{height:auto}.screen-hint{font-size:10.5px}}
.intro{z-index:75}
#wf,#spec{width:calc(100% - 64px)!important}
.app .console{min-height:0}
@media (max-width:600px){#wf,#spec{width:calc(100% - 48px)!important}}
/* 3D room */
#gl{position:absolute;inset:0;width:100%;height:100%;display:block}
body.r3d .room{display:none}
body.r3d .hero::after{content:"";position:absolute;inset:0;pointer-events:none;z-index:2;opacity:.07;mix-blend-mode:overlay;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='200' height='200'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");animation:grain .5s steps(3) infinite}
body.r3d .hero::before{content:"";position:absolute;inset:0;pointer-events:none;z-index:2;background:radial-gradient(ellipse at 55% 55%,transparent 45%,rgba(0,0,0,.6))}
@keyframes grain{33%{background-position:40px 70px}66%{background-position:-60px 20px}}
body.r3d .hero-shade{z-index:3}body.r3d .hero-txt,body.r3d .hero-scroll,body.r3d .screen-hint{z-index:4}
.screen-hint{transform:translate(-50%,0)}
body.r3d.zooming .hero::after,body.r3d.zooming .hero::before{opacity:0;transition:opacity .4s}
