Honeypot + signed nonce + time-check
Catches
Dumb bots that fill every input they see, no-JS scrapers, replay attacks using old form HTML.
How it works
Every form ships with a randomly-named hidden field bots can't resist filling. A signed HMAC-SHA256 nonce + a render-timestamp prevent replays — submissions older than 30 minutes get rejected. The honeypot field name rotates per page-load so simple regex scrapers can't learn it.
Slips through
Sophisticated bots that execute JS and skip hidden inputs.