/* ═══════════════════════════════════════════════════════════
   AVANTE — Keyframe Animations
   ═══════════════════════════════════════════════════════════ */

/* ── Fade Animations ── */
@keyframes fadeIn {
  from { opacity: 0; }
  to   { opacity: 1; }
}

@keyframes fadeInUp {
  from { opacity: 0; transform: translateY(30px); }
  to   { opacity: 1; transform: translateY(0); }
}

@keyframes fadeInDown {
  from { opacity: 0; transform: translateY(-20px); }
  to   { opacity: 1; transform: translateY(0); }
}

@keyframes fadeInLeft {
  from { opacity: 0; transform: translateX(-30px); }
  to   { opacity: 1; transform: translateX(0); }
}

@keyframes fadeInRight {
  from { opacity: 0; transform: translateX(30px); }
  to   { opacity: 1; transform: translateX(0); }
}

/* ── Scale ── */
@keyframes scaleIn {
  from { opacity: 0; transform: scale(0.9); }
  to   { opacity: 1; transform: scale(1); }
}

/* ── Glow ── */
@keyframes glowPulse {
  0%, 100% {
    box-shadow: 0 0 20px rgba(30, 144, 255, 0.1),
                0 0 40px rgba(30, 144, 255, 0.05);
  }
  50% {
    box-shadow: 0 0 30px rgba(30, 144, 255, 0.2),
                0 0 60px rgba(30, 144, 255, 0.1);
  }
}

@keyframes textGlow {
  0%, 100% {
    text-shadow: 0 0 20px rgba(30, 144, 255, 0.3);
  }
  50% {
    text-shadow: 0 0 40px rgba(30, 144, 255, 0.5),
                 0 0 60px rgba(30, 144, 255, 0.2);
  }
}

/* ── Float ── */
@keyframes float {
  0%, 100% { transform: translateY(0); }
  50%      { transform: translateY(-10px); }
}

@keyframes floatSlow {
  0%, 100% { transform: translateY(0) rotate(0deg); }
  50%      { transform: translateY(-15px) rotate(2deg); }
}

/* ── Shimmer ── */
@keyframes shimmer {
  0%   { background-position: -200% center; }
  100% { background-position: 200% center; }
}

/* ── Rotate ── */
@keyframes spin {
  from { transform: rotate(0deg); }
  to   { transform: rotate(360deg); }
}

@keyframes spinSlow {
  from { transform: rotate(0deg); }
  to   { transform: rotate(360deg); }
}

/* ── Border Gradient ── */
@keyframes borderGlow {
  0%, 100% { border-color: rgba(30, 144, 255, 0.1); }
  50%      { border-color: rgba(30, 144, 255, 0.3); }
}

/* ── Grid Background ── */
@keyframes gridMove {
  0%   { transform: translateY(0); }
  100% { transform: translateY(40px); }
}

/* ── Utility Classes ── */
.anim-fade-in       { animation: fadeIn 0.6s var(--ease-out) forwards; }
.anim-fade-in-up    { animation: fadeInUp 0.6s var(--ease-out) forwards; }
.anim-fade-in-down  { animation: fadeInDown 0.6s var(--ease-out) forwards; }
.anim-fade-in-left  { animation: fadeInLeft 0.6s var(--ease-out) forwards; }
.anim-fade-in-right { animation: fadeInRight 0.6s var(--ease-out) forwards; }
.anim-scale-in      { animation: scaleIn 0.6s var(--ease-out) forwards; }
.anim-float         { animation: float 6s ease-in-out infinite; }
.anim-float-slow    { animation: floatSlow 8s ease-in-out infinite; }
.anim-glow-pulse    { animation: glowPulse 3s ease-in-out infinite; }
.anim-spin-slow     { animation: spinSlow 20s linear infinite; }

/* Stagger Delays */
.stagger-1  { animation-delay: 0.05s; }
.stagger-2  { animation-delay: 0.1s; }
.stagger-3  { animation-delay: 0.15s; }
.stagger-4  { animation-delay: 0.2s; }
.stagger-5  { animation-delay: 0.25s; }
.stagger-6  { animation-delay: 0.3s; }
.stagger-7  { animation-delay: 0.35s; }
.stagger-8  { animation-delay: 0.4s; }
.stagger-9  { animation-delay: 0.45s; }
.stagger-10 { animation-delay: 0.5s; }
