.mascot-holder{position:fixed;bottom:14vh;z-index:60;pointer-events:none;transition:transform .5s cubic-bezier(.34,1.56,.64,1)}.mascot-holder-right{right:0;transform:translateX(112%) rotate(-6deg)}.mascot-holder-left{left:0;transform:translateX(-112%) rotate(6deg)}.mascot-holder-visible.mascot-holder-right{transform:translateX(26%) rotate(-6deg)}.mascot-holder-visible.mascot-holder-left{transform:translateX(-26%) rotate(6deg)}.mascot-button{pointer-events:auto;display:block;background:none;border:none;padding:0;cursor:pointer;filter:drop-shadow(0 12px 24px rgba(18,16,14,.22))}.mascot-button:focus-visible{outline:2px solid var(--ring);outline-offset:4px;border-radius:24px}.mascot-holder-left .mascot-svg{transform:scaleX(-1)}.mascot-eyes{transform-origin:60px 64px;animation:mascot-blink 3.4s ease-in-out infinite}@keyframes mascot-blink{0%,90%,to{transform:scaleY(1)}94%{transform:scaleY(.08)}}.mascot-arm{transform-origin:103px 76px}.mascot-arm-waving{animation:mascot-wave .55s ease-in-out .35s 4 alternate}@keyframes mascot-wave{0%{transform:rotate(-24deg)}to{transform:rotate(14deg)}}.mascot-spark{transform-origin:60px 24px;animation:mascot-spark-pulse 2.2s ease-in-out infinite}@keyframes mascot-spark-pulse{0%,to{transform:scale(1);opacity:1}50%{transform:scale(1.18);opacity:.85}}.mascot-bubble{position:absolute;bottom:calc(100% + 6px);left:50%;transform:translateX(-50%);white-space:nowrap;background:var(--card);color:var(--foreground);border:1px solid var(--border);border-radius:.5rem;padding:.45rem .8rem;font-size:.78rem;box-shadow:0 10px 28px -14px rgba(18,16,14,.3)}.mascot-holder-right .mascot-bubble{left:auto;right:20%;transform:none}.mascot-holder-left .mascot-bubble{left:20%;transform:none}@media (prefers-reduced-motion:reduce){.mascot-holder{display:none}}.mascot-spot{position:absolute;top:-58px;z-index:0;display:flex;flex-direction:column;align-items:center;pointer-events:none;transform:translateY(62%);opacity:0;transition:transform .55s cubic-bezier(.34,1.56,.64,1),opacity .3s ease-out}.mascot-spot-top-right{right:clamp(.75rem,6%,4rem)}.mascot-spot-top-left{left:clamp(.75rem,6%,4rem)}.mascot-spot-right{top:50%;right:0;z-index:20;transform:translate(130%,-50%) rotate(4deg)}.mascot-spot-shown{transform:translateY(0);opacity:1}.mascot-spot-right.mascot-spot-shown{transform:translate(92%,-50%) rotate(4deg);opacity:1}.mascot-spot-right .mascot-spot-bubble{bottom:calc(100% + 6px);left:50%;right:auto;transform:translateX(-50%)}.mascot-spot-bubble{position:absolute;bottom:calc(100% + 4px);white-space:nowrap;background:var(--card);color:var(--foreground);border:1px solid var(--border);border-radius:.5rem;padding:.4rem .75rem;font-size:.76rem;box-shadow:0 10px 28px -14px rgba(18,16,14,.3);opacity:0;transform:translateY(6px);transition:opacity .3s ease-out .45s,transform .3s ease-out .45s}.mascot-spot-shown .mascot-spot-bubble{opacity:1;transform:translateY(0)}@media (prefers-reduced-motion:reduce){.mascot-spot{display:none}}@media (max-width:640px){.mascot-spot .mascot-svg{width:60px;height:60px}.mascot-spot{top:-46px}.mascot-spot-bubble{white-space:normal;max-width:180px;text-align:center}.mascot-spot-right{top:auto;bottom:-30px;transform:translate(40%) rotate(4deg)}.mascot-spot-right.mascot-spot-shown{transform:translate(14%) rotate(4deg)}.mascot-spot-right .mascot-spot-bubble{left:auto;right:0;transform:none}}.mascot-svg-idle{animation:mascot-bob 4.2s ease-in-out infinite}@keyframes mascot-bob{0%,to{transform:translateY(0)}50%{transform:translateY(-3px)}}.mascot-eyes{transform-origin:60px 68px;animation:mascot-blink 4.6s ease-in-out infinite}.mascot-pupils{animation:mascot-glance 7s ease-in-out infinite}@keyframes mascot-glance{0%,58%,to{transform:translateX(0)}64%,78%{transform:translateX(4.5px)}84%{transform:translateX(0)}}.mascot-spark{transform-origin:60px 20px}@media (prefers-reduced-motion:reduce){.mascot-eyes,.mascot-pupils,.mascot-spark,.mascot-svg-idle{animation:none}}.hub-mascot{position:relative;display:inline-block;opacity:0;transform:translateY(16px) scale(.94);transition:opacity .45s ease,transform .55s cubic-bezier(.34,1.56,.64,1)}.hub-mascot-shown{opacity:1;transform:none}.hub-mascot-img{display:block;height:auto;filter:drop-shadow(0 16px 26px rgba(0,0,0,.45))}.hub-mascot-shown .hub-mascot-img{animation:hub-wave 3.4s ease-in-out .4s infinite;transform-origin:52% 88%}@keyframes hub-wave{0%,to{transform:rotate(0deg) translateY(0)}20%{transform:rotate(-6deg)}40%{transform:rotate(2deg) translateY(-4px)}60%{transform:rotate(-3deg)}80%{transform:rotate(4deg)}}.hub-mascot-bubble{position:absolute;bottom:calc(100% - 8px);left:50%;transform:translate(-50%,6px);white-space:nowrap;background:var(--card);color:var(--foreground);border:1px solid var(--border);border-radius:.6rem;padding:.42rem .72rem;font-size:.78rem;line-height:1.1;box-shadow:0 12px 30px -14px rgba(0,0,0,.55);opacity:0;transition:opacity .3s ease .55s,transform .3s ease .55s}.hub-mascot-shown .hub-mascot-bubble{opacity:1;transform:translate(-50%)}@media (prefers-reduced-motion:reduce){.hub-mascot-shown .hub-mascot-img{animation:none}}@media (max-width:640px){.hub-mascot-bubble{white-space:normal;max-width:170px;text-align:center}}