body {
  font-family: "Montserrat", sans-serif;

  background-color: #290f3e;

  color: #fff;

  margin: 0;

  min-height: 100vh;

  display: flex;
}

.main-container {
  display: flex;
  width: 100%;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  padding-top: 20px;
  padding-bottom: 20px;
  text-align: center;
  background: url(assets/mobile_background.png) no-repeat center bottom;
}

.logo {
  width: 138px;

  height: auto;

  z-index: 2;
}

span.highlight {
  font-weight: 900;

  color: #ffcc00;
}

h1 {
  font-size: 2.063em;

  margin-bottom: 0px;

  font-weight: 300;

  color: #fff;

  line-height: 1;

  z-index: 2;
}

.mobile-characters {
  margin: -300px 0 -260px;
  width: 100%;
}

.characters {
  display: none;
}

.spacer {
  min-height: 260px;

  z-index: 2;
}

.reward {
  font-size: 1.5em;

  font-weight: 700;

  text-align: center;

  margin-bottom: 20px;

  z-index: 2;
}

a.btn {
  display: flex;

  align-items: center;

  justify-content: center;

  background: linear-gradient(to bottom, #f7e43d, #ec9e30);

  height: 55px;

  width: 238px;

  border-radius: 30px;

  font-size: 1.5em;

  font-weight: 600;

  text-decoration: none;

  color: #221c44;

  cursor: pointer;

  z-index: 2;
}

.disclaimer {
  font-size: 0.75em;

  text-align: center;

  font-weight: 500;

  display: flex;

  flex-direction: column;

  row-gap: 5px;

  margin-top: 20px;

  z-index: 2;
}

.disclaimer a {
  color: #fff;

  text-decoration: none;
}

.gradient {
  display: none;
}

@media (min-width: 600px) {
  .main-container {
    width: 100%;

    background: url("assets/background_with_fade.png") no-repeat center -200px;

    z-index: 1;
    padding-top: 0px;
    padding-bottom: 0px;
  }

  .mobile-characters {
    display: none;
  }

  .characters {
    display: block;
    width: 100%;
    max-width: 800px;
    margin-top: -50px;
    margin-bottom: -150px;
    z-index: -1;
  }

  .reward {
    position: relative;
  }

  .reward:after {
    content: "";
    position: absolute;
    left: -5%;
    right: 0;
    top: -50px;
    width: 110%;
    height: 200px;
    background: url("assets/reward_fade.png") no-repeat center center / 100%;
    z-index: -1;
    opacity: .8;
  }

  .disclaimer {
    flex-direction: row;
  }

  .gradient {
    display: block;

    position: absolute;

    bottom: 0px;

    left: 0;

    width: 100%;

    height: 400px;

    background: linear-gradient(to bottom, #290f3e00, #290f3e 30%);

    z-index: 1;
  }
}

@media screen and (min-width: 768px) {
  h1 {
    font-size: 2.5em;

    margin-bottom: 10px;
  }

  .reward {
    font-size: 1.8em;

    margin-bottom: 20px;
  }

  .characters {
    max-width: 1000px;

    margin-top: -120px;

    margin-bottom: -250px;
  }
}

@media screen and (min-width: 800px) {
  .main-container {
    background-position: center -130px;
  }
}

@media screen and (min-width: 1024px) {
  .main-container {
    background-position: center -130px;
  }
}

@media screen and (min-width: 1024px) and (min-height: 1300px) {
  .main-container {
    background-position: center -70px;
    background-size: cover;
  }
}

@media screen and (min-width: 1100px) {
  .main-container {
    background-position: center -118px;
  }

  h1 {
    font-size: 3.5em;
    margin-top: 10px;
  }

  .reward {
    font-size: 2.0em;
  }

  .characters {
    max-width: 900px;

    margin-top: -150px;

    margin-bottom: -310px;
  }
}

@media screen and (min-width: 1366px) {
  .main-container {
    background-position: center top;
    background-size: 100%;
  }

  .logo {
    width: 200px;

    height: auto;
  }

  h1 {
    font-size: 3.8em;

    margin-bottom: 10px;
  }

  .reward {
    font-size: 2.2em;

    margin-bottom: 20px;
  }

  .reward:after {
    top: -40px;
    height: 170px;
    background-size: 135% 120%;
  }

  a.btn {
    font-size: 1.8em;
  }

  .disclaimer {
    font-size: 0.9em;
  }
}