
.glow-text {
  font-size: var(--font-size, 40px);
  font-family: var(--font-family, sans-serif);
  color: var(--text-color, #fff);
  text-align: var(--text-align, center);
  padding: 20px;
  border-radius: var(--border-radius, 8px);
  text-shadow: 0 0 var(--glow-blur, 15px) var(--glow-color, #0ff);
  animation: var(--glow-animation, pulse) var(--glow-speed, 2s) infinite;
  -webkit-text-stroke: var(--stroke-width, 1px) var(--stroke-color, black);
  position: relative;
}

.glow-text.outline-animated::before {
  content: attr(data-text);
  position: absolute;
  top: 0; left: 0;
  z-index: -1;
  -webkit-text-stroke: var(--outline-width, 2px) transparent;
  color: transparent;
  background-clip: text;
  -webkit-background-clip: text;
  animation: var(--outline-animation, rainbowOutline) var(--outline-speed, 3s) linear infinite;
  background-size: 300% 300%;
  background-position: 0% 50%;
}

@keyframes pulse { 0%, 100% { text-shadow: 0 0 5px var(--glow-color, #0ff); } 50% { text-shadow: 0 0 20px var(--glow-color, #0ff); } }
@keyframes flicker { 0%, 100% { opacity: 1; } 45% { opacity: 0.6; } 50% { opacity: 0.8; } 55% { opacity: 0.6; } 60% { opacity: 1; } }
@keyframes rainbowGlow { 0% { text-shadow: 0 0 10px red; } 25% { text-shadow: 0 0 10px yellow; } 50% { text-shadow: 0 0 10px lime; } 75% { text-shadow: 0 0 10px blue; } 100% { text-shadow: 0 0 10px red; } }
@keyframes movingGlow { 0% { text-shadow: -2px 0 10px var(--glow-color); } 100% { text-shadow: 2px 0 10px var(--glow-color); } }
@keyframes rainbowOutline { 0% { background-image: linear-gradient(45deg, red, orange, yellow, green, blue, indigo, violet); } 100% { background-image: linear-gradient(405deg, red, orange, yellow, green, blue, indigo, violet); } }
@keyframes movingOutline { 0% { background-position: 0% 50%; } 100% { background-position: 100% 50%; } }
@keyframes glitchOutline { 0% { background-position: 0% 0%; } 25% { background-position: 30% 10%; } 50% { background-position: 50% -10%; } 75% { background-position: 70% 0%; } 100% { background-position: 100% 10%; } }
