cap + video: hold-to-record (BakTok-style) + Back button on video
cap.mjs:
- Drop the centered CaptureButton entirely. Full screen is now the
hold-to-record surface (touch starts, lift stops + jumps to video),
matching the BakTok pattern: e.is("touch") -> startRecording,
e.is("lift") -> stopRecording -> jump("video").
- Hint copy switches between "hold to cap" / "● recording — release to
stop" / "waiting for mic..." based on state.
- Mic-not-ready case: a held screen during boot queues
pendingRecordStart; mic connect fires startRecording. If the user
releases before mic is ready, we cancel cleanly.
- Swap-camera button stays bottom-right and is excluded from the
hold-to-record hit area.
- Removed the now-redundant tap-to-record fallback path and split
enter/space toggle (kept space as a desktop dev shortcut).
video.mjs:
- Replace the bottom-left ZIP / GIF / MP4 export trio with a single
"Back" TextButton that calls rec.slate() and jump("cap"), so the
cap → review → re-cap → post loop is one tap each way.
- Existing gifBtn/mp4Btn/zipBtn action handlers stay in place — the
button refs are just never created so the ?.act() chain no-ops.
Easy to revive when we want exports back.