/* =============================================================================
   Scroll-in entrance: fade up — for any element marked data-reveal="fade-up".

   assets/js/reveal.js adds .is-visible to every [data-reveal] the first time it
   enters the viewport (and the `js` / `reduced-motion` classes to <html>); this
   is the generic timing. Pages with a designed choreography — the home cards
   and team collage, the Careers timeline and photos — keep their own rules in
   their page CSS and mark elements with a bare data-reveal, which this never
   touches.

   Nothing is hidden without JS or under reduced motion: the hidden state is
   gated on html.js:not(.reduced-motion), and reveal.js stands down in both.

   Used by /services/ (method cards), /our-work/ (case cards, quotes), /about-us/
   (case cards) and /labs/ (product list). To add it to a page: this file in
   `stylesheets:`, reveal.js in `scripts:`, data-reveal="fade-up" on the element.
   ========================================================================== */

html.js:not(.reduced-motion) [data-reveal="fade-up"] {
	opacity: 0;
	transform: translateY(24px);
}

html.js:not(.reduced-motion) [data-reveal="fade-up"].is-visible {
	opacity: 1;
	transform: none;
	transition:
		opacity 0.6s ease-out,
		transform 0.6s ease-out;
}
