:root{color-scheme:light;--ink:#21343e;--muted:#63737a;--line:#d9e0dc;--paper:#fff;--teal:#13796e;--pale:#e2f1e9;--gold:#e9c86a;font-family:Segoe UI,Arial,sans-serif;font-size:14px}*{box-sizing:border-box}body{margin:0;background:#f1f3ee;color:var(--ink)}header{background:#192e37;color:white;padding:24px 32px;display:flex;align-items:center;justify-content:space-between;gap:20px}.brand{display:flex;gap:16px;align-items:center}.chip{border:1px solid #a2c7bb;color:#b7e3cd;width:48px;height:48px;display:flex;align-items:center;justify-content:center;font-size:27px;font-weight:600;position:relative;border-radius:7px}.chip span{font-size:9px;position:absolute;bottom:3px;right:5px}h1{font-size:27px;letter-spacing:-.6px;font-weight:600;margin:0}header p{color:#b3c7cb;margin:4px 0 0;font-size:13px}.build{font-size:10px;letter-spacing:1.5px;color:#c4d8cd}.build span{display:block;text-align:right;color:#89a0a4;margin-top:6px}main{max-width:1600px;margin:auto;padding:20px 28px 0}.toolbar,.execution{display:flex;justify-content:space-between;gap:12px;align-items:center;margin-bottom:12px}.tools{display:flex;gap:7px;align-items:center;flex-wrap:wrap}button,select,input{font:inherit;color:inherit}button,select{border:1px solid #cdd7d1;background:#fff;border-radius:5px;padding:7px 11px;min-height:33px}button{cursor:pointer;font-weight:500}button:hover:enabled{background:#e6eee9;border-color:#92b5a6}button:focus-visible,select:focus-visible,input:focus-visible,summary:focus-visible{outline:3px solid #52a5b3;outline-offset:2px}button:disabled{opacity:.4;cursor:default}.primary{background:var(--teal);border-color:var(--teal);color:white}.primary:hover:enabled{background:#095e55;color:#fff}.separator{height:25px;width:1px;background:var(--line);margin:0 4px}.speed{display:flex;align-items:center;gap:8px;font-size:12px;white-space:nowrap}.speed input[type=range]{width:100px;accent-color:var(--teal)}input[type=checkbox]{accent-color:var(--teal)}.processor{display:flex;gap:18px;align-items:center;border:1px solid var(--line);border-radius:7px;background:#e8ede7;padding:12px 16px;margin-bottom:18px}#registers{display:flex;gap:7px;flex:1;flex-wrap:wrap}.register{background:#fff;border:1px solid var(--line);border-radius:4px;padding:6px 10px;min-width:63px;display:flex;flex-direction:column;gap:4px}.register span{font-size:10px;color:var(--muted);font-weight:600}.register strong{font-family:Consolas,monospace;font-size:14px;font-weight:500}#flags{display:flex;gap:4px;align-items:center}.flag{font-family:Consolas,monospace;padding:5px 7px;border:1px solid #cbd6ce;border-radius:4px;color:#8c9b95;background:#f5f6f2}.flag.on{background:var(--teal);color:white;border-color:var(--teal)}.irq{margin-left:6px;font:12px Consolas,monospace;white-space:nowrap}.workspace{display:grid;grid-template-columns:minmax(0,1fr) 290px;gap:18px}.program,.side-panel,.console{border:1px solid var(--line);background:var(--paper);border-radius:7px;overflow:hidden}.panel-heading{padding:15px 18px;display:flex;justify-content:space-between;gap:12px;align-items:center;border-bottom:1px solid var(--line)}.eyebrow{font-size:10px;letter-spacing:1.5px;color:var(--teal);font-weight:700}h2{font-size:16px;font-weight:600;margin:6px 0 0}.memory-options{display:flex;gap:6px;align-items:center;font-size:11px;color:var(--muted);flex-wrap:wrap}.memory-options input[type=number]{width:70px;padding:5px;border:1px solid var(--line);border-radius:4px}.memory-options button{font-size:11px;padding:5px 8px;min-height:27px}.grid-scroll{height:482px;overflow:auto}table{border-collapse:collapse;width:100%;font:13px Consolas,monospace;table-layout:fixed}thead{position:sticky;top:0;background:#eef2ec;z-index:1}thead th{padding:10px 6px;color:#63776e;font:11px Segoe UI,sans-serif;font-weight:600;text-align:left;border-bottom:1px solid var(--line)}thead th:nth-child(1){width:45px;text-align:center}thead th:nth-child(2){width:65px}thead th:nth-child(3){width:17%}thead th:nth-child(4),thead th:nth-child(5){width:18%}td,tbody th{border-bottom:1px solid #edf0eb;height:32px;padding:0 4px}tbody th{font-weight:400;color:#6a7f74;text-align:left;font-size:12px}tbody td:first-child{text-align:center}td input{background:transparent;border:1px solid transparent;width:100%;font:inherit;padding:6px 3px;min-width:0}td input:read-only{cursor:default}td input:focus{background:#fff;border:1px solid var(--teal);outline:none}.comment input{font:12px Segoe UI,sans-serif;color:var(--muted)}.breakpoint{padding:0;width:24px;height:25px;min-height:0;border:0;background:transparent;color:#aab9b0}.breakpoint[aria-pressed=true]{color:#b94f42}.current{background:#e0f4e8}.current th{color:#0d725c;font-weight:700}.current th:before{content:'▸';margin-left:-7px}.stack{background:#fff0bc}.reserved{background:#f4f5f1;color:#8b9690}.invalid{background:#fff0ed!important;border-color:#bd493d!important}.grid-footer{display:flex;justify-content:space-between;gap:10px;padding:10px 15px;font-size:11px;color:var(--muted);background:#fafbf8;border-top:1px solid var(--line)}.dot{width:7px;height:7px;border-radius:50%;display:inline-block;margin-right:4px}.dot.pc{background:#20996f}.dot.sp{background:#d4aa2e;margin-left:12px}aside{display:flex;flex-direction:column;gap:12px}.side-panel{padding:16px}.side-panel h2{font-size:14px}.side-panel p{font-size:12px;line-height:1.65;color:var(--muted);margin:10px 0 0}#mapped{font:24px Consolas,monospace;letter-spacing:3px;background:#1d3839;color:#c0f1c9;padding:14px 10px;border-radius:4px;margin:15px 0 5px;white-space:pre;overflow:auto}#keyboard{display:flex;flex-wrap:wrap;gap:4px;margin-top:12px}#keyboard button{padding:3px 7px;min-height:26px;font:11px Consolas,monospace}ol{padding-left:18px;margin:12px 0 4px;font-size:12px;color:var(--muted);line-height:1.8}summary{font-size:12px;cursor:pointer;margin-top:12px}.console{margin-top:18px;background:#20333b;color:#e2ebe5}.console-heading{display:flex;justify-content:space-between;gap:12px;padding:12px 16px;border-bottom:1px solid #3d4c50;font-size:11px;color:#a1b6b6}.console .eyebrow{color:#9ad1b7}#output{font:14px/1.6 Consolas,monospace;min-height:55px;max-height:200px;overflow:auto;white-space:pre-wrap;margin:0;padding:13px 16px}#input-panel{padding:10px 16px;border-top:1px solid #3d4c50}#input-panel[hidden]{display:none}#input-panel input{border:1px solid #6d8a8c;border-radius:4px;background:#fff;padding:7px;color:var(--ink);margin:0 7px}.message{padding:9px 12px;font-size:12px;background:#e4eee4;color:#355b4b;border-left:3px solid #7da68b;margin:12px 0}.message.error{background:#fbeae5;color:#92392e;border-left-color:#bc594a}footer{display:flex;justify-content:space-between;gap:15px;padding:14px 28px 22px;color:#6b7c74;font-size:10px;max-width:1600px;margin:auto}@media(max-width:1100px){.processor{align-items:flex-start;flex-direction:column;gap:8px}.execution{align-items:flex-start;flex-direction:column}.workspace{grid-template-columns:minmax(0,1fr) 250px}.memory-options{max-width:230px}#mapped{font-size:20px;letter-spacing:2px}}@media(max-width:760px){header{padding:18px}.build{display:none}main{padding:14px}.workspace{grid-template-columns:1fr}aside{display:grid;grid-template-columns:1fr 1fr}.guide{grid-column:1/-1}.toolbar{flex-direction:column;align-items:flex-start}.panel-heading{flex-direction:column;align-items:flex-start}.memory-options{max-width:none}.register{min-width:54px;padding:5px 7px}footer{flex-direction:column;padding:10px 14px}.grid-scroll{height:430px}table{min-width:580px}}@media print{body{background:white}header{background:white;color:black}header p,.build,.chip,.toolbar,.execution,.memory-options,aside,.console,footer{display:none}.workspace{display:block}.grid-scroll{height:auto;overflow:visible}table{min-width:0;font-size:10px}td input{font-size:10px}.processor{break-inside:avoid}.program{border:0}.grid-footer{display:none}}
/* Chapter tutorials remain alongside the machine and require no network requests. */
.tutorial-panel{background:#fff;border:1px solid var(--line);border-radius:7px;margin:0 0 18px;overflow:hidden}.tutorial-panel[hidden],.tutorial-lessons article[hidden]{display:none}.tutorial-heading{display:flex;justify-content:space-between;align-items:center;gap:16px;padding:18px 22px;background:#e5eee7;border-bottom:1px solid var(--line)}.tutorial-heading h2{font-size:19px}.tutorial-heading label{font-size:12px;display:flex;gap:8px;align-items:center}.tutorial-heading select{max-width:330px}.tutorial-intro{margin:0;padding:13px 22px;background:#f6f8f2;font-size:12px;line-height:1.6;color:var(--muted)}.tutorial-lessons{max-height:470px;overflow:auto;overscroll-behavior:contain;padding:0 24px 20px}.tutorial-lessons article{max-width:1000px;margin:auto;font-size:14px;line-height:1.75}.tutorial-lessons h3{font-size:24px;letter-spacing:-.4px;margin:20px 0 10px}.tutorial-lessons h4{font-size:16px;margin:24px 0 8px;color:#215d50}.tutorial-lessons p{margin:10px 0}.tutorial-lessons ul,.tutorial-lessons ol{font-size:14px;color:var(--ink);line-height:1.8;padding-left:24px}.tutorial-lessons li{margin:5px 0}.tutorial-lessons code{font:13px Consolas,monospace;background:#eef3ed;color:#245e50;padding:2px 4px;border-radius:3px;white-space:normal}.tutorial-lessons .objective{border-left:3px solid #79ad94;padding:10px 14px;background:#f4f8f1}.tutorial-lessons .checkpoint{background:#fff6de;padding:12px 15px;border-radius:5px;margin-top:20px}.tutorial-lessons details{border:1px solid var(--line);padding:10px 14px;border-radius:5px;margin-top:14px}.tutorial-lessons summary{margin:0;font-size:14px;color:#215d50}.lesson-load{margin:3px 3px 3px 0;color:#126c60;border-color:#a7c7b6;background:#f1f8f2}.tutorial-table{overflow:auto;margin:12px 0}.tutorial-table table{table-layout:auto;font:13px/1.65 Segoe UI,sans-serif;min-width:400px}.tutorial-table thead{position:static}.tutorial-table thead th{font-size:12px;width:auto!important;text-align:left!important}.tutorial-table td,.tutorial-table th{padding:7px 10px;height:auto}.tutorial-table td:first-child{text-align:left}.tutorial-navigation{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:12px 22px;border-top:1px solid var(--line);background:#fafbf7}.tutorial-navigation span{font-size:12px;color:var(--muted)}.tutorial-credit{padding:12px 22px;margin:0;border-top:1px solid var(--line);font-size:10px;line-height:1.7;color:var(--muted)}@media(max-width:760px){.tutorial-heading{align-items:flex-start;flex-direction:column}.tutorial-heading label{align-items:flex-start;flex-direction:column}.tutorial-heading select{max-width:100%}.tutorial-lessons{padding:0 16px 16px;max-height:55vh}.tutorial-navigation{padding:10px;flex-wrap:wrap}.tutorial-navigation button{font-size:12px}.tutorial-navigation span{order:3;flex-basis:100%;text-align:center}}@media print{.tutorial-panel{break-before:page}.tutorial-heading select,.tutorial-heading label,.lesson-load,.tutorial-navigation{display:none}.tutorial-lessons{max-height:none;overflow:visible}.tutorial-table table{min-width:0}.tutorial-lessons article{font-size:12px}}
