/* =============================================================================
   Block: Nav
   CUBE CSS: Navigation component — desktop and mobile hamburger menu.
   ============================================================================= */

nav {
    display: flex;
    justify-content: space-between;
    padding-top: 2.5vw;
    padding-bottom: 2.5vw;
    padding-left: var(--gutter);
    padding-right: var(--gutter);
    position: relative;
    z-index: 10;
}

#mobileNav {
    display: none;
}

.homeLink {
    font-size: var(--text-xl);
}

.navLinks {
    font-size: var(--text-lg);
    align-self: center;
}

.navLinks ul {
    padding: 0;
    display: inline-flex;
    margin: 0;
}

.navLinks ul li {
    list-style: none;
    margin-left: var(--space-m);
}

.navLinks ul li a {
    text-decoration: none;
}

.active {
    text-decoration: underline;
}

/* -----------------------------------------------------------------------------
   Mobile — hamburger menu
   ----------------------------------------------------------------------------- */
@media (max-width: 767px) {
    #notMobileNav {
        display: none;
    }

    #mobileNav {
        display: block;
        position: fixed;
        top: 0;
        right: 0;
        z-index: 11;
    }

    #mobileNav .toggler {
        position: absolute;
        top: 0;
        right: 0;
        z-index: 2;
        cursor: pointer;
        width: 50px;
        height: 50px;
        opacity: 0;
    }

    #mobileNav .hamburger {
        position: absolute;
        top: 0;
        right: 0;
        z-index: 1;
        width: 60px;
        height: 60px;
        padding: var(--space-m);
        background-color: #0099ff93;
        display: flex;
        align-items: center;
    }

    /* hamburger line */
    #mobileNav .hamburger > div {
        position: relative;
        width: 100%;
        height: 2px;
        background-color: white;
        display: flex;
        align-items: center;
        justify-content: center;
        transition: all 0.4s ease;
    }

    #mobileNav .hamburger > div::before,
    #mobileNav .hamburger > div::after {
        content: '';
        position: absolute;
        z-index: 1;
        top: -10px;
        width: 100%;
        height: 2px;
        background-color: inherit;
    }

    #mobileNav .hamburger > div::after {
        top: 10px;
    }

    /* toggler animation */
    #mobileNav .toggler:checked + .hamburger > div {
        transform: rotate(135deg);
    }

    #mobileNav .toggler:checked + .hamburger > div::before,
    #mobileNav .toggler:checked + .hamburger > div::after {
        top: 0;
        transform: rotate(90deg);
    }

    /* reveal menu */
    #mobileNav .toggler:checked ~ .menu {
        visibility: visible;
    }

    #mobileNav .toggler:checked ~ .menu > div {
        transform: scale(1);
        transition-duration: 0.5s;
    }

    #mobileNav .toggler:checked ~ .menu > div > div {
        opacity: 1;
        transition: opacity 0.4s ease;
    }

    /* menu overlay */
    #mobileNav .menu {
        position: fixed;
        top: 0;
        left: 0;
        width: 100%;
        height: 100%;
        visibility: hidden;
        overflow: hidden;
        display: flex;
        align-items: center;
        justify-content: center;
    }

    #mobileNav .menu > div {
        background-color: rgba(0, 0, 0, 0.9);
        width: 200vw;
        height: 200vh;
        display: flex;
        flex: none;
        align-items: center;
        justify-content: center;
        transform: scale(0);
        transition: all 0.4s ease;
    }

    #mobileNav .menu > div > div {
        text-align: center;
        max-width: 90vw;
        max-height: 100vh;
        opacity: 0;
        transition: opacity 0.4s ease;
    }

    #mobileNav .menu > div > div > ul > li {
        list-style-type: none;
        color: var(--color-text-inverse);
        font-size: var(--text-2xl);
        padding: var(--space-m);
    }

    #mobileNav .menu > div > div > ul > li > a {
        color: var(--color-text-inverse);
        text-decoration: underline;
        transition: color 0.4s ease;
    }

    /* force underline on project titles when mobile menu is open */
    .work-container li a .projTitle p {
        background-size: 100% 100%;
    }
}
