.reveal-word {
  display: inline-block;
  opacity: 0;
  transform: translateY(20px);
  transition: opacity .4s ease, transform .4s ease;
}

.reveal-word.is-visible {
  opacity: 1;
  transform: translateY(0);
}
[class^="reveal-"] {
  opacity: 0;
  transition: all 0.9s cubic-bezier(0.25, 1, 0.5, 1);
  will-change: transform, opacity, filter;
}

/* 1–5 */
.reveal-up { transform: translateY(50px); }
.reveal-down { transform: translateY(-50px); }
.reveal-left { transform: translateX(-60px); }
.reveal-right { transform: translateX(60px); }
.reveal-diagonal { transform: translate(60px, 60px); }

/* 6–10 */
.reveal-scale { transform: scale(0.85); }
.reveal-zoom-in { transform: scale(0.7); }
.reveal-zoom-out { transform: scale(1.2); }
.reveal-pop { transform: scale(0.6); }
.reveal-blur { filter: blur(12px); }

/* 11–15 */
.reveal-rotate { transform: rotate(15deg) scale(1); }
.reveal-flip-x { transform: rotateX(90deg); }
.reveal-flip-y { transform: rotateY(90deg); }
.reveal-tilt { transform: rotate(-6deg) translateY(30px); }
.reveal-swing { transform: rotate(12deg); transform-origin: top; }

/* 16–20 */
.reveal-fade { opacity: 0; }
.reveal-skew { transform: skewY(6deg) translateY(40px); }
.reveal-rise-soft { transform: translateY(30px) scale(0.95); }
.reveal-drop { transform: translateY(-80px); }
.reveal-glide { transform: translateX(-120px); }

/* Active */
.reveal-show {
  opacity: 1;
  transform: none;
  filter: blur(0);
}