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

/* NAV */
#nav { background: transparent; transition: background 0.3s, box-shadow 0.3s, padding 0.3s; }
#nav.scrolled { background: rgba(250,248,244,0.95); backdrop-filter: blur(12px); box-shadow: 0 1px 0 rgba(26,60,42,0.08); }

/* MOBILE MENU */
#mobileMenu { transition: opacity 0.3s; }
#mobileMenu.open { display: flex; }
#mobileMenu.hidden { display: none; }
.mobile-link { transition: color 0.2s; }
.mobile-link:hover { color: #c8a96e; }

/* FLOATING CARDS */
.stat-card { animation: float 6s ease-in-out infinite; }
.stat-card:nth-child(2) { animation-delay: -2s; margin-left: 16px; }
.stat-card:nth-child(3) { animation-delay: -4s; }
@keyframes float {
  0%, 100% { transform: translateY(0); }
  50% { transform: translateY(-10px); }
}

/* SCROLL REVEAL */
.scroll-reveal { opacity: 1; transform: translateY(0); transition: opacity 0.7s ease, transform 0.7s ease; }
@media (prefers-reduced-motion: no-preference) {
  .scroll-reveal { opacity: 0; transform: translateY(24px); }
  .scroll-reveal.revealed { opacity: 1; transform: translateY(0); }
}

/* HERO */
#top { position: relative; }

/* SELECTION */
::selection { background: rgba(42,92,58,0.2); color: #1a3c2a; }

/* FOCUS */
:focus-visible { outline: 2px solid #c8a96e; outline-offset: 2px; }

/* SCROLLBAR */
::-webkit-scrollbar { width: 8px; }
::-webkit-scrollbar-track { background: #f5f0e8; }
::-webkit-scrollbar-thumb { background: #c5dfcc; border-radius: 4px; }
::-webkit-scrollbar-thumb:hover { background: #8fbfa0; }
