.sp-wrapper {
  position: fixed;
  left: 0;
  top: 0;
  width: 38%;
  height: 100vh;
  overflow: hidden;
  z-index: 5;
  background: #e8eaec;
  opacity: 0;
  pointer-events: none;
}

.sp-image {
  position: absolute;
  left: 0;
  top: 0;
  width: 100%;
  height: 160%;
  object-fit: cover;
  object-position: center;
  will-change: transform;
}


.sp-color {
  --sp-scale: 2.6;
  position: absolute;
  left: 0;
  bottom: 82.7vh;
  z-index: 2;
  display: flex;
  align-items: flex-start;
  gap: 4px;
}

.sp-color-swatch {
  position: relative;
  width: 150px;
  height: 150px;
  flex-shrink: 0;
}


.sp-color-swatch-fill {
  position: absolute;
  inset: 0;
  border-radius: 50%;
  border: 1.5px solid rgba(18, 32, 58, 0.15);
  background-color: #e8eaec;
  background-repeat: no-repeat;
  background-size: 100%;
  background-position: left bottom;
  pointer-events: none;
  transform-origin: center;
  transition: transform 0.3s ease;
}


.sp-color-swatch:hover .sp-color-swatch-fill {
  transform: translate(calc(19vw - 75px), calc(32.7vh + 75px)) scale(var(--sp-scale));
  z-index: 10;
}
.sp-color-label {
  font-size: 13px;
  font-weight: 700;
  color: #12203a;
  white-space: nowrap;
  transform-origin: left center;
  transition: transform 0.3s ease, font-size 0.3s ease;
}



.sp-color-swatch:hover ~ .sp-color-label {
  transform: translate(
    calc(19vw - 146px + (75px * var(--sp-scale))),
    calc(32.7vh + 150px - (75px * var(--sp-scale)))
  );
  z-index: 10;
}

