  /* Base & utilities */
  html { scroll-behavior: smooth; }
  body { -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; }

  /* Scroll reveal — progressive enhancement */
  .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); }
  .reveal-visible { opacity: 1; transform: translateY(0); }
  @media (prefers-reduced-motion: no-preference) {
    .reveal { opacity: 0; transform: translateY(24px); }
    .reveal-visible { opacity: 1; transform: translateY(0); }
  }
  @media (prefers-reduced-motion: reduce) {
    .reveal { opacity: 1; transform: none; }
  }

  /* Mobile menu transition */
  #mobile-menu > div { max-height: 0; overflow: hidden; transition: max-height 0.35s cubic-bezier(0.22, 1, 0.36, 1), opacity 0.25s ease; opacity: 0; }
  #mobile-menu.open > div { max-height: 400px; opacity: 1; }

  /* Header scroll state */
  #site-header.scrolled #site-header > div > div { box-shadow: 0 4px 24px rgba(2, 44, 34, 0.08); }

  /* Focus styles */
  a:focus-visible, button:focus-visible, input:focus-visible, textarea:focus-visible { outline: 2px solid #059669; outline-offset: 2px; border-radius: 8px; }

  /* Subtle selection color */
  ::selection { background: #A7F3D0; color: #064E3B; }
