@keyframes fadeIn { from {opacity:0;} to {opacity:1;}}@keyframes fadeInUp { from {opacity:0;transform:translateY(24px);} to {opacity:1;transform:translateY(0);}}@keyframes fadeInLeft { from {opacity:0;transform:translateX(-24px);} to {opacity:1;transform:translateX(0);}}@keyframes fadeInRight { from {opacity:0;transform:translateX(24px);} to {opacity:1;transform:translateX(0);}}@keyframes scaleIn { from {opacity:0;transform:scale(0.92);} to {opacity:1;transform:scale(1);}}@keyframes float { 0%,100% {transform:translateY(0);} 50% {transform:translateY(-8px);}}@keyframes pulse { 0%,100% {opacity:1;} 50% {opacity:0.5;}}@keyframes spin { from {transform:rotate(0deg);} to {transform:rotate(360deg);}}@keyframes marquee { from {transform:translateX(0);} to {transform:translateX(-50%);}}@keyframes shimmer { 0% {background-position:-200% 0;} 100% {background-position:200% 0;}}.reveal { opacity:0; transform:translateY(32px); transition:opacity 0.7s ease,transform 0.7s ease;}.reveal.visible { opacity:1; transform:translateY(0);}.reveal-left { opacity:0; transform:translateX(-32px); transition:opacity 0.7s ease,transform 0.7s ease;}.reveal-left.visible { opacity:1; transform:translateX(0);}.reveal-right { opacity:0; transform:translateX(32px); transition:opacity 0.7s ease,transform 0.7s ease;}.reveal-right.visible { opacity:1; transform:translateX(0);}.reveal-scale { opacity:0; transform:scale(0.95); transition:opacity 0.7s ease,transform 0.7s ease;}.reveal-scale.visible { opacity:1; transform:scale(1);}.delay-1 {transition-delay:0.1s;}.delay-2 {transition-delay:0.2s;}.delay-3 {transition-delay:0.3s;}.delay-4 {transition-delay:0.4s;}.delay-5 {transition-delay:0.5s;}.delay-6 {transition-delay:0.6s;}.hover-lift { transition:transform var(--transition-base),box-shadow var(--transition-base);}.hover-lift:hover { transform:translateY(-4px); box-shadow:var(--shadow-lg);}.hover-glow { transition:box-shadow var(--transition-base);}.hover-glow:hover { box-shadow:var(--shadow-primary);}.hover-scale { transition:transform var(--transition-base);}.hover-scale:hover { transform:scale(1.03);}.marquee-section { overflow:hidden;}.marquee-track { display:flex; width:max-content; animation:marquee 35s linear infinite;}.marquee-track:hover { animation-play-state:paused;}.float-anim { animation:float 3s ease-in-out infinite;}.pulse-dot { display:inline-block; width:8px; height:8px; border-radius:50%; background:var(--primary); animation:pulse 2s ease-in-out infinite;}@media (prefers-reduced-motion:reduce) { *, *::before, *::after { animation-duration:0.01ms !important; animation-iteration-count:1 !important; transition-duration:0.01ms !important;} .reveal, .reveal-left, .reveal-right, .reveal-scale { opacity:1; transform:none; transition:none;}}