#rqm-website-preloader {
    position: fixed;
    inset: 0;
    z-index: 10000;
    overflow: hidden;
    display: grid;
    place-items: center;
    background: var(--rqm-pl-bg);
    opacity: 1;
    transition: opacity var(--rqm-pl-fade) ease;
    /* Fail open even if later JavaScript throws. No global scroll/focus lock. */
    animation: rqm-preloader-failsafe 0s var(--rqm-pl-deadline) forwards;
}
#rqm-website-preloader[hidden] { display: none; }
#rqm-website-preloader.rqm-pl-leaving { opacity: 0; pointer-events: none; }
#rqm-website-preloader > video,
#rqm-website-preloader > img {
    display: block;
    width: var(--rqm-pl-width);
    max-width: 100%;
    max-height: 100vh;
    max-height: 100dvh;
    height: auto;
    object-fit: contain;
}
@media (max-width: 767.98px) {
    #rqm-website-preloader > video, #rqm-website-preloader > img { width: var(--rqm-pl-mobile-width); }
}
@media (prefers-reduced-motion: reduce) {
    #rqm-website-preloader { display: none; }
}
@keyframes rqm-preloader-failsafe {
    to { visibility: hidden; opacity: 0; pointer-events: none; }
}

/* A full uploaded logo is revealed only when its animated dot has landed. */
#rqm-website-preloader > .rqm-pl-logo {
    opacity: 0;
}
#rqm-website-preloader > .rqm-pl-dot {
    position: absolute;
    top: 0;
    left: 0;
    display: block;
    visibility: hidden;
    border-radius: 50%;
    background: var(--rqm-pl-dot);
    pointer-events: none;
}
