:root{--bg-void:#050810;--bg-base:#090d1a;--bg-surface:#0f1629;--bg-elevated:#172035;--bg-overlay:#0f1629d9;--border-subtle:#6382ff1f;--border-default:#6382ff38;--border-strong:#6382ff73;--border-glow:#6382ffb3;--text-primary:#edf2ff;--text-secondary:#8b9cc8;--text-muted:#4a5578;--text-inverse:#050810;--accent-blue:#4d7cfe;--accent-cyan:#22d3ee;--accent-emerald:#10b981;--accent-amber:#f59e0b;--accent-rose:#f43f5e;--accent-violet:#8b5cf6;--accent-orange:#fb923c;--accent-lime:#84cc16;--algo-bfs:#4d7cfe;--algo-dfs:#f59e0b;--algo-dijkstra:#8b5cf6;--algo-astar:#f43f5e;--algo-bubble:#22d3ee;--algo-insertion:#10b981;--algo-selection:#fb923c;--algo-merge:#8b5cf6;--algo-heap:#f43f5e;--algo-counting:#84cc16;--algo-radix:#f59e0b;--algo-quick:#8b5cf6;--algo-shell:#22d3ee;--glow-blue:0 0 24px #4d7cfe73, 0 0 60px #4d7cfe26;--glow-cyan:0 0 24px #22d3ee73, 0 0 60px #22d3ee26;--glow-emerald:0 0 24px #10b98173, 0 0 60px #10b98126;--glow-rose:0 0 32px #f43f5e99, 0 0 80px #f43f5e33;--glow-amber:0 0 24px #f59e0b73, 0 0 60px #f59e0b26;--glow-violet:0 0 24px #8b5cf673, 0 0 60px #8b5cf626;--font-display:"Syne", sans-serif;--font-body:"DM Sans", sans-serif;--font-code:"JetBrains Mono", monospace;--text-xs:.8rem;--text-sm:.9375rem;--text-base:1.0625rem;--text-lg:1.25rem;--text-xl:1.5rem;--text-2xl:2rem;--text-3xl:2.75rem;--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-5:20px;--space-6:24px;--space-8:32px;--space-10:40px;--space-12:48px;--space-16:64px;--space-20:80px;--radius-sm:6px;--radius-md:10px;--radius-lg:16px;--radius-xl:24px;--radius-full:9999px;--ease-spring:cubic-bezier(.34, 1.56, .64, 1);--ease-smooth:cubic-bezier(.4, 0, .2, 1);--ease-sharp:cubic-bezier(.4, 0, 1, 1);--duration-fast:.12s;--duration-base:.25s;--duration-slow:.45s;--duration-3d:1.1s;--z-canvas:1;--z-overlay:10;--z-tooltip:20;--z-modal:30;--z-topnav:40;--z-sidebar:45;--color-bg-primary:var(--bg-void);--color-bg-surface:var(--bg-surface);--color-bg-card:var(--bg-elevated);--color-border:var(--border-default);--color-accent-primary:var(--accent-blue);--color-accent-secondary:var(--accent-cyan);--color-accent-success:var(--accent-emerald);--color-accent-danger:var(--accent-rose);--color-accent-warning:var(--accent-amber);--color-accent-info:var(--accent-blue);--color-text-primary:var(--text-primary);--color-text-secondary:var(--text-secondary);--color-text-muted:var(--text-muted);--font-size-xs:var(--text-xs);--font-size-sm:var(--text-sm);--font-size-base:var(--text-base);--font-size-lg:var(--text-lg);--font-size-xl:var(--text-xl);--font-size-2xl:var(--text-2xl);--shadow-glow-indigo:var(--glow-blue);--shadow-glow-cyan:var(--glow-cyan);--shadow-glow-red:var(--glow-rose);--duration-normal:var(--duration-base)}.module-pathfinding{--mod-accent:#00d4ff;--mod-glow:#00d4ff4d;--mod-bg:#070d14;--mod-surface:#0a1828;--mod-border:#0e3a5c;--mod-font-head:"Courier Prime", monospace;background-color:var(--mod-bg);background-image:radial-gradient(circle,#0d2035 1px,#0000 1px);background-size:20px 20px}.module-datastructures{--mod-accent:#a855f7;--mod-glow:#a855f759;--mod-bg:#0c0814;--mod-surface:#130d20;--mod-border:#2d1a50;--mod-font-head:"Share Tech Mono", monospace;background-color:var(--mod-bg);background-image:repeating-linear-gradient(45deg,#0000,#0000 18px,#1a0d30 18px 19px)}.module-det{--mod-accent:#39ff14;--mod-glow:#39ff1440;--mod-bg:#060a06;--mod-surface:#080e08;--mod-border:#1a3d1a;--mod-font-head:"VT323", monospace;background-color:var(--mod-bg)}.det-canvas-container{background:#040804 repeating-linear-gradient(0deg,#0000,#0000 3px,#0003 3px 4px);border:2px solid #1a3d1a;border-radius:8px;box-shadow:0 0 40px #39ff141a,inset 0 0 80px #00000080}.module-dmgt{--mod-accent:#f59e0b;--mod-glow:#f59e0b4d;--mod-bg:#0d0900;--mod-surface:#140e00;--mod-border:#3d2d00;--mod-font-head:"Playfair Display", serif;background-color:var(--mod-bg)}.module-networks{--mod-accent:#06b6d4;--mod-glow:#06b6d44d;--mod-bg:#030d10;--mod-surface:#051820;--mod-border:#063040;--mod-font-head:"B612 Mono", monospace;background-color:var(--mod-bg);background-image:repeating-linear-gradient(0deg,#0000,#0000 39px,#06b6d40a 39px 40px)}.module-os{--mod-accent:#ef4444;--mod-glow:#ef444459;--mod-bg:#0f0505;--mod-surface:#1a0a0a;--mod-border:#3d1a1a;--mod-font-head:"Exo 2", sans-serif;background-color:var(--mod-bg)}.module-os.deadlock-active{background-image:repeating-linear-gradient(-45deg,#0000,#0000 10px,#ef444408 10px 20px)}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizelegibility;font-size:16px}body{font-family:var(--font-body);font-size:var(--text-base);color:var(--text-primary);background:var(--bg-void);min-height:100vh;line-height:1.6;overflow-x:hidden}#root{min-height:100vh}h1,h2,h3,h4,h5,h6{font-family:var(--font-display);color:var(--text-primary);line-height:1.2}h1{font-size:var(--text-3xl);font-weight:800}h2{font-size:var(--text-2xl);font-weight:700}h3{font-size:var(--text-xl);font-weight:700}h4{font-size:var(--text-lg);font-weight:600}code,pre,.mono{font-family:var(--font-code)}a{color:var(--accent-blue);transition:color var(--duration-fast) var(--ease-smooth);text-decoration:none}a:hover{color:var(--accent-cyan)}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:var(--bg-base)}::-webkit-scrollbar-thumb{background:var(--border-default);border-radius:var(--radius-full)}::-webkit-scrollbar-thumb:hover{background:var(--border-strong)}::selection{color:var(--text-primary);background:#4d7cfe4d}:focus-visible{outline:2px solid var(--accent-blue);outline-offset:2px}input[type=range]{appearance:none;background:var(--bg-elevated);border-radius:var(--radius-full);cursor:pointer;outline:none;width:100%;height:6px}input[type=range]::-webkit-slider-thumb{appearance:none;cursor:grab;width:20px;height:20px;transition:transform var(--duration-fast) var(--ease-spring);background:#fff;border-radius:50%;box-shadow:0 0 8px #4d7cfe80,0 2px 4px #0000004d}input[type=range]::-webkit-slider-thumb:hover{cursor:grabbing;transform:scale(1.2)}input[type=range]::-webkit-slider-thumb:active{cursor:grabbing;transform:scale(1.2)}input[type=range]::-moz-range-thumb{cursor:grab;background:#fff;border:none;border-radius:50%;width:20px;height:20px;box-shadow:0 0 8px #4d7cfe80,0 2px 4px #0000004d}button{font-family:var(--font-body);cursor:pointer;border:none;outline:none}button:disabled{cursor:not-allowed;opacity:.5}@keyframes spin{to{transform:rotate(360deg)}}@keyframes shimmer{0%{background-position:-200% 0}to{background-position:200% 0}}@keyframes pulse-glow{0%,to{opacity:.4}50%{opacity:.8}}@keyframes fade-in-up{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}@keyframes marching-ants{to{stroke-dashoffset:-20px}}.skeleton{background:linear-gradient(90deg, var(--bg-surface) 25%, var(--bg-elevated) 50%, var(--bg-surface) 75%);border-radius:var(--radius-md);background-size:200% 100%;animation:1.5s ease-in-out infinite shimmer}[data-theme=light]{--bg-void:#f5f6fa;--bg-base:#fff;--bg-surface:#f0f1f5;--bg-elevated:#e8e9f0;--bg-overlay:#f0f1f5e6;--border-subtle:#00000014;--border-default:#00000026;--border-strong:#0000004d;--border-glow:#0006;--text-primary:#0f1629;--text-secondary:#4a5578;--text-muted:#8b9cc8;--text-inverse:#edf2ff}[data-theme=light] .skeleton{background:linear-gradient(90deg,#f0f1f5 25%,#e8e9f0 50%,#f0f1f5 75%) 0 0/200% 100%}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border-width:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}
