  *, *::before, *::after { box-sizing: border-box; }
  html { scroll-behavior: smooth; scroll-padding-top: 4rem; }
  body { margin: 0; }
  img, svg { display: block; max-width: 100%; }
  button, input, textarea, select { font: inherit; }
  p, li, h1, h2, h3, h4 { overflow-wrap: break-word; }

  /* Hero entrance — content is visible immediately; animation is progressive enhancement */
  @media (prefers-reduced-motion: no-preference) {
    .hero-lead {
      opacity: 0;
      transform: translateY(12px);
      animation: fadeUp 0.7s ease forwards;
      animation-delay: 0.15s;
    }
    .hero-headline {
      opacity: 0;
      transform: translateY(16px);
      animation: fadeUp 0.7s ease forwards;
      animation-delay: 0.3s;
    }
    .hero-sub {
      opacity: 0;
      transform: translateY(12px);
      animation: fadeUp 0.7s ease forwards;
      animation-delay: 0.45s;
    }
    .hero-cta {
      opacity: 0;
      transform: translateY(12px);
      animation: fadeUp 0.7s ease forwards;
      animation-delay: 0.6s;
    }
    .hero-stats > * {
      opacity: 0;
      transform: translateY(8px);
      animation: fadeUp 0.5s ease forwards;
    }
    .hero-stats > *:nth-child(1) { animation-delay: 0.75s; }
    .hero-stats > *:nth-child(2) { animation-delay: 0.85s; }
    .hero-stats > *:nth-child(3) { animation-delay: 0.95s; }
    .hero-stats > *:nth-child(4) { animation-delay: 1.05s; }
  }

  @keyframes fadeUp {
    to { opacity: 1; transform: translateY(0); }
  }

  /* Scroll reveal — progressive enhancement, content is visible without JS */
  .reveal {
    opacity: 1;
    transform: none;
    transition: opacity 0.6s ease, transform 0.6s ease;
  }

  @media (prefers-reduced-motion: no-preference) {
    .reveal.is-hidden {
      opacity: 0;
      transform: translateY(24px);
      transition: opacity 0.6s ease, transform 0.6s ease;
    }
    .reveal.is-visible {
      opacity: 1;
      transform: translateY(0);
    }
  }

  /* Navbar scroll state */
  #navbar.scrolled {
    box-shadow: 0 1px 8px rgba(0,0,0,0.08);
  }

  /* Smooth focus visible */
  :focus-visible {
    outline: 2px solid #0d9488;
    outline-offset: 2px;
  }
