:root{--mf-indigo: #4f46e5;--mf-violet: #7c3aed;--brand-50: 238 242 255;--brand-100: 224 231 255;--brand-200: 199 210 254;--brand-300: 165 180 252;--brand-400: 129 140 248;--brand-500: 99 102 241;--brand-600: 79 70 229;--brand-700: 67 56 202;--brand-800: 55 48 163;--brand-900: 49 46 129;--brand-950: 30 27 75}html{scroll-behavior:smooth}.font-display{font-family:Sora,Inter,sans-serif;letter-spacing:-.02em}.text-gradient{background-image:linear-gradient(100deg,var(--mf-indigo),var(--mf-violet) 60%,#db2777);-webkit-background-clip:text;background-clip:text;color:transparent}.text-gradient-light{background-image:linear-gradient(100deg,#818cf8,#c4b5fd 55%,#f0abfc);-webkit-background-clip:text;background-clip:text;color:transparent}.bg-grid{background-image:linear-gradient(to right,rgba(79,70,229,.06) 1px,transparent 1px),linear-gradient(to bottom,rgba(79,70,229,.06) 1px,transparent 1px);background-size:40px 40px}.bg-grid-dark{background-image:linear-gradient(to right,rgba(255,255,255,.05) 1px,transparent 1px),linear-gradient(to bottom,rgba(255,255,255,.05) 1px,transparent 1px);background-size:44px 44px}.bg-dots{background-image:radial-gradient(rgba(79,70,229,.12) 1px,transparent 1px);background-size:22px 22px}@keyframes blob{0%,to{transform:translate(0) scale(1)}33%{transform:translate(24px,-32px) scale(1.08)}66%{transform:translate(-20px,18px) scale(.94)}}.animate-blob{animation:blob 14s ease-in-out infinite}.animation-delay-2000{animation-delay:2s}.animation-delay-4000{animation-delay:4s}@keyframes float{0%,to{transform:translateY(0)}50%{transform:translateY(-12px)}}.animate-float{animation:float 6s ease-in-out infinite}.animate-float-slow{animation:float 9s ease-in-out infinite}@keyframes fadeInUp{0%{opacity:0;transform:translateY(24px)}to{opacity:1;transform:translateY(0)}}.animate-fade-in{animation:fadeInUp .7s cubic-bezier(.16,1,.3,1) both}.animate-fade-up{animation:fadeInUp .8s cubic-bezier(.16,1,.3,1) both}.delay-100{animation-delay:.1s}.delay-200{animation-delay:.2s}.delay-300{animation-delay:.3s}.delay-500{animation-delay:.5s}@keyframes shimmer{0%{background-position:-200% 0}to{background-position:200% 0}}@keyframes bounceSlow{0%,to{transform:translateY(0)}50%{transform:translateY(-8px)}}.animate-bounce-slow{animation:bounceSlow 3s ease-in-out infinite}@media(prefers-reduced-motion:reduce){.animate-blob,.animate-float,.animate-float-slow,.animate-fade-in,.animate-fade-up,.animate-bounce-slow{animation:none!important}html{scroll-behavior:auto}}
