.container {
  --circular-radius: 200px;
  --circular-item-size: 80px;
  --circular-duration: 30s;
  --circular-accent: #00f0ff;
  --circular-glow: rgba(0, 240, 255, 0.3);

  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  min-height: calc(var(--circular-radius) * 2 + var(--circular-item-size) * 2);
  padding: 2rem;
}

.rotator {
  position: absolute;
  width: calc(var(--circular-radius) * 2);
  height: calc(var(--circular-radius) * 2);
  border-radius: 50%;
  border: 1px dashed var(--circular-accent);
  opacity: 0.3;
}

.rotating {
  animation: rotate var(--circular-duration) linear infinite;
}

.rotating:hover {
  animation-play-state: paused;
}

@keyframes rotate {
  from {
    transform: rotate(0deg);
  }
  to {
    transform: rotate(360deg);
  }
}

.item {
  --item-angle: 0deg;

  position: absolute;
  top: 50%;
  left: 50%;
  width: var(--circular-item-size);
  height: var(--circular-item-size);
  transform: translate(-50%, -50%) rotate(var(--item-angle)) translateY(calc(var(--circular-radius) * -1)) rotate(calc(var(--item-angle) * -1));
  cursor: pointer;
  transition: all 0.3s ease;
  opacity: 0.6;
  filter: grayscale(0.5);
}

.item:hover {
  opacity: 1;
  filter: grayscale(0);
  transform: translate(-50%, -50%) rotate(var(--item-angle)) translateY(calc(var(--circular-radius) * -1.1)) rotate(calc(var(--item-angle) * -1)) scale(1.1);
}

.itemActive {
  opacity: 1;
  filter: grayscale(0) drop-shadow(0 0 20px var(--circular-accent));
  z-index: 10;
}

.itemActive::after {
  content: '';
  position: absolute;
  inset: -4px;
  border: 2px solid var(--circular-accent);
  border-radius: 50%;
  animation: pulse-ring 2s ease-in-out infinite;
}

@keyframes pulse-ring {
  0%, 100% {
    transform: scale(1);
    opacity: 1;
  }
  50% {
    transform: scale(1.2);
    opacity: 0.5;
  }
}

/* Inner circle decoration */
.rotator::before {
  content: '';
  position: absolute;
  top: 50%;
  left: 50%;
  width: 20%;
  height: 20%;
  transform: translate(-50%, -50%);
  border-radius: 50%;
  border: 1px solid var(--circular-accent);
  opacity: 0.5;
}

/* Outer ring with segments */
.rotator::after {
  content: '';
  position: absolute;
  inset: -10px;
  border-radius: 50%;
  background: conic-gradient(
    from 0deg,
    transparent 0deg,
    var(--circular-glow) 90deg,
    transparent 180deg,
    var(--circular-glow) 270deg,
    transparent 360deg
  );
  animation: rotate var(--circular-duration) linear infinite;
  opacity: 0.2;
  z-index: -1;
}

.centerDisplay {
  position: relative;
  z-index: 5;
  display: flex;
  align-items: center;
  justify-content: center;
  width: calc(var(--circular-item-size) * 1.5);
  height: calc(var(--circular-item-size) * 1.5);
  animation: float 3s ease-in-out infinite;
}

@keyframes float {
  0%, 100% {
    transform: translateY(0);
  }
  50% {
    transform: translateY(-10px);
  }
}

/* Glitch effect on active item change */
.itemActive {
  animation: item-glitch 0.3s ease-out;
}

@keyframes item-glitch {
  0% {
    transform: translate(-50%, -50%) rotate(var(--item-angle)) translateY(calc(var(--circular-radius) * -1)) rotate(calc(var(--item-angle) * -1)) scale(1.3);
  }
  50% {
    transform: translate(-50%, -50%) rotate(calc(var(--item-angle) + 5deg)) translateY(calc(var(--circular-radius) * -1)) rotate(calc(var(--item-angle) * -1)) scale(1.2);
  }
  100% {
    transform: translate(-50%, -50%) rotate(var(--item-angle)) translateY(calc(var(--circular-radius) * -1)) rotate(calc(var(--item-angle) * -1)) scale(1);
  }
}
