/* ============================================================
   ANIMATIONS.CSS — Keyframes y sistema de reveal con scroll
   ============================================================ */

/* ── Keyframes ── */
@keyframes fadeUp {
  from { opacity: 0; transform: translateY(40px); }
  to   { opacity: 1; transform: translateY(0); }
}

@keyframes fadeIn {
  from { opacity: 0; }
  to   { opacity: 1; }
}

@keyframes float {
  0%, 100% { transform: translateY(0px); }
  50%       { transform: translateY(-14px); }
}

@keyframes scanline {
  0%   { transform: translateX(-100%); }
  100% { transform: translateX(100vw); }
}

@keyframes pulse-glow {
  0%, 100% { box-shadow: 0 0 20px rgba(26, 143, 255, 0.3); }
  50%       { box-shadow: 0 0 50px rgba(26, 143, 255, 0.7), 0 0 100px rgba(26, 143, 255, 0.2); }
}

@keyframes border-run {
  0%   { background-position: 0% 0%; }
  100% { background-position: 300% 0%; }
}

@keyframes flow-down {
  0%   { opacity: 0; transform: translateY(-10px); }
  50%  { opacity: 1; }
  100% { opacity: 0; transform: translateY(30px); }
}

@keyframes count-up {
  from { opacity: 0; transform: translateY(10px); }
  to   { opacity: 1; transform: translateY(0); }
}

/* ── Sistema de reveal por scroll ── */
.reveal {
  opacity: 0;
  transform: translateY(40px);
  transition:
    opacity   0.8s cubic-bezier(0.4, 0, 0.2, 1),
    transform 0.8s cubic-bezier(0.4, 0, 0.2, 1);
}

.reveal.visible {
  opacity: 1;
  transform: translateY(0);
}

/* ── Delays escalonados ── */
.reveal-delay-1 { transition-delay: 0.12s; }
.reveal-delay-2 { transition-delay: 0.24s; }
.reveal-delay-3 { transition-delay: 0.36s; }
