.glitch {
  position: relative;
}

@keyframes noise-anim {
  0% {
    clip: rect(67px, 9999px, 68px, 0);
  }

  5% {
    clip: rect(87px, 9999px, 93px, 0);
  }

  10% {
    clip: rect(62px, 9999px, 94px, 0);
  }

  15% {
    clip: rect(15px, 9999px, 51px, 0);
  }

  20% {
    clip: rect(60px, 9999px, 63px, 0);
  }

  25% {
    clip: rect(2px, 9999px, 56px, 0);
  }

  30% {
    clip: rect(55px, 9999px, 75px, 0);
  }

  35% {
    clip: rect(25px, 9999px, 84px, 0);
  }

  40% {
    clip: rect(10px, 9999px, 34px, 0);
  }

  45% {
    clip: rect(46px, 9999px, 91px, 0);
  }

  50% {
    clip: rect(95px, 9999px, 3px, 0);
  }

  55% {
    clip: rect(17px, 9999px, 73px, 0);
  }

  60% {
    clip: rect(62px, 9999px, 59px, 0);
  }

  65% {
    clip: rect(32px, 9999px, 77px, 0);
  }

  70% {
    clip: rect(17px, 9999px, 13px, 0);
  }

  75% {
    clip: rect(46px, 9999px, 9px, 0);
  }

  80% {
    clip: rect(54px, 9999px, 69px, 0);
  }

  85% {
    clip: rect(72px, 9999px, 31px, 0);
  }

  90% {
    clip: rect(64px, 9999px, 68px, 0);
  }

  95% {
    clip: rect(82px, 9999px, 48px, 0);
  }

  100% {
    clip: rect(47px, 9999px, 90px, 0);
  }
}

.glitch:after {
  content: attr(data-text);
  position: absolute;
  left: 2px;
  text-shadow: -1px 0 red;
  top: 0;
  color: white;
  background: transparent;
  overflow: hidden;
  clip: rect(0, 900px, 0, 0);
  animation: noise-anim 2s infinite linear alternate-reverse;
}

@keyframes noise-anim-2 {
  0% {
    clip: rect(54px, 9999px, 22px, 0);
  }

  5% {
    clip: rect(22px, 9999px, 83px, 0);
  }

  10% {
    clip: rect(51px, 9999px, 60px, 0);
  }

  15% {
    clip: rect(13px, 9999px, 81px, 0);
  }

  20% {
    clip: rect(85px, 9999px, 48px, 0);
  }

  25% {
    clip: rect(30px, 9999px, 83px, 0);
  }

  30% {
    clip: rect(76px, 9999px, 1px, 0);
  }

  35% {
    clip: rect(50px, 9999px, 54px, 0);
  }

  40% {
    clip: rect(55px, 9999px, 16px, 0);
  }

  45% {
    clip: rect(1px, 9999px, 60px, 0);
  }

  50% {
    clip: rect(91px, 9999px, 76px, 0);
  }

  55% {
    clip: rect(73px, 9999px, 73px, 0);
  }

  60% {
    clip: rect(99px, 9999px, 51px, 0);
  }

  65% {
    clip: rect(54px, 9999px, 28px, 0);
  }

  70% {
    clip: rect(28px, 9999px, 30px, 0);
  }

  75% {
    clip: rect(79px, 9999px, 61px, 0);
  }

  80% {
    clip: rect(11px, 9999px, 23px, 0);
  }

  85% {
    clip: rect(26px, 9999px, 98px, 0);
  }

  90% {
    clip: rect(92px, 9999px, 37px, 0);
  }

  95% {
    clip: rect(44px, 9999px, 98px, 0);
  }

  100% {
    clip: rect(92px, 9999px, 23px, 0);
  }
}

.glitch:before {
  content: attr(data-text);
  position: absolute;
  left: -2px;
  text-shadow: 1px 0 blue;
  top: 0;
  color: white;
  background: transparent;
  overflow: hidden;
  clip: rect(0, 900px, 0, 0);
  animation: noise-anim-2 3s infinite linear alternate-reverse;
}


