Nonprofit impact-story carousel built as a plain, fully editable Etch tree: section > container > header (eyebrow, h2) > Swiper track > three "Story Card" component instances (photo, name/place heading, quote, attribution) > controls (dot pagination, pause/play, prev/next). Only the card is a component, with typed props image + alt, name, place, quote and attribution. Section options are data attributes on the slider wrapper: data-autoplay (true|false), data-delay (ms), data-arrows and data-pagination (true|false). Cards show 1 with a peek on phones and grow to 2 from a 42em container and 3 from 64em. Inline JS lazy-loads Swiper 11 (a11y + keyboard modules, rewind), pauses on hover/focus, and disables autoplay under prefers-reduced-motion; without JS it stays a native scroll-snap row.