@keyframes pulseGradient {
  0%, 100% { background-position: 0% 50%; }
  50%      { background-position: 100% 50%; }
}
.animate-gradient {
  animation: pulseGradient 15s ease-in-out infinite;
}

@keyframes gradientShift {
  0%   { background-position: 0% 50%; }
  50%  { background-position: 100% 50%; }
  100% { background-position: 0% 50%; }
}

/* переменная градиента на секции */
.dm-block{
  --dm-grad: linear-gradient(90deg,
    rgba(236,72,153,0.85),
    rgba(59,130,246,0.85),
    rgba(244,63,94,0.85)
  );
}
.dark .dm-block{
  --dm-grad: linear-gradient(90deg,
    rgba(236,72,153,0.95),
    rgba(37,99,235,0.95),
    rgba(244,63,94,0.95)
  );
}

/* градиентный “чернильный” текст */
.dm-ink{
  background-image: var(--dm-grad);
  background-size: 400% 400%;
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
  animation: gradientShift 12s ease infinite;
  filter: brightness(0.85);
}
