.catalog-loader-overlay {
  position: fixed;
  inset: 0;
  z-index: 100000;
  display: none;
  align-items: center;
  justify-content: center;
  background: rgba(255, 255, 255, 0.82);
  backdrop-filter: blur(2px);
}

.catalog-loader-overlay.is-visible {
  display: flex;
}

.catalog-loader-spinner {
  animation: catalog-loader-rotator 1.4s linear infinite;
}

.catalog-loader-path {
  stroke-dasharray: 187;
  stroke-dashoffset: 0;
  transform-origin: center;
  animation: 
    catalog-loader-dash 1.4s ease-in-out infinite,
    catalog-loader-colors 5.6s ease-in-out infinite;
}

@keyframes catalog-loader-rotator {
  0% {
    transform: rotate(0deg);
  }
  100% {
    transform: rotate(270deg);
  }
}

@keyframes catalog-loader-colors {
  0% {
    stroke: #9569F0;
  }
  16.66% {
    stroke: #E51F2C;
  }
  33.33% {
    stroke: #FA6E28;
  }
  50% {
    stroke: #68BB5B;
  }
  66.66% {
    stroke: #FF709B;
  }
  83.33% {
    stroke: #3AB3F0;
  }
  100% {
    stroke: #9569F0;
  }
}

@keyframes catalog-loader-dash {
  0% {
    stroke-dashoffset: 187;
  }
  50% {
    stroke-dashoffset: 46.75;
    transform: rotate(135deg);
  }
  100% {
    stroke-dashoffset: 187;
    transform: rotate(450deg);
  }
}
