@font-face{font-family:Rubik;src:url(/rubik.woff2) format('woff2');font-display:swap}
@font-face{font-family:SG;src:url(/sg-500.woff2) format('woff2');font-weight:400 500;font-display:swap}
@font-face{font-family:SG;src:url(/sg-700.woff2) format('woff2');font-weight:600 700;font-display:swap}
@font-face{font-family:JB;src:url(/jbmono.woff2) format('woff2');font-weight:100 800;font-display:swap}
:root{
  --bg:#050607; --bone:#efe7dc; --dim:#8d8984; --faint:#4f4c48;
  --up:#b9ff3a; --down:#ff335f; --line:rgba(239,231,220,.08); --glass:rgba(8,10,9,.68);
  --mono:JB,ui-monospace,Menlo,monospace; --sans:SG,system-ui,sans-serif; --disp:Rubik,SG,sans-serif;
  --pad:14px; --topH:58px; --botH:58px; --lw:290px; --rw:304px;
}
*{box-sizing:border-box;margin:0;padding:0}
html,body{height:100%;background:var(--bg);color:var(--bone);font-family:var(--sans);overflow:hidden;-webkit-font-smoothing:antialiased;overscroll-behavior:none}
button,input{font:inherit;color:inherit;background:none;border:0}
button{cursor:pointer}
a{color:inherit;text-decoration:none}
sub{font-size:.72em;vertical-align:-.25em}
.w{color:var(--up)} .l{color:var(--down)}
#gl{position:fixed;inset:0;width:100%;height:100%;display:block;touch-action:none;cursor:grab;outline:none}
#gl.drag{cursor:grabbing} #gl.pick{cursor:pointer}

/* labels projected from 3D */
#labels{position:fixed;inset:0;pointer-events:none;overflow:hidden;z-index:1}
.lb{position:absolute;left:0;top:0;white-space:nowrap;font:600 11px/1 var(--mono);will-change:transform,opacity;text-shadow:0 1px 12px rgba(0,0,0,.85)}
.lb.lane{font:13px/1 var(--disp);color:var(--bone);letter-spacing:.04em;padding-left:10px}
.lb.lane small{display:block;font:500 10px/1.5 var(--mono);color:var(--dim);letter-spacing:0;margin-top:4px}
.lb.lane::before{content:"";position:absolute;left:0;top:1px;bottom:1px;width:2px;background:var(--up);opacity:.55}
.lb.lane.hot{color:var(--up)}
.lb.time{color:var(--faint);font-size:10px;font-weight:400}
.lb.ev{font-size:12px}
.lb.ev.bite,.lb.ev.loss{color:var(--down)} .lb.ev.feed{color:var(--up)} .lb.ev.molt{color:var(--up);font:15px/1 var(--disp);letter-spacing:.06em}
.lb.ev.poke{color:var(--bone);font:500 13px/1 var(--sans)}
.lb.pnl{font-size:10.5px;opacity:.85} .lb.pnl.w{color:var(--up)} .lb.pnl.l{color:var(--down)}
.lb.stat{font:500 11px/1.35 var(--mono);color:var(--dim)}
.lb.stat b{display:block;font:20px/1.15 var(--disp);color:var(--bone);letter-spacing:.02em;font-weight:400}
.lb.gut{display:flex;align-items:center;gap:7px;font:600 12px/1.2 var(--sans);color:var(--bone)}
.lb.gut img,.lb.gut .ini{width:24px;height:24px;border-radius:50%;object-fit:cover;background:#151a12;display:grid;place-items:center;font:600 9px/1 var(--mono);color:var(--dim);font-style:normal;box-shadow:0 0 0 1px rgba(185,255,58,.35)}
.lb.gut em{display:block;font:500 10.5px/1.3 var(--mono);font-style:normal}
.lb.gut em.w{color:var(--up)} .lb.gut em.l{color:var(--down)}

#tip{position:fixed;left:0;top:0;pointer-events:none;font:500 11px/1.55 var(--mono);color:var(--bone);background:rgba(5,6,7,.88);border-left:2px solid var(--up);padding:8px 11px;opacity:0;transition:opacity .12s;backdrop-filter:blur(6px);z-index:8}
#tip.on{opacity:1}
#tip .h{color:var(--dim);font-size:10px;margin-bottom:3px}
#tip .u{color:var(--up)} #tip .d{color:var(--down)}

/* HUD shell */
.hud{position:fixed;inset:0;pointer-events:none;z-index:3;opacity:0;transition:opacity .9s .3s}
body.ready .hud{opacity:1}
.hud>*{pointer-events:auto}
.hud .hint-bubble{pointer-events:none}
body.cinema .hud{opacity:0!important;pointer-events:none}
body.cinema .hud>*{pointer-events:none}
.cinema-exit{position:fixed;right:18px;bottom:18px;z-index:4;font:500 11px/1 var(--mono);color:var(--dim);border:1px solid var(--line);background:rgba(5,6,7,.6);padding:8px 11px;opacity:0;pointer-events:none;transition:opacity .4s}
body.cinema .cinema-exit{opacity:1;pointer-events:auto}
.cinema-exit:hover{color:var(--bone)}

.glass{background:var(--glass);border:1px solid var(--line);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px)}
.panel,.top,.bottom{background:var(--glass);border:1px solid var(--line);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px)}

