@keyframes fade-in-down{0%{opacity:0;transform:translateY(-20px)}to{opacity:1;transform:translateY(0)}}.animate-fade-in-down{animation:fade-in-down .6s cubic-bezier(.22,1,.36,1) both}@keyframes fade-in-up{0%{opacity:0;transform:translateY(30px)}to{opacity:1;transform:translateY(0)}}.animate-fade-in-up{animation:fade-in-up .8s cubic-bezier(.22,1,.36,1) both}@keyframes fade-in{0%{opacity:0}to{opacity:1}}.animate-fade-in{animation:fade-in .6s ease-out both}.animation-delay-150{animation-delay:.15s}.animation-delay-300{animation-delay:.3s}.animation-delay-450{animation-delay:.45s}.animation-delay-600{animation-delay:.6s}@keyframes shimmer{0%{transform:translateX(-100%)}to{transform:translateX(200%)}}.animate-shimmer{animation:shimmer 3s linear infinite;animation-delay:2s}@keyframes gradient-x{0%,to{background-position:0 50%}50%{background-position:100% 50%}}.animate-gradient-x{background-size:200% 200%;animation:gradient-x 3s ease infinite}@keyframes scale-in{0%{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)}}.animate-scale-in{animation:scale-in .5s cubic-bezier(.22,1,.36,1) both}@keyframes slide-up{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.animate-slide-up{animation:slide-up .6s ease-out both}@media (prefers-reduced-motion:reduce){.animate-fade-in,.animate-fade-in-down,.animate-fade-in-up,.animate-scale-in,.animate-slide-up{animation:none;opacity:1;transform:none}.animate-gradient-x,.animate-shimmer{animation:none}}