Choreography of validation
Two login forms, one mock backend that rejects every credential after ~800ms. Type an invalid email, tab away, then start fixing it and watch when each form scolds you and when it forgives you. Push the "Sign in" button, get a server error, then start fixing the email and watch when each form clears the error.
Naive · too eager
Validates on every keystroke, even mid-typing. The server banner lingers while you fix your input.
Reward early · punish late
Errors are born on blur and die the instant you start fixing them. The server verdict clears the moment you type.