/* ── Base ───────────────────────────────────────────── */
*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
html { scroll-behavior: smooth; -webkit-font-smoothing: antialiased; }
body { overflow-x: hidden; }
img, video { max-width: 100%; height: auto; display: block; }
button, input, select, textarea { font-family: inherit; font-size: inherit; }

/* ── Scroll Reveal (progressive enhancement) ────────── */
@media (prefers-reduced-motion: no-preference) {
  .reveal {
    opacity: 0;
    transform: translateY(24px);
    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.revealed {
    opacity: 1;
    transform: translateY(0);
  }
  .reveal-delay-1 { transition-delay: 0.1s; }
  .reveal-delay-2 { transition-delay: 0.2s; }
  .reveal-delay-3 { transition-delay: 0.3s; }
}

/* ── Navbar ──────────────────────────────────────────── */
#site-header {
  background: rgba(247, 248, 250, 0.85);
  backdrop-filter: blur(16px);
  -webkit-backdrop-filter: blur(16px);
  border-bottom: 1px solid transparent;
  transition: border-color 0.4s ease, box-shadow 0.4s ease;
}
#site-header.scrolled {
  border-bottom-color: rgb(226 234 237 / 0.6);
  box-shadow: 0 1px 0 rgb(226 234 237 / 0.4);
}

.nav-link { position: relative; }
.nav-link::after {
  content: '';
  position: absolute;
  bottom: -4px;
  left: 0;
  width: 0;
  height: 1px;
  background: rgb(249 112 102);
  transition: width 0.3s ease;
}
.nav-link:hover::after { width: 100%; }

/* ── Mobile Menu ─────────────────────────────────────── */
#mobile-menu { pointer-events: none; }
#mobile-menu.open { pointer-events: all; }
.mobile-menu-link { transition: transform 0.3s ease; }

/* ── Hero scroll indicator ───────────────────────────── */
@keyframes scrollLine {
  0% { opacity: 0; transform: scaleY(0); transform-origin: top; }
  50% { opacity: 1; transform: scaleY(1); transform-origin: top; }
  51% { transform-origin: bottom; }
  100% { opacity: 0; transform: scaleY(0); transform-origin: bottom; }
}
.animate-pulse { animation: scrollLine 1.8s cubic-bezier(0.4, 0, 0.2, 1) infinite; }

/* ── Form ────────────────────────────────────────────── */
input:focus, select:focus, textarea:focus {
  border-color: rgb(249 112 102) !important;
}

/* ── Selection ───────────────────────────────────────── */
::selection {
  background: rgb(249 112 102 / 0.2);
  color: rgb(31 41 55);
}

/* ── Utility: hide scrollbar on mobile menu ──────────── */
body.menu-open { overflow: hidden; }

/* ── Print ───────────────────────────────────────────── */
@media print {
  #site-header, #mobile-menu { display: none; }
  body { background: white; color: black; }
}
