Stores the blocklist as sorted 64-bit FNV-1a hashes in flash (LittleFS) and
binary-searches them — 130k+ domains in ~1MB flash, ~40KB RAM. UDP DNS server
answers 0.0.0.0 for blocked domains and forwards the rest upstream.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>