@keyframes drawLine{0%{stroke-dashoffset:100%;opacity:.2}70%{opacity:1}to{stroke-dashoffset:0%;opacity:1}}.connection-line{stroke:url(#rose-gold-gradient);stroke-width:3;filter:drop-shadow(0 0 8px #f7cac9cc);stroke-dasharray:120;stroke-dashoffset:120;animation:drawLine 1.1s cubic-bezier(.7,.1,.3,1) forwards}.node-glow{fill:#fff6e9;filter:blur(2px) drop-shadow(0 0 8px #f7cac9cc);opacity:.7;animation:nodePulse 2.3s cubic-bezier(.7,.1,.3,1) infinite alternate}@keyframes nodePulse{0%{opacity:.5;transform:scale(1)}50%{opacity:1;transform:scale(1.16)}to{opacity:.7;transform:scale(1)}}.particle{fill:#f7cac9;opacity:.55;filter:blur(1.5px) drop-shadow(0 0 6px #f7cac9);animation:particleFloat 3.2s infinite alternate}@keyframes particleFloat{0%{transform:translateY(0) scale(1);opacity:.4}50%{transform:translateY(-12px) scale(1.18);opacity:1}to{transform:translateY(0) scale(1);opacity:.55}}