html.promisto-preloader-active,
html.promisto-preloader-active body {
    overflow: hidden;
}

.promisto-preloader {
    position: fixed;
    inset: 0;
    z-index: 2147483647;
    display: flex;
    align-items: center;
    justify-content: center;
    background: #fff;
    opacity: 1;
    visibility: visible;
    transition: opacity .4s ease, visibility .4s ease;
}

.promisto-preloader.is-hidden {
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
}

.promisto-preloader__logo {
    position: relative;
    width: min(400px, 78vw);
    aspect-ratio: 400 / 148.5;
}

.promisto-preloader__shadow {
    position: absolute;
    left: 23.3%;
    bottom: 6%;
    width: 32.15%;
    height: 15%;
    border-radius: 50%;
    background: #000;
    filter: blur(3px);
    animation: promisto-shadow 2.6s cubic-bezier(.32,.06,.28,1) infinite both;
}

.promisto-preloader__two {
    position: absolute;
    left: 23.3%;
    top: 0;
    width: 32.15%;
    height: 100%;
    object-fit: contain;
    pointer-events: none;
    transform-origin: 50% 92%;
    animation: promisto-two-bounce 2.6s cubic-bezier(.32,.06,.28,1) infinite both;
}

.promisto-preloader__wordmark {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: contain;
    pointer-events: none;
}

@keyframes promisto-two-bounce {
    0%   { transform: translateY(-110px) rotate(-14deg) scale(1); }
    8%   { transform: translateY(0) rotate(0) scaleX(1.28) scaleY(.72); }
    14%  { transform: translateY(-28px) rotate(2deg) scaleX(.88) scaleY(1.18); }
    22%  { transform: translateY(0) rotate(0) scaleX(1.16) scaleY(.86); }
    28%  { transform: translateY(-12px) rotate(-1deg) scaleX(.95) scaleY(1.06); }
    35%  { transform: translateY(0) rotate(0) scaleX(1.06) scaleY(.95); }
    40%  { transform: translateY(-4px) rotate(.5deg) scaleX(.98) scaleY(1.02); }
    46%, 100% { transform: translateY(0) rotate(0) scale(1); }
}

@keyframes promisto-shadow {
    0%   { transform: scale(.3); opacity: 0; }
    8%   { transform: scaleX(1.15); opacity: .22; }
    14%  { transform: scaleX(.65); opacity: .1; }
    22%  { transform: scaleX(1.05); opacity: .2; }
    28%  { transform: scaleX(.85); opacity: .13; }
    35%  { transform: scaleX(1.02); opacity: .18; }
    46%, 100% { transform: scaleX(1); opacity: .16; }
}

@media (prefers-reduced-motion: reduce) {
    .promisto-preloader__two,
    .promisto-preloader__shadow {
        animation: none;
    }
}
