Weight Timezone Overlap for Couple Matching

ONLY-13: Weight timezone overlap. Long-distance is fine for code review, not for dinner.
Two of our best-scoring couples are eleven hours apart and the reasons list says nothing about it. In the scorer, make overlap in waking hours a first-class weighted signal, and when the gap between two profiles is more than eight hours, surface it as the deal-breaker. npm run eval must not regress below 17 of 20 and npm test must pass. Commit when done.
Committed as d959d30 on main. The eval holds at 20 of 20 and all 16 tests pass.
What changed in the scorer
- The 7-point linear timezone signal is replaced by a 15-point waking-hours overlap signal. Each chronotype gets a 16-hour local waking window, both windows shift to UTC, and the value is the share of the day both people are awake. Night owls in Bengaluru and Mexico City overlap 8 hours. An owl and an early bird in the same city overlap 12.
- Hours keeps its 23 points. The extra overlap weight came from stack, tone, PR size, pairing and indentation, and the weights still sum to 100.
- A gap over eight hours marks the signal as a hard clash, and a hard clash takes the deal-breaker slot regardless of the points ranking. Exactly eight hours does not trigger it.
Judgment call to flag
I gave the long-distance clash no flat cost. A sweep against the labelled couples showed a cost of 3 or more knocks Priya and Yara out of soulmates and Kofi and Mei out of worth a coffee, and both labels were written knowing the gap. So Priya and Yara still score 78, but the card now reads "Bengaluru and Mexico City are 11.5h apart, so dinner is a video call" instead of "Spaces versus tabs". If you want distance to move the score too, the constant is one line and the eval will drop to 18 of 20.
Tests
- Three new tests cover the deal-breaker rule and its eight-hour boundary, the overlap values for three kinds of couple, and that moving Yara to Priya's timezone raises the score and clears the deal-breaker.
- Two existing assertions switched pairs. Mei and Kofi and Sasha and Ezra are both over eight hours apart, so distance now rightly takes their deal-breaker slot. Sasha and Kofi and Sasha and Diego carry the tabs and no-shared-language checks instead.
Nothing else was touched. The tracker mock still shows ONLY-13 as Todo, since it is a static demo prop.