:root {
  --nav-accent: #37d9bd;

  --nav-surface: rgba(60, 60, 72, 0.85);
  --nav-surface-glass: rgba(60, 60, 72, 0.65);
  --nav-surface-muted: rgba(77, 77, 89, 0.85);
  --nav-surface-muted-soft: rgba(77, 77, 89, 0.75);

  --nav-radius: 6px;
  --nav-radius-small: 12px;

  --nav-gap: 1.25rem;

  --nav-duration-fast: 200ms;
  --nav-duration-base: 280ms;
  --nav-duration-slow: 360ms;

  --nav-ease: cubic-bezier(0.2, 0, 0, 1);
}

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

.primary-nav {
  position: relative;
  z-index: 200;
  display: flex;
  gap: var(--nav-gap);
}

.primary-nav > a {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.5rem;
}

.primary-nav > a.current,
.primary-nav > a[aria-current="page"] {
  color: var(--nav-accent);
}

.primary-nav a span {
  text-transform: none;
}

.primary-nav a.with-submenu::after {
  content: "";
  inline-size: 14px;
  block-size: 14px;
  display: inline-block;
  background-repeat: no-repeat;
  background-position: center;
  background-size: contain;
}

.primary-nav a:focus-visible,
.subnav-container a:focus-visible {
  outline: 2px solid var(--nav-accent);
  outline-offset: 4px;
}

.subnav-container {
  position: absolute;
  top: 1rem;
  left: 0;
  z-index: 1;
  width: min(60vw, 950px);
  max-width: 950px;
  padding-top: 4rem;
  pointer-events: none;
}

.subnav-container.active {
  pointer-events: auto;
}

.subnav-container ul {
  margin: 0;
  padding: 0;
  list-style: none;
}

.subnav-container a {
  font-size: 0.9rem;
  text-transform: none;
}

.subnav-container .subnav {
  position: absolute;
  left: 0;
  right: 0;
  display: flex;

  visibility: hidden;
  pointer-events: none;
  transform: translateY(-0.35rem);

  transition:
    transform var(--nav-duration-base) var(--nav-ease),
    visibility 0s linear var(--nav-duration-base);
}

.subnav-container .subnav.active {
  visibility: visible;
  pointer-events: auto;
  transform: translateY(0);

  transition:
    transform var(--nav-duration-base) var(--nav-ease),
    visibility 0s;
}

.subnav-container .menu,
.subnav-container .details {
  position: relative;
  overflow: hidden;
  isolation: isolate;
  transform: translateZ(0);
  will-change: transform;
}

.subnav-container .menu::before,
.subnav-container .details::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: -1;

  backdrop-filter: blur(8px);
  -webkit-backdrop-filter: blur(8px);

  transform: translateZ(0);
  will-change: backdrop-filter;
}

.subnav-container .menu > *,
.subnav-container .details > * {
  opacity: 0;
  transform: translateY(0.25rem);

  transition:
    opacity var(--nav-duration-base) var(--nav-ease),
    transform var(--nav-duration-base) var(--nav-ease);
}

.subnav-container .subnav.active .menu > *,
.subnav-container .subnav.active .details > * {
  opacity: 1;
  transform: translateY(0);
  transition-delay: 40ms;
}

.subnav-container .menu {
  z-index: 100;
  flex: 0 0 53%;
  padding: 1rem;

  border-top-left-radius: var(--nav-radius);
  border-bottom-left-radius: var(--nav-radius);
}

.subnav-container .menu::before {
  background-color: var(--nav-surface-glass);
  border-top-left-radius: var(--nav-radius);
  border-bottom-left-radius: var(--nav-radius);
}

.subnav-container .details {
  z-index: 99;
  flex: 0 0 40%;
  padding: 1rem;

  border-top-right-radius: var(--nav-radius);
  border-bottom-right-radius: var(--nav-radius);

  transition:
    transform var(--nav-duration-base) var(--nav-ease),
    opacity var(--nav-duration-slow) var(--nav-ease);
}

.subnav-container .details::before {
  background-color: var(--nav-surface-muted);
  border-top-right-radius: var(--nav-radius);
  border-bottom-right-radius: var(--nav-radius);
}

@supports not ((backdrop-filter: blur(8px)) or (-webkit-backdrop-filter: blur(8px))) {
  .subnav-container .menu::before {
    background-color: var(--nav-surface);
  }

  .subnav-container .details::before {
    background-color: var(--nav-surface-muted);
  }
}

.subnav-container .menu > a {
  position: relative;
  z-index: 2;
  display: flex;
  gap: 1rem;
  padding: 1rem;
}

.subnav-container .menu > a > span {
  display: flex;
  flex: 1;
  flex-direction: column;
}

.subnav-container .menu span.subtitle,
.subnav-container .details a > span {
  font-size: 0.65rem;
}

.subnav-container .details a > span {
  color: #fff;
}

.subnav-container .menu svg {
  min-width: 28px;
  flex-shrink: 0;
}

.subnav-container .slider {
  position: absolute;
  top: 0;
  left: 0;

  opacity: 0;
  border-radius: var(--nav-radius-small);
  background: var(--nav-surface-muted-soft);

  transition:
    opacity var(--nav-duration-fast) var(--nav-ease),
    transform var(--nav-duration-base) var(--nav-ease),
    width var(--nav-duration-base) var(--nav-ease),
    height var(--nav-duration-base) var(--nav-ease);
}

.subnav-container .details:empty {
  opacity: 0;
  transform: translateX(-100%);
}

.subnav-container .details > div {
  position: absolute;
  min-height: 100%;
}

.subnav-container .details > div:first-child {
  opacity: 1;
}

.subnav-container .details > div > * {
  display: flex;
  flex-direction: column;
  padding: 0.5rem 1rem 0.75rem;
}

.subnav-container .details svg {
  opacity: 0;
  transform: translateX(-1rem);

  transition:
    transform var(--nav-duration-fast) var(--nav-ease),
    opacity var(--nav-duration-fast) var(--nav-ease);
}

.subnav-container .details a:hover svg,
.subnav-container .details a:focus-visible svg {
  opacity: 1;
  transform: translateX(0);
}

@media (prefers-reduced-motion: reduce) {
  .subnav-container .subnav,
  .subnav-container .menu > *,
  .subnav-container .details > *,
  .subnav-container .slider,
  .subnav-container .details,
  .subnav-container .details svg {
    transition: none;
  }
}

