:root{
  --bg:#17130f; --wood1:#5a3a1f; --wood2:#3f2814; --metal:#8d8a84;
  --amber:#ff9a2e; --amber2:#ffcf6b; --phos:#6bff9a; --red:#ff3b3b;
  --panel:#0f1411; --line:#2b2a26;
}
*{box-sizing:border-box}
html,body{margin:0;background:
  radial-gradient(ellipse at 20% 0%,#2a2016 0%,transparent 60%),
  repeating-linear-gradient(90deg,#15110d 0 3px,#18140f 3px 7px),var(--bg);
  color:#e8dcc8;font-family:'JetBrains Mono',monospace;min-height:100vh}
button{font-family:inherit;cursor:pointer}
.console{display:flex;justify-content:space-between;align-items:center;gap:16px;flex-wrap:wrap;
  padding:14px 22px;border-bottom:4px solid #0a0806;
  background:repeating-linear-gradient(92deg,var(--wood1) 0 6px,var(--wood2) 6px 9px,#6b4524 9px 16px,var(--wood2) 16px 19px);
  box-shadow:inset 0 -6px 0 rgba(0,0,0,.35),0 6px 20px rgba(0,0,0,.6)}
.logo{font-family:'Press Start 2P';font-size:clamp(18px,3.6vw,34px);margin:0;color:var(--amber);
  text-shadow:0 0 8px rgba(255,154,46,.8),0 0 22px rgba(255,120,20,.5),3px 3px 0 #2a1406;letter-spacing:2px;
  animation:flick 5s infinite}
@keyframes flick{0%,96%,100%{opacity:1}97%{opacity:.7}98%{opacity:1}99%{opacity:.8}}
.tagline{font-family:'VT323';font-size:20px;color:var(--amber2);opacity:.85;margin-top:6px}
.switches{display:flex;gap:14px}
.sw{background:linear-gradient(#b9b5ad,#6d6a64);border:2px solid #2a2622;border-radius:6px;width:74px;height:62px;position:relative;
  box-shadow:inset 0 2px 0 #eee8,0 3px 0 #1a1714}
.sw .knob{position:absolute;left:50%;top:8px;width:14px;height:26px;margin-left:-7px;border-radius:4px;
  background:linear-gradient(#333,#111);transition:transform .15s;transform:translateY(8px)}
.sw.on .knob{transform:translateY(0);background:linear-gradient(#ffb04d,#b85c00);box-shadow:0 0 8px var(--amber)}
.sw label{position:absolute;bottom:4px;left:0;right:0;font-family:'Press Start 2P';font-size:7px;color:#1b1814;pointer-events:none}
.sw:active .knob{transform:translateY(5px)}

.layout{display:grid;grid-template-columns:minmax(320px,1fr) minmax(340px,1fr);gap:20px;padding:20px;max-width:1500px;margin:0 auto}
@media (max-width:900px){.layout{grid-template-columns:1fr;padding:10px}}

.bezel{background:linear-gradient(145deg,#2f2b26,#131110);padding:22px 22px 10px;border-radius:26px;
  box-shadow:0 10px 40px rgba(0,0,0,.7),inset 0 2px 0 #4a4540;border:3px solid #0a0908}
.screen{position:relative;border-radius:22px/18px;overflow:hidden;background:#000;aspect-ratio:4/3;
  box-shadow:inset 0 0 40px #000,0 0 0 4px #050505}
#canvas{width:100%;height:100%;display:block;image-rendering:pixelated;filter:saturate(1.15) contrast(1.05) blur(.3px)}
.scanlines{position:absolute;inset:0;pointer-events:none;background:repeating-linear-gradient(0deg,rgba(0,0,0,.28) 0 1px,transparent 1px 3px)}
.glass{position:absolute;inset:0;pointer-events:none;border-radius:inherit;
  background:radial-gradient(ellipse at 30% 20%,rgba(255,255,255,.09),transparent 45%),radial-gradient(ellipse at center,transparent 60%,rgba(0,0,0,.65) 100%)}
.bezel-label{text-align:center;font-family:'Press Start 2P';font-size:8px;color:#8b8375;margin-top:10px;letter-spacing:3px}

#controls{margin-top:14px;display:flex;flex-direction:column;gap:10px}
.slot{display:flex;align-items:center;gap:8px;background:#0c0a08;padding:8px 10px;border-radius:6px;border:2px solid #2a241e}
.slot-lbl{font-family:'Press Start 2P';font-size:8px;color:var(--amber)}
select,input[type=text],#pubName{flex:1;background:#1c1813;color:var(--amber2);border:1px solid #4a3d2e;padding:6px;font-family:'JetBrains Mono';border-radius:4px}
.btnrow{display:flex;gap:6px;flex-wrap:wrap}
.arc{font-family:'Press Start 2P';font-size:9px;padding:10px 12px;color:#1a1208;border:none;border-radius:6px;
  background:linear-gradient(#ffd08a,#e08a2c);box-shadow:0 4px 0 #7a4410,0 5px 10px rgba(0,0,0,.5);transition:transform .05s}
.arc:active{transform:translateY(3px);box-shadow:0 1px 0 #7a4410}
.arc.go{background:linear-gradient(#a5ffbf,#39c46a);box-shadow:0 4px 0 #1b6b36}
.arc.burn{background:linear-gradient(#ff9a7a,#e0442c);box-shadow:0 4px 0 #7a1c10;color:#fff}
.mini{font-size:10px;background:#2a241e;color:var(--amber2);border:1px solid #5a4a36;border-radius:4px;padding:6px 8px;font-family:'JetBrains Mono'}
.file{position:relative;overflow:hidden;cursor:pointer}
.file input{position:absolute;inset:0;opacity:0;cursor:pointer}
.speedrow{display:flex;align-items:center;gap:10px;font-family:'Press Start 2P';font-size:8px;color:var(--amber)}
.speedrow input[type=range]{flex:1;accent-color:var(--amber)}
.chk{display:flex;align-items:center;gap:4px;cursor:pointer}
.garbage{background:none;border:1px dashed var(--red);color:#ff8a8a;font-family:'VT323';font-size:20px;padding:6px;border-radius:6px}
.garbage:hover{background:rgba(255,59,59,.1)}

.pad{display:none;justify-content:space-between;align-items:center;margin-top:14px;padding:0 10px;user-select:none;-webkit-user-select:none}
@media (max-width:900px),(pointer:coarse){.pad{display:flex}}
.dpad{display:grid;grid-template-columns:repeat(3,54px);grid-template-rows:repeat(3,54px)}
.dpad button{background:#222;color:#aaa;border:2px solid #000;border-radius:8px;font-size:18px;touch-action:none}
.dpad .u{grid-area:1/2}.dpad .l{grid-area:2/1}.dpad .r{grid-area:2/3}.dpad .d{grid-area:3/2}
.fire{width:90px;height:90px;border-radius:50%;background:radial-gradient(circle at 35% 30%,#ff7a6a,#b01a0a);border:4px solid #300;color:#fff;
  font-family:'Press Start 2P';font-size:10px;box-shadow:0 5px 0 #400;touch-action:none}
.pad button.held{filter:brightness(1.6)}

.bench{background:var(--panel);border:3px solid #050605;border-radius:10px;box-shadow:0 10px 30px rgba(0,0,0,.6);display:flex;flex-direction:column;min-height:560px;overflow:hidden}
.tabs{display:flex;flex-wrap:wrap;background:linear-gradient(#7d7a74,#55524d);border-bottom:3px solid #000}
.tabs button{font-family:'Press Start 2P';font-size:8px;padding:11px 10px;background:none;border:none;border-right:1px solid #3a3834;color:#1c1b19}
.tabs button.active{background:var(--panel);color:var(--phos);text-shadow:0 0 6px var(--phos)}
.panel{display:none;padding:12px;flex:1;overflow:auto;color:var(--phos)}
.panel.active{display:flex;flex-direction:column}
.sub{font-family:'Press Start 2P';font-size:8px;color:var(--amber);margin:12px 0 6px}

.editor{position:relative;flex:1;min-height:380px;background:#070a08;border:1px solid #1f2a22;border-radius:4px}
#hl,#code{position:absolute;inset:0;margin:0;padding:12px;font:13px/1.55 'JetBrains Mono',monospace;white-space:pre;overflow:auto;tab-size:8;border:none}
#hl{color:#9fbfa8;pointer-events:none}
#code{background:transparent;color:transparent;caret-color:var(--amber);resize:none;outline:none}
#code::selection{background:rgba(255,154,46,.3);color:transparent}
.t-op{color:#ffb454;font-weight:800}.t-lb{color:#6bd3ff}.t-n{color:#ff7ab8}.t-d{color:#c7a0ff}.t-c{color:#5e7a66;font-style:italic}.t-r{color:#fff}
.errline{background:rgba(255,40,40,.22);box-shadow:inset 3px 0 0 var(--red)}
.edbar{display:flex;gap:8px;align-items:center;margin-top:10px;flex-wrap:wrap}
.asminfo{font-family:'VT323';font-size:18px;color:var(--phos)}
.errs{margin-top:8px;font-size:12px}
.errs div{color:#ff9b9b;padding:4px 6px;border-left:3px solid var(--red);margin-bottom:4px;background:rgba(255,0,0,.06);cursor:pointer}

.regs{display:grid;grid-template-columns:repeat(auto-fill,minmax(90px,1fr));gap:8px}
.reg{background:#050806;border:1px solid #1f3a28;padding:8px;border-radius:4px}
.reg b{display:block;font-family:'Press Start 2P';font-size:8px;color:var(--amber);margin-bottom:6px}
.reg span{font-family:'VT323';font-size:28px;text-shadow:0 0 6px var(--phos)}
.flags{display:flex;gap:10px;margin-top:12px;flex-wrap:wrap}
.led{display:flex;flex-direction:column;align-items:center;font-family:'Press Start 2P';font-size:8px;gap:4px;color:#8a9}
.led i{width:14px;height:14px;border-radius:50%;background:#2a0a0a;border:1px solid #000}
.led.on i{background:#ff4040;box-shadow:0 0 8px #f33}
.disasm{font-size:12px;line-height:1.6;background:#050806;padding:6px;border-radius:4px}
.disasm div{cursor:pointer;padding:0 6px;white-space:pre}
.disasm div:hover{background:#12201a}
.disasm .cur{background:#1d3a26;color:#fff}
.disasm .bp::before{content:'● ';color:var(--red)}
.disasm .lbl{color:#6bd3ff}

.tia-wrap{display:flex;gap:14px}
.tiaregs{flex:1;display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:6px;align-content:start}
.treg{background:#050806;border:1px solid #1f3a28;padding:6px 8px;border-radius:4px;font-size:11px}
.treg .nm{color:var(--amber);font-weight:800}
.treg .v{float:right;color:#fff}
.sw8{display:inline-block;width:100%;height:14px;margin-top:4px;border:1px solid #000;border-radius:2px}
.bits{display:flex;gap:2px;margin-top:4px}
.bits i{flex:1;height:12px;background:#10261a;border:1px solid #000;cursor:pointer}
.bits i.on{background:var(--phos);box-shadow:0 0 4px var(--phos)}
.tl canvas{width:48px;height:524px;image-rendering:pixelated;border:1px solid #1f3a28}

.mem{font-size:11px;line-height:1.5;white-space:pre}
.mem .a{color:var(--amber)}
.mem .f{background:#ff9a2e;color:#000}

.scope canvas{width:100%;height:90px;background:#030604;border:1px solid #1f3a28;border-radius:4px}
.sndv{font-family:'VT323';font-size:20px;margin-top:4px}
.note{font-family:'VT323';font-size:18px;color:#8fb09a}

.spec{font-size:12px;line-height:1.6;color:#b9d9c2}
.spec h4{font-family:'Press Start 2P';font-size:9px;color:var(--amber);margin:14px 0 6px}
.spec code{color:#ffb454}
#palette{width:100%;image-rendering:pixelated;border:1px solid #1f3a28;cursor:crosshair}

.auth{font-size:12px;margin-bottom:10px;color:var(--amber2)}
.auth a,.auth button{color:var(--phos);background:none;border:1px solid var(--phos);padding:3px 8px;border-radius:4px;font-size:11px;text-decoration:none}
.pubrow{display:flex;gap:8px;flex-wrap:wrap}
.shelf{margin-top:12px;display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:8px}
.cart{background:linear-gradient(#3a2c1c,#20170e);border:2px solid #000;border-radius:6px 6px 2px 2px;padding:10px;color:var(--amber2)}
.cart h5{font-family:'Press Start 2P';font-size:8px;margin:0 0 6px;color:var(--amber);line-height:1.5}
.cart small{display:block;color:#a99577;margin-bottom:8px}

.status{display:flex;gap:18px;flex-wrap:wrap;justify-content:center;padding:8px 14px;margin:0 20px;background:#050605;border:2px solid #1b1f1c;border-radius:6px;
  font-family:'VT323';font-size:21px;color:var(--phos);text-shadow:0 0 5px rgba(107,255,154,.6)}
.status .bad{color:var(--red);text-shadow:0 0 5px var(--red)}
.status .rank{color:var(--amber)}
footer{text-align:center;padding:18px;font-family:'VT323';font-size:19px;color:#8b8375}
footer a{color:var(--amber)}

.modal{position:fixed;inset:0;background:rgba(0,0,0,.75);display:none;align-items:center;justify-content:center;z-index:9;padding:16px}
.modal.show{display:flex}
.modal-card{background:#0d120f;border:3px solid var(--amber);border-radius:10px;padding:20px;max-width:520px;color:#cfe;box-shadow:0 0 40px rgba(255,154,46,.3)}
.modal-card h3{font-family:'Press Start 2P';font-size:12px;color:var(--amber);margin-top:0}
.modal-card li{margin-bottom:10px;font-size:13px;line-height:1.5}