/* CSS */
.loading-overlay {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background: rgba(255, 255, 255, 0.9);
  z-index: 9999;
  display: none;
  justify-content: center;
  align-items: center;
  pointer-events: none;
}

/* Cat loader styles */
.box {
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  background-color: #e6dcdc;
  padding: 20px;
  border-radius: 10px;
}

.cat {
  position: relative;
   width: 150px;
  height: 150px;
  max-width: 20em;
  overflow: hidden;
  background-color: #e6dcdc;
}

.cat::before {
  content: '';
  display: block;
  padding-bottom: 100%;
}

.cat:hover > * {
  animation-play-state: paused;
}

.cat:active > * {
  animation-play-state: running;
}

.cat__head,
.cat__tail,
.cat__body {
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  animation: rotating 2.79s cubic-bezier(.65, .54, .12, .93) infinite;
}

.cat__head::before,
.cat__tail::before,
.cat__body::before {
  content: '';
  position: absolute;
  width: 50%;
  height: 50%;
  background-size: 200%;
  background-repeat: no-repeat;
 background-image: url('/static/img/cat_loader.png');
}

/* Head */
.cat__head::before {
  top: 0;
  right: 0;
  background-position: 100% 0%;
  transform-origin: 0% 100%;
  transform: rotate(90deg);
}

/* Tail */
.cat__tail {
  animation-delay: 0.2s;
}

.cat__tail::before {
  left: 0;
  bottom: 0;
  background-position: 0% 100%;
  transform-origin: 100% 0%;
  transform: rotate(-30deg);
}

/* Body */
.cat__body {
  animation-delay: 0.1s;
}

.cat__body:nth-of-type(2) {
  animation-delay: 0.2s;
}

.cat__body::before {
  right: 0;
  bottom: 0;
  background-position: 100% 100%;
  transform-origin: 0% 0%;
}

@keyframes rotating {
  from { transform: rotate(720deg); }
  to { transform: none; }
}

/* Additional styles for overlay */
*,
*::before,
*::after {
  margin: 0;
  padding: 0;
  box-sizing: border-box;
}

.loading-overlay {
  transition: opacity 0.3s ease;
}