@font-face {
  font-family: "VestiSansBold";
  src: url("./fonts/VestiSans-Bold.otf");
  font-weight: 400;
}

@font-face {
  font-family: "VestiSansReg";
  src: url("./fonts/VestiSans-Regular.otf");
  font-weight: 400;
}

@font-face {
  font-family: "VestiSansLight";
  src: url("./fonts/VestiSans-Light.otf");
  font-weight: 400;
}

html,
body,
#app {
  margin: 0;
  padding: 0;
  width: 100%;
  height: 100%;
}

.banner {
  position: relative;
  width: 100%;
  height: 100%;
  background: #000080;
  background: linear-gradient(
    90deg,
    rgba(0, 0, 128, 1) 40%,
    rgba(0, 0, 255, 1) 100%
  );
  overflow: hidden;
  font-size: calc(100vw * 0.012);
  &::after {
    content: "";
    width: 80%;
    aspect-ratio: 1/1;
    position: absolute;
    top: -5%;
    left: -15%;
    background: radial-gradient(
      circle,
      rgba(0, 0, 255, 1) 0%,
      rgba(255, 255, 255, 0) 70%
    );
  }
}

.banner__content {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  color: #fff;
  display: flex;
  flex-direction: column;
  z-index: 2;
}

.banner__content__title {
  margin: 0;
  padding: 0.33em 0 0 0;
  font-family: "VestiSansBold", serif;
  font-size: 20em;
}
.banner__content__info {
  position: absolute;
  bottom: 27%;
  right: 28%;
  color: #fff;
  padding: 0 0 0.3em 0;
  font-family: "VestiSansReg", serif;
  align-self: flex-end;
  border-left: 0.1em solid #fff;
  font-size: 2.8em;
  z-index: 5;
  & p {
    margin: 0 0 0 0.5em;
    padding: 0;
  }
}

.banner__effects {
  position: relative;
  width: 100%;
  height: 100%;
}

.element-parent {
  width: 12.5%;
  position: absolute;
  height: 100%;
  z-index: 2;
  & .child {
    position: relative;
    width: 100%;
    height: 100%;
    &::before,
    &::after {
      width: 100%;
      position: absolute;
      content: "";
      display: block;
      left: 0;
    }
    &::before {
      top: 0;
      height: 55%;
    }
    &::after {
      top: 55%;
      height: 45%;
    }
  }
}

.part1 {
  & .child {
    overflow: hidden;
    &::before {
      width: 100%;
      background: #0000a3;
      background: linear-gradient(
        180deg,
        rgba(0, 0, 163, 1) 0%,
        rgba(0, 0, 163, 1) 35%,
        rgba(0, 0, 231, 1) 100%
      );
    }
    &::after {
      width: 50%;
      background: #0000a3;
      background: linear-gradient(
        180deg,
        rgba(0, 0, 163, 1) 7%,
        rgba(0, 0, 231, 1) 100%
      );
      animation: moveRightToLeft 5s ease-in-out infinite;
    }
  }
}

@keyframes moveRightToLeft {
  0% {
    left: 100%;
  }
  25% {
    left: 20%;
  }
  75% {
    left: 80%;
    opacity: 1;
  }
  100% {
    left: 0;
    opacity: 0;
  }
}

.part2 {
  & .child {
    overflow: hidden;
    &::before {
      background: #0000a3;
      background: linear-gradient(
        90deg,
        rgba(0, 0, 163, 0) 0%,
        rgba(216, 0, 58, 0.21) 96%,
        rgba(216, 0, 58, 1) 96%,
        rgba(216, 0, 58, 1) 100%
      );
      animation: moveUpAndToRight 7s ease-in-out infinite;
    }
  }
}

@keyframes moveUpAndToRight {
  0% {
    top: -55%;
    left: -97%;
  }
  30% {
    top: 0%;
    left: -97%;
  }
  100% {
    top: 0%;
    left: 100%;
  }
}

.part3 {
  & .child {
    &::before {
      width: 10%;
      left: 0;
      background-color: red;
    }
    &::after {
      top: 0;
      width: 30%;
      height: 55%;
      left: 10%;
      opacity: 0;
      background: #fff;
      background: linear-gradient(
        180deg,
        rgba(255, 255, 255, 0) 50%,
        rgba(255, 255, 255, 0.36) 100%
      );
      backdrop-filter: blur(1.6rem);
      animation: moveLargeBlurEffect 10s linear 10s infinite;
    }
  }
}

@keyframes moveLargeBlurEffect {
  0% {
    left: 0%;
    opacity: 0;
  }
  10% {
    opacity: 1;
  }
  90% {
    opacity: 1;
  }
  100% {
    left: 200%;
  }
}

