@keyframes slideInLeft{0%{transform:translateX(-100px);opacity:0}to{transform:translateX(0);opacity:1}}@keyframes fadeInUp{0%{transform:translateY(30px);opacity:0}to{transform:translateY(0);opacity:1}}@keyframes fadeInRight{0%{transform:translateX(50px);opacity:0}to{transform:translateX(0);opacity:1}}@keyframes float{0%,to{transform:translateY(0)}50%{transform:translateY(-10px)}}@keyframes floatIcon{0%,to{transform:translateY(0) scale(1)}50%{transform:translateY(-5px) scale(1.02)}}@keyframes rotateY{0%,to{transform:perspective(400px) rotateY(0deg)}50%{transform:perspective(400px) rotateY(10deg)}}@keyframes bounceSubtle{0%,to{transform:translateY(0)}50%{transform:translateY(-3px)}}@keyframes pulse-slow{0%,to{opacity:1}50%{opacity:.8}}.animate-slideInLeft{animation:slideInLeft .8s ease-out forwards}.animate-fadeInUp{animation:fadeInUp .8s ease-out forwards;opacity:0}.animate-fadeInRight{animation:fadeInRight 1s ease-out forwards;opacity:0}.animate-float{animation:float 3s ease-in-out infinite}.animate-floatIcon{animation:floatIcon 4s ease-in-out infinite;animation-fill-mode:forwards}.animate-pulse-slow{animation:pulse-slow 2s ease-in-out infinite}.animate-rotateY{animation:rotateY 6s ease-in-out infinite}.animate-bounce-subtle{animation:bounceSubtle 2s ease-in-out infinite}.animation-delay-100{animation-delay:.1s}.animation-delay-200{animation-delay:.2s}.animation-delay-300{animation-delay:.3s}.animation-delay-400{animation-delay:.4s}.animation-delay-500{animation-delay:.5s}a,button{position:relative;overflow:hidden}a:before,button: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}a:hover:before,button:hover:before{left:100%}@media (max-width:768px){.animate-fadeInRight,.animate-fadeInUp,.animate-floatIcon,.animate-slideInLeft{animation:none;opacity:1}}@media (prefers-reduced-motion:reduce){*{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}.animate-floatIcon{opacity:1!important}}