/* World-only viewport. Existing shell/map controls remain in their owning layer. */
.ui-world-media { position: relative; width: 100%; height: 100%; min-height: 12rem; overflow: hidden; isolation: isolate; background: #e9eadc; color: #304936; }
.ui-world-media__video, .ui-world-media__hold { position: absolute; inset: 0; width: 100%; height: 100%; }
.ui-world-media__video { z-index: 0; }
/* Every scene fills its window with the same centered crop, including held
 * frames and exit paint. Preserve the source aspect ratio after rotation. */
.ui-world-media__video video, .ui-world-media__video canvas { display: block; width: 100%; height: 100%; object-fit: cover; object-position: 50% 50%; background: #e9eadc; pointer-events: none; }
.ui-world-media__hold { z-index: 1; object-fit: cover; object-position: 50% 50%; background: #e9eadc; pointer-events: none; }
.ui-world-media__hold[hidden] { display: none; }
.ui-world-media__status { position: absolute; z-index: 2; inset: auto 1rem 1rem; margin: 0; padding: .65rem .9rem; border-radius: .8rem; background: #fffdf4f2; font: inherit; font-size: .875rem; text-align: center; overflow-wrap: anywhere; }
.ui-world-media__status[hidden] { display: none; }
/* App controls sit above the scene; recovery copy remains locally scrollable. */
.ui-world__media-viewport .ui-world-media { min-height: 0; }
.ui-world__stage .ui-world-media__status { inset: auto max(12px, env(safe-area-inset-right)) max(76px, calc(env(safe-area-inset-bottom) + 64px)) max(12px, env(safe-area-inset-left)); max-height: 35%; overflow: auto; overscroll-behavior: contain; touch-action: pan-y; pointer-events: auto; }
/* The app's recovery panel pairs this error with Retry in one scroll region. */
.ui-world__stage .ui-world-media[data-phase="unavailable"] .ui-world-media__status { display: none; }
