/*
|--------------------------------------------------------------------------
| Mascottes Vulpingo — animations naturelles
|--------------------------------------------------------------------------
*/

.mascot-shared {
    object-fit: contain;
    filter: drop-shadow(0 18px 28px rgba(15, 60, 67, .13));
    transform-origin: center bottom;
    will-change: transform, filter;
}

.mascot-shared.is-static {
    animation: none !important;
}

.mascot-shared.is-celebrating {
    animation: mascotCelebrateNatural 1.8s ease-in-out infinite;
}

.mascot-shared.is-thinking {
    animation: mascotThinkingNatural 4.2s ease-in-out infinite;
}

@media (prefers-reduced-motion: no-preference) {
    .mascot-shared:not(.is-static):not(.is-celebrating):not(.is-thinking) {
        animation: mascotNaturalIdle 6.6s cubic-bezier(.38, .02, .19, .98) infinite;
    }
}

@keyframes mascotNaturalIdle {
    0%, 100% {
        transform: translate3d(0, 0, 0) rotate(0deg) scale(1);
        filter: drop-shadow(0 18px 28px rgba(15, 60, 67, .13));
    }
    12% {
        transform: translate3d(.5px, -1px, 0) rotate(-.4deg) scale(1.002);
    }
    28% {
        transform: translate3d(-1px, -4px, 0) rotate(.35deg) scale(1.009);
        filter: drop-shadow(0 22px 31px rgba(15, 60, 67, .15));
    }
    42% {
        transform: translate3d(.8px, -5px, 0) rotate(.6deg) scale(1.012);
    }
    57% {
        transform: translate3d(-.6px, -2px, 0) rotate(-.25deg) scale(1.004);
    }
    72% {
        transform: translate3d(.35px, -3px, 0) rotate(.2deg) scale(1.008);
    }
    86% {
        transform: translate3d(-.35px, -1px, 0) rotate(-.18deg) scale(1.002);
    }
}

@keyframes mascotCelebrateNatural {
    0%, 100% {
        transform: translate3d(0, 0, 0) rotate(-.3deg) scale(1);
    }
    25% {
        transform: translate3d(-1px, -8px, 0) rotate(-1.6deg) scale(1.03);
    }
    50% {
        transform: translate3d(1px, -3px, 0) rotate(1.2deg) scale(1.016);
    }
    75% {
        transform: translate3d(-.5px, -9px, 0) rotate(.9deg) scale(1.028);
    }
}

@keyframes mascotThinkingNatural {
    0%, 100% {
        transform: translate3d(0, 0, 0) rotate(0deg) scale(1);
    }
    20% {
        transform: translate3d(-1px, -2px, 0) rotate(-1.2deg) scale(1.01);
    }
    40% {
        transform: translate3d(.5px, -5px, 0) rotate(.4deg) scale(1.012);
    }
    62% {
        transform: translate3d(-.8px, -3px, 0) rotate(1.1deg) scale(1.006);
    }
    82% {
        transform: translate3d(.4px, -1px, 0) rotate(-.25deg) scale(1.003);
    }
}

@media (prefers-reduced-motion: reduce) {
    .mascot-shared {
        animation: none !important;
        transition: none !important;
    }
}
