@font-face {
    font-family: "Inter";
    src: url("./assets/fonts/inter.woff2") format("woff2");
    font-weight: 100 900;
    font-style: normal;
    font-display: swap;
}


:root {
    --color-black: #000000;
    --color-white: #FFFFFF;
    --color-cream: #F0E7D5;
    --color-indigo: #212842;
    --color-indigo-light: #273050;
    --color-blue: #D8C6FF;
    --color-blue-dark: #9985C5;
    --color-orange: #FF730D;
}


::-webkit-scrollbar {
    width: 5px;
}

::-webkit-scrollbar-track {
    background-color: #313131;
}

::-webkit-scrollbar-thumb {
    background-color: #a2a2a2;
}


* {
    box-sizing: border-box;
    font-family: "Inter", sans-serif;
    font-style: normal;
}


body {
    margin: 0;
    padding: 0;
    color: var(--color-white);
    background-color: var(--color-black);
}


main {
    position: relative;
    height: 100vh;
    background-color: var(--color-cream);
    overflow: hidden;

    .wrapper {
        position: absolute;
        bottom: 200px;
        max-width: 1920px;
        width: 100%;
        padding: 0 clamp(30px, calc(30px + (300 - 30) * ((100vw - 560px) / (1920 - 560))), 300px);
        color: var(--color-indigo);

        div {
            &:nth-child(1) {
                margin-bottom: clamp(40px, calc(40px + (80 - 40) * ((100vw - 560px) / (1920 - 560))), 80px);

                h1 {
                    max-width: 70%;
                    margin: 0 0 clamp(20px, calc(20px + (30 - 20) * ((100vw - 560px) / (1920 - 560))), 30px) 0;
                    font-size: clamp(40px, calc(40px + (96 - 40) * ((100vw - 560px) / (1920 - 560))), 96px);
                    text-indent: -0.04em;
                    line-height: 1;
                }

                h2 {
                    margin: 0;
                    font-size: clamp(20px, calc(20px + (32 - 20) * ((100vw - 560px) / (1920 - 560))), 32px);
                    font-weight: 500;
                    text-indent: -0.04em;
                    line-height: 1;
                }

                h4 {
                    margin: 0;
                    font-size: clamp(14px, calc(14px + (16 - 14) * ((100vw - 560px) / (1920 - 560))), 16px);
                    font-weight: 500;
                    line-height: 1;
                }
            }

            &:nth-child(2) {
                display: flex;
                align-items: center;
                gap: 16px;

                a {
                    transition: transform 0.2s;

                    img {
                        width: 32px;
                        height: 32px;
                    }

                    &:hover {
                        transform: scale(1.2, 1.2);
                    }
                }
            }
        }
    }

    .abstraction {
        position: absolute;
        top: 0;
        right: 0;
        bottom: 0;
        width: 25%;
        display: flex;
        align-items: center;

        div {
            position: absolute;
            height: 300%;
            width: 300%;

            &:nth-child(1) {
                transform: rotate(-20deg);
                background-color: var(--color-indigo);
                border-left: 50px solid var(--color-black);
            }

            &:nth-child(2) {
                transform: rotate(20deg);
                background-color: var(--color-orange);
            }
        }
    }
}


