/* Base & Typography */
body {
    font-family: 'Lato', sans-serif;
    background-color: #fefdf8;
    color: #052e16;
}

h1, h2, h3, h4, h5, h6 {
    font-family: 'Playfair Display', Georgia, serif;
}

/* Scroll Reveal Animations */
.reveal {
    opacity: 1;
    transform: translateY(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);
}

.reveal.from-bottom {
    opacity: 0;
    transform: translateY(40px);
}

.reveal.from-left {
    opacity: 0;
    transform: translateX(-40px);
}

.reveal.from-right {
    opacity: 0;
    transform: translateX(40px);
}

.reveal.scale-in {
    opacity: 0;
    transform: scale(0.95);
}

/* Hero Animations */
.hero-anim {
    opacity: 1;
    transform: translateY(0);
    animation: heroFadeUp 0.9s cubic-bezier(0.25, 0.46, 0.45, 0.94) forwards;
}

.hero-anim:nth-child(2) {
    animation-delay: 0.15s;
}

.hero-anim:nth-child(3) {
    animation-delay: 0.3s;
}

.hero-anim:nth-child(4) {
    animation-delay: 0.45s;
}

@keyframes heroFadeUp {
    from {
        opacity: 0;
        transform: translateY(30px);
    }
    to {
        opacity: 1;
        transform: translateY(0);
    }
}

/* Navbar scroll state */
.nav-scrolled {
    background: rgba(254, 253, 248, 0.95) !important;
    backdrop-filter: blur(12px);
    box-shadow: 0 1px 20px rgba(5, 46, 22, 0.08);
}

.nav-scrolled .nav-logo {
    color: #052e16 !important;
}

.nav-scrolled .nav-link {
    color: #14532d !
