.menu { position: fixed; width: 300px; top: 3em; bottom: 3em; left: 0; z-index: 100; overflow: hidden; -webkit-transform: translate3d(-150px, 0, 0); transform: translate3d(-150px, 0, 0); -webkit-transition: -webkit-transform 0.6s; transition: transform 0.6s; } .menu.menu--open { -webkit-transform: translate3d(0, 0, 0); transform: translate3d(0, 0, 0); } .main { -webkit-transition: opacity 0.6s; transition: opacity 0.6s; } .menu.menu--open + .main { opacity: 0.3; pointer-events: none; } .menu__inner { width: calc(100% + 25px); padding: 0 140px 2em 0; overflow-y: auto; height: 100%; position: relative; z-index: 100; } .menu ul { list-style: none; padding: 0; margin: 0; } .menu ul li { margin: 0 0 2em 0; -webkit-transform: translate3d(-150px, 0, 0); transform: translate3d(-150px, 0, 0); -webkit-transition: -webkit-transform 0.6s; transition: transform 0.6s; } .menu.menu--anim ul li { -webkit-transform: translate3d(0, 0, 0); transform: translate3d(0, 0, 0); } .menu ul li:first-child { -webkit-transition-delay: 0.3s; transition-delay: 0.3s; } .menu ul li:nth-child(2) { -webkit-transition-delay: 0.2s; transition-delay: 0.2s; } .menu ul li:nth-child(3) { -webkit-transition-delay: 0.1s; transition-delay: 0.1s; } .menu ul li a { display: block; outline: none; } .menu ul li .fa { font-size: 2.5em; display: block; margin: 0 auto; color: #5f656f; } .menu ul li span { font-weight: bold; font-size: 0.75em; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; } .menu__handle { background: #2f3238; border: none; width: 30px; height: 24px; padding: 0; outline: none; position: absolute; top: 3px; right: 70px; z-index: 2000; } .menu__handle::before, .menu__handle::after, .menu__handle span { background: #5f656f; } .menu__handle::before, .menu__handle::after { content: ''; position: absolute; height: 2px; width: 100%; left: 0; top: 50%; -webkit-transform-origin: 50% 50%; transform-origin: 50% 50%; -webkit-transition: -webkit-transform 0.25s; transition: transform 0.25s; } .menu__handle span { position: absolute; width: 100%; height: 2px; left: 0; overflow: hidden; text-indent: 200%; -webkit-transition: opacity 0.25s; transition: opacity 0.25s; } .menu__handle::before { -webkit-transform: translate3d(0, -10px, 0); transform: translate3d(0, -10px, 0); } .menu__handle::after { -webkit-transform: translate3d(0, 10px, 0); transform: translate3d(0, 10px, 0); } .menu--open .menu__handle span { opacity: 0; } .menu--open .menu__handle::before { -webkit-transform: rotate3d(0, 0, 1, 45deg); transform: rotate3d(0, 0, 1, 45deg); } .menu--open .menu__handle::after { -webkit-transform: rotate3d(0, 0, 1, -45deg); transform: rotate3d(0, 0, 1, -45deg); } .morph-shape { position: absolute; width: 240px; height: 100%; top: 0; right: 0; } .morph-shape svg path { stroke: #5f656f; stroke-width: 5px; } @media screen and (max-width: 63em) { .main { padding: 0 2em; -webkit-transition: opacity 0.6s; transition: opacity 0.6s; } .menu { -webkit-transform: translate3d(-170px, 0, 0); transform: translate3d(-170px, 0, 0); } .menu.menu--open + .main { opacity: 0.05; } }