/* ═══════════════════════════════════════
   ANIMATIONS — reveal + word-reveal keyframes
   Consumed by reveal.js (class toggles)
═══════════════════════════════════════ */
.word-reveal .word {
  display: inline-block;
  opacity: 0; transform: translateY(14px);
  transition: opacity 0.5s var(--ease-out), transform 0.5s var(--ease-out);
}
.word-reveal.fired .word { opacity: 1; transform: none; }

.from-left, .from-right, .scale-up {
  opacity: 0; transition: opacity 0.7s var(--ease-out), transform 0.7s var(--ease-out);
}
.from-left  { transform: translateX(-32px); }
.from-right { transform: translateX(32px); }
.scale-up   { transform: scale(0.96); }
.from-left.in, .from-right.in, .scale-up.in { opacity: 1; transform: none; }

@media (prefers-reduced-motion: reduce) {
  .word-reveal .word, .from-left, .from-right, .scale-up {
    transition: none !important; opacity: 1 !important; transform: none !important;
  }
}
