html.is-loading,
html.is-loading body {
    overflow: hidden;
}

::selection {
    background: #FFF36A;
    color: #00555C;
}

::-moz-selection {
    background: #FFF36A;
    color: #00555C;
}

.site-preloader {
    position: fixed;
    inset: 0;
    z-index: 9999;
    display: grid;
    place-items: center;
    background:
        radial-gradient(circle at top right, rgba(255, 243, 106, 0.12), transparent 24%),
        radial-gradient(circle at bottom left, rgba(236, 100, 74, 0.16), transparent 28%),
        linear-gradient(145deg, rgba(60, 60, 60, 0.98), rgba(38, 38, 38, 0.98));
    opacity: 1;
    visibility: visible;
    transition: opacity 0.45s ease, visibility 0.45s ease;
}

.site-preloader.is-hidden {
    opacity: 0;
    visibility: hidden;
}

.site-preloader__mark {
    position: relative;
    width: clamp(76px, 9vw, 122px);
    aspect-ratio: 1;
    filter: drop-shadow(0 12px 26px rgba(0, 0, 0, 0.24));
}

.site-preloader__mark::before,
.site-preloader__mark::after,
.site-preloader__mark span {
    content: "";
    position: absolute;
    inset: 0;
    background-image: url("../images/V.png");
    background-repeat: no-repeat;
    background-position: center;
    background-size: contain;
}

.site-preloader__mark::before {
    clip-path: polygon(0 0, 52% 0, 40% 100%, 0 100%);
}

.site-preloader__mark::after {
    clip-path: polygon(52% 0, 100% 0, 100% 100%, 40% 100%);
}

.site-preloader__mark span {
}

.site-preloader__glow {
    position: absolute;
    width: clamp(124px, 14vw, 188px);
    aspect-ratio: 1;
    border-radius: 50%;
    background: radial-gradient(circle, rgba(255, 243, 106, 0.22), rgba(236, 100, 74, 0.12) 38%, transparent 70%);
    filter: blur(10px);
}

.site-preloader--assemble .site-preloader__mark::before {
    transform: translateX(-28px) rotate(-7deg);
    opacity: 0.22;
}

.site-preloader--assemble .site-preloader__mark::after {
    transform: translateX(28px) rotate(7deg);
    opacity: 0.22;
}

.site-preloader--assemble .site-preloader__mark span {
    opacity: 0;
    transform: scale(0.92);
}

.site-preloader--split .site-preloader__mark::before,
.site-preloader--split .site-preloader__mark::after,
.site-preloader--split .site-preloader__mark span {
    transform: none;
    opacity: 1;
}

.site-preloader--split .site-preloader__glow {
    opacity: 0.35;
    transform: scale(1.08);
}

.site-preloader--animate.site-preloader--assemble .site-preloader__mark::before {
    animation: preloader-left-in 0.95s cubic-bezier(0.22, 1, 0.36, 1) forwards;
}

.site-preloader--animate.site-preloader--assemble .site-preloader__mark::after {
    animation: preloader-right-in 0.95s cubic-bezier(0.22, 1, 0.36, 1) forwards;
}

.site-preloader--animate.site-preloader--assemble .site-preloader__mark span {
    animation: preloader-core-in 0.95s ease forwards;
}

.site-preloader--animate.site-preloader--assemble .site-preloader__glow {
    animation: preloader-glow-in 1.1s ease forwards;
}

.site-preloader--animate.site-preloader--split .site-preloader__mark::before {
    animation: preloader-left-out 0.82s cubic-bezier(0.22, 1, 0.36, 1) forwards;
}

.site-preloader--animate.site-preloader--split .site-preloader__mark::after {
    animation: preloader-right-out 0.82s cubic-bezier(0.22, 1, 0.36, 1) forwards;
}

.site-preloader--animate.site-preloader--split .site-preloader__mark span {
    animation: preloader-core-out 0.82s ease forwards;
}

.site-preloader--animate.site-preloader--split .site-preloader__glow {
    animation: preloader-glow-out 0.95s ease forwards;
}

@keyframes preloader-left-in {
    0% {
        transform: translateX(-28px) rotate(-7deg);
        opacity: 0.22;
    }
    100% {
        transform: translateX(0) rotate(0deg);
        opacity: 1;
    }
}

@keyframes preloader-right-in {
    0% {
        transform: translateX(28px) rotate(7deg);
        opacity: 0.22;
    }
    100% {
        transform: translateX(0) rotate(0deg);
        opacity: 1;
    }
}

@keyframes preloader-core-in {
    0%,
    38% {
        opacity: 0;
    }
    100% {
        opacity: 1;
        transform: scale(1);
    }
}

@keyframes preloader-glow-in {
    0% {
        opacity: 0;
        transform: scale(0.78);
    }
    55% {
        opacity: 0.9;
    }
    100% {
        opacity: 0.35;
        transform: scale(1.08);
    }
}

@keyframes preloader-left-out {
    0% {
        transform: translateX(0) rotate(0deg);
        opacity: 1;
    }
    100% {
        transform: translateX(-30px) rotate(-8deg);
        opacity: 0;
    }
}

@keyframes preloader-right-out {
    0% {
        transform: translateX(0) rotate(0deg);
        opacity: 1;
    }
    100% {
        transform: translateX(30px) rotate(8deg);
        opacity: 0;
    }
}

@keyframes preloader-core-out {
    0% {
        opacity: 1;
        transform: scale(1);
    }
    100% {
        opacity: 0;
        transform: scale(0.9);
    }
}

@keyframes preloader-glow-out {
    0% {
        opacity: 0.35;
        transform: scale(1.08);
    }
    100% {
        opacity: 0;
        transform: scale(1.18);
    }
}

@media (prefers-reduced-motion: reduce) {
    .site-preloader,
    .site-preloader__mark::before,
    .site-preloader__mark::after,
    .site-preloader__mark span,
    .site-preloader__glow {
        animation: none;
        transition: none;
    }

    .site-preloader__mark::before,
    .site-preloader__mark::after,
    .site-preloader__mark span {
        transform: none;
        opacity: 1;
    }
}