Plain editable Etch tree (eyebrow, h2, intro) holding a row of "Reveal Step" component instances (typed props: number, title, description, image, imageAlt, defaultActive). Each step is a native `<label>` around a visually-hidden radio input sharing one group name, so the whole widen/reveal interaction — one step expanded with its number, title, description and photo, the rest collapsed to a bare number — works with CSS `:has()` and zero JavaScript. Options on the Row (edit in Etch's attributes panel): data-trigger (click|hover) click = tap/click a step to expand it (native radio group, works with zero JS); hover = also expands on pointer hover / keyboard focus; data-autoplay (true|false) cycles the active step on a timer, paused on any pointer or keyboard interaction and under prefers-reduced-motion; data-interval (ms between autoplay steps, min 1800); data-image-position (bottom|top) where the photo sits inside the expanded step; data-radius (s|m|l|xl) corner radius from ACSS radius tokens. An inline script only adds the optional autoplay: it toggles the radios on a timer, stops on the first pointer, touch or keyboard interaction with the row, and never starts under prefers-reduced-motion. The radio group gives free keyboard support (Tab to the row, arrow keys to move between steps); :focus-visible rings, AA contrast on the collapsed number badge and the expanded panel, and a container-query collapse to a stacked column on narrow screens.