.page-loader {
    position: fixed;
    inset: 0;
    z-index: 20000;
    display: grid;
    place-items: center;
    background:
        repeating-linear-gradient(0deg, rgba(17, 16, 15, 0.018) 0 1px, transparent 1px 12px),
        radial-gradient(circle at 50% 42%, rgba(47, 65, 86, 0.08), transparent 30%),
        #f8f5ef;
    opacity: 1;
    visibility: visible;
    transition: opacity 0.34s ease, visibility 0.34s ease;
}

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

.page-loader__card {
    display: grid;
    justify-items: center;
    gap: 14px;
    min-width: 156px;
    padding: 18px 20px 16px;
    border: 1px solid rgba(17, 16, 15, 0.32);
    background: rgba(255, 253, 248, 0.86);
    box-shadow: 6px 6px 0 rgba(17, 16, 15, 0.12);
}

.page-loader__logo {
    width: 68px;
    height: 68px;
    display: block;
    border-radius: 999px;
    object-fit: cover;
    border: 1px solid rgba(17, 16, 15, 0.18);
    animation: loaderPulse 1.35s ease-in-out infinite;
}

.page-loader__text {
    color: #11100f;
    font-family: "Cinzel", Georgia, serif;
    font-size: 0.72rem;
    font-weight: 900;
    letter-spacing: 0.18em;
    text-transform: uppercase;
}

.page-loader__line {
    width: 84px;
    height: 1px;
    overflow: hidden;
    background: rgba(17, 16, 15, 0.18);
}

.page-loader__line::after {
    content: "";
    display: block;
    width: 42px;
    height: 100%;
    background: #11100f;
    animation: loaderLine 1.05s ease-in-out infinite;
}

@keyframes loaderPulse {
    0%,
    100% {
        transform: scale(1);
        opacity: 0.92;
    }

    50% {
        transform: scale(1.045);
        opacity: 1;
    }
}

@keyframes loaderLine {
    0% {
        transform: translateX(-44px);
    }

    100% {
        transform: translateX(88px);
    }
}

@media (max-width: 600px) {
    .page-loader__card {
        min-width: 136px;
        padding: 15px 16px 14px;
    }

    .page-loader__logo {
        width: 58px;
        height: 58px;
    }

    .page-loader__text {
        font-size: 0.64rem;
    }
}
