:root {
  --mainNavHeight: calc(100dvh - var(--mainHeaderHeight));
  --mainNavASize: clamp(100px, calc(var(--mainNavHeight) / 6), 1000000px);
}

#mainNav {
  margin: var(--mainHeaderHeight) 0 0 0;
  height: var(--mainNavHeight);
  width: fit-content;
  position: fixed;
  bottom: 0;
  left: 0;
  overflow-y: auto;
  border-right: 2px solid var(--elementBorderColor);
  transition: none;
  transform: translateY(0);

  /*Layer*/
  z-index: var(--navLayer);
}

#mainNav ul {
  display: flex;
  flex-direction: column;
  justify-content: flex-start;
  align-items: flex-start;
  height: 100%;
  width: fit-content;
}

#mainNav li:first-of-type {
  border-top: none;
}

#mainNav li {
  display: flex;
  flex-direction: row;
  justify-content: center;
  align-items: center;
  height: var(--mainNavASize);
  width: var(--mainNavASize);
  border-top: 2px solid var(--elementBorderColor);
  box-sizing: border-box;
}

#mainNav a {
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  height: 100%;
  width: 100%;
  background-color: var(--elementBackgroundColor);
  padding: 10px;
  box-sizing: border-box;
  gap: 10px;
  filter: brightness(1);
  transition: filter 0.2s linear;
  font-family: "Roboto", Arial, Helvetica, sans-serif;
}

#mainNav a:focus-visible {
  outline: var(--focusColor) solid var(--focusSize);
  outline-offset: calc(var(--focusSize) * -1);
  filter: brightness(1.2);
}

#mainNav a:hover {
  filter: brightness(1.2);
}

#mainNav a:active {
  filter: brightness(1.4);
}

  @media (prefers-reduced-motion: reduce) {
    #mainNav a {
      transition: none;
    }
  }

  @media (max-width: 950px) {
    #mainNav {
      top: 0;
      left: 0;
      display: none;
      transform: translateY(-100dvh);
      overflow-y: auto;
      transition: transform 0.2s ease;
      will-change: transform;
    }

    .navShown {
      display: flex !important;
    }

    .navOpen {
      transform: translateY(0) !important;
    }

    #mainNav li {
      width: 100dvw;
      height: fit-content;
      min-width: var(--minWebsiteSize);
    }

    #mainNav a {
      flex-direction: row;
      height: fit-content;
      padding: 20px 0px;
    }

    #mainNav a:hover {
      filter: brightness(1);
    }
  }

  @media (prefers-reduced-motion: reduce) and (max-width: 950px) {
    #mainNav {
      opacity: 0;
      transform: translateY(0px);
      transition: opacity .2s ease;
      will-change: opacity;
    }

    .navOpen {
      opacity: 1 !important;
    }
  }