@import 'normalize.css';
@import 'clear.css';
@import 'media.css';
@import 'font.css';

:root {
    --var-hero: 2.5rem;
    --var-intro: 1.25rem;
    --var-body: 1.125rem;
    --var-footer: 2.5rem;
    --var-dark: #0b0d0e;
    --var-white: #FFFFFF;
    --var-blue: #125DFA;
}

/* ========================= */
/*            Main           */
/* ========================= */

html {
    cursor: default;
    -webkit-font-smoothing: antialiased;
    height: 100%;

    &.menu-open {
        overflow: hidden;
    }

    ::selection {
        color: var(--var-white);
        background-color: var(--var-blue);
    }
}

body {
    box-sizing: border-box;
    font-family: 'Apercu', "Helvetica", "Roboto", "Arial", sans-serif;
    overscroll-behavior: none;
    background: var(--var-dark);
    height: 100%;
    -webkit-font-smoothing: antialiased;
    cursor: default;
    font-size: 1rem;

    &.menu-open {
        overflow: hidden;
        position: relative;
        width: 100%;
    }

    .strong {
        font-weight: 600;
    }
}

.d-flex {
    display: flex;
}

.flex-column {
    flex-direction: column;
}

.w-50 {
    width: 50%;
}

.w-100 {
    width: 100%;
}

.gap-24 {
    gap: 24px;
}

.aic {
    align-items: center;
}

& a {
    color: var(--var-white);
    position: relative;
    display: inline-block;
}

@media (hover: hover) {
    & a:hover:before {
        left: 0;
        right: auto;
        width: 100%;
    }
}

& a:before {
    background: var(--var-white);
    bottom: -0.375rem;
    content: "";
    display: block;
    height: 0.0625rem;
    position: absolute;
    right: 0;
    width: 0;
}

& a,
& a:before {
    transition: all .25s ease-out;
}


/* ========================= */
/*          Header           */
/* ========================= */

header {
    display: flex;
    background: var(--var-dark);
    padding: 2rem;
    width: 100%;

    .inner {
        display: flex;
        width: 100%;
        align-items: center;
        justify-content: space-between;
    }

    &.transparent {
        background: transparent;
    }

    .logotype {
        display: flex;
        z-index: 2;
        height: 1.625rem;
        align-items: center;

        & a {
            display: flex;

            &::before {
                display: none !important;
            }
        }

        & svg {
            fill: var(--var-white);
        }
    }
}

.menu {
    z-index: 2;
    display: flex;
    height: 1.625rem;
    width: 1.625rem;
    position: relative;

    .inner {
        position: absolute;
        height: 1.625rem;
        width: 1.625rem;
        cursor: pointer;
    }

    .menu-icon,
    .menu-icon:before,
    .menu-icon:after {
        content: '';
        position: absolute;
        height: 0.1563rem;
        width: 1.625rem;
        -webkit-transition: all 0.2s ease;
        transition: all 0.2s ease;
        background: var(--var-white);
    }

    .menu-icon {
        top: 0.75em;
    }

    .menu-icon:before {
        top: -0.55em;
    }

    .menu-icon:after {
        top: 0.55em;
    }
}

.site-menu {
    background-color: rgba(13, 17, 20, 0.98);
    backdrop-filter: blur(1.5rem);
    transition: all 0.3s ease;
    pointer-events: none;
    position: absolute;
    opacity: 0;
    top: 0;
    right: 0;
    bottom: 0;
    left: 0;
    z-index: 2;
    display: block;

    & ul {
        display: flex;
        flex-direction: column;
        justify-content: flex-start;
        align-items: center;
        transition: all 0.3s ease;
        list-style-type: none;
        position: absolute;
        top: 50%;
        left: 50%;
        width: 75%;
        padding: 0;
        transform: translate(-50%, -50%) scale(1.1);

        & li {
            display: flex;
            width: 100%;
            position: relative;
            padding: 1rem 0;

            & a {
                color: var(--var-white);
                font-weight: 500;
                position: relative;
                transition: 0.2s;

                &:before {
                    height: 0.125rem !important;
                }
            }


        }
    }
}

.menu-open {
    .site-menu {
        opacity: 1;
        pointer-events: initial;

        & ul {
            -webkit-transform: translate(-50%, -50%) scale(1);
            transform: translate(-50%, -50%) scale(1);
        }
    }

    .menu-icon {
        background: transparent;
        -webkit-transform: rotate(-135deg);
        transform: rotate(-135deg);

        &:before {
            -webkit-transform: rotate(90deg);
            transform: rotate(90deg);
        }

        &:before,
        &:after {
            top: 0;
        }
    }
}


/* ========================= */
/*           Hero            */
/* ========================= */

