.egg-fx{position:absolute;left:50%;bottom:calc(var(--pillar-height) + 4px);width:var(--avatar-w);height:var(--avatar-h);transform:translateX(calc(-50% + var(--avatar-x)));pointer-events:none;z-index:6;transition:bottom .65s cubic-bezier(.2,.8,.2,1)}
.egg-fx *{pointer-events:none;box-sizing:border-box}

.egg-fx[data-top-variant="proud"]{--egg-staff-x:12.2%;--egg-staff-y:14%}
.egg-fx[data-top-variant="glow"]{--egg-staff-x:31.4%;--egg-staff-y:4.9%}
.egg-fx[data-top-variant="thumbs"]{--egg-staff-x:11.6%;--egg-staff-y:20.3%}
.egg-fx[data-top-variant="point"]{--egg-staff-x:12.2%;--egg-staff-y:14.2%}
.egg-fx[data-top-variant="finger"]{--egg-staff-x:11.5%;--egg-staff-y:20.2%}

.egg-fx[data-top-variant="kthumbs"]{--egg-sword-x:38.1%;--egg-sword-y:8.7%;--egg-sword-rot:44deg;--egg-star1-x:54.0%;--egg-star1-y:14.6%;--egg-star2-x:43.5%;--egg-star2-y:30.3%}
.egg-fx[data-top-variant="ksalute"]{--egg-sword-x:7.7%;--egg-sword-y:1.0%;--egg-sword-rot:3deg;--egg-star1-x:5.5%;--egg-star1-y:1.0%;--egg-star2-x:11.7%;--egg-star2-y:18.0%}
.egg-fx[data-top-variant="kvictory"]{--egg-sword-x:36.0%;--egg-sword-y:10.6%;--egg-sword-rot:46deg;--egg-star1-x:51.4%;--egg-star1-y:17.3%;--egg-star2-x:40.6%;--egg-star2-y:33.0%}
.egg-fx[data-top-variant="kfist"]{--egg-sword-x:8.2%;--egg-sword-y:0.8%;--egg-sword-rot:3deg;--egg-star1-x:6.2%;--egg-star1-y:1.2%;--egg-star2-x:12.2%;--egg-star2-y:18.2%}
.egg-fx[data-top-variant="kfinger"]{--egg-sword-x:7.8%;--egg-sword-y:1.0%;--egg-sword-rot:3deg;--egg-star1-x:5.8%;--egg-star1-y:0.5%;--egg-star2-x:11.8%;--egg-star2-y:17.5%}

