- modules/core/scene.js: new module exporting scene, camera, renderer,
OrbitControls, composer, and resize handler via re-exports from
scene-setup.js and controls.js
- modules/core/ticker.js: single RAF loop with subscribe(fn)/unsubscribe(fn)/
start() — no module calls requestAnimationFrame directly
- modules/core/theme.js: expand NEXUS export with full theme object covering
accent, panel, agent-status, sovereignty, earth, LoRA, and font constants;
retain THEME for SovOS.js consumers
- app.js: wire to all four core modules; replace manual RAF loop with
ticker subscribe + start()
Fixes#410
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>