.hero {
    padding-top: 6rem;


    & p {
        color: var(--var-white);
        transition: 0.2s;

        &.name {
            font-weight: 600;
        }

        &.intro {
            padding-top: 1rem;
            font-weight: 500;

            .fade {
                opacity: 0.5;
            }

            .typer {
                color: var(--var-white) !important;

                &.dark {
                    color: var(--var-dark) !important;
                }
            }
        }


        &.contact {
            padding-top: 3rem;
            font-weight: 500;
            width: fit-content;

            & a {
                color: var(--var-white);
                display: flex;
                align-items: center;
                position: relative;

                & span {
                    margin-left: 0.75rem;
                    display: flex;

                    & svg {
                        fill: var(--var-white);
                    }
                }
            }
        }
    }


}

/* ========================= */
/*           Main            */
/* ========================= */

main {
    box-sizing: border-box;
    margin-left: auto;
    margin-right: auto;
    max-width: 110rem;

    .skills {
        line-height: 2.5rem;
        color: var(--var-white);
        display: flex;
        align-items: center;

        .fade {
            opacity: 0.5;
        }
    }

    .clients {
        display: flex;
        flex-direction: column;
        padding: 3.75rem 0 0;

        .intro {
            color: var(--var-white);
            line-height: 2.5rem;
            font-size: 2rem;
            padding: 0 0 3.75rem;

            .fade {
                opacity: 0.5;
            }
        }

        .brands {
            z-index: 1;
            color: var(--var-white);
            position: relative;
            padding: 6.25rem 0 0;
            display: flex;
            flex-wrap: wrap;
            row-gap: 0;
            width: 100%;

            &.about {
                padding: 0;
            }

            .tile {
                display: flex;
                align-items: center;
                justify-content: center;
                margin-bottom: 5.5rem;

                & svg {
                    transition: 0.7s;
                    transform: scale(1.15);
                }

                &:hover {
                    & svg {
                        transform: scale(1.17);
                        opacity: 0.8;
                    }
                }
            }
        }

    }
}

.work {
    z-index: 1;
    color: var(--var-white);
    position: relative;
    padding: 6.25rem 0 0;
    display: flex;
    flex-wrap: wrap;
    row-gap: 0;
    column-gap: 2.5vw;

    & a {
        color: var(--var-white);

        &:before {
            display: none !important;
        }
    }

    .work-tile {
        width: 100%;
        padding-bottom: 2.5rem;

        &:hover {
            .tile-img {
                transform: translate3d(0rem, 0rem, 0rem) scale3d(1.01, 1.01, 1.01) rotateX(0deg) rotateY(0deg) rotateZ(0deg) skew(0deg, 0deg);
                transform-style: preserve-3d;
            }

            .default {
                display: none;
            }

            .hover {
                display: flex;
            }
        }
    }

    .work-tile-img {
        margin-bottom: 1rem;
        position: relative;
        overflow: hidden;
        display: flex;
    }

    .tile-img {
        width: 100%;
        transition: 0.5s;
        transform: translate3d(0rem, 0rem, 0rem) scale3d(1, 1, 1) rotateX(0deg) rotateY(0deg) rotateZ(0deg) skew(0deg, 0deg);
        transform-style: preserve-3d;
    }

    .work-title {
        font-size: var(--var-body);

        .default {
            display: flex;
            justify-content: space-between;

            .time {
                opacity: 0.5;
                font-size: calc(var(--var-body) * 0.85);
            }
        }

        .hover {
            display: none;
        }
    }
}


/* ========================= */
/*          About            */
/* ========================= */

.img-about {
    width: 100%;
    height: intrinsic;
}

.video-about {
    width: 100% !important;
    height: auto !important;
}

.about-intro {
    padding: 8rem 0 0;
    color: var(--var-white);
    gap: 2rem;

    & p {
        margin-bottom: 1.5rem;
    }

    &.p-0 {
        padding: 3rem 0 0;
    }

    & svg {
        fill: var(--var-white) !important;
    }

    &.approach {
        padding: 8rem 0;
    }
}


/* ========================= */
/*          Footer           */
/* ========================= */

footer {
    display: flex;
    flex-direction: column;
    box-sizing: border-box;
    margin-left: auto;
    margin-right: auto;
    max-width: 110rem;

    color: var(--var-white);
    font-size: 1.25rem;

    .inner {
        display: flex;
        width: 100%;
        justify-content: space-between;

        .nav {
            display: flex;
            flex-direction: column;
            width: 50%;

            & ul {


                & li {
                    padding: 1rem 0;
                    display: flex;
                    font-size: var(--var-footer);
                }
            }
        }

        .info {
            display: flex;
            flex-direction: column;
            padding-top: 5.75rem;

            .reach {
                padding-bottom: 2.5rem;
                line-height: 1.5rem;
            }

            & ul {
                & li {
                    margin: 0 0 0.5rem 0;
                    display: flex;
                }
            }
        }
    }

    .bottom {
        display: flex;
        width: 100%;
        font-size: 1rem;
        padding-top: 4rem;

        & ul {
            display: flex;
            padding-bottom: 1rem;
            gap: 0.75rem;
        }
    }
}

