.prompter-demo {
  --prompter-h: clamp(15rem, 34vw, 22rem);
  max-width: 56rem;
  margin: 0 auto;
  overflow: hidden;
  border-radius: 1.2rem;
  border: 1px solid rgba(255, 255, 255, 0.1);
  background: #000;
  box-shadow: 0 3rem 6rem rgba(0, 0, 0, 0.6), 0 0 10rem rgba(255, 198, 92, 0.1);
}

.prompter-bar {
  display: flex;
  align-items: center;
  gap: 0.9rem;
  padding: 0.75rem 1rem;
  border-bottom: 1px solid rgba(255, 255, 255, 0.06);
  background: #1c1a18;
  font-size: 0.8rem;
  color: rgba(236, 238, 241, 0.55);
}

.prompter-title { flex: 1; overflow: hidden; text-align: center; text-overflow: ellipsis; white-space: nowrap; font-weight: 600; }

.listening { display: flex; align-items: center; gap: 0.5rem; min-width: 8.5rem; justify-content: flex-end; color: var(--live); transition: color 300ms ease; }

.meter { display: flex; align-items: center; gap: 2px; height: 0.9rem; }

.meter i {
  width: 2px;
  height: 100%;
  border-radius: 2px;
  background: currentColor;
  animation: level 700ms ease-in-out infinite alternate;
}

.meter i:nth-child(2) { animation-delay: -200ms; }
.meter i:nth-child(3) { animation-delay: -450ms; }
.meter i:nth-child(4) { animation-delay: -100ms; }
.meter i:nth-child(5) { animation-delay: -350ms; }

@keyframes level { from { transform: scaleY(0.25); } to { transform: scaleY(1); } }

.is-paused .listening { color: rgba(236, 238, 241, 0.45); }
.is-paused .meter i { animation: none; transform: scaleY(0.2); }

.prompter-body {
  position: relative;
  height: var(--prompter-h);
  overflow: hidden;
  padding-inline: clamp(1.5rem, 5vw, 3.5rem);
  font-family: -apple-system, BlinkMacSystemFont, "SF Pro Display", var(--body);
  font-size: clamp(1.5rem, 0.9rem + 2.6vw, 2.7rem);
  line-height: 1.3;
  -webkit-mask-image: linear-gradient(transparent, #000 16%, #000 72%, transparent);
  mask-image: linear-gradient(transparent, #000 16%, #000 72%, transparent);
}

.eye-line {
  position: absolute;
  inset-inline: 0;
  top: calc(var(--prompter-h) * 0.3);
  height: 1.3em;
  background: rgba(255, 255, 255, 0.06);
}

.prompter-text {
  position: relative;
  margin: 0;
  padding-top: calc(var(--prompter-h) * 0.3);
  font-weight: 500;
  letter-spacing: -0.01em;
  transition: transform 600ms cubic-bezier(0.22, 1, 0.36, 1);
}

.prompter-text .w { color: rgba(236, 238, 241, 0.38); transition: color 200ms ease, text-shadow 200ms ease; }
.prompter-text .w.is-spent { color: rgba(236, 238, 241, 0.82); }
.prompter-text .w.is-live { color: var(--live); text-shadow: 0 0 1.4rem rgba(255, 198, 92, 0.5); }

@media (prefers-reduced-motion: reduce) {
  .meter i { animation: none; transform: scaleY(0.6); }
  .prompter-text .w { color: rgba(236, 238, 241, 0.82); }
}
