Shared Unicode normalization
Ingestion and query paths use the same normalizer. It applies Unicode NFKC normalization, lowercases names, folds Latin diacritics such as Müller to muller, preserves native-script letters such as Cyrillic, Arabic, and CJK, strips punctuation, and collapses whitespace.