TITLE: Bauhaus Shape Lab — a draggable composition playground with a live score strip PROMPT: Build a single self-contained HTML artwork that is an interactive Bauhaus composition playground. Palette: bone #f0ede6, red #d62828, blue #1d4ed8, yellow #f6c500, black #111111. Layout: a 100dvh CSS grid with three rows — a toolbar (brand "BAUHAUS / SHAPE LAB · 1923" in system-ui 700 uppercase with .3em tracking, plus a wrapped row of square 1.5px-bordered buttons: Circle, Square, Triangle, Half, Bar, Shuffle, and a dashed Clear), a fluid DOM stage, and a bottom score strip. The stage holds a giant low-opacity "BAUHAUS" wordmark (system-ui 900, clamp(58px,17.5vw,250px), colour rgba(17,17,17,.055)) behind a 24px graph-paper grid drawn with two linear-gradients. Shapes are absolutely positioned divs: circle (border-radius 50%), square, triangle (clip-path polygon), bar, and half-circle (border-radius 50% 50% 0 0 / 100% 100% 0 0), each with a colour cycling through the palette. Interaction: pointer-capture dragging with live transform writes, release snapping x/y to a 24px grid and rotation to 15° through a springy cubic-bezier(.18,1.5,.36,1) transform transition (transition disabled while dragging, then a forced reflow so the spring actually plays); double-click or the R key rotates the selected shape; Del removes it; Escape deselects; hover or selection draws a 2px black outline offset 6px; toolbar buttons spawn new shapes with a transform-only entrance; Shuffle repositions and re-rotates everything; Clear empties the stage. The score strip recomputes on every release from centre-of-mass balance, stage coverage density, and mean pairwise bounding-box overlap tension, printed as a ui-monospace number out of 100 with a verdict word (Masterful / Composed / Promising / Searching) and three bordered metric bars animating scaleX with a 0.62s ease. Respect prefers-reduced-motion by killing every transition. One inline