/* Animation classes */ .shake { animation: shake 400ms both; } /* Keyframes */ @keyframes bubble-up { 0% { transform: translate(0, 0); } 25% { transform: translate(0.5em, -2em); } 50% { transform: translate(0, -4em); opacity: 0.66; } 75% { transform: translate(0.5em, -6em); opacity: 0.33; } 100% { transform: translate(0, -8em); opacity: 0; } } @keyframes float-up-left { 0% { transform: translate(10px, 20px); } 100% { transform: translate(0, 0); } } @keyframes float-down-right { 0% { transform: translate(-10px, -20px); } 100% { transform: translate(0, 0); } } @keyframes shake { 0% { transform: translateX(-2rem); } 25% { transform: translateX(2rem); } 50% { transform: translateX(-1rem); } 75% { transform: translateX(1rem); } } @keyframes shimmy { 0% { transform: translateX(-0.5rem); } 25% { transform: translateX(0.5rem); } 50% { transform: translateX(-0.2rem); } 75% { transform: translateX(0.2rem); } } @keyframes appear-then-fade { 0%,100% { opacity: 0; } 5%,60% { opacity: 1; } }