@keyframes xpFloat{0%{opacity:1;transform:translate(-50%)translateY(0)scale(1)}to{opacity:0;transform:translate(-50%)translateY(-80px)scale(1.3)}}@keyframes shake{0%,to{transform:translate(0)}15%{transform:translate(-8px)}30%{transform:translate(8px)}45%{transform:translate(-6px)}60%{transform:translate(6px)}75%{transform:translate(-3px)}90%{transform:translate(3px)}}@keyframes comboPop{0%{opacity:0;transform:scale(.5)}60%{transform:scale(1.2)}to{opacity:1;transform:scale(1)}}@keyframes ripple{to{opacity:0;transform:scale(2.5)}}@keyframes correctFlash{0%{background:#22c55e00;transform:scale(1);box-shadow:0 0 #22c55e00}20%{background:#22c55e38;border-color:#22c55ee6;transform:scale(1.025);box-shadow:0 0 40px #22c55eb3,0 0 0 2px #22c55e99}to{background:#22c55e00;transform:scale(1);box-shadow:0 0 #22c55e00}}@keyframes wrongShake{0%,to{box-shadow:none;background:#ef444400;transform:translate(0)}12%{background:#ef44442e;border-color:#ef4444cc;transform:translate(-11px);box-shadow:0 0 30px #ef444499}25%{transform:translate(10px)}38%{transform:translate(-7px)}52%{transform:translate(7px)}66%{transform:translate(-4px)}80%{transform:translate(3px)}}@keyframes inputPulse{0%{border-color:#38bdf833;transform:scale(1)}50%{border-color:#38bdf899;transform:scale(1.02)}to{border-color:#38bdf833;transform:scale(1)}}@keyframes countdownBeat{0%{transform:scale(1)}40%{transform:scale(1.08)}to{transform:scale(1)}}@keyframes countdownUrgent{0%{color:#ef4444;transform:scale(1)}40%{color:#fca5a5;text-shadow:0 0 20px #ef4444cc;transform:scale(1.15)}to{color:#ef4444;transform:scale(1)}}@keyframes scorePop{0%{transform:scale(1)}40%{transform:scale(1.3)}70%{transform:scale(.95)}to{transform:scale(1)}}@keyframes levelUpGlow{0%{transform:scale(1);box-shadow:0 0 #f59e0b00}40%{transform:scale(1.05);box-shadow:0 0 40px #f59e0bcc,0 0 80px #ef444466}to{transform:scale(1);box-shadow:0 0 #f59e0b00}}@keyframes badgeShine{0%{filter:brightness()drop-shadow(0 0 gold)}50%{filter:brightness(1.4)drop-shadow(0 0 12px gold)}to{filter:brightness()drop-shadow(0 0 gold)}}@keyframes streakFlicker{0%,to{opacity:1;transform:scale(1)}25%{opacity:.85;transform:scale(1.05)rotate(-2deg)}50%{opacity:1;transform:scale(.97)rotate(1deg)}75%{opacity:.9;transform:scale(1.03)rotate(-1deg)}}@keyframes playPulse{0%,to{transform:scale(1);box-shadow:0 0 20px #f59e0b66}50%{transform:scale(1.03);box-shadow:0 0 40px #f59e0bcc,0 0 60px #ef44444d}}@keyframes slideDown{0%{opacity:0;transform:translate(-50%)translateY(-20px)}to{opacity:1;transform:translate(-50%)translateY(0)}}@keyframes fadeInUp{0%{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}@keyframes shimmer{0%{transform:translate(-100%)}to{transform:translate(200%)}}@keyframes progressFill{0%{width:0%}}.anim-correct{animation:.4s forwards correctFlash}.anim-wrong{animation:.5s forwards wrongShake}.anim-input-pulse{animation:.2s forwards inputPulse}.anim-countdown{animation:.3s forwards countdownBeat}.anim-countdown-urgent{animation:.3s forwards countdownUrgent}.anim-score-pop{animation:.4s cubic-bezier(.34,1.56,.64,1) forwards scorePop}.anim-levelup{animation:1.2s forwards levelUpGlow}.anim-badge{animation:.8s forwards badgeShine}.anim-streak{animation:1.5s ease-in-out infinite streakFlicker}.anim-play-pulse{animation:2s ease-in-out infinite playPulse}.animate-shake{animation:.5s shake}.animate-combo-pop{animation:.3s comboPop}button{transition:transform .12s,box-shadow .15s}button:hover:not(:disabled){transform:scale(1.04)}button:active:not(:disabled){transform:scale(.95)}button:disabled{cursor:not-allowed}.progress-bar-fill{transition:width .8s cubic-bezier(.4,0,.2,1);position:relative;overflow:hidden}.progress-bar-fill:after{content:"";background:linear-gradient(90deg,#0000,#fff3,#0000);animation:2s infinite shimmer;position:absolute;inset:0}.xp-float{pointer-events:none;z-index:50;font-size:20px;font-weight:900;animation:.9s ease-out forwards xpFloat;position:fixed}.page-enter{animation:.35s forwards fadeInUp}.hero-xp-bar{animation:1.2s cubic-bezier(.4,0,.2,1) forwards progressFill;position:relative;overflow:hidden}.hero-xp-bar:after{content:"";background:linear-gradient(90deg,#0000,#ffffff4d,#0000);animation:2.5s ease-in-out infinite shimmer;position:absolute;inset:0}.streak-fire{animation:1.5s ease-in-out infinite streakFlicker;display:inline-block}.quest-glow{position:relative}.quest-glow:before{content:"";border-radius:inherit;pointer-events:none;background:linear-gradient(135deg,#22c55e66,#0000,#22c55e33);animation:3s ease-in-out infinite shimmer;position:absolute;inset:-1px}@keyframes typingDot{0%,60%,to{opacity:.4;transform:translateY(0)}30%{opacity:1;transform:translateY(-6px)}}.typing-dot{background:currentColor;border-radius:50%;width:6px;height:6px;animation:1.2s ease-in-out infinite typingDot;display:inline-block}.typing-dot:nth-child(2){animation-delay:.2s}.typing-dot:nth-child(3){animation-delay:.4s}.tension-border{transition:box-shadow .3s,border-color .3s}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}.anim-correct,.anim-wrong,.anim-input-pulse,.anim-levelup,.anim-badge,.anim-streak,.anim-countdown,.anim-countdown-urgent,.anim-score-pop,.anim-play-pulse,.animate-shake,.animate-combo-pop,.xp-float,.hero-xp-bar:after,.progress-bar-fill:after,.streak-fire,.quest-glow:before,.typing-dot,.pulse-ring,.arena-glow{animation:none!important;transform:none!important}button{transition:none!important}}
