:root{--bg-void:#080b0f;--bg-surface:#0d1117;--bg-elevated:#161c25;--border-subtle:#1e2733;--border-glow:#2a3a50;--accent-cyan:#00e5cc;--accent-mauve:#c084fc;--accent-amber:#f59e0b;--accent-red:#ef4444;--accent-green:#22c55e;--accent-blue:#0072ff;--text-primary:#f1f5f9;--text-secondary:#94a3b8;--text-dim:#64748b;--glow-cyan:#00e5cc26;--glow-mauve:#c084fc1f;--glow-green:rgba(var(--solution-rgb), .2);--glow-red:rgba(var(--rubix-negative-rgb), .15);--glow-amber:#f59e0b26;--scanline-alpha:#00000014;--font-mono:"JetBrains Mono", "Courier New", monospace;--font-body:"DM Sans", system-ui, sans-serif;--font-code:"Fira Code", "Consolas", monospace;--ease-snap:cubic-bezier(.22, 1, .36, 1);--ease-out:cubic-bezier(0, 0, .2, 1);--sidebar-width:200px;--statusbar-height:32px;--logstream-height:40px;--bezel-padding:12px;--bezel-radius:10px;--ui-scale:1;--terminal-scale:1;--slot-roundness:4px;--sim-ping:0;--solution-color:#22c55e;--rubix-positive-color:#0072ff;--rubix-negative-color:#cd0000}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html{font-size:calc(16px * var(--ui-scale));-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body{color:var(--text-primary);font-family:var(--font-body);background:#050709;justify-content:center;align-items:center;width:100vw;height:100vh;display:flex;overflow:hidden}::-webkit-scrollbar{width:4px}::-webkit-scrollbar-track{background:var(--bg-void)}::-webkit-scrollbar-thumb{background:var(--border-glow);border-radius:2px}::selection{background:var(--accent-cyan);color:var(--bg-void)}#app{width:100vw;height:100vh;position:relative}.boot-screen{z-index:10000;background:var(--bg-void);transition:opacity .6s var(--ease-out);justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.boot-screen.fade-out{opacity:0;pointer-events:none}.boot-content{font-family:var(--font-mono);color:#0f85;white-space:pre;width:90%;max-width:520px;font-size:13px;line-height:1.7}.boot-content .line{opacity:0;display:block}.boot-content .line.visible{opacity:1}.boot-content .cursor{vertical-align:text-bottom;background:#0f8;width:7px;height:14px;margin-left:2px;animation:.6s step-end infinite blink-cursor;display:inline-block}.boot-content .granted{color:var(--accent-cyan)}@keyframes blink-cursor{0%,to{opacity:1}50%{opacity:0}}.scanlines{background:repeating-linear-gradient(to bottom, transparent 0px, transparent 3px, var(--scanline-alpha) 3px, var(--scanline-alpha) 4px);pointer-events:none;z-index:9999;position:fixed;inset:0}.scanlines.hidden{display:none}.status-bar{height:var(--statusbar-height);min-height:var(--statusbar-height);background:var(--bg-surface);border-bottom:1px solid var(--border-subtle);font-family:var(--font-mono);z-index:10;transition:transform .25s var(--ease-snap), opacity .2s var(--ease-out);justify-content:space-between;align-items:center;padding:0 16px;font-size:11px;display:flex}.status-bar.hidden{opacity:0;pointer-events:none;position:absolute;top:0;left:0;right:0;transform:translateY(-100%)}.status-left{color:var(--text-secondary);align-items:center;gap:10px;display:flex}.status-dot{background:var(--accent-amber);border-radius:50%;width:6px;height:6px;transition:background .3s}.status-dot.active{background:var(--accent-green);box-shadow:0 0 6px var(--accent-green)}.status-url{color:var(--text-secondary)}.status-url .path{color:var(--accent-cyan)}.status-right{align-items:center;gap:16px;display:flex}.status-badge{border:1px solid var(--border-glow);text-transform:uppercase;letter-spacing:.1em;color:var(--text-secondary);border-radius:9999px;align-items:center;padding:1px 8px;font-size:9px;transition:all .3s;display:inline-flex}.status-badge.sim-active{border-color:var(--accent-cyan);color:var(--accent-cyan);box-shadow:0 0 8px var(--glow-cyan)}.status-clock{color:var(--text-dim);font-variant-numeric:tabular-nums}.main-content{background:var(--bg-void);display:flex;position:absolute;inset:0;overflow:hidden}.sidebar{width:var(--sidebar-width);min-width:var(--sidebar-width);background:var(--bg-surface);border-right:1px solid var(--border-subtle);z-index:10;transition:transform .25s var(--ease-snap), opacity .2s var(--ease-out);flex-direction:column;padding:12px 0;display:flex;overflow-y:auto}.sidebar.hidden{opacity:0;pointer-events:none;position:absolute;top:0;bottom:0;left:0;transform:translate(-100%)}.sidebar-section-label{font-family:var(--font-mono);letter-spacing:.15em;text-transform:uppercase;color:var(--text-dim);padding:12px 16px 6px;font-size:9px}.sidebar-divider{background:var(--border-subtle);height:1px;margin:8px 16px}.nav-item{font-family:var(--font-mono);color:var(--text-dim);cursor:pointer;transition:all .15s var(--ease-out);-webkit-user-select:none;user-select:none;text-transform:uppercase;letter-spacing:.04em;border-left:2px solid #0000;align-items:center;gap:10px;padding:8px 16px;font-size:12px;font-weight:500;display:flex;position:relative}.nav-item:hover{color:var(--text-secondary);background:#ffffff05}.nav-item.active{color:var(--text-primary);border-left-color:var(--accent-cyan);background:var(--glow-cyan)}.nav-item .nav-icon{opacity:.5;flex-shrink:0;width:16px;height:16px}.nav-item.active .nav-icon{opacity:1}.nav-item .nav-arrow{opacity:.2;margin-right:2px;font-size:14px;font-weight:300;line-height:1}.nav-item.active .nav-arrow{opacity:.8;color:var(--accent-cyan)}.difficulty-badge{font-size:8px;font-family:var(--font-mono);letter-spacing:.05em;border-radius:3px;margin-left:auto;padding:1px 5px}.difficulty-badge.easy{color:var(--accent-green);background:rgba(var(--solution-rgb), .1)}.difficulty-badge.med{color:var(--accent-amber);background:#f59e0b1a}.difficulty-badge.hard{color:var(--accent-red);background:rgba(var(--rubix-negative-rgb), .1)}.viewport{flex-direction:column;flex:1;display:flex;position:relative;overflow:hidden}.viewport-main{flex:1;justify-content:center;align-items:center;display:flex;position:relative;overflow:hidden}.viewport-main.panel-mode{justify-content:stretch;align-items:stretch;overflow-y:auto}.idle-screen{width:100%;height:100%;animation:page-fade-in .3s var(--ease-out) forwards;flex-direction:column;justify-content:center;align-items:center;gap:32px;padding:24px;display:flex}.idle-screen.hidden{display:none}.idle-title{font-family:var(--font-mono);letter-spacing:.15em;text-transform:uppercase;color:var(--text-dim);font-size:12px}.terminal-cards{grid-template-columns:repeat(3,1fr);gap:12px;width:100%;max-width:600px;display:grid}.terminal-card{background:var(--bg-surface);border:1px solid var(--border-subtle);cursor:pointer;border-radius:6px;flex-direction:column;align-items:center;gap:10px;padding:20px 16px;transition:border-color .2s;display:flex;position:relative;overflow:hidden}.terminal-card:hover{border-color:#fff}.card-icon{width:32px;height:32px;color:var(--accent-cyan);opacity:.7;z-index:1;position:relative}.terminal-card:hover .card-icon{opacity:1}.card-name{font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.1em;color:var(--text-secondary);z-index:1;font-size:11px;position:relative}.terminal-card:hover .card-name{color:var(--text-primary)}.card-best{font-family:var(--font-code);color:var(--text-dim);z-index:1;font-size:10px;position:relative}.log-stream{height:var(--logstream-height);min-height:var(--logstream-height);background:var(--bg-surface);border-top:1px solid var(--border-subtle);font-family:var(--font-code);color:var(--text-secondary);z-index:10;transition:transform .25s var(--ease-snap), opacity .2s var(--ease-out);align-items:center;padding:0 16px;font-size:11px;display:flex;overflow:hidden}.log-stream.hidden{opacity:0;pointer-events:none;position:absolute;bottom:0;left:0;right:0;transform:translateY(100%)}.log-entries{flex-direction:column;width:100%;display:flex;overflow:hidden}.log-entry{opacity:0;animation:log-fade-in .2s var(--ease-out) forwards;white-space:nowrap;text-overflow:ellipsis;overflow:hidden}@keyframes log-fade-in{0%{opacity:0;transform:translate(20px)}to{opacity:1;transform:translate(0)}}.log-prefix{color:var(--text-dim);margin-right:6px}.log-highlight{color:var(--accent-cyan)}.sim-panel{z-index:50;background:var(--bg-void);flex-direction:column;justify-content:center;align-items:center;display:none;position:absolute;inset:0}.sim-panel.active{animation:sim-expand .25s var(--ease-snap) forwards;display:flex}@keyframes sim-expand{0%{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)}}.sim-close-btn{border:1px solid var(--border-subtle);width:28px;height:28px;color:var(--text-dim);font-family:var(--font-mono);cursor:pointer;z-index:60;opacity:0;animation:close-btn-appear .3s var(--ease-out) .5s forwards;background:0 0;border-radius:4px;justify-content:center;align-items:center;font-size:14px;transition:border-color .2s,color .2s;display:flex;position:absolute;top:12px;right:16px}.sim-close-btn:hover{border-color:var(--accent-red);color:var(--accent-red)}@keyframes close-btn-appear{to{opacity:1}}.sim-title{font-family:var(--font-mono);letter-spacing:.12em;text-transform:uppercase;color:var(--text-secondary);margin-bottom:24px;font-size:13px;font-weight:500}#sim-grid-container{transform:scale(var(--terminal-scale));transform-origin:50%;flex-direction:column;align-items:center;display:flex}.slot-grid{background:var(--border-subtle);border-radius:var(--slot-roundness);gap:2px;padding:2px;display:grid;overflow:hidden}.slot{cursor:default;transition:all .15s var(--ease-out);font-family:var(--font-code);-webkit-user-select:none;user-select:none;border-radius:calc(var(--slot-roundness) - 1px);justify-content:center;align-items:center;min-width:64px;min-height:64px;font-size:14px;font-weight:500;display:flex;position:relative}.slot.clickable{cursor:crosshair}.slot.highlight{box-shadow:inset 0 0 12px var(--glow-green), 0 0 8px var(--glow-green);border:1px solid var(--solution-color)}.slot.highlight-bright{box-shadow:inset 0 0 20px var(--glow-green), 0 0 14px var(--glow-green);border:1px solid var(--solution-color)}.slot.highlight-medium{box-shadow:inset 0 0 12px var(--glow-green), 0 0 6px var(--glow-green);border:1px solid rgba(var(--solution-rgb), .5)}.slot.highlight-dim{box-shadow:inset 0 0 6px rgba(var(--solution-rgb), .1), 0 0 3px rgba(var(--solution-rgb), .1);border:1px solid rgba(var(--solution-rgb), .25)}.slot.clicked{animation:slot-pulse .3s var(--ease-out)}@keyframes slot-pulse{0%{box-shadow:inset 0 0 20px var(--glow-green), 0 0 20px var(--glow-green)}to{box-shadow:none}}.slot.rubix-positive{border:1px solid var(--rubix-positive-color);box-shadow:inset 0 0 8px rgba(var(--rubix-positive-rgb), .15)}.slot.rubix-negative{border:1px solid var(--rubix-negative-color);box-shadow:inset 0 0 8px rgba(var(--rubix-negative-rgb), .15)}.rubix-badge{font-family:var(--font-code);border-radius:3px;padding:1px 4px;font-size:9px;font-weight:600;transition:all .15s;position:absolute;top:3px;right:3px}.rubix-badge.positive{color:var(--rubix-positive-color);background:rgba(var(--rubix-positive-rgb), .15)}.rubix-badge.negative{color:var(--rubix-negative-color);background:rgba(var(--rubix-negative-rgb), .15)}.melody-row-active{border-left:2px solid var(--accent-mauve)!important}.melody-btn{transition:all .1s!important}.melody-btn.ready{border-color:var(--accent-green)!important;box-shadow:inset 0 0 12px var(--glow-green), 0 0 8px var(--glow-green)!important}.melody-btn.not-ready{border-color:var(--accent-red)!important;box-shadow:inset 0 0 8px var(--glow-red)!important}.melody-key-label{font-family:var(--font-code);color:var(--text-dim);opacity:.7;font-size:8px;font-weight:600;position:absolute;top:2px;left:3px}.solved-overlay{z-index:70;background:#080b0fd9;justify-content:center;align-items:center;display:none;position:absolute;inset:0}.solved-overlay.active{animation:solved-flash 1.5s var(--ease-out) forwards;display:flex}.solved-text{font-family:var(--font-mono);letter-spacing:.3em;text-transform:uppercase;color:var(--accent-green);text-shadow:0 0 40px var(--glow-green), 0 0 80px var(--glow-green);font-size:48px}.solved-time{font-family:var(--font-code);color:var(--text-secondary);text-align:center;margin-top:12px;font-size:16px}@keyframes solved-flash{0%{opacity:0}10%{opacity:1}70%{opacity:1}to{opacity:0}}.click-trail{z-index:55;pointer-events:none;position:absolute;inset:0}.click-trail line{stroke-width:1.5px;stroke-linecap:round}.click-trail circle{r:4}.click-trail.fade-out{transition:opacity 1s var(--ease-out);opacity:0}.config-panel,.stats-panel,.help-panel,.donators-panel{width:100%;height:100%;font-family:var(--font-mono);animation:page-fade-in .3s var(--ease-out) forwards;padding:24px 32px;font-size:12px;overflow-y:auto}@keyframes page-fade-in{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.panel-title{letter-spacing:.15em;text-transform:uppercase;color:var(--text-secondary);margin-bottom:20px;font-size:11px}.config-group{margin-bottom:24px}.config-group-title{letter-spacing:.15em;text-transform:uppercase;color:var(--text-dim);border-bottom:1px solid var(--border-subtle);margin-bottom:12px;padding-bottom:8px;font-size:9px}.config-row{color:var(--text-secondary);justify-content:space-between;align-items:center;padding:6px 0;display:flex}.config-value{color:var(--text-primary);font-family:var(--font-code);text-align:right;min-width:40px;font-size:11px}.config-slider{-webkit-appearance:none;background:var(--border-glow);border-radius:1px;outline:none;width:120px;height:2px;margin-left:12px}.config-slider::-webkit-slider-thumb{-webkit-appearance:none;background:var(--accent-cyan);cursor:pointer;width:10px;height:10px;box-shadow:0 0 6px var(--glow-cyan);border-radius:2px}.config-slider::-moz-range-thumb{background:var(--accent-cyan);cursor:pointer;width:10px;height:10px;box-shadow:0 0 6px var(--glow-cyan);border:none;border-radius:2px}.config-color{border:1px solid var(--border-subtle);cursor:pointer;background:0 0;border-radius:4px;outline:none;width:24px;height:24px;padding:0}.config-color::-webkit-color-swatch-wrapper{padding:0}.config-color::-webkit-color-swatch{border:none;border-radius:3px}.toggle{background:var(--bg-elevated);border:1px solid var(--border-subtle);cursor:pointer;border-radius:9px;width:36px;height:18px;transition:all .15s;position:relative}.toggle.on{border-color:var(--accent-cyan);background:#00e5cc26}.toggle:after{content:"";background:var(--text-dim);border-radius:50%;width:12px;height:12px;transition:all .15s;position:absolute;top:2px;left:2px}.toggle.on:after{background:var(--accent-cyan);left:20px}.color-swatch{border:1px solid var(--border-subtle);cursor:pointer;border-radius:3px;width:24px;height:14px;margin-left:8px}.stats-table{border-collapse:collapse;width:100%;font-family:var(--font-code);margin-top:12px;font-size:11px}.stats-table th{text-align:left;color:var(--text-dim);letter-spacing:.1em;text-transform:uppercase;border-bottom:1px solid var(--border-subtle);padding:6px 8px;font-size:9px;font-weight:500}.stats-table td{color:var(--text-secondary);border-bottom:1px solid #1e273366;padding:8px}.stats-table .terminal-name{color:var(--text-primary);text-transform:uppercase}.stats-table .best-value{color:var(--accent-cyan)}.stats-summary{border-top:1px solid var(--border-subtle);font-family:var(--font-code);color:var(--text-secondary);margin-top:24px;padding-top:16px;font-size:11px;line-height:2}.stats-summary .label{color:var(--text-dim)}.stats-summary .value{color:var(--accent-cyan)}.help-section{margin-bottom:20px}.help-section h3{font-family:var(--font-mono);letter-spacing:.15em;text-transform:uppercase;color:var(--accent-cyan);margin-bottom:8px;font-size:10px}.help-section p{font-family:var(--font-body);color:var(--text-primary);margin-bottom:8px;font-size:14px;line-height:1.7}.help-section p strong{color:var(--accent-cyan);font-weight:600}.help-key{background:var(--bg-elevated);border:1px solid var(--border-subtle);font-family:var(--font-code);color:var(--text-primary);border-radius:3px;margin:0 2px;padding:2px 6px;font-size:10px;display:inline-block}@media (width<=1200px){.sidebar{width:52px;min-width:52px}.nav-item .nav-label,.nav-item .difficulty-badge{display:none}.nav-item{justify-content:center;padding:10px}.nav-item .nav-arrow,.sidebar-section-label{display:none}}@media (width<=900px){.sidebar,.log-stream{display:none}.terminal-cards{grid-template-columns:repeat(2,1fr)}}@media (width<=600px){.bezel{padding:4px}.terminal-cards{grid-template-columns:1fr}.slot{min-width:40px;min-height:40px;font-size:11px}}
