@font-face {
  font-family: "_Audiowide";
  src: url("../fonts/Audiowide-Regular.ttf") format("truetype");
}

/* --- */

*,
*::before,
*::after {
  margin: 0;
  padding: 0;

  box-sizing: border-box;
}

/* --- */

html {
  font-size: 16px;
}

body {
  font-family: sans-serif;
}

/* --- */

#container {
  height: 100vh;

  background-color: #222;
  background-image: repeating-linear-gradient(
    45deg,
    #2b2b2b 0%,
    #2b2b2b 10%,
    #222222 0%,
    #222222 50%
  );
  background-position: top left;
  background-size: 4vh 4vh;
  overflow: hidden;
  user-select: none;

  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;

  position: relative;
}

/* --- */

video {
  position: absolute;
  top: 50%;
  left: 50%;

  transform: translate(-50%, -50%);

  /* display: none; */
}

@media screen and (min-width: 1500px) {
  video {
    height: auto;
    width: 100vw;
  }
}

@media screen and (max-width: 1500px) {
  video {
    height: 100vh;
    width: auto;
  }
}

/* --- */

#info {
  height: 6vh;
  width: 6vh;

  color: white;
  font-size: 4vh;
  text-decoration: none;

  border: solid 0.1vh white;
  border-radius: 50%;
  opacity: 0.2;

  position: absolute;
  bottom: 5vh;
  left: 5vh;

  display: flex;
  justify-content: center;
  align-items: center;

  transition: opacity 300ms ease-in-out;
}

#info:hover {
  text-shadow: 0.1vh 0.1vh 0.1vh rgba(0, 0, 0, 0.8);

  background-color: dodgerblue;
  background-image: radial-gradient(
    rgba(255, 255, 255, 0.2),
    rgba(0, 0, 0, 0.5)
  );
  box-shadow: inset -0.3vh -0.3vh 0.5vh rgba(0, 0, 0, 0.9);
  opacity: 1;
}

/* --- */

#back {
  height: 6vh;
  width: 6vh;

  color: white;
  text-decoration: none;

  border: solid 0.1vh white;
  border-radius: 50%;
  opacity: 0.2;
  /* visibility: hidden; */

  position: absolute;
  bottom: 5vh;
  right: 5vh;

  display: flex;
  justify-content: center;
  align-items: center;

  transition: opacity 300ms ease-in-out;
}

#back:hover {
  text-shadow: 0.1vh 0.1vh 0.1vh rgba(0, 0, 0, 0.8);

  background-color: red;
  background-image: radial-gradient(
    rgba(255, 255, 255, 0.2),
    rgba(0, 0, 0, 0.5)
  );
  box-shadow: inset -0.3vh -0.3vh 0.5vh rgba(0, 0, 0, 0.9);
  opacity: 1;
}

#back i {
  font-size: 4vh;
}

/* --- */

.box-title {
  color: #8abcf1;
  font-family: "Audiowide", "_Audiowide", cursive;

  opacity: 0;

  position: absolute;
  top: 1vh;
  left: 2vh;

  display: flex;
  flex-direction: column;
  justify-content: space-evenly;

  transition: opacity 2s ease-in;
}

.box-title > h2 {
  font-size: 4vh;
}

.box-title > h3 {
  margin: 0 0 1vh 0;

  font-size: 3vh;
}

.box-title > h4 {
  font-size: 2vh;
}

/* --- */

.box-challenge {
  opacity: 0;

  position: absolute;
  top: 1vh;
  right: 1vh;

  display: flex;
  justify-content: center;
  align-items: center;

  transition: opacity 2s ease-in;
}

.box-challenge > label {
  margin: 1vh;

  color: #8abcf1;
  font-family: "Audiowide", "_Audiowide", cursive;
  font-size: 4vh;
}

.box-challenge > input {
  width: 12vw;

  margin: 1vh;

  color: white;
  font-family: "Audiowide", "_Audiowide", cursive;
  font-size: 4vh;
  text-align: center;

  background-color: transparent;
  border: solid 0.1vh #ccc;
  border-radius: 1vh;
}

/* --- */

.box-body {
  height: 60%;
  width: 80%;

  padding: 3vh;

  text-align: center;
  text-shadow: 1vh 1vh 1vh rgba(0, 0, 0, 0.8);

  background-color: rgba(255, 255, 255, 0.2);
  border-radius: 1vh;
  opacity: 0;

  z-index: 1;

  display: flex;
  flex-direction: column;
  justify-content: space-between;

  transition: opacity 2s ease-in;
}

/* --- */

.box-message {
  color: orange;
  font-family: "Audiowide", "_Audiowide", cursive;
  font-size: 6vh;
  line-height: 1.8;
}

.box-message strong {
  color: orangered;
}

/* --- */

.box-input {
  width: 100%;

  display: flex;
  flex-direction: column;
  justify-content: center;
  justify-content: center;
  align-items: center;
}

.box-input > .title {
  margin: 0 0 4vh;

  color: #8abcf1;
  font-family: "Audiowide", "_Audiowide", cursive;
  font-size: 8vh;
}

.box-input > .control {
  display: flex;
  justify-content: center;
  align-items: center;
}

/* --- */

.box-input > .control > i {
  color: #8abcf1;
  font-size: 10vh;

  cursor: pointer;

  transition: color 500ms;
}

.box-input > .control > i:first-of-type:hover {
  color: gold;
}

.box-input > .control > i:last-of-type:hover {
  color: chartreuse;
}

/* --- */

.box-input > .control > input {
  width: 45vh;

  margin: 0 5vh;

  color: white;
  font-family: "Audiowide", "_Audiowide", cursive;
  font-size: 10vh;
  text-align: center;

  background-color: transparent;
  border: solid 0.1vh #ccc;
}

