* {
  margin: 0;
  padding: 0;
  box-sizing: border-box;
}

body {
  background: #020d1a;
  min-height: 100vh;
  display: flex;
  align-items: center;
  justify-content: center;
  font-family: 'Segoe UI', Arial, sans-serif;
  overflow: hidden;
  position: relative;
}

/* ── Stars ── */
.stars {
  position: fixed;
  inset: 0;
  pointer-events: none;
  z-index: 0;
}

.star {
  position: absolute;
  border-radius: 50%;
  background: white;
  animation: twinkle var(--d) ease-in-out infinite alternate;
  opacity: 0;
}

@keyframes twinkle {
  from { opacity: 0; }
  to   { opacity: var(--o); }
}

/* ── Main container ── */
.container {
  position: relative;
  z-index: 2;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 36px;
}

/* ── Ring system ── */
.ring-wrapper {
  position: relative;
  width: 340px;
  height: 340px;
  display: flex;
  align-items: center;
  justify-content: center;
}

/* SVG outer ring with text on path */
.ring-svg {
  position: absolute;
  top: 0; left: 0;
  width: 340px;
  height: 340px;
  animation: spinCW 18s linear infinite;
  z-index: 1;
}

.arc-label {
  fill: rgba(0, 220, 255, 0.65);
  font-size: 9px;
  font-family: 'Segoe UI', Arial, sans-serif;
  font-weight: 500;
  letter-spacing: 3px;
}

/* CSS rings */
.ring {
  position: absolute;
  border-radius: 50%;
  border: 1.5px solid transparent;
}

.ring-mid {
  width: 282px;
  height: 282px;
  border: 1.5px solid rgba(0, 180, 255, 0.15);
  border-top-color: rgba(0, 220, 255, 0.7);
  border-bottom-color: rgba(0, 220, 255, 0.35);
  box-shadow: 0 0 18px rgba(0, 180, 255, 0.12);
  animation: spinCCW 8s linear infinite;
}

.ring-inner {
  width: 250px;
  height: 250px;
  border: 1px solid rgba(0, 160, 255, 0.10);
  border-right-color: rgba(0, 220, 255, 0.5);
  box-shadow: 0 0 10px rgba(0, 160, 255, 0.10);
  animation: spinCW 5s linear infinite;
}

@keyframes spinCW  { to { transform: rotate(360deg);  } }
@keyframes spinCCW { to { transform: rotate(-360deg); } }

/* Radar scan line */
.scan-line {
  position: absolute;
  width: 2px;
  height: 141px;
  top: 50%;
  left: 50%;
  transform-origin: top center;
  background: linear-gradient(to bottom, rgba(0,220,255,0.0), rgba(0,220,255,0.5));
  animation: radar 4s linear infinite;
  border-radius: 1px;
  z-index: 2;
}

@keyframes radar { to { transform: rotate(360deg); } }

/* ── Orbit dots ── */
.dot {
  position: absolute;
  border-radius: 50%;
  top: 50%;
  left: 50%;
  z-index: 4;
}

.dot-1 {
  width: 8px; height: 8px;
  background: #00d4ff;
  box-shadow: 0 0 8px 2px #00d4ff;
  margin: -4px 0 0 -4px;
  animation: orbit1 8s linear infinite;
}
.dot-2 {
  width: 6px; height: 6px;
  background: #00aaff;
  box-shadow: 0 0 6px 2px #00aaff;
  margin: -3px 0 0 -3px;
  animation: orbit2 6s linear infinite;
}
.dot-3 {
  width: 5px; height: 5px;
  background: #33ddff;
  box-shadow: 0 0 5px 2px #33ddff;
  margin: -2.5px 0 0 -2.5px;
  animation: orbit3 10s linear infinite;
}
.dot-4 {
  width: 4px; height: 4px;
  background: #00ccee;
  box-shadow: 0 0 4px 2px #00ccee;
  margin: -2px 0 0 -2px;
  animation: orbit4 7s linear infinite;
}

@keyframes orbit1 {
  from { transform: rotate(0deg)   translateX(141px) rotate(0deg);    }
  to   { transform: rotate(360deg) translateX(141px) rotate(-360deg); }
}
@keyframes orbit2 {
  from { transform: rotate(120deg) translateX(125px) rotate(-120deg); }
  to   { transform: rotate(480deg) translateX(125px) rotate(-480deg); }
}
@keyframes orbit3 {
  from { transform: rotate(240deg) translateX(110px) rotate(-240deg); }
  to   { transform: rotate(600deg) translateX(110px) rotate(-600deg); }
}
@keyframes orbit4 {
  from { transform: rotate(60deg)  translateX(155px) rotate(-60deg);  }
  to   { transform: rotate(420deg) translateX(155px) rotate(-420deg); }
}

/* ── Avatar ── */
.avatar-circle {
  position: relative;
  width: 195px;
  height: 195px;
  border-radius: 50%;
  overflow: hidden;
  border: 2.5px solid rgba(0, 200, 255, 0.55);
  box-shadow:
    0 0 30px rgba(0, 180, 255, 0.40),
    0 0 65px rgba(0, 100, 200, 0.22),
    inset 0 0 20px rgba(0, 0, 0, 0.38);
  animation: avatarPulse 3.5s ease-in-out infinite;
  z-index: 3;
}

.avatar-circle img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

.avatar-circle::before {
  content: '';
  position: absolute;
  inset: 0;
  background: rgba(0, 10, 30, 0.25);
  z-index: 1;
}

.play-btn {
  position: absolute;
  inset: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  z-index: 2;
}

.play-btn svg {
  filter: drop-shadow(0 0 8px rgba(255,255,255,0.55));
  opacity: 0.80;
  margin-left: 5px;
}

@keyframes avatarPulse {
  0%, 100% {
    box-shadow:
      0 0 24px rgba(0,180,255,0.40),
      0 0 50px rgba(0,100,200,0.20);
  }
  50% {
    box-shadow:
      0 0 42px rgba(0,200,255,0.65),
      0 0 85px rgba(0,120,220,0.38);
  }
}

/* ── Greeting ── */
.greeting {
  font-size: 28px;
  font-weight: 400;
  color: #ffffff;
  letter-spacing: 1px;
  text-shadow:
    0 0 12px rgba(0,200,255,0.35),
    0 0 30px rgba(0,120,220,0.18);
  display: flex;
  align-items: center;
}

#name-display {
  color: #00d4ff;
  text-shadow:
    0 0 10px rgba(0,212,255,0.80),
    0 0 30px rgba(0,150,255,0.45);
  font-weight: 500;
  letter-spacing: 1.5px;
  margin-left: 8px;
  min-width: 6px;
}

.cursor {
  display: inline-block;
  color: #00d4ff;
  font-weight: 300;
  margin-left: 2px;
  animation: blink 0.7s step-end infinite;
  text-shadow: 0 0 8px rgba(0,212,255,0.9);
}

@keyframes blink {
  0%, 100% { opacity: 1; }
  50%       { opacity: 0; }
}
