:root{--bg:#141210;--panel:#1e1b17;--line:#3a342b;--amber:#ffb000;--phos:#7dff9a;--cyan:#55ffff;--mag:#ff55ff;--yel:#ffff55}
*{box-sizing:border-box}
body{margin:0;background:var(--bg);color:#e8dcc4;font-family:'IBM Plex Mono',monospace;
background-image:radial-gradient(circle at 20% 0%,#2a2218 0,transparent 50%),repeating-linear-gradient(0deg,transparent 0 3px,rgba(255,255,255,.015) 3px 4px)}
.vt{font-family:'VT323',monospace}
.btn{font-family:'VT323',monospace;font-size:20px;padding:2px 12px;border:2px solid var(--amber);color:var(--amber);background:transparent;cursor:pointer;transition:.15s}
.btn:hover{background:var(--amber);color:#000}
.btn.on{background:var(--amber);color:#000}
.panel{background:var(--panel);border:1px solid var(--line)}
.tab{font-family:'VT323';font-size:19px;padding:2px 10px;cursor:pointer;color:#a89b82;border-bottom:2px solid transparent}
.tab.on{color:var(--phos);border-color:var(--phos)}
.log{font-size:11px;line-height:1.35;text-shadow:0 0 4px currentColor}
canvas#desk{image-rendering:pixelated;width:100%;height:auto;display:block;cursor:default;touch-action:none;box-shadow:0 0 0 3px #000,0 0 40px rgba(255,176,0,.15)}
.scan{position:relative}
.scan.crt::after{content:'';pointer-events:none;position:absolute;inset:0;background:repeating-linear-gradient(0deg,rgba(0,0,0,.18) 0 1px,transparent 1px 3px)}
.drop{border:2px dashed var(--line)}
.drop.over{border-color:var(--phos);background:rgba(125,255,154,.06)}
@keyframes rise{from{opacity:0;transform:translateY(8px)}to{opacity:1}}
.rise{animation:rise .5s both}
::-webkit-scrollbar{width:8px}::-webkit-scrollbar-thumb{background:var(--line)}
a{color:var(--amber)}