Semicircular photo-wheel gallery built as a plain, fully editable Etch tree: section > corner arrow keys (glassy outer pad + white key cap) > a Dial whose disc is centred on the bottom edge so only its upper half shows, split by diagonals into four "Material Wedge" component instances (typed props: index 0-3 = top/right/bottom/left, name, image, alt) > a black hub with a "See all" button whose label rolls on hover > the names of the wedges currently at the left and right, pinned to the bottom corners. Arrows, arrow keys, or dragging spin the wheel 90° per step (CSS transform set by inline JS, no @keyframes); the side labels update to the wedges now facing left/right and the arrows dim at the ends. Every option is a data attribute on the Dial section (edit it in Etch's attributes panel): data-loop (true|false) wrap around past the last/first wedge; when false the arrows dim at the ends like the source, default false; data-drag (true|false) pointer/touch drag-to-spin with snap to the nearest wedge, default true; data-sensitivity (degrees rotated per 100px of drag, default 60); data-duration (ms per 90° step, default 800) · data-easing (smooth|spring|snappy|ease|linear or any cubic-bezier()); data-arrows (true|false) show the corner arrow keys; data-labels (true|false) show the left/right wedge names (desktop only, like the source); data-cta (true|false) show the "See all" button in the hub; data-size (s|m|l) wheel scale, default m (836px desktop / 544px phone); data-theme (dark|light) section surface, default dark. Phones keep the wheel at 544px (cropped at the sides) with the labels hidden. Visible focus rings, 40px+ targets, aria-live wedge announcement, reduced-motion snaps instantly, forced-colors safe.