Editorial index gallery built as a plain, fully editable Etch tree: section > container > eyebrow + running counter > a two-column wave — a left "Wave Item" list (odd entries) and a right "Wave Item" list (even entries), each row bowing inward toward the middle rows via a hand-tuned per-row offset — around a centred sticky media frame that crossfades to the hovered/focused row's photo. Ten "Wave Item" component instances share one type: label (string), photo (image), photoAlt (string). Section options are data attributes: data-theme (light|dark) section theme; data-wave (true|false) toggle the bowed vertical offset on each column (off = flush left/right columns); data-autoplay (true|false) auto-advance the active item on a timer when nothing is hovered/focused; data-delay (ms, default 2600) autoplay interval. Inline JS tracks the active row on pointerenter/focus (keyboard: rows are buttons, Tab moves through them and each swaps the frame immediately), updates the "n / total" counter and, when data-autoplay is true, cycles the active row on a timer that pauses on hover, focus and prefers-reduced-motion. :focus-visible rings, AA contrast in both themes, forced-colors support. Works without JS: every name and its number renders in the plain two-column list and the frame shows the first photo; only the live swap and autoplay need script.