@import url("variables.css");
body {
  font-family: var(--font-family);
  font-weight: var(--font-weight);
  color: var(--color-text-primary);
  background-color: var(--color-bg-primary);
  line-height: 1;
}
.layer {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  pointer-events: none;
}
.layer--background {
  z-index: 1;
}
.layer--visualizer {
  z-index: 2;
}
.layer--particles {
  z-index: 3;
}
.center-circle {
  position: fixed;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  z-index: 10;
  width: min(320px, 65vmin);
  height: min(320px, 65vmin);
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  background: var(--glass-bg);
  border: 1px solid var(--glass-border);
  box-shadow:
    0 0 60px var(--glass-shadow),
    0 0 120px rgba(109, 40, 255, 0.04),
    inset 0 0 60px rgba(109, 40, 255, 0.03);
  backdrop-filter: blur(8px);
  -webkit-backdrop-filter: blur(8px);
  transition:
    box-shadow var(--transition-glass),
    border-color var(--transition-glass);
  opacity: 0;
  pointer-events: none;
}
.center-circle.is-active {
  opacity: 1;
  pointer-events: auto;
}
.center-circle.is-pulsing {
  border-color: rgba(139, 92, 246, 0.25);
  box-shadow:
    0 0 80px rgba(109, 40, 255, 0.15),
    0 0 160px rgba(109, 40, 255, 0.06),
    inset 0 0 80px rgba(109, 40, 255, 0.05);
}
.center-name {
  font-size: clamp(1.2rem, 4.5vmin, 2.4rem);
  font-weight: var(--font-weight);
  letter-spacing: var(--letter-spacing-wide);
  text-transform: uppercase;
  color: var(--color-text-primary);
  user-select: none;
  white-space: nowrap;
}
.overlay {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  z-index: 100;
  background-color: var(--color-bg-primary);
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  transition:
    opacity var(--transition-overlay),
    visibility var(--transition-overlay);
  visibility: visible;
  opacity: 1;
}
.overlay.is-hidden {
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
}
.overlay-text {
  font-size: clamp(1.5rem, 6vmin, 4rem);
  font-weight: var(--font-weight);
  letter-spacing: 0.5em;
  text-transform: uppercase;
  color: var(--color-text-muted);
  transition: color 0.4s ease;
  user-select: none;
}
.overlay:hover .overlay-text {
  color: var(--color-text-primary);
}
.music-credit {
  position: fixed;
  bottom: clamp(16px, 3vh, 32px);
  left: 50%;
  transform: translateX(-50%);
  z-index: 10;
  font-size: clamp(0.6rem, 1.2vmin, 0.75rem);
  font-weight: var(--font-weight);
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--color-text-muted);
  opacity: 0;
  transition: opacity 1s ease 0.5s;
  user-select: none;
}
.music-credit.is-visible {
  opacity: 0.5;
}
