/* ============================================================
   ANIMATIONS — Nexus AI
   ============================================================ */
@keyframes fadeInUp { from{opacity:0;transform:translateY(30px)}to{opacity:1;transform:translateY(0)} }
@keyframes fadeInDown { from{opacity:0;transform:translateY(-30px)}to{opacity:1;transform:translateY(0)} }
@keyframes scaleIn { from{opacity:0;transform:scale(0.9)}to{opacity:1;transform:scale(1)} }
@keyframes shimmer { 0%{background-position:-200% center}100%{background-position:200% center} }
@keyframes glow-pulse { 0%,100%{box-shadow:0 0 20px rgba(108,99,255,0.2)}50%{box-shadow:0 0 40px rgba(108,99,255,0.4)} }
@keyframes float { 0%,100%{transform:translateY(0)}50%{transform:translateY(-10px)} }
@keyframes rotate-slow { from{transform:rotate(0deg)}to{transform:rotate(360deg)} }
@keyframes ripple { 0%{transform:scale(0);opacity:1}100%{transform:scale(4);opacity:0} }

.anim-fadeInUp { animation: fadeInUp 0.6s ease forwards; }
.anim-float { animation: float 6s ease-in-out infinite; }
.anim-glow { animation: glow-pulse 3s ease-in-out infinite; }
.anim-rotate { animation: rotate-slow 20s linear infinite; }
.anim-delay-1{animation-delay:.1s}.anim-delay-2{animation-delay:.2s}
.anim-delay-3{animation-delay:.3s}.anim-delay-4{animation-delay:.4s}

.reveal { opacity:0; transform:translateY(30px); transition:opacity .6s ease,transform .6s ease; }
.reveal.revealed { opacity:1; transform:translateY(0); }

.hover-lift { transition:transform var(--transition-spring),box-shadow var(--transition-base); }
.hover-lift:hover { transform:translateY(-6px); box-shadow:var(--shadow-card-hover); }

.text-shimmer {
    background:linear-gradient(90deg,var(--color-neon-primary),var(--color-neon-secondary),var(--color-neon-primary));
    background-size:200% auto;
    -webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;
    animation:shimmer 4s linear infinite;
}

.skeleton {
    background:linear-gradient(90deg,rgba(255,255,255,.03) 25%,rgba(255,255,255,.08) 50%,rgba(255,255,255,.03) 75%);
    background-size:400% 100%;animation:shimmer 1.5s ease-in-out infinite;border-radius:var(--radius-md);
}

@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation-duration:.01ms!important;transition-duration:.01ms!important}html{scroll-behavior:auto}}
