@keyframes drift{from{left:-200px}to{left:110vw}}

@keyframes gentleFloat{0%,100%{transform:translateY(0)}50%{transform:translateY(-7px)}}

@keyframes cardIn{from{opacity:0;transform:scale(.7) translateY(30px)}to{opacity:1;transform:scale(1) translateY(0)}}

@keyframes popIn{0%{transform:scale(0);opacity:0}70%{transform:scale(1.15)}100%{transform:scale(1);opacity:1}}

@keyframes fadeIn{from{opacity:0}to{opacity:1}}

@keyframes slideUp{from{opacity:0;transform:translateY(30px)}to{opacity:1;transform:translateY(0)}}

@keyframes matchShake{0%,100%{transform:translateX(0)}20%{transform:translateX(-8px)}40%{transform:translateX(8px)}60%{transform:translateX(-6px)}80%{transform:translateX(6px)}}

@keyframes pgPulse{0%{opacity:.3;transform:translate(var(--px),var(--py)) scale(.7);}100%{opacity:1;transform:translate(var(--px),var(--py)) scale(1.25);}}

@keyframes sparkAnim{0%{transform:translate(-50%,-50%) scale(0);opacity:1}60%{opacity:1}100%{transform:translate(var(--dx),var(--dy)) scale(.2);opacity:0}}

@keyframes ringExp{0%{transform:translate(-50%,-50%) scale(0);opacity:.8}100%{transform:translate(-50%,-50%) scale(3);opacity:0}}

@keyframes glowRipple{0%{transform:translate(-50%,-50%) scale(0);opacity:1}60%{opacity:.45}100%{transform:translate(-50%,-50%) scale(1);opacity:0}}

@keyframes emFloat{0%{transform:translate(-50%,-50%) scale(0) rotate(-20deg);opacity:1}30%{transform:translate(-50%,-120%) scale(1.2) rotate(10deg);opacity:1}100%{transform:translate(-50%,-200%) scale(.8) rotate(0);opacity:0}}

@keyframes pitCeleb{0%{transform:scale(1)}50%{transform:scale(1.06)}100%{transform:scale(1)}}

@keyframes balFloat{0%{transform:translateY(0) rotate(var(--tilt1));opacity:1}40%{transform:translateY(calc(var(--rise)*0.5)) rotate(var(--tilt2));}100%{transform:translateY(var(--rise)) rotate(var(--tilt1));opacity:1}}


@keyframes balPop{0%{transform:scale(1);opacity:1}40%{transform:scale(1.6);opacity:.7}100%{transform:scale(0);opacity:0}}

@keyframes balBurst{0%{transform:translate(-50%,-50%) scale(1);opacity:1}100%{transform:translate(calc(-50% + var(--bx)),calc(-50% + var(--by))) scale(0);opacity:0}}

@keyframes pwGlowFade{0%{opacity:1;}100%{opacity:0;}}

@keyframes pwNextPulse{0%,100%{box-shadow:0 9px 0 #787878,0 0 14px 5px rgba(255,255,80,.5);}50%{box-shadow:0 9px 0 #787878,0 0 28px 12px rgba(255,255,80,.9),0 0 50px 20px rgba(255,255,80,.4);}}

@keyframes rotateWiggle{0%,100%{transform:rotate(0deg)}30%{transform:rotate(-28deg)}70%{transform:rotate(28deg)}}

@keyframes fluidRipple{0%{transform:scale(0);opacity:1}100%{transform:scale(4);opacity:0}}

@keyframes sparklePop{0%{transform:translate(-50%,-50%) scale(1);opacity:1}100%{transform:translate(calc(-50% + var(--dx)),calc(-50% + var(--dy))) scale(0);opacity:0}}

@keyframes comboPop{0%{transform:translateX(-50%) scale(.5);opacity:0}15%{transform:translateX(-50%) scale(1.3);opacity:1}70%{transform:translateX(-50%) scale(1.05);opacity:1}100%{transform:translateX(-50%) scale(.95);opacity:0}}

@keyframes wxRainFall{0%{transform:translateY(-20px)}100%{transform:translateY(110vh)}}

@keyframes wxSnowDrift{0%{transform:translateY(-20px) translateX(0) rotate(0deg)}100%{transform:translateY(110vh) translateX(40px) rotate(360deg)}}

@keyframes wxCloudDrift{0%{transform:translateX(-120px)}100%{transform:translateX(110vw)}}

@keyframes wxLeafBlow{0%{transform:translateX(-60px) rotate(0deg)}100%{transform:translateX(110vw) rotate(720deg)}}

@keyframes wxRayPulse{0%{opacity:0.2}100%{opacity:0.7}}

@keyframes emBob{0%,100%{transform:scale(1) translateY(0)}50%{transform:scale(1.07) translateY(-10px)}}

@keyframes emPulse{0%,100%{opacity:.6;transform:scale(1)}50%{opacity:1;transform:scale(1.04)}}

@keyframes emBurst{0%{transform:translate(-50%,-50%) scale(0);opacity:1}70%{opacity:.9}100%{transform:translate(calc(-50% + var(--ex)),calc(-50% + var(--ey))) scale(1.1);opacity:0}}

@keyframes dinoFloat{0%,100%{transform:translateY(0)}50%{transform:translateY(-10px)}}

@keyframes twinkle{0%,100%{opacity:.2;transform:scale(.7)}50%{opacity:1;transform:scale(1)}}

@keyframes fireflyFloat{0%{transform:translate(0,0);opacity:.2}25%{opacity:.9}50%{transform:translate(var(--fx),var(--fy));opacity:.6}75%{opacity:.9}100%{transform:translate(0,0);opacity:.2}}

@keyframes dnRayPulse{0%{opacity:0.15}100%{opacity:0.65}}

@keyframes dnCloudDrift{0%{transform:translateX(-150px)}100%{transform:translateX(110vw)}}

@keyframes birdFly{0%,100%{transform:translateY(0)}50%{transform:translateY(-8px)}}

@keyframes dnBounce{0%{transform:scale(1)}30%{transform:scale(1.35)}60%{transform:scale(.9)}100%{transform:scale(1)}}

@keyframes dnPopText{0%{opacity:0;transform:translate(-50%,-10px) scale(.5)}20%{opacity:1;transform:translate(-50%,-30px) scale(1.1)}80%{opacity:1;transform:translate(-50%,-50px) scale(1)}100%{opacity:0;transform:translate(-50%,-70px) scale(.8)}}

@keyframes peekPulse{0%{box-shadow:0 0 0 0 rgba(255,255,255,.6)}14%{box-shadow:0 0 0 20px rgba(255,255,255,0)}100%{box-shadow:0 0 0 0 rgba(255,255,255,0)}}

@keyframes peekWiggle{0%{transform:rotate(0)}15%{transform:rotate(-12deg) scale(1.08)}35%{transform:rotate(10deg) scale(1.1)}55%{transform:rotate(-8deg) scale(1.07)}75%{transform:rotate(6deg) scale(1.05)}90%{transform:rotate(-3deg)}100%{transform:rotate(0)}}

@keyframes matchCorrectBounce{0%{transform:scale(1.06)}25%{transform:scale(1.26)}55%{transform:scale(0.95)}80%{transform:scale(1.13)}100%{transform:scale(1.06)}}

@keyframes wheelResultIn{0%{opacity:0;transform:translate(-50%,-50%) scale(.4)}65%{transform:translate(-50%,-50%) scale(1.1)}100%{opacity:1;transform:translate(-50%,-50%) scale(1)}}
