.hero-copy{opacity:0;transform:translateY(28px);animation:copy-rise .9s cubic-bezier(.2,.8,.2,1) .55s forwards}.hero-art{opacity:0;transform:translateY(110vh) scale(.9);transform-origin:50% 100%;animation:balloon-flight 1.45s cubic-bezier(.16,.84,.24,1) .08s forwards}.hero-balloon{animation:balloon-sway 5s ease-in-out 1.65s infinite}.hero-string,.hero-ribbon,.hero-knot{animation:line-settle .8s ease-out 1.25s both}.hero-caption{opacity:0;animation:copy-rise .8s ease-out 1.35s forwards}.sparkle{opacity:0;transform:scale(.2) rotate(-20deg);animation:star-pop .7s cubic-bezier(.2,1.6,.4,1) 1.45s forwards,star-twinkle 2.5s ease-in-out 2.15s infinite}.s2{animation-delay:1.58s,2.45s}.s3{top:24%;right:26%;font-size:17px;animation-delay:1.7s,2.7s}.s4{bottom:26%;left:22%;font-size:15px;animation-delay:1.83s,2.9s}@keyframes copy-rise{to{opacity:1;transform:none}}@keyframes balloon-flight{0%{opacity:0;transform:translateY(110vh) scale(.9)}60%{opacity:1;transform:translateY(-18px) scale(1.02)}82%{transform:translateY(8px) scale(.995)}100%{opacity:1;transform:translateY(0) scale(1)}}@keyframes balloon-sway{0%,100%{transform:rotate(6deg) translateY(0)}50%{transform:rotate(2deg) translateY(-8px)}}@keyframes line-settle{0%{opacity:0;transform:translateY(-16px)}100%{opacity:1;transform:translateY(0)}}@keyframes star-pop{0%{opacity:0;transform:scale(.2) rotate(-20deg)}70%{opacity:1;transform:scale(1.3) rotate(12deg)}100%{opacity:1;transform:scale(1) rotate(0)}}@keyframes star-twinkle{0%,100%{filter:drop-shadow(0 0 0 transparent);opacity:.7}50%{filter:drop-shadow(0 0 12px #f39ba6);opacity:1;transform:scale(1.24) rotate(8deg)}}@media(prefers-reduced-motion:reduce){.hero-copy,.hero-art,.hero-caption,.sparkle,.hero-balloon,.hero-string,.hero-ribbon,.hero-knot{animation:none;opacity:1;transform:none}}
