Showcase grid built as a plain, fully editable Etch tree: section > container > header (eyebrow, h2, intro) > grid of "Tilt Card" component instances (image, imageAlt, title, kicker, badge — empty badge hides it, url optional — duplicate/reorder/delete in Layers). Each card tracks the pointer with a real 3D perspective tilt (rotateX/rotateY driven by cursor position inside the card, written to CSS custom properties by an inline script — no library), lifts and scales slightly on hover/focus, and eases back to flat with a configurable spring/smooth/snappy transition when the pointer leaves. Every option is a data attribute on the Grid element (edit it in Etch's attributes panel): data-theme (light|dark) re-themes the section; data-max-tilt (deg the card rotates toward the pointer, default 14); data-scale (hover/focus scale amount, default 1.03); data-perspective (px, default 900); data-glare (true|false) a soft specular highlight that tracks the pointer across the photo; data-parallax (true|false) the photo and caption drift a few px opposite the tilt for a layered-depth feel; data-shadow (none|soft|deep) rest/hover shadow depth; data-radius (none|s|m|l|xl) corner radius from the ACSS radius tokens; data-caption (below|overlay|none) caption position: under the photo, over it revealed on hover/focus, or hidden; data-columns (1|2|3) cards per row at the carousel's own desktop width; data-speed (ms the card eases back to rest when the pointer leaves, default 500); data-easing (spring|smooth|snappy) return-to-rest easing curve. Optional glare is a radial highlight that slides across the photo with the pointer; optional parallax shifts the photo and caption a few px counter to the tilt for layered depth. Pointer tilt, glare and parallax are fine-pointer only (matchMedia pointer:fine) and become a no-op on touch, where the card still lifts on :active; the whole effect is skipped under prefers-reduced-motion, leaving a flat card with a simple opacity/translate hover. Cards remain complete, indexable photo links (when a URL is set) with alt text and a visible :focus-visible ring with or without JS. AA caption contrast in both themes, forced-colors border fallback.