/* =========================================================
GLOBAL LOCK
========================================================= */

html.preload-lock,
body.preload-lock {
overflow: hidden !important;
height: 100%;
overscroll-behavior: none;
touch-action: none;
}

/* =========================================================
BASE LOADER
========================================================= */

#cinema-loader-mobile,
#cinema-loader-desktop {
position: fixed;
inset: 0;
width: 100%;
height: 100dvh;


display: flex;
justify-content: center;
align-items: center;

background:
    radial-gradient(circle at center,
    #232323 0%,
    #101010 100%);

z-index: 999999;

opacity: 1;
visibility: visible;

transition:
    opacity .6s ease,
    visibility .6s ease;

contain: layout style paint;
backface-visibility: hidden;
transform: translateZ(0);

font-family:
    -apple-system,
    BlinkMacSystemFont,
    "Segoe UI",
    Roboto,
    Arial,
    sans-serif;


}

/* =========================================================
HIDDEN STATE
========================================================= */

.loader-hidden-mobile,
.loader-hidden-desktop {
opacity: 0;
visibility: hidden;
pointer-events: none;
}

/* =========================================================
MOBILE
========================================================= */

@media (max-width:1024px) {


#cinema-loader-desktop {
    display: none !important;
}

.loader-content-mobile {
    width: 100%;
    padding: 20px;

    display: flex;
    flex-direction: column;
    align-items: center;

    gap: 26px;
}

.loader-logo-mobile {
    width: 110px;
    height: 110px;

    will-change: transform;
    transform: translateZ(0);
}

.orbit-circles-mobile {
    transform-origin: center;
    animation: orbitSpin 3s linear infinite;
    will-change: transform;
}

#cinema-loader-mobile p {
    margin: 0;

    color: #d7b347;

    font-size: 14px;
    font-weight: 500;
    letter-spacing: 3px;
    text-transform: uppercase;

    opacity: .95;
}

.loader-progress-mobile {
    width: min(220px, 70vw);
    height: 4px;

    overflow: hidden;

    background: rgba(255,255,255,.08);

    border-radius: 30px;

    position: relative;
}

.loader-progress-bar-mobile {
    width: 0%;
    height: 100%;

    border-radius: inherit;

    background:
        linear-gradient(
            90deg,
            #c9a227 0%,
            #f0d878 50%,
            #c9a227 100%
        );

    background-size: 200% 100%;

    will-change: width;
    transform: translateZ(0);

    animation: shimmer 2s linear infinite;
}


}

/* =========================================================
DESKTOP
========================================================= */

@media (min-width:1025px) {


#cinema-loader-mobile {
    display: none !important;
}

#cinema-loader-desktop {
    display: flex;
}

.loader-content-desktop {
    display: flex;
    flex-direction: column;
    align-items: center;

    gap: 28px;
}

.loader-top-desktop {
    display: flex;
    align-items: center;

    gap: 24px;
}

.kinobag-logo-desktop {
    font-size: clamp(72px, 8vw, 140px);
    line-height: 1;

    font-weight: 900;
    letter-spacing: 8px;

    text-transform: uppercase;

    background:
        linear-gradient(
            135deg,
            #c9a227 0%,
            #f0d878 25%,
            #fff4c1 50%,
            #f0d878 75%,
            #c9a227 100%
        );

    background-size: 200% auto;

    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    background-clip: text;

    animation:
        gradientShift 5s linear infinite;

    will-change: background-position;
    transform: translateZ(0);
}

.loader-logo-desktop {
    width: 120px;
    height: 120px;

    will-change: transform;
    transform: translateZ(0);
}

.orbit-circles-desktop {
    transform-origin: center;
    animation: orbitSpin 3s linear infinite;
    will-change: transform;
}

#cinema-loader-desktop p {
    margin: 0;

    color: #d7b347;

    font-size: 14px;
    font-weight: 500;

    letter-spacing: 4px;
    text-transform: uppercase;

    opacity: .95;
}

.loader-progress-desktop {
    width: 240px;
    height: 4px;

    overflow: hidden;

    background: rgba(255,255,255,.08);

    border-radius: 30px;

    position: relative;
}

.loader-progress-bar-desktop {
    width: 0%;
    height: 100%;

    border-radius: inherit;

    background:
        linear-gradient(
            90deg,
            #c9a227 0%,
            #f0d878 50%,
            #c9a227 100%
        );

    background-size: 200% 100%;

    animation: shimmer 2s linear infinite;

    will-change: width;
    transform: translateZ(0);
}


}

/* =========================================================
ANIMATIONS
========================================================= */

@keyframes orbitSpin {


from {
    transform: rotate(0deg);
}

to {
    transform: rotate(360deg);
}


}

@keyframes shimmer {


0% {
    background-position: -200% 0;
}

100% {
    background-position: 200% 0;
}


}

@keyframes gradientShift {


0% {
    background-position: 0% 50%;
}

100% {
    background-position: 200% 50%;
}


}

/* =========================================================
REDUCE MOTION
========================================================= */

@media (prefers-reduced-motion: reduce) {


.orbit-circles-mobile,
.orbit-circles-desktop,
.loader-progress-bar-mobile,
.loader-progress-bar-desktop,
.kinobag-logo-desktop {

    animation: none !important;
}


}

