diff --git a/Assets/_Project/Scripts/Client/Presentation/StagingAmbiance.cs b/Assets/_Project/Scripts/Client/Presentation/StagingAmbiance.cs
index 05fe242be..e04b83bcc 100644
--- a/Assets/_Project/Scripts/Client/Presentation/StagingAmbiance.cs
+++ b/Assets/_Project/Scripts/Client/Presentation/StagingAmbiance.cs
@@ -68,10 +68,17 @@ namespace ProjectM.Client
void OnEnable() => CacheCamera();
+ ///
+ /// NEVER drive a camera that a real rig owns. This component rides Env_SeabedKit.prefab, which Game.unity
+ /// instantiates as well as ArtStaging — so on 2026-08-07 the drift below wrote _cam.position every
+ /// LateUpdate against PrototypeCameraRig's follow, slamming the camera from its intended y~15.7 back to
+ /// the authored y~1.5 each frame. Live symptom: "so far zoomed in and shaking" (measured: y oscillating
+ /// 1.16 ↔ 13.56, 7.4 units per tick). Gate on the RIG, not on a scene name — scene-name checks are banned.
+ ///
void CacheCamera()
{
var cam = Camera.main != null ? Camera.main : Object.FindFirstObjectByType();
- if (cam == null) return;
+ if (cam == null || cam.GetComponent() != null) { _cam = null; return; }
if (_cam != cam.transform) { _cam = cam.transform; _camBase = _cam.position; }
}