#roaming-mascot-root{position:fixed;top:0;left:0;z-index:9999;pointer-events:none;will-change:transform;-moz-user-select:none;user-select:none;-webkit-user-select:none}.mascot-hitbox{pointer-events:auto;cursor:grab;position:relative;display:flex;flex-direction:column;align-items:center;touch-action:none}.mascot-hitbox:active,.mascot-hitbox[data-dragging=true]{cursor:grabbing!important}.mascot-hitbox[data-focus=true]{opacity:.35;transition:opacity .4s ease}.mascot-hitbox[data-focus=true] *{pointer-events:none!important}.mascot-flip-wrapper{transition:transform .22s cubic-bezier(.34,1.56,.64,1)}.mascot-eyes-dizzy,.mascot-eyes-happy,.mascot-eyes-sleep{display:none!important}.mascot-eyes-normal{display:block!important;animation:eyeBlink 4.8s infinite;transform-origin:50px 42px}.state-idle .mascot-body-group{animation:mascotBreathe 2.4s ease-in-out infinite}.state-idle .mascot-arm-l{animation:armIdleL 2.4s ease-in-out infinite;transform-origin:24px 56px}.state-idle .mascot-arm-r{animation:armIdleR 2.4s ease-in-out infinite;transform-origin:76px 56px}.state-idle .shiba-tail{animation:tailWag .6s ease-in-out infinite alternate;transform-origin:24px 68px}.state-walk .mascot-body-group{animation:mascotWalkBob .32s ease-in-out infinite alternate}.state-walk .mascot-leg-l{animation:legSwingL .32s ease-in-out infinite alternate;transform-origin:38px 78px}.state-walk .mascot-leg-r{transform-origin:62px 78px}.state-walk .mascot-arm-l,.state-walk .mascot-leg-r{animation:legSwingR .32s ease-in-out infinite alternate}.state-walk .mascot-arm-l{transform-origin:24px 56px}.state-walk .mascot-arm-r{animation:legSwingL .32s ease-in-out infinite alternate;transform-origin:76px 56px}.state-walk .shiba-tail{animation:tailWag .25s ease-in-out infinite alternate;transform-origin:24px 68px}.state-sip .mascot-arm-l{animation:armSip .9s ease-in-out infinite alternate;transform-origin:24px 56px}.state-sip .mascot-body-group{animation:mascotBreathe 1.4s ease-in-out infinite}.state-sip .ceo-shades{animation:shadesPeek 1.1s ease-in-out infinite alternate}.mascot-character-wrapper{position:relative;display:flex;align-items:center;justify-content:center;width:100%;height:100%}.mascot-svg-inner{display:block;width:100%;height:100%;transform-origin:50% 50%;will-change:transform}.state-backflip .mascot-svg-inner{animation:realOlympicBackflip .95s cubic-bezier(.25,1,.5,1) both;transform-origin:50% 50%}.state-backflip .mascot-ground-shadow{animation:shadowBackflip .95s cubic-bezier(.25,1,.5,1) both}.state-backflip .mascot-eyes-normal{display:none!important}.state-backflip .mascot-eyes-happy{display:block!important}.state-panic .mascot-body-group{animation:panicShake .12s linear infinite alternate}.state-panic .mascot-arm-l{animation:panicFlailL .14s ease-in-out infinite alternate;transform-origin:24px 56px}.state-panic .mascot-arm-r{animation:panicFlailR .14s ease-in-out infinite alternate;transform-origin:76px 56px}.state-panic .mascot-leg-l{animation:legSwingL .12s ease-in-out infinite alternate;transform-origin:38px 78px}.state-panic .mascot-leg-r{animation:legSwingR .12s ease-in-out infinite alternate;transform-origin:62px 78px}.state-panic .mascot-eyes-normal{display:none!important}.state-panic .mascot-eyes-dizzy{display:block!important}.state-dance .mascot-svg-inner{animation:realPartyDance .48s ease-in-out infinite alternate;transform-origin:50% 85%}.state-dance .mascot-ground-shadow{animation:shadowDance .48s ease-in-out infinite alternate}.state-dance .mascot-arm-l{animation:panicFlailL .2s ease-in-out infinite alternate;transform-origin:24px 56px}.state-dance .mascot-arm-r{animation:panicFlailR .2s ease-in-out infinite alternate-reverse;transform-origin:76px 56px}.state-dance .mascot-eyes-normal{display:none!important}.state-dance .mascot-eyes-happy{display:block!important}.state-sleep .mascot-svg-inner{animation:realMascotNap 2.8s ease-in-out infinite;transform-origin:50% 90%}.state-sleep .mascot-body-group{animation:mascotSleepBreathe 3.2s ease-in-out infinite}.state-sleep .mascot-eyes-normal{display:none!important}.state-sleep .mascot-eyes-sleep{display:block!important}.propeller-blade{animation:propellerSpin .25s linear infinite;transform-origin:50px 8px}.coffee-steam{animation:steamRise 1.6s ease-out infinite}.ufo-beam{animation:beamPulse 1.2s ease-in-out infinite alternate}.shades-slide{transition:transform .35s cubic-bezier(.34,1.56,.64,1)}.vibe-turbo .mascot-body-group{filter:drop-shadow(0 0 12px rgba(56,189,248,.7))}.vibe-party .mascot-svg-inner{filter:drop-shadow(0 0 14px rgba(236,72,153,.7))}.mascot-ground-shadow{transition:all .25s ease}.state-backflip .mascot-ground-shadow,.state-panic .mascot-ground-shadow{transform:scale(.5);opacity:.25}@keyframes mascotBreathe{0%,to{transform:translateY(0)}50%{transform:translateY(-4px)}}@keyframes mascotSleepBreathe{0%,to{transform:translateY(4px) rotate(-5deg)}50%{transform:translateY(0) rotate(4deg)}}@keyframes mascotWalkBob{0%{transform:translateY(0) rotate(-3deg)}to{transform:translateY(-8px) rotate(3deg)}}@keyframes legSwingL{0%{transform:rotate(-30deg)}to{transform:rotate(30deg)}}@keyframes legSwingR{0%{transform:rotate(30deg)}to{transform:rotate(-30deg)}}@keyframes armIdleL{0%,to{transform:rotate(0deg)}50%{transform:rotate(10deg)}}@keyframes armIdleR{0%,to{transform:rotate(0deg)}50%{transform:rotate(-10deg)}}@keyframes armSip{0%{transform:rotate(0deg)}to{transform:rotate(-75deg) translateY(-6px)}}@keyframes shadesPeek{0%{transform:translateY(0)}to{transform:translateY(7px) rotate(-3deg)}}@keyframes panicShake{0%{transform:translate(-2px,-2px) rotate(-5deg)}to{transform:translate(2px,2px) rotate(5deg)}}@keyframes panicFlailL{0%{transform:rotate(95deg)}to{transform:rotate(155deg)}}@keyframes panicFlailR{0%{transform:rotate(-95deg)}to{transform:rotate(-155deg)}}@keyframes realOlympicBackflip{0%{transform:translateY(0) rotate(0deg) scale(1)}12%{transform:translateY(8px) rotate(8deg) scale(1.18,.82)}28%{transform:translateY(-54px) rotate(-85deg) scale(.9,1.15)}50%{transform:translateY(-78px) rotate(-180deg) scale(1.05)}72%{transform:translateY(-38px) rotate(-280deg) scale(.94,1.12)}88%{transform:translateY(6px) rotate(-1turn) scale(1.22,.8)}to{transform:translateY(0) rotate(-1turn) scale(1)}}@keyframes shadowBackflip{0%,to{transform:scale(1);opacity:.6}12%{transform:scale(1.25);opacity:.75}50%{transform:scale(.3);opacity:.15}88%{transform:scale(1.3);opacity:.85}}@keyframes realPartyDance{0%{transform:translateY(0) rotate(-16deg) scale(1.04,.96)}25%{transform:translateY(-16px) rotate(-6deg) scale(.96,1.06)}50%{transform:translateY(0) rotate(0deg) scale(1.08,.92)}75%{transform:translateY(-16px) rotate(8deg) scale(.96,1.06)}to{transform:translateY(0) rotate(16deg) scale(1.04,.96)}}@keyframes shadowDance{0%,50%,to{transform:scale(1);opacity:.6}25%,75%{transform:scale(.65);opacity:.35}}@keyframes realMascotNap{0%,to{transform:translateY(6px) rotate(-16deg) scale(.96,.92)}50%{transform:translateY(2px) rotate(-10deg) scaleY(.96)}}@keyframes mascotBackflip{0%{transform:translateY(0) rotate(0deg) scale(1)}45%{transform:translateY(-72px) rotate(-180deg) scale(1.08)}to{transform:translateY(0) rotate(-1turn) scale(1)}}@keyframes mascotDance{0%{transform:translateY(0) rotate(-14deg) scale(1)}50%{transform:translateY(-16px) rotate(0deg) scale(1.08)}to{transform:translateY(0) rotate(14deg) scale(1)}}@keyframes tailWag{0%{transform:rotate(-18deg)}to{transform:rotate(22deg)}}@keyframes propellerSpin{0%{transform:scaleX(1)}50%{transform:scaleX(.1)}to{transform:scaleX(1)}}@keyframes steamRise{0%{opacity:.8;transform:translateY(0) scale(.9)}to{opacity:0;transform:translateY(-12px) scale(1.3)}}@keyframes beamPulse{0%{opacity:.22;transform:scaleX(.92)}to{opacity:.5;transform:scaleX(1.06)}}@keyframes eyeBlink{0%,94%,98%,to{transform:scaleY(1)}96%{transform:scaleY(.06)}}.mascot-footprint{position:fixed;pointer-events:none;z-index:9990;border-radius:9999px;animation:footprintFade 1s ease-out forwards}.mascot-emoji-particle{position:fixed;pointer-events:none;z-index:10000;font-size:19px;animation:emojiFloatUp 1.15s cubic-bezier(.16,1,.3,1) forwards}@keyframes footprintFade{0%{opacity:.65;transform:scale(1)}to{opacity:0;transform:scale(.2) translateY(-8px)}}@keyframes emojiFloatUp{0%{opacity:1;transform:translateZ(0) scale(.6) rotate(0deg)}to{opacity:0;transform:translate3d(var(--tx,20px),-65px,0) scale(1.35) rotate(var(--rot,20deg))}}.mascot-bubble{bottom:calc(100% + 10px);margin-bottom:0;padding:8px 14px;border-radius:16px;background:rgba(15,23,42,.96);color:#f8fafc;font-weight:600;border:1px solid rgba(99,102,241,.55);font-size:12.5px;line-height:1.45;white-space:nowrap;max-width:min(340px,calc(100vw - 32px));box-shadow:0 12px 28px -5px rgba(0,0,0,.55);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);transition:opacity .25s,transform .25s;pointer-events:auto;cursor:pointer;display:flex;align-items:center;gap:8px;animation:lbPop .18s cubic-bezier(.2,1,.4,1) both;z-index:50}.mascot-bubble,.mascot-bubble:after{position:absolute;left:50%;transform:translateX(-50%)}.mascot-bubble:after{content:"";top:100%;border:6px solid transparent;border-top-color:rgba(15,23,42,.96)}.mascot-bubble.bubble-below{bottom:auto;top:calc(100% + 10px)}.mascot-bubble.bubble-below:after{top:auto;bottom:100%;border-color:transparent transparent rgba(15,23,42,.96)}.mascot-bubble.bubble-align-left{left:0;transform:none}.mascot-bubble.bubble-align-left:after{left:20px;transform:none}.mascot-bubble.bubble-align-right{left:auto;right:0;transform:none}.mascot-bubble.bubble-align-right:after{left:auto;right:20px;transform:none}.mascot-bubble-close{all:unset;opacity:.55;cursor:pointer;font-size:12px;padding:0 2px;line-height:1}.mascot-bubble-close:hover{opacity:1}.mascot-hover-pill{position:absolute;top:calc(100% + 6px);left:50%;transform:translateX(-50%);margin-top:0;padding:2px 10px;border-radius:9999px;background:rgba(15,23,42,.92);border:1px solid rgba(99,102,241,.35);font-size:10px;font-weight:500;color:#c7d2fe;opacity:0;transition:opacity .2s ease;pointer-events:none;white-space:nowrap;box-shadow:0 4px 12px rgba(0,0,0,.3);z-index:40}.mascot-hitbox:hover .mascot-hover-pill{opacity:1}.mascot-quick-hide{position:absolute;top:-4px;right:-4px;width:22px;height:22px;border-radius:50%;border:1px solid hsla(0,0%,100%,.15);background:rgba(15,23,42,.9);color:#94a3b8;font-size:12px;line-height:1;display:flex;align-items:center;justify-content:center;cursor:pointer;opacity:0;transition:opacity .15s ease,color .15s ease,background .15s ease;pointer-events:auto}.mascot-hitbox:hover .mascot-quick-hide{opacity:1}.mascot-quick-hide:hover{color:#fff;background:rgba(239,68,68,.85);border-color:#ef4444}.tm-menu{position:fixed;z-index:100000;min-width:185px;padding:6px;border-radius:14px;background:rgba(15,23,42,.94);backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px);border:1px solid rgba(99,102,241,.35);box-shadow:0 16px 38px rgba(0,0,0,.55),0 0 0 1px rgba(0,0,0,.25);font:500 13px/1.4 -apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;color:#f3f4f6;animation:lbPop .15s cubic-bezier(.2,1,.4,1) both;pointer-events:auto;-webkit-user-select:none;-moz-user-select:none;user-select:none}.tm-menu-item{all:unset;display:flex;align-items:center;gap:10px;width:100%;padding:7px 10px;border-radius:8px;cursor:pointer;font-size:12.5px;font-weight:500;color:#e2e8f0;transition:background .12s ease,color .12s ease;box-sizing:border-box}.tm-menu-item:hover{background:rgba(99,102,241,.18);color:#fff}.tm-menu-item-icon{display:inline-flex;align-items:center;justify-content:center;width:18px;font-size:13px;color:#818cf8}.tm-menu-item-danger{color:#f87171}.tm-menu-item-danger:hover{background:rgba(239,68,68,.16);color:#fca5a5}.tm-menu-divider{height:1px;margin:4px 6px;background:hsla(0,0%,100%,.1)}.tm-restore-btn{position:fixed;right:18px;bottom:calc(72px + env(safe-area-inset-bottom, 0px));z-index:45;width:44px;height:44px;border-radius:50%;display:flex;align-items:center;justify-content:center;background:rgba(15,23,42,.92);border:1px solid rgba(99,102,241,.4);color:#fff;box-shadow:0 8px 24px rgba(0,0,0,.45);cursor:pointer;backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);transition:transform .22s cubic-bezier(.34,1.56,.64,1),box-shadow .2s ease;animation:lbPop .3s cubic-bezier(.34,1.56,.64,1) both;padding:0}@media (min-width:1024px){.tm-restore-btn{right:24px;bottom:24px}}.tm-restore-btn:hover{transform:scale(1.12);background:rgba(30,41,59,.98);box-shadow:0 12px 30px rgba(99,102,241,.35);border-color:rgba(99,102,241,.7)}.tm-restore-tooltip{position:absolute;right:calc(100% + 10px);top:50%;padding:5px 10px;border-radius:8px;font-size:12px;font-weight:500;white-space:nowrap;background:rgba(15,23,42,.95);color:#f3f4f6;border:1px solid rgba(99,102,241,.3);box-shadow:0 4px 16px rgba(0,0,0,.35);pointer-events:none;opacity:0;transition:opacity .15s ease,transform .15s ease;transform:translate(6px,-50%)}.tm-restore-btn:hover .tm-restore-tooltip{opacity:1;transform:translateY(-50%)}@keyframes lbPop{0%{opacity:0;transform:scale(.92) translateY(4px)}to{opacity:1;transform:scale(1) translateY(0)}}@media (max-width:640px){.mascot-character-wrapper{width:46px!important;height:46px!important}.mascot-ground-shadow{width:32px!important;height:5px!important;bottom:-2px!important}.mascot-bubble{font-size:11px!important;padding:6px 10px!important;max-width:210px!important;bottom:calc(100% + 4px)!important;border-radius:12px!important}.mascot-quick-hide{width:18px!important;height:18px!important;font-size:10px!important}.mascot-hover-pill{display:none!important}}.mascot-companion-card{position:relative;overflow:hidden;border-radius:1.25rem;border:1px solid rgba(245,158,11,.25);background:linear-gradient(135deg,var(--bg-elev) 0,rgba(245,158,11,.05) 100%);padding:1.25rem 1.5rem;display:flex;flex-direction:column;gap:1.25rem;box-shadow:0 10px 25px -5px rgba(0,0,0,.25)}@media (min-width:768px){.mascot-companion-card{flex-direction:row;align-items:center;justify-content:space-between;gap:1.5rem;padding:1.5rem 1.75rem}}.mascot-companion-info{display:flex;align-items:center;gap:1rem;width:100%;flex:1 1 0%;min-width:0}.mascot-companion-actions{display:flex;align-items:center;gap:.75rem;width:100%;flex-shrink:0;padding-top:.75rem;border-top:1px solid hsla(0,0%,100%,.08)}@media (min-width:768px){.mascot-companion-actions{width:auto;padding-top:0;border-top:none;justify-content:flex-end}}