.td-sound-text{height:22px;line-height:22px;overflow:hidden;pointer-events:none}
.td-label-layer{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;white-space:pre;perspective:140px}
.td-label-letter{display:inline-block;transform-origin:50% 50%;transform:translateY(0) rotateX(0);opacity:1;filter:blur(0);transition:transform 290ms cubic-bezier(.18,.82,.22,1),opacity 190ms cubic-bezier(.2,.7,.3,1),filter 240ms cubic-bezier(.18,.82,.22,1);transition-delay:calc(var(--td-letter)*6ms)}
.td-entering .td-label-letter{transition:none;transform:translateY(calc(var(--td-direction,1)*12px)) rotateX(calc(var(--td-direction,1)*-35deg));opacity:0;filter:blur(1px)}
.td-exiting .td-label-letter{transition-duration:140ms;transition-delay:calc(var(--td-letter)*3ms);transform:translateY(calc(var(--td-direction,1)*-7px)) rotateX(calc(var(--td-direction,1)*25deg));opacity:0;filter:blur(.8px)}
@media(prefers-reduced-motion:reduce){.td-label-letter{transition:none!important;filter:none!important;transform:none!important}.td-exiting{display:none}}

/* Centre a stable LED + caption group, reserving the longest localised label. */
:is(.td-case .td-sound-button,.btn.led){width:var(--td-control-width,152px);min-width:var(--td-control-width,152px);max-width:var(--td-control-width,152px);display:inline-flex;justify-content:center;align-items:center;gap:9px}
:is(.td-case .td-sound-button,.btn.led) :is(.td-sound-led,.indicator){position:static;left:auto;right:auto;top:auto;bottom:auto;margin:0;transform:none;flex:0 0 6px}
:is(.td-case .td-sound-button,.btn.led) .td-sound-text{position:relative;left:auto;right:auto;top:auto;bottom:auto;margin:0;width:var(--td-label-width,96px);flex:0 0 var(--td-label-width,96px);text-align:center;height:22px}
