.luna-mascot{--lm-glow:#b98cff;position:relative;display:inline-block;flex-shrink:0;width:var(--lm-size);aspect-ratio:1122/1402;isolation:isolate;pointer-events:none;user-select:none}.luna-mascot .lm-halo{position:absolute;inset:8% 2% 14%;z-index:-2;border-radius:50%;background:radial-gradient(closest-side,color-mix(in srgb,var(--lm-glow) 45%,transparent),transparent);filter:blur(calc(var(--lm-size) * .06));animation:lm-halo 3.6s ease-in-out infinite}.luna-mascot .lm-float{position:absolute;inset:0;animation:lm-float 3.6s ease-in-out infinite}.luna-mascot .lm-figure{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;opacity:0;transition:opacity .35s ease}.luna-mascot .lm-figure[data-on]{opacity:1}.luna-mascot .lm-jet{position:absolute;left:var(--lm-foot);top:87%;z-index:-1;width:26%;height:22%;translate:-50% 0;transition:left .35s ease}.luna-mascot .lm-jet:before{content:"";position:absolute;left:50%;top:0;width:100%;height:34%;translate:-50% -50%;border-radius:50%;background:radial-gradient(closest-side,#fff,color-mix(in srgb,var(--lm-glow) 80%,transparent) 45%,transparent);animation:lm-thrust .9s ease-in-out infinite}.luna-mascot .lm-jet i{position:absolute;top:6%;width:7%;height:70%;border-radius:999px;background:linear-gradient(to bottom,color-mix(in srgb,var(--lm-glow) 90%,#fff),transparent);opacity:0;animation:lm-jet .9s linear infinite}.luna-mascot .lm-jet i:first-child{left:30%}.luna-mascot .lm-jet i:nth-child(2){left:47%;height:90%;animation-delay:.3s}.luna-mascot .lm-jet i:nth-child(3){left:64%;animation-delay:.6s}.luna-mascot .lm-shadow{position:absolute;left:50%;bottom:-9%;width:46%;height:6%;translate:-50% 0;border-radius:50%;background:rgba(30,6,80,.32);filter:blur(calc(var(--lm-size) * .03));animation:lm-shadow 3.6s ease-in-out infinite}.luna-mascot .lm-stars{position:absolute;inset:0}.luna-mascot .lm-star{position:absolute;display:block;height:auto;color:#e4d2ff;filter:drop-shadow(0 0 4px var(--lm-glow));translate:-50% -50%;animation:lm-twinkle 2.4s ease-in-out infinite}.luna-mascot[data-mood=working] .lm-star{animation:lm-rise 1.8s ease-in infinite}.luna-mascot[data-mood=working] .lm-float{animation-duration:2.6s}.luna-mascot[data-mood=working] .lm-halo{animation-duration:1.6s}.luna-mascot[data-mood=success] .lm-float{animation:lm-hop .7s cubic-bezier(.3,1.6,.5,1),lm-float 3.6s ease-in-out .7s infinite}.luna-mascot .lm-burst{position:absolute;left:50%;top:42%}.luna-mascot .lm-burst .lm-star{width:calc(var(--lm-size) * .11);animation:lm-burst .9s ease-out forwards}.luna-mascot[data-mood=error]{--lm-glow:#9c86c9}.luna-mascot[data-mood=error] .lm-float{animation:lm-droop 4.4s ease-in-out infinite}.luna-mascot[data-mood=error] .lm-jet:before{animation:lm-sputter 1.4s steps(2,jump-none) infinite}@media (prefers-reduced-motion:reduce){.luna-mascot[data-mood] .lm-figure,.luna-mascot[data-mood] .lm-float,.luna-mascot[data-mood] .lm-halo,.luna-mascot[data-mood] .lm-jet i,.luna-mascot[data-mood] .lm-jet:before,.luna-mascot[data-mood] .lm-shadow,.luna-mascot[data-mood] .lm-star{animation:none;transition:none}.luna-mascot[data-mood] .lm-jet i{opacity:.5}.luna-mascot[data-mood] .lm-burst{display:none}}@keyframes lm-float{0%,to{translate:0 0;rotate:0deg}50%{translate:0 calc(var(--lm-size) * -.07);rotate:-1.5deg}}@keyframes lm-droop{0%,to{translate:0 calc(var(--lm-size) * .02)}50%{translate:0 calc(var(--lm-size) * -.02)}}@keyframes lm-hop{0%{translate:0 0;rotate:0deg}40%{translate:0 calc(var(--lm-size) * -.2);rotate:-6deg}70%{translate:0 0;rotate:4deg}to{translate:0 0;rotate:0deg}}@keyframes lm-shadow{0%,to{scale:1;opacity:.9}50%{scale:.76;opacity:.5}}@keyframes lm-halo{0%,to{opacity:.85;scale:1}50%{opacity:1;scale:1.06}}@keyframes lm-thrust{0%,to{opacity:1;scale:1 1}50%{opacity:.6;scale:.8 .9}}@keyframes lm-sputter{0%{opacity:.7}to{opacity:.2}}@keyframes lm-jet{0%{opacity:0;translate:0 -10%}30%{opacity:.9}to{opacity:0;translate:0 40%}}@keyframes lm-twinkle{0%,to{opacity:.25;scale:.6}50%{opacity:1;scale:1}}@keyframes lm-rise{0%{opacity:0;scale:.4;translate:-50% 0}30%{opacity:1;scale:1}to{opacity:0;scale:.6;translate:-50% calc(var(--lm-size) * -.35)}}@keyframes lm-burst{0%{opacity:0;transform:rotate(var(--lm-angle)) translateX(0) scale(.3)}30%{opacity:1}to{opacity:0;transform:rotate(var(--lm-angle)) translateX(calc(var(--lm-size) * .55)) scale(1)}}