.mascot-root{z-index:95;pointer-events:none;--bot-lime:#c6f24d;--bot-amber:#ffb24d;--bot-violet:#a78bff;--bot-text:#f4f4ef;position:fixed;inset:0}.mascot{pointer-events:auto;will-change:transform;flex-direction:column;align-items:center;width:104px;transition:transform .85s cubic-bezier(.22,1,.36,1);display:flex;position:absolute;top:0;left:0}.mascot-3d{--nx:0;--ny:0;cursor:pointer;transform:perspective(620px) rotateX(calc(var(--ny) * -11deg)) rotateY(calc(var(--nx) * 15deg));transform-style:preserve-3d;transition:transform .28s cubic-bezier(.22,1,.36,1)}.mascot-3d:hover{transform:perspective(620px) rotateX(calc(var(--ny) * -11deg)) rotateY(calc(var(--nx) * 15deg)) scale(1.06)}.mascot-bubble{-webkit-backdrop-filter:blur(12px);width:236px;max-width:72vw;color:var(--bot-text);pointer-events:auto;opacity:0;background:linear-gradient(160deg,#1c1f26f2,#0d0f13f2);border:1px solid #c6f24d61;border-radius:18px;padding:13px 16px 14px;transition:opacity .45s,transform .45s cubic-bezier(.22,1,.36,1);position:absolute;transform:translateY(8px)scale(.95);box-shadow:0 22px 60px -14px #000000bf,inset 0 1px #ffffff0f}.mascot-bubble.show{opacity:1;transform:translateY(0)scale(1)}.mascot[data-vside=up] .mascot-bubble{bottom:116px}.mascot[data-vside=down] .mascot-bubble{top:116px}.mascot[data-hside=left] .mascot-bubble{right:10px}.mascot[data-hside=right] .mascot-bubble{left:10px}.mascot-name{font-family:var(--ff-display,"Bricolage Grotesque", sans-serif);letter-spacing:.02em;color:var(--bot-lime);align-items:center;gap:6px;margin-bottom:4px;font-size:12px;font-weight:700;display:inline-flex}.mascot-name:before{content:"";background:var(--bot-lime);width:6px;height:6px;box-shadow:0 0 8px var(--bot-lime);border-radius:50%;animation:1.6s ease-in-out infinite bot-dot}.mascot-msg{font-family:var(--ff-body,"Plus Jakarta Sans", sans-serif);color:#e8e8e2;font-size:13.5px;line-height:1.5}.mascot-pips{gap:4px;margin-top:10px;display:flex}.mascot-pip{background:#ffffff2e;border-radius:50%;width:5px;height:5px;transition:background .3s,width .3s}.mascot-pip.on{background:var(--bot-lime);border-radius:3px;width:15px}.mascot-tail{background:#14161bf2;border-bottom:1px solid #c6f24d61;border-right:1px solid #c6f24d61;width:14px;height:14px;position:absolute}.mascot[data-vside=up] .mascot-tail{bottom:110px;transform:rotate(45deg)}.mascot[data-vside=down] .mascot-tail{top:110px;transform:rotate(-135deg)}.mascot[data-hside=left] .mascot-tail{right:34px}.mascot[data-hside=right] .mascot-tail{left:34px}.mascot-bot{width:96px;height:auto;animation:4s ease-in-out infinite bot-float;overflow:visible}.bot-shadow{fill:#00000073;animation:4s ease-in-out infinite bot-shadow}.bot-aura{fill:none;stroke:var(--bot-lime);stroke-width:1px;opacity:0;transform-box:fill-box;transform-origin:50%;animation:3.4s ease-out infinite bot-aura}.bot-antenna{stroke:var(--bot-lime);stroke-width:3px;stroke-linecap:round}.bot-tip{transform-box:fill-box;transform-origin:50%;animation:1.8s ease-in-out infinite bot-tip}.bot-reactor{transform-box:fill-box;transform-origin:50%;animation:2.2s ease-in-out infinite bot-reactor}.bot-eyes{transform-box:fill-box;transform-origin:50%;animation:4.6s ease-in-out infinite bot-blink}.bot-pupils{transform:translate(calc(var(--nx,0) * 3.4px), calc(var(--ny,0) * 2.8px));transition:transform .16s ease-out}.bot-mouth{animation:5.5s ease-in-out infinite bot-mouth}.bot-arm{transform-box:fill-box;transform-origin:50% 9%}.bot-arm-r{transition:transform .5s cubic-bezier(.34,1.56,.64,1);transform:rotate(6deg)}.bot-arm-l{transition:transform .5s cubic-bezier(.34,1.56,.64,1);transform:rotate(-6deg)}.mascot[data-pose=wave] .bot-arm-r{animation:.9s ease-in-out infinite bot-wave}.mascot[data-pose=point] .bot-arm-r{transform:rotate(-62deg)}.mascot[data-pose=cheer] .bot-arm-r{transform:rotate(-48deg)}.mascot[data-pose=cheer] .bot-arm-l{transform:rotate(48deg)}.mascot[data-pose=think] .bot-arm-r{transform:rotate(-26deg)translateY(2px)}.mascot[data-pose=think] .bot-think{opacity:1}.bot-think{opacity:0;transition:opacity .4s}.bot-think circle{fill:var(--bot-violet);animation:1.4s ease-in-out infinite bot-think}.bot-think circle:nth-child(2){animation-delay:.2s}.bot-think circle:nth-child(3){animation-delay:.4s}@keyframes bot-float{0%,to{transform:translateY(0)}50%{transform:translateY(-8px)}}@keyframes bot-shadow{0%,to{opacity:.45;transform:scale(1)}50%{opacity:.22;transform:scale(.8)}}@keyframes bot-aura{0%{opacity:.35;transform:scale(.78)}70%,to{opacity:0;transform:scale(1.1)}}@keyframes bot-tip{0%,to{opacity:.55;transform:scale(.85)}50%{opacity:1;transform:scale(1.15)}}@keyframes bot-reactor{0%,to{opacity:.6;transform:scale(.92)}50%{opacity:1;transform:scale(1.08)}}@keyframes bot-blink{0%,91%,to{transform:scaleY(1)}94%{transform:scaleY(.1)}97%{transform:scaleY(1)}}@keyframes bot-mouth{0%,90%,to{transform:scaleX(1)}95%{transform:scaleX(.5)}}@keyframes bot-wave{0%,to{transform:rotate(-40deg)}50%{transform:rotate(-70deg)}}@keyframes bot-think{0%,to{opacity:.3;transform:translateY(0)}50%{opacity:1;transform:translateY(-2px)}}@keyframes bot-dot{0%,to{opacity:1}50%{opacity:.35}}@keyframes bot-look{0%,to{transform:translate(-2.6px,1px)}35%{transform:translate(2.6px,-1px)}70%{transform:translateY(2px)}}@keyframes bot-sway{0%,to{transform:perspective(620px)rotateY(-9deg)}50%{transform:perspective(620px)rotateY(9deg)}}@media (max-width:768px){.mascot{width:84px}.mascot-bot{width:74px}.mascot-bubble{width:204px;max-width:64vw;padding:11px 14px 12px}.mascot-msg{font-size:12.5px}.mascot[data-vside=up] .mascot-bubble,.mascot[data-vside=down] .mascot-bubble{top:auto;bottom:94px}.mascot[data-vside=up] .mascot-tail,.mascot[data-vside=down] .mascot-tail{top:auto;bottom:88px;transform:rotate(45deg)}}@media (hover:none){.bot-pupils{animation:5s ease-in-out infinite bot-look}.mascot-3d{animation:6s ease-in-out infinite bot-sway}}@media (prefers-reduced-motion:reduce){.mascot{transition:none}.mascot-3d{animation:none!important;transform:none!important}.mascot-bot,.bot-tip,.bot-reactor,.bot-eyes,.bot-aura,.bot-mouth,.bot-arm-r,.bot-shadow,.bot-pupils,.mascot-name:before{animation:none!important}.mascot-bubble{transition:opacity .2s;transform:none}.mascot-bubble.show{transform:none}}
