Login
Single user, password only (POST /auth/login). No shell around it.
Desktop and mobile
- The password field is focused on load;
Entersubmits.autocomplete="current-password"so password managers work. The[eye]icon button (44 × 44 hit,[eye-off]while the text shows) shows or hides the text. - The error line’s 20 px are reserved, so the button does not move when an error shows.
- Submitting: button in loading state (
Logging in…), input read-only. - 401:
Incorrect passwordin--destructive; the input keeps its value, selected. - 429:
Too many attempts · try again in 42s. The button stays disabled and the seconds count down; it re-enables at zero. - Network error:
No response from server. - Success: go to the route the user first asked for (default
/live), with no transition beyond the normal route cross-fade. - Theme: follows the saved theme if the browser has it cached, else the system theme, else dark.