Status routing and partials
htmx 4 swaps every response; hx-status:<code> says where each status goes. A 422 lands in #errors, a 5xx body is dropped, and a 200 fills #result while an <hx-partial> in the same response updates the footer.
Submit the form: an invalid signup answers 422, a valid one 200.