::-webkit-scrollbar {
    width: 8px;
}
::-webkit-scrollbar-track {
    background: #f1f1f1; 
}
::-webkit-scrollbar-thumb {
    background: #FF6B35; 
    border-radius: 4px;
}
::-webkit-scrollbar-thumb:hover {
    background: #e55a2b; 
}
.hero-overlay {
    background: linear-gradient(rgba(0,0,0,0.3), rgba(0,0,0,0.6));
}
.clip-circle {
    clip-path: circle(50% at 50% 50%);
}
.text-vertical {
    writing-mode: vertical-rl;
    text-orientation: mixed;
}
@keyframes fade-cycle {
    0% { opacity: 0; z-index: 1; }
    5% { opacity: 1; z-index: 10; }
    33% { opacity: 1; z-index: 10; }
    38% { opacity: 0; z-index: 1; }
    100% { opacity: 0; z-index: 1; }
}
.carousel-item {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    opacity: 0;
    animation: fade-cycle 15s infinite;
}
.carousel-item:nth-child(1) { animation-delay: 0s; }
.carousel-item:nth-child(2) { animation-delay: 5s; }
.carousel-item:nth-child(3) { animation-delay: 10s; }
.carousel-indicator.active {
    background-color: #fff;
    width: 2rem;
}

/* Smooth scroll */
html {
    scroll-behavior: smooth;
}

/* Navbar shrink transition */
nav {
    transition: all 0.35s cubic-bezier(0.25, 0.46, 0.45, 0.94) !important;
}
nav img {
    transition: height 0.35s cubic-bezier(0.25, 0.46, 0.45, 0.94) !important;
}
nav > div {
    transition: height 0.35s cubic-bezier(0.25, 0.46, 0.45, 0.94) !important;
}

/* Scroll Reveal Animations */
[data-reveal] {
    opacity: 0;
    transition: opacity 0.8s cubic-bezier(0.25, 0.46, 0.45, 0.94),
                transform 0.8s cubic-bezier(0.25, 0.46, 0.45, 0.94);
}
[data-reveal].revealed {
    opacity: 1;
    transform: none !important;
}
[data-reveal="fade-up"] {
    transform: translateY(60px);
}
[data-reveal="fade-down"] {
    transform: translateY(-40px);
}
[data-reveal="fade-left"] {
    transform: translateX(-60px);
}
[data-reveal="fade-right"] {
    transform: translateX(60px);
}
[data-reveal="scale-up"] {
    transform: scale(0.85);
}
[data-reveal="fade-in"] {
    transform: none;
}

/* Stagger delays */
[data-delay="100"] { transition-delay: 0.1s; }
[data-delay="200"] { transition-delay: 0.2s; }
[data-delay="300"] { transition-delay: 0.3s; }
[data-delay="400"] { transition-delay: 0.4s; }
[data-delay="500"] { transition-delay: 0.5s; }
[data-delay="600"] { transition-delay: 0.6s; }

/* Parallax section */
.parallax-section {
    position: relative;
    overflow: hidden;
}
.parallax-section .parallax-bg {
    position: absolute;
    inset: -30% 0;
    width: 100%;
    height: 160%;
    object-fit: cover;
    will-change: transform;
    transition: transform 0.1s linear;
}

/* Section divider wave */
.section-wave {
    position: relative;
}
.section-wave::before {
    content: '';
    position: absolute;
    top: -40px;
    left: 0;
    width: 100%;
    height: 40px;
    background: inherit;
    clip-path: ellipse(55% 100% at 50% 100%);
}

/* Respect reduced motion preference */
@media (prefers-reduced-motion: reduce) {
    [data-reveal] {
        opacity: 1 !important;
        transform: none !important;
        transition: none !important;
    }
    .parallax-bg {
        transform: none !important;
    }
    html {
        scroll-behavior: auto;
    }
}
