.xiaoxiao-mascot{position:fixed;right:18px;bottom:18px;z-index:35;width:240px;display:grid;grid-template-columns:118px 1fr;gap:8px;align-items:end;filter:drop-shadow(0 12px 24px #1634262b);transition:transform .25s ease,opacity .25s ease}.xiaoxiao-mascot__figure{position:relative;width:135px;height:145px;margin-left:-12px;border:0;background:transparent;cursor:pointer}.xiaoxiao-mascot__figure img{width:100%;height:100%;object-fit:contain;transform-origin:center bottom;animation:xiaoxiao-breathe 3.2s ease-in-out infinite}.xiaoxiao-mascot__panel{margin-bottom:22px;padding:10px;border:1px solid #d3e2d0;border-radius:14px 14px 4px 14px;background:#fffffff2;backdrop-filter:blur(8px)}.xiaoxiao-mascot__message{margin:0;color:#294638;font-size:12px;line-height:1.5}.xiaoxiao-mascot__actions{display:flex;gap:5px;margin-top:7px}.xiaoxiao-mascot__actions button{padding:4px 7px;border:1px solid #d3e2d0;border-radius:7px;color:#456153;background:#f4f8f1;font-size:10px;cursor:pointer}.xiaoxiao-mascot__actions button:last-child{margin-left:auto}.xiaoxiao-mascot.is-collapsed{width:105px;grid-template-columns:105px}.xiaoxiao-mascot.is-collapsed .xiaoxiao-mascot__panel{display:none}.xiaoxiao-mascot.is-collapsed .xiaoxiao-mascot__figure{width:105px;height:115px;margin:0}.xiaoxiao-mascot.is-celebrating .xiaoxiao-mascot__figure img{animation:xiaoxiao-happy .65s ease-in-out 2}@keyframes xiaoxiao-breathe{0%,100%{transform:translateY(0) scale(1)}50%{transform:translateY(-3px) scale(1.015)}}@keyframes xiaoxiao-happy{0%,100%{transform:translateY(0) rotate(0)}50%{transform:translateY(-7px) rotate(2deg)}}@media(prefers-reduced-motion:reduce){.xiaoxiao-mascot,.xiaoxiao-mascot__figure img{animation:none!important;transition:none!important}}@media(max-width:620px){.xiaoxiao-mascot{right:8px;bottom:8px;width:190px;grid-template-columns:88px 1fr}.xiaoxiao-mascot__figure{width:100px;height:108px;margin-left:-8px}.xiaoxiao-mascot.is-collapsed{width:82px;grid-template-columns:82px}.xiaoxiao-mascot.is-collapsed .xiaoxiao-mascot__figure{width:82px;height:90px}.xiaoxiao-mascot__panel{margin-bottom:12px;padding:8px}.xiaoxiao-mascot__message{font-size:11px}.xiaoxiao-mascot__actions button{padding:3px 5px;font-size:9px}}
.xiaoxiao-mascot[data-mascot-context="employee-product"]{bottom:96px}@media(max-width:620px){.xiaoxiao-mascot[data-mascot-context="employee-product"]{bottom:84px}}

/* Platform reception: welcome in view, then sleep quietly in the upper-left corner. */
.xiaoxiao-mascot[data-mascot-context="platform-reception"]{left:50%;right:auto;bottom:22%;z-index:65;width:286px;grid-template-columns:132px 1fr;transform:translateX(-50%);transition:left .65s cubic-bezier(.22,.8,.3,1),top .65s cubic-bezier(.22,.8,.3,1),bottom .65s cubic-bezier(.22,.8,.3,1),transform .65s cubic-bezier(.22,.8,.3,1),width .35s ease}
.xiaoxiao-mascot[data-mascot-context="platform-reception"] .xiaoxiao-mascot__figure{width:142px;height:150px;margin-left:-10px}
.xiaoxiao-mascot[data-mascot-context="platform-reception"] .xiaoxiao-frame{border-radius:46%;mix-blend-mode:multiply;filter:drop-shadow(0 10px 18px #18332926)}
.xiaoxiao-mascot[data-mascot-context="platform-reception"] .xiaoxiao-mascot__panel{margin-bottom:18px}
.xiaoxiao-mascot[data-mascot-context="platform-reception"].is-sleeping-corner{left:16px;top:78px;right:auto;bottom:auto;width:98px;grid-template-columns:98px;transform:none;filter:drop-shadow(0 8px 14px #16342622)}
.xiaoxiao-mascot[data-mascot-context="platform-reception"].is-sleeping-corner .xiaoxiao-mascot__figure{width:98px;height:102px;margin:0;animation:xiaoxiao-sleep 4.2s ease-in-out infinite}
.xiaoxiao-mascot[data-mascot-context="platform-reception"].is-sleeping-corner .xiaoxiao-mascot__panel{display:none}
.xiaoxiao-mascot[data-mascot-context="platform-reception"].is-reception-awake{left:16px;top:78px;right:auto;bottom:auto;width:286px;transform:none}
.xiaoxiao-mascot[data-mascot-context="platform-reception"].is-reception-awake .xiaoxiao-mascot__figure{width:120px;height:128px;margin:0}
.xiaoxiao-mascot[data-mascot-context="platform-reception"].action-jump:not(.is-reception-awake){animation:xiaoxiao-reception-pop .9s cubic-bezier(.35,.05,.4,1) 2}
.xiaoxiao-mascot[data-mascot-context="platform-reception"].is-reception-awake.action-jump{animation:xiaoxiao-reception-wake .8s cubic-bezier(.35,.05,.4,1)}
@keyframes xiaoxiao-reception-pop{0%,100%{transform:translateX(-50%) translateY(0) scale(1)}35%{transform:translateX(-50%) translateY(-38px) scale(.98,1.04)}65%{transform:translateX(-50%) translateY(-7px) scale(1.04,.96)}}
@keyframes xiaoxiao-reception-wake{0%,100%{transform:translateY(0) scale(1)}45%{transform:translateY(-30px) scale(1.04)}}
@keyframes xiaoxiao-sleep{0%,100%{transform:translateY(0) rotate(-1deg) scale(1)}50%{transform:translateY(2px) rotate(1deg) scale(.98)}}
@media(max-width:620px){.xiaoxiao-mascot[data-mascot-context="platform-reception"]{left:50%;bottom:18%;width:230px;grid-template-columns:104px 1fr}.xiaoxiao-mascot[data-mascot-context="platform-reception"] .xiaoxiao-mascot__figure{width:108px;height:116px}.xiaoxiao-mascot[data-mascot-context="platform-reception"].is-sleeping-corner{left:8px;top:64px;width:76px;grid-template-columns:76px}.xiaoxiao-mascot[data-mascot-context="platform-reception"].is-sleeping-corner .xiaoxiao-mascot__figure{width:76px;height:80px}.xiaoxiao-mascot[data-mascot-context="platform-reception"].is-reception-awake{left:8px;top:64px;width:230px;grid-template-columns:94px 1fr}.xiaoxiao-mascot[data-mascot-context="platform-reception"].is-reception-awake .xiaoxiao-mascot__figure{width:94px;height:100px}}

/* Code-driven mascot motion: idle, lip sync, run, jump and reactions. */
.xiaoxiao-mascot__figure{overflow:visible;animation:xiaoxiao-idle 3.2s ease-in-out infinite}.xiaoxiao-mascot__figure .xiaoxiao-frame{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;animation:none}.xiaoxiao-mascot__figure .mouth-closed{opacity:0;pointer-events:none}.xiaoxiao-mascot.is-speaking .xiaoxiao-mascot__figure{animation:xiaoxiao-talk-bob .32s ease-in-out infinite}.xiaoxiao-mascot.is-speaking .mouth-open{animation:xiaoxiao-mouth-open .26s steps(1,end) infinite}.xiaoxiao-mascot.is-speaking .mouth-closed{animation:xiaoxiao-mouth-closed .26s steps(1,end) infinite}.xiaoxiao-mascot.action-run{animation:xiaoxiao-run 1.8s cubic-bezier(.45,.05,.55,.95)}.xiaoxiao-mascot.action-jump{animation:xiaoxiao-jump .82s cubic-bezier(.35,.05,.4,1) 2}.xiaoxiao-mascot.action-spin .xiaoxiao-mascot__figure{animation:xiaoxiao-spin .9s cubic-bezier(.4,0,.2,1)}.xiaoxiao-mascot.action-wave .xiaoxiao-mascot__figure{animation:xiaoxiao-wave .55s ease-in-out 3}.xiaoxiao-mascot.action-shake .xiaoxiao-mascot__figure{animation:xiaoxiao-shake .25s ease-in-out 5}
@keyframes xiaoxiao-idle{0%,100%{transform:translateY(0) rotate(0) scale(1)}50%{transform:translateY(-4px) rotate(1deg) scale(1.015)}}@keyframes xiaoxiao-talk-bob{0%,100%{transform:translateY(0) rotate(-1deg)}50%{transform:translateY(-5px) rotate(1.5deg)}}@keyframes xiaoxiao-mouth-open{0%,49%{opacity:1}50%,100%{opacity:0}}@keyframes xiaoxiao-mouth-closed{0%,49%{opacity:0}50%,100%{opacity:1}}@keyframes xiaoxiao-run{0%,100%{transform:translateX(0)}15%{transform:translate(-42px,-8px) rotate(-4deg)}35%{transform:translate(-115px,0) rotate(3deg)}55%{transform:translate(-175px,-9px) rotate(-3deg)}78%{transform:translate(-75px,0) rotate(2deg)}}@keyframes xiaoxiao-jump{0%,100%{transform:translateY(0) scale(1)}35%{transform:translateY(-42px) scale(.98,1.04)}65%{transform:translateY(-10px) scale(1.04,.96)}}@keyframes xiaoxiao-spin{0%{transform:rotate(0) scale(1)}55%{transform:rotate(370deg) scale(1.08)}100%{transform:rotate(360deg) scale(1)}}@keyframes xiaoxiao-wave{0%,100%{transform:rotate(0) translateY(0)}50%{transform:rotate(-7deg) translateY(-5px)}}@keyframes xiaoxiao-shake{0%,100%{transform:translateX(0) rotate(0)}25%{transform:translateX(-5px) rotate(-2deg)}75%{transform:translateX(5px) rotate(2deg)}}
@media(prefers-reduced-motion:reduce){.xiaoxiao-mascot,.xiaoxiao-mascot__figure,.xiaoxiao-mascot__figure .xiaoxiao-frame{animation:none!important}.xiaoxiao-mascot.is-speaking .mouth-open{opacity:1}.xiaoxiao-mascot.is-speaking .mouth-closed{opacity:0}}
