@keyframes heart-float{0%,100%{transform:translateY(-8px) rotate(-0.8deg)}50%{transform:translateY(9px) rotate(0.8deg)}}@keyframes heart-hold-tremble{0%{transform:translate(-1px,-1px) rotate(-0.35deg)}25%{transform:translate(1px,0) rotate(0.25deg)}50%{transform:translate(-0.5px,1px) rotate(-0.2deg)}75%{transform:translate(0.8px,-0.5px) rotate(0.35deg)}100%{transform:translate(-1px,-1px) rotate(-0.35deg)}}@keyframes heart-connection{0%,100%{opacity:0.5;transform:translate(-50%,-50%) scale(0.8)}50%{opacity:1;transform:translate(-50%,-50%) scale(1.25)}}@keyframes heart-atmosphere-breathe{0%,100%{opacity:0.22;transform:scale(0.98)}50%{opacity:0.42;transform:scale(1.04)}}@keyframes heart-star-twinkle{0%,74%,100%{opacity:0;transform:translateY(0) scale(0.25)}81%{opacity:0.32}88%{opacity:var(--star-opacity);transform:translateY(var(--star-drift-negative)) scale(1)}94%{opacity:0.18;transform:translateY(var(--star-drift)) scale(0.55)}}@keyframes heart-star-burst{0%,100%{opacity:0.05;transform:scale(0.35) rotate(0deg)}38%{opacity:var(--star-opacity);transform:scale(1.35) rotate(15deg)}62%{opacity:0.22;transform:scale(0.7) rotate(-8deg)}}@media (prefers-reduced-motion:reduce){.heart-rhythm-shell::before,.heart-rhythm-atmosphere::after,.heart-star,.heart-pair__float,.heart-pair__shape,.heart-pair__connection{animation:none}.heart-pair__shape{transform:scale(1)}.heart-rhythm-wave{opacity:0}}