/* ==========================================================
   site.css — shared across every page
   Page-specific styles stay in each HTML file's <style> block,
   which loads after this file and therefore wins on conflicts.
   ========================================================== */

/* BASE */
* { margin: 0; padding: 0; box-sizing: border-box; }
body {
  font-family: 'Inter', -apple-system, BlinkMacSystemFont, sans-serif;
  color: #111;
  background: #fff;
  line-height: 1.5;
}
.wrap { max-width: 980px; margin: 0 auto; padding: 0 32px; }

/* NAV */
nav {
  position: sticky;
  top: 0;
  z-index: 100;
  display: flex;
  justify-content: space-between;
  align-items: center;
  background: rgba(237, 237, 237, 0.6);
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
  border-radius: 0 0 14px 14px;
  padding: 12px 12px 12px 22px;
  margin-top: 0;
}
.nav-left { display: flex; align-items: baseline; gap: 12px; }
.logo { font-weight: 700; font-size: 15px; letter-spacing: -0.2px; }
.logo sup { font-size: 10px; }
.nav-right { display: flex; align-items: center; gap: 24px; }
.navlinks { display: flex; gap: 24px; }
.navlinks a { color: #111; text-decoration: none; font-size: 15px; font-weight: 500; }
.navlinks a:hover { opacity: 0.6; }
.nav-cta {
  background: #111; color: #fff; font-size: 14px; font-weight: 600;
  padding: 11px 20px; border-radius: 100px; text-decoration: none; white-space: nowrap;
}
.nav-cta:hover { background: #333; }
.nav-plus-mobile {
  display: none; width: 40px; height: 40px; border-radius: 50%;
  background: #111; align-items: center; justify-content: center;
  text-decoration: none; color: #fff; font-size: 20px; flex-shrink: 0;
  border: none; cursor: pointer; font-family: inherit; padding: 0; line-height: 1;
}
.nav-plus-mobile:hover { background: #333; }
.nav-mobile-menu {
  display: none;
  position: absolute;
  top: 62px;
  right: 12px;
  background: #fff;
  border-radius: 12px;
  box-shadow: 0 8px 24px rgba(0,0,0,0.15);
  padding: 8px;
  flex-direction: column;
  min-width: 160px;
  z-index: 200;
}
.nav-mobile-menu.open { display: flex; }
.nav-mobile-menu a {
  padding: 12px 16px; color: #111; text-decoration: none;
  font-size: 15px; font-weight: 500; border-radius: 8px;
}
.nav-mobile-menu a:hover { background: #f5f5f5; }

/* CONTACT / FOOTER */
/* about.html overrides margin-top to 40px in its own <style> */
.bottom-sheet { background: #111; color: #fff; margin-top: 80px; }
.contact { padding: 100px 0; display: flex; justify-content: space-between; align-items: flex-start; gap: 40px; }
.contact h2 { font-size: 36px; font-weight: 800; letter-spacing: -1px; margin-bottom: 8px; color: #fff; }
.copyright-sub { font-size: 16px; color: #888; }
.bottom-links { display: flex; flex-direction: column; gap: 12px; text-align: left; }
.bottom-links a { color: #fff; font-weight: 500; text-decoration: none; font-size: 16px; }
.bottom-links a:hover { text-decoration: underline; }

@media (max-width: 640px) {
  .wrap { padding: 0 16px; }
  .navlinks { display: none; }
  .nav-plus-mobile { display: flex; }
  .nav-right { gap: 0; }

  /* Copyright / footer */
  .contact { flex-direction: column; gap: 24px; padding: 60px 0; }
  .contact h2 { font-size: 24px; }
  .copyright-sub { font-size: 13px; }
  .bottom-links a { font-size: 14px; }
}

/* ===== Micro-interactions ===== */
/* Underline slide on links */
.navlinks a, .bottom-links a { position: relative; }
.navlinks a::after, .bottom-links a::after {
  content: ''; position: absolute; left: 0; bottom: -2px;
  width: 100%; height: 1px; background: currentColor;
  transform: scaleX(0); transform-origin: left;
  transition: transform 0.28s ease;
}
.navlinks a:hover::after, .bottom-links a:hover::after { transform: scaleX(1); }
.bottom-links a:hover { text-decoration: none; }
.navlinks a:hover { opacity: 1; }
/* Button press feedback */
.nav-cta, .nav-plus-mobile { transition: background 0.2s ease, transform 0.12s ease; }
.nav-cta:active, .nav-plus-mobile:active { transform: scale(0.95); }
/* Scroll reveal */
.reveal { opacity: 0; transform: translateY(20px); transition: opacity 0.6s ease, transform 0.6s ease; }
.reveal.in { opacity: 1; transform: translateY(0); }
/* Page entry fade */
.entry { opacity: 0; transform: translateY(16px); }
.entry.play { animation: entryFadeUp 0.6s ease forwards; animation-delay: var(--d, 0s); }
@keyframes entryFadeUp { to { opacity: 1; transform: translateY(0); } }
@media (prefers-reduced-motion: reduce) {
  .reveal, .entry { opacity: 1 !important; transform: none !important; transition: none !important; animation: none !important; }
  .navlinks a::after, .bottom-links a::after { transition: none; }
}
