:root{--bg:#050b14;--panel:#0a1422;--panel-2:#0d1a2b;--line:#1a2d44;--text:#dbe7f3;--muted:#7f97ad;--accent:#ffe38a;--cyan:#7fdbff;--red:#ff6b7a;--green:#8ee6a0;--mono:"JetBrains Mono", "Cascadia Code", "Fira Code", ui-monospace, "SFMono-Regular", Menlo, Consolas, monospace;--sans:"Inter", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}*{box-sizing:border-box}html,body{height:100%;margin:0}body{background:radial-gradient(1200px 600px at 80% -10%, #0f2744 0%, transparent 60%), var(--bg);color:var(--text);font:13px/1.45 var(--sans);flex-direction:column;display:flex;overflow:hidden}button,select,input{font:inherit;color:inherit}button,select{background:var(--panel-2);border:1px solid var(--line);cursor:pointer;border-radius:6px;padding:5px 10px}button:hover,select:hover{background:#11223a;border-color:#2d4a6b}button:focus-visible,select:focus-visible,input:focus-visible,canvas:focus-visible{outline:2px solid var(--cyan);outline-offset:1px}button[disabled]{opacity:.4;cursor:default}button.accent{color:#1a1204;background:linear-gradient(#ffe38a,#f5b94a);border-color:#f5c05a;font-weight:700}button.accent:hover{background:linear-gradient(#fff0b0,#ffc75a)}button.small{padding:2px 8px;font-size:12px}.sr{clip:rect(0 0 0 0);width:1px;height:1px;position:absolute;overflow:hidden}.mono{font-family:var(--mono);font-size:12px}.topbar{border-bottom:1px solid var(--line);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);background:#050b14d9;flex-wrap:wrap;align-items:center;gap:18px;padding:8px 14px;display:flex}.brand{align-items:center;gap:8px;margin-right:6px;display:flex}.logo{width:38px;height:30px}.logo .lure{filter:drop-shadow(0 0 4px #ffe38a);animation:3.2s ease-in-out infinite lure}@keyframes lure{50%{opacity:.55}}@media (prefers-reduced-motion:reduce){.logo .lure{animation:none}}.brand-name{letter-spacing:.2px;font-size:17px;font-weight:800}.brand-chip{font:700 10px var(--mono);color:#1a1204;background:var(--accent);border-radius:4px;padding:1px 5px}.group{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.transport{margin-left:auto}#file-select{max-width:260px}.layout{flex:1;grid-template-columns:minmax(0,1fr) minmax(500px,42%);gap:10px;min-height:0;padding:10px;display:grid}.pane{background:var(--panel);border:1px solid var(--line);border-radius:10px;flex-direction:column;min-height:0;display:flex;overflow:hidden}.pane-head{border-bottom:1px solid var(--line);background:var(--panel-2);align-items:center;gap:10px;padding:6px 10px;display:flex}.file-name{font:600 12px var(--mono);color:var(--accent)}.build-state{font:12px var(--mono);color:var(--muted)}.build-state.ok{color:var(--green)}.build-state.err{color:var(--red)}.build-state.dirty{color:var(--muted);font-style:italic}.editor{flex:1;min-height:0}.editor .cm-editor{height:100%}.bp-dot{background:var(--red);width:9px;height:9px;box-shadow:0 0 6px var(--red);border-radius:50%;margin:5px 2px}.problems{border-top:1px solid var(--line);max-height:120px;display:none;overflow:auto}.problems.has{display:block}.problem{text-align:left;width:100%;color:var(--red);font:12px var(--mono);background:0 0;border:0;border-radius:0;padding:3px 10px;display:block}.problem:hover{background:#ff6b7a14}.machine-pane{gap:8px;padding:10px}.screen-wrap{background:#000;border-radius:8px;padding:10px;position:relative;box-shadow:inset 0 0 0 1px #16283d,0 10px 30px #0006}#screen{aspect-ratio:4/3;width:100%;image-rendering:pixelated;image-rendering:crisp-edges;cursor:pointer;background:#012;border-radius:3px;display:block}.screen-hint{text-align:center;color:var(--muted);pointer-events:none;font-size:11px;transition:opacity .4s;position:absolute;bottom:-2px;left:0;right:0}.screen-hint.dim{opacity:0}.halt-banner{font:700 11px var(--mono);color:var(--muted);background:#000000b3;border-radius:4px;padding:3px 8px;position:absolute;top:16px;right:16px}.halt-banner.bad{background:var(--red);color:#200}.statusline{font:12px var(--mono);color:var(--muted);flex-wrap:wrap;align-items:center;gap:14px;display:flex}.statusline b{color:var(--text);font-weight:600}.pill{color:var(--text);background:#1a2d44;border-radius:99px;padding:1px 8px}.pill.running{color:var(--green);background:#16402a}.pill.paused,.pill.break{color:var(--accent);background:#463a12}.pill.halted{background:#1a2d44}.pill.illegal,.pill.fault{color:var(--red);background:#4a1520}.tabs{border-bottom:1px solid var(--line);gap:2px;display:flex}.tabs button{color:var(--muted);background:0 0;border:0;border-radius:6px 6px 0 0;padding:6px 10px}.tabs button[aria-selected=true]{color:var(--text);background:var(--panel-2);box-shadow:inset 0 -2px 0 var(--accent)}.badge{background:var(--accent);color:#1a1204;font:700 10px var(--mono);border-radius:99px;margin-left:3px;padding:0 5px}.tabpanels{flex:1;min-height:0;overflow:auto}.tabpanel{padding:8px 2px}.regs{grid-template-columns:repeat(4,1fr);gap:4px;display:grid}.reg{background:var(--panel-2);font-family:var(--mono);border-radius:6px;grid-template-rows:auto auto;grid-template-columns:28px 1fr;padding:4px 8px;transition:background .3s;display:grid}.reg .rn{color:var(--muted);grid-row:span 2;align-self:center}.reg .rv{color:var(--text);font-weight:600}.reg .rd{color:#5f7a92;font-size:11px}.reg.changed{background:#2a2610}.reg.changed .rv{color:var(--accent)}.flags{gap:4px;margin:8px 0;display:flex}.flag{font:700 12px var(--mono);background:var(--panel-2);color:#3d556d;border-radius:5px;padding:2px 9px}.flag.on{color:var(--cyan);background:#133a4a}.kv{font:12px var(--mono);color:var(--muted);grid-template-columns:70px 150px 1fr;gap:2px 8px;display:grid}.kv b{color:var(--text);font-weight:600}#disasm .dl{white-space:pre;border-radius:4px;grid-template-columns:14px 48px 1fr;padding:0 4px;display:grid}#disasm .dl.label{color:var(--accent);padding-top:4px;display:block}#disasm .dl.pc{box-shadow:inset 3px 0 0 var(--accent);background:#ffe38a24}#disasm .bp{color:var(--red)}#disasm .ad{color:#5f7a92}.mem-bar{flex-wrap:wrap;align-items:center;gap:6px;margin-bottom:6px;display:flex}.mem-bar input{background:var(--panel-2);border:1px solid var(--line);width:70px;font-family:var(--mono);border-radius:5px;padding:2px 6px}.mrow{white-space:pre;grid-template-columns:44px repeat(16,20px) 1fr;gap:1px;display:grid}.mrow.head span{color:#3d556d}.mrow .ma{color:#5f7a92}.mrow span.changed{color:var(--accent)}.mrow span.pc{background:#ffe38a2e}.mrow span.sp{background:#7fdbff2e}.mrow .asc{color:#5f7a92;padding-left:8px}.serial-out{min-height:160px;max-height:320px;font:12px var(--mono);color:#9fe6a0;white-space:pre-wrap;background:#03070d;border-radius:6px;margin:0;padding:8px;overflow:auto}.serial-form{gap:6px;margin-top:6px;display:flex}.serial-form input{background:var(--panel-2);border:1px solid var(--line);font-family:var(--mono);border-radius:6px;flex:1;padding:5px 8px}.voices{grid-template-columns:repeat(2,1fr);gap:6px;display:grid}.voice{background:var(--panel-2);font:12px var(--mono);color:var(--muted);border-radius:6px;gap:2px;padding:6px 8px;display:grid}.voice b{color:var(--text)}.voice.on b{color:var(--accent)}.vbar{background:#03070d;border-radius:3px;height:6px;overflow:hidden}.vbar div{background:linear-gradient(90deg, var(--cyan), var(--accent));height:100%}.note{color:var(--muted)}.help h3{color:var(--accent);margin:6px 0 4px;font-size:13px}.help td{vertical-align:top;padding:2px 10px 2px 0}.help pre{background:var(--panel-2);border-radius:6px;padding:8px}kbd{font:11px var(--mono);background:var(--panel-2);border:1px solid var(--line);border-bottom-width:2px;border-radius:4px;padding:0 4px}code{font-family:var(--mono);color:var(--cyan)}.asm-dialog{background:var(--panel);width:min(900px,92vw);height:80vh;color:var(--text);border:1px solid var(--line);border-radius:10px;padding:0}.asm-dialog::backdrop{background:#0009}.asm-dialog pre{height:calc(100% - 40px);margin:0;padding:10px;overflow:auto}.asm-dialog .pane-head{justify-content:space-between}@media (max-width:1000px){body{overflow:auto}.layout{grid-template-columns:1fr}.machine-pane{order:-1}.editor-pane{min-height:60vh}.transport{margin-left:0}.regs{grid-template-columns:repeat(2,1fr)}}
