header {
    display: flex;
    justify-content: end;
    z-index: 100;

    position: fixed;
    top: 0;
    left: 0;
    right: 0;

    align-items: center;

    padding: 0.5rem 1rem;

    background-color: var(--main);

    user-select: none;
}

#headerMenu {
    display: none;
    background: none;
    border: none;
    color: white;
    font-size: 24px;
    cursor: pointer;
}

#headerIcons {
    display: flex;
    gap: 20px;
    list-style: none;
    margin: 0;
    padding: 0;
}

.headerIcon {
    display: flex;
    align-items: baseline;
    gap: 0.5rem;
    color: white;
    text-decoration: none;
    padding: 0.2rem;
    border-radius: 0.3rem;
    transition: all 0.2s ease-in-out;
}

.headerIcon:hover {
    background-color: var(--dark);
}

@media (max-width: 640px) {
    #headerMenu {
        display: block;
    }

    #headerMenu::after {
        content: "\f0c9";
    }

    header:has(#headerIcons.open) #headerMenu::after {
        content: "\f00d";
    }

    #headerIcons {
        display: none;
        position: absolute;
        top: 100%;
        right: 10px;
        
        flex-direction: column;

        border-radius: 0 0 1em 1em;

        background: var(--bg);
        padding: 20px;
    }

    #headerIcons.open {
        display: flex;
    }
}