/* lifted from the original SVG, scoped under .m */
.m{--r:#B4100E}
.m .u{fill:var(--r)}
.m .bob{transform-box:fill-box;transform-origin:50% 100%;animation:u-bob 4s ease-in-out infinite}
@keyframes u-bob{0%,100%{transform:translateY(0)}50%{transform:translateY(-2.5px)}}
.m .eyes{transform-box:fill-box;transform-origin:center;animation:u-blink 5.4s infinite}
@keyframes u-blink{0%,92%,100%{transform:scaleY(1)}95%{transform:scaleY(.1)}97.5%{transform:scaleY(1)}}
.m .gaze,.m .eye{transform-box:fill-box;transform-origin:center}
.m .dot{fill:var(--r)}
.m .arc,.m .heart,.m .xeye,.m .shades{opacity:0;transition:opacity .15s}
.m .arc,.m .xeye{fill:none;stroke:var(--r);stroke-linecap:round}
.m .arc{stroke-width:5.5}.m .xeye{stroke-width:5}
.m .heart,.m .shades{fill:var(--r)}
.m .mouth>*{transform-box:fill-box;transform-origin:center;fill:var(--r);opacity:0;transition:opacity .15s}
.m .m-d{transform-origin:50% 0;opacity:1}
.m .m-frown,.m .m-squig,.m .m-spin{fill:none;stroke:var(--r);stroke-linecap:round}
.m .m-frown{stroke-width:7}.m .m-squig{stroke-width:6}
.m .m-spin{stroke-width:5;stroke-dasharray:22 60}
.m .ring,.m .dots,.m .zzz,.m .qmark,.m .scan,.m .spark{opacity:0}
.m .ring{transform-box:fill-box;transform-origin:center;fill:none;stroke:var(--r);stroke-width:2}
.m .dots circle,.m .zzz text,.m .qmark text,.m .scan,.m .spark{fill:var(--r)}
.m .dots circle,.m .zzz text,.m .qmark,.m .spark,.m .scan{transform-box:fill-box;transform-origin:center}

/* ---- core ---- */
.s-listening .m-d{opacity:0}
.s-listening .m-o{opacity:1;animation:u-pulseO 1.7s ease-in-out infinite}
@keyframes u-pulseO{0%,100%{transform:scale(.78)}50%{transform:scale(1.12)}}
.s-listening .ring{opacity:1;animation:u-ring 2.1s ease-out infinite}
.s-listening .ring.b{animation-delay:1.05s}
@keyframes u-ring{0%{opacity:.45;transform:scale(.74)}100%{opacity:0;transform:scale(1.1)}}

.s-thinking .m-d{opacity:0}.s-thinking .m-dot{opacity:1}
.s-thinking .gaze{animation:u-ponder 3.2s ease-in-out infinite}
@keyframes u-ponder{0%,100%{transform:translate(3px,-4px)}50%{transform:translate(-2.5px,-4.5px)}}
.s-thinking .dots{opacity:1}
.s-thinking .dots circle{animation:u-dotb 1.2s ease-in-out infinite}
.s-thinking .dots circle:nth-child(2){animation-delay:.15s}
.s-thinking .dots circle:nth-child(3){animation-delay:.3s}
@keyframes u-dotb{0%,100%{transform:translateY(0);opacity:.4}50%{transform:translateY(-5px);opacity:1}}

.s-talking .m-d{animation:u-talk .42s ease-in-out infinite}
.s-talking .bob{animation-duration:2.1s}
@keyframes u-talk{0%,100%{transform:scaleY(.45)}50%{transform:scaleY(1.15)}}
.s-talkingfast .m-d{animation:u-talk2 .9s steps(1,end) infinite}
.s-talkingfast .bob{animation-duration:1.8s}
@keyframes u-talk2{0%{transform:scaleY(1)}20%{transform:scaleY(.4)}35%{transform:scaleY(1.1)}50%{transform:scaleY(.55)}65%{transform:scaleY(1)}80%{transform:scaleY(.45)}100%{transform:scaleY(.9)}}

.s-happy .dot{opacity:0}.s-happy .arc{opacity:1}
.s-happy .m-d{opacity:0}.s-happy .m-big{opacity:1}
.s-happy .eyes{animation:none}
.s-happy .bob{animation:u-hop .72s ease-in-out infinite}
@keyframes u-hop{0%,100%{transform:translateY(0) scaleY(1)}22%{transform:translateY(-10px) scaleY(1.03)}55%{transform:translateY(0) scaleY(.97)}75%{transform:translateY(-2px) scaleY(1)}}

.s-surprised .m-d{opacity:0}.s-surprised .m-o{opacity:1;animation:u-popm 2.8s ease-out infinite}
.s-surprised .eyes{animation:none}
.s-surprised .gaze{animation:u-pope 2.8s ease-out infinite}
@keyframes u-pope{0%,6%{transform:scale(1)}13%{transform:scale(1.4)}45%,100%{transform:scale(1.2)}}
@keyframes u-popm{0%,6%{transform:scale(.55)}15%{transform:scale(1.3)}48%,100%{transform:scale(1.05)}}
.s-surprised .bob{animation:u-jolt 2.8s ease-out infinite}
@keyframes u-jolt{0%,6%{transform:translateY(0)}13%{transform:translateY(-7px)}34%,100%{transform:translateY(0)}}

.s-wink .eyes{animation:none}
.s-wink .m-d{opacity:0}.s-wink .m-big{opacity:1}
.s-wink .eye.r{animation:u-wink 3.1s ease-in-out infinite}
@keyframes u-wink{0%,58%,100%{transform:scaleY(1)}68%,80%{transform:scaleY(.1)}}
.s-wink .bob{animation:u-tilt 3.1s ease-in-out infinite}
@keyframes u-tilt{0%,52%,100%{transform:rotate(0)}70%{transform:rotate(-6deg)}}

.s-sleeping .eyes{animation:none;transform:scaleY(.14)}
.s-sleeping .m-d{opacity:0}
.s-sleeping .m-dot{opacity:1;animation:u-snore 4.4s ease-in-out infinite}
@keyframes u-snore{0%,100%{transform:scale(.75)}50%{transform:scale(1.2)}}
.s-sleeping .bob{animation-duration:6.4s}
.s-sleeping .zzz{opacity:1}
.s-sleeping .zzz text{animation:u-zz 3s ease-in-out infinite}
.s-sleeping .zzz text:nth-child(2){animation-delay:1s}
.s-sleeping .zzz text:nth-child(3){animation-delay:2s}
@keyframes u-zz{0%{opacity:0;transform:translate(0,6px)}25%{opacity:1}100%{opacity:0;transform:translate(8px,-16px)}}

.s-success .dot{opacity:0}.s-success .arc{opacity:1}
.s-success .m-d{opacity:0}.s-success .m-big{opacity:1}
.s-success .eyes{animation:none}
.s-success .bob{animation:u-nod 1.5s ease-in-out infinite}
@keyframes u-nod{0%,100%{transform:translateY(0) scaleY(1)}15%{transform:translateY(4px) scaleY(.93)}30%{transform:translateY(-2px) scaleY(1.02)}45%{transform:translateY(4px) scaleY(.93)}62%{transform:translateY(0) scaleY(1)}}

.s-error .m-d{opacity:0}.s-error .m-line{opacity:1}
.s-error .gaze{transform:translateY(2px)}
.s-error .bob{animation:u-shake 1.9s ease-in-out infinite}
@keyframes u-shake{0%,62%,100%{transform:translateX(0)}70%{transform:translateX(-6px)}77%{transform:translateX(6px)}84%{transform:translateX(-4px)}91%{transform:translateX(3px)}}

/* ---- working ---- */
.s-loading .m-d{opacity:0}
.s-loading .m-spin{opacity:1;animation:u-spin 1.1s linear infinite}
@keyframes u-spin{to{transform:rotate(360deg)}}

.s-typing .m-d{opacity:0}.s-typing .m-typing{opacity:1}
.s-typing .m-typing circle{transform-box:fill-box;transform-origin:center;animation:u-dotb 1.1s ease-in-out infinite}
.s-typing .m-typing circle:nth-child(2){animation-delay:.14s}
.s-typing .m-typing circle:nth-child(3){animation-delay:.28s}

.s-focus .eyes{animation:none;transform:scaleY(.45)}
.s-focus .m-d{opacity:0}.s-focus .m-line{opacity:1}
.s-focus .bob{animation:u-vibe .13s linear infinite}
@keyframes u-vibe{0%,100%{transform:translate(0,0)}25%{transform:translate(.7px,-.5px)}50%{transform:translate(-.6px,.4px)}75%{transform:translate(.4px,.6px)}}

.s-boot .m-d{opacity:0}.s-boot .m-line{opacity:1}
.s-boot .eyes{animation:none}
.s-boot .gaze{animation:u-bootin 2.8s ease-out infinite}
@keyframes u-bootin{0%,42%{opacity:0;transform:scale(.55)}58%{opacity:1;transform:scale(1.15)}70%,100%{opacity:1;transform:scale(1)}}
.s-boot .scan{opacity:1;animation:u-scanline 2.8s ease-in-out infinite}
@keyframes u-scanline{0%{transform:translateY(0);opacity:1}42%{transform:translateY(46px);opacity:1}52%,100%{opacity:0;transform:translateY(46px)}}

.s-confused .m-d{opacity:0}.s-confused .m-squig{opacity:1}
.s-confused .eye.l{transform:scale(.78)}
.s-confused .qmark{opacity:1;animation:u-qfloat 2.6s ease-in-out infinite}
@keyframes u-qfloat{0%,100%{transform:translateY(0);opacity:.45}50%{transform:translateY(-6px);opacity:1}}
.s-confused .bob{animation:u-wobble 3s ease-in-out infinite}
@keyframes u-wobble{0%,100%{transform:rotate(-5deg)}50%{transform:rotate(5deg)}}

.s-curious .m-d{opacity:0}.s-curious .m-dot{opacity:1}
.s-curious .eye.l{transform:scale(1.22)}
.s-curious .bob{animation:u-tiltloop 3.4s ease-in-out infinite}
@keyframes u-tiltloop{0%,100%{transform:rotate(0)}40%,62%{transform:rotate(8deg)}}

/* ---- feeling ---- */
.s-love .dot{opacity:0}.s-love .heart{opacity:1}
.s-love .eyes{animation:none}
.s-love .gaze{animation:u-beat 1s ease-in-out infinite}
@keyframes u-beat{0%,100%{transform:scale(1)}28%{transform:scale(1.2)}58%{transform:scale(1.02)}}
.s-love .m-d{opacity:0}.s-love .m-big{opacity:1}
.s-love .bob{animation-duration:2.4s}

.s-laugh .dot{opacity:0}.s-laugh .arc{opacity:1}
.s-laugh .eyes{animation:none}
.s-laugh .m-d{opacity:0}
.s-laugh .m-big{opacity:1;animation:u-laughm .28s ease-in-out infinite}
@keyframes u-laughm{0%,100%{transform:scaleY(.82)}50%{transform:scaleY(1.18)}}
.s-laugh .bob{animation:u-laughb .56s ease-in-out infinite}
@keyframes u-laughb{0%,100%{transform:translateY(0) rotate(-3deg)}50%{transform:translateY(-6px) rotate(3deg)}}

.s-sad .m-d{opacity:0}.s-sad .m-frown{opacity:1}
.s-sad .gaze{transform:translateY(5px)}
.s-sad .eye{transform:scaleY(.78)}
.s-sad .eyes{animation:u-blink 6.5s infinite}
.s-sad .bob{animation:u-sink 4.6s ease-in-out infinite}
@keyframes u-sink{0%,100%{transform:translateY(0)}50%{transform:translateY(4px)}}

.s-cool .dot{opacity:0}.s-cool .shades{opacity:1}
.s-cool .eyes{animation:none}
.s-cool .m-d{opacity:0}.s-cool .m-big{opacity:1}
.s-cool .bob{animation:u-groove 1.7s ease-in-out infinite}
@keyframes u-groove{0%,100%{transform:translateY(0) rotate(-2.5deg)}50%{transform:translateY(-4px) rotate(2.5deg)}}

.s-dizzy .dot{opacity:0}.s-dizzy .xeye{opacity:1}
.s-dizzy .eyes{animation:none}
.s-dizzy .m-d{opacity:0}.s-dizzy .m-squig{opacity:1}
.s-dizzy .bob{animation:u-sway 1.9s ease-in-out infinite}
@keyframes u-sway{0%,100%{transform:translateX(-4px) rotate(-7deg)}50%{transform:translateX(4px) rotate(7deg)}}

.s-celebrate .dot{opacity:0}.s-celebrate .arc{opacity:1}
.s-celebrate .m-d{opacity:0}.s-celebrate .m-big{opacity:1}
.s-celebrate .eyes{animation:none}
.s-celebrate .bob{animation:u-hop .68s ease-in-out infinite}
.s-celebrate .spark{opacity:1;animation:u-spark 1.3s ease-out infinite}
.s-celebrate .spark:nth-child(2){animation-delay:.32s}
.s-celebrate .spark:nth-child(3){animation-delay:.64s}
.s-celebrate .spark:nth-child(4){animation-delay:.96s}
@keyframes u-spark{0%{opacity:0;transform:scale(.2) rotate(0)}40%{opacity:1;transform:scale(1.15) rotate(35deg)}100%{opacity:0;transform:scale(.4) rotate(80deg)}}

@media (prefers-reduced-motion:reduce){.m *{animation:none!important}}
