@keyframes hero-gradient{0%,to{background-position:0;background-size:200% 200%}50%{background-position:100%;background-size:200% 200%}}@keyframes hero-float{0%,to{transform:translateY(0)rotate(0)}50%{transform:translateY(-20px)rotate(5deg)}}@keyframes hero-spin-slow{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@keyframes hero-bounce{0%,to{transform:translateY(0)}50%{transform:translateY(8px)}}@keyframes hero-pulse{0%,to{opacity:.1}50%{opacity:.2}}.hero-animate-gradient{animation:8s infinite hero-gradient}.hero-animate-float{animation:6s ease-in-out infinite hero-float}.hero-animate-spin-slow{animation:8s linear infinite hero-spin-slow}.hero-animate-bounce{animation:2s ease-in-out infinite hero-bounce}.hero-animate-pulse{animation:4s ease-in-out infinite hero-pulse}.hero-delay-1000{animation-delay:1s}.hero-delay-100{animation-delay:.1s}.hero-delay-200{animation-delay:.2s}.hero-delay-300{animation-delay:.3s}.hero-delay-400{animation-delay:.4s}.hero-delay-500{animation-delay:.5s}.hero-delay-600{animation-delay:.6s}.hero-delay-700{animation-delay:.7s}.hero-delay-800{animation-delay:.8s}.hero-delay-1100{animation-delay:1.1s}.hero-delay-1200{animation-delay:1.2s}.hero-delay-900{animation-delay:.9s}@keyframes hero-fade-in-up{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.hero-animate-fade-in-up{opacity:0;animation:.6s ease-out forwards hero-fade-in-up}.bg-grid-pattern{background-image:linear-gradient(to right,hsl(var(--border))1px,transparent 1px),linear-gradient(to bottom,hsl(var(--border))1px,transparent 1px);background-size:40px 40px}
