.header {
  position: relative;
  top: 0;
  left: 0;
  width: 100%;
  z-index: 100;
}
.mobile-header {
  border-bottom: 2px dashed var(--dark-gray);
  z-index: 100;
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
}
#root {
  padding-top: 104px;
}
@media screen and (min-width: 1024px) {
  #root {
    padding-top: 0;
  }
}
.header-nav-trigger {
  position: relative;
  width: 2.5rem;
  height: 2.5rem;
  display: inline-flex;
  justify-content: center;
  align-items: center;
  cursor: pointer;
  z-index: 1;
  border-radius: 0.625rem;
  background-color: var(--white);
  border: 2px solid var(--dark-gray);
}
.header-nav-trigger__toggle {
  width: 1.25rem;
  background-color: var(--black);
  border-radius: 9999px;
  position: absolute;
  transition: all 150ms ease;
}
.header-nav-trigger__toggle::before,
.header-nav-trigger__toggle::after {
  height: 2px;
  width: 1.25rem;
  background-color: var(--black);
  border-radius: 9999px;
  position: absolute;
  transition: all 150ms ease;
}
.header-nav-trigger__toggle {
  top: 50%;
  left: 50%;
  transform-origin: center;
  transform: translate(-50%, -50%);
}
.header-nav-trigger__toggle::before, .header-nav-trigger__toggle::after {
  content: "";
  top: 0;
  left: 0;
}
.header-nav-trigger__toggle::before {
  animation: toggler-top 800ms ease forwards;
}
.header-nav-trigger__toggle::after {
  animation: toggler-bottom 800ms ease forwards;
}
.header-nav-trigger.active .header-nav-trigger__toggle {
  transition-delay: 200ms;
  transform: translate(-50%, -50%) rotate(135deg);
}
.header-nav-trigger.active .header-nav-trigger__toggle::before {
  animation: toggler-top-open 800ms ease forwards;
}
.header-nav-trigger.active .header-nav-trigger__toggle::after {
  animation: toggler-bottom-open 800ms ease forwards;
}

.header-nav-content {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background-color: var(--cream);
  overflow-y: auto;
}
.header-links {
  overflow: hidden;
}
.header-links a,
.header-menu-trigger {
  background-color: rgba(0 0 0 / 0%);
  transition: background 150ms ease;
}
.header-links a:hover,
.header-menu-trigger:hover {
  background-color: rgba(0 0 0 / 8%);
  text-decoration: none;
}
.header-links > a + a,
.header-menu + .header-menu,
.header-links > a + .header-menu,
.header-menu + a {
  border-top: 1px dashed var(--dark-gray);
}

.header-s-link {
  background-color: rgba(255 255 255 / 100%);
  transition: background 150ms ease;
}
.header-s-link:hover {
  background-color: rgba(255 255 255 / 85%);
  text-decoration: none;
}

.today-widget svg {
  width: 100%;
  height: 100%;
}
.today-widget > *:nth-child(2) {
  border-top: 1px dashed var(--dark-gray);
}
.today-widget > *:nth-child(3) {
  border-top: 1px dashed var(--dark-gray);
  border-left: 1px dashed var(--dark-gray);
}
.header-menu-trigger .icon {
  transition: transform 200ms ease;
}
.header-menu-trigger.open .icon {
  transform: rotate(45deg) scale(1.1);
}
.header-menu-content.open {
  animation: header-menu-open 200ms ease forwards;
}
.header-menu-content.closed {
  animation: header-menu-close 200ms ease forwards;
}
.header-mount .desktop-header {
  position: sticky;
  top: 40px;
}


/** Keyframes **/
@keyframes toggler-top-open {
  0% {
    transform: translateY(4px)
  }
  30% {
    transform: translateY(0)
  }
  to {
    transform: translateY(0)
  }
}
@keyframes toggler-bottom-open {
  0% {
    transform: translateY(-4px)
  }
  30% {
    transform: translateY(0)
  }
  to {
    transform: translateY(0) rotate(90deg)
  }
}
@keyframes toggler-bottom {
  0% {
    transform: translateY(0)
  }
  30% {
    transform: translateY(0)
  }
  to {
    transform: translateY(4px)
  }
}
@keyframes toggler-top {
  0% {
    transform: translateY(0) rotate(90deg)
  }
  30% {
    transform: translateY(0)
  }
  to {
    transform: translateY(-4px)
  }
}
@keyframes header-menu-open {
  0% {
    height: 0px;
  }
  to {
    height: var(--collapsible-content-height);
  }
}
@keyframes header-menu-close {
  0% {
    height: var(--collapsible-content-height);
  }
  to {
    height: 0px;
  }
}
