:root{--bg: #111111;--text: #ffffff;--text-muted: rgba(255, 255, 255, .4);--accent: #ffffff;--border: rgba(255, 255, 255, .08);--overlay-bg: rgba(0, 0, 0, .85);--font: "Plus Jakarta Sans", sans-serif;--home-grid: rgba(255, 255, 255, .015)}body.theme-light{--bg: #f7f5f2;--text: #1a1a1a;--text-muted: rgba(26, 26, 26, .4);--accent: #1a1a1a;--border: rgba(0, 0, 0, .08);--overlay-bg: rgba(247, 245, 242, .92);--home-grid: rgba(0, 0, 0, .035)}*,*:before,*:after{box-sizing:border-box}body{margin:0;overflow:hidden;background:var(--bg);color:var(--text);font-family:var(--font);-webkit-user-select:none;user-select:none;touch-action:none;-webkit-font-smoothing:antialiased}.screen{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;flex-direction:column;transition:opacity .3s ease}.screen.hidden{opacity:0;pointer-events:none}#screen-home{display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:2rem;position:relative;width:100%;height:100%;min-height:100dvh;background-image:linear-gradient(var(--home-grid) 1px,transparent 1px),linear-gradient(90deg,var(--home-grid) 1px,transparent 1px);background-size:80px 80px;background-position:top left;background-repeat:repeat}.home-decor-block{position:absolute;z-index:1;pointer-events:none}.home-logo,.home-level-badge,.home-btn-group{position:relative;z-index:5}.home-logo{font-size:clamp(5.5rem,25vw,10.5rem);font-weight:800;letter-spacing:-.06em;line-height:.9;color:var(--text);margin:0 0 1rem}.home-subtitle{font-size:.95rem;font-weight:500;color:var(--text-muted);margin:-.25rem 0 1.5rem;opacity:.8;z-index:5;position:relative;max-width:280px;line-height:1.4}.home-btn-group{display:flex;flex-direction:column;gap:1.25rem;align-items:center;width:100%;max-width:440px;margin-top:3.5rem}.home-btn{width:100%;background:transparent;color:var(--text);border:1px solid var(--text);border-radius:0;padding:1.35rem 3rem;font-family:var(--font);font-size:1.2rem;font-weight:700;letter-spacing:.15em;text-transform:uppercase;cursor:pointer;transition:opacity .2s}.home-btn-primary{background:var(--text);color:var(--bg);border:1px solid var(--text)}.home-btn-challenge{background:#7c3aed;color:#fff;border:none;transition:opacity .2s,transform .15s}.home-btn-challenge:active{opacity:.85;transform:scale(.985)}.home-btn:active{opacity:.85}.home-level-badge{font-size:1.25rem;font-weight:700;letter-spacing:.2em;text-transform:uppercase;color:var(--text-muted);margin:1.5rem 0 3.5rem}#screen-game{align-items:center;justify-content:space-between;background:var(--bg);padding:0;height:100%;max-height:100dvh;overflow:hidden}.game-header-row{width:100%;max-width:540px;display:flex;justify-content:space-between;align-items:center;padding:1.5rem 2rem 1rem;box-sizing:border-box;position:relative;flex-shrink:0}.game-level-title{font-size:1.4rem;font-weight:800;letter-spacing:.18em;text-transform:uppercase;color:var(--text-muted)}.game-header-actions{display:flex;gap:1rem;align-items:center}.game-header-btn{background:none;border:none;color:var(--text-muted);cursor:pointer;padding:.75rem;display:flex;align-items:center;justify-content:center;transition:color .2s,opacity .3s cubic-bezier(.4,0,.2,1);opacity:0;pointer-events:none}.game-header-btn:active{color:var(--text)}.game-header-btn:disabled{opacity:.15!important;pointer-events:none!important;cursor:default}.game-stats-row{width:100%;max-width:540px;display:flex;justify-content:center;align-items:center;padding:0 2rem 1.25rem;flex-shrink:0}.game-stat-moves{font-size:2.25rem;font-weight:800;line-height:1;color:var(--text);letter-spacing:-.02em}.modifier-hud{width:100%;max-width:540px;padding:0 2rem .75rem;font-size:.8rem;font-weight:700;letter-spacing:.15em;text-transform:uppercase;color:var(--text-muted);flex-shrink:0}.tutorial-instruction{width:100%;max-width:540px;text-align:center;font-size:1.35rem;font-weight:400;color:var(--text);opacity:.55;line-height:1.4;pointer-events:none;padding:.5rem 2rem;flex-shrink:0;min-height:60px;display:flex;align-items:center;justify-content:center;box-sizing:border-box}.tutorial-instruction.hidden{display:none}.challenge-retry-text{position:absolute;top:5.5rem;left:50%;transform:translate(-50%);font-size:.65rem;font-weight:700;text-transform:uppercase;letter-spacing:.15em;color:var(--text-muted);opacity:0;pointer-events:none;transition:opacity .3s ease;z-index:10;white-space:nowrap}.challenge-retry-text.visible{opacity:1}.game-canvas-wrap{flex:1;width:100%;max-width:540px;display:flex;align-items:center;justify-content:center;position:relative;padding:1rem 1.5rem 2rem;transition:opacity .25s cubic-bezier(.4,0,.2,1);min-height:0;min-width:0;overflow:hidden}.game-canvas-wrap.level-fade-out{opacity:0}canvas{display:block;background:transparent}.game-bottom-controls{width:100%;max-width:540px;display:flex;justify-content:space-between;align-items:center;padding:1.5rem 2rem 2.25rem;flex-shrink:0}.game-ctrl-btn{background:none;border:none;color:var(--text-muted);font-family:var(--font);font-size:.95rem;font-weight:700;letter-spacing:.16em;text-transform:uppercase;cursor:pointer;padding:.8rem 1.2rem;transition:opacity .15s,color .15s}.game-ctrl-btn:active{color:var(--text);opacity:.85}.game-ctrl-icon{opacity:.6}.game-bottom-controls .game-ctrl-btn:not(.game-ctrl-icon){opacity:0;pointer-events:none;transition:opacity .3s cubic-bezier(.4,0,.2,1)}#screen-game.show-hud .game-header-btn,#screen-game.show-hud .game-bottom-controls .game-ctrl-btn:not(.game-ctrl-icon){opacity:1;pointer-events:auto}.overlay{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;background:var(--overlay-bg);z-index:50;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px)}.overlay.hidden{display:none}.settings-panel{max-width:340px;width:90%;padding:2.5rem;background:#ffffff0d;border:1px solid var(--border);max-height:85dvh;overflow-y:auto;box-sizing:border-box}body.theme-light .settings-panel{background:#fff;border:1px solid rgba(0,0,0,.1)}.settings-title{font-size:1.3rem;font-weight:800;margin:0 0 1.75rem;text-align:center;letter-spacing:-.02em}.settings-section{margin-bottom:1.5rem}.settings-label{font-size:.7rem;font-weight:700;letter-spacing:.2em;text-transform:uppercase;color:var(--text-muted);margin-bottom:.75rem}.win-inner{text-align:center;padding:2rem;max-width:260px;width:100%}.win-icon{width:52px;height:52px;margin:0 auto 1rem;display:flex;align-items:center;justify-content:center;font-size:1.5rem;font-weight:800;color:var(--bg);background:var(--text);border-radius:50%}.win-title{font-size:1.4rem;font-weight:800;margin:0 0 .25rem;letter-spacing:-.02em}.win-sub{font-size:.65rem;font-weight:600;letter-spacing:.15em;text-transform:uppercase;color:var(--text-muted);margin:0 0 1.5rem}.win-next-btn{display:flex;align-items:center;justify-content:center;width:100%;background:var(--text);color:var(--bg);border:none;border-radius:0;padding:.9rem;font-family:var(--font);font-size:.7rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase;cursor:pointer;transition:opacity .2s}.win-next-btn:active{opacity:.7}.text-btn{background:none;border:1px solid var(--border);color:var(--text);font-family:var(--font);font-size:.65rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase;cursor:pointer;padding:.7rem 1.5rem;transition:opacity .2s}.text-btn:active{opacity:.5}.theme-toggle{display:flex;background:var(--border);padding:3px;gap:2px}.theme-toggle-btn{flex:1;padding:.5rem 1rem;border:none;font-family:var(--font);font-size:.6rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase;cursor:pointer;background:transparent;color:var(--text-muted);transition:all .2s ease}.theme-toggle-btn.active{background:var(--text);color:var(--bg)}.journey-inner{max-width:420px;width:100%;padding:2rem 1rem 6rem;margin:0 auto;overflow-y:auto}.journey-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:2rem}.journey-header h2{font-size:1.5rem;font-weight:800;margin:0}.hidden{display:none!important}.inline-win-hud{position:absolute;bottom:2rem;left:50%;transform:translate(-50%);z-index:10;width:100%;max-width:280px;display:flex;flex-direction:column;align-items:center;justify-content:center;transition:opacity .3s ease;pointer-events:auto}.inline-win-hud.hidden{display:none!important}.inline-next-btn{background:transparent;color:var(--text-muted);border:none;font-family:var(--font);font-size:.95rem;font-weight:700;letter-spacing:.15em;text-transform:uppercase;cursor:pointer;text-align:center;transition:color .2s}.inline-next-btn:active{color:var(--text)}.win-status-text{font-size:.75rem;font-weight:600;color:var(--text-muted);margin-top:.4rem;letter-spacing:.08em;text-transform:uppercase}.btn-floating-next{position:absolute;bottom:6.25rem;left:50%;transform:translate(-50%);background:none;border:none;color:var(--text);font-family:var(--font);font-size:1.4rem;font-weight:700;letter-spacing:.25em;text-transform:uppercase;display:flex;align-items:center;justify-content:center;cursor:pointer;z-index:20;padding:0;opacity:0;pointer-events:none}.btn-floating-next.visible{opacity:1;pointer-events:auto;transition:opacity .5s cubic-bezier(.4,0,.2,1)}.btn-floating-next:active{opacity:.5}::-webkit-scrollbar{width:0}input[type=range]{-webkit-appearance:none;-moz-appearance:none;appearance:none;background:transparent;cursor:pointer;width:100%}input[type=range]:focus{outline:none}input[type=range]::-webkit-slider-runnable-track{background:var(--border);height:4px;border-radius:2px}input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;-moz-appearance:none;appearance:none;margin-top:-6px;background-color:var(--text);height:16px;width:16px;border-radius:50%;transition:transform .1s ease}input[type=range]:active::-webkit-slider-thumb{transform:scale(1.15)}input[type=range]::-moz-range-track{background:var(--border);height:4px;border-radius:2px}input[type=range]::-moz-range-thumb{background-color:var(--text);border:none;height:16px;width:16px;border-radius:50%;transition:transform .1s ease}input[type=range]:active::-moz-range-thumb{transform:scale(1.15)}.challenge-moves-hud{width:100%;max-width:540px;display:flex;align-items:center;justify-content:center;gap:.5rem;padding:.25rem 2rem .75rem;flex-shrink:0}.challenge-moves-label{font-size:.6rem;font-weight:700;letter-spacing:.22em;text-transform:uppercase;color:var(--text-muted)}.challenge-moves-count{font-size:1.75rem;font-weight:800;letter-spacing:-.03em;line-height:1;color:var(--text);transition:color .2s ease}.challenge-moves-count.warning{color:#f59e0b}.challenge-moves-count.danger{color:#ef4444}.challenge-fail-canvas-overlay{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;z-index:5;border-radius:0}#tap-to-retry{position:absolute;top:0;left:50%;transform:translate(-50%);background:none;border:none;color:var(--text-muted);font-family:var(--font);font-size:.85rem;font-weight:700;letter-spacing:.2em;text-transform:uppercase;display:flex;align-items:center;justify-content:center;cursor:pointer;z-index:20;padding:.5rem 0;white-space:nowrap;opacity:0;pointer-events:none}#tap-to-retry.visible{opacity:1;pointer-events:auto;transition:opacity .5s cubic-bezier(.4,0,.2,1)}#tap-to-retry:active{opacity:.5}.home-btn-row{display:flex;gap:.75rem;width:100%}.home-btn-row .home-btn{flex:1}.keyboard-guide{position:absolute;bottom:2rem;left:2rem;display:flex;flex-direction:column;align-items:center;gap:.6rem;z-index:10;opacity:0;pointer-events:none;transition:opacity .3s ease}@media (hover: hover) and (pointer: fine) and (min-width: 769px){.keyboard-guide{opacity:.5;pointer-events:auto}.keyboard-guide:hover{opacity:.9}}.keys-container{display:flex;flex-direction:column;align-items:center;gap:4px}.key-row{display:flex;gap:4px}.key-cap{width:30px;height:30px;border:1px solid var(--text-muted);border-radius:6px;display:flex;align-items:center;justify-content:center;background:#ffffff05;color:var(--text-muted);transition:all .1s ease;box-shadow:0 2px 0 var(--border)}.key-cap svg{transition:transform .1s ease}.key-cap.active{background:var(--text);color:var(--bg);border-color:var(--text);transform:translateY(2px);box-shadow:0 0 0 transparent}.guide-text{font-size:.65rem;font-weight:700;text-transform:uppercase;letter-spacing:.12em;color:var(--text-muted);white-space:nowrap}
