/* A measured visual layer leaves the source text, kerning and line breaks intact. */
.wave-positioned {position:relative;}
@media(prefers-reduced-motion:no-preference) {
  body:not(.ambient-paused) .wave-heading:is([data-wave-pending],[data-wave-active]),
  body:not(.ambient-paused) .wave-heading:is([data-wave-pending],[data-wave-active]) *:not(.wave-layer):not(.wave-glyph) {
    color:transparent!important;
    -webkit-text-fill-color:transparent!important;
    text-shadow:none!important;
  }
}
.wave-heading > .wave-layer {
  display:block;position:absolute;inset:0;margin:0;padding:0;
  width:100%;height:100%;overflow:visible;pointer-events:none;user-select:none;
  font:inherit;text-align:left;letter-spacing:inherit;z-index:1;
}
.wave-layer > .wave-glyph {
  display:block;position:absolute;width:max-content;height:auto;
  margin:0;padding:0;border:0;white-space:pre;text-align:left;
  -webkit-text-fill-color:currentColor;
  transform-origin:50% 75%;backface-visibility:hidden;
}
.js [data-reveal].wave-reveal-group {transform:none;opacity:1;transition:none;}
/* Motion off restores source ink immediately, without waiting for script work. */
.ambient-paused .wave-layer {display:none!important;}
@media(prefers-reduced-motion:reduce) {
  .wave-layer {display:none!important;}
}
