html {
  background-color: #262b2e;
}

body {
  min-height: 100dvh;
  background-image: linear-gradient(#435058, #262b2e);
  margin: 0;
}

.loading-wrapper {
  display: flex;
  justify-content: center;
  align-items: center;
  width: 100%;
  height: 150px;
}

.loading-wrapper--init {
  display: flex;
  justify-content: center;
  align-items: center;
  width: 100vw;
  min-height: 100dvh;
}

.loading {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  max-width: 6rem;
  margin-top: 3rem;
  margin-bottom: 3rem;
}

.loading:before,
.loading:after {
  content: '';
  position: absolute;
  border-radius: 50%;
  animation: pulsOut 1.8s ease-in-out infinite;
  filter: drop-shadow(0 0 1rem #c7f);
}

.loading:before {
  width: 100%;
  padding-bottom: 100%;
  box-shadow: inset 0 0 0 1rem #c7f;
  animation-name: pulsIn;
}

.loading:after {
  width: calc(100% - 2rem);
  padding-bottom: calc(100% - 2rem);
  box-shadow: 0 0 0 0 #c7f;
}

@keyframes pulsIn {
  0% {
    box-shadow: inset 0 0 0 1rem #c7f;
    opacity: 1;
  }

  50%,
  100% {
    box-shadow: inset 0 0 0 0 #c7f;
    opacity: 0;
  }
}

@keyframes pulsOut {

  0%,
  50% {
    box-shadow: 0 0 0 0 #c7f;
    opacity: 0;
  }

  100% {
    box-shadow: 0 0 0 1rem #c7f;
    opacity: 1;
  }
}
