feat: like button particle burst, symbol transition, and double-tap fixes
- Add LikeParticleView: subtle purple hearts that float from the heart
button on like (engagement row tap and photo double-tap)
- Support N concurrent bursts via [UUID] array so rapid taps stack
- Double-tap always bursts particles even if already liked
- Add .contentTransition(.symbolEffect .replace.downUp.byLayer) on the
heart icon for a smooth heart → heart.fill swap
- Animate HStack layout on favCount change so sibling buttons slide smoothly
- Fix double-tap heart position on landscape photos with black bars:
PinchZoomOverlay is now a ZStack sibling of LazyImage so the UIView
covers the full carousel slot — coordinates map correctly with no math,
and black-bar areas are tappable
- Consolidate shareWiggle + didLongPressShare → shareAnimating
- Extract addParticleBurst() and triggerFavoriteToggle() to remove duplication