  /* ── Base / Reset ── */
  *, *::before, *::after { box-sizing: border-box; }
  html { scroll-behavior: smooth; scroll-padding-top: 80px; }
  body { margin: 0; -webkit-font-smoothing: antialiased; }
  img { max-width: 100%; height: auto; display: block; }
  select { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%236b7280' stroke-width='2' stroke-linecap='round'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E"); background-repeat: no-repeat; background-position: right 1rem center; padding-right: 2.5rem !important; }

  /* ── Card Lift ── */
  .card-lift { will-change: transform; }
  .card-lift:hover { transform: translateY(-4px); }

  /* ── Scroll Reveal ── */
  .reveal {
    opacity: 1;
    transform: none;
    transition: opacity 0.6s ease, transform 0.6s ease;
  }
  @media (prefers-reduced-motion: no-preference) {
    .reveal {
      opacity: 0;
      transform: translateY(28px);
    }
    .reveal.revealed,
    .reveal.auto-reveal {
      opacity: 1;
      transform: translateY(0);
    }
  }

  /* ── Navbar Scroll State ── */
  #site-header.scrolled {
    background: rgba(255, 255, 255, 0.97);
    backdrop-filter: blur(12px);
    box-shadow: 0 1px 20px rgba(16, 42, 67, 0.08);
  }
  #site-header.scrolled .menu-line { background: #1e3a5f; }

  /* ── Mobile Menu Animation ── */
  #mobile-menu.open { display: block; animation: menuSlide 0.25s ease; }
  @keyframes menuSlide { from { opacity: 0; transform: translateY(-8px); } to { opacity: 1; transform: translateY(0); } }
  #menu-toggle[aria-expanded="true"] .menu-line:nth-child(1) { transform: rotate(45deg) translate(3px, 3px); }
  #menu-toggle[aria-expanded="true"] .menu-line:nth-child(2) { opacity: 0; }
  #menu-toggle[aria-expanded="true"] .menu-line:nth-child(3) { width: 1.5rem; transform: rotate(-45deg) translate(3px, -3px); }

  .mobile-link { display: block; }
