.pwa-launch-splash {
    position: fixed;
    inset: 0;
    z-index: 2147483000;
    display: flex;
    align-items: center;
    justify-content: center;
    background: #ffffff;
    opacity: 1;
    visibility: visible;
    transition: opacity 720ms ease, visibility 720ms ease;
}

.pwa-splash-suppressed .pwa-launch-splash {
    display: none !important;
}

.pwa-launch-splash.is-hiding {
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
}

.pwa-launch-stage {
    position: relative;
    display: flex;
    width: min(41vw, 180px);
    min-height: min(41vw, 180px);
    align-items: center;
    justify-content: center;
}

.pwa-launch-logo {
    width: min(38vw, 160px);
    height: auto;
    display: block;
    object-fit: contain;
    transform-origin: center;
    animation: pwa-logo-splash 2600ms cubic-bezier(0.16, 1, 0.3, 1) both;
}

@keyframes pwa-logo-splash {
    0% {
        opacity: 0;
        transform: perspective(900px) translateZ(-360px) scale(0.32);
        filter: blur(24px) drop-shadow(0 0 0 rgba(15, 23, 42, 0));
    }

    42% {
        opacity: 1;
        transform: perspective(900px) translateZ(38px) scale(1.04);
        filter: blur(0) drop-shadow(0 32px 46px rgba(15, 23, 42, 0.22));
    }

    72% {
        transform: perspective(900px) translateZ(0) scale(0.985);
        filter: blur(0) drop-shadow(0 22px 36px rgba(15, 23, 42, 0.18));
    }

    100% {
        opacity: 1;
        transform: perspective(900px) translateZ(0) scale(1);
        filter: blur(0) drop-shadow(0 18px 30px rgba(15, 23, 42, 0.16));
    }
}

.pwa-launch-leaf {
    position: absolute;
    right: 4%;
    bottom: 5%;
    width: min(9vw, 38px);
    height: auto;
    display: block;
    filter: drop-shadow(0 2px 3px rgba(15, 23, 42, 0.18));
    animation: pwa-leaf-splash 700ms 1100ms cubic-bezier(0.16, 1, 0.3, 1) both;
}

.pwa-launch-leaf svg {
    width: 100%;
    height: 100%;
    display: block;
}

@keyframes pwa-leaf-splash {
    0% {
        opacity: 0;
        transform: scale(0.4) rotate(-12deg);
    }

    100% {
        opacity: 1;
        transform: scale(1) rotate(0);
    }
}

@media (prefers-reduced-motion: reduce) {

    .pwa-launch-splash,
    .pwa-launch-logo,
    .pwa-launch-leaf {
        animation: none;
        transition: none;
    }
}
