@-webkit-keyframes flash {
  to {
    -webkit-transform: translateX(60em);
            transform: translateX(60em); /* line width shouldn’t be more than this */
  }
}

@keyframes flash {
  to {
    -webkit-transform: translateX(60em);
            transform: translateX(60em); /* line width shouldn’t be more than this */
  }
}

.wrapper {
  position: relative;
  display: inline-block;
  margin-top: 0.125em;
  overflow: hidden;
  color: transparent;
  font-size: 1em;
  line-height: 1.4em
}

.wrapper::before {
    position: absolute;
    top: 0;
    right: 0;
    bottom: 0;
    left: 0;
    background-image: -webkit-gradient(
      linear,
      left top, left bottom,
      from(var(--manifold-grayscale-10)),
      color-stop(1em, var(--manifold-grayscale-10)),
      color-stop(1em, var(--manifold-grayscale-0)),
      color-stop(1.4em, var(--manifold-grayscale-0))
    );
    background-image: linear-gradient(
      var(--manifold-grayscale-10),
      var(--manifold-grayscale-10) 1em,
      var(--manifold-grayscale-0) 1em,
      var(--manifold-grayscale-0) 1.4em
    );
    background-repeat: repeat-y;
    background-size: 100% 1.4em;
    content: '';
    pointer-events: none;
  }

.wrapper::after {
    position: absolute;
    top: 0;
    right: 100%;
    width: 20em; /* derived from font size */
    height: 100%;
    background-image: linear-gradient(
      45deg,
      transparent 25%,
      var(--manifold-grayscale-100i),
      transparent 75%
    );
    opacity: 0.4;
    -webkit-animation-name: flash;
            animation-name: flash;
    -webkit-animation-duration: 1.5s;
            animation-duration: 1.5s;
    -webkit-animation-timing-function: linear;
            animation-timing-function: linear;
    -webkit-animation-iteration-count: infinite;
            animation-iteration-count: infinite;
    content: '';
    pointer-events: none;
  }
