/* Exploration on touch screens has exactly three persistent surfaces. */
.mobile-ui #experience>.topbar,.mobile-ui #experience>.level-switcher,.mobile-ui #experience>.view-tools,.mobile-ui #experience>.floor-caption,.mobile-ui #experience>.bottom-ui,.mobile-ui #guide-welcome,.mobile-ui .walk-label,.mobile-ui .look-hint{display:none!important}
.mobile-ui .mobile-dock{position:absolute;display:block;inset:auto;top:max(12px,env(safe-area-inset-top));right:max(12px,env(safe-area-inset-right));left:auto;bottom:auto;width:auto;z-index:15;border:1px solid #b4e2d663;background:#101f2b88;backdrop-filter:none;border-radius:12px;box-shadow:none}
.mobile-ui .mobile-dock button{display:none}.mobile-ui .mobile-dock #mobile-explore{display:flex;gap:7px;min-height:46px;padding:8px 12px;font-size:15px}.mobile-ui .mobile-dock #mobile-explore>span{font-size:18px}
.mobile-ui #mobile-explore.has-private:after{content:'';position:absolute;right:5px;top:5px;width:7px;height:7px;background:#efc787;border-radius:50%}
.mobile-ui .mobile-movement{left:max(20px,env(safe-area-inset-left));bottom:calc(24px + env(safe-area-inset-bottom));width:118px;height:118px;z-index:14}
.mobile-ui .walk-pad{transform:none;background:#112b3945;box-shadow:none}
.mobile-ui .stream-chat{top:max(12px,env(safe-area-inset-top));left:max(12px,env(safe-area-inset-left));right:auto;bottom:auto;width:min(310px,calc(100vw - 117px - env(safe-area-inset-left) - env(safe-area-inset-right)));max-height:none;border:0;background:linear-gradient(100deg,#08142158,#08142115);box-shadow:none;border-radius:10px;overflow:visible;text-shadow:0 1px 4px #000,0 0 8px #000}
.mobile-ui .stream-heading{padding:2px 6px;border:0;gap:3px}.mobile-ui .stream-heading strong{font-size:14px;font-weight:600}.mobile-ui .stream-heading small{display:none}.mobile-ui .stream-heading button{padding:4px 7px;min-height:40px;background:transparent;font-size:14px}
.mobile-ui .stream-body{padding:0 6px 6px}.mobile-ui .stream-messages{height:clamp(56px,11dvh,92px);padding:0}.mobile-ui .stream-line{font-size:14px;line-height:1.45;margin:4px 0}.mobile-ui .stream-chat .stream-author{font-size:14px}.mobile-ui .stream-empty{font-size:14px;margin:4px 0;line-height:1.4}
.mobile-ui .stream-compose{gap:4px;margin-top:4px}.mobile-ui .stream-compose input{background:#12253160;border:1px solid #b3d8cf35;padding:7px;min-height:42px}.mobile-ui .stream-chat .stream-send{background:#c4eaddbf;padding:6px 8px;min-height:42px}.mobile-ui .stream-actions{display:none}.mobile-ui .stream-chat.minimized{width:175px}.mobile-ui .stream-join{margin-top:0;background:#17342c8a}.mobile-ui .stream-status{margin:3px 0;font-size:13px}.mobile-ui .stream-chat #stream-latest{background:#15382ebf}
.mobile-ui.chat-typing .stream-chat{top:max(8px,calc(var(--visible-bottom,100dvh) - 164px));width:calc(100vw - 24px - env(safe-area-inset-left) - env(safe-area-inset-right));max-height:154px;z-index:20;background:#0c1b27e8}.mobile-ui.chat-typing .stream-messages{height:48px}.mobile-ui.chat-typing .mobile-movement,.mobile-ui.chat-typing .mobile-dock{visibility:hidden}
.mobile-ui #toast{top:auto;bottom:calc(160px + env(safe-area-inset-bottom));left:50%;transform:translateX(-50%);pointer-events:none}
.mobile-ui .music-panel{bottom:calc(16px + env(safe-area-inset-bottom));left:max(12px,env(safe-area-inset-left));width:calc(100% - 24px - env(safe-area-inset-left) - env(safe-area-inset-right));max-height:calc(100dvh - 40px - env(safe-area-inset-top) - env(safe-area-inset-bottom))}
.mobile-ui #explore-dialog{padding:20px;width:min(590px,calc(100% - 20px))}.mobile-ui #explore-dialog .dialog-heading{position:sticky;top:-20px;z-index:2;background:#10212b;padding:14px 0;margin-bottom:12px}.mobile-ui #explore-dialog .dialog-heading h2{font-size:26px}
.mobile-ui #explore-dialog .destination-grid{gap:8px}.mobile-ui #explore-dialog .destination-grid button{min-height:76px;gap:5px;padding:13px}.mobile-ui #explore-dialog .destination-grid strong{font-size:16px}.mobile-ui #explore-dialog .destination-grid span{font-size:14px}
.mobile-ui #menu-view-tools .view-tools{display:flex!important;position:static;max-width:none;margin:18px 0;gap:8px}.mobile-ui #menu-view-tools #camera-button,.mobile-ui #menu-view-tools #feedback-button{display:none}.mobile-ui #menu-view-tools #zoom-reset{display:inline-block}.mobile-ui #menu-view-tools output{font-size:16px;color:#fff}
#menu-announcements:empty,#menu-view-tools:empty{display:none}.mobile-ui #menu-announcements .host-audio-strip,.mobile-ui #menu-announcements .show-banner{position:relative;inset:auto;transform:none;margin:0 0 15px;width:100%;max-width:none;font-size:14px;box-shadow:none;backdrop-filter:none}.mobile-ui #menu-announcements .host-audio-strip{flex-wrap:wrap}.mobile-ui #menu-announcements .host-audio-strip span{max-width:none}.mobile-ui #menu-announcements .show-banner[hidden],.mobile-ui #menu-announcements .host-audio-strip[hidden]{display:none}.mobile-ui #menu-announcements .show-banner label{font-size:14px}
.mobile-ui:has(dialog[open]) .mobile-dock{visibility:hidden}
@media(orientation:landscape) and (max-height:600px){.mobile-ui .stream-chat{width:min(305px,40vw)}.mobile-ui .stream-messages{height:58px}.mobile-ui .mobile-movement{bottom:calc(16px + env(safe-area-inset-bottom))}.mobile-ui .stream-chat.minimized{width:175px}.mobile-ui.chat-typing .stream-chat{width:calc(100vw - 24px - env(safe-area-inset-left) - env(safe-area-inset-right))}.mobile-ui #explore-dialog .destination-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}
/* Camera uses the existing renderer. Only these controls cover the live view. */
.photo-active #experience>:not(#scene):not(#photo-controls){visibility:hidden!important;pointer-events:none!important}
.photo-controls{position:absolute;inset:0;z-index:40;pointer-events:none;color:#f0fbf7}.photo-controls[hidden]{display:none}.photo-controls button,.photo-controls input{pointer-events:auto}.photo-controls button{font:inherit;font-size:15px;min-height:46px;border:1px solid #accfc073;border-radius:12px;background:#0c1b28c9;color:#f0fbf7;padding:9px 15px;cursor:pointer}.photo-controls button:focus-visible{outline:2px solid #ebc47b}.photo-top{position:absolute;top:max(12px,env(safe-area-inset-top));left:max(12px,env(safe-area-inset-left));right:max(12px,env(safe-area-inset-right));display:flex;align-items:center;justify-content:space-between;gap:10px}.photo-modes{display:flex;gap:5px}.photo-modes [aria-pressed=true]{background:#c9e6d9;color:#0e2524}.photo-bottom{position:absolute;bottom:max(14px,env(safe-area-inset-bottom));left:12px;right:12px;display:flex;flex-direction:column;align-items:center;gap:10px}.photo-bottom p{font-size:14px;text-align:center;text-shadow:0 2px 5px #000;margin:0;padding:4px 9px;background:#0c1b2850;border-radius:6px;max-width:90%}.photo-bottom label{display:flex;align-items:center;gap:10px;font-size:14px;padding:0 12px;background:#0c1b2866;border-radius:9px}.photo-bottom input{width:min(190px,40vw);height:42px;accent-color:#bce6d5}
.photo-controls #photo-shutter{display:flex;align-items:center;gap:12px;border-radius:30px;padding:8px 20px 8px 8px;background:#e6f2e8;color:#102726;font-weight:600;min-height:60px}.photo-controls #photo-shutter>span{width:42px;height:42px;border:3px solid #173c36;border-radius:50%;background:#b5decd}.photo-controls #photo-shutter:disabled{opacity:.6}
.photo-result{width:min(760px,calc(100% - 24px));padding:22px}.photo-result #photo-preview{display:block;width:100%;height:auto;max-height:55dvh;object-fit:contain;border-radius:8px;background:#08151c}.photo-result .dialog-heading h2{font-size:24px}.photo-result-actions{display:flex;flex-wrap:wrap;gap:10px;margin-top:18px}.photo-result-actions>*{min-height:46px;display:inline-flex;align-items:center;justify-content:center;text-decoration:none}.photo-result-actions [hidden]{display:none}.photo-result p{font-size:14px;line-height:1.5;color:#bed4d0}.photo-save-help{margin-bottom:0}
.vr-active .photo-controls,.arrival-pending .photo-controls{display:none}
@media(max-width:420px){.photo-controls button{padding:8px 11px;font-size:14px}.photo-top{gap:5px}.photo-modes{gap:3px}}
@media(orientation:landscape) and (max-height:600px){.photo-bottom{left:auto;right:max(14px,env(safe-area-inset-right));bottom:max(12px,env(safe-area-inset-bottom));width:235px;gap:4px}.photo-bottom p{max-width:100%}.photo-bottom input{width:120px}.photo-result #photo-preview{max-height:40dvh}}
