.gb-mascot{--buddy-body:#1aa7a0;--buddy-deep:#163e3c;--buddy-band:#f07a5a;--buddy-white:#fff6ea;flex-direction:column;align-items:center;gap:.75rem;display:inline-flex;position:relative}.gb-mascot svg{width:100%;height:auto;display:block;overflow:visible}.gb-mascot-stage{width:var(--buddy-size,168px);position:relative}.gb-mascot[data-size=sm]{--buddy-size:88px}.gb-mascot[data-size=md]{--buddy-size:140px}.gb-mascot[data-size=lg]{--buddy-size:210px}.gb-mascot-spark{opacity:0;background:#fff4a3;border-radius:999px;width:10px;height:10px;position:absolute;inset:auto 12% 18% auto}.gb-mascot-speech{max-width:18rem;color:var(--gb-cream);background:#141c2ef0;border:1px solid #c8f54247;border-radius:1rem 1rem 1rem .35rem;padding:.7rem .9rem;font-size:.92rem;line-height:1.4}.gb-mascot[data-animate=true][data-state=idle] .buddy-root{transform-origin:100px 210px;animation:3.4s ease-in-out infinite buddy-breathe}.buddy-lid{transform-box:fill-box;transform-origin:top;transform:scaleY(0)}.gb-mascot[data-animate=true] .buddy-lid{animation:4.8s ease-in-out infinite buddy-blink}.gb-mascot[data-animate=true][data-state=welcome] .buddy-arm-right{transform-box:view-box;transform-origin:94px 168px;animation:1.15s ease-in-out infinite buddy-wave}.gb-mascot[data-animate=true][data-state=welcome] .buddy-forearm{transform-box:view-box;transform-origin:68px 142px;animation:1.15s ease-in-out infinite buddy-forearm}.gb-mascot[data-animate=true][data-state=encouragement] .buddy-arm-left,.gb-mascot[data-animate=true][data-state=reminder] .buddy-arm-left{transform-box:view-box;transform-origin:86px 172px;animation:.8s ease-in-out infinite buddy-pump-left}.gb-mascot[data-animate=true][data-state=encouragement] .buddy-arm-hip{transform-box:view-box;transform-origin:158px 172px;animation:.8s ease-in-out infinite buddy-pump-right}.gb-mascot[data-animate=true][data-pose=run] .buddy-leg-a,.gb-mascot[data-animate=true][data-pose=run] .buddy-arm-forward{transform-box:view-box;transform-origin:108px 190px;animation:.42s ease-in-out infinite buddy-stride}.gb-mascot[data-animate=true][data-pose=run] .buddy-arm-forward{transform-origin:92px 158px}.gb-mascot[data-animate=true][data-pose=run] .buddy-leg-b,.gb-mascot[data-animate=true][data-pose=run] .buddy-arm-back{transform-box:view-box;transform-origin:150px 190px;animation:.42s ease-in-out infinite reverse buddy-stride}.gb-mascot[data-animate=true][data-pose=run] .buddy-arm-back{transform-origin:156px 170px}.gb-mascot[data-animate=true][data-pose=jump] .buddy-arm-up,.gb-mascot[data-animate=true][data-pose=jump] .buddy-arm-up-right{transform-box:view-box;animation:.7s ease-in-out infinite buddy-cheer}.gb-mascot[data-animate=true][data-pose=jump] .buddy-arm-up{transform-origin:96px 156px}.gb-mascot[data-animate=true][data-pose=jump] .buddy-arm-up-right{transform-origin:152px 156px;animation-direction:reverse}.gb-mascot[data-animate=true][data-state=encouragement] .buddy-root{animation:.9s ease-in-out infinite buddy-bounce}.gb-mascot[data-animate=true][data-state=workout-start] .buddy-root{transform-origin:100px 210px;animation:.55s ease-in-out infinite buddy-run}.gb-mascot[data-animate=true][data-state=workout-completed] .buddy-root,.gb-mascot[data-animate=true][data-state=personal-best] .buddy-root,.gb-mascot[data-animate=true][data-state=challenge-completed] .buddy-root,.gb-mascot[data-animate=true][data-state=success] .buddy-root,.gb-mascot[data-animate=true][data-state=goal-achieved] .buddy-root,.gb-mascot[data-animate=true][data-state=level-up] .buddy-root,.gb-mascot[data-animate=true][data-state=streak-milestone] .buddy-root{animation:.85s ease-in-out infinite buddy-celebrate}.gb-mascot[data-animate=true][data-state=workout-completed] .gb-mascot-spark,.gb-mascot[data-animate=true][data-state=personal-best] .gb-mascot-spark,.gb-mascot[data-animate=true][data-state=level-up] .gb-mascot-spark,.gb-mascot[data-animate=true][data-state=challenge-completed] .gb-mascot-spark{animation:.9s ease-out infinite buddy-spark}.gb-mascot[data-animate=true][data-state=recovery] .buddy-root{animation:2.8s ease-in-out infinite buddy-sway}.gb-mascot[data-animate=true][data-state=reminder] .buddy-arm-hip{transform-box:view-box;transform-origin:158px 172px;animation:1.1s ease-in-out infinite buddy-pump-right}.gb-mascot[data-animate=true][data-state=thinking] .buddy-pupils{animation:2.2s ease-in-out infinite buddy-think}.gb-mascot[data-animate=true][data-state=error] .buddy-root{animation:.45s ease-in-out 2 buddy-shake}.gb-mascot[data-state=sleep] .buddy-lid{transform:scaleY(1)}.gb-mascot[data-animate=true][data-state=sleep] .buddy-root{transform-origin:100px 210px;animation:4.2s ease-in-out infinite buddy-breathe}.gb-mascot[data-state=error] .buddy-mouth{d:path("M72 118 Q90 108 108 118")}@keyframes buddy-breathe{0%,to{transform:translateY(0)scale(1)}50%{transform:translateY(-4px)scale(1.015)}}@keyframes buddy-blink{0%,88%,to{transform:scaleY(0)}93%{transform:scaleY(1)}}@keyframes buddy-run{0%,to{transform:translate(0)rotate(-4deg)}50%{transform:translate(6px)rotate(5deg)}}@keyframes buddy-wave{0%,to{transform:rotate(-6deg)}50%{transform:rotate(12deg)}}@keyframes buddy-forearm{0%,to{transform:rotate(4deg)}50%{transform:rotate(-10deg)}}@keyframes buddy-stride{0%,to{transform:rotate(-16deg)}50%{transform:rotate(16deg)}}@keyframes buddy-cheer{0%,to{transform:rotate(0)}50%{transform:rotate(-10deg)}}@keyframes buddy-pump-left{0%,to{transform:rotate(0)}50%{transform:rotate(14deg)}}@keyframes buddy-pump-right{0%,to{transform:rotate(0)}50%{transform:rotate(-14deg)}}@keyframes buddy-bounce{0%,to{transform:translateY(0)}50%{transform:translateY(-10px)}}@keyframes buddy-jump{0%,to{transform:translateY(0)rotate(0)}40%{transform:translateY(-16px)rotate(-6deg)}}@keyframes buddy-celebrate{0%,to{transform:translateY(0)rotate(-2deg)}50%{transform:translateY(-12px)rotate(4deg)}}@keyframes buddy-spark{0%{opacity:0;transform:translateY(8px)scale(.4)}40%{opacity:1}to{opacity:0;transform:translate(-18px,-28px)scale(1)}}@keyframes buddy-sway{0%,to{transform:rotate(-4deg)}50%{transform:rotate(4deg)}}@keyframes buddy-tap{0%,to{transform:rotate(0)}50%{transform:rotate(18deg)}}@keyframes buddy-think{0%,to{transform:translate(0)}50%{transform:translate(5px)}}@keyframes buddy-shake{0%,to{transform:translate(0)}25%{transform:translate(-6px)}75%{transform:translate(6px)}}@media (prefers-reduced-motion:reduce){.gb-mascot[data-honor-system=true] *{animation:none!important}}
