Previous attempt was actually-broken — typo notwithstanding, the
mix of 100vh, no explicit flex-shrink, and inconsistent body
padding was easy for the body to grow and shove the footer
buttons offscreen.
This pass:
- 100dvh instead of 100vh (mobile chrome / address bar collapses
don't cause overflow / under-shoot)
- flex-shrink: 0 on .modal-header and .modal-footer so the body
can never squeeze them out
- explicit background on the footer so it's not transparent
against whatever's behind
- camera <video> fills modal-body with object-fit: contain
- body padding kept just enough (~16 px) for crop handle safety