@keyframes fadeInUp{0%{opacity:0;transform:translate3d(0,40px,0)}to{opacity:1;transform:translateZ(0)}}@keyframes fadeInDown{0%{opacity:0;transform:translate3d(0,-40px,0)}to{opacity:1;transform:translateZ(0)}}@keyframes slideInLeft{0%{opacity:0;transform:translate3d(-100%,0,0)}to{opacity:1;transform:translateZ(0)}}@keyframes slideInRight{0%{opacity:0;transform:translate3d(100%,0,0)}to{opacity:1;transform:translateZ(0)}}@keyframes scaleIn{0%{opacity:0;transform:scale3d(.8,.8,1)}to{opacity:1;transform:scaleX(1)}}@keyframes textReveal{0%{transform:translateY(100%)}to{transform:translateY(0)}}@keyframes pulse{0%,to{opacity:1}50%{opacity:.5}}@keyframes float{0%,to{transform:translateY(0)}50%{transform:translateY(-10px)}}@keyframes shimmer{0%{background-position:-468px 0}to{background-position:468px 0}}.animate-fadeInUp{animation:fadeInUp .8s ease-out forwards}.animate-fadeInDown{animation:fadeInDown .8s ease-out forwards}.animate-slideInLeft{animation:slideInLeft .8s ease-out forwards}.animate-slideInRight{animation:slideInRight .8s ease-out forwards}.animate-scaleIn{animation:scaleIn .6s ease-out forwards}.animate-textReveal{animation:textReveal 1s ease-out forwards}.animate-pulse{animation:pulse 2s cubic-bezier(.4,0,.6,1) infinite}.animate-float{animation:float 3s ease-in-out infinite}.animate-shimmer{background:linear-gradient(90deg,#f6f7f8 0,#edeef1 20%,#f6f7f8 40%,#f6f7f8);background-size:800px 104px;animation:shimmer 1.5s linear infinite}.hover-lift{transition:all .3s cubic-bezier(.4,0,.2,1)}@media (hover:hover) and (pointer:fine){.hover-lift:hover{transform:translateY(-8px);box-shadow:0 25px 50px -12px rgba(0,0,0,.25)}}@media (hover:none) and (pointer:coarse){.hover-lift{animation:mobilePulse 3s ease-in-out infinite}}@keyframes mobilePulse{0%,to{transform:translateY(0);box-shadow:0 10px 25px -12px rgba(0,0,0,.15)}50%{transform:translateY(-4px);box-shadow:0 15px 35px -12px rgba(0,0,0,.2)}}.hover-scale{transition:transform .3s cubic-bezier(.4,0,.2,1)}@media (hover:hover) and (pointer:fine){.hover-scale:hover{transform:scale(1.05)}}@media (hover:none) and (pointer:coarse){.hover-scale{animation:mobileScalePulse 2.5s ease-in-out infinite}}@keyframes mobileScalePulse{0%,to{transform:scale(1)}50%{transform:scale(1.02)}}.hover-glow{transition:all .3s cubic-bezier(.4,0,.2,1)}@media (hover:hover) and (pointer:fine){.hover-glow:hover{box-shadow:0 0 30px rgba(59,130,246,.3)}}@media (hover:none) and (pointer:coarse){.hover-glow{animation:mobileGlowPulse 3s ease-in-out infinite}}@keyframes mobileGlowPulse{0%,to{box-shadow:0 0 10px rgba(59,130,246,.15)}50%{box-shadow:0 0 20px rgba(59,130,246,.25)}}.hover-rotate{transition:transform .3s cubic-bezier(.4,0,.2,1)}@media (hover:hover) and (pointer:fine){.hover-rotate:hover{transform:rotate(5deg)}}.btn-animated{position:relative;overflow:hidden;transition:all .3s cubic-bezier(.4,0,.2,1)}.btn-animated:before{content:"";position:absolute;top:0;left:-100%;width:100%;height:100%;background:linear-gradient(90deg,transparent,rgba(255,255,255,.2),transparent);transition:left .5s}@media (hover:hover) and (pointer:fine){.btn-animated:hover:before{left:100%}.btn-animated:hover{transform:translateY(-2px);box-shadow:0 10px 25px rgba(0,0,0,.2)}}@media (hover:none) and (pointer:coarse){.btn-animated:before{animation:mobileShimmer 4s ease-in-out infinite}}@keyframes mobileShimmer{0%{left:-100%}50%{left:100%}to{left:100%}}.card-animated{transition:none}.card-animated:hover{transform:none;box-shadow:none}.loading-dots:after{content:"";animation:dots 1.5s steps(5) infinite}@keyframes dots{0%,20%{color:rgba(0,0,0,0);text-shadow:.25em 0 0 rgba(0,0,0,0),.5em 0 0 rgba(0,0,0,0)}40%{color:black;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}}.gradient-text{background:linear-gradient(135deg,#67e294,#32c2db);-webkit-background-clip:text;background-clip:text;color:transparent}@media (prefers-reduced-motion:reduce){.animate-fadeInDown,.animate-fadeInUp,.animate-scaleIn,.animate-slideInLeft,.animate-slideInRight,.animate-textReveal{animation:none}.hover-lift:hover,.hover-scale:hover{transform:none}*{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}