/* Keep the same glyph spacing and wrapping before, during and after SplitText. */
[split-heading][split-heading],
[split-body][split-body],
[data-split][data-split] {
  text-wrap: wrap;
}

[split-heading],
[data-split="name"] {
  font-kerning: none;
  font-variant-ligatures: none;
  text-rendering: optimizeSpeed;
}

/* Padding protects descenders; equal negative margins keep line boxes stable. */
:is([split-heading], [split-body], [data-split]) .is-split-char {
  padding-bottom: 0.2em;
  margin-bottom: -0.2em;
}

/* Adjacent negative block margins collapse, changing paragraph line spacing.
   Body line-height already leaves room for descenders, so no buffer is needed. */
:is([split-heading], [split-body], [data-split]) :is(.is-split-line, .is-split-line-mask, .line-mask) {
  padding-block: 0;
  margin-block: 0;
}
