.s-reveal {
    opacity: 0;
    filter: blur(25px);
    transform: translateY(22px);
    transition:
        opacity 0.9s var(--ease-expo),
        filter 0.9s var(--ease-expo),
        transform 0.9s var(--ease-expo);
    transition-delay: var(--delay, 0ms);
}

.s-reveal.visible {
    opacity: 1;
    filter: blur(0px);
    transform: translateY(0);
}

.s-blur {
    opacity: 0;
    filter: blur(8px);
    transition: opacity 1s var(--ease-expo), filter 1s var(--ease-expo);
    transition-delay: var(--delay, 0ms);
}

.s-blur.visible {
    opacity: 1;
    filter: blur(0px);
}

.btn--glow {
    position: relative;
    color: var(--c-bg) !important;
    background: transparent !important;
    border: none !important;
    overflow: hidden;
    z-index: 1;
    border-radius: 0;
    padding: 0.8rem 1.8rem;
    box-shadow: 0 4px 20px rgba(201, 168, 76, 0.2);
}

.btn--glow::before {
    content: '';
    position: absolute;
    z-index: -2;
    top: 50%;
    left: 50%;
    width: 200%;
    height: 500%;
    transform: translate(-50%, -50%) rotate(0deg);
    background-image: conic-gradient(transparent,
            #C9A84C,
            #F0D080,
            #D4AF37,
            transparent 35%);
    animation: btn-rotate-border 3.5s linear infinite;
}

.btn--glow::after {
    content: '';
    position: absolute;
    z-index: -1;
    top: 2px;
    left: 2px;
    width: calc(100% - 4px);
    height: calc(100% - 4px);
    background-color: var(--c-gold);
    border-radius: 0;
    transition: background-color 0.3s var(--ease-soft);
}

.btn--glow:hover::before {
    animation-duration: 2.5s;
}

.btn--glow:hover::after {
    background-color: var(--c-gold-lt);
}

@keyframes rsl-fadeInLeft {
    from {
        opacity: 0;
        transform: translateX(-44px);
    }

    to {
        opacity: 1;
        transform: translateX(0);
    }
}

@keyframes rsl-fadeInRight {
    from {
        opacity: 0;
        transform: translateX(44px);
    }

    to {
        opacity: 1;
        transform: translateX(0);
    }
}

@keyframes rsl-fadeInUp {
    from {
        opacity: 0;
        transform: translateY(38px);
    }

    to {
        opacity: 1;
        transform: translateY(0);
    }
}

@keyframes rsl-fadeInDown {
    from {
        opacity: 0;
        transform: translateY(-28px);
    }

    to {
        opacity: 1;
        transform: translateY(0);
    }
}

@keyframes rsl-zoomIn {
    from {
        opacity: 0;
        transform: scale(0.84);
    }

    to {
        opacity: 1;
        transform: scale(1);
    }
}

@keyframes rsl-wordReveal {
    from {
        opacity: 0;
        transform: translateY(24px) rotate(1deg);
        filter: blur(6px);
    }

    to {
        opacity: 1;
        transform: translateY(0) rotate(0deg);
        filter: blur(0);
    }
}

@keyframes rsl-imgSlide {
    from {
        opacity: 0;
        transform: translateX(40px) scale(1.03);
    }

    to {
        opacity: 1;
        transform: translateX(0) scale(1);
    }
}

@keyframes rsl-curtainReveal {
    0% {
        transform: scaleX(1);
        transform-origin: left center;
    }

    50% {
        transform: scaleX(0);
        transform-origin: left center;
    }

    51% {
        transform-origin: right center;
    }

    100% {
        transform: scaleX(0);
        transform-origin: right center;
    }
}

@keyframes heroZoom {
    from {
        transform: scale(1.06);
    }

    to {
        transform: scale(1);
    }
}

@keyframes numScroll {
    from { transform: translateX(0); }
    to { transform: translateX(-50%); }
}

@keyframes btn-rotate-border {
    100% {
        transform: translate(-50%, -50%) rotate(1turn);
    }
}

@keyframes airportPulse {
    0%, 100% { opacity: 0.7; }
    50% { opacity: 1; }
}
