.header {
  position: fixed;
  inset: 0 0 auto;
  z-index: 50;
  height: var(--header-height);
  background: rgba(255, 255, 255, 0.78);
  border-bottom: 1px solid var(--color-border-dark);
  backdrop-filter: blur(5px);
}

.nav {
  height: var(--header-height);
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 2rem;
  background-color: transparent;
}

.brand {
  display: inline-flex;
  align-items: center;
  gap: 0.65rem;
  font-weight: 950;
  letter-spacing: -0.04em;
}

.brand-mark {
  display: grid;
  place-items: center;
  width: 42px;
  height: 42px;
  border-radius: 50%;
  background: var(--color-black);
  color: var(--color-white);
}

.nav-menu {
  display: flex;
  align-items: center;
  gap: 1.4rem;
  font-size: var(--text-small);
  font-weight: 850;
}

.nav-menu a {
  color: rgba(0, 0, 0, 0.68);
  transition: color var(--transition-fast);
}

.nav-menu a:hover {
  color: var(--color-black);
}

.menu-toggle,
.menu-button {
  display: none;
}

@supports (animation-timeline: scroll()) {
  .header,
  .nav {
    animation-name: shrink-nav;
    animation-timeline: scroll();
    animation-range: 0 120px;
    animation-fill-mode: both;
  }
}

@keyframes shrink-nav {
  from {
    height: var(--header-height);
    opacity: 1;
  }

  to {
    height: calc(var(--header-height) * 0.75);
    opacity: 0.9;
  }
}

@media (max-width: 760px) {
  .menu-button {
    display: grid;
    place-items: center;
    width: 44px;
    height: 44px;
    border: 1px solid var(--color-border-dark);
    border-radius: 50%;
    background: var(--color-white);
    cursor: pointer;
  }

  .nav-menu {
    position: absolute;
    top: calc(var(--header-height) + 0.7rem);
    left: 1rem;
    right: 1rem;
    display: grid;
    gap: 0.4rem;
    padding: 1rem;
    border: 1px solid var(--color-border-dark);
    border-radius: var(--radius-medium);
    background: rgba(255, 255, 255, 0.96);
    box-shadow: var(--shadow-dark);
    opacity: 0;
    transform: translateY(-16px);
    pointer-events: none;
    transition:
      opacity var(--transition-base),
      transform var(--transition-base);
  }

  .nav-menu a {
    display: block;
    padding: 0.8rem;
    border-radius: var(--radius-small);
  }

  .nav-menu a:hover {
    background: var(--color-gray);
  }

  .menu-toggle:checked~.nav-menu {
    opacity: 1;
    transform: translateY(0);
    pointer-events: auto;
  }
}