* {
  margin: 0;
  padding: 0;
  box-sizing: border-box;
}

html,
body {
  height: 100%;
  overflow: hidden;
  background: #fff;
  font-family: 'Courier New', Courier, monospace;
  color: #333;
}

header {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  z-index: 10;
  text-align: center;
  animation: fadeInDown 2s ease-out forwards;
}

header h1 {
  margin: 0;
  padding: 0;
  font-size: 3rem;
  color: transparent;
  text-shadow: 0 0 10px #333;
  letter-spacing: 2px;
  text-transform: uppercase;
}

header h1 span:nth-child(1) {
  position: absolute;
  top: 0;
  left: 0;
  color: #222;
  transition: 0.5s;
  clip-path: polygon(0 0, 100% 0, 100% 50%, 0 50%);
  overflow: hidden;
}

header h1:hover span:nth-child(1) {
  transform: translateY(-18px);
}

header h1 span:nth-child(2) {
  position: absolute;
  top: 0;
  left: 0;
  color: #222;
  transition: 0.5s;
  clip-path: polygon(0 50%, 100% 50%, 100% 100%, 0 100%);
  overflow: hidden;
}

header h1:hover span:nth-child(2) {
  transform: translateY(18px);
}

header h1 span:nth-child(3) {
  position: absolute;
  top: 50%;
  left: 0;
  transform: translateY(-50%) scaleY(0);
  width: 100%;
  color: #222;
  background: #fff;
  font-size: 0.4em;
  font-weight: 500;
  letter-spacing: 0.3em;
  text-align: center;
  padding: 8px 20px;
  transition: 0.5s;
  border-radius: 3px;
}

header h1:hover span:nth-child(3) {
  transform: translateY(-50%) scaleY(1);
}

header p {
  font-size: 1rem;
  margin-top: 10px;
  opacity: 0.8;
}

canvas {
  display: block;
  position: absolute;
  top: 0;
  left: 0;
}

@keyframes fadeInDown {
  0% {
    opacity: 0;
    transform: translate(-50%, -70%);
  }
  100% {
    opacity: 1;
    transform: translate(-50%, -50%);
  }
}

@keyframes fadeInUp {
  0% {
    opacity: 0;
    transform: translate(-50%, 20px);
  }
  100% {
    opacity: 1;
    transform: translate(-50%, 0);
  }
}

@media (max-width: 768px) {
  header h1 {
    font-size: 2rem;
  }
  header p {
    font-size: 0.9rem;
  }
}