.rkv-loader-overlay {
    position: fixed;
    inset: 0;
    z-index: 2147483000;
    display: flex;
    align-items: center;
    justify-content: center;
    background: rgba(15, 23, 42, .10);
    backdrop-filter: blur(1.2px);
    -webkit-backdrop-filter: blur(1.2px);
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
    transition: opacity .14s ease, visibility 0s linear .14s;
}

.rkv-loader-overlay.is-visible {
    opacity: 1;
    visibility: visible;
    pointer-events: auto;
    transition-delay: 0s;
}

.rkv-loader-stage {
    position: relative;
    width: 92px;
    height: 92px;
    display: grid;
    place-items: center;
    isolation: isolate;
}

.rkv-loader-stage::before {
    content: "";
    position: absolute;
    inset: 0;
    z-index: 0;
    border-radius: 50%;
    background: conic-gradient(
        from 0deg,
        transparent 0deg 38deg,
        #6d4cff 75deg 145deg,
        #10b981 175deg 235deg,
        #ff3b30 265deg 315deg,
        transparent 342deg 360deg
    );
    -webkit-mask: radial-gradient(farthest-side, transparent calc(100% - 5px), #000 calc(100% - 4px));
    mask: radial-gradient(farthest-side, transparent calc(100% - 5px), #000 calc(100% - 4px));
    animation: rkv-loader-spin 1.25s linear infinite;
}

.rkv-loader-stage::after {
    content: "";
    position: absolute;
    z-index: 3;
    top: 5px;
    right: 13px;
    width: 10px;
    height: 10px;
    border: 2px solid #fff;
    border-radius: 50%;
    background: #ff3b30;
    box-shadow: 0 2px 7px rgba(255, 59, 48, .35);
}

.rkv-loader-card {
    position: relative;
    z-index: 2;
    width: 68px;
    height: 68px;
    box-sizing: border-box;
    display: grid;
    place-items: center;
    padding: 7px;
    border: 1px solid #e5edff;
    border-radius: 50%;
    background: #fff;
    box-shadow: 0 8px 22px rgba(51, 109, 76, .25);
}

.rkv-loader-card::after {
    content: "";
    position: absolute;
    right: -1px;
    bottom: 3px;
    width: 13px;
    height: 13px;
    box-sizing: border-box;
    border: 2px solid #fff;
    border-radius: 50%;
    background: #10b981;
    box-shadow: 0 2px 7px rgba(16, 185, 129, .35);
}

.rkv-loader-logo {
    width: 54px;
    height: 54px;
    display: block;
    object-fit: contain;
    border-radius: 50%;
}

.rkv-loader-brand,
.rkv-loader-bullets,
.rkv-loader-track,
.rkv-loader-text {
    display: none !important;
}

@keyframes rkv-loader-spin {
    to { transform: rotate(360deg); }
}

@media (prefers-reduced-motion: reduce) {
    .rkv-loader-stage::before {
        animation-duration: 2.5s;
    }
}
