body {
  background: #ffffff;
  background: linear-gradient(180deg, rgba(255, 255, 255, 1) 44%, rgba(244, 244, 244, 1) 75%, rgba(130, 130, 130, 1) 100%);
  background-repeat: no-repeat;
  height: 100vh;
  margin: 0;
  overflow: hidden;
}
.orb {
  border-radius: 100%;
  border-style: none;
  background-color: black;
  width: 200px;
  height: 200px;
  position: absolute;
  background: #858585;
  background: radial-gradient(circle,rgba(133, 133, 133, 1) 0%, rgba(255, 255, 255, 0) 70%);
  background-repeat: no-repeat;
  transform: translate(calc(80vw - 200px), calc(80vh - 200px));
}
.door-front {
  background-color: gray;
  border-radius: 2px;

  filter: blur(2px);
  font-family: Sans-serif;
  color: lightgray;
  text-align: center;
  font-size: 2em;
  border: 15px;
  padding-top: 10px;
}
.door {
  position: absolute;
  left: 50%;
  top: 50%;
  transform: translate(-50%, -50%);
  background-color: transparent;
  width: 200px;
  height: 400px;
  perspective: 1000px;
}
.door-inner {
  position: relative;
  width: 100%;
  height: 100%;
  transition: transform 0.8s;
  transform-style: preserve-3d;
}

.door:hover .door-inner {
  transform: rotateY(180deg);
}

.door-back {
  transform: rotateY(180deg);
  background-color: black;
  padding-top: 10px;
}
.door-front, .door-back {
  position: absolute;
  width: 100%;
  height: 100%;
  -webkit-backface-visibility: hidden;
  backface-visibility: hidden;
}


.ghost {
  position: absolute;
  left: 10vw;
  top: 10vh;
  animation-name: float;
  animation-duration: 8s;
  animation-iteration-count: infinite;
}

@keyframes float {
  0% { transform: translate(0%, 0%); } 
  50% { transform: translate(0%, -10%); }
  100% { transform: translate(0%, 0%); }
}