* {
  overflow: hidden;
}
@font-face {
  font-family: "play";
  src: url(./fonts/play.ttf);
}
@font-face {
  font-family: "basic";
  src: url(./fonts/basic.ttf);
}
@font-face {
  font-family: "game";
  src: url(./fonts/Boldonse-Regular.ttf);
}

body {
  height: 100dvh;
  overflow: hidden;
  color: white;
  background-blend-mode: multiply;
  background: radial-gradient(
      circle at 8% 5%,
      rgba(225, 240, 240, 0.8),
      rgba(200, 225, 225, 0.8),
      rgba(70, 120, 120, 0.8),
      transparent
    ),
    radial-gradient(
      circle at 70% 90%,
      rgba(225, 240, 240, 0.8),
      rgba(200, 225, 225, 0.8),
      rgba(60, 110, 110, 0.8),
      transparent
    ),
    linear-gradient(
      122deg,
      rgba(100, 170, 170, 0.8),
      rgba(200, 225, 225, 0.8),
      rgba(180, 210, 210, 0.8),
      rgba(160, 190, 190, 0.8),
      rgba(140, 170, 170, 0.8),
      rgba(120, 150, 150, 0.8)
    );
  font-family: "Dangrek", serif;
}
header {
  position: relative;
  height: 15%;

  .title {
    span {
      color: #fdeccc;
      font-family: "play";
      font-style: italic;
      font-size: 3rem;
    }
  }

  .controls {
    font-size: 1.8rem;
    span {
      font-size: 1.6rem;
      color: #fdeccc;
    }
  }
}

main {
  height: 85%;
  position: relative;
}
.boxes-con {
  width: calc(16.6% * var(--boxes-number));
  height: 35%;
  margin: 0 auto;
  padding: 0 !important;
}
.box {
  position: absolute;
  width: calc(95% / var(--boxes-number));
  margin-inline: 2%;
  height: 100%;
  padding: 2%;
  background-size: 90% 90%;
  background-repeat: no-repeat;
  background-position: center;
  border-radius: 25%;
  cursor: pointer;
  transform: translateX(var(--position));
  transition: all calc(var(--duration) * 1ms) ease;
}

.target-boxes {
  width: 70%;
  height: 25%;
  padding-bottom: 4rem;
  background-color: #6fc2d6;
  border-radius: 10px;
}
.cop {
  margin-left: 10%;
}
.target-box,
.cop {
  width: calc(70% / 7);
  height: 90%;
  background-size: 90% 90%;
  background-repeat: no-repeat;
  background-position: center;
  border-radius: 25%;
  cursor: pointer;
}
.target-boxes .hint-text {
  text-align: center;
  color: #ffffff;
  font-size: 1.5rem;
}
.target-boxes .hint-text div:first-child {
  color: #000836;
  font-style: italic;
}
.hints {
  height: 30%;
  background-color: #e4e4e4;
  border-radius: 15px;
}
.hint-con {
  width: 100%;
  height: 100%;
  display: flex;
  justify-content: space-around;
  align-items: center;
  position: absolute;
  opacity: 0;
}
.hint-con > div {
  display: flex;
  justify-content: center;
  align-items: center;
}
.hint-con img {
  width: 150px;
  aspect-ratio: 1;
  border-radius: 15px;
  overflow: hidden !important;
}
.hint-con p {
  font-size: 1.5rem;
  color: #383838;
  font-style: italic;
  margin-left: 5%;
  line-height: 3rem;
}

.show-hint {
  opacity: 1;
  z-index: 100;
}
.show-description,
.sound-controller {
  position: absolute;
  right: 2%;
  top: 5%;
  color: gray;
  font-size: 1.5rem;
  cursor: pointer;
  z-index: 300;
}
.sound-controller {
  top: 25%;
  right: 1.7%;
}
.call-cop {
  position: absolute;
  left: 25%;
  bottom: 5%;
  background-color: navy;
  color: #ffb700;
  font-size: 1.1rem;
  border-radius: 10px;
}
.call-cop:hover {
  color: #ffc73a;
}
.officer-time {
  position: absolute;
  left: 50%;
  bottom: 5%;
  color: #868686;
  font-size: 1.3rem;
}

