@media (max-width: 640px):
- backdrop loses its 1 rem inset; modal goes 100vw × 100vh with
no border-radius
- crop modal body keeps ~20 px horizontal padding so cropper
corner handles stay safely outside Android's edge-swipe
back-gesture zone (the corner DRAG is what triggers it; a tap
on a button at the edge doesn't)
- camera viewfinder body has zero padding — video fills the
whole space
- footer has minimal 0.5 rem padding so the rotate / invert /
cancel / check buttons hug the screen edges
- iOS notch / home-indicator insets honoured via
env(safe-area-inset-*)
Doesn't change the camera-confirm behaviour — that's the OS-camera
fallback path that fires when getUserMedia is denied for not being
a secure context (i.e. http://lan-ip:8000 from the phone, not
HTTPS or localhost).