/* Touch controls reuse the existing camera/collision system; no scene geometry. */
#view{touch-action:none}
#touch-toggle{display:block;margin:12px auto 0;min-height:40px;padding:7px 14px;background:#293b30;color:#e6e4c9;border-color:#798a6b;font-size:13px;touch-action:manipulation}
#touch-controls{position:fixed;inset:0;z-index:13;pointer-events:none;user-select:none;-webkit-user-select:none}
#touch-controls[hidden]{display:none}
#touch-controls button{pointer-events:auto;touch-action:none;color:#f5e8c6;min-height:44px;font:14px/1.2 system-ui;border:1px solid #e4cc9088;background:#283b30df;border-radius:10px;box-shadow:0 3px 15px #0003}
#touch-controls #touch-stick{position:absolute;left:max(16px,env(safe-area-inset-left));bottom:calc(12px + env(safe-area-inset-bottom));width:130px;height:145px;padding:0;border:0;background:none;box-shadow:none}
#touch-stick .stick-ring{display:block;width:124px;height:124px;border:1px solid #e1d2a288;border-radius:50%;background:#24352bb0;position:relative;pointer-events:none}
#touch-stick .stick-thumb{position:absolute;left:40px;top:40px;width:42px;height:42px;border-radius:50%;background:#c3cba3d9;border:2px solid #f3e9bd;box-shadow:0 2px 8px #15231b88}
#touch-stick i{position:absolute;font:14px system-ui;font-style:normal;color:#e2d9b2aa;line-height:20px}#touch-stick i:nth-child(1){left:55px;top:3px}#touch-stick i:nth-child(2){left:7px;top:51px}#touch-stick i:nth-child(3){right:7px;top:51px}#touch-stick i:nth-child(4){left:55px;bottom:3px}
#touch-stick .stick-caption{display:block;margin-top:5px;font:11px system-ui;text-shadow:0 1px 3px #000}
#touch-stick:disabled{opacity:.35;cursor:default}
#touch-pause{position:absolute;right:max(16px,env(safe-area-inset-right));bottom:calc(18px + env(safe-area-inset-bottom));padding:10px 19px}
#touch-accept{position:absolute;right:max(16px,env(safe-area-inset-right));bottom:calc(76px + env(safe-area-inset-bottom));max-width:190px;padding:10px 14px}
#touch-accept[hidden]{display:none}
.touch-look-hint{position:absolute;right:max(16px,env(safe-area-inset-right));bottom:calc(127px + env(safe-area-inset-bottom));font:11px system-ui;color:#f0e5c3;text-shadow:0 2px 5px #000}
body.touch-mode{overscroll-behavior:none}
body.touch-mode #hint{display:none}
body.touch-mode #community #talk-cue{bottom:calc(170px + env(safe-area-inset-bottom));min-height:44px;padding:10px 14px;max-width:calc(100vw - 30px);width:max-content;font-size:14px;touch-action:manipulation}
body.touch-mode #community #face-selected{bottom:calc(220px + env(safe-area-inset-bottom));min-height:44px;padding:8px 12px}
body.touch-mode #community .person-tag{min-height:36px;min-width:44px;padding:6px 10px;touch-action:manipulation}
body.touch-mode #community .quest-beacon{min-width:44px;min-height:48px;touch-action:manipulation}
body.touch-mode #audio-controls{top:calc(10px + env(safe-area-inset-top));right:max(12px,env(safe-area-inset-right))}
body.touch-mode #audio-controls button{min-height:44px;padding:7px 11px;touch-action:manipulation}
body.touch-mode #community #task-window:not([data-panel-positioned]){top:calc(64px + env(safe-area-inset-top));left:max(10px,env(safe-area-inset-left));width:150px;max-height:43dvh}
body.touch-mode #community #task-window[open]:not([data-panel-positioned]){width:min(310px,calc(100vw - 24px));z-index:6}
body.touch-mode #community #task-window>summary{min-height:48px;padding:8px 10px;font-size:15px}
body.touch-mode #community #task-window:not([open])>summary .panel-tools{display:none}
body.touch-mode #community #lot-navigation:not([data-panel-positioned]){top:calc(64px + env(safe-area-inset-top));right:max(10px,env(safe-area-inset-right));max-width:calc(100vw - 24px);width:160px}
body.touch-mode #community #lot-navigation:has(#lot-mini-map:not([hidden])){width:min(310px,calc(100vw - 24px));z-index:7}
body.touch-mode #community #lot-mini-map{width:100%;max-height:52dvh;padding:10px}
body.touch-mode #community #lot-navigation:not(:has(#lot-mini-map:not([hidden])))>.panel-tools{display:none}
body.touch-mode #community #map-toggle{min-height:44px;font-size:14px;padding:8px 12px;touch-action:manipulation}
body.touch-mode #community #people-left{font-size:12px;padding:7px 8px}
body.touch-mode #caption{bottom:calc(226px + env(safe-area-inset-bottom));max-height:40dvh;overflow:auto;font-size:16px;max-width:calc(100vw - 24px)}
body.touch-mode #willa-choice,body.touch-mode #ticket-choice{bottom:calc(172px + env(safe-area-inset-bottom))!important;width:max-content;max-width:calc(100vw - 24px);white-space:normal}
body.touch-mode #willa-choice button,body.touch-mode #ticket-choice button{min-height:48px;touch-action:manipulation}
body.touch-mode #willa-choice small,body.touch-mode #ticket-choice small{display:none}
body.touch-mode #prompt{display:none}
body.touch-mode #community #talk{max-height:calc(100dvh - 40px - env(safe-area-inset-top) - env(safe-area-inset-bottom));bottom:calc(18px + env(safe-area-inset-bottom))}
body.touch-mode #community:has(#talk:not([hidden])) #task-window,body.touch-mode #community:has(#peach-panel:not([hidden])) #task-window{display:none}
body.touch-mode #community #peach-panel{max-height:calc(100dvh - 32px - env(safe-area-inset-top) - env(safe-area-inset-bottom));bottom:calc(16px + env(safe-area-inset-bottom))}
@media(max-height:500px){body.touch-mode #community #task-window:not([data-panel-positioned]),body.touch-mode #community #lot-navigation:not([data-panel-positioned]){top:12px}body.touch-mode #audio-controls{left:50%;right:auto;transform:translateX(-50%);flex-wrap:nowrap}body.touch-mode #community #talk-cue{bottom:calc(16px + env(safe-area-inset-bottom));max-width:calc(100vw - 360px)}body.touch-mode #caption{bottom:155px}body.touch-mode #lot-mini-map{max-height:60dvh}}

body.touch-mode .community-review-toggle{bottom:calc(225px + env(safe-area-inset-bottom))!important;right:12px!important}
body.touch-mode #community #photo-camera .photo-controls{bottom:calc(170px + env(safe-area-inset-bottom));max-height:45dvh;overflow:auto}

.touch-mode #community:has(#monte-panel:not([hidden])) #task-window{display:none}
.touch-mode #monte-panel{bottom:max(16px,env(safe-area-inset-bottom));max-height:calc(100dvh - max(16px,env(safe-area-inset-top)) - max(16px,env(safe-area-inset-bottom)))}