.step-back,
.reset-state {
  right: 5%;
  bottom: 5%;
  z-index: 1000;
  background-color: #fff;
  border: 1px solid gray;
}
.reset-state {
  right: 15%;
}
.cop-character {
  position: absolute;
  right: -8%;
  top: 7%;
  width: 8%;
  transition: 1s;
  img {
    width: 100%;
    border-radius: 10px;
  }
}
.cop-in {
  right: 3%;
}
/* Modals */
.modal-con {
  z-index: 3000;
  background-color: #000000;
}
.intro {
  color: #fff;
  .sec-one {
    font-size: 2rem;
    font-style: italic;
  }
  .sec-two {
    opacity: 0;
    animation: show-text 1s ease-in forwards;
    .intro-title {
      width: 100%;
      text-align: center;
      font-size: 4rem;
      font-style: italic;
      font-family: "play";
    }
    .start-btn {
      color: #9e9e9e;
      animation: show-title 1s 1s linear forwards;
      background-color: transparent;
      margin-bottom: 10rem;
      font-family: "game";
    }
    .start-btn span {
      font-size: 2rem;
    }
    .letters-fall-two {
      animation: letters-fall 1s linear forwards;
      animation-delay: calc(0.4s * var(--t));
    }
  }
  .sec-three {
    opacity: 0;
    filter: blur(5px);
    animation: show-text 1s ease-in forwards;
    font-size: 2rem;
    padding-bottom: 5rem;
    font-family: "basic";
  }
}
.description-con,
.next-level-con {
  .description,
  .next-level {
    width: 60%;
    background-color: #000;
    color: #ffffff;
    border-radius: 15px;
    border: 5px solid #607d8b;
  }
  .description {
    height: 85%;
  }
  .slider-con {
    width: 100%;
    overflow: hidden;
    .fa-angle-left,
    .fa-angle-right {
      position: absolute;
      top: 50%;
      translate: 0 -50%;
      font-size: 1.5rem;
      cursor: pointer;
    }
    .fa-angle-left {
      left: 0;
    }
    .fa-angle-right {
      right: 0;
    }
    .slide {
      opacity: 0;
      transition: 0.5s;
      display: flex;
      flex-direction: column;
      justify-content: space-around;
      align-items: center;
    }

    .active {
      opacity: 1;
    }
  }
  .slider-con,
  .next-level {
    img {
      border-radius: 10px;
    }
    p {
      padding: 0 5%;
      font-size: 1.5rem;
    }
  }
  .new-member {
    font-style: italic;
  }
  .gotit-btn,
  .ok-btn {
    font-size: 1.2rem;
    width: 15%;
    background-color: #c5c5c5;
  }
  .slider-categories {
    .category {
      cursor: pointer;
    }
  }
  .active-category-title {
    color: #ffb600;
  }
}

@keyframes letters-fall {
  to {
    translate: 0 100%;
    filter: blur(6px);
    opacity: 0;
  }
}

@keyframes show-text {
  to {
    opacity: 1;
    filter: blur(0);
  }
}

@media (max-width: 767px) {
  header {
    height: 20% !important;
    .title {
      span {
        font-size: 2.4rem !important;
      }
    }
    .controls {
      font-size: 1.1rem !important;
      span {
        font-size: 1rem !important;
      }
    }
  }
  main {
    height: 80% !important;
  }
  .sec-one {
    font-size: 1.2rem !important;
    width: 85% !important;
    margin: auto;
    margin-top: 5rem !important;
  }
  .sec-two {
    .intro-title {
      margin-bottom: 4rem !important;
      font-size: 3rem !important;
    }
    button {
      margin-bottom: 0 !important;
      span {
        font-size: 1.5rem !important;
      }
    }
  }
  .sec-three {
    width: 90% !important;
    font-size: 1.1rem !important;
    margin: auto;
  }
  .description {
    padding: 3rem 0.5rem !important;
    width: 95% !important;
    p {
      margin-top: 1rem !important;
      font-size: 1rem !important;
    }
    .slide {
      height: 95%;
      img {
        margin-bottom: 0 !important;
      }
    }
    .btn {
      width: 40% !important;
    }
  }
  .next-level {
    width: 95% !important;
    .member-image {
      width: 40% !important;
    }
    .char-description {
      font-size: 1rem !important;
    }
    button {
      width: 40% !important;
    }
  }
  .boxes-con {
    .box {
      height: 60% !important;
      top: 25% !important;
    }
  }

  .target-boxes {
    padding-top: 1rem !important;
    width: 95% !important;
    > div {
      font-size: 1rem !important;
    }
    > div:last-child {
      margin-top: 2% !important;
    }
  }
  .hints {
    .hint-con {
      padding: 1rem !important;
    }
    p {
      font-size: 0.8rem !important;
      line-height: unset !important;
    }
    .btn {
      font-size: 0.8rem !important;
      bottom: 2% !important;
      padding: 0.2rem 0.5rem !important;
      right: 1rem !important;
    }
    .reset-state {
      right: 6rem !important;
    }
    .show-description,
    .sound-controller {
      font-size: 0.8rem !important;
    }
    .sound-controller {
      top: 18% !important;
    }
    .call-cop {
      left: 2% !important;
      width: 30% !important;
    }
    .officer-time {
      font-size: 0.7rem !important;
      left: 7% !important;
      bottom: 18% !important;
    }
  }
  .boxes-con::after {
    content: "";
    width: 17%;
    height: 10%;
    position: fixed;
    top: 18%;
    left: 0%;
    z-index: -100;
    background: url("./images/window.png");
    background-size: 100% 100%;
  }
}
@media (min-width: 1400px) {
  .boxes-con::after {
    content: "";
    width: 9%;
    height: 22%;
    position: fixed;
    top: 10%;
    left: 3%;
    z-index: -100;
    background: url("./images/window.png");
    background-size: 100% 100%;
  }
}

@media (min-width: 500px) and (max-width: 767px) {
  .characters-category {
    img {
      width: 20% !important;
    }
  }
  .controls-category {
    img {
      width: 60% !important;
    }
  }
  .next-level {
    width: 70% !important;
    .member-image {
      width: 30% !important;
    }
    .char-description {
      font-size: 1.3rem !important;
    }
  }
  .boxes-con::after {
    content: "";
    width: 13%;
    height: 15%;
    position: fixed;
    top: 10%;
    left: 2%;
    z-index: -100;
    background: url("./images/window.png");
    background-size: 100% 100%;
  }
}
