/*
 * WD Heading Reveal — heading-reveal.css
 * Scroll-triggered line-by-line reveal animation.
 * Apply class "reveal-heading" to any heading block to activate.
 */

/* --- Line wrapper: clips the sliding text --- */
.reveal-heading .rh-line-wrap {
  display: block;
  overflow: hidden;
  /* Small padding so descenders aren't clipped */
  padding-bottom: 0.08em;
  margin-bottom: -0.08em;
}

/* --- The inner span that slides up --- */
.reveal-heading .rh-line-inner {
  display: block;
  transform: translateY(115%);
  transition:
    transform 0.75s cubic-bezier(0.16, 1, 0.3, 1);
  will-change: transform;
}

/* --- Staggered delay per line (supports up to 8 lines) --- */
.reveal-heading .rh-line-inner:nth-child(1) { transition-delay: 0.00s; }
.reveal-heading .rh-line-inner:nth-child(2) { transition-delay: 0.08s; }
.reveal-heading .rh-line-inner:nth-child(3) { transition-delay: 0.16s; }
.reveal-heading .rh-line-inner:nth-child(4) { transition-delay: 0.24s; }
.reveal-heading .rh-line-inner:nth-child(5) { transition-delay: 0.32s; }
.reveal-heading .rh-line-inner:nth-child(6) { transition-delay: 0.40s; }
.reveal-heading .rh-line-inner:nth-child(7) { transition-delay: 0.48s; }
.reveal-heading .rh-line-inner:nth-child(8) { transition-delay: 0.56s; }

/* --- Visible state: slide up into place --- */
.reveal-heading.rh-visible .rh-line-inner {
  transform: translateY(0);
}

/* --- Accessibility: honour reduced-motion preference --- */
@media (prefers-reduced-motion: reduce) {
  .reveal-heading .rh-line-inner {
    transform: none !important;
    transition: none !important;
  }
}
