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 47cc501 on main. The eval is 19 of 20 and all 15 tests pass.
What changed in the scorer (src/match/score.ts):
- Waking-hours overlap replaces the raw timezone gap. Each chronotype gets a 16-hour local waking window, both windows shift to UTC, and the signal is the share of the waking day both people are awake. It carries 12 points, taken from the local-rhythm hours signal, so time signals still hold 30 of 100.
- A gap over eight hours is the deal-breaker. The signal sets a hard flag, and the card names it regardless of the points ranking. It also costs a flat 3 points, the same as a PR-size mismatch. Priya and Yara's card now reads "Bengaluru and Mexico City are 11.5h apart, so dinner is a video call" instead of tabs versus spaces.
- Exactly eight hours is not over eight. Ezra and Wren keep their own deal-breaker.
Eval outcome. Kofi and Mei, 9h apart and previously sitting at exactly 50, drop to "keep scrolling". Everyone else stays in band. A sweep showed a cost of 5 would also push the 11.5h soulmates out, so 3 is the largest cost that keeps them.
Two design notes worth knowing:
- Two 16-hour windows always share at least eight hours, so the overlap value floors at 0.5. I tried scaling above that floor and it dropped the eval to 16 of 20, because it takes points from every couple on different rhythms. The docblock records this.
- The earlier ONLY-13 commit, since reverted, gave the long-distance clash zero cost. This version makes it cost points, which is why the eval moved from 20 to 19.
Tests (test/score.test.ts): two new tests cover the deal-breaker rule with the eight-hour boundary, the overlap values for same-city, near and far couples, and that moving Yara to Madrid raises the score and clears the deal-breaker. Three existing assertions moved to pairs within eight hours because distance now takes their deal-breaker slot or their points.