Testimonial carousel built as a plain, fully editable Etch tree: section > container > header (eyebrow, h2, intro) > stage (five "Quote Card" component instances fanned in 3D behind the active one) > controls (pagination, pause/play, scrollbar, prev/next). Only the card is a component, with typed props: avatar (image), avatarAlt, name, role, quote, rating (select in 0.5 steps, 3-5); duplicate, reorder or delete cards in Layers. Every option is a data attribute on the Stage element (edit it in Etch's attributes panel): data-theme (light|dark) re-themes the whole section; data-spread (s|m|l) how far the receding cards fan out, rotate and shrink; data-tilt (true|false) pointer-parallax 3D tilt on the front card (fine pointers only, off under reduced motion); data-autoplay (true|false), data-delay (ms, min 2500), data-pause-on-hover (true|false); data-loop (true|false); 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; draggable/clickable progress scrollbar under the stack); data-autoplay-button (true|false; play/pause toggle); data-arrows-mobile (true|false; hide arrows below the tablet breakpoint, swipe still works). Inline JS (no library) walks the cards on every change and writes each one's rotate/translateY/scale/opacity/blur/z-index as CSS custom properties from its distance to the active card, so the deck fans out behind the front quote like cards held at an angle; the front card additionally tracks the pointer (perspective tilt via rotateX/rotateY, clamped, disabled on coarse pointers, under data-tilt='false' and under prefers-reduced-motion). Click any stacked card, the dots, the scrollbar or the arrows to jump; Left/Right arrow keys when the stage is focused; autoplay pauses on hover/focus and always under reduced motion. Without JS the cards sit in a native horizontal scroll-snap row and the controls hide. Labelled region with aria-roledescription="carousel", per-card group labels, :focus-visible rings, AA contrast in both themes, forced-colors support.