/* ═══════════════════════════════════════
   VLADFX ANIMATIONS — Reveals, typing, keyframes
   ═══════════════════════════════════════ */

/* ── Scroll-triggered fade-in reveals ── */
.fade-in{
  opacity:0;
  transform:translateY(30px) scale(0.97);
  transition:opacity .7s var(--ease-out-expo),
             transform .7s var(--ease-out-expo);
}
.fade-in.visible{opacity:1;transform:translateY(0) scale(1)}

/* ── Staggered delays ── */
.fade-in:nth-child(2){transition-delay:.1s}
.fade-in:nth-child(3){transition-delay:.2s}
.fade-in:nth-child(4){transition-delay:.3s}
.fade-in:nth-child(5){transition-delay:.35s}
.fade-in:nth-child(6){transition-delay:.4s}

/* ── Hero tag pulse dot ── */
@keyframes pulse-dot{
  0%,100%{opacity:1;box-shadow:0 0 8px var(--brand)}
  50%{opacity:.4;box-shadow:0 0 2px var(--brand)}
}

/* ── Hero gradient shift ── */
@keyframes gradShift{
  0%,100%{background-position:0% 50%}
  50%{background-position:100% 50%}
}

/* ── Scroll hint bounce ── */
@keyframes bounce{
  0%,100%{transform:translateX(-50%) translateY(0)}
  50%{transform:translateX(-50%) translateY(10px)}
}

/* ── Typing effect handled by DOM insertion in scramble.js ── */