/* Inline letters retain the existing type, emphasis and natural text wrapping. */
.bio-ripple-char { position:relative; }
.bio-ripple-glyph {
  display:none;
  position:absolute;
  left:0;
  top:0;
  width:100%;
  overflow:hidden;
  text-align:center;
  pointer-events:none;
  user-select:none;
  -webkit-user-select:none;
}
.bio-ripple-char.is-rippling > .bio-ripple-original { opacity:0; }
.bio-ripple-char.is-rippling > .bio-ripple-glyph { display:block; }
@media (prefers-reduced-motion:reduce) {
  .bio-ripple-char.is-rippling > .bio-ripple-original { opacity:1; }
  .bio-ripple-char.is-rippling > .bio-ripple-glyph { display:none; }
}

.bio-ripple-readable {
  position:absolute; width:1px; height:1px; padding:0; margin:-1px;
  overflow:hidden; clip-path:inset(50%); white-space:nowrap;
  user-select:none; -webkit-user-select:none;
}

/* Every title contributes to the same grid cell, reserving its maximum height. */
.bio-ripple-titles { display: grid; }
.bio-ripple-title { grid-area: 1 / 1; min-width: 0; width:fit-content; max-width:100%; justify-self:start; visibility: hidden; }
.bio-ripple-title:first-child { visibility: visible; }