.part4 {
  & .child {
    &::before {
      height: 100%;
      width: 15%;
      opacity: 0;
      backdrop-filter: blur(1.6rem);
      animation: moveBlurEffect 40s linear infinite;
    }
  }
}
.part5 {
  & .child {
    &::after {
      top: 55%;
      width: 30%;
      height: 45%;
      left: 10%;
      opacity: 0;
      background: #fff;
      background: linear-gradient(
        0deg,
        rgba(255, 255, 255, 0) 50%,
        rgba(255, 255, 255, 0.36) 100%
      );
      backdrop-filter: blur(1.6rem);
      animation: moveLarge4BlurEffect 10s linear 2s infinite;
    }
  }
}
.part6 {
  & .child {
    &::before {
      height: 100%;
      width: 15%;
      opacity: 0;
      backdrop-filter: blur(1.6rem);
      animation: moveBlurEffectRevers 40s linear 5s infinite;
    }
    &::after {
      top: 55%;
      width: 30%;
      height: 45%;
      left: 10%;
      opacity: 0;
      background: #fff;
      background: linear-gradient(
        0deg,
        rgba(255, 255, 255, 0) 50%,
        rgba(255, 255, 255, 0.36) 100%
      );
      backdrop-filter: blur(1.6rem);
      animation: moveLarge3BlurEffect 10s linear infinite;
    }
  }
}

@keyframes moveLarge4BlurEffect {
  0% {
    left: -100%;
    opacity: 0;
  }
  10% {
    opacity: 1;
  }
  90% {
    opacity: 1;
  }
  100% {
    left: 0%;
  }
}

@keyframes moveLarge3BlurEffect {
  0% {
    left: 50%;
    opacity: 0;
  }
  10% {
    opacity: 1;
  }
  90% {
    opacity: 1;
  }
  100% {
    left: -50%;
  }
}

@keyframes moveBlurEffect {
  0% {
    left: -100%;
    opacity: 0;
  }
  10% {
    opacity: 1;
  }
  50% {
    left: 150%;
  }
  90% {
    opacity: 1;
  }
  100% {
    left: -100%;
  }
}

@keyframes moveBlurEffectRevers {
  0% {
    left: 100%;
    opacity: 0;
  }
  10% {
    opacity: 1;
  }
  50% {
    left: -150%;
  }
  90% {
    opacity: 1;
  }
  100% {
    left: 100%;
  }
}

.part7 {
  & .child {
    overflow: hidden;
    &::after {
      background: #fff;
      background: linear-gradient(
        90deg,
        rgba(255, 255, 255, 0) 60%,
        rgba(216, 0, 58, 1) 100%
      );
      animation: sideToSide 8s ease-in-out infinite;
    }
  }
}

@keyframes sideToSide {
  0% {
    left: -100%;
    background: linear-gradient(
      90deg,
      rgba(255, 255, 255, 0) 60%,
      rgba(216, 0, 58, 1) 100%
    );
  }
  49% {
    left: 100%;
    background: linear-gradient(
      90deg,
      rgba(255, 255, 255, 0) 60%,
      rgba(216, 0, 58, 1) 100%
    );
  }
  50% {
    left: 100%;
    background: linear-gradient(
      90deg,
      rgba(216, 0, 58, 1) 0%,
      rgba(255, 255, 255, 0) 40%
    );
  }
  100% {
    background: linear-gradient(
      90deg,
      rgba(216, 0, 58, 1) 0%,
      rgba(255, 255, 255, 0) 40%
    );
    left: -100%;
  }
}

.part8 {
  & .child {
    &::before {
      transform: translate(-50%);
      width: 0;
      opacity: 0;
      background: #d8003a;
      animation: resizeAndMove 5s ease-in-out infinite;
    }
    &::after {
      top: 0;
      width: 30%;
      height: 100%;
      left: 10%;
      opacity: 0;
      background: #fff;
      background: linear-gradient(
        180deg,
        rgba(255, 255, 255, 0) 50%,
        rgba(255, 255, 255, 0.36) 100%
      );
      backdrop-filter: blur(1.6rem);
      animation: moveLarge2BlurEffect 15s linear infinite;
    }
  }
}

@keyframes moveLarge2BlurEffect {
  0% {
    left: -300%;
    opacity: 0;
  }
  10% {
    opacity: 1;
  }
  90% {
    opacity: 1;
  }
  100% {
    opacity: 0;
    left: -100%;
  }
}

@keyframes resizeAndMove {
  0% {
    opacity: 0;
    width: 0;
  }
  12% {
    opacity: 1;
    width: 15%;
  }
  25% {
    width: 15%;
  }
  37% {
    width: 15%;
  }
  50% {
    width: 15%;
  }
  62% {
    width: 15%;
    opacity: 1;
  }
  75% {
    left: 60%;
    width: 0%;
  }
  87% {
  }
  100% {
  }
}

