/* Generic scroll-reveal fade-in-up (extracted from conservatory.css — the same
   effect, brand-neutral). Loaded per-app via site.Config.ExtraStylesheets.

   Hidden ONLY when JS has announced itself (html.js-reveal) AND motion is
   allowed; no-JS, reduced-motion, and print all see everything. Layers on top
   of base.css's global prefers-reduced-motion clamp. */
@media (prefers-reduced-motion: no-preference) {
  .js-reveal [data-reveal] {
    opacity: 0;
    transform: translateY(26px);
    transition:
      opacity 0.8s cubic-bezier(0.22, 0.7, 0.2, 1),
      transform 0.8s cubic-bezier(0.22, 0.7, 0.2, 1);
  }
  .js-reveal [data-reveal].is-visible {
    opacity: 1;
    transform: none;
  }
}

/* Print backstop — [data-reveal] is a new attribute selector the shared
   print.css does not cover (it is selector-name-coupled). Pairs with the
   reveal.js beforeprint hook so nothing ever prints half-faded. */
@media print {
  [data-reveal] {
    opacity: 1 !important;
    transform: none !important;
    transition: none !important;
  }
}
