@font-face{font-family:JBM;font-weight:400;font-display:swap;src:url(/fonts/jbmono-400.woff2) format("woff2")}
@font-face{font-family:JBM;font-weight:600;font-display:swap;src:url(/fonts/jbmono-600.woff2) format("woff2")}
:root{--ink:#f2f2f2;--mut:#8c8c8c;--bg:#000;--line:rgba(255,255,255,.16);--panel:rgba(0,0,0,.62);--mono:JBM,ui-monospace,monospace}
*{margin:0;padding:0;box-sizing:border-box;border-radius:0}
html,body{height:100%;overflow:hidden;background:var(--bg);color:var(--ink);font-family:var(--mono);-webkit-user-select:none;user-select:none}
canvas{display:block;position:fixed;inset:0}
kbd{font-family:var(--mono);font-size:11px;border:1px solid var(--line);padding:1px 6px;color:#ddd}
b{font-weight:600}
/* loader: a boot log */
.loader{position:fixed;inset:0;z-index:50;background:#000;display:grid;place-items:center;transition:opacity .7s}
.loader.off{opacity:0;pointer-events:none}
.lin{display:flex;flex-direction:column;align-items:flex-start;gap:12px;width:min(320px,80vw)}
.lin b{font-size:28px;letter-spacing:-.04em}
.lin span{font-size:12px;color:var(--mut);min-height:16px}
.lin span::before{content:"> "}
.lin span::after{content:"";display:inline-block;width:7px;height:12px;background:#fff;margin-left:4px;vertical-align:-1px;animation:bl 1s steps(1) infinite}
@keyframes bl{50%{opacity:0}}
.glyph{display:none}
.bar{width:100%;height:2px;background:#1a1a1a;overflow:hidden}
.bar i{display:block;height:100%;width:30%;background:#fff;animation:load 1.2s steps(12) infinite}
@keyframes load{0%{margin-left:-30%}100%{margin-left:100%}}
/* legacy title (removed at runtime) */
.title{display:none}
/* hud */
.hud{position:fixed;inset:0;z-index:20;pointer-events:none;opacity:0;transition:opacity .6s}
.hud.in{opacity:1}
.stats{position:absolute;top:16px;left:16px;display:flex;border:1px solid var(--line);background:var(--panel);backdrop-filter:blur(8px)}
.stats>div{padding:8px 14px;min-width:92px}
.stats>div+div{border-left:1px solid var(--line)}
.stats b{display:block;font-size:17px;letter-spacing:-.02em;font-variant-numeric:tabular-nums}
.stats span{font-size:10px;color:var(--mut);letter-spacing:.06em;text-transform:lowercase}
.prompt{position:absolute;left:50%;bottom:72px;transform:translateX(-50%) translateY(8px);display:flex;align-items:center;gap:10px;background:var(--panel);backdrop-filter:blur(8px);border:1px solid var(--line);padding:10px 14px;opacity:0;transition:opacity .2s,transform .2s;font-size:13px;white-space:nowrap}
.prompt.in{opacity:1;transform:translateX(-50%) translateY(0)}
.prompt b{color:#fff}
.prompt kbd{background:#fff;color:#000;border-color:#fff;font-weight:600}
.exit{position:absolute;top:16px;right:16px;pointer-events:auto;font-size:12px;color:var(--mut);text-decoration:none;border:1px solid var(--line);padding:8px 12px;background:var(--panel)}
.exit:hover{color:#000;background:#fff;border-color:#fff}
.resume{position:fixed;inset:0;z-index:25;display:none;place-items:center;background:rgba(0,0,0,.35)}
.resume.in{display:grid}
.resume button{font-family:var(--mono);font-size:13px;font-weight:600;color:#000;background:#fff;border:1px solid #fff;padding:13px 22px;cursor:pointer}
.resume button:hover{background:#000;color:#fff}
/* modal */
.modal{position:fixed;inset:0;z-index:40;display:none;place-items:center;background:rgba(0,0,0,.7);backdrop-filter:blur(4px);padding:16px}
.modal.in{display:grid}
.card{width:min(440px,100%);background:#000;border:1px solid rgba(255,255,255,.28);padding:0}
.ct{display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line);padding:9px 14px}
.chip{font-size:11px;color:#fff;letter-spacing:.04em}
.chip::before{content:"~/day0/districts/";color:var(--mut)}
.x{background:none;border:0;color:var(--mut);font-size:15px;cursor:pointer;font-family:var(--mono)}.x:hover{color:#fff}
.card h2{font-size:22px;letter-spacing:-.03em;margin:20px 20px 8px}
.card>p,.card>.meter,.card>.row,.card>.acts{margin-left:20px;margin-right:20px}
.mut{color:var(--mut);font-size:13px;line-height:1.6}.mut.sm{font-size:12px;margin-top:12px}
.meter{height:8px;background:#141414;margin-top:18px;margin-bottom:8px}
.meter .fill{height:100%;background:#fff!important;transition:width .5s}
.row{display:flex;justify-content:space-between;font-size:12.5px;color:var(--ink)}
.acts{display:flex;gap:8px;margin-top:18px;margin-bottom:20px}
.btn{flex:1;text-align:center;font-family:var(--mono);font-size:12.5px;font-weight:600;color:var(--ink);background:#000;border:1px solid rgba(255,255,255,.3);padding:11px;cursor:pointer;text-decoration:none}
.btn:hover{background:#fff;color:#000;border-color:#fff}
.btn.pri{background:#fff;color:#000;border-color:#fff}
.btn.pri:hover{background:#000;color:#fff}
/* touch */
.touch{position:fixed;inset:0;z-index:22;pointer-events:none;display:none}
.touch.on{display:block}
.stick{position:absolute;left:24px;bottom:32px;width:116px;height:116px;background:rgba(0,0,0,.4);border:1px solid var(--line);pointer-events:auto}
.nub{position:absolute;left:50%;top:50%;width:44px;height:44px;margin:-22px 0 0 -22px;background:rgba(255,255,255,.25);border:1px solid #fff}
.tbtn{position:absolute;right:28px;bottom:56px;width:72px;height:72px;background:rgba(0,0,0,.4);border:1px solid #fff;color:#fff;font-family:var(--mono);font-size:18px;font-weight:600;pointer-events:auto}
@media (max-width:760px){.stats>div{min-width:0;padding:7px 10px}.stats b{font-size:14px}}
/* ── intro card ── */
.intro{position:fixed;inset:0;z-index:30;display:grid;place-items:center;padding:16px;background:radial-gradient(70% 70% at 50% 50%,rgba(0,0,0,.35),rgba(0,0,0,.8));opacity:0;pointer-events:none;transition:opacity .6s}
.intro.in{opacity:1;pointer-events:auto}
.ic{width:min(620px,100%);background:rgba(0,0,0,.84);backdrop-filter:blur(8px);border:1px solid rgba(255,255,255,.22);max-height:calc(100vh - 32px);overflow:auto}
.ih{display:flex;justify-content:space-between;align-items:center;padding:9px 14px;border-bottom:1px solid var(--line);font-size:11px;color:var(--mut)}
.led{width:7px;height:7px;background:#fff;animation:bl 1.6s steps(1) infinite}
.ib{padding:26px 26px 24px;display:flex;flex-direction:column;gap:18px}
.ib h1{font-size:clamp(48px,9vw,76px);letter-spacing:-.06em;line-height:.9;font-weight:600}
.cur{display:inline-block;width:.42em;height:.7em;background:#fff;margin-left:.08em;animation:bl 1.05s steps(1) infinite}
.lead{font-size:14px;line-height:1.65;color:#cfcfcf;max-width:520px}
.facts{display:grid;grid-template-columns:90px 1fr;border-top:1px solid var(--line)}
.facts dt,.facts dd{padding:11px 0;border-bottom:1px solid var(--line);font-size:12.5px;line-height:1.6}
.facts dt{color:var(--mut)}.facts dd{color:#e4e4e4}
.keys{display:flex;flex-wrap:wrap;gap:6px 14px;font-size:11.5px;color:var(--mut)}
.keys span{display:inline-flex;align-items:center;gap:6px}
.go{align-self:flex-start;font-family:var(--mono);font-size:13px;font-weight:600;background:#fff;color:#000;border:1px solid #fff;padding:13px 22px;cursor:pointer}
.go:hover{background:#000;color:#fff}
/* ── objective, compass, zone, feed ── */
.obj{position:absolute;top:74px;left:16px;display:flex;align-items:center;gap:10px;max-width:min(460px,calc(100vw - 32px));font-size:12px;opacity:0;transform:translateY(-4px);transition:opacity .8s,transform .8s}
.obj.in{opacity:1;transform:none}
.obj .k{background:#fff;color:#000;font-weight:600;padding:2px 6px;font-size:10.5px;letter-spacing:.06em;text-transform:uppercase;flex:none}
.obj b{font-weight:400;color:#e8e8e8;text-shadow:0 1px 6px #000}
.compass{position:absolute;top:16px;left:50%;transform:translateX(-50%);width:min(520px,calc(100vw - 40px));height:38px;overflow:hidden;border-bottom:1px solid var(--line);
  -webkit-mask-image:linear-gradient(90deg,transparent,#000 18%,#000 82%,transparent);mask-image:linear-gradient(90deg,transparent,#000 18%,#000 82%,transparent)}
.cmp{position:absolute;inset:0}
.tick{position:absolute;left:50%;bottom:0;width:1px;height:8px;background:#fff}
.cm{position:absolute;left:0;top:4px;display:flex;flex-direction:column;align-items:center;gap:1px;width:0;font-size:10.5px;white-space:nowrap;text-shadow:0 1px 4px #000}
.cm i{display:block;width:7px;height:7px;border:1px solid #9a9a9a}
.cm b{font-weight:600;color:#9a9a9a;letter-spacing:.04em}
.cm span{color:#6a6a6a;font-size:9.5px}
.cm.part i{background:linear-gradient(0deg,#fff 50%,transparent 50%)}
.cm.on i{background:#fff;border-color:#fff}.cm.on b{color:#fff}
.cm.seen b::after{content:" ✓";color:#8c8c8c}
.cm.card{top:12px;color:#555;font-size:10px}
.zone{position:absolute;top:84px;left:50%;transform:translateX(-50%);display:flex;flex-direction:column;align-items:center;gap:3px;opacity:0;transition:opacity .6s;text-align:center;text-shadow:0 2px 12px #000;pointer-events:none}
.zone.in{opacity:1}
.zone span{font-size:10.5px;color:#a8a8a8;letter-spacing:.14em;text-transform:uppercase}
.zone b{font-size:26px;letter-spacing:-.03em;font-weight:600}
.feed{position:absolute;left:16px;bottom:22px;display:flex;flex-direction:column;gap:6px;width:min(440px,calc(100vw - 32px))}
.ln{display:flex;gap:8px;font-size:12px;line-height:1.55;color:#d6d6d6;opacity:0;transform:translateY(6px);transition:opacity .7s,transform .7s;text-shadow:0 1px 6px #000,0 0 2px #000}
.ln.in{opacity:1;transform:none}.ln.out{opacity:0}
.ln .k{color:#7a7a7a;flex:none}
.ln.zn .tx{color:#fff}.ln.note .tx{color:#a9a9a9}
.tr{position:absolute;top:16px;right:16px;display:flex;gap:6px;pointer-events:auto}
.tr .exit{position:static;font-family:var(--mono);cursor:pointer}
.prompt span{color:#cfcfcf}
/* ── pause, map, help ── */
.resume .rc{display:flex;flex-direction:column;align-items:center;gap:12px;background:rgba(0,0,0,.8);border:1px solid rgba(255,255,255,.22);padding:22px 26px}
.resume .rc span{font-size:11px;color:var(--mut)}.resume .rc small{font-size:11px;color:var(--mut)}
.map,.help{position:fixed;left:50%;top:50%;transform:translate(-50%,-50%);z-index:26;background:rgba(0,0,0,.88);backdrop-filter:blur(6px);border:1px solid rgba(255,255,255,.22);display:none}
.map.in,.help.in{display:block}
.mh{display:flex;justify-content:space-between;gap:24px;padding:9px 14px;border-bottom:1px solid var(--line);font-size:11px;color:var(--mut)}
#map-c{display:block;position:static;margin:14px}
.ml{display:flex;gap:14px;flex-wrap:wrap;padding:0 14px 12px;font-size:11px;color:var(--mut)}
.ml span{display:inline-flex;align-items:center;gap:6px}
.sw{width:10px;height:10px;background:rgba(255,255,255,.08);border:1px solid #3a3a3a}.sw.on{background:rgba(255,255,255,.37);border-color:#fff}
.sq{width:8px;height:8px;background:#8f9bff}
.help{width:min(560px,calc(100vw - 32px));max-height:calc(100vh - 40px);overflow:auto}
.hb{padding:18px 20px 20px;display:flex;flex-direction:column;gap:14px;font-size:12.5px;line-height:1.65;color:#d0d0d0}
.hb b{color:#fff}
.hb .btn{align-self:flex-start;flex:none;padding:11px 16px}
@media (max-width:760px){
  .obj{top:64px;font-size:11px}.zone{top:96px}.zone b{font-size:20px}
  .feed{bottom:170px;font-size:11px}.ln{font-size:11px}
  .tr{top:auto;bottom:16px;right:auto;left:50%;transform:translateX(-50%)}
  .compass{top:auto;bottom:118px;display:none}
  .facts{grid-template-columns:72px 1fr}.ib{padding:20px 18px}
}
/* ── terminal card ── */
.card{max-height:calc(100vh - 32px);overflow:auto}
.card>.st,.card>.sec{margin-left:20px;margin-right:20px}
.st{display:flex;align-items:center;gap:10px;margin-top:18px}
.badge{font-size:10.5px;font-weight:600;letter-spacing:.08em;border:1px solid rgba(255,255,255,.4);padding:2px 7px;color:#cfcfcf}
.badge.on{background:#fff;color:#000;border-color:#fff}
.card h2{margin-top:10px}
.sec{border-top:1px solid var(--line);margin-top:16px;padding-top:12px;display:flex;flex-direction:column;gap:6px}
.sec .k{font-size:10.5px;color:var(--mut);letter-spacing:.08em;text-transform:uppercase}
.sec p{font-size:12.5px;line-height:1.65;color:#d8d8d8}
.sm2{font-size:12px}.sm2 a{color:#fff}
.x{font-size:11px}
/* ── gate ── */
.gate{display:flex;flex-direction:column;align-items:flex-start;gap:16px;width:min(520px,100%);padding:30px 30px 26px;background:rgba(0,0,0,.82);border:1px solid rgba(255,255,255,.22);backdrop-filter:blur(6px)}
.gk{font-size:11px;color:var(--mut);display:flex;align-items:center;gap:8px}
.gate h1{font-size:clamp(56px,11vw,96px);letter-spacing:-.06em;line-height:.88;font-weight:600}
.gate p{font-size:13.5px;color:#cfcfcf;line-height:1.6}
.lnk{background:none;border:0;color:var(--mut);font-family:var(--mono);font-size:12px;text-decoration:underline;text-underline-offset:3px;cursor:pointer;padding:0}
.lnk:hover{color:#fff}
/* ── the transmission ── */
.cine{position:fixed;inset:0;z-index:35;display:none;pointer-events:none}
.cine.in{display:block}
.cine.out{opacity:0;transition:opacity .9s}
#cine-cv{position:absolute;inset:0;width:100%;height:100%}
.cine.reveal #cine-cv{opacity:1}
.cbar{position:absolute;left:0;right:0;height:0;background:#000;transition:height 1.2s cubic-bezier(.2,.7,.1,1)}
.cbar.t{top:0}.cbar.b{bottom:0}
.cine.bars .cbar{height:9vh}
.cine-sub{position:absolute;left:50%;bottom:calc(9vh + 26px);transform:translateX(-50%);width:min(820px,calc(100vw - 32px));text-align:center;font-size:clamp(14px,1.6vw,18px);line-height:1.55;color:#f2f2f2;text-shadow:0 2px 10px #000,0 0 2px #000;opacity:0;transition:opacity .4s;min-height:3em}
.cine-sub.in{opacity:1}
.cine-mid{position:absolute;inset:0;display:grid;place-items:center;opacity:0;transition:opacity .5s}
.cine-mid.in{opacity:1}
.cine-mid.top{place-items:start center;padding-top:calc(9vh + 30px)}
.cine-mid.corner{place-items:start end;padding:calc(9vh + 24px) 32px 0 0}
.cine-mid.side{place-items:center end;padding-right:5vw}
.cine-mid.low{place-items:end center;padding-bottom:calc(9vh + 110px)}
.cine-mid .tx{display:flex;align-items:center;gap:10px;font-size:12px;letter-spacing:.3em;text-transform:uppercase;color:#cfcfcf}
.cine-mid .tx i{width:8px;height:8px;background:#ff4d4d;animation:bl .8s steps(1) infinite}
.d0{display:flex;flex-direction:column;align-items:center;gap:14px}
.d0 b{font-size:clamp(80px,17vw,220px);font-weight:600;letter-spacing:-.07em;line-height:.85;text-shadow:3px 0 rgba(255,60,60,.55),-3px 0 rgba(60,200,255,.55)}
.d0.small b{font-size:clamp(56px,9vw,120px)}
.d0 span{font-size:12px;color:var(--mut);letter-spacing:.2em}
.cves{display:flex;flex-direction:column;gap:2px;width:min(760px,calc(100vw - 32px))}
.cve{display:grid;grid-template-columns:200px 90px 1fr auto;gap:16px;align-items:center;padding:14px 16px;border:1px solid rgba(255,255,255,.2);background:rgba(0,0,0,.7);font-size:13px;animation:cin .35s steps(4)}
.cve b{font-weight:600}.cve span{color:#bdbdbd}.cve i{font-style:normal;background:#ff4d4d;color:#000;font-weight:600;font-size:11px;padding:2px 7px;letter-spacing:.06em}
@keyframes cin{from{opacity:0;transform:translateX(-12px)}to{opacity:1;transform:none}}
.cnt{display:flex;flex-direction:column;align-items:flex-end;gap:4px;font-variant-numeric:tabular-nums}
.cnt span{font-size:11px;color:#ff8080;letter-spacing:.2em;text-transform:uppercase}
.cnt b{font-size:clamp(36px,5vw,64px);letter-spacing:-.04em}
.lpad{width:min(480px,calc(100vw - 32px));background:rgba(0,0,0,.82);border:1px solid rgba(255,255,255,.28);padding:0 0 16px;display:flex;flex-direction:column;gap:12px;animation:cin .5s steps(5)}
.lpad .lh{font-size:11px;color:var(--mut);padding:9px 14px;border-bottom:1px solid var(--line)}
.lpad b{font-size:26px;letter-spacing:-.03em;padding:0 16px}
.lpad pre{font:400 12px/1.75 var(--mono);color:#e6e6e6;padding:0 16px;overflow:hidden}
.lpad span{font-size:11.5px;color:var(--mut);padding:0 16px}
.ctl{display:flex;gap:18px;flex-wrap:wrap;justify-content:center;font-size:12px;color:#cfcfcf;text-shadow:0 1px 6px #000}
.ctl span{display:inline-flex;gap:8px;align-items:center}
.cine-tags{position:absolute;inset:0;overflow:hidden}
.ctag{position:absolute;left:0;top:0;display:flex;flex-direction:column;align-items:center;gap:2px;transition:opacity .3s;white-space:nowrap;margin-left:-60px;width:120px;text-shadow:0 1px 8px #000}
.ctag b{font-size:13px;font-weight:600;padding:3px 8px;border:1px solid rgba(255,255,255,.5);background:rgba(0,0,0,.6)}
.ctag span{font-size:10.5px;letter-spacing:.14em;text-transform:uppercase;color:#cfcfcf}
.ctag.on b{background:#fff;color:#000;border-color:#fff}
.ctag.off span{color:#ff8080}
.ctag.fund b{border-color:#fff}
.cine-skip{position:absolute;right:20px;bottom:calc(9vh + 20px);pointer-events:auto;font-family:var(--mono);font-size:12px;color:#cfcfcf;background:rgba(0,0,0,.6);border:1px solid rgba(255,255,255,.3);padding:8px 14px;cursor:pointer}
.cine-skip:hover{background:#fff;color:#000}
.cine.rgb .cine-mid,.cine.rgb .cine-sub{transform-origin:center;filter:drop-shadow(3px 0 rgba(255,50,50,.7)) drop-shadow(-3px 0 rgba(50,200,255,.7))}
.cine.rgb .cine-sub{transform:translateX(calc(-50% + 4px)) skewX(-6deg)}
@media (max-width:760px){.cve{grid-template-columns:1fr auto;row-gap:4px}.cve span{grid-column:1}.cine-mid.side{place-items:end center;padding:0 0 calc(9vh + 110px)}.cine-mid.corner{padding-right:16px}}
.cm.lnch i{border-color:#fff;border-radius:50%}.cm.lnch b{color:#fff}
.prompt{flex-wrap:wrap;max-width:calc(100vw - 32px)}
.prompt .hold{display:block;flex-basis:100%;height:2px;background:#222;margin-top:2px}
.prompt .hold i{display:block;height:100%;width:0;background:#fff}
.prompt.busy{border-color:#fff}
.boot{font:400 12px/1.7 var(--mono);color:#cfcfcf;white-space:pre-wrap;margin:16px 20px 0}
.card .cta2{margin:14px 20px 0;display:flex;flex-direction:column;gap:8px}
.card .cta2 .btn{flex:none;text-align:left;padding:12px 14px}
/* ── phone UI, laid over the 3D screen ── */
.pui{position:fixed;left:0;top:0;z-index:27;transform-origin:0 0;background:#000;border-radius:30px;overflow:hidden;display:none;flex-direction:column;color:#eee;font-family:var(--mono);opacity:0;transition:opacity .18s;pointer-events:none;user-select:none}
.pui.in{display:flex}.pui.shown{opacity:1;pointer-events:auto}
.pui-sb{display:flex;align-items:center;justify-content:space-between;padding:12px 20px 4px;font-size:11px;color:#cfcfcf}
.pui-sb i{width:74px;height:22px;background:#000;border-radius:16px;box-shadow:0 0 0 1px #111}
.pui-h{display:grid;grid-template-columns:64px 1fr 64px;align-items:center;padding:6px 10px 8px;border-bottom:1px solid #1d1d1d}
.pui-h b{text-align:center;font-size:14px}
.pui-back{background:none;border:0;color:#cfcfcf;font:inherit;font-size:14px;text-align:left;cursor:pointer;padding:6px}
.pui-back:hover{color:#fff}
.pui-b{flex:1;overflow-y:auto;padding:12px 14px 14px;display:flex;flex-direction:column;gap:8px;font-size:12.5px;line-height:1.55;scrollbar-width:none}
.pui-b::-webkit-scrollbar{display:none}
.pui-b.enter{animation:penter .22s cubic-bezier(.2,.7,.1,1)}
@keyframes penter{from{opacity:0;transform:translateX(14px)}to{opacity:1;transform:none}}
.pui-home{height:34px;background:none;border:0;display:grid;place-items:center;cursor:pointer}
.pui-home i{display:block;width:100px;height:5px;border-radius:3px;background:#fff}
.apps{display:grid;grid-template-columns:1fr 1fr;gap:9px;margin-top:4px}
.app{aspect-ratio:1.2;display:flex;flex-direction:column;justify-content:space-between;align-items:flex-start;padding:12px;background:#0d0d0d;border:1px solid #232323;color:#fff;font:inherit;cursor:pointer;transition:background .15s,transform .1s;text-align:left}
.app i{font-style:normal;font-size:22px;line-height:1;width:34px;height:34px;display:grid;place-items:center;border:1px solid #444}
.app span{font-size:12.5px}
.app:hover{background:#fff;color:#000}.app:hover i{border-color:#000}.app:active{transform:scale(.97)}
.ph-note{font-size:11px;color:#8c8c8c}
.pui-b h4{font-size:11.5px;color:#8c8c8c;letter-spacing:.1em;text-transform:uppercase;margin-top:10px}
.pui-b p{color:#d6d6d6}
.big{display:flex;flex-direction:column;gap:2px;padding:6px 0 10px;border-bottom:1px solid #1d1d1d}
.big span{font-size:12px;color:#8c8c8c}.big b{font-size:36px;letter-spacing:-.04em}
.kv{display:flex;justify-content:space-between;gap:10px;padding:7px 0;border-bottom:1px solid #161616;font-size:12px}.kv span{color:#bdbdbd;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.pui-b .bar{display:grid;grid-template-columns:86px 1fr 38px;gap:8px;align-items:center;font-size:11.5px}
.pui-b .bar i{height:6px;background:#1c1c1c;display:block}.pui-b .bar u{display:block;height:100%;background:#fff}.pui-b .bar em{font-style:normal;text-align:right;color:#bdbdbd}
.term{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:12px 0;border-bottom:1px solid #161616}
.term b{display:block;font-size:13px}.term span{font-size:11px;color:#8c8c8c}
.term button,.ph-btn{font:inherit;font-size:12px;background:#000;color:#fff;border:1px solid #555;padding:9px 12px;cursor:pointer;text-decoration:none;text-align:center}
.term button:hover,.ph-btn:hover{background:#fff;color:#000}
.ph-btn{display:block;margin-top:6px}.ph-btn.pri{background:#fff;color:#000;border-color:#fff}.ph-btn.pri:hover{background:#000;color:#fff}
.keys2{display:flex;flex-wrap:wrap;gap:6px 10px;font-size:11px;color:#cfcfcf}.keys2 span{display:inline-flex;gap:5px;align-items:center}
#map-c{display:block;position:static;width:100%;height:auto;margin:0}
/* ── hotbar ── */
.hotbar{position:fixed;left:50%;bottom:18px;transform:translateX(-50%);z-index:21;display:flex;align-items:stretch;gap:6px;transition:opacity .25s,transform .25s;pointer-events:auto}
.hud:not(.in)~.hotbar{opacity:0;pointer-events:none}
.hotbar.hide{opacity:0;transform:translate(-50%,10px);pointer-events:none}
.hotbar button{display:flex;align-items:center;gap:8px;min-width:92px;padding:9px 12px;background:rgba(0,0,0,.6);border:1px solid rgba(255,255,255,.18);color:#bdbdbd;font:12px var(--mono);cursor:pointer;backdrop-filter:blur(6px);transition:background .15s,color .15s,border-color .15s,transform .1s}
.hotbar button.on{background:#fff;color:#000;border-color:#fff}.hotbar button.on kbd{background:#000;color:#fff;border-color:#000}
.hotbar button:active{transform:translateY(1px)}
.hotbar em{font-style:normal;display:flex;align-items:center;gap:6px;font-size:11.5px;color:#9a9a9a;padding:0 8px;text-shadow:0 1px 6px #000}
@media (max-width:760px){.hotbar{bottom:150px}.hotbar em{display:none}.hotbar button{min-width:0}}
.cm.guide i{background:#fff;border-color:#fff;transform:rotate(45deg) scale(1.3)}.cm.guide b{color:#fff;text-decoration:underline}
.intro.in~.touch,body.ui-open .touch,.cine.in~.touch{display:none!important}
@media (max-width:760px){.hotbar{bottom:auto;top:128px;left:auto;right:12px;transform:none}.hotbar.hide{transform:translateY(-8px)}.hotbar button{padding:7px 9px;font-size:11px}.feed{bottom:200px}}
/* ── the transmission panel ── */
.tx{position:fixed;left:16px;top:112px;z-index:24;width:min(440px,calc(100vw - 32px));background:rgba(0,0,0,.72);border:1px solid rgba(255,255,255,.16);backdrop-filter:blur(6px);font-family:var(--mono);opacity:0;transform:translateY(-6px);transition:opacity .5s,transform .5s;pointer-events:none}
.tx.in{opacity:1;transform:none;pointer-events:auto}.tx.out{opacity:0}
.tx.hit{animation:txhit .18s steps(2) 1}
@keyframes txhit{0%{transform:translateX(2px);filter:drop-shadow(2px 0 rgba(255,60,60,.6)) drop-shadow(-2px 0 rgba(60,200,255,.6))}100%{transform:none;filter:none}}
.tx-h{display:flex;justify-content:space-between;align-items:center;padding:7px 12px;border-bottom:1px solid rgba(255,255,255,.1);font-size:10.5px;color:#9a9a9a;letter-spacing:.04em}
.tx-h em{font-style:normal;color:#555}
.rec{display:flex;align-items:center;gap:6px;color:#ff6b6b}.rec i{width:6px;height:6px;background:#ff4d4d;animation:bl 1s steps(1) infinite}
.tx-w{padding:8px 12px 0;font-size:13px;line-height:1;color:#e6e6e6;letter-spacing:1px;white-space:pre;overflow:hidden;height:21px}
.tx-l{padding:8px 12px 4px;font-size:13px;line-height:1.55;color:#f2f2f2;min-height:44px}
.tx-l i{font-style:normal;color:#666}.tx-l .cu{display:inline-block;width:7px;height:13px;background:#fff;vertical-align:-2px;margin-left:1px}
.tx-a{padding:2px 12px 8px;font-size:10.5px;line-height:1.7;color:#6f6f6f;white-space:pre-wrap}
.tx-a div{animation:txin .3s steps(3)}
@keyframes txin{from{opacity:0;transform:translateX(-4px)}to{opacity:1;transform:none}}
.tx-f{display:flex;justify-content:space-between;align-items:center;border-top:1px solid rgba(255,255,255,.08);padding:5px 12px;font-size:10px;color:#444}
.tx-f button{background:none;border:0;color:#8c8c8c;font:inherit;cursor:pointer;padding:0}.tx-f button:hover{color:#fff}
@media (max-width:760px){.tx{top:auto;bottom:250px;width:calc(100vw - 32px)}.tx-l{font-size:12px}.tx-a{display:none}}
