@import"https://fonts.googleapis.com/css2?family=DM+Sans:wght@300;400;500;600;700;800;900&family=JetBrains+Mono:wght@300;400;500;600;700&display=swap";*{margin:0;padding:0;box-sizing:border-box}:root{--cream: #faf3e8;--cream-dark: #f0e8d8;--cream-darker: #e6dcc8;--black: #1a1a1a;--black-light: #2a2a2a;--gray-dark: #4a4a4a;--gray: #7a7a7a;--gray-light: #aaaaaa;--gray-lighter: #d0d0d0;--white: #ffffff;--mint: #c8f0e0;--mint-dark: #6bc9a0;--blue: #d4e4f7;--blue-dark: #5b9bd5;--yellow: #faee87;--yellow-dark: #d4b830;--purple: #ddd4f7;--purple-dark: #8b7bc8;--pink: #f7d4e4;--red: #e85454;--green: #2ecc71;--accent: #e8a44c;--success: #2e9966;--success-dark: #2a7;--success-hover: #3b8;--error: #c44;--warning: #c90;--canvas-bg: #f5ede0;--canvas-grid: #e0d8ca;--canvas-grid-major: #d2c9b8;--comp-nmos: #adc8eb;--comp-pmos: #f0b8c4;--comp-vdd: #f0e08c;--comp-gnd: #d2d2ce;--comp-gate: #d0c4f0;--comp-seq: #c0ade6;--comp-bus-logic: #c8bdf0;--comp-bus-arith: #f0d88c;--comp-bus-route: #99d1e6;--comp-complex: #b8b8d9;--comp-memory: #7cc8c8;--btn-dark: #333;--btn-dark-hover: #333;--btn-darker: #222;--check-color: #3a8;--node-complete: #4a9;--node-stroke: #bbb;--node-locked-bg: #eae6de;--node-locked-border: #c5c0b6;--node-locked-stroke: #d8d4cc;--node-check-stroke: #4a9;--subtitle-accent: #c06030;--submit-bg: #5ab88e;--node-complete-grad-start: #e8f5e8;--node-complete-grad-end: #d5eede;--font-sans: "DM Sans", system-ui, sans-serif;--font-mono: "JetBrains Mono", monospace}[data-theme=dark]{--cream: var(--dm-bg);--cream-dark: #202024;--cream-darker: var(--dm-surface-hover);--black: var(--dm-bg);--black-light: var(--dm-surface-raised);--gray-dark: var(--dm-text-muted);--gray: #777;--gray-light: var(--dm-text-disabled);--gray-lighter: #3a3a40;--white: #e8e4dc;--mint: #1a3028;--mint-dark: #4aaa80;--blue: #1a2a3a;--blue-dark: #6aaae0;--yellow: #3a3520;--yellow-dark: #d4b830;--purple: #2a2438;--purple-dark: #9b8bd8;--pink: #3a2030;--red: #e86464;--green: #3ecc81;--accent: #e8a44c;--success: #3ab876;--success-dark: #3a9;--success-hover: #4cc89a;--error: #e85454;--warning: #da0;--canvas-bg: var(--dm-surface);--canvas-grid: var(--dm-surface-hover);--canvas-grid-major: #333338;--comp-nmos: #2a4060;--comp-pmos: #502838;--comp-vdd: #4a4020;--comp-gnd: #383838;--comp-gate: #362a50;--comp-seq: #2e2050;--comp-bus-logic: #302060;--comp-bus-arith: #4a3a10;--comp-bus-route: #183848;--comp-complex: #282840;--comp-memory: #1a3838;--btn-dark: var(--dm-border);--btn-dark-hover: var(--dm-border-strong);--btn-darker: #222;--check-color: #4ab88e;--node-complete: #3aaa7a;--node-stroke: var(--dm-border-accent);--node-locked-bg: #222226;--node-locked-border: #3a3a3e;--node-locked-stroke: #333338;--node-check-stroke: #4ab88e;--subtitle-accent: #d07040;--submit-bg: #3aa87a;--node-complete-grad-start: #1a2e22;--node-complete-grad-end: #1e3428;--dm-bg: #18181c;--dm-surface: #1e1e22;--dm-surface-raised: #222228;--dm-surface-hover: #28282e;--dm-surface-active: #303038;--dm-border: #333;--dm-border-strong: #444;--dm-border-accent: #555;--dm-text: #e0dcd4;--dm-text-secondary: #ccc;--dm-text-tertiary: #aaa;--dm-text-muted: #999;--dm-text-faint: #888;--dm-text-disabled: #666;--dm-text-bright: #fff;--dm-node-available-border: #8ab0d0;--dm-node-complete-border: #3abb80;--dm-node-complete-text: #b0e8cc;--dm-node-complete-dim: #7ab89a;--dm-node-complete-accent: #4abb88;--dm-node-complete-bg-start: #18302a;--dm-node-complete-bg-end: #1a3830;--dm-overlay-bg: rgba(24, 24, 28, .92);--dm-overlay-dismiss-bg: #e0dcd4;--dm-overlay-dismiss-text: #18181c;--dm-overlay-dismiss-hover: #ccc8c0}[data-theme=dark] html,[data-theme=dark] body{background:var(--dm-bg);color:var(--dm-text)}[data-theme=dark] .st-act-header{background:var(--dm-surface-hover);color:var(--dm-text)}[data-theme=dark] .st-act-progress{color:var(--dm-text-secondary);border-color:var(--dm-text-muted)}[data-theme=dark] .st-intro-toggle{border-color:var(--dm-border, #3a3a40);color:var(--dm-text-secondary, #aaa)}[data-theme=dark] .st-node{background:var(--dm-surface-raised);color:var(--dm-text);border-color:var(--dm-border-strong)}[data-theme=dark] .st-node-available{background:var(--dm-surface-hover);border:2.5px solid var(--dm-node-available-border);box-shadow:0 0 12px #64aadc26,0 0 0 1px #64aadc1a}[data-theme=dark] .st-node-available:hover{background:var(--dm-surface-active);box-shadow:0 0 20px #64aadc40,0 0 0 1px #64aadc26}[data-theme=dark] .st-node-available .st-node-name{color:var(--dm-text-bright)}[data-theme=dark] .st-node-available .st-node-concept{color:var(--dm-text-secondary)}[data-theme=dark] .st-node-available .st-node-ceo{color:var(--dm-text-muted)}[data-theme=dark] .st-node-name{color:var(--dm-text)}[data-theme=dark] .st-node-concept{color:var(--dm-text-muted)}[data-theme=dark] .st-node-ceo{color:var(--dm-text-faint)}[data-theme=dark] .st-node-locked{background:var(--dm-bg);border:1.5px dashed var(--dm-border);opacity:.55}[data-theme=dark] .st-node-locked .st-node-name{color:var(--dm-text-disabled)}[data-theme=dark] .st-node-locked:after{background:repeating-linear-gradient(45deg,transparent,transparent 3px,rgba(255,255,255,.03) 3px,rgba(255,255,255,.03) 4px)}[data-theme=dark] .st-node-completed{background:linear-gradient(135deg,var(--dm-node-complete-bg-start),var(--dm-node-complete-bg-end));border:2px solid var(--dm-node-complete-border);box-shadow:0 0 10px #3abb8026}[data-theme=dark] .st-node-completed .st-node-name{color:var(--dm-node-complete-text)}[data-theme=dark] .st-node-completed .st-node-concept{color:var(--dm-node-complete-dim)}[data-theme=dark] .st-node-completed .st-node-time{color:var(--dm-node-complete-accent)}[data-theme=dark] .st-back{color:var(--dm-text-secondary);background:var(--dm-surface-raised);border-color:var(--dm-border-accent)}[data-theme=dark] .st-back:hover{background:var(--dm-border);color:var(--dm-text)}[data-theme=dark] .game-toolbar{background:var(--dm-surface-raised);color:var(--dm-text);border-bottom-color:var(--dm-border)}[data-theme=dark] .game-toolbar .toolbar-back{color:var(--dm-text-secondary);border-color:var(--dm-border-accent)}[data-theme=dark] .game-toolbar .toolbar-back:hover{background:var(--dm-border-strong);color:var(--dm-text)}[data-theme=dark] .game-toolbar .toolbar-title{color:var(--dm-text)}[data-theme=dark] .game-toolbar .toolbar-level{color:var(--dm-text-muted);background:var(--dm-surface-hover);border-color:var(--dm-border-strong)}[data-theme=dark] .game-palette{background:var(--dm-surface);border-right-color:var(--dm-border);color:var(--dm-text-secondary)}[data-theme=dark] .game-info{background:var(--dm-surface);border-left-color:var(--dm-border);color:var(--dm-text-secondary)}[data-theme=dark] .game-statusbar{background:var(--dm-surface-raised);border-top-color:var(--dm-border);color:var(--dm-text-tertiary)}[data-theme=dark] .toolbar-btn{color:var(--dm-text-secondary);border-color:var(--dm-border-accent)}[data-theme=dark] .toolbar-btn:hover{background:var(--dm-border)}[data-theme=dark] .toolbar-btn.run{background:var(--dm-node-complete-bg-start);color:var(--dm-node-complete-accent);border-color:var(--dm-node-complete-dim)}[data-theme=dark] .palette-header{color:var(--dm-text-secondary)}[data-theme=dark] .palette-hint{color:var(--dm-text-faint)}[data-theme=dark] .palette-section-title{color:var(--dm-text-faint);border-top-color:var(--dm-border)}[data-theme=dark] .palette-item{background:var(--dm-surface-hover);border-color:var(--dm-border-strong)}[data-theme=dark] .palette-item[data-type=nmos]{background:var(--comp-nmos)}[data-theme=dark] .palette-item[data-type=pmos]{background:var(--comp-pmos)}[data-theme=dark] .palette-item[data-type=vdd]{background:var(--comp-vdd)}[data-theme=dark] .palette-item[data-type=gnd]{background:var(--comp-gnd)}[data-theme=dark] .palette-item[data-type=not],[data-theme=dark] .palette-item[data-type=nand],[data-theme=dark] .palette-item[data-type=nor],[data-theme=dark] .palette-item[data-type=and],[data-theme=dark] .palette-item[data-type=or],[data-theme=dark] .palette-item[data-type=xor]{background:var(--comp-gate)}[data-theme=dark] .palette-item[data-type=half_adder],[data-theme=dark] .palette-item[data-type=full_adder],[data-theme=dark] .palette-item[data-type=adder_8bit]{background:var(--comp-bus-arith)}[data-theme=dark] .palette-item[data-type=xor_8bit],[data-theme=dark] .palette-item[data-type=not_8bit],[data-theme=dark] .palette-item[data-type=and_8bit],[data-theme=dark] .palette-item[data-type=or_8bit],[data-theme=dark] .palette-item[data-type=xor_8bit_pair],[data-theme=dark] .palette-item[data-type=or_reduce]{background:var(--comp-bus-logic)}[data-theme=dark] .palette-item[data-type=mux_8bit],[data-theme=dark] .palette-item[data-type=mux_4way_8bit],[data-theme=dark] .palette-item[data-type=mux_8way_8bit],[data-theme=dark] .palette-item[data-type=decoder_2to4],[data-theme=dark] .palette-item[data-type=decoder_3to8],[data-theme=dark] .palette-item[data-type=splitter],[data-theme=dark] .palette-item[data-type=joiner],[data-theme=dark] .palette-item[data-type=mux]{background:var(--comp-bus-route)}[data-theme=dark] .palette-item[data-type=sr_latch],[data-theme=dark] .palette-item[data-type=gated_d_latch],[data-theme=dark] .palette-item[data-type=dff],[data-theme=dark] .palette-item[data-type=clock],[data-theme=dark] .palette-item[data-type=register_8bit]{background:var(--comp-seq)}[data-theme=dark] .palette-item[data-type=alu],[data-theme=dark] .palette-item[data-type=reg_file],[data-theme=dark] .palette-item[data-type=ram_8x8],[data-theme=dark] .palette-item[data-type=program_counter]{background:var(--comp-complex)}[data-theme=dark] .palette-item[data-type=capacitor],[data-theme=dark] .palette-item[data-type=pass_gate],[data-theme=dark] .palette-item[data-type=sense_amp],[data-theme=dark] .palette-item[data-type=dram_cell]{background:var(--comp-memory)}[data-theme=dark] .palette-item:hover{box-shadow:2px 2px 0 var(--dm-border-accent)}[data-theme=dark] .palette-item.selected{box-shadow:3px 3px 0 var(--dm-text-disabled)}[data-theme=dark] .palette-item .item-label{color:var(--dm-text)}[data-theme=dark] .palette-item .item-sublabel{color:#ffffff73}[data-theme=dark] .palette-item .item-icon{color:var(--dm-text-secondary);background:#ffffff1a;border-color:#fff3}[data-theme=dark] .palette-info-btn{color:var(--dm-text-tertiary);border-color:var(--dm-border-accent);background:var(--dm-border)}[data-theme=dark] .palette-action{color:var(--dm-text-tertiary)}[data-theme=dark] .palette-action:hover{background:var(--dm-border);color:var(--dm-text)}[data-theme=dark] .palette-shortcut{color:var(--dm-text-faint);border-color:var(--dm-border-strong)}[data-theme=dark] .narrative-card{background:var(--dm-surface-raised);color:var(--dm-text);border-color:var(--dm-border-strong)}[data-theme=dark] .narrative-card .narrative-body{color:var(--dm-text-secondary)}[data-theme=dark] .narrative-card .narrative-body em{color:var(--dm-text)}[data-theme=dark] .success-card{background:var(--dm-surface-raised);color:var(--dm-text);border-color:var(--dm-node-complete-border)}[data-theme=dark] .success-subtitle{color:var(--dm-text-tertiary)}[data-theme=dark] .fun-fact{background:var(--dm-surface-hover);color:var(--dm-text-secondary)}[data-theme=dark] .component-info-card{background:var(--dm-surface-raised);color:var(--dm-text);border-color:var(--dm-border-strong)}[data-theme=dark] .component-info-card .info-card-body{color:var(--dm-text-secondary)}[data-theme=dark] .component-info-card .info-card-name{color:var(--dm-text)}[data-theme=dark] .component-info-card .info-card-category{color:var(--dm-text-muted)}[data-theme=dark] .component-info-card .info-card-tag{color:var(--dm-text-faint);background:var(--dm-surface-hover);border-color:var(--dm-border-strong)}[data-theme=dark] .info-card-tt-title{color:var(--dm-text-tertiary)}[data-theme=dark] .component-info-card .info-card-dismiss{background:var(--dm-text);color:var(--dm-bg);border-color:var(--dm-text)}[data-theme=dark] .component-info-card .info-card-dismiss:hover{background:var(--dm-overlay-dismiss-hover)}[data-theme=dark] .component-info-overlay,[data-theme=dark] .narrative-overlay,[data-theme=dark] .success-overlay{background:#000000b3}[data-theme=dark] .narrative-card .narrative-dismiss{background:var(--dm-text);color:var(--dm-bg);border-color:var(--dm-text)}[data-theme=dark] .narrative-card .narrative-dismiss:hover{background:var(--dm-overlay-dismiss-hover)}[data-theme=dark] .narrative-avatar{background:var(--dm-border);color:var(--dm-text-secondary)}[data-theme=dark] .narrative-card .narrative-from{color:var(--dm-text-tertiary)}[data-theme=dark] .narrative-card .narrative-subject{color:var(--dm-text-muted)}[data-theme=dark] .narrative-divider{background:var(--dm-border)}[data-theme=dark] .success-btn{border-color:var(--dm-border-accent);color:var(--dm-text-secondary)}[data-theme=dark] .success-btn.next{background:var(--success);color:#fff;border-color:var(--success)}[data-theme=dark] .success-stat-value{color:var(--dm-text)}[data-theme=dark] .success-stat-label{color:var(--dm-text-faint)}[data-theme=dark] .resize-handle{background:var(--dm-border)}[data-theme=dark] .wt-overlay{background:#18181ceb;border-top-color:var(--dm-border)}[data-theme=dark] .wt-instruction{color:var(--dm-text-secondary)}[data-theme=dark] .wt-skip-btn{color:var(--dm-text-muted);border-color:var(--dm-border-accent)}[data-theme=dark] .intro-screen{background:var(--dm-bg)}[data-theme=dark] .intro-logo{color:var(--dm-text)}[data-theme=dark] .intro-tagline{color:var(--dm-text-faint)}[data-theme=dark] .intro-start{background:var(--dm-text);color:var(--dm-bg);border-color:var(--dm-text)}[data-theme=dark] .intro-start:hover{background:var(--dm-overlay-dismiss-hover)}[data-theme=dark] .info-truth-table th,[data-theme=dark] .info-truth-table td{color:var(--dm-text-secondary)}[data-theme=dark] .live-truth-table{background:var(--dm-surface-raised);border-color:var(--dm-border-strong)}[data-theme=dark] .live-truth-table .ltt-header{color:var(--dm-text-tertiary)}[data-theme=dark] .live-truth-table .info-truth-table th,[data-theme=dark] .live-truth-table .info-truth-table td{color:var(--dm-text-secondary)}[data-theme=dark] .info-section-title{color:var(--dm-text-tertiary)}[data-theme=dark] .info-objective{color:var(--dm-text-secondary)}[data-theme=dark] .hint-btn{background:var(--dm-surface-hover);color:var(--dm-text-tertiary);border-color:var(--dm-border-strong)}[data-theme=dark] .seq-step-bar{background:var(--dm-surface-raised);border-top-color:var(--dm-border)}[data-theme=dark] .seq-btn{background:var(--dm-border);color:var(--dm-text-secondary);border-color:var(--dm-border-accent)}html,body{width:100%;height:100%;overflow:hidden;background:var(--cream);color:var(--black);font-family:var(--font-sans)}#app{width:100%;height:100%;position:relative}#dark-mode-toggle{position:fixed;bottom:12px;left:12px;z-index:99990;width:36px;height:36px;border-radius:50%;border:1.5px solid var(--gray-lighter);background:var(--cream-dark);color:var(--black);font-size:18px;cursor:pointer;display:flex;align-items:center;justify-content:center;opacity:.6;transition:opacity .15s,background .15s}#dark-mode-toggle:hover{opacity:1}[data-theme=dark] #dark-mode-toggle{background:var(--dm-surface-raised, #28282e);border-color:var(--dm-border, #3a3a40);color:var(--dm-text-primary, #e0e0e0)}#bug-report-btn{position:fixed;bottom:12px;left:52px;z-index:99990;width:36px;height:36px;border-radius:50%;border:1.5px solid var(--gray-lighter);background:var(--cream-dark);color:var(--black);font-size:16px;cursor:pointer;display:flex;align-items:center;justify-content:center;opacity:.6;transition:opacity .15s}#bug-report-btn:hover{opacity:1}[data-theme=dark] #bug-report-btn{background:#28282e;border-color:#3a3a40}#bug-modal{position:fixed;inset:0;z-index:100000;display:flex;align-items:center;justify-content:center;background:#00000080}.bug-modal-content{background:var(--white, #fff);border:2px solid var(--black, #1a1a1a);padding:24px;max-width:440px;width:90%;font-family:var(--font-main)}.bug-modal-title{font-family:var(--font-mono);font-size:14px;font-weight:700;letter-spacing:.1em;margin-bottom:12px}#bug-text{width:100%;padding:10px;font-family:var(--font-main);font-size:14px;border:1.5px solid var(--gray-lighter, #ccc);background:var(--cream, #faf3e8);resize:vertical;box-sizing:border-box}.bug-modal-actions{display:flex;gap:8px;justify-content:flex-end;margin-top:12px}.bug-modal-actions button{font-family:var(--font-mono);font-size:12px;letter-spacing:.08em;padding:8px 20px;cursor:pointer;border:1.5px solid var(--black)}#bug-cancel{background:transparent;color:var(--gray-dark)}#bug-submit{background:var(--black);color:var(--cream)}#bug-status{font-family:var(--font-mono);font-size:11px;margin-top:8px;color:var(--gray)}[data-theme=dark] .bug-modal-content{background:#1a1a1e;border-color:#555;color:#e0dcd4}[data-theme=dark] #bug-text{background:#28282e;border-color:#444;color:#e0dcd4}[data-theme=dark] #bug-submit{background:#e0dcd4;color:#1a1a1e;border-color:#e0dcd4}[data-theme=dark] #bug-cancel{color:#aaa;border-color:#555}#x-follow-box{position:fixed;bottom:46px;right:12px;z-index:99990;display:flex;align-items:center;gap:8px;padding:8px 14px;background:var(--black);color:var(--cream);font-family:var(--font-mono);font-size:11px;letter-spacing:.06em;text-decoration:none;border-radius:4px;opacity:.7;transition:opacity .15s}#x-follow-box:hover{opacity:1}[data-theme=dark] #x-follow-box{background:#e0dcd4;color:#1a1a1e}.screen{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;opacity:0;pointer-events:none;transition:opacity .4s ease}.screen.active{opacity:1;pointer-events:all}.intro-screen{background:var(--cream);overflow:hidden}.intro-bg{position:absolute;inset:0;opacity:.12}.intro-bg canvas{width:100%;height:100%}.intro-content{position:relative;z-index:1;display:flex;flex-direction:column;align-items:center;gap:12px;animation:intro-fade-in 1s ease-out}@keyframes intro-fade-in{0%{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}.intro-logo{font-family:var(--font-sans);font-size:81px;font-weight:900;letter-spacing:-2px;color:var(--black);user-select:none}.intro-logo span{color:var(--mint-dark)}.intro-tagline{font-family:var(--font-mono);font-size:14px;font-weight:400;color:var(--gray);letter-spacing:3px;text-transform:uppercase;margin-bottom:40px}.intro-start{font-family:var(--font-mono);font-size:15px;font-weight:500;letter-spacing:1.5px;text-transform:uppercase;color:var(--cream);background:var(--black);border:2px solid var(--black);padding:14px 40px;cursor:pointer;transition:all .15s ease}.intro-start:hover{background:var(--black-light);transform:translateY(-2px);box-shadow:0 6px 16px #0000002e}.intro-start:active{transform:translateY(0);box-shadow:none}.intro-version{position:absolute;bottom:24px;right:24px;font-family:var(--font-mono);font-size:12px;color:var(--gray-light)}.intro-memo{max-width:480px;margin-top:8px;padding:20px 24px;background:var(--white);border:2px solid var(--black);font-family:var(--font-sans);font-size:15px;line-height:1.7;color:var(--gray-dark);animation:intro-fade-in 1s ease-out .3s both}.intro-memo .memo-from{font-family:var(--font-mono);font-size:12px;letter-spacing:2px;color:var(--black);font-weight:600;margin-bottom:8px;display:block}[data-theme=dark] .intro-memo{background:var(--dm-surface, #1e1e22);border-color:var(--dm-border, #3a3a40);color:var(--dm-text-secondary, #aaa)}[data-theme=dark] .intro-memo .memo-from{color:var(--dm-text-primary, #e0e0e0)}.level-select-screen{background:repeating-linear-gradient(45deg,transparent,transparent 2px,rgba(0,0,0,.015) 2px,rgba(0,0,0,.015) 4px),repeating-linear-gradient(-45deg,transparent,transparent 2px,rgba(0,0,0,.015) 2px,rgba(0,0,0,.015) 4px),linear-gradient(rgba(0,0,0,.03) 1px,transparent 1px),linear-gradient(90deg,rgba(0,0,0,.03) 1px,transparent 1px);background-size:6px 6px,6px 6px,40px 40px,40px 40px;background-color:var(--cream);overflow-y:auto;justify-content:flex-start;align-items:center;scroll-behavior:smooth;padding:0}.st-back{position:fixed;top:20px;left:20px;z-index:10;font-family:var(--font-mono);font-size:13px;font-weight:600;color:var(--black);background:var(--cream);border:2px solid var(--black);padding:8px 16px;cursor:pointer;transition:all .15s ease;letter-spacing:.5px}.st-back:hover{background:var(--black);color:var(--cream);transform:translateY(-1px)}.skill-tree{width:100%;display:flex;flex-direction:column;align-items:center;padding:64px 24px 80px}.st-act{width:100%;display:flex;flex-direction:column;align-items:center;margin-bottom:40px}.st-act-header{width:100%;display:flex;align-items:center;justify-content:space-between;padding:26px 48px;background:var(--black);color:var(--cream);margin-bottom:36px;border-radius:2px;box-shadow:0 2px 12px #00000026}.st-act-title{font-family:var(--font-sans);font-size:23px;font-weight:800;letter-spacing:-.5px}.st-act-coming-soon{opacity:.5}.st-coming-soon{font-family:var(--font-mono);font-size:28px;font-weight:700;letter-spacing:.15em;text-align:center;padding:60px 0;color:var(--gray-dark)}.st-act-subtitle{font-family:var(--font-mono);font-size:12px;color:var(--gray-light);margin-top:4px;letter-spacing:2px}.st-act-progress{font-family:var(--font-mono);font-size:14px;font-weight:600;color:var(--cream);letter-spacing:1px;padding:6px 14px;border:1.5px solid var(--gray);white-space:nowrap}.st-graph{position:relative;margin:0 auto}.st-edges{position:absolute;top:0;left:0;pointer-events:none}.st-edge{fill:none;stroke-linecap:round}.st-edge-completed{stroke:var(--node-complete);stroke-width:3;filter:drop-shadow(0 0 4px rgba(74,170,153,.4))}.st-edge-available{stroke:var(--node-stroke);stroke-width:2;stroke-dasharray:8 4}.st-edge-available-anim{stroke:var(--node-check-stroke);stroke-width:2;stroke-dasharray:8 4;animation:edge-flow 1.2s linear infinite}.st-edge-locked{stroke:var(--node-locked-stroke);stroke-width:1;stroke-dasharray:3 5}@keyframes edge-flow{0%{stroke-dashoffset:24}to{stroke-dashoffset:0}}.st-node{position:absolute;border-radius:6px;display:flex;flex-direction:column;justify-content:center;align-items:center;text-align:center;box-sizing:border-box;padding:8px 12px;transition:transform .12s ease,box-shadow .12s ease;overflow:hidden}.st-intro-section{width:100%;max-width:900px;margin:0 auto 24px;padding:0 20px}.st-intro-toggle{display:flex;align-items:center;gap:10px;width:100%;padding:12px 16px;background:transparent;border:1.5px dashed var(--gray-lighter);color:var(--gray-dark);font-family:var(--font-mono);font-size:12px;letter-spacing:.08em;cursor:pointer;text-align:left;transition:border-color .15s}.st-intro-toggle:hover{border-color:var(--gray-light)}.st-intro-arrow{font-size:10px;transition:transform .2s}.st-intro-count{font-size:11px;opacity:.6}.st-intro-hint{font-size:10px;opacity:.4;font-style:italic;margin-left:auto}.st-intro-levels{display:flex;flex-wrap:wrap;gap:12px;padding:16px 0}.st-intro-node{position:relative;width:200px;padding:14px 16px;border-radius:6px;cursor:pointer;transition:transform .12s}.st-intro-node:hover{transform:translateY(-2px)}.st-intro-node.st-node-completed{background:linear-gradient(135deg,var(--node-complete-grad-start) 0%,var(--node-complete-grad-end) 100%);border:2px solid var(--node-complete)}.st-intro-node.st-node-available{background:var(--node-available-bg);border:2px solid var(--node-available-border)}.st-intro-name{font-family:var(--font-sans);font-size:14px;font-weight:700}.st-intro-concept{font-family:var(--font-mono);font-size:10px;opacity:.6;margin-top:4px}.st-node-caution{position:absolute;top:6px;right:8px;font-size:16px;cursor:help;opacity:.6;z-index:2}.st-node-caution:hover{opacity:1}.st-node-gate{border:2px solid var(--mint)!important}.st-node-gate-arrow{font-family:var(--font-mono);font-size:10px;letter-spacing:.08em;color:var(--mint);white-space:nowrap;margin-top:4px}.st-node-completed{background:linear-gradient(135deg,var(--node-complete-grad-start) 0%,var(--node-complete-grad-end) 100%);border:2px solid var(--node-complete);box-shadow:0 1px 4px #4aaa992e,inset 0 1px 3px #4aaa991a;cursor:pointer}.st-node-completed:hover{transform:translateY(-3px);box-shadow:0 4px 12px #4aaa9940,inset 0 1px 3px #4aaa9926}.st-node-available{background:var(--white);border:2.5px solid var(--black);cursor:pointer;animation:node-pulse 2.2s ease-in-out infinite}.st-node-available:hover{transform:translateY(-3px);box-shadow:0 4px 12px #00000026;animation:none}.st-node-locked{background:var(--node-locked-bg);border:1.5px dashed var(--node-locked-border);pointer-events:none;opacity:.85}.st-node-locked:after{content:"";position:absolute;inset:0;background:repeating-linear-gradient(45deg,transparent,transparent 3px,rgba(0,0,0,.06) 3px,rgba(0,0,0,.06) 4px);pointer-events:none;border-radius:6px}.st-node-locked .st-node-number,.st-node-locked .st-node-name,.st-node-locked .st-node-locked-text{opacity:.5}@keyframes node-pulse{0%,to{box-shadow:0 0 #4eaa9900,0 1px 3px #0000000f}50%{box-shadow:0 0 14px 3px #4eaa9947,0 1px 3px #0000000f}}.st-node-check{position:absolute;top:5px;right:7px;font-size:16px;font-weight:800;color:var(--check-color);line-height:1;text-shadow:0 1px 2px rgba(74,170,153,.3)}.st-node-number{font-family:var(--font-mono);font-size:12px;color:var(--gray);letter-spacing:2px;text-transform:uppercase;margin-bottom:1px}.st-node-name{font-family:var(--font-sans);font-size:18px;font-weight:700;color:var(--black);line-height:1.2;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}.st-node-concept{font-family:var(--font-mono);font-size:12px;color:var(--gray);margin-top:2px;letter-spacing:.5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}.st-node-ceo{font-family:var(--font-main);font-size:12px;color:var(--gray-light);font-style:italic;margin-top:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%;line-height:1.3}.st-node-time{font-family:var(--font-mono);font-size:10px;color:var(--node-complete);font-weight:600;margin-top:1px;letter-spacing:.5px}.st-node-locked-text{font-family:var(--font-mono);font-size:9px;color:var(--gray-light);margin-top:2px;letter-spacing:.3px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}.game-screen{display:grid;grid-template-columns:var(--left-w, 300px) 6px 1fr 6px var(--right-w, 320px);grid-template-rows:48px 1fr 36px;background:var(--cream);align-items:stretch;justify-content:stretch}.game-toolbar{grid-column:1 / -1;display:flex;align-items:center;padding:0 16px;gap:12px;background:var(--white);border-bottom:2px solid var(--black);box-shadow:0 2px 8px #0000000a;z-index:2}.game-toolbar .toolbar-back{font-family:var(--font-mono);font-size:12px;color:var(--black);background:none;border:1.5px solid var(--black);padding:4px 10px;cursor:pointer;transition:all .15s ease;letter-spacing:.5px}.game-toolbar .toolbar-back:hover{background:var(--black);color:var(--cream)}.game-toolbar .toolbar-title{font-family:var(--font-sans);font-size:16px;font-weight:700;color:var(--black)}.game-toolbar .toolbar-level{font-family:var(--font-mono);font-size:11px;color:var(--gray);letter-spacing:2px;padding:2px 8px;background:var(--cream);border:1px solid var(--cream-darker)}.game-toolbar .toolbar-spacer{flex:1}.game-toolbar .toolbar-btn{font-family:var(--font-mono);font-size:12px;font-weight:500;padding:6px 14px;cursor:pointer;transition:all .15s ease;letter-spacing:1px}.toolbar-btn.run{background:var(--black);color:var(--cream);border:2px solid var(--black)}.toolbar-btn.run:hover{background:var(--black-light);box-shadow:2px 2px #0003;transform:translateY(-1px)}.toolbar-btn.reset{background:var(--white);color:var(--black);border:2px solid var(--black)}.toolbar-btn.reset:hover{background:var(--cream-dark);transform:translateY(-1px)}.toolbar-tool-indicator{font-family:var(--font-mono);font-size:11px;letter-spacing:1px;color:var(--blue-dark);background:var(--blue);border:1px solid var(--blue-dark);padding:2px 8px;display:none}.game-palette{grid-row:2;grid-column:1;background:var(--cream);border-right:none;padding:16px;overflow-y:auto;box-shadow:2px 0 12px #0000000a;z-index:1}.palette-header{font-family:var(--font-mono);font-size:13px;letter-spacing:3px;color:var(--black);font-weight:600}.palette-hint{font-family:var(--font-mono);font-size:12px;color:var(--gray);margin-bottom:12px}.palette-section-title{font-family:var(--font-mono);font-size:12px;letter-spacing:2px;text-transform:uppercase;color:var(--gray);margin:14px 0 6px;padding-top:8px;border-top:1px solid var(--cream-darker)}.palette-section-title:first-of-type{margin-top:0;padding-top:0;border-top:none}.palette-item{display:flex;align-items:center;gap:12px;padding:10px 12px;margin-bottom:3px;background:var(--white);border:1.5px solid var(--black);cursor:pointer;transition:all .12s;user-select:none}.palette-item[data-type=nmos]{background:var(--comp-nmos)}.palette-item[data-type=pmos]{background:var(--comp-pmos)}.palette-item[data-type=vdd]{background:var(--comp-vdd)}.palette-item[data-type=gnd]{background:var(--comp-gnd)}.palette-item[data-type=not],.palette-item[data-type=nand],.palette-item[data-type=nor],.palette-item[data-type=and],.palette-item[data-type=or],.palette-item[data-type=xor]{background:var(--comp-gate)}.palette-item[data-type=half_adder],.palette-item[data-type=full_adder],.palette-item[data-type=adder_8bit]{background:var(--comp-bus-arith)}.palette-item[data-type=xor_8bit],.palette-item[data-type=not_8bit],.palette-item[data-type=and_8bit],.palette-item[data-type=or_8bit],.palette-item[data-type=xor_8bit_pair],.palette-item[data-type=or_reduce]{background:var(--comp-bus-logic)}.palette-item[data-type=mux_8bit],.palette-item[data-type=mux_4way_8bit],.palette-item[data-type=mux_8way_8bit],.palette-item[data-type=decoder_2to4],.palette-item[data-type=decoder_3to8],.palette-item[data-type=splitter],.palette-item[data-type=joiner],.palette-item[data-type=mux]{background:var(--comp-bus-route)}.palette-item[data-type=sr_latch],.palette-item[data-type=gated_d_latch],.palette-item[data-type=dff],.palette-item[data-type=clock],.palette-item[data-type=register_8bit]{background:var(--comp-seq)}.palette-item[data-type=alu],.palette-item[data-type=reg_file],.palette-item[data-type=ram_8x8],.palette-item[data-type=program_counter]{background:var(--comp-complex)}.palette-item[data-type=capacitor],.palette-item[data-type=pass_gate],.palette-item[data-type=sense_amp],.palette-item[data-type=dram_cell]{background:var(--comp-memory)}.palette-item:hover{transform:translate(2px);box-shadow:2px 2px 0 var(--black)}.palette-item:active{transform:translate(0)}.palette-item.selected{box-shadow:3px 3px 0 var(--black);filter:brightness(1.05)}.palette-item .item-icon{width:36px;height:36px;display:flex;align-items:center;justify-content:center;font-family:var(--font-mono);font-size:14px;font-weight:700;border:1.5px solid rgba(0,0,0,.25);border-radius:4px;background:#fff6;flex-shrink:0;color:var(--black)}.palette-item .item-icon.nmos{color:var(--blue-dark);background:var(--blue);border-color:var(--blue-dark)}.palette-item .item-icon.pmos{color:var(--subtitle-accent);background:var(--pink);border-color:var(--subtitle-accent)}.palette-item .item-icon.power{color:var(--yellow-dark);background:var(--yellow);border-color:var(--yellow-dark)}.palette-item .item-icon.ground{color:var(--gray-dark);background:var(--cream-dark);border-color:var(--gray)}.palette-item .item-icon.gate{color:var(--purple-dark);background:var(--purple);border-color:var(--purple-dark)}.palette-item .item-info{display:flex;flex-direction:column;gap:1px;min-width:0}.palette-item .item-label{font-family:var(--font-mono);font-size:15px;font-weight:600;color:var(--black)}.palette-item .item-sublabel{font-size:12px;color:#00000073;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.palette-action{font-family:var(--font-mono);font-size:14px;color:var(--gray-dark);padding:6px 10px;cursor:pointer;display:flex;align-items:center;justify-content:space-between;transition:all .12s}.palette-action:hover{background:var(--white);color:var(--black)}.palette-shortcut{font-size:10px;color:var(--gray);padding:1px 4px;border:1px solid var(--gray-lighter)}.resize-handle{grid-row:2;background:var(--cream-darker);cursor:col-resize;display:flex;align-items:center;justify-content:center;transition:background .1s}.resize-handle:hover,.resize-handle.active{background:var(--gray-lighter)}.resize-handle:after{content:"";width:2px;height:24px;background:var(--gray-light);border-radius:1px}.resize-handle-left{grid-column:2}.resize-handle-right{grid-column:4}.game-canvas-container{grid-row:2;grid-column:3;position:relative;overflow:hidden;border-left:0;border-right:0;background:var(--canvas-bg)}.game-canvas-container canvas{display:block}.game-info{grid-row:2;grid-column:5;background:var(--cream);border-left:none;padding:18px;overflow-y:auto;display:flex;flex-direction:column;gap:14px;box-shadow:-2px 0 12px #0000000a;z-index:1}.info-section{display:flex;flex-direction:column;gap:8px}.info-section-title{font-family:var(--font-mono);font-size:12px;letter-spacing:2px;text-transform:uppercase;color:var(--gray);padding-bottom:6px;border-bottom:1px solid var(--cream-darker)}.info-objective{font-size:16px;color:var(--gray-dark);line-height:1.6}.info-truth-table{width:100%;border-collapse:collapse;font-family:var(--font-mono);font-size:13px}.info-truth-table th{text-align:center;padding:7px 12px;color:var(--gray);border-bottom:2px solid var(--black);font-weight:500;letter-spacing:1px;font-size:13px}.info-truth-table td{text-align:center;padding:7px 12px;color:var(--black);font-size:15px}.info-truth-table td.tt-sep{color:var(--gray-light);font-size:11px}.info-truth-table .tt-row{border-bottom:1px solid var(--cream-darker);transition:background .12s}.info-truth-table .tt-row.pass{background:#2ecc7114}.info-truth-table .tt-row.fail{background:#e8545414}.info-truth-table td.pass{color:var(--green);font-weight:600}.info-truth-table td.fail{color:var(--red);font-weight:600}.info-truth-table td.untested{color:var(--gray-light)}.info-truth-table .tt-status{font-size:15px}.info-truth-table .tt-status.pass{color:var(--green)}.info-truth-table .tt-status.fail{color:var(--red)}.info-truth-table .tt-status.untested{color:var(--gray-light);font-size:11px}.info-truth-table .tt-row.tt-current{background:#5b9bd51a;box-shadow:inset 3px 0 0 var(--blue-dark)}.info-progress{display:flex;flex-direction:column;gap:6px}.info-progress-bar{width:100%;height:6px;background:var(--cream-darker);overflow:hidden}.info-progress-fill{height:100%;background:var(--mint-dark);transition:width .3s ease}.info-progress-fill.complete{background:var(--green)}.info-progress-label{font-family:var(--font-mono);font-size:12px;color:var(--gray);letter-spacing:.5px}.tt-summary{font-family:var(--font-mono);font-size:13px;letter-spacing:1px;padding:8px 12px;border-radius:4px;margin-bottom:8px;font-weight:600}.tt-summary.tt-pass{background:#2e99661f;color:var(--green)}.tt-summary.tt-fail{background:#e854541a;color:var(--error)}.tt-summary.tt-untested{background:#64646414;color:var(--gray)}.tt-expected{font-size:11px;opacity:.6}[data-theme=dark] .tt-summary.tt-pass{background:#3cb4781f}[data-theme=dark] .tt-summary.tt-fail{background:#dc50501f}[data-theme=dark] .tt-summary.tt-untested{background:#96969614}.tt-legend{font-family:var(--font-mono);font-size:12px;color:var(--gray);margin-top:8px;padding-top:6px;border-top:1px solid var(--cream-darker)}.seq-step-bar{position:absolute;bottom:12px;left:50%;transform:translate(-50%);display:flex;align-items:center;gap:12px;background:#faf3e8f2;border:2px solid var(--black);padding:8px 20px;z-index:10;font-family:var(--font-mono)}.seq-step-btn{background:var(--black);color:#fff;border:none;padding:8px 24px;font-family:var(--font-mono);font-size:14px;font-weight:600;letter-spacing:2px;cursor:pointer;transition:background .1s ease}.seq-step-btn:hover{background:var(--black-light)}.seq-step-btn:active{background:var(--gray-dark)}.seq-reset-btn{background:var(--cream);border:1.5px solid var(--black);padding:8px 16px;font-family:var(--font-mono);font-size:12px;font-weight:600;letter-spacing:1px;cursor:pointer;transition:background .1s ease}.seq-reset-btn:hover{background:var(--cream-dark)}.seq-tick{font-size:14px;font-weight:600;color:var(--gray-dark);letter-spacing:1px}.seq-history-scroll{max-height:240px;overflow-y:auto}.seq-history-table{width:100%;border-collapse:collapse;font-family:var(--font-mono);font-size:13px}.seq-history-table th{border-bottom:2px solid var(--black);padding:4px 8px;text-align:center;font-size:11px;letter-spacing:1px}.seq-history-table td{padding:4px 8px;text-align:center;border-bottom:1px solid var(--cream-darker)}.seq-history-table tr.seq-history-current{background:var(--cream-dark);font-weight:700}.game-statusbar{grid-column:1 / -1;display:flex;align-items:center;padding:0 16px;gap:12px;background:var(--white);border-top:2px solid var(--black);font-family:var(--font-mono);font-size:11px;color:var(--gray);box-shadow:0 -2px 8px #00000008;z-index:2}.statusbar-item{display:flex;align-items:center;gap:5px}.statusbar-spacer{flex:1}.statusbar-hint{font-size:10px;letter-spacing:.5px}.statusbar-dot{width:7px;height:7px;border-radius:50%;background:var(--gray-light);transition:background .3s}.statusbar-dot.pass{background:var(--green)}.statusbar-dot.error{background:var(--red)}.statusbar-dot.idle{background:var(--gray-light)}.statusbar-sep{width:1px;height:18px;background:var(--cream-darker);margin:0 4px}.zoom-controls{display:flex;align-items:center;gap:2px}.zoom-btn{font-family:var(--font-mono);font-size:15px;width:24px;height:24px;display:flex;align-items:center;justify-content:center;background:none;border:1.5px solid var(--cream-darker);color:var(--gray-dark);cursor:pointer;padding:0;transition:all .15s ease}.zoom-btn:hover{border-color:var(--black);color:var(--black);background:var(--cream);transform:scale(1.05)}.zoom-btn.zoom-fit{margin-left:4px;font-size:13px}.zoom-btn.active{background:var(--mint);color:var(--white);border-color:var(--mint-dark)}.zoom-level{font-family:var(--font-mono);font-size:12px;color:var(--gray-dark);min-width:40px;text-align:center;cursor:pointer;padding:2px 4px}.zoom-level:hover{color:var(--black);text-decoration:underline}.narrative-overlay{position:fixed;inset:0;z-index:100;display:flex;align-items:center;justify-content:center;background:#faf3e8d9;backdrop-filter:blur(6px);opacity:0;pointer-events:none;transition:opacity .3s ease}.narrative-overlay.active{opacity:1;pointer-events:all}.narrative-card{max-width:500px;width:90%;background:var(--white);border:2px solid var(--black);padding:32px;animation:card-in .35s ease-out}@keyframes card-in{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}.narrative-header{display:flex;align-items:center;gap:14px;margin-bottom:4px}.narrative-avatar{width:40px;height:40px;display:flex;align-items:center;justify-content:center;font-family:var(--font-mono);font-size:15px;font-weight:700;background:var(--black);color:var(--cream);flex-shrink:0;letter-spacing:1px}.narrative-meta{flex:1}.narrative-card .narrative-from{font-family:var(--font-mono);font-size:11px;letter-spacing:2px;text-transform:uppercase;color:var(--black);font-weight:600;margin-bottom:2px}.narrative-card .narrative-subject{font-family:var(--font-mono);font-size:11px;color:var(--gray)}.narrative-divider{width:100%;height:1px;background:var(--cream-darker);margin:16px 0}.narrative-card .narrative-body{font-size:15px;line-height:1.7;color:var(--gray-dark)}.narrative-body-animate{animation:narrative-fade .6s ease-out .2s both}@keyframes narrative-fade{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}.narrative-card .narrative-body em{color:var(--black);font-style:normal;font-weight:600}.narrative-card .narrative-dismiss{margin-top:24px;font-family:var(--font-mono);font-size:12px;letter-spacing:1px;color:var(--cream);background:var(--black);border:2px solid var(--black);padding:8px 20px;cursor:pointer;transition:all .15s ease}.narrative-card .narrative-dismiss:hover{background:var(--black-light);transform:translateY(-1px)}.success-overlay{position:fixed;inset:0;z-index:100;display:flex;align-items:center;justify-content:center;background:#faf3e8d9;backdrop-filter:blur(6px);opacity:0;pointer-events:none;transition:opacity .3s ease}.success-overlay.active{opacity:1;pointer-events:all}.success-confetti{position:absolute;inset:0;pointer-events:none;z-index:1}.success-card{max-width:440px;width:90%;background:var(--white);border:2px solid var(--mint-dark);padding:36px;text-align:center;animation:success-in .45s ease-out;position:relative;z-index:2}@keyframes success-in{0%{opacity:0;transform:scale(.92) translateY(12px)}60%{transform:scale(1.02) translateY(-2px)}to{opacity:1;transform:scale(1) translateY(0)}}.success-card h2{font-family:var(--font-mono);font-size:25px;color:var(--mint-dark);margin-bottom:4px;letter-spacing:4px}.success-card .success-subtitle{font-size:15px;color:var(--gray);margin-bottom:20px}.success-stats{display:flex;align-items:center;justify-content:center;gap:24px;margin-bottom:20px;padding:14px 0;border-top:1px solid var(--cream-darker);border-bottom:1px solid var(--cream-darker)}.success-stat{text-align:center}.success-stat-value{font-family:var(--font-mono);font-size:21px;font-weight:700;color:var(--black)}.success-stat-label{font-family:var(--font-mono);font-size:10px;letter-spacing:2px;color:var(--gray);margin-top:2px}.success-stat-sep{width:1px;height:32px;background:var(--cream-darker)}.success-card .fun-fact{text-align:left;font-size:14px;color:var(--gray-dark);line-height:1.6;padding:12px 16px;background:var(--mint);border-left:3px solid var(--mint-dark);margin-bottom:24px}.success-card .fun-fact strong{color:var(--black);font-weight:600}.success-card .success-actions{display:flex;gap:12px;justify-content:center}.success-btn{font-family:var(--font-mono);font-size:12px;letter-spacing:1px;padding:10px 24px;cursor:pointer;transition:all .15s ease}.success-btn.next{background:var(--mint-dark);color:var(--white);border:2px solid var(--mint-dark);padding:12px 32px;font-size:13px;font-weight:600;letter-spacing:1.5px}.success-btn.next:hover{background:var(--submit-bg);box-shadow:2px 2px #00000026;transform:translateY(-1px)}.success-btn.view{background:transparent;color:var(--gray-dark);border:2px solid var(--cream-darker)}.success-btn.view:hover{background:var(--cream-dark);border-color:var(--gray-light);color:var(--black)}.success-btn.back{background:var(--white);color:var(--gray-dark);border:2px solid var(--cream-darker)}.success-btn.back:hover{background:var(--cream-dark);border-color:var(--gray-light);color:var(--black)}.palette-item{position:relative}.palette-info-btn{position:absolute;top:4px;right:4px;width:18px;height:18px;border-radius:50%;border:1.5px solid var(--gray-lighter);background:var(--cream);color:var(--gray);font-family:var(--font-mono);font-size:11px;font-weight:600;font-style:italic;line-height:14px;text-align:center;cursor:pointer;padding:0;transition:all .12s;z-index:2;opacity:.6}.palette-item:hover .palette-info-btn{opacity:1}.palette-info-btn:hover{border-color:var(--black);color:var(--black);background:var(--white)}.component-info-overlay{position:fixed;inset:0;z-index:110;display:flex;align-items:center;justify-content:center;background:#faf3e8d9;backdrop-filter:blur(6px);opacity:0;pointer-events:none;transition:opacity .3s ease}.component-info-overlay.active{opacity:1;pointer-events:all}.component-info-card{max-width:480px;width:90%;background:var(--white);border:2px solid var(--black);padding:0;animation:card-in .35s ease-out;overflow:hidden}.component-info-card .info-card-header{display:flex;align-items:center;gap:14px;padding:20px 28px;background:var(--cream);border-bottom:2px solid var(--black)}.component-info-card .info-card-icon{width:48px;height:48px;display:flex;align-items:center;justify-content:center;font-family:var(--font-mono);font-size:21px;font-weight:700;border:2px solid var(--black);flex-shrink:0}.component-info-card .info-card-icon.nmos{color:var(--blue-dark);background:var(--blue);border-color:var(--blue-dark)}.component-info-card .info-card-icon.pmos{color:#c06030;background:var(--pink);border-color:#c06030}.component-info-card .info-card-icon.power{color:var(--yellow-dark);background:var(--yellow);border-color:var(--yellow-dark)}.component-info-card .info-card-icon.ground{color:var(--gray-dark);background:var(--cream-dark);border-color:var(--gray)}.component-info-card .info-card-icon.gate{color:var(--purple-dark);background:var(--purple);border-color:var(--purple-dark)}.component-info-card .info-card-name{font-family:var(--font-sans);font-size:25px;font-weight:800;color:var(--black)}.component-info-card .info-card-category{font-family:var(--font-mono);font-size:11px;letter-spacing:2px;color:var(--gray);text-transform:uppercase}.component-info-card .info-card-body{font-size:15px;line-height:1.6;color:var(--gray-dark);margin-bottom:8px;padding:10px 28px 0}.info-card-tt{margin-bottom:12px;padding:0 28px}.info-card-tt .info-card-tt-title{font-family:var(--font-mono);font-size:11px;letter-spacing:2px;color:var(--gray);margin-bottom:8px}.info-card-tt .info-truth-table{width:100%}.bus-op-formula{font-family:var(--font-mono);font-size:14px;font-weight:600;color:var(--black);margin-bottom:10px;padding:8px 10px;background:#0000000a;border-radius:4px}.bus-op-pins{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:10px}.bus-pin{display:inline-flex;align-items:center;gap:4px;font-family:var(--font-mono);font-size:11px;padding:3px 8px;border-radius:3px;border:1px solid var(--cream-darker)}.bus-pin.in{background:#4682b41a;border-color:#4682b44d}.bus-pin.out{background:#2e99661a;border-color:#2e99664d}.bus-pin-name{font-weight:600}.bus-pin-width{color:var(--gray);font-size:10px}.bus-op-examples{margin-top:6px;padding-top:6px;border-top:1px solid var(--cream-darker)}.bus-ex{font-family:var(--font-mono);font-size:12px;color:var(--gray-dark);padding:3px 0;display:flex;align-items:center;gap:6px}.bus-ex-in{color:var(--gray-dark)}.bus-ex-arrow{color:var(--gray)}.bus-ex-out{font-weight:600;color:var(--black)}[data-theme=dark] .bus-op-formula{color:var(--dm-text);background:var(--dm-surface-hover)}[data-theme=dark] .bus-pin{border-color:var(--dm-border)}[data-theme=dark] .bus-pin.in{background:#64a0dc1f;border-color:#64a0dc4d}[data-theme=dark] .bus-pin.out{background:#3cb4781f;border-color:#3cb4784d}[data-theme=dark] .bus-pin-width{color:var(--dm-text-muted)}[data-theme=dark] .bus-op-examples{border-top-color:var(--dm-border)}[data-theme=dark] .bus-ex-in{color:var(--dm-text-secondary)}[data-theme=dark] .bus-ex-out{color:var(--dm-text)}.hint-section{margin-top:4px}.hint-btn{font-family:var(--font-mono);font-size:12px;letter-spacing:1px;color:var(--gray-dark);background:var(--cream-dark);border:1.5px solid var(--cream-darker);padding:6px 14px;cursor:pointer;transition:all .15s ease;width:100%;text-align:center}.hint-btn:hover{background:var(--cream-darker);border-color:var(--gray-light);color:var(--black);transform:translateY(-1px)}.hint-text{font-size:15px;line-height:1.6;color:var(--gray-dark);padding:10px 0 0;font-style:italic}.hint-step{font-size:13px;line-height:1.6;color:var(--gray-dark);font-style:italic;padding:8px 0 4px;border-bottom:1px solid var(--cream-darker);margin-bottom:4px}.hint-step:first-child{padding-top:10px}[data-theme=dark] .hint-step{color:var(--dm-text-secondary);border-color:var(--dm-border)}.next-level-sidebar-btn{margin-bottom:8px}.live-truth-table{background:var(--white);border:2px solid var(--black);padding:12px 14px;margin-bottom:14px}.live-truth-table .ltt-header{font-family:var(--font-mono);font-size:12px;letter-spacing:1.5px;color:var(--gray-dark);margin-bottom:8px;font-weight:600}.live-truth-table .info-truth-table{font-size:14px}.info-card-tt .info-truth-table td.dim{color:var(--gray);font-size:13px}.component-info-card .info-card-tag{display:inline-block;font-family:var(--font-mono);font-size:11px;letter-spacing:1px;color:var(--gray-dark);background:var(--cream);border:1px solid var(--cream-darker);padding:2px 8px;margin:0 28px 8px}.component-info-card .info-card-dismiss{font-family:var(--font-mono);font-size:12px;letter-spacing:1px;color:var(--cream);background:var(--black);border:2px solid var(--black);padding:8px 20px;margin:0 28px 24px;cursor:pointer;transition:all .15s ease}.component-info-card .info-card-dismiss:hover{background:var(--black-light);transform:translateY(-1px)}::-webkit-scrollbar{width:6px}::-webkit-scrollbar-track{background:var(--cream)}::-webkit-scrollbar-thumb{background:var(--cream-darker)}::-webkit-scrollbar-thumb:hover{background:var(--gray-light)}.game-screen.minigame-active{grid-template-columns:0 0 1fr 0 0;grid-template-rows:48px 1fr 0}.game-screen.minigame-active .game-canvas-container{grid-column:1 / -1}.wt-overlay{position:absolute;bottom:0;left:0;right:0;display:flex;align-items:center;justify-content:space-between;padding:12px 24px;background:#faf3e8eb;backdrop-filter:blur(4px);border-top:2px solid var(--black);z-index:5;pointer-events:none;gap:16px}.wt-overlay .wt-buttons{display:flex;align-items:center;gap:12px;flex-shrink:0}.wt-instruction{font-family:var(--font-main);font-size:14px;color:var(--gray-dark);line-height:1.4}.wt-next-btn{font-family:var(--font-mono);font-size:14px;letter-spacing:2px;padding:10px 32px;background:var(--success);color:#fff;border:none;cursor:pointer;pointer-events:auto;transition:background .15s}.wt-next-btn:hover{background:var(--success-hover)}.wt-skip-btn{font-family:var(--font-mono);font-size:11px;letter-spacing:1px;padding:6px 16px;background:transparent;color:var(--gray);border:1px solid var(--cream-darker);cursor:pointer;pointer-events:auto;transition:color .15s,border-color .15s}.wt-skip-btn:hover{color:var(--gray-dark);border-color:var(--gray-light)}.mg-difficulty-modal{position:absolute;inset:0;z-index:50;display:flex;align-items:center;justify-content:center;background:#0006}.mg-difficulty-card{background:var(--white, #fff);border:2px solid var(--black);padding:32px;max-width:360px;width:90%;display:flex;flex-direction:column;gap:12px}.mg-difficulty-title{font-family:var(--font-mono);font-size:16px;font-weight:700;letter-spacing:.1em;text-align:center;margin-bottom:8px}.mg-difficulty-btn{display:flex;flex-direction:column;padding:14px 18px;border:2px solid var(--black);background:var(--cream);cursor:pointer;text-align:left;transition:background .12s}.mg-difficulty-btn:hover{background:var(--cream-dark)}.mg-difficulty-label{font-family:var(--font-mono);font-size:14px;font-weight:700;letter-spacing:.08em}.mg-difficulty-desc{font-family:var(--font-main);font-size:12px;color:var(--gray);margin-top:2px}.mg-pause-btn,.mg-settings-btn{background:none;border:1.5px solid var(--gray-lighter);width:32px;height:32px;font-size:16px;cursor:pointer;display:flex;align-items:center;justify-content:center;margin-left:8px;opacity:.6;transition:opacity .15s}.mg-pause-btn:hover,.mg-settings-btn:hover{opacity:1}.mg-pause-overlay{position:absolute;inset:0;z-index:40;display:flex;align-items:center;justify-content:center;background:#00000080;cursor:pointer}.mg-pause-text{font-family:var(--font-mono);font-size:36px;font-weight:800;letter-spacing:.2em;color:#fff}[data-theme=dark] .mg-difficulty-card{background:#1a1a1e;border-color:#555;color:#e0dcd4}[data-theme=dark] .mg-difficulty-btn{background:#2a2a30;border-color:#555;color:#e0dcd4}[data-theme=dark] .mg-difficulty-btn:hover{background:#3a3a42}[data-theme=dark] .mg-difficulty-desc{color:#888}[data-theme=dark] .mg-pause-btn,[data-theme=dark] .mg-settings-btn{border-color:#555;color:#e0dcd4}.br-game{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100%;gap:16px;font-family:var(--font-main);user-select:none;position:relative;max-width:780px;width:100%;margin:0 auto;padding:0 20px;box-sizing:border-box}.br-header{display:flex;width:100%;justify-content:space-between;align-items:center;font-family:var(--font-mono);font-size:15px;letter-spacing:1.5px;color:var(--gray-dark)}.br-timer{font-weight:700;font-size:33px;min-width:64px;text-align:center;transition:color .3s,transform .2s;padding:8px 16px;border:2px solid currentColor;border-radius:4px;line-height:1}.br-timer.time-ok{color:var(--success)}.br-timer.time-warn{color:var(--warning)}.br-timer.time-danger{color:var(--error);animation:timer-pulse .6s ease-in-out infinite}@keyframes timer-pulse{0%,to{transform:scale(1);opacity:1}50%{transform:scale(1.08);opacity:.8}}.br-target-section{text-align:center}.br-label{font-family:var(--font-mono);font-size:12px;letter-spacing:2px;color:var(--gray-light);margin-bottom:8px}.br-target{font-family:var(--font-mono);font-size:72px;font-weight:800;color:var(--black);line-height:1;letter-spacing:-2px;min-width:160px;text-align:center}.br-round-content{display:flex;flex-direction:column;align-items:center;gap:16px;width:100%;transition:opacity .12s ease-out}.br-round-content.fade{opacity:0}.br-bits{display:flex;gap:6px;width:100%;justify-content:center}.br-bit{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;flex:1 1 0;min-width:0;max-width:90px;aspect-ratio:3/4;border:2px solid var(--black);background:var(--cream);cursor:pointer;padding:6px 0;transition:background .1s,border-color .1s,transform .1s;font-family:var(--font-mono)}.br-bit.toggling{transform:scale(1.12)}.br-bit:active{transform:scale(.95)}.br-bit:hover{background:var(--cream-dark)}.br-bit.active{background:var(--node-complete);border-color:var(--success-dark);color:#fff}.br-bit.active:hover{background:var(--success-hover)}.br-bit-weight{font-size:13px;opacity:.5}.br-bit-val{font-size:32px;font-weight:700}.br-value-row{text-align:center}.br-your-value{font-family:var(--font-mono);font-size:37px;font-weight:700;color:var(--black)}.br-controls{display:flex;gap:12px}.br-submit{font-family:var(--font-mono);font-size:15px;letter-spacing:2px;padding:12px 40px;background:var(--black);color:#fff;border:none;cursor:pointer;transition:background .12s}.br-submit:hover{background:var(--btn-dark-hover)}.br-feedback{font-family:var(--font-mono);font-size:15px;min-height:24px;letter-spacing:1px;transition:opacity .2s}.br-feedback.correct{color:var(--success);font-weight:600}.br-feedback.wrong{color:var(--error);font-weight:600}.br-game.flash-correct{animation:bg-flash-green .4s ease-out}.br-game.flash-wrong .br-bits{animation:shake-bits .4s ease-out}.br-score-popup{position:absolute;font-family:var(--font-mono);font-size:19px;font-weight:700;color:var(--success);pointer-events:none;animation:score-pop .8s ease-out forwards}@keyframes bg-flash-green{0%{background:#2e996626}to{background:transparent}}@keyframes shake-bits{0%,to{transform:translate(0)}15%{transform:translate(-6px)}30%{transform:translate(5px)}45%{transform:translate(-4px)}60%{transform:translate(3px)}75%{transform:translate(-1px)}}@keyframes score-pop{0%{opacity:1;transform:translateY(0) scale(1)}to{opacity:0;transform:translateY(-40px) scale(1.3)}}.br-hint{font-size:13px;color:var(--gray-light);font-style:italic;min-height:20px;transition:opacity .3s}.br-done{text-align:center;display:flex;flex-direction:column;align-items:center;gap:16px}.br-done-title{font-family:var(--font-mono);font-size:33px;letter-spacing:3px;font-weight:800}.br-done-score{font-family:var(--font-mono);font-size:23px;color:var(--gray-dark);font-weight:700}.br-done-stats{font-family:var(--font-mono);font-size:14px;color:var(--gray);letter-spacing:1px;line-height:2}.br-done-msg{font-size:16px;color:var(--gray-dark);max-width:400px;margin-top:4px}.nt-game{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100%;gap:24px;font-family:var(--font-main);user-select:none;position:relative;max-width:900px;width:100%;margin:0 auto;padding:0 24px;box-sizing:border-box}.nt-header{display:flex;width:100%;justify-content:space-between;align-items:center;font-family:var(--font-mono);font-size:15px;letter-spacing:1.5px;color:var(--gray-dark)}.nt-timer{font-weight:700;font-size:33px;min-width:64px;text-align:center;transition:color .3s,transform .2s;padding:8px 16px;border:2px solid currentColor;border-radius:4px;line-height:1}.nt-timer.time-ok{color:var(--success)}.nt-timer.time-warn{color:var(--warning)}.nt-timer.time-danger{color:var(--error);animation:timer-pulse .6s ease-in-out infinite}.nt-target-section{text-align:center}.nt-label{font-family:var(--font-mono);font-size:12px;letter-spacing:2px;color:var(--gray-light);margin-bottom:8px}.nt-target{font-family:var(--font-mono);font-size:89px;font-weight:800;color:var(--black);line-height:1;letter-spacing:-2px}.nt-bits{display:flex;gap:8px}.nt-bit{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;width:120px;height:140px;border:2px solid var(--black);background:var(--cream);cursor:pointer;padding:8px 0;transition:background .1s,border-color .1s,transform .1s;font-family:var(--font-mono)}.nt-bit.toggling{transform:scale(1.12)}.nt-bit:active{transform:scale(.95)}.nt-bit:hover{background:var(--cream-dark)}.nt-bit.active{background:var(--node-complete);border-color:var(--success-dark);color:#fff}.nt-bit.active:hover{background:var(--success-hover)}.nt-bit-weight{font-size:13px;opacity:.5}.nt-bit-val{font-size:42px;font-weight:700}.nt-value-row{text-align:center}.nt-dual-value{font-family:var(--font-mono);font-size:21px;font-weight:700;color:var(--black)}.nt-controls{display:flex;gap:12px}.nt-submit{font-family:var(--font-mono);font-size:15px;letter-spacing:2px;padding:12px 40px;background:var(--black);color:#fff;border:none;cursor:pointer;transition:background .12s}.nt-submit:hover{background:var(--btn-dark-hover)}.nt-feedback{font-family:var(--font-mono);font-size:15px;min-height:20px;letter-spacing:1px}.nt-feedback.correct{color:var(--success);font-weight:600}.nt-feedback.wrong{color:var(--error);font-weight:600}.nt-game.flash-correct{animation:bg-flash-green .4s ease-out}.nt-game.flash-wrong .nt-bits{animation:shake-bits .4s ease-out}.nt-score-popup{position:absolute;font-family:var(--font-mono);font-size:19px;font-weight:700;color:var(--success);pointer-events:none;animation:score-pop .8s ease-out forwards}.nt-hint{font-size:13px;color:var(--gray-light);font-style:italic}.nt-done{text-align:center;display:flex;flex-direction:column;align-items:center;gap:16px}.nt-done-title{font-family:var(--font-mono);font-size:33px;letter-spacing:3px;font-weight:800}.nt-done-score{font-family:var(--font-mono);font-size:23px;color:var(--gray-dark);font-weight:700}.nt-done-stats{font-family:var(--font-mono);font-size:14px;color:var(--gray);letter-spacing:1px;line-height:2}.nt-done-msg{font-size:16px;color:var(--gray-dark);max-width:400px;margin-top:4px}.br-choice-buttons,.nt-choice-buttons{display:flex;gap:16px;margin-top:8px}.br-endless-btn,.nt-endless-btn{background:var(--accent)!important;color:#fff!important}.br-endless-btn:hover,.nt-endless-btn:hover{filter:brightness(1.1)}.br-endless-badge,.nt-endless-badge{display:inline-block;font-family:var(--font-mono);font-size:11px;font-weight:700;letter-spacing:2px;background:var(--accent);color:#fff;padding:2px 8px;border-radius:3px;vertical-align:middle;margin-right:8px}.br-star-display,.nt-star-display{font-size:18px;letter-spacing:3px;color:var(--accent);margin-left:8px;vertical-align:middle}.br-done-stars,.nt-done-stars{font-size:36px;letter-spacing:6px;color:var(--accent)}.hr-game{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100%;gap:16px;font-family:var(--font-main);user-select:none;position:relative;max-width:550px;width:100%;margin:0 auto;padding:0 20px;box-sizing:border-box}.hr-header{display:flex;width:100%;justify-content:space-between;align-items:center;font-family:var(--font-mono);font-size:15px;letter-spacing:1.5px;color:var(--gray-dark)}.hr-timer{font-weight:700;font-size:20px}.hr-timer.time-ok{color:var(--green)}.hr-timer.time-warn{color:var(--accent)}.hr-timer.time-danger{color:var(--error)}.hr-prompt-section{text-align:center;width:100%}.hr-prompt-label{font-family:var(--font-mono);font-size:11px;letter-spacing:2px;color:var(--gray);margin-bottom:6px}.hr-prompt{font-family:var(--font-mono);font-size:48px;font-weight:800;color:var(--black);letter-spacing:4px;min-width:180px;text-align:center}.hr-round-content{display:flex;flex-direction:column;align-items:center;gap:16px;width:100%;transition:opacity .12s ease-out}.hr-round-content.fade{opacity:0}.hr-answer-section{text-align:center;width:100%}.hr-answer-label{font-family:var(--font-mono);font-size:11px;letter-spacing:2px;color:var(--gray);margin-bottom:8px}.hr-input-row{display:flex;align-items:center;justify-content:center;gap:4px}.hr-prefix{font-family:var(--font-mono);font-size:28px;font-weight:600;color:var(--gray);min-width:40px}.hr-input{font-family:var(--font-mono);font-size:28px;font-weight:700;text-align:center;width:200px;padding:10px 16px;border:2px solid var(--cream-darker);border-radius:6px;background:var(--white);color:var(--black);outline:none;letter-spacing:3px;text-transform:uppercase}.hr-input:focus{border-color:var(--accent);box-shadow:0 0 0 3px #4682b426}.hr-submit{font-family:var(--font-mono);font-size:14px;letter-spacing:2px;padding:12px 40px;background:var(--black);color:var(--white);border:none;cursor:pointer;font-weight:600}.hr-submit:hover{opacity:.85}.hr-feedback{font-family:var(--font-mono);font-size:14px;letter-spacing:1px;min-height:24px;color:var(--gray);transition:opacity .2s}.hr-feedback.correct{color:var(--green);font-weight:600}.hr-feedback.wrong{color:var(--error);font-weight:600}.hr-ref{width:100%;text-align:center;padding-top:12px;border-top:1px solid var(--cream-darker)}.hr-ref-title{font-family:var(--font-mono);font-size:10px;letter-spacing:2px;color:var(--gray);margin-bottom:8px}.hr-ref-grid{display:flex;flex-wrap:wrap;justify-content:center;gap:4px 10px;font-family:var(--font-mono);font-size:12px;color:var(--gray-dark)}.hr-ref-item b{color:var(--black);font-weight:700}.hr-done{text-align:center;display:flex;flex-direction:column;align-items:center;gap:16px}.hr-done-title{font-family:var(--font-mono);font-size:24px;font-weight:800;letter-spacing:3px;color:var(--black)}.hr-done-score{font-family:var(--font-mono);font-size:18px;color:var(--gray-dark)}.hr-done-stats{font-family:var(--font-mono);font-size:13px;line-height:1.8;color:var(--gray);letter-spacing:1px}.hr-done-msg{font-size:15px;color:var(--gray-dark);max-width:400px;line-height:1.5}.hr-done-stars{font-size:36px;letter-spacing:6px;color:var(--accent)}.hr-choice-buttons{display:flex;gap:12px}.hr-endless-btn{background:var(--accent)!important}.hr-endless-btn:hover{opacity:.85}.hr-endless-badge{background:var(--accent);color:var(--white);font-size:10px;padding:2px 6px;border-radius:3px;margin-right:6px}.hr-star-display{color:var(--accent);margin-left:8px}.hr-score-popup{position:absolute;font-family:var(--font-mono);font-weight:800;font-size:18px;color:var(--green);animation:score-float .8s ease-out forwards;pointer-events:none}.hr-game.flash-correct{animation:flash-green .3s ease-out}.hr-game.flash-wrong .hr-input{border-color:var(--error)}[data-theme=dark] .hr-prompt{color:var(--dm-text)}[data-theme=dark] .hr-input{background:var(--dm-surface-raised);border-color:var(--dm-border-strong);color:var(--dm-text)}[data-theme=dark] .hr-input:focus{border-color:var(--dm-accent);box-shadow:0 0 0 3px #64a0dc26}[data-theme=dark] .hr-submit{background:var(--dm-text);color:var(--dm-bg)}[data-theme=dark] .hr-ref{border-top-color:var(--dm-border)}[data-theme=dark] .hr-ref-item b,[data-theme=dark] .hr-done-title{color:var(--dm-text)}[data-theme=dark] .br-submit,[data-theme=dark] .nt-submit{background:#e0dcd4;color:#1a1a1e}[data-theme=dark] .br-submit:hover,[data-theme=dark] .nt-submit:hover{background:#ccc8c0}[data-theme=dark] .br-done-title,[data-theme=dark] .nt-done-title,[data-theme=dark] .tt-done-title{color:#e0dcd4}[data-theme=dark] .br-done-score,[data-theme=dark] .nt-done-score,[data-theme=dark] .tt-done-score,[data-theme=dark] .hr-done-score{color:#3abb80}[data-theme=dark] .br-done-stats,[data-theme=dark] .nt-done-stats,[data-theme=dark] .tt-done-stats,[data-theme=dark] .hr-done-stats,[data-theme=dark] .br-done-msg,[data-theme=dark] .nt-done-msg,[data-theme=dark] .tt-done-msg,[data-theme=dark] .hr-done-msg{color:#aaa}[data-theme=dark] .tt-endless-btn{background:var(--accent)!important;color:#fff!important}[data-theme=dark] .br-bit{background:var(--dm-surface-raised);border-color:var(--dm-border-strong);color:var(--dm-text)}[data-theme=dark] .br-bit:hover{background:var(--dm-surface-active)}[data-theme=dark] .br-target,[data-theme=dark] .br-your-value{color:var(--dm-text)}[data-theme=dark] .br-label{color:var(--dm-text-muted)}[data-theme=dark] .br-round,[data-theme=dark] .br-score{color:var(--dm-text-secondary)}[data-theme=dark] .br-feedback.correct{color:var(--success)}[data-theme=dark] .br-feedback.wrong{color:#ff6b6b}[data-theme=dark] .br-hint{color:var(--dm-text-disabled)}[data-theme=dark] .nt-bit{background:var(--dm-surface-raised);border-color:var(--dm-border-strong);color:var(--dm-text)}[data-theme=dark] .nt-bit:hover{background:var(--dm-surface-active)}[data-theme=dark] .nt-target,[data-theme=dark] .nt-dual-value{color:var(--dm-text)}[data-theme=dark] .nt-label{color:var(--dm-text-muted)}[data-theme=dark] .nt-round,[data-theme=dark] .nt-score{color:var(--dm-text-secondary)}[data-theme=dark] .nt-feedback.correct{color:var(--success)}[data-theme=dark] .nt-feedback.wrong{color:#ff6b6b}[data-theme=dark] .nt-hint{color:var(--dm-text-disabled)}.st-node-stars{font-size:16px;letter-spacing:3px;color:var(--accent);margin-top:2px}.tt-game{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100%;gap:24px;font-family:var(--font-main);user-select:none;position:relative;max-width:900px;width:100%;margin:0 auto;padding:0 24px;box-sizing:border-box}.tt-header{display:flex;width:100%;justify-content:space-between;align-items:center;font-family:var(--font-mono);font-size:15px;letter-spacing:1.5px;color:var(--gray-dark)}.tt-timer{font-weight:700;font-size:33px;min-width:64px;text-align:center;transition:color .3s,transform .2s;padding:8px 16px;border:2px solid currentColor;border-radius:4px;line-height:1}.tt-timer.time-ok{color:var(--success)}.tt-timer.time-warn{color:var(--warning)}.tt-timer.time-danger{color:var(--error);animation:timer-pulse .6s ease-in-out infinite}.tt-prompt{font-family:var(--font-mono);font-size:20px;font-weight:700;letter-spacing:3px;text-align:center}.tt-table{border-collapse:collapse;font-family:var(--font-mono);font-size:17px;margin:0 auto}.tt-table th{padding:8px 24px;border-bottom:2px solid var(--black);font-weight:700;letter-spacing:2px}.tt-table td{padding:10px 24px;text-align:center;border-bottom:1px solid var(--gray-light)}.tt-cell-toggle{cursor:pointer;width:48px;height:36px;border:2px solid var(--black);background:var(--cream);font-size:17px;font-family:var(--font-mono);font-weight:700;transition:background .15s}.tt-cell-toggle:hover{background:var(--cream-dark)}[data-theme=dark] .tt-cell-toggle{background:#2a2a30;border-color:#888;color:#e0dcd4}[data-theme=dark] .tt-cell-toggle:hover{background:#3a3a42}.tt-options{display:flex;gap:12px;flex-wrap:wrap;justify-content:center}.tt-gate-btn{padding:12px 28px;font-family:var(--font-mono);font-size:16px;border:2px solid var(--black);background:var(--cream);cursor:pointer;letter-spacing:2px;font-weight:700;transition:background .15s,transform .1s}.tt-gate-btn:hover{background:var(--cream-dark)}.tt-gate-btn:active{transform:scale(.97)}[data-theme=dark] .tt-gate-btn{background:#2a2a30;border-color:#888;color:#e0dcd4}[data-theme=dark] .tt-gate-btn:hover{background:#3a3a42}[data-theme=dark] .tt-table th{border-bottom-color:#888;color:#e0dcd4}[data-theme=dark] .tt-table td{border-bottom-color:#444;color:#e0dcd4}[data-theme=dark] .tt-prompt{color:#e0dcd4}[data-theme=dark] .tt-header{color:#aaa}.tt-controls{display:flex;justify-content:center}.tt-submit{background:var(--black);color:var(--cream);border:none;padding:12px 40px;font-family:var(--font-mono);font-size:16px;cursor:pointer;letter-spacing:2px;font-weight:700;transition:background .2s}.tt-submit:hover{background:var(--btn-dark-hover)}[data-theme=dark] .tt-submit{background:#e0dcd4;color:#1a1a1e}[data-theme=dark] .tt-submit:hover{background:#ccc8c0}.tt-feedback{font-family:var(--font-mono);font-size:15px;min-height:22px;text-align:center}.tt-feedback.correct{color:var(--success);font-weight:600}.tt-feedback.wrong{color:var(--error);font-weight:600}.tt-game.flash-correct{animation:flash-green .4s ease-out}.tt-game.flash-wrong .tt-table{animation:shake .3s ease-out}.tt-score-popup{position:absolute;font-family:var(--font-mono);font-weight:700;font-size:18px;color:var(--success);pointer-events:none;animation:score-float .8s ease-out forwards}.tt-done{display:flex;flex-direction:column;align-items:center;gap:16px;text-align:center}.tt-done-title{font-family:var(--font-mono);font-size:28px;font-weight:700;letter-spacing:4px}.tt-done-score{font-family:var(--font-mono);font-size:22px;font-weight:700;color:var(--success)}.tt-done-stats{font-family:var(--font-mono);font-size:14px;letter-spacing:1px;color:var(--gray-dark);line-height:1.8}.tt-done-msg{font-family:var(--font-mono);font-size:15px;color:var(--gray-dark);max-width:400px}.tt-done-stars{font-size:36px;letter-spacing:6px;color:var(--accent)}.tt-choice-buttons{display:flex;gap:16px;margin-top:8px}.tt-endless-btn{background:var(--cream)!important;color:var(--black)!important;border:2px solid var(--black)!important}.tt-endless-btn:hover{background:var(--cream-dark)!important}.tt-endless-badge{display:inline-block;background:var(--accent);color:var(--cream);padding:2px 8px;font-size:11px;font-weight:700;letter-spacing:2px;border-radius:3px;margin-right:8px;vertical-align:middle}.tt-star-display{font-size:18px;letter-spacing:3px;color:var(--accent);margin-left:8px;vertical-align:middle}.dr-game{width:100%;max-width:600px;height:100%;display:flex;flex-direction:column;font-family:JetBrains Mono,monospace;color:#1a1a1a;padding:24px;box-sizing:border-box}.dr-header{display:flex;justify-content:space-between;align-items:center;padding-bottom:12px;border-bottom:1px solid #ddd;margin-bottom:12px}.dr-timer{font-size:28px;font-weight:700;font-variant-numeric:tabular-nums}.dr-title{font-size:14px;font-weight:700;letter-spacing:2px;color:var(--gray)}.dr-stats{font-size:12px;color:var(--dm-text-muted)}.dr-info{text-align:center;font-size:12px;color:var(--dm-text-faint);margin-bottom:16px}.dr-grid{flex:1;display:flex;flex-direction:column;gap:8px;overflow-y:auto}.dr-row{display:grid;grid-template-columns:28px 56px 1fr 72px 72px;align-items:center;gap:12px;padding:14px 16px;background:#f5ede0;border:2px solid #ddd;border-radius:8px;cursor:pointer;transition:border-color .15s,background .15s,transform .12s;user-select:none}.dr-row:hover{border-color:#2e9966;background:#eef8f2}.dr-row:active{background:#d4f0e0}.dr-row.dr-danger{border-color:#c90;background:#fdf6e8;animation:dr-pulse .8s ease-in-out infinite}.dr-row.dr-critical{border-color:#c44;background:#fde8e8;animation:dr-pulse .4s ease-in-out infinite}.dr-row.dr-row-inactive{opacity:.3;cursor:default;pointer-events:none}.dr-row-key kbd{display:inline-flex;align-items:center;justify-content:center;width:22px;height:22px;background:#00000014;border:1px solid rgba(0,0,0,.15);border-radius:4px;font-family:JetBrains Mono,monospace;font-size:12px;font-weight:700;color:#555}[data-theme=dark] .dr-row-key kbd{background:#ffffff14;border-color:#ffffff26;color:#aaa}.dr-info kbd{display:inline-block;padding:1px 5px;background:#00000012;border:1px solid rgba(0,0,0,.15);border-radius:3px;font-family:JetBrains Mono,monospace;font-size:11px;font-weight:600}[data-theme=dark] .dr-info kbd{background:#ffffff14;border-color:#ffffff26}.dr-row-label{font-size:13px;font-weight:700;color:#1a1a1a}.dr-row-bar-bg{height:20px;background:#e0d5c0;border-radius:4px;overflow:hidden}.dr-row-bar{height:100%;background:#2e9966;border-radius:4px;transition:width .1s linear}.dr-danger .dr-row-bar{background:#c90}.dr-critical .dr-row-bar{background:#c44}.dr-row-data{font-size:14px;letter-spacing:3px;font-weight:600;color:#1a1a1a;text-align:center}.dr-row-status{font-size:11px;font-weight:700;text-align:right}.dr-danger .dr-row-status{color:#c90}.dr-critical .dr-row-status{color:#c44}.dr-footer{margin-top:16px;padding-top:12px;border-top:1px solid #ddd}.dr-progress-label{font-size:11px;color:var(--dm-text-faint);margin-bottom:6px;text-align:center}.dr-progress-bar-bg{height:8px;background:#e0d5c0;border-radius:4px;overflow:hidden}.dr-progress-bar{height:100%;background:#2e9966;border-radius:4px;transition:width .3s linear}.dr-done{display:flex;flex-direction:column;align-items:center;justify-content:center;flex:1;gap:16px;text-align:center}.dr-done-title{font-size:28px;font-weight:700;letter-spacing:2px}.dr-done-subtitle{font-size:14px;color:var(--gray);max-width:400px}.dr-done-stars{font-size:32px;letter-spacing:4px;color:#e8a44c}.dr-done-stats{display:flex;gap:24px;font-size:12px;color:var(--dm-text-muted)}.dr-btn{padding:12px 32px;border:none;border-radius:6px;font-family:JetBrains Mono,monospace;font-size:14px;cursor:pointer;transition:background .15s}.dr-btn-primary{background:#2e9966;color:#fff}.dr-btn-primary:hover{background:#258054}@keyframes dr-pulse{0%,to{opacity:1}50%{opacity:.8}}[data-theme=dark] .dr-game{color:var(--dm-text-primary, #e0e0e0)}[data-theme=dark] .dr-header{border-bottom-color:var(--dm-border, #3a3a40)}[data-theme=dark] .dr-row{background:var(--dm-surface-raised, #28282e);border-color:var(--dm-border, #3a3a40)}[data-theme=dark] .dr-row:hover{border-color:#3abb80;background:#1a2e24}[data-theme=dark] .dr-row:active{background:#1e3a2c}[data-theme=dark] .dr-row.dr-danger{border-color:#c90;background:#2e2810}[data-theme=dark] .dr-row.dr-critical{border-color:#c44;background:#2e1414}[data-theme=dark] .dr-row-label,[data-theme=dark] .dr-row-data{color:var(--dm-text-primary, #e0e0e0)}[data-theme=dark] .dr-row-bar-bg,[data-theme=dark] .dr-progress-bar-bg{background:#333}[data-theme=dark] .dr-footer{border-top-color:var(--dm-border, #3a3a40)}.bus-value-editor{background:var(--cream, #faf3e8);border:2px solid var(--black, #1a1a1a);border-radius:6px;padding:8px;box-shadow:3px 3px 0 var(--black, #1a1a1a);display:flex;flex-direction:column;gap:4px;min-width:140px}.bus-value-input{font-family:JetBrains Mono,monospace;font-size:16px;font-weight:700;text-align:center;padding:6px 10px;border:2px solid var(--gray-mid, #777);border-radius:4px;background:#fff;color:var(--black, #1a1a1a);outline:none;width:100%;box-sizing:border-box}.bus-value-input:focus{border-color:var(--accent, #e8a44c)}.bus-value-range{font-family:JetBrains Mono,monospace;font-size:9px;color:var(--gray-mid, #777);text-align:center;white-space:nowrap}[data-theme=dark] .bus-value-editor{background:var(--dm-surface, #1e1e22);border-color:var(--dm-border, #3a3a40);box-shadow:3px 3px #0006}[data-theme=dark] .bus-value-input{background:var(--dm-surface-raised, #28282e);color:var(--dm-text-primary, #e0e0e0);border-color:var(--dm-border, #3a3a40)}[data-theme=dark] .bus-value-range{color:var(--dm-text-secondary, #888)}@media (max-width: 768px){body{overflow-x:hidden}#dark-mode-toggle{bottom:8px;left:8px;width:32px;height:32px;font-size:16px}#bug-report-btn{bottom:8px;left:44px;width:32px;height:32px;font-size:14px}#x-follow-box{bottom:8px;right:8px;padding:6px 10px;font-size:10px}.intro-screen{padding:16px}.intro-content{gap:8px;padding:0 12px}.intro-logo{font-size:48px;letter-spacing:-1px}.intro-tagline{font-size:11px;letter-spacing:2px;margin-bottom:20px}.intro-memo{max-width:100%;padding:14px 16px;font-size:13px;line-height:1.6}.intro-start{font-size:13px;padding:12px 32px;letter-spacing:1px}.intro-version{bottom:44px;right:12px;font-size:10px}.st-back{top:12px;left:12px;font-size:11px;padding:6px 12px}.skill-tree{padding:48px 8px 60px}.st-act-header{flex-direction:column;align-items:flex-start;gap:8px;padding:16px 20px}.st-act-title{font-size:17px}.st-act-subtitle{font-size:10px;letter-spacing:1.5px}.st-act-progress{font-size:12px;padding:4px 10px}.st-graph{overflow-x:auto;overflow-y:visible;-webkit-overflow-scrolling:touch;max-width:100%}.st-node{max-width:220px}.st-node-name{font-size:15px}.st-node-concept,.st-node-ceo{font-size:11px}.st-node-number{font-size:10px}.st-node-gate{max-width:220px}.st-intro-section{padding:0 8px}.st-intro-toggle{padding:10px 12px;font-size:11px;flex-wrap:wrap;gap:6px}.st-intro-hint{width:100%;margin-left:0;font-size:9px}.st-intro-levels{gap:8px}.st-intro-node{width:160px;padding:10px 12px}.st-intro-name{font-size:12px}.st-intro-concept{font-size:9px}.st-coming-soon{font-size:20px;padding:32px 0;letter-spacing:.1em}.game-toolbar{flex-wrap:wrap;padding:4px 10px;gap:6px}.game-toolbar .toolbar-title{font-size:13px}.game-toolbar .toolbar-level{font-size:9px;letter-spacing:1px}.game-toolbar .toolbar-back{font-size:10px;padding:3px 8px}.game-toolbar .toolbar-btn{font-size:10px;padding:4px 10px;letter-spacing:.5px}.game-statusbar{flex-wrap:wrap;padding:2px 10px;gap:6px;font-size:10px}.statusbar-hint{font-size:9px}.zoom-btn{width:22px;height:22px;font-size:13px}.zoom-level{font-size:10px;min-width:34px}.st-act{margin-bottom:24px}}@media (max-width: 768px){.game-screen{display:flex;flex-direction:column;grid-template-columns:none;grid-template-rows:none}.game-screen .game-toolbar{flex-shrink:0;min-height:44px;flex-wrap:nowrap;overflow-x:auto;padding:4px 8px;gap:6px}.game-screen .toolbar-tool-indicator{display:none!important}.game-screen .resize-handle{display:none}.game-palette{flex-shrink:0;height:64px;min-height:64px;max-height:64px;overflow-x:auto;overflow-y:hidden;display:flex;flex-direction:row;align-items:center;gap:6px;padding:6px 10px;border-right:none;border-bottom:2px solid var(--black);box-shadow:0 2px 8px #0000000a;white-space:nowrap;-webkit-overflow-scrolling:touch}.game-palette .palette-header,.game-palette .palette-hint,.game-palette .palette-section-title,.game-palette .palette-action{display:none}.game-palette .palette-item{flex-shrink:0;width:auto;min-width:52px;max-width:52px;height:46px;padding:4px 6px;margin-bottom:0;flex-direction:column;align-items:center;justify-content:center;gap:2px;text-align:center}.game-palette .palette-item .item-info{display:flex;flex-direction:column;align-items:center;gap:0}.game-palette .palette-item .item-label{font-size:9px;font-weight:700;line-height:1.1}.game-palette .palette-item .item-sublabel,.game-palette .palette-item .item-icon,.game-palette .palette-info-btn{display:none}.game-palette .palette-item:hover{transform:none;box-shadow:2px 2px 0 var(--black)}.game-canvas-container{flex:1;min-height:0;border-left:none;border-right:none;position:relative}.game-info{position:fixed;bottom:0;left:0;right:0;max-height:50vh;z-index:50;border-left:none;border-top:2px solid var(--black);box-shadow:0 -4px 16px #0000001a;padding:14px 14px 20px;overflow-y:auto;transform:translateY(calc(100% + -0px));transition:transform .3s ease;-webkit-overflow-scrolling:touch}.game-info.mobile-drawer-open{transform:translateY(0)}.mobile-info-toggle{position:fixed;bottom:0;left:50%;transform:translate(-50%);z-index:51;display:flex;align-items:center;justify-content:center;gap:6px;padding:6px 20px;background:var(--black);color:var(--cream);font-family:var(--font-mono);font-size:11px;font-weight:600;letter-spacing:2px;border:none;border-radius:6px 6px 0 0;cursor:pointer;transition:background .15s}.mobile-info-toggle:active{background:var(--black-light)}.mobile-info-toggle .toggle-arrow{font-size:10px;transition:transform .3s}.mobile-info-toggle.open .toggle-arrow{transform:rotate(180deg)}.game-info.mobile-drawer-open~.mobile-info-toggle,.mobile-info-toggle.open{bottom:50vh}.game-screen .game-statusbar{flex-shrink:0;min-height:28px;padding:2px 8px;gap:4px;font-size:9px}.game-statusbar .statusbar-hint,.game-statusbar .statusbar-sep{display:none}.game-statusbar .zoom-controls{gap:1px}.game-statusbar .zoom-btn{width:28px;height:28px;font-size:16px;min-width:28px}.game-statusbar #select-mode-btn{display:none}.game-statusbar .zoom-level{font-size:11px;min-width:38px}.seq-step-bar{bottom:8px;padding:6px 12px;gap:8px;font-size:12px}.seq-step-btn{padding:6px 16px;font-size:12px}.seq-reset-btn{padding:6px 10px;font-size:10px}.success-overlay{padding:12px}.success-card{padding:20px 16px;max-width:100%}.success-card h2{font-size:18px;letter-spacing:2px}.success-card .success-subtitle{font-size:13px}.success-stats{gap:14px;padding:10px 0}.success-stat-value{font-size:17px}.success-stat-label{font-size:9px}.success-card .fun-fact{font-size:12px;padding:8px 12px}.success-card .success-actions{flex-wrap:wrap;gap:8px}.success-btn{font-size:11px;padding:8px 16px}.success-btn.next{padding:10px 24px;font-size:12px}.narrative-card{max-width:100%;padding:20px 16px}.narrative-card .narrative-body{font-size:13px;line-height:1.6}.component-info-card{max-width:100%}.component-info-card .info-card-body{font-size:13px;padding:8px 16px 0}.component-info-card .info-card-name{font-size:20px}.component-info-card .info-card-header{padding:14px 16px}.component-info-card .info-card-dismiss{margin:0 16px 16px}.component-info-card .info-card-tag{margin:0 16px 6px}.info-card-tt{padding:0 16px}.live-truth-table{padding:8px 10px;margin-bottom:10px}.info-truth-table th,.info-truth-table td{padding:5px 6px;font-size:11px}.info-objective{font-size:14px}.hint-btn{font-size:11px;padding:5px 10px}[data-theme=dark] .mobile-info-toggle{background:var(--dm-border-strong);color:var(--dm-text)}[data-theme=dark] .game-info{box-shadow:0 -4px 16px #0000004d}}@media (max-width: 768px){.toolbar-back,.toolbar-btn{min-height:44px;min-width:44px;font-size:11px;padding:8px 12px}.zoom-btn{min-width:36px;min-height:36px;font-size:16px}.palette-info-btn{min-width:28px;min-height:28px;font-size:14px}.st-back{min-height:44px;padding:8px 16px}#dark-mode-toggle,#bug-report-btn{width:40px;height:40px;font-size:18px}#x-follow-box{bottom:52px;font-size:10px;padding:6px 10px}}.tt-cards{display:flex;flex-direction:column;gap:8px}.tt-card{border:1.5px solid var(--gray-lighter);padding:10px 12px;font-family:var(--font-mono);font-size:12px}.tt-card.pass{border-left:3px solid var(--success)}.tt-card.fail{border-left:3px solid var(--red)}.tt-card-header{font-weight:700;font-size:11px;letter-spacing:.08em;margin-bottom:6px;color:var(--gray-dark)}.tt-card.pass .tt-card-header{color:var(--success)}.tt-card.fail .tt-card-header{color:var(--red)}.tt-card-body{display:flex;flex-direction:column;gap:4px}.tt-card-section{display:flex;flex-wrap:wrap;gap:4px 8px;align-items:baseline}.tt-card-label{font-weight:700;font-size:10px;color:var(--gray);min-width:24px}.tt-card-kv{font-size:12px;white-space:nowrap}.tt-card-kv.fail{color:var(--red);font-weight:700}.tt-card-kv.pass{color:var(--success)}.tt-card-more{text-align:center;padding:8px 0}.tt-card-hidden{display:none}[data-theme=dark] .tt-card{border-color:#444}[data-theme=dark] .tt-card-header{color:#aaa}[data-theme=dark] .tt-card.pass .tt-card-header{color:#3abb80}[data-theme=dark] .tt-card.fail .tt-card-header{color:#e85454}.contention-warning{padding:0!important}.contention-banner{display:flex;gap:10px;padding:12px 14px;background:#fff3e0;border:2px solid #e65100;border-radius:4px;font-size:12px;line-height:1.5;color:#bf360c}.contention-icon{font-size:20px;flex-shrink:0}.contention-detail{font-size:11px;margin-top:4px;opacity:.85}[data-theme=dark] .contention-banner{background:#3a1a0a;border-color:#e65100;color:#ffab91}
