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

  html { scroll-behavior: smooth; }

  body {
    overflow-x: hidden;
  }

  /* Scroll reveal base — visible by default for no-JS */
  .reveal {
    opacity: 1;
    transform: translateY(0);
    transition: opacity 0.7s ease, transform 0.7s ease;
  }

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

  /* Smooth image loading */
  img {
    image-rendering: -webkit-optimize-contrast;
  }

  /* Selection color */
  ::selection {
    background: #86efac;
    color: #14532d;
  }
