/* GradientText — React Bits (vanilla port), Transfereko tokens */

.animated-gradient-text {
  position: relative;
  display: inline-flex;
  max-width: fit-content;
  flex-direction: row;
  align-items: center;
  justify-content: center;
  margin: 0;
  border-radius: 1.25rem;
  font-weight: inherit;
  overflow: hidden;
  cursor: inherit;
  vertical-align: baseline;
  /* Override static .gradient-text clip on the wrapper */
  background: none !important;
  -webkit-background-clip: border-box !important;
  background-clip: border-box !important;
  color: inherit;
  -webkit-text-fill-color: inherit;
}

.animated-gradient-text.with-border {
  padding: 0.35rem 0.75rem;
  cursor: pointer;
  backdrop-filter: blur(10px);
  transition: box-shadow 0.5s ease-out;
}

.animated-gradient-text .gradient-overlay {
  position: absolute;
  inset: 0;
  border-radius: inherit;
  z-index: 0;
  pointer-events: none;
  background-image: var(--gt-image);
  background-size: var(--gt-size);
  background-repeat: repeat;
  background-position: var(--gt-pos, 0% 50%);
  animation: var(--gt-anim) var(--gt-duration, 8s) ease-in-out var(--gt-iteration, infinite);
  animation-direction: var(--gt-direction, alternate);
}

.animated-gradient-text .gradient-overlay::before {
  content: '';
  position: absolute;
  border-radius: inherit;
  width: calc(100% - 2px);
  height: calc(100% - 2px);
  left: 50%;
  top: 50%;
  transform: translate(-50%, -50%);
  background-color: var(--surface, #120F17);
  z-index: -1;
}

.animated-gradient-text .text-content {
  display: inline-block;
  position: relative;
  z-index: 2;
  background-image: var(--gt-image);
  background-size: var(--gt-size);
  background-repeat: repeat;
  background-position: var(--gt-pos, 0% 50%);
  background-clip: text;
  -webkit-background-clip: text;
  color: transparent;
  -webkit-text-fill-color: transparent;
  animation: var(--gt-anim) var(--gt-duration, 8s) ease-in-out var(--gt-iteration, infinite);
  animation-direction: var(--gt-direction, alternate);
}

.animated-gradient-text.is-paused .text-content,
.animated-gradient-text.is-paused .gradient-overlay {
  animation-play-state: paused;
}

.animated-gradient-text[data-gt-dir='horizontal'] {
  --gt-anim: tk-gt-shift-x;
  --gt-size: 300% 100%;
  --gt-pos: 0% 50%;
}

.animated-gradient-text[data-gt-dir='vertical'] {
  --gt-anim: tk-gt-shift-y;
  --gt-size: 100% 300%;
  --gt-pos: 50% 0%;
}

.animated-gradient-text[data-gt-dir='diagonal'] {
  --gt-anim: tk-gt-shift-x;
  --gt-size: 300% 300%;
  --gt-pos: 0% 50%;
}

@keyframes tk-gt-shift-x {
  0% { background-position: 0% 50%; }
  100% { background-position: 100% 50%; }
}

@keyframes tk-gt-shift-y {
  0% { background-position: 50% 0%; }
  100% { background-position: 50% 100%; }
}

@media (prefers-reduced-motion: reduce) {
  .animated-gradient-text .text-content,
  .animated-gradient-text .gradient-overlay {
    animation: none !important;
    background-position: 50% 50% !important;
  }
}
