/* ══════════════════════════════════════════
   Rekastok — animations.css
   ══════════════════════════════════════════ */

/* ── Reveal ── */
.reveal-up,
.reveal-left,
.reveal-right,
.reveal-scale {
  opacity: 0;
  transition: opacity 0.65s var(--ease-out), transform 0.65s var(--ease-out);
}

.reveal-up    { transform: translateY(32px); }
.reveal-left  { transform: translateX(-32px); }
.reveal-right { transform: translateX(32px); }
.reveal-scale { transform: scale(0.92); }

.revealed {
  opacity: 1;
  transform: none;
}

/* Delay helpers */
.delay-1 { transition-delay: 0.10s; }
.delay-2 { transition-delay: 0.20s; }
.delay-3 { transition-delay: 0.30s; }
.delay-4 { transition-delay: 0.40s; }
.delay-5 { transition-delay: 0.50s; }

/* ── Keyframes ── */
@keyframes ticker {
  from { transform: translateX(0); }
  to   { transform: translateX(-50%); }
}

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

@keyframes waPulse {
  0%   { box-shadow: 0 0 0 0 rgba(34,197,94,0.50); }
  70%  { box-shadow: 0 0 0 14px rgba(34,197,94,0); }
  100% { box-shadow: 0 0 0 0 rgba(34,197,94,0); }
}

@keyframes spinDot {
  0%   { transform: rotate(0deg); }
  100% { transform: rotate(360deg); }
}

/* Network pulse dots */
.pulse-dot {
  animation: pulseDot 2s ease-in-out infinite;
}

.pulse-dot-2 {
  animation: pulseDot 2s ease-in-out infinite 1s;
}

@keyframes pulseDot {
  0%, 100% { opacity: 1; r: 5; }
  50%       { opacity: 0.3; r: 3; }
}
