/* ============================================================
   SCADION — animations.css
   Transitions · Reveal on scroll · Micro-interacciones
   ============================================================ */

/* ---------- Reveal on scroll ---------- */
.reveal {
  opacity: 0;
  transform: translateY(24px);
  transition: opacity 600ms cubic-bezier(.2,.7,.2,1), transform 600ms cubic-bezier(.2,.7,.2,1);
  will-change: opacity, transform;
}
.reveal.is-visible {
  opacity: 1;
  transform: translateY(0);
}
.reveal[data-delay="100"] { transition-delay: 100ms; }
.reveal[data-delay="200"] { transition-delay: 200ms; }
.reveal[data-delay="300"] { transition-delay: 300ms; }
.reveal[data-delay="400"] { transition-delay: 400ms; }
.reveal[data-delay="500"] { transition-delay: 500ms; }

/* ---------- Hero pulse cyan ---------- */
@keyframes pulse-cyan {
  0%,100% { box-shadow: 0 0 0 0 rgba(14,165,233,.45); }
  50%     { box-shadow: 0 0 0 12px rgba(14,165,233,0); }
}
.pulse-cyan { animation: pulse-cyan 2.4s ease-out infinite; }

/* Live blink */
@keyframes live-blink {
  0%, 100% { opacity: 1; }
  50%      { opacity: .35; }
}
.live-dot { animation: live-blink 1.6s ease-in-out infinite; }

/* ---------- Hover logo subtle ---------- */
.nav__brand svg { transition: transform var(--t); }
.nav__brand:hover svg { transform: rotate(15deg); }

/* ---------- Counters fade-in ---------- */
.stat__num { transition: opacity 600ms ease; }

/* ---------- Drawer slide ---------- */
.nav__drawer {
  transform: translateY(-8px);
  opacity: 0;
  transition: transform var(--t), opacity var(--t);
}
.nav__drawer.is-open {
  transform: translateY(0);
  opacity: 1;
}

/* ---------- Logo pulse ring ---------- */
.logo-ring {
  animation: ring-rotate 18s linear infinite;
  transform-origin: center;
}
@keyframes ring-rotate {
  from { transform: rotate(0deg); }
  to   { transform: rotate(360deg); }
}

/* ---------- Respect prefers-reduced-motion ---------- */
@media (prefers-reduced-motion: reduce) {
  *, *::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; }
}
