fix: story comment buttons + like persistence
Sheet collapse bug: tap zones overlapped with the comment input bar,
letting taps leak through to goToNext() which called advanceStory and
restarted the timer. Added an 80pt bottom inset to the tap zones so
they don't cover the comment bar, and scoped allowsHitTesting correctly
back onto the tap zones VStack (not the hearts ForEach). Added
.buttonStyle(.plain) + explicit contentShape on each input bar button
so Swift reliably routes taps to them.
Favorite persistence bug: story viewer state wasn't surviving a close +
reopen because the client re-fetches stories and the server doesn't
yet return viewer state for stories. Added StoryFavoriteCache —
session-scoped storage of storyUri → favUri that toggleStoryFavorite
writes to and presentStories overlays onto fetched stories.