:root{--case:#e9dfc6;--case2:#d6c9a8;--bezel:#3a2c20;--ink:#3a2c20;--phos:#33ff66;}
body{margin:0;font-family:'IBM Plex Mono',monospace;color:var(--ink);
background:repeating-linear-gradient(90deg,rgba(0,0,0,.025) 0 2px,transparent 2px 6px),linear-gradient(180deg,#cfc2a0,#b9ab88);min-height:100vh}
.vt{font-family:'VT323',monospace}
.panel{background:linear-gradient(180deg,var(--case),var(--case2));border:2px solid #a8996f;border-radius:10px;box-shadow:inset 0 2px 0 #fff8,0 4px 0 #8f8160,0 8px 18px #0003}
.btn{font-family:'VT323',monospace;font-size:20px;padding:4px 12px;border-radius:6px;background:linear-gradient(#f4ecd8,#cbbd98);border:2px solid #7d6f50;box-shadow:0 3px 0 #6e6145;cursor:pointer;color:var(--ink)}
.btn:active{transform:translateY(2px);box-shadow:0 1px 0 #6e6145}
.btn:disabled{opacity:.45;cursor:not-allowed}
.power{background:radial-gradient(circle at 35% 30%,#ff7b6b,#b8180c);color:#fff;border-color:#6d0d05;box-shadow:0 4px 0 #5a0a04}
.bezel{background:linear-gradient(145deg,#4a3828,#2a1f16);padding:22px;border-radius:22px;box-shadow:inset 0 0 0 3px #1b140e,0 6px 20px #0006}
.crt{position:relative;background:radial-gradient(ellipse at center,#0b1a10 0%,#020604 80%);border-radius:18px/24px;overflow:hidden;outline:none;cursor:text}
.crt pre{margin:0;padding:14px 16px;font-family:'VT323',monospace;color:var(--phos);text-shadow:0 0 4px var(--phos),0 0 10px color-mix(in srgb,var(--phos) 40%,transparent);line-height:1.05;white-space:pre;font-size:clamp(9px,1.55vw,19px)}
.crt::after{content:"";position:absolute;inset:0;pointer-events:none;background:repeating-linear-gradient(0deg,rgba(0,0,0,.28) 0 1px,transparent 1px 3px),radial-gradient(ellipse at center,transparent 60%,rgba(0,0,0,.65) 100%)}
.crt.focus{box-shadow:0 0 0 2px color-mix(in srgb,var(--phos) 40%,transparent)}
.cur{background:var(--phos);color:#000;animation:blink 1s steps(1) infinite}
@keyframes blink{50%{background:transparent;color:var(--phos)}}
.led{width:10px;height:10px;border-radius:50%;display:inline-block;background:#4a3a2a;box-shadow:inset 0 1px 2px #000}
.led.on{background:#4dff6a;box-shadow:0 0 8px #4dff6a}
.led.red{background:#ff4030;box-shadow:0 0 8px #ff4030}
.led.amber{background:#ffb000;box-shadow:0 0 8px #ffb000}
.pulse{animation:pl 1.4s ease-in-out infinite}
@keyframes pl{50%{opacity:.35}}
.chip{position:relative;background:#1d1d1f;color:#ddd;border-radius:4px;padding:12px 14px;margin:0 10px;border:2px dashed transparent;cursor:pointer}
.chip.drag{border-color:#ffb000}
.chip::before,.chip::after{content:"";position:absolute;top:8px;bottom:8px;width:8px;background:repeating-linear-gradient(180deg,#c9c9c9 0 4px,transparent 4px 9px)}
.chip::before{left:-8px}.chip::after{right:-8px}
.floppy{width:58px;height:60px;background:#25252b;border-radius:3px;position:relative;cursor:pointer;color:#eee;display:flex;align-items:flex-end;justify-content:center;padding-bottom:4px;font-family:'VT323';font-size:20px;border:2px solid transparent}
.floppy::before{content:"";position:absolute;top:6px;left:12px;right:12px;height:18px;background:#9aa0a8;border-radius:2px}
.floppy.sel{border-color:#ffb000}
.floppy .led{position:absolute;top:4px;right:4px;width:7px;height:7px}
.dbg{font-family:'IBM Plex Mono',monospace;font-size:12px;background:#15110d;color:#e9d9a8;border-radius:8px;padding:10px}
*{box-sizing:border-box}
.wrap{max-width:1500px;margin:0 auto;padding:12px}
.hdr{padding:16px;margin-bottom:16px;display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:16px}
.title{font-size:48px;line-height:1;margin:0;color:#b5651d;text-shadow:2px 2px 0 #3a2c20;font-weight:400}
.sub{font-size:14px;opacity:.75}
.stat{display:flex;align-items:center;gap:12px;font-size:24px}
.grid3{display:grid;gap:16px;align-items:start;grid-template-columns:1fr}
@media(min-width:1024px){.grid3{grid-template-columns:260px 1fr 300px}}
.grid3d{display:grid;gap:12px;grid-template-columns:1fr}
@media(min-width:768px){.grid3d{grid-template-columns:repeat(3,1fr)}}
.pad{padding:16px}
.h2{font-size:24px;margin:0 0 12px;font-weight:400}
.big{font-size:20px}.small{font-size:16px}.tiny{font-size:12px}.micro{font-size:10px}
.dim{opacity:.65}.warn{color:#facc15}
.row{display:flex;align-items:center}.between{justify-content:space-between}.gap{gap:8px}.wrapr{flex-wrap:wrap}
.mt{margin-top:12px}.mb{margin-bottom:10px}
.slot{margin-bottom:16px}
.g2{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.btn.power{width:100%;font-size:26px;padding:8px;margin-bottom:12px}
.btn.full{width:100%}.btn.sm{font-size:17px}
.clock{font-size:18px}
.swatch{width:24px;height:24px;border-radius:50%;border:2px solid transparent;cursor:pointer}
.swatch.on{border-color:#000}
.lnk{background:none;border:0;padding:0 3px;color:inherit;text-decoration:underline;cursor:pointer;font:inherit}
.lnk.red{color:#f87171}
.frow{display:flex;align-items:center;gap:8px;padding:2px 0}.fname{flex:1}.fsz{opacity:.6;width:80px;text-align:right}
.scroll{overflow:auto}.scrollx{overflow-x:auto}
.dbg pre{margin:4px 0 0;white-space:pre}
.flag{opacity:.4;margin-right:6px}.flag.on{opacity:1;color:#4ade80}
.memin{background:#000;color:#e9d9a8;border:1px solid #555;width:64px;padding:0 4px;font-family:inherit}
.mobin{flex:1;min-width:140px;padding:4px 8px;border-radius:4px;border:2px solid #7d6f50;background:#f6efdc;font-size:20px}
.toast{position:fixed;bottom:16px;left:50%;transform:translateX(-50%);font-size:20px;z-index:50;box-shadow:0 10px 30px #0006}
.toast[hidden],[hidden]{display:none!important}
.foot{text-align:center;font-size:14px;margin:24px 0 16px;opacity:.8}
.foot a{color:inherit;font-weight:700}
.rise{animation:rise .6s both}
@keyframes rise{from{opacity:0;transform:translateY(12px)}}