.ep-splash {
    position: fixed;
    inset: 0;
    box-sizing: border-box;
    z-index: 99999;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    min-height: 100dvh;
    padding: max(24px, env(safe-area-inset-top)) 24px max(30px, env(safe-area-inset-bottom));
    overflow: hidden;
    isolation: isolate;
    color: #fff;
    font-family: system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
    background:
        radial-gradient(circle at 82% 16%, rgba(125, 70, 222, .35), transparent 37%),
        radial-gradient(circle at 10% 83%, rgba(39, 75, 181, .32), transparent 44%),
        #101849;
    transition: opacity 320ms ease, visibility 320ms ease;
}

.ep-splash-orbit {
    position: absolute;
    width: min(92vw, 470px);
    aspect-ratio: 1;
    border: 1px solid rgba(255, 255, 255, .065);
    border-radius: 50%;
    pointer-events: none;
}

.ep-splash-orbit-one { transform: translateY(-20px); }
.ep-splash-orbit-two {
    width: min(124vw, 630px);
    border-color: rgba(255, 255, 255, .035);
    transform: translateY(-20px);
}

.ep-splash-content {
    position: relative;
    z-index: 1;
    display: grid;
    justify-items: center;
}

.ep-splash-logo-wrap {
    position: relative;
    width: clamp(152px, 48vw, 184px);
    aspect-ratio: 1;
    border-radius: 31%;
    box-shadow: 0 22px 58px rgba(3, 7, 35, .38), 0 0 0 1px rgba(255, 255, 255, .15);
    animation: ep-splash-arrive 520ms cubic-bezier(.2, .8, .2, 1) both;
}

.ep-splash-logo {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: contain;
}

.ep-splash-tagline {
    position: absolute;
    top: calc(100% + 21px);
    left: 50%;
    width: min(260px, 80vw);
    margin: 0;
    color: rgba(238, 239, 255, .88);
    font-size: .82rem;
    font-weight: 600;
    letter-spacing: .045em;
    text-align: center;
    transform: translateX(-50%);
    animation: ep-splash-fade 480ms 120ms ease-out both;
}

.ep-splash-bottom {
    position: absolute;
    z-index: 1;
    top: calc(50% + 148px);
    left: 50%;
    display: grid;
    justify-items: center;
    gap: 15px;
    width: min(220px, 70vw);
    transform: translateX(-50%);
}

.ep-splash-progress {
    width: 100%;
    height: 3px;
    overflow: hidden;
    border-radius: 999px;
    background: rgba(255, 255, 255, .15);
}

.ep-splash-progress span {
    display: block;
    width: 38%;
    height: 100%;
    border-radius: inherit;
    background: linear-gradient(90deg, #95a3ff, #efc1ff);
    animation: ep-splash-progress 1.55s ease-in-out infinite alternate;
}

#loaderStatus {
    margin: 0;
    color: rgba(234, 237, 255, .72);
    font-size: .72rem;
    font-weight: 600;
    letter-spacing: .02em;
    text-align: center;
}

@keyframes ep-splash-arrive {
    from { opacity: 0; transform: translateY(12px) scale(.95); }
    to { opacity: 1; transform: translateY(0) scale(1); }
}

@keyframes ep-splash-fade {
    from { opacity: 0; }
    to { opacity: 1; }
}

@keyframes ep-splash-progress {
    from { transform: translateX(-100%); }
    to { transform: translateX(260%); }
}

@media (prefers-reduced-motion: reduce) {
    .ep-splash,
    .ep-splash-logo-wrap,
    .ep-splash-tagline,
    .ep-splash-progress span {
        animation: none !important;
        transition-duration: 0.01ms !important;
    }
}
