* { box-sizing: border-box; }
body {
  margin: 0;
  min-height: 100vh;
  display: flex;
  align-items: center;
  justify-content: center;
  background: radial-gradient(circle at 50% 20%, #2a2a4a 0%, #101020 70%);
  font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;
  color: #fff;
}
.wrap {
  text-align: center;
  padding: 24px;
  max-width: 420px;
  width: 100%;
}
h1 {
  letter-spacing: 4px;
  font-weight: 300;
  opacity: 0.7;
  margin-bottom: 8px;
}
.avatar {
  font-size: 110px;
  line-height: 1;
  margin: 24px auto;
  width: 220px;
  height: 220px;
  display: flex;
  align-items: center;
  justify-content: center;
  border-radius: 50%;
  background: linear-gradient(145deg, #ff9a56, #ff6f61);
  box-shadow: 0 0 0 0 rgba(255, 111, 97, 0.5);
  transition: transform 0.2s ease, box-shadow 0.2s ease;
}
.avatar.idle { opacity: 0.55; filter: grayscale(0.4); }
.avatar.listening {
  animation: pulseListen 1.4s ease-in-out infinite;
}
.avatar.speaking {
  animation: pulseSpeak 0.5s ease-in-out infinite alternate;
}
@keyframes pulseListen {
  0%, 100% { box-shadow: 0 0 0 0 rgba(255, 111, 97, 0.45); }
  50% { box-shadow: 0 0 0 22px rgba(255, 111, 97, 0); }
}
@keyframes pulseSpeak {
  0% { transform: scale(1); }
  100% { transform: scale(1.08); }
}
.status {
  min-height: 22px;
  opacity: 0.75;
  margin-bottom: 8px;
  font-size: 14px;
}
.caption {
  min-height: 60px;
  font-size: 16px;
  line-height: 1.4;
  opacity: 0.95;
  margin-bottom: 24px;
}
.live-btn {
  border: none;
  border-radius: 999px;
  padding: 14px 32px;
  font-size: 16px;
  font-weight: 600;
  cursor: pointer;
  background: #6c5ce7;
  color: white;
  transition: background 0.2s ease, transform 0.1s ease;
}
.live-btn:active { transform: scale(0.97); }
.live-btn.on { background: #e74c3c; }
.hint {
  margin-top: 18px;
  font-size: 12px;
  opacity: 0.5;
}
