Add EMF field mode, Armory shop/waitlist, and ambient haunting layer
Three self-contained features, verified complete and cross-wired
end-to-end (audited: backend 54/54 tests, frontend 110/110 tests,
tsc --noEmit clean, i18n coverage script clean):
- EMF mode: DeviceMotion/DeviceOrientation-based field-meter sensing,
a fifth séance channel alongside Wire/EVP/Radio/Ouija, with its own
fragment prompt persona and full frontend gauge UI.
- Armory (shop/waitlist): pre-order capture page for the future
Ultimate Quantum Box hardware line, rate-limited public endpoint,
explicitly no payment collection.
- Haunting layer: ambient possession effects (dread-bed audio, title
glitching, idle-paced whispers/manifests), respects
prefers-reduced-motion, mounted once at the app root.
Plus WebUSB robustness fixes in lib/sdr.ts (Terratec vendor ID,
explicit selectConfiguration, isSecureContext gate).
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_013PphXq1s43DNRj1uWKGXof