section {
    padding: 120px 0;
    justify-items: center;

    .wrapper {
        max-width: 1920px;
        width: 100%;
        padding: 0 clamp(30px, calc(30px + (300 - 30) * ((100vw - 560px) / (1920 - 560))), 300px);

        & > h1 {
            width: min(680px, 100%);
            margin: 0 0 clamp(60px, calc(60px + (80 - 60) * ((100vw - 560px) / (1920 - 560))), 80px) 0;
            text-indent: -0.04em;
            font-size: clamp(36px, calc(36px + (48 - 36) * ((100vw - 560px) / (1920 - 560))), 48px);
        }
    }

    &.stack {
        background-color: var(--color-indigo);

        .wrapper {
            & > h1 {
                color: var(--color-cream);
            }

            .container {
                display: flex;
                flex-direction: column;
                gap: clamp(40px, calc(40px + (50 - 40) * ((100vw - 960px) / (1920 - 960))), 50px);

                .block {
                    h2 {
                        margin: 0 0 20px 0;
                        display: flex;
                        align-items: center;
                        font-size: 16px;
                        color: var(--color-cream);

                        &::before {
                            content: "";
                            width: 10px;
                            height: 16px;
                            margin-right: 10px;
                            display: block;
                            background-color: var(--color-cream);
                        }
                    }

                    .grid {
                        display: grid;
                        grid-template-columns: repeat(auto-fill, minmax(300px, 1fr));
                        gap: 20px;

                        .item {
                            padding: 20px;
                            border: 1px solid rgba(255, 255, 255, 0.1);

                            &.bg {
                                background-color: var(--color-indigo-light);
                            }

                            & > div {
                                &:nth-child(1) {
                                    margin-bottom: 14px;
                                    display: flex;
                                    justify-content: space-between;

                                    .title {
                                        display: flex;
                                        align-items: center;

                                        div {
                                            margin-right: 10px;
                                            width: 20px;
                                            height: 20px;
                                        }

                                        h3 {
                                            margin: 0;
                                            font-size: 20px;
                                            color: var(--color-cream);
                                        }
                                    }

                                    .category {
                                        font-size: 12px;
                                        font-weight: 500;
                                        color: rgba(255, 255, 255, 0.5);
                                    }
                                }

                                &:nth-child(2) {
                                    .experience {
                                        margin-bottom: 8px;
                                        font-size: 13px;
                                        font-weight: 500;
                                        color: var(--color-blue);

                                        span {
                                            font-weight: bold;
                                            color: var(--color-white);
                                        }
                                    }

                                    .timeline {
                                        position: relative;
                                        height: 23px;

                                        .bar {
                                            position: relative;
                                            width: 100%;
                                            height: 4px;
                                            background-color: rgba(255, 255, 255, 0.1);

                                            .progress {
                                                position: absolute;
                                                height: 100%;
                                                background-color: var(--color-blue);

                                                div {
                                                    position: absolute;
                                                    padding-top: 12px;
                                                    font-size: 10px;

                                                    &::after {
                                                        position: absolute;
                                                        content: "";
                                                        top: 0;
                                                        right: 0;
                                                        height: 10px;
                                                        width: 1px;
                                                        background-color: var(--color-white);
                                                    }

                                                    &:nth-child(1) {
                                                        left: 0;
                                                        transform: translateX(calc(-100% + 0.5px));
                                                    }

                                                    &:nth-child(2) {
                                                        right: 0;
                                                    }
                                                }
                                            }
                                        }
                                    }
                                }
                            }
                        }
                    }

                }
            }
        }
    }

    &.work {
        .wrapper {
            & > h1 {
                color: var(--color-cream);
            }

            .container {
                display: flex;

                .block {
                    display: flex;
                    gap: 10px;
                    
                    & > div {
                        &:nth-child(1) {
                            width: 32px;

                            div {
                                &:nth-child(1) {
                                    height: 17px;
                                    display: flex;
                                    align-items: center;

                                    &::before {
                                        content: "";
                                        width: 12px;
                                        min-width: 12px;
                                        height: 12px;
                                        display: block;
                                        clip-path: polygon(100% 0, 0 50%, 100% 100%);
                                        background-color: var(--color-cream);
                                    }

                                    &::after {
                                        content: "";
                                        height: 1px;
                                        width: 100%;
                                        display: block;
                                        background-color: rgba(255, 255, 255, 0.2);
                                    }
                                }
                            }
                        }

                        &:nth-child(2) {
                            .timeline {
                                height: 17px;
                                margin-bottom: 10px;
                                display: flex;
                                font-size: 14px;
                                color: rgba(255, 255, 255, 0.5);

                                div {
                                    &:nth-child(2) {
                                        width: 100%;
                                        display: flex;
                                        align-items: center;

                                        &::before {
                                            content: "";
                                            height: 1px;
                                            width: 10px;
                                            margin: 0 4px;
                                            display: block;
                                            background-color: rgba(255, 255, 255, 0.2);
                                        }

                                        &::after {
                                            content: "";
                                            height: 1px;
                                            width: 100%;
                                            margin-left: 4px;
                                            display: block;
                                            background-color: rgba(255, 255, 255, 0.2);
                                        }
                                    }
                                }
                            }

                            .content {
                                padding-right: 40px;

                                h2 {
                                    margin: 0 0 10px 0;
                                    font-size: 32px;
                                    color: var(--color-blue-dark);
                                }

                                h3 {
                                    margin: 0 0 5px 0;
                                    font-size: 20px;
                                    color: var(--color-cream);
                                }

                                p {
                                    margin: 0;
                                    font-size: 14px;
                                    color: rgba(255, 255, 255, 0.5);
                                }
                            }
                        }
                    }

                    &:nth-child(1) {
                        & > div:nth-child(1) {
                            div:nth-child(1) {
                                &::before {
                                    clip-path: none;
                                }
                            }
                        }
                    }
                }
            }
        }
    }

    &.projects {
        background-color: var(--color-cream);

        .wrapper {
            & > h1 {
                color: var(--color-indigo);
            }

            .container {
                display: grid;
                grid-template-columns: repeat(auto-fill, minmax(370px, 1fr));
                gap: clamp(20px, calc(20px + (40 - 20) * ((100vw - 1024px) / (1920 - 1024))), 40px);

                & > a {
                    padding: 30px 20px;
                    display: flex;
                    flex-direction: column;
                    gap: 20px;
                    color: var(--color-black);
                    background-color: var(--color-white);
                    text-decoration: none;
                    transition: transform 0.2s, box-shadow 0.2s;

                    .title {
                        display: flex;
                        align-items: center;
                        gap: 10px;

                        img {
                            height: 24px;
                        }

                        & > div {
                            div {
                                font-size: 12px;
                                color: var(--color-blue-dark);
                            }

                            h2 {
                                margin: 0;
                                text-indent: -0.04em;
                                font-size: 16px;
                                line-height: 1;
                                color: var(--color-indigo-light);
                            }
                        }
                    }

                    p {
                        margin: 0;
                        font-size: 14px;
                    }

                    .tags {
                        display: flex;
                        flex-wrap: wrap;
                        gap: 5px 10px;

                        div {
                            height: 20px;
                            padding: 0 6px;
                            align-content: center;
                            font-size: 12px;
                            font-weight: 500;
                            color: var(--color-black);
                            background-color: var(--color-blue);
                        }
                    }

                    &:hover {
                        transform: translateY(-5px);
                        box-shadow: 0px 5px 5px rgba(0, 0, 0, 0.2);
                    }
                }
            }
        }
    }
}


