The lock entry for thinking-orbs was written without its react peer
dependency, so `npm ci` on a clean machine failed with "Missing: react@19.3.0
from lock file" (it passed locally only because node_modules already existed).
Regenerated with `npm install --package-lock-only`; React is installed as a
peer but unused, since the framework-free engine is vendored under vendor/.
Replace the gear spinner with the thinking-orbs canvas engine (vendored
framework-free build, driven by js/orb.js in the "solving" state) and the
inline SVG brand icon with a pure CSS book whose cover flips open on page
load and while the brand is hovered (js/logo.js).
Static frontend with vendored marked/DOMPurify, bounded Markdown
pipeline, same-origin mock server with scenario selection, unit,
contract and CDP end-to-end tests under frontend/**.