/* Rose pearl: slow pearlescent sweep with intermittent small sparkles. */
.fx-nick-theme-rose_pearl {
  --fx-text-gradient: linear-gradient(105deg, #ee609e 0%, #ffc2de 20%, #f98abb 38%, #fff1f8 49%, #ffd1e7 54%, #f485bb 72%, #ee609e 100%);
  position: relative;
  display: inline-block;
  background-size: 260% 100%;
  -webkit-text-fill-color: transparent;
  filter: drop-shadow(0 0 3px rgba(244,116,178,.28));
  animation: rose-pearl-flow 7s ease-in-out infinite;
}
.fx-nick-theme-rose_pearl::after {
  content: '';
  position: absolute;
  inset: -.22em -.13em;
  pointer-events: none;
  background:
    radial-gradient(ellipse 1px 4px at 18% 32%, #fff0f8 70%, transparent 100%),
    radial-gradient(ellipse 4px 1px at 18% 32%, #fff0f8 70%, transparent 100%),
    radial-gradient(ellipse 1px 3px at 82% 64%, #ffcfeb 70%, transparent 100%),
    radial-gradient(ellipse 3px 1px at 82% 64%, #ffcfeb 70%, transparent 100%);
  opacity: 0;
  animation: rose-pearl-spark 7s ease-in-out 1.2s infinite;
}
@keyframes rose-pearl-flow {
  0%, 100% { background-position: 0% 50%; }
  50% { background-position: 100% 50%; }
}
@keyframes rose-pearl-spark {
  0%, 38%, 64%, 100% { opacity: 0; transform: translateY(1px) scale(.8); }
  46%, 54% { opacity: .85; transform: translateY(0) scale(1); }
}
@media (prefers-reduced-motion: reduce) {
  .fx-nick-theme-rose_pearl { animation: none; background-position: 45% 50%; }
  .fx-nick-theme-rose_pearl::after { animation: none; opacity: 0; }
}
