/* Opt-in game surfaces only. Forms, dialog copy and browser zoom stay native. */
.gameplay-touch,.gameplay-touch *,#seat-action,#seat-action *,#university-seat-action,#university-seat-action *,#interact-button,#beach-play button,.arcade-choices button,.carnival-throw{-webkit-user-select:none;user-select:none;-webkit-touch-callout:none}
.gameplay-touch{touch-action:none}
.game-controls button,.driving-touch button{min-width:44px;min-height:44px}
.mobile-utilities{display:none}
#touch-run[aria-pressed="true"],#touch-crouch[aria-pressed="true"]{background:#e5c68d;color:#173740;border:2px solid #fff1cd;box-shadow:0 0 0 3px #15364088}
@media(max-width:760px),(pointer:coarse){
 .bottom-left,body .admin-card.character-card{display:none}
 .mobile-utilities{position:fixed;display:flex;gap:6px;left:50%;transform:translateX(-50%);bottom:calc(134px + env(safe-area-inset-bottom,0px));z-index:14}
 .mobile-utilities button{min-width:56px;min-height:44px;border:1px solid #b4ccbf66;border-radius:12px;padding:8px;background:#18353deb;color:#e9e6d3;font-size:11px}
 #touch-controls{display:block}
 #joystick{position:fixed;left:calc(18px + env(safe-area-inset-left,0px));bottom:calc(18px + env(safe-area-inset-bottom,0px));width:98px;height:98px;border-radius:50%;background:#20333b88;border:1px solid #ffffff60}
 #stick{position:absolute;left:28px;top:28px;width:40px;height:40px;border-radius:50%;background:#e8d3adc9}
 .touch-actions{position:fixed;right:calc(16px + env(safe-area-inset-right,0px));bottom:calc(18px + env(safe-area-inset-bottom,0px));display:grid;grid-template-columns:60px 60px;gap:8px;max-width:none;flex-direction:row}
 .touch-actions button{width:60px;min-width:60px;height:48px;min-height:48px;padding:0 3px;border-radius:14px;border:1px solid #b4ccbf99;background:#18353deb;font-size:11px}
 #touch-jump{grid-column:1 / 3;justify-self:end}
 #touch-run{grid-column:2;grid-row:2}
 #touch-crouch{grid-column:1;grid-row:2}
 .interaction,#seat-action,#university-seat-action{position:fixed;left:50%;right:auto;transform:translateX(-50%);bottom:calc(194px + env(safe-area-inset-bottom,0px));min-width:0;max-width:calc(100% - 28px);width:max-content;min-height:44px;padding:9px 12px;z-index:15}
 #university-seat-action{bottom:calc(260px + env(safe-area-inset-bottom,0px))}
 body:has(#seat-action:not([hidden])) .interaction{bottom:calc(260px + env(safe-area-inset-bottom,0px))}
 body:has(#university-seat-action:not([hidden])) .interaction{bottom:calc(326px + env(safe-area-inset-bottom,0px))}
 .interaction button{min-width:44px;min-height:44px}
 .driving-hud{left:calc(12px + env(safe-area-inset-left,0px));max-width:calc(100vw - 24px - env(safe-area-inset-left,0px) - env(safe-area-inset-right,0px))}
}
@media(min-width:560px) and (max-height:500px) and (pointer:coarse){
 .mobile-utilities{bottom:calc(18px + env(safe-area-inset-bottom,0px))}
 .interaction,#seat-action{bottom:calc(136px + env(safe-area-inset-bottom,0px))}
 #university-seat-action{bottom:calc(202px + env(safe-area-inset-bottom,0px))}
 body:has(#seat-action:not([hidden])) .interaction{bottom:calc(202px + env(safe-area-inset-bottom,0px))}
 body:has(#university-seat-action:not([hidden])) .interaction{bottom:calc(268px + env(safe-area-inset-bottom,0px))}
}
