/*
* ayushsplaining index V1.0
* Copyright 2022, Ayush Mukherjee
* Free to use under the MIT license.
* 11/22/2022
*/


/* Table of contents
––––––––––––––––––––––––––––––––––––––––––––––––––
- Variables
- Typography
- Components
- Layout
- Utilities
- Media Queries
*/


/* Variables
–––––––––––––––––––––––––––––––––––––––––––––––––– */


/* Typography
–––––––––––––––––––––––––––––––––––––––––––––––––– */
.navlist {
    padding-inline: 5ch;
}

.navitem {
    font-family: var(--ff-heading);
    font-size: 1.5rem;
    color: var(--color-primary-light);
    text-align: center;
    text-transform: uppercase;
}

.navitem>a {
    text-decoration: none;
    color: currentColor;
}

/* Components
–––––––––––––––––––––––––––––––––––––––––––––––––– */
body {
    background-color: var(--color-bg);
}

.navlist {
    display: flex;
    flex-direction: column;
    gap: 1.5rem;
    justify-content: center;
    align-items: center;
}

.nav-toggle {
    visibility: hidden;
}

@keyframes fall {0% {rotate: 0turn;} to {rotate: 0.25turn;}}

.portrait {
    width: 6rem;
    aspect-ratio: 9 / 16;
    border-radius: 1rem;
    box-shadow: var(--color-primary) 0 0 0 5px;
    animation: fall calc(7 * var(--transition-delay-short)) ease-in-out normal infinite;
}

@keyframes stretch {0% {height: 10px;} to {height: 60px;}}
.portrait::before,
.portrait::after {
    content: '';
    display: inline-block;
    width: 5px;
    background-color: var(--color-primary-light);
    animation: stretch calc(7 * var(--transition-delay-short)) ease-in-out normal infinite;;
}


/* Layout
–––––––––––––––––––––––––––––––––––––––––––––––––– */
nav {
    margin-top: 1.5rem;
}

.nav-toggle {
    position: absolute;
    top: 1em;
    right: 0;
    transform: translateX(-100%);
    background: var(--color-bg);
    padding: 1em .5em;
    border: 0;
    border-radius: .25em 0 0 .25em;
    z-index: 100;
}

.navlist {
    flex-direction: row;
}

.navitem {
    text-transform: lowercase;
    transition: color var(--transition-delay-short) ease-out;
}

.navitem:hover,
.navitem:focus-within {
    color: var(--color-primary);
}

.portrait {
    display: none;
    position: fixed;
    top: 50%;
    left: 50%;
    translate: -50% -50%;
}

.portrait::before,
.portrait::after {
    position: absolute;
    top: 50%;
    translate: 0 -50%;
}

.portrait::before { left: -30%; }
.portrait::after { right: -30%; }


/* Utilities
–––––––––––––––––––––––––––––––––––––––––––––––––– */
.navitem:focus {
    color: var(--color-primary);
}


/* Media Queries
–––––––––––––––––––––––––––––––––––––––––––––––––– */
@media(max-width: 900px) {
    /* Hamburger menu */
    .navlist {
        flex-direction: column;
        background: var(--color-bg);
        position: absolute;
        translate: 100%;
        right: 0;
        z-index: 100;
        transition: translate var(--transition-delay-short) cubic-bezier(.5, 0, .5, 1);
    }

    .navitem {text-transform: uppercase;}

    .hamburger {
        display: block;
        position: relative; }

    .hamburger,
    .hamburger::before,
    .hamburger::after {
        width: 2em;
        height: 3px;
        background: var(--color-primary);
        transition: transform var(--transition-delay-short) ease-in-out;
    }

    .hamburger::before,
    .hamburger::after {
        content: '';
        position: absolute;
        left: 0;
    }

    .hamburger::before {bottom: 6px;}
    .hamburger::after {top: 6px;}

    .nav-open .navlist { translate: 0; }

    .nav-toggle {
        visibility: visible;
    }

    .nav-open .nav-toggle .hamburger::before,
    .nav-open .nav-toggle .hamburger::after,
    .nav-open .nav-toggle:hover .hamburger::before,
    .nav-open .nav-toggle:hover .hamburger::after {
        width: 1.5em;
        left: 0.9em;
    }

    .nav-open .nav-toggle .hamburger::before,
    .nav-open .nav-toggle:hover .hamburger::before {transform: rotate(45deg);}

    .nav-open .nav-toggle .hamburger::after,
    .nav-open .nav-toggle:hover .hamburger::after {transform: rotate(-45deg);}

    .nav-toggle:hover .hamburger::before,
    .nav-toggle:hover .hamburger::after {
        width: 1.5em;
        left: -.2em;
    }

    .nav-toggle:hover .hamburger::before {transform: rotate(-50deg);}
    .nav-toggle:hover .hamburger::after {transform: rotate(50deg);}

    .nav-toggle:is(:hover, :focus) {background-color: var(--color-bg-light);}

    .nav-open~main{
        opacity: 0.1;
    }
}

@media only screen and (max-device-width: 640px) and (orientation: portrait) {
    .portrait {
        display: block;
    }

    body :not(.portrait) {
        display: none;
    }
}
