The route does not guess, randomize, or depend on browser locale settings for lowercasing. Instead, each name is normalized with Unicode NFKC, lowercased without locale-specific behavior, cleaned down to letters plus spaces, apostrophes, and hyphens, then sorted by code point before serialization. That means A + B and B + A generate the same pair key.
The pair key is length-prefixed before hashing so ambiguous joins do not collide. The hash itself is a byte-level FNV-1a 32-bit unsigned calculation, and the raw score is reduced into a stable 0..100 range. Identical normalized pairs keep a deterministic high floor so exact matches still feel playful rather than strangely low.