#poi-fx{position:fixed;inset:0;z-index:9999;overflow:hidden;-webkit-user-select:none;user-select:none;touch-action:none;visibility:hidden;opacity:0;background:#0b0b14;transition:opacity .25s ease,visibility .25s;--poi-actor-size:min(54vw,260px);--poi-medal-size:min(14vw,96px);--poi-fist-foot-pad:.0638;--poi-dance-foot-pad:.1;}
#poi-fx.poi-fx-visible{visibility:visible;opacity:1;}
#poi-fx.poi-fx-ending{opacity:0;transition:opacity .25s ease;}

.poi-fx-stage{position:absolute;inset:0;overflow:hidden;}
.poi-fx-flash{position:absolute;inset:0;pointer-events:none;opacity:0;z-index:2;mix-blend-mode:screen;}
.poi-fx-charge{position:absolute;inset:0;pointer-events:none;opacity:0;z-index:1;background:rgba(11,11,20,.4);}
.poi-fx-charge::after{content:'';position:absolute;inset:0;background:conic-gradient(from 180deg at 50% 120%,transparent 0deg,#F6C142 2deg,transparent 4deg,transparent 44deg,#F6C142 46deg,transparent 48deg,transparent 88deg,#F6C142 90deg,transparent 92deg,transparent 136deg,#F6C142 138deg,transparent 140deg),conic-gradient(from 0deg at 50% -20%,transparent 0deg,#F6C142 2deg,transparent 4deg,transparent 44deg,#F6C142 46deg,transparent 48deg,transparent 88deg,#F6C142 90deg,transparent 92deg,transparent 136deg,#F6C142 138deg,transparent 140deg);opacity:.55;mix-blend-mode:screen;}

#poi-fx.poi-fx-mega .poi-fx-charge{opacity:1;animation:poi-charge .4s ease forwards;}
#poi-fx.poi-fx-mega .poi-fx-charge::after{animation:poi-crack .4s linear forwards;}

#poi-fx.poi-fx-big.poi-fx-burst .poi-fx-flash{animation:poi-flash-gold .12s ease forwards;}
#poi-fx.poi-fx-mega.poi-fx-burst .poi-fx-flash{animation:poi-flash-rainbow .36s ease-in-out forwards;}

.poi-fx-actor-wrap{position:absolute;left:50%;bottom:0;transform:translateX(-50%);width:var(--poi-actor-size);height:var(--poi-actor-size);pointer-events:none;z-index:3;opacity:0;}
.poi-fx-actor{position:absolute;left:0;width:100%;height:100%;background-position:center bottom;background-size:contain;background-repeat:no-repeat;transform-origin:center bottom;}

.poi-fx-big.poi-fx-burst .poi-fx-actor-wrap{opacity:1;bottom:calc(var(--poi-fist-foot-pad) * var(--poi-actor-size) * -1);}
.poi-fx-big .poi-fx-medals{z-index:0;}
.poi-fx-big.poi-fx-burst .poi-fx-actor{background-image:url(img/poi_fist.webp);animation:poi-fist-rise .6s cubic-bezier(.215,.61,.355,1) forwards;}

.poi-fx-mega.poi-fx-burst .poi-fx-actor-wrap{opacity:1;bottom:calc(var(--poi-dance-foot-pad) * var(--poi-actor-size) * -1);z-index:3;}
.poi-fx-mega .poi-fx-medals{z-index:4;}
.poi-fx-mega .poi-fx-actor-a,.poi-fx-mega .poi-fx-actor-b{position:absolute;inset:0;background-position:center bottom;background-size:contain;background-repeat:no-repeat;opacity:0;}
.poi-fx-mega .poi-fx-actor-a{background-image:url(img/poi_dance_a.webp);}
.poi-fx-mega .poi-fx-actor-b{background-image:url(img/poi_dance_b.webp);}
.poi-fx-mega.poi-fx-burst .poi-fx-actor{animation:poi-dance-jump .3s ease-in-out infinite alternate;}
.poi-fx-mega .poi-fx-actor-a.poi-active,.poi-fx-mega .poi-fx-actor-b.poi-active{opacity:1;}

.poi-fx-medals{position:absolute;inset:0;pointer-events:none;z-index:4;}
.poi-fx-medal{position:absolute;width:var(--poi-medal-size);height:var(--poi-medal-size);background-image:url(img/medal_spin_sheet.webp);background-repeat:no-repeat;background-size:800% 100%;background-position:0 0;animation:poi-medal-spin .5s steps(7,end) infinite;}

.poi-fx-amount{position:absolute;left:0;right:0;top:64%;transform:translateY(-50%);text-align:center;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;font-weight:900;pointer-events:none;z-index:5;}
.poi-fx-amount .poi-num{display:inline-block;font-size:min(16vw,64px);line-height:1;color:#F6C142;text-shadow:0 0 12px rgba(246,193,66,.55),0 4px 0 rgba(0,0,0,.35);}
.poi-fx-amount .poi-unit{display:block;margin-top:4px;font-size:min(6vw,20px);color:#F3EBD2;opacity:.9;}
.poi-fx-mega .poi-fx-amount .poi-num{color:#fff;}

.poi-fx-big.poi-fx-burst .poi-fx-amount .poi-num{animation:poi-count-bulk .6s cubic-bezier(.215,.61,.355,1) forwards;}
.poi-fx-mega .poi-fx-amount .poi-num .poi-digit{display:inline-block;animation:poi-digit-bounce .35s cubic-bezier(.34,1.56,.64,1) forwards;opacity:0;transform:translateY(-20px) scale(.5);}

@keyframes poi-fist-rise{from{transform:translateY(100%);opacity:0;}to{transform:translateY(0);opacity:1;}}
@keyframes poi-dance-jump{from{transform:translateY(-4%);}to{transform:translateY(4%);}}

@keyframes poi-flash-gold{0%{background:#F6C142;opacity:0;}30%{background:#F6C142;opacity:.55;}100%{background:#F6C142;opacity:0;}}
@keyframes poi-flash-rainbow{
  0%{background:#F6C142;opacity:0;}
  16.66%{background:#F6C142;opacity:.45;}
  33.33%{background:#F6C142;opacity:0;}
  50%{background:#00E0E0;opacity:.45;}
  66.66%{background:#00E0E0;opacity:0;}
  83.33%{background:#E040E0;opacity:.45;}
  100%{background:#E040E0;opacity:0;}
}

@keyframes poi-charge{0%{opacity:0;}10%{opacity:1;}90%{opacity:1;}100%{opacity:0;}}
@keyframes poi-crack{0%{opacity:0;transform:scale(.9);}50%{opacity:.55;transform:scale(1);}100%{opacity:0;transform:scale(1.05);}}

@keyframes poi-medal-spin{0%{background-position:0 0;}100%{background-position:100% 0;}}

@keyframes poi-count-bulk{0%{transform:scale(.7);opacity:0;}60%{transform:scale(1.08);opacity:1;}100%{transform:scale(1);opacity:1;}}
@keyframes poi-digit-bounce{0%{opacity:0;transform:translateY(-20px) scale(.5);}60%{opacity:1;transform:translateY(4px) scale(1.1);}100%{opacity:1;transform:translateY(0) scale(1);}}

@media (prefers-reduced-motion:reduce){#poi-fx{--poi-actor-size:min(44vw,200px);}.poi-fx-medals,.poi-fx-flash,.poi-fx-charge{display:none!important;}.poi-fx-actor{animation:none!important;}.poi-fx-big .poi-fx-actor{transform:translateY(0);opacity:1;}.poi-fx-mega .poi-fx-actor-a,.poi-fx-mega .poi-fx-actor-b{animation:none;}.poi-fx-amount .poi-num{animation:none!important;opacity:1;}}
