:root{--bg:#0b0c0e;--panel:#101114d1;--line:#ffffff14;--line2:#ffffff24;--text:#e6e7e9;--dim:#8b9098;--mute:#5b6068;--acc:#ffb547;--err:#ff6b6b;--mono:"JetBrains Mono", ui-monospace, Menlo, monospace;--sans:"Inter", system-ui, sans-serif}*{box-sizing:border-box}html,body,#root,.app{background:var(--bg);height:100%;color:var(--text);font-family:var(--sans);margin:0;overflow:hidden}button{font:inherit;color:inherit;cursor:pointer}.muted{color:var(--mute)}.tag{font:500 10px var(--mono);color:var(--text);white-space:nowrap;letter-spacing:.06em;text-shadow:0 1px 3px #000;flex-direction:column;align-items:center;display:flex}.tag b{border:1px solid var(--line2);background:#0b0c0eb3;border-radius:3px;padding:2px 6px;font-weight:600}.tag span{color:var(--dim);margin-top:2px;font-size:9px}.pkt{font:500 10px var(--mono);color:#111;background:var(--acc);white-space:nowrap;border-radius:2px;padding:1px 5px;box-shadow:0 0 12px #ffb54780}.screen{width:1000px;height:570px;font-family:var(--mono);color:var(--text);-webkit-user-select:none;user-select:none;background:#0f1012;flex-direction:column;display:flex;overflow:hidden}.chrome{border-bottom:1px solid var(--line);background:#17181b;align-items:center;gap:12px;height:34px;padding:0 12px;font-size:12px;display:flex}.dots{gap:6px;display:flex}.dots i{background:#2e3035;border-radius:50%;width:10px;height:10px}.tab{color:var(--text);background:#0f1012;border-radius:6px 6px 0 0;margin-top:8px;padding:5px 12px}.url{color:var(--dim);background:#0f1012;border-radius:5px;flex:1;padding:5px 10px}.toolbar{border-bottom:1px solid var(--line);align-items:center;gap:12px;height:38px;padding:0 12px;font-size:12px;display:flex}.toolbar select{color:var(--text);border:1px solid var(--line2);font:inherit;background:#17181b;border-radius:4px;padding:4px 8px}.status{color:var(--dim)}.status.exec,.status.lex,.status.parse,.status.compile,.status.source{color:var(--acc)}.status.error{color:var(--err)}.hint{color:var(--mute);margin-left:auto}.run{background:var(--text);color:#111;border:0;border-radius:4px;padding:6px 16px;font-weight:600}.run.stop{color:var(--text);border:1px solid var(--line2);background:0 0}.editor{flex:1;min-height:0;font-size:14px;line-height:20px;display:flex}.gutter{text-align:right;width:44px;color:var(--mute);border-right:1px solid var(--line);padding:10px 10px 0 0;overflow:hidden}.gutter .on{color:var(--acc)}.gutter .err{color:var(--err)}.code{flex:1;min-width:0;position:relative}.code pre,.code textarea{font:inherit;white-space:pre;tab-size:2;margin:0;padding:10px 14px;line-height:20px;position:absolute;inset:0;overflow:auto}.code pre{pointer-events:none;color:#c9ccd1;overflow:hidden}.code textarea{color:#0000;caret-color:var(--acc);resize:none;-webkit-user-select:text;user-select:text;background:0 0;border:0;outline:none}.code textarea::selection{background:#ffffff26}.linebar-wrap{pointer-events:none;position:absolute;inset:0;overflow:hidden}.linebar{border-left:2px solid var(--acc);background:#ffb54714;height:20px;position:absolute;left:0;right:0}.linebar.error{border-left-color:var(--err);background:#ff6b6b1a}pre .k{color:#fff;font-weight:600}pre .s{color:#a9b1ba}pre .n{color:var(--acc)}pre .c{color:#575c64;font-style:italic}pre .f{color:#e2e4e8;text-underline-offset:3px;-webkit-text-decoration:underline #ffffff26;text-decoration:underline #ffffff26}pre .p{color:#8b9098}pre mark{background:var(--acc);border-radius:2px;color:#111!important}.console{border-top:1px solid var(--line);background:#0c0d0f;height:150px;padding:6px 14px;font-size:13px;overflow:auto}.console-head{color:var(--mute);letter-spacing:.12em;text-transform:uppercase;margin-bottom:4px;font-size:10px}.ln{white-space:pre-wrap;word-break:break-all;border-bottom:1px solid #ffffff08;padding:2px 0}.ln span{color:var(--mute)}.ln.error{color:var(--err)}.ln.warn{color:var(--acc)}.hud{pointer-events:none;z-index:100;position:fixed;inset:0}.hud>*{pointer-events:auto}header{pointer-events:none;flex-direction:column;gap:14px;display:flex;position:absolute;top:16px;left:18px}.brand b{font:600 16px var(--mono);letter-spacing:.04em}.brand span{color:var(--dim);margin-left:10px;font-size:12px}.stepper{pointer-events:auto;gap:2px;display:flex}.step{background:var(--panel);border:1px solid var(--line);color:var(--mute);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);align-items:center;gap:7px;padding:6px 10px 6px 6px;font-size:11px;display:flex}.step:first-child{border-radius:6px 0 0 6px}.step:last-child{border-radius:0 6px 6px 0}.step i{font:600 10px var(--mono);border:1px solid var(--line2);border-radius:50%;place-items:center;width:18px;height:18px;font-style:normal;display:grid}.step b{font-weight:500;display:block}.step span{font-size:10px}.step.past{color:var(--dim)}.step.on{color:var(--text);border-color:#ffb54766}.step.on i{background:var(--acc);color:#111;border-color:var(--acc)}.step.on.err i{background:var(--err);border-color:var(--err)}.cams{flex-direction:column;gap:4px;display:flex;position:absolute;top:112px;left:18px}.cams button{background:var(--panel);border:1px solid var(--line);color:var(--dim);text-align:left;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-radius:4px;padding:5px 10px;font-size:11px}.cams button:hover{color:var(--text);border-color:var(--line2)}.panel{background:var(--panel);border:1px solid var(--line);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);border-radius:8px;flex-direction:column;width:380px;display:flex;position:absolute;top:16px;bottom:112px;right:16px;overflow:hidden}.tabs{border-bottom:1px solid var(--line);display:flex}.tabs button{color:var(--mute);background:0 0;border:0;border-bottom:2px solid #0000;flex:1;padding:10px 0;font-size:11px}.tabs button.on{color:var(--text);border-bottom-color:var(--acc)}.auto{color:var(--mute);border-bottom:1px solid var(--line);align-items:center;gap:6px;padding:6px 12px;font-size:10px;display:flex}.body{flex:1;padding:12px;font-size:12px;overflow:auto}.body::-webkit-scrollbar{width:6px;height:6px}.console::-webkit-scrollbar{width:6px;height:6px}.code textarea::-webkit-scrollbar{width:6px;height:6px}.body::-webkit-scrollbar-thumb{background:#2a2c30;border-radius:3px}.console::-webkit-scrollbar-thumb{background:#2a2c30;border-radius:3px}.code textarea::-webkit-scrollbar-thumb{background:#2a2c30;border-radius:3px}.note{color:var(--dim);margin:0 0 12px;line-height:1.5}.note b{color:var(--text);font-weight:500}.empty{color:var(--mute);text-align:center;padding:30px 10px;line-height:1.6}.foot{color:var(--mute);font:11px var(--mono);margin-top:10px}.legend{opacity:.8;flex-wrap:wrap;gap:4px;margin-bottom:10px;display:flex}.tokens{flex-wrap:wrap;gap:4px;display:flex}.tk{font:12px var(--mono);border:1px solid var(--line2);color:var(--dim);border-radius:3px;padding:2px 6px}.tk.keyword{color:#fff;border-color:#ffffff59;font-weight:600}.tk.ident{color:var(--text)}.tk.number{color:var(--acc);border-color:#ffb5474d}.tk.string{color:#a9b1ba;border-style:dashed}.tk.op{color:var(--text);background:#ffffff0d}.tk.punct{color:var(--mute)}.tk.active{background:var(--acc);color:#111;border-color:var(--acc)}.tree{font:11.5px var(--mono)}.node{white-space:nowrap;background-image:linear-gradient(90deg,#0000 0,#0000);border-left:1px solid #0000;padding:2px 0}.node em{color:var(--mute);font-style:normal}.node b{font-weight:500}.node code{color:var(--acc)}.node.active{background:#ffb5471f}.bc{font:11.5px var(--mono)}.bc .lbl{color:var(--mute);padding:6px 0 2px}.ins{white-space:nowrap;border-radius:2px;gap:10px;padding:2px 4px;display:flex}.ins .off{color:var(--mute)}.ins .op{color:var(--text);min-width:140px}.ins .args{color:var(--dim)}.ins .cm{color:var(--mute);text-overflow:ellipsis;overflow:hidden}.ins.active{background:var(--acc)}.ins.active *{color:#111!important}.cpu-grid{grid-template-columns:1fr 1fr;gap:8px;display:grid}.box{border:1px solid var(--line);background:#ffffff04;border-radius:6px;padding:10px}.box.wide{grid-column:span 2}.box h4,.sec{text-transform:uppercase;letter-spacing:.12em;color:var(--dim);justify-content:space-between;gap:8px;margin:0 0 8px;font-size:10px;font-weight:500;display:flex}.sec{justify-content:flex-start;margin-top:16px}.mode{text-transform:none;letter-spacing:0;color:var(--text)}.mode.kernel{color:var(--acc)}.fde{color:var(--mute);font:11px var(--mono);align-items:center;gap:6px;margin-bottom:8px;display:flex}.fde span{border:1px solid var(--line2);border-radius:3px;padding:2px 6px}.fde .on{border-color:var(--acc);color:var(--acc)}.kv{font:11.5px var(--mono);justify-content:space-between;gap:10px;padding:2px 0;display:flex}.kv label{color:var(--mute)}.kv code{color:var(--text);text-align:right;text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.kv .acc{color:var(--acc)}.alu{font:14px var(--mono);text-align:center;gap:2px;display:grid}.alu .opr{color:var(--acc);font-size:18px}.alu .eq{border-top:1px solid var(--line2);color:#fff;padding-top:4px;font-weight:600}.hit{font:11px var(--mono);color:var(--err);margin-bottom:6px}.hit.ok{color:var(--acc)}.cache{flex-wrap:wrap;gap:4px;display:flex}.cache span{font:11px var(--mono);border:1px solid var(--line2);border-radius:3px;padding:2px 6px}.cache em{color:var(--mute);margin-left:6px;font-style:normal}.cores{grid-template-columns:repeat(8,1fr);gap:4px;display:grid}.cores span{text-align:center;font:11px var(--mono);border:1px solid var(--line2);color:var(--mute);border-radius:3px;padding:6px 0}.cores .on{background:var(--acc);color:#111;border-color:var(--acc)}.hexdump{font:11px var(--mono);color:var(--dim);flex-wrap:wrap;gap:3px 6px;display:flex}table.mem{border-collapse:collapse;width:100%;font:11.5px var(--mono)}table.mem td{border-bottom:1px solid var(--line);white-space:nowrap;text-overflow:ellipsis;max-width:150px;padding:3px 4px;overflow:hidden}table.mem .addr{color:var(--mute)}table.mem .val{color:var(--text)}table.mem tr.active td{background:#ffb54724}table.mem tr.active.write td{background:#ffb5474d}table.mem tr.active .addr{color:var(--acc)}.nand{grid-template-columns:repeat(16,1fr);gap:3px;display:grid}.nand i{aspect-ratio:1.6;background:#ffffff0d;border-radius:1px}.nand i.used{background:#fff6}.nand i.on{background:var(--acc);box-shadow:0 0 6px var(--acc)}.ghost{border:1px solid var(--line2);color:var(--dim);background:0 0;border-radius:4px;margin-top:12px;padding:5px 10px;font-size:11px}.phases{gap:4px;margin-bottom:10px;display:flex}.phases span{text-align:center;font:11px var(--mono);border:1px solid var(--line2);color:var(--mute);border-radius:3px;flex:1;padding:4px 0}.phases .past{color:var(--text)}.phases .on{background:var(--acc);color:#111;border-color:var(--acc)}.layers .layer{border:1px solid var(--line2);font:11px var(--mono);background:#ffffff04;border-radius:5px;margin-top:6px;padding:6px 8px}.layers>.layer{margin-top:0}.layer .lh{color:var(--dim);margin-bottom:3px}.layer .lh b{color:var(--acc);margin-right:4px}.layer .ll{color:var(--text);word-break:break-all}.layer.active{border-color:var(--acc)}table.log td{font-size:10.5px}.bottom{align-items:stretch;gap:12px;display:flex;position:absolute;bottom:16px;left:16px;right:412px}.narr{background:var(--panel);border:1px solid var(--line);border-left:2px solid var(--acc);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);border-radius:6px;flex-direction:column;flex:1;justify-content:center;min-height:64px;padding:12px 16px;display:flex}.narr.error{border-left-color:var(--err)}.narr.idle{border-left-color:var(--line2)}.narr .main{font-size:14px;line-height:1.4}.narr .sub{font:11.5px var(--mono);color:var(--dim);margin-top:4px}.controls{background:var(--panel);border:1px solid var(--line);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);border-radius:6px;align-items:center;gap:6px;padding:8px 10px;display:flex}.controls>button,.speed button{border:1px solid var(--line2);white-space:nowrap;background:0 0;border-radius:4px;padding:6px 10px;font-size:12px}.controls .primary{background:var(--text);color:#111;border-color:var(--text);padding:6px 18px;font-weight:600}.speed{gap:0;display:flex}.speed button{font:11px var(--mono);color:var(--dim);border-radius:0;margin-left:-1px;padding:6px 7px}.speed button:first-child{border-radius:4px 0 0 4px}.speed button:last-child{border-radius:0 4px 4px 0}.speed button.on{color:#111;background:var(--acc);border-color:var(--acc)}.follow{color:var(--dim);white-space:nowrap;align-items:center;gap:5px;font-size:11px;display:flex}input[type=checkbox]{accent-color:var(--acc)}.cams .theme{color:var(--text);margin-top:10px}[data-theme=light]{--bg:#eceef1;--panel:#ffffffe6;--line:#0f121817;--line2:#0f12182e;--text:#15181d;--dim:#4f5560;--mute:#868c96;--acc:#d97f00;--err:#d93636}[data-theme=light] .panel,[data-theme=light] .step,[data-theme=light] .cams button,[data-theme=light] .narr,[data-theme=light] .controls{box-shadow:0 1px 3px #0f12180f}[data-theme=light] .step.on i,[data-theme=light] .tk.active,[data-theme=light] .ins.active,[data-theme=light] .cores .on,[data-theme=light] .phases .on,[data-theme=light] .speed button.on{color:#fff}[data-theme=light] .ins.active *{color:#fff!important}[data-theme=light] .controls .primary{background:var(--text);color:#fff;border-color:var(--text)}[data-theme=light] .tk.keyword{color:#000;border-color:#00000059}[data-theme=light] .tk.string{color:#5b6470}[data-theme=light] .tk.op{background:#0000000a}[data-theme=light] .alu .eq{color:#000}[data-theme=light] .box,[data-theme=light] .layers .layer{background:#00000004}[data-theme=light] .nand i{background:#00000012}[data-theme=light] .nand i.used{background:#0006}[data-theme=light] table.mem tr.active td{background:#d97f001f}[data-theme=light] table.mem tr.active.write td{background:#d97f003d}[data-theme=light] .node.active{background:#d97f0024}[data-theme=light] .body::-webkit-scrollbar-thumb{background:#c9cdd3}[data-theme=light] .console::-webkit-scrollbar-thumb{background:#c9cdd3}[data-theme=light] .code textarea::-webkit-scrollbar-thumb{background:#c9cdd3}[data-theme=light] .tag{color:#15181d;text-shadow:none}[data-theme=light] .tag b{background:#ffffffeb;border-color:#0f121833}[data-theme=light] .tag span{color:#3a3f47;text-shadow:none;background:#ffffffd9;border-radius:2px;padding:0 4px}[data-theme=light] .pkt{color:#fff;background:#d97f00;box-shadow:0 1px 6px #d97f0066}[data-theme=light] .screen{background:#fff}[data-theme=light] .chrome{background:#eef0f3}[data-theme=light] .dots i{background:#cfd3d8}[data-theme=light] .tab,[data-theme=light] .url{background:#fff}[data-theme=light] .toolbar select{background:#f4f5f7}[data-theme=light] .run{color:#fff;background:#15181d}[data-theme=light] .run.stop{color:var(--text);background:0 0}[data-theme=light] .code pre{color:#2a2f37}[data-theme=light] .code textarea::selection{background:#0000001f}[data-theme=light] pre .k{color:#000}[data-theme=light] pre .s{color:#5b6470}[data-theme=light] pre .n{color:#c06f00}[data-theme=light] pre .c{color:#9aa0a8}[data-theme=light] pre .f{color:#15181d;text-decoration-color:#0003}[data-theme=light] pre .p{color:#6b717b}[data-theme=light] pre mark{background:#ffcf80;color:#000!important}[data-theme=light] .linebar{background:#d97f0014}[data-theme=light] .linebar.error{background:#d9363614}[data-theme=light] .console{background:#f7f8fa}[data-theme=light] .ln{border-bottom-color:#0000000d}.stepper-ctl{background:var(--panel);border:1px solid var(--line);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);border-radius:6px;flex-direction:column;justify-content:center;gap:6px;padding:8px 10px;display:flex}.stepper-ctl .pair{display:flex}.stepper-ctl .pair button{border:1px solid var(--line2);white-space:nowrap;background:0 0;padding:6px 10px;font-size:12px}.stepper-ctl .pair button:first-child{border-radius:4px 0 0 4px}.stepper-ctl .pair button:last-child{border-color:var(--acc);color:var(--acc);border-radius:0 4px 4px 0;margin-left:-1px}.stepper-ctl .pair button:disabled{opacity:.35;cursor:default;border-color:var(--line2);color:var(--dim)}.narr .step-no{font:10px var(--mono);color:var(--mute);letter-spacing:.06em;min-height:12px;margin-bottom:3px}.narr.history{border-left-color:var(--dim)}.narr.history .step-no{color:var(--acc)}.bottom{right:412px}.controls{flex-wrap:wrap}.langs{display:flex}.langs button{border:1px solid var(--line2);font:inherit;color:var(--dim);background:0 0;margin-left:-1px;padding:4px 10px}.langs button:first-child{border-radius:4px 0 0 4px;margin-left:0}.langs button:last-child{border-radius:0 4px 4px 0}.langs button.on{background:var(--text);color:var(--bg);border-color:var(--text)}.langs button:disabled{cursor:default}pre .pp{color:#b9a37a}[data-theme=light] pre .pp{color:#8a6a2a}.bc.asm{font-size:11px}.bc.asm .ins{gap:8px}.bc.asm .ins .bytes{color:var(--mute);text-overflow:ellipsis;min-width:118px;max-width:118px;padding-top:1px;font-size:9.5px;overflow:hidden}.bc.asm .ins .off{min-width:42px;padding-top:1px;font-size:10px}.bc.asm .ins .op{flex-shrink:0;min-width:0}.regs3{grid-template-columns:1fr 1fr;column-gap:14px;display:grid}.regs3 .kv code{font-size:10.5px}table.mem .bytes{color:var(--dim);font-size:10.5px}table.stackv td:first-child{min-width:128px}.box.pp{margin-bottom:12px}.pkt{flex-direction:column;align-items:center;gap:1px;padding:3px 7px;font-size:11px;line-height:1.25;display:flex}.pkt b{letter-spacing:.02em;font-weight:700}.pkt span{opacity:.85;text-overflow:ellipsis;max-width:220px;font-size:10px;font-weight:500;overflow:hidden}.narr .transfer{font:12px var(--mono);color:var(--acc);flex-wrap:wrap;align-items:baseline;gap:6px;margin-bottom:4px;display:flex}.narr .transfer b{font-weight:700}.narr .transfer span{color:var(--dim);font-size:11px}.tk.layout{color:var(--acc);border-style:dotted;font-size:10px}.bc.pyb .ins{gap:8px}.bc.pyb .ln{min-width:18px;color:var(--dim);text-align:right}.bc.pyb .off{text-align:right;min-width:34px}.bc.pyb .op{min-width:150px}.bc.pyb .arg{min-width:18px;color:var(--dim);text-align:right}.bc.pyb .args{color:var(--mute);text-overflow:ellipsis;overflow:hidden}.box.frame{margin-bottom:8px}.box.frame.cur{border-color:#ffb54773}.vstack{font:11px var(--mono);flex-wrap:wrap;align-items:center;gap:4px;margin-top:8px;display:flex}.vstack .slot{border:1px solid var(--line2);text-overflow:ellipsis;white-space:nowrap;border-radius:3px;max-width:160px;padding:1px 6px;overflow:hidden}.vstack .slot:last-child{border-color:var(--acc);color:var(--acc)}table.pyheap tr.hdr td{color:var(--mute);text-transform:uppercase;letter-spacing:.08em;font-size:10px}table.pyheap tr.fresh td{background:#ffb54714}table.pyheap tr.freed td{color:var(--mute);text-decoration:line-through}.hud-toggle{z-index:5;background:var(--panel);border:1px solid var(--line2);color:var(--text);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);border-radius:6px;align-items:center;gap:8px;padding:8px 12px;font-size:12px;display:flex;position:absolute;bottom:16px;right:16px}.hud-toggle:hover{border-color:var(--acc)}.hud-toggle.off{border-color:var(--acc);color:var(--acc)}.hud-toggle kbd{font:10px var(--mono);color:var(--mute);border:1px solid var(--line2);border-radius:3px;padding:0 4px}header .brand{pointer-events:auto;flex-wrap:wrap;align-items:baseline;display:flex}.brand .author{color:var(--acc);border-bottom:1px dashed;margin-left:12px;font-size:12px;text-decoration:none}.brand .author:hover{border-bottom-style:solid}
