/* An isolated overlay: moving SVGs must never expand the document width. */
.cabemaru-layer{position:fixed;inset:0;z-index:25;overflow:hidden;pointer-events:none;contain:layout paint}
.cabemaru-layer[hidden]{display:none}
.cabemaru{--size:80px;position:absolute;left:0;top:0;width:var(--size);height:var(--size);will-change:transform}
.cabemaru-button{display:block;width:100%;height:100%;padding:0;border:0;background:none;cursor:pointer;pointer-events:auto;touch-action:manipulation;-webkit-tap-highlight-color:transparent}
.cabemaru-button:focus-visible{outline:2px dashed #365843;outline-offset:-4px;border-radius:4px}
.cabemaru-svg{display:block;width:100%;height:100%;image-rendering:pixelated;overflow:visible;transform:scaleX(var(--facing,1))}
.cabemaru-shadow{transform-box:fill-box;transform-origin:center;animation:cab-shadow 2.8s steps(3) infinite}
.cabemaru-body{transform-box:fill-box;transform-origin:center bottom;animation:cab-bounce 1s steps(2) infinite}
.cabemaru-leaf--left{transform-box:fill-box;transform-origin:right bottom;animation:cab-leaf-left 1.3s steps(2) infinite}
.cabemaru-leaf--right{transform-box:fill-box;transform-origin:left bottom;animation:cab-leaf-right 1.3s steps(2) infinite}
.cabemaru-leaf--top{transform-box:fill-box;transform-origin:center bottom;animation:cab-leaf-top 1.1s steps(2) infinite}
.cabemaru-face{animation:cab-blink 3.4s steps(1) infinite}
.cabemaru-face [data-face]{display:none}
.cabemaru[data-expression="normal"] [data-face="normal"],
.cabemaru[data-expression="curious"] [data-face="curious"],
.cabemaru[data-expression="determined"] [data-face="determined"],
.cabemaru[data-expression="happy"] [data-face="happy"],
.cabemaru[data-expression="surprised"] [data-face="surprised"],
.cabemaru[data-expression="wink"] [data-face="wink"]{display:initial}
.cabemaru[data-expression="surprised"] .cabemaru-face{animation:none}
.cabemaru[data-state="dropping"] .cabemaru-shadow,.cabemaru[data-state="returning"] .cabemaru-shadow{opacity:0;animation:none}
.cabemaru[data-landing="true"] .cabemaru-body{animation:cab-land .28s steps(3) both}
.cabemaru[data-cheering="true"] .cabemaru-button{animation:cab-cheer .6s steps(7) both}
.cabemaru-speech{position:absolute;left:var(--speech-left,0px);bottom:calc(100% + 8px);width:var(--speech-width,240px);padding:10px 13px;border:2px solid #365843;background:#fffef7;color:#283c2e;box-shadow:3px 3px 0 #36584333;font:600 13px/1.7 "Hiragino Sans","Yu Gothic",Meiryo,sans-serif;letter-spacing:.02em;opacity:0;visibility:hidden;transform:translateY(4px);transition:opacity .16s steps(2),transform .16s steps(2),visibility 0s .16s;pointer-events:none}
.cabemaru-speech:before,.cabemaru-speech:after{content:"";position:absolute;left:var(--speech-tail,24px);top:100%;width:10px;height:6px;background:#365843;clip-path:polygon(0 0,100% 0,100% 100%,50% 100%,50% 50%,0 50%)}
.cabemaru-speech:after{top:calc(100% - 2px);height:4px;background:#fffef7}
.cabemaru[data-speech-below="true"] .cabemaru-speech{top:calc(100% + 8px);bottom:auto}
.cabemaru[data-speech-below="true"] .cabemaru-speech:before{top:auto;bottom:100%;transform:scaleY(-1)}
.cabemaru[data-speech-below="true"] .cabemaru-speech:after{top:auto;bottom:calc(100% - 2px);transform:scaleY(-1)}
.cabemaru[data-speaking="true"] .cabemaru-speech{opacity:1;visibility:visible;transform:none;transition-delay:0s}
.cabemaru-layer[data-paused="true"] *{animation-play-state:paused!important}
@keyframes cab-shadow{0%,100%{transform:scaleX(1);opacity:.22}50%{transform:scaleX(.84);opacity:.12}}
@keyframes cab-bounce{0%,100%{transform:translateY(0) scale(1)}50%{transform:translateY(-2px) scale(1.02,.98)}}
@keyframes cab-leaf-left{50%{transform:rotate(-6deg)}}
@keyframes cab-leaf-right{50%{transform:rotate(6deg)}}
@keyframes cab-leaf-top{50%{transform:rotate(-3deg) translateY(-1px)}}
@keyframes cab-blink{0%,46%,50%,100%{opacity:1}48%,49%{opacity:.35}}
@keyframes cab-land{0%,40%{transform:scale(1.16,.78)}100%{transform:scale(1)}}
@keyframes cab-cheer{0%,100%{transform:translateY(0)}45%{transform:translateY(-16px)}}
@media(max-width:760px){.cabemaru{--size:64px}.cabemaru-speech{font-size:12px;padding:9px 11px}}
@media(prefers-reduced-motion:reduce){.cabemaru-layer *{animation:none!important;transition:none!important}}
