Vertical spotlight gallery built as a plain, fully editable Etch tree: section > container > header (eyebrow, h2) > stage (left word, portrait frame, right word) > vertical Swiper track > six "Spotlight Frame" component instances > counter + prev/next controls, plus a native <dialog> lightbox. Only the frame is a component, with typed props: photo (image), photoAlt, title (its first word and the rest are written into the flanking left/right labels by the script), category, badge (count label, e.g. "+06", empty hides it); duplicate, reorder or delete frames in Layers. Every gallery option is a data attribute on the Gallery element (edit it in Etch's attributes panel): data-theme (light|dark) re-themes the whole section; data-peek (true|false) show the previous/next card peeking above and below the spotlight; data-backdrop (true|false) blurred, colour-matched backdrop behind the stage that crossfades per slide; data-autoplay (true|false), data-delay (ms, min 2000); data-loop (true|false); data-drag (true|false; pointer drag + touch swipe) and data-wheel (true|false; mouse wheel steps through slides); data-lightbox (true|false) click a card to open it full-screen with prev/next, keyboard and swipe; data-radius (none|s|m|l|xl) card corner radius. Inlined JS waits for a global Swiper 11 (injects the jsDelivr build once if nothing provides it), drives a vertical, mousewheel- and drag-enabled track, crossfades a blurred backdrop layer to the active photo, rewrites the flanking split-word labels and the 01/06 counter on every change, and opens/closes the lightbox with prev/next, Escape, backdrop click, arrow keys and touch swipe, returning focus to the trigger on close. Without JS the track is a native scroll-snap column with the controls hidden. Labelled region, per-frame group labels, live region announcements, :focus-visible rings, AA contrast in both themes, forced-colors support, prefers-reduced-motion guards.