@keyframes float{0%,to{transform:translateY(0)}50%{transform:translateY(-20px)}}@keyframes glow{0%,to{box-shadow:0 0 20px #2563eb4d}50%{box-shadow:0 0 30px #2563eb99}}@keyframes slideInFromLeft{0%{opacity:0;transform:translate(-50px)}to{opacity:1;transform:translate(0)}}@keyframes slideInFromRight{0%{opacity:0;transform:translate(50px)}to{opacity:1;transform:translate(0)}}@keyframes slideInFromBottom{0%{opacity:0;transform:translateY(50px)}to{opacity:1;transform:translateY(0)}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes pulse{0%,to{transform:scale(1)}50%{transform:scale(1.05)}}@keyframes rotate{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@keyframes gradientShift{0%{background-position:0% 50%}50%{background-position:100% 50%}to{background-position:0% 50%}}.float-animation{animation:float 3s ease-in-out infinite}.glow-animation{animation:glow 2s ease-in-out infinite}.slide-in-left{animation:slideInFromLeft .8s ease-out}.slide-in-right{animation:slideInFromRight .8s ease-out}.slide-in-bottom{animation:slideInFromBottom .8s ease-out}.fade-in{animation:fadeIn 1s ease-out}.pulse-animation{animation:pulse 2s ease-in-out infinite}.rotate-animation{animation:rotate 10s linear infinite}.gradient-text{background:linear-gradient(-45deg,#2563eb,#7c3aed,#f59e0b,#ef4444);background-size:400% 400%;animation:gradientShift 5s ease infinite;-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.hover-lift{transition:transform .3s ease,box-shadow .3s ease}.hover-lift:hover{transform:translateY(-5px);box-shadow:0 15px 30px #0000004d}.hover-glow:hover{box-shadow:0 0 25px #2563eb66}.scroll-reveal{opacity:0;transform:translateY(30px);transition:all .8s ease}.scroll-reveal.revealed{opacity:1;transform:translateY(0)}.loading-dots{display:inline-flex;gap:4px}.loading-dots span{width:8px;height:8px;border-radius:50%;background:#2563eb;animation:pulse 1.4s ease-in-out infinite both}.loading-dots span:nth-child(1){animation-delay:-.32s}.loading-dots span:nth-child(2){animation-delay:-.16s}.loading-dots span:nth-child(3){animation-delay:0s}