/* segmented buttons */
.seg{display:flex;gap:2px;background:rgba(239,231,220,.04);border-radius:7px;padding:2px}
.seg button{font:500 10.5px/1 var(--mono);color:var(--dim);padding:6px 8px;border-radius:5px;transition:background .15s,color .15s}
.seg button:hover{color:var(--bone)}
.seg button.on{background:rgba(185,255,58,.14);color:var(--up)}

/* top bar */
.top{position:absolute;left:var(--pad);right:var(--pad);top:var(--pad);height:var(--topH);border-radius:12px;display:flex;align-items:center;gap:22px;padding:0 16px 0 14px}
.logo{display:flex;align-items:center;gap:10px;color:var(--up);flex:none}
.logo svg{width:30px;height:28px;filter:drop-shadow(0 0 10px rgba(185,255,58,.35))}
.logo b{font:22px/1 var(--disp);letter-spacing:.08em;color:var(--bone);font-weight:400}
.views{display:flex;gap:4px;flex:none}
.views button{font:500 12px/1 var(--mono);color:var(--dim);padding:9px 11px;border-radius:7px;transition:background .15s,color .15s}
.views button:hover{color:var(--bone);background:rgba(239,231,220,.04)}
.views button.on{color:var(--bg);background:var(--up)}
.rail{display:flex;gap:22px;margin-left:auto;font:400 11px/1 var(--mono)}
.rail div{display:flex;flex-direction:column;gap:5px}
.rail dt{color:var(--faint);text-transform:uppercase;letter-spacing:.14em;font-size:9px}
.rail dd{color:var(--bone);font-variant-numeric:tabular-nums;white-space:nowrap}
.rail .host-now dd{font-weight:600}
.rail .host-now dd small{color:var(--dim);font-weight:400;margin-left:6px}
.links{display:flex;align-items:center;gap:14px;flex:none;padding-left:18px;border-left:1px solid var(--line);height:30px}
.ca{display:flex;align-items:center;gap:7px;font:400 11px/1 var(--mono);color:var(--dim)}
.ca span{color:var(--faint)} .ca code{font:inherit;color:var(--bone)} .ca.ok code{color:var(--up)}
.links a svg{width:15px;height:15px;fill:var(--dim);display:block}
.links a[href]:hover svg{fill:var(--bone)}
.buy{font:11.5px/1 var(--disp);letter-spacing:.04em;color:var(--bg)!important;background:var(--up);padding:10px 13px;border-radius:7px}
.buy:hover{background:#d2ff7c}
.buy.off{background:transparent;color:var(--dim)!important;border:1px solid var(--faint);cursor:default}

/* panels */
.panel{position:absolute;top:calc(var(--pad)*2 + var(--topH));bottom:calc(var(--pad)*2 + var(--botH));border-radius:12px;display:flex;flex-direction:column;overflow:hidden}
.panel.left{left:var(--pad);width:var(--lw);padding:14px 12px 10px}
.panel.right{right:var(--pad);width:var(--rw);background:none;border:0;backdrop-filter:none;-webkit-backdrop-filter:none;gap:10px}
.card{background:var(--glass);border:1px solid var(--line);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);border-radius:12px;padding:13px 14px}
.panel header,.card header{display:flex;align-items:center;gap:8px;margin-bottom:10px}
h3{font:600 10.5px/1 var(--mono);letter-spacing:.16em;text-transform:uppercase;color:var(--dim)}
.ct{font:500 10px/1 var(--mono);color:var(--faint);padding:3px 6px;border:1px solid var(--line);border-radius:10px}
header .seg{margin-left:auto}

