#app #app-loading {
  position: fixed;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  text-align: center;
}
#app #app-loading p {
  margin: 0;
  margin-top: 8px;
  color: #159aff;
  font-size: 14px;
}

@keyframes square-animation {
  0% {
    transform: translate(0, 0);
  }

  10.5% {
    transform: translate(0, 0);
  }

  12.5% {
    transform: translate(var(--item-position), 0);
  }

  23% {
    transform: translate(var(--item-position), 0);
  }

  25% {
    transform: translate(calc(var(--item-position) * 2), 0);
  }

  35.5% {
    transform: translate(calc(var(--item-position) * 2), 0);
  }

  37.5% {
    transform: translate(calc(var(--item-position) * 2), var(--item-position));
  }

  48% {
    transform: translate(calc(var(--item-position) * 2), var(--item-position));
  }

  50% {
    transform: translate(var(--item-position), var(--item-position));
  }

  60.5% {
    transform: translate(var(--item-position), var(--item-position));
  }

  62.5% {
    transform: translate(var(--item-position), calc(var(--item-position) * 2));
  }

  73% {
    transform: translate(var(--item-position), calc(var(--item-position) * 2));
  }

  75% {
    transform: translate(0, calc(var(--item-position) * 2));
  }

  85.5% {
    transform: translate(0, calc(var(--item-position) * 2));
  }

  87.5% {
    transform: translate(0, var(--item-position));
  }

  98% {
    transform: translate(0, var(--item-position));
  }

  100% {
    transform: translate(0, 0);
  }
}

.loader {
  --item-size: 14px;
  --item-position: 18px;
  position: relative;
  width: calc(var(--item-position) * 3);
  height: calc(var(--item-position) * 3);
  transform: rotate(45deg);
}

.loader-square {
  position: absolute;
  top: 0;
  left: 0;
  width: var(--item-size);
  height: var(--item-size);
  margin: 2px;
  border-radius: 0px;
  background: #159aff;
  background-size: cover;
  background-position: center;
  background-attachment: fixed;
  animation: square-animation 10s ease-in-out infinite both;
}

.loader-square:nth-of-type(0) {
  animation-delay: 0s;
}

.loader-square:nth-of-type(1) {
  animation-delay: -1.4285714286s;
}

.loader-square:nth-of-type(2) {
  animation-delay: -2.8571428571s;
}

.loader-square:nth-of-type(3) {
  animation-delay: -4.2857142857s;
}

.loader-square:nth-of-type(4) {
  animation-delay: -5.7142857143s;
}

.loader-square:nth-of-type(5) {
  animation-delay: -7.1428571429s;
}

.loader-square:nth-of-type(6) {
  animation-delay: -8.5714285714s;
}

.loader-square:nth-of-type(7) {
  animation-delay: -10s;
}
