.typing{min-width:0;color:var(--color-accent-strong);align-items:center;gap:6px;font-style:italic;display:inline-flex}.typing--header{font-size:.75rem}.typing__text{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.typing__dots{background:color-mix(in srgb, var(--color-accent) 16%, transparent);border-radius:999px;flex:none;align-items:center;gap:3px;padding:3px 6px;display:inline-flex}.typing__dots span{opacity:.4;background:currentColor;border-radius:50%;width:5px;height:5px;animation:1.2s ease-in-out infinite typing-bounce}.typing__dots span:nth-child(2){animation-delay:.15s}.typing__dots span:nth-child(3){animation-delay:.3s}@keyframes typing-bounce{0%,60%,to{opacity:.4;transform:translateY(0)}30%{opacity:1;transform:translateY(-3px)}}.typing__mic{background:color-mix(in srgb, var(--color-accent) 16%, transparent);border-radius:50%;flex:none;justify-content:center;align-items:center;width:20px;height:20px;display:inline-flex;position:relative}.typing--header .typing__mic{width:16px;height:16px}.typing__mic:after{content:"";opacity:0;border:1.5px solid;border-radius:50%;animation:1.6s ease-out infinite typing-pulse;position:absolute;inset:0}@keyframes typing-pulse{0%{opacity:.6;transform:scale(.8)}to{opacity:0;transform:scale(1.5)}}@media (prefers-reduced-motion:reduce){.typing__dots span{opacity:.7;animation:none}.typing__mic:after{opacity:0;animation:none}}@media (prefers-color-scheme:dark){.typing{color:var(--color-accent)}}.typing-bubble{margin-top:6px;animation:.18s ease-out typing-bubble-in}.typing-bubble__inner{align-items:center;min-height:36px;padding:8px 14px;display:flex}.typing-bubble__dots{color:currentColor;align-items:center;gap:4px;display:inline-flex}.typing-bubble__dots span{opacity:.4;background:currentColor;border-radius:50%;width:7px;height:7px;animation:1.2s ease-in-out infinite typing-bounce}.typing-bubble__dots span:nth-child(2){animation-delay:.15s}.typing-bubble__dots span:nth-child(3){animation-delay:.3s}.typing-bubble__recording{color:inherit;font-size:.85rem}@keyframes typing-bubble-in{0%{opacity:0;transform:translateY(6px)scale(.96)}}@media (prefers-reduced-motion:reduce){.typing-bubble,.typing-bubble__dots span{animation:none}.typing-bubble__dots span{opacity:.7}}
