@keyframes fadeInUp{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 fadeIn{0%{opacity:0}to{opacity:1}}@keyframes pulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.8;transform:scale(1.05)}}@keyframes rotate{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@keyframes glow{0%,to{box-shadow:0 0 5px #64ffda4d}50%{box-shadow:0 0 20px #64ffda99}}@keyframes scrollBounce{0%,to{transform:translateY(0)}50%{transform:translateY(-10px)}}@keyframes scrollDot{0%{opacity:0;top:8px}50%{opacity:1}to{opacity:0;top:18px}}.animate-fade-in-up{animation:.8s ease-out fadeInUp}.animate-fade-in-left{animation:.8s ease-out fadeInLeft}.animate-fade-in-right{animation:.8s ease-out fadeInRight}.animate-fade-in{animation:.8s ease-out fadeIn}.delay-100{animation-delay:.1s;animation-fill-mode:backwards}.delay-200{animation-delay:.2s;animation-fill-mode:backwards}.delay-300{animation-delay:.3s;animation-fill-mode:backwards}.delay-400{animation-delay:.4s;animation-fill-mode:backwards}.delay-500{animation-delay:.5s;animation-fill-mode:backwards}.scroll-reveal{opacity:0;transition:all .8s ease-out;transform:translateY(30px)}.scroll-reveal.active{opacity:1;transform:translateY(0)}.scroll-reveal-left{opacity:0;transition:all .8s ease-out;transform:translate(-30px)}.scroll-reveal-left.active{opacity:1;transform:translate(0)}.scroll-reveal-right{opacity:0;transition:all .8s ease-out;transform:translate(30px)}.scroll-reveal-right.active{opacity:1;transform:translate(0)}@keyframes mobileBounce{0%,to{transform:translate(0,0)}50%{transform:translateY(-8px)}}.animate-mobile-bounce{will-change:transform;animation:3s ease-in-out infinite mobileBounce}
