Ready. Serve over HTTPS (or localhost). Phone mode starts WebXR depth before opening any MediaStream camera.
Phone mode uses pose-synchronized WebXR camera access when granted; otherwise it ends XR before a sequential getUserMedia fallback. Headsets open getUserMedia only after real depth is already active. No synthetic depth is used.