* text: keep hyphenation and line-breaking work linear and bounded
- hyphen::dict: inflate with a 64 MiB limit (MAX_INFLATED).
- hyphenate_word: walk the sorted break offsets with one iterator.
- patgen::score: index expected breaks once per word.
- patterns: FxHasher's finish rotates the multiplied bits down so packed
keys sharing low bits spread over buckets; at most MAX_PATTERNS (1M).
- linebreak: Sums precomputes each item's next box or forced break,
so next_start is a lookup instead of a scan per candidate.
* address review: refuse to serialize hyphenation dictionaries past the inflate limit