@keyframes pulse{0%,to{transform:scale(1)}50%{transform:scale(1.2)}}.graffiti{color:var(--pink-hot);opacity:.8;text-shadow:2px 2px 8px var(--pink-bg-alt);font-size:2.5em;animation:2.5s linear forwards graffiti-fall;position:absolute}@keyframes graffiti-fall{0%{opacity:.8;transform:translateY(-50px)scale(1)rotate(0)}50%{opacity:1}to{opacity:0;transform:translateY(100vh)scale(1.2)rotate(15deg)}}.glitter{color:var(--pink-deep);text-shadow:0 0 6px #ffb6c199,0 0 14px #ff4da640;position:relative}.glitter span{opacity:0;will-change:opacity, transform;transition:opacity .14s,transform .26s cubic-bezier(.2,.8,.2,1);display:inline;transform:translateY(8px)scale(.98)}.sparkle{pointer-events:none;background:radial-gradient(circle at 30% 30%, #fffffff2, #ffd6e8e6 40%, var(--pink-hot) 70%);opacity:0;width:8px;height:8px;filter:drop-shadow(0 0 6px var(--pink-light));z-index:30;border-radius:50%;animation:.7s ease-out forwards sparkle-anim;position:absolute;transform:translate(-50%,-50%)scale(.6)}.sparkle.large{width:12px;height:12px;animation-duration:.9s}.sparkle.warm{background:radial-gradient(circle at 30% 30%, #ffffffe6, #ffb6c1e6 40%, var(--pink-deep) 70%)}@keyframes sparkle-anim{0%{opacity:1;transform:translate(-50%,-50%)scale(.6)translateY(0)}60%{opacity:1;transform:translate(-50%,-100%)scale(1.2)}to{opacity:0;transform:translate(-50%,-140%)scale(.2)}}.reveal{opacity:0;transition:opacity .7s,transform .7s;transform:translateY(40px)}.reveal.visible{opacity:1;transform:translateY(0)}.reveal[data-delay="1"]{transition-delay:.1s}.reveal[data-delay="2"]{transition-delay:.2s}.reveal[data-delay="3"]{transition-delay:.3s}.reveal[data-delay="4"]{transition-delay:.4s}.timeline-entry{opacity:0;transition:opacity .6s,transform .6s}.timeline-entry:nth-child(odd){transform:translate(-30px)}.timeline-entry:nth-child(2n){transform:translate(30px)}.timeline-entry.visible{opacity:1;transform:translate(0)}@keyframes float-up{0%{opacity:0;transform:translateY(100vh)rotate(0)}10%{opacity:.12}90%{opacity:.12}to{opacity:0;transform:translateY(-10vh)rotate(25deg)}}@keyframes music-pulse{0%,to{box-shadow:0 4px 16px var(--shadow-pink)}50%{box-shadow:0 4px 24px #ff4da659}}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}.floating-heart,.sparkle{display:none}}