.egg-staff-glow{position:absolute;left:var(--egg-staff-x,9%);top:var(--egg-staff-y,14%);width:72px;height:72px;margin:-36px 0 0 -36px;border-radius:50%;background:radial-gradient(circle,rgba(255,255,255,.95) 0%,rgba(122,215,255,.85) 28%,rgba(64,156,255,.4) 55%,transparent 72%);opacity:0;animation:egg-staff-pulse 1.6s ease-in-out 3}
@keyframes egg-staff-pulse{0%{opacity:0;transform:scale(.4)}35%{opacity:1;transform:scale(1.15)}70%{opacity:.75;transform:scale(.9)}100%{opacity:0;transform:scale(.5)}}
.egg-rune{position:absolute;left:var(--egg-staff-x,9%);top:var(--egg-staff-y,14%);font:700 15px/1 "Noto Sans",Arial,sans-serif;color:#bfeaff;text-shadow:0 0 8px #4ab8ff,0 0 3px #fff;opacity:0;animation:egg-rune-float 2.3s ease-out var(--d,0s) 2}
@keyframes egg-rune-float{0%{opacity:0;transform:translate(0,0) scale(.6)}25%{opacity:1}100%{opacity:0;transform:translate(var(--dx,14px),-48px) scale(1.15) rotate(var(--rr,20deg))}}

.egg-shooting-star{position:absolute;top:var(--ty,4%);left:var(--tx,80%);width:66px;height:3px;border-radius:3px;background:linear-gradient(90deg,#ffd76a,rgba(255,215,106,0));box-shadow:0 0 7px rgba(255,190,60,.8);opacity:0;transform:rotate(158deg);animation:egg-star-fly 1.3s linear var(--d,0s) 1}
.egg-shooting-star:after{content:"";position:absolute;left:-4px;top:-2.5px;width:8px;height:8px;border-radius:50%;background:#fff4c4;box-shadow:0 0 11px 3px rgba(255,180,50,.95)}
@keyframes egg-star-fly{0%{opacity:0;transform:rotate(158deg) translateX(0)}12%{opacity:1}80%{opacity:1}100%{opacity:0;transform:rotate(158deg) translateX(175px)}}

.egg-moon{position:absolute;left:66%;top:0;width:52px;height:52px;border-radius:50%;box-shadow:inset -13px 9px 0 0 #f2dd8f;filter:drop-shadow(0 0 12px rgba(255,225,130,.95)) drop-shadow(0 1px 2px rgba(90,70,20,.35));opacity:0;animation:egg-moon-rise 5s ease-in-out 1}
@keyframes egg-moon-rise{0%{opacity:0;transform:translateY(26px) rotate(-16deg)}22%{opacity:1;transform:translateY(0) rotate(0)}78%{opacity:1}100%{opacity:0;transform:translateY(-8px)}}
.egg-moonlight{position:absolute;left:66%;top:0;width:190px;height:190px;margin:-69px 0 0 -69px;border-radius:50%;background:radial-gradient(circle,rgba(255,232,160,.42) 0%,rgba(255,232,160,.16) 44%,transparent 66%);opacity:0;animation:egg-fade-5s 5s ease-in-out 1}
@keyframes egg-fade-5s{0%{opacity:0}22%{opacity:1}76%{opacity:1}100%{opacity:0}}

.egg-wizardLevitate .character-avatar{animation:egg-levitate 4.6s ease-in-out 1}
@keyframes egg-levitate{0%{transform:translateX(calc(-50% + var(--avatar-x))) translateY(0)}25%{transform:translateX(calc(-50% + var(--avatar-x))) translateY(-16px)}45%{transform:translateX(calc(-50% + var(--avatar-x))) translateY(-10px)}65%{transform:translateX(calc(-50% + var(--avatar-x))) translateY(-16px)}100%{transform:translateX(calc(-50% + var(--avatar-x))) translateY(0)}}
.egg-lev-glow{position:absolute;left:50%;bottom:-3%;width:124px;height:26px;margin-left:-62px;border-radius:50%;background:radial-gradient(ellipse,rgba(155,120,255,.6) 0%,rgba(155,120,255,.2) 55%,transparent 78%);opacity:0;animation:egg-lev-glow 4.6s ease-in-out 1}
@keyframes egg-lev-glow{0%{opacity:0;transform:scaleX(.5)}25%{opacity:1;transform:scaleX(1)}80%{opacity:.9}100%{opacity:0;transform:scaleX(.5)}}
.egg-lev-spark{position:absolute;left:var(--x,50%);bottom:4%;width:5px;height:5px;border-radius:50%;background:#cdb5ff;box-shadow:0 0 7px #9a6dff;opacity:0;animation:egg-lev-spark 1.6s ease-out var(--d,0s) 3}
@keyframes egg-lev-spark{0%{opacity:0;transform:translateY(0)}25%{opacity:1}100%{opacity:0;transform:translateY(-42px)}}

.egg-crystal-flash{position:absolute;left:var(--egg-staff-x,9%);top:var(--egg-staff-y,14%);width:64px;height:64px;margin:-32px 0 0 -32px;border-radius:50%;background:radial-gradient(circle,#fff 0%,rgba(160,225,255,.9) 32%,transparent 70%);opacity:0;animation:egg-crystal-flash 4.8s ease-in-out 1}
@keyframes egg-crystal-flash{0%{opacity:0;transform:scale(.3)}8%{opacity:1;transform:scale(1.2)}16%{opacity:.5;transform:scale(.9)}60%{opacity:.55;transform:scale(1)}100%{opacity:0;transform:scale(.4)}}
.egg-orb{position:absolute;left:34%;top:-13%;width:64px;height:64px;margin-left:-32px;border-radius:50%;background:radial-gradient(circle at 35% 30%,rgba(255,255,255,.9),rgba(190,230,255,.5) 42%,rgba(120,160,255,.24) 68%,transparent 76%);border:2px solid rgba(220,240,255,.65);box-shadow:0 0 18px rgba(140,200,255,.85),inset 0 0 14px rgba(255,255,255,.5);opacity:0;animation:egg-orb 4.8s ease-in-out 1}
@keyframes egg-orb{0%{opacity:0;transform:translateY(20px) scale(.3)}18%{opacity:1;transform:translateY(0) scale(1.07)}28%{transform:scale(.98)}80%{opacity:1}100%{opacity:0;transform:translateY(-12px) scale(.4)}}
.egg-orb-ball{position:absolute;left:50%;top:50%;width:22px;height:22px;margin:-11px 0 0 -11px;border-radius:50%;background:radial-gradient(circle at 33% 30%,#fff,#ffd23f 40%,#e5484d 72%,#8a5cf5);box-shadow:0 1px 4px rgba(0,0,0,.3);opacity:0;animation:egg-orb-ball 4.8s ease-in-out 1}
@keyframes egg-orb-ball{0%,20%{opacity:0;transform:scale(.4)}32%{opacity:1;transform:scale(1)}78%{opacity:1;transform:scale(1)}100%{opacity:0;transform:scale(.5)}}

.egg-knightSalute .character-avatar{animation:egg-salute 1.5s ease 2}
@keyframes egg-salute{30%{transform:translateX(calc(-50% + var(--avatar-x))) rotate(-6deg) scale(1.05)}60%{transform:translateX(calc(-50% + var(--avatar-x))) rotate(3deg)}}
.egg-glint{position:absolute;left:var(--egg-sword-x,8%);top:var(--egg-sword-y,1%);width:9px;height:44%;border-radius:6px;background:linear-gradient(180deg,rgba(255,255,255,0) 0%,rgba(255,255,255,.95) 45%,rgba(255,255,255,0) 100%);opacity:0;mix-blend-mode:screen;animation:egg-glint 1.5s ease-in-out 2}
@keyframes egg-glint{0%{opacity:0;transform:rotate(var(--egg-sword-rot,3deg)) translateY(40px)}35%{opacity:1}70%{opacity:.9;transform:rotate(var(--egg-sword-rot,3deg)) translateY(-28px)}100%{opacity:0;transform:rotate(var(--egg-sword-rot,3deg)) translateY(-42px)}}
.egg-glint-star{position:absolute;left:var(--egg-star1-x,6%);top:var(--egg-star1-y,1%);width:26px;height:26px;color:#fff;filter:drop-shadow(0 0 6px rgba(255,255,255,.9));opacity:0;animation:egg-glint-star 1.5s ease var(--d,0s) 2}
@keyframes egg-glint-star{0%,45%{opacity:0;transform:scale(.2) rotate(0)}62%{opacity:1;transform:scale(1.15) rotate(35deg)}100%{opacity:0;transform:scale(.3) rotate(60deg)}}

.egg-barrier{position:absolute;left:50%;top:24%;width:118px;height:148px;margin-left:-59px;opacity:0;filter:drop-shadow(0 0 14px rgba(255,200,80,.85));animation:egg-barrier 5s ease-in-out 1}
@keyframes egg-barrier{0%{opacity:0;transform:translate(-16px,58px) scale(.12)}16%{opacity:1;transform:translate(0,0) scale(1.06)}24%{transform:scale(.98)}36%{transform:scale(1.03)}48%{transform:scale(1)}78%{opacity:1;transform:scale(1)}100%{opacity:0;transform:translate(-8px,34px) scale(.45)}}
.egg-barrier-spark{position:absolute;left:var(--x,50%);top:var(--y,30%);width:15px;height:15px;color:#ffe9a8;filter:drop-shadow(0 0 6px #ffd23f);opacity:0;animation:egg-barrier-spark 1.5s ease-in-out var(--d,0s) 3}
@keyframes egg-barrier-spark{0%,100%{opacity:0;transform:scale(.3) rotate(0)}40%{opacity:1;transform:scale(1.1) rotate(40deg)}}

.egg-knightDance .character-avatar{animation:egg-dance .64s ease-in-out 6}
@keyframes egg-dance{0%,50%,100%{transform:translateX(calc(-50% + var(--avatar-x))) translateY(0) rotate(0)}25%{transform:translateX(calc(-50% + var(--avatar-x))) translateY(-18px) rotate(-7deg)}75%{transform:translateX(calc(-50% + var(--avatar-x))) translateY(-18px) rotate(7deg)}}
.egg-dance-note{position:absolute;left:var(--x,20%);top:26%;font:700 22px/1 Arial,sans-serif;color:#ff8fb5;text-shadow:0 1px 2px rgba(0,0,0,.25);opacity:0;animation:egg-note-rise 1.9s ease-out var(--d,0s) 2}
@keyframes egg-note-rise{0%{opacity:0;transform:translateY(14px) scale(.7)}25%{opacity:1}100%{opacity:0;transform:translateY(-48px) rotate(14deg)}}

.egg-petal{position:absolute;left:var(--x,50%);top:-14%;width:14px;height:10px;border-radius:62% 38% 55% 45%;background:radial-gradient(circle at 30% 30%,#ffd3e3,#ff9ec1 62%,#f07aa6);box-shadow:0 1px 2px rgba(0,0,0,.15);opacity:0;animation:egg-petal-fall 3.4s ease-in var(--d,0s) 1}
@keyframes egg-petal-fall{0%{opacity:0;transform:translate(0,0) rotate(0)}8%{opacity:1}55%{transform:translate(var(--sx,14px),128px) rotate(200deg)}90%{opacity:1}100%{opacity:0;transform:translate(calc(var(--sx,14px)*-.5),252px) rotate(390deg)}}

.egg-knightJuggle .character-avatar{animation:egg-jug-bob .6s ease-in-out 7}
@keyframes egg-jug-bob{50%{transform:translateX(calc(-50% + var(--avatar-x))) translateY(-4px)}}
.egg-juggle-ball{position:absolute;left:50%;top:52%;width:17px;height:17px;margin:-9px 0 0 -9px;border-radius:50%;box-shadow:0 2px 4px rgba(0,0,0,.28);opacity:0;animation:egg-juggle 1.2s linear var(--d,0s) 3}
@keyframes egg-juggle{0%{opacity:1;transform:translate(-30px,0)}25%{transform:translate(0,-56px)}50%{transform:translate(30px,0)}75%{transform:translate(0,9px)}100%{opacity:1;transform:translate(-30px,0)}}

.egg-kingCrown .character-avatar{animation:egg-crown-wobble 4.4s ease-in-out 1}
@keyframes egg-crown-wobble{0%{transform:translateX(calc(-50% + var(--avatar-x))) translateY(0) rotate(0)}9%{transform:translateX(calc(-50% + var(--avatar-x))) translateY(-11px) rotate(0)}17%{transform:translateX(calc(-50% + var(--avatar-x))) translateY(0) rotate(-8deg)}32%{transform:translateX(calc(-50% + var(--avatar-x))) rotate(-8deg)}42%{transform:translateX(calc(-50% + var(--avatar-x))) rotate(5deg)}52%{transform:translateX(calc(-50% + var(--avatar-x))) rotate(-3deg)}62%{transform:translateX(calc(-50% + var(--avatar-x))) rotate(1.5deg)}72%,100%{transform:translateX(calc(-50% + var(--avatar-x))) rotate(0)}}
.egg-crown-mark{position:absolute;left:62%;top:1%;color:#ffd23f;font:900 26px/1 Arial,sans-serif;text-shadow:0 2px 3px rgba(0,0,0,.4);opacity:0;animation:egg-mark 1.3s ease-out var(--d,0s) 2}
@keyframes egg-mark{0%{opacity:0;transform:scale(.3)}25%{opacity:1;transform:scale(1.2)}55%{transform:scale(1)}100%{opacity:0;transform:translateY(-10px) scale(.7)}}
.egg-crown-drop{position:absolute;left:27%;top:16%;width:9px;height:13px;background:linear-gradient(180deg,#bfe4ff,#79c2f2);border-radius:50% 50% 60% 60%/38% 38% 72% 72%;opacity:0;animation:egg-drop 1.6s ease-in var(--d,0s) 2}
@keyframes egg-drop{0%{opacity:0;transform:translateY(0)}22%{opacity:1}100%{opacity:0;transform:translateY(26px)}}

.egg-decree{position:absolute;left:50%;top:22%;width:106px;margin-left:-53px;padding:14px 9px 52px;background:linear-gradient(180deg,#f7ecd2,#eddcb4);border:1px solid #c9b183;border-radius:6px;box-shadow:0 6px 16px rgba(0,0,0,.35);color:#4a3720;font:800 12px/1.4 Georgia,serif;text-align:center;transform-origin:top center;opacity:0;animation:egg-decree 5.4s ease-in-out 1}
.egg-decree:before,.egg-decree:after{content:"";position:absolute;left:-5px;right:-5px;height:10px;background:linear-gradient(180deg,#d9c294,#b99a63);border-radius:5px;box-shadow:0 1px 3px rgba(0,0,0,.3)}
.egg-decree:before{top:-5px}.egg-decree:after{bottom:-5px}
.egg-decree small{display:block;font:700 10.5px/1.3 Georgia,serif;margin-top:3px;color:#6b5230}
@keyframes egg-decree{0%{opacity:0;transform:scaleY(.08)}9%{opacity:1;transform:scaleY(1.05)}13%{transform:scaleY(1)}68%{opacity:1;filter:none}84%{opacity:.75;filter:sepia(.6) brightness(.72)}100%{opacity:0;transform:translateY(10px) scaleY(.88);filter:sepia(1) brightness(.35)}}
.egg-decree-seal{position:absolute;left:50%;bottom:9px;width:36px;height:36px;margin-left:-18px;border-radius:50%;background:radial-gradient(circle at 35% 30%,#d84848,#a01e24 72%);border:2px solid #7c1418;color:#ffd9d9;font:900 17px/33px Arial,sans-serif;text-align:center;box-shadow:0 2px 5px rgba(0,0,0,.4);opacity:0;animation:egg-seal 5.4s ease-in 1}
@keyframes egg-seal{0%,20%{opacity:0;transform:rotate(-14deg) scale(2.4)}28%{opacity:1;transform:rotate(-14deg) scale(1)}70%{opacity:1}86%{opacity:.7}100%{opacity:0}}
.egg-ember{position:absolute;left:var(--x,50%);top:58%;width:5px;height:5px;border-radius:50%;background:#ff9b3d;box-shadow:0 0 7px #ff6a00;opacity:0;animation:egg-ember 1.25s ease-out var(--d,4s) 1}
@keyframes egg-ember{0%{opacity:0;transform:translateY(0)}20%{opacity:1}100%{opacity:0;transform:translateY(-36px)}}

.egg-kingStatic .character-avatar{animation:egg-static-twitch .5s linear 7}
@keyframes egg-static-twitch{20%{transform:translateX(calc(-50% + var(--avatar-x) - 1.5px)) rotate(-.6deg)}60%{transform:translateX(calc(-50% + var(--avatar-x) + 1.5px)) rotate(.6deg)}}
.egg-static-spark{position:absolute;left:var(--x,50%);top:var(--y,50%);width:16px;height:21px;color:#ffd23f;filter:drop-shadow(0 0 6px rgba(255,210,60,.95));opacity:0;animation:egg-static .95s ease-in-out var(--d,0s) 4}
@keyframes egg-static{0%,100%{opacity:0;transform:scale(.45) rotate(var(--r,0deg))}22%{opacity:1;transform:scale(1.1) rotate(var(--r,0deg))}48%{opacity:.25;transform:scale(.8) rotate(var(--r,0deg))}68%{opacity:1;transform:scale(.95) rotate(var(--r,0deg))}}

.egg-kingGloat .character-avatar{animation:egg-gloat-shake .17s linear 18}
@keyframes egg-gloat-shake{25%{transform:translateX(calc(-50% + var(--avatar-x) - 2px)) rotate(-1.3deg)}75%{transform:translateX(calc(-50% + var(--avatar-x) + 2px)) rotate(1.3deg)}}
.egg-kingGloat .character-column{animation:egg-tremble .15s linear 20}
@keyframes egg-tremble{25%{transform:translateX(calc(-50% - 1.5px))}75%{transform:translateX(calc(-50% + 1.5px))}}
.egg-gloat-aura{position:absolute;left:-8%;top:30%;width:116%;height:64%;background:radial-gradient(ellipse at 50% 56%,rgba(255,50,30,.62) 0%,rgba(255,60,40,.34) 46%,transparent 68%);opacity:0;animation:egg-aura 3.4s ease-in-out 1}
@keyframes egg-aura{0%{opacity:0}22%{opacity:1}72%{opacity:1}100%{opacity:0}}

.egg-kingApplause .character-avatar{animation:egg-applause-bounce .58s ease-in-out 4}
@keyframes egg-applause-bounce{30%{transform:translateX(calc(-50% + var(--avatar-x))) translateY(-8px) scale(1.02)}}
.egg-heart{position:absolute;left:var(--x,50%);top:50%;font:700 18px/1 Arial,sans-serif;color:#ff6f9c;text-shadow:0 0 6px rgba(255,120,160,.6);opacity:0;animation:egg-heart 2.1s ease-out var(--d,0s) 2}
@keyframes egg-heart{0%{opacity:0;transform:translate(0,0) scale(.5)}20%{opacity:1}100%{opacity:0;transform:translate(var(--dx,10px),-76px) scale(1.2)}}

@media(prefers-reduced-motion:reduce){.egg-fx,.egg-fx *{animation:none!important;opacity:0!important}}
