The same anywidget-style ESM that runs in Jupyter renders here with
no kernel. State lives in the browser via
LocalChannel. Serve this folder (e.g.
python3 -m http.server) and open the page — ES module imports need
HTTP, not file://.