<div class="universe">
<div class="sun"></div>
  <div class="moon"></div>
</div>

html, body {
  width: 100%;
  overflow-x: hidden;
}
*, *:before, *:after {
  box-sizing: border-box;
  margin: 0;
  padding: 0;
}

.universe {
  width:100vw;
  height: 100vh;
  background: #fff;
  display: block;
  position: relative;
  animation: skyDim 20s linear infinite;
}

@keyframes skyDim {
  0%, 100% {
    background: #fff;
  }
  50% {
    background: #000;
  }
}

.universe:before {
    content: "";
    box-shadow: 
      10vw 1vh #fff,
      14vw 29vh 2px #FFF,
      23vw 34vh 1px #FFF,
      1vw 99vh 1px #FFF,
      20vw 80vh #FFF,
      90vw 10vh 2px #fff,
      55vw 9vh #FFF,
      24vw 4vh 1px #FFF,
      50vw 99vh 1px #FFF,
      74vw 40vh 1px #FFF,
      80vw 9vh 1px #FFF,
      20vw 80vh #FFF,
      85vw 78vh #fff;
    width: 4px;
    height: 4px;
    position: absolute;
    border-radius: 50%;
}

.universe:after {
    content: "";
    box-shadow: 
      37vw 78vh #fff,
      17vw 69vh #FFF,
      68vw 4vh 1px #FFF,
      98vw 9vh 1px #FFF,
      45vw 67vh #FFF,
      95vw 1vh 2px #fff,
      35vw 75vh 2px #FFF,
      44vw 47vh 1px #FFF,
      54vw 5vh 1px #FFF,
      22vw 29vh 1px #FFF,
      39vw 71vh 1px #FFF,
      11vw 11vh #FFF,
      88vw 82vh #fff;
    width: 2px;
    height: 2px;
    position: absolute;
    border-radius: 50%;
}

.sun {
    height: 200px;
    width: 200px;
    border-radius: 50%;
    background: #ffd700;
    box-shadow: 0 0 60px #ffd700, 0 0 100px #b9a018, inset 0 5px 35px 53px #ffd700, inset 48px 8px 34px 25px #ffd700;
    left: calc(50% - 100px);
    top: calc(50% - 100px);
    position: absolute;
    animation: sunFreakOut 20s linear infinite;
}

@keyframes sunFreakOut {
  0%, 100% {
    box-shadow: 0 0 60px gold, 0 0 100px #b9a018, inset 0 5px 35px 53px #ffd700, inset 48px 8px 34px 25px #ffd700;
  }
  50% {
    box-shadow: 0 0 50px #e30000, 0 0 0px #b91818, inset 0 5px 35px 53px #ffd700, inset 48px 8px 34px 25px #ffd700;
  }
}

.moon {
    height: 50px;
    width: 50px;
    border-radius: 50%;
    background: rgba(0, 0, 0, 0.99);
    box-shadow: inset 5px 1px 10px -8px #d4d4d6;
    transition: 1s;
    top: calc(40% - 100px);
    position: absolute;
    z-index: 5;
    animation: Move 20s ease-in-out infinite;
}

@keyframes Move {
  0% {transform: translateX(100vw);}
  40%, 60% {
    top: calc(50% - 100px);
  }
  50%, 50.5% { 
    width: 200px;
    height: 200px;
    transform: translateX(calc(50vw - 100px));
    box-shadow: inset 20px 1px 35px -15px #d4d4d6;
    top: calc(50% - 100px);
  }
  60% {
    box-shadow: inset -20px 1px 35px -15px #d4d4d6;      
  }
  80% {
  }
  100% {
    width: 50px;
    height: 50px;
    transform: translateX(calc(-1vw - 60px));
    top: calc(40% - 100px);
    box-shadow: inset -5px 1px 10px -8px #d4d4d6;      
    
  }
}

External CSS

This Pen doesn't use any external CSS resources.

External JavaScript

This Pen doesn't use any external JavaScript resources.