footer {
    height: 200px;
    padding: 40px 0;
    align-content: end;
    justify-items: center;
    background-color: var(--color-black);

    .wrapper {
        max-width: 1920px;
        width: 100%;
        padding: 0 clamp(30px, calc(30px + (300 - 30) * ((100vw - 560px) / (1920 - 560))), 300px);

        div {
            &:nth-child(1) {
                display: inline-flex;
                margin-bottom: 20px;
                flex-direction: column;
                color: var(--color-cream);

                h1 {
                    margin: 0 0 2px 0;
                    text-indent: -0.04em;
                    font-size: 24px;
                }

                a {
                    margin: 0;
                    text-indent: -0.04em;
                    font-size: 14px;
                    font-weight: 400;
                    color: inherit;
                    text-decoration: none;

                    &:hover {
                        text-decoration: underline;
                    }
                }
            }

            &:nth-child(2) {
                display: flex;
                align-items: center;
                gap: 10px;

                a {
                    transition: transform 0.2s;

                    img {
                        width: 20px;
                        height: 20px;
                    }

                    &:hover {
                        transform: scale(1.2, 1.2);
                    }
                }
            }
        }
    }
}


@media screen and (max-width: 1180px) {
    section {
        padding: 100px 0;

        &.work {
            .wrapper {
                .container {
                    flex-direction: column;
                    gap: 40px;

                    .block {
                        width: 100%;
                        
                        & > div {
                            &:nth-child(1) {
                                width: 12px;

                                div {
                                    &:nth-child(1) {
                                        height: 17px;

                                        &::before {
                                            clip-path: polygon(50% 0%, 0% 100%, 100% 100%);
                                        }

                                        &::after {
                                            content: none;
                                        }
                                    }
                                }
                            }

                            &:nth-child(2) {
                                width: 100%;

                                .content {
                                    padding-right: 0;
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}

@media screen and (max-width: 1024px) {
    main {
        .wrapper {
            bottom: 20%;
        }
    }
}

@media screen and (max-width: 768px) {
    main {
        .abstraction {
            right: -20%;
            width: 25%;

            div {
                &:nth-child(1) {
                    border-width: 30px;
                }
            }
        }
    }
}

@media screen and (max-width: 460px) {
    main {
        .wrapper {
            bottom: 25%;
        }

        .abstraction {
            right: -20%;
            width: 25%;
        }
    }

    section {
        &.stack {
            .wrapper {
                .container {
                    .block {
                        .grid {
                            grid-template-columns: 1fr;
                        }
                    }
                }
            }
        }

        &.projects {
            .wrapper {
                .container {
                    grid-template-columns: 1fr;
                }
            }
        }
    }
}

@media screen and (max-width: 375px) {
    main {
        .abstraction {
            right: -25%;
            width: 20%;
        }
    }
}

@media screen and (max-width: 320px) {
    main {
        .abstraction {
            display: none;
        }
    }
}