├── .gitignore ├── CSS └── csshake.css ├── Demo ├── WebSocket.html └── camera-cut.html ├── JS ├── 001.Date │ └── main.js ├── 002.Excel │ ├── Blob.js │ └── Export2Excel.js ├── 003.Utils │ └── main.js ├── 004.Num │ └── main.js ├── 005.Canvas │ ├── f2-canvas │ │ ├── f2-canvas.js │ │ ├── f2-canvas.json │ │ ├── f2-canvas.wxml │ │ ├── f2-canvas.wxss │ │ └── lib │ │ │ ├── EventEmitter.min.js │ │ │ ├── f2.js │ │ │ └── renderer.js │ └── main.js ├── 006.Animation │ └── ripple-min.js ├── 007.window │ └── index.js ├── 008.Array │ └── index.js ├── 009.markdown │ └── sort-api.js ├── 010.git │ └── generate-authors.js └── main.js ├── LICENSE ├── README.md └── Shell └── git-history.sh /.gitignore: -------------------------------------------------------------------------------- 1 | # @source: https://github.com/xrkffgg/gitignore/blob/master/.gitignore 2 | 3 | # Normal 4 | .DS_Store 5 | node_modules 6 | /dist 7 | .sass-cache/ 8 | 9 | # Lock 10 | yarn.lock 11 | package-lock.json 12 | 13 | # local env files 14 | .env.local 15 | .env.*.local 16 | 17 | # Compiled file 18 | *.class 19 | *.css.map 20 | *.sass.map 21 | *.scss.map 22 | 23 | # Log file 24 | *.log 25 | npm-debug.log* 26 | yarn-debug.log* 27 | yarn-error.log* 28 | 29 | # Editor directories and files 30 | .idea 31 | .vscode 32 | *.suo 33 | *.ntvs* 34 | *.njsproj 35 | *.sln 36 | *.sw? 37 | ~$*.* -------------------------------------------------------------------------------- /CSS/csshake.css: -------------------------------------------------------------------------------- 1 | .shake { display: inline-block; -webkit-transform-origin: center center; -ms-transform-origin: center center; transform-origin: center center; } 2 | .shake:hover { -webkit-animation-name: shake-base; -ms-animation-name: shake-base; animation-name: shake-base; -webkit-animation-duration: 100ms; -ms-animation-duration: 100ms; animation-duration: 100ms; -webkit-animation-iteration-count: infinite; -ms-animation-iteration-count: infinite; animation-iteration-count: infinite; -webkit-animation-timing-function: ease-in-out; -ms-animation-timing-function: ease-in-out; animation-timing-function: ease-in-out; -webkit-animation-delay: 0s; -ms-animation-delay: 0s; animation-delay: 0s; -webkit-animation-play-state: running; -ms-animation-play-state: running; animation-play-state: running; } 3 | .shake.freez { -webkit-animation-play-state: paused !important; -ms-animation-play-state: paused !important; animation-play-state: paused !important; } 4 | .shake.freez.shake-hard { -webkit-animation-name: shake-hard; -ms-animation-name: shake-hard; animation-name: shake-hard; -webkit-animation-duration: 100ms; -ms-animation-duration: 100ms; animation-duration: 100ms; -webkit-animation-iteration-count: infinite; -ms-animation-iteration-count: infinite; animation-iteration-count: infinite; -webkit-animation-timing-function: ease-in-out; -ms-animation-timing-function: ease-in-out; animation-timing-function: ease-in-out; -webkit-animation-delay: 0s; -ms-animation-delay: 0s; animation-delay: 0s; -webkit-animation-play-state: running; -ms-animation-play-state: running; animation-play-state: running; } 5 | .shake.freez.shake-slow { -webkit-animation-name: shake-slow; -ms-animation-name: shake-slow; animation-name: shake-slow; -webkit-animation-duration: 5s; -ms-animation-duration: 5s; animation-duration: 5s; -webkit-animation-iteration-count: infinite; -ms-animation-iteration-count: infinite; animation-iteration-count: infinite; -webkit-animation-timing-function: ease-in-out; -ms-animation-timing-function: ease-in-out; animation-timing-function: ease-in-out; -webkit-animation-delay: 0s; -ms-animation-delay: 0s; animation-delay: 0s; -webkit-animation-play-state: running; -ms-animation-play-state: running; animation-play-state: running; } 6 | .shake.freez.shake-little { -webkit-animation-name: shake-little; -ms-animation-name: shake-little; animation-name: shake-little; -webkit-animation-duration: 100ms; -ms-animation-duration: 100ms; animation-duration: 100ms; -webkit-animation-iteration-count: infinite; -ms-animation-iteration-count: infinite; animation-iteration-count: infinite; -webkit-animation-timing-function: ease-in-out; -ms-animation-timing-function: ease-in-out; animation-timing-function: ease-in-out; -webkit-animation-delay: 0s; -ms-animation-delay: 0s; animation-delay: 0s; -webkit-animation-play-state: running; -ms-animation-play-state: running; animation-play-state: running; } 7 | .shake.freez.shake-horizontal { -webkit-animation-name: shake-horizontal; -ms-animation-name: shake-horizontal; animation-name: shake-horizontal; -webkit-animation-duration: 100ms; -ms-animation-duration: 100ms; animation-duration: 100ms; -webkit-animation-iteration-count: infinite; -ms-animation-iteration-count: infinite; animation-iteration-count: infinite; -webkit-animation-timing-function: ease-in-out; -ms-animation-timing-function: ease-in-out; animation-timing-function: ease-in-out; -webkit-animation-delay: 0s; -ms-animation-delay: 0s; animation-delay: 0s; -webkit-animation-play-state: running; -ms-animation-play-state: running; animation-play-state: running; } 8 | .shake.freez.shake-vertical { -webkit-animation-name: shake-vertical; -ms-animation-name: shake-vertical; animation-name: shake-vertical; -webkit-animation-duration: 100ms; -ms-animation-duration: 100ms; animation-duration: 100ms; -webkit-animation-iteration-count: infinite; -ms-animation-iteration-count: infinite; animation-iteration-count: infinite; -webkit-animation-timing-function: ease-in-out; -ms-animation-timing-function: ease-in-out; animation-timing-function: ease-in-out; -webkit-animation-delay: 0s; -ms-animation-delay: 0s; animation-delay: 0s; -webkit-animation-play-state: running; -ms-animation-play-state: running; animation-play-state: running; } 9 | .shake.freez.shake-rotate { -webkit-animation-name: shake-rotate; -ms-animation-name: shake-rotate; animation-name: shake-rotate; -webkit-animation-duration: 100ms; -ms-animation-duration: 100ms; animation-duration: 100ms; -webkit-animation-iteration-count: infinite; -ms-animation-iteration-count: infinite; animation-iteration-count: infinite; -webkit-animation-timing-function: ease-in-out; -ms-animation-timing-function: ease-in-out; animation-timing-function: ease-in-out; -webkit-animation-delay: 0s; -ms-animation-delay: 0s; animation-delay: 0s; -webkit-animation-play-state: running; -ms-animation-play-state: running; animation-play-state: running; } 10 | .shake.freez.shake-opacity { -webkit-animation-name: shake-opacity; -ms-animation-name: shake-opacity; animation-name: shake-opacity; -webkit-animation-duration: 200ms; -ms-animation-duration: 200ms; animation-duration: 200ms; -webkit-animation-iteration-count: infinite; -ms-animation-iteration-count: infinite; animation-iteration-count: infinite; -webkit-animation-timing-function: ease-in-out; -ms-animation-timing-function: ease-in-out; animation-timing-function: ease-in-out; -webkit-animation-delay: 0s; -ms-animation-delay: 0s; animation-delay: 0s; -webkit-animation-play-state: running; -ms-animation-play-state: running; animation-play-state: running; } 11 | .shake.freez.shake-crazy { -webkit-animation-name: shake-crazy; -ms-animation-name: shake-crazy; animation-name: shake-crazy; -webkit-animation-duration: 100ms; -ms-animation-duration: 100ms; animation-duration: 100ms; -webkit-animation-iteration-count: infinite; -ms-animation-iteration-count: infinite; animation-iteration-count: infinite; -webkit-animation-timing-function: ease-in-out; -ms-animation-timing-function: ease-in-out; animation-timing-function: ease-in-out; -webkit-animation-delay: 0s; -ms-animation-delay: 0s; animation-delay: 0s; -webkit-animation-play-state: running; -ms-animation-play-state: running; animation-play-state: running; } 12 | .shake.freez:hover { -webkit-animation-play-state: running !important; -ms-animation-play-state: running !important; animation-play-state: running !important; } 13 | .shake.shake-hard:hover { -webkit-animation-name: shake-hard; -ms-animation-name: shake-hard; animation-name: shake-hard; -webkit-animation-duration: 100ms; -ms-animation-duration: 100ms; animation-duration: 100ms; -webkit-animation-iteration-count: infinite; -ms-animation-iteration-count: infinite; animation-iteration-count: infinite; -webkit-animation-timing-function: ease-in-out; -ms-animation-timing-function: ease-in-out; animation-timing-function: ease-in-out; -webkit-animation-delay: 0s; -ms-animation-delay: 0s; animation-delay: 0s; -webkit-animation-play-state: running; -ms-animation-play-state: running; animation-play-state: running; } 14 | .shake.shake-slow:hover { -webkit-animation-name: shake-slow; -ms-animation-name: shake-slow; animation-name: shake-slow; -webkit-animation-duration: 5s; -ms-animation-duration: 5s; animation-duration: 5s; -webkit-animation-iteration-count: infinite; -ms-animation-iteration-count: infinite; animation-iteration-count: infinite; -webkit-animation-timing-function: ease-in-out; -ms-animation-timing-function: ease-in-out; animation-timing-function: ease-in-out; -webkit-animation-delay: 0s; -ms-animation-delay: 0s; animation-delay: 0s; -webkit-animation-play-state: running; -ms-animation-play-state: running; animation-play-state: running; } 15 | .shake.shake-little:hover { -webkit-animation-name: shake-little; -ms-animation-name: shake-little; animation-name: shake-little; -webkit-animation-duration: 100ms; -ms-animation-duration: 100ms; animation-duration: 100ms; -webkit-animation-iteration-count: infinite; -ms-animation-iteration-count: infinite; animation-iteration-count: infinite; -webkit-animation-timing-function: ease-in-out; -ms-animation-timing-function: ease-in-out; animation-timing-function: ease-in-out; -webkit-animation-delay: 0s; -ms-animation-delay: 0s; animation-delay: 0s; -webkit-animation-play-state: running; -ms-animation-play-state: running; animation-play-state: running; } 16 | .shake.shake-horizontal:hover { -webkit-animation-name: shake-horizontal; -ms-animation-name: shake-horizontal; animation-name: shake-horizontal; -webkit-animation-duration: 100ms; -ms-animation-duration: 100ms; animation-duration: 100ms; -webkit-animation-iteration-count: infinite; -ms-animation-iteration-count: infinite; animation-iteration-count: infinite; -webkit-animation-timing-function: ease-in-out; -ms-animation-timing-function: ease-in-out; animation-timing-function: ease-in-out; -webkit-animation-delay: 0s; -ms-animation-delay: 0s; animation-delay: 0s; -webkit-animation-play-state: running; -ms-animation-play-state: running; animation-play-state: running; } 17 | .shake.shake-vertical:hover { -webkit-animation-name: shake-vertical; -ms-animation-name: shake-vertical; animation-name: shake-vertical; -webkit-animation-duration: 100ms; -ms-animation-duration: 100ms; animation-duration: 100ms; -webkit-animation-iteration-count: infinite; -ms-animation-iteration-count: infinite; animation-iteration-count: infinite; -webkit-animation-timing-function: ease-in-out; -ms-animation-timing-function: ease-in-out; animation-timing-function: ease-in-out; -webkit-animation-delay: 0s; -ms-animation-delay: 0s; animation-delay: 0s; -webkit-animation-play-state: running; -ms-animation-play-state: running; animation-play-state: running; } 18 | .shake.shake-rotate:hover { -webkit-animation-name: shake-rotate; -ms-animation-name: shake-rotate; animation-name: shake-rotate; -webkit-animation-duration: 100ms; -ms-animation-duration: 100ms; animation-duration: 100ms; -webkit-animation-iteration-count: infinite; -ms-animation-iteration-count: infinite; animation-iteration-count: infinite; -webkit-animation-timing-function: ease-in-out; -ms-animation-timing-function: ease-in-out; animation-timing-function: ease-in-out; -webkit-animation-delay: 0s; -ms-animation-delay: 0s; animation-delay: 0s; -webkit-animation-play-state: running; -ms-animation-play-state: running; animation-play-state: running; } 19 | .shake.shake-opacity:hover { -webkit-animation-name: shake-opacity; -ms-animation-name: shake-opacity; animation-name: shake-opacity; -webkit-animation-duration: 200ms; -ms-animation-duration: 200ms; animation-duration: 200ms; -webkit-animation-iteration-count: infinite; -ms-animation-iteration-count: infinite; animation-iteration-count: infinite; -webkit-animation-timing-function: ease-in-out; -ms-animation-timing-function: ease-in-out; animation-timing-function: ease-in-out; -webkit-animation-delay: 0s; -ms-animation-delay: 0s; animation-delay: 0s; -webkit-animation-play-state: running; -ms-animation-play-state: running; animation-play-state: running; } 20 | .shake.shake-crazy:hover { -webkit-animation-name: shake-crazy; -ms-animation-name: shake-crazy; animation-name: shake-crazy; -webkit-animation-duration: 100ms; -ms-animation-duration: 100ms; animation-duration: 100ms; -webkit-animation-iteration-count: infinite; -ms-animation-iteration-count: infinite; animation-iteration-count: infinite; -webkit-animation-timing-function: ease-in-out; -ms-animation-timing-function: ease-in-out; animation-timing-function: ease-in-out; -webkit-animation-delay: 0s; -ms-animation-delay: 0s; animation-delay: 0s; -webkit-animation-play-state: running; -ms-animation-play-state: running; animation-play-state: running; } 21 | .shake.shake-constant { -webkit-animation-name: shake-base; -ms-animation-name: shake-base; animation-name: shake-base; -webkit-animation-duration: 100ms; -ms-animation-duration: 100ms; animation-duration: 100ms; -webkit-animation-iteration-count: infinite; -ms-animation-iteration-count: infinite; animation-iteration-count: infinite; -webkit-animation-timing-function: ease-in-out; -ms-animation-timing-function: ease-in-out; animation-timing-function: ease-in-out; -webkit-animation-delay: 0s; -ms-animation-delay: 0s; animation-delay: 0s; -webkit-animation-play-state: running; -ms-animation-play-state: running; animation-play-state: running; } 22 | .shake.shake-constant.shake-hard { -webkit-animation-name: shake-hard; -ms-animation-name: shake-hard; animation-name: shake-hard; -webkit-animation-duration: 100ms; -ms-animation-duration: 100ms; animation-duration: 100ms; -webkit-animation-iteration-count: infinite; -ms-animation-iteration-count: infinite; animation-iteration-count: infinite; -webkit-animation-timing-function: ease-in-out; -ms-animation-timing-function: ease-in-out; animation-timing-function: ease-in-out; -webkit-animation-delay: 0s; -ms-animation-delay: 0s; animation-delay: 0s; -webkit-animation-play-state: running; -ms-animation-play-state: running; animation-play-state: running; } 23 | .shake.shake-constant.shake-slow { -webkit-animation-name: shake-slow; -ms-animation-name: shake-slow; animation-name: shake-slow; -webkit-animation-duration: 5s; -ms-animation-duration: 5s; animation-duration: 5s; -webkit-animation-iteration-count: infinite; -ms-animation-iteration-count: infinite; animation-iteration-count: infinite; -webkit-animation-timing-function: ease-in-out; -ms-animation-timing-function: ease-in-out; animation-timing-function: ease-in-out; -webkit-animation-delay: 0s; -ms-animation-delay: 0s; animation-delay: 0s; -webkit-animation-play-state: running; -ms-animation-play-state: running; animation-play-state: running; } 24 | .shake.shake-constant.shake-little { -webkit-animation-name: shake-little; -ms-animation-name: shake-little; animation-name: shake-little; -webkit-animation-duration: 100ms; -ms-animation-duration: 100ms; animation-duration: 100ms; -webkit-animation-iteration-count: infinite; -ms-animation-iteration-count: infinite; animation-iteration-count: infinite; -webkit-animation-timing-function: ease-in-out; -ms-animation-timing-function: ease-in-out; animation-timing-function: ease-in-out; -webkit-animation-delay: 0s; -ms-animation-delay: 0s; animation-delay: 0s; -webkit-animation-play-state: running; -ms-animation-play-state: running; animation-play-state: running; } 25 | .shake.shake-constant.shake-horizontal { -webkit-animation-name: shake-horizontal; -ms-animation-name: shake-horizontal; animation-name: shake-horizontal; -webkit-animation-duration: 100ms; -ms-animation-duration: 100ms; animation-duration: 100ms; -webkit-animation-iteration-count: infinite; -ms-animation-iteration-count: infinite; animation-iteration-count: infinite; -webkit-animation-timing-function: ease-in-out; -ms-animation-timing-function: ease-in-out; animation-timing-function: ease-in-out; -webkit-animation-delay: 0s; -ms-animation-delay: 0s; animation-delay: 0s; -webkit-animation-play-state: running; -ms-animation-play-state: running; animation-play-state: running; } 26 | .shake.shake-constant.shake-vertical { -webkit-animation-name: shake-vertical; -ms-animation-name: shake-vertical; animation-name: shake-vertical; -webkit-animation-duration: 100ms; -ms-animation-duration: 100ms; animation-duration: 100ms; -webkit-animation-iteration-count: infinite; -ms-animation-iteration-count: infinite; animation-iteration-count: infinite; -webkit-animation-timing-function: ease-in-out; -ms-animation-timing-function: ease-in-out; animation-timing-function: ease-in-out; -webkit-animation-delay: 0s; -ms-animation-delay: 0s; animation-delay: 0s; -webkit-animation-play-state: running; -ms-animation-play-state: running; animation-play-state: running; } 27 | .shake.shake-constant.shake-rotate { -webkit-animation-name: shake-rotate; -ms-animation-name: shake-rotate; animation-name: shake-rotate; -webkit-animation-duration: 100ms; -ms-animation-duration: 100ms; animation-duration: 100ms; -webkit-animation-iteration-count: infinite; -ms-animation-iteration-count: infinite; animation-iteration-count: infinite; -webkit-animation-timing-function: ease-in-out; -ms-animation-timing-function: ease-in-out; animation-timing-function: ease-in-out; -webkit-animation-delay: 0s; -ms-animation-delay: 0s; animation-delay: 0s; -webkit-animation-play-state: running; -ms-animation-play-state: running; animation-play-state: running; } 28 | .shake.shake-constant.shake-opacity { -webkit-animation-name: shake-opacity; -ms-animation-name: shake-opacity; animation-name: shake-opacity; -webkit-animation-duration: 200ms; -ms-animation-duration: 200ms; animation-duration: 200ms; -webkit-animation-iteration-count: infinite; -ms-animation-iteration-count: infinite; animation-iteration-count: infinite; -webkit-animation-timing-function: ease-in-out; -ms-animation-timing-function: ease-in-out; animation-timing-function: ease-in-out; -webkit-animation-delay: 0s; -ms-animation-delay: 0s; animation-delay: 0s; -webkit-animation-play-state: running; -ms-animation-play-state: running; animation-play-state: running; } 29 | .shake.shake-constant.shake-crazy { -webkit-animation-name: shake-crazy; -ms-animation-name: shake-crazy; animation-name: shake-crazy; -webkit-animation-duration: 100ms; -ms-animation-duration: 100ms; animation-duration: 100ms; -webkit-animation-iteration-count: infinite; -ms-animation-iteration-count: infinite; animation-iteration-count: infinite; -webkit-animation-timing-function: ease-in-out; -ms-animation-timing-function: ease-in-out; animation-timing-function: ease-in-out; -webkit-animation-delay: 0s; -ms-animation-delay: 0s; animation-delay: 0s; -webkit-animation-play-state: running; -ms-animation-play-state: running; animation-play-state: running; } 30 | .shake.shake-constant.hover-stop:hover { -webkit-animation-play-state: paused; -ms-animation-play-state: paused; animation-play-state: paused; } 31 | .shake.shake-delay { -webkit-animation-name: shake-base; -ms-animation-name: shake-base; animation-name: shake-base; -webkit-animation-duration: 100ms; -ms-animation-duration: 100ms; animation-duration: 100ms; -webkit-animation-iteration-count: infinite; -ms-animation-iteration-count: infinite; animation-iteration-count: infinite; -webkit-animation-timing-function: ease-in-out; -ms-animation-timing-function: ease-in-out; animation-timing-function: ease-in-out; -webkit-animation-delay: 4s; -ms-animation-delay: 4s; animation-delay: 4s; -webkit-animation-play-state: running; -ms-animation-play-state: running; animation-play-state: running; } 32 | 33 | @-webkit-keyframes shake-base { 0% { -webkit-transform: translate(0px, 0px) rotate(0deg); } 34 | 2% { -webkit-transform: translate(-0.5px, 1.5px) rotate(0.5deg); } 35 | 4% { -webkit-transform: translate(-0.5px, 1.5px) rotate(-0.5deg); } 36 | 6% { -webkit-transform: translate(-2.5px, -1.5px) rotate(0.5deg); } 37 | 8% { -webkit-transform: translate(-2.5px, -2.5px) rotate(-1.5deg); } 38 | 10% { -webkit-transform: translate(1.5px, 1.5px) rotate(-1.5deg); } 39 | 12% { -webkit-transform: translate(-2.5px, -0.5px) rotate(-0.5deg); } 40 | 14% { -webkit-transform: translate(1.5px, -2.5px) rotate(-0.5deg); } 41 | 16% { -webkit-transform: translate(0.5px, 1.5px) rotate(0.5deg); } 42 | 18% { -webkit-transform: translate(-2.5px, -0.5px) rotate(0.5deg); } 43 | 20% { -webkit-transform: translate(-0.5px, -0.5px) rotate(-1.5deg); } 44 | 22% { -webkit-transform: translate(-2.5px, -1.5px) rotate(-1.5deg); } 45 | 24% { -webkit-transform: translate(-1.5px, -2.5px) rotate(-1.5deg); } 46 | 26% { -webkit-transform: translate(0.5px, -0.5px) rotate(-1.5deg); } 47 | 28% { -webkit-transform: translate(-0.5px, -1.5px) rotate(-0.5deg); } 48 | 30% { -webkit-transform: translate(-2.5px, 1.5px) rotate(0.5deg); } 49 | 32% { -webkit-transform: translate(-2.5px, -2.5px) rotate(-0.5deg); } 50 | 34% { -webkit-transform: translate(-1.5px, 0.5px) rotate(-1.5deg); } 51 | 36% { -webkit-transform: translate(1.5px, -1.5px) rotate(-1.5deg); } 52 | 38% { -webkit-transform: translate(0.5px, -0.5px) rotate(-0.5deg); } 53 | 40% { -webkit-transform: translate(-0.5px, 0.5px) rotate(0.5deg); } 54 | 42% { -webkit-transform: translate(0.5px, -2.5px) rotate(-0.5deg); } 55 | 44% { -webkit-transform: translate(0.5px, -2.5px) rotate(-0.5deg); } 56 | 46% { -webkit-transform: translate(-1.5px, 1.5px) rotate(-1.5deg); } 57 | 48% { -webkit-transform: translate(0.5px, -2.5px) rotate(-0.5deg); } 58 | 50% { -webkit-transform: translate(-1.5px, -0.5px) rotate(-1.5deg); } 59 | 52% { -webkit-transform: translate(-2.5px, -0.5px) rotate(-1.5deg); } 60 | 54% { -webkit-transform: translate(1.5px, 0.5px) rotate(-1.5deg); } 61 | 56% { -webkit-transform: translate(0.5px, 0.5px) rotate(-1.5deg); } 62 | 58% { -webkit-transform: translate(0.5px, 1.5px) rotate(-0.5deg); } 63 | 60% { -webkit-transform: translate(-0.5px, -2.5px) rotate(-0.5deg); } 64 | 62% { -webkit-transform: translate(-2.5px, -1.5px) rotate(-0.5deg); } 65 | 64% { -webkit-transform: translate(-1.5px, 0.5px) rotate(0.5deg); } 66 | 66% { -webkit-transform: translate(0.5px, -0.5px) rotate(-1.5deg); } 67 | 68% { -webkit-transform: translate(-1.5px, -0.5px) rotate(-1.5deg); } 68 | 70% { -webkit-transform: translate(-0.5px, -2.5px) rotate(-1.5deg); } 69 | 72% { -webkit-transform: translate(-2.5px, -0.5px) rotate(-1.5deg); } 70 | 74% { -webkit-transform: translate(-2.5px, 0.5px) rotate(0.5deg); } 71 | 76% { -webkit-transform: translate(1.5px, -1.5px) rotate(-1.5deg); } 72 | 78% { -webkit-transform: translate(1.5px, -2.5px) rotate(0.5deg); } 73 | 80% { -webkit-transform: translate(-2.5px, -2.5px) rotate(-0.5deg); } 74 | 82% { -webkit-transform: translate(-2.5px, -1.5px) rotate(0.5deg); } 75 | 84% { -webkit-transform: translate(0.5px, -2.5px) rotate(-0.5deg); } 76 | 86% { -webkit-transform: translate(-2.5px, 0.5px) rotate(-0.5deg); } 77 | 88% { -webkit-transform: translate(-2.5px, -0.5px) rotate(-0.5deg); } 78 | 90% { -webkit-transform: translate(-1.5px, -1.5px) rotate(-1.5deg); } 79 | 92% { -webkit-transform: translate(-0.5px, -1.5px) rotate(-0.5deg); } 80 | 94% { -webkit-transform: translate(0.5px, -0.5px) rotate(-0.5deg); } 81 | 96% { -webkit-transform: translate(-2.5px, -2.5px) rotate(0.5deg); } 82 | 98% { -webkit-transform: translate(-0.5px, 1.5px) rotate(-0.5deg); } } 83 | 84 | @-ms-keyframes shake-base { 0% { -ms-transform: translate(0px, 0px) rotate(0deg); } 85 | 2% { -ms-transform: translate(-0.5px, -0.5px) rotate(-1.5deg); } 86 | 4% { -ms-transform: translate(-0.5px, 0.5px) rotate(-0.5deg); } 87 | 6% { -ms-transform: translate(-1.5px, 1.5px) rotate(0.5deg); } 88 | 8% { -ms-transform: translate(-2.5px, -0.5px) rotate(-0.5deg); } 89 | 10% { -ms-transform: translate(1.5px, -2.5px) rotate(-1.5deg); } 90 | 12% { -ms-transform: translate(0.5px, 0.5px) rotate(-0.5deg); } 91 | 14% { -ms-transform: translate(-1.5px, 1.5px) rotate(0.5deg); } 92 | 16% { -ms-transform: translate(-0.5px, 0.5px) rotate(-0.5deg); } 93 | 18% { -ms-transform: translate(1.5px, -0.5px) rotate(-1.5deg); } 94 | 20% { -ms-transform: translate(-1.5px, -2.5px) rotate(-0.5deg); } 95 | 22% { -ms-transform: translate(-0.5px, -0.5px) rotate(-0.5deg); } 96 | 24% { -ms-transform: translate(1.5px, -0.5px) rotate(-0.5deg); } 97 | 26% { -ms-transform: translate(-1.5px, -2.5px) rotate(0.5deg); } 98 | 28% { -ms-transform: translate(1.5px, 1.5px) rotate(-1.5deg); } 99 | 30% { -ms-transform: translate(-2.5px, -1.5px) rotate(-1.5deg); } 100 | 32% { -ms-transform: translate(-0.5px, -0.5px) rotate(-1.5deg); } 101 | 34% { -ms-transform: translate(1.5px, 1.5px) rotate(-1.5deg); } 102 | 36% { -ms-transform: translate(-0.5px, -0.5px) rotate(0.5deg); } 103 | 38% { -ms-transform: translate(1.5px, -1.5px) rotate(-0.5deg); } 104 | 40% { -ms-transform: translate(1.5px, -1.5px) rotate(0.5deg); } 105 | 42% { -ms-transform: translate(-1.5px, 1.5px) rotate(-0.5deg); } 106 | 44% { -ms-transform: translate(0.5px, 1.5px) rotate(-0.5deg); } 107 | 46% { -ms-transform: translate(1.5px, 0.5px) rotate(0.5deg); } 108 | 48% { -ms-transform: translate(-2.5px, 0.5px) rotate(0.5deg); } 109 | 50% { -ms-transform: translate(1.5px, 1.5px) rotate(-0.5deg); } 110 | 52% { -ms-transform: translate(-2.5px, -0.5px) rotate(0.5deg); } 111 | 54% { -ms-transform: translate(-2.5px, -1.5px) rotate(-1.5deg); } 112 | 56% { -ms-transform: translate(0.5px, -1.5px) rotate(0.5deg); } 113 | 58% { -ms-transform: translate(0.5px, 0.5px) rotate(-0.5deg); } 114 | 60% { -ms-transform: translate(-0.5px, 1.5px) rotate(0.5deg); } 115 | 62% { -ms-transform: translate(-2.5px, -0.5px) rotate(0.5deg); } 116 | 64% { -ms-transform: translate(0.5px, -0.5px) rotate(-0.5deg); } 117 | 66% { -ms-transform: translate(0.5px, 0.5px) rotate(-0.5deg); } 118 | 68% { -ms-transform: translate(-0.5px, -2.5px) rotate(-0.5deg); } 119 | 70% { -ms-transform: translate(-1.5px, 1.5px) rotate(-1.5deg); } 120 | 72% { -ms-transform: translate(0.5px, -2.5px) rotate(-1.5deg); } 121 | 74% { -ms-transform: translate(-0.5px, -2.5px) rotate(-0.5deg); } 122 | 76% { -ms-transform: translate(-1.5px, 0.5px) rotate(0.5deg); } 123 | 78% { -ms-transform: translate(-2.5px, 0.5px) rotate(-0.5deg); } 124 | 80% { -ms-transform: translate(0.5px, 0.5px) rotate(-1.5deg); } 125 | 82% { -ms-transform: translate(-2.5px, -1.5px) rotate(-1.5deg); } 126 | 84% { -ms-transform: translate(-0.5px, -0.5px) rotate(-1.5deg); } 127 | 86% { -ms-transform: translate(-0.5px, 0.5px) rotate(-1.5deg); } 128 | 88% { -ms-transform: translate(0.5px, -1.5px) rotate(0.5deg); } 129 | 90% { -ms-transform: translate(-2.5px, 0.5px) rotate(-0.5deg); } 130 | 92% { -ms-transform: translate(-2.5px, -0.5px) rotate(0.5deg); } 131 | 94% { -ms-transform: translate(-1.5px, -1.5px) rotate(-1.5deg); } 132 | 96% { -ms-transform: translate(1.5px, 1.5px) rotate(0.5deg); } 133 | 98% { -ms-transform: translate(-2.5px, -0.5px) rotate(0.5deg); } } 134 | 135 | @keyframes shake-base { 0% { transform: translate(0px, 0px) rotate(0deg); } 136 | 2% { transform: translate(-0.5px, 0.5px) rotate(-0.5deg); } 137 | 4% { transform: translate(-2.5px, -1.5px) rotate(0.5deg); } 138 | 6% { transform: translate(1.5px, 1.5px) rotate(-1.5deg); } 139 | 8% { transform: translate(-1.5px, -2.5px) rotate(0.5deg); } 140 | 10% { transform: translate(1.5px, 1.5px) rotate(-0.5deg); } 141 | 12% { transform: translate(-1.5px, 1.5px) rotate(-1.5deg); } 142 | 14% { transform: translate(-1.5px, 0.5px) rotate(0.5deg); } 143 | 16% { transform: translate(0.5px, 0.5px) rotate(-0.5deg); } 144 | 18% { transform: translate(0.5px, -2.5px) rotate(-0.5deg); } 145 | 20% { transform: translate(-2.5px, 0.5px) rotate(-1.5deg); } 146 | 22% { transform: translate(1.5px, 0.5px) rotate(-0.5deg); } 147 | 24% { transform: translate(-0.5px, -1.5px) rotate(-0.5deg); } 148 | 26% { transform: translate(-1.5px, 1.5px) rotate(0.5deg); } 149 | 28% { transform: translate(-1.5px, -0.5px) rotate(0.5deg); } 150 | 30% { transform: translate(-2.5px, 0.5px) rotate(0.5deg); } 151 | 32% { transform: translate(1.5px, -0.5px) rotate(-0.5deg); } 152 | 34% { transform: translate(0.5px, -2.5px) rotate(-1.5deg); } 153 | 36% { transform: translate(0.5px, -2.5px) rotate(-0.5deg); } 154 | 38% { transform: translate(-2.5px, -0.5px) rotate(0.5deg); } 155 | 40% { transform: translate(-0.5px, 1.5px) rotate(0.5deg); } 156 | 42% { transform: translate(1.5px, 1.5px) rotate(-0.5deg); } 157 | 44% { transform: translate(-2.5px, -2.5px) rotate(0.5deg); } 158 | 46% { transform: translate(0.5px, -2.5px) rotate(0.5deg); } 159 | 48% { transform: translate(-0.5px, -2.5px) rotate(-0.5deg); } 160 | 50% { transform: translate(-0.5px, 0.5px) rotate(0.5deg); } 161 | 52% { transform: translate(1.5px, 0.5px) rotate(0.5deg); } 162 | 54% { transform: translate(-2.5px, 0.5px) rotate(-1.5deg); } 163 | 56% { transform: translate(-2.5px, 1.5px) rotate(0.5deg); } 164 | 58% { transform: translate(-2.5px, -2.5px) rotate(-0.5deg); } 165 | 60% { transform: translate(-0.5px, -2.5px) rotate(-0.5deg); } 166 | 62% { transform: translate(-1.5px, 0.5px) rotate(-0.5deg); } 167 | 64% { transform: translate(-1.5px, -0.5px) rotate(0.5deg); } 168 | 66% { transform: translate(-2.5px, 0.5px) rotate(-0.5deg); } 169 | 68% { transform: translate(-1.5px, -0.5px) rotate(0.5deg); } 170 | 70% { transform: translate(0.5px, 1.5px) rotate(0.5deg); } 171 | 72% { transform: translate(-2.5px, 1.5px) rotate(0.5deg); } 172 | 74% { transform: translate(1.5px, -0.5px) rotate(0.5deg); } 173 | 76% { transform: translate(-0.5px, -1.5px) rotate(0.5deg); } 174 | 78% { transform: translate(-0.5px, -2.5px) rotate(0.5deg); } 175 | 80% { transform: translate(1.5px, -0.5px) rotate(0.5deg); } 176 | 82% { transform: translate(-1.5px, 0.5px) rotate(-0.5deg); } 177 | 84% { transform: translate(-1.5px, -1.5px) rotate(-0.5deg); } 178 | 86% { transform: translate(0.5px, -0.5px) rotate(-1.5deg); } 179 | 88% { transform: translate(-2.5px, -2.5px) rotate(-1.5deg); } 180 | 90% { transform: translate(-1.5px, 1.5px) rotate(0.5deg); } 181 | 92% { transform: translate(-1.5px, 0.5px) rotate(0.5deg); } 182 | 94% { transform: translate(-1.5px, -0.5px) rotate(0.5deg); } 183 | 96% { transform: translate(1.5px, 0.5px) rotate(-0.5deg); } 184 | 98% { transform: translate(-0.5px, -1.5px) rotate(0.5deg); } } 185 | 186 | @-webkit-keyframes shake-little { 0% { -webkit-transform: translate(0px, 0px) rotate(0deg); } 187 | 2% { -webkit-transform: translate(-1px, 0px) rotate(-0.5deg); } 188 | 4% { -webkit-transform: translate(0px, 0px) rotate(-0.5deg); } 189 | 6% { -webkit-transform: translate(0px, -1px) rotate(-0.5deg); } 190 | 8% { -webkit-transform: translate(0px, 0px) rotate(-0.5deg); } 191 | 10% { -webkit-transform: translate(0px, 0px) rotate(-0.5deg); } 192 | 12% { -webkit-transform: translate(-1px, 0px) rotate(-0.5deg); } 193 | 14% { -webkit-transform: translate(-1px, -1px) rotate(-0.5deg); } 194 | 16% { -webkit-transform: translate(0px, 0px) rotate(-0.5deg); } 195 | 18% { -webkit-transform: translate(0px, 0px) rotate(-0.5deg); } 196 | 20% { -webkit-transform: translate(0px, 0px) rotate(-0.5deg); } 197 | 22% { -webkit-transform: translate(-1px, 0px) rotate(-0.5deg); } 198 | 24% { -webkit-transform: translate(-1px, 0px) rotate(-0.5deg); } 199 | 26% { -webkit-transform: translate(-1px, 0px) rotate(-0.5deg); } 200 | 28% { -webkit-transform: translate(-1px, 0px) rotate(-0.5deg); } 201 | 30% { -webkit-transform: translate(0px, -1px) rotate(-0.5deg); } 202 | 32% { -webkit-transform: translate(0px, 0px) rotate(-0.5deg); } 203 | 34% { -webkit-transform: translate(-1px, 0px) rotate(-0.5deg); } 204 | 36% { -webkit-transform: translate(-1px, 0px) rotate(-0.5deg); } 205 | 38% { -webkit-transform: translate(0px, -1px) rotate(-0.5deg); } 206 | 40% { -webkit-transform: translate(0px, 0px) rotate(-0.5deg); } 207 | 42% { -webkit-transform: translate(-1px, 0px) rotate(-0.5deg); } 208 | 44% { -webkit-transform: translate(-1px, -1px) rotate(-0.5deg); } 209 | 46% { -webkit-transform: translate(0px, 0px) rotate(-0.5deg); } 210 | 48% { -webkit-transform: translate(0px, -1px) rotate(-0.5deg); } 211 | 50% { -webkit-transform: translate(0px, -1px) rotate(-0.5deg); } 212 | 52% { -webkit-transform: translate(-1px, 0px) rotate(-0.5deg); } 213 | 54% { -webkit-transform: translate(-1px, -1px) rotate(-0.5deg); } 214 | 56% { -webkit-transform: translate(0px, 0px) rotate(-0.5deg); } 215 | 58% { -webkit-transform: translate(-1px, -1px) rotate(-0.5deg); } 216 | 60% { -webkit-transform: translate(0px, 0px) rotate(-0.5deg); } 217 | 62% { -webkit-transform: translate(-1px, 0px) rotate(-0.5deg); } 218 | 64% { -webkit-transform: translate(0px, -1px) rotate(-0.5deg); } 219 | 66% { -webkit-transform: translate(0px, 0px) rotate(-0.5deg); } 220 | 68% { -webkit-transform: translate(-1px, 0px) rotate(-0.5deg); } 221 | 70% { -webkit-transform: translate(0px, 0px) rotate(-0.5deg); } 222 | 72% { -webkit-transform: translate(0px, 0px) rotate(-0.5deg); } 223 | 74% { -webkit-transform: translate(-1px, -1px) rotate(-0.5deg); } 224 | 76% { -webkit-transform: translate(-1px, -1px) rotate(-0.5deg); } 225 | 78% { -webkit-transform: translate(0px, -1px) rotate(-0.5deg); } 226 | 80% { -webkit-transform: translate(-1px, 0px) rotate(-0.5deg); } 227 | 82% { -webkit-transform: translate(-1px, -1px) rotate(-0.5deg); } 228 | 84% { -webkit-transform: translate(-1px, 0px) rotate(-0.5deg); } 229 | 86% { -webkit-transform: translate(0px, 0px) rotate(-0.5deg); } 230 | 88% { -webkit-transform: translate(0px, -1px) rotate(-0.5deg); } 231 | 90% { -webkit-transform: translate(0px, -1px) rotate(-0.5deg); } 232 | 92% { -webkit-transform: translate(-1px, -1px) rotate(-0.5deg); } 233 | 94% { -webkit-transform: translate(0px, -1px) rotate(-0.5deg); } 234 | 96% { -webkit-transform: translate(-1px, 0px) rotate(-0.5deg); } 235 | 98% { -webkit-transform: translate(-1px, -1px) rotate(-0.5deg); } } 236 | 237 | @-ms-keyframes shake-little { 0% { -ms-transform: translate(0px, 0px) rotate(0deg); } 238 | 2% { -ms-transform: translate(-1px, -1px) rotate(-0.5deg); } 239 | 4% { -ms-transform: translate(-1px, 0px) rotate(-0.5deg); } 240 | 6% { -ms-transform: translate(-1px, 0px) rotate(-0.5deg); } 241 | 8% { -ms-transform: translate(0px, 0px) rotate(-0.5deg); } 242 | 10% { -ms-transform: translate(-1px, -1px) rotate(-0.5deg); } 243 | 12% { -ms-transform: translate(0px, -1px) rotate(-0.5deg); } 244 | 14% { -ms-transform: translate(-1px, -1px) rotate(-0.5deg); } 245 | 16% { -ms-transform: translate(0px, -1px) rotate(-0.5deg); } 246 | 18% { -ms-transform: translate(-1px, -1px) rotate(-0.5deg); } 247 | 20% { -ms-transform: translate(0px, 0px) rotate(-0.5deg); } 248 | 22% { -ms-transform: translate(0px, 0px) rotate(-0.5deg); } 249 | 24% { -ms-transform: translate(0px, -1px) rotate(-0.5deg); } 250 | 26% { -ms-transform: translate(-1px, -1px) rotate(-0.5deg); } 251 | 28% { -ms-transform: translate(-1px, -1px) rotate(-0.5deg); } 252 | 30% { -ms-transform: translate(0px, -1px) rotate(-0.5deg); } 253 | 32% { -ms-transform: translate(-1px, -1px) rotate(-0.5deg); } 254 | 34% { -ms-transform: translate(-1px, -1px) rotate(-0.5deg); } 255 | 36% { -ms-transform: translate(-1px, -1px) rotate(-0.5deg); } 256 | 38% { -ms-transform: translate(0px, -1px) rotate(-0.5deg); } 257 | 40% { -ms-transform: translate(-1px, 0px) rotate(-0.5deg); } 258 | 42% { -ms-transform: translate(0px, 0px) rotate(-0.5deg); } 259 | 44% { -ms-transform: translate(0px, -1px) rotate(-0.5deg); } 260 | 46% { -ms-transform: translate(-1px, -1px) rotate(-0.5deg); } 261 | 48% { -ms-transform: translate(0px, -1px) rotate(-0.5deg); } 262 | 50% { -ms-transform: translate(-1px, 0px) rotate(-0.5deg); } 263 | 52% { -ms-transform: translate(-1px, -1px) rotate(-0.5deg); } 264 | 54% { -ms-transform: translate(-1px, 0px) rotate(-0.5deg); } 265 | 56% { -ms-transform: translate(0px, 0px) rotate(-0.5deg); } 266 | 58% { -ms-transform: translate(-1px, 0px) rotate(-0.5deg); } 267 | 60% { -ms-transform: translate(0px, -1px) rotate(-0.5deg); } 268 | 62% { -ms-transform: translate(0px, 0px) rotate(-0.5deg); } 269 | 64% { -ms-transform: translate(0px, -1px) rotate(-0.5deg); } 270 | 66% { -ms-transform: translate(0px, -1px) rotate(-0.5deg); } 271 | 68% { -ms-transform: translate(-1px, -1px) rotate(-0.5deg); } 272 | 70% { -ms-transform: translate(0px, -1px) rotate(-0.5deg); } 273 | 72% { -ms-transform: translate(0px, -1px) rotate(-0.5deg); } 274 | 74% { -ms-transform: translate(0px, 0px) rotate(-0.5deg); } 275 | 76% { -ms-transform: translate(0px, 0px) rotate(-0.5deg); } 276 | 78% { -ms-transform: translate(-1px, -1px) rotate(-0.5deg); } 277 | 80% { -ms-transform: translate(-1px, -1px) rotate(-0.5deg); } 278 | 82% { -ms-transform: translate(-1px, 0px) rotate(-0.5deg); } 279 | 84% { -ms-transform: translate(-1px, -1px) rotate(-0.5deg); } 280 | 86% { -ms-transform: translate(-1px, 0px) rotate(-0.5deg); } 281 | 88% { -ms-transform: translate(0px, 0px) rotate(-0.5deg); } 282 | 90% { -ms-transform: translate(0px, 0px) rotate(-0.5deg); } 283 | 92% { -ms-transform: translate(0px, -1px) rotate(-0.5deg); } 284 | 94% { -ms-transform: translate(-1px, -1px) rotate(-0.5deg); } 285 | 96% { -ms-transform: translate(0px, -1px) rotate(-0.5deg); } 286 | 98% { -ms-transform: translate(0px, 0px) rotate(-0.5deg); } } 287 | 288 | @keyframes shake-little { 0% { transform: translate(0px, 0px) rotate(0deg); } 289 | 2% { transform: translate(0px, 0px) rotate(-0.5deg); } 290 | 4% { transform: translate(-1px, 0px) rotate(-0.5deg); } 291 | 6% { transform: translate(0px, -1px) rotate(-0.5deg); } 292 | 8% { transform: translate(0px, 0px) rotate(-0.5deg); } 293 | 10% { transform: translate(-1px, 0px) rotate(-0.5deg); } 294 | 12% { transform: translate(-1px, 0px) rotate(-0.5deg); } 295 | 14% { transform: translate(0px, 0px) rotate(-0.5deg); } 296 | 16% { transform: translate(0px, 0px) rotate(-0.5deg); } 297 | 18% { transform: translate(0px, -1px) rotate(-0.5deg); } 298 | 20% { transform: translate(0px, 0px) rotate(-0.5deg); } 299 | 22% { transform: translate(-1px, 0px) rotate(-0.5deg); } 300 | 24% { transform: translate(0px, 0px) rotate(-0.5deg); } 301 | 26% { transform: translate(-1px, -1px) rotate(-0.5deg); } 302 | 28% { transform: translate(-1px, -1px) rotate(-0.5deg); } 303 | 30% { transform: translate(0px, 0px) rotate(-0.5deg); } 304 | 32% { transform: translate(-1px, 0px) rotate(-0.5deg); } 305 | 34% { transform: translate(0px, -1px) rotate(-0.5deg); } 306 | 36% { transform: translate(0px, -1px) rotate(-0.5deg); } 307 | 38% { transform: translate(-1px, -1px) rotate(-0.5deg); } 308 | 40% { transform: translate(-1px, -1px) rotate(-0.5deg); } 309 | 42% { transform: translate(-1px, 0px) rotate(-0.5deg); } 310 | 44% { transform: translate(-1px, 0px) rotate(-0.5deg); } 311 | 46% { transform: translate(0px, -1px) rotate(-0.5deg); } 312 | 48% { transform: translate(0px, 0px) rotate(-0.5deg); } 313 | 50% { transform: translate(-1px, -1px) rotate(-0.5deg); } 314 | 52% { transform: translate(0px, 0px) rotate(-0.5deg); } 315 | 54% { transform: translate(0px, 0px) rotate(-0.5deg); } 316 | 56% { transform: translate(-1px, -1px) rotate(-0.5deg); } 317 | 58% { transform: translate(-1px, -1px) rotate(-0.5deg); } 318 | 60% { transform: translate(-1px, -1px) rotate(-0.5deg); } 319 | 62% { transform: translate(-1px, -1px) rotate(-0.5deg); } 320 | 64% { transform: translate(-1px, 0px) rotate(-0.5deg); } 321 | 66% { transform: translate(0px, -1px) rotate(-0.5deg); } 322 | 68% { transform: translate(0px, -1px) rotate(-0.5deg); } 323 | 70% { transform: translate(0px, -1px) rotate(-0.5deg); } 324 | 72% { transform: translate(-1px, 0px) rotate(-0.5deg); } 325 | 74% { transform: translate(0px, -1px) rotate(-0.5deg); } 326 | 76% { transform: translate(0px, 0px) rotate(-0.5deg); } 327 | 78% { transform: translate(-1px, -1px) rotate(-0.5deg); } 328 | 80% { transform: translate(-1px, 0px) rotate(-0.5deg); } 329 | 82% { transform: translate(0px, -1px) rotate(-0.5deg); } 330 | 84% { transform: translate(0px, 0px) rotate(-0.5deg); } 331 | 86% { transform: translate(0px, 0px) rotate(-0.5deg); } 332 | 88% { transform: translate(0px, 0px) rotate(-0.5deg); } 333 | 90% { transform: translate(-1px, 0px) rotate(-0.5deg); } 334 | 92% { transform: translate(0px, 0px) rotate(-0.5deg); } 335 | 94% { transform: translate(0px, -1px) rotate(-0.5deg); } 336 | 96% { transform: translate(0px, 0px) rotate(-0.5deg); } 337 | 98% { transform: translate(0px, 0px) rotate(-0.5deg); } } 338 | 339 | @-webkit-keyframes shake-slow { 0% { -webkit-transform: translate(0px, 0px) rotate(0deg); } 340 | 2% { -webkit-transform: translate(-1px, 3px) rotate(-1.5deg); } 341 | 4% { -webkit-transform: translate(-4px, 5px) rotate(-1.5deg); } 342 | 6% { -webkit-transform: translate(-1px, 6px) rotate(-0.5deg); } 343 | 8% { -webkit-transform: translate(5px, -4px) rotate(-3.5deg); } 344 | 10% { -webkit-transform: translate(-7px, -3px) rotate(-3.5deg); } 345 | 12% { -webkit-transform: translate(-1px, 8px) rotate(2.5deg); } 346 | 14% { -webkit-transform: translate(3px, -5px) rotate(-1.5deg); } 347 | 16% { -webkit-transform: translate(1px, 0px) rotate(2.5deg); } 348 | 18% { -webkit-transform: translate(-6px, -10px) rotate(-0.5deg); } 349 | 20% { -webkit-transform: translate(3px, -2px) rotate(1.5deg); } 350 | 22% { -webkit-transform: translate(0px, 0px) rotate(-2.5deg); } 351 | 24% { -webkit-transform: translate(-5px, -4px) rotate(1.5deg); } 352 | 26% { -webkit-transform: translate(-1px, 3px) rotate(-3.5deg); } 353 | 28% { -webkit-transform: translate(1px, 1px) rotate(-3.5deg); } 354 | 30% { -webkit-transform: translate(-4px, 8px) rotate(1.5deg); } 355 | 32% { -webkit-transform: translate(-9px, 7px) rotate(-3.5deg); } 356 | 34% { -webkit-transform: translate(4px, -9px) rotate(-2.5deg); } 357 | 36% { -webkit-transform: translate(1px, -6px) rotate(-2.5deg); } 358 | 38% { -webkit-transform: translate(-4px, 0px) rotate(-2.5deg); } 359 | 40% { -webkit-transform: translate(3px, -7px) rotate(0.5deg); } 360 | 42% { -webkit-transform: translate(4px, 4px) rotate(-0.5deg); } 361 | 44% { -webkit-transform: translate(8px, -4px) rotate(-2.5deg); } 362 | 46% { -webkit-transform: translate(9px, 9px) rotate(-3.5deg); } 363 | 48% { -webkit-transform: translate(6px, -8px) rotate(-0.5deg); } 364 | 50% { -webkit-transform: translate(-1px, 4px) rotate(-3.5deg); } 365 | 52% { -webkit-transform: translate(4px, 6px) rotate(-1.5deg); } 366 | 54% { -webkit-transform: translate(9px, -3px) rotate(2.5deg); } 367 | 56% { -webkit-transform: translate(8px, -2px) rotate(-3.5deg); } 368 | 58% { -webkit-transform: translate(-2px, -9px) rotate(-0.5deg); } 369 | 60% { -webkit-transform: translate(-1px, -5px) rotate(2.5deg); } 370 | 62% { -webkit-transform: translate(-8px, 3px) rotate(2.5deg); } 371 | 64% { -webkit-transform: translate(6px, -2px) rotate(-3.5deg); } 372 | 66% { -webkit-transform: translate(-5px, 9px) rotate(-1.5deg); } 373 | 68% { -webkit-transform: translate(3px, 1px) rotate(-0.5deg); } 374 | 70% { -webkit-transform: translate(6px, 4px) rotate(-1.5deg); } 375 | 72% { -webkit-transform: translate(-6px, -5px) rotate(1.5deg); } 376 | 74% { -webkit-transform: translate(-8px, 0px) rotate(-0.5deg); } 377 | 76% { -webkit-transform: translate(-5px, -8px) rotate(1.5deg); } 378 | 78% { -webkit-transform: translate(5px, -3px) rotate(-1.5deg); } 379 | 80% { -webkit-transform: translate(-6px, -3px) rotate(-1.5deg); } 380 | 82% { -webkit-transform: translate(7px, 8px) rotate(-1.5deg); } 381 | 84% { -webkit-transform: translate(-6px, 9px) rotate(0.5deg); } 382 | 86% { -webkit-transform: translate(1px, 8px) rotate(-3.5deg); } 383 | 88% { -webkit-transform: translate(-9px, -2px) rotate(1.5deg); } 384 | 90% { -webkit-transform: translate(4px, -6px) rotate(-1.5deg); } 385 | 92% { -webkit-transform: translate(0px, -1px) rotate(0.5deg); } 386 | 94% { -webkit-transform: translate(2px, -9px) rotate(2.5deg); } 387 | 96% { -webkit-transform: translate(-9px, 1px) rotate(-2.5deg); } 388 | 98% { -webkit-transform: translate(-9px, -5px) rotate(-3.5deg); } } 389 | 390 | @-ms-keyframes shake-slow { 0% { -ms-transform: translate(0px, 0px) rotate(0deg); } 391 | 2% { -ms-transform: translate(-10px, 5px) rotate(-2.5deg); } 392 | 4% { -ms-transform: translate(7px, 7px) rotate(-3.5deg); } 393 | 6% { -ms-transform: translate(8px, -7px) rotate(-2.5deg); } 394 | 8% { -ms-transform: translate(-8px, 3px) rotate(-0.5deg); } 395 | 10% { -ms-transform: translate(3px, -10px) rotate(-1.5deg); } 396 | 12% { -ms-transform: translate(-9px, -6px) rotate(2.5deg); } 397 | 14% { -ms-transform: translate(-2px, -6px) rotate(-0.5deg); } 398 | 16% { -ms-transform: translate(6px, -1px) rotate(0.5deg); } 399 | 18% { -ms-transform: translate(5px, -1px) rotate(0.5deg); } 400 | 20% { -ms-transform: translate(7px, -5px) rotate(-0.5deg); } 401 | 22% { -ms-transform: translate(-8px, 5px) rotate(2.5deg); } 402 | 24% { -ms-transform: translate(0px, 4px) rotate(2.5deg); } 403 | 26% { -ms-transform: translate(-1px, 2px) rotate(-1.5deg); } 404 | 28% { -ms-transform: translate(-1px, -1px) rotate(1.5deg); } 405 | 30% { -ms-transform: translate(-5px, -5px) rotate(2.5deg); } 406 | 32% { -ms-transform: translate(0px, 7px) rotate(-0.5deg); } 407 | 34% { -ms-transform: translate(-9px, 3px) rotate(-0.5deg); } 408 | 36% { -ms-transform: translate(3px, -5px) rotate(-2.5deg); } 409 | 38% { -ms-transform: translate(5px, 2px) rotate(-0.5deg); } 410 | 40% { -ms-transform: translate(6px, -3px) rotate(0.5deg); } 411 | 42% { -ms-transform: translate(-4px, -6px) rotate(-0.5deg); } 412 | 44% { -ms-transform: translate(9px, 2px) rotate(-3.5deg); } 413 | 46% { -ms-transform: translate(6px, -4px) rotate(1.5deg); } 414 | 48% { -ms-transform: translate(6px, 5px) rotate(2.5deg); } 415 | 50% { -ms-transform: translate(-9px, -2px) rotate(-2.5deg); } 416 | 52% { -ms-transform: translate(-7px, 9px) rotate(-0.5deg); } 417 | 54% { -ms-transform: translate(-5px, -5px) rotate(-3.5deg); } 418 | 56% { -ms-transform: translate(-6px, -10px) rotate(1.5deg); } 419 | 58% { -ms-transform: translate(-3px, 1px) rotate(-3.5deg); } 420 | 60% { -ms-transform: translate(3px, 5px) rotate(2.5deg); } 421 | 62% { -ms-transform: translate(-1px, -8px) rotate(2.5deg); } 422 | 64% { -ms-transform: translate(6px, -7px) rotate(-0.5deg); } 423 | 66% { -ms-transform: translate(-7px, -1px) rotate(0.5deg); } 424 | 68% { -ms-transform: translate(-3px, -4px) rotate(-1.5deg); } 425 | 70% { -ms-transform: translate(-10px, 9px) rotate(2.5deg); } 426 | 72% { -ms-transform: translate(9px, 9px) rotate(2.5deg); } 427 | 74% { -ms-transform: translate(-6px, 8px) rotate(-0.5deg); } 428 | 76% { -ms-transform: translate(-5px, -10px) rotate(-2.5deg); } 429 | 78% { -ms-transform: translate(-7px, -9px) rotate(-0.5deg); } 430 | 80% { -ms-transform: translate(8px, -4px) rotate(2.5deg); } 431 | 82% { -ms-transform: translate(9px, 4px) rotate(-0.5deg); } 432 | 84% { -ms-transform: translate(-1px, -1px) rotate(2.5deg); } 433 | 86% { -ms-transform: translate(-6px, -3px) rotate(0.5deg); } 434 | 88% { -ms-transform: translate(-2px, -4px) rotate(0.5deg); } 435 | 90% { -ms-transform: translate(5px, 1px) rotate(0.5deg); } 436 | 92% { -ms-transform: translate(1px, 2px) rotate(-3.5deg); } 437 | 94% { -ms-transform: translate(-5px, -10px) rotate(1.5deg); } 438 | 96% { -ms-transform: translate(-6px, 3px) rotate(-3.5deg); } 439 | 98% { -ms-transform: translate(-1px, -7px) rotate(-2.5deg); } } 440 | 441 | @keyframes shake-slow { 0% { transform: translate(0px, 0px) rotate(0deg); } 442 | 2% { transform: translate(6px, -7px) rotate(2.5deg); } 443 | 4% { transform: translate(8px, -8px) rotate(2.5deg); } 444 | 6% { transform: translate(1px, -8px) rotate(-3.5deg); } 445 | 8% { transform: translate(-3px, 4px) rotate(-0.5deg); } 446 | 10% { transform: translate(0px, -3px) rotate(1.5deg); } 447 | 12% { transform: translate(-1px, 2px) rotate(0.5deg); } 448 | 14% { transform: translate(6px, 6px) rotate(-1.5deg); } 449 | 16% { transform: translate(-7px, 4px) rotate(-0.5deg); } 450 | 18% { transform: translate(7px, 8px) rotate(-3.5deg); } 451 | 20% { transform: translate(-6px, 2px) rotate(1.5deg); } 452 | 22% { transform: translate(9px, 5px) rotate(-1.5deg); } 453 | 24% { transform: translate(7px, -2px) rotate(0.5deg); } 454 | 26% { transform: translate(-7px, -10px) rotate(-0.5deg); } 455 | 28% { transform: translate(-10px, -8px) rotate(-1.5deg); } 456 | 30% { transform: translate(8px, 4px) rotate(0.5deg); } 457 | 32% { transform: translate(0px, 4px) rotate(1.5deg); } 458 | 34% { transform: translate(-8px, 6px) rotate(-0.5deg); } 459 | 36% { transform: translate(-5px, 7px) rotate(1.5deg); } 460 | 38% { transform: translate(-4px, -4px) rotate(-1.5deg); } 461 | 40% { transform: translate(9px, 4px) rotate(-1.5deg); } 462 | 42% { transform: translate(9px, -5px) rotate(2.5deg); } 463 | 44% { transform: translate(-5px, -4px) rotate(-2.5deg); } 464 | 46% { transform: translate(7px, -7px) rotate(1.5deg); } 465 | 48% { transform: translate(-5px, 8px) rotate(0.5deg); } 466 | 50% { transform: translate(9px, 1px) rotate(-1.5deg); } 467 | 52% { transform: translate(-9px, -5px) rotate(-3.5deg); } 468 | 54% { transform: translate(-2px, 9px) rotate(1.5deg); } 469 | 56% { transform: translate(6px, -1px) rotate(1.5deg); } 470 | 58% { transform: translate(-6px, 0px) rotate(-0.5deg); } 471 | 60% { transform: translate(3px, 1px) rotate(1.5deg); } 472 | 62% { transform: translate(5px, -7px) rotate(-0.5deg); } 473 | 64% { transform: translate(9px, 2px) rotate(2.5deg); } 474 | 66% { transform: translate(6px, 0px) rotate(-2.5deg); } 475 | 68% { transform: translate(5px, -4px) rotate(-2.5deg); } 476 | 70% { transform: translate(-8px, 5px) rotate(-2.5deg); } 477 | 72% { transform: translate(-6px, -2px) rotate(0.5deg); } 478 | 74% { transform: translate(-3px, 7px) rotate(-3.5deg); } 479 | 76% { transform: translate(-7px, -8px) rotate(-3.5deg); } 480 | 78% { transform: translate(-1px, -2px) rotate(2.5deg); } 481 | 80% { transform: translate(8px, 6px) rotate(-2.5deg); } 482 | 82% { transform: translate(-2px, -9px) rotate(2.5deg); } 483 | 84% { transform: translate(8px, -10px) rotate(-0.5deg); } 484 | 86% { transform: translate(-6px, 0px) rotate(2.5deg); } 485 | 88% { transform: translate(-1px, 9px) rotate(-3.5deg); } 486 | 90% { transform: translate(-7px, 8px) rotate(1.5deg); } 487 | 92% { transform: translate(-10px, -8px) rotate(0.5deg); } 488 | 94% { transform: translate(-8px, 6px) rotate(1.5deg); } 489 | 96% { transform: translate(4px, -9px) rotate(2.5deg); } 490 | 98% { transform: translate(-4px, 9px) rotate(0.5deg); } } 491 | 492 | @-webkit-keyframes shake-hard { 0% { -webkit-transform: translate(0px, 0px) rotate(0deg); } 493 | 2% { -webkit-transform: translate(-5px, -7px) rotate(-3.5deg); } 494 | 4% { -webkit-transform: translate(-9px, -7px) rotate(-0.5deg); } 495 | 6% { -webkit-transform: translate(-3px, -1px) rotate(-0.5deg); } 496 | 8% { -webkit-transform: translate(2px, -8px) rotate(-3.5deg); } 497 | 10% { -webkit-transform: translate(-2px, -4px) rotate(0.5deg); } 498 | 12% { -webkit-transform: translate(-8px, 6px) rotate(2.5deg); } 499 | 14% { -webkit-transform: translate(-1px, 3px) rotate(-0.5deg); } 500 | 16% { -webkit-transform: translate(-7px, 0px) rotate(1.5deg); } 501 | 18% { -webkit-transform: translate(-6px, -6px) rotate(2.5deg); } 502 | 20% { -webkit-transform: translate(-8px, 5px) rotate(2.5deg); } 503 | 22% { -webkit-transform: translate(-3px, 1px) rotate(-1.5deg); } 504 | 24% { -webkit-transform: translate(-7px, 5px) rotate(0.5deg); } 505 | 26% { -webkit-transform: translate(1px, 8px) rotate(0.5deg); } 506 | 28% { -webkit-transform: translate(-4px, 5px) rotate(2.5deg); } 507 | 30% { -webkit-transform: translate(-4px, -2px) rotate(-0.5deg); } 508 | 32% { -webkit-transform: translate(2px, -2px) rotate(-1.5deg); } 509 | 34% { -webkit-transform: translate(-3px, 6px) rotate(-3.5deg); } 510 | 36% { -webkit-transform: translate(4px, 5px) rotate(-0.5deg); } 511 | 38% { -webkit-transform: translate(-4px, -4px) rotate(-0.5deg); } 512 | 40% { -webkit-transform: translate(-8px, 3px) rotate(-0.5deg); } 513 | 42% { -webkit-transform: translate(-2px, -8px) rotate(0.5deg); } 514 | 44% { -webkit-transform: translate(-2px, 8px) rotate(-3.5deg); } 515 | 46% { -webkit-transform: translate(-1px, -6px) rotate(-2.5deg); } 516 | 48% { -webkit-transform: translate(-8px, 7px) rotate(-2.5deg); } 517 | 50% { -webkit-transform: translate(4px, -10px) rotate(1.5deg); } 518 | 52% { -webkit-transform: translate(-9px, 8px) rotate(-1.5deg); } 519 | 54% { -webkit-transform: translate(2px, -6px) rotate(-2.5deg); } 520 | 56% { -webkit-transform: translate(-6px, -4px) rotate(-3.5deg); } 521 | 58% { -webkit-transform: translate(8px, 8px) rotate(1.5deg); } 522 | 60% { -webkit-transform: translate(-2px, -7px) rotate(-3.5deg); } 523 | 62% { -webkit-transform: translate(-7px, -6px) rotate(0.5deg); } 524 | 64% { -webkit-transform: translate(0px, 7px) rotate(1.5deg); } 525 | 66% { -webkit-transform: translate(-3px, -3px) rotate(2.5deg); } 526 | 68% { -webkit-transform: translate(4px, 1px) rotate(2.5deg); } 527 | 70% { -webkit-transform: translate(2px, 3px) rotate(0.5deg); } 528 | 72% { -webkit-transform: translate(4px, -10px) rotate(-0.5deg); } 529 | 74% { -webkit-transform: translate(-1px, 7px) rotate(0.5deg); } 530 | 76% { -webkit-transform: translate(-3px, 3px) rotate(-3.5deg); } 531 | 78% { -webkit-transform: translate(-2px, 9px) rotate(-2.5deg); } 532 | 80% { -webkit-transform: translate(7px, -5px) rotate(-3.5deg); } 533 | 82% { -webkit-transform: translate(-8px, 8px) rotate(-0.5deg); } 534 | 84% { -webkit-transform: translate(5px, 8px) rotate(-3.5deg); } 535 | 86% { -webkit-transform: translate(4px, 0px) rotate(1.5deg); } 536 | 88% { -webkit-transform: translate(-7px, 4px) rotate(2.5deg); } 537 | 90% { -webkit-transform: translate(4px, 8px) rotate(0.5deg); } 538 | 92% { -webkit-transform: translate(0px, -3px) rotate(-3.5deg); } 539 | 94% { -webkit-transform: translate(7px, -3px) rotate(1.5deg); } 540 | 96% { -webkit-transform: translate(-6px, -6px) rotate(0.5deg); } 541 | 98% { -webkit-transform: translate(-4px, 7px) rotate(-2.5deg); } } 542 | 543 | @-ms-keyframes shake-hard { 0% { -ms-transform: translate(0px, 0px) rotate(0deg); } 544 | 2% { -ms-transform: translate(2px, 5px) rotate(2.5deg); } 545 | 4% { -ms-transform: translate(-5px, 8px) rotate(2.5deg); } 546 | 6% { -ms-transform: translate(-7px, 7px) rotate(0.5deg); } 547 | 8% { -ms-transform: translate(2px, 3px) rotate(-1.5deg); } 548 | 10% { -ms-transform: translate(-1px, -1px) rotate(-0.5deg); } 549 | 12% { -ms-transform: translate(7px, 5px) rotate(-3.5deg); } 550 | 14% { -ms-transform: translate(3px, 2px) rotate(1.5deg); } 551 | 16% { -ms-transform: translate(-1px, -1px) rotate(-1.5deg); } 552 | 18% { -ms-transform: translate(-3px, -7px) rotate(-3.5deg); } 553 | 20% { -ms-transform: translate(5px, 0px) rotate(2.5deg); } 554 | 22% { -ms-transform: translate(1px, -10px) rotate(-1.5deg); } 555 | 24% { -ms-transform: translate(-6px, -3px) rotate(2.5deg); } 556 | 26% { -ms-transform: translate(-4px, 5px) rotate(2.5deg); } 557 | 28% { -ms-transform: translate(-6px, 0px) rotate(-3.5deg); } 558 | 30% { -ms-transform: translate(-1px, 6px) rotate(-2.5deg); } 559 | 32% { -ms-transform: translate(8px, 2px) rotate(-2.5deg); } 560 | 34% { -ms-transform: translate(-4px, -2px) rotate(2.5deg); } 561 | 36% { -ms-transform: translate(8px, 8px) rotate(-0.5deg); } 562 | 38% { -ms-transform: translate(-8px, -6px) rotate(-3.5deg); } 563 | 40% { -ms-transform: translate(3px, -2px) rotate(-0.5deg); } 564 | 42% { -ms-transform: translate(1px, 5px) rotate(-1.5deg); } 565 | 44% { -ms-transform: translate(6px, 2px) rotate(0.5deg); } 566 | 46% { -ms-transform: translate(-6px, -1px) rotate(-0.5deg); } 567 | 48% { -ms-transform: translate(-5px, 5px) rotate(-1.5deg); } 568 | 50% { -ms-transform: translate(6px, 6px) rotate(-2.5deg); } 569 | 52% { -ms-transform: translate(-1px, 9px) rotate(0.5deg); } 570 | 54% { -ms-transform: translate(-3px, 7px) rotate(2.5deg); } 571 | 56% { -ms-transform: translate(7px, 5px) rotate(0.5deg); } 572 | 58% { -ms-transform: translate(-8px, -4px) rotate(-0.5deg); } 573 | 60% { -ms-transform: translate(-6px, -5px) rotate(0.5deg); } 574 | 62% { -ms-transform: translate(8px, -8px) rotate(-2.5deg); } 575 | 64% { -ms-transform: translate(-2px, -5px) rotate(-2.5deg); } 576 | 66% { -ms-transform: translate(-5px, -7px) rotate(2.5deg); } 577 | 68% { -ms-transform: translate(3px, -3px) rotate(-2.5deg); } 578 | 70% { -ms-transform: translate(3px, 8px) rotate(-2.5deg); } 579 | 72% { -ms-transform: translate(-3px, -3px) rotate(-3.5deg); } 580 | 74% { -ms-transform: translate(-8px, -4px) rotate(-2.5deg); } 581 | 76% { -ms-transform: translate(-8px, -5px) rotate(-1.5deg); } 582 | 78% { -ms-transform: translate(6px, -10px) rotate(0.5deg); } 583 | 80% { -ms-transform: translate(-9px, -3px) rotate(-3.5deg); } 584 | 82% { -ms-transform: translate(6px, 5px) rotate(-3.5deg); } 585 | 84% { -ms-transform: translate(-4px, 5px) rotate(-0.5deg); } 586 | 86% { -ms-transform: translate(-3px, -3px) rotate(0.5deg); } 587 | 88% { -ms-transform: translate(3px, -7px) rotate(-2.5deg); } 588 | 90% { -ms-transform: translate(-1px, 2px) rotate(-1.5deg); } 589 | 92% { -ms-transform: translate(2px, 5px) rotate(2.5deg); } 590 | 94% { -ms-transform: translate(-2px, 1px) rotate(-2.5deg); } 591 | 96% { -ms-transform: translate(-5px, -2px) rotate(-0.5deg); } 592 | 98% { -ms-transform: translate(-6px, 8px) rotate(-2.5deg); } } 593 | 594 | @keyframes shake-hard { 0% { transform: translate(0px, 0px) rotate(0deg); } 595 | 2% { transform: translate(-8px, -1px) rotate(0.5deg); } 596 | 4% { transform: translate(-3px, 3px) rotate(-2.5deg); } 597 | 6% { transform: translate(-4px, -2px) rotate(-2.5deg); } 598 | 8% { transform: translate(-8px, -5px) rotate(-3.5deg); } 599 | 10% { transform: translate(-2px, -10px) rotate(0.5deg); } 600 | 12% { transform: translate(0px, -9px) rotate(-1.5deg); } 601 | 14% { transform: translate(-8px, 7px) rotate(-0.5deg); } 602 | 16% { transform: translate(-2px, 8px) rotate(-1.5deg); } 603 | 18% { transform: translate(1px, 9px) rotate(1.5deg); } 604 | 20% { transform: translate(5px, 7px) rotate(-2.5deg); } 605 | 22% { transform: translate(0px, 2px) rotate(-2.5deg); } 606 | 24% { transform: translate(0px, 7px) rotate(-1.5deg); } 607 | 26% { transform: translate(-9px, 4px) rotate(-3.5deg); } 608 | 28% { transform: translate(3px, -1px) rotate(1.5deg); } 609 | 30% { transform: translate(6px, 2px) rotate(1.5deg); } 610 | 32% { transform: translate(-8px, -8px) rotate(-3.5deg); } 611 | 34% { transform: translate(9px, 5px) rotate(-1.5deg); } 612 | 36% { transform: translate(-2px, 7px) rotate(-0.5deg); } 613 | 38% { transform: translate(0px, 0px) rotate(2.5deg); } 614 | 40% { transform: translate(0px, -10px) rotate(-3.5deg); } 615 | 42% { transform: translate(3px, -4px) rotate(0.5deg); } 616 | 44% { transform: translate(-1px, -10px) rotate(0.5deg); } 617 | 46% { transform: translate(0px, 1px) rotate(2.5deg); } 618 | 48% { transform: translate(-1px, 1px) rotate(2.5deg); } 619 | 50% { transform: translate(7px, 4px) rotate(-0.5deg); } 620 | 52% { transform: translate(-10px, -5px) rotate(1.5deg); } 621 | 54% { transform: translate(-1px, 6px) rotate(-1.5deg); } 622 | 56% { transform: translate(-9px, 9px) rotate(-3.5deg); } 623 | 58% { transform: translate(8px, 2px) rotate(2.5deg); } 624 | 60% { transform: translate(9px, 1px) rotate(-1.5deg); } 625 | 62% { transform: translate(-3px, -2px) rotate(-2.5deg); } 626 | 64% { transform: translate(-3px, 8px) rotate(0.5deg); } 627 | 66% { transform: translate(-8px, 8px) rotate(0.5deg); } 628 | 68% { transform: translate(0px, 9px) rotate(2.5deg); } 629 | 70% { transform: translate(3px, -9px) rotate(2.5deg); } 630 | 72% { transform: translate(3px, -5px) rotate(-3.5deg); } 631 | 74% { transform: translate(-10px, 2px) rotate(-1.5deg); } 632 | 76% { transform: translate(2px, 2px) rotate(1.5deg); } 633 | 78% { transform: translate(2px, -3px) rotate(0.5deg); } 634 | 80% { transform: translate(-4px, -7px) rotate(-1.5deg); } 635 | 82% { transform: translate(-9px, 0px) rotate(-0.5deg); } 636 | 84% { transform: translate(-5px, 5px) rotate(-3.5deg); } 637 | 86% { transform: translate(-8px, -3px) rotate(2.5deg); } 638 | 88% { transform: translate(2px, -5px) rotate(-1.5deg); } 639 | 90% { transform: translate(-5px, 0px) rotate(-2.5deg); } 640 | 92% { transform: translate(1px, -5px) rotate(1.5deg); } 641 | 94% { transform: translate(-8px, -8px) rotate(0.5deg); } 642 | 96% { transform: translate(-6px, -8px) rotate(2.5deg); } 643 | 98% { transform: translate(1px, 0px) rotate(1.5deg); } } 644 | 645 | @-webkit-keyframes shake-horizontal { 0% { -webkit-transform: translate(0px, 0px) rotate(0deg); } 646 | 2% { -webkit-transform: translate(-6px, 0px) rotate(0deg); } 647 | 4% { -webkit-transform: translate(5px, 0px) rotate(0deg); } 648 | 6% { -webkit-transform: translate(3px, 0px) rotate(0deg); } 649 | 8% { -webkit-transform: translate(-3px, 0px) rotate(0deg); } 650 | 10% { -webkit-transform: translate(2px, 0px) rotate(0deg); } 651 | 12% { -webkit-transform: translate(6px, 0px) rotate(0deg); } 652 | 14% { -webkit-transform: translate(5px, 0px) rotate(0deg); } 653 | 16% { -webkit-transform: translate(5px, 0px) rotate(0deg); } 654 | 18% { -webkit-transform: translate(5px, 0px) rotate(0deg); } 655 | 20% { -webkit-transform: translate(-4px, 0px) rotate(0deg); } 656 | 22% { -webkit-transform: translate(5px, 0px) rotate(0deg); } 657 | 24% { -webkit-transform: translate(-1px, 0px) rotate(0deg); } 658 | 26% { -webkit-transform: translate(7px, 0px) rotate(0deg); } 659 | 28% { -webkit-transform: translate(-5px, 0px) rotate(0deg); } 660 | 30% { -webkit-transform: translate(8px, 0px) rotate(0deg); } 661 | 32% { -webkit-transform: translate(-8px, 0px) rotate(0deg); } 662 | 34% { -webkit-transform: translate(-2px, 0px) rotate(0deg); } 663 | 36% { -webkit-transform: translate(2px, 0px) rotate(0deg); } 664 | 38% { -webkit-transform: translate(6px, 0px) rotate(0deg); } 665 | 40% { -webkit-transform: translate(-10px, 0px) rotate(0deg); } 666 | 42% { -webkit-transform: translate(-6px, 0px) rotate(0deg); } 667 | 44% { -webkit-transform: translate(0px, 0px) rotate(0deg); } 668 | 46% { -webkit-transform: translate(3px, 0px) rotate(0deg); } 669 | 48% { -webkit-transform: translate(-3px, 0px) rotate(0deg); } 670 | 50% { -webkit-transform: translate(6px, 0px) rotate(0deg); } 671 | 52% { -webkit-transform: translate(0px, 0px) rotate(0deg); } 672 | 54% { -webkit-transform: translate(-6px, 0px) rotate(0deg); } 673 | 56% { -webkit-transform: translate(-3px, 0px) rotate(0deg); } 674 | 58% { -webkit-transform: translate(-9px, 0px) rotate(0deg); } 675 | 60% { -webkit-transform: translate(-4px, 0px) rotate(0deg); } 676 | 62% { -webkit-transform: translate(-3px, 0px) rotate(0deg); } 677 | 64% { -webkit-transform: translate(-3px, 0px) rotate(0deg); } 678 | 66% { -webkit-transform: translate(-2px, 0px) rotate(0deg); } 679 | 68% { -webkit-transform: translate(6px, 0px) rotate(0deg); } 680 | 70% { -webkit-transform: translate(-8px, 0px) rotate(0deg); } 681 | 72% { -webkit-transform: translate(9px, 0px) rotate(0deg); } 682 | 74% { -webkit-transform: translate(-6px, 0px) rotate(0deg); } 683 | 76% { -webkit-transform: translate(-10px, 0px) rotate(0deg); } 684 | 78% { -webkit-transform: translate(-7px, 0px) rotate(0deg); } 685 | 80% { -webkit-transform: translate(1px, 0px) rotate(0deg); } 686 | 82% { -webkit-transform: translate(0px, 0px) rotate(0deg); } 687 | 84% { -webkit-transform: translate(-2px, 0px) rotate(0deg); } 688 | 86% { -webkit-transform: translate(-3px, 0px) rotate(0deg); } 689 | 88% { -webkit-transform: translate(-5px, 0px) rotate(0deg); } 690 | 90% { -webkit-transform: translate(-9px, 0px) rotate(0deg); } 691 | 92% { -webkit-transform: translate(7px, 0px) rotate(0deg); } 692 | 94% { -webkit-transform: translate(8px, 0px) rotate(0deg); } 693 | 96% { -webkit-transform: translate(-8px, 0px) rotate(0deg); } 694 | 98% { -webkit-transform: translate(4px, 0px) rotate(0deg); } } 695 | 696 | @-ms-keyframes shake-horizontal { 0% { -ms-transform: translate(0px, 0px) rotate(0deg); } 697 | 2% { -ms-transform: translate(-9px, 0px) rotate(0deg); } 698 | 4% { -ms-transform: translate(-6px, 0px) rotate(0deg); } 699 | 6% { -ms-transform: translate(-2px, 0px) rotate(0deg); } 700 | 8% { -ms-transform: translate(5px, 0px) rotate(0deg); } 701 | 10% { -ms-transform: translate(-1px, 0px) rotate(0deg); } 702 | 12% { -ms-transform: translate(9px, 0px) rotate(0deg); } 703 | 14% { -ms-transform: translate(-5px, 0px) rotate(0deg); } 704 | 16% { -ms-transform: translate(-4px, 0px) rotate(0deg); } 705 | 18% { -ms-transform: translate(7px, 0px) rotate(0deg); } 706 | 20% { -ms-transform: translate(8px, 0px) rotate(0deg); } 707 | 22% { -ms-transform: translate(7px, 0px) rotate(0deg); } 708 | 24% { -ms-transform: translate(-5px, 0px) rotate(0deg); } 709 | 26% { -ms-transform: translate(-2px, 0px) rotate(0deg); } 710 | 28% { -ms-transform: translate(-5px, 0px) rotate(0deg); } 711 | 30% { -ms-transform: translate(3px, 0px) rotate(0deg); } 712 | 32% { -ms-transform: translate(-7px, 0px) rotate(0deg); } 713 | 34% { -ms-transform: translate(7px, 0px) rotate(0deg); } 714 | 36% { -ms-transform: translate(4px, 0px) rotate(0deg); } 715 | 38% { -ms-transform: translate(-10px, 0px) rotate(0deg); } 716 | 40% { -ms-transform: translate(3px, 0px) rotate(0deg); } 717 | 42% { -ms-transform: translate(-6px, 0px) rotate(0deg); } 718 | 44% { -ms-transform: translate(-5px, 0px) rotate(0deg); } 719 | 46% { -ms-transform: translate(0px, 0px) rotate(0deg); } 720 | 48% { -ms-transform: translate(-8px, 0px) rotate(0deg); } 721 | 50% { -ms-transform: translate(0px, 0px) rotate(0deg); } 722 | 52% { -ms-transform: translate(-5px, 0px) rotate(0deg); } 723 | 54% { -ms-transform: translate(4px, 0px) rotate(0deg); } 724 | 56% { -ms-transform: translate(-2px, 0px) rotate(0deg); } 725 | 58% { -ms-transform: translate(-9px, 0px) rotate(0deg); } 726 | 60% { -ms-transform: translate(-6px, 0px) rotate(0deg); } 727 | 62% { -ms-transform: translate(4px, 0px) rotate(0deg); } 728 | 64% { -ms-transform: translate(-10px, 0px) rotate(0deg); } 729 | 66% { -ms-transform: translate(8px, 0px) rotate(0deg); } 730 | 68% { -ms-transform: translate(0px, 0px) rotate(0deg); } 731 | 70% { -ms-transform: translate(4px, 0px) rotate(0deg); } 732 | 72% { -ms-transform: translate(-4px, 0px) rotate(0deg); } 733 | 74% { -ms-transform: translate(-1px, 0px) rotate(0deg); } 734 | 76% { -ms-transform: translate(-3px, 0px) rotate(0deg); } 735 | 78% { -ms-transform: translate(0px, 0px) rotate(0deg); } 736 | 80% { -ms-transform: translate(-10px, 0px) rotate(0deg); } 737 | 82% { -ms-transform: translate(4px, 0px) rotate(0deg); } 738 | 84% { -ms-transform: translate(-7px, 0px) rotate(0deg); } 739 | 86% { -ms-transform: translate(7px, 0px) rotate(0deg); } 740 | 88% { -ms-transform: translate(-1px, 0px) rotate(0deg); } 741 | 90% { -ms-transform: translate(9px, 0px) rotate(0deg); } 742 | 92% { -ms-transform: translate(-6px, 0px) rotate(0deg); } 743 | 94% { -ms-transform: translate(-8px, 0px) rotate(0deg); } 744 | 96% { -ms-transform: translate(-1px, 0px) rotate(0deg); } 745 | 98% { -ms-transform: translate(-5px, 0px) rotate(0deg); } } 746 | 747 | @keyframes shake-horizontal { 0% { transform: translate(0px, 0px) rotate(0deg); } 748 | 2% { transform: translate(-4px, 0px) rotate(0deg); } 749 | 4% { transform: translate(2px, 0px) rotate(0deg); } 750 | 6% { transform: translate(-3px, 0px) rotate(0deg); } 751 | 8% { transform: translate(9px, 0px) rotate(0deg); } 752 | 10% { transform: translate(2px, 0px) rotate(0deg); } 753 | 12% { transform: translate(-6px, 0px) rotate(0deg); } 754 | 14% { transform: translate(-7px, 0px) rotate(0deg); } 755 | 16% { transform: translate(2px, 0px) rotate(0deg); } 756 | 18% { transform: translate(7px, 0px) rotate(0deg); } 757 | 20% { transform: translate(-1px, 0px) rotate(0deg); } 758 | 22% { transform: translate(-10px, 0px) rotate(0deg); } 759 | 24% { transform: translate(-10px, 0px) rotate(0deg); } 760 | 26% { transform: translate(3px, 0px) rotate(0deg); } 761 | 28% { transform: translate(-5px, 0px) rotate(0deg); } 762 | 30% { transform: translate(4px, 0px) rotate(0deg); } 763 | 32% { transform: translate(-6px, 0px) rotate(0deg); } 764 | 34% { transform: translate(-2px, 0px) rotate(0deg); } 765 | 36% { transform: translate(-6px, 0px) rotate(0deg); } 766 | 38% { transform: translate(-2px, 0px) rotate(0deg); } 767 | 40% { transform: translate(4px, 0px) rotate(0deg); } 768 | 42% { transform: translate(8px, 0px) rotate(0deg); } 769 | 44% { transform: translate(-3px, 0px) rotate(0deg); } 770 | 46% { transform: translate(-10px, 0px) rotate(0deg); } 771 | 48% { transform: translate(4px, 0px) rotate(0deg); } 772 | 50% { transform: translate(-6px, 0px) rotate(0deg); } 773 | 52% { transform: translate(6px, 0px) rotate(0deg); } 774 | 54% { transform: translate(-8px, 0px) rotate(0deg); } 775 | 56% { transform: translate(5px, 0px) rotate(0deg); } 776 | 58% { transform: translate(9px, 0px) rotate(0deg); } 777 | 60% { transform: translate(7px, 0px) rotate(0deg); } 778 | 62% { transform: translate(1px, 0px) rotate(0deg); } 779 | 64% { transform: translate(2px, 0px) rotate(0deg); } 780 | 66% { transform: translate(-2px, 0px) rotate(0deg); } 781 | 68% { transform: translate(-7px, 0px) rotate(0deg); } 782 | 70% { transform: translate(-1px, 0px) rotate(0deg); } 783 | 72% { transform: translate(-6px, 0px) rotate(0deg); } 784 | 74% { transform: translate(5px, 0px) rotate(0deg); } 785 | 76% { transform: translate(0px, 0px) rotate(0deg); } 786 | 78% { transform: translate(9px, 0px) rotate(0deg); } 787 | 80% { transform: translate(-3px, 0px) rotate(0deg); } 788 | 82% { transform: translate(8px, 0px) rotate(0deg); } 789 | 84% { transform: translate(-2px, 0px) rotate(0deg); } 790 | 86% { transform: translate(-1px, 0px) rotate(0deg); } 791 | 88% { transform: translate(-3px, 0px) rotate(0deg); } 792 | 90% { transform: translate(4px, 0px) rotate(0deg); } 793 | 92% { transform: translate(0px, 0px) rotate(0deg); } 794 | 94% { transform: translate(4px, 0px) rotate(0deg); } 795 | 96% { transform: translate(2px, 0px) rotate(0deg); } 796 | 98% { transform: translate(-2px, 0px) rotate(0deg); } } 797 | 798 | @-webkit-keyframes shake-vertical { 0% { -webkit-transform: translate(0px, 0px) rotate(0deg); } 799 | 2% { -webkit-transform: translate(0px, 2px) rotate(0deg); } 800 | 4% { -webkit-transform: translate(0px, 6px) rotate(0deg); } 801 | 6% { -webkit-transform: translate(0px, -5px) rotate(0deg); } 802 | 8% { -webkit-transform: translate(0px, -3px) rotate(0deg); } 803 | 10% { -webkit-transform: translate(0px, 9px) rotate(0deg); } 804 | 12% { -webkit-transform: translate(0px, 5px) rotate(0deg); } 805 | 14% { -webkit-transform: translate(0px, -7px) rotate(0deg); } 806 | 16% { -webkit-transform: translate(0px, -2px) rotate(0deg); } 807 | 18% { -webkit-transform: translate(0px, 1px) rotate(0deg); } 808 | 20% { -webkit-transform: translate(0px, 8px) rotate(0deg); } 809 | 22% { -webkit-transform: translate(0px, 7px) rotate(0deg); } 810 | 24% { -webkit-transform: translate(0px, -1px) rotate(0deg); } 811 | 26% { -webkit-transform: translate(0px, -4px) rotate(0deg); } 812 | 28% { -webkit-transform: translate(0px, 5px) rotate(0deg); } 813 | 30% { -webkit-transform: translate(0px, 1px) rotate(0deg); } 814 | 32% { -webkit-transform: translate(0px, -2px) rotate(0deg); } 815 | 34% { -webkit-transform: translate(0px, 2px) rotate(0deg); } 816 | 36% { -webkit-transform: translate(0px, 7px) rotate(0deg); } 817 | 38% { -webkit-transform: translate(0px, 5px) rotate(0deg); } 818 | 40% { -webkit-transform: translate(0px, 5px) rotate(0deg); } 819 | 42% { -webkit-transform: translate(0px, 7px) rotate(0deg); } 820 | 44% { -webkit-transform: translate(0px, 0px) rotate(0deg); } 821 | 46% { -webkit-transform: translate(0px, -9px) rotate(0deg); } 822 | 48% { -webkit-transform: translate(0px, -9px) rotate(0deg); } 823 | 50% { -webkit-transform: translate(0px, 0px) rotate(0deg); } 824 | 52% { -webkit-transform: translate(0px, -10px) rotate(0deg); } 825 | 54% { -webkit-transform: translate(0px, -9px) rotate(0deg); } 826 | 56% { -webkit-transform: translate(0px, 2px) rotate(0deg); } 827 | 58% { -webkit-transform: translate(0px, -4px) rotate(0deg); } 828 | 60% { -webkit-transform: translate(0px, -6px) rotate(0deg); } 829 | 62% { -webkit-transform: translate(0px, 8px) rotate(0deg); } 830 | 64% { -webkit-transform: translate(0px, 9px) rotate(0deg); } 831 | 66% { -webkit-transform: translate(0px, 6px) rotate(0deg); } 832 | 68% { -webkit-transform: translate(0px, 0px) rotate(0deg); } 833 | 70% { -webkit-transform: translate(0px, 1px) rotate(0deg); } 834 | 72% { -webkit-transform: translate(0px, 4px) rotate(0deg); } 835 | 74% { -webkit-transform: translate(0px, -9px) rotate(0deg); } 836 | 76% { -webkit-transform: translate(0px, -5px) rotate(0deg); } 837 | 78% { -webkit-transform: translate(0px, -7px) rotate(0deg); } 838 | 80% { -webkit-transform: translate(0px, -3px) rotate(0deg); } 839 | 82% { -webkit-transform: translate(0px, -2px) rotate(0deg); } 840 | 84% { -webkit-transform: translate(0px, 8px) rotate(0deg); } 841 | 86% { -webkit-transform: translate(0px, -7px) rotate(0deg); } 842 | 88% { -webkit-transform: translate(0px, 1px) rotate(0deg); } 843 | 90% { -webkit-transform: translate(0px, -7px) rotate(0deg); } 844 | 92% { -webkit-transform: translate(0px, -5px) rotate(0deg); } 845 | 94% { -webkit-transform: translate(0px, 1px) rotate(0deg); } 846 | 96% { -webkit-transform: translate(0px, -8px) rotate(0deg); } 847 | 98% { -webkit-transform: translate(0px, 7px) rotate(0deg); } } 848 | 849 | @-ms-keyframes shake-vertical { 0% { -ms-transform: translate(0px, 0px) rotate(0deg); } 850 | 2% { -ms-transform: translate(0px, 7px) rotate(0deg); } 851 | 4% { -ms-transform: translate(0px, 9px) rotate(0deg); } 852 | 6% { -ms-transform: translate(0px, 3px) rotate(0deg); } 853 | 8% { -ms-transform: translate(0px, -8px) rotate(0deg); } 854 | 10% { -ms-transform: translate(0px, 7px) rotate(0deg); } 855 | 12% { -ms-transform: translate(0px, -10px) rotate(0deg); } 856 | 14% { -ms-transform: translate(0px, 4px) rotate(0deg); } 857 | 16% { -ms-transform: translate(0px, 5px) rotate(0deg); } 858 | 18% { -ms-transform: translate(0px, 4px) rotate(0deg); } 859 | 20% { -ms-transform: translate(0px, -3px) rotate(0deg); } 860 | 22% { -ms-transform: translate(0px, 7px) rotate(0deg); } 861 | 24% { -ms-transform: translate(0px, -1px) rotate(0deg); } 862 | 26% { -ms-transform: translate(0px, -6px) rotate(0deg); } 863 | 28% { -ms-transform: translate(0px, -7px) rotate(0deg); } 864 | 30% { -ms-transform: translate(0px, -6px) rotate(0deg); } 865 | 32% { -ms-transform: translate(0px, 1px) rotate(0deg); } 866 | 34% { -ms-transform: translate(0px, 7px) rotate(0deg); } 867 | 36% { -ms-transform: translate(0px, 8px) rotate(0deg); } 868 | 38% { -ms-transform: translate(0px, -9px) rotate(0deg); } 869 | 40% { -ms-transform: translate(0px, 0px) rotate(0deg); } 870 | 42% { -ms-transform: translate(0px, -9px) rotate(0deg); } 871 | 44% { -ms-transform: translate(0px, -7px) rotate(0deg); } 872 | 46% { -ms-transform: translate(0px, 1px) rotate(0deg); } 873 | 48% { -ms-transform: translate(0px, -4px) rotate(0deg); } 874 | 50% { -ms-transform: translate(0px, -9px) rotate(0deg); } 875 | 52% { -ms-transform: translate(0px, 1px) rotate(0deg); } 876 | 54% { -ms-transform: translate(0px, 3px) rotate(0deg); } 877 | 56% { -ms-transform: translate(0px, 4px) rotate(0deg); } 878 | 58% { -ms-transform: translate(0px, -7px) rotate(0deg); } 879 | 60% { -ms-transform: translate(0px, -5px) rotate(0deg); } 880 | 62% { -ms-transform: translate(0px, 7px) rotate(0deg); } 881 | 64% { -ms-transform: translate(0px, 7px) rotate(0deg); } 882 | 66% { -ms-transform: translate(0px, 6px) rotate(0deg); } 883 | 68% { -ms-transform: translate(0px, 6px) rotate(0deg); } 884 | 70% { -ms-transform: translate(0px, -5px) rotate(0deg); } 885 | 72% { -ms-transform: translate(0px, 3px) rotate(0deg); } 886 | 74% { -ms-transform: translate(0px, -10px) rotate(0deg); } 887 | 76% { -ms-transform: translate(0px, 0px) rotate(0deg); } 888 | 78% { -ms-transform: translate(0px, -6px) rotate(0deg); } 889 | 80% { -ms-transform: translate(0px, 7px) rotate(0deg); } 890 | 82% { -ms-transform: translate(0px, -8px) rotate(0deg); } 891 | 84% { -ms-transform: translate(0px, 8px) rotate(0deg); } 892 | 86% { -ms-transform: translate(0px, 1px) rotate(0deg); } 893 | 88% { -ms-transform: translate(0px, 1px) rotate(0deg); } 894 | 90% { -ms-transform: translate(0px, 6px) rotate(0deg); } 895 | 92% { -ms-transform: translate(0px, -4px) rotate(0deg); } 896 | 94% { -ms-transform: translate(0px, 6px) rotate(0deg); } 897 | 96% { -ms-transform: translate(0px, -6px) rotate(0deg); } 898 | 98% { -ms-transform: translate(0px, -4px) rotate(0deg); } } 899 | 900 | @keyframes shake-vertical { 0% { transform: translate(0px, 0px) rotate(0deg); } 901 | 2% { transform: translate(0px, -9px) rotate(0deg); } 902 | 4% { transform: translate(0px, 6px) rotate(0deg); } 903 | 6% { transform: translate(0px, 6px) rotate(0deg); } 904 | 8% { transform: translate(0px, 1px) rotate(0deg); } 905 | 10% { transform: translate(0px, -4px) rotate(0deg); } 906 | 12% { transform: translate(0px, 1px) rotate(0deg); } 907 | 14% { transform: translate(0px, -7px) rotate(0deg); } 908 | 16% { transform: translate(0px, -8px) rotate(0deg); } 909 | 18% { transform: translate(0px, 3px) rotate(0deg); } 910 | 20% { transform: translate(0px, 1px) rotate(0deg); } 911 | 22% { transform: translate(0px, 2px) rotate(0deg); } 912 | 24% { transform: translate(0px, 7px) rotate(0deg); } 913 | 26% { transform: translate(0px, -4px) rotate(0deg); } 914 | 28% { transform: translate(0px, 1px) rotate(0deg); } 915 | 30% { transform: translate(0px, -10px) rotate(0deg); } 916 | 32% { transform: translate(0px, -2px) rotate(0deg); } 917 | 34% { transform: translate(0px, 8px) rotate(0deg); } 918 | 36% { transform: translate(0px, 9px) rotate(0deg); } 919 | 38% { transform: translate(0px, -2px) rotate(0deg); } 920 | 40% { transform: translate(0px, 0px) rotate(0deg); } 921 | 42% { transform: translate(0px, -4px) rotate(0deg); } 922 | 44% { transform: translate(0px, -1px) rotate(0deg); } 923 | 46% { transform: translate(0px, -2px) rotate(0deg); } 924 | 48% { transform: translate(0px, 4px) rotate(0deg); } 925 | 50% { transform: translate(0px, 7px) rotate(0deg); } 926 | 52% { transform: translate(0px, -8px) rotate(0deg); } 927 | 54% { transform: translate(0px, -3px) rotate(0deg); } 928 | 56% { transform: translate(0px, -6px) rotate(0deg); } 929 | 58% { transform: translate(0px, 6px) rotate(0deg); } 930 | 60% { transform: translate(0px, -2px) rotate(0deg); } 931 | 62% { transform: translate(0px, 8px) rotate(0deg); } 932 | 64% { transform: translate(0px, 1px) rotate(0deg); } 933 | 66% { transform: translate(0px, -8px) rotate(0deg); } 934 | 68% { transform: translate(0px, -9px) rotate(0deg); } 935 | 70% { transform: translate(0px, 5px) rotate(0deg); } 936 | 72% { transform: translate(0px, 5px) rotate(0deg); } 937 | 74% { transform: translate(0px, 9px) rotate(0deg); } 938 | 76% { transform: translate(0px, 6px) rotate(0deg); } 939 | 78% { transform: translate(0px, 0px) rotate(0deg); } 940 | 80% { transform: translate(0px, -2px) rotate(0deg); } 941 | 82% { transform: translate(0px, -4px) rotate(0deg); } 942 | 84% { transform: translate(0px, -4px) rotate(0deg); } 943 | 86% { transform: translate(0px, 8px) rotate(0deg); } 944 | 88% { transform: translate(0px, 9px) rotate(0deg); } 945 | 90% { transform: translate(0px, 8px) rotate(0deg); } 946 | 92% { transform: translate(0px, 8px) rotate(0deg); } 947 | 94% { transform: translate(0px, -5px) rotate(0deg); } 948 | 96% { transform: translate(0px, 1px) rotate(0deg); } 949 | 98% { transform: translate(0px, 5px) rotate(0deg); } } 950 | 951 | @-webkit-keyframes shake-rotate { 0% { -webkit-transform: translate(0px, 0px) rotate(0deg); } 952 | 2% { -webkit-transform: translate(0px, 0px) rotate(4.5deg); } 953 | 4% { -webkit-transform: translate(0px, 0px) rotate(-5.5deg); } 954 | 6% { -webkit-transform: translate(0px, 0px) rotate(3.5deg); } 955 | 8% { -webkit-transform: translate(0px, 0px) rotate(-5.5deg); } 956 | 10% { -webkit-transform: translate(0px, 0px) rotate(2.5deg); } 957 | 12% { -webkit-transform: translate(0px, 0px) rotate(-0.5deg); } 958 | 14% { -webkit-transform: translate(0px, 0px) rotate(-3.5deg); } 959 | 16% { -webkit-transform: translate(0px, 0px) rotate(4.5deg); } 960 | 18% { -webkit-transform: translate(0px, 0px) rotate(-2.5deg); } 961 | 20% { -webkit-transform: translate(0px, 0px) rotate(-5.5deg); } 962 | 22% { -webkit-transform: translate(0px, 0px) rotate(-2.5deg); } 963 | 24% { -webkit-transform: translate(0px, 0px) rotate(4.5deg); } 964 | 26% { -webkit-transform: translate(0px, 0px) rotate(-4.5deg); } 965 | 28% { -webkit-transform: translate(0px, 0px) rotate(2.5deg); } 966 | 30% { -webkit-transform: translate(0px, 0px) rotate(-7.5deg); } 967 | 32% { -webkit-transform: translate(0px, 0px) rotate(-5.5deg); } 968 | 34% { -webkit-transform: translate(0px, 0px) rotate(-3.5deg); } 969 | 36% { -webkit-transform: translate(0px, 0px) rotate(5.5deg); } 970 | 38% { -webkit-transform: translate(0px, 0px) rotate(-5.5deg); } 971 | 40% { -webkit-transform: translate(0px, 0px) rotate(-4.5deg); } 972 | 42% { -webkit-transform: translate(0px, 0px) rotate(6.5deg); } 973 | 44% { -webkit-transform: translate(0px, 0px) rotate(0.5deg); } 974 | 46% { -webkit-transform: translate(0px, 0px) rotate(4.5deg); } 975 | 48% { -webkit-transform: translate(0px, 0px) rotate(-6.5deg); } 976 | 50% { -webkit-transform: translate(0px, 0px) rotate(3.5deg); } 977 | 52% { -webkit-transform: translate(0px, 0px) rotate(-7.5deg); } 978 | 54% { -webkit-transform: translate(0px, 0px) rotate(-0.5deg); } 979 | 56% { -webkit-transform: translate(0px, 0px) rotate(-1.5deg); } 980 | 58% { -webkit-transform: translate(0px, 0px) rotate(-2.5deg); } 981 | 60% { -webkit-transform: translate(0px, 0px) rotate(3.5deg); } 982 | 62% { -webkit-transform: translate(0px, 0px) rotate(1.5deg); } 983 | 64% { -webkit-transform: translate(0px, 0px) rotate(-3.5deg); } 984 | 66% { -webkit-transform: translate(0px, 0px) rotate(0.5deg); } 985 | 68% { -webkit-transform: translate(0px, 0px) rotate(-4.5deg); } 986 | 70% { -webkit-transform: translate(0px, 0px) rotate(5.5deg); } 987 | 72% { -webkit-transform: translate(0px, 0px) rotate(-3.5deg); } 988 | 74% { -webkit-transform: translate(0px, 0px) rotate(-4.5deg); } 989 | 76% { -webkit-transform: translate(0px, 0px) rotate(6.5deg); } 990 | 78% { -webkit-transform: translate(0px, 0px) rotate(0.5deg); } 991 | 80% { -webkit-transform: translate(0px, 0px) rotate(-2.5deg); } 992 | 82% { -webkit-transform: translate(0px, 0px) rotate(-7.5deg); } 993 | 84% { -webkit-transform: translate(0px, 0px) rotate(-7.5deg); } 994 | 86% { -webkit-transform: translate(0px, 0px) rotate(-0.5deg); } 995 | 88% { -webkit-transform: translate(0px, 0px) rotate(-4.5deg); } 996 | 90% { -webkit-transform: translate(0px, 0px) rotate(6.5deg); } 997 | 92% { -webkit-transform: translate(0px, 0px) rotate(-2.5deg); } 998 | 94% { -webkit-transform: translate(0px, 0px) rotate(-5.5deg); } 999 | 96% { -webkit-transform: translate(0px, 0px) rotate(4.5deg); } 1000 | 98% { -webkit-transform: translate(0px, 0px) rotate(-3.5deg); } } 1001 | 1002 | @-ms-keyframes shake-rotate { 0% { -ms-transform: translate(0px, 0px) rotate(0deg); } 1003 | 2% { -ms-transform: translate(0px, 0px) rotate(-3.5deg); } 1004 | 4% { -ms-transform: translate(0px, 0px) rotate(1.5deg); } 1005 | 6% { -ms-transform: translate(0px, 0px) rotate(-1.5deg); } 1006 | 8% { -ms-transform: translate(0px, 0px) rotate(-7.5deg); } 1007 | 10% { -ms-transform: translate(0px, 0px) rotate(-1.5deg); } 1008 | 12% { -ms-transform: translate(0px, 0px) rotate(-1.5deg); } 1009 | 14% { -ms-transform: translate(0px, 0px) rotate(-0.5deg); } 1010 | 16% { -ms-transform: translate(0px, 0px) rotate(-0.5deg); } 1011 | 18% { -ms-transform: translate(0px, 0px) rotate(1.5deg); } 1012 | 20% { -ms-transform: translate(0px, 0px) rotate(-6.5deg); } 1013 | 22% { -ms-transform: translate(0px, 0px) rotate(-3.5deg); } 1014 | 24% { -ms-transform: translate(0px, 0px) rotate(-6.5deg); } 1015 | 26% { -ms-transform: translate(0px, 0px) rotate(-4.5deg); } 1016 | 28% { -ms-transform: translate(0px, 0px) rotate(-4.5deg); } 1017 | 30% { -ms-transform: translate(0px, 0px) rotate(-2.5deg); } 1018 | 32% { -ms-transform: translate(0px, 0px) rotate(-5.5deg); } 1019 | 34% { -ms-transform: translate(0px, 0px) rotate(-4.5deg); } 1020 | 36% { -ms-transform: translate(0px, 0px) rotate(4.5deg); } 1021 | 38% { -ms-transform: translate(0px, 0px) rotate(0.5deg); } 1022 | 40% { -ms-transform: translate(0px, 0px) rotate(-6.5deg); } 1023 | 42% { -ms-transform: translate(0px, 0px) rotate(2.5deg); } 1024 | 44% { -ms-transform: translate(0px, 0px) rotate(-2.5deg); } 1025 | 46% { -ms-transform: translate(0px, 0px) rotate(0.5deg); } 1026 | 48% { -ms-transform: translate(0px, 0px) rotate(6.5deg); } 1027 | 50% { -ms-transform: translate(0px, 0px) rotate(0.5deg); } 1028 | 52% { -ms-transform: translate(0px, 0px) rotate(6.5deg); } 1029 | 54% { -ms-transform: translate(0px, 0px) rotate(2.5deg); } 1030 | 56% { -ms-transform: translate(0px, 0px) rotate(-1.5deg); } 1031 | 58% { -ms-transform: translate(0px, 0px) rotate(-1.5deg); } 1032 | 60% { -ms-transform: translate(0px, 0px) rotate(3.5deg); } 1033 | 62% { -ms-transform: translate(0px, 0px) rotate(-4.5deg); } 1034 | 64% { -ms-transform: translate(0px, 0px) rotate(2.5deg); } 1035 | 66% { -ms-transform: translate(0px, 0px) rotate(-4.5deg); } 1036 | 68% { -ms-transform: translate(0px, 0px) rotate(6.5deg); } 1037 | 70% { -ms-transform: translate(0px, 0px) rotate(-3.5deg); } 1038 | 72% { -ms-transform: translate(0px, 0px) rotate(-6.5deg); } 1039 | 74% { -ms-transform: translate(0px, 0px) rotate(-6.5deg); } 1040 | 76% { -ms-transform: translate(0px, 0px) rotate(6.5deg); } 1041 | 78% { -ms-transform: translate(0px, 0px) rotate(6.5deg); } 1042 | 80% { -ms-transform: translate(0px, 0px) rotate(-5.5deg); } 1043 | 82% { -ms-transform: translate(0px, 0px) rotate(-1.5deg); } 1044 | 84% { -ms-transform: translate(0px, 0px) rotate(-4.5deg); } 1045 | 86% { -ms-transform: translate(0px, 0px) rotate(5.5deg); } 1046 | 88% { -ms-transform: translate(0px, 0px) rotate(6.5deg); } 1047 | 90% { -ms-transform: translate(0px, 0px) rotate(-6.5deg); } 1048 | 92% { -ms-transform: translate(0px, 0px) rotate(-6.5deg); } 1049 | 94% { -ms-transform: translate(0px, 0px) rotate(6.5deg); } 1050 | 96% { -ms-transform: translate(0px, 0px) rotate(-5.5deg); } 1051 | 98% { -ms-transform: translate(0px, 0px) rotate(-1.5deg); } } 1052 | 1053 | @keyframes shake-rotate { 0% { transform: translate(0px, 0px) rotate(0deg); } 1054 | 2% { transform: translate(0px, 0px) rotate(1.5deg); } 1055 | 4% { transform: translate(0px, 0px) rotate(-7.5deg); } 1056 | 6% { transform: translate(0px, 0px) rotate(-2.5deg); } 1057 | 8% { transform: translate(0px, 0px) rotate(6.5deg); } 1058 | 10% { transform: translate(0px, 0px) rotate(-4.5deg); } 1059 | 12% { transform: translate(0px, 0px) rotate(0.5deg); } 1060 | 14% { transform: translate(0px, 0px) rotate(-6.5deg); } 1061 | 16% { transform: translate(0px, 0px) rotate(1.5deg); } 1062 | 18% { transform: translate(0px, 0px) rotate(-2.5deg); } 1063 | 20% { transform: translate(0px, 0px) rotate(1.5deg); } 1064 | 22% { transform: translate(0px, 0px) rotate(1.5deg); } 1065 | 24% { transform: translate(0px, 0px) rotate(2.5deg); } 1066 | 26% { transform: translate(0px, 0px) rotate(6.5deg); } 1067 | 28% { transform: translate(0px, 0px) rotate(2.5deg); } 1068 | 30% { transform: translate(0px, 0px) rotate(1.5deg); } 1069 | 32% { transform: translate(0px, 0px) rotate(-4.5deg); } 1070 | 34% { transform: translate(0px, 0px) rotate(-3.5deg); } 1071 | 36% { transform: translate(0px, 0px) rotate(-0.5deg); } 1072 | 38% { transform: translate(0px, 0px) rotate(4.5deg); } 1073 | 40% { transform: translate(0px, 0px) rotate(4.5deg); } 1074 | 42% { transform: translate(0px, 0px) rotate(-0.5deg); } 1075 | 44% { transform: translate(0px, 0px) rotate(1.5deg); } 1076 | 46% { transform: translate(0px, 0px) rotate(-0.5deg); } 1077 | 48% { transform: translate(0px, 0px) rotate(-7.5deg); } 1078 | 50% { transform: translate(0px, 0px) rotate(3.5deg); } 1079 | 52% { transform: translate(0px, 0px) rotate(-5.5deg); } 1080 | 54% { transform: translate(0px, 0px) rotate(-6.5deg); } 1081 | 56% { transform: translate(0px, 0px) rotate(-0.5deg); } 1082 | 58% { transform: translate(0px, 0px) rotate(3.5deg); } 1083 | 60% { transform: translate(0px, 0px) rotate(-2.5deg); } 1084 | 62% { transform: translate(0px, 0px) rotate(3.5deg); } 1085 | 64% { transform: translate(0px, 0px) rotate(6.5deg); } 1086 | 66% { transform: translate(0px, 0px) rotate(-6.5deg); } 1087 | 68% { transform: translate(0px, 0px) rotate(-2.5deg); } 1088 | 70% { transform: translate(0px, 0px) rotate(-3.5deg); } 1089 | 72% { transform: translate(0px, 0px) rotate(-6.5deg); } 1090 | 74% { transform: translate(0px, 0px) rotate(-5.5deg); } 1091 | 76% { transform: translate(0px, 0px) rotate(1.5deg); } 1092 | 78% { transform: translate(0px, 0px) rotate(-1.5deg); } 1093 | 80% { transform: translate(0px, 0px) rotate(3.5deg); } 1094 | 82% { transform: translate(0px, 0px) rotate(1.5deg); } 1095 | 84% { transform: translate(0px, 0px) rotate(-7.5deg); } 1096 | 86% { transform: translate(0px, 0px) rotate(-0.5deg); } 1097 | 88% { transform: translate(0px, 0px) rotate(0.5deg); } 1098 | 90% { transform: translate(0px, 0px) rotate(-3.5deg); } 1099 | 92% { transform: translate(0px, 0px) rotate(-4.5deg); } 1100 | 94% { transform: translate(0px, 0px) rotate(2.5deg); } 1101 | 96% { transform: translate(0px, 0px) rotate(2.5deg); } 1102 | 98% { transform: translate(0px, 0px) rotate(-2.5deg); } } 1103 | 1104 | @-webkit-keyframes shake-opacity { 0% { -webkit-transform: translate(0px, 0px) rotate(0deg); opacity: 0.2; } 1105 | 10% { -webkit-transform: translate(3px, 4px) rotate(1.5deg); opacity: 0.4; } 1106 | 20% { -webkit-transform: translate(1px, 4px) rotate(0.5deg); opacity: 0.3; } 1107 | 30% { -webkit-transform: translate(4px, -3px) rotate(0.5deg); opacity: 0.5; } 1108 | 40% { -webkit-transform: translate(1px, -3px) rotate(0.5deg); opacity: 0.9; } 1109 | 50% { -webkit-transform: translate(4px, -5px) rotate(-2.5deg); opacity: 0.9; } 1110 | 60% { -webkit-transform: translate(-1px, 0px) rotate(-1.5deg); opacity: 0.5; } 1111 | 70% { -webkit-transform: translate(1px, 1px) rotate(-0.5deg); opacity: 0.6; } 1112 | 80% { -webkit-transform: translate(3px, 3px) rotate(1.5deg); opacity: 0.5; } 1113 | 90% { -webkit-transform: translate(-5px, -4px) rotate(1.5deg); opacity: 0.5; } } 1114 | 1115 | @-ms-keyframes shake-opacity { 0% { -ms-transform: translate(0px, 0px) rotate(0deg); opacity: 0.4; } 1116 | 10% { -ms-transform: translate(-3px, 4px) rotate(0.5deg); opacity: 0.1; } 1117 | 20% { -ms-transform: translate(-5px, 0px) rotate(0.5deg); opacity: 0.5; } 1118 | 30% { -ms-transform: translate(2px, -2px) rotate(-0.5deg); opacity: 0.2; } 1119 | 40% { -ms-transform: translate(1px, 4px) rotate(-0.5deg); opacity: 0; } 1120 | 50% { -ms-transform: translate(3px, -5px) rotate(-0.5deg); opacity: 0.1; } 1121 | 60% { -ms-transform: translate(-3px, -1px) rotate(-1.5deg); opacity: 0.8; } 1122 | 70% { -ms-transform: translate(-4px, -5px) rotate(1.5deg); opacity: 0.5; } 1123 | 80% { -ms-transform: translate(3px, 0px) rotate(-2.5deg); opacity: 0.8; } 1124 | 90% { -ms-transform: translate(-3px, 2px) rotate(1.5deg); opacity: 0.3; } } 1125 | 1126 | @keyframes shake-opacity { 0% { transform: translate(0px, 0px) rotate(0deg); opacity: 0.7; } 1127 | 10% { transform: translate(4px, 0px) rotate(-0.5deg); opacity: 0.4; } 1128 | 20% { transform: translate(4px, -3px) rotate(1.5deg); opacity: 0.4; } 1129 | 30% { transform: translate(-2px, 2px) rotate(-0.5deg); opacity: 0.2; } 1130 | 40% { transform: translate(2px, -1px) rotate(1.5deg); opacity: 0.3; } 1131 | 50% { transform: translate(4px, 1px) rotate(0.5deg); opacity: 0.5; } 1132 | 60% { transform: translate(-5px, -3px) rotate(-2.5deg); opacity: 0.8; } 1133 | 70% { transform: translate(4px, 2px) rotate(0.5deg); opacity: 0.8; } 1134 | 80% { transform: translate(-1px, 3px) rotate(-0.5deg); opacity: 0.3; } 1135 | 90% { transform: translate(-5px, 4px) rotate(-0.5deg); opacity: 0; } } 1136 | 1137 | @-webkit-keyframes shake-crazy { 0% { -webkit-transform: translate(0px, 0px) rotate(0deg); opacity: 0.9; } 1138 | 10% { -webkit-transform: translate(-5px, -5px) rotate(-10deg); opacity: 0.3; } 1139 | 20% { -webkit-transform: translate(18px, -17px) rotate(-5deg); opacity: 0; } 1140 | 30% { -webkit-transform: translate(-15px, 2px) rotate(-3deg); opacity: 0.8; } 1141 | 40% { -webkit-transform: translate(-9px, -4px) rotate(3deg); opacity: 0.6; } 1142 | 50% { -webkit-transform: translate(17px, -7px) rotate(-5deg); opacity: 0.6; } 1143 | 60% { -webkit-transform: translate(-20px, 10px) rotate(-3deg); opacity: 0.6; } 1144 | 70% { -webkit-transform: translate(-18px, -4px) rotate(-1deg); opacity: 0.3; } 1145 | 80% { -webkit-transform: translate(12px, 13px) rotate(6deg); opacity: 0.3; } 1146 | 90% { -webkit-transform: translate(14px, 0px) rotate(8deg); opacity: 0.4; } } 1147 | 1148 | @-ms-keyframes shake-crazy { 0% { -ms-transform: translate(0px, 0px) rotate(0deg); opacity: 0.4; } 1149 | 10% { -ms-transform: translate(-15px, 0px) rotate(-10deg); opacity: 0.4; } 1150 | 20% { -ms-transform: translate(-3px, 13px) rotate(7deg); opacity: 0; } 1151 | 30% { -ms-transform: translate(8px, 4px) rotate(6deg); opacity: 0; } 1152 | 40% { -ms-transform: translate(9px, -17px) rotate(0deg); opacity: 0.5; } 1153 | 50% { -ms-transform: translate(6px, 1px) rotate(-4deg); opacity: 0.6; } 1154 | 60% { -ms-transform: translate(-1px, 7px) rotate(-9deg); opacity: 0.1; } 1155 | 70% { -ms-transform: translate(-6px, 6px) rotate(-6deg); opacity: 0; } 1156 | 80% { -ms-transform: translate(-11px, -2px) rotate(-1deg); opacity: 0.8; } 1157 | 90% { -ms-transform: translate(-5px, 10px) rotate(4deg); opacity: 0.5; } } 1158 | 1159 | @keyframes shake-crazy { 0% { transform: translate(0px, 0px) rotate(0deg); opacity: 0.3; } 1160 | 10% { transform: translate(18px, 9px) rotate(3deg); opacity: 0.3; } 1161 | 20% { transform: translate(-15px, -19px) rotate(0deg); opacity: 0.8; } 1162 | 30% { transform: translate(-5px, -2px) rotate(-4deg); opacity: 0.9; } 1163 | 40% { transform: translate(-19px, -18px) rotate(-2deg); opacity: 0.1; } 1164 | 50% { transform: translate(11px, 8px) rotate(4deg); opacity: 0; } 1165 | 60% { transform: translate(9px, 0px) rotate(-4deg); opacity: 0.6; } 1166 | 70% { transform: translate(-13px, 6px) rotate(-1deg); opacity: 0.8; } 1167 | 80% { transform: translate(12px, 17px) rotate(3deg); opacity: 0.9; } 1168 | 90% { transform: translate(11px, 13px) rotate(7deg); opacity: 0.1; } } 1169 | -------------------------------------------------------------------------------- /Demo/WebSocket.html: -------------------------------------------------------------------------------- 1 | 2 |
3 | 4 |