:root {
    --light-pop-color: #1622ff;
    --light-pop-color-hover: #1900ff;
    --light-theme-background: #efefef;
    --light-theme-text: #2f2e3b;

    --dark-pop-color: #ff0000;
    --dark-pop-color-hover: #ff5454;
    --dark-theme-background: #00091a;
    --dark-theme-text: #ffffff;

    --menu-background: #1d1d1d;
    --menu-text: #ffffff;


    --content-width: 900px;
    --menu-indent: 15px;
}

html {
    background-color: var(--dark-theme-background);
}

body {
    margin: 0;
    font-family: Verdana, Geneva, Tahoma, sans-serif;
}

h1,
h2,
h3,
h4,
h5,
h6 {
    margin-block: 0.1rem;
}

p {
    font-size: 1rem;
    line-height: 1.5;
    margin-block-end: 1.5rem;
    margin-block-start: 0rem;
}

header nav {
    display: flex;
    flex-direction: row;
    align-items: stretch;
    justify-content: space-between;
    padding-inline-start: min(2%, 10px);
    background-color: var(--menu-background);

    a {
        color: var(--menu-text);
        text-decoration: none;
    }

    @media (max-width: 950px) {
        flex-direction: column;
        align-items: center;
        justify-content: start;
    }

    input[type="checkbox"],
    label {
        display: none;
    }
}

#home {
    flex-grow: 1;
    display: flex;
    flex-direction: row;
    align-items: center;
    user-select: none;
    -webkit-user-select: none;
    list-style-type: none;

    a {
        font-size: xx-large;
    }

    #firstName {
        font-weight: 900;
    }
}

#mainLinks {
    display: flex;
    flex-direction: row;

    li {
        width: 200px;
        font-size: large;
        text-align: center;
        display: flex;
        flex-direction: column;
        justify-content: center;
    }

    @media (min-width: 950px) {
        border-inline-start: 1px solid #a9a9a9;
        padding-inline-start: 2px;
    }

    a {

        >.linkText {
            position: relative;
        }

        /* modified from https://www.30secondsofcode.org/css/s/hover-underline-animation/ */
        >.linkText::after {
            content: '';
            position: absolute;
            width: 100%;
            transform: scaleX(0);
            height: 2px;
            bottom: -7px;
            left: 0;
            background-color: var(--dark-pop-color);
            transition: transform 0.25s ease-out;
        }

        &:hover {
            /* color: var(--light-pop-color-hover); */

            >.linkText::after {
                transform: scaleX(1);
                transform-origin: bottom center;
            }
        }

        &:active {
            /* color: var(--light-pop-color); */

            >.linkText::after {
                color: var(--dark-pop-color);
                transform: scaleX(0.25);
            }
        }
    }
}

@media (max-width: 600px) {
    header nav {
        flex-direction: row;
        align-items: center;
        justify-content: space-between;

        label {
            display: block;
            font-size: large;
            margin-inline: var(--menu-indent);
            padding: .25rem;
            user-select: none;
            -webkit-user-select: none;
            border-radius: .25rem;
            border: 1px solid var(--menu-text);
            color: var(--menu-text)
        }
    }

    input[type="checkbox"]:not(:checked)+#mainLinks {
        display: none;
    }

    #mainLinks {
        position: fixed;
        top: 60px;
        right: var(--menu-indent);
        flex-direction: column;
        background-color: var(--menu-background);
        padding-inline: 1rem;
        padding-block: .5rem;
        border-radius: .15rem;
        border: 1px solid var(--menu-text);

        li {
            width: auto;
            text-align: left;
            padding-block: .5rem;
        }
    }
}

main {
    background-color: var(--dark-theme-background);
    color: var(--dark-theme-text);

    padding-block: .1em;
    padding-inline: min(10px, 100% - 2rem);

    div.home {
        display: flex;
        flex-direction: row;
        align-items: center;
        justify-content: center;
        flex-wrap: wrap;

        min-height: 80vh;

        img {
            border-radius: 1em;
        }

        p.introText {
            margin-inline: 1rem;
            max-width: calc(var(--content-width) - 350px);
        }
    }

    div.mainContent {
        max-width: min(var(--content-width), 100% - 2rem);
        margin-inline: auto;
    }

    a {
        color: var(--dark-pop-color);

        &:hover {
            text-decoration: none;
        }

        &:active {
            color: var(--dark-pop-color-hover);
        }
    }
}

footer {
    background-color: var(--menu-background);
    color: var(--menu-text);

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

    padding-inline: 20px;
}