/* ============================================================
   ACNET — animations.css
   Keyframes, scroll-reveal, hover micro-interactions
   ============================================================ */

/* ---------- Scroll reveal ---------- */
.reveal {
  opacity: 0;
  transform: translateY(28px);
  transition: opacity 0.7s cubic-bezier(.2,.7,.3,1), transform 0.7s cubic-bezier(.2,.7,.3,1);
  will-change: opacity, transform;
}
.reveal.is-visible { opacity: 1; transform: translateY(0); }

.plans-grid .plan-card.reveal:nth-child(2) { transition-delay: 0.08s; }
.plans-grid .plan-card.reveal:nth-child(3) { transition-delay: 0.16s; }
.entret-grid .entret-card.reveal:nth-child(2) { transition-delay: 0.06s; }
.entret-grid .entret-card.reveal:nth-child(3) { transition-delay: 0.12s; }
.entret-grid .entret-card.reveal:nth-child(4) { transition-delay: 0.18s; }
.precisa-grid .precisa-card.reveal:nth-child(2) { transition-delay: 0.06s; }
.precisa-grid .precisa-card.reveal:nth-child(3) { transition-delay: 0.12s; }
.precisa-grid .precisa-card.reveal:nth-child(4) { transition-delay: 0.18s; }
.ajuda-grid .ajuda-card.reveal:nth-child(2) { transition-delay: 0.06s; }
.ajuda-grid .ajuda-card.reveal:nth-child(3) { transition-delay: 0.12s; }
.ajuda-grid .ajuda-card.reveal:nth-child(4) { transition-delay: 0.18s; }
.porque-grid .porque-card.reveal:nth-child(2) { transition-delay: 0.05s; }
.porque-grid .porque-card.reveal:nth-child(3) { transition-delay: 0.1s; }
.porque-grid .porque-card.reveal:nth-child(4) { transition-delay: 0.15s; }
.porque-grid .porque-card.reveal:nth-child(5) { transition-delay: 0.2s; }

/* ---------- Hero fiber lines ---------- */
@keyframes dashFlow {
  to { stroke-dashoffset: -240; }
}
.fiber-line { animation: dashFlow 9s linear infinite; }
.fiber-line.line-b { animation-duration: 12s; animation-direction: reverse; }
.fiber-line.line-c { animation-duration: 16s; }

@keyframes nodePulse {
  0%, 100% { opacity: 0.55; r: 4.5; }
  50% { opacity: 1; r: 6; }
}
.fiber-nodes circle { animation: nodePulse 3.4s ease-in-out infinite; }
.fiber-nodes circle:nth-child(2) { animation-delay: 0.5s; }
.fiber-nodes circle:nth-child(3) { animation-delay: 1s; }
.fiber-nodes circle:nth-child(4) { animation-delay: 1.5s; }
.fiber-nodes circle:nth-child(5) { animation-delay: 2s; }

@keyframes floatParticle {
  0% { transform: translateY(0) translateX(0); opacity: 0; }
  10% { opacity: 0.6; }
  90% { opacity: 0.4; }
  100% { transform: translateY(-140px) translateX(20px); opacity: 0; }
}
.hero-particles span { animation: floatParticle linear infinite; }

/* ---------- Hero orbit ---------- */
@keyframes orbitSpin { to { transform: rotate(360deg); } }
.ring-1 { animation: orbitSpin 26s linear infinite; }
.ring-2 { animation: orbitSpin 40s linear infinite reverse; }

@keyframes coreGlow {
  0%, 100% { box-shadow: 0 0 0 1px rgba(255,255,255,0.15), 0 30px 70px -20px rgba(214,36,159,0.55); }
  50% { box-shadow: 0 0 0 1px rgba(255,255,255,0.2), 0 30px 90px -14px rgba(214,36,159,0.75); }
}
.speed-core { animation: coreGlow 4s ease-in-out infinite; }

@keyframes chipFloat { 0%, 100% { transform: translateY(0); } 50% { transform: translateY(-8px); } }
.orbit-chip { animation: chipFloat 5s ease-in-out infinite; }
.chip-2 { animation-delay: 1s; }
.chip-3 { animation-delay: 2s; }

@keyframes scrollCue { 0%, 100% { opacity: 0.4; transform: translateY(0); } 50% { opacity: 1; transform: translateY(6px); } }
.scroll-cue span { animation: scrollCue 1.8s ease-in-out infinite; }

/* ---------- Fibra flow ---------- */
@keyframes flowPulseMove {
  0% { top: -20px; opacity: 0; }
  15% { opacity: 1; }
  85% { opacity: 1; }
  100% { top: 100%; opacity: 0; }
}
.flow-pulse { animation: flowPulseMove 2.6s ease-in-out infinite; }
.fibra-flow .flow-line:nth-of-type(2) .flow-pulse { animation-delay: 0.6s; }
.fibra-flow .flow-line:nth-of-type(3) .flow-pulse { animation-delay: 1.2s; }

@keyframes dotPulse {
  0%, 100% { box-shadow: 0 0 0 5px rgba(214,36,159,0.15); }
  50% { box-shadow: 0 0 0 9px rgba(214,36,159,0.05); }
}
.flow-dot { animation: dotPulse 2.6s ease-in-out infinite; }

/* ---------- Header ---------- */
.site-header { will-change: background; }

/* ---------- WhatsApp float ---------- */
@keyframes floatPop {
  0% { transform: scale(0.6); opacity: 0; }
  100% { transform: scale(1); opacity: 1; }
}
.whatsapp-float { animation: floatPop 0.5s ease 1.2s backwards; }

/* ---------- Reduced motion ---------- */
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after {
    animation-duration: 0.001ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.001ms !important;
    scroll-behavior: auto !important;
  }
  .reveal { opacity: 1; transform: none; }
  .hero-particles { display: none; }
}
