/**
 * ArMad child theme — scroll reveal.
 * Pure CSS states toggled by assets/js/reveal.js (IntersectionObserver).
 * The initial hidden state applies ONLY when JS has added html.armad-reveal,
 * so without JS — or if the script fails — all content stays fully visible.
 */

/* Pattern A — fade + rise from below (section headings) */
html.armad-reveal .reveal {
  opacity: 0;
  transform: translateY(24px);
  transition: opacity 1.05s cubic-bezier(0.16, 1, 0.3, 1),
              transform 1.05s cubic-bezier(0.16, 1, 0.3, 1);
  will-change: opacity, transform;
}

/* Pattern B — fade + gentle slide from a side (paired blocks) */
html.armad-reveal .reveal.reveal-left  { transform: translateX(-30px); }
html.armad-reveal .reveal.reveal-right { transform: translateX(30px); }

html.armad-reveal .reveal.is-visible {
  opacity: 1;
  transform: none;
}

/* Pattern C — stagger: direct children appear one after another */
html.armad-reveal .reveal-stagger > * {
  opacity: 0;
  transform: translateY(22px);
  transition: opacity 1.05s cubic-bezier(0.16, 1, 0.3, 1),
              transform 1.05s cubic-bezier(0.16, 1, 0.3, 1);
  will-change: opacity, transform;
}
html.armad-reveal .reveal-stagger > *.is-visible {
  opacity: 1;
  transform: none;
}

/* Accessibility — show instantly when reduced motion is requested */
@media (prefers-reduced-motion: reduce) {
  html.armad-reveal .reveal,
  html.armad-reveal .reveal-stagger > * {
    opacity: 1 !important;
    transform: none !important;
    transition: none !important;
  }
}
