.chat-msg__bubble--speaking{box-shadow:0 0 0 2px var(--color-accent-soft), 0 2px 14px var(--color-accent-soft);animation:read-aloud-breathe 2.4s var(--ease-out) infinite alternate}.chat-msg__listened{opacity:.5;display:inline-flex}.chat-msg__listened svg{display:block}.read-aloud{z-index:2;min-width:26px;height:22px;padding:0 var(--space-1);border:2px solid var(--color-bg);border-radius:var(--radius-pill);background:var(--color-accent-soft);color:var(--color-accent-strong);box-shadow:var(--shadow-sm);pointer-events:none;animation:read-aloud-in var(--duration-fast) var(--ease-spring) both;justify-content:center;align-items:center;gap:2px;display:inline-flex;position:absolute;top:-10px;right:-8px}.chat-msg--mine .read-aloud{left:-8px;right:auto}.read-aloud__bar{border-radius:var(--radius-pill);transform-origin:50%;width:3px;height:10px;animation:read-aloud-wave .9s var(--ease-out) infinite alternate;background:currentColor}.read-aloud__bar:nth-child(2){height:12px;animation-delay:-300ms}.read-aloud__bar:nth-child(3){animation-delay:-600ms}.read-aloud .spinner{border-width:2px}@keyframes read-aloud-in{0%{opacity:0;transform:scale(.6)}}@keyframes read-aloud-wave{0%{transform:scaleY(.35)}to{transform:scaleY(1)}}@keyframes read-aloud-breathe{to{box-shadow:0 0 0 3px var(--color-accent-soft), 0 2px 20px var(--color-accent-soft)}}@media (prefers-reduced-motion:reduce){.chat-msg__bubble--speaking,.read-aloud,.read-aloud__bar{animation:none}.read-aloud__bar:nth-child(2){height:12px}.read-aloud__bar:first-child,.read-aloud__bar:nth-child(3){height:7px}}.read-aloud-voice{align-items:flex-end;gap:var(--space-2);display:flex}.read-aloud-voice>:first-child{flex:1;min-width:0}.read-aloud-voice__play{flex:none;min-width:6.5em}.read-aloud-speed{z-index:5;width:200px;padding:var(--space-1) var(--space-3) var(--space-1);border-radius:var(--radius-lg);border:1px solid var(--color-border);background:var(--color-surface);box-shadow:var(--shadow-sm);animation:read-aloud-speed-in var(--duration-fast) var(--ease-out) both;position:absolute;bottom:12px;left:50%;transform:translate(-50%)}@keyframes read-aloud-speed-in{0%{opacity:0;transform:translate(-50%,6px)}}.read-aloud-slider{--thumb:22px}.read-aloud-slider__rail{height:32px;position:relative}.read-aloud-slider__line{top:50%;left:calc(var(--thumb) / 2);right:calc(var(--thumb) / 2);border-radius:var(--radius-pill);background:var(--color-border);height:4px;position:absolute;transform:translateY(-50%)}.read-aloud-slider__tick{top:50%;left:calc(var(--thumb) / 2 + (100% - var(--thumb)) * var(--at));border-radius:var(--radius-pill);background:var(--color-muted);width:2px;height:12px;position:absolute;transform:translate(-50%,-50%)}.read-aloud-slider__input{appearance:none;-webkit-tap-highlight-color:transparent;touch-action:none;background:0 0;width:100%;height:100%;margin:0;display:block;position:relative}.read-aloud-slider__input::-webkit-slider-runnable-track{height:var(--thumb);background:0 0}.read-aloud-slider__input::-moz-range-track{height:var(--thumb);background:0 0}.read-aloud-slider__input::-webkit-slider-thumb{-webkit-appearance:none;width:var(--thumb);height:var(--thumb);border:3px solid var(--color-surface);background:var(--color-accent);box-shadow:var(--shadow-sm);border-radius:50%}.read-aloud-slider__input::-moz-range-thumb{box-sizing:border-box;width:var(--thumb);height:var(--thumb);border:3px solid var(--color-surface);background:var(--color-accent);box-shadow:var(--shadow-sm);border-radius:50%}.read-aloud-slider__input:focus-visible{outline:none}.read-aloud-slider__input:focus-visible::-webkit-slider-thumb{outline:2px solid var(--color-accent);outline-offset:2px}.read-aloud-slider__input:focus-visible::-moz-range-thumb{outline:2px solid var(--color-accent);outline-offset:2px}.read-aloud-slider__ends{color:var(--color-muted);font-variant-numeric:tabular-nums;justify-content:space-between;font-size:.75rem;font-weight:600;display:flex}@media (prefers-reduced-motion:reduce){.read-aloud-speed{animation:none}}
