body {
  margin: 0;
  color: var(--black);
  background-color: var(--white);
  transition: color 300ms, background-color 300ms;
}

.pre-hero {
  font-family: "DM Sans", sans-serif;
  font-weight: 600;
  padding: 40px 20px 40px 20px;
  display: inline-block;

  a {
    transition: font-weight 300ms;
    margin-left: 25px;
    color: inherit;
    text-decoration: none;
    border-bottom: 1px solid var(--black);
  }

  img {
    transform: rotate(180deg) translateX(-20%);
    transition: transform 300ms;
  }
}

.pre-hero:hover {
  cursor: pointer;
}

.pre-hero:hover a {
  font-weight: 200;
}

.pre-hero:hover img {
  transform: rotate(180deg);
}

#hero {
  width: 100vw;
  display: block;
  position: relative;

  .step {
    opacity: 0.5;
    transition: opacity 300ms;
  }

  #hero-text {
    position: relative;
    font-family: "DM Sans", sans-serif;
    z-index: 1;
    margin-block-start: 0;
    margin-block-end: 0;
    word-wrap: break-word;
    padding: 2vw;
    display: inline-block;
  }

  h1, h2 {
    font-size: 12vw;
    margin-block-start: 0;
    margin-block-end: 0;
  }

  h3 {
    font-size: 8vw;
    margin-block-start: 0;
    margin-block-end: 0;
  }

  .replaceLogo {
    float: right;
    right: 20px;
    top: 20px;
    width: 30vw;
    z-index: 10;
    position: sticky;
  }
}

.step {
  opacity: 0.5;
  transition: opacity 300ms;
}

.highlight, #acknowledgements {
  padding: 10vw;
  font-family: "DM Sans", sans-serif;

  h2, h3 {
    font-size: 5vw;
  }

  p {
    font-size: clamp(14pt, 3vw, 24vw);
    line-height: 1.7;
  }

  a, a:visited {
    text-decoration: none;
    border-bottom: 4px solid;
    color: inherit;
    opacity: 1;
    transition: opacity 300ms, border-bottom 300ms;
  }

  a:hover {
    opacity: 0.7;
    border-bottom: 1px solid;
  }
}

#memorableMoments {
  padding: 5vw;
  font-family: "DM Sans", sans-serif;

  h2, h3 {
    font-size: 5vw;
  }

  #carousel {
    display: flex;
    justify-content: space-evenly;
    align-items: flex-end;

    p {
      font-size: clamp(14pt, 3vw, 20pt);
      line-height: 1.7;
      display: inline-block;
      @media only screen and (max-width: 800px) {
        width: 90vw;
        height: auto;
      }
      @media only screen and (min-width: 800px) {
        width: 40vw;
        height: fit-content;
      }
    }

    @media only screen and (max-width: 800px) {
      flex-direction: column;
      div iframe {
        width: 90vw;
        height: 49vw;
        margin-bottom: 4vh;
      }

      div {
        border-bottom: 2px solid black;
        max-height: 80vh;
        width: 100%;
      }
    }
    @media only screen and (min-width: 800px) {
      div iframe {
        width: 40vw;
        height: 22vw;
      }

      div {
        width: 40vw;
        height: 100%;
        display: flex;
        flex-direction: column;
        justify-content: flex-end;
      }

      flex-direction: row;
    }
  }
}

#articleWall {
  #articleBlock div {
    font-size: clamp(18pt, 4vw, 32pt);
    line-height: 1.7;
    display: inline;
    padding: 2vw;
  }

  #articleBlock div:nth-child(4n) {
    color: var(--4-primary);
  }

  #articleBlock div:nth-child(4n+1) {
    color: var(--5-primary);
  }

  #articleBlock div:nth-child(4n+2) {
    color: var(--6-primary);
  }

  #articleBlock div:nth-child(4n+3) {
    color: var(--7-primary);
  }

  padding: 5vw;
  font-family: "DM Sans", sans-serif;

  h2, h3 {
    font-size: 5vw;
  }

  h6 {
    font-size: clamp(14pt, 2vw, 2vw);
    font-weight: normal;
  }
}

#acknowledgements {
  h4 {
    font-size: clamp(24pt, 5vw, 5vw);
    margin-block-start: 2em;
    margin-block-end: 0;
  }

  p {
    margin-block-start: 0;
    margin-block-end: 0;
  }

  h6 {
    font-size: clamp(14pt, 2vw, 2vw);
    font-weight: normal;
  }
}

#stats {
  h2 {
    font-size: 15vw;
    font-variant: small-caps;
    font-weight: 200;
    text-transform: lowercase;
    text-align: center;
    transition: font-weight 500ms;
  }
}

#thankyou {
  padding: 10vw;
  font-family: "DM Sans", sans-serif;

  h3 {
    font-size: 5vw;
  }

  p {
    font-size: clamp(14pt, 3vw, 3vw);
    font-weight: normal;
  }
}

#archive {
  font-family: "DM Sans", sans-serif;
  padding: 3vw;

  #archive-title {
    font-size: 5vw;
    margin-block-start: 0;
    margin-block-end: 0;
    margin-bottom: 1em;
  }
}

#archive-container {
  display: grid;
  gap: 10px;

  @media only screen and (max-width: 500px) {
    grid-template-columns: repeat(auto-fit, 90vw);
  }

  @media only screen and (min-width: 500px) {
    grid-template-columns: repeat(auto-fit, minmax(400px, 1fr));
  }

  .issue-box {
    padding: 2vw;
    min-width: 150px;
    transition: opacity 300ms, background-color 300ms, box-shadow 300ms;
  }

  h4 {
    margin-block-start: 0;
    margin-block-end: 0;
    border-bottom: 1px solid;
  }

  h5 {
    margin-block-start: 1em;
    margin-block-end: 1em;
  }

  .articles div {
    padding: 4px;
  }

  .issue-box:nth-child(1) {
    color: var(--4-primary)
  }

  .issue-box:hover {
    opacity: 0.9;
    cursor: pointer;
    background-color: white;
    box-shadow: 0 1px 10px -6px rgba(31, 31, 31, 0.37);
  }
}
