@keyframes fadeInUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes scaleIn{0%{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)}}@keyframes slideInRight{0%{opacity:0;transform:translateX(20px)}to{opacity:1;transform:translateX(0)}}.animate-fade-in-up{animation:fadeInUp .4s ease-out forwards}.animate-fade-in{animation:fadeIn .3s ease-out forwards}.animate-scale-in{animation:scaleIn .4s ease-out forwards}.animate-slide-in-right{animation:slideInRight .4s ease-out forwards}.delay-100{animation-delay:.1s}.delay-200{animation-delay:.2s}.delay-300{animation-delay:.3s}.delay-400{animation-delay:.4s}.delay-500{animation-delay:.5s}.animate-fade-in,.animate-fade-in-up,.animate-scale-in,.animate-slide-in-right{opacity:0}@keyframes confettiFall{0%{opacity:1;transform:translateY(-10vh) rotate(0deg)}to{opacity:0;transform:translateY(110vh) rotate(2turn)}}@keyframes celebrationPulse{0%,to{transform:scale(1)}50%{transform:scale(1.1)}}@keyframes celebrationBounceIn{0%{opacity:0;transform:scale(.3)}50%{opacity:1;transform:scale(1.08)}70%{transform:scale(.95)}to{opacity:1;transform:scale(1)}}@keyframes celebrationSlideUp{0%{opacity:0;transform:translateY(30px)}to{opacity:1;transform:translateY(0)}}.animate-confetti-particle{animation:confettiFall var(--confetti-duration,3s) var(--confetti-delay,0s) linear forwards}.animate-celebration-pulse{animation:celebrationPulse 1.5s ease-in-out 2}.animate-celebration-bounce-in{animation:celebrationBounceIn .6s ease-out forwards}.animate-celebration-slide-up{animation:celebrationSlideUp .5s ease-out forwards;opacity:0}@media (prefers-reduced-motion:reduce){.animate-celebration-bounce-in,.animate-celebration-pulse,.animate-celebration-slide-up,.animate-confetti-particle,.animate-fade-in,.animate-fade-in-up,.animate-scale-in,.animate-slide-in-right{animation:none;opacity:1;transform:none}}