/* ========================= */
/*          Form             */
/* ========================= */
#contact-form {
    display: flex;
    padding: 2.5rem 0 6rem;
    flex-direction: column;

    & form {
        display: flex;
        flex-direction: column;
        width: 100%;
        gap: 24px;
    }

    .row {
        display: flex;
        flex-direction: column;
    }

    .label {
        font-size: 1rem;
        font-weight: 500;
        margin-bottom: 0.5rem;
    }

    .form-error {
        color: darkred;
    }

    .form-success {
        color: green;
    }
}

.w-input {
    width: 100%;
    border: 1px solid var(--var-dark);
    padding: 0.75rem 0.75rem;
    font-size: 1.1rem;
    resize: none;

    &:focus {
        border-color: var(--var-blue);
        outline: 0;
    }
}

.w-button {
    width: auto;
    background-color: var(--var-dark);
    color: var(--var-white);
    padding: 0.75rem 1.5rem;
    margin-top: 1rem;
    font-size: 1rem;
    font-weight: 600;
    cursor: pointer;
    border: 0;
}

/* ========================= */
/*          Light            */
/* ========================= */

main.light,
.wrap-light,
header.light {
    background: var(--var-white);
    color: var(--var-dark);

}

header.light {
    & svg {
        fill: var(--var-dark);
    }

    .menu-icon,
    .menu-icon:before,
    .menu-icon:after {
        background: var(--var-dark);
    }


}

body.light.menu-open {

    .menu-icon,
    .menu-icon:before,
    .menu-icon:after {
        background: var(--var-white);
    }

    .logotype {
        & svg {
            fill: var(--var-white);
        }
    }
}

body.light {
    .hero p {
        color: var(--var-dark);

        &.smaller {
            font-weight: 400;
        }
    }

    .about-intro {

        .intro,
        & a {
            color: var(--var-dark);

            &:before {
                background: var(--var-dark);
            }
        }

        &.pb {
            padding-bottom: 1.875rem;
        }

        .pb-40 {
            padding-bottom: 2.5rem;
        }

        .pt-0 {
            padding: 0;
        }

        .circle {
            display: flex;
            justify-content: center;
            align-items: center;
            color: var(--var-white);
            border-radius: 50px;
            background: var(--var-dark);
            font-size: 1.5rem;
            font-weight: 600;
            min-width: 60px;
            width: 60px;
            max-width: 60px;
            min-height: 60px;
            height: 60px;
            max-height: 60px;
            margin-right: 24px;
            margin-bottom: 24px;
        }
    }

    .clients,
    .brands {
        padding: 0;

        & svg {
            fill: var(--var-dark) !important;
        }
    }


    .clients {
        padding-bottom: 6.25rem;
    }
}

body.project,
header.light.project,
.wrap-light.project,
main.light.project {
    background: transparent !important;
}

body.project {
    & footer {
        width: 100% !important;
        max-width: initial !important;
        background: var(--var-dark);

        .inner,
        .bottom {
            box-sizing: border-box;
            margin-left: auto;
            margin-right: auto;
            max-width: 110rem;
        }
    }
}


main.light.project {
    width: 100%;
    max-width: initial;

    .hero {
        padding: 0 !important;
        margin-top: -90px;

        .inner {
            background-size: cover;
            width: 100%;
            padding-top: 90px;

            &.hermes {
                background-image: url(../work-hermes/hermes-bg.jpg);
            }

            &.gear {
                background-image: url(../work-gear/gear-bg.jpg);
            }

            &.swish {
                background-image: url(../work-swish/swish-bg.jpg);
            }

            &.spotify {
                background-image: url(../work-spotify/spotify-bg.jpg);
            }

            &.keyflow {
                background-image: url(../work-keyflow/keyflow-bg.jpg);
            }

            &.fancy {
                background-image: url(../work-fancy/fancy-bg.jpg);
            }

            &.cdon {
                background-image: url(../work-cdon/cdon-bg.jpg);
            }

            &.walr {
                background-image: url(../work-walr/walr-bg.jpg);
            }

            &.codescene {
                background-image: url(../work-codescene/codescene-bg.jpg);
            }

            .project-container {
                width: 75%;
                box-sizing: border-box;
                margin-left: auto;
                margin-right: auto;
                max-width: 110rem;
                padding-top: 10rem;
                padding-bottom: 10rem;
            }
        }
    }

    .project-detail {
        box-sizing: border-box;
        margin-left: auto;
        margin-right: auto;
        max-width: 110rem;

        .project-label {
            margin-bottom: 1rem;
        }

        &.images {
            padding-top: 0rem;
        }

        .project-text {
            padding-bottom: 6rem;
        }

        .short {
            margin-bottom: 1rem;
            position: sticky;
            top: 3rem;
        }

        & ul {
            margin-bottom: 1rem;
        }

        & li {
            font-size: 1.5rem;
            margin-bottom: 0.75rem;
        }

        .project-label {
            font-size: 1.4rem;
            font-weight: 600;
        }

        .pb-40 {
            padding-bottom: 2.5rem;
        }

        .mb-24 {
            margin-bottom: 24px;
        }

        .project-images {
            margin: 20px 0 0;
        }
    }
}