@import"https://fonts.googleapis.com/css2?family=Fraunces:opsz,wght@9..144,300;9..144,500;9..144,600&family=Plus+Jakarta+Sans:wght@400;500;600&family=JetBrains+Mono:wght@500&display=swap";:root{--bg-black: #0b0d12;--bg-dark: #12151c;--bg-panel: rgba(18, 20, 26, .85);--panel-border: rgba(255, 255, 255, .08);--panel-highlight: rgba(255, 255, 255, .06);--shadow-soft: 0 24px 60px rgba(0, 0, 0, .45);--text-white: #ffffff;--text-gray: #a2a7b3;--text-dim: #626a7a;--pip: #FF6B9D;--luca: #FFD93D;--bruno: #6B4423;--cara: #FF9FF3;--felix: #D4A574;--ivy: #A8D8EA;--accent: var(--pip);--accent-soft: color-mix(in srgb, var(--accent) 25%, transparent);--accent-glow: color-mix(in srgb, var(--accent) 35%, transparent);--success: #4ade80;--danger: #ef4444;--font-main: "Plus Jakarta Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--font-title: "Fraunces", "Times New Roman", serif;--font-mono: "JetBrains Mono", ui-monospace, SFMono-Regular, Menlo, monospace;--font-narration: "Fraunces", Georgia, "Times New Roman", serif;--overlay-strong: rgba(255, 255, 255, .12);--overlay-medium: rgba(255, 255, 255, .08);--overlay-light: rgba(255, 255, 255, .06);--overlay-subtle: rgba(255, 255, 255, .04);--overlay-faint: rgba(255, 255, 255, .03);--shadow-sm: 0 2px 8px rgba(0, 0, 0, .3);--shadow-md: 0 12px 28px rgba(0, 0, 0, .4);--shadow-lg: 0 20px 40px rgba(0, 0, 0, .4);--shadow-xl: 0 24px 60px rgba(0, 0, 0, .45);--ease-bounce: cubic-bezier(.34, 1.56, .64, 1);--ease-smooth: cubic-bezier(.4, 0, .2, 1);--space-xs: 4px;--space-sm: 8px;--space-md: 16px;--space-lg: 24px;--space-xl: 36px;--radius-sm: 8px;--radius-md: 12px;--radius-lg: 16px;--radius-xl: 24px;--radius-full: 999px}*{margin:0;padding:0;box-sizing:border-box}html,body{width:100%;height:100%;overflow:hidden}body{font-family:var(--font-main);background:radial-gradient(900px 500px at 12% -10%,rgba(255,107,157,.12),transparent 60%),radial-gradient(800px 460px at 88% 0%,rgba(255,217,61,.12),transparent 65%),linear-gradient(180deg,#0b0d12,#08090c);color:var(--text-white);display:flex;justify-content:center;align-items:center;position:relative;isolation:isolate}body:before{content:"";position:fixed;top:0;right:0;bottom:0;left:0;background-image:repeating-linear-gradient(0deg,rgba(255,255,255,.025) 0px,rgba(255,255,255,.025) 1px,transparent 1px,transparent 3px),repeating-linear-gradient(90deg,rgba(255,255,255,.02) 0px,rgba(255,255,255,.02) 1px,transparent 1px,transparent 4px);opacity:.25;pointer-events:none;z-index:0;mix-blend-mode:soft-light}#app{width:100%;max-width:900px;max-height:100vh;max-height:100dvh;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:12px;position:relative;z-index:1;overflow:hidden}@keyframes btnPress{0%{transform:translateY(0) scale(1)}50%{transform:translateY(2px) scale(.97)}to{transform:translateY(0) scale(1)}}@keyframes btnPulseGlow{0%,to{box-shadow:0 10px 20px color-mix(in srgb,var(--accent) 18%,transparent)}50%{box-shadow:0 10px 30px color-mix(in srgb,var(--accent) 35%,transparent),0 0 20px color-mix(in srgb,var(--accent) 20%,transparent)}}@keyframes fadeInUp{0%{opacity:0;transform:translateY(15px)}to{opacity:1;transform:translateY(0)}}@keyframes slideInDown{0%{opacity:0;transform:translateY(-20px)}to{opacity:1;transform:translateY(0)}}@keyframes bounceIn{0%{opacity:0;transform:scale(.8)}50%{transform:scale(1.05)}to{opacity:1;transform:scale(1)}}@keyframes brandFadeIn{0%{opacity:0;transform:translateY(-8px)}to{opacity:.6;transform:translateY(0)}}@keyframes subtitleFadeIn{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}@keyframes buttonsFadeIn{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@keyframes progressFadeIn{0%{opacity:0}to{opacity:1}}@keyframes castFadeIn{0%{opacity:0;transform:scale(.9)}to{opacity:.9;transform:scale(1)}}@keyframes levelCardEnter{0%{opacity:0;transform:translateY(16px) scale(.95)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes pauseSlideIn{0%{opacity:0;transform:translateY(-20px) scale(.95)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes installSlideIn{0%{opacity:0;transform:translateY(100px)}to{opacity:1;transform:translateY(0)}}@keyframes titleFadeIn{0%{opacity:0;letter-spacing:20px}to{opacity:1;letter-spacing:12px}}@keyframes titleBreathe{0%,to{transform:scale(1);filter:brightness(1)}50%{transform:scale(1.02);filter:brightness(1.1)}}@keyframes titleGradient{0%,to{background-position:0% 50%}50%{background-position:100% 50%}}@keyframes pulse{0%,to{transform:scale(1);opacity:.6}50%{transform:scale(1.1);opacity:.8}}@keyframes castPulse{0%,to{transform:scale(1);opacity:.75}50%{transform:scale(1.15);opacity:1}}@keyframes castSquarePulse{0%,to{transform:scale(1)}50%{transform:scale(1.1)}}@keyframes charPulse{0%,to{transform:scale(1);opacity:.85}50%{transform:scale(1.05);opacity:1}}@keyframes charGlow{0%,to{box-shadow:0 4px 12px var(--glow-color, rgba(255, 107, 157, .3))}50%{box-shadow:0 6px 20px var(--glow-color, rgba(255, 107, 157, .5))}}@keyframes logoSquarePulse{0%,to{transform:scale(1)}50%{transform:scale(1.15)}}@keyframes weaponPulse{0%,to{transform:scale(1);opacity:.9}50%{transform:scale(1.1);opacity:1}}@keyframes timerPulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.7;transform:scale(1.02)}}@keyframes installButtonPulse{0%,to{box-shadow:0 8px 20px #ff6b9d4d;transform:scale(1)}50%{box-shadow:0 12px 30px #ff6b9d80;transform:scale(1.02)}}@keyframes fullscreenPulse{0%,to{box-shadow:0 4px 16px #ff6b9d40;transform:scale(1)}50%{box-shadow:0 6px 24px #ff6b9d66;transform:scale(1.02)}}@keyframes currentLevelPulse{0%,to{box-shadow:0 0 #ff6b9d66}50%{box-shadow:0 0 0 8px #ff6b9d00}}@keyframes arrowPulse{0%,to{opacity:.6}50%{opacity:1}}@keyframes audioInitPulse{0%,to{opacity:.8;transform:scale(1)}50%{opacity:1;transform:scale(1.05)}}@keyframes audioPulse{0%,to{opacity:.6}50%{opacity:1}}@keyframes audioFadeIn{0%{opacity:0;transform:scale(.8)}to{opacity:1;transform:scale(1)}}@keyframes charFloat{0%,to{transform:translateY(0)}50%{transform:translateY(-4px)}}@keyframes charIdle{0%,to{transform:translateY(0) scale(1)}50%{transform:translateY(-2px) scale(1.02)}}@keyframes particleFloat{0%,to{transform:translateY(0) translate(0);opacity:0}10%{opacity:1}90%{opacity:1}to{transform:translateY(-60px) translate(20px);opacity:0}}@keyframes castBreathing{0%,to{transform:scale(1) translateY(0);opacity:.85}50%{transform:scale(1.08) translateY(-2px);opacity:1}}@keyframes rotateHint{0%{transform:rotate(0)}25%{transform:rotate(-15deg)}75%{transform:rotate(15deg)}to{transform:rotate(0)}}@keyframes arrowBounce{0%,to{transform:translate(0)}50%{transform:translate(5px)}}@keyframes arrowBounceLeft{0%,to{transform:translate(0)}50%{transform:translate(-5px)}}@keyframes winScreenFadeIn{0%{opacity:0}to{opacity:1}}@keyframes winGlow{0%,to{box-shadow:0 0 40px #ff6b9d33;filter:brightness(1)}50%{box-shadow:0 0 60px #ff6b9d59;filter:brightness(1.05)}}@keyframes winShimmer{0%{background-position:-200% center}to{background-position:200% center}}@keyframes winFadeUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@keyframes winCharEntrance{0%{opacity:0;transform:translateY(30px) scale(.5)}60%{opacity:1;transform:translateY(-5px) scale(1.1)}to{transform:translateY(0) scale(1)}}@keyframes winCharCelebrate{0%,to{transform:translateY(0) scale(1)}25%{transform:translateY(-4px) scale(1.05)}50%{transform:translateY(0) scale(1)}75%{transform:translateY(-3px) scale(1.03)}}@keyframes winCharGlowPulse{0%,to{box-shadow:0 0 15px var(--char-glow, rgba(255, 107, 157, .4))}50%{box-shadow:0 0 25px var(--char-glow, rgba(255, 107, 157, .6))}}@keyframes winSparkle{0%,to{opacity:0;transform:scale(0)}50%{opacity:1;transform:scale(1)}}@keyframes winMessageFade{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@keyframes winStarReveal{0%{opacity:0;transform:scale(0) rotate(-180deg)}60%{transform:scale(1.3) rotate(10deg)}to{opacity:1;transform:scale(1) rotate(0)}}@keyframes winStarShine{0%,to{filter:brightness(1) drop-shadow(0 0 4px currentColor)}50%{filter:brightness(1.3) drop-shadow(0 0 8px currentColor)}}@keyframes badgeReveal{0%{opacity:0;transform:scale(.5) rotate(-10deg)}60%{transform:scale(1.1) rotate(5deg)}to{opacity:1;transform:scale(1) rotate(0)}}@keyframes stageGlowReveal{0%{opacity:0;transform:scale(.8);filter:blur(10px)}to{opacity:1;transform:scale(1);filter:blur(0)}}@keyframes newBestBounce{0%,to{transform:scale(1)}50%{transform:scale(1.1)}}@keyframes newBestGlow{0%,to{text-shadow:0 0 10px rgba(74,222,128,.5)}50%{text-shadow:0 0 20px rgba(74,222,128,.8)}}@keyframes scorePopIn{0%{opacity:0;transform:scale(.6)}70%{transform:scale(1.1)}to{opacity:1;transform:scale(1)}}@keyframes scorePulse{0%,to{transform:scale(1)}50%{transform:scale(1.05)}}@keyframes labelSlide{0%{opacity:0;transform:translate(-10px)}to{opacity:1;transform:translate(0)}}@keyframes labelGlow{0%,to{opacity:.8}50%{opacity:1}}@keyframes levelNameFade{0%{opacity:0;letter-spacing:8px}to{opacity:1;letter-spacing:4px}}@keyframes gameCompleteGradient{0%,to{background-position:0% 50%}50%{background-position:100% 50%}}@keyframes quoteReveal{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@keyframes messageReveal{0%{opacity:0;transform:translateY(15px)}to{opacity:1;transform:translateY(0)}}@keyframes thanksReveal{0%{opacity:0}to{opacity:1}}@keyframes actionsReveal{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@keyframes confettiFall{0%{transform:translateY(-100%) rotate(0);opacity:1}to{transform:translateY(100vh) rotate(720deg);opacity:0}}@keyframes creditsEnter{0%{opacity:0;transform:translateY(30px)}to{opacity:1;transform:translateY(0)}}@keyframes creditsFadeIn{0%{opacity:0}to{opacity:1}}@keyframes characterSlideIn{0%{opacity:0;transform:translate(-20px)}to{opacity:1;transform:translate(0)}}@keyframes castMemberEnter{0%{opacity:0;transform:translateY(10px)}}@keyframes rainbowProgress{0%{background-position:0% 50%}to{background-position:200% 50%}}@keyframes celebrationPulse{0%,to{transform:scale(1);filter:brightness(1)}50%{transform:scale(1.02);filter:brightness(1.1)}}@keyframes touchHintFadeIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@keyframes storybookEnter{0%{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)}}@keyframes chapterCharIdle{0%,to{transform:translateY(0) scale(1)}50%{transform:translateY(-3px) scale(1.02)}}@keyframes pageFlipIn{0%{opacity:0;transform:rotateY(-10deg) translate(-20px)}to{opacity:1;transform:rotateY(0) translate(0)}}.btn{background:transparent;border:1px solid var(--panel-border);padding:14px 34px;font-family:var(--font-main);font-size:.9rem;font-weight:500;color:var(--text-white);letter-spacing:2px;text-transform:uppercase;cursor:pointer;border-radius:var(--radius-md);transition:transform .2s var(--ease-bounce),background .15s ease,border-color .15s ease,box-shadow .2s ease;touch-action:manipulation;-webkit-tap-highlight-color:transparent;position:relative;overflow:hidden}.btn:after{content:"";position:absolute;top:0;left:-100%;width:100%;height:100%;background:linear-gradient(90deg,transparent,rgba(255,255,255,.1),transparent);transition:left .4s ease;pointer-events:none}.btn:hover:after{left:100%}.btn:hover{border-color:var(--text-white);background:var(--overlay-medium);transform:translateY(-2px) scale(1.02);box-shadow:var(--shadow-md)}.btn:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.btn:active{transform:translateY(1px) scale(.98);box-shadow:var(--shadow-sm);transition:transform .08s ease-out}.btn.pressing{animation:btnPress .15s ease-out}.btn-primary{border-color:var(--accent);color:var(--accent);box-shadow:0 10px 20px color-mix(in srgb,var(--accent) 18%,transparent)}.btn-primary:hover{background:var(--accent-soft);border-color:var(--accent)}.btn-pulse{animation:btnPulseGlow 2s ease-in-out infinite}.btn-secondary{border-color:var(--text-dim);color:var(--text-gray)}.btn-back{border:none;color:var(--text-dim);padding:10px 20px;font-size:.8rem;border-radius:var(--radius-full)}.btn-back:hover{color:var(--text-white);background:transparent}.btn-ghost{background:transparent;border:1px solid var(--panel-border);color:var(--text-gray);padding:10px 20px;font-size:.8rem}.btn-ghost:hover{border-color:var(--text-gray);color:var(--text-white);background:var(--overlay-subtle)}.btn-sm{padding:8px 16px;font-size:.75rem;letter-spacing:1px}.btn-next{display:flex;align-items:center;gap:8px;padding:16px 32px}.btn-next .arrow{transition:transform .2s ease}.btn-next:hover .arrow{transform:translate(4px)}.btn-large{padding:18px 40px;font-size:1rem;letter-spacing:3px}.btn-icon-only{padding:10px;width:42px;height:42px;display:inline-flex;align-items:center;justify-content:center}.btn-icon-only .btn-icon{margin:0}.btn-icon,.btn-text{display:inline-block}.btn-arrow{display:inline-flex;align-items:center;gap:8px}.btn-arrow:after{content:"→";transition:transform .2s ease}.btn-arrow:hover:after{transform:translate(3px)}.game-wrapper{display:flex;flex-direction:column;gap:6px;max-width:760px;width:100%;max-height:calc(100vh - 24px);max-height:calc(100dvh - 24px)}.hud{display:flex;justify-content:space-between;align-items:center;padding:12px 20px;background:var(--bg-panel);border:1px solid color-mix(in srgb,var(--accent) 18%,var(--panel-border));border-radius:14px;box-shadow:var(--shadow-soft),0 0 20px var(--accent-glow);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);position:relative;overflow:hidden}.hud:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(120deg,rgba(255,255,255,.08),transparent 60%);opacity:.6;pointer-events:none}.level-display{font-size:.7rem;letter-spacing:3px;text-transform:uppercase;color:var(--text-dim)}.turn-count{font-size:.7rem;color:var(--text-gray);letter-spacing:1px;transition:color .3s ease;font-family:var(--font-mono);font-variant-numeric:tabular-nums;padding:4px 10px;border-radius:999px;border:1px solid rgba(255,255,255,.08);background:#ffffff08}.turn-count.approaching-best{color:var(--luca);animation:timerPulse .5s ease-in-out infinite;border-color:color-mix(in srgb,var(--luca) 55%,transparent);box-shadow:0 0 16px color-mix(in srgb,var(--luca) 25%,transparent)}.turn-count.past-best{color:var(--text-gray)}.turn-count span{color:var(--text-white)}.pause-btn{padding:6px 12px;background:transparent;border:1px solid var(--panel-border);color:var(--text-gray);font-family:var(--font-main);font-size:.6rem;letter-spacing:3px;text-transform:uppercase;cursor:pointer;border-radius:999px;transition:all .2s ease}.pause-btn:hover{border-color:var(--text-white);color:var(--text-white)}.pause-btn:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.pause-btn:active{transform:translateY(1px)}.game-container{position:relative;width:100%;max-width:100%;aspect-ratio:16 / 10;max-height:calc(100vh - 140px);max-height:calc(100dvh - 140px);background:var(--bg-black);border:1px solid var(--panel-border);border-radius:14px;overflow:hidden}.game-container:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;border-radius:inherit;box-shadow:inset 0 0 0 1px #ffffff0d;pointer-events:none;z-index:1}.control-hints{position:absolute;bottom:20px;right:20px;padding:16px 20px;background:#080a0ec7;border:1px solid var(--panel-border);border-radius:12px;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);z-index:10;transition:opacity 1s ease}.hint-row{font-size:.75rem;color:var(--text-gray);margin:6px 0;letter-spacing:1px}.hint-key{display:inline-block;padding:2px 8px;background:#ffffff1f;color:var(--text-white);border-radius:6px;font-family:var(--font-mono);font-size:.7rem;margin:0 2px}#gameCanvas{display:block;width:100%;height:100%;border-radius:14px;image-rendering:-webkit-optimize-contrast;image-rendering:crisp-edges}.weapon-bar{display:flex;justify-content:center;gap:8px;padding:12px;background:var(--bg-panel);border:1px solid color-mix(in srgb,var(--accent) 22%,var(--panel-border));border-radius:14px;box-shadow:var(--shadow-soft);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);position:relative;overflow:hidden}.weapon-bar:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(120deg,rgba(255,255,255,.08),transparent 65%);opacity:.5;pointer-events:none}.weapon-btn{padding:10px 18px;background:transparent;border:2px solid var(--panel-border);color:var(--text-gray);font-family:var(--font-main);font-size:.75rem;letter-spacing:1px;cursor:pointer;transition:all .2s ease;position:relative;overflow:hidden;border-radius:10px}.weapon-btn:before{content:"";position:absolute;top:0;left:0;width:100%;height:3px;background:currentColor;transform:scaleX(0);transform-origin:left;transition:transform .2s ease}.weapon-btn:hover:not(.locked){border-color:var(--text-white);color:var(--text-white);transform:translateY(-1px)}.weapon-btn:active:not(.locked){transform:translateY(0)}.weapon-btn:focus-visible{outline:2px solid currentColor;outline-offset:2px}.weapon-btn.active{border-color:currentColor;background:linear-gradient(180deg,#ffffff1f,#0000);box-shadow:0 12px 24px #00000059}.weapon-btn.active:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;border-radius:inherit;box-shadow:0 0 12px color-mix(in srgb,currentColor 35%,transparent);opacity:.6;pointer-events:none}.weapon-btn.active:before{transform:scaleX(1)}.weapon-btn.locked{opacity:.3;cursor:not-allowed}.character-bar{display:flex;gap:8px;justify-content:center;padding:8px 12px;background:var(--bg-panel);border-top:1px solid var(--panel-border)}.char-btn{display:flex;flex-direction:column;align-items:center;gap:2px;padding:6px 10px;background:#ffffff0a;border:2px solid transparent;border-radius:8px;cursor:pointer;transition:all .2s ease;position:relative}.char-btn.active{border-color:var(--char-color, var(--accent));background:#ffffff14}.char-btn:hover:not(.active){background:#ffffff0f}.char-shortcut{position:absolute;top:-6px;right:-4px;font-size:.55rem;background:#000000b3;color:var(--text-dim);padding:1px 4px;border-radius:3px}.char-portrait{width:20px;height:20px;background:var(--char-color, #888);border-radius:3px;position:relative;overflow:hidden}.char-btn[data-char="0"] .char-portrait:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:repeating-linear-gradient(45deg,transparent,transparent 3px,rgba(255,255,255,.25) 3px,rgba(255,255,255,.25) 5px)}.char-btn[data-char="1"] .char-portrait:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:radial-gradient(circle at 25% 25%,rgba(255,255,255,.3) 2px,transparent 2px),radial-gradient(circle at 75% 75%,rgba(255,255,255,.3) 2px,transparent 2px);background-size:10px 10px}.char-btn[data-char="2"] .char-portrait:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:repeating-linear-gradient(0deg,transparent,transparent 3px,rgba(255,255,255,.25) 3px,rgba(255,255,255,.25) 5px)}.char-btn[data-char="3"] .char-portrait:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:repeating-linear-gradient(45deg,transparent,transparent 2px,rgba(255,255,255,.2) 2px,rgba(255,255,255,.2) 4px),repeating-linear-gradient(-45deg,transparent,transparent 2px,rgba(255,255,255,.2) 2px,rgba(255,255,255,.2) 4px)}.char-btn[data-char="4"] .char-portrait:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:repeating-linear-gradient(90deg,transparent,transparent 3px,rgba(255,255,255,.25) 3px,rgba(255,255,255,.25) 5px)}.char-btn[data-char="5"] .char-portrait:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(45deg,transparent 45%,rgba(255,255,255,.2) 45%,rgba(255,255,255,.2) 55%,transparent 55%),linear-gradient(-45deg,transparent 45%,rgba(255,255,255,.2) 45%,rgba(255,255,255,.2) 55%,transparent 55%);background-size:8px 8px}.char-name{font-size:.55rem;color:var(--text-gray);text-transform:uppercase;letter-spacing:.5px}.char-ability{font-size:.5rem;color:var(--text-dim);font-style:italic}.hud-left{display:flex;align-items:center;gap:10px}.level-badge{display:flex;align-items:center;justify-content:center;width:28px;height:28px;background:#ffffff14;border-radius:6px;border:1px solid var(--panel-border)}.level-badge .level-num{font-size:.85rem;font-weight:600;color:var(--text-white)}.level-info{display:flex;flex-direction:column;gap:1px}.hud-center{position:absolute;left:50%;transform:translate(-50%)}.hud-right{display:flex;align-items:center}.timer{display:flex;align-items:baseline;gap:4px;color:var(--text-white)}.timer-icon{font-size:.75rem;opacity:.7}.timer-value{font-size:1.1rem;font-weight:600;font-variant-numeric:tabular-nums}.timer-unit{font-size:.6rem;color:var(--text-dim)}.hints-content{display:flex;flex-direction:column;gap:8px}.hint-group{display:flex;flex-direction:column;gap:4px}.hint-keys{display:flex;gap:3px}kbd{display:inline-flex;align-items:center;justify-content:center;min-width:20px;height:20px;padding:0 5px;background:#ffffff14;border:1px solid var(--panel-border);border-radius:4px;font-family:var(--font-mono);font-size:.6rem;color:var(--text-gray)}.hint-action{font-size:.68rem;color:var(--text-dim)}.hint-restart{border-top:1px solid var(--panel-border);padding-top:6px;margin-top:2px}.hints-dismiss{position:absolute;top:2px;right:2px;width:22px;height:22px;background:none;border:none;color:var(--text-dim);cursor:pointer;font-size:.9rem;line-height:22px;text-align:center;opacity:.6;transition:opacity .2s;z-index:1}.hints-dismiss:hover{opacity:1}.portrait-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:var(--bg-black);display:flex;flex-direction:column;align-items:center;justify-content:center;z-index:9999;opacity:0;visibility:hidden;pointer-events:none;transition:opacity .3s ease,visibility .3s ease}.portrait-overlay.visible{opacity:1;visibility:visible;pointer-events:auto}.rotate-content{display:flex;flex-direction:column;align-items:center;gap:24px;padding:32px;text-align:center}.rotate-icon{width:100px;height:100px;color:var(--text-gray);animation:rotateHint 2.5s ease-in-out infinite}.rotate-icon svg{width:100%;height:100%}.rotate-text{font-family:var(--font-title);font-size:1.5rem;font-weight:500;color:var(--text-white);letter-spacing:4px;text-transform:uppercase}.rotate-subtext{font-size:.85rem;color:var(--text-dim);letter-spacing:2px}.fullscreen-prompt{position:fixed;top:0;right:0;bottom:0;left:0;background:#000000d9;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);display:flex;flex-direction:column;align-items:center;justify-content:center;z-index:9998;opacity:0;visibility:hidden;pointer-events:none;transition:opacity .3s ease,visibility .3s ease;cursor:pointer}.fullscreen-prompt.visible{opacity:1;visibility:visible;pointer-events:auto}.fullscreen-content{display:flex;flex-direction:column;align-items:center;gap:16px;padding:32px;text-align:center;max-width:300px}.fullscreen-icon{width:64px;height:64px;color:var(--text-white);animation:fullscreenPulse 2s ease-in-out infinite}.fullscreen-icon svg{width:100%;height:100%}.fullscreen-text{font-family:var(--font-title);font-size:1.3rem;font-weight:500;color:var(--text-white);letter-spacing:2px}.fullscreen-subtext{font-size:.8rem;color:var(--text-dim);letter-spacing:1px;line-height:1.5}.fullscreen-dismiss{margin-top:16px;padding:8px 20px;background:transparent;border:1px solid rgba(255,255,255,.2);border-radius:4px;color:var(--text-dim);font-size:.75rem;font-family:var(--font-main);letter-spacing:1px;cursor:pointer;transition:all .2s ease}.fullscreen-dismiss:hover,.fullscreen-dismiss:active{border-color:#fff6;color:var(--text-gray)}.install-prompt{position:fixed;top:0;right:0;bottom:0;left:0;background:#06080ceb;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);display:flex;align-items:center;justify-content:center;z-index:9997;opacity:0;visibility:hidden;pointer-events:none;transition:opacity .3s ease,visibility .3s ease}.install-prompt.visible{opacity:1;visibility:visible;pointer-events:auto}.install-content{width:min(420px,90vw);background:#12141aeb;border:1px solid var(--panel-border);border-radius:20px;padding:28px;text-align:center;box-shadow:var(--shadow-soft)}.install-header{display:flex;flex-direction:column;align-items:center;gap:10px;margin-bottom:20px}.install-logo-squares{display:grid;grid-template-columns:repeat(2,1fr);gap:6px;width:44px;height:44px}.install-logo-squares span{display:block;border-radius:6px;box-shadow:0 6px 16px #0006}.install-title{font-family:var(--font-title);font-size:1.6rem;letter-spacing:2px}.install-subtitle{font-size:.8rem;color:var(--text-dim);letter-spacing:2px;text-transform:uppercase}.install-reason{display:grid;gap:10px;margin:18px 0 22px;text-align:left}.reason-item{display:flex;align-items:center;gap:10px;padding:10px 12px;border-radius:12px;background:#ffffff0a;border:1px solid var(--panel-border);color:var(--text-gray);font-size:.85rem}.reason-icon{font-size:1rem}.install-steps{display:grid;gap:12px}.install-step{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:12px;padding:12px 14px;border-radius:12px;background:#ffffff09;border:1px solid var(--panel-border);text-align:left;font-size:.85rem;color:var(--text-gray)}.install-step-button{display:block;padding:0;background:transparent;border:none}.step-number{width:26px;height:26px;border-radius:999px;display:inline-flex;align-items:center;justify-content:center;background:#ffffff1f;color:var(--text-white);font-size:.75rem;letter-spacing:1px}.step-icon{width:26px;height:26px;display:inline-flex;align-items:center;justify-content:center;color:var(--text-gray)}.step-icon svg{width:20px;height:20px}.install-button{width:100%;border:none;border-radius:14px;padding:14px 18px;background:var(--accent);color:#0b0d12;font-family:var(--font-main);font-size:.9rem;font-weight:600;letter-spacing:1px;display:inline-flex;align-items:center;justify-content:center;gap:10px;cursor:pointer;transition:transform .2s ease,box-shadow .2s ease}.install-button:hover{transform:translateY(-1px);box-shadow:0 12px 26px color-mix(in srgb,var(--accent) 35%,transparent)}.install-button-icon svg{width:18px;height:18px}.install-alt-text{margin-top:10px;font-size:.75rem;color:var(--text-dim)}.install-note{margin-top:18px;font-size:.7rem;color:var(--text-dim);letter-spacing:1px}.install-skip{margin-top:20px;padding:10px 20px;background:transparent;border:1px solid rgba(255,255,255,.15);border-radius:8px;color:var(--text-dim);font-family:var(--font-main);font-size:.75rem;letter-spacing:1px;cursor:pointer;transition:all .2s ease}.install-skip:hover,.install-skip:active{border-color:#ffffff4d;color:var(--text-gray);background:#ffffff08}@media (max-width: 480px){.install-content{padding:22px}.install-title{font-size:1.4rem}.install-step{grid-template-columns:auto 1fr}.step-icon{display:none}}.menu-screen{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:100vh;max-height:100vh;max-height:100dvh;padding:24px;text-align:center;position:relative;overflow-y:auto}.menu-screen:before,.menu-screen:after{content:"";position:absolute;width:320px;height:320px;border-radius:var(--radius-full);background:radial-gradient(circle at center,color-mix(in srgb,var(--accent) 25%,transparent),transparent 70%);opacity:.6;filter:blur(20px);pointer-events:none;z-index:-1}.menu-screen:before{top:5%;left:10%}.menu-screen:after{bottom:10%;right:5%}.studio-brand{font-family:var(--font-main);font-size:.65rem;letter-spacing:3px;text-transform:uppercase;color:var(--text-dim);margin-bottom:4px;opacity:.6;font-weight:400;animation:brandFadeIn .8s ease-out backwards}.game-title{font-family:var(--font-title);font-size:2.8rem;font-weight:500;letter-spacing:10px;text-transform:uppercase;color:var(--text-white);margin-bottom:8px;text-shadow:0 10px 30px rgba(0,0,0,.45);animation:titleFadeIn 1s ease-out,titleBreathe 4s ease-in-out 1s infinite}@supports ((-webkit-background-clip: text) or (background-clip: text)){.game-title{background:linear-gradient(100deg,var(--pip),var(--luca),var(--ivy));background-size:200% 100%;-webkit-background-clip:text;background-clip:text;color:transparent;animation:titleFadeIn 1s ease-out,titleBreathe 4s ease-in-out 1s infinite,titleGradient 8s ease-in-out infinite}}.menu-screen .subtitle{color:var(--text-dim);font-size:.85rem;letter-spacing:3px;text-transform:uppercase;margin-bottom:12px;font-weight:300;animation:subtitleFadeIn 1s ease-out .3s backwards}.menu-buttons{display:flex;flex-direction:column;gap:var(--space-md);margin-bottom:var(--space-xl);animation:buttonsFadeIn .6s ease-out .6s backwards}.continue-hint{font-size:.7rem;letter-spacing:2px;text-transform:uppercase;color:var(--text-dim);margin-bottom:22px}.menu-cast{display:flex;align-items:center;justify-content:center;gap:10px;margin-bottom:18px;opacity:.9;animation:castFadeIn .6s ease-out .7s backwards}.cast-square{width:12px;height:12px;border-radius:4px;background:var(--cast-color);box-shadow:0 6px 16px color-mix(in srgb,var(--cast-color) 40%,transparent);animation:castPulse 4s ease-in-out infinite}.cast-square:nth-child(2){animation-delay:.1s}.cast-square:nth-child(3){animation-delay:.2s}.cast-square:nth-child(4){animation-delay:.3s}.cast-square:nth-child(5){animation-delay:.4s}.cast-square:nth-child(6){animation-delay:.5s}.level-badge{font-size:1rem;font-weight:600;color:var(--luca);letter-spacing:2px}.progress-display{color:var(--text-dim);font-size:.8rem;letter-spacing:2px;padding:6px 16px;border-radius:var(--radius-full);border:1px solid var(--panel-border);background:var(--overlay-subtle);font-variant-numeric:tabular-nums;position:relative;overflow:hidden;animation:progressFadeIn .6s ease-out .9s backwards}.progress-display:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(90deg,color-mix(in srgb,var(--accent) 45%,transparent),transparent 70%);opacity:.6;transform:scaleX(var(--progress, 0));transform-origin:left;transition:transform .4s ease;z-index:0}.progress-display span,.progress-display{position:relative;z-index:1}.audio-hint{margin-top:24px;font-size:.75rem;letter-spacing:1px}.audio-status{display:inline-block;padding:6px 16px;border-radius:20px;transition:all .3s ease}.audio-status.audio-init{color:var(--text-dim);background:var(--overlay-faint);border:1px solid rgba(255,255,255,.1);animation:audioInitPulse 1.2s ease-in-out infinite}.audio-status.audio-ready,.audio-status.audio-off{color:var(--text-dim);background:var(--overlay-subtle);border:1px solid var(--panel-border);animation:audioPulse 2s ease-in-out infinite}.audio-status.audio-on{color:var(--success);background:#4ade801a;border:1px solid var(--success);animation:audioFadeIn .3s ease-out}.menu-particles-canvas{position:fixed;top:0;left:0;width:100%;height:100%;pointer-events:none;z-index:0;opacity:.25}.level-select-screen{display:flex;flex-direction:column;align-items:center;padding:40px 24px 100px;min-height:100vh;max-height:100vh;max-height:100dvh;overflow-y:auto;overflow-x:hidden;gap:8px;-webkit-overflow-scrolling:touch;width:100%;box-sizing:border-box;scrollbar-width:thin;scrollbar-color:rgba(255,255,255,.2) transparent}.level-select-screen::-webkit-scrollbar{width:8px}.level-select-screen::-webkit-scrollbar-thumb{background:#ffffff26;border-radius:var(--radius-full)}.level-select-screen h2{font-weight:500;font-size:1.2rem;letter-spacing:6px;text-transform:uppercase;margin-bottom:40px;color:var(--text-gray);font-family:var(--font-title);position:relative}.level-select-screen h2:after{content:"";display:block;width:120px;height:2px;margin:14px auto 0;background:linear-gradient(90deg,transparent,color-mix(in srgb,var(--accent) 70%,transparent),transparent);opacity:.7}.level-select-screen .btn-back{position:sticky;bottom:20px;margin-top:auto;background:#0b0d12f2;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);z-index:10}.level-select-meta{display:inline-flex;align-items:center;gap:10px;padding:6px 16px;border-radius:var(--radius-full);border:1px solid var(--panel-border);background:var(--overlay-subtle);margin-bottom:24px;letter-spacing:1px;text-transform:uppercase;font-size:.7rem}.meta-label{color:var(--text-dim)}.meta-value{color:var(--text-white);font-weight:600;font-variant-numeric:tabular-nums}.levels-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(80px,1fr));gap:12px;width:100%;max-width:600px;margin-bottom:40px;box-sizing:border-box;padding:0 2px}.level-card{aspect-ratio:1;display:flex;flex-direction:column;align-items:center;justify-content:center;background:linear-gradient(160deg,var(--overlay-subtle),rgba(255,255,255,.01));border:1px solid transparent;border-radius:14px;cursor:pointer;transition:all .25s ease;padding:12px;position:relative;overflow:hidden;font-family:var(--font-main);color:var(--text-white);box-shadow:var(--shadow-soft);-webkit-appearance:none;-moz-appearance:none;appearance:none}.level-card:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:radial-gradient(circle at center,rgba(255,255,255,.05) 0%,transparent 70%);opacity:0;transition:opacity .25s ease}.level-card:hover:not(.locked){border-color:var(--panel-border);transform:translateY(-2px);box-shadow:var(--shadow-lg)}.level-card:active:not(.locked){transform:translateY(0);box-shadow:0 12px 24px #00000059}.level-card:hover:not(.locked):before{opacity:1}.level-card.completed{border-color:var(--success);background:linear-gradient(160deg,#4ade8029,#4ade800a)}.level-card.completed .level-number{color:var(--success)}.level-card.completed:hover{border-color:var(--success);box-shadow:0 0 20px #4ade8033}.level-card.locked,.level-card:disabled{opacity:.3;cursor:not-allowed;box-shadow:none}.level-card:focus-visible{outline:2px solid var(--luca);outline-offset:2px;border-color:var(--panel-border)}.levels-grid .level-card{animation:levelCardEnter .35s ease-out backwards}.levels-grid .level-card:nth-child(1){animation-delay:.02s}.levels-grid .level-card:nth-child(2){animation-delay:.04s}.levels-grid .level-card:nth-child(3){animation-delay:.06s}.levels-grid .level-card:nth-child(4){animation-delay:.08s}.levels-grid .level-card:nth-child(5){animation-delay:.1s}.levels-grid .level-card:nth-child(6){animation-delay:.12s}.levels-grid .level-card:nth-child(7){animation-delay:.14s}.levels-grid .level-card:nth-child(8){animation-delay:.16s}.levels-grid .level-card:nth-child(9){animation-delay:.18s}.levels-grid .level-card:nth-child(10){animation-delay:.2s}.levels-grid .level-card:nth-child(11){animation-delay:.22s}.levels-grid .level-card:nth-child(12){animation-delay:.24s}.levels-grid .level-card:nth-child(13){animation-delay:.26s}.levels-grid .level-card:nth-child(14){animation-delay:.28s}.levels-grid .level-card:nth-child(15){animation-delay:.3s}.levels-grid .level-card:nth-child(16){animation-delay:.32s}.levels-grid .level-card:nth-child(17){animation-delay:.34s}.levels-grid .level-card:nth-child(18){animation-delay:.36s}.levels-grid .level-card:nth-child(19){animation-delay:.38s}.levels-grid .level-card:nth-child(20){animation-delay:.4s}.levels-grid .level-card:nth-child(21){animation-delay:.42s}.levels-grid .level-card:nth-child(22){animation-delay:.44s}.levels-grid .level-card:nth-child(23){animation-delay:.46s}.levels-grid .level-card:nth-child(24){animation-delay:.48s}.levels-grid .level-card:nth-child(25){animation-delay:.5s}.level-number{font-size:1.5rem;font-weight:300;color:var(--text-white);margin-bottom:4px;font-family:var(--font-title);letter-spacing:2px}.level-name{font-size:.6rem;color:var(--text-dim);letter-spacing:1px;text-transform:uppercase;text-align:center;margin-bottom:8px}.level-stars{font-size:.7rem;color:var(--luca);letter-spacing:2px;font-family:var(--font-mono);font-variant-numeric:tabular-nums}.level-card-inner{display:flex;align-items:center;gap:10px;width:100%}.level-number-badge{display:flex;align-items:center;justify-content:center;width:32px;height:32px;background:#ffffff0f;border-radius:6px;font-size:.9rem;font-weight:600;color:var(--text-white);flex-shrink:0}.level-content{flex:1;text-align:left}.level-characters{display:flex;gap:3px;margin-top:4px}.level-char-portrait{width:10px;height:10px;border-radius:2px;background-color:var(--char-color, #888)}.level-meta{display:flex;flex-direction:column;align-items:flex-end;gap:2px}.level-status{font-size:.75rem}.level-status.locked-icon{opacity:.5}.level-status.current-icon{color:var(--accent)}.level-status.stars-icon{display:flex;gap:1px}.level-status .star{font-size:.6rem}.level-time{font-size:.55rem;color:var(--text-dim);font-variant-numeric:tabular-nums}.star{display:inline-block}.star.filled{color:#fbbf24}.star.empty{color:#ffffff26}.pause-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#07080ccc;display:flex;align-items:center;justify-content:center;z-index:9999;animation:pauseFadeIn .25s ease-out;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px)}@keyframes pauseFadeIn{0%{opacity:0}to{opacity:1}}.pause-menu{text-align:center;animation:pauseSlideIn .3s ease-out;padding:32px 36px;border-radius:18px;background:#0c0e12e6;border:1px solid var(--panel-border);box-shadow:var(--shadow-soft);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}@keyframes pauseSlideIn{0%{opacity:0;transform:translateY(-20px)}to{opacity:1;transform:translateY(0)}}.pause-menu h2{font-weight:500;font-size:2rem;letter-spacing:10px;text-transform:uppercase;margin-bottom:8px;color:var(--text-white);font-family:var(--font-title)}.pause-info{color:var(--text-dim);font-size:.8rem;letter-spacing:2px;text-transform:uppercase;margin-bottom:40px}.pause-buttons{display:flex;flex-direction:column;gap:12px;margin-bottom:32px}.pause-hint{color:var(--text-dim);font-size:.7rem;letter-spacing:1px}.pause-volume-controls{margin:24px 0;padding:16px 24px;background:var(--overlay-subtle);border:1px solid var(--panel-border);border-radius:var(--radius-md)}.pause-menu .toggle-btn{width:100%;max-width:280px;margin:16px auto 8px;font-size:.72rem;letter-spacing:2px;display:inline-flex;justify-content:center;gap:8px}.pause-menu .toggle-btn.active{border-color:var(--accent);color:var(--accent);background:var(--accent-soft);box-shadow:0 10px 22px color-mix(in srgb,var(--accent) 20%,transparent)}.volume-row{display:flex;align-items:center;gap:12px;margin:10px 0}.volume-row label{width:60px;font-size:.7rem;letter-spacing:2px;color:var(--text-gray);text-align:right}.volume-row input[type=range]{flex:1;height:4px;-webkit-appearance:none;-moz-appearance:none;appearance:none;background:var(--text-dim);border-radius:2px;outline:none;cursor:pointer;accent-color:var(--accent)}.volume-row input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;width:14px;height:14px;background:var(--text-white);border-radius:50%;cursor:pointer;transition:transform .15s ease}.volume-row input[type=range]::-webkit-slider-thumb:hover{transform:scale(1.2)}.volume-row input[type=range]::-moz-range-thumb{width:14px;height:14px;background:var(--text-white);border:none;border-radius:50%;cursor:pointer}.volume-row span{width:40px;font-size:.7rem;color:var(--text-dim);text-align:left}.pause-header{text-align:center;margin-bottom:24px}.pause-level-info{display:flex;align-items:center;justify-content:center;gap:8px;margin-top:12px;color:var(--text-dim);font-size:.8rem}.pause-level-num{background:#ffffff14;padding:2px 8px;border-radius:4px;font-weight:600;color:var(--text-white)}.pause-level-name{font-style:italic}.pause-section{margin-bottom:20px}.pause-section .section-title{font-size:.65rem;color:var(--text-dim);text-transform:uppercase;letter-spacing:1.5px;margin-bottom:12px}.volume-control{display:flex;flex-direction:column;gap:8px;margin-bottom:12px}.volume-control label{display:flex;align-items:center;gap:8px;color:var(--text-gray);font-size:.8rem}.volume-icon{font-size:.9rem}.volume-label{flex:1}.volume-slider-container{display:flex;align-items:center;gap:10px}.volume-slider{flex:1;height:4px;-webkit-appearance:none;-moz-appearance:none;appearance:none;background:#ffffff1a;border-radius:2px;cursor:pointer}.volume-slider::-webkit-slider-thumb{-webkit-appearance:none;width:14px;height:14px;background:var(--text-white);border-radius:50%;cursor:pointer;box-shadow:0 2px 4px #0000004d}.volume-value{font-size:.7rem;color:var(--text-dim);min-width:32px;text-align:right;font-variant-numeric:tabular-nums}.toggle-grid{display:flex;flex-direction:column;gap:8px}.toggle-switch{display:flex;align-items:center;gap:10px;padding:10px 14px;background:#ffffff0a;border:1px solid var(--panel-border);border-radius:8px;cursor:pointer;transition:all .2s ease}.toggle-switch:hover{background:#ffffff0f}.toggle-switch.active{border-color:var(--success);background:#4ade8014}.toggle-icon{font-size:1rem}.toggle-label{flex:1;color:var(--text-gray);font-size:.8rem;text-align:left}.toggle-state{font-size:.65rem;color:var(--text-dim);text-transform:uppercase;letter-spacing:.5px}.toggle-switch.active .toggle-state{color:var(--success)}.pause-actions{display:flex;flex-direction:column;gap:10px}.pause-secondary-actions{display:flex;gap:8px}.pause-secondary-actions .btn{flex:1}.pause-footer{margin-top:24px;padding-top:16px;border-top:1px solid var(--panel-border);text-align:center}.shortcut-hint{display:flex;align-items:center;justify-content:center;gap:6px;color:var(--text-dim);font-size:.7rem}.shortcut-hint kbd{min-width:32px;height:20px;font-size:.6rem}.result-screen{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:100vh;padding:32px;text-align:center}.result-screen h2{font-weight:500;font-size:2rem;letter-spacing:8px;text-transform:uppercase;margin-bottom:32px;font-family:var(--font-title)}.result-screen.win h2{color:var(--success);animation:slideInDown .5s ease-out,winGlow 2s ease-in-out infinite}.result-screen.lose h2{color:var(--danger)}.win-characters{display:flex;justify-content:center;align-items:flex-end;gap:16px;margin-bottom:32px;animation:fadeInUp .6s ease-out;position:relative}.char-square{border-radius:3px;animation:bounceIn .5s ease-out,charFloat 2s ease-in-out infinite;animation-fill-mode:both;box-shadow:0 4px 12px #0000004d;position:relative}.char-square:after{content:"";position:absolute;bottom:-8px;left:50%;transform:translate(-50%);width:80%;height:4px;background:#0003;border-radius:50%;filter:blur(2px)}.char-square:nth-child(1){animation-delay:.1s,0s}.char-square:nth-child(2){animation-delay:.2s,.3s}.char-square:nth-child(3){animation-delay:.3s,.6s}.char-square:nth-child(4){animation-delay:.4s,.9s}.char-square:nth-child(5){animation-delay:.5s,1.2s}.char-square:nth-child(6){animation-delay:.6s,1.5s}.practice-score.new-best{color:var(--luca);text-shadow:0 0 20px rgba(255,215,61,.5);animation:scorePopIn .6s ease-out,scorePulse 1.5s ease-in-out .6s infinite}.new-best-label{color:var(--luca);font-size:.9rem;font-weight:600;letter-spacing:4px;margin-bottom:24px;padding:8px 20px;background:#ffd73d1a;border:1px solid var(--luca);animation:labelSlide .5s ease-out .3s backwards,labelGlow 2s ease-in-out infinite}.best-time{color:var(--text-dim);font-size:.8rem;margin-bottom:20px}.stars-display{font-size:2rem;margin-bottom:40px;letter-spacing:8px;color:var(--luca)}.result-screen .stats{color:var(--text-dim);margin-bottom:40px;font-size:.85rem;letter-spacing:1px}.result-screen .stats p{margin:8px 0}.result-buttons{display:flex;flex-direction:column;gap:12px}.new-unlocks{margin:20px 0;padding:16px 24px;border:1px solid var(--luca)}.new-unlocks p{font-size:.75rem;color:var(--luca);letter-spacing:2px;text-transform:uppercase;margin-bottom:12px}.unlock-item{display:inline-block;padding:6px 12px;margin:4px;background:#ffd73d1a;font-size:.8rem;color:var(--text-white)}.act-transition-screen{position:fixed;top:0;left:0;width:100%;height:100%;background:#0a0a14;display:flex;align-items:center;justify-content:center;z-index:100}.act-transition-screen canvas{max-width:100%;max-height:100%}.section-title{font-weight:300;font-size:1.5rem;letter-spacing:6px;text-transform:uppercase;color:var(--text-white);margin-bottom:8px}.difficulty-buttons{display:flex;flex-direction:column;gap:12px;margin:40px 0;width:100%;max-width:300px}.difficulty-btn{display:flex;flex-direction:column;padding:16px 24px;text-align:left;background:transparent;border:1px solid var(--text-dim)}.difficulty-btn:hover{border-color:var(--text-white)}.difficulty-btn.easy{border-left:3px solid var(--success)}.difficulty-btn.medium{border-left:3px solid var(--luca)}.difficulty-btn.hard{border-left:3px solid var(--danger)}.difficulty-name{font-size:.9rem;font-weight:600;letter-spacing:2px;text-transform:uppercase}.difficulty-desc{font-size:.75rem;color:var(--text-dim);margin-top:4px}.practice-score{font-size:3rem;font-weight:300;color:var(--luca);margin:24px 0;letter-spacing:4px}.practice-stats{display:flex;gap:32px;margin:32px 0}.stat-item{text-align:center}.stat-label{font-size:.7rem;color:var(--text-dim);letter-spacing:2px;text-transform:uppercase;margin-bottom:8px}.stat-value{font-size:1.5rem;font-weight:300;color:var(--text-white)}.stat-value.excellent{color:var(--success)}.stat-value.good{color:var(--luca)}.result-screen.win{text-align:center;position:relative;padding:28px 24px;background:radial-gradient(ellipse at 50% 30%,rgba(255,107,157,.06) 0%,transparent 60%);animation:winScreenFadeIn .4s ease-out}@keyframes winScreenFadeIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.result-screen.win:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(135deg,transparent 40%,rgba(255,255,255,.02) 50%,transparent 60%);background-size:200% 200%;animation:winShimmer 3s ease-in-out infinite;pointer-events:none}@keyframes winShimmer{0%,to{background-position:200% 200%}50%{background-position:0% 0%}}.win-header{position:relative;margin-bottom:28px;padding-bottom:20px}.win-header:after{content:"";position:absolute;bottom:0;left:50%;transform:translate(-50%);width:60px;height:2px;background:linear-gradient(90deg,transparent,var(--pip),transparent);opacity:.5}.win-confetti{position:absolute;top:-30px;right:-30px;bottom:-30px;left:-30px;pointer-events:none;overflow:hidden}.win-title{font-size:1.4rem;font-weight:700;letter-spacing:6px;margin-bottom:12px;text-transform:uppercase;background:linear-gradient(90deg,var(--pip) 0%,var(--luca) 25%,var(--success) 50%,var(--luca) 75%,var(--pip) 100%);background-size:200% 100%;-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;animation:winTitleGradient 3s ease-in-out infinite;text-shadow:none}@keyframes winTitleGradient{0%,to{background-position:0% 50%}50%{background-position:100% 50%}}.win-level-info{display:flex;align-items:center;justify-content:center;gap:10px;opacity:0;animation:winFadeUp .5s ease-out .2s forwards}@keyframes winFadeUp{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.win-level-num{background:linear-gradient(135deg,#ffffff1f,#ffffff0f);padding:4px 12px;border-radius:6px;font-weight:700;font-size:.95rem;color:var(--text-white);border:1px solid rgba(255,255,255,.08);box-shadow:0 2px 8px #0003}.win-level-name{font-family:var(--font-narration);font-style:italic;font-size:1rem;color:var(--text-secondary);letter-spacing:.5px;opacity:0;animation:winFadeUp .5s ease-out .3s forwards}.win-level-badge{width:56px;height:56px;border-radius:50%;background:linear-gradient(135deg,#ffffff1f,#ffffff0a);border:2px solid rgba(255,255,255,.15);display:flex;align-items:center;justify-content:center;margin:0 auto 16px;box-shadow:0 4px 20px #0000004d,inset 0 1px #ffffff1a;opacity:0;animation:badgeReveal .6s cubic-bezier(.34,1.56,.64,1) .1s forwards}.win-level-badge .win-level-num{background:none;padding:0;border:none;box-shadow:none;font-size:1.4rem;font-weight:800;color:var(--text-white);line-height:1}@keyframes badgeReveal{0%{opacity:0;transform:scale(.5) rotate(-180deg)}70%{transform:scale(1.1) rotate(10deg)}to{opacity:1;transform:scale(1) rotate(0)}}.win-celebration{margin:28px 0;position:relative}.win-characters-stage{position:relative;padding:24px 32px 16px;margin:0 auto;max-width:500px}.win-stage-glow{position:absolute;bottom:0;left:50%;transform:translate(-50%);width:80%;height:4px;background:linear-gradient(90deg,transparent,rgba(255,255,255,.15),transparent);border-radius:2px;opacity:0;animation:stageGlowReveal .8s ease-out 1s forwards}.win-stage-glow:before{content:"";position:absolute;top:-8px;right:10%;bottom:-8px;left:10%;background:radial-gradient(ellipse at center,rgba(255,255,255,.05) 0%,transparent 70%);filter:blur(4px)}@keyframes stageGlowReveal{0%{opacity:0;width:0%}to{opacity:1;width:80%}}.win-characters-row{display:flex;justify-content:center;align-items:flex-end;gap:20px;margin-bottom:0;min-height:60px;position:relative;z-index:1}@media (min-width: 500px){.win-characters-stage{padding:32px 48px 20px;max-width:600px}.win-characters-row{gap:28px;min-height:80px}.win-characters-row .win-char-body{transform:scale(1.25)}.win-characters-row .win-char-glow{top:-10px;right:-10px;bottom:-10px;left:-10px}}.win-message-container{margin-top:24px;text-align:center}.win-char{position:relative;opacity:0;animation:winCharEntrance .7s cubic-bezier(.34,1.56,.64,1) forwards;animation-delay:var(--char-delay, 0s)}@keyframes winCharEntrance{0%{opacity:0;transform:translateY(30px) scale(.5) rotate(-10deg)}50%{transform:translateY(-12px) scale(1.1) rotate(5deg)}70%{transform:translateY(4px) scale(.95) rotate(-2deg)}to{opacity:1;transform:translateY(0) scale(1) rotate(0)}}.win-char-body{width:var(--char-width, 24px);height:var(--char-height, 24px);background:var(--char-color, #888);border-radius:4px;box-shadow:0 4px 12px #0006,inset 0 1px #fff3,inset 0 -1px #0003;animation:winCharCelebrate 1.8s ease-in-out infinite;animation-delay:calc(var(--char-delay, 0s) + .7s);position:relative}@keyframes winCharCelebrate{0%,to{transform:translateY(0) scaleY(1)}15%{transform:translateY(-8px) scaleY(1.05) scaleX(.95)}30%{transform:translateY(0) scaleY(.92) scaleX(1.05)}45%{transform:translateY(-4px) scaleY(1.02)}60%{transform:translateY(0) scaleY(.98)}}.win-char-glow{position:absolute;top:-6px;right:-6px;bottom:-6px;left:-6px;background:radial-gradient(ellipse at center,var(--char-color, #888) 0%,transparent 70%);border-radius:8px;opacity:0;filter:blur(10px);z-index:-1;animation:winCharGlowPulse 2s ease-in-out infinite;animation-delay:calc(var(--char-delay, 0s) + .7s)}@keyframes winCharGlowPulse{0%,to{opacity:.25;transform:scale(1)}50%{opacity:.5;transform:scale(1.15)}}.win-char:before,.win-char:after{content:"✦";position:absolute;font-size:8px;color:var(--char-color);opacity:0;animation:winSparkle 2s ease-out infinite;animation-delay:calc(var(--char-delay, 0s) + 1s)}.win-char:before{top:-8px;left:-4px}.win-char:after{top:-6px;right:-6px;animation-delay:calc(var(--char-delay, 0s) + 1.5s);font-size:6px}@keyframes winSparkle{0%{opacity:0;transform:translateY(0) scale(.5)}20%{opacity:1;transform:translateY(-8px) scale(1)}to{opacity:0;transform:translateY(-20px) scale(.3)}}.win-message{font-family:var(--font-narration);font-size:1.15rem;color:var(--text-white);font-style:italic;opacity:0;animation:winMessageFade .6s ease-out .8s forwards;letter-spacing:.5px}@keyframes winMessageFade{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}.win-submessage{font-family:var(--font-narration);font-size:.9rem;color:var(--text-dim);font-style:italic;opacity:0;animation:winMessageFade .5s ease-out 1s forwards;margin-top:6px}.win-stats-card{margin:24px auto;padding:24px 40px;width:100%;max-width:420px;background:linear-gradient(135deg,#ffffff0f,#ffffff05);border:1px solid rgba(255,255,255,.08);border-radius:16px;position:relative;overflow:hidden;display:flex;flex-direction:column;gap:16px}.win-stats-card:before{content:"";position:absolute;top:0;left:0;right:0;height:1px;background:linear-gradient(90deg,transparent,rgba(255,255,255,.15),transparent)}.win-rating{text-align:center;padding-bottom:0;margin-bottom:0;border-bottom:none}.win-rating .win-stars{margin-bottom:8px}.win-rating-label{font-size:.75rem;font-weight:600;text-transform:uppercase;letter-spacing:2px;color:var(--text-dim);opacity:0;animation:winFadeUp .4s ease-out 1.1s forwards}[data-stars="3"] .win-rating-label{color:#fbbf24;text-shadow:0 0 10px rgba(251,191,36,.3)}.win-time-section{text-align:center}@media (min-width: 500px){.win-stats-card{flex-direction:row;justify-content:center;align-items:center;gap:40px;padding:28px 48px;max-width:480px}.win-rating{flex:0 0 auto;padding-right:40px;border-right:1px solid rgba(255,255,255,.08)}.win-time-section{flex:0 0 auto}}.win-stars{display:flex;justify-content:center;gap:12px;margin-bottom:16px}.win-star{font-size:2.2rem;opacity:0;transform:scale(0);animation:winStarReveal .6s cubic-bezier(.34,1.56,.64,1) forwards;animation-delay:var(--star-delay, .5s);position:relative;line-height:1}@keyframes winStarReveal{0%{opacity:0;transform:scale(0) rotate(-45deg);filter:blur(4px)}60%{transform:scale(1.3) rotate(10deg);filter:blur(0)}80%{transform:scale(.9) rotate(-5deg)}to{opacity:1;transform:scale(1) rotate(0)}}.win-star.filled{color:#fbbf24;text-shadow:0 0 20px rgba(251,191,36,.6),0 0 40px rgba(251,191,36,.3);animation:winStarReveal .6s cubic-bezier(.34,1.56,.64,1) forwards,winStarShine 2s ease-in-out 1.5s infinite}@keyframes winStarShine{0%,to{filter:brightness(1);text-shadow:0 0 20px rgba(251,191,36,.6),0 0 40px rgba(251,191,36,.3)}50%{filter:brightness(1.2);text-shadow:0 0 25px rgba(251,191,36,.8),0 0 50px rgba(251,191,36,.5)}}.win-star.empty{color:#ffffff1f;text-shadow:none}.win-time{display:flex;align-items:baseline;justify-content:center;gap:8px;flex-wrap:wrap;opacity:0;animation:winFadeUp .5s ease-out 1.2s forwards}.win-time.new-best .time-value{color:var(--success);text-shadow:0 0 20px rgba(76,175,80,.4)}.time-value{font-size:2.4rem;font-weight:700;color:var(--text-white);font-variant-numeric:tabular-nums;letter-spacing:-1px}.time-unit{font-size:.85rem;color:var(--text-dim);text-transform:lowercase;letter-spacing:.5px}.new-best-badge{display:inline-flex;align-items:center;gap:4px;padding:5px 12px;background:linear-gradient(135deg,var(--success),#66bb6a);color:#000;font-size:.65rem;font-weight:700;border-radius:999px;text-transform:uppercase;letter-spacing:1px;box-shadow:0 2px 12px #4caf5066;animation:newBestBounce .6s cubic-bezier(.34,1.56,.64,1) 1.4s backwards,newBestGlow 2s ease-in-out 2s infinite}@keyframes newBestBounce{0%{transform:scale(0)}to{transform:scale(1)}}@keyframes newBestGlow{0%,to{box-shadow:0 2px 12px #4caf5066}50%{box-shadow:0 2px 20px #4caf5099}}.time-improvement{width:100%;color:var(--success);font-size:.85rem;font-weight:500;margin-top:6px;opacity:0;animation:winFadeUp .4s ease-out 1.5s forwards}.previous-best{width:100%;color:var(--text-dim);font-size:.75rem;margin-top:8px;opacity:0;animation:winFadeUp .4s ease-out 1.4s forwards}.win-actions{margin-top:32px;opacity:0;animation:winFadeUp .5s ease-out 1.6s forwards;width:100%;max-width:400px;margin-left:auto;margin-right:auto}.win-actions .btn-primary{min-width:240px;padding:16px 36px;font-size:1.05rem;letter-spacing:2px;background:linear-gradient(135deg,var(--pip),#ff8ab5);color:#fff;border-color:transparent;box-shadow:0 4px 20px #ff6b9d4d;transition:all .2s ease}.win-actions .btn-primary:hover{transform:translateY(-2px);box-shadow:0 6px 28px #ff6b9d66}.win-actions .btn-primary:active{transform:translateY(0)}.win-secondary-actions{display:flex;gap:16px;margin-top:16px;justify-content:center}.win-secondary-actions .btn{flex:none;opacity:.85;transition:opacity .2s ease}.win-secondary-actions .btn:hover{opacity:1}.btn-ghost{background:transparent;border:none;color:var(--text-secondary);padding:10px 16px;font-size:.85rem;font-weight:500;letter-spacing:.5px;display:inline-flex;align-items:center;gap:6px;cursor:pointer;transition:all .2s ease;border-radius:8px}.btn-ghost:hover{color:var(--text-white);background:#ffffff0f}.btn-ghost:active{background:#ffffff14}.btn-ghost .btn-icon{font-size:1rem;opacity:.7;transition:opacity .2s ease}.btn-ghost:hover .btn-icon{opacity:1}.btn-next{display:inline-flex;align-items:center;gap:10px}.btn-next .btn-arrow{font-size:1.2rem;font-weight:400;transition:transform .2s ease}.btn-next:hover .btn-arrow{transform:translate(4px);animation:arrowPulse .8s ease-in-out infinite}@keyframes arrowPulse{0%,to{transform:translate(4px)}50%{transform:translate(8px)}}@media (min-width: 768px){.result-screen.win{width:100%;max-width:100%;padding:40px 60px}.win-characters-stage{max-width:100%;padding:32px 48px 24px}.win-stats-card{max-width:100%;padding:32px 60px;flex-direction:row;justify-content:space-around;align-items:center}.win-actions{max-width:100%;display:flex;flex-direction:row;justify-content:center;align-items:center;gap:32px}.win-actions .btn-primary{margin:0}.win-secondary-actions{margin-top:0}.win-characters-row{gap:24px}.win-rating,.win-time-section{flex:1;text-align:center}.win-star{font-size:2.5rem}.win-char-body{width:calc(var(--char-width, 24px) * 1.2);height:calc(var(--char-height, 24px) * 1.2)}}.result-screen.game-complete{background:radial-gradient(ellipse at center,rgba(168,216,234,.1) 0%,transparent 70%)}.game-complete-title{font-size:1.8rem;background:linear-gradient(90deg,var(--pip),var(--luca),var(--bruno),var(--cara),var(--felix),var(--ivy));background-size:200% 100%;-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;animation:gameCompleteGradient 4s ease-in-out infinite}.game-complete-quote{font-family:var(--font-narration);font-size:1.4rem;font-style:italic;color:var(--text-white);margin-top:12px;opacity:0;animation:quoteReveal 1s ease-out .5s forwards}.game-complete-celebration{margin:32px 0}.family-together{gap:16px}.family-together .win-char{animation-delay:calc(var(--char-delay, 0s) + .3s)}.game-complete-message{font-family:var(--font-narration);color:var(--text-gray);margin-top:24px;opacity:0;animation:messageReveal 1s ease-out 1.2s forwards}.game-complete-message p{margin:8px 0;font-size:1rem;line-height:1.6}.game-complete-message p:first-child{font-size:1.1rem;color:var(--text-white)}.game-complete-thanks{font-family:var(--font-narration);font-size:.9rem;color:var(--text-dim);font-style:italic;margin:24px 0;opacity:0;animation:thanksReveal 1s ease-out 2s forwards}.game-complete-actions{opacity:0;animation:actionsReveal .8s ease-out 2.5s forwards}.game-complete-confetti:before,.game-complete-confetti:after{content:"";position:absolute;width:100%;height:100%;top:0;left:0;pointer-events:none;background-image:radial-gradient(circle,var(--pip) 2px,transparent 2px),radial-gradient(circle,var(--luca) 2px,transparent 2px),radial-gradient(circle,var(--bruno) 2px,transparent 2px),radial-gradient(circle,var(--cara) 2px,transparent 2px),radial-gradient(circle,var(--felix) 2px,transparent 2px),radial-gradient(circle,var(--ivy) 2px,transparent 2px);background-size:60px 80px;background-position:0 0,20px 40px,40px 20px,10px 60px,30px 10px,50px 50px;opacity:.3;animation:confettiFall 15s linear infinite}.credits-screen{position:fixed;top:0;right:0;bottom:0;left:0;background:linear-gradient(180deg,var(--bg-black) 0%,#1a1520 50%,var(--bg-black) 100%);display:flex;flex-direction:column;align-items:center;justify-content:flex-start;padding:2rem;overflow-y:auto;animation:creditsEnter 1s ease-out}.credits-header{text-align:center;margin-bottom:2rem;animation:creditsFadeIn 1s ease-out .3s both}.credits-title{font-family:var(--font-serif);font-size:3rem;font-weight:300;letter-spacing:.3em;color:var(--text-white);margin:0 0 .5rem;background:linear-gradient(135deg,#ff6b9d,#ffd93d,#a8d8ea);background-size:200% 200%;-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;animation:titleGradient 6s ease-in-out infinite}.credits-subtitle{font-family:var(--font-serif);font-size:1rem;font-style:italic;color:var(--text-gray);opacity:.8}.credits-characters{display:flex;flex-direction:column;gap:1rem;margin-bottom:2rem;width:100%;max-width:500px}.credits-section-title{font-family:var(--font-serif);font-size:.875rem;color:var(--text-dim);text-transform:uppercase;letter-spacing:.2em;text-align:center;margin-bottom:.5rem}.credit-character{display:flex;align-items:center;gap:1rem;padding:.75rem 1rem;background:#ffffff08;border-radius:8px;border-left:3px solid var(--char-color);animation:characterSlideIn .5s ease-out var(--char-delay) both}.credit-char-square{width:32px;height:32px;background:var(--char-color);border-radius:4px;flex-shrink:0;box-shadow:0 0 15px var(--char-color);animation:charPulse 2s ease-in-out infinite;animation-delay:var(--char-delay)}.credit-char-info{flex:1}.credit-char-name{font-family:var(--font-serif);font-size:1.1rem;font-weight:500;color:var(--text-white);margin-bottom:.125rem}.credit-char-ability{font-family:var(--font-mono);font-size:.75rem;color:var(--char-color);text-transform:uppercase;letter-spacing:.1em;margin-bottom:.25rem}.credit-char-desc{font-family:var(--font-serif);font-size:.8rem;font-style:italic;color:var(--text-dim)}.credits-message{text-align:center;margin-bottom:2rem;animation:creditsFadeIn 1s ease-out 2.5s both}.credits-quote{font-family:var(--font-serif);font-size:1.1rem;font-style:italic;color:var(--text-gray);margin:0 0 1rem}.credits-thanks{font-family:var(--font-serif);font-size:1.25rem;color:var(--text-white);margin:0}.credits-footer{animation:creditsFadeIn 1s ease-out 3s both}@media (max-width: 600px){.credits-screen{padding:1.5rem}.credits-title{font-size:2rem}.credit-character{padding:.5rem .75rem;gap:.75rem}.credit-char-square{width:24px;height:24px}.credit-char-name{font-size:1rem}.credit-char-desc{font-size:.75rem}}@media (min-width: 768px){.credits-screen{padding:3rem}.credits-title{font-size:3.5rem;letter-spacing:.4em}.credits-characters{max-width:600px;gap:1.25rem}.credit-character{padding:1rem 1.5rem;gap:1.25rem}.credit-char-square{width:40px;height:40px}.credit-char-name{font-size:1.25rem}.credits-quote{font-size:1.25rem;max-width:500px}.credits-thanks{font-size:1.5rem}}@media (min-width: 1024px){.credits-screen{padding:4rem}.credits-title{font-size:4rem}.credits-characters{max-width:700px}.credits-quote{max-width:600px}}.level-characters{display:flex;gap:3px;justify-content:center;margin-top:4px;height:6px}.level-char-dot{width:6px;height:6px;border-radius:2px;opacity:.8;transition:transform .2s ease,opacity .2s ease}.level-card:hover .level-char-dot{transform:scale(1.2);opacity:1}.level-char-dot.pip{background:var(--pip)}.level-char-dot.luca{background:var(--luca)}.level-char-dot.bruno{background:var(--bruno)}.level-char-dot.cara{background:var(--cara)}.level-char-dot.felix{background:var(--felix)}.level-char-dot.ivy{background:var(--ivy)}.act-header{grid-column:1 / -1;display:flex;align-items:center;gap:16px;padding:20px 0 12px;margin-top:8px}.act-header:first-of-type{margin-top:0;padding-top:0}.act-header-line{flex:1;height:1px;background:linear-gradient(90deg,transparent,var(--panel-border),transparent)}.act-header-title{font-family:var(--font-title);font-size:.7rem;font-weight:500;letter-spacing:4px;text-transform:uppercase;color:var(--text-dim);white-space:nowrap}.act-header-subtitle{font-size:.6rem;color:var(--text-dim);opacity:.6;letter-spacing:2px}.level-card[data-act="1"]:hover:not(.locked){box-shadow:0 20px 40px #0006,0 0 30px color-mix(in srgb,var(--pip) 15%,transparent)}.level-card[data-act="2"]:hover:not(.locked){box-shadow:0 20px 40px #0006,0 0 30px color-mix(in srgb,var(--luca) 15%,transparent)}.level-card[data-act="3"]:hover:not(.locked){box-shadow:0 20px 40px #0006,0 0 30px color-mix(in srgb,var(--bruno) 20%,transparent)}.level-card[data-act="4"]:hover:not(.locked){box-shadow:0 20px 40px #0006,0 0 30px color-mix(in srgb,var(--cara) 15%,transparent)}.level-card[data-act="5"]:hover:not(.locked){box-shadow:0 20px 40px #0006,0 0 30px color-mix(in srgb,var(--ivy) 15%,transparent)}.keyboard-legend{display:none;position:fixed;bottom:20px;left:20px;padding:12px 16px;background:var(--bg-panel);border:1px solid var(--panel-border);border-radius:10px;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);z-index:50;font-size:.7rem;color:var(--text-dim);letter-spacing:1px;opacity:.8;transition:opacity .3s ease}.keyboard-legend:hover{opacity:1}.keyboard-legend-row{display:flex;align-items:center;gap:8px;margin:4px 0}.keyboard-legend-key{display:inline-block;padding:2px 6px;background:#ffffff1a;border-radius:4px;font-family:var(--font-mono);font-size:.65rem;color:var(--text-white);min-width:20px;text-align:center}@media (hover: hover) and (pointer: fine){.keyboard-legend{display:block}}.level-card.current{border-color:var(--accent);animation:currentLevelPulse 2s ease-in-out infinite}.level-card.current .level-number{color:var(--accent)}.game-container:focus-visible{outline:2px solid var(--accent);outline-offset:4px}.level-card:focus-visible{outline:2px solid var(--accent);outline-offset:3px;transform:translateY(-2px)}.btn:active{transform:translateY(1px) scale(.98);transition:transform .1s ease}.tagline{font-family:var(--font-narration);font-size:.95rem;font-style:italic;color:var(--text-gray);text-align:center;margin:24px 0;opacity:0;animation:fadeInUp .8s ease-out .3s forwards;letter-spacing:.3px;line-height:1.6;max-width:320px}.menu-particles{position:absolute;top:0;right:0;bottom:0;left:0;overflow:hidden;pointer-events:none;z-index:0}.menu-particle{position:absolute;bottom:-20px;left:var(--particle-x, 50%);width:10px;height:10px;background:var(--particle-color, #fff);border-radius:50%;opacity:0;filter:blur(1px);animation:particleFloat var(--particle-duration, 6s) ease-in-out var(--particle-delay, 0s) infinite}.cast-member{display:flex;flex-direction:column;align-items:center;gap:6px;opacity:0;transform:translateY(10px);animation:castMemberEnter .5s ease-out forwards;animation-delay:var(--cast-delay, 0s);position:relative}.cast-member.locked{opacity:.5;filter:grayscale(.4)}.cast-square{width:40px;height:40px;background:var(--cast-color, #888);border-radius:5px;box-shadow:0 5px 18px #00000059;transition:transform .3s ease,box-shadow .3s ease}.cast-member:not(.locked) .cast-square{animation:castSquarePulse 3s ease-in-out infinite;animation-delay:var(--cast-delay, 0s)}.cast-name{font-size:.7rem;color:var(--text-dim);text-transform:uppercase;letter-spacing:1.2px;font-weight:500}.unlock-hint{position:absolute;bottom:-18px;left:50%;transform:translate(-50%);font-size:.55rem;color:var(--text-dim);opacity:0;transition:opacity .2s ease;white-space:nowrap;pointer-events:none}.cast-member.locked:hover .unlock-hint{opacity:1}.ability-hint{position:absolute;bottom:-18px;left:50%;transform:translate(-50%);font-size:.5rem;color:var(--cast-color);opacity:0;transition:opacity .2s ease;white-space:nowrap;pointer-events:none;text-transform:uppercase;letter-spacing:.5px}.cast-member:not(.locked):hover .ability-hint{opacity:.8}@media (pointer: coarse){.cast-member.locked .unlock-hint{opacity:.7}.cast-member:not(.locked) .ability-hint{opacity:.8;position:static;transform:none;margin-top:2px}}.progress-section{width:100%;max-width:280px;margin:16px auto}.progress-bar-container{position:relative;height:6px;background:#ffffff1a;border-radius:999px;overflow:visible}.progress-bar-fill{position:absolute;top:0;right:0;bottom:0;left:0;width:calc(var(--progress, 0) * 100%);background:linear-gradient(90deg,var(--pip),var(--luca));border-radius:999px;overflow:hidden;transition:width .6s ease-out}.progress-bar-glow{position:absolute;right:calc((1 - var(--progress, 0)) * 100%);top:50%;transform:translateY(-50%);width:10px;height:10px;background:var(--luca);border-radius:50%;box-shadow:0 0 14px var(--luca),0 0 6px var(--luca);opacity:.9}.progress-text{text-align:center;font-size:.7rem;color:var(--text-dim);margin-top:12px;letter-spacing:.5px}.progress-milestone{position:absolute;left:var(--milestone-pos);top:50%;transform:translate(-50%,-50%);display:flex;flex-direction:column;align-items:center;gap:2px;z-index:2;opacity:.4;transition:opacity .3s ease}.progress-milestone.reached{opacity:1}.milestone-marker{font-size:.5rem;color:var(--milestone-color, var(--text-dim));line-height:1}.milestone-portrait{width:10px;height:10px;background:var(--char-color, #888);border-radius:2px;opacity:0;transform:scale(0);transition:opacity .3s ease,transform .3s ease;box-shadow:0 2px 6px #0000004d}.progress-milestone.reached .milestone-portrait{opacity:1;transform:scale(1)}.progress-milestone:hover .milestone-portrait{transform:scale(1.3)}.progress-section.complete .progress-bar-fill{background:linear-gradient(90deg,var(--pip),var(--luca),var(--ivy),var(--pip));background-size:300% 100%;animation:rainbowProgress 3s ease-in-out infinite}.progress-section.complete .progress-bar-glow{background:#fff;box-shadow:0 0 16px #fff,0 0 8px var(--luca);animation:celebrationPulse 1s ease-in-out infinite}.progress-section.complete .progress-text{color:var(--luca);font-weight:600}.touch-hint{position:fixed;bottom:120px;left:50%;transform:translate(-50%);background:#0b0d12f2;border:1px solid rgba(255,255,255,.1);border-radius:12px;padding:16px 24px;text-align:center;z-index:100;animation:touchHintFadeIn .5s ease-out;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px)}.touch-hint-content{margin-bottom:12px}.continue-hint{display:flex;align-items:center;gap:8px;color:var(--text-dim);font-size:.75rem;margin-top:-8px;margin-bottom:16px}.hint-level{background:#ffffff14;padding:2px 8px;border-radius:4px;font-weight:600}.hint-name{font-style:italic;opacity:.8}.storybook-screen{display:none}@media (min-width: 1024px) and (pointer: fine){.level-select-screen{display:none!important}.storybook-screen{display:flex;flex-direction:column;align-items:center;width:100%;max-width:1200px;min-height:100vh;padding:100px 24px 40px;animation:storybookEnter .6s ease-out}@keyframes storybookEnter{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}}.storybook-chapters{display:flex;gap:8px;margin-bottom:24px;padding:8px 16px;background:#ffffff08;border:1px solid var(--panel-border);border-radius:999px}.chapter-tab{position:relative;padding:10px 20px;background:transparent;border:none;border-radius:999px;color:var(--text-dim);font-family:var(--font-title);font-size:.7rem;font-weight:500;letter-spacing:2px;text-transform:uppercase;cursor:pointer;transition:all .3s ease}.chapter-tab:hover:not(.active):not(.locked){color:var(--text-gray);background:#ffffff0d}.chapter-tab.active{color:var(--text-white);background:#ffffff1a;box-shadow:0 0 20px #ffffff1a}.chapter-tab.locked{opacity:.4;cursor:not-allowed}.chapter-tab.locked:after{content:"🔒";position:absolute;top:-4px;right:-4px;font-size:.6rem}.chapter-tab.complete:before{content:"✓";margin-right:6px;color:var(--success);font-size:.8rem}.chapter-progress{display:flex;gap:3px;justify-content:center;margin-top:6px}.chapter-progress-dot{width:4px;height:4px;border-radius:50%;background:#fff3;transition:all .2s ease}.chapter-progress-dot.complete{background:var(--success)}.chapter-progress-dot.current{background:var(--pip);transform:scale(1.3)}.storybook-stats{display:flex;gap:32px;margin-bottom:24px;padding:12px 24px;background:#ffffff05;border:1px solid var(--panel-border);border-radius:12px}.storybook-stats .stat{display:flex;align-items:baseline;gap:6px}.storybook-stats .stat-value{font-size:1.2rem;font-weight:600;color:var(--text-white)}.storybook-stats .stat-label{font-size:.75rem;color:var(--text-dim)}.storybook-book{position:relative;display:flex;width:100%;max-width:900px;height:500px;background:linear-gradient(135deg,#12141af2,#0c0e12fa);border:1px solid var(--panel-border);border-radius:8px 16px 16px 8px;box-shadow:0 20px 60px #00000080,inset 0 1px #ffffff0d;overflow:hidden}.book-spine{position:absolute;left:50%;top:0;bottom:0;width:24px;transform:translate(-50%);background:linear-gradient(90deg,#0000004d,#0000001a 20%,#ffffff08,#0000001a 80%,#0000004d);z-index:10;pointer-events:none}.book-spine:before{content:"";position:absolute;left:50%;top:0;bottom:0;width:1px;background:linear-gradient(180deg,transparent,rgba(255,255,255,.1),rgba(255,255,255,.1),transparent)}.book-page-left{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:32px;background:#0003;border-right:1px solid rgba(255,255,255,.03)}.chapter-art{display:flex;flex-direction:column;align-items:center;gap:16px;text-align:center}.chapter-number{font-family:var(--font-title);font-size:.7rem;color:var(--text-dim);letter-spacing:4px;text-transform:uppercase}.chapter-title{font-family:var(--font-title);font-size:1.6rem;font-weight:500;color:var(--text-white);letter-spacing:4px;text-transform:uppercase}.chapter-theme{font-family:var(--font-narration);font-size:1rem;font-style:italic;color:var(--text-gray);max-width:200px}.chapter-characters{display:flex;gap:8px;margin-top:16px}.chapter-char-square{width:24px;height:24px;border-radius:4px;box-shadow:0 4px 12px #0000004d;animation:chapterCharIdle 3s ease-in-out infinite}.chapter-char-square:nth-child(1){animation-delay:0s}.chapter-char-square:nth-child(2){animation-delay:.3s}.chapter-char-square:nth-child(3){animation-delay:.6s}.chapter-char-square:nth-child(4){animation-delay:.9s}.chapter-char-square:nth-child(5){animation-delay:1.2s}.chapter-char-square:nth-child(6){animation-delay:1.5s}@keyframes chapterCharIdle{0%,to{transform:translateY(0)}50%{transform:translateY(-4px)}}.prev-level-preview{display:flex;flex-direction:column;align-items:center;gap:12px;width:100%;max-width:300px;opacity:.7;transition:opacity .3s ease}.prev-level-preview:hover{opacity:1}.prev-level-header{display:flex;align-items:baseline;gap:8px}.prev-label{font-size:.65rem;color:var(--text-dim);text-transform:uppercase;letter-spacing:2px}.prev-level-num{font-size:1.4rem;font-weight:700;color:var(--text-gray)}.prev-level-canvas{width:100%;height:auto;border-radius:6px;border:1px solid rgba(255,255,255,.08);box-shadow:0 4px 20px #0006}.prev-level-info{display:flex;align-items:center;gap:12px}.prev-level-name{font-family:var(--font-title);font-size:.75rem;color:var(--text-gray);letter-spacing:2px;text-transform:uppercase}.prev-stars{font-size:.9rem;color:gold;letter-spacing:1px}.prev-level-chars{display:flex;gap:6px;justify-content:center}.left-char{width:16px;height:16px;border-radius:3px;box-shadow:0 2px 8px #0000004d;animation:charIdle 2.5s ease-in-out infinite}.chapter-art-decoration{font-size:1.2rem;color:var(--text-dim);opacity:.4}.chapter-art-icon{font-size:3.5rem;margin:8px 0;opacity:.7;text-shadow:0 0 30px rgba(255,255,255,.2)}.chapter-art-title{font-family:var(--font-title);font-size:.7rem;color:var(--text-dim);letter-spacing:4px;text-transform:uppercase;margin-bottom:8px}.chapter-art-subtitle{font-family:var(--font-narration);font-size:1.1rem;font-style:italic;color:var(--text-gray)}.book-page-right{flex:1;display:flex;flex-direction:column;padding:32px;position:relative}.level-page{display:flex;flex-direction:column;height:100%;animation:pageFlipIn .4s ease-out}@keyframes pageFlipIn{0%{opacity:0;transform:rotateY(-15deg) translate(20px)}to{opacity:1;transform:rotateY(0) translate(0)}}.page-header{display:flex;align-items:center;gap:12px;margin-bottom:20px;padding-bottom:16px;border-bottom:1px solid rgba(255,255,255,.06)}.page-number{width:48px;height:48px;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,#ffffff1a,#ffffff0a);border:1px solid rgba(255,255,255,.1);border-radius:8px;font-size:1.4rem;font-weight:700;color:var(--text-white)}.page-title{flex:1;font-family:var(--font-title);font-size:1.1rem;font-weight:500;color:var(--text-white);letter-spacing:2px;text-transform:uppercase;margin:0}.page-preview{position:relative;width:100%;aspect-ratio:8 / 5;min-height:180px;max-height:280px;background:linear-gradient(135deg,#140f1ee6,#0a080ff2);border:1px solid rgba(255,255,255,.08);border-radius:10px;overflow:hidden;margin-bottom:16px;box-shadow:inset 0 1px #ffffff0d,0 4px 20px #0006}.page-preview canvas{width:100%;height:100%;object-fit:cover}.preview-placeholder{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;color:var(--text-dim);font-size:.8rem;letter-spacing:2px;text-transform:uppercase}.preview-locked{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;background:#0009;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);font-size:2rem}.page-characters{display:flex;gap:12px;justify-content:center;margin-bottom:16px}.character-figure{display:flex;flex-direction:column;align-items:center;gap:6px}.char-body{width:calc(var(--char-width, 28) * .8px);height:calc(var(--char-height, 28) * .8px);min-width:24px;min-height:24px;max-width:36px;max-height:40px;background-color:var(--char-color, #888);border-radius:4px;box-shadow:0 4px 12px #0000004d;animation:charIdle 2.5s ease-in-out infinite;animation-delay:calc(var(--char-index, 0) * .2s)}.char-name{font-size:.55rem;color:var(--text-dim);text-transform:uppercase;letter-spacing:.5px}@keyframes charIdle{0%,to{transform:translateY(0) scaleY(1)}50%{transform:translateY(-4px) scaleY(1.02)}}.page-quote{flex:1;display:flex;align-items:center;justify-content:center;padding:16px;background:#ffffff05;border-radius:8px;margin-bottom:16px;font-family:var(--font-narration);font-style:italic;color:var(--text-gray);text-align:center}.page-quote p{font-size:.95rem;line-height:1.6;max-width:320px;margin:0}.page-quote p:before{content:'"';color:var(--text-dim);font-size:1.2rem;margin-right:2px}.page-quote p:after{content:'"';color:var(--text-dim);font-size:1.2rem;margin-left:2px}.page-stats{display:flex;justify-content:center;align-items:center;gap:24px;margin-bottom:16px}.stat-item{display:flex;align-items:center;gap:6px;font-size:.9rem;color:var(--text-gray)}.stat-item.stars{font-size:1.2rem;color:gold;letter-spacing:2px}.stat-icon{font-size:1rem;opacity:.7}.stat-value{font-weight:600;color:var(--text-white);font-size:.9rem}.page-play-btn{width:100%;padding:16px 32px;background:linear-gradient(135deg,var(--pip),#ff8ab5);border:none;border-radius:12px;color:#fff;font-family:var(--font-title);font-size:1rem;font-weight:600;letter-spacing:3px;text-transform:uppercase;cursor:pointer;transition:all .3s ease;box-shadow:0 4px 20px #ff6b9d4d}.page-play-btn:hover{transform:translateY(-2px);box-shadow:0 8px 30px #ff6b9d66}.page-play-btn:active{transform:translateY(0)}.page-play-btn.locked{background:#ffffff1a;color:var(--text-dim);cursor:not-allowed;box-shadow:none}.page-play-btn.locked:hover{transform:none}.page-nav{position:absolute;top:50%;transform:translateY(-50%);display:flex;align-items:center;justify-content:center;width:40px;height:40px;background:#ffffff0d;border:1px solid rgba(255,255,255,.1);border-radius:50%;color:var(--text-gray);font-size:1.2rem;cursor:pointer;transition:all .2s ease;z-index:20}.page-nav:hover{background:#ffffff1a;color:var(--text-white);transform:translateY(-50%) scale(1.1)}.page-nav-prev{left:12px}.page-nav-next{right:12px}.page-nav:disabled{opacity:.3;cursor:not-allowed}.page-nav:disabled:hover{transform:translateY(-50%);background:#ffffff0d}.page-indicators{display:flex;gap:8px;justify-content:center;margin-top:20px}.page-dot{width:8px;height:8px;border-radius:50%;background:#ffffff26;border:none;padding:0;cursor:pointer;transition:all .2s ease}.page-dot:hover{background:#ffffff4d;transform:scale(1.2)}.page-dot.active{background:var(--pip);transform:scale(1.2);box-shadow:0 0 10px #ff6b9d80}.page-dot.complete{background:var(--success)}.page-dot.locked{opacity:.3;cursor:not-allowed}.storybook-screen .btn-back{position:absolute;top:24px;left:24px;z-index:100}.level-page.locked{opacity:.6}.level-page.locked .page-preview{filter:blur(4px) grayscale(.5)}.level-page.locked .page-quote,.level-page.locked .page-stats{opacity:.4}@media (min-width: 1400px){.storybook-book{max-width:1100px;height:650px}.chapter-title{font-size:2rem}.page-preview{max-height:320px}.char-body{width:32px;height:32px}.prev-level-preview{max-width:340px}}.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}.keyboard-focus{outline:2px solid var(--accent);outline-offset:2px}@media (prefers-contrast: more){:root{--bg-black: #000000;--bg-dark: #000000;--bg-panel: rgba(0, 0, 0, .95);--panel-border: rgba(255, 255, 255, .5);--panel-highlight: rgba(255, 255, 255, .15);--text-white: #ffffff;--text-gray: #dddddd;--text-dim: #aaaaaa;--pip: #FF4080;--luca: #FFE000;--bruno: #8B5A2B;--cara: #FF80E0;--felix: #E8B080;--ivy: #80E0FF;--success: #00FF80;--danger: #FF0000}body{background:#000}canvas{filter:contrast(1.15)}.btn,button{border-width:3px!important}.btn:focus,button:focus{outline:4px solid var(--accent)!important;outline-offset:2px}.narration-text{color:#fff!important;text-shadow:0 0 2px #000000,0 0 4px #000000}.hud{background:#000000e6!important;border-bottom:2px solid rgba(255,255,255,.5)!important}.character-bar{background:#000000f2!important;border-top:2px solid rgba(255,255,255,.5)!important}.char-btn{border-width:3px!important}.char-btn.active{border-color:#fff!important;box-shadow:0 0 0 2px var(--char-color, var(--accent))}.level-btn{border:2px solid rgba(255,255,255,.4)!important}.level-btn.unlocked{border-color:#fff9!important}.level-btn.unlocked:hover,.level-btn.unlocked:focus{border-color:#fff!important;outline:3px solid var(--accent)!important}.menu-card{border:2px solid rgba(255,255,255,.5)!important;background:#000000f2!important}.pause-menu{border:3px solid rgba(255,255,255,.6)!important;background:#000000fa!important}input[type=range]{height:8px}input[type=range]::-webkit-slider-thumb{width:20px;height:20px;border:3px solid #ffffff}.toggle-switch{border:2px solid rgba(255,255,255,.5)!important}.toggle-switch.active{border-color:var(--success)!important;background:#00ff8033!important}}.high-contrast-mode{--bg-black: #000000;--bg-dark: #000000;--bg-panel: rgba(0, 0, 0, .95);--panel-border: rgba(255, 255, 255, .5);--text-gray: #dddddd;--text-dim: #aaaaaa;--pip: #FF4080;--luca: #FFE000;--bruno: #8B5A2B;--cara: #FF80E0;--felix: #E8B080;--ivy: #80E0FF;--success: #00FF00;--danger: #FF0000}.high-contrast-mode body{background:#000!important}.high-contrast-mode .btn,.high-contrast-mode button{border-width:3px!important}.high-contrast-mode .char-btn.active{border-color:#fff!important;box-shadow:0 0 0 2px var(--char-color, var(--accent))}.mobile-controls .control-hints,.mobile-controls .weapon-bar{display:none}.mobile-controls .game-container{flex:1;aspect-ratio:unset;min-height:300px;border:none;border-radius:0}.mobile-controls #gameCanvas{touch-action:none;-webkit-touch-callout:none;-webkit-user-select:none;user-select:none;border-radius:0}.mobile-controls .game-wrapper{height:100vh;height:100dvh;max-width:100%;gap:4px}.mobile-controls .hud{padding:8px 16px;flex-shrink:0}.mobile-controls .pause-btn{padding:8px 14px;min-width:64px;letter-spacing:2px}@media (max-width: 600px){#app{padding:8px;max-width:100%}.level-select-screen{padding:24px 12px 100px}.game-title{font-size:1.8rem;letter-spacing:8px}.menu-cast{margin-bottom:14px}.cast-square{width:10px;height:10px;border-radius:3px}.menu-screen .subtitle{margin-bottom:8px;font-size:.75rem}.menu-buttons{margin-bottom:28px}.continue-hint{font-size:.6rem;margin-bottom:18px}.progress-display{font-size:.7rem;padding:6px 12px}.btn{padding:12px 24px;font-size:.85rem;letter-spacing:2px}.level-select-meta{font-size:.6rem;padding:6px 12px}.levels-grid{grid-template-columns:repeat(auto-fill,minmax(60px,1fr));gap:8px;max-width:100%;width:calc(100% - 4px);margin-left:auto;margin-right:auto}.level-card{padding:6px}.level-number{font-size:1.2rem}.level-name{font-size:.5rem;display:none}.level-stars{font-size:.6rem}.hud{flex-wrap:wrap;gap:8px;padding:8px 12px}.level-display,.turn-count{font-size:.65rem}.weapon-bar{flex-wrap:wrap;gap:4px;padding:8px}.weapon-btn{padding:8px 12px;font-size:.7rem}.result-screen h2{font-size:1.5rem;letter-spacing:5px}.practice-score{font-size:2rem}.result-buttons{width:100%;padding:0 20px}.result-buttons .btn{width:100%}.pause-menu h2{font-size:1.5rem;letter-spacing:6px}.pause-buttons{width:100%;padding:0 40px}.pause-buttons .btn{width:100%}}@media (max-width: 400px){.game-title{font-size:1.5rem;letter-spacing:6px}.continue-hint{margin-bottom:14px}.menu-cast{margin-bottom:12px}.cast-square{width:9px;height:9px}.levels-grid{grid-template-columns:repeat(auto-fill,minmax(56px,1fr));gap:6px;width:calc(100% - 4px)}.level-number{font-size:1rem}.btn{padding:10px 20px;font-size:.8rem}}@media (min-width: 601px) and (max-width: 900px){.levels-grid{grid-template-columns:repeat(5,1fr);gap:10px}.weapon-bar{gap:6px}}@media (min-width: 1024px){#app{max-width:950px;padding:16px}.game-wrapper{max-width:900px;gap:8px}.game-container{border-radius:16px;box-shadow:0 20px 60px #00000080}#gameCanvas{border-radius:16px}.hud{padding:12px 24px;border-radius:14px}.level-display{font-size:.8rem;letter-spacing:4px}.turn-count{font-size:.85rem;padding:6px 14px}.pause-btn{padding:8px 16px;font-size:.7rem}.weapon-bar{padding:16px;gap:12px;border-radius:16px}.weapon-btn{padding:12px 24px;font-size:.85rem;border-radius:12px}.menu-screen{width:100%;max-width:800px;margin:0 auto;padding:40px}.menu-header{margin-bottom:28px}.game-title{font-size:3.5rem;letter-spacing:18px}.menu-screen .subtitle{font-size:1rem;letter-spacing:5px}.tagline{font-size:1.1rem;max-width:520px;margin:0 auto 36px}.menu-buttons{flex-direction:row;justify-content:center;gap:20px;margin-bottom:40px}.menu-buttons .btn{min-width:200px}.menu-cast{gap:24px;margin-bottom:32px}.cast-member{gap:10px}.cast-square{width:20px;height:20px;border-radius:5px}.cast-name{font-size:.8rem}.ability-hint{font-size:.65rem}.progress-section{width:100%;max-width:550px;margin:0 auto}.progress-bar-container{height:10px}.progress-text{font-size:.85rem;margin-top:14px}.level-select-screen{max-width:900px;margin:0 auto}.levels-grid{gap:16px}.level-card{padding:20px}.pause-menu{min-width:400px;padding:40px 48px}.pause-menu h2{font-size:2.2rem;letter-spacing:12px;margin-bottom:12px}.pause-buttons{gap:14px;margin-top:28px}.pause-buttons .btn{min-width:220px;padding:14px 28px}.pause-menu .toggle-btn{max-width:320px}}@media (min-width: 1400px){#app{max-width:1050px;padding:20px}.game-wrapper{max-width:1000px;gap:10px}.hud{padding:14px 28px}.weapon-bar{padding:14px;gap:10px}.weapon-btn{padding:12px 24px;font-size:.85rem}.menu-screen{max-width:900px;padding:48px}.game-title{font-size:4rem;letter-spacing:22px}.tagline{font-size:1.15rem;max-width:580px}.menu-cast{gap:32px}.cast-square{width:24px;height:24px}.progress-section{max-width:600px}.level-select-screen{max-width:1000px}}@media (pointer: coarse){*{-webkit-tap-highlight-color:transparent}.btn{min-height:44px;min-width:44px}.level-card{min-height:60px;min-width:60px}.weapon-btn{min-height:44px}}@media (pointer: coarse) and (max-width: 1024px){.btn-back{backdrop-filter:none;-webkit-backdrop-filter:none;background:#000000d9}.hud{backdrop-filter:none;-webkit-backdrop-filter:none;background:#0b0d12f2}.level-select-header{backdrop-filter:none;-webkit-backdrop-filter:none;background:#0b0d12fa}.act-header{backdrop-filter:none;-webkit-backdrop-filter:none;background:#12151cf2}.fullscreen-prompt,.install-prompt{backdrop-filter:none;-webkit-backdrop-filter:none;background:#0b0d12f2}.touch-hint{backdrop-filter:none;-webkit-backdrop-filter:none;background:#000000e6}}@media (prefers-reduced-motion: reduce){*{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}:fullscreen,:-webkit-full-screen,:-moz-full-screen{background:var(--bg-black)!important}:fullscreen body,:-webkit-full-screen body,:-moz-full-screen body{width:100vw;height:100vh;overflow:hidden}@supports (padding: env(safe-area-inset-left)){.mobile-controls .game-wrapper{padding-left:env(safe-area-inset-left);padding-right:env(safe-area-inset-right);padding-top:env(safe-area-inset-top);padding-bottom:env(safe-area-inset-bottom)}.mobile-controls .canvas-container{margin-left:env(safe-area-inset-left);margin-right:env(safe-area-inset-right)}}@media (display-mode: standalone),(display-mode: fullscreen){.fullscreen-prompt{display:none!important}body{-webkit-overflow-scrolling:touch}}@media (orientation: landscape) and (max-height: 600px) and (pointer: coarse){.mobile-controls .control-hints,.mobile-controls .weapon-bar{display:none!important}.mobile-controls .game-wrapper{height:100vh;height:100dvh;max-width:100%;padding:0;gap:0}.mobile-controls .game-container{flex:1;aspect-ratio:unset;min-height:unset;border:none;border-radius:0;background:transparent}.mobile-controls #gameCanvas{border-radius:0}.mobile-controls .hud{position:absolute;top:0;left:0;right:0;background:transparent;backdrop-filter:none;-webkit-backdrop-filter:none;padding:10px 14px;border:none;border-radius:0;z-index:20;display:flex;justify-content:space-between;align-items:flex-start;pointer-events:none}.mobile-controls .hud:after{display:none}.mobile-controls .hud .level-display{display:none}.mobile-controls .hud .turn-count{background:#0b0d12bf;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);padding:6px 12px;border-radius:16px;font-size:.8rem;font-weight:600;pointer-events:auto;transition:opacity .4s ease;opacity:1}.mobile-controls .hud .turn-count.idle{opacity:.35}.mobile-controls .hud .turn-count.approaching-best{animation:timerPulse 1s ease-in-out infinite;color:#4ade80}.mobile-controls .hud .turn-count.past-best{color:var(--text-dim)}.mobile-controls .hud .pause-btn{background:#0b0d12bf;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);padding:8px 14px;font-size:.65rem;min-width:unset;min-height:36px;border-radius:18px;pointer-events:auto;border:1px solid rgba(255,255,255,.1)}.mobile-controls .hud .pause-btn:active{transform:scale(.95);background:#0b0d12e6}.mobile-controls .weapon-bar{display:none}}.mobile-settings{margin:20px 0;padding:16px;background:#ffffff0a;border:1px solid var(--panel-border);border-radius:12px}.mobile-settings h3{font-size:.75rem;letter-spacing:2px;text-transform:uppercase;color:var(--text-gray);margin-bottom:16px}.setting-row{display:flex;align-items:center;justify-content:space-between;padding:10px 0;border-bottom:1px solid var(--panel-border)}.setting-row:last-child{border-bottom:none}.setting-label{font-size:.8rem;color:var(--text-white)}.setting-toggle{position:relative;width:48px;height:26px;background:var(--text-dim);border-radius:13px;cursor:pointer;transition:background .2s ease}.setting-toggle.active{background:var(--success)}.setting-toggle:after{content:"";position:absolute;top:3px;left:3px;width:20px;height:20px;background:#fff;border-radius:50%;transition:transform .2s ease}.setting-toggle.active:after{transform:translate(22px)}
