:root{color-scheme:light;--font-ui: "Inter", ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;--font-mono: "JetBrains Mono", ui-monospace, "Cascadia Code", "SF Mono", Consolas, monospace;--bg: #f5f6fa;--surface: #ffffff;--surface-2: #f0f2f7;--surface-3: #e7eaf2;--border: #e1e4ec;--border-strong: #cdd2de;--text: #141824;--text-2: #4d5568;--muted: #858ca0;--accent: #5b4cf0;--accent-soft: #ecebff;--accent-text: #ffffff;--good: #0f9f6e;--good-soft: #e3f7ef;--warn: #c2700c;--warn-soft: #fff4e0;--shadow: 0 1px 2px rgb(16 24 40 / 6%), 0 4px 16px rgb(16 24 40 / 6%);--shadow-lg: 0 8px 40px rgb(16 24 40 / 14%);--canvas: #fbfbfd;--grid: #d6dae4;--sym-stroke: #2b3142;--sym-fill: #ffffff;--box-fill: #f4f4ff;--box-stroke: #4a5170;--chip-fill-s: 70%;--chip-fill-l: 94%;--chip-stroke-s: 45%;--chip-stroke-l: 38%;--plumb: #6b7390;--hl: #5b4cf0;--sel: #5b4cf0;--fld-op: #c026d3;--fld-rd: #059669;--fld-rs: #2563eb;--fld-fn: #d97706;--fld-imm: #dc2626;--wire-w0: .16;--wire-w1: .22;--wire-bus: .36;--wire-dash0: none;--wire-dash-x: .5 .3;--wire-glow: drop-shadow(0 0 .25px var(--w1));--bus0-opacity: .55;--flow1: color-mix(in srgb, var(--w1) 22%, #fff);--flow-token-text: light-dark(#ffffff, #0b1020);--flow-token-edge: light-dark(rgb(255 255 255 / 70%), rgb(0 0 0 / 45%));--radius: 12px;--radius-sm: 8px;--topbar-h: 56px}@media(prefers-color-scheme:dark){:root:not([data-theme=light]){color-scheme:dark;--bg: #0a0c12;--surface: #11141c;--surface-2: #171b25;--surface-3: #1f2430;--border: #232835;--border-strong: #313849;--text: #e8eaf1;--text-2: #a7adbd;--muted: #6d7488;--accent: #8b7fff;--accent-soft: #221f45;--accent-text: #0a0c12;--good: #34d399;--good-soft: #0f2a22;--warn: #f5a524;--warn-soft: #2d2210;--shadow: 0 1px 2px rgb(0 0 0 / 30%), 0 4px 16px rgb(0 0 0 / 25%);--shadow-lg: 0 8px 40px rgb(0 0 0 / 50%);--canvas: #0c0f16;--grid: #232a38;--sym-stroke: #c9cfdc;--sym-fill: #141824;--box-fill: #171b2a;--box-stroke: #8d95b3;--chip-fill-s: 35%;--chip-fill-l: 16%;--chip-stroke-s: 55%;--chip-stroke-l: 68%;--plumb: #8891ab;--hl: #a397ff;--sel: #a397ff;--fld-op: #e879f9;--fld-rd: #34d399;--fld-rs: #60a5fa;--fld-fn: #fbbf24;--fld-imm: #f87171}}:root[data-theme=dark]{color-scheme:dark;--bg: #0a0c12;--surface: #11141c;--surface-2: #171b25;--surface-3: #1f2430;--border: #232835;--border-strong: #313849;--text: #e8eaf1;--text-2: #a7adbd;--muted: #6d7488;--accent: #8b7fff;--accent-soft: #221f45;--accent-text: #0a0c12;--good: #34d399;--good-soft: #0f2a22;--warn: #f5a524;--warn-soft: #2d2210;--shadow: 0 1px 2px rgb(0 0 0 / 30%), 0 4px 16px rgb(0 0 0 / 25%);--shadow-lg: 0 8px 40px rgb(0 0 0 / 50%);--canvas: #0c0f16;--grid: #232a38;--sym-stroke: #c9cfdc;--sym-fill: #141824;--box-fill: #171b2a;--box-stroke: #8d95b3;--chip-fill-s: 35%;--chip-fill-l: 16%;--chip-stroke-s: 55%;--chip-stroke-l: 68%;--plumb: #8891ab;--hl: #a397ff;--sel: #a397ff;--fld-op: #e879f9;--fld-rd: #34d399;--fld-rs: #60a5fa;--fld-fn: #fbbf24;--fld-imm: #f87171}:root,[data-palette=default]{--w0: light-dark(#b3bac9, #3a4152);--w1: light-dark(#e8590c, #ff8a3d);--w1-glow: light-dark(rgb(232 89 12 / 22%), rgb(255 138 61 / 30%));--wx: light-dark(#e11d48, #fb5779);--wz: light-dark(#8b5cf6, #a78bfa);--bus: light-dark(#2f6fe4, #4d8dff);--bus1: light-dark(#1e5fd8, #7aa9ff);--bus-label-bg: light-dark(#e8f0ff, #13213f);--bus-label-text: light-dark(#1b4fb8, #a9c6ff);--channel-on: var(--w1)}:root{--probe-0: light-dark(#2563eb, #60a5fa);--probe-1: light-dark(#d97706, #fbbf24);--probe-2: light-dark(#059669, #34d399);--probe-3: light-dark(#c026d3, #e879f9);--probe-4: light-dark(#0891b2, #22d3ee);--probe-5: light-dark(#dc2626, #f87171);--probe-6: light-dark(#7c3aed, #a78bfa);--probe-7: light-dark(#65a30d, #a3e635)}:root[data-palette=cb],[data-palette=cb]{--w0: light-dark(#b3bac9, #3a4152);--w1: light-dark(#0072b2, #56b4e9);--w1-glow: light-dark(rgb(0 114 178 / 20%), rgb(86 180 233 / 28%));--wx: light-dark(#d55e00, #ff7f2a);--wz: light-dark(#cc79a7, #e3a3c8);--bus: light-dark(#009e73, #2fbf95);--bus1: light-dark(#00805d, #5fd6b0);--bus-label-bg: light-dark(#e2f5ee, #0f2a22);--bus-label-text: light-dark(#006b4e, #8fe3c6);--channel-on: var(--w1)}:root[data-palette=lsim],[data-palette=lsim]{--w0: light-dark(#3b3f4a, #535968);--w1: light-dark(#e5322d, #ff4b42);--w1-glow: light-dark(rgb(229 50 45 / 22%), rgb(255 75 66 / 30%));--wx: light-dark(#d4a017, #f2c230);--wz: light-dark(#7c8aa5, #8b97b0);--bus: light-dark(#3b3f4a, #3a3f4c);--bus1: light-dark(#c42a26, #ff5a52);--bus-label-bg: light-dark(#fde8e7, #331716);--bus-label-text: light-dark(#a3201c, #ffaaa5);--channel-on: var(--w1);--wire-w0: .22;--wire-w1: .26;--wire-bus: .42;--wire-glow: none;--bus0-opacity: .85}:root[data-palette=contrast],[data-palette=contrast]{--w0: light-dark(#4a4f5c, #8a91a3);--w1: light-dark(#e04f00, #ffb000);--w1-glow: light-dark(rgb(224 79 0 / 25%), rgb(255 176 0 / 32%));--wx: light-dark(#d0005a, #ff3b7b);--wz: light-dark(#6d28d9, #c4a5ff);--bus: light-dark(#0047d6, #4d9aff);--bus1: light-dark(#0038b0, #8cc0ff);--bus-label-bg: light-dark(#ffffff, #000000);--bus-label-text: light-dark(#002f8f, #bcd9ff);--sym-stroke: light-dark(#000000, #ffffff);--box-stroke: light-dark(#000000, #e6e9f2);--channel-on: var(--w1);--wire-w0: .2;--wire-w1: .34;--wire-bus: .48;--wire-glow: none;--bus0-opacity: .9}:root[data-palette=print],[data-palette=print]{--w0: light-dark(#8c8c8c, #8a8a8a);--w1: light-dark(#000000, #ffffff);--w1-glow: light-dark(rgb(0 0 0 / 12%), rgb(255 255 255 / 16%));--wx: light-dark(#000000, #ffffff);--wz: light-dark(#8c8c8c, #8a8a8a);--bus: light-dark(#555555, #aaaaaa);--bus1: light-dark(#000000, #ffffff);--bus-label-bg: light-dark(#ffffff, #000000);--bus-label-text: light-dark(#000000, #ffffff);--channel-on: var(--w1);--wire-w0: .12;--wire-w1: .32;--wire-bus: .42;--wire-dash0: .45 .3;--wire-dash-x: .1 .25;--wire-glow: none;--bus0-opacity: .8}:root[data-netcolors=on] [style*=--nh]{--w0: light-dark(oklch(.78 .08 var(--nh)), oklch(.5 .09 var(--nh)));--w1: light-dark(oklch(.57 .19 var(--nh)), oklch(.8 .16 var(--nh)));--w1-glow: light-dark(oklch(.57 .19 var(--nh) / 22%), oklch(.8 .16 var(--nh) / 30%));--flow1: light-dark(oklch(.95 .05 var(--nh)), oklch(.97 .04 var(--nh)));--bus: light-dark(oklch(.72 .09 var(--nh)), oklch(.5 .1 var(--nh)));--bus1: light-dark(oklch(.52 .17 var(--nh)), oklch(.76 .15 var(--nh)));--bus-label-bg: light-dark(oklch(.95 .03 var(--nh)), oklch(.25 .05 var(--nh)));--bus-label-text: light-dark(oklch(.42 .14 var(--nh)), oklch(.85 .1 var(--nh)))}*,*:before,*:after{box-sizing:border-box}html,body{height:100%}body{margin:0;background:var(--bg);color:var(--text);font:15px/1.55 var(--font-ui);-webkit-font-smoothing:antialiased;overflow:hidden}button{font:inherit;color:inherit}a{color:var(--accent)}code,kbd,pre{font-family:var(--font-mono);font-size:.9em}code{background:var(--surface-3);padding:.08em .35em;border-radius:5px}kbd{border:1px solid var(--border-strong);border-bottom-width:2px;padding:0 .35em;border-radius:5px;font-size:.8em}.icon{flex:none;display:block}[hidden]{display:none!important}::selection{background:var(--accent-soft)}.topbar{height:var(--topbar-h);display:flex;align-items:center;gap:12px;padding:0 16px;background:color-mix(in srgb,var(--surface) 88%,transparent);backdrop-filter:blur(12px);border-bottom:1px solid var(--border);position:relative;z-index:20}.brand{display:flex;align-items:center;gap:10px;font-weight:700;letter-spacing:-.01em;text-decoration:none;color:var(--text);white-space:nowrap}.brand-mark{width:30px;height:30px;border-radius:9px;display:grid;place-items:center;background:linear-gradient(135deg,var(--accent),#e8590c);color:#fff}.brand small{color:var(--muted);font-weight:500}.nav{display:flex;gap:2px;margin-left:12px}.nav a{display:flex;align-items:center;gap:6px;padding:6px 10px;border-radius:8px;color:var(--text-2);text-decoration:none;font-weight:500;font-size:14px}.nav a:hover{background:var(--surface-2);color:var(--text)}.nav a.active{background:var(--accent-soft);color:var(--accent)}.spacer{flex:1}.tools{display:flex;align-items:center;gap:8px}.pal-wrap{position:relative}.pal-sw{display:inline-grid;grid-template-columns:repeat(2,7px);gap:2px}.pal-sw i{width:7px;height:7px;border-radius:2px;display:block}.pal-sw .s0{background:var(--w0)}.pal-sw .s1{background:var(--w1)}.pal-sw .sx{background:var(--wx)}.pal-sw .sb{background:var(--bus)}.pal-menu{display:none;position:absolute;right:0;top:calc(100% + 6px);z-index:40;min-width:320px;background:var(--surface);border:1px solid var(--border);border-radius:12px;box-shadow:var(--shadow-lg);padding:6px}.pal-menu.open{display:grid;gap:2px}.pal-menu button{display:flex;align-items:center;gap:12px;text-align:left;border:0;background:transparent;color:var(--text);padding:8px 10px;border-radius:8px;cursor:pointer;font:inherit}.pal-menu button:hover{background:var(--surface-2)}.pal-menu button[aria-checked=true]{background:var(--accent-soft)}.img-menu{min-width:240px;left:0;right:auto}.pal-sep{height:1px;background:var(--border);margin:4px 2px}.pal-mods i{background:hsl(var(--chip-h) var(--chip-fill-s) var(--chip-fill-l));border:1px solid hsl(var(--chip-h) var(--chip-stroke-s) var(--chip-stroke-l))}.pal-mods .m0{--chip-h: 145}.pal-mods .m1{--chip-h: 45}.pal-mods .m2{--chip-h: 215}.pal-mods .m3{--chip-h: 330}.pal-menu .pal-mod[aria-checked=false] .pal-mods i{--chip-fill-s: 0%;--chip-stroke-s: 0%}.pal-menu button .pal-sw{grid-template-columns:repeat(4,10px)}.pal-menu button .pal-sw i{width:10px;height:10px}.pal-menu b{display:block;font-size:13px;font-weight:600}.pal-menu small{display:block;font-size:12px;color:var(--muted)}.pal-flow-sw{width:46px;height:10px;display:grid;align-items:center;flex:none}.pal-flow-sw i{display:block;height:4px;border-radius:2px;background:var(--w0)}.pal-flow[aria-checked=true] .pal-flow-sw i{background:repeating-linear-gradient(90deg,var(--flow1) 0 5px,var(--w1) 5px 16px);animation:pal-flow .8s linear infinite}@keyframes pal-flow{0%{background-position:0 0}to{background-position:16px 0}}@media(prefers-reduced-motion:reduce){.pal-flow-sw i{animation:none!important}}.pal-nets-sw{width:46px;height:10px;display:flex;flex-direction:column;justify-content:space-between;flex:none}.pal-nets-sw i{display:block;height:2px;border-radius:1px;background:var(--w0)}.pal-nets[aria-checked=true] .n0{background:light-dark(oklch(.57 .19 60),oklch(.8 .16 60))}.pal-nets[aria-checked=true] .n1{background:light-dark(oklch(.57 .19 160),oklch(.8 .16 160))}.pal-nets[aria-checked=true] .n2{background:light-dark(oklch(.57 .19 260),oklch(.8 .16 260))}.pal-simple-sw{width:46px;height:14px;flex:none}.pal-simple-sw svg{display:block;width:46px;height:14px;overflow:visible}.pal-simple-sw path{fill:none;stroke:var(--w1);stroke-width:2;stroke-linejoin:round;stroke-linecap:round}.pal-simple .st,.pal-simple[aria-checked=true] .sq{display:none}.pal-simple[aria-checked=true] .st{display:inline}.nav a .icon:last-child:not(:first-child){opacity:.6;margin-left:-2px}.chapter-switch{display:inline-flex;align-items:center;gap:6px;max-width:100%;padding:0 4px;margin:0 -4px;border:0;border-radius:6px;background:transparent;color:inherit;font:inherit;text-align:left;cursor:pointer}.chapter-switch .icon{flex:none;color:var(--muted)}.chapter-switch:hover,.chapter-switch[aria-expanded=true]{background:var(--surface-2)}.chapter-switch:hover .icon{color:var(--accent)}.ch-menu{position:fixed;z-index:45;width:min(400px,calc(100vw - 16px));max-height:min(70vh,640px);display:flex;flex-direction:column;padding:6px;background:var(--surface);border:1px solid var(--border);border-radius:12px;box-shadow:var(--shadow-lg)}.ch-menu .qn-list{overflow-y:auto;overscroll-behavior:contain;margin-top:4px;padding-top:4px;border-top:1px solid var(--border)}.qn-search{display:flex;align-items:center;gap:8px;padding:7px 10px;border:0;border-radius:8px;cursor:pointer;background:var(--surface-2);color:var(--text-2);font:inherit;font-size:13px;text-align:left}.qn-search span{flex:1}.qn-search:hover,.qn-search:focus-visible{color:var(--text);outline:2px solid var(--accent-soft)}.qnav kbd,.qn-search kbd{font:500 11px var(--font-mono);padding:1px 6px;border-radius:5px;color:var(--muted);background:var(--surface);border:1px solid var(--border);white-space:nowrap}.qn-row{display:flex;align-items:center;gap:10px;padding:7px 10px;border-radius:8px;color:var(--text);text-decoration:none;outline:none}.qn-row:hover,.qn-row:focus-visible,.qn-row.sel{background:var(--surface-2)}.qn-row[aria-current=page]{background:var(--accent-soft)}.qn-row[aria-current=page].sel,.qn-row[aria-current=page]:focus-visible{box-shadow:inset 0 0 0 1.5px var(--accent)}.qn-num{flex:none;width:22px;font:600 12px var(--font-mono);color:var(--accent)}.qn-row.step .qn-num{color:var(--muted)}.qn-main{flex:1;min-width:0}.qn-main b{display:block;font-size:13.5px;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.qn-main small{display:block;font-size:12px;color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.qn-snip{display:block;font-size:12px;color:var(--text-2);margin-top:2px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.qn-bar{flex:none;width:36px;height:4px;border-radius:2px;background:var(--surface-3);overflow:hidden}.qn-bar i{display:block;height:100%;background:var(--accent)}.qn-done{flex:none;width:36px;display:flex;justify-content:flex-end;color:var(--good)}.qn-row>span:last-child:empty{flex:none;width:36px}.qnav-back{position:fixed;inset:0;z-index:70;display:flex;justify-content:center;align-items:flex-start;padding-top:12vh;background:#0a0c1459}.qnav{width:min(580px,calc(100vw - 32px));max-height:70vh;display:flex;flex-direction:column;background:var(--surface);border:1px solid var(--border);border-radius:14px;box-shadow:var(--shadow-lg);overflow:hidden}.qn-field{display:flex;align-items:center;gap:10px;padding:12px 14px;border-bottom:1px solid var(--border);color:var(--muted)}.qn-input{flex:1;min-width:0;border:0;outline:none;background:transparent;color:var(--text);font:inherit;font-size:16px}.qnav .qn-list{overflow-y:auto;overscroll-behavior:contain;padding:6px}.qn-empty{padding:18px;text-align:center;color:var(--muted);font-size:13px}.seg{display:inline-flex;background:var(--surface-2);border:1px solid var(--border);border-radius:9px;padding:2px}.seg button{border:0;background:transparent;padding:3px 9px;border-radius:7px;cursor:pointer;font:600 12px var(--font-mono);color:var(--muted)}.seg button.on{background:var(--surface);color:var(--text);box-shadow:var(--shadow)}.btn{display:inline-flex;align-items:center;gap:6px;border:1px solid var(--border);background:var(--surface);color:var(--text);padding:6px 12px;border-radius:9px;cursor:pointer;font-weight:500;font-size:14px;transition:background .15s,border-color .15s,transform .05s;text-decoration:none;white-space:nowrap}.btn:hover{background:var(--surface-2);border-color:var(--border-strong)}.btn:active{transform:translateY(1px)}.btn.primary{background:var(--accent);border-color:var(--accent);color:var(--accent-text)}.btn.primary:hover{filter:brightness(1.08)}.btn.ghost{border-color:transparent;background:transparent}.btn.ghost:hover{background:var(--surface-2)}.btn.icon-only{padding:6px}.btn.sm{padding:4px 9px;font-size:13px}.btn:disabled{opacity:.45;cursor:default}.btn.toggle.on{background:var(--accent-soft);border-color:var(--accent);color:var(--accent)}#app{height:100%;display:flex;flex-direction:column}#view{flex:1;min-height:0;overflow:hidden}.scroll{height:100%;overflow-y:auto}.layout{display:grid;height:100%;grid-template-columns:minmax(300px,400px) 1fr minmax(260px,340px)}.layout.no-inspector{grid-template-columns:minmax(300px,400px) 1fr 0}.layout.no-inspector .inspector{display:none}.narrative{border-right:1px solid var(--border);background:var(--surface);display:flex;flex-direction:column;min-height:0}.narrative-head{padding:18px 22px 10px;border-bottom:1px solid var(--border)}.chapter-kicker{font:600 12px var(--font-mono);letter-spacing:.06em;text-transform:uppercase;color:var(--accent)}.chapter-title{font-size:22px;font-weight:750;letter-spacing:-.02em;margin:2px 0 10px;line-height:1.2}.steps-dots{display:flex;gap:5px;flex-wrap:wrap}.steps-dots button{width:22px;height:6px;border-radius:4px;border:0;padding:0;cursor:pointer;background:var(--surface-3)}.steps-dots button.done{background:color-mix(in srgb,var(--accent) 45%,var(--surface-3))}.steps-dots button.cur{background:var(--accent)}.narrative-body{flex:1;overflow-y:auto;padding:18px 22px 24px}.step-title{font-size:18px;font-weight:700;margin:0 0 8px;letter-spacing:-.01em}.prose p{margin:0 0 .85em;color:var(--text-2)}.prose strong{color:var(--text)}.prose ul,.prose ol{padding-left:1.2em;color:var(--text-2);margin:0 0 .9em}.prose li{margin:.2em 0}.prose .note{border-left:3px solid var(--accent);background:var(--accent-soft);padding:10px 12px;border-radius:0 8px 8px 0;margin:.9em 0;color:var(--text)}.prose .try{position:relative;border:1px dashed var(--border-strong);padding:10px 12px 10px 38px;border-radius:10px;margin:.9em 0;color:var(--text);font-size:14px}.prose .try:before{content:"👆";position:absolute;left:12px;top:9px}.prose table{border-collapse:collapse;margin:.5em 0 1em;font:13px var(--font-mono)}.prose th,.prose td{border:1px solid var(--border);padding:3px 10px;text-align:center}.prose th{background:var(--surface-2);font-weight:600}.narrative-foot{display:flex;justify-content:space-between;align-items:center;gap:8px;padding:12px 22px;border-top:1px solid var(--border)}.narrative-foot .count{font:12px var(--font-mono);color:var(--muted)}.challenge{margin-top:18px;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface-2);padding:14px}.challenge-head{display:flex;align-items:center;gap:8px;font-weight:700;font-size:14px;margin-bottom:6px}.challenge-head .tag{font:600 11px var(--font-mono);text-transform:uppercase;letter-spacing:.05em;color:var(--warn);background:var(--warn-soft);padding:1px 7px;border-radius:99px}.challenge.solved{border-color:var(--good);background:var(--good-soft)}.challenge.solved .tag{color:var(--good);background:transparent}.challenge .options{display:grid;gap:6px;margin-top:8px}.challenge .options button{text-align:left;justify-content:flex-start;white-space:normal}.challenge .options button.right{border-color:var(--good);background:var(--good-soft)}.challenge .options button.wrong{border-color:var(--wx);opacity:.75}.challenge .explain{margin-top:8px;font-size:14px;color:var(--text-2)}.challenge-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:6px}.challenge .hint{font-size:13px;color:var(--muted);margin-top:6px}.stage{display:flex;flex-direction:column;min-width:0;min-height:0;background:var(--canvas);position:relative}.stage-bar{display:flex;align-items:center;gap:8px;padding:8px 10px;border-bottom:1px solid var(--border);background:var(--surface);min-height:48px}.crumbs{display:flex;align-items:center;gap:2px;flex-wrap:wrap;min-width:0;flex:1;font-size:13px}.crumbs button{border:0;background:transparent;cursor:pointer;padding:3px 7px;border-radius:6px;color:var(--text-2);font-weight:500;white-space:nowrap}.crumbs button:hover{background:var(--surface-2);color:var(--text)}.crumbs button.cur{color:var(--text);font-weight:650}.crumbs .sep{color:var(--muted);font-size:12px}.crumbs .kind{color:var(--muted);font-weight:400;margin-left:3px}.canvas{flex:1;position:relative;min-height:0;overflow:hidden}.canvas>svg.schematic{position:absolute;inset:0;width:100%;height:100%;touch-action:none;cursor:grab}.canvas>svg.schematic:active{cursor:grabbing}.canvas .widget-host{position:absolute;inset:0;overflow:auto;background:var(--bg);z-index:4}.level-badge{position:absolute;left:12px;top:10px;z-index:2;pointer-events:none;font:600 11px var(--font-mono);letter-spacing:.05em;text-transform:uppercase;color:var(--muted);background:color-mix(in srgb,var(--surface) 85%,transparent);border:1px solid var(--border);padding:3px 8px;border-radius:99px}.hint-badge{position:absolute;left:12px;bottom:10px;z-index:2;pointer-events:none;font-size:12px;color:var(--muted)}.controls{display:flex;align-items:center;gap:10px;flex-wrap:wrap;padding:8px 12px;border-top:1px solid var(--border);background:var(--surface);min-height:52px}.controls .label{font:600 11px var(--font-mono);color:var(--muted);text-transform:uppercase;letter-spacing:.05em}.controls .dir{font-size:10px;line-height:1}.in-toggle,.in-num{display:inline-flex;align-items:center;gap:7px;user-select:none;font:600 13px var(--font-mono);color:var(--text);border:1.5px solid color-mix(in srgb,var(--accent) 45%,var(--border));background:var(--surface);border-radius:99px;box-shadow:0 1px 2px #0000001f;transition:border-color .15s}.in-toggle .dir,.in-num .dir{color:var(--accent)}.in-toggle{cursor:pointer;padding:3px 10px 3px 8px}.in-toggle:hover,.in-num:hover,.in-num:focus-within{border-color:var(--accent)}.in-toggle:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.in-toggle .track{position:relative;width:30px;height:16px;border-radius:99px;background:var(--w0);flex:none;transition:background .15s,box-shadow .15s}.in-toggle .knob{position:absolute;left:2px;top:2px;width:12px;height:12px;border-radius:50%;background:#fff;box-shadow:0 1px 2px #00000040;transition:left .15s}.in-toggle.v1 .track{background:var(--w1);box-shadow:0 0 0 3px var(--w1-glow)}.in-toggle.v1 .knob{left:16px}.in-toggle.vx .track{background:var(--wx)}.in-num{gap:6px;padding:2px 4px 2px 8px}.in-num input{width:74px;border:1px solid var(--border);background:var(--surface);color:var(--text);border-radius:99px;padding:2px 8px;font:600 13px var(--font-mono);text-align:right}.in-num button{border:0;background:transparent;cursor:pointer;padding:0 4px;color:var(--text-2);font:600 14px var(--font-mono)}.ctl-group{display:inline-flex;align-items:center;gap:10px;flex-wrap:wrap}.out-strip{padding:4px 12px;border-radius:10px;background:color-mix(in srgb,var(--bus) 7%,var(--surface-2));box-shadow:inset 0 1px 3px #00000024}.out-lamp,.out-num{display:inline-flex;align-items:center;gap:7px;user-select:none;padding:2px 4px;font:600 13px var(--font-mono);color:var(--text-2)}.out-lamp .dir,.out-num .dir{color:var(--bus);margin-left:-2px}.out-lamp .knob{width:16px;height:16px;border-radius:50%;background:var(--w0);border:2px solid var(--border-strong);transition:background .15s,box-shadow .15s}.out-lamp.v1 .knob{background:var(--w1);border-color:var(--w1);box-shadow:0 0 0 4px var(--w1-glow)}.out-lamp.vx .knob{background:var(--wx);border-color:var(--wx)}.out-lamp.vz .knob{background:transparent;border:2px dashed var(--wz)}.out-num .v{min-width:74px;border:0;background:color-mix(in srgb,var(--bus) 12%,var(--surface));color:var(--bus-label-text);border-radius:99px;padding:2px 10px;font:700 13px var(--font-mono);text-align:right;cursor:pointer}.out-num.vx .v{color:var(--wx);background:color-mix(in srgb,var(--wx) 12%,var(--surface))}.status{margin-left:auto;font:12px var(--font-mono);color:var(--muted);display:flex;align-items:center;gap:8px}.status .pulse{width:8px;height:8px;border-radius:50%;background:var(--good)}.status .pulse.busy{background:var(--w1);animation:blink .6s infinite}.status .pulse.warn{background:var(--wx)}@keyframes blink{50%{opacity:.3}}.stage-bar .btn.toggle.on{background:var(--accent-soft);color:var(--accent);border-color:transparent}.canvas.probing>svg.schematic,.canvas.probing .wire-hit{cursor:crosshair}.canvas.probing .wire-hit:hover{stroke:color-mix(in srgb,var(--accent) 22%,transparent)}.period{display:inline-flex;align-items:center;gap:6px;font:600 12px var(--font-mono);color:var(--muted)}.period input{width:64px;border:1px solid var(--border);background:var(--surface);color:var(--text);border-radius:99px;padding:3px 8px;font:600 13px var(--font-mono);text-align:right}.p0{--pc: var(--probe-0)}.p1{--pc: var(--probe-1)}.p2{--pc: var(--probe-2)}.p3{--pc: var(--probe-3)}.p4{--pc: var(--probe-4)}.p5{--pc: var(--probe-5)}.p6{--pc: var(--probe-6)}.p7{--pc: var(--probe-7)}.canvas:not(.probing) .probes{display:none}.probe-flag{cursor:pointer}.probe-flag:hover rect,.probe-flag:hover .probe-tip{filter:brightness(1.15)}.probe-flag .probe-tip{fill:var(--pc);stroke:var(--surface);stroke-width:.12}.probe-flag .probe-pole{stroke:var(--pc);stroke-width:.14}.probe-flag rect{fill:var(--pc)}.probe-flag text{font:700 .78px var(--font-mono);fill:#fff}.analyzer{display:none;flex-direction:column;height:220px;min-height:110px;flex:none;position:relative;border-top:1px solid var(--border);background:var(--surface)}.stage.with-analyzer .analyzer{display:flex}.stage.widget-mode .analyzer{display:none}.la-grip{position:absolute;left:0;right:0;top:-4px;height:8px;cursor:ns-resize;z-index:3}.la-head{display:flex;align-items:center;gap:6px;padding:4px 8px 4px 12px;border-bottom:1px solid var(--border);font-size:13px}.la-head .la-hint{color:var(--muted);font-size:11.5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.la-head .spacer{flex:1}.la-readout{font:600 12px var(--font-mono);color:var(--text-2);white-space:nowrap}.la-head .btn.on{background:var(--accent-soft);color:var(--accent);border-color:transparent}.la-body{flex:1;display:flex;min-height:0;overflow-y:auto;overflow-x:hidden}.la-names{flex:none;width:200px;border-right:1px solid var(--border)}.la-name{height:24px;display:flex;align-items:center;gap:6px;padding:0 6px 0 10px;font:600 12px var(--font-mono)}.la-name.ruler{height:18px;color:var(--muted);font-weight:500;font-size:11px}.la-name .chip{width:8px;height:8px;border-radius:2px;background:var(--text-2);flex:none}.la-name .chip.clk{background:var(--muted);border-radius:50%}.la-name .chip[class*=" p"]{background:var(--pc)}.la-name .n{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.la-name .v{color:var(--text-2)}.la-name .x{border:0;background:transparent;color:var(--muted);cursor:pointer;font-size:14px;padding:0 2px;opacity:0}.la-name:hover .x{opacity:1}.la-plot{flex:1;min-width:0;position:relative;cursor:crosshair;touch-action:none}.la-svg{display:block}.la-tick{stroke:var(--border);stroke-width:1}.la-time{font:10px var(--font-mono);fill:var(--muted)}.la-edge{stroke:var(--muted);stroke-width:1;stroke-dasharray:2 3;opacity:.6}.la-late{fill:var(--wx)}.la-trace{fill:none;stroke:var(--text-2);stroke-width:1.5;stroke-linejoin:round}.la-trace[class*=" p"]{stroke:var(--pc)}.la-trace.bus{fill:color-mix(in srgb,currentColor 0%,transparent);stroke-width:1.2}.la-trace.bus[class*=" p"]{fill:color-mix(in srgb,var(--pc) 10%,transparent)}.la-trace.bus.x,.la-x{fill:color-mix(in srgb,var(--wx) 22%,transparent);stroke:var(--wx)}.la-x{stroke:none}.la-val{font:600 11px var(--font-mono);fill:var(--text);pointer-events:none}.la-now{stroke:var(--accent);stroke-width:1;opacity:.5}.la-cursor{stroke:var(--accent);stroke-width:1.5}.la-cursor.b{stroke-dasharray:4 3}.la-cursor-l{font:700 10px var(--font-mono);fill:var(--accent)}.la-hover{stroke:var(--text-2);stroke-width:1;opacity:.35}.stage.widget-mode .schematic,.stage.widget-mode .controls,.stage.widget-mode .stage-bar,.stage.widget-mode .level-badge,.stage.widget-mode .hint-badge,.stage.widget-mode .mem-panel{display:none}.stage.widget-mode .canvas{background:var(--bg)}.inspector{border-left:1px solid var(--border);background:var(--surface);display:flex;flex-direction:column;min-height:0;min-width:0}.tabs{display:flex;gap:2px;padding:8px 8px 0;border-bottom:1px solid var(--border)}.tabs button{display:flex;align-items:center;gap:5px;white-space:nowrap;border:0;background:transparent;padding:7px 10px;cursor:pointer;font-size:13px;font-weight:550;color:var(--muted);border-bottom:2px solid transparent;margin-bottom:-1px}.tabs button.on{color:var(--text);border-bottom-color:var(--accent)}.tab-body{flex:1;overflow:auto;padding:16px;min-height:0}.insp-kicker{font:600 11px var(--font-mono);color:var(--muted);text-transform:uppercase;letter-spacing:.06em}.insp-title{font-size:18px;font-weight:700;margin:2px 0 6px;letter-spacing:-.01em}.insp-summary{color:var(--text-2);font-size:14px;margin:0 0 12px}.insp-notes{color:var(--text-2);font-size:13.5px;border-top:1px solid var(--border);padding-top:10px;margin-top:12px}.stats{display:grid;grid-template-columns:repeat(2,1fr);gap:8px;margin:10px 0 14px}.stat{background:var(--surface-2);border:1px solid var(--border);border-radius:10px;padding:8px 10px}.stat b{display:block;font:700 18px var(--font-mono);letter-spacing:-.02em}.stat span{font-size:11.5px;color:var(--muted)}.ports{width:100%;border-collapse:collapse;font-size:13px}.ports td{padding:4px 6px;border-top:1px solid var(--border)}.ports td:first-child{font-family:var(--font-mono);font-weight:600}.ports td.val{font-family:var(--font-mono);text-align:right}.ports td.dir{color:var(--muted);font-size:12px}.insp-used{border-top:1px solid var(--border);padding-top:10px;margin-top:12px;font-size:13px}.insp-used summary{cursor:pointer;font-weight:600;color:var(--text)}.insp-used-h{color:var(--muted);font-size:12px;margin:10px 0 4px}.ports.used td:first-child{font-family:inherit;font-weight:500}.ports.used a{color:var(--accent);text-decoration:none}.ports.used a:hover{text-decoration:underline}.ports.used small{color:var(--muted);font-size:11.5px}.insp-used .btn{margin-top:6px}.insp-actions{display:flex;gap:8px;flex-wrap:wrap;margin:4px 0 12px}.truth{border-collapse:collapse;font:12.5px var(--font-mono);width:100%}.truth th,.truth td{padding:3px 6px;text-align:center;border-bottom:1px solid var(--border)}.truth th{position:sticky;top:-16px;background:var(--surface);color:var(--text-2);font-weight:600}.truth th.out,.truth td.out{background:color-mix(in srgb,var(--accent-soft) 60%,transparent)}.truth tr.cur td{background:color-mix(in srgb,var(--w1) 18%,transparent);font-weight:700}.truth td.one{color:var(--w1)}pre.code{margin:0 0 14px;padding:12px;background:var(--surface-2);border:1px solid var(--border);border-radius:10px;overflow:auto;font-size:12px;line-height:1.55;white-space:pre}pre.code .kw{color:var(--accent);font-weight:600}pre.code .cm{color:var(--muted);font-style:italic}.dl-hdl{margin-bottom:14px}.dl-btns{display:flex;flex-wrap:wrap;align-items:center;gap:6px}.dl-tb{display:inline-flex;align-items:center;gap:5px;font-size:12.5px;color:var(--text-2);margin-left:4px}.dl-note{font:12px var(--font-mono);color:var(--muted);margin-top:6px;min-height:1em}pre.code .num{color:var(--w1)}.code-head{display:flex;align-items:center;justify-content:space-between;margin:0 0 6px;font-size:12px;font-weight:600;color:var(--text-2)}.waves svg{width:100%;display:block}.waves .lane-name{font:600 11px var(--font-mono);fill:var(--text-2)}.waves .trace{fill:none;stroke:var(--w1);stroke-width:1.5}.waves .trace.bus{stroke:var(--bus)}.waves .bus-val{font:10px var(--font-mono);fill:var(--text-2)}.waves .grid-line{stroke:var(--border)}.empty{color:var(--muted);font-size:13px;text-align:center;padding:24px 8px}svg.schematic{font-family:var(--font-ui);user-select:none}.grid-bg{pointer-events:all}.grid-dot{fill:var(--grid)}.wire{fill:none;stroke:var(--w0);stroke-width:var(--wire-w0);stroke-dasharray:var(--wire-dash0);stroke-linecap:round;stroke-linejoin:round;transition:stroke .12s}.flow-front{pointer-events:none}.flow-front.v1{filter:drop-shadow(0 0 .5px var(--w1))}.wire.v1{stroke:var(--w1);stroke-width:var(--wire-w1);stroke-dasharray:none;filter:var(--wire-glow)}.wire.vx{stroke:var(--wx);stroke-dasharray:var(--wire-dash-x)}.wire.vz{stroke:var(--wz);stroke-dasharray:.25 .35}.wire.bus{stroke-width:var(--wire-bus);stroke:var(--bus);opacity:var(--bus0-opacity);stroke-dasharray:none}.wire.bus.bus1{stroke:var(--bus1);opacity:1}.wire.bus.vx{stroke:var(--wx);opacity:1}.wire-flow{fill:none;pointer-events:none;stroke:var(--flow1);stroke-width:calc(var(--wire-w1) * .5);stroke-linecap:butt}.flow-tokens{pointer-events:none}.flow-token rect{fill:var(--bus1);stroke:var(--flow-token-edge);stroke-width:.07}.flow-token text{font:600 .78px var(--font-mono);fill:var(--flow-token-text)}.wire-flow.faded,.flow-tokens.faded,:root[data-wireflow=off] :is(.wire-flow,.flow-tokens){display:none}@keyframes wire-flow{0%{stroke-dashoffset:var(--flow-from)}to{stroke-dashoffset:var(--flow-to)}}@media(prefers-reduced-motion:reduce){.wire-flow,.flow-tokens{display:none}}@media(prefers-reduced-motion:no-preference){:root:not([data-wireflow=off]) .bus-label.riding{display:none}}.dot{fill:var(--w0)}.dot.v1{fill:var(--w1)}.dot.vx{fill:var(--wx)}.dot.bus{fill:var(--bus)}.sym-body{fill:var(--sym-fill);stroke:var(--sym-stroke);stroke-width:.15;stroke-linejoin:round}.sym-box{fill:var(--box-fill);stroke:var(--box-stroke)}.sym.chip .sym-box,:root:not([data-modules=plain]) .sym.cat .sym-body{fill:hsl(var(--chip-h) var(--chip-fill-s) var(--chip-fill-l));stroke:hsl(var(--chip-h) var(--chip-stroke-s) var(--chip-stroke-l))}.sym-line{fill:none;stroke:var(--sym-stroke);stroke-width:.15;stroke-linecap:round}.sym-line.thick{stroke-width:.2}.sym-arrow{fill:none;stroke:var(--sym-stroke);stroke-width:.13;stroke-linejoin:round}.sym-channel{stroke:var(--sym-stroke);stroke-width:.22;stroke-dasharray:.55 .3;transition:stroke .15s}.conducting .sym-channel{stroke:var(--channel-on);stroke-dasharray:none;stroke-width:.3;filter:drop-shadow(0 0 .3px var(--channel-on))}.maybe .sym-channel{stroke:var(--wx)}.sym-bus{stroke:var(--plumb);stroke-width:.42;stroke-linecap:round}.sym-bus-stub,.sym-tap{stroke:var(--plumb);stroke-width:.18}.sym-tiny{font-size:.75px;fill:var(--muted);font-family:var(--font-mono)}.sym-rail{font:700 .85px var(--font-mono);fill:var(--text-2)}.sym-port{font:500 .8px var(--font-mono);fill:var(--text-2)}.sym-label{font:700 1.05px var(--font-ui);fill:var(--text);letter-spacing:-.02px}.inst-name{font:500 .78px var(--font-mono);fill:var(--muted)}.inst .hit{fill:transparent;stroke:none}.inst.openable{cursor:zoom-in}.inst.openable:hover .hit{fill:color-mix(in srgb,var(--accent) 8%,transparent);stroke:color-mix(in srgb,var(--accent) 40%,transparent);stroke-width:.08}.inst.selected .hit{fill:color-mix(in srgb,var(--sel) 12%,transparent);stroke:var(--sel);stroke-width:.12}.inst.hl .hit{vector-effect:non-scaling-stroke;stroke:var(--hl);stroke-width:1.25px;fill:color-mix(in srgb,var(--hl) 12%,transparent);animation:hl 1.4s ease-in-out infinite}svg.schematic.focus .inst:not(.hl):not(.plumbing){opacity:.28}svg.schematic.focus .faded{opacity:.18}svg.schematic.focus .inst.hl .hit{animation:none;fill:color-mix(in srgb,var(--hl) 14%,transparent)}@keyframes hl{50%{stroke-opacity:.45}}.open-badge{opacity:0;transition:opacity .15s;cursor:pointer}.open-badge circle{fill:var(--accent)}.open-badge .icon{color:#fff;stroke-width:2.6}.inst.openable:hover .open-badge,.inst.selected .open-badge{opacity:1}.inst.plumbing .hit{display:none}.pin-knob{fill:var(--surface-3);stroke:var(--border-strong);stroke-width:.12;transition:fill .12s}.pin.v1 .pin-knob{fill:var(--w1);stroke:var(--w1);filter:drop-shadow(0 0 .5px var(--w1))}.pin.vx .pin-knob{fill:var(--wx);stroke:var(--wx)}.pin.vz .pin-knob{fill:transparent;stroke:var(--wz);stroke-dasharray:.3 .2}.pin.clickable{cursor:pointer}.pin.clickable:hover .pin-knob,.pin.clickable:hover .pin-box{stroke:var(--accent);stroke-width:.2}.pin-out .pin-knob{stroke-width:.18}.pin-box{fill:var(--surface);stroke:var(--bus);stroke-width:.12}.pin.vx .pin-box{stroke:var(--wx)}.pin-value{font:700 .95px var(--font-mono);fill:var(--text)}.pin-name{font:600 .95px var(--font-mono);fill:var(--text-2)}.pin.hl .pin-knob,.pin.hl .pin-box{stroke:var(--hl);stroke-width:.25;animation:hl 1.4s infinite}.bus-label{cursor:pointer}.bus-label rect{fill:var(--bus-label-bg);stroke:color-mix(in srgb,var(--bus) 50%,transparent);stroke-width:.06}.bus-label text{font:600 .82px var(--font-mono);fill:var(--bus-label-text)}.bus-label.vx text{fill:var(--wx)}.net-tag rect{fill:var(--surface);stroke:var(--w0);stroke-width:.1}.net-tag text{font:600 .8px var(--font-mono);fill:var(--text-2)}.net-tag.v1 rect{stroke:var(--w1);fill:color-mix(in srgb,var(--w1) 14%,var(--surface))}.net-tag.v1 text{fill:var(--w1)}.net-tag.vx rect{stroke:var(--wx)}.net-tag.bus rect{stroke:var(--bus)}.net-tag.bus.bus1 rect{fill:color-mix(in srgb,var(--bus) 10%,var(--surface))}.wire.net-hover{stroke-width:.5!important;opacity:1!important}.net-tag.net-hover rect{stroke-width:.25;stroke:var(--hl)}.wire-hit{fill:none;stroke:transparent;stroke-width:.9;pointer-events:stroke;cursor:pointer}.wire.net-sel{stroke-width:calc(var(--wire-w1) + .22)!important;opacity:1!important;filter:drop-shadow(0 0 .35px var(--sel))}.net-tag.net-sel rect{stroke:var(--sel);stroke-width:.26}.net-tag.net-sel text{fill:var(--text)}.net-tag.net-ping rect{animation:ping .3s ease-in-out 3}@keyframes ping{50%{stroke-width:.6}}.net-tag{cursor:pointer}.tap-label{pointer-events:none}.tap-label rect{fill:var(--surface);stroke:var(--w0);stroke-width:.05}.tap-label text{font-family:var(--font-mono);font-weight:600;fill:var(--muted)}.tap-label.v1 rect{stroke:var(--w1);fill:color-mix(in srgb,var(--w1) 12%,var(--surface))}.tap-label.v1 text{fill:var(--w1)}.tap-label.bus rect{stroke:color-mix(in srgb,var(--bus) 60%,transparent)}.tap-label.bus text{fill:var(--bus-label-text)}.tap-label.vx text{fill:var(--wx)}.fld-op,.f-op{--fc: var(--fld-op)}.fld-rd,.f-rd{--fc: var(--fld-rd)}.fld-rs,.f-rs{--fc: var(--fld-rs)}.fld-fn,.f-fn{--fc: var(--fld-fn)}.fld-imm,.f-imm{--fc: var(--fld-imm)}svg.schematic .wire.fld{stroke:var(--fc);opacity:1;stroke-dasharray:none;stroke-width:calc(var(--wire-bus) + .12);filter:drop-shadow(0 0 .3px var(--fc))}svg.schematic .wire.fld.fld-off{stroke-dasharray:.5 .35;opacity:.6;filter:none}svg.schematic .dot.fld{fill:var(--fc)}.tap-label.fld rect{stroke:var(--fc);stroke-width:.1;fill:color-mix(in srgb,var(--fc) 16%,var(--surface))}.tap-label.fld text{fill:var(--fc)}.net-tag.fld rect{stroke:var(--fc);stroke-width:.18}.wire-tip{position:absolute;pointer-events:none;opacity:0;transition:opacity .1s;z-index:5;background:var(--text);color:var(--surface);font:600 12px var(--font-mono);padding:4px 8px;border-radius:6px;white-space:nowrap;box-shadow:var(--shadow)}.popover{position:fixed;z-index:50;background:var(--surface);border:1px solid var(--border);border-radius:12px;box-shadow:var(--shadow-lg);padding:12px;min-width:220px}.bits{display:flex;gap:3px;flex-wrap:wrap;margin:8px 0}.bits button{width:26px;height:30px;border-radius:6px;border:1px solid var(--border);cursor:pointer;background:var(--surface-2);font:700 13px var(--font-mono);color:var(--muted);padding:0}.bits button.one{background:var(--w1);border-color:var(--w1);color:#fff}.bits .idx{display:block;font-size:8px;font-weight:500;opacity:.7;line-height:1}.bits.rows{flex-direction:column;flex-wrap:nowrap;align-items:flex-end}.bits-row{display:flex;gap:3px}.home{max-width:1120px;margin:0 auto;padding:48px 24px 80px}.hero{display:grid;grid-template-columns:1.1fr .9fr;gap:40px;align-items:center;margin-bottom:56px}.hero h1{font-size:clamp(34px,5vw,54px);line-height:1.04;letter-spacing:-.035em;margin:10px 0 16px;font-weight:800}.hero h1 .grad{background:linear-gradient(90deg,var(--accent),#e8590c);-webkit-background-clip:text;background-clip:text;color:transparent}.hero p.lead{font-size:18px;color:var(--text-2);margin:0 0 24px;max-width:34em}.hero .cta{display:flex;gap:10px;flex-wrap:wrap}.eyebrow{font:600 12px var(--font-mono);letter-spacing:.08em;text-transform:uppercase;color:var(--accent)}.ladder{display:flex;flex-direction:column;gap:6px}.rung{display:flex;align-items:center;gap:12px;padding:9px 14px;border-radius:12px;background:var(--surface);border:1px solid var(--border);font-size:14px}.rung .n{font:700 12px var(--font-mono);color:var(--muted);width:22px}.rung .t{font-weight:600;flex:1}.rung .c{font:12px var(--font-mono);color:var(--muted)}.rung.done{border-color:color-mix(in srgb,var(--accent) 40%,var(--border))}.rung.soon{opacity:.55;border-style:dashed}.section-title{font-size:22px;font-weight:750;letter-spacing:-.02em;margin:0 0 6px}.section-sub{color:var(--text-2);margin:0 0 20px}.cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:14px;margin-bottom:44px}.card{display:flex;flex-direction:column;gap:6px;padding:16px;border-radius:var(--radius);background:var(--surface);border:1px solid var(--border);text-decoration:none;color:var(--text);transition:transform .15s,box-shadow .15s,border-color .15s;position:relative}a.card:hover{transform:translateY(-2px);box-shadow:var(--shadow);border-color:var(--border-strong)}.card .num{font:700 12px var(--font-mono);color:var(--accent)}.card h3{margin:0;font-size:16px;letter-spacing:-.01em}.card p{margin:0;font-size:13.5px;color:var(--text-2)}.card .meta{margin-top:auto;padding-top:8px;font:12px var(--font-mono);color:var(--muted);display:flex;justify-content:space-between}.card.soon{opacity:.6;border-style:dashed}.card .done-badge{position:absolute;top:12px;right:12px;color:var(--good)}.features{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:14px;margin-bottom:44px}.feature{padding:16px;border-radius:var(--radius);background:var(--surface-2);border:1px solid var(--border)}.feature h4{margin:8px 0 4px;font-size:15px}.feature p{margin:0;font-size:13.5px;color:var(--text-2)}.feature .icon{color:var(--accent)}.footer{color:var(--muted);font-size:13px;border-top:1px solid var(--border);padding-top:18px}.bench{display:grid;height:100%;grid-template-columns:270px 1fr minmax(260px,340px)}.library{border-right:1px solid var(--border);background:var(--surface);display:flex;flex-direction:column;min-height:0}.library input[type=search]{margin:12px;padding:8px 12px;border-radius:9px;border:1px solid var(--border);background:var(--surface-2);color:var(--text);font:inherit;font-size:14px}.lib-list{flex:1;overflow-y:auto;padding:0 8px 16px}.lib-cat{font:600 11px var(--font-mono);color:var(--muted);text-transform:uppercase;letter-spacing:.06em;padding:12px 8px 4px}.lib-item{display:flex;justify-content:space-between;align-items:baseline;gap:8px;width:100%;text-align:left;padding:6px 8px;border-radius:7px;border:0;background:transparent;cursor:pointer;font-size:13.5px}.lib-item:hover{background:var(--surface-2)}.lib-item.on{background:var(--accent-soft);color:var(--accent)}.lib-item small{color:var(--muted);font:11px var(--font-mono)}.param-row{display:flex;align-items:center;gap:8px;flex-wrap:wrap;font-size:13px}.param-row select{font:inherit;padding:3px 6px;border-radius:7px;border:1px solid var(--border);background:var(--surface);color:var(--text)}.widget{padding:20px;max-width:980px;margin:0 auto}.widget h3{margin:0 0 4px;font-size:16px}.widget .sub{color:var(--text-2);font-size:14px;margin:0 0 14px}.panel{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:16px;box-shadow:var(--shadow)}.wgrid{display:grid;grid-template-columns:repeat(auto-fit,minmax(340px,1fr));gap:16px;align-items:start}.slider{display:grid;grid-template-columns:110px 1fr 70px;gap:10px;align-items:center;font-size:13.5px;margin:8px 0}.slider input{width:100%;accent-color:var(--accent)}.slider output{font:600 13px var(--font-mono);text-align:right}.readout{display:grid;grid-template-columns:repeat(auto-fill,minmax(120px,1fr));gap:8px;margin-top:12px}.readout div{background:var(--surface-2);border:1px solid var(--border);border-radius:10px;padding:8px 10px}.readout b{display:block;font:700 16px var(--font-mono)}.readout span{font-size:11.5px;color:var(--muted)}.mos-svg text{font-family:var(--font-ui)}.memgrid{font:12px var(--font-mono)}.memgrid .row{display:flex;align-items:center;gap:8px;padding:1px 6px;border-radius:6px}.memgrid .row.read{background:color-mix(in srgb,var(--bus) 14%,transparent)}.memgrid .row.write{background:color-mix(in srgb,var(--w1) 18%,transparent)}.memgrid .addr{width:46px;color:var(--muted)}.memgrid .cells{display:flex;gap:2px}.memgrid .cell{width:13px;height:13px;border-radius:3px;background:var(--surface-3)}.memgrid .cell.one{background:var(--w1)}.memgrid .cell.x{background:var(--wx);opacity:.6}.memgrid .hex{width:54px;text-align:right;font-weight:600}.mem-panel{position:absolute;right:12px;bottom:12px;z-index:3;max-height:calc(100% - 60px);overflow:auto;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-lg);padding:10px 10px 8px}.mem-panel h4{cursor:pointer;user-select:none;margin:0 0 6px;font-size:12px;font-weight:650;color:var(--text-2);display:flex;justify-content:space-between;gap:10px;align-items:center}.mem-panel.collapsed>:not(h4){display:none}.mem-panel.collapsed h4{margin:0}.panel-dock{position:absolute;inset:44px 12px 12px;z-index:3;pointer-events:none;display:flex;flex-direction:column;justify-content:flex-end;align-items:flex-start;gap:8px}.panel-dock.row{flex-direction:row;align-items:flex-end}.panel-dock>.mem-panel{position:relative;inset:auto;pointer-events:auto;flex:0 1 auto;min-height:38px;max-width:100%;max-height:100%}.panel-dock.row>.mem-panel{flex-shrink:0}:root[data-wide] .layout,:root[data-wide] .bench{grid-template-columns:1fr}:root[data-wide] .layout>.narrative,:root[data-wide] .layout>.inspector,:root[data-wide] .bench>.library,:root[data-wide] .bench>.inspector{display:none}@media(max-width:1180px){.layout{grid-template-columns:minmax(280px,360px) 1fr}.layout .inspector{display:none}.layout.show-inspector .inspector{display:flex;position:fixed;right:0;top:var(--topbar-h);bottom:0;width:min(360px,92vw);z-index:30;box-shadow:var(--shadow-lg)}.bench{grid-template-columns:230px 1fr}.bench .inspector{display:none}.bench.show-inspector .inspector{display:flex;position:fixed;right:0;top:var(--topbar-h);bottom:0;width:min(360px,92vw);z-index:30;box-shadow:var(--shadow-lg)}}@media(max-width:760px){body{overflow:auto}#app{height:auto;min-height:100%}#view{flex:none;overflow:visible}.nav a span,.brand small{display:none}.ch-menu{left:8px!important}.qnav-back{padding-top:8px}.layout,.layout.no-inspector{display:flex;flex-direction:column;height:auto}.narrative{border-right:0;border-bottom:1px solid var(--border)}.narrative-body{overflow:visible}.stage{height:72vh}.hero{grid-template-columns:1fr}.bench{display:flex;flex-direction:column;height:auto}.library{max-height:40vh}.wgrid{grid-template-columns:1fr}.topbar{padding:0 10px;gap:6px}.tools .seg,.stage-bar .btn .lbl,.la-hint{display:none}.la-names{width:120px}.tools .lbl{display:none}.brand{font-size:14px}.rung{flex-wrap:wrap;gap:2px 12px}.rung .c{flex-basis:100%;padding-left:34px}.home{padding-top:28px}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important}}.cpu-panel{width:330px;top:12px;bottom:auto;max-height:calc(100% - 24px);font-size:12.5px}.cpu-status{display:flex;flex-wrap:wrap;gap:4px 10px;font:12px var(--font-mono);color:var(--text-2);margin-bottom:6px}.cpu-status .good{color:var(--good);font-weight:600}.cpu-status .bad{color:var(--wx);font-weight:600}.cpu-status .warn{color:var(--warn);font-weight:600}.cpu-now{display:flex;gap:8px;align-items:center;padding:6px 8px;border-radius:8px;background:var(--accent-soft);margin-bottom:4px}.cpu-now .fmt{font:700 11px var(--font-mono);color:var(--accent)}.cpu-now code{background:none;padding:0;font-weight:600;color:var(--text)}.cpu-now .hexw{margin-left:auto;font:11px var(--font-mono);color:var(--muted)}.cpu-sec{font:600 10.5px var(--font-mono);color:var(--muted);text-transform:uppercase;letter-spacing:.06em;margin:8px 0 3px}.cpu-listing{max-height:170px;overflow:auto;font:11.5px var(--font-mono);border:1px solid var(--border);border-radius:8px;padding:3px 0}.cpu-listing .ln{display:flex;gap:8px;padding:0 8px;white-space:nowrap}.cpu-listing .ln{cursor:pointer}.cpu-listing .ln:hover{background:var(--surface-2)}.cpu-listing .ln.sel{outline:1.5px solid var(--hl);outline-offset:-1.5px;border-radius:4px}.cpu-listing .stg{margin-left:6px;font:700 10px var(--font-mono);padding:0 4px;border-radius:4px;background:var(--hl);color:var(--accent-text)}.cpu-listing .rom-btn{margin-left:auto;border:1px solid var(--border);background:var(--surface);color:var(--accent);border-radius:6px;font:600 11px var(--font-ui);padding:0 6px;cursor:pointer}.cpu-use{font-size:12px;color:var(--text-2);margin:4px 0 2px}.cpu-use:empty{display:none}.cpu-use code{font:600 12px var(--font-mono);color:var(--text)}.cpu-use .flight{display:flex;align-items:center;gap:6px}.cpu-use .flight .stg{font:700 10px var(--font-mono);padding:0 4px;border-radius:4px;background:var(--hl);color:var(--accent-text)}.cpu-slow{display:flex;align-items:center;flex-wrap:wrap;gap:6px;margin-bottom:8px}.cpu-slow .seg button{padding:2px 7px;font-size:11px}.cpu-rate{display:flex;align-items:center;gap:6px;flex:1 1 140px;min-width:0}.cpu-rate input{flex:1;min-width:60px;accent-color:var(--accent)}.cpu-rate-v{font:11px var(--font-mono);color:var(--text-2);white-space:nowrap;min-width:7.5em}.cpu-trace{max-height:140px;overflow:auto;font:11px var(--font-mono);border:1px solid var(--border);border-radius:8px;padding:3px 0}.cpu-trace:empty:before{content:"nothing retired yet";display:block;padding:2px 8px;color:var(--muted)}.cpu-trace .tr{display:grid;grid-template-columns:3.2em 1fr;column-gap:6px;padding:1px 8px;cursor:pointer}.cpu-trace .tr:hover{background:var(--surface-2)}.cpu-trace .tr.new{background:color-mix(in srgb,var(--w1) 20%,transparent)}.cpu-trace .c{color:var(--muted);text-align:right}.cpu-trace .t{color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.cpu-trace .eff{grid-column:2;color:var(--text-2);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.cpu-sec-hint{font-weight:500;text-transform:none;letter-spacing:0;color:var(--muted);margin-left:6px}.cpu-listing .ln.cur{background:color-mix(in srgb,var(--w1) 20%,transparent);font-weight:700}.cpu-listing .a{color:var(--muted)}.cpu-listing .w{color:var(--bus-label-text)}.cpu-regs{display:grid;grid-template-columns:repeat(2,1fr);gap:1px 10px;font:11.5px var(--font-mono)}.cpu-regs .r{display:flex;justify-content:space-between;padding:0 4px;border-radius:4px}.cpu-regs .r.z .v{color:var(--muted)}.cpu-regs .r.chg{background:color-mix(in srgb,var(--w1) 22%,transparent)}.cpu-regs .n{color:var(--text-2)}.cpu-mem{font:11.5px var(--font-mono)}.cpu-mem .m{display:flex;gap:10px}.cpu-mem .n{color:var(--muted);width:56px}.cpu-mem .d{color:var(--muted);margin-left:auto}.asm-errors{color:var(--wx);font:12px var(--font-mono);white-space:pre-wrap;margin-top:4px}.fields{display:flex;margin:10px 0;font:12px var(--font-mono);border-radius:8px;overflow:hidden;border:1px solid var(--border)}.fields>div{flex:var(--w);text-align:center;padding:6px 2px;border-right:1px solid var(--border);min-width:0}.fields>div:last-child{border-right:0}.fields .fname{font-size:10.5px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.fields .fbits{font-weight:700;letter-spacing:.04em;word-break:break-all}.fields .fval{font-size:11px;color:var(--text-2)}.fields>div[class^=f-]{background:color-mix(in srgb,var(--fc) 14%,var(--surface))}.fields>div.unused{background:repeating-linear-gradient(135deg,color-mix(in srgb,var(--fc) 8%,var(--surface)) 0 5px,var(--surface) 5px 10px)}.fields>div.unused .fbits{color:var(--muted)}.fields.live>div{cursor:pointer;transition:box-shadow .12s}.fields.live>div:hover,.fields>div.on{box-shadow:inset 0 0 0 2px var(--fc)}.fields .fname b{color:var(--fc);font-weight:700}.fields .bit.src{outline:1.5px solid var(--fc);border-radius:2px}.ibd-meaning{display:grid;grid-template-columns:auto 1fr;gap:1px 8px;font:11.5px var(--font-mono);margin:4px 0}.ibd-meaning .k{color:var(--fc);font-weight:700;white-space:nowrap}.ibd-meaning .v{color:var(--text-2);min-width:0;overflow-wrap:anywhere}.ibd-meaning .row{display:contents;cursor:pointer}.ibd-meaning .row.off .k,.ibd-meaning .row.off .v{opacity:.55}.ibd-meaning .row:hover .v,.ibd-meaning .row.on .v{color:var(--text)}.ibd-imm{margin:6px 0 2px}.ibd-imm summary{cursor:pointer;font:600 11.5px var(--font-mono);color:var(--text-2)}.ibd-imm .cells{display:flex;gap:2px;margin-top:4px;font:11px var(--font-mono);text-align:center}.ibd-imm .c{flex:var(--n) 1 0;min-width:20px;border-radius:4px;padding:2px 1px;background:color-mix(in srgb,var(--fc) 18%,var(--surface));cursor:default}.ibd-imm .c.sign{background:repeating-linear-gradient(135deg,color-mix(in srgb,var(--fc) 16%,var(--surface)) 0 4px,color-mix(in srgb,var(--fc) 6%,var(--surface)) 4px 8px)}.ibd-imm .c.zero{background:var(--surface-2);color:var(--muted)}.ibd-imm .c b{display:block;font-weight:700;color:var(--text);overflow-wrap:anywhere}.ibd-imm .c i{display:block;font-style:normal;font-size:9.5px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ibd-imm .c.hi{outline:1.5px solid var(--fc)}.ibd-imm .axis{font:9.5px var(--font-mono);color:var(--muted);margin-top:2px}.ibd-note{font-size:11.5px;color:var(--muted);margin:2px 0}.cpu-fields-head{display:flex;gap:8px;align-items:baseline;font-size:12px}.cpu-fields-head code{font:600 12px var(--font-mono);color:var(--text)}.cpu-fields-head span{margin-left:auto;font:10.5px var(--font-mono);color:var(--muted)}.cpu-fields .fields{margin:4px 0;font-size:11px}.cpu-fields .fields>div{padding:3px 1px}.cpu-fields .fields .fname,.cpu-fields .ibd-imm .cells{font-size:10px}.asm-table{width:100%;border-collapse:collapse;font:12px var(--font-mono)}.asm-table td{padding:2px 8px;border-bottom:1px solid var(--border);white-space:nowrap}.asm-table td.a{color:var(--muted)}.asm-table td.w{color:var(--bus-label-text)}.asm-table tr.err td{color:var(--wx)}.tstages{font:11.5px var(--font-mono);display:grid;gap:2px}.tstages .ts{display:grid;grid-template-columns:52px 1fr 30px;gap:6px;align-items:center}.tstages .bar{height:8px;border-radius:3px;background:var(--w1);opacity:.8}.tstages .a{text-align:right;color:var(--muted)}.cmp{border-collapse:collapse;width:100%;font:13px var(--font-mono)}.cmp th,.cmp td{padding:4px 8px;border-bottom:1px solid var(--border)}.cmp th{color:var(--text-2);font-weight:600;text-align:left}.cmp td.num{text-align:right}.cmp td.barcell{width:22%}.cbar{display:block;height:10px;border-radius:3px}.cbar.r{background:var(--w1)}.cbar.k{background:var(--bus)}.pipe-grid{font:11px var(--font-mono);overflow-x:auto}.pg-row{display:flex;gap:2px;margin-bottom:2px}.pg-st{width:16px;color:var(--muted);font-weight:700;flex:none}.pg-c{width:46px;flex:none;text-align:center;border-radius:4px;padding:2px 0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;background:hsl(var(--h, 220) 70% 50% / .18);color:var(--text)}.pg-row.head .pg-c{background:none;color:var(--muted)}.pg-c.bubble{background:var(--surface-2);color:var(--muted)}.pg-row.ev .pg-c{background:none;color:var(--warn);font-size:9.5px;white-space:normal;line-height:1.15}.io-panel{width:330px}.console{background:#0b0d12;color:#9fe6a0;font:12.5px var(--font-mono);border-radius:8px;padding:8px 10px;margin:0;min-height:48px;max-height:120px;overflow:auto;white-space:pre-wrap;border:1px solid var(--border)}.io-row{display:flex;gap:16px}.leds{display:flex;gap:4px}.led{width:14px;height:14px;border-radius:50%;background:var(--surface-3);border:1px solid var(--border-strong)}.led.on{background:#ff3b3b;border-color:#ff3b3b;box-shadow:0 0 8px #ff3b3b}.switches{display:flex;gap:3px}.sw{width:18px;height:24px;border-radius:4px;border:1px solid var(--border);background:var(--surface-2);font:600 9px var(--font-mono);color:var(--muted);cursor:pointer;padding:0}.sw.on{background:var(--w1);color:#fff;border-color:var(--w1)}.cpu-mem .m .n{width:72px}.cx-controls{display:flex;flex-wrap:wrap;gap:8px 14px;margin:8px 0}.cx-field{display:flex;flex-direction:column;gap:2px;font-size:12px;color:var(--text-2)}.cx-field .num{font:12px var(--font-mono);color:var(--text)}.cx-now{font:13px var(--font-mono);margin:8px 0;min-height:20px}.cx-now code{padding:1px 3px;border-radius:3px}.cx-tag{background:color-mix(in srgb,var(--accent) 22%,transparent)}.cx-idx{background:color-mix(in srgb,var(--bus) 25%,transparent)}.cx-off{background:color-mix(in srgb,var(--w1) 22%,transparent)}.cx-grid{display:flex;flex-direction:column;gap:2px;max-height:300px;overflow:auto;margin:6px 0}.cx-set{display:flex;gap:2px;align-items:center}.cx-set.cur .cx-si{color:var(--accent);font-weight:700}.cx-si{width:26px;text-align:right;font:10px var(--font-mono);color:var(--muted);margin-right:4px}.cx-line{min-width:34px;height:16px;border-radius:3px;background:var(--surface-2);border:1px solid var(--border);font:10px/14px var(--font-mono);text-align:center;color:var(--text-2)}.cx-line.v{background:var(--surface-3);color:var(--text)}.cx-line.d{border-color:var(--warn, #d97706)}.cx-line.hit{background:#16a34a;color:#fff;border-color:#16a34a}.cx-line.miss{background:#dc2626;color:#fff;border-color:#dc2626}.cx-bars{display:flex;height:10px;border-radius:4px;overflow:hidden;background:var(--surface-2);margin:6px 0 4px}.cx-bar.h,.cx-legend i.h{background:#16a34a}.cx-bar.c1,.cx-legend i.c1{background:#64748b}.cx-bar.c2,.cx-legend i.c2{background:#d97706}.cx-bar.c3,.cx-legend i.c3{background:#dc2626}.cx-legend{display:flex;flex-wrap:wrap;gap:12px;font-size:12px;color:var(--text-2)}.cx-legend i{display:inline-block;width:10px;height:10px;border-radius:2px;margin-right:4px;vertical-align:-1px}.dram-plot{width:100%;max-width:560px;display:block;margin:8px 0}.dram-plot .v{fill:none;stroke:var(--w1);stroke-width:2}.dram-plot .thr{stroke:var(--muted);stroke-dasharray:4 3}.dram-plot .lbl{font:10px var(--font-mono);fill:var(--muted)}.dcache-lines .m .v{letter-spacing:0}.mc-panel{width:470px}.mc-table{display:flex;flex-direction:column;gap:1px;font-size:11.5px}.mc-row{display:grid;grid-template-columns:18px 70px 1fr auto;gap:6px;padding:2px 4px;border-radius:4px;color:var(--text-2)}.mc-row.cur{background:color-mix(in srgb,var(--accent) 22%,transparent);color:var(--text);font-weight:600}.mc-i{font:10px var(--font-mono);color:var(--muted);text-align:right}.mc-w{font:10.5px var(--font-mono);letter-spacing:.5px}.mc-x{color:var(--muted);white-space:nowrap}.mc-big th.vert{writing-mode:vertical-rl;transform:rotate(180deg);font-size:11px;padding:6px 2px}.mc-big td{font-size:12px;padding:3px 5px}.mc-panel.compact{width:230px}.mc-panel.compact .mc-row{grid-template-columns:18px 70px 0 auto}.fx-bits{display:flex;flex-wrap:wrap;gap:2px;margin:10px 0}.fx-bit{width:18px;height:24px;padding:0;border-radius:3px;border:1px solid var(--border);font:600 11px var(--font-mono);cursor:pointer;color:var(--text-2);background:var(--surface-2)}.fx-bit.s{border-bottom:3px solid #dc2626}.fx-bit.e{border-bottom:3px solid var(--bus)}.fx-bit.m{border-bottom:3px solid #16a34a}.fx-bit.on{background:var(--surface-3);color:var(--text)}.fx-bit.s.on{background:color-mix(in srgb,#dc2626 30%,transparent)}.fx-bit.e.on{background:color-mix(in srgb,var(--bus) 30%,transparent)}.fx-bit.m.on{background:color-mix(in srgb,#16a34a 30%,transparent)}.fx-info{display:flex;flex-direction:column;gap:4px;font-size:13px}.fx-k{display:inline-block;width:70px;color:var(--muted);font-size:12px}.fx-in{width:140px;font:13px var(--font-mono);padding:3px 6px;border-radius:6px;border:1px solid var(--border);background:var(--surface);color:var(--text)}.fx-line{width:100%;max-width:680px;display:block;margin:8px 0}.fx-line .ax{stroke:var(--muted)}.fx-line .lbl{font:10px var(--font-mono);fill:var(--muted)}.fx-line .normal{fill:var(--bus)}.fx-line .subnormal{fill:#d97706}.fx-line .zero{fill:var(--text)}.dual-cols{display:grid;grid-template-columns:1fr 1fr;gap:10px}.dual-core .cpu-mem .m .n{width:30px}.coh-grid{display:flex;flex-direction:column;gap:4px;margin:10px 0}.coh-row{display:grid;grid-template-columns:64px repeat(4,minmax(90px,1fr));gap:4px;align-items:center}.coh-row.head span{font-size:11px;color:var(--muted);text-align:center}.coh-core{font-size:12px;color:var(--text-2)}.coh-cell{display:flex;align-items:center;justify-content:center;gap:4px;padding:4px;border-radius:6px;border:1px solid var(--border);background:var(--surface-2);transition:box-shadow .2s}.coh-cell b{font:700 14px var(--font-mono);width:16px;text-align:center}.coh-cell.st-M{background:color-mix(in srgb,#dc2626 22%,transparent)}.coh-cell.st-E{background:color-mix(in srgb,#d97706 22%,transparent)}.coh-cell.st-S{background:color-mix(in srgb,#16a34a 22%,transparent)}.coh-cell.hot{box-shadow:0 0 0 2px var(--accent)}.btn.xs{padding:0 5px;font-size:10px;height:18px;line-height:16px}.coh-log{font-size:12px;display:flex;flex-direction:column;gap:2px;max-height:220px;overflow:auto;margin-top:6px}.lay-svg{width:100%;max-width:360px;display:block;margin:8px auto}.lay-svg .L-nwell{fill:#facc1524;stroke:#facc1580;stroke-width:.15;stroke-dasharray:.6 .4}.lay-svg .L-pdiff{fill:#c8a26a}.lay-svg .L-ndiff{fill:#6aa86a}.lay-svg .L-poly{fill:#d0473a;opacity:.9}.lay-svg .L-metal{fill:#4678eb8c;stroke:#4678ebe6;stroke-width:.1}.lay-svg .L-contact{fill:#111}.lay-svg .v1{filter:brightness(1.25) saturate(1.2)}.lay-svg .v0{filter:brightness(.6)}.lay-svg .vz{opacity:.45}.lay-svg .chan{fill:#7a2a22}.lay-svg .chan.on{fill:#d0473a;stroke:#22c55e;stroke-width:.35}.lay-svg .lbl{font:1.6px var(--font-mono);fill:var(--text)}.lay-chk{font-size:12px;color:var(--text-2);display:inline-flex;gap:3px;align-items:center}.fab-svg{width:100%;max-width:640px;display:block;margin:8px 0}.fab-svg .si{fill:#8a8f9c}.fab-svg .nwell{fill:#b9a35a}.fab-svg .sti{fill:#dfe7ee}.fab-svg .gox{fill:#f2f2f2}.fab-svg .poly{fill:#c0392b}.fab-svg .resist{fill:#b450c859}.fab-svg .resist-hard{fill:#b450c8d9}.fab-svg .mask{fill:#c8dcff66}.fab-svg .mask-dark{fill:#333}.fab-svg .uv{stroke:#8b5cf6;stroke-width:2;stroke-dasharray:4 3}.fab-svg .nplus{fill:#4ade80}.fab-svg .pplus{fill:#f59e0b}.fab-svg .ild{fill:#c8e1f08c}.fab-svg .plug{fill:#6b7280}.fab-svg .cu{fill:#d97706}.fab-svg .upper{fill:#d977062e}.fab-svg .lbl{font:11px var(--font-mono);fill:var(--text)}.fab-text{font-size:13px;min-height:40px}.pnr-svg{width:100%;max-width:620px;display:block;margin:8px 0;background:var(--surface-2);border-radius:8px}.pnr-svg .site{fill:none;stroke:var(--border);stroke-width:.5;stroke-dasharray:2 2}.pnr-svg .cell{fill:var(--surface-3);stroke:var(--border-strong);stroke-width:.6}.pnr-svg .clbl{font:9px var(--font-mono);fill:var(--muted)}.pnr-svg .rat{stroke:var(--muted);stroke-width:.5;opacity:.6}.pnr-svg .m0{stroke:#3b82f6;stroke-width:2.4;stroke-linecap:round}.pnr-svg .m1{stroke:#ef4444;stroke-width:2.4;stroke-linecap:round;opacity:.85}.pnr-svg .via{fill:var(--text)}.pnr-svg .fail{stroke:#ef4444;stroke-width:1;stroke-dasharray:3 2}.pnr-svg .pin{fill:var(--text)}.pnr-svg .iol{font:8px var(--font-mono);fill:var(--text-2)}.ct-svg{width:100%;max-width:760px;display:block;margin:8px 0}.ct-svg .ht{stroke:var(--w1);stroke-width:2}.ct-svg .sp{stroke:#ef4444;stroke-width:3}.ct-svg .sp2{stroke:#ef4444;stroke-width:1;opacity:.6}.ct-svg .ff{fill:var(--text)}.ct-svg .lbl{font:13px var(--font-mono);fill:var(--text-2)}.fp-svg{width:100%;max-width:440px;display:block;margin:8px 0}.fp-svg .die{fill:var(--surface-2);stroke:var(--border-strong)}.fp-svg .pad{fill:#d4a017}.fp-svg .blk{stroke:var(--surface);stroke-width:1}.fp-svg .c0{fill:#3b82f6}.fp-svg .c1{fill:#6366f1}.fp-svg .mem{fill:#16a34a}.fp-svg .blbl{font:12px var(--font-mono);fill:#fff}.wf-svg{width:100%;max-width:420px;display:block;margin:8px 0}.wf-svg .wafer{fill:#9ca3af;stroke:var(--border-strong)}.wf-svg .good{fill:#3b82f6}.wf-svg .bad{fill:#ef4444}.chip-view{position:relative;overflow:hidden;background:#0b0d12;border-radius:8px;cursor:grab;touch-action:none;margin:8px 0;user-select:none}.chip-tiles img{position:absolute;pointer-events:none}.chip-overlay{position:absolute;inset:0;width:100%;height:100%}.chip-tip{position:absolute;left:8px;bottom:6px;font:11px var(--font-mono);color:#cbd5e1;background:#00000080;padding:2px 6px;border-radius:4px;pointer-events:none}.chip-stats .m .n{width:170px}.chip-gallery{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:8px;margin:6px 0 10px}.chip-gallery a{display:flex;flex-direction:column;gap:3px;text-decoration:none;color:var(--text-2);font-size:12px}.chip-gallery img{width:100%;aspect-ratio:1;object-fit:cover;border-radius:6px;background:#000;border:1px solid var(--border)}.footer-meta{margin-top:6px;font-size:12px;color:var(--muted)}.footer-meta a{color:inherit}:root{--tok-op: #5b4cf0;--tok-ps: #b5179e;--tok-dir: #0e7490;--tok-lbl: #b45309;--tok-sym: #9a5b13;--tok-reg: #047857;--tok-num: #1d4ed8;--tok-csr: #be123c;--tok-kw: #a16207;--tok-addr: #b5179e;--tok-com: var(--muted);--tok-pun: var(--text-2);--tok-bad: var(--wx)}@media(prefers-color-scheme:dark){:root:not([data-theme=light]){--tok-op: #a397ff;--tok-ps: #f08ae6;--tok-dir: #67e8f9;--tok-lbl: #fbbf24;--tok-sym: #fdba74;--tok-reg: #34d399;--tok-num: #7aa9ff;--tok-csr: #fb7185;--tok-kw: #fcd34d;--tok-addr: #f08ae6}}:root[data-theme=dark]{--tok-op: #a397ff;--tok-ps: #f08ae6;--tok-dir: #67e8f9;--tok-lbl: #fbbf24;--tok-sym: #fdba74;--tok-reg: #34d399;--tok-num: #7aa9ff;--tok-csr: #fb7185;--tok-kw: #fcd34d;--tok-addr: #f08ae6}.code-edit{--ce-lh: 18px;--ce-pad: 8px;display:grid;grid-template-columns:auto minmax(0,1fr);width:100%;height:calc(var(--rows, 14) * var(--ce-lh) + 2 * var(--ce-pad) + 2px);min-height:calc(3 * var(--ce-lh) + 2 * var(--ce-pad) + 2px);background:var(--surface-2);border:1px solid var(--border);border-radius:8px;overflow:hidden;resize:vertical;font:12px/var(--ce-lh) var(--font-mono)}.code-edit:focus-within{border-color:var(--accent)}.ce-gutter{overflow:hidden;padding:var(--ce-pad) 0;color:var(--muted);background:var(--surface-3);border-right:1px solid var(--border);text-align:right;user-select:none;cursor:default}.ce-n{height:var(--ce-lh);line-height:var(--ce-lh);padding:0 8px 0 6px;white-space:nowrap}.ce-n:before{content:"";display:inline-block;width:6px;height:6px;margin-right:5px;border-radius:50%;vertical-align:1px}.ce-n.e{color:var(--wx)}.ce-n.e:before{background:var(--wx)}.ce-n.w{color:var(--warn)}.ce-n.w:before{background:var(--warn)}.ce-n.cur{color:var(--text);background:color-mix(in srgb,var(--w1) 20%,transparent)}.ce-n.e[title],.ce-n.w[title]{cursor:help}.ce-body{position:relative;overflow:hidden}.ce-hl,.ce-ta{position:absolute;inset:0;margin:0;padding:var(--ce-pad);border:0;font:inherit;line-height:var(--ce-lh);letter-spacing:0;font-variant-ligatures:none;tab-size:8;white-space:pre;overflow-wrap:normal}.ce-hl{overflow:hidden;color:var(--text);pointer-events:none}.ce-in{will-change:transform}.ce-l{height:var(--ce-lh)}.ce-l.cur{background:color-mix(in srgb,var(--w1) 20%,transparent)}.ce-l.e{background:color-mix(in srgb,var(--wx) 12%,transparent)}.ce-l.w{background:color-mix(in srgb,var(--warn) 12%,transparent)}.ce-l.e.cur,.ce-l.w.cur{box-shadow:inset 3px 0 0 var(--w1)}.ce-msg{margin-left:3ch;color:var(--wx);opacity:.9}.ce-l.w .ce-msg{color:var(--warn)}.ce-ta{width:100%;height:100%;resize:none;overflow:auto;background:transparent;color:transparent;-webkit-text-fill-color:transparent;caret-color:var(--text);outline:none}.ce-ta::selection{background:color-mix(in srgb,var(--accent) 30%,transparent)}.code-edit.ro .ce-ta{caret-color:transparent}.tk-op{color:var(--tok-op)}.tk-ps{color:var(--tok-ps)}.tk-dir{color:var(--tok-dir)}.tk-lbl{color:var(--tok-lbl)}.tk-sym{color:var(--tok-sym)}.tk-reg{color:var(--tok-reg)}.tk-num{color:var(--tok-num)}.tk-csr{color:var(--tok-csr)}.tk-kw{color:var(--tok-kw)}.tk-addr{color:var(--tok-addr)}.tk-com{color:var(--tok-com)}.tk-pun{color:var(--tok-pun)}.tk-bad{color:var(--tok-bad);text-decoration:underline wavy var(--tok-bad);text-decoration-skip-ink:none;text-underline-offset:2px}
