New book/tools/audit/check_purpose_overflow.py: for each teaching chapter,
locates in the built PDF the page holding the Purpose hook and the page
holding the paragraph's last words; flags any chapter whose Purpose ends on
a later page than it starts. Uses plain pdftotext (the -layout mode
interleaves margin-stack/running-header labels into the paragraph and breaks
matching), normalizes curly quotes/em-dashes, falls back to shorter anchors.
Wired into preflight.sh as step 5. Run per volume:
python3 book/tools/audit/check_purpose_overflow.py <pdf> --vol vol1