/* ============================================================================
   Shining Awards — scroll reveal
   Paired with assets/js/reveal.js. The hiding rule is gated on `html.sa-js`
   (added by the script only when motion is allowed), so without JS or with
   reduced motion everything is visible by default — no flash, no CLS.
   ============================================================================ */

html.sa-js .sa-reveal {
	opacity: 0;
	transform: translateY(18px);
	transition: opacity .6s ease, transform .6s cubic-bezier(.4, 0, .2, 1);
	will-change: opacity, transform;
}
html.sa-js .sa-reveal.is-in {
	opacity: 1;
	transform: none;
}
/* Once revealed, drop the compositor hint so idle cards don't hold a layer. */
html.sa-js .sa-reveal.is-in { will-change: auto; }

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