.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-shown{transform:translateY(0);opacity:1}.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-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}}