.game-page,.game-container{width:100vw;min-height:100dvh;position:relative;overflow:hidden}.start-screen,.controls-overlay,.game-end-screen{box-sizing:border-box;padding:max(16px, var(--safe-top,env(safe-area-inset-top,0px))) max(16px, var(--safe-right,env(safe-area-inset-right,0px))) max(16px, var(--safe-bottom,env(safe-area-inset-bottom,0px))) max(16px, var(--safe-left,env(safe-area-inset-left,0px)));overflow:auto}.start-screen,.game-end-screen{padding-bottom:max(1.5rem, var(--safe-bottom,env(safe-area-inset-bottom,0px)))}.controls-overlay{padding-bottom:max(1rem, var(--safe-bottom,env(safe-area-inset-bottom,0px)))}.start-screen{gap:10px}.start-screen h1,.game-end-screen h1{overflow-wrap:anywhere;max-width:min(920px,100%);line-height:1.05}.start-screen .game-desc,.game-end-screen p{overflow-wrap:anywhere;max-width:min(620px,92vw)}.start-btn,.play-btn,.hud-btn{box-sizing:border-box;text-align:center;white-space:normal;overflow-wrap:anywhere;-webkit-tap-highlight-color:transparent;touch-action:manipulation;justify-content:center;align-items:center;max-width:calc(100vw - 32px);min-height:44px;line-height:1.2;display:inline-flex}.start-btn,.play-btn{min-width:min(220px,100vw - 32px)}.hud-btn{min-width:44px;padding:8px 12px}.hud-controls,.game-selector-group,.world-options,.option-row,.mode-buttons{box-sizing:border-box;flex-wrap:wrap;justify-content:center;align-items:center;gap:8px;max-width:min(920px,100%);display:flex}.game-hud{box-sizing:border-box;padding:max(10px, var(--safe-top,env(safe-area-inset-top,0px))) max(10px, var(--safe-right,env(safe-area-inset-right,0px))) 10px max(10px, var(--safe-left,env(safe-area-inset-left,0px)));flex-wrap:wrap;align-items:flex-start;gap:8px 12px;display:flex}.game-hud .hud-controls{justify-content:flex-end;margin-left:auto}.hud-score,.game-hud>*{max-width:100%}.controls-content{box-sizing:border-box;justify-items:center;width:min(560px,100%);max-height:calc(100dvh - 32px);display:grid;overflow:auto}.controls-content h2{overflow-wrap:anywhere;max-width:100%;line-height:1.1}.control-item{overflow-wrap:anywhere;justify-content:center;align-items:center;gap:10px;max-width:100%;margin:8px 0;display:flex}.control-key{flex:none}#game-canvas.fixed-size-canvas{object-fit:contain!important;width:auto!important;max-width:100vw!important;height:auto!important;max-height:100dvh!important;margin:auto!important;display:block!important;position:fixed!important;inset:0!important}@media (width<=520px){.start-screen,.controls-overlay,.game-end-screen{padding:max(12px, var(--safe-top,env(safe-area-inset-top,0px))) max(12px, var(--safe-right,env(safe-area-inset-right,0px))) max(12px, var(--safe-bottom,env(safe-area-inset-bottom,0px))) max(12px, var(--safe-left,env(safe-area-inset-left,0px)))}.start-btn,.play-btn{letter-spacing:.08em;min-height:48px;padding:12px 18px}.game-hud{justify-content:center;align-items:center;gap:6px}.game-hud .hud-controls{justify-content:center;width:100%;margin-left:0}.hud-btn{min-height:40px;padding:7px 10px;font-size:.78rem}.control-item{font-size:.9rem}}@media (height<=480px) and (orientation:landscape){.start-screen{justify-content:flex-start}.start-screen h1,.controls-content h2{margin-block:4px 8px}.start-screen .game-desc{margin-bottom:8px;line-height:1.35}.controls-content{max-height:calc(100dvh - 24px)}}.sgai-orientation-overlay{z-index:var(--z-emergency);opacity:0;pointer-events:none;font-family:var(--font-body,"Satoshi", system-ui, sans-serif);background:#000000f5;justify-content:center;align-items:center;transition:opacity .3s;display:flex;position:fixed;inset:0}.sgai-orientation-overlay.sgai-orientation-visible{opacity:1;pointer-events:all}.sgai-orientation-overlay:popover-open,.sgai-orientation-overlay[popover]{background:#000000f5;border:0;width:100%;max-width:none;height:100%;max-height:none;margin:0;padding:0;inset:0;overflow:hidden}.sgai-orientation-prompt{text-align:center;color:#ccc;padding:32px}.sgai-orientation-icon{width:64px;height:64px;margin:0 auto 16px;animation:2s ease-in-out infinite sgai-orient-wiggle;display:block}.sgai-orientation-icon svg{stroke:#fff9;stroke-width:2px;fill:none;width:100%;height:100%}.sgai-orientation-prompt h2{color:#fff;margin:0 0 8px;font-size:1.15rem;font-weight:600}.sgai-orientation-prompt p{color:#ffffff8c;max-width:280px;margin:0 auto;font-size:.88rem;line-height:1.5}@keyframes sgai-orient-wiggle{0%,to{transform:rotate(-18deg)}50%{transform:rotate(18deg)}}@media (hover:hover) and (pointer:fine){.sgai-orientation-overlay{display:none!important}}.start-screen{text-align:center;background:radial-gradient(120% 100% at 50% 0%, color-mix(in oklch, var(--accent-red) 10%, transparent), transparent 55%), linear-gradient(180deg, var(--bg-deep,#060608), var(--bg-primary,#0b0b0f));min-height:100dvh;color:var(--text-primary);flex-direction:column;justify-content:center;align-items:center;gap:clamp(1rem,3vh,1.75rem);display:flex;position:relative}.start-screen h1{font-family:var(--font-display,Georgia, serif);letter-spacing:-.02em;text-shadow:0 0 24px color-mix(in oklch, var(--accent-red) 40%, transparent);margin:0;font-size:clamp(2rem,7vw,4rem);font-weight:700;line-height:1.05}.start-screen .game-desc{color:var(--text-secondary);max-width:min(620px,90vw);margin:0 auto;font-size:clamp(.95rem,2.5vw,1.25rem);line-height:1.55}.back-link{top:max(12px, var(--safe-top,env(safe-area-inset-top,0px)));left:max(12px, var(--safe-left,env(safe-area-inset-left,0px)));z-index:var(--z-sticky,100);color:var(--text-secondary);background:color-mix(in oklch, var(--bg-card,#141419) 70%, transparent);border:1px solid var(--glass-border,#ffffff1a);-webkit-backdrop-filter:blur(8px);border-radius:999px;align-items:center;gap:6px;padding:8px 14px;font-size:.85rem;font-weight:600;text-decoration:none;transition:color .15s,background .15s,transform .15s;display:inline-flex;position:absolute}.back-link:hover,.back-link:focus-visible{color:var(--text-primary);background:color-mix(in oklch, var(--bg-card,#141419) 90%, transparent);transform:translateY(-1px)}.game-selector-group{text-align:center;flex-direction:column;align-items:center;gap:.5rem;width:min(420px,90vw);display:flex}.game-selector-label{letter-spacing:.14em;text-transform:uppercase;color:var(--text-muted);font-size:.72rem;font-weight:700}.game-start-select{-webkit-appearance:none;appearance:none;width:100%;font:inherit;text-align:center;color:var(--text-primary);background:color-mix(in oklch, var(--bg-card,#141419) 80%, transparent) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%23ffffff' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E") no-repeat right .85rem center;border:1px solid var(--glass-border,#ffffff1a);border-radius:var(--radius-lg,12px);cursor:pointer;padding:.85rem 2.5rem .85rem 1rem;font-size:1rem;transition:border-color .15s,box-shadow .15s}.game-start-select:focus-visible{border-color:var(--accent-red);box-shadow:0 0 0 3px color-mix(in oklch, var(--accent-red) 25%, transparent);outline:none}.game-selector-desc{color:var(--text-secondary);min-height:1.3em;font-size:.85rem;line-height:1.4}.start-btn,.play-btn{letter-spacing:.04em;color:#fff;background:linear-gradient(135deg, var(--accent-red), color-mix(in oklch, var(--accent-red) 70%, black));border-radius:var(--radius-lg,12px);min-height:56px;box-shadow:0 0 24px color-mix(in oklch, var(--accent-red) 35%, transparent);cursor:pointer;-webkit-tap-highlight-color:transparent;touch-action:manipulation;border:none;justify-content:center;align-items:center;gap:.5rem;padding:.9rem 2rem;font-size:clamp(1rem,3vw,1.25rem);font-weight:700;text-decoration:none;transition:transform .15s,box-shadow .15s,filter .15s;display:inline-flex}.start-btn:hover,.play-btn:hover,.start-btn:focus-visible,.play-btn:focus-visible{box-shadow:0 0 32px color-mix(in oklch, var(--accent-red) 50%, transparent);filter:brightness(1.08);transform:translateY(-2px)}.start-btn:active,.play-btn:active{transform:translateY(0)}.sub-tier-badge{background:color-mix(in oklch, var(--bg-card,#141419) 70%, transparent);border:1px solid var(--glass-border,#ffffff1a);color:var(--text-secondary);-webkit-backdrop-filter:blur(8px);border-radius:999px;justify-content:center;align-items:center;gap:.5rem;margin-top:.25rem;padding:.6rem 1rem;font-size:.85rem;text-decoration:none;transition:color .15s,background .15s,transform .15s;display:inline-flex}.sub-tier-badge:hover,.sub-tier-badge:focus-visible{color:var(--text-primary);background:color-mix(in oklch, var(--bg-card,#141419) 90%, transparent);transform:translateY(-1px)}.sub-tier-badge__upgrade{color:var(--accent-red);font-weight:700}.boot-error{text-align:center;color:#fff;background:color-mix(in oklch, var(--accent-red) 20%, var(--bg-card,#141419));border:1px solid color-mix(in oklch, var(--accent-red) 50%, transparent);border-radius:var(--radius-md,8px);width:min(420px,90vw);max-width:100%;margin:0 auto;padding:.75rem 1rem;font-size:.85rem}@media (width<=520px){.start-screen{padding-top:max(64px, var(--safe-top,env(safe-area-inset-top,0px)));gap:clamp(.85rem,2.5vh,1.25rem)}.start-screen h1{font-size:clamp(1.6rem,6vw,2.4rem)}.start-screen .game-desc{padding:0 12px;font-size:.9rem}.game-selector-group{width:min(340px,92vw)}.start-btn,.play-btn{min-height:52px;padding:.8rem 1.75rem;font-size:1rem}.sub-tier-badge{padding:.5rem .9rem;font-size:.8rem}}@media (height<=480px) and (orientation:landscape){.start-screen{padding-top:max(56px, var(--safe-top,env(safe-area-inset-top,0px)));justify-content:flex-start;gap:.6rem}.start-screen h1{font-size:clamp(1.4rem,5vh,2rem)}.start-screen .game-desc{margin-bottom:.25rem;font-size:.85rem}.game-selector-group{width:min(360px,80vw)}.game-start-select{padding:.65rem 2.25rem .65rem .85rem}.start-btn,.play-btn{min-height:44px;padding:.6rem 1.5rem}}.sgai-pause-btn{z-index:var(--z-a11y-pause);color:#fff;cursor:pointer;background:#000000c7;border:2px solid #ffffffb3;border-radius:50%;justify-content:center;align-items:center;height:44px;font-size:18px;display:inline-flex;position:fixed;top:12px;right:12px}.sgai-pause-btn:focus-visible{outline-offset:2px;outline:3px solid #ffeb3b}.sgai-hint-banner{z-index:var(--z-a11y-hint);color:#fff;background:#000000d9;border:1px solid #fff3;border-radius:999px;align-items:center;gap:10px;padding:8px 14px;font:600 13px/1.2 system-ui,sans-serif;display:flex;position:fixed;bottom:12px;left:50%;transform:translate(-50%)}.sgai-hint-banner[hidden]{display:none}.sgai-hint-banner__text{line-height:1.3}.sgai-hint-banner button{color:#fff;cursor:pointer;background:0 0;border:0;place-items:center;min-width:44px;min-height:44px;padding:0 8px;font-size:16px;display:grid}.sgai-hint-banner button:focus-visible{outline-offset:2px;border-radius:4px;outline:2px solid #ffeb3b}@media (width<=520px){body.mc-mobile-active .sgai-hint-banner{border-radius:12px;gap:8px;max-width:none;padding:8px 12px;font-size:12px;inset:12px 12px auto;transform:none}body.mc-mobile-active .sgai-hint-banner__text{-webkit-line-clamp:2;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}}@media (width<=340px){body.mc-mobile-active .sgai-hint-banner{border-radius:50%;justify-content:center;width:48px;height:48px;padding:0;right:auto}body.mc-mobile-active .sgai-hint-banner__text{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}body.mc-mobile-active .sgai-hint-banner button{background:#000000db;border-radius:50%;width:24px;height:24px;padding:0;position:absolute;top:-6px;right:-6px}}.sgai-pause-overlay{z-index:var(--z-a11y-pause);backdrop-filter:blur(4px);color:#f5f5f5;background:#000000c7;justify-content:center;align-items:center;padding:16px;font-family:system-ui,-apple-system,sans-serif;position:fixed;inset:0}.sgai-pause-overlay[hidden]{display:none}.sgai-pause__panel{background:#0c0c12;border:1px solid #ffffff2e;border-radius:14px;width:min(560px,100%);max-height:min(90vh,800px);padding:22px clamp(16px,4vw,28px);overflow-y:auto;box-shadow:0 18px 50px #000000b3}.sgai-pause__panel h2{color:#fff;margin:0 0 6px;font-size:1.5rem}.sgai-pause__panel h3{color:#ffeb3b;margin:12px 0 6px;font-size:1.1rem}.sgai-pause__hint{color:#c7c7d0;font-size:.9rem;line-height:1.45}.sgai-pause__hint kbd{font:inherit;background:#222;border:1px solid #444;border-radius:4px;padding:2px 6px}.sgai-pause__buttons{flex-wrap:wrap;gap:8px;margin-top:14px;display:flex}.sgai-pause__btn{cursor:pointer;color:#fff;background:#1c1c26;border:1px solid #ffffff26;border-radius:8px;padding:10px 14px;font-size:.95rem;font-weight:700}.sgai-pause__btn:focus-visible{outline-offset:2px;outline:3px solid #ffeb3b}.sgai-pause__btn--primary{background:#ff3b3b;border-color:#ff3b3b}.sgai-pause__btn--primary:hover{background:#e63333}.sgai-pause__btn--ghost{background:0 0}.sgai-pause__remap-list{gap:6px;margin:8px 0 0;padding:0;list-style:none;display:grid}.sgai-pause__remap-item{background:#14141c;border:1px solid #ffffff14;border-radius:8px;justify-content:space-between;align-items:center;padding:8px 10px;display:flex}.sgai-pause__remap-btn{color:#fff;cursor:pointer;text-align:center;background:#1c1c26;border:1px solid #ffffff2e;border-radius:6px;min-width:110px;padding:6px 10px;font:700 .9rem/1 monospace,system-ui}.sgai-pause__remap-btn:focus-visible{outline-offset:2px;outline:3px solid #ffeb3b}.sgai-pause__remap-actions{justify-content:flex-end;gap:8px;margin-top:12px;display:flex}body.sgai-game-paused{overflow:hidden}body.sgai-game-paused canvas{filter:brightness(.65)saturate(.85)}.game-hud.sgai-hud-safe-contrast{outline-offset:2px;color:#fff!important;background:#000!important;outline:2px solid #fff!important}.game-hud.sgai-hud-safe-contrast .hud-item,.game-hud.sgai-hud-safe-contrast .hud-score,.game-hud.sgai-hud-safe-contrast .hud-btn{color:#fff!important;background:#000!important;border:2px solid #fff!important}.sgai-comfort__bpm{font-variant-numeric:tabular-nums;letter-spacing:.02em;color:var(--accent-cyan,#06b6d4);margin-top:6px;font-weight:700;display:inline-block}html[data-sgai-protective=true] .sgai-comfort__bpm{color:var(--calm,#6ee7b7)}