#lv-travelling-mascot {
    --lv-mascot-size:110px;
    --lv-return-delay:-45.58s;
    position:fixed;
    left:0;
    bottom:calc(8px + env(safe-area-inset-bottom,0px));
    width:var(--lv-mascot-size);
    height:132px;
    z-index:40;
    pointer-events:none;
    transform:translateX(8px);
    transform-origin:top left;
    animation:lv-mascot-route 86s linear infinite;
    contain:layout style;
}
#lv-travelling-mascot[hidden] { display:none!important; }
#lv-travelling-mascot,#lv-travelling-mascot * { transition:none!important; }
#lv-mascot-toggle {
    position:relative;
    display:block;
    width:100%;
    height:100%;
    margin:0;
    padding:0;
    border:0;
    background:transparent;
    color:inherit;
    line-height:0;
    cursor:pointer;
    pointer-events:auto;
    touch-action:manipulation;
    -webkit-tap-highlight-color:transparent;
}
#lv-mascot-toggle:focus-visible { outline:3px solid var(--primary,#651a21);outline-offset:3px; }
#lv-travelling-mascot .lv-mascot-facing {
    display:block;width:100%;height:100%;
    animation:lv-mascot-direction 86s steps(1,end) infinite;
    transform-origin:center;
}
#lv-travelling-mascot.lv-mascot-returning,#lv-travelling-mascot.lv-mascot-returning .lv-mascot-facing { animation-delay:var(--lv-return-delay); }
#lv-travelling-mascot svg { width:100%;height:auto;display:block;overflow:visible;pointer-events:none;filter:drop-shadow(0 3px 2px rgba(0,0,0,.12)); }
#lv-travelling-mascot .lv-mascot-leg-front { transform-origin:72px 125px;animation:lv-mascot-step .7s ease-in-out infinite alternate; }
#lv-travelling-mascot .lv-mascot-leg-back { transform-origin:55px 125px;animation:lv-mascot-step .7s ease-in-out infinite alternate-reverse; }
#lv-travelling-mascot .lv-mascot-flag { transform-origin:108px 30px;animation:lv-mascot-flag 2.2s ease-in-out infinite alternate; }
#lv-travelling-mascot .lv-mascot-eye { transform-box:fill-box;transform-origin:center;animation:lv-mascot-blink 7s linear infinite; }
#lv-travelling-mascot .lv-girl-wave { transform-origin:78px 73px;animation:lv-girl-wave 1.4s ease-in-out infinite alternate; }
#lv-travelling-mascot .lv-mascot-compact-flag { display:none; }
#lv-travelling-mascot[data-mode="flag"] {
    left:auto;
    right:calc(12px + env(safe-area-inset-right,0px));
    bottom:calc(18px + env(safe-area-inset-bottom,0px));
    width:56px;
    height:44px;
    animation:none;
    transform:none;
}
#lv-travelling-mascot[data-mode="flag"] .lv-mascot-facing { display:none; }
#lv-travelling-mascot[data-mode="flag"] .lv-mascot-compact-flag { display:flex;align-items:center;justify-content:center;width:100%;height:100%;pointer-events:none; }
#lv-travelling-mascot .lv-mascot-compact-flag::before {
    content:"";
    display:block;
    width:44px;
    height:22px;
    background:linear-gradient(to bottom,#9e1b34 0 40%,#fff 40% 60%,#9e1b34 60% 100%);
    box-shadow:0 2px 7px #0003;
}
#lv-travelling-mascot.lv-mascot-paused,#lv-travelling-mascot.lv-mascot-paused * { animation-play-state:paused!important; }
#lv-travelling-mascot.lv-mascot-resting .lv-mascot-leg-front,#lv-travelling-mascot.lv-mascot-resting .lv-mascot-leg-back { animation-play-state:paused; }
@keyframes lv-mascot-route { 0%{transform:translateX(8px)}43%,53%{transform:translateX(calc(100vw - var(--lv-mascot-size) - 14px))}96%,100%{transform:translateX(8px)} }
@keyframes lv-mascot-direction { 0%{transform:scaleX(1)}48%{transform:scaleX(-1)}98%{transform:scaleX(1)} }
@keyframes lv-girl-wave { from{transform:rotate(-9deg)}to{transform:rotate(10deg)} }
@keyframes lv-mascot-step { from{transform:rotate(-12deg)}to{transform:rotate(12deg)} }
@keyframes lv-mascot-flag { from{transform:skewY(-2deg) scaleX(.97)}to{transform:skewY(3deg) scaleX(1)} }
@keyframes lv-mascot-blink { 0%,44%,48%,100%{transform:scaleY(1)}46%{transform:scaleY(.1)} }
@media(max-width:640px) {
    #lv-travelling-mascot { --lv-mascot-size:82px;--lv-return-delay:-58.3s;height:100px;animation-duration:110s; }
    #lv-travelling-mascot .lv-mascot-facing { animation-duration:110s; }
    #lv-travelling-mascot[data-mode="flag"] { height:44px; }
}
@media(prefers-reduced-motion:reduce) {
    #lv-travelling-mascot,#lv-travelling-mascot * { animation:none!important; }
}
@media print { #lv-travelling-mascot { display:none!important; } }
