/* Reveal. A short staggered rise as listing cards scroll into view: the
   Members grid, the News cards and the Programs tiles carry u-reveal from
   their shortcodes, assets/js/reveal.js adds u-reveal--in in view
   (inc/reveal.php gates both). Everything is keyed on html.u-js, so without JavaScript nothing
   here applies and the cards simply show. Asked for by the client on
   27 August 2026. All rules under .u-reveal. Tokens only. */

.u-reveal {
  --u-reveal-i: 0;
}

.u-js .u-reveal:not(.u-reveal--in) {
  opacity: 0;
  transform: translateY(14px);
}

.u-js .u-reveal--in {
  opacity: 1;
  transform: none;
  transition:
    opacity 600ms var(--u-ease) calc(var(--u-reveal-i) * 45ms),
    transform 600ms var(--u-ease) calc(var(--u-reveal-i) * 45ms);
}

/* Anyone who has asked their OS to calm down gets the finished grid. */
@media (prefers-reduced-motion: reduce) {
  .u-js .u-reveal,
  .u-js .u-reveal:not(.u-reveal--in) {
    opacity: 1;
    transform: none;
    transition: none;
  }
}
