@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.animate-fade-in{animation:fadeIn .3s ease-out}@keyframes slideInLeft{0%{transform:translateX(-20px);opacity:0}to{transform:translateX(0);opacity:1}}@keyframes slideInRight{0%{transform:translateX(20px);opacity:0}to{transform:translateX(0);opacity:1}}@keyframes slideInUp{0%{transform:translateY(20px);opacity:0}to{transform:translateY(0);opacity:1}}.animate-slide-in-left{animation:slideInLeft .4s ease-out}.animate-slide-in-right{animation:slideInRight .4s ease-out}.animate-slide-in-up{animation:slideInUp .4s ease-out}@keyframes scaleIn{0%{transform:scale(.95);opacity:0}to{transform:scale(1);opacity:1}}.animate-scale-in{animation:scaleIn .3s ease-out}@keyframes pulse-slow{0%,to{opacity:1}50%{opacity:.7}}.animate-pulse-slow{animation:pulse-slow 2s cubic-bezier(.4,0,.6,1) infinite}@keyframes shimmer{0%{background-position:-1000px 0}to{background-position:1000px 0}}.animate-shimmer{background:linear-gradient(90deg,#f3f4f6 0,#e5e7eb 20%,#f3f4f6 40%,#f3f4f6);background-size:2000px 100%;animation:shimmer 2s linear infinite}@keyframes bounceIn{0%{transform:scale(.95);opacity:0}50%{transform:scale(1.02)}to{transform:scale(1);opacity:1}}.animate-bounce-in{animation:bounceIn .5s ease-out}@keyframes float{0%,to{transform:translateY(0)}50%{transform:translateY(-10px)}}.animate-float{animation:float 3s ease-in-out infinite}@keyframes shake{0%,to{transform:translateX(0)}10%,30%,50%,70%,90%{transform:translateX(-5px)}20%,40%,60%,80%{transform:translateX(5px)}}.animate-shake{animation:shake .5s}@keyframes gradient{0%{background-position:0 50%}50%{background-position:100% 50%}to{background-position:0 50%}}.animate-gradient{background-size:200% 200%;animation:gradient 3s ease infinite}.hover-lift{transition:transform .2s ease,box-shadow .2s ease}.hover-lift:hover{transform:translateY(-4px);box-shadow:0 10px 40px rgba(0,0,0,.1)}.hover-scale{transition:transform .2s ease}.hover-scale:hover{transform:scale(1.05)}.focus-ring:focus-visible{outline:2px solid #4f46e5;outline-offset:2px}.transition-smooth{transition:all .3s cubic-bezier(.4,0,.2,1)}.stagger-item{animation:slideInUp .4s ease-out backwards}.stagger-item:first-child{animation-delay:.05s}.stagger-item:nth-child(2){animation-delay:.1s}.stagger-item:nth-child(3){animation-delay:.15s}.stagger-item:nth-child(4){animation-delay:.2s}.stagger-item:nth-child(5){animation-delay:.25s}.stagger-item:nth-child(6){animation-delay:.3s}.stagger-item:nth-child(7){animation-delay:.35s}.stagger-item:nth-child(8){animation-delay:.4s}.stagger-item:nth-child(9){animation-delay:.45s}.stagger-item:nth-child(10){animation-delay:.5s}@keyframes loadingDots{0%,20%{opacity:.2}50%{opacity:1}80%,to{opacity:.2}}.loading-dot{animation:loadingDots 1.4s infinite}.loading-dot:first-child{animation-delay:0s}.loading-dot:nth-child(2){animation-delay:.2s}.loading-dot:nth-child(3){animation-delay:.4s}