···8899@Observable
1010@MainActor
1111-private final class HeartAnimationState: Identifiable {
1111+final class HeartAnimationState: Identifiable {
1212 let id = UUID()
1313 let position: CGPoint
1414 let rotation: Double
···5252 }
5353}
54545555-private struct DoubleTapHeartView: View {
5555+struct DoubleTapHeartView: View {
5656 let state: HeartAnimationState
57575858 var body: some View {
···94949595// MARK: - Subtle like-button particle burst
96969797-private struct LikeParticleView: View {
9797+struct LikeParticleView: View {
9898 let index: Int
9999100100 /// Deterministic per slot — no random state stored in parent