.system-text-reveal {
  position: relative;
  isolation: isolate;
  overflow: visible;
}
.system-text-reveal > .star-line {
  display: block;
  opacity: 1;
  clip-path: none;
  transform: none;
}
.system-text-reveal > .star-line--accent { color: var(--ds-signal-pink); font-style: italic; }
.star-char {
  --hover-strength: 0;
  position: relative;
  display: inline-block;
  opacity: 0;
  filter: blur(9px) brightness(1.8);
  transform: translate3d(0, .18em, 0) scale(.9);
  transform-origin: 50% 60%;
  transition: color 420ms var(--ds-ease-soft), text-shadow 520ms var(--ds-ease-soft), filter 520ms var(--ds-ease-soft);
  will-change: opacity, filter, transform;
}
.star-char--space { width: .23em; }
.section-heading.is-visible .star-char {
  animation: star-text-materialise 1.55s var(--ds-ease-soft) both;
  animation-delay: calc(80ms + var(--char-delay));
}
.star-char.is-seed::after {
  content: "✦";
  position: absolute;
  z-index: 2;
  left: 50%;
  top: 50%;
  color: var(--ds-signal-pink);
  font: 400 .16em/1 var(--font-body);
  opacity: 0;
  transform: translate(-50%, -50%) scale(.2) rotate(-22deg);
  text-shadow: 0 0 12px rgba(255, 159, 196, .95);
  pointer-events: none;
}
.section-heading.is-visible .star-char.is-seed::after {
  animation: star-text-seed 1.05s ease-out both;
  animation-delay: calc(30ms + var(--char-delay));
}
.system-text-reveal.is-hovering .star-char {
  color: rgb(255 244 249 / calc(.94 + var(--hover-strength) * .06));
  filter: blur(0) brightness(calc(1 + var(--hover-strength) * .5));
  text-shadow:
    0 0 calc(3px + var(--hover-strength) * 9px) rgb(255 159 196 / calc(.04 + var(--hover-strength) * .72)),
    0 0 calc(12px + var(--hover-strength) * 22px) rgb(255 159 196 / calc(var(--hover-strength) * .26));
}
.system-text-glint {
  position: absolute;
  z-index: 3;
  left: var(--glint-x, 50%);
  top: var(--glint-y, 50%);
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: #fff5fa;
  box-shadow: 0 0 9px 2px rgba(255,159,196,.9), 0 0 28px 6px rgba(255,159,196,.3);
  opacity: 0;
  transform: translate(-50%,-50%) scale(.4) rotate(0deg);
  transition: opacity 320ms ease, transform 620ms var(--ds-ease-soft);
  pointer-events: none;
}
.system-text-glint::before,
.system-text-glint::after {
  content: "";
  position: absolute;
  left: 50%;
  top: 50%;
  width: 26px;
  height: 1px;
  background: linear-gradient(90deg, transparent, rgba(255,184,221,.9), transparent);
  transform: translate(-50%,-50%);
}
.system-text-glint::after { transform: translate(-50%,-50%) rotate(90deg); }
.system-text-reveal.is-hovering .system-text-glint {
  opacity: .92;
  transform: translate(-50%,-50%) scale(1) rotate(45deg);
}
@keyframes star-text-materialise {
  0% { opacity: 0; filter: blur(10px) brightness(2.2); transform: translate3d(0,.18em,0) scale(.88); text-shadow: 0 0 0 rgba(255,159,196,0); }
  22% { opacity: .18; filter: blur(7px) brightness(2.8); text-shadow: 0 0 16px rgba(255,159,196,.68); }
  43% { opacity: .78; filter: blur(2px) brightness(1.65); transform: translate3d(0,0,0) scale(1.025); }
  58% { opacity: .52; filter: blur(1px) brightness(1.25); }
  76% { opacity: .96; filter: blur(0) brightness(1.35); text-shadow: 0 0 11px rgba(255,159,196,.2); }
  100% { opacity: 1; filter: blur(0) brightness(1); transform: translate3d(0,0,0) scale(1); text-shadow: 0 0 0 rgba(255,159,196,0); }
}
@keyframes star-text-seed {
  0%, 14% { opacity: 0; transform: translate(-50%,-50%) scale(.15) rotate(-30deg); }
  38% { opacity: .98; transform: translate(-50%,-50%) scale(1.25) rotate(4deg); }
  72% { opacity: .28; transform: translate(-50%,-50%) scale(.58) rotate(34deg); }
  100% { opacity: 0; transform: translate(-50%,-50%) scale(.1) rotate(55deg); }
}


@media(prefers-reduced-motion:reduce){.star-char{opacity:1;filter:none;transform:none;animation:none!important}.star-char::after,.system-text-glint{display:none}}