.numberglitch {
  position: relative;
  text-shadow: 0px -5px 10px rgb(202, 58, 50), 0px 0px 5px rgba(255, 255, 255, 0), 0px 0px 10px rgba(255, 255, 255, 0), 0px 0px 15px rgba(255, 255, 255, 0), 0px 0px 20px rgba(255, 255, 255, 0);
  animation: numberglitchanim 3s infinite linear alternate-reverse, blur 8s ease-in-out infinite alternate;
  transform: skewX(0deg);
}


@keyframes blur {

  0%,
  40%,
  50%,
  60%,
  90%,
  95%,
  100% {
    text-shadow: 0px -5px 10px rgb(202, 58, 50), 0px 0px 5px rgba(255, 255, 255, 0), 0px 0px 10px rgba(255, 255, 255, 0), 2px 1px 15px rgba(100, 240, 255, 0), 0px 0px 20px rgba(255, 255, 255, 0);
  }

  45%,
  75% {
    text-shadow: 0px -5px 10px rgb(202, 58, 50), 0px 0px 5px rgb(202, 58, 50), 0px 0px 10px rgb(202, 58, 50), 2px 1px 15px #64f0ff, 0px 0px 20px rgb(202, 58, 50);
  }

  97.5% {
    text-shadow: 0px -5px 10px rgba(255, 255, 255, 0), 0px 0px 5px rgba(255, 255, 255, 0), 0px 0px 10px rgba(255, 255, 255, 0), 2px 1px 4px #ff6464, 0px 0px 20px rgba(255, 255, 255, 0);
  }
}

.numberglitch:after {
  content: attr(data-text);
  position: absolute;
  left: 3px;
  text-shadow: -1px 0 red;
  top: 0;
  color: transparent;
  background: transparent;
  overflow: hidden;
  clip: rect(0, 900px, 0, 0);
  animation: numberglitchanim 3s infinite linear alternate-reverse;
  transform: skewX(0deg);
  z-index: -2;
  opacity: .7;
}

.numberglitch:before {
  content: attr(data-text);
  position: absolute;
  left: 1px;
  text-shadow: -3px 0 cyan;
  top: 0;
  color: transparent;
  background: transparent;
  overflow: hidden;
  clip: rect(0, 900px, 0, 0);
  animation: numberglitchanim 3s infinite linear alternate-reverse;
  transform: skewX(0deg);
  z-index: -1;
  opacity: .8;
}



@keyframes numberglitchanim {
  0% {
    clip: rect(59px, 9999px, 21px, 0);
  }

  5% {
    clip: rect(74px, 9999px, 89px, 0);
  }

  10% {
    clip: rect(69px, 9999px, 46px, 0);
  }

  15% {
    clip: rect(70px, 9999px, 96px, 0);
  }

  20% {
    clip: rect(13px, 9999px, 30px, 0);
  }

  25% {
    clip: rect(67px, 9999px, 39px, 0);
  }

  30% {
    clip: rect(55px, 9999px, 97px, 0);
  }

  35% {
    clip: rect(57px, 9999px, 92px, 0);
  }

  40% {
    clip: rect(48px, 9999px, 53px, 0);
  }

  45% {
    clip: rect(12px, 9999px, 58px, 0);
  }

  50% {
    clip: rect(66px, 9999px, 24px, 0);
  }

  55% {
    clip: rect(82px, 9999px, 12px, 0);
  }

  60% {
    clip: rect(52px, 9999px, 82px, 0);
  }

  65% {
    clip: rect(25px, 9999px, 69px, 0);
  }

  70% {
    clip: rect(72px, 9999px, 97px, 0);
  }

  75% {
    clip: rect(52px, 9999px, 100px, 0);
  }

  80% {
    clip: rect(51px, 9999px, 38px, 0);
  }

  85% {
    clip: rect(7px, 9999px, 56px, 0);
  }

  90% {
    clip: rect(54px, 9999px, 85px, 0);
  }

  95% {
    clip: rect(86px, 9999px, 96px, 0);
  }

  100% {
    clip: rect(53px, 9999px, 75px, 0);
  }
}