/* ==========================================================================
   Scroll-reveal initial state.
   Applied only while the Motion engine is live (html.reveal-on, added by
   scripts/reveal.js). If Motion is absent, fails to load, or reduced-motion is
   on, the class is never added / is removed, so content stays fully visible.
   Only opacity is hidden here; the 16px lift is supplied by Motion keyframes,
   so layout never shifts and there is no flash of offset content.
   ========================================================================== */
.reveal-on [data-reveal],
.reveal-on [data-reveal-item] {
  opacity: 0;
}

/* Belt-and-braces: never hide content for reduced-motion users. */
@media (prefers-reduced-motion: reduce) {
  .reveal-on [data-reveal],
  .reveal-on [data-reveal-item] {
    opacity: 1;
  }
}
