- Server action now echoes firstName, lastName, email, and the privacy
checkbox state on every error path so failed submits don't wipe the form.
- New `attempt` counter on RegisterState drives a remount key per field,
bypassing React's default <form action> reset semantics.
- Error <p> elements gain role="alert" + aria-live="polite" so screen
readers announce validation failures live.
- Privacy checkbox now flags aria-invalid when not accepted and points to
the error message via aria-describedby.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>