html, body {
    overflow-x: clip;
    width: 100%;
}
body {
    font-family: 'Plus Jakarta Sans', sans-serif;
    background-color: #FAFAF9;
}
.serif-title {
    font-family: 'Playfair Display', serif;
    font-weight: 700;
    color: #2C1D1A;
}
/* Custom scrollbar hiding */
.scrollbar-none::-webkit-scrollbar {
    display: none;
}
.scrollbar-none {
    -ms-overflow-style: none;
    scrollbar-width: none;
}
@keyframes bounce-slow {
    0%, 100% {
        transform: translateY(0);
    }
    50% {
        transform: translateY(-8px);
    }
}
.animate-bounce-slow {
    animation: bounce-slow 4s ease-in-out infinite;
}

/* Premium custom animations */
@keyframes fadeInUp {
    from {
        opacity: 0;
        transform: translateY(16px);
    }
    to {
        opacity: 1;
        transform: translateY(0);
    }
}
.animate-fade-in-up {
    animation: fadeInUp 0.6s cubic-bezier(0.16, 1, 0.3, 1) forwards;
}

@keyframes fadeInRight {
    from {
        opacity: 0;
        transform: translateX(24px);
    }
    to {
        opacity: 1;
        transform: translateX(0);
    }
}
.animate-fade-in-right {
    animation: fadeInRight 0.6s cubic-bezier(0.16, 1, 0.3, 1) forwards;
}

@keyframes fadeInLeft {
    from {
        opacity: 0;
        transform: translateX(-24px);
    }
    to {
        opacity: 1;
        transform: translateX(0);
    }
}
.animate-fade-in-left {
    animation: fadeInLeft 0.6s cubic-bezier(0.16, 1, 0.3, 1) forwards;
}

/* Staggered transition delay utilities */
.animation-delay-0 { animation-delay: 0ms; }
.animation-delay-100 { animation-delay: 100ms; }
.animation-delay-200 { animation-delay: 200ms; }
.animation-delay-300 { animation-delay: 300ms; }
.animation-delay-400 { animation-delay: 400ms; }
.animation-delay-500 { animation-delay: 500ms; }
.animation-delay-600 { animation-delay: 600ms; }
.animation-delay-700 { animation-delay: 700ms; }

/* Custom keyframes for float animation */
@keyframes float-subtle {
    0%, 100% {
        transform: translateY(0);
    }
    50% {
        transform: translateY(-4px);
    }
}
.animate-float-subtle {
    animation: float-subtle 3s ease-in-out infinite;
}

/* Nav links custom hover underline indicator animation */
.nav-link-animated {
    position: relative;
}
.nav-link-animated::after {
    content: '';
    position: absolute;
    width: 100%;
    transform: scaleX(0);
    height: 1.5px;
    bottom: -4px;
    left: 0;
    background-color: #C48A7B;
    transform-origin: bottom right;
    transition: transform 0.25s ease-out;
}
.nav-link-animated:hover::after {
    transform: scaleX(1);
    transform-origin: bottom left;
}

/* Infinite horizontal scrolling marquee */
@keyframes marquee {
    0% {
        transform: translateX(0);
    }
    100% {
        transform: translateX(-100%);
    }
}
.animate-marquee {
    animation: marquee 25s linear infinite;
}
.marquee-container:hover .animate-marquee {
    animation-play-state: paused;
}

/* Custom premium transition curve */
.ease-out-back {
    transition-timing-function: cubic-bezier(0.34, 1.56, 0.64, 1);
}

