Cinematic, video-led content section built as a plain, fully editable Etch tree: section > container > header (eyebrow, h2, intro) > Blocks wrapper > three "Drift Content Block" component instances, each a full-bleed letterboxed stage. Only the block is a component, with typed props: title, body, mediaType (image|video), image + imageAlt, videoSrc (optional — leave empty to keep the still image), ctaLabel + ctaUrl (empty URL hides the button) and reverseOrder (flips which side the media sits on, alternating layout only); duplicate, reorder or delete blocks in Layers. Section-level options are data attributes on the Blocks wrapper (edit them in Etch's attributes panel): data-layout (stacked|alternating|grid): stacked plays each frame full-width on its own cinematic stage (default), alternating pairs media and copy in rows that flip sides, grid arranges every block as an equal card; data-reveal (fade|slide|scale|none) entrance style used the first time each block scrolls into view; data-rhythm (compact|comfortable|spacious) vertical gap between blocks; per-block reverseOrder prop flips which side the media sits on for that one block (alternating layout only); per-block mediaType (image|video) — video autoplays muted, loops and is silent so it reads as ambient motion, not a player. Inline JS (IntersectionObserver, no external library) reveals each block with a staggered upward drift the first time it enters the viewport — respecting data-reveal and disabled entirely under prefers-reduced-motion — and, for video blocks, only starts playback once the block is in view and pauses it once it scrolls out, so autoplay never fights the page's scroll performance. Every stage carries a permanent vignette and thin letterbox bars (pure CSS gradients, no images) and the media scales gently on hover/focus for a subtle dolly-in feel. The grid and stacked layouts collapse to one column below their container breakpoints; alternating rows collapse to a single stacked column below 44em. :focus-visible rings, AA contrast (the section is dark by default but re-themeable to light), forced-colors support, and the section reads correctly with JavaScript disabled (blocks are visible immediately, video shows its poster frame).