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

    --dark-pop-color: #bbbbff;
    --dark-pop-color-hover: #e4e4ff;
    --dark-theme-background: #1d1d1d;
    --dark-theme-text: #ddddff;
}

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

h2 {
    margin-block-end: 1px;
}

header nav {
    display: flex;
    flex-direction: row;
    align-items: stretch;
    justify-content: space-between;
    padding-inline-start: min(2%, 10px);
    border-bottom: 1px solid#a9a9a9;

    a {
        color: black;
        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(--light-pop-color-hover);
            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(--light-pop-color);
                transform: scaleX(0.5);
            }
        }
    }
}

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

        label {
            display: block;
            font-size: large;
            margin-inline-end: 1.5rem;
            padding: .25rem;
            user-select: none;
            -webkit-user-select: none;
            border-radius: .25rem;
            border: 1px solid black;
        }
    }

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

    #mainLinks {
        position: fixed;
        top: 100px;
        right: 4px;
        flex-direction: column;
        background-color: #fff;
        padding-inline: .5rem;
        border-radius: .15rem;

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

        li:not(:last-child) {
            border-bottom: 1px solid black;
        }
    }
}

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

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

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

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

        &:hover {
            color: var(--dark-pop-color-hover);
            text-decoration: none;
        }

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

footer {
    background-color: black;
    color: white;

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

    padding-inline: 20px;
}