body {
  box-sizing: border-box;
}
*,
:after,
:before {
  box-sizing: inherit;
}
h1,
h2,
h3,
h4,
h5,
p {
  margin: 0;
}
input,
textarea {
  border: 0;
  padding: 0;
  -webkit-appearance: none;
  border-radius: 0;
}
button,
input,
textarea {
  font-family: inherit;
  margin: 0;
  background-color: initial;
  appearance: none;
}
button {
  border: 0;
}
a {
  text-decoration: none;
}
ul {
  padding-left: 1em;
}
body,
ul {
  margin: 0;
}
body {
  font-family: var(--fontStack);
  font-weight: var(--fontWeightRegular);
  font-synthesis: none;
  text-rendering: optimizeLegibility;
  background: rgb(var(--rgbBackground));
  color: var(--colorTextBody);
  border: 0;
  width: 100vw;
  overflow-x: hidden;
}
::selection {
  background: rgb(var(--rgbAccent));
  color: rgb(var(--rgbBlack));
}
@keyframes fade-in {
  0% {
    opacity: 0;
  }
  to {
    opacity: 1;
  }
}
.app {
  width: 100%;
  position: relative;
  background: rgb(var(--rgbBackground));
  transition: background var(--durationM) ease;
  outline: none;
  display: grid;
  grid-template: 100%/100%;
}
.app__page {
  opacity: 0;
  grid-area: 1/1;
  transition: opacity var(--durationS) ease;
  min-height: 100vh;
}
.app__page--entering,
.app__page--exiting {
  opacity: 0;
}
.app__page--entered {
  transition-duration: var(--durationL);
  transition-delay: var(--durationXS);
  opacity: 1;
}
.skip-to-main {
  color: rgb(var(--rgbBackground));
  z-index: 128;
}
.skip-to-main:focus {
  padding: var(--spaceS) var(--spaceM);
  position: fixed;
  top: var(--spaceM);
  left: var(--spaceM);
  text-decoration: none;
  font-weight: var(--fontWeightMedium);
  line-height: 1;
  box-shadow: 0 0 0 4px rgb(var(--rgbBackground)), 0 0 0 8px rgb(var(--rgbText));
  outline: none;
}
.skip-to-main:before {
  content: '';
  position: absolute;
  inset: 0;
  background-color: rgb(var(--rgbPrimary));
  clip-path: polygon(0 0, 100% 0, 100% calc(100% - 8px), calc(100% - 8px) 100%, 0 100%);
  z-index: -1;
}
.monogram {
  fill: var(--colorTextTitle);
  transition: fill var(--durationL) ease;
}
.monogram__highlight {
  fill: rgb(var(--rgbAccent));
  opacity: 0;
  transform: scaleY(0);
  transform-origin: top;
  transition: opacity 0.1s ease var(--durationM);
}
@media (prefers-reduced-motion: no-preference) {
  .monogram__highlight {
    transition: transform var(--durationM) var(--bezierFastoutSlowin),
      opacity 0.1s ease var(--durationM);
  }
}
.monogram:hover .monogram__highlight,
a:focus .monogram__highlight,
a:hover .monogram__highlight {
  opacity: 1;
  transform: scaleX(1);
  transform-origin: bottom;
  transition: opacity 0.1s ease;
}
@media (prefers-reduced-motion: no-preference) {
  .monogram:hover .monogram__highlight,
  a:focus .monogram__highlight,
  a:hover .monogram__highlight {
    transition: transform var(--durationM) var(--bezierFastoutSlowin), opacity 0.1s ease;
  }
}
.icon {
  display: block;
  fill: currentColor;
}
.visually-hidden {
  position: absolute;
}
.visually-hidden--hidden,
.visually-hidden--show-on-focus:not(:focus) {
  border: 0;
  clip: rect(0 0 0 0);
  height: 1px;
  width: 1px;
  margin: -1px;
  padding: 0;
  overflow: hidden;
  position: absolute;
  white-space: nowrap;
  word-wrap: normal;
}
.loader {
  display: flex;
  justify-content: center;
  width: var(--size);
  height: var(--size);
}
.loader-text {
  color: inherit;
  font-size: var(--fontSizeBodyS);
  font-weight: var(--fontWeightMedium);
}
.loader__content {
  display: grid;
  grid-template-columns: repeat(3, var(--spanSize));
  grid-gap: var(--gapSize);
  gap: var(--gapSize);
  align-items: center;
  justify-content: center;
  transform: skewX(22deg);
}
@keyframes loader-span {
  0% {
    transform: scaleY(0);
    opacity: 0.5;
    transform-origin: top;
  }
  40% {
    transform: scaleY(1);
    opacity: 1;
    transform-origin: top;
  }
  60% {
    transform: scaleY(1);
    opacity: 1;
    transform-origin: bottom;
  }
  to {
    transform: scaleY(0);
    opacity: 0.5;
    transform-origin: bottom;
  }
}
.loader__span {
  height: 60%;
  background: currentColor;
  animation: loader-span 1s var(--bezierFastoutSlowin) infinite;
  transform: scaleY(0);
  transform-origin: top left;
}
.loader__span:nth-child(2) {
  animation-delay: 0.1s;
}
.loader__span:nth-child(3) {
  animation-delay: 0.2s;
}
.button {
  --buttonSize: 3.5rem;
  --buttonFontSize: 1.125rem;
  --buttonFocusWidth: 4px;
  --buttonPadding: 0 var(--spaceL);
  --buttonTextColor: rgb(var(--rgbBackground));
  --buttonTextVisibility: visible;
  outline: none;
  height: var(--buttonSize);
  padding: var(--buttonPadding);
  cursor: pointer;
  transition-property: opacity, color, background;
  transition-duration: var(--durationS);
  transition-timing-function: var(--bezierFastoutSlowin);
  display: inline-flex;
  align-items: center;
  color: var(--buttonTextColor);
  position: relative;
  z-index: 1;
}
.button:focus {
  box-shadow: 0 0 0 4px rgb(var(--rgbBackground)), 0 0 0 8px rgb(var(--rgbText));
}
.button:after {
  content: '';
  transition-property: opacity, color, background;
  transition-duration: var(--durationM);
  transition-timing-function: var(--bezierFastoutSlowin);
  background: rgb(var(--rgbPrimary));
  position: absolute;
  inset: 0;
  z-index: -1;
  clip-path: polygon(0 0, 100% 0, 100% calc(100% - 8px), calc(100% - 8px) 100%, 0 100%);
}
.button:active {
  box-shadow: none;
  transition-duration: calc(var(--durationXS) / 2);
}
@media (prefers-reduced-motion: no-preference) {
  .button {
    transition-property: transform, opacity, color, background;
  }
  .button:hover {
    transform: scale(1.05);
  }
  .button:active {
    transform: scale(1);
  }
}
.button--secondary {
  --buttonSpace: 10px;
  --buttonTextColor: rgb(var(--rgbPrimary));
  background: none;
  padding-left: var(--buttonSpace);
  padding-right: var(--buttonSpace);
  position: relative;
  left: calc(var(--buttonSpace) * -1);
  height: 2rem;
}
.button--secondary:after {
  content: '';
  height: 2rem;
  position: absolute;
  inset: 0;
  background-color: rgb(var(--rgbPrimary) / 0.2);
  transform: scaleX(0);
  transform-origin: right;
  clip-path: none;
}
.button--secondary:hover {
  transform: none;
  background: transparent;
}
.button--secondary:hover:after {
  transform: scaleX(1);
  transform-origin: left;
}
@media (prefers-reduced-motion: no-preference) {
  .button--secondary:after {
    transition: transform var(--durationM) var(--bezierFastoutSlowin);
  }
}
.button--loading {
  --buttonTextVisibility: hidden;
}
.button--icon-only {
  --buttonPadding: 0;
  --buttonTextColor: var(--colorTextBody);
  width: var(--buttonSize);
  align-items: center;
  justify-content: center;
  padding: 0;
}
.button--icon-only:hover {
  transform: none;
}
.button--icon-only:after {
  background: rgb(var(--rgbText) / 0);
}
.button--icon-only:hover:after {
  background: rgb(var(--rgbText) / 0.1);
}
.button__text {
  font-size: var(--buttonFontSize);
  font-weight: var(--fontWeightMedium);
  visibility: var(--buttonTextVisibility);
  position: relative;
  line-height: 1;
  flex: 1 1 auto;
  display: flex;
  align-items: center;
  justify-content: center;
}
.button__loader {
  position: absolute;
  left: 50%;
  transform: translateX(-50%);
  color: rgb(var(--rgbBackground));
}
.button__icon {
  transition-property: opacity, fill;
  transition-duration: var(--durationS);
  transition-timing-function: var(--bezierFastoutSlowin);
}
@media (prefers-reduced-motion: no-preference) {
  .button__icon {
    transition-property: transform, opacity, fill;
  }
}
.button__icon--start {
  margin-right: var(--spaceS);
}
.button__icon--end {
  margin-left: var(--spaceS);
}
@media (prefers-reduced-motion: no-preference) {
  .button:hover .button__icon--shift {
    transform: translate3d(var(--spaceXS), 0, 0);
  }
}
.button--loading .button__icon {
  opacity: 0;
}
.nav-toggle {
  --buttonSize: var(--space2XL);
  position: fixed;
  top: var(--spaceOuter);
  right: var(--spaceOuter);
  width: var(--buttonSize);
  height: var(--buttonSize);
  z-index: 1024;
  display: none;
}
@media (max-height: 696px), (max-width: 696px) {
  .nav-toggle {
    display: flex;
  }
}
.nav-toggle__inner {
  display: flex;
  align-items: center;
  justify-content: center;
  height: 100%;
  width: 100%;
}
.nav-toggle__icon {
  --iconSize: var(--spaceXL);
  position: absolute;
  transition-property: opacity, fill;
  transition-duration: var(--durationM);
  transition-timing-function: var(--bezierFastoutSlowin);
  opacity: 1;
  transform: rotate(0deg);
  fill: var(--colorTextBody);
  width: var(--iconSize);
  height: var(--iconSize);
}
@media (prefers-reduced-motion: no-preference) {
  .nav-toggle__icon {
    transition-delay: 0.1s;
    transition-property: opacity, transform, fill;
  }
}
.nav-toggle__icon--open {
  opacity: 0;
}
@media (prefers-reduced-motion: no-preference) {
  .nav-toggle__icon--open {
    transition-delay: 0s;
    transform: rotate(45deg);
  }
}
.nav-toggle__icon--close {
  opacity: 0;
}
@media (prefers-reduced-motion: no-preference) {
  .nav-toggle__icon--close {
    transition-delay: 0s;
    transform: rotate(-45deg);
  }
}
.nav-toggle__icon--open.nav-toggle__icon--close {
  opacity: 1;
}
@media (prefers-reduced-motion: no-preference) {
  .nav-toggle__icon--open.nav-toggle__icon--close {
    transition-delay: 0.1s;
    transform: rotate(0deg);
  }
}
.theme-toggle {
  --buttonSize: var(--space2XL);
  position: fixed;
  z-index: 2048;
  width: var(--buttonSize);
  height: var(--buttonSize);
  top: var(--spaceOuter);
  right: var(--spaceOuter);
  margin-top: calc(var(--spaceS) * -1);
  margin-right: calc(var(--spaceS) * -1);
  transform: translateZ(0);
}
@media (max-height: 696px), (max-width: 696px) {
  .theme-toggle:not(.theme-toggle--mobile) {
    display: none;
  }
}
.theme-toggle--mobile {
  top: unset;
  bottom: var(--spaceXL);
  right: var(--spaceXL);
  margin-top: 0;
  margin-right: 0;
}
.theme-toggle__svg {
  display: block;
}
.theme-toggle__circle {
  fill: currentColor;
  transform: scale(0.6);
  transform-origin: center;
}
@media (prefers-reduced-motion: no-preference) {
  .theme-toggle__circle {
    transition-property: transform, fill;
    transition-duration: var(--durationL);
    transition-delay: 0s;
    transition-timing-function: var(--bezierFastoutSlowin);
  }
}
.theme-toggle__circle--mask {
  fill: #fff;
}
.theme-toggle__circle--dark {
  transform: none;
  transition-delay: 0.3s;
}
.theme-toggle__mask {
  fill: #000;
  transform: translate3d(100%, -100%, 0);
}
@media (prefers-reduced-motion: no-preference) {
  .theme-toggle__mask {
    transition: transform var(--durationL) var(--bezierFastoutSlowin);
    transition-delay: 0s;
  }
}
.theme-toggle__mask--dark {
  transform: none;
  transition-delay: 0.3s;
}
.theme-toggle__path {
  stroke: currentColor;
  fill: none;
  stroke-linecap: round;
  stroke-width: 3;
  stroke-dasharray: 7 7;
  stroke-dashoffset: 0;
  opacity: 1;
}
@media (prefers-reduced-motion: no-preference) {
  .theme-toggle__path {
    transition-property: stroke-dashoffset, opacity;
    transition-duration: var(--durationL);
    transition-timing-function: var(--bezierFastoutSlowin);
    transition-delay: 0.3s;
  }
}
.theme-toggle__path--dark {
  stroke-dashoffset: 7;
  transition-delay: 0s;
  opacity: 0;
}
.navbar {
  --navbarNavFontSize: 1rem;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: flex-start;
  padding: 0;
  width: var(--space2XL);
  position: fixed;
  top: var(--spaceOuter);
  left: var(--spaceOuter);
  bottom: var(--spaceOuter);
  z-index: 1024;
}
@media (max-width: 696px) {
  .navbar {
    --navbarNavFontSize: 1.375rem;
  }
}
@media (max-height: 696px), (max-width: 696px) {
  .navbar {
    bottom: auto;
  }
}
.navbar__logo {
  display: flex;
  position: relative;
  padding: var(--spaceS) var(--spaceS) var(--spaceL);
  z-index: 16;
}
.navbar__logo:focus {
  box-shadow: 0 0 0 4px rgb(var(--rgbBackground)), 0 0 0 8px rgb(var(--rgbText));
  outline: none;
}
.navbar__logo:active {
  box-shadow: none;
}
@media (max-width: 696px) {
  .navbar__logo {
    padding-bottom: var(--spaceS);
  }
}
.navbar__nav {
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  align-items: center;
  flex: 1 1 auto;
  max-width: var(--space2XL);
  position: relative;
  top: calc(var(--spaceM) * -1);
}
@media (max-height: 696px), (max-width: 696px) {
  .navbar__nav {
    display: none;
  }
}
.navbar__nav-list {
  transform: rotate(-90deg) translate3d(-50%, 0, 0);
  display: flex;
  flex-direction: row-reverse;
}
.navbar__nav-link {
  padding: var(--spaceM);
  color: rgb(var(--rgbText) / 0.8);
  font-weight: var(--fontWeightMedium);
  font-size: var(--navbarNavFontSize);
  text-decoration: none;
  position: relative;
  transition: color var(--durationS) ease 0.1s;
  line-height: 1;
}
.navbar__nav-link:active,
.navbar__nav-link:focus,
.navbar__nav-link:hover,
.navbar__nav-link[aria-current='page'] {
  color: var(--colorTextBody);
}
.navbar__nav-link:after {
  content: '';
  position: absolute;
  top: 50%;
  right: var(--spaceS);
  left: var(--spaceS);
  height: 4px;
  background: rgb(var(--rgbAccent));
  transform: scaleX(0) translateY(-2px);
  transform-origin: right;
}
@media (prefers-reduced-motion: no-preference) {
  .navbar__nav-link:after {
    transition: transform var(--durationM) var(--bezierFastoutSlowin);
  }
}
.navbar__nav-link:active:after,
.navbar__nav-link:focus:after,
.navbar__nav-link:hover:after,
.navbar__nav-link[aria-current='page']:after {
  transform: scaleX(1) translateY(-2px);
  transform-origin: left;
}
.navbar__nav-link:focus {
  box-shadow: 0 0 0 4px rgb(var(--rgbBackground)), 0 0 0 8px rgb(var(--rgbText));
  outline: none;
}
.navbar__nav-link:active {
  box-shadow: none;
}
.navbar__nav-icons {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  position: relative;
  z-index: 16;
}
@media (max-height: 696px), (max-width: 696px) {
  .navbar__nav-icons {
    flex-direction: row;
    position: absolute;
    bottom: var(--spaceXL);
    left: var(--spaceXL);
  }
}
@media (max-width: 820px) and (max-height: 420px) {
  .navbar__nav-icons {
    left: var(--spaceL);
    transform: none;
    flex-direction: column;
    align-items: center;
    justify-content: center;
  }
}
.navbar__nav-icon-link {
  display: flex;
  align-items: center;
  justify-content: center;
  padding: var(--spaceS);
  width: var(--space2XL);
  height: var(--space2XL);
  color: var(--colorTextLight);
  transition: color var(--durationM) var(--bezierFastoutSlowin);
}
.navbar__nav-icon-link:focus {
  box-shadow: 0 0 0 4px rgb(var(--rgbBackground)), 0 0 0 8px rgb(var(--rgbText));
  outline: none;
}
.navbar__nav-icon-link:active {
  box-shadow: none;
}
.navbar__nav-icon-link:active,
.navbar__nav-icon-link:focus,
.navbar__nav-icon-link:hover {
  color: rgb(var(--rgbAccent));
}
.navbar__nav-icon {
  fill: currentColor;
  transition: fill var(--durationM) ease;
}
.navbar__mobile-nav {
  position: fixed;
  inset: 0;
  background: rgb(var(--rgbBackground) / 0.9);
  transform: translate3d(0, -100%, 0);
  transition-property: background;
  transition-duration: var(--durationL);
  transition-timing-function: var(--bezierFastoutSlowin);
  display: none;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  backdrop-filter: blur(16px);
}
@media (max-height: 696px), (max-width: 696px) {
  .navbar__mobile-nav {
    display: flex;
  }
}
@media (prefers-reduced-motion: no-preference) {
  .navbar__mobile-nav {
    transition-property: transform, background;
    transform: translate3d(0, -100%, 0);
  }
}
.navbar__mobile-nav--entered {
  transform: translateZ(0);
}
.navbar__mobile-nav-link {
  width: 100%;
  font-size: var(--navbarNavFontSize);
  text-align: center;
  text-decoration: none;
  color: var(--colorTextBody);
  padding: var(--spaceL);
  opacity: 0;
  transition-property: opacity;
  transition-duration: var(--durationS);
  transition-timing-function: var(--bezierFastoutSlowin);
  position: relative;
  top: calc(var(--spaceM) * -1);
}
@media (prefers-reduced-motion: no-preference) {
  .navbar__mobile-nav-link {
    transition-property: transform, opacity;
    transform: translate3d(0, calc(var(--spaceXL) * -1), 0);
  }
}
@media (max-width: 820px) and (max-height: 420px) {
  .navbar__mobile-nav-link {
    top: auto;
  }
}
@media (max-height: 360px), (max-width: 400px) {
  .navbar__mobile-nav-link {
    --navbarNavFontSize: 1.125rem;
  }
}
.navbar__mobile-nav-link:after {
  content: '';
  position: absolute;
  top: 50%;
  right: var(--space3XL);
  left: var(--space3XL);
  height: 4px;
  background: rgb(var(--rgbAccent));
  transform: scaleX(0) translateY(-1px);
  transform-origin: right;
}
@media (prefers-reduced-motion: no-preference) {
  .navbar__mobile-nav-link:after {
    transition: transform var(--durationM) var(--bezierFastoutSlowin);
  }
}
.navbar__mobile-nav-link:active:after,
.navbar__mobile-nav-link:focus:after,
.navbar__mobile-nav-link:hover:after {
  transform: scaleX(1) translateY(-1px);
  transform-origin: left;
}
.navbar__mobile-nav-link:focus {
  box-shadow: 0 0 0 4px rgb(var(--rgbBackground)), 0 0 0 8px rgb(var(--rgbText));
  outline: none;
}
.navbar__mobile-nav-link:active {
  box-shadow: none;
}
.navbar__mobile-nav-link--entered {
  opacity: 1;
  transform: none;
}
/*# sourceMappingURL=main.91e9efe7.chunk.css.map */
