What changed
- Moved the minimap to a dedicated fixed canvas with a controlled update rate.
- Moved notifications and loading status to lightweight DOM elements.
- Gave performance diagnostics a canvas that exists only while visible.
- Kept the full-screen overlay as a small input surface rather than a large drawing buffer.
- Reduced transparent texture clearing and compositing in the hot render loop.
The result is lower mobile overhead without reintroducing a 2D fallback for the Three.js world.