@keyframes fxPop{0%{opacity:0;transform:scale(.85)}60%{opacity:1;transform:scale(1.04)}to{transform:scale(1)}}.fx-pop{animation:.32s cubic-bezier(.2,.9,.3,1.2) both fxPop}@keyframes fxShake{0%,to{transform:translate(0)}20%{transform:translate(-8px)}40%{transform:translate(7px)}60%{transform:translate(-5px)}80%{transform:translate(3px)}}.fx-shake{animation:.38s ease-in-out fxShake}@keyframes fxPulse{0%,to{transform:scale(1)}50%{transform:scale(1.08)}}.fx-pulse{animation:.9s ease-in-out infinite fxPulse}@keyframes fxFloat{0%{opacity:0;transform:translate(-50%)scale(.8)}20%{opacity:1;transform:translate(-50%,-6px)scale(1.15)}to{opacity:0;transform:translate(-50%,-48px)scale(1)}}.fx-float{animation:.8s ease-out forwards fxFloat}@keyframes fxSlideIn{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}.fx-slide-in{animation:.28s ease-out both fxSlideIn}@keyframes fxTileIn{0%{opacity:0;transform:translateY(14px)scale(.96)}to{opacity:1;transform:none}}.fx-tile-in{animation:.42s cubic-bezier(.2,.9,.3,1.1) both fxTileIn}.fx-tile{transform-origin:50%;transition:transform .42s cubic-bezier(.5,0,.75,0),opacity .42s ease-in}.fx-tile--gone{opacity:0;transform:rotateX(90deg)scale(.6)}@keyframes fxBadgeReveal{0%{transform:perspective(500px)rotateY(90deg)scale(.9)}60%{transform:perspective(500px)rotateY(-12deg)scale(1.05)}to{transform:perspective(500px)rotateY(0)scale(1)}}@keyframes fxGlint{0%,to{box-shadow:0 0 #f0d78c00}50%{box-shadow:0 0 0 6px #f0d78c8c}}.fx-badge-reveal{animation:.7s cubic-bezier(.2,.9,.3,1.1) both fxBadgeReveal,1.2s ease-in-out .7s 3 fxGlint}.fx-flip-inner{transform-style:preserve-3d;transition:transform .38s cubic-bezier(.3,.7,.3,1)}.fx-flip-inner--up{transform:rotateY(180deg)}.fx-flip-face{backface-visibility:hidden}.fx-flip-back{transform:rotateY(180deg)}.fx-mascot .fx-mascot-body,.fx-mascot .fx-mascot-shadow,.fx-mascot .fx-mascot-blink,.fx-mascot .fx-mascot-tassel,.fx-mascot .fx-mascot-sparks{transform-box:fill-box;transform-origin:50%}@keyframes fxBob{0%,to{transform:translateY(0)}50%{transform:translateY(-3px)}}@keyframes fxBounce{0%,to{transform:translateY(0)scale(1)}30%{transform:translateY(-12px)scale(.96,1.05)}55%{transform:translateY(0)scale(1.06,.94)}}@keyframes fxWobble{0%,to{transform:rotate(0)}25%{transform:rotate(-4deg)}75%{transform:rotate(4deg)}}@keyframes fxBreathe{0%,to{transform:scale(1)}50%{transform:scale(1.03,.97)}}@keyframes fxBlink{0%,92%,to{transform:scaleY(1)}95%{transform:scaleY(.1)}}@keyframes fxSwing{0%,to{transform:rotate(-12deg)}50%{transform:rotate(12deg)}}@keyframes fxZ{0%{opacity:0;transform:translate(0)}30%{opacity:1}to{opacity:0;transform:translate(6px,-12px)}}@keyframes fxDrop{0%,to{opacity:1;transform:translateY(0)}70%{opacity:.6;transform:translateY(6px)}}@keyframes fxTwinkle{0%,to{opacity:.2;transform:scale(.8)}50%{opacity:1;transform:scale(1.15)}}.fx-mascot--idle .fx-mascot-body{animation:2.6s ease-in-out infinite fxBob}.fx-mascot--cheer .fx-mascot-body{animation:.9s ease-in-out infinite fxBounce}.fx-mascot--wow .fx-mascot-body{animation:1.2s ease-in-out infinite fxBounce}.fx-mascot--worried .fx-mascot-body{animation:1.6s ease-in-out infinite fxWobble}.fx-mascot--sleepy .fx-mascot-body{animation:3s ease-in-out infinite fxBreathe}.fx-mascot-blink{animation:4s infinite fxBlink}.fx-mascot-tassel{transform-origin:top;animation:2.4s ease-in-out infinite fxSwing}.fx-mascot-z{animation:2.4s ease-out infinite fxZ}.fx-mascot-z--2{animation-delay:1.2s}.fx-mascot-drop{animation:1.4s ease-in-out infinite fxDrop}.fx-mascot-sparks{animation:1.1s ease-in-out infinite fxTwinkle}.fx-bubble{animation:.3s ease-out both fxSlideIn}@keyframes fxSway{0%,to{transform:rotate(-1.5deg)}50%{transform:rotate(1.5deg)}}@keyframes fxDroop{0%,to{transform:rotate(-3deg)scaleY(.97)}50%{transform:rotate(-4.5deg)scaleY(.95)}}@keyframes fxLeafFall{0%{opacity:0;transform:translate(0)rotate(0)}15%{opacity:1}to{opacity:0;transform:translate(8px,26px)rotate(160deg)}}@keyframes fxPodGrow{0%{transform:scale(0)}to{transform:scale(1)}}@keyframes fxSeed{0%,to{transform:translateY(0)}50%{transform:translateY(-1.5px)}}.fx-tree--sway{animation:4s ease-in-out infinite fxSway}.fx-tree--thirsty{filter:saturate(.75);animation:3.2s ease-in-out infinite fxDroop}.fx-leaf-fall{transform-box:fill-box;animation:3s ease-in infinite fxLeafFall}.fx-leaf-fall--2{animation-delay:1.5s}.fx-pod{transform-box:fill-box;transform-origin:50%;animation:.5s cubic-bezier(.2,.9,.3,1.3) both fxPodGrow}.fx-seed{transform-box:fill-box;animation:2.4s ease-in-out infinite fxSeed}.fx-drops{animation:2.2s ease-in-out infinite fxDrop}@keyframes fxWaves{0%{background-position:0 0,0 0}to{background-position:120px 0,-80px 0}}.fx-sea{background-color:#3a9fc4;background-image:repeating-radial-gradient(circle at 20% 30%,#ffffff1f 0 2px,#0000 2px 26px),linear-gradient(#57b6d6 0%,#2d86ad 100%);background-size:120px 120px,100% 100%;animation:14s linear infinite fxWaves}@keyframes fxFog{0%,to{opacity:.92}50%{opacity:.8}}.fx-fog{animation:5s ease-in-out infinite fxFog}@keyframes fxTug{0%,to{transform:translate(0)}50%{transform:translate(-1.5px)}}.fx-tug-crew{animation:.7s ease-in-out infinite fxTug}@media (prefers-reduced-motion:reduce){.fx-pop,.fx-shake,.fx-pulse,.fx-float,.fx-slide-in,.fx-tile-in,.fx-mascot *,.fx-bubble,.fx-tree--sway,.fx-tree--thirsty,.fx-leaf-fall,.fx-pod,.fx-seed,.fx-drops,.fx-sea,.fx-fog,.fx-tug-crew,.fx-badge-reveal{animation:none!important}.fx-tile,.fx-flip-inner{transition:none!important}}