.blby{position:fixed;left:0;top:0;z-index:var(--z);width:var(--s);height:var(--s);font-family:system-ui,sans-serif;opacity:0;transition:opacity .4s;will-change:transform}
.blby.on{opacity:1}
.blby-in{width:100%;height:100%}
.blby-a-bounce .blby-in{animation:blby-b 1.6s ease-in-out infinite}
.blby-a-float .blby-in{animation:blby-f 3s ease-in-out infinite}
.blby-a-wobble .blby-in{animation:blby-w 2s ease-in-out infinite}
.blby-air .blby-in,.blby-drag .blby-in{animation:none!important}
@keyframes blby-b{0%,100%{transform:translateY(0)}50%{transform:translateY(-8px)}}
@keyframes blby-f{0%,100%{transform:translateY(0) rotate(-3deg)}50%{transform:translateY(-6px) rotate(3deg)}}
@keyframes blby-w{0%,100%{transform:rotate(-8deg)}50%{transform:rotate(8deg)}}
.blby-ball{position:relative;width:100%;height:100%;box-sizing:border-box;border-radius:50%;border:var(--ow) solid var(--oc);background:var(--c);cursor:pointer;transform-origin:50% 100%;transition:transform .12s;user-select:none;-webkit-user-select:none;touch-action:none;-webkit-tap-highlight-color:transparent}
.blby-gl .blby-ball{background:radial-gradient(circle at 30% 25%,rgba(255,255,255,.38),transparent 35%),var(--c)}
.blby-sh .blby-ball{box-shadow:inset -4px -6px 10px rgba(0,0,0,.18),0 4px 10px rgba(0,0,0,.22)}
.blby-grab .blby-ball{cursor:grab}.blby-drag .blby-ball{cursor:grabbing}
.blby-eyes{position:absolute;left:0;right:0;top:var(--et);display:flex;justify-content:center;gap:var(--eg)}
.blby-eye{position:relative;width:var(--e);height:var(--e);background:#fff;border-radius:50%;box-shadow:inset 0 -2px 3px rgba(0,0,0,.15);animation:blby-k 4s infinite}
.blby-nb .blby-eye{animation:none}
.blby-eye b{position:absolute;left:50%;top:50%;width:var(--p);height:var(--p);margin:calc(var(--p)/-2);border-radius:50%;background:var(--pc);transition:transform .08s}
.blby-eye b:after{content:"";position:absolute;left:18%;top:15%;width:28%;height:28%;border-radius:50%;background:#fff}
@keyframes blby-k{0%,92%,100%{transform:scaleY(1)}95%{transform:scaleY(.1)}}
.blby-mouth{position:absolute;left:0;right:0;margin:auto;bottom:20%;transform-origin:50% 0}
.blby-m-smile .blby-mouth{width:24%;height:13%;border-bottom:3px solid var(--mc);border-radius:0 0 50% 50%}
.blby-m-open .blby-mouth{width:22%;height:14%;background:var(--mc);border-radius:0 0 100px 100px}
.blby-m-flat .blby-mouth{width:20%;height:0;border-bottom:3px solid var(--mc);border-radius:3px}
.blby-m-ooh .blby-mouth{width:12%;height:12%;background:var(--mc);border-radius:50%}
.blby-talk .blby-mouth{animation:blby-m .22s infinite alternate;background:var(--mc)}
@keyframes blby-m{to{transform:scaleY(.45)}}
.blby-blush .blby-ball:before,.blby-blush .blby-ball:after{content:"";position:absolute;bottom:30%;width:14%;height:9%;border-radius:50%;background:var(--ck);opacity:.7}
.blby-blush .blby-ball:before{left:10%}.blby-blush .blby-ball:after{right:10%}
.blby-acc{position:absolute;left:50%;pointer-events:none}
.blby-acc-hat{top:-26%;width:0;height:0;margin-left:calc(var(--s)*-.17);border-left:calc(var(--s)*.17) solid transparent;border-right:calc(var(--s)*.17) solid transparent;border-bottom:calc(var(--s)*.32) solid var(--ac);transform:rotate(-12deg)}
.blby-acc-antenna{top:-26%;width:3px;height:30%;margin-left:-1.5px;background:#444}
.blby-acc-antenna:after{content:"";position:absolute;left:50%;top:-6px;width:11px;height:11px;margin-left:-5.5px;border-radius:50%;background:var(--ac)}
.blby-acc-bow{bottom:-2%;width:calc(var(--s)*.34);height:calc(var(--s)*.2);margin-left:calc(var(--s)*-.17);background:var(--ac);clip-path:polygon(0 0,50% 42%,100% 0,100% 100%,50% 58%,0 100%)}
.blby-name{position:absolute;top:100%;left:50%;transform:translateX(-50%);margin-top:4px;padding:1px 9px;border-radius:99px;background:var(--nb);color:var(--nt);font-size:calc(var(--bs)*.8);line-height:1.5;white-space:nowrap;pointer-events:none}
.blby-bub{position:absolute;bottom:62%;right:calc(100% + 8px);max-width:min(240px,55vw);width:max-content;box-sizing:border-box;padding:8px 12px;border:1px solid var(--bbd);border-radius:var(--br);background:var(--bb);color:var(--bt);font-size:var(--bs);line-height:1.35;box-shadow:0 3px 12px rgba(0,0,0,.18);opacity:0;transform:scale(.6);transform-origin:100% 100%;pointer-events:none;transition:opacity .2s,transform .25s cubic-bezier(.3,1.6,.5,1)}
.blby-bub.show{opacity:1;transform:scale(1)}.blby-bub.lk{pointer-events:auto}
.blby-bub a{color:var(--lc);font-weight:600;text-decoration:underline}
.blby-bub:after{content:"";position:absolute;bottom:10px;left:100%;border:6px solid transparent;border-left-color:var(--bb)}
.blby-L .blby-bub{right:auto;left:calc(100% + 8px);transform-origin:0 100%}
.blby-L .blby-bub:after{left:auto;right:100%;border-left-color:transparent;border-right-color:var(--bb)}
.blby-low .blby-bub{bottom:auto;top:62%}.blby-low .blby-bub:after{bottom:auto;top:10px}
.blby-x{position:absolute;top:-8px;right:-8px;width:22px;height:22px;padding:0;border:0;border-radius:50%;background:#333;color:#fff;font:14px/22px sans-serif;cursor:pointer;opacity:0;transition:opacity .2s}
.blby:hover .blby-x,.blby-touch .blby-x{opacity:.85}
@media (prefers-reduced-motion:reduce){.blby-in,.blby-eye{animation:none!important}}
