/* Pan the page normally. The image stage retains touch-action:none. */
html,body,html :where(*){touch-action:pan-x pan-y pinch-zoom}
/* Text inputs must not trigger mobile browser focus magnification. */
@media(any-pointer:coarse){
 html body input:not([type=range]):not([type=checkbox]):not([type=radio]):not([type=file]):not([type=button]):not([type=submit]):not([type=reset]):not([type=color]),
 html body textarea,html body select,html body [contenteditable=true]{font-size: max(16px,1rem)!important}
}

/* Ordinary controls share native page panning; custom image gestures stay local. */
html :is(button,a,summary,[role="button"],[role="tab"],[role="checkbox"]){touch-action:pan-x pan-y pinch-zoom!important}
html :is(input[type="range"],[role="slider"]){touch-action:pan-y pinch-zoom!important}
html :is(button,a,[role="button"]) img{-webkit-user-drag:none;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;pointer-events:none}
