[data-request-spinner][hidden] { display: none; }

.request-spinner {
    position: fixed;
    inset: 0;
    z-index: 2000;
    display: grid;
    place-items: center;
    padding: 1rem;
}

.request-spinner__backdrop {
    position: absolute;
    inset: 0;
    background: rgb(23 33 57 / 48%);
}

.request-spinner__box {
    position: relative;
    display: inline-flex;
    align-items: center;
    gap: .75rem;
    min-width: min(18rem, 100%);
    padding: 1rem 1.25rem;
    border: 1px solid var(--rule);
    border-radius: .25rem;
    background: var(--sheet);
    box-shadow: 0 .7rem 2rem rgb(23 33 57 / 24%);
    color: var(--ink);
}

.request-spinner__wheel {
    width: 1.65rem;
    height: 1.65rem;
    flex: 0 0 auto;
    border: .22rem solid var(--rule);
    border-top-color: var(--accent);
    border-radius: 50%;
    animation: request-spinner-spin .75s linear infinite;
}

@keyframes request-spinner-spin {
    to { transform: rotate(360deg); }
}

@media (prefers-reduced-motion: reduce) {
    .request-spinner__wheel { animation-duration: 1.6s; }
}
