:root {
  --transition-timing-function: ease-in-out;
  --transition-duration: 0.3s;

  --color-preloader-bg: #fff;
  --z-index-preloader: 9999;
}

.preloader {
  position: fixed;
  z-index: var(--z-index-preloader);
  top: 0;
  left: 0;
  display: flex;
  visibility: visible;
  width: 100%;
  height: 100%;
  transition: opacity var(--transition-duration)
  var(--transition-timing-function),
  visibility var(--transition-duration) var(--transition-timing-function);
  opacity: 1;
  background-color: var(--color-preloader-bg);
}

.preloader.preloader--hidden {
  visibility: hidden;
  opacity: 0;
}

.preloader-logo-wrapper {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 150px;
  height: 150px;
  margin: auto;
}

.preloader-logo-block {
  position: absolute;
  top: 50%;
  left: 50%;
  width: 0;
  height: 0;
  transform: translate(-50%, -50%);
}

.preloader-logo-block:before {
  position: absolute;
  top: 50%;
  left: 50%;
  display: block;
  content: '';
  transform: translate(-50%, -100%);
  border-top: 4px solid #ab8c6b;
  border-right: 2px solid #ab8c6b;
  border-left: 2px solid #ab8c6b;
}

.preloader-logo-block:nth-child(1) {
  animation: spin-back 6s linear infinite;
}

.preloader-logo-block:nth-child(1):before {
  width: 100px;
  height: 50px;
  border-radius: 100px 100px 0 0;
}

.preloader-logo-block:nth-child(2) {
  animation: spin 8s linear infinite;
}

.preloader-logo-block:nth-child(2):before {
  width: 120px;
  height: 60px;
  border-radius: 120px 120px 0 0;
}

.preloader-logo-block:nth-child(3) {
  animation: spin-back 10s linear infinite;
}

.preloader-logo-block:nth-child(3):before {
  width: 140px;
  height: 70px;
  border-radius: 140px 140px 0 0;
}

.preloader-logo-block:nth-child(4) {
  animation: spin 12s linear infinite;
}

.preloader-logo-block:nth-child(4):before {
  width: 160px;
  height: 80px;
  border-radius: 160px 160px 0 0;
}

.preloader-logo img {
  width: 70px;
}

@keyframes spin {
  from {
    transform: rotate(0);
  }

  to {
    transform: rotate(360deg);
  }
}

@keyframes spin-back {
  from {
    transform: rotate(360deg);
  }

  to {
    transform: rotate(0deg);
  }
}
