Social-post feed carousel built as a plain, fully editable Etch tree: section > container > header (eyebrow, h2, intro) > carousel wrapper > Swiper track > six "Feed Post" component instances > controls (pagination, pause/play, scrollbar, prev/next) + a native <dialog> lightbox shared by the whole slider. Only the post card is a component, with typed props: avatar (image), avatarAlt, handle, subtitle, photo (image), photoAlt, caption, likes (number), commentsCount (number), timeAgo. Every carousel option is a data attribute on the Carousel element (edit it in Etch's attributes panel): data-theme (light|dark) re-themes the whole section; data-per-view-mobile / data-per-view-tablet / data-per-view-desktop (decimals give a peek, defaults 1.15 / 2.3 / 3.4); data-gap (px between cards, default 20); data-autoplay (true|false), data-delay (ms, min 2500), data-speed (transition ms, default 600); data-loop (true|false) and data-pause-on-hover (true|false); data-drag (true|false); data-lightbox (true|false; click-to-enlarge photo viewer); data-arrows (true|false) and data-arrows-position (sides|top|bottom); data-arrows-style (circle|square|pill|minimal); data-pagination (dots|fraction|none) and data-pagination-position (bottom-center|bottom-start|bottom-end|overlay-bottom-end); data-controls-layout (split|grouped); data-scrollbar (true|false; Swiper draggable progress scrollbar); data-autoplay-button (true|false); data-arrows-mobile (true|false; hide arrows below the tablet breakpoint, swipe still works). Each card has a header (avatar, handle, subtitle), a square photo (click or Enter/Space opens the shared lightbox when data-lightbox is "true"), an action row (like toggle with a filled-heart micro-bounce and live count, comment, share, save — all keyboard reachable), a likes line, a bold-handle caption clamped to two lines, a comments link and a relative timestamp. The lightbox reproduces the same photo full-size with its caption, a live "n / total" counter, prev/next buttons, Escape and swipe-to-dismiss on touch, and returns focus to the card that opened it. Inlined JS (no external UI library beyond Swiper 11, injected once from jsDelivr if nothing else provides it) drives the carousel, the like toggle's aria-pressed + count, the lightbox open/prev/next/close and keyboard arrows, and pauses autoplay on hover/focus and always under prefers-reduced-motion. Without JS the track is a native scroll-snap row, the like buttons still toggle (native :checked-free JS-free fallback is not required since likes are decorative), and the lightbox trigger is a plain link-less button that stays inert. Labelled region, per-card group labels, :focus-visible rings, AA contrast in both themes, forced-colors support.