@keyframes fadeInUp{0%{opacity:0;transform:translateY(30px)}to{opacity:1;transform:translateY(0)}}@keyframes fadeInDown{0%{opacity:0;transform:translateY(-30px)}to{opacity:1;transform:translateY(0)}}@keyframes fadeInLeft{0%{opacity:0;transform:translate(-30px)}to{opacity:1;transform:translate(0)}}@keyframes fadeInRight{0%{opacity:0;transform:translate(30px)}to{opacity:1;transform:translate(0)}}@keyframes scaleIn{0%{opacity:0;transform:scale(.9)}to{opacity:1;transform:scale(1)}}@keyframes slideInUp{0%{transform:translateY(100%)}to{transform:translateY(0)}}@keyframes float{0%,to{transform:translateY(0)}50%{transform:translateY(-10px)}}@keyframes pulse{0%,to{opacity:1}50%{opacity:.7}}@keyframes shimmer{0%{background-position:-200px 0}to{background-position:calc(200px + 100%) 0}}@keyframes gradientShift{0%,to{background-position:0% 50%}50%{background-position:100% 50%}}@keyframes bounceIn{0%{opacity:0;transform:scale(.3)}50%{opacity:1;transform:scale(1.05)}70%{transform:scale(.9)}to{opacity:1;transform:scale(1)}}@keyframes rotateIn{0%{opacity:0;transform:rotate(-200deg)}to{opacity:1;transform:rotate(0)}}.animate-fade-in-up{animation:fadeInUp .6s ease-out forwards}.animate-fade-in-down{animation:fadeInDown .6s ease-out forwards}.animate-fade-in-left{animation:fadeInLeft .6s ease-out forwards}.animate-fade-in-right{animation:fadeInRight .6s ease-out forwards}.animate-scale-in{animation:scaleIn .5s ease-out forwards}.animate-slide-in-up{animation:slideInUp .7s ease-out forwards}.animate-float{animation:float 3s ease-in-out infinite}.animate-pulse{animation:pulse 2s cubic-bezier(.4,0,.6,1) infinite}.animate-shimmer{animation:shimmer 2s linear infinite}.animate-gradient-shift{animation:gradientShift 3s ease infinite}.animate-bounce-in{animation:bounceIn .8s ease-out forwards}.animate-rotate-in{animation:rotateIn .6s ease-out forwards}.animate-delay-100{animation-delay:.1s}.animate-delay-200{animation-delay:.2s}.animate-delay-300{animation-delay:.3s}.animate-delay-400{animation-delay:.4s}.animate-delay-500{animation-delay:.5s}.animate-delay-600{animation-delay:.6s}.animate-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 25px -5px #0000001a,0 10px 10px -5px #0000000a}.hover-scale{transition:transform .3s ease}.hover-scale:hover{transform:scale(1.05)}.hover-glow{transition:box-shadow .3s ease}.hover-glow:hover{box-shadow:0 0 20px #6366f166}.hover-rotate{transition:transform .3s ease}.hover-rotate:hover{transform:rotate(5deg)}.focus-ring{transition:box-shadow .2s ease}.focus-ring:focus{outline:none;box-shadow:0 0 0 3px #6366f14d}.loading-spinner{animation:spin 1s linear infinite}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.loading-dots:after{content:"";animation:dots 1.5s steps(5,end) infinite}@keyframes dots{0%,20%{color:#0000;text-shadow:.25em 0 0 rgba(0,0,0,0),.5em 0 0 rgba(0,0,0,0)}40%{color:#000;text-shadow:.25em 0 0 rgba(0,0,0,0),.5em 0 0 rgba(0,0,0,0)}60%{text-shadow:.25em 0 0 black,.5em 0 0 rgba(0,0,0,0)}80%,to{text-shadow:.25em 0 0 black,.5em 0 0 black}}.scroll-reveal{opacity:0;transform:translateY(30px);transition:opacity .6s ease,transform .6s ease}.scroll-reveal.revealed{opacity:1;transform:translateY(0)}.smooth-transition{transition:all .3s cubic-bezier(.4,0,.2,1)}.smooth-transition-fast{transition:all .15s cubic-bezier(.4,0,.2,1)}.smooth-transition-slow{transition:all .5s cubic-bezier(.4,0,.2,1)}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}
