---
// ScrollReveal — wraps content and fades/rises it into view on scroll.
// IntersectionObserver island; fully reduced-motion safe (content is shown
// immediately and statically when motion is reduced or JS is absent).
interface Props {
/** stagger delay in ms (for sequencing sibling reveals) */
delay?: number;
/** semantic element to render as (default: div) */
as?: keyof HTMLElementTagNameMap;
}
const { delay = 0, as = 'div' } = Astro.props;
const Tag = as as any;
---