/* ============================================================
   animation.css — Keyframes & Animation Utilities
   GEO Optimizer Bundle Deal
   ============================================================ */

/* ── Prefers-Reduced-Motion ────────────────────────────────── */
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after {
    animation-duration: 0.01ms !important;
    transition-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
  }
}

/* ── Glow Breathe ─────────────────────────────────────────── */
@keyframes glow-breathe-centered {
  0%,  100% { opacity: 0.6; transform: translateX(-50%) scale(1);   }
  50%        { opacity: 1;   transform: translateX(-50%) scale(1.1); }
}

@keyframes glow-breathe {
  0%,  100% { opacity: 0.5; transform: scale(1);    }
  50%        { opacity: 0.9; transform: scale(1.12); }
}

.hero__glow-1 { animation: glow-breathe-centered 5s ease-in-out infinite; }
.hero__glow-2 { animation: glow-breathe 7s ease-in-out infinite; }

/* ── Hero grid drift ──────────────────────────────────────── */
@keyframes grid-drift {
  0%   { transform: translate(0, 0); }
  100% { transform: translate(48px, 48px); }
}

@media (prefers-reduced-motion: reduce) {
  .hero::before { animation: none; }
}

/* ── Urgency pulse ────────────────────────────────────────── */
@keyframes urgency-pulse {
  0%,  100% { opacity: 0.7; }
  50%        { opacity: 1;   }
}

.urgency-note {
  animation: urgency-pulse 2.5s ease-in-out infinite;
}

/* ── GSAP will-change hints ───────────────────────────────── */
.js-fade-up,
.js-fade-in,
.js-slide-left {
  will-change: transform, opacity;
}
