/* ============================================================
   Scroll-reveal animation (shared across site)
   Mirrors the effect on about.html — elements fade in and
   slide up as they scroll into view.
   The .reveal class is added by assets/reveal.js at runtime,
   so if JS fails to load, content stays visible (no FOUC risk).
   ============================================================ */
.reveal {
  opacity: 0;
  transform: translateY(28px);
  transition: opacity 0.7s cubic-bezier(0.22, 1, 0.36, 1),
              transform 0.7s cubic-bezier(0.22, 1, 0.36, 1);
  will-change: opacity, transform;
}
.reveal.visible {
  opacity: 1;
  transform: translateY(0);
}

@media (prefers-reduced-motion: reduce) {
  .reveal {
    opacity: 1 !important;
    transform: none !important;
    transition: none !important;
  }
}
