@keyframes spin {
  0% {transform: rotate(0deg)}
  25% {transform: rotate(45deg)}
  50% {transform: rotate(90deg)}
  75% {transform: rotate(135deg)}
  100% {transform: rotate(180deg)}
}

@keyframes line-grow {
    from {opacity: 0; stroke-dasharray: 100%; stroke-dashoffset: 100%;}
    to {opacity: 1; stroke-dasharray: 100%; stroke-dashoffset: 0%;}
}

@keyframes fade {
  from {opacity: 0;}
  to {opacity: 1;}
}

@keyframes typing {
  from {width: 0}
  to {width: 10ch}
}

@keyframes blink-caret {
  from, to {border-color: transparent}
  50% {border-color: var(--pink);}
}

@keyframes gradient-moving {
  0% {
    background-position: 0% 50%;
  }
  25% {
    background-position: 50% 100%;
  }
  50% {
    background-position: 100% 50%;
  }
  75% {
    background-position: 50% 0%;
  }
  100% {
    background-position: 0% 50%;
  }
}