/* Custom Utilities & Animations */
:root {
    --color-sand-50: #FDF8F5;
    --color-sand-100: #F9EFE8;
    --color-clay-500: #B45309;
    --color-stone-900: #1C1917;
}

html {
    scroll-behavior: smooth;
}

body {
    background-color: var(--color-sand-50);
    color: var(--color-stone-900);
}

/* Menu Item Styling */
.menu-item {
    position: relative;
    padding-left: 1rem;
    border-left: 1px solid transparent;
    transition: border-color 0.3s ease;
}

.menu-item:hover {
    border-left-color: var(--color-clay-500);
}

/* Scroll Reveal States */
.reveal-up, .reveal-left, .reveal-right {
    opacity: 0;
    transition: all 0.8s cubic-bezier(0.5, 0, 0, 1);
}

.reveal-up { transform: translateY(30px); }
.reveal-left { transform: translateX(-30px); }
.reveal-right { transform: translateX(30px); }

.reveal-active.reveal-up { opacity: 1; transform: translateY(0); }
.reveal-active.reveal-left { opacity: 1; transform: translateX(0); }
.reveal-active.reveal-right { opacity: 1; transform: translateX(0); }

/* Hero Animation */
@keyframes fade-in-up {
    from {
        opacity: 0;
        transform: translateY(20px);
    }
    to {
        opacity: 1;
        transform: translateY(0);
    }
}

.animate-fade-in-up {
    animation: fade-in-up 0.8s ease-out forwards;
    opacity: 0;
}

.delay-100 { animation-delay: 0.1s; }
.delay-200 { animation-delay: 0.2s; }
.delay-300 { animation-delay: 0.3s; }

/* Mobile Menu Transitions */
#mobile-menu {
    transition: opacity 0.3s ease, visibility 0.3s ease;
}

#mobile-menu.open {
    opacity: 1;
    pointer-events: auto;
}

/* Focus Styles */
a:focus-visible, button:focus-visible {
    outline: 2px solid var(--color-clay-500);
    outline-offset: 4px;
}

/* Custom Scrollbar */
::-webkit-scrollbar {
    width: 8px;
}
::-webkit-scrollbar-track {
    background: var(--color-sand-100);
}
::-webkit-scrollbar-thumb {
    background: #d6c4b0;
    border-radius: 4px;
}
::-webkit-scrollbar-thumb:hover {
    background: var(--color-clay-500);
}
