html {
    scroll-behavior: smooth;
}

details>summary {
    list-style: none;
}

details>summary::-webkit-details-marker {
    display: none;
}

h1,
h2,
h3,
h4,
h5,
h6 {
    letter-spacing: -0.025em;
}

p {
    letter-spacing: 0.005em;
}

.reveal-on-scroll {
    opacity: 0;
    transform: translateY(60px);
    transition: opacity 1.5s cubic-bezier(0.2, 0.8, 0.2, 1), transform 1.5s cubic-bezier(0.2, 0.8, 0.2, 1);
    will-change: opacity, transform;
}

.reveal-on-scroll.is-visible {
    opacity: 1;
    transform: translateY(0);
}

.stagger-1 {
    transition-delay: 200ms;
}

.stagger-2 {
    transition-delay: 400ms;
}

.stagger-3 {
    transition-delay: 600ms;
}

.stagger-4 {
    transition-delay: 800ms;
}

@keyframes heroFadeUp {
    from {
        opacity: 0;
        transform: translateY(40px);
    }

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

.hero-animate {
    animation: heroFadeUp 1.2s cubic-bezier(0.16, 1, 0.3, 1) forwards;
    opacity: 0;
}

.hero-delay-1 {
    animation-delay: 0.2s;
}

.hero-delay-2 {
    animation-delay: 0.4s;
}

.hero-delay-3 {
    animation-delay: 0.6s;
}

.parallax-container {
    overflow: hidden;
    position: relative;
}

.parallax-image {
    will-change: transform;
    transition: transform 0.1s cubic-bezier(0, 0, 0, 1);
}

.textured-bg {
    background-image: radial-gradient(#ffffff10 1px, transparent 1px);
    background-size: 40px 40px;
}

/* Carousel Animation */
@keyframes scroll {
    0% {
        transform: translateX(0);
    }

    100% {
        transform: translateX(-50%);
    }
}

.carousel-track {
    display: inline-flex;
    align-items: center;
    width: max-content;
    animation: scroll 32s linear infinite;
}

.carousel-container {
    mask-image: linear-gradient(to right, transparent, black 10%, black 90%, transparent);
    -webkit-mask-image: linear-gradient(to right, transparent, black 10%, black 90%, transparent);
}