refactor: show favorited state in non-interactive story heart
Extract heartIcon and particleBurstOverlay helpers, thread story through
bottomInputBar so the non-interactive variant can reflect favorited state
and trigger the particle burst on change.
Also fix Logger self-capture in StoryTimer.resume and tighten the latest
comment crossfade to 0.2s.