:root {
    --pa-bg: #000;
    --pa-text: rgba(255,255,255,.78);
    --pa-accent: #ffd21a;
}

.pa-loader {
    position: fixed;
    inset: 0;
    z-index: 2147483647;
    display: grid;
    place-items: center;
    overflow: hidden;
    background: #000;
    opacity: 1;
    visibility: visible;
    transition: opacity .55s cubic-bezier(.22,1,.36,1), visibility .55s;
}

.pa-loader.is-hidden {
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
}

.pa-loader__backdrop {
    position: absolute;
    inset: -20%;
    background:
        radial-gradient(circle at 50% 42%, rgba(255, 191, 0, .08), transparent 26%),
        radial-gradient(circle at 50% 55%, rgba(255, 62, 0, .045), transparent 35%),
        #000;
}

.pa-loader__backdrop::after {
    content: "";
    position: absolute;
    inset: 0;
    background: linear-gradient(180deg, rgba(255,255,255,.018), transparent 30%, transparent 70%, rgba(255,255,255,.012));
}

.pa-loader__content {
    position: relative;
    z-index: 2;
    width: min(465px, 58.5vw);
    display: flex;
    flex-direction: column;
    align-items: center;
}

.pa-loader__logo-wrap {
    position: relative;
    display: grid;
    place-items: center;
    width: 100%;
    margin-bottom: 21px;
}

.pa-loader__logo-wrap::before {
    content: "";
    position: absolute;
    width: 39%;
    aspect-ratio: 1.8;
    border-radius: 50%;
    background: radial-gradient(ellipse, rgba(255, 194, 0, .15), transparent 68%);
    filter: blur(18px);
    animation: paGlow 2.4s ease-in-out infinite;
}

.pa-loader__logo {
    position: relative;
    width: 100%;
    max-width: 435px;
    height: auto;
    display: block;
    object-fit: contain;
    filter: drop-shadow(0 0 18px rgba(255, 198, 0, .10));
    animation: paLogoIn .75s cubic-bezier(.22,1,.36,1) both, paFloat 3s ease-in-out 1s infinite;
}

.pa-loader__status {
    min-height: 18px;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 2.25px;
    color: var(--pa-text);
    font: 500 9px/1.4 system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
    letter-spacing: .12em;
    text-transform: uppercase;
}

.pa-loader__dots {
    display: inline-flex;
    gap: 2.25px;
    margin-left: 2.25px;
}

.pa-loader__dots i {
    width: 2.25px;
    height: 2.25px;
    border-radius: 50%;
    background: rgba(255,255,255,.72);
    animation: paDot 1s ease-in-out infinite;
}
.pa-loader__dots i:nth-child(2) { animation-delay: .14s; }
.pa-loader__dots i:nth-child(3) { animation-delay: .28s; }

.pa-loader__progress {
    width: min(188px, 41.25vw);
    height: 1.5px;
    margin-top: 13.5px;
    overflow: hidden;
    border-radius: 999px;
    background: rgba(255,255,255,.11);
}

.pa-loader__progress span {
    display: block;
    width: 0;
    height: 100%;
    border-radius: inherit;
    background: linear-gradient(90deg, #ff3b18 0%, #ff9d00 48%, #ffe20a 100%);
    box-shadow: 0 0 12px rgba(255, 178, 0, .32);
    animation: paProgress var(--pa-duration, 1600ms) cubic-bezier(.2,.75,.25,1) forwards;
}

@keyframes paLogoIn {
    from { opacity: 0; transform: translateY(12px) scale(.97); }
    to { opacity: 1; transform: translateY(0) scale(1); }
}

@keyframes paFloat {
    0%, 100% { transform: translateY(0); }
    50% { transform: translateY(-3px); }
}

@keyframes paGlow {
    0%, 100% { opacity: .55; transform: scale(.96); }
    50% { opacity: .9; transform: scale(1.04); }
}

@keyframes paDot {
    0%, 70%, 100% { opacity: .28; transform: translateY(0); }
    35% { opacity: 1; transform: translateY(-2px); }
}

@keyframes paProgress {
    from { width: 0; }
    to { width: 100%; }
}

@media (max-width: 600px) {
    .pa-loader__content { width: 63vw; }
    .pa-loader__logo { max-width: 390px; }
    .pa-loader__logo-wrap { margin-bottom: 16.5px; }
    .pa-loader__status { font-size: 7.5px; }
}

@media (prefers-reduced-motion: reduce) {
    .pa-loader,
    .pa-loader__logo,
    .pa-loader__logo-wrap::before,
    .pa-loader__dots i,
    .pa-loader__progress span {
        animation: none !important;
    }
    .pa-loader__progress span { width: 100%; }
}
