* {
  box-sizing: border-box;
}

body {
  margin: 0;
  background-color: #8a1f17;
  background-image: radial-gradient(#8a1f17 20%, #091c44 50%, rgba(0, 0, 0, 0.5) 100%);
  background-size: 120%;
  background-position: center;
  font-family: "Oswald", sans-serif;
  -webkit-animation: tighten-vinette ease-out 1800ms forwards;
          animation: tighten-vinette ease-out 1800ms forwards;
}

.images {
  pointer-events: none;
  height: 100vh;
  top: 0;
  bottom: 0;
  right: 0;
  left: 0;
  position: absolute;
  opacity: 0.6;
  z-index: 20;
  background-size: cover;
  background-position: center;
  background-repeat: none;
  background-image: url("../intro background/1.png");
}

.wrapper {
  height: 100vh;
  display: flex;
  align-items: center;
  justify-content: center;
}

.logo {
  cursor: pointer;
  text-align: center;
}
.logo:hover .restart {
  opacity: 0.8;
}

.restart {
  color: #fff;
  margin-top: 40px;
  font-size: 2.2rem;
  text-transform: uppercase;
  letter-spacing: -0.08rem;
  transition: opacity 150ms linear;
  opacity: 0;
  text-decoration: none;
  display: block;
}

.marvel, .studios {
  position: relative;
  color: #fff;
  text-transform: uppercase;
  letter-spacing: -0.2rem;
  font-size: 5rem;
  margin: 0.05rem 0.05rem 0.5rem;
  padding: 0 0.4rem;
  display: inline-block;
  opacity: 0;
}

.studios {
  font-weight: 500;
  letter-spacing: -0.3rem;
  transform: translateX(-95px);
}

.marvel {
  z-index: 10;
  font-weight: 800;
  transform: translateX(95px);
}
.marvel:before {
  z-index: -10;
  content: "";
  display: block;
  background-color: #8a1f17;
  border: solid rgba(255, 255, 255, 0.2) 1px;
  height: 100%;
  width: 100%;
  position: absolute;
  top: 0;
  left: 0;
}

.studios:after, .studios:before {
  content: "";
  display: block;
  height: 3px;
  position: absolute;
  background-color: #fff;
  display: block;
  left: 0.4rem;
  right: 0.4rem;
}

.studios:before {
  top: 0;
}
.studios:after {
  bottom: 0;
}

.wrapper.run-animation {
  -webkit-animation: shrink ease-out 4800ms forwards 600ms;
          animation: shrink ease-out 4800ms forwards 600ms;
}
.wrapper.run-animation .marvel {
  transform: translateX(95px);
  opacity: 1;
  -webkit-animation: slide-out-X 750ms ease forwards;
          animation: slide-out-X 750ms ease forwards;
}
.wrapper.run-animation .studios {
  transform: translateX(-95px);
  opacity: 1;
  color: transparent;
  -webkit-animation: slide-out-X 750ms ease forwards, show-text 300ms linear forwards 1500ms;
          animation: slide-out-X 750ms ease forwards, show-text 300ms linear forwards 1500ms;
}
.wrapper.run-animation .studios:before {
  transform: translateY(2.9rem);
  -webkit-animation: slide-out-Y 300ms ease forwards 750ms;
          animation: slide-out-Y 300ms ease forwards 750ms;
}
.wrapper.run-animation .studios:after {
  transform: translateY(-2.9rem);
  -webkit-animation: slide-out-Y 300ms ease forwards 750ms;
          animation: slide-out-Y 300ms ease forwards 750ms;
}
.wrapper.run-animation .restart {
  opacity: 0;
  -webkit-animation: fade-down 1200ms ease 3600ms forwards;
          animation: fade-down 1200ms ease 3600ms forwards;
}
.wrapper.run-animation ~ .images {
  -webkit-animation: flicker-images 1500ms 2 steps(1, end), fade-out 4500ms forwards;
          animation: flicker-images 1500ms 2 steps(1, end), fade-out 4500ms forwards;
}

@-webkit-keyframes slide-out-X {
  100% {
    transform: translateX(0);
  }
}

@keyframes slide-out-X {
  100% {
    transform: translateX(0);
  }
}
@-webkit-keyframes slide-out-Y {
  100% {
    transform: translateY(0);
  }
}
@keyframes slide-out-Y {
  100% {
    transform: translateY(0);
  }
}
@-webkit-keyframes show-text {
  100% {
    color: #fff;
  }
}
@keyframes show-text {
  100% {
    color: #fff;
  }
}
@-webkit-keyframes shrink {
  100% {
    transform: scale(0.8);
  }
}
@keyframes shrink {
  100% {
    transform: scale(0.8);
  }
}
@-webkit-keyframes tighten-vinette {
  100% {
    background-size: 120%;
  }
}
@keyframes tighten-vinette {
  100% {
    background-size: 120%;
  }
}
@-webkit-keyframes fade-down {
  0% {
    transform: translateY(-2rem);
    opacity: 0;
  }
  100% {
    transform: translateY(0);
    opacity: 0.5;
  }
}
@keyframes fade-down {
  0% {
    transform: translateY(-2rem);
    opacity: 0;
  }
  100% {
    transform: translateY(0);
    opacity: 0.5;
  }
}
@-webkit-keyframes fade-out {
  100% {
    opacity: 0;
  }
}
@keyframes fade-out {
  100% {
    opacity: 0;
  }
}
@-webkit-keyframes flicker-images {
  0% {
    background-image: url("../intro background/1.jpg");
  }
  10% {
    background-image: url("../intro background/2.jpg");
  }
  20% {
    background-image: url("../intro background/3.jpg");
  }
  30% {
    background-image: url("../intro background/4.jpg");
  }
  40% {
    background-image: url("../intro background/5.jpg");
  }
  50% {
    background-image: url("../intro background/6.jpg");
  }
  60% {
    background-image: url("../intro background/7.jpg");
  }
  70% {
    background-image: url("../intro background/8.jpg");
  }
  80% {
    background-image: url("../intro background/9.jpg");
  }
  90% {
    background-image: url("../intro background/10.jpg");
  }
  100% {
    background-image: url("../intro background/1.jpg");
  }
}
@keyframes flicker-images {
  0% {
    background-image: url("../intro background/1.jpg");
  }
  10% {
    background-image: url("../intro background/2.jpg");
  }
  20% {
    background-image: url("../intro background/3.jpg");
  }
  30% {
    background-image: url("../intro background/4.jpg");
  }
  40% {
    background-image: url("../intro background/5.jpg");
  }
  50% {
    background-image: url("../intro background/6.jpg");
  }
  60% {
    background-image: url("../intro background/7.jpg");
  }
  70% {
    background-image: url("../intro background/8.jpg");
  }
  80% {
    background-image: url("../intro background/9.jpg");
  }
  90% {
    background-image: url("../intro background/10.jpg");
  }
  100% {
    background-image: url("../intro background/1.jpg");
  }
}