body.loading {
  overflow: hidden;
}

.preloader {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background: #000;
  display: flex;
  justify-content: center;
  align-items: center;
  z-index: 9999;
}

.card {
  width: 100px;
  height: 150px;
  perspective: 1000px;
}

.inner {
  position: relative;
  width: 100%;
  height: 100%;
  transform-style: preserve-3d;
  animation: spin 1.5s infinite linear;
}

.front, .back {
  position: absolute;
  width: 100%;
  height: 100%;
  backface-visibility: hidden;
  border: 1px solid #ccc;
}

.front {
  background-color: #fff;
}

.back {
  background-color: #007BFF;
  transform: rotateY(180deg);
}

@keyframes spin {
  0% { transform: rotateY(0deg) rotate(35deg); }
  50% { transform: rotateY(180deg) rotate(35deg); }
  100% { transform: rotateY(360deg) rotate(35deg); }
}

/* NoScript styling */
noscript {
  color: #fff;
  text-align: center;
  z-index: 9999;
  background-color: #a83535;
  border-radius: 0.5rem;
  flex-direction: column;
  justify-content: center;
  align-items: flex-start;
  width: auto;
  margin: 15px;
  padding: 1rem;
  animation: 0.5s cubic-bezier(0.215, 0.61, 0.355, 1) fadein,
    0.5s cubic-bezier(0.215, 0.61, 0.355, 1) 5s forwards fadeout;
  display: flex;
  position: fixed;
  top: 0;
  right: 0;
}

@keyframes fadein {
  0% {
    transform: translateY(-200%);
  }
  to {
    transform: translateY(0);
  }
}

@keyframes fadeout {
  0% {
    transform: translateY(0);
  }
  to {
    transform: translateY(-200%);
  }
}