.float.mascot-cta{isolation:isolate;overflow:visible;background:radial-gradient(circle at 34% 26%,#fff4be 0%,#f6d879 42%,#dcac45 100%);box-shadow:0 11px 30px rgba(25,54,36,.28),0 0 0 3px #497953,0 0 24px rgba(237,199,95,.45)}
.float.mascot-cta .mascot-character{position:absolute;z-index:2;top:-51px;left:50%;width:92px;height:92px;transform:translateX(-50%);perspective:450px;pointer-events:none}
.float.mascot-cta .mascot-rotor{position:relative;width:100%;height:100%;transform-style:preserve-3d;will-change:transform}
.float.mascot-cta .mascot-character img{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;transform:none;backface-visibility:hidden;filter:drop-shadow(0 5px 5px rgba(33,58,36,.19))}
.float.mascot-cta .mascot-character img.mascot-back{transform:rotateY(180deg)}
.float.mascot-cta .mascot-speech{position:absolute;z-index:3;top:-75px;right:4px;min-width:46px;padding:5px 9px;border-radius:16px 16px 16px 4px;background:#fff9e7;border:1px solid #eac96c;color:#31573c;font-size:.8rem;font-weight:900;opacity:0;transform:translateY(5px) scale(.8);pointer-events:none;box-shadow:0 4px 12px rgba(30,58,33,.15);transition:opacity .24s ease,transform .24s ease}
.float.mascot-cta .mascot-speech.is-visible{opacity:1;transform:translateY(0) scale(1)}
.float.mascot-cta .mascot-cta-title,.float.mascot-cta .mascot-cta-sub{position:relative;z-index:2}
.float.mascot-cta .mascot-cta-title{color:#1f472d;text-shadow:0 1px 0 rgba(255,255,255,.65)}
.float.mascot-cta .mascot-character{top:-133px;width:205px;height:205px;background:url('qinghe-tree-spirit.png') center/contain no-repeat}
.float.mascot-cta .mascot-rotor{transform-origin:50% 90%}
.float.mascot-cta .mascot-fallback{position:absolute;z-index:1;top:-133px;left:50%;width:205px;height:205px;transform:translateX(-50%);object-fit:contain;pointer-events:none}
.float.mascot-cta .mascot-speech{top:-98px;right:calc(100% - 4px);width:max-content;max-width:145px;min-width:100px;padding:8px 11px;font-size:.82rem;line-height:1.35;white-space:normal;border-radius:18px 18px 6px 18px}
.float.mascot-cta .mascot-speech:after{content:"";position:absolute;right:-8px;bottom:10px;border-width:7px 0 7px 9px;border-style:solid;border-color:transparent transparent transparent #fff9e7}
.float.mascot-cta{width:138px;height:138px;padding:82px 8px 10px;right:17px;box-shadow:0 12px 28px rgba(25,54,36,.29),0 0 0 3px #497953,0 0 0 7px #fff5d1,0 0 24px rgba(237,199,95,.5)}
.float.mascot-cta .mascot-cta-title{position:absolute;bottom:30px;font-size:1.35rem;font-weight:950;line-height:1.12;white-space:nowrap}
.float.mascot-cta .mascot-cta-sub{position:absolute;bottom:14px;font-size:.88rem;font-weight:900;line-height:1.2;color:#254b31;white-space:nowrap}
/* A quiet idle loop continues between the larger, randomly selected gestures. */
.float.mascot-cta .mascot-character{transform-origin:50% 90%;animation:mascot-idle 3.6s ease-in-out infinite}
.float.mascot-cta .mascot-fallback{transform-origin:50% 90%;animation:mascot-fallback-idle 3.6s ease-in-out infinite}
@keyframes mascot-idle{0%,100%{transform:translateX(-50%) translateY(0) rotate(-2deg) scale(1)}35%{transform:translateX(-50%) translateY(-3px) rotate(2deg) scale(1.025,1.015)}70%{transform:translateX(-50%) translateY(-1px) rotate(-1deg) scale(.99,1.02)}}
@keyframes mascot-fallback-idle{0%,100%{transform:translateX(-50%) translateY(0) rotate(-2deg) scale(1)}35%{transform:translateX(-50%) translateY(-3px) rotate(2deg) scale(1.025,1.015)}70%{transform:translateX(-50%) translateY(-1px) rotate(-1deg) scale(.99,1.02)}}
.float.mascot-cta.is-idle-paused .mascot-character,.float.mascot-cta.is-idle-paused .mascot-fallback{animation-play-state:paused}
@media(max-width:600px){.float.mascot-cta{right:13px;width:103px;height:103px;padding:60px 4px 7px;box-shadow:0 8px 19px rgba(25,54,36,.28),0 0 0 2px #497953,0 0 0 5px #fff5d1}.float.mascot-cta .mascot-character{top:-85px;width:135px;height:135px}.float.mascot-cta .mascot-fallback{top:-85px;width:135px;height:135px}.float.mascot-cta .mascot-cta-title{bottom:22px;font-size:.98rem}.float.mascot-cta .mascot-cta-sub{bottom:9px;font-size:.69rem}.float.mascot-cta .mascot-speech{top:-69px;right:calc(100% - 6px);font-size:.7rem;min-width:80px;max-width:110px;padding:5px 7px}}
@media(prefers-reduced-motion:reduce){.float.mascot-cta .mascot-character,.float.mascot-cta .mascot-fallback{animation:none}.float.mascot-cta .mascot-rotor{will-change:auto}.float.mascot-cta .mascot-speech{transition:none}}
