/* Approved listeners retained; the tape tapers into three meaningful outputs. */
.echo-wave{opacity:0;z-index:1}.ribbon-wave-ready .echo-wave{opacity:1}
.echo-wave .wave-branch{fill:none;stroke:#0a7a50;stroke-width:1.5;stroke-linecap:round}
.echo-wave .wave-sheen{fill:none;stroke:#69b99b;stroke-width:1;opacity:.45}
.echo-wave .wave-end{fill:#0a7a50;stroke:#fafbf8;stroke-width:1.5;r:5}
.echo-wave-labels{display:none;position:absolute;inset:0;pointer-events:none;z-index:2}
.ribbon-wave-ready .echo-wave-labels{display:block}.ribbon-wave-ready .ribbon-fallback{display:none}
.echo-wave-labels a{position:absolute;display:flex;align-items:center;min-height:44px;color:#1a1a1a;font-size:13px;line-height:20px;font-weight:500;text-decoration:none;pointer-events:auto;padding:0 4px;white-space:nowrap}
.echo-wave-labels a:hover{color:#0a7a50;text-decoration:underline;text-underline-offset:4px}.echo-wave-labels a:focus-visible{outline:2px solid #0a7a50;outline-offset:4px;border-radius:4px}
.ribbon-fallback a{color:#1a1a1a;font-size:12px;line-height:20px;text-decoration:none;min-height:44px;display:inline-flex;align-items:center;gap:8px}.ribbon-fallback a::before{content:'';width:5px;height:5px;flex:none;background:#0a7a50;border-radius:50%}.ribbon-fallback a:hover{text-decoration:underline;text-underline-offset:4px}
@media(max-width:999px){.echo-wave,.ribbon-wave-ready .echo-wave-labels{display:none}.ribbon-wave-ready .ribbon-fallback,.ribbon-fallback{display:flex;gap:20px;flex-wrap:wrap}}
@media(max-width:359px){.ribbon-fallback{gap:12px}.ribbon-fallback a{font-size:11px}}
@media(prefers-reduced-motion:reduce){.echo-wave *{animation:none!important;transition:none!important}}
