@keyframes slideInRight{0%{opacity:0;transform:translate(20px)}to{opacity:1;transform:translate(0)}}@keyframes slideInLeft{0%{opacity:0;transform:translate(-20px)}to{opacity:1;transform:translate(0)}}@keyframes fadeInUp{0%{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes scaleIn{0%{opacity:0;transform:scale(.5)}to{opacity:1;transform:scale(1)}}@keyframes pingSlow{0%{opacity:.3;transform:scale(1)}50%{opacity:0;transform:scale(1.5)}to{opacity:.3;transform:scale(1)}}@keyframes bounceSubtle{0%,to{transform:translateY(0)}50%{transform:translateY(-4px)}}.animate-slide-in-right{animation:.3s ease-out slideInRight}.animate-slide-in-left{animation:.3s ease-out slideInLeft}.animate-fade-in-up{animation:.4s ease-out both fadeInUp}.animate-fade-in{animation:.3s ease-out both fadeIn}.animate-scale-in{animation:.2s ease-out scaleIn}.animate-ping-slow{animation:2s cubic-bezier(.4,0,.6,1) infinite pingSlow}.animate-bounce-subtle{animation:2s ease-in-out infinite bounceSubtle}@keyframes confetti{0%{opacity:1;transform:translateY(-100vh)rotate(0)}to{opacity:0;transform:translateY(100vh)rotate(720deg)}}.animate-confetti{border-radius:2px;animation:3s ease-out forwards confetti}@keyframes spinSlow{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.animate-spin-slow{animation:4s linear infinite spinSlow}@media (prefers-reduced-motion:reduce){.animate-slide-in-right,.animate-slide-in-left,.animate-fade-in-up,.animate-fade-in,.animate-scale-in,.animate-ping-slow,.animate-bounce-subtle,.animate-confetti,.animate-spin-slow{opacity:1!important;animation:none!important;transform:none!important}}
