/* featureos:gamification-badges@1.0.2 — badge movement (spec Appendix D.2). Movement runs only in CSS, and not at all with reduced motion. */
/* badge engine */
.bx{display:block;width:100%;height:auto;overflow:visible}
.bx .core,.bx .pic,.bx .orb,.bx .shine{transform-box:view-box;transform-origin:120px 120px}
.bx .spk{transform-box:fill-box;transform-origin:center;opacity:0;animation:fSpark 2.2s ease-in-out infinite}
.fm-float .core{animation:fFloat 3s ease-in-out infinite}
.fm-breathe .core{animation:fBreathe 2.6s ease-in-out infinite}
.fm-tilt .core{animation:fTilt 3.4s ease-in-out infinite}
.fm-glow .core{animation:fGlow 2.4s ease-in-out infinite}
.fm-shine .shine{animation:fShine 3s ease-in-out infinite}
.fm-spin .orb{animation:fSpin 9s linear infinite}
@keyframes fFloat{50%{transform:translateY(-7px)}}
@keyframes fBreathe{50%{transform:scale(1.045)}}
@keyframes fTilt{0%,100%{transform:rotate(-4deg)}50%{transform:rotate(4deg)}}
@keyframes fGlow{0%,100%{filter:drop-shadow(0 0 0 transparent)}50%{filter:drop-shadow(0 0 12px var(--gc))}}
@keyframes fShine{0%{transform:translateX(-150px) skewX(-18deg)}60%,100%{transform:translateX(150px) skewX(-18deg)}}
@keyframes fSpin{to{transform:rotate(360deg)}}
@keyframes fSpark{0%,100%{opacity:0;transform:scale(.3)}50%{opacity:1;transform:scale(1)}}
.pm-bounce{animation:pBounce 1.4s ease-in-out infinite}
.pm-pulse{animation:pPulse 1.8s ease-in-out infinite}
.pm-wiggle{animation:pWiggle 1.6s ease-in-out infinite}
.pm-spin{animation:fSpin 6s linear infinite}
.pm-heart{animation:pHeart 1.3s ease-in-out infinite}
.pm-swing{animation:pSwing 2.4s ease-in-out infinite;transform-origin:120px 84px!important}
.pm-float{animation:pFloat 3.2s ease-in-out infinite}
.pm-flip{animation:pFlip 3s ease-in-out infinite}
@keyframes pBounce{50%{transform:translateY(-12px)}}
@keyframes pPulse{50%{transform:scale(1.14)}}
@keyframes pWiggle{0%,100%{transform:rotate(0)}25%{transform:rotate(-10deg)}75%{transform:rotate(10deg)}}
@keyframes pHeart{0%,100%{transform:scale(1)}15%{transform:scale(1.18)}30%{transform:scale(1)}45%{transform:scale(1.12)}}
@keyframes pSwing{0%,100%{transform:rotate(-12deg)}50%{transform:rotate(12deg)}}
@keyframes pFloat{50%{transform:translateY(-6px) rotate(4deg)}}
@keyframes pFlip{0%,40%{transform:scaleX(1)}50%,80%{transform:scaleX(-1)}90%,100%{transform:scaleX(1)}}
@media (prefers-reduced-motion:reduce){.bx *,.bx{animation:none!important}.pm-bounce,.pm-pulse,.pm-wiggle,.pm-spin,.pm-heart,.pm-swing,.pm-float,.pm-flip{animation:none!important}}
