/* ========================== */
/*           navbar           */
/* ========================== */

.navbar {
    position: fixed;
    top: 0;
    right: 0;
    transform: translate3d(0,0,0);
    
    width: 100%;
    padding: var(--p-y) var(--p-x);

    display: flex;
    flex-direction: row;
    align-items: center;
    justify-content: space-between;

    background: var(--theme-light);

    z-index: 9999;

    transition: transform 0.4s cubic-bezier(0.390, 0.575, 0.565, 1.000), background 0.2s cubic-bezier(0.390, 0.575, 0.565, 1.000);
}

.navbar[data-hidden] {
    transform: translate3d(0,-100%,0);
}

.navbar[data-navbar-init] {
    background: rgba(0, 0, 0, 0);
}

/* ======================== */
/*           logo           */
/* ======================== */

.navbar__logo {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: left;
}

.navbar__logo--desktop {
    display: none;
    width: 170rem;
}

.navbar__logo--mobile {
    display: block;
    width: 22rem;
}

/* ======================== */
/*           menu           */
/* ======================== */

.navbar__menu {
    display: flex;
    justify-content: right;
    align-items: center;
}

.navbar__menu--desktop {
    display: none;
    font-size: 36rem;
    line-height: 40rem;
}

.navbar__menu--mobile {
    width: 22rem;
}

/* ========================= */
/*           items           */
/* ========================= */

.navbar__items {
    position: absolute;
    top: 0;
    right: 0;

    width: 100vw;
    height: 100vh;

    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    row-gap: 40rem;
    column-gap: 0;

    background-color: var(--theme-cyan);
    z-index: -1;

    transform: scale(0);
    transform-origin: calc(100vw - var(--p-x)) var(--p-y);
    
    --bg-anim-len: 0.4s;
    transition: transform var(--bg-anim-len) cubic-bezier(0.390, 0.575, 0.565, 1.000);
}

.navbar__menu[data-active] .navbar__items {
    transform: scale(1);
}

/* ======================== */
/*           item           */
/* ======================== */

.navbar__items__item {
    text-decoration: none;
    color: var(--theme-light);
    
    font-size: 32rem;
    line-height: 40rem;
    text-align: center;
    
    opacity: 0;
    transform: translateX(40rem);
    transition: transform 0.4s cubic-bezier(0.390, 0.575, 0.565, 1.000), opacity 0.4s cubic-bezier(0.390, 0.575, 0.565, 1.000);
}

.navbar__menu[data-active] .navbar__items .navbar__items__item {
    opacity: 1;
    transform: translateX(0rem);
}

.navbar__items__item:nth-child(1) {transition-delay: calc(var(--bg-anim-len) + 0.1s);}
.navbar__items__item:nth-child(2) {transition-delay: calc(var(--bg-anim-len) + 0.15s);}
.navbar__items__item:nth-child(3) {transition-delay: calc(var(--bg-anim-len) + 0.2s);}
.navbar__items__item:nth-child(4) {transition-delay: calc(var(--bg-anim-len) + 0.25s);}

/* =========================== */
/*           desktop           */
/* =========================== */

@media screen and (min-width: 768px) {
    /* ================ */
    /*      navbar      */
    /* ================ */
    
    .navbar {
        overflow-y: hidden;
    }

    /* ============== */
    /*      logo      */
    /* ============== */

    .navbar__logo--desktop {
        display: block;
    }

    .navbar__logo--mobile {
        display: none;
    }

    /* ============== */
    /*      menu      */
    /* ============== */
    
    .navbar__menu {
        display: flex;
        justify-content: right;
        align-items: center;
    }

    .navbar__menu--desktop {
        display: block;
        cursor: pointer;

        transform: translateY(0);
        transition: transform 0.4s cubic-bezier(0.390, 0.575, 0.565, 1.000);

    }

    .navbar__menu[data-active] .navbar__menu--desktop {
        transform: translateY(calc(var(--p-y) * 2));
    }

    .navbar__menu--mobile {
        display: none;
    }

    /* =============== */
    /*      items      */
    /* =============== */

    .navbar__menu[data-active] .navbar__items {
        z-index: 10;
    }
    
    .navbar__items {
        top: var(--p-y);
        right: var(--p-x);
        
        row-gap: 0;
        column-gap: 40rem;
        
        flex-direction: row;
        width: auto;
        height: auto;
        
        --bg-anim-len: 0s;
        transform: scale(1);
        background-color: transparent;
    }

    /* =============== */
    /*      items      */
    /* =============== */

    .navbar__items__item {
        opacity: 1;
        transform: translateX(0rem);
        overflow-y: hidden;
    }

    .navbar__menu[data-active] .navbar__items .navbar__items__item {
        opacity: 1;
        transform: translateX(0rem);
    }
    
    .navbar__items__item span {
        color: var(--theme-black);
        display: inline-block;
    
        opacity: 1;
        transform: translate(0rem, calc(-2 * var(--p-y)));
        transition: transform 0.4s cubic-bezier(0.390, 0.575, 0.565, 1.000);
    }
    
    .navbar__menu[data-active] .navbar__items .navbar__items__item span {
        opacity: 1;
        transform: translate(0rem, 0rem);
    }

    .navbar__items__item:nth-child(1) span {transition-delay: calc(var(--bg-anim-len));}
    .navbar__items__item:nth-child(2) span {transition-delay: calc(var(--bg-anim-len));}
    .navbar__items__item:nth-child(3) span {transition-delay: calc(var(--bg-anim-len));}
    .navbar__items__item:nth-child(4) span {transition-delay: calc(var(--bg-anim-len));}
}