.gift-effect-sway .gift-object{transform-origin:50% 85%;animation:gift-sway 2.4s ease-in-out infinite}
.gift-effect-spin .gift-object{animation:gift-spin 4s ease-in-out infinite}
.gift-effect-flutter .gift-object{animation:gift-flutter 1.8s ease-in-out infinite}
.gift-effect-bounce .gift-object{animation:gift-bounce 1.8s ease-in-out infinite}
.gift-effect-pop .gift-object{animation:gift-pop 2.2s ease-in-out infinite}
.gift-effect-dash .gift-object{animation:gift-dash 2.5s ease-in-out infinite}
.gift-effect-flutter .gift-particle,.gift-effect-pop .gift-particle{animation:gift-glitter 2.8s ease-in-out infinite}
.simple-live-gift{position:fixed;z-index:1500;inset:auto 16px 100px auto;display:flex;flex-direction:column;align-items:center;pointer-events:none;max-width:min(240px,75vw);padding:12px 20px;border:1px solid #e4c48650;border-radius:24px;background:radial-gradient(ellipse at top,#a57b2938,#171310ed 72%);color:#f6dfb2;box-shadow:0 12px 50px #0005;animation:simple-gift-arrive 3.2s ease both}
.simple-live-gift strong{font-size:17px;max-width:100%;overflow-wrap:anywhere;text-align:center}
.simple-live-gift small{font-size:14px;margin-top:4px;direction:ltr;color:#dec399}
@keyframes gift-sway{0%,100%{transform:rotate(-12deg)}50%{transform:rotate(12deg) translateY(-4px)}}
@keyframes gift-spin{0%,100%{transform:rotate(-15deg) scale(.97)}50%{transform:rotate(345deg) scale(1.06)}}
@keyframes gift-flutter{0%,100%{transform:translateY(3px) rotate(-7deg) scaleX(1)}25%{transform:translateY(-6px) rotate(5deg) scaleX(.78)}50%{transform:translateY(-10px) rotate(-4deg) scaleX(1)}75%{transform:translateY(-4px) rotate(7deg) scaleX(.78)}}
@keyframes gift-bounce{0%,100%{transform:translateY(2px) scale(1.04,.96)}45%{transform:translateY(-13px) scale(.97,1.03)}65%{transform:translateY(0) scale(1.06,.94)}}
@keyframes gift-pop{0%,100%{transform:scale(.94) rotate(-3deg)}35%{transform:scale(1.13) rotate(4deg)}55%{transform:scale(1) rotate(-2deg)}}
@keyframes gift-dash{0%,100%{transform:translateX(10px) rotate(-3deg)}45%{transform:translateX(-12px) rotate(2deg)}65%{transform:translateX(-12px) translateY(-3px)}}
@keyframes simple-gift-arrive{0%{opacity:0;transform:translateY(32px) scale(.85)}12%,85%{opacity:1;transform:translateY(0) scale(1)}100%{opacity:0;transform:translateY(-20px) scale(.96)}}
@media(prefers-reduced-motion:reduce){.gift-art *,.simple-live-gift{animation:none!important}}

/* Original layered scenes. Animate individual parts rather than an emoji. */
.gift-scene{display:block;width:100%;height:100%;overflow:visible;filter:drop-shadow(0 5px 5px #0005)}
.gift-scene g,.gift-scene path,.gift-scene ellipse,.gift-scene circle{transform-box:view-box}
.scene-animated .scene-glints{animation:scene-glints 2s ease-in-out infinite;transform-origin:128px 112px}
.scene-animated .scene-pot{transform-origin:172px 91px;animation:scene-pour-pot 5s ease-in-out infinite}
.scene-pour{stroke-dasharray:75;stroke-dashoffset:0}
.scene-animated .scene-pour{animation:scene-pour-stream 5s linear infinite}
.scene-animated .scene-coffee{transform-origin:185px 151px;animation:scene-cup-fill 5s ease infinite}
.scene-animated .scene-steam{animation:scene-steam 2.2s ease-out infinite;transform-origin:185px 139px}
.scene-animated .scene-hands{animation:scene-hands-rise 5s cubic-bezier(.2,.65,.3,1) infinite}
.scene-animated .scene-heart-lift{transform-origin:128px 119px;animation:scene-heart-beat 1.15s ease-in-out infinite}
.scene-animated .scene-bottle{transform-origin:128px 180px;animation:scene-bottle-press 5s ease infinite}
.scene-animated .scene-mist{transform-origin:168px 49px;animation:scene-mist-spray 2.5s ease-out infinite}
.scene-animated .scene-shell-lid{transform-origin:128px 151px;animation:scene-shell-open 5s ease infinite}
.scene-animated .scene-pearl{animation:scene-pearl-rise 5s ease infinite}
.scene-animated .scene-lantern{transform-origin:128px 29px;animation:scene-lantern-sway 3s ease-in-out infinite}
.scene-animated .scene-light,.scene-animated .scene-flame{animation:scene-lantern-glow 1.4s ease-in-out infinite}
.scene-animated .scene-rose{transform-origin:128px 173px;animation:scene-rose-bloom 5s ease infinite}
.scene-animated .scene-heart-target{transform-origin:128px 120px;animation:scene-heart-beat 1.4s ease infinite}
.scene-animated .scene-arrow{animation:scene-arrow-fly 5s cubic-bezier(.2,.7,.2,1) infinite}
.scene-animated .scene-chest-lid{transform-origin:128px 120px;animation:scene-shell-open 5s ease infinite}
.scene-animated .scene-coins{animation:scene-coins-rise 5s ease infinite}
.scene-animated .scene-ring{transform-origin:128px 145px;animation:scene-ring-turn 5s ease-in-out infinite}
.scene-animated .scene-fronds{transform-origin:128px 102px;animation:scene-palm-unfurl 5s ease infinite}
.scene-animated .scene-palm-trunk{transform-origin:128px 196px;animation:scene-palm-grow 5s ease infinite}
@keyframes scene-glints{0%,100%{opacity:.2;transform:scale(.88)}50%{opacity:1;transform:scale(1.05)}}
@keyframes scene-pour-pot{0%,15%,85%,100%{transform:rotate(0)}32%,68%{transform:rotate(18deg)}}
@keyframes scene-pour-stream{0%,28%,74%,100%{opacity:0;stroke-dashoffset:75}35%,65%{opacity:1;stroke-dashoffset:0}70%{opacity:0;stroke-dashoffset:-75}}
@keyframes scene-cup-fill{0%,30%{opacity:0;transform:scaleX(.6)}68%,100%{opacity:1;transform:scaleX(1)}}
@keyframes scene-steam{0%{opacity:0;transform:translateY(7px)}30%{opacity:.75}100%{opacity:0;transform:translateY(-13px)}}
@keyframes scene-hands-rise{0%,8%{transform:translateY(48px);opacity:0}30%,85%{transform:translateY(0);opacity:1}100%{transform:translateY(-8px);opacity:0}}
@keyframes scene-heart-beat{0%,100%{transform:scale(1)}20%{transform:scale(1.09)}40%{transform:scale(1)}60%{transform:scale(1.06)}}
@keyframes scene-bottle-press{0%,15%,80%,100%{transform:rotate(0)}25%,60%{transform:rotate(-7deg)}}
@keyframes scene-mist-spray{0%,15%{opacity:0;transform:scale(.3)}35%{opacity:.85}100%{opacity:0;transform:translate(18px,-8px) scale(1.2)}}
@keyframes scene-shell-open{0%,10%,100%{transform:scaleY(.12)}35%,82%{transform:scaleY(1)}}
@keyframes scene-pearl-rise{0%,20%,100%{transform:translateY(28px) scale(.65);opacity:0}44%,85%{transform:translateY(-4px) scale(1);opacity:1}}
@keyframes scene-lantern-sway{0%,100%{transform:rotate(-7deg)}50%{transform:rotate(7deg)}}
@keyframes scene-lantern-glow{0%,100%{opacity:.65}45%{opacity:1}60%{opacity:.8}}
@keyframes scene-rose-bloom{0%,12%{transform:scale(.3);opacity:0}42%,88%{transform:scale(1);opacity:1}100%{transform:scale(1.02);opacity:0}}
@keyframes scene-arrow-fly{0%,15%{opacity:0;transform:translate(-80px,50px)}40%,82%{opacity:1;transform:translate(0,0)}100%{opacity:0;transform:translate(14px,-9px)}}
@keyframes scene-coins-rise{0%,24%,100%{opacity:0;transform:translateY(37px)}48%{opacity:1;transform:translateY(-20px)}72%,85%{opacity:1;transform:translateY(0)}}
@keyframes scene-ring-turn{0%,100%{transform:rotate(-14deg) scale(.8)}50%{transform:rotate(12deg) scale(1.06)}}
@keyframes scene-palm-grow{0%,10%{transform:scaleY(.15)}40%,100%{transform:scaleY(1)}}
@keyframes scene-palm-unfurl{0%,22%{transform:scale(.12);opacity:0}52%,100%{transform:scale(1);opacity:1}}
@media(prefers-reduced-motion:reduce){.scene-animated *{animation:none!important}.scene-pour{stroke-dashoffset:0}}
