/* ========================================
   VYRA INTERNET — Animations
   ======================================== */

/* ---------- Scroll Reveal ---------- */
.fade-up {
  opacity: 0;
  transform: translateY(32px);
  transition: opacity 0.65s ease, transform 0.65s ease;
}
.fade-up.visible {
  opacity: 1;
  transform: translateY(0);
}

/* Staggered delays for grid children */
.services-grid .service-card:nth-child(1) { transition-delay: 0.05s; }
.services-grid .service-card:nth-child(2) { transition-delay: 0.10s; }
.services-grid .service-card:nth-child(3) { transition-delay: 0.15s; }
.services-grid .service-card:nth-child(4) { transition-delay: 0.20s; }
.services-grid .service-card:nth-child(5) { transition-delay: 0.25s; }
.services-grid .service-card:nth-child(6) { transition-delay: 0.30s; }
.services-grid .service-card:nth-child(7) { transition-delay: 0.35s; }
.services-grid .service-card:nth-child(8) { transition-delay: 0.40s; }
.services-grid .service-card:nth-child(9) { transition-delay: 0.45s; }

.plans-grid .plan-card:nth-child(1) { transition-delay: 0.05s; }
.plans-grid .plan-card:nth-child(2) { transition-delay: 0.15s; }
.plans-grid .plan-card:nth-child(3) { transition-delay: 0.10s; }

.feature-list .feature-item:nth-child(1) { transition-delay: 0.05s; }
.feature-list .feature-item:nth-child(2) { transition-delay: 0.12s; }
.feature-list .feature-item:nth-child(3) { transition-delay: 0.19s; }
.feature-list .feature-item:nth-child(4) { transition-delay: 0.26s; }
.feature-list .feature-item:nth-child(5) { transition-delay: 0.33s; }

/* Hero content staggered */
.hero-badge.fade-up    { transition-delay: 0.10s; }
.hero-title.fade-up    { transition-delay: 0.22s; }
.hero-sub.fade-up      { transition-delay: 0.34s; }
.hero-ctas.fade-up     { transition-delay: 0.44s; }
.hero-trust.fade-up    { transition-delay: 0.54s; }
.hero-video-col.fade-up { transition-delay: 0.30s; }

/* ---------- Keyframes ---------- */

/* Hero grid scrolling */
@keyframes gridScroll {
  0%   { background-position: 0 0; }
  100% { background-position: 60px 60px; }
}

/* Play button pulse rings */
@keyframes pulseExpand {
  0%   { transform: scale(1);    opacity: 0.7; }
  100% { transform: scale(2.2);  opacity: 0; }
}

/* Offer banner shimmer */
@keyframes shimmer {
  0%   { transform: translateX(-100%); }
  100% { transform: translateX(100%); }
}

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

/* Glow pulse for CTA buttons */
@keyframes glowPulse {
  0%, 100% { box-shadow: 0 0 24px rgba(10,110,255,0.5), 0 0 60px rgba(10,110,255,0.2); }
  50%       { box-shadow: 0 0 36px rgba(10,110,255,0.7), 0 0 80px rgba(123,47,255,0.35); }
}
.btn-glow { animation: glowPulse 3s ease-in-out infinite; }
.btn-glow:hover { animation: none; }

/* Subtle character float on why section */
.char-glow-wrapper img { animation: charFloat 5s ease-in-out infinite; }

/* Spinner for form submit */
@keyframes spin {
  to { transform: rotate(360deg); }
}
.fa-spin-custom {
  display: inline-block;
  animation: spin 0.8s linear infinite;
}

/* Tagline character slide-in */
.tagline-character.fade-up {
  transition-delay: 0.2s;
}

/* Contact character fade */
.contact-character { overflow: hidden; border-radius: 16px; }
