.mascot-root{--mascot-accent: #5b46d6;--mascot-accent-soft: rgba(91, 70, 214, .18);--mascot-teal: #34c9a3;--mascot-ink: #26224a;--mascot-bubble-bg: #ffffff;--mascot-bubble-shadow: 0 10px 28px rgba(38, 34, 74, .18), 0 2px 6px rgba(38, 34, 74, .08);--mascot-z: 9999;position:fixed;left:0;bottom:0;width:0;height:0;z-index:var(--mascot-z);pointer-events:none;font-family:inherit;font-size:14px;line-height:1.45;color:var(--mascot-ink)}.mascot-mover{position:absolute;left:0;bottom:0;will-change:transform;transition-property:transform;transition-duration:var(--mascot-move-ms, 0ms);transition-timing-function:var(--mascot-move-ease, linear)}.mascot-arc{will-change:transform}.mascot-stage{position:relative;width:var(--mascot-w, 195px);height:var(--mascot-h, 150px);pointer-events:auto;cursor:grab;touch-action:none;-webkit-tap-highlight-color:transparent}.mascot-stage.is-dragging{cursor:grabbing}.mascot-flip{position:absolute;top:0;right:0;bottom:0;left:0;transform-origin:50% 100%;outline:none}.mascot-flip:focus-visible{filter:drop-shadow(0 0 0 3px var(--mascot-accent)) drop-shadow(0 0 6px var(--mascot-accent-soft))}.mascot-flip.face-right{transform:scaleX(-1)}.mascot-act,.mascot-talk,.mascot-body{position:absolute;top:0;right:0;bottom:0;left:0;transform-origin:50% 100%}.mascot-talk{transform-origin:50% 72%}.mascot-talk.is-talking{animation:mascot-talk .46s ease-in-out infinite alternate}@keyframes mascot-talk{0%{transform:rotate(-1.1deg) translateY(0)}to{transform:rotate(1.1deg) translateY(-1.5px)}}.mascot-face-host{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none}svg.mascot-face{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;overflow:visible;opacity:0;transition:opacity .18s ease}svg.mascot-face.is-active{opacity:1}.face-mouth{opacity:0;transition:opacity .15s ease}.face-mouth.is-talking{opacity:1}.face-glint{animation:mascot-glint 7s ease-in-out infinite}@keyframes mascot-glint{0%,86%,to{opacity:.55}93%{opacity:1}}.mascot-shadow{position:absolute;left:50%;bottom:-2px;width:46%;height:8%;transform:translate(-50%);border-radius:50%;background:radial-gradient(ellipse at center,#26224a47,#26224a00 72%);transition:transform .35s ease,opacity .35s ease}.mascot-stage[data-motion=flying] .mascot-shadow{transform:translate(-50%) scale(.55);opacity:.35}.mascot-stage[data-motion=walking] .mascot-shadow{animation:mascot-walk-shadow var(--mascot-walk-ms, 1s) ease-in-out infinite}@keyframes mascot-walk-shadow{0%,to{transform:translate(-50%) scaleX(1);opacity:.78}50%{transform:translate(-50%) scaleX(.87);opacity:.58}}img.mascot-pose{position:absolute;left:50%;bottom:0;height:100%;width:auto;max-width:100%;object-fit:contain;object-position:bottom center;transform:translate(-50%);opacity:0;transition:opacity .18s ease;pointer-events:none;-webkit-user-select:none;user-select:none;-webkit-user-drag:none}img.mascot-pose.is-active{opacity:1}.mascot-walk-cycle{position:absolute;top:0;right:0;bottom:0;left:0}img.mascot-walk-frame:first-child{opacity:1}img.mascot-walk-frame{animation:mascot-walk-frame var(--mascot-walk-ms, 1s) steps(1,end) infinite;transition:none}img.mascot-walk-frame:nth-child(2){animation-delay:calc(0ms - var(--mascot-walk-quarter-ms, .25s) - var(--mascot-walk-quarter-ms, .25s) - var(--mascot-walk-quarter-ms, .25s))}img.mascot-walk-frame:nth-child(3){animation-delay:calc(0ms - var(--mascot-walk-quarter-ms, .25s) - var(--mascot-walk-quarter-ms, .25s))}img.mascot-walk-frame:nth-child(4){animation-delay:calc(0ms - var(--mascot-walk-quarter-ms, .25s))}@keyframes mascot-walk-frame{0%,24.999%{opacity:1}25%,to{opacity:0}}.mascot-body.motion-idle{animation:mascot-breathe 3.4s ease-in-out infinite}.mascot-body.motion-flying{animation:mascot-flap .36s ease-in-out infinite}@keyframes mascot-breathe{0%,to{transform:scale(1)}50%{transform:scale(1.02,1.035)}}@keyframes mascot-flap{0%,to{transform:translateY(0) rotate(-3deg) scaleY(1)}50%{transform:translateY(-6px) rotate(3deg) scaleY(1.05)}}.mascot-bubble{position:absolute;box-sizing:border-box;bottom:calc(100% + 6px);left:50%;transform:translate(calc(-50% + var(--bubble-shift, 0px)));width:max-content;min-width:160px;max-width:min(280px,calc(100vw - 24px));padding:10px 14px 11px;border-radius:16px;background:var(--mascot-bubble-bg);color:var(--mascot-ink);box-shadow:var(--mascot-bubble-shadow);pointer-events:auto;cursor:default;animation:mascot-bubble-in .22s cubic-bezier(.2,.9,.3,1.2);transform-origin:50% 100%}.mascot-bubble.is-below{bottom:auto;top:calc(100% + 6px);transform-origin:50% 0%}.mascot-bubble.is-stream{width:min(312px,calc(100vw - 24px));padding:0;overflow:visible;border:1px solid rgba(91,70,214,.14);border-radius:20px;background:linear-gradient(145deg,#fff,#fcfbff);box-shadow:0 18px 46px #26224a33,0 4px 12px #5b46d61a,inset 0 1px #ffffffe6}.mascot-bubble.is-stream:after{background:#fdfcff;box-shadow:3px 3px 8px #26224a17}.mascot-bubble-stream-header{display:flex;align-items:center;gap:7px;min-height:38px;padding:0 14px;border-bottom:1px solid rgba(91,70,214,.1);border-radius:19px 19px 0 0;background:linear-gradient(90deg,#5b46d617,#7de4c812)}.mascot-bubble-stream-orb{position:relative;width:9px;height:9px;flex:0 0 auto;border-radius:50%;background:linear-gradient(135deg,#8b7cff,var(--mascot-accent));box-shadow:0 0 0 4px #5b46d61c}.mascot-bubble-stream-orb:after{position:absolute;top:2px;right:2px;bottom:2px;left:2px;border-radius:inherit;background:#ffffffb8;content:""}.mascot-bubble-stream-name{color:var(--mascot-ink);font-size:12px;font-weight:800;letter-spacing:.01em}.mascot-bubble-stream-rule{height:1px;flex:1;background:linear-gradient(90deg,rgba(91,70,214,.2),transparent)}.mascot-bubble-stream-status{width:6px;height:6px;flex:0 0 auto;border-radius:50%;background:var(--mascot-teal);box-shadow:0 0 0 3px #34c9a321}.mascot-bubble.is-stream[data-stream-state=waiting] .mascot-bubble-stream-status,.mascot-bubble.is-stream[data-stream-state=typing] .mascot-bubble-stream-status{animation:mascot-stream-pulse 1.2s ease-in-out infinite}.mascot-bubble:after{content:"";position:absolute;left:calc(50% - var(--bubble-shift, 0px));bottom:-6px;width:14px;height:14px;margin-left:-7px;background:var(--mascot-bubble-bg);border-radius:3px;transform:rotate(45deg);box-shadow:3px 3px 6px #26224a0f}.mascot-bubble.is-below:after{bottom:auto;top:-6px;box-shadow:-3px -3px 6px #26224a0f}.mascot-bubble-text{position:relative;margin:0;overflow-wrap:anywhere;max-height:min(44vh,320px);overflow-y:auto;overscroll-behavior:contain}.mascot-bubble.is-stream .mascot-bubble-text{box-sizing:border-box;min-height:1.55em;max-height:min(34vh,260px);margin:0;padding:11px 14px 12px;color:#353255;font-size:13.5px;line-height:1.58;letter-spacing:.002em;white-space:pre-wrap;overflow-y:auto;overscroll-behavior:contain;scrollbar-width:thin;scrollbar-color:rgba(91,70,214,.38) transparent}.mascot-bubble.is-stream .mascot-bubble-text::-webkit-scrollbar{width:5px}.mascot-bubble.is-stream .mascot-bubble-text::-webkit-scrollbar-thumb{border-radius:999px;background:#5b46d657}.mascot-bubble.is-stream .mascot-bubble-ghost{display:none}.mascot-bubble.is-stream .mascot-bubble-typed{position:static}.mascot-bubble-ghost{visibility:hidden}.mascot-bubble-typed{position:absolute;top:0;right:0;bottom:0;left:0}.mascot-bubble-caret{display:inline-block;width:.42em;height:1.1em;margin-left:3px;border-radius:999px;background:var(--mascot-accent);vertical-align:-.19em;animation:mascot-type-caret .85s steps(2,jump-none) infinite}.mascot-bubble-footer{min-width:0}.mascot-bubble.is-stream .mascot-bubble-footer{margin-top:0;padding:9px 14px 12px;border-top:1px solid rgba(91,70,214,.1);border-radius:0 0 19px 19px;background:linear-gradient(145deg,#f8f7fff5,#fffffff5)}.mascot-bubble-actions{display:flex;flex-wrap:wrap;gap:6px;margin-top:9px}.mascot-reference-note{margin:8px 0 0;font-size:12px;line-height:1.4;color:var(--mascot-accent)}.mascot-bubble.is-stream .mascot-reference-note{margin:0 0 8px;color:#6657c7;font-size:10.5px;font-weight:600;line-height:1.42}.mascot-bubble.is-stream .mascot-bubble-actions{display:grid;max-height:108px;margin:0;overflow-y:auto}.mascot-bubble.is-stream .mascot-btn{display:flex;width:100%;min-height:38px;align-items:center;gap:10px;max-width:100%;padding:8px 10px;border:1px solid rgba(91,70,214,.18);border-radius:12px;background:#ffffffe0;box-shadow:0 1px 2px #26224a0a;color:#5142c1;font-size:12px;line-height:1.32;text-align:left;overflow-wrap:anywhere}.mascot-bubble.is-stream .mascot-btn:after{flex:0 0 auto;margin-left:auto;color:#8173df;font-size:15px;font-weight:700;content:"↗"}.mascot-bubble.is-stream .mascot-btn:hover{border-color:#5b46d657;background:#fff;box-shadow:0 4px 12px #5b46d61f;transform:translateY(-1px)}.mascot-bubble.is-stream .mascot-btn.is-primary:after{color:#fff}.mascot-bubble.is-stream .mascot-btn.is-primary{border-color:var(--mascot-accent);background:var(--mascot-accent);color:#fff}.mascot-btn{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:1.5px solid var(--mascot-accent-soft);background:transparent;color:var(--mascot-accent);font:inherit;font-size:13px;font-weight:600;line-height:1;padding:7px 11px;border-radius:999px;cursor:pointer;transition:background .15s ease,transform .15s ease}.mascot-btn:hover{background:var(--mascot-accent-soft)}.mascot-btn:active{transform:translateY(1px)}.mascot-btn:focus-visible{outline:2px solid var(--mascot-accent);outline-offset:2px}.mascot-btn.is-primary{background:var(--mascot-accent);border-color:var(--mascot-accent);color:#fff}.mascot-btn.is-primary:hover{background:#4a37c2}.mascot-dots{display:inline-flex;gap:4px;align-items:center;height:18px;vertical-align:middle;margin-left:4px}.mascot-dots span{width:6px;height:6px;border-radius:50%;background:var(--mascot-accent);animation:mascot-dot 1.2s ease-in-out infinite}.mascot-dots span:nth-child(2){animation-delay:.15s}.mascot-dots span:nth-child(3){animation-delay:.3s}@keyframes mascot-dot{0%,80%,to{transform:translateY(0);opacity:.45}40%{transform:translateY(-5px);opacity:1}}@keyframes mascot-stream-pulse{0%,to{transform:scale(.86);box-shadow:0 0 0 3px #34c9a321}50%{transform:scale(1.14);box-shadow:0 0 0 6px #34c9a30a}}@keyframes mascot-type-caret{0%,48%{opacity:1}49%,to{opacity:.15}}@keyframes mascot-bubble-in{0%{opacity:0;transform:translate(calc(-50% + var(--bubble-shift, 0px))) scale(.85) translateY(6px)}to{opacity:1;transform:translate(calc(-50% + var(--bubble-shift, 0px))) scale(1) translateY(0)}}.mascot-sr{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.mascot-highlight{outline:3px solid var(--mascot-accent, #5b46d6);outline-offset:4px;border-radius:12px;animation:mascot-ring 1.4s ease-out infinite;scroll-margin:140px}@keyframes mascot-ring{0%{box-shadow:0 0 #5b46d680}to{box-shadow:0 0 0 16px #5b46d600}}.mascot-confetti{position:absolute;left:50%;top:30%;width:0;height:0;pointer-events:none}.mascot-confetti-piece{position:absolute;left:-4px;top:-6px;width:8px;height:12px;border-radius:2px;background:var(--c, #5b46d6);opacity:0;animation:mascot-confetti 1.35s cubic-bezier(.15,.85,.3,1) var(--delay, 0ms) forwards}.mascot-confetti-piece.is-round{width:9px;height:9px;border-radius:50%}@keyframes mascot-confetti{0%{transform:translate(0) rotate(0) scale(.6);opacity:1}60%{opacity:1}to{transform:translate(var(--dx, 0px),var(--dy, -80px)) rotate(var(--rot, 360deg)) scale(1);opacity:0}}.mascot-pill{position:fixed;right:16px;bottom:calc(16px + env(safe-area-inset-bottom));z-index:var(--mascot-z, 9999);width:48px;height:48px;padding:4px 4px 0;border:0;border-radius:999px;background:#fff;box-shadow:0 6px 18px #26224a2e;cursor:pointer;overflow:hidden;transition:transform .18s ease}.mascot-pill:hover{transform:translateY(-2px) scale(1.04)}.mascot-pill:focus-visible{outline:2px solid #5b46d6;outline-offset:2px}.mascot-pill img{display:block;width:100%;height:100%;object-fit:contain;object-position:bottom center;pointer-events:none}@media(prefers-reduced-motion:reduce){.mascot-mover{transition:none!important}.mascot-body,.mascot-talk,.face-glint,.mascot-dots span,.mascot-bubble-caret,.mascot-bubble-stream-status,.mascot-highlight,.mascot-confetti-piece{animation:none!important}.mascot-confetti-piece{display:none}.mascot-highlight{box-shadow:0 0 0 6px #5b46d640}.mascot-bubble{animation:none}}@media(max-width:900px){.mascot-pill{bottom:calc(80px + env(safe-area-inset-bottom))}}
