:host{width:var(--mascot-size,120px);height:var(--mascot-size,120px);display:inline-block}.loom-avatar{color:#283442;width:100%;height:100%;display:block;overflow:visible}.loom-avatar-shell{vertical-align:middle;flex-shrink:0;line-height:0;display:inline-block}.loom-avatar-character{transform-origin:50px 70px;animation:6s ease-in-out infinite loom-breathe}.loom-avatar-gaze{transform:translate(var(--loom-gaze-x,0px),var(--loom-gaze-y,0px));transition:transform .16s ease-out}.loom-avatar-eye{animation:6s ease-in-out infinite loom-blink;animation-delay:var(--loom-blink-delay,0s)}.loom-avatar-eye-tilt{transform:rotate(var(--loom-eye-angle,0deg));transition:transform .24s}.loom-avatar-eye-form{transition:transform .22s}.loom-avatar-eye-1{animation-delay:calc(var(--loom-blink-delay,0s) + 35ms)}.loom-avatar-body,.loom-avatar-wave,.loom-avatar-wave [fill]:not([fill=none]){transition:fill .26s}.loom-avatar-wave{transform-origin:78px 75px}.loom-avatar-eye-pupil{transform-box:fill-box;transform-origin:50%}.loom-mascot-button{appearance:none;cursor:pointer;-webkit-tap-highlight-color:transparent;background:0 0;border:0;border-radius:28%;width:100%;height:100%;padding:0;display:block}.loom-mascot-button:focus-visible{outline:2px solid var(--brand-blue,#005ae7);outline-offset:6px}.loom-mascot-art{width:100%;height:100%;display:block}.loom-avatar[data-loom-state=typing] .loom-avatar-character{animation:1.7s ease-in-out infinite loom-attentive}.loom-avatar[data-loom-state=typing] .loom-avatar-eye-form[data-eye-expression=focused]{transform:translateY(1px)scaleY(.94)}.loom-avatar[data-loom-state=thinking] .loom-avatar-character{animation:3.8s ease-in-out infinite loom-think}.loom-avatar[data-loom-state=thinking] .loom-avatar-eye-tilt{animation:3.8s ease-in-out infinite loom-eye-curiosity}.loom-avatar[data-loom-state=thinking] .loom-avatar-eye-form[data-eye-expression=ponder]{animation:3.8s ease-in-out infinite loom-look-up}.loom-avatar[data-loom-state=listening] .loom-avatar-body,.loom-avatar[data-loom-state=listening] .loom-avatar-wave,.loom-avatar[data-loom-state=listening] .loom-avatar-wave [fill]:not([fill=none]){fill:#c8dff0}.loom-avatar[data-loom-state=listening] .loom-avatar-character{animation:2.2s ease-in-out infinite loom-listen}.loom-avatar[data-loom-state=listening] .loom-avatar-eye-form[data-eye-expression=bright]{transform:scale(1.12)}.loom-avatar[data-loom-state=listening] .loom-avatar-eye-pupil{animation:2.2s ease-in-out infinite loom-attention-glint}.loom-avatar[data-loom-state=success] .loom-avatar-body,.loom-avatar[data-loom-state=success] .loom-avatar-wave,.loom-avatar[data-loom-state=success] .loom-avatar-wave [fill]:not([fill=none]){fill:#b8dcc4}.loom-avatar[data-loom-state=success] .loom-avatar-character{animation:.85s ease-out loom-success-pop}.loom-avatar[data-loom-state=success] .loom-avatar-eye{animation:none}.loom-avatar[data-loom-state=success] .loom-avatar-eye-form[data-eye-expression=stars]{animation:.85s ease-out loom-star-spark}.loom-avatar[data-loom-state=error] .loom-avatar-body,.loom-avatar[data-loom-state=error] .loom-avatar-wave,.loom-avatar[data-loom-state=error] .loom-avatar-wave [fill]:not([fill=none]){fill:#eaa2a2}.loom-avatar[data-loom-state=error] .loom-avatar-character{animation:.58s ease-out loom-concern}.loom-avatar[data-loom-state=error] .loom-avatar-eye-form[data-eye-expression=annoyed]{transform:translateY(1px)scaleY(.95)}.loom-avatar[data-loom-state=happy] .loom-avatar-character{animation:1.5s ease-in-out loom-salute}.loom-avatar[data-loom-state=happy] .loom-avatar-eye{animation:none}.loom-avatar[data-loom-state=happy] .loom-avatar-eye-form[data-eye-expression=greeting]{transform:translateY(-.5px)}.loom-avatar[data-loom-state=happy] .loom-avatar-wave{animation:.36s ease-in-out 4 loom-hand-wave}@keyframes loom-breathe{0%,to{transform:translateY(0)}50%{transform:translateY(-1.2px)}}@keyframes loom-blink{0%,44%,48%,to{transform:scaleY(1)}46%{transform:scaleY(.08)}}@keyframes loom-attentive{0%,to{transform:translateY(0)rotate(0)}22%,38%{transform:translateY(1px)rotate(-1.2deg)}60%{transform:translateY(0)rotate(.5deg)}}@keyframes loom-think{0%,to{transform:rotate(0)}28%,65%{transform:translateY(-1px)rotate(-3deg)}82%{transform:rotate(-1deg)}}@keyframes loom-eye-curiosity{0%,to{transform:rotate(var(--loom-eye-angle,0deg))}28%,65%{transform:rotate(calc(var(--loom-eye-angle,0deg) + 5deg))}}@keyframes loom-look-up{0%,to{transform:translate(0)}25%,68%{transform:translate(1.4px,-3px)}84%{transform:translateY(-1px)}}@keyframes loom-listen{0%,to{transform:translateY(0)scale(1)}18%,32%{transform:translateY(-.6px)scale(1.015)}55%{transform:translateY(.7px)scale(1)}72%{transform:translateY(0)scale(1.006)}}@keyframes loom-attention-glint{0%,to{transform:translateY(0)scale(1)}20%,35%{transform:translateY(-.7px)scale(1.08)}60%{transform:translateY(.3px)scale(1)}}@keyframes loom-success-pop{0%{transform:translateY(0)scale(1)}16%{transform:translateY(1px)scale(1.035,.96)}42%{transform:translateY(-6px)scale(.98,1.055)}68%{transform:translateY(0)scale(1.025,.98)}86%,to{transform:translateY(0)scale(1)}}@keyframes loom-star-spark{0%,to{transform:scale(1)rotate(0)}42%{transform:scale(1.16)rotate(-8deg)}70%{transform:scale(1.02)rotate(4deg)}}@keyframes loom-concern{0%,to{transform:translate(0)rotate(0)}20%{transform:translate(-2px)rotate(-3deg)}42%{transform:translate(2px)rotate(3deg)}64%{transform:translate(-1px)rotate(-1.5deg)}82%{transform:translate(.5px)rotate(.5deg)}}@keyframes loom-salute{0%,to{transform:rotate(0)translateY(0)}18%,78%{transform:rotate(-2deg)translateY(-1px)}}@keyframes loom-hand-wave{0%,to{transform:rotate(0)}25%{transform:rotate(-13deg)}72%{transform:rotate(12deg)}}@media (prefers-reduced-motion:reduce){.loom-avatar-character,.loom-avatar-eye,.loom-avatar-eye-tilt,.loom-avatar-eye-form,.loom-avatar-eye-pupil,.loom-avatar-wave{animation:none!important}.loom-avatar-gaze{transition:none;transform:none!important}.loom-avatar-body,.loom-avatar-wave,.loom-avatar-wave [fill]:not([fill=none]),.loom-avatar-eye-tilt,.loom-avatar-eye-form{transition:none}}
.loom-logo{color:var(--text-primary);letter-spacing:-1px;align-items:center;gap:10px;font-size:24px;font-weight:600;display:inline-flex}.chat-empty .loom-logo{width:max-content;margin:0 auto 20px;display:flex}.feedback-author>.loom-avatar-shell{flex-shrink:0;position:absolute;top:0;left:0}
