/* Reset and base styles */
body {
    width: 100vw;
    height: 100vh;
    margin: 0;
    padding: 0;
    overflow:hidden;
    display: flex;
    color: white;
    cursor: none;
}

main {
    width: 100%;
    height: 100%;
    display: flex;
    justify-content: center;
    align-items: center;
}
.title {
    font-family: "Anton SC", sans-serif;
    display: flex;
    justify-content: center;
    align-items: center;
    gap: .75rem;

    h1 {
        font-size: 8.5rem;
        letter-spacing: .25rem;
    }

    span, a {
        font-size: 4rem;
        line-height: 4rem;
        opacity: 0.5;
    }
}

.menus {
    font-family: "Barlow", sans-serif;
    position: absolute;
    top: 0;
    left: 0;
    width: calc(100% - 6rem);
    height: calc(100% - 6rem);
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    align-items: center;
    margin: 3rem 3rem;

    .menu {
        display: flex;
        justify-content: space-between;
        align-items: start;
        width: 100%;

        .sub-menu {

            &:is(.menu-top) {
                align-items: start;
            }

            font-size: 1.5rem;
            display: flex;
            align-items: end;
            gap: 2rem;
            letter-spacing: 0.065rem;
            font-weight: 400;

            .icon-wrap {
                position: relative;
                opacity: .75;
                transition: padding-bottom .3s ease, opacity 0.3s ease;

                .icon {
                    aspect-ratio: 1 / 1;
                    width: 2.5rem;
                }
                .text {
                    color: white;
                    text-decoration: none;
                    position: absolute;
                    top: .2rem;
                    left: 0;
                    width: max-content;
                    text-wrap: nowrap;
                    opacity: 0;
                    transition: opacity .3s ease;
                    font-weight: 300;
                }
            }

            .top {
                position: relative;
                padding-bottom: .25rem;
                opacity: .75;
                transition: all 0.3s ease-in;

                cursor: none;
                
                &::after {
                    content: "";
                    position: absolute;
                    bottom: 0;
                    left: 0;
                    width: 0;
                    height: .065rem;
                    opacity: .75;
                    background-color: white;
                    transition: all 0.3s ease-in;
                }
                
                &:hover {
                    opacity: 1;

                    &::before {
                        width: 100%;
                        opacity: 1;
                    }
                }
            }

            .dp {
                padding-bottom: .25rem;
            }
        }
    }
}

.cursor {
    position: fixed;
    pointer-events: none;
    z-index: 999;
    font-size: 4rem;
    mix-blend-mode:difference;
    transform: translate(-50%, -50%);
    transition: transform .3s ease;
}

.cursor-shrink {
    cursor: none;
}

ul {
    display: none;
    position: relative;
    list-style: none;
    padding-left: 1rem;
    margin-top: 0.5rem;
    --border-height: 0%;

    &::before {
        content: "";
        position: absolute;
        top: 0;
        left: 0;
        height: var(--border-height);
        width: 1px;
        background: white;
    }

    li {
        opacity: 0;
        font-size: 1rem;
        transform: translateX(-10px);
    }
}

.about-me {
    display: flex;
    flex-direction: column;

    #about-me {
        max-width: 450px;
        min-width: 300px;
        font-size: 1rem;
        padding-top: .25rem;
        opacity: 0;
        display: flex;
        flex-direction: column;
        justify-content: start;
        align-items: start;
        gap: 1rem;
    }
}

#top-left {
    transition: all 0.5s ease;
}

ul {
    li {
        margin-top: .5rem;
        padding-right: .5rem;
        padding-left: 0;
        transition: padding-left .3s ease, padding-right .3s ease;

        &:hover {
            padding-left: .5rem;
            padding-right: 0;
        }

        a {
            text-decoration: none;
            color: white;
        }
    }
}

.is-mobile { display: none !important; }

/* Background canvas */
#background-canvas {
    position: absolute;
    top: 0;
    left: 0;
    width: 100vw;
    height: 100vh;
    z-index: -1;
}