:root {
    --nav-font-color: #ccc;
    --nav-bg-color: #111;
    --nav-padding: 2rem;
}

.offcanvas {
    background-color: rgba(0,0,0,0.9);

    position: absolute;
    top: 0;
    left: calc(-100vw - 2*var(--nav-padding));
    width: calc(100vw - 2*var(--nav-padding));
    min-height: calc(100vh - 2*var(--nav-padding));

    padding: var(--nav-padding);

    z-index: 1000;

    transition: transform 700ms ease-in-out;
    overflow-x: none;
}

.offcanvas *, .offcanvas .material-icons {
    color: var(--nav-font-color);
}

.show {
    transform: translateX(calc(100vw + 2*var(--nav-padding)));
}

.btn {
    user-select: none;
}

.btn-open {
    display: inline-block;
    padding: 0;
    background-color: var(--bg-color);
    border: 1px none var(--font-color);
    position: absolute;
    top: 0;
    right: 0;
    margin: var(--nav-padding);
}

.btn-close {
    display: inline-block;
    padding: 0;
    background-color: var(--nav-bg-color);
    border: 1px none var(--nav-font-color);
    position: absolute;
    top: 0;
    right: 0;
    margin: var(--nav-padding);
}

.btn-open .material-icons {
    color: var(--font-color);
}

.btn-close .material-icons
 {
    color: var(--nav-font-color);
}

.offcanvas-header {
    padding-bottom: var(--nav-padding);
    border-bottom: 1px solid var(--nav-font-color);
}

.offcanvas-body{
    padding: var(--nav-padding) 0;
}

.offcanvas-submenu {
    text-align: right;
}

.offcanvas-links {
    column-count: 3;
    column-gap: 1.8rem;
    padding: 1.8rem;
}

.offcanvas-links a {
    text-decoration: none;
    color: var(--nav-font-color);
    font-weight: 300;
    font-style: italic;
}

.offcanvas-links ul {
    margin-top: 0;
    margin-left: -3rem;
    list-style-position: outside;
}

.offcanvas-links li {
    padding-left: 1rem;
}

@media only screen and (max-width: 900px) {
    .offcanvas-links {
        column-count: 2;
    }
}

@media only screen and (max-width: 600px) {
    .offcanvas-links {
        column-count: 1;
    }
}