@keyframes jackbox-bounce-in{0%{transform:scale(0) rotate(-5deg);opacity:0}60%{transform:scale(1.15) rotate(2deg);opacity:1}80%{transform:scale(.95) rotate(-1deg)}to{transform:scale(1) rotate(0)}}@keyframes slide-up{0%{transform:translateY(60px);opacity:0}to{transform:translateY(0);opacity:1}}@keyframes slide-in-left{0%{transform:translate(-100px);opacity:0}to{transform:translate(0);opacity:1}}@keyframes screen-shake{0%,to{transform:translate(0)}10%{transform:translate(-10px) rotate(-1deg)}20%{transform:translate(10px) rotate(1deg)}30%{transform:translate(-8px) rotate(-.5deg)}40%{transform:translate(8px) rotate(.5deg)}50%{transform:translate(-5px)}60%{transform:translate(5px)}70%{transform:translate(-2px)}80%{transform:translate(2px)}}@keyframes glow-pulse{0%,to{box-shadow:0 0 5px var(--glow-color, #3b82f6),0 0 15px var(--glow-color, #3b82f6)}50%{box-shadow:0 0 15px var(--glow-color, #3b82f6),0 0 40px var(--glow-color, #3b82f6),0 0 60px var(--glow-color, #3b82f6)}}@keyframes score-pop{0%{transform:scale(0) translateY(0);opacity:1}50%{transform:scale(1.5) translateY(-20px);opacity:1}to{transform:scale(1) translateY(-40px);opacity:0}}@keyframes correct-flash{0%{background-color:transparent}30%{background-color:#22c55e4d}to{background-color:transparent}}@keyframes wrong-flash{0%{background-color:transparent}30%{background-color:#ef44444d}to{background-color:transparent}}@keyframes confetti-fall{0%{transform:translateY(-10px) rotate(0);opacity:1}to{transform:translateY(100vh) rotate(720deg);opacity:0}}@keyframes timer-pulse{0%,to{transform:scale(1)}50%{transform:scale(1.1)}}@keyframes timer-urgent{0%,to{transform:scale(1);color:#ef4444}50%{transform:scale(1.2);color:red}}@keyframes card-flip{0%{transform:perspective(1000px) rotateY(0)}to{transform:perspective(1000px) rotateY(180deg)}}@keyframes card-flip-back{0%{transform:perspective(1000px) rotateY(180deg)}to{transform:perspective(1000px) rotateY(360deg)}}@keyframes thinking-dot{0%,20%{opacity:.2;transform:translateY(0)}50%{opacity:1;transform:translateY(-8px)}80%,to{opacity:.2;transform:translateY(0)}}@keyframes streak-fire{0%{transform:scale(1);filter:brightness(1)}50%{transform:scale(1.3);filter:brightness(1.5)}to{transform:scale(1);filter:brightness(1)}}@keyframes typewriter{0%{width:0}to{width:100%}}@keyframes fade-in{0%{opacity:0}to{opacity:1}}@keyframes zoom-in{0%{transform:scale(.5);opacity:0}to{transform:scale(1);opacity:1}}.animate-jackbox-bounce{animation:jackbox-bounce-in .6s cubic-bezier(.175,.885,.32,1.275) forwards}.animate-slide-up{animation:slide-up .5s ease-out forwards}.animate-slide-left{animation:slide-in-left .4s ease-out forwards}.animate-shake{animation:screen-shake .5s ease-in-out}.animate-glow{animation:glow-pulse 2s ease-in-out infinite}.animate-score-pop{animation:score-pop .8s ease-out forwards}.animate-correct{animation:correct-flash .6s ease-out}.animate-wrong{animation:wrong-flash .6s ease-out}.animate-timer-pulse{animation:timer-pulse 1s ease-in-out infinite}.animate-timer-urgent{animation:timer-urgent .5s ease-in-out infinite}.animate-zoom-in{animation:zoom-in .4s ease-out forwards}.animate-fade-in{animation:fade-in .3s ease-out forwards}.animate-streak-fire{animation:streak-fire .5s ease-in-out}.stagger-1{animation-delay:.1s;opacity:0}.stagger-2{animation-delay:.2s;opacity:0}.stagger-3{animation-delay:.3s;opacity:0}.stagger-4{animation-delay:.4s;opacity:0}.confetti-container{position:fixed;top:0;right:0;bottom:0;left:0;pointer-events:none;z-index:999;overflow:hidden}.confetti-piece{position:absolute;width:10px;height:10px;top:-10px;animation:confetti-fall linear forwards}@keyframes heart-shatter{0%{transform:scale(1);opacity:1;filter:brightness(1)}15%{transform:scale(1.3);opacity:1;filter:brightness(2)}30%{transform:scale(.6) rotate(15deg);opacity:.8;filter:brightness(1.5)}to{transform:scale(0) rotate(45deg) translateY(40px);opacity:0;filter:brightness(.5)}}@keyframes heart-shard{0%{transform:translate(0) rotate(0) scale(1);opacity:1}to{transform:translate(var(--shard-x, 30px),var(--shard-y, 60px)) rotate(var(--shard-rot, 180deg)) scale(0);opacity:0}}@keyframes heart-pulse-alive{0%,to{transform:scale(1)}50%{transform:scale(1.12)}}@keyframes red-flash-overlay{0%{opacity:0}20%{opacity:.4}to{opacity:0}}@keyframes game-over-zoom{0%{transform:scale(.1) rotate(-10deg);opacity:0;filter:blur(10px)}60%{transform:scale(1.15) rotate(2deg);opacity:1;filter:blur(0)}80%{transform:scale(.95) rotate(-1deg)}to{transform:scale(1) rotate(0)}}@keyframes stats-card-in{0%{transform:translateY(40px) scale(.9);opacity:0}to{transform:translateY(0) scale(1);opacity:1}}@keyframes border-danger-pulse{0%,to{box-shadow:inset 0 0 30px #ef44440d}50%{box-shadow:inset 0 0 60px #ef444426}}@keyframes neon-text-glow{0%,to{text-shadow:0 0 10px var(--neon-color, #ef4444),0 0 30px var(--neon-color, #ef4444),0 0 60px var(--neon-color, #ef4444)}50%{text-shadow:0 0 20px var(--neon-color, #ef4444),0 0 50px var(--neon-color, #ef4444),0 0 100px var(--neon-color, #ef4444),0 0 150px var(--neon-color, #ef4444)}}.animate-heart-shatter{animation:heart-shatter .6s ease-in forwards}.animate-heart-pulse{animation:heart-pulse-alive 1s ease-in-out infinite}.animate-red-flash{animation:red-flash-overlay .5s ease-out forwards}.animate-game-over{animation:game-over-zoom .8s cubic-bezier(.175,.885,.32,1.275) forwards}.animate-stats-card{animation:stats-card-in .5s ease-out forwards}.animate-border-pulse{animation:border-danger-pulse 2s ease-in-out infinite}.animate-neon-glow{animation:neon-text-glow 2s ease-in-out infinite}
