body {
  height: 100vh;
  overflow: hidden;
  margin: 0;
  background-color: black;
  color: white;
}

@media only screen and (min-width: 1160px) {
  /* TODO: vertically center */
  .title-container {
    text-align: center;
    margin: 0 10px;

    .title {
      font-size: 128px;
    }
  }
  .subtitle-container {
    .subtitle {
      font-size: 32px;
    }
    .subtitle-a {
      display: flex;
      flex-direction: row;
      justify-content: center;
      align-items: flex-end;

      .icon {
        height: 108px;
      }
    }
    .subtitle-b {
      text-align: center;
      margin: 0 20%;
      
      .subtitle {
        margin-top: -20px;
      }
    }
  }
  .footer {
    font-size: 12px;
    position: absolute;
    bottom: 0;
    right: 0;
    margin-right: 12px;
    margin-bottom: 4px;
  }
}

@media only screen and (max-width: 1160px) and (min-width: 600px) {
  .container {
    height: 100vh;
    overflow: scroll;
    scroll-snap-type: y mandatory;
  }
  .snap {
    scroll-snap-align: start;
    height: 100vh;
  }
  .title-container {
    display: flex;
    justify-content: center;
    align-items: center;
    text-align: center;
    margin: 0 50px;

    .title {
      font-size: 128px;
    }
  }
  .subtitle-container {
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    text-align: center;
    padding: 20px;

    .subtitle {
      font-size: 32px;
    }
    .subtitle-a {
      display: flex;
      flex-direction: row;
      justify-content: center;
      align-items: flex-end;

      .icon {
        height: 108px;
      }
    }
    .subtitle-b {
      text-align: center;
      margin: 0 20%;
      
      .subtitle {
        margin-top: -20px;
      }
    }
  }
  .footer {
    font-size: 12px;
    position: absolute;
    bottom: 0;
    right: 0;
    margin-right: 12px;
    margin-bottom: 4px;
  }
}

@media only screen and (max-width: 600px) {
  .container {
    height: 100vh;
    overflow: scroll;
    scroll-snap-type: y mandatory;
  }
  .snap {
    scroll-snap-align: start;
    height: 100vh;
  }
  .title-container {
    display: flex;
    justify-content: center;
    align-items: center;
    text-align: center;
    margin: 0 35px;

    .title {
      font-size: 64px;
    }
  }
  .subtitle-container {
    display: flex;
    flex-direction: column;
    justify-content: flex-start;
    align-items: center;
    text-align: center;
    padding: 20px;
    padding-top: 15vh;

    .subtitle {
      font-size: 24px;
    }
    .subtitle-a {
      display: flex;
      flex-direction: row;
      justify-content: center;
      align-items: flex-end;
      margin-left: 24px;

      .subtitle {
        font-size: 58px;
      }
      .icon {
        height: 184px;
      }
    }
  }
  .description-container {
    display: flex;
    justify-content: center;
    padding: 25px;
    padding-top: 12vh;

    .description {
      max-width: 800px;
      font-size: 24px;
    }
  }
  .footer {
    scroll-snap-align: end;
    font-size: 12px;
    margin-left: 8px;
    margin-bottom: 4px;
  }
}
