body {
  display: flex;
  justify-content: center;
  align-items: center;
  position: absolute;
  width: 100%;
  height: 100vh;
}

.animation-wrapper {
  width: 50%;
  padding-bottom: 50%;
}

.sphere-animation {
  position: absolute;
  top: 50%;
  left: 50%;
  width: 580px;
  height: 580px;
  margin: -290px 0 0 -290px;
}

.sphere path {
  fill: url(#sphereGradient);
  stroke-width: 1px;
  stroke: rgba(80, 80, 80, 0.35);
  -webkit-backface-visibility: hidden;
  backface-visibility: hidden;
}

.typing-demo {
  width: 45ch;
  font-size: 1px;
  animation: typing 3s steps(44), blink 0.5s step-end infinite alternate;
  white-space: nowrap;
  overflow: hidden;
  border-right: 3px solid;
  font-family: monospace;
  font-size: 2em;
  position: absolute;
  color: rgb(226, 57, 15);
  z-index: 2;
}

@keyframes typing {
  from {
    width: 0;
  }
}

@keyframes blink {
  50% {
    border-color: transparent;
  }
}

@media (min-width: 500px) {
  .sphere path {
    stroke-width: 0.4px;
  }
}
