/* ESC Stage speech bubbles (add-only). The legacy 90-char .cb bubble is visually replaced while this module is active. */
#erScene.esb-on .cb{display:none!important}
.esb-layer{position:absolute;inset:0;pointer-events:none;z-index:30;overflow:hidden}
.esb{position:absolute;left:0;top:0;max-width:min(240px,34%);width:max-content;box-sizing:border-box;padding:5px 9px 6px;border-radius:10px;
  background:color-mix(in srgb,var(--s-card,#18181b) 92%,transparent);color:var(--s-tx,#fff);border:1px solid color-mix(in srgb,var(--s-gold,#d4af37) 55%,var(--s-bd,#2a2a2e));
  box-shadow:0 3px 12px color-mix(in srgb,var(--s-bg,#000) 70%,transparent);font:500 12.5px/1.3 Oswald,system-ui,sans-serif;overflow-wrap:anywhere;word-break:break-word;
  animation:esbIn .22s ease-out;transition:opacity .4s ease,transform .18s ease-out;will-change:transform}
.esb::after{content:"";position:absolute;top:100%;left:var(--esb-tail,50%);margin-left:-6px;border:6px solid transparent;border-top-color:color-mix(in srgb,var(--s-gold,#d4af37) 55%,var(--s-bd,#2a2a2e))}
.esb.notail::after{display:none}
.esb-n{display:block;font-weight:700;font-size:.85em;color:var(--s-gold,#d4af37);letter-spacing:.02em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.esb-t{display:block}
.esb.me .esb-t{font-style:italic}
.esb.out{opacity:0}
.esb.still{animation:none;transition:opacity .2s}
@keyframes esbIn{from{opacity:0}to{opacity:1}}
@media (max-width:640px){.esb{max-width:min(200px,62%);font-size:11.5px;padding:4px 7px 5px}}
html.es-hc .esb{background:var(--s-bg,#000);border-color:var(--s-tx,#fff);border-width:2px}
@media (prefers-reduced-motion:reduce){.esb{animation:none;transition:opacity .2s}}
