/* Base & Utilities */
*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { font-family: 'Inter', system-ui, sans-serif; -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; }
.font-display { font-family: 'Playfair Display', Georgia, serif; }

/* Scroll Reveal */
.scroll-reveal { opacity: 1; transform: translateY(0); transition: opacity 0.7s cubic-bezier(0.22, 1, 0.36, 1), transform 0.7s cubic-bezier(0.22, 1, 0.36, 1); }
.scroll-reveal.revealed { opacity: 1; transform: translateY(0); }

/* Reduced motion */
@media (prefers-reduced-motion: reduce) {
  .scroll-reveal { opacity: 1; transform: none; transition: none; }
  html { scroll-behavior: auto; }
  * { animation-duration: 0.01ms !important; transition-duration: 0.01ms !important; }
}

/* Mobile menu */
#mobile-menu { transition: max-height 0.3s ease, opacity 0.3s ease; }
#mobile-menu.hidden { max-height: 0; opacity: 0; overflow: hidden; }
#mobile-menu:not(.hidden) { max-height: 400px; opacity: 1; }

/* Navbar scroll state */
.navbar-scrolled { box-shadow: 0 1px 3px rgba(0,0,0,0.08), 0 4px 16px rgba(0,0,0,0.04); }

/* Selection */
::selection { background: rgba(13, 148, 136, 0.2); color: #0f766e; }

/* Custom scrollbar */
::-webkit-scrollbar { width: 8px; }
::-webkit-scrollbar-track { background: #f1f5f9; }
::-webkit-scrollbar-thumb { background: #cbd5e1; border-radius: 4px; }
::-webkit-scrollbar-thumb:hover { background: #94a3b8; }

/* Focus visible */
:focus-visible { outline: 2px solid #0f766e; outline-offset: 2px; border-radius: 4px; }