/* hosts */
.infect{display:flex;gap:6px;margin-bottom:4px}
.infect input{flex:1;min-width:0;font:400 11.5px/1 var(--mono);color:var(--bone);background:rgba(239,231,220,.04);border:1px solid var(--line);border-radius:7px;padding:9px 10px;outline:none;transition:border-color .15s}
.infect input::placeholder{color:var(--faint)}
.infect input:focus{border-color:rgba(185,255,58,.5)}
.infect button{font:11px/1 var(--disp);letter-spacing:.04em;background:var(--up);color:var(--bg);padding:0 12px;border-radius:7px}
.msg{font:400 10.5px/1.4 var(--mono);color:var(--dim);padding:4px 2px 0;min-height:0}
.msg:empty{display:none}
.hostlist{list-style:none;overflow-y:auto;flex:1;margin:8px -6px 0;padding:0 6px;scrollbar-width:thin;scrollbar-color:#2a2a28 transparent}
.hostlist li{display:grid;grid-template-columns:28px 1fr 56px 58px;gap:9px;align-items:center;padding:9px 8px;border-radius:8px;cursor:pointer;position:relative;transition:background .15s}
.hostlist li:hover{background:rgba(239,231,220,.04)}
.hostlist li.on{background:rgba(185,255,58,.07)}
.hostlist li.on::before{content:"";position:absolute;left:-6px;top:10px;bottom:10px;width:2px;border-radius:2px;background:var(--up)}
.hostlist li.load{opacity:.5} .hostlist li.dead{opacity:.3;pointer-events:none}
.hostlist img,.hostlist .ini{width:28px;height:28px;border-radius:50%;object-fit:cover;background:#15171a;display:grid;place-items:center;font:600 10px/1 var(--mono);font-style:normal;color:var(--dim)}
.hostlist .nm{min-width:0}
.hostlist .nm b{display:block;font:600 13px/1.2 var(--sans);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.hostlist .nm small{display:block;font:400 10px/1.3 var(--mono);color:var(--faint);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.hostlist canvas{width:56px;height:24px}
.hostlist .rt{text-align:right;font:500 11px/1.35 var(--mono)}
.hostlist .rt span{display:block}
.hostlist .rt .pp{font-size:10px}
.hostlist .tag{position:absolute;right:8px;top:4px;font:600 8.5px/1 var(--mono);letter-spacing:.1em;color:var(--up)}
.foot{font:400 9.5px/1.4 var(--mono);color:var(--faint);padding-top:8px;border-top:1px solid var(--line);margin-top:6px}

/* vitals */
.mode{display:flex;align-items:center;gap:6px;font:600 9.5px/1 var(--mono);letter-spacing:.16em;color:var(--dim);margin-left:auto}
.mode i{width:6px;height:6px;border-radius:50%;background:var(--dim)}
.mode.live{color:var(--up)} .mode.live i{background:var(--up);box-shadow:0 0 10px var(--up);animation:blink 1.6s infinite}
@keyframes blink{50%{opacity:.25}}
.stage-row{display:flex;align-items:flex-end;justify-content:space-between;gap:10px}
.stage{font:26px/1 var(--disp);letter-spacing:.02em;color:var(--bone);transition:color .4s}
.stage.starving{color:var(--down)}
.mass{text-align:right}
.mass b{display:block;font:600 20px/1 var(--mono)}
.mass small{font:400 9.5px/1 var(--mono);color:var(--dim);letter-spacing:.06em}
.mass.w b{color:var(--up)} .mass.l b{color:var(--down)}
.bar{height:3px;border-radius:3px;background:rgba(239,231,220,.1);position:relative;overflow:hidden;margin-top:12px}
.bar i{position:absolute;left:0;top:0;bottom:0;width:0;background:var(--up);box-shadow:0 0 8px var(--up);transition:width .6s}
.next{font:400 10.5px/1 var(--mono);color:var(--dim);margin-top:8px}
.next b{color:var(--bone);font-weight:600}
.spark{display:block;width:100%;height:46px;margin-top:10px}
.grid4{display:grid;grid-template-columns:repeat(4,1fr);gap:6px;margin-top:10px;padding-top:10px;border-top:1px solid var(--line)}
.grid4 div{display:flex;flex-direction:column;gap:4px}
.grid4 b{font:600 14px/1 var(--mono)} .grid4 span{font:400 9.5px/1 var(--mono);color:var(--dim)}
.wallet{display:block;font:400 10px/1 var(--mono);color:var(--faint);margin-top:10px}
a.wallet[href]:hover{color:var(--bone)}

/* instincts */
.hint{font:400 10.5px/1.45 var(--mono);color:var(--dim);margin:-2px 0 8px}
.sl{display:grid;grid-template-columns:1fr auto;gap:4px 8px;align-items:center;padding:6px 0}
.sl span{font:500 11.5px/1 var(--sans);color:var(--bone)}
.sl output{font:600 11px/1 var(--mono);color:var(--up)}
.sl input{grid-column:1/-1;width:100%;-webkit-appearance:none;appearance:none;height:18px;background:transparent;cursor:pointer}
.sl input::-webkit-slider-runnable-track{height:3px;border-radius:3px;background:linear-gradient(90deg,var(--up) var(--p,50%),rgba(239,231,220,.12) var(--p,50%))}
.sl input::-moz-range-track{height:3px;border-radius:3px;background:rgba(239,231,220,.12)}
.sl input::-moz-range-progress{height:3px;background:var(--up)}
.sl input::-webkit-slider-thumb{-webkit-appearance:none;width:14px;height:14px;border-radius:50%;background:var(--bone);margin-top:-5.5px;box-shadow:0 0 0 3px rgba(185,255,58,.25)}
.sl input::-moz-range-thumb{width:14px;height:14px;border:0;border-radius:50%;background:var(--bone)}
.ins.off .sl{opacity:.35;pointer-events:none}

/* feed */
.card.fd{flex:1;min-height:120px;display:flex;flex-direction:column}
.feed{list-style:none;overflow-y:auto;flex:1;font:400 11px/1 var(--mono);scrollbar-width:none}
.feed li{display:grid;grid-template-columns:38px 38px 1fr auto;gap:6px;padding:7px 0;border-bottom:1px solid rgba(239,231,220,.04);color:var(--dim);animation:in .4s both;white-space:nowrap;cursor:pointer}
.feed li:hover{color:var(--bone)}
.feed li .t{color:var(--faint)}
.feed li .k{font-weight:600}
.feed li.bite .k,.feed li.loss .k{color:var(--down)} .feed li.feed .k,.feed li.molt .k,.feed li.food .k{color:var(--up)} .feed li.hop .k{color:var(--bone)}
.feed li .v{color:var(--bone);overflow:hidden;text-overflow:ellipsis}
.feed li .p.w{color:var(--up)} .feed li .p.l{color:var(--down)}
.feed li.empty{display:block;color:var(--faint);cursor:default;border:0}
@keyframes in{from{opacity:0;transform:translateY(-4px)}}

/* bottom bar */
.bottom{position:absolute;left:var(--pad);right:var(--pad);bottom:var(--pad);height:var(--botH);border-radius:12px;display:flex;align-items:center;gap:16px;padding:0 12px}
.tl{display:flex;align-items:center;gap:10px;flex:1;min-width:0}
.play{width:34px;height:34px;border-radius:50%;display:grid;place-items:center;background:var(--up);color:var(--bg);flex:none;transition:transform .15s}
.play:hover{transform:scale(1.06)}
.play svg{width:12px;height:12px;fill:currentColor}
#scrub{flex:1;min-width:0;height:38px;cursor:ew-resize;touch-action:none}
.st{font:400 10.5px/1 var(--mono);color:var(--dim);width:88px;text-align:right;flex:none}
.tools{display:flex;align-items:center;gap:6px;flex:none;padding-left:14px;border-left:1px solid var(--line);height:34px}
.tool{display:flex;align-items:center;gap:6px;font:500 11px/1 var(--mono);color:var(--dim);padding:8px 9px;border-radius:7px;transition:background .15s,color .15s}
.tool svg{width:13px;height:13px}
.tool:hover{color:var(--bone);background:rgba(239,231,220,.04)}
.tool.on,.tool.ok{color:var(--up)}
.tools .seg{margin-right:6px}

.sheet-tabs{display:none}
.mini{display:none}
.hint-bubble{position:absolute;left:50%;bottom:calc(var(--pad)*2 + var(--botH));transform:translateX(-50%);font:400 11px/1 var(--mono);color:var(--dim);background:rgba(5,6,7,.7);border:1px solid var(--line);border-radius:20px;padding:9px 14px;white-space:nowrap;transition:opacity .6s}
.hint-bubble.off{opacity:0}

/* ledger sheet */
.ledger{position:fixed;right:var(--pad);top:calc(var(--pad)*2 + var(--topH));bottom:calc(var(--pad)*2 + var(--botH));width:min(560px,calc(100vw - 28px));z-index:5;background:rgba(6,8,7,.96);border:1px solid var(--line);border-radius:12px;padding:20px 20px 14px;display:flex;flex-direction:column;transform:translateX(calc(100% + 30px));transition:transform .45s cubic-bezier(.2,.8,.2,1)}
.ledger.on{transform:none}
.ledger header{display:flex;align-items:center;justify-content:space-between}
.ledger h2{font:20px/1 var(--disp);letter-spacing:.06em;font-weight:400}
.ledger .x{font-size:24px;color:var(--dim)} .ledger .x:hover{color:var(--bone)}
.sum{display:grid;grid-template-columns:repeat(5,auto);justify-content:space-between;gap:10px;margin:18px 0 14px;padding-bottom:14px;border-bottom:1px solid var(--line)}
.sum div{display:flex;flex-direction:column;gap:5px}
.sum b{font:600 16px/1 var(--mono)} .sum span{font:400 10px/1 var(--mono);color:var(--dim)}
.bar2{display:flex;justify-content:space-between;align-items:center}
.csv{font:500 11px/1 var(--mono);color:var(--up);border:1px solid rgba(185,255,58,.35);padding:7px 10px;border-radius:7px}
.csv:hover{background:rgba(185,255,58,.1)}
.note{font:400 10.5px/1.5 var(--mono);color:var(--faint);margin:12px 0 6px}
.rows{list-style:none;overflow-y:auto;flex:1;margin:0 -8px;padding:0 8px;scrollbar-width:thin;scrollbar-color:#2a2a28 transparent}
.rows li{display:grid;grid-template-columns:100px 44px 1fr auto 64px 16px;gap:8px;align-items:baseline;padding:9px 6px;border-bottom:1px solid rgba(239,231,220,.05);font:400 11.5px/1.2 var(--mono);color:var(--dim);cursor:pointer;border-radius:6px}
.rows li:hover{background:rgba(239,231,220,.04)}
.rows li .t{color:var(--faint);font-size:10.5px}
.rows li .k{font-weight:600}
.rows li.bite .k,.rows li.loss .k{color:var(--down)} .rows li.feed .k,.rows li.molt .k,.rows li.food .k{color:var(--up)} .rows li.hold .k{color:var(--bone)}
.rows li .s{color:var(--bone);font-family:var(--sans);font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.rows li .v{color:var(--bone);text-align:right}
.rows li .r{text-align:right}
.rows li a{color:var(--dim)} .rows li a:hover{color:var(--up)}
.rows li.empty{display:block;color:var(--faint);cursor:default;padding:24px 6px}
body[data-view=ledger] .panel.right{opacity:0;pointer-events:none}
.panel{transition:opacity .35s}

/* how */
.how{position:fixed;inset:0;z-index:6;display:flex;align-items:center;padding:0 7vw;background:linear-gradient(90deg,rgba(5,6,7,.96) 0%,rgba(5,6,7,.7) 48%,rgba(5,6,7,.05) 78%);opacity:0;pointer-events:none;transition:opacity .5s;overflow-y:auto}
.how.on{opacity:1;pointer-events:auto}
.how-in{max-width:580px;padding:40px 0}
.how .k{font:600 11px/1 var(--mono);letter-spacing:.18em;color:var(--up);text-transform:uppercase}
.how h2{font:clamp(26px,3.4vw,42px)/1.08 var(--disp);font-weight:400;letter-spacing:.01em;margin-top:16px}
.how ol{list-style:none;margin:28px 0 22px;counter-reset:s}
.how li{display:grid;grid-template-columns:34px 92px 1fr;align-items:baseline;padding:13px 0;border-top:1px solid var(--line);counter-increment:s;opacity:0;transform:translateX(-10px);transition:opacity .5s,transform .5s}
.how.on li{opacity:1;transform:none}
.how.on li:nth-child(2){transition-delay:.08s}.how.on li:nth-child(3){transition-delay:.16s}.how.on li:nth-child(4){transition-delay:.24s}
.how li::before{content:"0" counter(s);font:500 11px/1 var(--mono);color:var(--faint)}
.how li b{font:17px/1 var(--disp);font-weight:400;letter-spacing:.04em}
.how li span{font:400 15px/1.4 var(--sans);color:var(--dim)}
.stages{display:flex;margin:4px 0 22px;font:500 10.5px/1 var(--mono);color:var(--dim)}
.stages span{flex:1;padding:8px 8px 0 0;border-top:2px solid var(--faint)}
.stages span:first-child{border-color:var(--down);color:var(--down)} .stages span:last-child{border-color:var(--up);color:var(--up)}
.stages small{color:var(--faint)}
.how .fine{font:400 12.5px/1.6 var(--mono);color:var(--dim);margin-top:10px}
.how .fine em{font-style:normal;color:var(--bone)}
.how .fine.small{font-size:11px;color:var(--faint)}
.keys{font:400 11px/2.2 var(--mono);color:var(--dim);margin-top:16px}
kbd{font:500 10.5px/1 var(--mono);color:var(--bone);border:1px solid var(--faint);border-radius:4px;padding:3px 6px;margin:0 3px 0 10px}
kbd:first-child{margin-left:0}
.how .close{margin-top:24px;font:11.5px/1 var(--disp);letter-spacing:.04em;color:var(--bg);background:var(--up);padding:11px 16px;border-radius:7px}
body[data-view=how] .panel,body[data-view=how] .hint-bubble{opacity:0;pointer-events:none}

/* boot */
.boot{position:fixed;inset:0;z-index:9;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:18px;background:var(--bg);color:var(--up);transition:opacity 1s}
.boot svg{width:58px;height:54px;animation:breath 1.6s ease-in-out infinite;filter:drop-shadow(0 0 14px rgba(185,255,58,.4))}
.boot span{font:500 11px/1 var(--mono);letter-spacing:.3em;color:var(--dim);text-transform:uppercase}
.boot.off{opacity:0;pointer-events:none}
@keyframes breath{50%{transform:scale(1.1);opacity:.6}}
.nojs{position:fixed;inset:0;display:grid;place-items:center;font:500 14px var(--mono);color:var(--dim);z-index:10;background:var(--bg)}

@media (max-width:1320px){ .rail .host-now{display:none} :root{--lw:262px;--rw:280px} .tool span{display:none} }
@media (max-width:1060px){ .rail{display:none} .views{margin-left:auto} }
@media (max-width:820px){
  :root{--pad:10px;--topH:96px;--botH:92px}
  .top{flex-wrap:wrap;height:auto;gap:8px 10px;padding:10px 12px;align-content:flex-start}
  .logo svg{width:24px;height:22px} .logo b{font-size:17px}
  .mini{display:block;font:500 10.5px/1.25 var(--mono);color:var(--dim);margin-left:4px}
  .mini b{display:block;font:12px/1.1 var(--disp);color:var(--bone);font-weight:400;letter-spacing:.03em}
  .mini .w{color:var(--up)} .mini .l{color:var(--down)}
  .links{margin-left:auto;padding-left:10px;height:26px;gap:10px} .ca{display:none}
  .views{order:3;width:100%;margin:0;overflow-x:auto;scrollbar-width:none} .views button{flex:1;padding:8px 6px;font-size:11.5px}
  .bottom{height:auto;flex-direction:column;align-items:stretch;gap:6px;padding:8px 10px}
  .tools{border:0;padding:0;justify-content:space-between;height:auto}
  .tools .seg{margin:0}
  .st{display:none}
  .speed{display:none}
  .sheet-tabs{display:flex;position:absolute;left:var(--pad);right:var(--pad);bottom:calc(var(--pad)*2 + 92px);gap:4px}
  .sheet-tabs button{flex:1;font:500 11px/1 var(--mono);color:var(--dim);background:rgba(8,10,9,.75);border:1px solid var(--line);border-radius:8px;padding:9px 0;backdrop-filter:blur(10px)}
  .sheet-tabs button.on{color:var(--bg);background:var(--up)}
  .panel{top:auto;bottom:calc(var(--pad)*3 + 92px + 34px);height:min(46vh,380px);opacity:0;pointer-events:none;transform:translateY(12px);transition:opacity .25s,transform .25s}
  .panel.left{left:var(--pad);right:var(--pad);width:auto}
  .panel.right{left:var(--pad);right:var(--pad);width:auto}
  .panel.right .card{display:none}
  body[data-sheet=hosts] .panel.left,body[data-sheet=vitals] .panel.right,body[data-sheet=instincts] .panel.right,body[data-sheet=feed] .panel.right{opacity:1;pointer-events:auto;transform:none}
  body[data-sheet=vitals] .card.vit,body[data-sheet=instincts] .card.ins,body[data-sheet=feed] .card.fd{display:flex;flex-direction:column;flex:1;overflow:auto}
  .hint-bubble{display:none}
  .ledger{left:var(--pad);right:var(--pad);width:auto;padding:16px 14px 10px}
  .sum{grid-template-columns:repeat(3,auto)} .sum div:nth-child(n+4){display:none}
  .rows li{grid-template-columns:72px 38px 1fr auto 54px 14px;gap:6px;font-size:11px}
  .rows li .t{font-size:9.5px}
  .how{padding:0 20px;background:rgba(5,6,7,.93);align-items:flex-start}
  .how-in{padding:120px 0 40px}
  .how li{grid-template-columns:26px 74px 1fr} .how li span{font-size:13.5px}
  .stages{font-size:9px} .keys{display:none}
}
@media (prefers-reduced-motion:reduce){ .boot svg,.mode.live i{animation:none} }

/* trade window */
.trader{position:absolute;left:calc(var(--lw) + var(--pad)*2 + 14px);top:calc(var(--pad)*2 + var(--topH) + 4px);width:318px;background:rgba(8,10,9,.86);border:1px solid rgba(185,255,58,.22);border-radius:12px;backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);box-shadow:0 18px 50px rgba(0,0,0,.45);overflow:hidden;transition:box-shadow .3s}
.trader.flash-b{box-shadow:0 0 0 1px var(--down),0 18px 50px rgba(255,51,95,.25)}
.trader.flash-s{box-shadow:0 0 0 1px var(--up),0 18px 50px rgba(185,255,58,.25)}
.tr-h{display:flex;align-items:center;gap:8px;padding:9px 12px;border-bottom:1px solid var(--line);cursor:grab;user-select:none;touch-action:none}
.tr-h:active{cursor:grabbing}
.tr-h b{font:600 10.5px/1 var(--mono);letter-spacing:.14em;text-transform:uppercase;color:var(--bone)}
.live-dot{width:7px;height:7px;border-radius:50%;background:var(--up);box-shadow:0 0 8px var(--up);animation:blink 1.4s infinite}
.tr-mode{font:600 9px/1 var(--mono);letter-spacing:.14em;color:var(--dim);border:1px solid var(--line);border-radius:10px;padding:3px 6px;margin-left:auto}
.tr-mode.live{color:var(--up);border-color:rgba(185,255,58,.4)}
.tr-min{font:500 14px/1 var(--mono);color:var(--dim);width:20px}
.trader.min .tr-body{display:none}
.tr-body{padding:11px 12px 12px}
.tr-coin{display:flex;align-items:center;gap:9px}
.tr-ico img,.tr-ico .ini{width:30px;height:30px;border-radius:50%;object-fit:cover;background:#15171a;display:grid;place-items:center;font:600 10px/1 var(--mono);font-style:normal;color:var(--dim)}
.tr-nm{min-width:0;flex:1}
.tr-nm b{display:block;font:600 14px/1.2 var(--sans)}
.tr-nm small{display:block;font:400 10px/1.3 var(--mono);color:var(--faint);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.tr-pump{font:500 10px/1 var(--mono);color:var(--up);border:1px solid rgba(185,255,58,.3);border-radius:6px;padding:6px 7px;white-space:nowrap}
.tr-pump:hover{background:rgba(185,255,58,.1)}
.tr-px{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-top:10px}
.tr-px span{display:block;font:600 17px/1.1 var(--mono)}
.tr-px small{font:500 10.5px/1 var(--mono)}
#trSpark{width:130px;height:34px}
.tr-pos{margin-top:10px;padding:9px 10px;border-radius:8px;background:rgba(239,231,220,.035);font:400 11px/1.45 var(--mono);color:var(--dim);min-height:52px}
.tr-pos .scan{display:block;color:var(--bone)}
.tr-pos .scan::after{content:"";display:inline-block;width:6px;height:10px;margin-left:4px;background:var(--up);vertical-align:-1px;animation:blink 1s steps(2) infinite}
.tr-pos .meter{display:flex;gap:10px;margin-top:5px;font-size:10px}
.tr-pos .meter i{font-style:normal;color:var(--bone)}
.tr-pos .meter i.ok{color:var(--up)}
.tr-pos .hold{display:flex;justify-content:space-between;color:var(--bone)}
.tr-pos .pnl{font:600 15px/1.2 var(--mono)}
.tr-pos .pbar{height:3px;border-radius:3px;background:rgba(239,231,220,.1);margin-top:6px;position:relative;overflow:hidden}
.tr-pos .pbar i{position:absolute;top:0;bottom:0;left:50%;background:var(--up)}
.tr-pos .pbar i.l{background:var(--down)}
.tr-ticket{display:flex;align-items:center;gap:10px;margin-top:10px}
.tr-amt{flex:1;display:flex;justify-content:space-between;align-items:center;border:1px solid var(--line);border-radius:8px;padding:8px 10px;font:400 10.5px/1 var(--mono);color:var(--dim)}
.tr-amt output{color:var(--bone);font-weight:600}
.tr-btns{display:flex;gap:6px}
.tr-btns button{font:12px/1 var(--disp);letter-spacing:.04em;padding:10px 13px;border-radius:8px;transition:transform .12s,filter .2s,opacity .2s}
.tr-buy{background:var(--up);color:var(--bg)}
.tr-sell{background:var(--down);color:#fff}
.tr-btns button:disabled{opacity:.28;cursor:default}
.tr-btns button.press{transform:scale(.9);filter:brightness(1.4)}
.tr-orders{list-style:none;margin-top:10px;font:400 10.5px/1.35 var(--mono);display:flex;flex-direction:column;gap:5px;max-height:92px;overflow:hidden}
.tr-orders li{display:grid;grid-template-columns:34px 1fr auto;gap:6px;color:var(--dim);animation:in .35s both}
.tr-orders li .k{font-weight:600}
.tr-orders li.b .k{color:var(--down)} .tr-orders li.s .k{color:var(--up)} .tr-orders li.s.l .k{color:var(--down)}
.tr-orders li .v{color:var(--bone);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.tr-orders li .st{color:var(--faint);width:auto}
.tr-orders li .st.ok{color:var(--up)}
.tr-orders li.empty{display:block;color:var(--faint)}
.tr-orders li em{font-style:normal;color:var(--bone)}
body[data-view=how] .trader,body[data-view=ledger] .trader{opacity:0;pointer-events:none}
.trader{transition:opacity .35s,box-shadow .3s}
@media (max-width:1100px){ .trader{width:290px} #trSpark{width:100px} }
@media (max-width:820px){
  .trader{left:var(--pad);right:var(--pad);width:auto;top:calc(var(--pad)*2 + 96px);bottom:auto}
  .tr-h{padding:7px 10px}
  .tr-body{padding:8px 10px 10px}
  .tr-px,.tr-orders{display:none}
  .tr-pos{margin-top:8px;min-height:0;padding:7px 9px}
  .tr-ticket{margin-top:8px}
  .tr-amt{padding:7px 9px}
  .tr-btns button{padding:8px 11px}
  body[data-sheet=hosts] .trader,body[data-sheet=vitals] .trader,body[data-sheet=instincts] .trader,body[data-sheet=feed] .trader{opacity:0;pointer-events:none}
}


.hostlist .cb{width:56px;height:24px;display:flex;align-items:center}
.hostlist .cb i{display:block;height:3px;border-radius:3px;background:var(--up);opacity:.7}
.hostlist .cb i.l{background:var(--down)}
.hostlist li.cat{opacity:.82}
.hostlist li.cat:hover{opacity:1}
.hostlist li.none{display:block;cursor:default;font:400 11px/1.5 var(--mono);color:var(--faint);padding:14px 8px}

.buy[hidden]{display:none}

.lb.axis{font:500 10px/1 var(--mono);color:rgba(239,231,220,.45)}
.lb.live{display:flex;align-items:center;gap:6px;font:600 10px/1 var(--mono);letter-spacing:.12em;color:var(--up);background:rgba(5,6,7,.55);border:1px solid rgba(185,255,58,.3);border-radius:10px;padding:4px 8px}
.lb.live i{width:6px;height:6px;border-radius:50%;background:var(--up);box-shadow:0 0 8px var(--up);animation:blink 1.2s infinite}
