- Move physics and telemetry/status ticking from requestAnimationFrame/setInterval
to a Web Worker (new shared/utils/intervalWorker.ts) — the intended usage is
WebSim in one tab and /live-atc in another, so the WebSim tab is almost always
backgrounded, and rAF stops entirely / setInterval throttles to ~1/min in that
state, dropping the bridge connection after a few minutes.
- Surface bridge failures in the header badge (connecting/error/connected) instead
of showing "verbindet…" forever when telemetry POSTs are failing.
- Replace the PFD's hardcoded 0.85 scale with a ResizeObserver-driven fit so it
no longer clips the VS tape/altitude readout at typical panel widths.
- Give the sidestick pad the same panel shell as the FCU/radio panels and stretch
all three to equal height.
- ExteriorView: camera height now reacts to altitude, the runway renders at its
real distance/lateral offset (was a fixed spot only shown under 3 NM) with
centerline/threshold markings, widened for visibility from the 12 NM range
it's now shown from, plus fog and a gradient sky.
Verified live: bridge badge stays green, PFD fits inside its panel at 1280x720,
and the runway becomes visible on approach for all four spawn presets.