.text-wave-green {
    background: radial-gradient(100% 58% at top,var(--mud-palette-success-darken) 99%,var(--mud-palette-success-lighten)) calc(0*100%/3) 0, radial-gradient(100% 58% at bottom,var(--mud-palette-success-lighten) 99%,var(--mud-palette-success-darken)) calc(3*100%/3) 0, radial-gradient(100% 58% at top,var(--mud-palette-success-darken) 99%,var(--mud-palette-success-lighten)) calc(6*100%/3) 0, radial-gradient(100% 58% at bottom,var(--mud-palette-success-lighten) 99%,var(--mud-palette-success-darken)) calc(9*100%/3) 0;
    background-size: 50% 100%;
    background-clip: text;
    -webkit-background-clip: text;
    color: transparent !important;
    text-shadow: 1px 1px 2px rgba(0,0,0,.2);
    animation: move 4s infinite linear;
}

.text-wave-red {
    background: radial-gradient(100% 58% at top,var(--mud-palette-error-lighten) 99%,var(--mud-palette-error-darken)) calc(0*100%/3) 0, radial-gradient(100% 58% at bottom,var(--mud-palette-error-darken) 99%,var(--mud-palette-error-lighten)) calc(3*100%/3) 0, radial-gradient(100% 58% at top,var(--mud-palette-error-lighten) 99%,var(--mud-palette-error-darken)) calc(6*100%/3) 0, radial-gradient(100% 58% at bottom,var(--mud-palette-error-darken) 99%,var(--mud-palette-error-lighten)) calc(9*100%/3) 0;
    background-size: 50% 100%;
    background-repeat: no-repeat;
    background-clip: text;
    -webkit-background-clip: text;
    color: transparent !important;
    animation: move 4s infinite linear;
}

.rotate90 {
    animation: rotate90;
    animation-delay: 3s;
    animation-duration: 6s;
    animation-iteration-count: infinite;
    animation-timing-function: linear;
}
@keyframes rotate90 {
    0% { transform: rotate(0deg); }
    10% { transform: rotate(90deg); }
    100% { transform: rotate(90deg); }
}
.glow-success { animation: glow-success 2s infinite alternate; }
.glow-error { animation: glow-error 3s infinite alternate; }
@keyframes glow-success {
  from { box-shadow: none; }
  to { box-shadow: 0px 6px 8px -8px var(--mud-palette-success-lighten); }
}
@keyframes glow-error {
  from { box-shadow: none; }
  to { box-shadow: 0px 6px 8px -8px var(--mud-palette-error-lighten); }
}

.text-shine {
    display: inline;
    background: linear-gradient(90deg, #000, #fff, #000);
    background-repeat: no-repeat;
    background-size: 80%;
    background-clip: text;
    -webkit-background-clip: text;
    -webkit-text-fill-color: rgba(255, 255, 255, .6);
    text-shadow: 1px 1px 2px rgba(0,0,0,.2);
    animation: shine;
    animation-delay: 1s;
    animation-duration: 6s;
    animation-iteration-count: infinite;
    animation-timing-function: linear;
}
@keyframes shine {
    0% { background-position: -500%; }
    20% { background-position: 500%; }
    40% { background-position: -500%; }
    100% { background-position: -500%; }
}