/* Scroll reveal: elements fade in as you scroll (assets/js/reveal.js adds .is-in).
   Loaded last so its transition wins over the components above. */

.reveal { opacity: 0; transform: translateY(18px); transition: opacity 700ms var(--ease), transform 700ms var(--ease); }
.reveal.is-in { opacity: 1; transform: none; }
.hero-portrait.reveal { transform: none; transition: none; } /* the portrait appears without the slide-up */
@media (prefers-reduced-motion: reduce) { .reveal { opacity: 1; transform: none; } }
