Subset fonts number GIDs by document encounter order, not sorted order. The sequential remap scrambled character mappings, losing 2,532+ CJK characters. Now promotes TrueType cmap fallback when it has more entries than the primary ToUnicode CMap. Also adds CJK scoring to score_text() as defense-in-depth. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>