Sweep stale entries every 5 minutes to prevent unbounded memory growth from IPs that touch the login endpoint once and never return.
Rate-limit POST /admin/login at 10 attempts per 60 seconds per IP. Stored in Volumen.login_attempts so tests can reset the counter.