@keyframes fade-in-up{0%{opacity:0;transform:translateY(30px)}to{opacity:1;transform:translateY(0)}}@keyframes fade-in-left{0%{opacity:0;transform:translateX(-30px)}to{opacity:1;transform:translateX(0)}}@keyframes fade-in-right{0%{opacity:0;transform:translateX(30px)}to{opacity:1;transform:translateX(0)}}@keyframes scale-in{0%{opacity:0;transform:scale(.9)}to{opacity:1;transform:scale(1)}}@keyframes pulse-glow{0%,to{box-shadow:0 0 20px rgba(59,130,246,.3)}50%{box-shadow:0 0 30px rgba(59,130,246,.6)}}@keyframes float{0%,to{transform:translateY(0)}50%{transform:translateY(-10px)}}@keyframes shimmer{0%{background-position:-200% 0}to{background-position:200% 0}}@keyframes count-up{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@keyframes slide-in-bottom{0%{opacity:0;transform:translateY(50px)}to{opacity:1;transform:translateY(0)}}@keyframes wiggle{0%,7%{transform:rotate(0)}15%{transform:rotate(-15deg)}20%{transform:rotate(10deg)}25%{transform:rotate(-10deg)}30%{transform:rotate(6deg)}35%{transform:rotate(-4deg)}40%,to{transform:rotate(0)}}.animate-fade-in-up{animation:fade-in-up .6s ease-out forwards}.animate-fade-in-left{animation:fade-in-left .6s ease-out forwards}.animate-fade-in-right{animation:fade-in-right .6s ease-out forwards}.animate-scale-in{animation:scale-in .5s ease-out forwards}.animate-pulse-glow{animation:pulse-glow 2s ease-in-out infinite}.animate-float{animation:float 3s ease-in-out infinite}.animate-shimmer{background:linear-gradient(90deg,transparent,hsla(0,0%,100%,.4),transparent);background-size:200% 100%;animation:shimmer 2s infinite}.animate-count-up{animation:count-up .8s ease-out forwards}.animate-slide-in-bottom{animation:slide-in-bottom .6s ease-out forwards}.animate-wiggle{animation:wiggle 1s ease-in-out}.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}.delay-600{animation-delay:.6s}.delay-700{animation-delay:.7s}.delay-800{animation-delay:.8s}.delay-900{animation-delay:.9s}.delay-1000{animation-delay:1s}.hover-lift{transition:transform .3s ease,box-shadow .3s ease}.hover-lift:hover{transform:translateY(-5px);box-shadow:0 20px 40px rgba(0,0,0,.1)}.hover-glow{transition:box-shadow .3s ease}.hover-glow:hover{box-shadow:0 0 30px rgba(59,130,246,.3)}.hover-scale{transition:transform .3s ease}.hover-scale:hover{transform:scale(1.05)}.gradient-animate{background:linear-gradient(-45deg,#3b82f6,#8b5cf6,#06b6d4,#10b981);background-size:400% 400%;animation:gradient-shift 15s ease infinite}@keyframes gradient-shift{0%{background-position:0 50%}50%{background-position:100% 50%}to{background-position:0 50%}}.text-gradient{background:linear-gradient(135deg,#3b82f6,#8b5cf6);-webkit-background-clip:text;background-clip:text}.text-gradient,.text-shimmer{-webkit-text-fill-color:transparent}.text-shimmer{background:linear-gradient(90deg,#3b82f6,#8b5cf6,#06b6d4,#3b82f6);background-size:200% 100%;-webkit-background-clip:text;background-clip:text;animation:shimmer 3s ease-in-out infinite}.card-hover{transition:all .3s ease;position:relative;overflow:hidden}.card-hover:before{content:"";position:absolute;top:0;left:-100%;width:100%;height:100%;background:linear-gradient(90deg,transparent,hsla(0,0%,100%,.2),transparent);transition:left .5s}.card-hover:hover:before{left:100%}.card-hover:hover{transform:translateY(-10px);box-shadow:0 25px 50px rgba(0,0,0,.15)}.btn-pulse{position:relative;overflow:hidden}.btn-pulse:before{content:"";position:absolute;top:50%;left:50%;width:0;height:0;background:hsla(0,0%,100%,.3);border-radius:50%;transform:translate(-50%,-50%);transition:width .6s,height .6s}.btn-pulse:hover:before{width:300px;height:300px}.loading-dots{display:inline-block}.loading-dots:after{content:"";animation:dots 1.5s steps(4) infinite}@keyframes dots{0%,20%{content:""}40%{content:"."}60%{content:".."}80%,to{content:"..."}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideUp{0%{opacity:0;transform:translateY(30px)}to{opacity:1;transform:translateY(0)}}.animate-fadeIn{animation:fadeIn .3s ease-out forwards}.animate-slideUp{animation:slideUp .4s ease-out forwards}@media (prefers-reduced-motion:reduce){*{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}