* {
    margin: 0;
    padding: 0;
    list-style: none;
    text-decoration: none;
    box-sizing: border-box;
    color: inherit;
    font-family: Helvetica;
    -webkit-tap-highlight-color: transparent;
    /* user-select: none; */
    font-weight: 300;
}

:root {
    --white: #ffffff;
    --pure-gray: #FCFCFC;
    --cloud-gray: #e6e6e6;
    --silk-gray: #cccccc;
    --stone-gray: #999999;
    --iron-gray: #666666;
    --charcoal-gray: #333333;
    --black: #000000;

    --layout-padding: 128px;
}

html.dark {
    height: 100vh;
    background: black;
    
    color: #fff !important;

    --white: #000000 !important;
    --pure-gray: #141414 !important;
    --cloud-gray: #e6e6e6 !important;
    --silk-gray: #666666 !important;
    --stone-gray: #999999 !important;
    --iron-gray: #666666 !important;
    --charcoal-gray: #333333 !important;
    --black: #ffffff !important;

    & path {
        stroke: var(--black);
        transition: .25s;
    }

    & .change-theme {
        & path {
            &:nth-child(1) {
                fill: var(--black);
            }
        }
    }
}

@media (min-width: 1800px) {
    :root {
        --layout-padding: 384px !important;
    }
}

@media (max-width: 1024px) {
    :root {
        --layout-padding: 24px !important;
    }

    main {
        padding: 64px var(--layout-padding) !important;

        & > .content {
            grid-template-columns: repeat(2, 1fr) !important;
        }
    }
}

@media (max-width: 480px) {
    header {
        top: 0 !important;
        padding-top: 12px !important;

        & nav {
            display: none !important;
        }

        & .menu-control {
            display: flex !important;
        }

        & .admin {
            display: none !important;
        }
    }

    main {
        gap: 64px !important;

        padding: 64px 24px !important;
        
        & section {
            gap: 24px !important;

            & .title {
                font-size: 32px !important;
            }

            & .section-title {
                font-size: 24px !important;
            }

            &.contact, &.admin {
                flex-direction: column;
                gap: 64px !important;

                & .border {
                    display: none !important;
                }

                & .end {
                    gap: 24px !important;
                }
            }

            &.capabilities {
                & .table {
                    flex-direction: column;
                }
            }
        }

        & .projects {
            grid-template-columns: 1fr !important;
            gap: 12px !important;
        }

        & > .content {
            grid-template-columns: 1fr !important;
        }

        & .contact-read {
            & .bottom {
                flex-direction: column;
                gap: 4px;

                & .bar {
                    display: none;
                }
            }
        }
    }

    footer {
        padding: 24px !important;
    }
}

.mobile-nav {
    position: fixed;
    top: 57px;
    left: 0;

    width: 100%;
    height: fit-content;
    
    background: var(--pure-gray);
    opacity: 0;
    z-index: 100;
    transition: .25s;
    padding: 0 24px;
    border-bottom: 1px solid var(--silk-gray);

    &.show-menu {
        opacity: 1;
    }

    & nav {
        display: flex;
        justify-content: center;
        gap: 8px;
    }

    & div {
        display: flex;
        align-items: center;

        height: 32px;

        padding: 0 12px;
        border-radius: 2px;
        color: var(--stone-gray);
        text-transform: capitalize;
        transition: .25s;

        &.current, &:hover {
            color: var(--black);
        }
    }
}

header {
    position: sticky;
    left: 0;
    top: -12px;

    display: flex;
    justify-content: space-between;

    width: 100%;

    padding: 12px var(--layout-padding);
    padding-top: 24px;
    border-bottom: 1px solid transparent;
    background: var(--pure-gray);
    z-index: 100;
    transition: .25s;

    &.border-bottom {   
        border-bottom: 1px solid var(--silk-gray);
        background: var(--white);
    }

    & .logo {
        display: flex;
        align-items: center;

        height: 32px;

        padding: 0 12px;
        text-transform: uppercase;
        border-radius: 2px;
        border: 1px solid;
    }

    & .menu-group {
        display: flex;
        gap: 64px;

        & nav {
            display: flex;
            gap: 8px;

            & div {
                display: flex;
                align-items: center;

                height: 32px;

                padding: 0 12px;
                border-radius: 2px;
                color: var(--stone-gray);
                text-transform: capitalize;
                transition: .25s;

                &.current, &:hover {
                    color: var(--black);
                }
            }
        }

        & .page-control {
            display: flex;
            align-items: center;
            gap: 24px;
            
            & div, & a {
                display: flex;
                align-items: center;
                
                cursor: pointer;
            }

            & .menu-control {
                position: relative;

                display: none;
                align-items: center;

                width: 22px;
                height: 22px;

                & svg {
                    position: absolute;
                    top: 50%;
                    right: 0;

                    transform: translateY(-50%);
                    transition: .25s;

                    &:nth-child(2) {
                        opacity: 0;
                    }
                }

                &.changed {
                    & svg {
                        &:nth-child(1) {
                            opacity: 0;
                        }

                        &:nth-child(2) {
                            opacity: 1;
                        }
                    }
                }
            }

            & .change-language {
                position: relative;

                & .drop-menu {
                    position: absolute;
                    top: calc(100% + 8px);
                    right: 0;

                    display: flex;
                    flex-direction: column;

                    width: fit-content;

                    font-size: 12px;
                    border: 1px solid var(--silk-gray);
                    border-radius: 2px;
                    background: var(--white);
                    opacity: 0;
                    pointer-events: none;
                    transition: .25s;

                    & ~ svg path {
                        transition: .25s;
                    }
                    
                    &.show {
                        pointer-events: all;
                        opacity: 1;

                        & ~ svg path {
                            stroke: hotpink;
                        }
                    }

                    & .border {
                        width: 100%;
                        height: 1px;
                        background: var(--silk-gray);
                    }
                    
                    & .menu {
                        display: flex;
                        align-items: center;

                        width: 100%;
                        height: 32px;

                        padding: 0 12px;
                        border-radius: 2px;
                        color: var(--stone-gray);
                        transition: .25s;
                        
                        &:hover {
                            color: var(--black);
                        }
                    }
                }
            }
        }
    }
}

main {
    display: flex;
    flex-direction: column;

    padding: 128px var(--layout-padding);
    transition: .25s padding;
    background: var(--pure-gray);
}

footer {
    display: flex;

    padding: 24px var(--layout-padding);
    border-top: 1px solid var(--silk-gray);
    font-size: 12px;
    color: var(--stone-gray);
    transition: .25s padding;
    background: var(--white);
}
