body {
  background-color: $site-bg;
  font-family: $inter;
  color: $copy-color;
  margin: 0;
  padding: 0;
}

.maxw {
  max-width: 1000px;
  margin: 0 auto;
}

a,
a:visited {
  color: $teal11;
}

p {
  line-height: 1.6;
  margin: 5px 0;
  margin-bottom: 1em;
}

.site-nav {
  background-color: $gray2;
  border-bottom: 2px solid $teal7;
  display: flex;
  align-items: stretch;
  padding: 0 1em;

  .appname {
    display: flex;
    gap: 5px;
    font-size: 20px;
    align-items: center;
    font-family: $inter;
    font-weight: 300;
  }

  nav {
    display: flex;
    flex: 1;
    justify-content: flex-end;
    align-items: stretch;
    & > a {
      color: $teal12;
      display: flex;
      align-items: center;
      padding: 5px 14px;
      text-decoration: none;
      transition: all 60ms;
      &.current {
        background: $gray1;
        pointer-events: none;
      }
      &:not(.current) {
        &:hover {
          background: $gray3;
          box-shadow: inset 0 -2px $teal9;
        }
      }
    }
  }

  @media only screen and (max-width: $mobile) {
    flex-direction: column;
    padding: 10px 0;
    nav {
      flex-direction: column;
    }
  }
}

a.appname {
  padding: 10px;
  text-decoration: none;
  color: white;
}

.container {
  max-width: 960px;
  width: 100%;
  margin: 0 auto;
}

.hidden {
  display: none;
}

html,
body,
.content {
  min-height: 100vh;
}

.content {
  display: flex;
  flex-direction: column;
}

h1,
h2,
h3,
h4,
h5,
h6 {
  position: relative;
}
a.heading-anchor {
  text-decoration: none;
  position: absolute;
  left: -0.9em;
  font-weight: normal;
  font-size: 0.9em;
  top: 0.1em;
  color: $gray8;
  &:hover {
    color: $teal9;
  }
}

figure {
  margin: 0;
}

.lightbox {
  display: none;
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  z-index: 999;
  width: 100vw;
  height: 100vh;
  background: rgba(0, 0, 0, 0.8);
  img {
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    margin: auto;
    max-width: 100%;
    max-height: 90vh;
  }
  &:target {
    outline: none;
    display: block;
  }
  &:hover {
    background: rgba(0, 0, 0, 0.8);
  }
}

.site-footer {
  padding: 20pt;
  background-color: $gray3;
  font-size: 11pt;
  color: $gray11;
  .maxw {
    display: grid;
    gap: 0.5rem;
  }
}
