:root{
  --bg:#0b1410; --bg2:#0f1d17; --cu:#d08a3c; --cu2:#8a5a25; --ph:#7CFF9B; --ph2:#3fae5e;
  --amber:#ffb547; --red:#ff5a5a; --dim:#5d7a68; --ink:#cfe9d6;
}
*{box-sizing:border-box}
html,body{margin:0;background:var(--bg);color:var(--ink);font-family:'JetBrains Mono',monospace;}
body{
  background:
    radial-gradient(circle at 20% 10%, rgba(124,255,155,.06), transparent 40%),
    radial-gradient(circle at 80% 90%, rgba(208,138,60,.07), transparent 45%),
    linear-gradient(rgba(208,138,60,.045) 1px, transparent 1px) 0 0/24px 24px,
    linear-gradient(90deg, rgba(208,138,60,.045) 1px, transparent 1px) 0 0/24px 24px,
    var(--bg);
  min-height:100vh;
}
.pixel{font-family:'Press Start 2P',monospace;letter-spacing:.02em}
.chip{position:relative;background:linear-gradient(180deg,#101c16,#0c1611);border:1px solid var(--cu2);border-radius:6px;box-shadow:0 0 0 1px #000 inset,0 6px 24px rgba(0,0,0,.45);margin-bottom:14px;animation:rise .5s both}
.chip::before,.chip::after{content:'';position:absolute;left:14px;right:14px;height:4px;background:repeating-linear-gradient(90deg,var(--cu) 0 6px,transparent 6px 14px);opacity:.7}
.chip::before{top:-4px}.chip::after{bottom:-4px}
.chip-h{display:flex;justify-content:space-between;align-items:center;padding:8px 12px;border-bottom:1px dashed var(--cu2);font-family:'Press Start 2P';font-size:9px;color:var(--cu);text-transform:uppercase}
.chip-b{padding:10px 12px}
@keyframes rise{from{opacity:0;transform:translateY(10px)}to{opacity:1}}
.btn{font-family:'JetBrains Mono';font-weight:800;font-size:12px;padding:7px 11px;border-radius:4px;border:1px solid var(--cu2);background:#14241c;color:var(--ph);cursor:pointer;transition:.15s;white-space:nowrap}
.btn:hover{background:#1c3327;border-color:var(--cu);box-shadow:0 0 10px rgba(124,255,155,.2)}
.btn:disabled{opacity:.4;cursor:not-allowed}
.btn.cu{background:var(--cu);color:#1a0f04;border-color:var(--cu)}
.btn.cu:hover{background:#e7a058}
.inp{background:#07100c;border:1px solid var(--cu2);color:var(--ph);font-family:'JetBrains Mono';font-size:12px;padding:5px 8px;border-radius:4px;outline:none}
.inp:focus{border-color:var(--ph)}
/* editor */
.editor{display:flex;height:440px;background:#060d09;border:1px solid #1d3326;border-radius:4px;overflow:hidden}
.gut{width:46px;overflow:hidden;background:#08120d;border-right:1px solid #1d3326;padding:8px 0;user-select:none;flex-shrink:0}
.gl{height:20px;line-height:20px;font-size:11px;color:var(--dim);text-align:right;padding-right:6px;cursor:pointer;position:relative}
.gl:hover{color:var(--ink)}
.gl.bp::before{content:'';position:absolute;left:5px;top:6px;width:8px;height:8px;border-radius:50%;background:var(--red);box-shadow:0 0 6px var(--red)}
.gl.pc{color:var(--ph);font-weight:800}
.gl.pc::after{content:'▶';position:absolute;right:-2px;color:var(--ph);text-shadow:0 0 6px var(--ph);font-size:9px}
.gl.err{color:var(--red)}
.edwrap{position:relative;flex:1;overflow:hidden}
.ed-pre,.ed-ta{position:absolute;inset:0;margin:0;padding:8px 10px;font-family:'JetBrains Mono';font-size:13px;line-height:20px;white-space:pre;tab-size:8;border:0}
.ed-pre{overflow:hidden;pointer-events:none;color:var(--ink)}
.ed-ta{background:transparent;color:transparent;caret-color:var(--ph);resize:none;outline:none;overflow:auto}
.ed-ta::selection{background:rgba(124,255,155,.25);color:transparent}
.ln{height:20px}
.ln.pcl{background:linear-gradient(90deg,rgba(124,255,155,.18),rgba(124,255,155,.02));box-shadow:inset 3px 0 0 var(--ph)}
.ln.errl{background:rgba(255,90,90,.1)}
.t-mn{color:var(--cu);font-weight:800}.t-reg{color:var(--ph)}.t-num{color:#f6d38a}.t-lbl{color:#8fd3ff;font-weight:800}
.t-dir{color:#d79bff}.t-str{color:#ffb3a1}.t-cm{color:#4f6b5a;font-style:italic}.t-sym{color:#9fd8ff}
/* registers */
.reg{display:flex;justify-content:space-between;padding:3px 6px;border-radius:3px;font-size:12px;cursor:pointer}
.reg:hover{background:#13251c}
.reg .n{color:var(--cu);font-weight:800}
.reg .v{color:var(--ph)}
.flash{animation:flash .3s ease-out}
@keyframes flash{0%{background:rgba(255,181,71,.55);color:#000}100%{background:transparent}}
.lamp{width:38px;height:38px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-weight:800;border:2px solid #23382c;color:#2c4537;background:#0a140f;transition:.15s}
.lamp.on{background:radial-gradient(circle,#c8ffd6,var(--ph) 40%,#1f7a3d);color:#062010;box-shadow:0 0 14px var(--ph);border-color:var(--ph)}
.lamp.sm{width:26px;height:26px;font-size:10px}
.lamp.on.amb{background:radial-gradient(circle,#fff1cc,var(--amber) 45%,#8a5a10);box-shadow:0 0 12px var(--amber);border-color:var(--amber)}
/* disasm */
.dis{height:260px;overflow:auto;font-size:12px;background:#060d09;border:1px solid #1d3326;border-radius:4px}
.drow{display:grid;grid-template-columns:14px 78px 92px 1fr;gap:6px;padding:1px 6px;white-space:nowrap}
.drow.cur{background:rgba(124,255,155,.14);color:#fff;box-shadow:inset 3px 0 0 var(--ph)}
.drow .a{color:var(--dim)}.drow .h{color:#f6d38a}
.pipe{display:grid;grid-template-columns:repeat(3,1fr);gap:6px}
.stage{border:1px dashed var(--cu2);border-radius:4px;padding:6px;font-size:11px;min-height:56px;overflow:hidden}
.stage b{display:block;font-family:'Press Start 2P';font-size:8px;color:var(--cu);margin-bottom:4px}
.stage.ex{border-color:var(--ph);border-style:solid;box-shadow:0 0 10px rgba(124,255,155,.15) inset}
.hex{font-size:11.5px;line-height:18px;overflow-x:auto;white-space:pre}
.hex .wr{color:#000;background:var(--amber);border-radius:2px}
.hex .ad{color:var(--cu)}.hex .as{color:var(--dim)}
.fb{width:100%;max-width:384px;image-rendering:pixelated;border:2px solid var(--cu2);border-radius:4px;background:#000;display:block;margin:auto}
.console{background:#020604;color:var(--ph);font-size:12px;height:140px;overflow:auto;padding:8px;border-radius:4px;border:1px solid #1d3326;white-space:pre-wrap;text-shadow:0 0 6px rgba(124,255,155,.5)}
.badge{font-family:'Press Start 2P';font-size:9px;padding:6px 9px;border-radius:3px}
.tabbtn{flex:1;padding:8px 0;font-family:'Press Start 2P';font-size:8px;color:var(--dim);background:transparent;border:0;border-bottom:2px solid transparent}
.tabbtn.on{color:var(--ph);border-color:var(--ph)}
.toast{position:fixed;left:50%;top:80px;transform:translateX(-50%);z-index:60;min-width:280px;max-width:92vw;background:#0d1a13;border:1px solid var(--ph);border-radius:6px;padding:14px 16px;box-shadow:0 0 30px rgba(124,255,155,.25);animation:rise .3s both}
.toast.bad{border-color:var(--red);box-shadow:0 0 30px rgba(255,90,90,.25)}
.conf{position:fixed;top:-10px;width:8px;height:12px;z-index:59;animation:fall 1.8s linear forwards;pointer-events:none}
@keyframes fall{to{transform:translateY(105vh) rotate(720deg);opacity:.6}}
input[type=range]{accent-color:var(--cu)}
::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-thumb{background:#24402f;border-radius:4px}::-webkit-scrollbar-track{background:transparent}
select.inp option{background:#07100c}
@media (max-width:1023px){ body{padding-bottom:120px} .editor{height:360px} }