#hubbly-voice-assistant[data-state="listening"] .hubbly-orb-response,
#hubbly-voice-assistant[data-state="speaking"] .hubbly-orb-response {
  opacity: .78;
}

#hubbly-voice-assistant[data-state="listening"] .hubbly-orb {
  animation: hubbly-orb-listen 1.6s ease-in-out infinite;
}

#hubbly-voice-assistant[data-state="speaking"] .hubbly-orb {
  animation: hubbly-orb-speak 0.72s ease-in-out infinite;
}

#hubbly-voice-assistant[data-state="listening"] .hubbly-orb-breath::after {
  animation-duration: 4.5s;
}

#hubbly-voice-assistant[data-state="speaking"] .hubbly-orb-breath::after {
  animation-duration: 2.2s;
}

@keyframes hubbly-orb-listen {
  0%, 100% { transform: scale(1); }
  50% { transform: scale(1.045); }
}

@keyframes hubbly-orb-speak {
  0%, 100% { transform: scale(1); filter: brightness(1); }
  50% { transform: scale(1.07); filter: brightness(1.18); }
}

#hubbly-voice-assistant .hubbly-voice-captions {
  margin: 12px 0 0;
  color: #98928a;
  font-size: 10px;
  font-weight: 700;
  letter-spacing: .1em;
  line-height: 1.2;
  text-transform: uppercase;
}

#hubbly-voice-assistant .hubbly-voice-type {
  align-self: flex-start;
  margin-top: 8px;
  padding: 0;
  border: 0;
  background: none;
  color: #98928a;
  font-size: 12px;
  font-weight: 400;
  letter-spacing: 0;
  line-height: 1.4;
  text-decoration: underline;
  text-transform: none;
  cursor: pointer;
}

#hubbly-voice-assistant .hubbly-voice-transcript {
  display: flex;
  flex-direction: column;
  gap: 8px;
  max-height: 180px;
  margin-top: 12px;
  overflow: auto;
  color: #f2f0eb;
  font-size: 13px;
  line-height: 1.4;
}

#hubbly-voice-assistant .hubbly-voice-transcript p {
  margin: 0;
}

#hubbly-voice-assistant .hubbly-voice-transcript p[data-role="user"] {
  color: #c7c2ba;
}

#hubbly-voice-assistant .hubbly-voice-transcript p[data-role="update"] {
  color: #d89a70;
  font-size: 12px;
}

#hubbly-voice-assistant .hubbly-voice-composer {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 8px;
  margin-top: 10px;
}

#hubbly-voice-assistant .hubbly-voice-composer input {
  min-width: 0;
  min-height: 44px;
  border: 1px solid rgba(242, 240, 235, .35);
  background: transparent;
  color: #f2f0eb;
  padding: 0 10px;
  font: inherit;
}

#hubbly-voice-assistant .hubbly-voice-composer button {
  min-height: 44px;
  border: 1px solid var(--voice-orange, #f46a24);
  background: transparent;
  color: var(--voice-orange, #f46a24);
  padding: 0 12px;
  font-size: 10px;
  font-weight: 700;
  letter-spacing: .09em;
  text-transform: uppercase;
}

#hubbly-voice-assistant .hubbly-voice-consent {
  display: flex;
  gap: 8px;
  margin-top: 10px;
  color: #c7c2ba;
  font-size: 12px;
  line-height: 1.4;
}

#hubbly-voice-assistant .hubbly-voice-sr {
  position: absolute;
  width: 1px;
  height: 1px;
  overflow: hidden;
  clip-path: inset(50%);
}

#hubbly-voice-assistant .hubbly-voice-memory {
  margin-top: 9px;
  color: #98928a;
  font-size: 12px;
  line-height: 1.45;
}

#hubbly-voice-assistant .hubbly-voice-forget {
  display: inline;
  min-height: 0;
  margin: 0;
  padding: 0;
  border: 0;
  background: none;
  color: inherit;
  font: inherit;
  text-decoration: underline;
  cursor: pointer;
}
