/* mascot Patch */
.patch{width:100%;max-width:300px;overflow:visible;cursor:pointer;filter:drop-shadow(0 30px 30px #0008)}
.patch .body{transform-origin:100px 210px;transform-box:view-box}
.patch.bounce .body{animation:dbounce .9s cubic-bezier(.3,.0,.4,1) infinite}
@keyframes dbounce{0%,100%{transform:translateY(0) scale(1.06,.92)}12%{transform:translateY(-6px) scale(.96,1.05)}50%{transform:translateY(-46px) scale(1,1)}88%{transform:translateY(-4px) scale(.97,1.04)}}
.patch.react .body{animation:dspin .7s cubic-bezier(.2,.8,.2,1)}@keyframes dspin{0%{transform:scale(1)}30%{transform:scale(1.15,.85)}60%{transform:translateY(-30px) rotate(200deg)}100%{transform:rotate(360deg)}}
.patch.no .body{animation:dno .4s}@keyframes dno{25%{transform:translateX(-10px) rotate(-6deg)}75%{transform:translateX(10px) rotate(6deg)}}
.patch .shadow{transform-origin:100px 214px;transform-box:view-box}.patch.bounce .shadow{animation:dsh .9s cubic-bezier(.3,0,.4,1) infinite}@keyframes dsh{50%{transform:scaleX(.55);opacity:.4}}
.patch .lid{transform-origin:center;transform-box:fill-box;animation:blink 4.5s infinite}@keyframes blink{0%,95%,100%{transform:scaleY(0)}97%{transform:scaleY(1)}}
.patch .armL{transform-origin:42px 130px;transform-box:view-box}.patch .armR{transform-origin:158px 130px;transform-box:view-box}.patch .whistle{transform-origin:100px 150px;transform-box:view-box;animation:pwh 2.4s ease-in-out infinite}@keyframes pwh{50%{transform:rotate(8deg)}}
.patch.wave .armR{animation:wave .5s 3 ease-in-out}@keyframes wave{50%{transform:rotate(-28deg)}}
.patch-bubble{position:absolute;font:600 11px var(--mono);letter-spacing:.14em;text-transform:uppercase;background:var(--inv);color:var(--on-c);padding:8px 12px;border-radius:14px 14px 14px 2px;white-space:nowrap;transition:opacity .3s,transform .3s;opacity:0;transform:translateY(8px);pointer-events:none}
.patch-bubble.on{opacity:1;transform:none}
.dock{position:fixed;right:14px;bottom:10px;width:84px;z-index:40;transition:transform .5s cubic-bezier(.2,.8,.2,1)}.dock .patch{max-width:84px}.dock .patch-bubble{right:70px;bottom:70px}
.dock.hide{transform:translateY(140%)}
@media(max-width:760px){.dock{width:62px}.dock .patch{max-width:62px}}
@media(prefers-reduced-motion:reduce){.patch *{animation:none!important}}
