  *, *::before, *::after {
    box-sizing: border-box;
  }

  html {
    scroll-behavior: smooth;
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
  }

  body {
    overflow-x: hidden;
  }

  /* HERO ANIMATION */
  .hero-content {
    opacity: 1;
    transform: translateY(0);
    transition: opacity 1s ease, transform 1s ease;
  }

  /* SCROLL REVEAL — below-the-fold only */
  .reveal {
    opacity: 1;
    transform: translateY(0);
    transition: opacity 0.8s ease, transform 0.8s ease;
  }

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

    .reveal.revealed {
      opacity: 1;
      transform: translateY(0);
    }
  }

  /* SCROLL INDICATOR */
  .scroll-indicator {
    animation: scrollBounce 2s ease-in-out infinite;
  }

  @keyframes scrollBounce {
    0%, 100% { transform: translateY(0); opacity: 1; }
    50% { transform: translateY(8px); opacity: 0.5; }
  }

  /* NAV SCROLL STATE */
  #nav.scrolled {
    background: rgba(10, 10, 16, 0.95);
    backdrop-filter: blur(12px);
    -webkit-backdrop-filter: blur(12px);
    box-shadow: 0 1px 0 rgba(255, 255, 255, 0.05);
  }

  /* MOBILE MENU */
  #mobile-menu.open {
    opacity: 1 !important;
    pointer-events: all !important;
  }

  /* SERVICE CARDS */
  .service-card {
    transition: background-color 0.5s ease;
  }

  .service-card:hover {
    transform: translateY(-2px);
  }

  /* MOBILE LINKS */
  .mobile-link {
    opacity: 1;
    transform: translateY(0);
    transition: opacity 0.4s ease, transform 0.4s ease;
  }

  /* FORM FOCUS */
  input:focus, textarea:focus {
    border-color: #ff6b4a !important;
  }

  /* SELECTION */
  ::selection {
    background: rgba(255, 107, 74, 0.2);
    color: inherit;
  }

  /* FINE-TUNING */
  @media (max-width: 767px) {
    .font-serif {
      font-size: 2rem;
    }
  }
