a {
    text-decoration: none;
    color: #232323;

    transition: color 0.3s ease;
}

a:hover {
    color: tomato;
}

#menuToggle {
    display: none;
    position: absolute;
    top: 4rem;
    right: 5rem;
    z-index: 1;

    -webkit-user-select: none;
    user-select: none;
}

#menuToggle input {
    display: block;
    width: 4rem;
    height: 3.2rem;
    position: absolute;
    top: -.7rem;
    left: -.5rem;

    cursor: pointer;

    opacity: 0;
    /* hide this */
    z-index: 2;
    /* and place it over the hamburger */

    -webkit-touch-callout: none;
}

/* *
 * Just a quick hamburger
 */
#menuToggle span {
    display: block;
    width: 3.3rem;
    height: .4rem;
    margin-bottom: .5rem;
    position: relative;

    background: #333333;
    border-radius: .3rem;

    z-index: 1;

    transform-origin: .4rem 0rem;

    transition: transform 0.5s cubic-bezier(0.77, 0.2, 0.05, 1.0),
        background 0.5s cubic-bezier(0.77, 0.2, 0.05, 1.0),
        opacity 0.55s ease;
}

#menuToggle span:first-child {
    transform-origin: 0% 0%;
}

#menuToggle span:nth-last-child(2) {
    transform-origin: 0% 100%;
}

/* *
 * Transform all the slices of hamburger
 * into a crossmark.
 */
#menuToggle input:checked~span {

    opacity: 1;
    transform: rotate(45deg) translate(-.2rem, -.1rem);
    background: #232323;

}

/* *
 * But let's hide the middle one.
 */
#menuToggle input:checked~span:nth-last-child(3) {
    opacity: 0;
    transform: rotate(0deg) scale(0.2, 0.2);
}

/* *
 * Ohyeah and the last one should go the other direction
 */
#menuToggle input:checked~span:nth-last-child(2) {
    opacity: 1;
    transform: rotate(-45deg) translate(0, -.1rem);
}

/* *
 * Make this absolute positioned
 * at the top left of the screen
 */
#menu {
    position: absolute;
    width: 30rem;
    margin: -10rem 0 0 0;
    padding: 5rem;
    padding-top: 12.5rem;
    right: -10rem;
    background: #e0e0e0;
    list-style-type: none;
    -webkit-font-smoothing: antialiased;
    /* to stop flickering of text in safari */

    transform-origin: 0% 0%;
    transform: translate(100%, 0);

    transition: transform 0.5s cubic-bezier(0.77, 0.2, 0.05, 1.0);
}

#menu li {
    padding: 1rem 0;
    font-size: 2.2rem;
}

/* *
 * And let's fade it in from the left
 */
 
#menuToggle input:checked~ul {
    transform: none;
    opacity: 1;
}