/* Mobile scene shell: one header, one player, one navigation row. */
#mobile-controls{display:none}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap;border:0}
#fps-meter{position:fixed;left:220px;top:100px;color:#d7c8b3;font-size:11px;pointer-events:none;z-index:12;background:#211627aa;padding:4px 7px;border-radius:6px}
#room-player{grid-template-columns:minmax(0,1fr) 70px 70px}
#player-skip{min-height:44px;border:1px solid #b68d79;border-radius:9px;background:#654855;font-size:12px}
#player-skip[aria-disabled=true]{color:#beaebd;background:#302536;border-color:#64556b}
body.mobile-ui{--safe-bottom:env(safe-area-inset-bottom,0px);--safe-top:env(safe-area-inset-top,0px);--panel:#241d30;--line:#66536f;-webkit-tap-highlight-color:transparent;overscroll-behavior:none}
.mobile-ui #mobile-controls{display:block}
.mobile-ui header,.mobile-ui #location,.mobile-ui #fps-meter,.mobile-ui #social-tools,.mobile-ui #party-menu,.mobile-ui #perspective,.mobile-ui #move-pad,.mobile-ui #venue-shortcut,.mobile-ui #my-room-card,.mobile-ui #corridor-shortcut,.mobile-ui #run-toggle{display:none!important}
#mobile-place{position:fixed;top:calc(12px + var(--safe-top));left:max(12px,env(safe-area-inset-left));height:52px;max-width:calc(100vw - 152px);padding:7px 12px;text-align:left;border:1px solid #69566d;border-radius:14px;background:#241d30ed;z-index:26}
#mobile-place b,#mobile-place small{display:block;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}#mobile-place b{font-size:14px;line-height:20px}#mobile-place small{font-size:11px;color:#c8b6c8;line-height:17px}
.mobile-ui #players-shortcut{top:calc(12px + var(--safe-top));right:max(12px,env(safe-area-inset-right));min-height:52px;max-width:124px;padding:10px 12px;font-size:12px;border-color:#69566d;background:#241d30ed;border-radius:14px}
#mobile-look-hint{position:fixed;top:calc(74px + var(--safe-top));left:16px;font-size:10px;color:#dac9dd;text-shadow:0 1px 4px #000;pointer-events:none}
#mobile-nav{position:fixed;z-index:45;left:8px;right:8px;bottom:calc(6px + var(--safe-bottom));height:58px;border-radius:16px;background:#20192bf7;border:1px solid #69566d;display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:4px;padding:4px}
#mobile-nav button{min-height:48px;border-radius:11px;font-size:13px;color:#ded0df}
#mobile-nav button[aria-expanded=true],.music-sheet-open #mobile-music{background:#725363;color:#fff1d8}
.mobile-ui #room-player{left:8px;right:8px;bottom:calc(72px + var(--safe-bottom));width:auto;border-color:#69566d;border-radius:14px;padding:8px 10px;grid-template-columns:minmax(0,1fr) 60px 60px;gap:0 8px;background:#241d30f7;box-shadow:none}
.mobile-ui #player-open b{font-size:13px}.mobile-ui #player-open small{font-size:11px;margin-top:3px}.mobile-ui #player-sound,.mobile-ui #player-skip{font-size:12px;min-height:44px;padding:4px;border-radius:10px}
.mobile-ui #player-progress{margin:6px 0 0;height:3px}.mobile-ui #player-time{display:none}
#mobile-stick{position:fixed;z-index:30;left:max(18px,env(safe-area-inset-left));bottom:calc(164px + var(--safe-bottom));width:104px;height:104px;border-radius:50%;background:#231c2c80;border:1px solid #efd0a052;touch-action:none;user-select:none;-webkit-user-select:none;box-shadow:inset 0 0 0 18px #ffffff04}
#stick-knob{position:absolute;left:50%;top:50%;width:46px;height:46px;border-radius:50%;transform:translate(-50%,-50%);background:#bb9572b8;border:1px solid #f3d5a6a6;pointer-events:none}
#mobile-stick small{position:absolute;top:110px;width:100%;text-align:center;font-size:10px;color:#dfcddd;pointer-events:none}
#mobile-combat{position:fixed;z-index:30;right:max(16px,env(safe-area-inset-right));bottom:calc(164px + var(--safe-bottom));display:flex;gap:10px}
#mobile-combat button{width:48px;height:48px;border-radius:50%;background:#4e354dde;border:1px solid #a58a9b;font-size:21px;touch-action:manipulation}
.mobile-ui #context{left:auto;right:16px;bottom:calc(226px + var(--safe-bottom));transform:none;min-height:44px;max-width:180px;padding:10px 14px;font-size:12px;z-index:25}
.mobile-ui #status{display:none;position:fixed;left:50%;top:calc(84px + var(--safe-top));bottom:auto;right:auto;transform:translateX(-50%);width:max-content;max-width:calc(100vw - 32px);max-height:90px;overflow:auto;padding:10px 14px;border-radius:12px;background:#241d30f7;color:#ffebd2;font-size:13px;line-height:1.5;text-align:center;z-index:60;pointer-events:none}.mobile-ui.mobile-toast #status{display:block}
.mobile-ui #walk-route{top:calc(104px + var(--safe-top));right:12px;left:auto;bottom:auto;width:160px;max-width:160px;transform:none;font-size:11px;gap:8px;flex-direction:column;box-sizing:border-box}.mobile-ui #walk-route button{width:100%}
.mobile-ui #actions,.mobile-ui #stage-tools,.mobile-ui #social-hud,#mobile-more{display:none}
.mobile-ui[data-mobile-sheet=actions] #actions,.mobile-ui[data-mobile-sheet=stage] #stage-tools,.mobile-ui[data-mobile-sheet=chat] #social-hud,.mobile-ui[data-mobile-sheet=more] #mobile-more{display:block;position:fixed;z-index:40;left:8px;right:8px;bottom:calc(78px + var(--safe-bottom));top:auto;width:auto;max-width:none;max-height:calc(var(--visual-height,100dvh) - 174px);overflow:auto;overscroll-behavior:contain;transform:none;border:1px solid var(--line);border-radius:18px;background:var(--panel);padding:18px;box-shadow:0 8px 30px #0006}
.mobile-ui[data-mobile-sheet=actions] #actions{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}.mobile-ui #actions button{min-width:0;min-height:64px;padding:8px 2px;font-size:12px}.mobile-ui #actions span{font-size:24px}
.mobile-ui #stage-tools{text-align:left}.mobile-ui #stage-tools>div{display:grid;grid-template-columns:1fr 1fr;gap:8px}.mobile-ui #stage-tools button{min-height:48px;font-size:13px}.mobile-ui #stage-tools button:last-child{grid-column:1/-1}
.mobile-ui[data-mobile-sheet=more] #mobile-more{display:grid;grid-template-columns:1fr 1fr;gap:10px}#mobile-more button{min-height:48px;border-radius:10px;border:1px solid #66536f;background:#35283e;font-size:13px}
#mobile-sheet-close{display:none;position:fixed;right:12px;top:calc(14px + var(--safe-top));min-height:48px;z-index:43;padding:8px 16px;background:var(--panel);border:1px solid var(--line);border-radius:12px;font-size:13px}
.mobile-ui:not([data-mobile-sheet=""]) #mobile-sheet-close{display:block}
.mobile-ui:not([data-mobile-sheet=""]) #mobile-stick,.mobile-ui:not([data-mobile-sheet=""]) #mobile-combat,.mobile-ui:not([data-mobile-sheet=""]) #context,.mobile-ui:not([data-mobile-sheet=""]) #room-player,.mobile-ui:not([data-mobile-sheet=""]) #players-shortcut{display:none}
.mobile-ui:not([data-mobile-sheet=""]) #speech,.mobile-ui:not([data-mobile-sheet=""]) #walk-route,.mobile-ui:not([data-mobile-sheet=""]) #mobile-look-hint,.mobile-ui.music-sheet-open #mobile-look-hint{display:none}
.mobile-ui #chat-toggle{min-height:44px;font-size:14px}.mobile-ui #chat-body{max-height:none;overflow:visible}.mobile-ui #hud-chat-log{max-height:min(32vh,240px);margin:0 0 12px}.mobile-ui #hud-chat-log p{font-size:14px;line-height:1.6}.mobile-ui #hud-chat-form{gap:8px}.mobile-ui #hud-chat-form input{font-size:16px;min-height:48px;min-width:0}.mobile-ui #hud-chat-form button{min-height:48px;font-size:14px}.mobile-ui #social-hud .brawl-buttons,.mobile-ui #social-hud label,.mobile-ui #social-hud select,.mobile-ui #social-hud small{display:none}
.mobile-ui #speech{left:12px;right:12px;top:calc(104px + var(--safe-top));width:auto;max-width:none;max-height:160px;overflow:auto;z-index:25}.mobile-ui #speech-close{min-width:44px;min-height:44px}
.mobile-ui #modal{position:fixed;left:0;right:0;top:auto;bottom:calc(var(--keyboard-inset,0px) + 8px + var(--safe-bottom));width:min(540px,calc(100vw - 16px));max-width:none;max-height:calc(var(--visual-height,100dvh) - 30px - var(--safe-top));margin:0 auto;padding:18px 18px 24px;overflow:auto;overscroll-behavior:contain;border-radius:20px;background:var(--panel)}
.mobile-ui #close-modal{position:sticky;float:right;top:0;min-width:44px;min-height:44px;margin:-8px -8px 0 0;background:var(--panel);border-radius:12px;z-index:2}.mobile-ui #modal h2{font-size:22px;padding-right:30px}.mobile-ui #modal button{min-height:44px}.mobile-ui #modal input:not([type=color]):not([type=file]),.mobile-ui #modal textarea,.mobile-ui #modal select{font-size:16px!important}
.mobile-ui #public-game,.mobile-ui #party-panel{z-index:37;left:8px;right:8px;top:calc(100px + var(--safe-top));bottom:auto;width:auto;max-width:none;max-height:calc(var(--visual-height,100dvh) - 260px);padding:16px;background:var(--panel)}
.mobile-ui #public-game button,.mobile-ui #party-panel button{min-height:44px}
.mobile-ui #music-sheet{left:8px;right:8px;bottom:calc(152px + var(--safe-bottom));width:auto;height:min(62dvh,calc(var(--visual-height,100dvh) - 220px));max-height:calc(var(--visual-height,100dvh) - 220px);padding:12px 16px 20px;border-radius:18px;background:var(--panel);border-color:var(--line);box-shadow:0 8px 35px #0007}
.mobile-ui #music-sheet-close{top:0;min-height:44px;font-size:12px;padding:8px 12px;background:#403047}.mobile-ui #music-sheet h2{font-size:21px;margin:-38px 125px 20px 0;min-height:28px}.mobile-ui #music-sheet h2 small{display:block;font-size:11px;margin-top:4px}.mobile-ui #music-sheet .song-filters{top:48px;gap:8px;background:var(--panel);grid-template-columns:minmax(0,1fr) 112px}.mobile-ui #music-sheet .music-permission{font-size:12px;color:#d2bdd1;margin:6px 0}.mobile-ui #music-sheet .venue-list b{font-size:14px}.mobile-ui #music-sheet .venue-list small{font-size:11px;line-height:1.5}.mobile-ui #music-sheet .song-row-actions{gap:8px}.mobile-ui #music-sheet .host-deck{gap:8px}.mobile-ui #music-sheet .host-deck button{padding:8px 6px}.mobile-ui #music-sheet button:disabled{opacity:.45}
.mobile-ui #companion-picker{bottom:calc(154px + var(--safe-bottom));font-size:13px}.mobile-ui #companion-picker>div button{min-height:44px;flex:1}
.mobile-ui.music-sheet-open #mobile-stick,.mobile-ui.music-sheet-open #mobile-combat,.mobile-ui.music-sheet-open #context,.mobile-ui.music-sheet-open #walk-route,.mobile-ui.music-sheet-open #speech{display:none}
.mobile-ui.mobile-modal-open #mobile-controls,.mobile-ui.mobile-modal-open #players-shortcut,.mobile-ui.mobile-modal-open #room-player,.mobile-ui.mobile-modal-open #context,.mobile-ui.mobile-modal-open #walk-route,.mobile-ui.mobile-modal-open #speech{display:none}
.mobile-ui.keyboard-open #mobile-nav,.mobile-ui.keyboard-open #mobile-stick,.mobile-ui.keyboard-open #mobile-combat,.mobile-ui.keyboard-open #room-player{display:none}
.mobile-ui.keyboard-open #music-sheet,.mobile-ui.keyboard-open[data-mobile-sheet=chat] #social-hud{bottom:calc(var(--keyboard-inset,0px) + 8px + var(--safe-bottom));height:auto;max-height:calc(var(--visual-height,100dvh) - 80px)}.mobile-ui.keyboard-open #hud-chat-log{max-height:90px}
.mobile-ui #reticle{z-index:2}
@media(orientation:landscape) and (max-height:500px){
 .mobile-ui #mobile-place{top:8px;height:44px;padding:3px 10px}.mobile-ui #players-shortcut{top:8px;min-height:44px}.mobile-ui #mobile-look-hint{display:none}
 .mobile-ui #mobile-nav{left:calc(144px + env(safe-area-inset-left));right:calc(144px + env(safe-area-inset-right));height:54px}.mobile-ui #mobile-nav button{min-height:44px;font-size:12px}
 .mobile-ui #room-player{left:144px;right:144px;bottom:calc(70px + var(--safe-bottom))}.mobile-ui #mobile-stick{width:96px;height:96px;bottom:calc(22px + var(--safe-bottom))}.mobile-ui #mobile-stick small{display:none}.mobile-ui #mobile-combat{bottom:calc(22px + var(--safe-bottom));gap:8px}.mobile-ui #context{bottom:calc(84px + var(--safe-bottom))}
 .mobile-ui #music-sheet{left:auto;right:8px;width:min(440px,62vw);bottom:calc(8px + var(--safe-bottom));height:calc(var(--visual-height,100dvh) - 16px);max-height:calc(var(--visual-height,100dvh) - 16px)}
 .mobile-ui.music-sheet-open #room-player{left:8px;right:auto;width:calc(100vw - min(440px,62vw) - 24px);grid-template-columns:minmax(0,1fr) 52px 52px;gap:0 4px;bottom:calc(76px + var(--safe-bottom));padding:6px}.mobile-ui.music-sheet-open #player-open small{display:none}
 .mobile-ui.music-sheet-open #mobile-nav{left:8px;right:auto;width:calc(100vw - min(440px,62vw) - 24px);grid-template-columns:repeat(5,minmax(48px,1fr));overflow-x:auto}.mobile-ui.music-sheet-open #players-shortcut{display:none}
 .mobile-ui #mobile-sheet-close{top:8px}.mobile-ui #status{top:60px}.mobile-ui #walk-route{top:64px}.mobile-ui #public-game,.mobile-ui #party-panel{top:64px;max-height:calc(var(--visual-height,100dvh) - 200px)}
}
