body {
  display: flex;
  justify-content: center;
  align-items: center;
  min-height: 100vh;
  font-family: monospace;
  letter-spacing: 5px;
  color: #00df00;
  background: #000;
  overflow: hidden;
  user-select: none;
}
div {
  text-align: center;
}
h1 {
  font-weight: normal;
  font-size: 40px;
  position: relative;
}

h1::before, h1::after {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  
}

h1::after {
  bottom: 2px;
  width: 28px;
  height: 10px;
  background: #00df00;
  opacity: 0;
  animation: blink 0.7s steps(16) infinite, typing 2.5s steps(16) 1s forwards;
}

h1::before {
  bottom: 0;
  top: 0;
  background: #000;
  animation: typing 2.5s steps(16) 1s forwards;
}

p {
  font-size: 18px;
  transform: translateY(30px);
  opacity: 0;
  animation: fadeup 3s 4s forwards;
}

@keyframes typing {
  to {
    left: 100%
  }
}

@keyframes blink {
  to {
    opacity: 1;
  }
}

@keyframes fadeup {
  to {
    transform: translateY(0);
    opacity: 1;
  }
}