/* Scroll reveal.
   The hidden state only exists when JS is running (html.js) and motion is allowed,
   so without JS or with reduced motion everything is visible immediately. */
@media (prefers-reduced-motion: no-preference) {
  .js [data-reveal]:not([data-reveal="brush"]) {
    opacity: 0;
    transform: translateY(12px);
    transition:
      opacity 0.6s ease,
      transform 0.6s cubic-bezier(0.2, 0.6, 0.2, 1);
  }

  .js [data-reveal]:not([data-reveal="brush"]).is-revealed {
    opacity: 1;
    transform: none;
  }

  /* Stagger steps: data-reveal-delay="1" | "2" | "3" */
  .js [data-reveal-delay="1"] { transition-delay: 80ms; }
  .js [data-reveal-delay="2"] { transition-delay: 160ms; }
  .js [data-reveal-delay="3"] { transition-delay: 240ms; }
}

@media print {
  .js [data-reveal] {
    opacity: 1 !important;
    transform: none !important;
  }
}
