@keyframes fade-slide-in{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}.animate-fade-slide-in{animation:fade-slide-in .4s ease-out forwards}@keyframes fade-slide-in-row{0%{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:translateY(0)}}@keyframes cellFadeInUp{0%{opacity:0;transform:translateY(12px) scale(.98);filter:blur(4px)}60%{opacity:1;transform:translateY(0) scale(1);filter:blur(0)}to{opacity:1;transform:translateY(0) scale(1);filter:blur(0)}}.player-cells-appear>*{opacity:0;animation-name:cellFadeInUp;animation-duration:.6s;animation-timing-function:cubic-bezier(.16,1,.3,1);animation-fill-mode:forwards;will-change:opacity,transform,filter;backface-visibility:hidden;transform-origin:50% 50%}.player-row{animation:fade-slide-in-row .4s ease-out forwards}.player-row .player-cell{opacity:0;animation:cellFadeInUp .6s cubic-bezier(.16,1,.3,1) forwards;animation-delay:var(--stagger, 0ms);backface-visibility:hidden;transform-origin:50% 50%}@keyframes victorySlideIn{0%{opacity:0;transform:translateY(20px) scale(.95);filter:blur(8px)}50%{opacity:.8;transform:translateY(-5px) scale(1.02);filter:blur(2px)}to{opacity:1;transform:translateY(0) scale(1);filter:blur(0)}}.victory-appear{opacity:0;animation:victorySlideIn .8s cubic-bezier(.34,1.56,.64,1) forwards;will-change:opacity,transform,filter;backface-visibility:hidden;transform-origin:50% 50%}@keyframes confettiFall{0%{transform:translateY(-100vh) rotate(0);opacity:1}to{transform:translateY(100vh) rotate(720deg);opacity:0}}@keyframes confettiFall2{0%{transform:translateY(-100vh) rotate(0) translate(0);opacity:1}50%{transform:translateY(50vh) rotate(180deg) translate(50px);opacity:1}to{transform:translateY(100vh) rotate(360deg) translate(-30px);opacity:0}}@keyframes confettiFall3{0%{transform:translateY(-100vh) rotate(0) translate(0);opacity:1}50%{transform:translateY(50vh) rotate(-180deg) translate(-50px);opacity:1}to{transform:translateY(100vh) rotate(-360deg) translate(30px);opacity:0}}.confetti{position:fixed;top:0;left:0;width:10px;height:10px;background:#ff6b6b;animation:confettiFall 3s linear forwards;z-index:1000;pointer-events:none}.confetti:nth-child(2n){background:#4ecdc4;animation:confettiFall2 3s linear forwards;animation-delay:.2s}.confetti:nth-child(3n){background:#45b7d1;animation:confettiFall3 3s linear forwards;animation-delay:.4s}.confetti:nth-child(4n){background:#f9ca24;animation:confettiFall 3s linear forwards;animation-delay:.6s}.confetti:nth-child(5n){background:#f0932b;animation:confettiFall2 3s linear forwards;animation-delay:.8s}.confetti:nth-child(6n){background:#eb4d4b;animation:confettiFall3 3s linear forwards;animation-delay:1s}@keyframes bounceIn{0%{opacity:0;transform:scale(.3) translateY(-50px);filter:blur(10px)}50%{opacity:.8;transform:scale(1.05) translateY(-10px);filter:blur(2px)}70%{opacity:.9;transform:scale(.98) translateY(5px);filter:blur(0)}to{opacity:1;transform:scale(1) translateY(0);filter:blur(0)}}.animate-bounce-in{animation:bounceIn 1.2s cubic-bezier(.68,-.55,.265,1.55) forwards;will-change:opacity,transform,filter;backface-visibility:hidden;transform-origin:50% 50%}@keyframes textShimmer{0%{background-position:-200% center}to{background-position:200% center}}.animate-text-shimmer{background-size:200% auto;animation:textShimmer 3s ease-in-out infinite;will-change:background-position}@keyframes enhancedPulse{0%,to{transform:scale(1);box-shadow:0 0 #ffc107b3}50%{transform:scale(1.05);box-shadow:0 0 0 20px #ffc10700}}.animate-enhanced-pulse{animation:enhancedPulse 2s infinite}@keyframes cardHover{0%{transform:translateY(0) scale(1);box-shadow:0 10px 25px #0003}to{transform:translateY(-8px) scale(1.02);box-shadow:0 20px 40px #0000004d}}.group:hover .group-hover\:animate-card-hover{animation:cardHover .3s ease-out forwards}@keyframes buttonGlow{0%,to{box-shadow:0 0 5px #3b82f680}50%{box-shadow:0 0 20px #3b82f6cc,0 0 30px #3b82f699}}.animate-button-glow{animation:buttonGlow 2s ease-in-out infinite}@keyframes float{0%,to{transform:translateY(0)}50%{transform:translateY(-10px)}}.animate-float{animation:float 3s ease-in-out infinite}@keyframes rotate{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.animate-rotate{animation:rotate 2s linear infinite}@keyframes fadeInUp{0%{opacity:0;transform:translateY(30px)}to{opacity:1;transform:translateY(0)}}.animate-fade-in-up{animation:fadeInUp .8s ease-out forwards}.animate-fade-in-up:nth-child(1){animation-delay:.1s}.animate-fade-in-up:nth-child(2){animation-delay:.2s}.animate-fade-in-up:nth-child(3){animation-delay:.3s}.animate-fade-in-up:nth-child(4){animation-delay:.4s}@keyframes scaleOnHover{0%{transform:scale(1)}to{transform:scale(1.05)}}.hover\:animate-scale:hover{animation:scaleOnHover .2s ease-out forwards}@keyframes cardShimmer{0%{background-position:-200% 0}to{background-position:200% 0}}.animate-card-shimmer{background:linear-gradient(90deg,transparent,rgba(255,255,255,.1),transparent);background-size:200% 100%;animation:cardShimmer 2s ease-in-out infinite}@media(prefers-reduced-motion:reduce){.animate-fade-slide-in,.player-row,.player-cells-appear>*,.player-row .player-cell,.victory-appear,.confetti,.animate-bounce-in,.animate-text-shimmer,.animate-enhanced-pulse,.animate-button-glow,.animate-float,.animate-rotate,.animate-fade-in-up,.animate-card-shimmer{animation:none!important;opacity:1!important;transform:none!important}}
