/* Base */
*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin: 0; }

/* Navbar */
.nav { background: rgba(254, 253, 248, 0.9); backdrop-filter: blur(12px); -webkit-backdrop-filter: blur(12px); border-bottom: 1px solid rgba(6, 95, 70, 0.08); }
.nav.scrolled { background: rgba(254, 253, 248, 0.97); box-shadow: 0 4px 20px rgba(6, 78, 59, 0.08); }
.h-18 { height: 72px; }
.nav-logo-text { transition: color 0.2s; }
.nav-link { position: relative; }
.nav-link::after { content: ''; position: absolute; bottom: -2px; left: 0; width: 0; height: 2px; background: #10b981; transition: width 0.3s; }
.nav-link:hover::after { width: 100%; }

/* Mobile menu */
.mobile-menu-link { transition: color 0.2s, padding-left 0.2s; }
.mobile-menu-link:hover { color: #059669; padding-left: 8px; }

/* Scroll reveal */
.reveal { opacity: 1; transform: none; transition: opacity 0.7s ease, transform 0.7s ease; }
.reveal.revealed { opacity: 1; transform: none; }

/* Gallery scroll */
@keyframes scroll {
    0% { transform: translateX(0); }
    100% { transform: translateX(-50%); }
}
.animate-scroll { animation: scroll 30s linear infinite; }
.animate-scroll:hover { animation-play-state: paused; }

/* Button focus */
button:focus-visible, input:focus-visible, textarea:focus-visible, select:focus-visible { outline: 2px solid #bef264; outline-offset: 2px; }

/* Selection */
::selection { background: rgba(16, 185, 129, 0.2); }

/* Reduced motion */
@media (prefers-reduced-motion: reduce) {
    .animate-scroll { animation: none; }
    html { scroll-behavior: auto; }
    .reveal { transition: none; }
}

/* Custom scrollbar */
::-webkit-scrollbar { width: 8px; }
::-webkit-scrollbar-track { background: #fdf9f0; }
::-webkit-scrollbar-thumb { background: #065f46; border-radius: 4px; }
::-webkit-scrollbar-thumb:hover { background: #047857; }
