*,*:before,*:after{box-sizing:border-box}:root{--ox-bg: #080f11;--ox-raise: #101618;--ox-secondary: #141b1d;--ox-tertiary: #1c2225;--ox-border: #2d3335;--ox-border-hover: #404647;--ox-muted: #7e8385;--ox-dim: #a1a4a5;--ox-text: #b8bbbc;--ox-text-bright: #d7d8d9;--ox-text-raise: #feffff;--ox-white: #feffff;--ox-accent: #48d597;--ox-accent-hover: #20a36c;--ox-accent-dim: #238a5e;--ox-accent-muted: #236a4c;--ox-accent-subtle: #204d3b;--ox-accent-bg: #1c372e;--ox-accent-bg-dim: #162322;--ox-error: #fb6e88;--ox-error-dim: #da6177;--ox-notice: #f5b944;--ox-info: #8ba1ff;font-family:Inter,system-ui,-apple-system,sans-serif;line-height:1.5;font-weight:400;color-scheme:dark;color:var(--ox-text);background-color:var(--ox-bg);font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body{margin:0;min-width:320px;min-height:100vh}#root{height:100vh}@media(max-width:768px){#root{height:auto;min-height:100vh}}.app{display:flex;flex-direction:column;height:100vh;overflow:hidden;background-color:var(--ox-bg);color:var(--ox-text)}.app-header{display:flex;align-items:center;gap:12px;padding:0 16px;height:40px;background-color:var(--ox-raise);border-bottom:1px solid var(--ox-border);flex-shrink:0;flex-wrap:wrap}.header-left{display:flex;align-items:center;gap:12px;flex-shrink:0}.app-title{font-family:JetBrains Mono,Fira Code,monospace;font-size:11px;font-weight:400;margin:0;color:var(--ox-accent);white-space:nowrap;letter-spacing:.04em;text-transform:uppercase}.example-select-wrapper{flex-shrink:0}.example-select{background:var(--ox-secondary);color:var(--ox-dim);border:1px solid var(--ox-border);border-radius:2px;padding:3px 8px;font-size:12px;font-family:inherit;cursor:pointer;letter-spacing:.02em}.example-select:hover{border-color:var(--ox-border-hover);color:var(--ox-text)}.toolbar{display:flex;align-items:center;gap:12px;flex:1;flex-wrap:wrap}.toolbar-buttons{display:flex;gap:6px}.toolbar-btn{background:var(--ox-secondary);color:var(--ox-dim);border:1px solid var(--ox-border);border-radius:3px;padding:4px 12px;font-size:12px;cursor:pointer;font-family:inherit;letter-spacing:.02em;transition:background .1s,color .1s,border-color .1s}.toolbar-btn:hover:not(:disabled){background:var(--ox-tertiary);color:var(--ox-text-bright);border-color:var(--ox-border-hover)}.toolbar-btn:disabled{opacity:.3;cursor:not-allowed}.toolbar-btn-primary{background:var(--ox-accent-bg-dim);color:var(--ox-accent);border-color:var(--ox-accent-subtle)}.toolbar-btn-primary:hover:not(:disabled){background:var(--ox-accent-bg);color:var(--ox-accent);border-color:var(--ox-accent-muted)}.toolbar-btn-run{color:var(--ox-dim)}.toolbar-btn-run:hover:not(:disabled){background:var(--ox-accent-bg-dim);color:var(--ox-accent);border-color:var(--ox-accent-subtle)}.toolbar-btn-stop{color:var(--ox-dim)}.toolbar-btn-stop:hover:not(:disabled){color:var(--ox-error);border-color:var(--ox-error-dim)}.toolbar-speed{display:flex;align-items:center;gap:8px;flex-shrink:0}.speed-label{font-family:JetBrains Mono,Fira Code,monospace;font-size:11px;color:var(--ox-muted);white-space:nowrap;min-width:72px;letter-spacing:.04em;text-transform:uppercase}.speed-slider{width:80px;accent-color:var(--ox-accent)}.toolbar-status{display:flex;align-items:center;gap:8px;margin-left:auto}.status-badge{font-family:JetBrains Mono,Fira Code,monospace;font-size:10px;font-weight:400;padding:1px 8px;border-radius:2px;text-transform:uppercase;letter-spacing:.06em}.status-halted{background:transparent;color:var(--ox-error);border:1px solid var(--ox-error-dim)}.status-running{background:var(--ox-accent-bg-dim);color:var(--ox-accent);border:1px solid var(--ox-accent-subtle)}.toolbar-error{font-size:12px;color:var(--ox-error);max-width:400px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.app-main{display:grid;grid-template-columns:3fr 2fr;grid-template-rows:1fr 1fr;flex:1;overflow:hidden;gap:1px;background:var(--ox-border)}.panel-editor{grid-row:1 / 2;grid-column:1 / 2;overflow:hidden;background:var(--ox-raise)}.panel-right-top{grid-row:1 / 2;grid-column:2 / 3;overflow:auto;background:var(--ox-raise);padding:12px 14px}.panel-terminal{grid-row:2 / 3;grid-column:1 / 2;overflow:hidden;background:var(--ox-raise)}.panel-right-bottom{grid-row:2 / 3;grid-column:2 / 3;overflow:hidden;background:var(--ox-raise)}.editor-container{height:100%;overflow:hidden}.editor-container .cm-editor{height:100%}.panel-title{font-family:JetBrains Mono,Fira Code,monospace;font-size:11px;font-weight:400;margin:0 0 8px;color:var(--ox-muted);text-transform:uppercase;letter-spacing:.04em}.panel-label{font-family:JetBrains Mono,Fira Code,monospace;font-size:11px;color:var(--ox-muted);letter-spacing:.04em;text-transform:uppercase}.register-panel{font-family:JetBrains Mono,Fira Code,monospace;font-size:12px}.register-header{display:grid;grid-template-columns:28px 72px 52px;gap:8px;padding:2px 0;border-bottom:1px solid var(--ox-tertiary);margin-bottom:2px;font-size:10px;color:var(--ox-muted);text-transform:uppercase;letter-spacing:.04em}.register-row{display:grid;grid-template-columns:28px 72px 52px;gap:8px;padding:1px 0;transition:background .15s}.register-changed{background:var(--ox-accent-bg-dim)}.register-changed .register-hex,.register-changed .register-dec{color:var(--ox-accent)}.register-name{color:var(--ox-dim);font-weight:400}.register-hex{color:var(--ox-text-bright)}.register-dec{color:var(--ox-muted)}.register-divider{height:1px;background:var(--ox-tertiary);margin:4px 0}.register-empty{color:var(--ox-muted);font-size:12px}.flags-row{display:flex;align-items:center;gap:6px;padding:2px 0}.flag-indicator{display:inline-flex;align-items:center;justify-content:center;width:22px;height:22px;border-radius:2px;font-size:11px;font-weight:400;background:var(--ox-secondary);color:var(--ox-muted);border:1px solid var(--ox-border);transition:background .15s,color .15s,border-color .15s}.flag-active{background:var(--ox-accent);color:var(--ox-bg);border-color:var(--ox-accent)}.cycles-row{display:flex;align-items:center;gap:8px;padding:2px 0}.cycles-value{color:var(--ox-accent);font-weight:400}.terminal-panel{display:flex;flex-direction:column;height:100%;overflow:hidden}.terminal-header{display:flex;align-items:center;justify-content:space-between;padding:8px 14px 0;flex-shrink:0}.terminal-clear-btn{background:var(--ox-secondary);color:var(--ox-muted);border:1px solid var(--ox-border);border-radius:2px;padding:1px 8px;font-size:11px;cursor:pointer;font-family:inherit;letter-spacing:.02em}.terminal-clear-btn:hover{color:var(--ox-text);border-color:var(--ox-border-hover)}.terminal-body{flex:1;margin:6px 14px 14px;background:var(--ox-bg);border:1px solid var(--ox-border);border-radius:3px;overflow:auto;outline:none;position:relative;cursor:text}.terminal-body:focus{border-color:var(--ox-accent-dim)}.terminal-output{margin:0;padding:8px;font-family:JetBrains Mono,Fira Code,monospace;font-size:12px;line-height:1.4;color:var(--ox-accent);white-space:pre;overflow-x:auto;min-height:100%}.terminal-hint{position:absolute;bottom:8px;right:12px;font-size:10px;color:var(--ox-muted);pointer-events:none}.memory-viewer{display:flex;flex-direction:column;height:100%;overflow:hidden;padding:12px 14px}.memory-header{display:flex;align-items:center;justify-content:space-between;flex-shrink:0;margin-bottom:8px}.memory-jump{display:flex;gap:2px}.memory-jump-input{background:var(--ox-bg);color:var(--ox-text-bright);border:1px solid var(--ox-border);border-radius:2px;padding:2px 6px;font-size:11px;font-family:JetBrains Mono,Fira Code,monospace;width:72px}.memory-jump-input:focus{outline:none;border-color:var(--ox-accent-dim)}.memory-jump-btn{background:var(--ox-secondary);color:var(--ox-muted);border:1px solid var(--ox-border);border-radius:2px;padding:2px 8px;font-size:11px;cursor:pointer;font-family:inherit}.memory-jump-btn:hover{color:var(--ox-text);border-color:var(--ox-border-hover)}.memory-body{flex:1;overflow:auto}.memory-empty{color:var(--ox-muted);font-size:12px;padding:8px 0}.memory-table{border-collapse:collapse;font-family:JetBrains Mono,Fira Code,monospace;font-size:11px;width:100%}.memory-table th{position:sticky;top:0;background:var(--ox-secondary);color:var(--ox-muted);padding:2px 4px;text-align:center;font-weight:400;font-size:10px;text-transform:uppercase;letter-spacing:.04em;border-bottom:1px solid var(--ox-border);z-index:1}.memory-table td{padding:1px 4px;text-align:center}.memory-addr-col{text-align:left!important}.memory-addr{color:var(--ox-dim);text-align:left!important;font-weight:400}.memory-byte{color:var(--ox-text)}.memory-ascii-col{text-align:left!important}.memory-ascii{color:var(--ox-muted);text-align:left!important;letter-spacing:.5px}.memory-row-pc{background:var(--ox-accent-bg-dim)}.memory-row-sp{background:#8ba1ff0d}.memory-row-focus{background:var(--ox-accent-bg-dim)}.memory-cell-pc{color:var(--ox-accent)!important;font-weight:400}.memory-cell-sp{color:var(--ox-info)!important;font-weight:400}.about-link{background:none;border:none;color:var(--ox-muted);font-size:12px;font-family:inherit;cursor:pointer;padding:3px 8px;border-radius:2px;transition:color .15s;letter-spacing:.02em}.about-link:hover{color:var(--ox-text-bright)}.about-page{flex:1;overflow:auto;background:var(--ox-raise);padding:32px}.about-content{max-width:680px;margin:0 auto;line-height:1.6}.about-content h2{font-size:20px;font-weight:400;color:var(--ox-text-raise);margin:0 0 8px;letter-spacing:.02em}.about-content h3{font-size:14px;font-weight:500;color:var(--ox-text-bright);margin:28px 0 10px;padding-top:14px;border-top:1px solid var(--ox-tertiary)}.about-content h4{font-family:JetBrains Mono,Fira Code,monospace;font-size:11px;font-weight:400;color:var(--ox-muted);margin:16px 0 6px;letter-spacing:.04em;text-transform:uppercase}.about-content p{margin:0 0 10px;color:var(--ox-text);font-size:13px}.about-muted{color:var(--ox-muted)!important;font-size:12px!important}.about-muted a{color:var(--ox-accent);text-decoration:none}.about-muted a:hover{text-decoration:underline}.about-content ul,.about-content ol{margin:0 0 10px;padding-left:20px;color:var(--ox-text);font-size:13px}.about-content li{margin-bottom:3px}.about-content strong{color:var(--ox-text-bright);font-weight:500}.about-content code{background:var(--ox-bg);padding:1px 5px;border-radius:2px;font-family:JetBrains Mono,Fira Code,monospace;font-size:12px;color:var(--ox-accent)}.about-diagram{background:var(--ox-bg);border:1px solid var(--ox-border);border-radius:3px;padding:12px;margin:0 0 12px;font-family:JetBrains Mono,Fira Code,monospace;font-size:11px;color:var(--ox-dim);overflow-x:auto;line-height:1.4}.about-code{background:var(--ox-bg);border:1px solid var(--ox-border);border-radius:3px;padding:10px 12px;margin:0 0 12px;font-family:JetBrains Mono,Fira Code,monospace;font-size:12px;color:var(--ox-text);overflow-x:auto;line-height:1.5}.about-table{width:100%;border-collapse:collapse;margin:0 0 12px;font-size:12px;table-layout:fixed}.about-table col.col-instruction{width:30%}.about-table col.col-description{width:50%}.about-table col.col-extra{width:20%}.about-table th{background:var(--ox-secondary);color:var(--ox-muted);padding:5px 12px;text-align:left;font-weight:400;font-family:JetBrains Mono,Fira Code,monospace;font-size:10px;text-transform:uppercase;letter-spacing:.04em;border-bottom:1px solid var(--ox-border)}.about-table td{padding:4px 12px;border-bottom:1px solid var(--ox-tertiary);color:var(--ox-text)}.about-table tr:hover td{background:var(--ox-accent-bg-dim)}.about-table code{background:transparent;padding:0;color:var(--ox-accent)}@media(max-width:768px){.app{height:auto;min-height:100vh;overflow:auto}.app-header{height:auto;padding:6px 10px;gap:6px}.header-left{width:100%;flex-wrap:wrap;gap:6px}.toolbar{width:100%;gap:6px}.toolbar-buttons{flex-wrap:wrap;gap:4px}.toolbar-btn{padding:4px 10px;font-size:11px}.speed-label{min-width:auto}.speed-slider{width:60px}.toolbar-error{max-width:100%;white-space:normal}.app-main{grid-template-columns:1fr;grid-template-rows:280px auto 220px auto;flex:none;overflow:visible}.panel-editor{grid-row:auto;grid-column:auto}.panel-right-top{grid-row:auto;grid-column:auto;overflow:visible;padding:8px 10px}.panel-terminal{grid-row:auto;grid-column:auto}.panel-right-bottom{grid-row:auto;grid-column:auto;overflow:visible}.about-page{padding:16px}}
