/* Responsive: mobile-first overrides */

/* Mobile: nav toggle visible, links hidden */
@media (max-width: 639px) {
  .nav__toggle {
    display: block;
  }

  .nav__links {
    position: fixed;
    top: var(--nav-height);
    left: 0;
    right: 0;
    height: calc(100vh - var(--nav-height));
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: var(--space-10);
    background-color: rgba(15, 15, 15, 0.95);
    backdrop-filter: blur(16px);
    -webkit-backdrop-filter: blur(16px);
    opacity: 0;
    visibility: hidden;
    transition: opacity var(--transition-base), visibility var(--transition-base);
  }

  .nav__links.is-open {
    opacity: 1;
    visibility: visible;
  }

  .nav__links.is-open .nav__link {
    font-size: var(--text-lg);
  }

  .hero__container {
    flex-direction: column-reverse;
    text-align: center;
  }

  .hero__photo {
    width: 180px;
    height: 180px;
  }

  .hero__name {
    font-size: var(--text-3xl);
  }

  .hero__tagline {
    font-size: var(--text-lg);
  }

  .section-header__title {
    font-size: var(--text-2xl);
  }
}

/* sm: >= 640px */
@media (min-width: 640px) {
  .grid-2 {
    grid-template-columns: repeat(2, 1fr);
  }

  .grid-3 {
    grid-template-columns: repeat(2, 1fr);
  }

  .gallery {
    grid-template-columns: repeat(2, 1fr);
  }
}

/* md: >= 900px */
@media (min-width: 900px) {
  .grid-3 {
    grid-template-columns: repeat(3, 1fr);
  }

  .gallery {
    grid-template-columns: repeat(3, 1fr);
  }

  .section {
    padding-block: var(--space-24);
  }

  .container {
    padding-inline: var(--space-10);
  }
}

/* lg: >= 1200px */
@media (min-width: 1200px) {
  .gallery {
    grid-template-columns: repeat(4, 1fr);
  }

  .hero__name {
    font-size: var(--text-4xl);
  }
}
