Shapes with SVG and CSS
A circle follows the mouse cursor across a full-window SVG canvas, using unidirectional data flow to manage position state. The `index.js` file holds the state object and re-renders on every update, while `viz.js` uses D3's `select` and `join` methods to create the SVG element and bind circle attributes. The initial state centers the circle, and subsequent mouse movements trigger `setState` with new `x` and `y` coordinates, updating the circle's `cx` and `cy` attributes. The example is minimal, with only 50 pixels of radius.