:root{--bg-color: #1e1e1e;--bg-color-dark: #1a1a2e;--bg-color-light: #2a2a3e;--panel-bg: rgba(40, 40, 40, .9);--panel-bg-solid: #282828;--text-color: #e0e0e0;--text-muted: #888888;--text-dark: #666666;--text-light: #ffffff;--accent-color: #007acc;--accent-light: #33a3ff;--accent-dark: #005fa3;--accent-darker: #004a7a;--success-color: #4caf50;--success-light: #81c784;--error-color: #f44336;--error-light: #e57373;--warning-color: #ff9800;--warning-light: #ffb74d;--info-color: #2196f3;--border-color: #444444;--border-light: #555555;--border-focus: var(--accent-color);--font-family: "Segoe UI", Tahoma, Geneva, Verdana, sans-serif;--font-family-mono: ui-monospace, SFMono-Regular, Menlo, Consolas, "Liberation Mono", monospace;--font-size-xs: .75rem;--font-size-sm: .85rem;--font-size-base: 1rem;--font-size-md: 1.1rem;--font-size-lg: 1.25rem;--font-size-xl: 1.5rem;--font-size-2xl: 2rem;--font-size-3xl: 2.5rem;--font-weight-normal: 400;--font-weight-medium: 500;--font-weight-semibold: 600;--font-weight-bold: 700;--line-height-tight: 1.2;--line-height-normal: 1.5;--line-height-relaxed: 1.7;--spacing-xs: 4px;--spacing-sm: 8px;--spacing-md: 12px;--spacing-lg: 16px;--spacing-xl: 20px;--spacing-2xl: 24px;--spacing-3xl: 32px;--spacing-4xl: 48px;--radius-sm: 4px;--radius-md: 8px;--radius-lg: 12px;--radius-xl: 16px;--radius-full: 9999px;--radius-btn: 20px;--shadow-sm: 0 1px 2px rgba(0, 0, 0, .2);--shadow-md: 0 2px 8px rgba(0, 0, 0, .18);--shadow-lg: 0 4px 16px rgba(0, 0, 0, .22);--shadow-xl: 0 6px 24px rgba(0, 0, 0, .3);--shadow-inset: inset 0 1px 3px rgba(0, 0, 0, .3);--z-base: 1;--z-sidebar: 10;--z-navbar: 940;--z-sidebar-backdrop: 945;--z-sidebar-mobile: 950;--z-overlay: 1000;--z-overlay-content: 100;--z-tooltip: 1100;--z-modal: 1200;--transition-fast: .15s ease;--transition-normal: .3s ease;--transition-slow: .5s ease;--sidebar-width: 250px;--navbar-height: auto;--canvas-padding: 20px;--gate-width: 80px;--gate-height: 60px;--pin-radius: 8px;--grid-size: 20px}@media (prefers-contrast: high){:root{--bg-color: #000000;--panel-bg: #000000;--text-color: #ffffff;--border-color: #ffffff;--accent-color: #00aaff}}@media (prefers-reduced-motion: reduce){:root{--transition-fast: 0ms;--transition-normal: 0ms;--transition-slow: 0ms}}.katex{font-size:1em;margin:0 .05em}.katex-display{display:block;margin:.5em 0}html,body{margin:0;padding:0;width:100%;height:100%;min-height:100%;overflow:hidden;font-family:Segoe UI,Tahoma,Geneva,Verdana,sans-serif;background-color:var(--bg-color);color:var(--text-color);user-select:none;-webkit-user-select:none}body{min-height:100vh;min-height:100svh;min-height:100dvh}input,textarea,.story-content,.glossary-body{user-select:text;-webkit-user-select:text}#app{display:grid;grid-template-columns:250px 1fr;grid-template-rows:auto 1fr;width:100%;height:100%;min-height:100vh;min-height:100svh;min-height:100dvh;min-width:0}body.app-loading #main-view,body.app-loading #navbar,body.app-loading #sidebar{opacity:0;visibility:hidden;pointer-events:none;transition:opacity .2s ease-in-out}body.app-loading #roadmap-overlay{opacity:1;visibility:visible;pointer-events:auto}body.app-loading #circuit-canvas{visibility:visible;opacity:1}.loading-roadmap{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:400px;text-align:center;color:var(--text-color)}.loading-spinner{width:40px;height:40px;border:4px solid var(--border-color);border-top:4px solid var(--primary-color);border-radius:50%;animation:spin 1s linear infinite;margin-bottom:1rem}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.loading-roadmap h2{margin:0 0 .5rem;color:var(--text-color)}.loading-roadmap p{margin:0;color:var(--text-muted)}.btn{padding:8px 16px;border:none;border-radius:20px;cursor:pointer;font-weight:600;font-size:.9rem;transition:transform .1s,opacity .2s,filter .2s;white-space:nowrap;flex-shrink:0;display:inline-flex;align-items:center;justify-content:center;gap:6px;line-height:1.2}.btn:hover:not(:disabled){filter:brightness(1.15)}.btn:active:not(:disabled){transform:scale(.96)}.btn:disabled{opacity:.5;cursor:not-allowed}.btn.primary{background:var(--accent-color);color:#fff}.btn.secondary{background:#555;color:#fff}.btn.secondary:hover:not(:disabled){background:#666}.btn.success{background:var(--success-color);color:#fff}.btn-small{padding:6px 12px;font-size:.8rem;min-height:32px;border-radius:16px}.btn-large{padding:14px 28px;font-size:1.1rem;border-radius:24px}.btn-icon{background:transparent;border:1px solid var(--accent-color);color:var(--accent-color);width:36px;height:36px;border-radius:50%;cursor:pointer;font-weight:700;display:flex;align-items:center;justify-content:center;font-size:1rem;transition:all .2s;padding:0;flex-shrink:0}.btn-icon:hover{background:var(--accent-color);color:#fff}.btn-icon:active{transform:scale(.92)}.btn-icon.small{width:28px;height:28px;font-size:.85rem}@media (pointer: coarse){.btn,.btn-small,.btn-icon{min-height:44px;min-width:44px}.btn-small{padding:10px 14px;font-size:.85rem}.btn-icon{width:44px;height:44px}}@media (max-width: 768px){.controls .btn-small{padding:5px 10px;font-size:.78rem;min-height:30px}}@media (max-width: 400px){.controls .btn-small{font-size:0;min-width:32px;padding:6px}#btn-reset:after{content:"↺";font-size:1rem}#btn-check:after{content:"✓";font-size:1rem}#btn-next:after{content:"→";font-size:1rem}#btn-sim-toggle:after{content:"⏸";font-size:.9rem}#btn-sim-step:after{content:"⏭";font-size:.9rem}#btn-instructions{padding:5px 8px;font-size:.85rem}}#btn-sim-toggle,#btn-sim-step{display:none!important}.music-toggle-btn{background:transparent;border:1px solid var(--accent-color);color:var(--accent-color);width:36px;height:36px;border-radius:50%;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .2s;padding:0;flex-shrink:0;margin-left:8px}.music-toggle-btn:hover{background:var(--accent-color);color:#fff}.music-toggle-btn:hover svg{stroke:#fff}.music-toggle-btn:active{transform:scale(.92)}.music-toggle-btn svg{width:18px;height:18px;stroke:var(--accent-color);transition:stroke .2s}.music-toggle-btn.muted{border-color:var(--text-muted);color:var(--text-muted)}.music-toggle-btn.muted svg{stroke:var(--text-muted);opacity:.6}.music-toggle-btn.muted:hover{background:var(--text-muted);color:#fff}.music-toggle-btn.muted:hover svg{stroke:#fff;opacity:1}.music-toggle-btn.music-toggle-floating{position:fixed;bottom:20px;right:20px;z-index:1000;width:48px;height:48px;background:var(--panel-color);box-shadow:0 2px 10px #0000004d}.music-toggle-btn.music-toggle-floating svg{width:22px;height:22px}@media (pointer: coarse){.music-toggle-btn{width:44px;height:44px}.music-toggle-btn svg{width:20px;height:20px}}#navbar{grid-column:1 / 3;background:var(--panel-bg);border-bottom:1px solid var(--border-color);display:flex;flex-direction:column;padding:8px 16px;z-index:940;gap:6px}@media (max-width: 768px){#navbar{padding:6px 10px;gap:4px}}.nav-row-top{display:flex;align-items:center;justify-content:center;gap:8px;min-height:36px}.nav-left{display:flex;align-items:center;gap:8px;min-width:0;flex:0 1 auto}.nav-left h2{margin:0;font-size:1.1rem;color:var(--accent-color);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:200px}.nav-right{display:flex;align-items:center;gap:4px;flex-shrink:0}@media (max-width: 768px){.nav-left h2{font-size:.9rem;max-width:120px}.nav-left{gap:6px}}@media (max-width: 400px){.nav-left h2{font-size:.85rem;max-width:80px}}.nav-row-secondary{display:flex;align-items:center;justify-content:space-between;gap:8px;flex-wrap:nowrap}.controls{background:var(--panel-bg);padding:4px 8px;border-radius:20px;display:flex;gap:4px;border:1px solid var(--border-color);align-items:center}@media (max-width: 768px){.controls{padding:3px 6px;gap:3px;border-radius:16px}}@media (max-width: 400px){.controls{padding:2px 4px;gap:2px}}.nav-right-group{display:flex;align-items:center;gap:6px;flex-shrink:0}@media (max-width: 768px){.nav-right-group{gap:4px}}.mode-toggle{display:flex;gap:2px;background:#0000004d;padding:3px;border-radius:6px;align-items:center}.btn-mode{padding:8px 12px;border:none;background:transparent;color:#888;font-size:1.2rem;cursor:pointer;border-radius:4px;transition:all .2s;line-height:1}.btn-mode:hover{background:#ffffff1a;color:#fff}.btn-mode.active{background:var(--accent-color);color:#fff}@media (max-width: 768px){.btn-mode{padding:6px 10px;font-size:1.1rem}}@media (max-width: 400px){.btn-mode{padding:5px 8px;font-size:1rem}}.zoom-controls{display:flex;gap:2px;background:#0003;padding:4px;border-radius:6px;align-items:center}#zoom-display{min-width:50px;text-align:center;font-size:.85rem;color:var(--text-color);padding:0 4px}@media (max-width: 768px){.zoom-controls{display:none!important}}.nav-more-inline{display:flex;align-items:center;gap:6px}@media (max-width: 768px){.nav-more-inline{display:none!important}}.nav-more-trigger{display:none!important}@media (max-width: 768px){.nav-more-trigger{display:flex!important}}.nav-more-modal{position:fixed;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;z-index:1000;pointer-events:auto}.nav-more-modal.hidden{display:none}.nav-more-modal-backdrop{position:absolute;top:0;right:0;bottom:0;left:0;background:#0009}.nav-more-modal-card{position:relative;z-index:1;width:min(92vw,340px);max-height:80vh;max-height:80svh;max-height:80dvh;overflow:auto;background:var(--panel-bg);border:1px solid var(--border-color);border-radius:12px;padding:16px;display:flex;flex-direction:column;gap:12px;box-sizing:border-box}.nav-more-modal-header{display:flex;align-items:center;justify-content:space-between;gap:8px;padding-bottom:8px;border-bottom:1px solid var(--border-color)}.nav-more-modal-header h3{margin:0;color:var(--accent-color)}.nav-more-modal-body{display:flex;flex-direction:column;gap:12px}.nav-more-modal-actions{display:flex;flex-direction:column;gap:8px}.nav-more-mobile-only{display:flex;flex-direction:column;gap:8px;padding-top:8px;border-top:1px solid var(--border-color)}.nav-more-zoom{display:flex;gap:8px}.nav-more-zoom .btn{flex:1}.mobile-only{display:none!important}.desktop-only{display:flex!important}@media (max-width: 768px){.mobile-only{display:flex!important}.desktop-only{display:none!important}}#sidebar{grid-row:2;background:var(--panel-bg);border-right:1px solid var(--border-color);display:flex;flex-direction:column;overflow:hidden;min-width:0;min-height:0;z-index:10}#toolbox-container{display:flex;flex-direction:column;flex:1;min-height:0}@media (max-width: 768px){#app{grid-template-columns:1fr}#sidebar{position:fixed;left:-260px;top:0;bottom:0;height:100vh;height:100svh;height:100dvh;width:250px;z-index:950;transition:left .3s ease;padding-top:80px}#sidebar.mobile-open{left:0}}.sidebar-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000080;z-index:945;display:none;pointer-events:auto}.sidebar-backdrop.visible{display:block}#main-view{grid-row:2;position:relative;overflow:hidden;min-width:0;min-height:0}@media (max-width: 768px){#main-view{grid-column:1}}canvas{display:block;width:100%;height:100%;touch-action:none}#ui-layer{position:absolute;top:0;left:0;width:100%;height:100%;pointer-events:none;display:flex;flex-direction:column;justify-content:flex-end;padding:20px;box-sizing:border-box}.mode-select-wrap{display:none;padding:8px 10px;border-bottom:1px solid var(--border-color);gap:8px;align-items:center}.mode-select-label{color:#aaa;font-size:.85rem}.mode-select-mobile{width:100%;background:#ffffff05;border:1px solid var(--border-color);color:var(--text-color);padding:8px 10px;border-radius:8px;font-size:.9rem}@media (max-width: 768px){.mode-select-wrap{display:flex}}.hud-bottom{pointer-events:auto;display:flex;flex-direction:column;align-items:center;gap:10px;width:100%}.message-area{height:30px;font-weight:700;text-shadow:0 1px 2px rgba(0,0,0,.8)}.message-area.success{color:var(--success-color)}.message-area.error{color:var(--error-color)}.message-area.warning{color:#ff9800}.level-info-compact{display:flex;flex-direction:column;flex:0 0 auto}.level-info-compact h2{margin:0;font-size:.9rem;color:var(--accent-color);max-width:120px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;display:flex;align-items:center;gap:8px}.level-info-compact p{display:none}@media (min-width: 601px){.level-info-compact h2{font-size:1.1rem;max-width:none}.level-info-compact p{display:block;margin:0;font-size:.85rem;color:#aaa;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:300px}}.circuit-error{animation:pulse-error 1s ease-in-out infinite}@keyframes pulse-error{0%,to{opacity:1}50%{opacity:.7}}.toolbox{display:flex;flex-direction:column;gap:8px;padding:8px;flex:1;min-height:0}.toolbox h3{padding:15px;margin:0;color:var(--accent-color);border-bottom:1px solid var(--border-color)}.toolbox-header{display:flex;align-items:center;justify-content:space-between;gap:8px;padding-right:4px}.toolbox-body{overflow-y:auto;flex:1;min-height:0;padding-right:6px;transition:box-shadow .2s ease}.toolbox-body.has-scroll{box-shadow:inset 0 -8px 12px -8px #0009}.toolbox-body::-webkit-scrollbar{width:8px}.toolbox-body::-webkit-scrollbar-track{background:transparent}.toolbox-body::-webkit-scrollbar-thumb{background:#ffffff14;border-radius:6px}.toolbox-body{scrollbar-width:thin;scrollbar-color:rgba(255,255,255,.08) transparent}.gate-grid{display:flex;flex-direction:column;gap:8px;padding:10px}.gate-item{display:flex;align-items:center;gap:10px;padding:10px 12px;background:#0000004d;border:1px solid var(--border-color);border-radius:6px;cursor:grab;transition:all .2s;font-size:.9rem}.gate-item:hover{background:#007acc33;border-color:var(--accent-color)}.gate-item:active{cursor:grabbing}.gate-icon{width:40px;height:30px;flex-shrink:0}.gate-icon svg{width:100%;height:100%}.gate-name{flex:1;color:var(--text-color)}@media (pointer: coarse){.gate-item{min-height:54px;padding:12px}}.mode-tabs{display:flex;flex-direction:column;padding:10px;gap:5px;border-bottom:1px solid var(--border-color)}.tab-btn{background:transparent;border:1px solid transparent;color:#aaa;padding:10px 12px;cursor:pointer;text-align:left;border-radius:6px;transition:all .2s;font-size:.9rem}.tab-btn:hover{background:#ffffff1a;color:#fff}.tab-btn.active{background:var(--accent-color);color:#fff}@media (pointer: coarse){.tab-btn{min-height:44px;min-width:44px}}@media (max-width: 768px){.mode-tabs{display:none}}.xp-badge{font-size:.85rem;color:var(--accent-color);font-weight:600;white-space:nowrap;padding:4px 8px;background:#007acc1a;border-radius:12px}.difficulty-badge{display:inline-block;padding:3px 10px;border-radius:12px;font-size:.75rem;font-weight:700;text-transform:uppercase;letter-spacing:.5px}.badge-easy{background:linear-gradient(135deg,#4caf50,#388e3c);color:#fff}.badge-medium{background:linear-gradient(135deg,#ff9800,#f57c00);color:#fff}.badge-hard{background:linear-gradient(135deg,#f44336,#d32f2f);color:#fff}.badge-expert{background:linear-gradient(135deg,#9c27b0,#7b1fa2);color:#fff}.variant-badge{background:#ffffff08;color:var(--text-color);padding:4px 8px;border-radius:6px;font-size:.8rem;border:1px solid var(--border-color)}.difficulty-text{font-weight:700}.difficulty-original{color:#4caf50}.difficulty-easy{color:#ff9800}.difficulty-hard{color:#f44336}.variant-select{background:#ffffff0d;border:1px solid var(--border-color);color:var(--text-color);padding:6px 10px;border-radius:8px;font-size:.85rem;cursor:pointer;min-width:80px;transition:border-color .2s}.variant-select:hover{border-color:var(--accent-color)}.variant-select:focus{outline:none;border-color:var(--accent-color);box-shadow:0 0 0 2px #007acc33}.variant-select option{background:var(--panel-bg);color:var(--text-color)}.variant-select.badge-easy{background:linear-gradient(135deg,#4caf50,#388e3c);border-color:#4caf50;color:#fff}.variant-select.badge-medium{background:linear-gradient(135deg,#ff9800,#f57c00);border-color:#ff9800;color:#fff}.variant-select.badge-hard{background:linear-gradient(135deg,#f44336,#d32f2f);border-color:#f44336;color:#fff}.variant-select.badge-expert{background:linear-gradient(135deg,#9c27b0,#7b1fa2);border-color:#9c27b0;color:#fff}.variant-inline{padding:5px 10px;font-size:.8rem;border-radius:12px;font-weight:600}.hint{color:#888;font-style:italic;margin-top:15px;font-size:.9rem}.app-title{font-size:1.2rem;font-weight:700;padding:15px;text-align:center;color:var(--accent-color);border-bottom:1px solid var(--border-color)}.overlay{position:fixed;top:0;left:0;width:100%;height:100%;min-height:100vh;min-height:100svh;min-height:100dvh;background:#000c;display:flex;justify-content:center;align-items:center;z-index:1000;pointer-events:auto}.overlay.hidden{display:none}.hidden{display:none!important}.overlay-content{background:var(--panel-bg);padding:30px;border-radius:10px;border:1px solid var(--accent-color);min-width:300px;max-width:500px;text-align:center;max-height:85vh;max-height:85svh;max-height:85dvh;overflow-y:auto}.overlay.fullscreen{background:linear-gradient(135deg,#1a1a2e,#16213e)}.intro-content{max-width:800px;width:95%;color:var(--text-color);text-align:left;background:var(--panel-bg);border:1px solid var(--border-color);border-radius:12px;padding:24px 28px 0;max-height:90vh;max-height:90svh;max-height:90dvh;overflow-y:auto;display:flex;flex-direction:column;gap:0;user-select:text;-webkit-user-select:text}.intro-header{text-align:center;margin-bottom:20px}.intro-header h1{color:var(--accent-color);font-size:1.4rem;margin:0 0 6px;text-transform:uppercase;letter-spacing:2px}.intro-header h2{color:#fff;font-size:2rem;margin:0}.intro-body{display:flex;flex-direction:column;gap:20px;margin-bottom:20px}.intro-visual{display:flex;justify-content:center;align-items:center;background:#0000004d;border-radius:10px;padding:16px;margin-bottom:10px}.intro-text{text-align:left;user-select:text;-webkit-user-select:text}.intro-text h3{color:var(--accent-color);margin-top:20px;margin-bottom:8px;font-size:1.1rem}.intro-text h4{color:#ddd;margin:14px 0 6px;font-size:1rem}.intro-text p{line-height:1.7;margin:10px 0}.intro-text ul,.intro-text ol{margin:10px 0;padding-left:20px;line-height:1.7}.intro-text li{margin:6px 0}.btn-large{padding:15px 40px;font-size:1.2rem;font-weight:700}#btn-start-level{position:sticky;bottom:0;align-self:flex-start;margin-top:10px}.intro-footer{display:flex;flex-direction:row;justify-content:space-between;align-items:center;gap:var(--spacing-lg);margin-top:0;padding:var(--spacing-md) var(--spacing-lg) 0 var(--spacing-lg);border-top:1px solid var(--border-color);position:sticky;bottom:0;background:var(--panel-bg);z-index:var(--z-overlay-content);box-shadow:0 -6px 14px #0000002e;min-height:54px}#btn-back-to-roadmap,#btn-start-level{background:var(--accent-color);color:var(--text-light);border:none;font-weight:var(--font-weight-bold);font-size:var(--font-size-base);border-radius:var(--radius-btn);padding:var(--spacing-md) var(--spacing-3xl);box-shadow:var(--shadow-md);letter-spacing:.5px;transition:box-shadow var(--transition-fast),background var(--transition-fast),color var(--transition-fast);min-width:140px;display:flex;align-items:center;justify-content:center;text-align:center;cursor:pointer}#btn-back-to-roadmap:hover,#btn-start-level:hover{background:var(--accent-dark);color:var(--text-light);box-shadow:var(--shadow-lg)}#btn-back-to-roadmap:active,#btn-start-level:active{background:var(--accent-darker)}#btn-start-level{align-self:auto;margin-top:0;position:static}@media (max-width: 600px){.intro-footer{flex-direction:column;gap:10px;padding:10px 8px 0;min-height:unset}#btn-back-to-roadmap,#btn-start-level{width:100%;min-width:0;padding:14px 0;font-size:1.05rem;border-radius:16px;margin:0}}.ctrl-tab-btn.active{background:var(--accent-color);color:#fff;border-color:var(--accent-color)}.ctrl-tab-panel{animation:fadeIn .15s ease}.controls-list li{padding:4px 0;border-bottom:1px solid rgba(255,255,255,.06)}.controls-list li:last-child{border-bottom:none}kbd.ctrl-key{display:inline-block;min-width:130px;background:#ffffff14;border:1px solid rgba(255,255,255,.2);border-radius:4px;padding:2px 8px;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:.8rem;color:#e0e0e0;white-space:nowrap;flex-shrink:0}@media (max-width: 480px){kbd.ctrl-key{min-width:110px;font-size:.75rem}}.lesson-grid{display:flex;flex-direction:column;gap:16px;margin-top:16px}.lesson-card{background:#00000040;border:1px solid var(--border-color);border-radius:8px;padding:14px 18px}.lesson-card h3{margin:0 0 10px;color:var(--accent-color);font-size:1rem}.lesson-card h4{margin:12px 0 6px;color:#ccc;font-size:.95rem}.lesson-card ul{margin:0;padding-left:18px;color:#ccc;list-style:none}.lesson-card li{margin:8px 0;line-height:1.6;position:relative;padding-left:12px}.lesson-card li:before{content:"▸";position:absolute;left:-8px;color:var(--accent-color)}.lesson-card ul.equations{list-style:none;padding-left:0}.lesson-card ul.equations li{padding-left:0;margin:12px 0}.lesson-card ul.equations li:before{display:none}.gate-limit{color:#f44336;background:#f443361a;padding:8px;border-radius:4px;border-left:4px solid #f44336}.lesson-grid.detailed{gap:24px}.lesson-section{background:#0003;border-radius:10px;padding:18px}.section-title{color:var(--accent-color);font-size:1.1rem;margin:0 0 14px;padding-bottom:8px;border-bottom:1px solid var(--border-color)}.concept-cards{display:flex;flex-direction:column;gap:14px}.concept-card{background:#007acc14;border:1px solid rgba(0,122,204,.3);border-radius:8px;padding:14px 16px}.concept-title{color:#7dcfff;font-size:1rem;margin:0 0 10px}.concept-definition,.concept-why,.concept-analogy,.concept-formula{margin:8px 0;line-height:1.6;color:#ccc;font-size:.95rem}.concept-definition strong,.concept-why strong,.concept-analogy strong,.concept-formula strong{color:#9ece6a;font-weight:600}.concept-formula code{background:#0000004d;padding:2px 6px;border-radius:3px;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,Liberation Mono,monospace;color:#fff}.ui-block{margin-top:12px}.ui-subtitle{color:#7dcfff;font-size:1rem;margin:0 0 10px;font-weight:600}.ui-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:12px}.ui-card{background:#0003;border:1px solid var(--border-color);border-radius:8px;padding:12px 14px}.ui-card--info{background:#007acc14;border-color:#007acc4d}.ui-card--purple{background:#9c27b014;border-color:#9c27b04d}.ui-mono{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,Liberation Mono,monospace}.ui-meta{color:#9ece6a;font-size:.9rem;margin-bottom:8px}.ui-note{margin-top:12px;line-height:1.6;font-size:.9rem;color:#ccc}.ui-note strong{color:#bb86fc}.ui-list{margin:0;padding-left:18px;color:#ccc}.ui-list li{margin:6px 0;line-height:1.5}.formula-list code{background:#0000004d;padding:2px 6px;border-radius:3px;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,Liberation Mono,monospace;color:#7dcfff;font-size:.95em}.ui-table{width:100%;border-collapse:collapse;background:#0000004d;border:1px solid rgba(0,122,204,.3);border-radius:6px;overflow:hidden}.ui-table th,.ui-table td{padding:8px 12px;text-align:center;border-bottom:1px solid rgba(0,122,204,.2);color:#ccc}.ui-table th{background:#007acc1a;color:#7dcfff;font-weight:600;font-size:.9rem}.ui-table td{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,Liberation Mono,monospace;font-size:.95rem}.formula-cards{display:flex;flex-direction:column;gap:18px}.formula-card{background:#9c27b014;border:1px solid rgba(156,39,176,.3);border-radius:8px;padding:16px 18px}.formula-name{color:#bb86fc;font-size:1rem;margin:0 0 10px}.formula-main{background:#0006;padding:12px 16px;border-radius:6px;margin-bottom:12px;text-align:center}.formula-main code{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:1.2rem;color:#fff;letter-spacing:.5px}.formula-variables{margin:10px 0;color:#ccc}.formula-variables ul{margin:6px 0 0;padding-left:20px;list-style:none}.formula-variables li{margin:4px 0;line-height:1.5}.formula-variables li:before{content:"•";color:var(--accent-color);margin-right:8px}.var-symbol{color:#7dcfff;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-weight:600}.var-units{color:#9ece6a;font-size:.85em}.formula-meaning,.formula-derivation,.formula-units{margin:10px 0;line-height:1.6;color:#ccc;font-size:.95rem}.formula-meaning strong,.formula-derivation strong,.formula-units strong{color:#bb86fc}.worked-example{margin-top:14px;background:#ff980014;border:1px solid rgba(255,152,0,.3);border-radius:6px;padding:12px 14px}.worked-example>strong{color:#ffb74d;display:block;margin-bottom:8px}.example-problem{color:#fff;margin-bottom:10px;font-weight:500}.example-given{margin:8px 0;color:#ccc}.example-given ul{margin:4px 0 0 16px;padding:0}.example-steps{margin:10px 0;color:#ccc}.example-steps ol{margin:6px 0 0 20px;padding:0}.example-steps li{margin:6px 0;line-height:1.5}.example-answer{margin-top:10px;padding-top:8px;border-top:1px dashed rgba(255,152,0,.3);color:#ffb74d}.exercise-cards{display:flex;flex-direction:column;gap:12px}.exercise-item{display:flex;gap:10px;padding:12px 14px;background:#4caf5014;border:1px solid rgba(76,175,80,.3);border-radius:6px}.exercise-num{color:#81c784;font-weight:700;min-width:24px}.exercise-content{flex:1}.exercise-question{color:#fff;line-height:1.6;margin-bottom:8px}.exercise-hint,.exercise-answer{margin-top:8px;font-size:.9rem}.exercise-hint summary,.exercise-answer summary{cursor:pointer;color:#81c784;font-weight:500}.exercise-hint[open] summary,.exercise-answer[open] summary{margin-bottom:6px}.real-world-card{background:#2196f314;border:1px solid rgba(33,150,243,.3);border-radius:8px;padding:14px 16px}.real-world-card p{margin:8px 0;line-height:1.7;color:#ccc}.rw-context{color:#fff!important;font-size:1rem}.rw-example,.rw-numbers,.rw-connection{margin:10px 0;line-height:1.6;color:#ccc}.rw-example strong,.rw-numbers strong,.rw-connection strong{color:#64b5f6}.chapter-map{margin:0;padding-left:22px;color:#ccc}.chapter-map li{margin:8px 0;line-height:1.6}.exercise-list{margin:0;padding-left:22px;color:#ccc}.exercise-list li{margin:8px 0;line-height:1.6}.story-content{background:#0003;padding:16px 20px;border-radius:5px;border-left:3px solid var(--accent-color);font-size:.95rem;line-height:1.8}.story-content h4{color:#ddd;margin:0 0 10px;font-size:1rem}.story-content ul,.story-content ol{margin:10px 0;padding-left:20px}.chapter-desc{font-style:italic;color:var(--accent-color);margin-bottom:15px;font-size:1.1rem}.interactive-note{background:#00ff001a;border:1px solid var(--success-color);padding:10px;border-radius:4px;margin-top:20px;color:#fff}.chapter-intro hr{border:0;border-top:1px solid var(--border-color);margin:20px 0}.exercise-hint,.exercise-answer{margin-top:10px;font-size:.9rem;border-radius:4px;overflow:hidden}.exercise-answer ol,.exercise-hint ol{padding-left:20px;margin:0 0 0 6px;list-style-position:inside}.exercise-hint summary,.exercise-answer summary{cursor:pointer;color:#81c784;font-weight:500;padding:6px 10px;background:#4caf5026;border-radius:4px;-webkit-user-select:none;user-select:none;list-style:none}.exercise-hint summary::-webkit-details-marker,.exercise-answer summary::-webkit-details-marker{display:none}.exercise-hint summary:before,.exercise-answer summary:before{content:"▶ ";font-size:.8em}.exercise-hint[open] summary:before,.exercise-answer[open] summary:before{content:"▼ "}.exercise-hint[open],.exercise-answer[open]{background:#4caf5014;padding:0 0 8px}.exercise-hint[open]>:not(summary),.exercise-answer[open]>:not(summary){padding:10px 12px;color:#ccc;line-height:1.6}.curriculum-overview{display:flex;flex-direction:column;gap:30px;padding:10px 0}.overview-section h3{border-bottom:2px solid var(--accent-color);padding-bottom:8px;margin-bottom:15px}.stats-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:15px;margin-bottom:20px}.stat-item{background:#ffffff0d;padding:10px 15px;border-radius:6px;border-left:3px solid var(--accent-color)}.outcomes-list{background:#0003;padding:15px 15px 15px 35px!important;border-radius:8px}.tier-cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:20px}.curriculum-tier-card{background:#ffffff08;border:1px solid var(--border-color);padding:15px;border-radius:8px}.curriculum-tier-card strong{color:var(--accent-color);font-size:1.1rem;display:block;margin-bottom:5px}.tier-meta{margin-top:10px;font-size:.85rem;font-weight:700;color:#aaa}.progression-timeline{display:flex;flex-direction:column;gap:15px}.phase-card{background:#007acc1a;border-radius:8px;padding:12px 18px;position:relative;border-left:4px solid var(--accent-color)}.phase-card strong{display:block;margin-bottom:4px}.phase-card p{margin:0;font-size:.9rem;color:#bbb}.current-level-new{background:#4caf500d;border:1px solid rgba(76,175,80,.3);border-radius:8px;padding:15px}.current-level-new h4{color:var(--success-color);margin-top:0}.current-level-previous details{margin-top:15px}.current-level-previous summary{cursor:pointer;color:var(--accent-color)}.mode-badge{display:inline-block;padding:6px 14px;border-radius:20px;font-weight:600;font-size:.9rem;margin-bottom:16px;letter-spacing:.5px}.mode-badge.designer{background:#00968833;border:1px solid rgba(0,150,136,.5);color:#4db6ac}.mode-badge.endless{background:#ff980033;border:1px solid rgba(255,152,0,.5);color:#ffb74d}.difficulty-indicator{display:flex;align-items:center;gap:10px;margin-bottom:16px;padding:8px 12px;background:#0003;border-radius:6px}.diff-label{color:#aaa;font-size:.9rem}.diff-value{font-weight:600;font-size:.9rem;padding:2px 10px;border-radius:12px}.diff-value.diff-beginner{background:#4caf5033;color:#81c784}.diff-value.diff-intermediate{background:#2196f333;color:#64b5f6}.diff-value.diff-advanced{background:#ff980033;color:#ffb74d}.diff-value.diff-expert{background:#f4433633;color:#ef5350}.diff-value.diff-master{background:#9c27b033;color:#bb86fc}.hint-box{background:#ffc1071a;border:1px solid rgba(255,193,7,.3);border-radius:8px;padding:12px 16px;margin:16px 0;color:#fff;line-height:1.6}.hint-box strong{color:#ffc107}.designer-features{background:#00968814;border:1px solid rgba(0,150,136,.3);border-radius:8px;padding:14px 16px;margin-top:16px}.designer-features h4{color:#4db6ac;margin:0 0 10px;font-size:1rem}.designer-features ul{list-style:none;padding:0;margin:0}.designer-features li{padding:6px 0;color:#ccc;font-size:.95rem}.challenge-constraints{background:#007acc14;border:1px solid rgba(0,122,204,.3);border-radius:8px;padding:14px 16px;margin:16px 0}.challenge-constraints p{margin:8px 0;line-height:1.6;color:#ccc}.challenge-constraints p:first-child{margin-top:0}.challenge-constraints p:last-child{margin-bottom:0}.challenge-constraints strong{color:#7dcfff}.designer-mode-note{background:#00968814;border:1px solid rgba(0,150,136,.3);border-radius:8px;padding:12px 16px;margin:16px 0;text-align:center}.designer-mode-note p{margin:0;color:#4db6ac;font-style:italic}.truth-table-preview{margin:16px 0;background:#00000040;border:1px solid var(--border-color);border-radius:8px;padding:14px 16px}.truth-table-preview h4{color:#7dcfff;margin:0 0 12px;font-size:1rem}.truth-table{width:100%;border-collapse:collapse;background:#0000004d;border-radius:6px;overflow:hidden;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,Liberation Mono,monospace}.truth-table th,.truth-table td{padding:8px 12px;text-align:center;border-bottom:1px solid rgba(255,255,255,.1)}.truth-table th{background:#007acc26;font-weight:600;font-size:.9rem}.truth-table th.input-col{color:#7dcfff}.truth-table th.output-col{color:#9ece6a}.truth-table th.separator,.truth-table td.separator{width:4px;padding:0 4px;background:#ffffff0d;border-left:1px solid rgba(255,255,255,.2);border-right:1px solid rgba(255,255,255,.2)}.truth-table td{color:#ccc;font-size:.95rem}.truth-table td.input-val{color:#7dcfff}.truth-table td.output-val{color:#9ece6a;font-weight:600}.truth-table td.val-1{opacity:1}.truth-table td.val-0{opacity:.6}.truth-table tbody tr:hover{background:#ffffff0d}.truth-table tbody tr:last-child td{border-bottom:none}.designer-intro{border-left:3px solid rgba(0,150,136,.5);padding:10px;background:#0003;border-radius:6px}.endless-intro{border-left:3px solid rgba(255,152,0,.5)}.current-level-previous summary:hover{background:#007acc1a}.hint-anim-minus{position:fixed;z-index:9999;font-size:16px;color:#f22;font-weight:700;text-shadow:0 0 8px #ff2222,0 0 16px #ff6666;pointer-events:none;left:0;top:0;opacity:1;transition:transform .7s cubic-bezier(.4,1,.6,1),opacity .3s .6s;transform:translateY(0)}.hint-anim-minus-fade{opacity:0;transform:translateY(-32px) scale(1.2)}.roadmap-content{max-width:1000px;width:95%;max-height:90vh;max-height:90svh;max-height:90dvh;overflow-y:auto;color:var(--text-color);padding:0 20px;user-select:text;-webkit-user-select:text}.roadmap-header{text-align:center;margin-bottom:30px}.roadmap-header h1{font-size:2.5rem;margin:0 0 10px;color:var(--accent-color)}.roadmap-header .subtitle{font-size:1.2rem;color:#aaa;margin:0}.roadmap-body{margin-bottom:30px;user-select:text;-webkit-user-select:text}.roadmap-tiers{display:flex;flex-direction:column;gap:20px}.roadmap-tier{background:#28283ccc;border-radius:12px;padding:20px;border:1px solid var(--border-color);transition:all .3s}.roadmap-tier.locked{opacity:.5;filter:grayscale(.5)}.tier-header{display:flex;align-items:center;gap:15px;margin-bottom:15px;padding-bottom:15px;border-bottom:1px solid var(--border-color)}.tier-icon{font-size:2.5rem;width:60px;height:60px;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,var(--accent-color),#0055aa);border-radius:12px}.tier-info h3{margin:0;font-size:1.3rem;color:#fff}.tier-info p{margin:5px 0 0;color:#888;font-size:.9rem}.lock-icon{margin-left:auto;font-size:1.5rem}.tier-levels{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:10px}.roadmap-level{display:flex;flex-direction:column;gap:10px;padding:12px 15px;background:#0000004d;border:1px solid var(--border-color);border-radius:8px;cursor:pointer;transition:all .2s;text-align:left;color:var(--text-color);position:relative;overflow:hidden;min-height:80px}.roadmap-level:hover:not(.locked){background:#007acc33;border-color:var(--accent-color);transform:translateY(-2px)}.roadmap-level.completed{border-color:var(--success-color);background:#4caf5026}.roadmap-level.locked{cursor:not-allowed;opacity:.5}.level-number{width:32px;height:32px;display:flex;align-items:center;justify-content:center;background:var(--accent-color);border-radius:50%;font-weight:700;font-size:.9rem;flex-shrink:0}.roadmap-level.completed .level-number{background:var(--success-color)}.level-left{display:flex;align-items:center;gap:12px;width:100%}.level-title{flex:1;font-size:.95rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-weight:600}.level-right{display:flex;align-items:center;justify-content:space-between;gap:8px;width:100%;margin-top:2px}.variant-select{background:var(--panel-bg);border:1px solid var(--border-color);color:var(--text-color);padding:3px 8px;border-radius:4px;font-size:.8rem;max-width:100px;cursor:pointer}.difficulty-stars{display:flex;gap:3px;align-items:center}.difficulty-star{font-size:1.1rem;transition:all .2s;width:18px;text-align:center}.difficulty-star.filled{color:gold;text-shadow:0 0 5px rgba(255,215,0,.3)}.difficulty-star.empty{color:#444}.level-xp{font-size:.8rem;color:var(--accent-color);font-weight:700;margin-left:auto}.roadmap-footer{display:flex;justify-content:space-between;align-items:center;padding-top:20px;border-top:1px solid var(--border-color)}.roadmap-stats{display:flex;align-items:center;gap:18px}.xp-info{font-size:1.2rem;color:var(--accent-color)}.hint-info{font-size:1rem;color:var(--text-color)}@media (max-width: 600px){.roadmap-header h1{font-size:1.8rem}.roadmap-header .subtitle{font-size:1rem}.roadmap-content{padding:0 10px;width:98%}.tier-header{gap:12px}.tier-icon{width:48px;height:48px;font-size:1.8rem}.tier-info h3{font-size:1.1rem}.roadmap-footer{flex-direction:column;gap:15px;padding-bottom:20px}.roadmap-stats{width:100%;justify-content:space-between}}.glossary-content{background:var(--panel-bg);border-radius:12px;width:90%;max-width:900px;max-height:85vh;max-height:85svh;max-height:85dvh;display:flex;flex-direction:column;overflow:hidden}.glossary-header{padding:20px 25px 15px;border-bottom:1px solid var(--border-color);flex-shrink:0}.glossary-header h1{margin:0 0 5px;color:var(--accent-color);font-size:1.5rem}.glossary-header .subtitle{margin:0 0 15px;color:#888;font-size:.9rem}.glossary-tabs{display:flex;gap:10px;margin-bottom:15px;flex-wrap:wrap}.glossary-tab{padding:8px 16px;border:1px solid var(--border-color);background:transparent;color:var(--text-color);border-radius:20px;cursor:pointer;transition:all .2s ease;font-size:.9rem}.glossary-tab:hover{background:#007acc33;border-color:var(--accent-color)}.glossary-tab.active{background:var(--accent-color);border-color:var(--accent-color);color:#fff}.glossary-search{width:100%}.glossary-search input{width:100%;padding:10px 15px;border:1px solid var(--border-color);border-radius:8px;background:#0000004d;color:var(--text-color);font-size:1rem;box-sizing:border-box}.glossary-search input::placeholder{color:#666}.glossary-search input:focus{outline:none;border-color:var(--accent-color)}.glossary-body{flex:1;overflow-y:auto;padding:20px 25px}.glossary-footer{padding:15px 25px;border-top:1px solid var(--border-color);display:flex;justify-content:flex-end;flex-shrink:0}.glossary-section{margin-bottom:25px}.glossary-section h3{color:var(--accent-color);margin:0 0 12px;font-size:1.1rem;border-bottom:1px solid var(--border-color);padding-bottom:8px}.glossary-section h4{color:#aaa;margin:15px 0 10px;font-size:.95rem}.glossary-items{display:flex;flex-direction:column;gap:8px}.glossary-item{background:#ffffff08;border:1px solid var(--border-color);border-radius:8px;overflow:hidden;transition:all .2s ease}.glossary-item:hover{border-color:var(--accent-color)}.glossary-item-header{display:flex;align-items:center;gap:12px;padding:12px 15px;cursor:pointer;background:#0003}.glossary-item-header:hover{background:#007acc1a}.glossary-term{font-weight:700;color:#fff;font-size:1rem}.glossary-expansion{color:#888;font-style:italic;flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.glossary-origin{color:var(--accent-color);font-size:.8rem;padding:2px 8px;background:#007acc33;border-radius:10px;white-space:nowrap}.glossary-item-body{padding:0 15px;max-height:0;overflow:hidden;transition:all .3s ease}.glossary-item.expanded .glossary-item-body{padding:15px;max-height:500px}.glossary-definition{margin:0 0 10px;line-height:1.5}.glossary-why,.glossary-analogy,.glossary-formula,.glossary-meaning{margin:8px 0;font-size:.9rem;color:#bbb}.glossary-category{display:inline-block;padding:3px 10px;background:#4caf5033;color:var(--success-color);border-radius:12px;font-size:.8rem;margin-top:8px}.glossary-formula-code{background:#0006;padding:4px 10px;border-radius:4px;font-family:Consolas,monospace;color:#4ec9b0;font-size:.95rem}.formula-variables{margin:10px 0}.formula-variables ul{margin:5px 0;padding-left:20px}.formula-variables li{margin:4px 0;font-size:.9rem}.var-symbol{font-family:Consolas,monospace;color:#4ec9b0;font-weight:700}.var-units{color:#888;font-size:.85rem}.glossary-example{background:#0003;padding:10px 12px;border-radius:6px;margin-top:10px}.example-solution{color:var(--success-color);font-family:Consolas,monospace}.glossary-empty,.glossary-error{text-align:center;color:#888;padding:40px 20px}.glossary-item.compact .glossary-item-body{padding:10px 15px;max-height:none}.glossary-item.compact .glossary-definition{margin:0;font-size:.9rem;color:#aaa}.term-popup{position:fixed;z-index:1000;background:var(--panel-bg);border:1px solid var(--accent-color);border-radius:8px;box-shadow:0 4px 20px #00000080;max-width:320px;min-width:250px}.term-popup.hidden{display:none}.term-popup-content{padding:0}.term-popup-header{display:flex;justify-content:space-between;align-items:center;padding:10px 15px;background:#007acc33;border-bottom:1px solid var(--border-color)}#term-popup-title{font-weight:700;color:var(--accent-color);font-size:1.1rem}#term-popup-body{padding:15px;max-height:300px;overflow-y:auto}#term-popup-body p{margin:0 0 8px;line-height:1.4}#term-popup-body .term-expansion{color:#fff;margin-bottom:10px}#term-popup-body .term-origin{color:#888;font-size:.85rem;margin-top:10px;padding-top:8px;border-top:1px solid var(--border-color)}#term-popup-body .formula-display{text-align:center;margin:10px 0}#term-popup-body .formula-display code{font-size:1.2rem;background:#0006;padding:8px 16px;border-radius:6px;color:#4ec9b0}.term-link{color:var(--accent-color);cursor:pointer;border-bottom:1px dashed var(--accent-color);transition:all .2s ease}.term-link:hover{color:#fff;background:#007acc33}.term-info-btn{display:inline-flex;align-items:center;justify-content:center;width:16px;height:16px;font-size:10px;background:var(--accent-color);color:#fff;border-radius:50%;cursor:pointer;margin-left:4px;vertical-align:middle;border:none;line-height:1}.term-info-btn:hover{background:#0098ff;transform:scale(1.1)}.visual-stack{display:flex;flex-direction:column;gap:10px;width:100%}.visual-item{display:flex;flex-direction:column;gap:6px;align-items:center;width:100%}.visual-caption{color:var(--text-color);font-size:.9rem;opacity:.9;text-align:center;width:100%}.equation-block{background:#007acc1a;border-left:3px solid var(--accent-color);padding:10px 14px;border-radius:0 6px 6px 0;margin:8px 0}.equation-formula{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,Liberation Mono,monospace;font-size:1.05rem;color:#fff;margin-bottom:6px}.equation-explain{font-size:.9rem;color:#bbb;line-height:1.5}.equation-explain .var{color:#7dcfff;font-weight:500}.equation-explain .unit{color:#9ece6a}.fraction{display:inline-flex;align-items:baseline;gap:.25rem;vertical-align:middle}.fraction .num{font-size:.95em}.fraction .den{font-size:.85em;opacity:.9;transform:translateY(.05em)}.fraction .slash{color:#ccc;margin:0 .15rem}.edu-svg{width:100%;max-width:400px;height:auto;margin:20px auto;display:block;background:#0003;border-radius:8px;padding:10px;box-sizing:border-box}.visual-container{margin:20px 0;background:#0000004d;border-radius:10px;padding:16px;display:flex;justify-content:center;align-items:center;width:100%;box-sizing:border-box}.visual-container .visual-stack{margin:0;width:100%;display:flex;flex-direction:column;align-items:center}@media (max-width: 600px){.visual-container{padding:10px 6px;margin:16px -16px;border-radius:0;width:auto;display:flex;justify-content:center;align-items:center}.edu-svg{max-width:100%;width:100%;margin:8px 0;padding:4px;border-radius:4px}.visual-caption{font-size:.85rem;text-align:center;padding:0 10px}.visual-container .visual-stack{width:100%}}.intro-visual:empty{display:none!important;padding:0!important;margin:0!important}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.sr-only-focusable:focus{position:static;width:auto;height:auto;padding:inherit;margin:inherit;overflow:visible;clip:auto;white-space:normal}:focus{outline:2px solid var(--accent-color);outline-offset:2px}:focus:not(:focus-visible){outline:none}:focus-visible{outline:2px solid var(--accent-color);outline-offset:2px}.btn:focus-visible,.btn-icon:focus-visible{outline:2px solid var(--accent-light);outline-offset:2px;box-shadow:0 0 0 4px #007acc4d}input:focus-visible,select:focus-visible,textarea:focus-visible{outline:2px solid var(--accent-color);outline-offset:1px;border-color:var(--accent-color)}.roadmap-level:focus-visible,.gate-item:focus-visible,.glossary-item:focus-visible{outline:2px solid var(--accent-color);outline-offset:-2px;box-shadow:inset 0 0 0 2px var(--accent-color)}canvas:focus-visible{outline:3px solid var(--accent-color);outline-offset:0}.skip-link{position:absolute;top:-100px;left:0;background:var(--accent-color);color:var(--text-light);padding:var(--spacing-md) var(--spacing-lg);z-index:9999;transition:top var(--transition-fast);text-decoration:none;font-weight:var(--font-weight-semibold)}.skip-link:focus{top:0}[aria-live=polite],[aria-live=assertive]{contain:layout}.aria-status{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);border:0}#keyboard-shortcuts-overlay .shortcuts-list{display:flex;flex-direction:column;gap:var(--spacing-sm);max-height:60vh;max-height:60svh;max-height:60dvh;overflow-y:auto;text-align:left;padding:var(--spacing-md) 0}.shortcut-item{display:flex;justify-content:space-between;align-items:center;padding:var(--spacing-sm) var(--spacing-md);background:#0003;border-radius:var(--radius-sm)}.shortcut-item kbd{background:var(--bg-color-light);border:1px solid var(--border-color);border-radius:var(--radius-sm);padding:var(--spacing-xs) var(--spacing-sm);font-family:var(--font-family-mono);font-size:var(--font-size-sm);color:var(--text-light);box-shadow:var(--shadow-sm);white-space:nowrap}.shortcut-item span{color:var(--text-muted);font-size:var(--font-size-sm)}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}.completion-icon{animation:none}}@media (prefers-contrast: high){.btn,.btn-icon,.gate-item,.roadmap-level,.glossary-item{border:2px solid currentColor}.text-muted,.stat-label,.glossary-expansion{color:var(--text-color)}:focus-visible{outline:3px solid currentColor;outline-offset:3px}.completion-stats,.completion-summary{background:var(--bg-color);border:1px solid var(--border-color)}}.message-area.success:before{content:"✓ "}.message-area.error:before{content:"✕ "}.message-area.warning:before{content:"⚠ "}@media (pointer: coarse){.btn,.btn-icon,.tab-btn,.gate-item,.glossary-tab{min-height:44px;min-width:44px}.term-link{padding:4px 2px;margin:-4px -2px}}
