/* Shared movement controls stay in the same place in a mall and a shop. */
.player-movement-controls{position:absolute;right:max(18px,env(safe-area-inset-right));bottom:120px;display:grid;grid-template-columns:repeat(2,60px);gap:10px;z-index:12;pointer-events:none}
.player-movement-controls[hidden]{display:none!important}
.player-movement-controls>button{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;width:60px;height:60px;min-width:0;padding:5px;border:1px solid #eeead3ad;border-radius:50%;background:#faf5e8dd;color:#493c31;box-shadow:0 3px 14px #493c3126;backdrop-filter:blur(7px);font:11px/1.1 Arial,sans-serif;cursor:pointer;touch-action:manipulation;user-select:none;pointer-events:auto;-webkit-tap-highlight-color:transparent}
.player-movement-controls>button:first-child{grid-column:2;grid-row:1}
.player-movement-controls>button:nth-child(2){grid-column:1;grid-row:2}
.player-movement-controls>button:nth-child(3){grid-column:2;grid-row:2}
.player-movement-controls>button>i{font:24px/1 Arial,sans-serif}
.player-movement-controls>button>span{display:block}
.player-movement-controls>button>kbd{display:none}
.player-movement-controls>button[aria-pressed=true]{background:#493c31e8;color:#fff8e5;border-color:#dbe6bd;box-shadow:0 0 0 3px #f0e8da52}
.player-movement-controls>button:active{transform:scale(.94)}
.player-movement-controls>button:focus-visible{outline:3px solid #bf984d;outline-offset:3px}
.mall-menu-toggle,.mall-quick-enter{position:absolute;left:max(14px,env(safe-area-inset-left));top:max(14px,env(safe-area-inset-top));z-index:25;display:flex;align-items:center;gap:12px;min-height:44px;max-width:calc(100% - 105px);padding:10px 15px;border:1px solid #d6d8c5;border-radius:14px;background:#fffaf0ed;color:#493c31;font:14px Arial;box-shadow:0 3px 14px #493c311a}
#mall-menu-label{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.mall-menu-toggle[aria-expanded=true]{background:#493c31;color:#fff8e5}
.mall-quick-enter{top:calc(max(14px,env(safe-area-inset-top)) + 55px);background:#493c31;color:#fff8e5;z-index:20}
.mall-menu-panel{position:absolute;left:max(14px,env(safe-area-inset-left));top:calc(max(14px,env(safe-area-inset-top)) + 55px);width:min(460px,calc(100% - 28px));max-height:calc(100dvh - 94px - env(safe-area-inset-top));padding:20px;background:#fffaf2f7;border:1px solid #d6d8c5;border-radius:18px;box-shadow:0 12px 38px #493c3133;overflow:auto;overscroll-behavior:contain;z-index:26;backdrop-filter:blur(14px)}
.mall-menu-panel .mall-header{position:static;display:flex;flex-wrap:wrap;gap:14px;padding:0 0 18px;background:none;pointer-events:auto}
.mall-menu-panel .mall-header>div:not(.bc-mall-buttons){order:-1;flex-basis:100%;text-align:left}
.mall-menu-panel .mall-header h1{font:30px/1.15 Georgia,serif;margin:6px 0}
.mall-menu-panel .mall-header span{display:inline;font:9px Arial;letter-spacing:1.4px}
.mall-menu-panel .bc-mall-buttons{display:flex;flex-wrap:wrap;gap:6px}
.mall-menu-panel .mall-header button,.mall-menu-panel .mall-header a{font-size:12px;padding:10px 12px}
.mall-menu-panel .mall-switcher{position:static;margin:0 0 16px}
.mall-menu-panel .mall-intro{position:static;width:auto;padding:16px 0 0;border:0;border-top:1px solid #dedfce;box-shadow:none;background:none;border-radius:0}
.mall-menu-panel .mall-intro h2{font:27px/1.15 Georgia,serif;margin:12px 0}
.mall-menu-panel .mall-intro p{font-size:13px;line-height:1.5}
.mall-menu-panel .floor-nav{position:static;display:flex;flex-wrap:wrap;padding:16px 0 0;border:0;border-top:1px solid #dedfce;border-radius:0;gap:12px;background:none;justify-content:flex-start}
.mall-menu-panel .floor-nav>span{display:block;width:100%;font-size:10px}
.mall-menu-panel .floor-nav #floor-buttons{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));width:100%;gap:6px}
.mall-menu-panel .floor-nav #floor-buttons button{padding:12px 4px;min-height:44px;font-size:15px}
.mall-menu-panel .floor-nav #mall-outside{max-width:none;min-height:44px;font-size:12px}
body>.room-audio-control{top:max(14px,env(safe-area-inset-top));right:max(14px,env(safe-area-inset-right))}
body>.mall-presence{top:65px;right:14px;max-width:45%}
@media(pointer:coarse),(max-width:760px){
 .player-movement-controls{right:max(16px,env(safe-area-inset-right));bottom:clamp(124px,24dvh,220px);grid-template-columns:repeat(2,60px);gap:10px}
 body #mall-joystick,body.in-shop .showroom-joystick{bottom:clamp(132px,25dvh,230px);left:max(18px,env(safe-area-inset-left));width:90px;height:90px}
 body #mall-joystick span{left:24px;top:24px}
 body #mall-actions{grid-template-columns:repeat(3,1fr)}
 body.in-shop .showroom-actions{flex-direction:row;right:max(12px,env(safe-area-inset-right));bottom:78px;gap:4px;padding:4px}
 body.in-shop .showroom-actions .showroom-action{min-width:54px;padding:7px 10px}
 body.in-shop .showroom-hint{display:none}
}
@media(orientation:landscape) and (max-height:600px){
 .player-movement-controls{right:max(18px,env(safe-area-inset-right));bottom:max(64px,16dvh);grid-template-columns:repeat(2,54px);gap:8px}
 .player-movement-controls>button{width:54px;height:54px;font-size:10px}
 body #mall-joystick,body.in-shop .showroom-joystick{bottom:max(72px,18dvh);left:max(22px,env(safe-area-inset-left));width:82px;height:82px}
 body #mall-joystick span{left:20px;top:20px}
 body.in-shop .showroom-actions{left:50%;right:auto;bottom:16px;transform:translateX(-50%);flex-direction:row}
 body #mall-actions{max-width:calc(100% - 310px)}
 .mall-menu-panel{max-height:calc(100dvh - 85px - env(safe-area-inset-top));padding:16px}
}

.player-common-actions{position:absolute;left:50%;transform:translateX(-50%);bottom:18px;z-index:12;display:flex;gap:6px;max-width:calc(100% - 24px);padding:5px;border:1px solid #d3c7af;border-radius:20px;background:#f9f5e9ed;overflow-x:auto}
.player-common-actions>button{display:flex;align-items:center;gap:6px;flex-shrink:0;min-height:44px;border:0;border-radius:16px;padding:10px 12px;background:transparent;color:#493c31;font:12px Arial;white-space:nowrap}
.player-common-actions>button:hover{background:#e4e9d9}

.player-joystick{display:none;position:fixed;left:max(20px,env(safe-area-inset-left));bottom:clamp(132px,25dvh,230px);z-index:36;width:90px;height:90px;border:1px solid #bcae98;border-radius:50%;background:#f5f3e5a8;touch-action:none;user-select:none}
.player-joystick i{position:absolute;left:25px;top:25px;width:40px;height:40px;border-radius:50%;background:#6b533bb8;pointer-events:none}
.player-joystick[hidden]{display:none!important}
@media(pointer:coarse){.player-joystick{display:block}}
@media(pointer:coarse) and (orientation:landscape){.player-joystick{bottom:max(72px,18dvh);width:82px;height:82px}.player-joystick i{left:21px;top:21px}}

/* Short touch viewports anchor all actions above the visible browser edge. */
html[data-game-landscape="true"] .player-movement-controls{bottom:max(66px,env(safe-area-inset-bottom));right:max(12px,env(safe-area-inset-right));grid-template-columns:repeat(2,50px);gap:6px}
html[data-game-landscape="true"] .player-movement-controls>button{width:50px;height:50px;font-size:10px}
html[data-game-landscape="true"] :is(.player-joystick,#mall-joystick,.showroom-joystick){bottom:max(68px,env(safe-area-inset-bottom))!important;left:max(18px,env(safe-area-inset-left))!important}
html[data-game-landscape="true"] .player-common-actions{bottom:max(8px,env(safe-area-inset-bottom))!important;max-width:calc(100% - 240px)!important;flex-wrap:wrap;justify-content:center;gap:2px;padding:3px;border-radius:12px}
html[data-game-landscape="true"] .player-common-actions>button{min-height:38px;padding:6px 8px;font-size:10px}
html[data-game-landscape="true"] .mall-menu-panel{max-height:calc(var(--game-viewport-height) - 82px - env(safe-area-inset-bottom))}

/* Local time shares the retail palette; time/daylight state remains unchanged. */
.world-clock{background:#493c31f0!important;color:#f8f1e4!important;border-color:#b9a17c80!important}

/* An opt-in disclosure reuses scene buttons and never alters other locations. */
html body .player-compact-actions-host > :is(.player-actions-toggle,.player-compact-secondary,.player-compact-movement)[hidden]{display:none!important}
html body .player-compact-actions-host[data-player-actions-compact=true] > .player-actions-toggle{position:absolute;right:max(12px,env(safe-area-inset-right));bottom:max(78px,calc(env(safe-area-inset-bottom) + 68px));z-index:14;display:flex;align-items:center;justify-content:center;gap:10px;min-width:112px;min-height:44px;padding:10px 14px;border:1px solid #d3c7af;border-radius:16px;background:#f9f5e9f5;color:#493c31;box-shadow:0 4px 18px #493c3122;font:13px/1.2 Arial,sans-serif;touch-action:none;cursor:pointer;user-select:none}
html body .player-compact-actions-host .player-actions-toggle[aria-expanded=true]{background:#493c31;color:#fff8e5}
html body .player-compact-actions-host .player-actions-toggle[aria-expanded=true] .player-actions-toggle-icon{transform:rotate(180deg)}
html body .player-compact-actions-host .player-actions-toggle:focus-visible{outline:3px solid #bf984d;outline-offset:3px}
html body .player-compact-actions-host[data-player-actions-compact=true] > .player-compact-secondary{position:absolute;left:auto;right:max(12px,env(safe-area-inset-right));bottom:max(202px,calc(env(safe-area-inset-bottom) + 192px));transform:none;z-index:14;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));width:210px;max-width:calc(100% - 24px);gap:4px;padding:5px;border:1px solid #d3c7af;border-radius:18px;background:#f9f5e9f5;box-sizing:border-box;overflow:visible}
html body .player-compact-actions-host[data-player-actions-compact=true] > .player-compact-secondary > button{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;min-width:0;width:100%;height:auto;min-height:52px;padding:7px 3px;border-radius:12px;font:10px/1.2 Arial,sans-serif;white-space:normal;touch-action:none}
html body .player-compact-actions-host[data-player-actions-compact=true] > .player-compact-secondary > button > span{display:block}
html body .player-compact-actions-host[data-player-actions-compact=true] > .player-compact-secondary > button > i{font-size:21px}
html body .player-compact-actions-host[data-player-actions-compact=true] > .player-compact-secondary > button[hidden]{display:none!important}
html body .player-compact-actions-host[data-player-actions-compact=true] > .player-compact-movement{left:auto;right:max(12px,env(safe-area-inset-right));bottom:max(130px,calc(env(safe-area-inset-bottom) + 120px));z-index:14;display:grid;grid-template-columns:repeat(3,64px);gap:8px}
html body .player-compact-actions-host[data-player-actions-compact=true] > .player-compact-movement > button{grid-column:auto;grid-row:auto;min-width:0;width:64px;height:64px;font-size:11px;touch-action:none}
@media(orientation:landscape) and (max-height:600px){
 html body .player-compact-actions-host[data-player-actions-compact=true] > .player-actions-toggle{bottom:max(66px,calc(env(safe-area-inset-bottom) + 58px))}
 html body .player-compact-actions-host[data-player-actions-compact=true] > .player-compact-secondary{right:max(12px,env(safe-area-inset-right));bottom:max(178px,calc(env(safe-area-inset-bottom) + 170px));width:180px}
 html body .player-compact-actions-host[data-player-actions-compact=true] > .player-compact-movement{bottom:max(118px,calc(env(safe-area-inset-bottom) + 110px));grid-template-columns:repeat(3,54px);gap:8px}
 html body .player-compact-actions-host[data-player-actions-compact=true] > .player-compact-movement > button{width:54px;height:54px;font-size:10px}
}