/**
 * QMT Reveal Animations
 *
 * GPU-friendly entrance animations triggered by IntersectionObserver.
 * Only hidden (opacity: 0) when <html> has class "qmt-reveal-ready".
 * No-JS and reduced-motion users see content normally.
 *
 * Revealed state is a smooth transition from hidden to visible,
 * not a keyframe animation that plays on load.
 */

html.qmt-reveal-ready [data-qmt-reveal] {
  opacity: 0;
  transform: translateY(20px);
  transition: opacity 0.6s var(--qmt-ease), transform 0.6s var(--qmt-ease);
}

/* Fade: opacity only, no transform */
html.qmt-reveal-ready [data-qmt-reveal="fade"] {
  transform: none;
}

/* Left: slide from left */
html.qmt-reveal-ready [data-qmt-reveal="left"] {
  transform: translateX(-20px);
}

/* Right: slide from right */
html.qmt-reveal-ready [data-qmt-reveal="right"] {
  transform: translateX(20px);
}

/* Scale: grow from 95% */
html.qmt-reveal-ready [data-qmt-reveal="scale"] {
  transform: scale(0.95);
}

/* Revealed state: fully visible and at final transform */
html.qmt-reveal-ready [data-qmt-reveal].is-revealed {
  opacity: 1;
  transform: none;
}

/* Delay modifiers (80ms steps, 1-6) */
html.qmt-reveal-ready [data-qmt-reveal-delay="1"] {
  transition-delay: 0.08s;
}
html.qmt-reveal-ready [data-qmt-reveal-delay="2"] {
  transition-delay: 0.16s;
}
html.qmt-reveal-ready [data-qmt-reveal-delay="3"] {
  transition-delay: 0.24s;
}
html.qmt-reveal-ready [data-qmt-reveal-delay="4"] {
  transition-delay: 0.32s;
}
html.qmt-reveal-ready [data-qmt-reveal-delay="5"] {
  transition-delay: 0.40s;
}
html.qmt-reveal-ready [data-qmt-reveal-delay="6"] {
  transition-delay: 0.48s;
}

/* Respect prefers-reduced-motion */
@media (prefers-reduced-motion: reduce) {
  html.qmt-reveal-ready [data-qmt-reveal] {
    opacity: 1;
    transform: none;
    transition: none;
  }
}

/* Printing never waits for scroll: show everything. */
@media print {
  html.qmt-reveal-ready [data-qmt-reveal] {
    opacity: 1 !important;
    transform: none !important;
    transition: none !important;
  }
}
