/* Handheld layout: a readable camera and controls outside the world. */
#touchDock{grid-column:1;position:relative;min-height:126px;background:#183a50;padding:10px;display:flex;align-items:center;justify-content:space-between;border-top:3px solid #f2c75a}#touchDock .pad{position:static}#touchAction,#touchHint{display:none}.play-layout>aside{grid-column:2;grid-row:1 / span 2}#mobileMode{font-size:13px}.touch-mode #game{padding:12px max(10px,env(safe-area-inset-left))}.touch-mode .play-layout{display:flex;flex-direction:column}.touch-mode .viewport{height:clamp(240px,44dvh,360px);overflow:hidden;isolation:isolate}.touch-mode #world{width:var(--camera-width,720px)!important;height:var(--camera-height,480px)!important;min-height:0;max-width:none;object-fit:fill;position:absolute;left:0;top:0;transform-origin:top left}.touch-mode #prompt{left:8px;right:8px;bottom:8px;transform:none;width:auto;max-width:none;font-size:16px;padding:8px;z-index:1}.touch-mode #touchDock{min-height:190px;padding:10px 18px 32px;gap:12px}.touch-mode .pad button{width:48px;height:48px;padding:0;margin:2px;font-size:24px;touch-action:none;user-select:none;-webkit-user-select:none;background:#f2e4ba;color:#183a50}.touch-mode .pad #interact{visibility:hidden;pointer-events:none}.touch-mode #touchAction{display:block;width:112px;min-height:72px;font-size:19px;background:#f2c75a;color:#183a50;touch-action:manipulation}.touch-mode #touchHint{display:block;position:absolute;bottom:5px;left:8px;right:8px;text-align:center;font-size:14px;color:#f2e4ba;margin:0}.touch-mode .held{background:#f2c75a!important;transform:translateY(2px)}.touch-mode aside{padding:14px}.touch-mode .game-top{gap:8px;margin-bottom:10px;flex-wrap:wrap}.touch-mode .game-top>div:last-child{display:flex;flex-wrap:wrap;gap:5px}.touch-mode button{min-height:44px;touch-action:manipulation}.touch-mode .game-top button{margin:0;font-size:16px}.touch-mode dialog{width:calc(100vw - 16px);max-height:calc(100dvh - 24px);overflow:auto;overscroll-behavior:contain}.touch-mode .dialog-head{position:sticky;top:0;z-index:3;gap:8px}.touch-mode #content{padding:16px;font-size:19px;overflow-wrap:anywhere}.touch-mode #content h2{font-size:24px}.touch-mode #content .row{flex-wrap:wrap;align-items:flex-start}.touch-mode #content select{max-width:100%;width:100%;min-height:46px;font-size:18px}.touch-mode input:not([type=range]),.touch-mode textarea{font-size:18px!important;max-width:100%}.touch-mode input[type=range]{min-height:44px;touch-action:pan-y;max-width:100%}.touch-mode #missionCanvas{max-width:100%;height:auto}.touch-mode .avatar-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.touch-mode .avatar-card canvas{max-width:100%;height:auto}.touch-mode #toast{max-width:94vw;width:max-content;bottom:max(16px,env(safe-area-inset-bottom));font-size:17px}.touch-mode .game-top h2{font-size:23px}.touch-mode footer{font-size:13px}.touch-mode header{height:auto;min-height:70px;flex-wrap:wrap;padding:10px;gap:8px}.touch-mode header>div{flex-wrap:wrap;justify-content:center;gap:4px}.touch-mode #logo{width:100%;text-align:center}.touch-mode #home h1{font-size:clamp(18px,5vw,38px)}
@media(max-width:900px){.play-layout>aside{grid-column:auto;grid-row:auto}}
@media(max-height:500px) and (orientation:landscape){.touch-mode .viewport{height:240px}.touch-mode #touchDock{min-height:174px}}

#touchDock{display:none}.touch-mode #touchDock{display:flex}
