body {
  margin: 0;
}

#root {
  display: flex;
  height: 100vh;
  justify-content: center;
  align-items: center;
}

.parent_loading {
  width: 192px;
  height: 192px;
  display: inline-block;
  overflow: hidden;
}

@keyframes loading {
  0% {
    transform: rotate(0)
  }
  100% {
    transform: rotate(360deg)
  }
}

.loading {
  width: 100%;
  height: 100%;
  position: relative;
  transform: translateZ(0) scale(1);
  backface-visibility: hidden;
  transform-origin: 0 0;
}

.loading div {
  box-sizing: border-box !important
}

.loading > div {
  position: absolute;
  width: 144px;
  height: 144px;
  top: 28px;
  left: 28px;
  border-radius: 50%;
  border: 16px solid #000;
  border-color: #00ab55 transparent #00ab55 transparent;
  animation: loading 1s linear infinite;
}

.loading > div:nth-child(2) {
  border-color: transparent
}

.loading > div:nth-child(2) div {
  position: absolute;
  width: 100%;
  height: 100%;
  transform: rotate(45deg);
}

.loading > div:nth-child(2) div:before,
.loading > div:nth-child(2) div:after {
  content: "";
  display: block;
  position: absolute;
  width: 16px;
  height: 16px;
  top: -16px;
  left: 48px;
  background: #00ab55;
  border-radius: 50%;
  box-shadow: 0 128px 0 0 #00ab55;
}

.loading > div:nth-child(2) div:after {
  left: -16px;
  top: 48px;
  box-shadow: 128px 0 0 0 #00ab55;
}