  *, *::before, *::after { box-sizing: border-box; }
  html { scroll-behavior: smooth; }
  body { overflow-x: hidden; }

  /* Gold gradient text for hero */
  .gold-text {
    background: linear-gradient(135deg, #D4A853 0%, #F0D68A 50%, #C99A3E 100%);
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    background-clip: text;
  }

  /* Hero background */
  .hero-bg {
    will-change: transform;
  }

  /* Nav link underline on hover */
  .nav-link::after {
    content: '';
    display: block;
    width: 0;
    height: 1px;
    background: currentColor;
    transition: width 0.3s ease;
    margin-top: 2px;
  }
  .nav-link:hover::after {
    width: 100%;
  }

  /* Mobile menu */
  #mobile-menu.open {
    opacity: 1;
    pointer-events: all;
  }

  .mobile-link {
    transition: opacity 0.2s ease;
  }
  .mobile-link:hover {
    opacity: 0.7;
  }

  /* Scroll reveal base — content always visible by default */
  .reveal {
    opacity: 1;
    transform: translateY(0);
    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);
  }

  /* Scroll reveal hidden state — applied by JS only */
  .reveal.revealed {
    opacity: 0;
    transform: translateY(24px);
  }

  /* Input placeholder styling */
  ::placeholder {
    color: rgba(15, 29, 58, 0.15);
  }

  /* Subtle image hover zoom */
  section img {
    transition: transform 0.6s cubic-bezier(0.25, 0.46, 0.45, 0.94);
  }
  section img:hover {
    transform: scale(1.02);
  }

  @media (prefers-reduced-motion: no-preference) {
    .reveal-animated {
      opacity: 0;
      transform: translateY(24px);
    }
    .reveal-animated.revealed {
      opacity: 1;
      transform: translateY(0);
    }
  }
