The top title now tracks whichever year is at the top of the year scroll
(e.g. scroll into 2027 and the header reads '2027'), instead of staying on
the displayed month. In month/week/day modes it still shows month + year.
- visibleYear state driven by a YearTopKey preference reporting each year
block's top offset in the 'yearScroll' coordinate space
- headerTitle switches on viewMode
- iOS 16-safe (GeometryReader + PreferenceKey, no scrollPosition API)
(Not build-verified — sim runtime removed to reclaim disk.)
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>