:root {
  /* Grey */
  &, & .light-mode{
    --color-white: #fff;
    --color-grey-0: #fff;
    --color-grey-50: #f9fafb;
    --color-grey-100: #f3f4f6;
    --color-grey-200: #e5e7eb;
    --color-grey-300: #d1d5db;
    --color-grey-400: #9ca3af;
    --color-grey-500: #6b7280;
    --color-grey-600: #4b5563;
    --color-grey-700: #374151;
    --color-grey-800: #1f2937;
    --color-grey-900: #0A192F;
    
    --color-blue-100: #e0f2fe;
    --color-blue-200: #FFFFFF;
    --color-blue-300: #334E68;    
    --color-blue-400: #dfe4e7;
    --color-blue-500: #dfe4e7;
    --color-blue-600: #FFFFFF;    
    --color-blue-700: #0369a1;
    

    --backdrop-color: rgba(255, 255, 255, 0.1);
    
    --shadow-sm: 0 1px 2px rgba(0, 0, 0, 0.2);
    --shadow-mm: 0px 5px 5px rgb(224, 242, 254);
    --shadow-md: 0px 0.6rem 2.4rem rgba(0, 0, 0, 0.062);
    --shadow-lg: 0px 5px 5px rgba(0, 0, 0, 0.12);
    
    --image-grayscale: 0;
    --image-opacity: 100%;

    ---background-clr: #f2f2f5;
    --text-color: #4A5568;
    --accent-color-100: #334E68;
    --accent-color-200: #778897;
  }
    
  &.dark-mode{
    --color-white: #fff;
    --color-grey-0: #000000;
    --color-grey-50: #111827;
    --color-grey-100: #1f2937;
    --color-grey-200: #374151;
    --color-grey-300: #091527;
    --color-grey-400: #6b7280;
    --color-grey-500: #9ca3af;
    --color-grey-600: #d1d5db;
    --color-grey-700: #e5e7eb;
    --color-grey-800: #f3f4f6;
    --color-grey-900: #f9fafb;

    --color-blue-100: #0386cc;
    --color-blue-200: #00090f;
    --color-blue-300: #001322;
    --color-blue-400: #00090f;
    --color-blue-500: #001322;
    --color-blue-600: #00090f;
    --color-blue-700: #e0f2fe;

    --backdrop-color: rgba(0, 0, 0, 0.3);


    --shadow-sm: 0 1px 1px rgba(255, 255, 255, 0.2);
    --shadow-mm: 0px 5px 5px rgba(3, 134, 204, 0.842);
    --shadow-md: 0px 0.6rem 2.4rem rgba(0, 0, 0, 0.3);
    --shadow-lg: 0 2.4rem 3.2rem rgba(0, 0, 0, 0.4);

    --image-grayscale: 10%;
    --image-opacity: 90%;

    ---background-clr: rgba(0, 0, 0);
    --text-color: rgb(209, 207, 207);
    --accent-color-100: rgb(236, 108, 3);
    --accent-color-200: rgb(206, 108, 43);
  }
  --ff-accent: 'Barlow Semi Condensed' sans-serif;
}

*,*::before,*::after{
    box-sizing: border-box;
}

*{
    margin: 0;
}

html{
    scroll-behavior: smooth;
}

body {
    line-height: 1.7;
    -webkit-font-smoothing: antialiased;
    background-color: var(---background-clr);
    color: var(--text-color);
    font-size: 12px;
    font-family: monospace;
    transition: all .3s ease-in ;
}

img, picture, video, canvas, svg {
    display: block;
    max-width: 100%;
}

input, button, textarea, select {
    font: inherit;
}

p, h1, h2, h3, h4, h5, h6{
    overflow-wrap: break-word;
}

h1, h2, h3{
    line-height: 1;
}


/* utilities */
.title{
    text-transform: uppercase;
    letter-spacing: 2px;
    font-size: .65rem;
    color: var(--color-grey-500);
}


/* nav */
.navContainer{
    margin: 1rem;
    
}

nav{
    display: flex;
    gap: 1rem;
    justify-content: space-between; 
    border: 1px solid var(--color-grey-300);
    padding: .5rem 1rem;
    border-radius: 25px;
    background-color: var(--color-blue-200);

    & .logo{
        font-weight: bold;
    }
}

.navUl{
    /* list-style-type: none; */
    display: flex;
    gap: 1rem;
    
    li{
        list-style-type: none;
        cursor: pointer;
        position: relative;

        & a{
        color: var(--text-color);
        text-decoration: none;
        }

        & a:hover{
            color: var(--color-grey-900);
            /* font-weight: 600; */
        }
        
        & a::after{
            content: "";
            position: absolute;
            height: 1px;
            width: 0;
            left: 0;
            bottom: 0;
            background-color: var(--accent-color-100);
            transition: .3s ease;
        }

        & a:hover::after{
            width: 70%;
        }
    }
}

.theme{
    display: flex;
    align-items: center;
    gap: .25rem;

    & svg{
        width: 20px;
        /* background-color: var(--accent-color-100); */
        stroke: var(--text-color) ;
    }
    
    & .active{
        stroke: var(--accent-color-100);

    }
}

@media (min-width: 720px){
    .navContainer{
        max-width: 650px;
        margin: 1rem auto;
    }

    nav{
       & .navUl{
            gap: 2rem;
       }
    }
}


/* intro */
.intro{
    margin-top: 3rem;
    display: flex;
    gap: .75rem;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    text-align: center;
    padding: 1rem;
    opacity: 0;
    transform: translateY(20px);
    animation: fadeSlideIn 1s ease-out forwards;

    & .job{
        text-transform: uppercase;
        border: 1px solid var(--color-grey-300);
        border-radius: 40px;
        padding: .25rem .75rem;
    }

    & h1{
        color: var(--color-grey-900);
        font-size: 3rem;
        text-transform: uppercase;        
        overflow: hidden;
        white-space: nowrap;
        border-right: .15em solid var(--accent-color-200);
        width: 0;
        animation: typewriter 4s steps(10, end) forwards,
        blink-cursor .75s step-end infinite;
    }

    & button{
        background-color: var(--accent-color-100);
        border: none;
        padding: .25rem 1rem;
        border-radius: 25px;
        color: var(--color-white);
        cursor: pointer;

    }
    button:hover{
        transform: translateY(-2px);
        transition: all .5s ease-in-out;
     }
}

@media (min-width: 720px){
    .intro{
        & h1{
            font-size: 5rem;
        }
    }
}

@keyframes typewriter{
    from {
        width: 0;
    }
    to {
        width: 100%;
    }
}

@keyframes blink-cursor{
    from, to{
        border-color: transparent;
    }
    50% {
        border-color: var(--accent-color-100);
    }
}

@keyframes fadeSlideIn{
    0%{
        opacity: 0;
        transform: translateY(20px);
    }
    100%{
        opacity: 1;
        transform: translateY(0);
    }
}


/* stacks */
.stacksContainer{
    margin-top: 5rem;
    padding: 3rem;
    background-color: var(--color-blue-200);

    & h2{
        color: var(--color-grey-900);        
    }

    & .scrollerContainer{
        width: 100%;
        overflow: hidden;

        & .scroller{
            max-width: 100%;
            display: flex;
            overflow-x: hidden;
            gap: 3rem;
            
    
            & .stacks{
                padding-block: 1rem; /*this is padding for top and bottom*/
                display: flex;
                align-items: center;
                flex-wrap: wrap;
                flex-shrink: 0;
                gap: 5rem;
        
                & div{
                    margin-top: 1rem;
                    display: flex;
                    flex-direction: column;
                    align-items: center;
                    /* border: 1px solid var(--color-grey-300); */
                    padding: .5rem 2rem;
                    border-radius: 10px;
                    box-shadow: var(--shadow-md);                    
                    & svg{
                        width: 80px;
                        /* fill: var(--accent-color-200); */
                    }
                }
            }
    
            & .scroller[data-animated = "true"]{
                overflow: hidden;
                -webkit-mask: linear-gradient(90deg, transparent, white 20%, white 80%, transparent);
                mask: linear-gradient(90deg, transparent, white 20%, white 80%, transparent);
            }
    
            & .scroller[data-animated = "true"], .scroller_inner{
                width: max-content;
                flex-wrap: nowrap;
                animation: scroll 
                var(--_animation-duration, 25s)
                var(--_animation-direction, forwards)
                linear 
                infinite;
            }

            &.scroller:hover{
                animation-play-state: paused;
            }
        }
    }


}

@keyframes scroll{
    0%{
        transform: translateX(0%);
    }
    100%{
        transform: translateX(-100%);
    }
}

@media (min-width: 720px){
    .stacksContainer{
        & .scrollerContainer{
            & .scroller{
                & .stacks {
                    & div {
                        & svg{
                            width: 100px;
                        }
                    }
                }
            }
        }
    }
}


.projectsContainer{
    padding: 1rem;
    background-color: var(--color-blue-500);
    display: grid;
    place-items: center;
    gap: .5rem;

    & h2{
        color: var(--color-grey-900);        
    }

    & .projects{
        margin-top: 2rem;
        display: flex;
        flex-direction: column;
        gap: 2rem;

       & .project{
        display: flex;
        flex-direction: column;
        gap: 1.5rem;
        background-color: var(--color-blue-600);
        padding: 1.5rem;
        border-radius: 15px;
        box-shadow: var(--shadow-md);

        & .projectImage{
            flex: 1;
            border-radius: 7px;
            overflow: hidden;
            height: 200px;
            /* border: 1px solid; */

            & img{
                width: 100%;
            }
        }

        & .projectDetails{
            flex:1;
            display: flex;
            flex-direction: column;
            gap: .75rem;

            & h3{
                color: var(--color-grey-900);
                font-size: 1.1rem;
            }

            & .projectTools{
                display: flex;
                gap: 1rem;

                & span{
                    text-transform: uppercase;
                    font-size: .65rem;
                    background-color: var(--color-blue-300);
                    padding: 0 .5rem;
                    border-radius: 20px;
                    color: var(--color-blue-100);
                }
            }

            & .projectLinks{
                display: flex;
                gap: 1rem;

                & a{
                    text-decoration: none;
                    color: var(--text-color);
                }

                & div{
                    display: flex;
                    gap: .5rem;
                    align-items: center;
                    padding: .25rem 1rem;
                    cursor: pointer;
                }

                & .githubLink{
                    /* border: 1px solid var(--color-grey-900); */
                    color: var(--color-grey-900);
                    border-radius: 20px;
                    box-shadow: var(--shadow-mm);
                    padding: 5px 10px;

                    & svg{
                        width: 20px;
                    }
                }

                & .githubLink:hover{
                    transform: translateY(-2px);
                    transition: all .5s ease-in-out;
                }
            }
        }

       }
    }
}


@media (min-width: 720px){
    .projectsContainer{
       & .projects{
            & .project{
            flex-direction: row;
            align-items: center;

            & .projectImage{
                flex: 2;
                height: 250px;
            }

            & .projectDetails{
                flex: 4;
            }
        }
       }
    }
}


.aboutContainer{
    padding: 3rem;
    display: flex; 
    flex-direction: column;
    gap: 1rem;
    background-color: var(--color-blue-200);

    & .aboutMe{
        display: flex;
        flex-direction: column-reverse;
        gap: .75rem;
        

        & .aboutMe_Info{
            flex: 1;
            display: flex;
            flex-direction: column;
            gap: .5rem;

            & span{
                font-size: 2rem;
                color: var(--color-grey-900);
            }
        }

        & .aboutMe_Image{
            width: 250px;
            height: 250px;
            margin: auto;
            border-radius: 50%;
            overflow: hidden;
            box-shadow: var(--shadow-lg);

            & img{
                width: 100%;
            }
        }
    }

    & .socials{
        display: flex;
        justify-content: space-between;
        gap: .5rem;

        & div{
            flex: 1;
            display: flex;
            justify-content: center;
            align-items: center;
            gap: 5px;
            background-color: var(--color-blue-200);
            padding: .5rem;
            /* border: 1px solid var(--color-grey-400); */
            border-radius: 5px;
            box-shadow: var(--shadow-sm);

            & a{
                text-decoration: none;
                color: var(--text-color);
            }

            & svg{
                width: 20px;
            }
        }
    }
}

@media (min-width: 720px){
    .aboutContainer{
        & .aboutMe{
            flex-direction: row;            
        }
    }
}


.experienceContainer{
    background-color: var(--color-blue-500);
    padding: 2rem;

    & h2{
        color: var(--color-grey-900);
        margin-top: .5rem;
    }

    & .experiences{
        display: grid;
        gap: .5rem;
        

        & .experience{
            margin-top: 1rem;
            display: flex;
            gap: 1rem;
            /* border: 1px solid var(--color-grey-400); */
            padding: 1rem;
            border-radius: 15px;
            /* box-shadow: var(--shadow-lg); */
            background-color: var(--color-blue-600);

            & .experience_image{
                flex: 1;
                display: flex;
                flex-direction: column;
                justify-content: center;
                align-items: center;
                overflow: hidden;
                width: 50px;
                height: 50px;
                /* border: 1px solid; */
                border-radius: 50%;

                & img{
                    width: 100%;
                }
            }

            & .experience_details{
                flex: 5;
                display: flex;
                flex-direction: column;
                gap: .25rem;
                & h3{
                    color: var(--color-grey-900);
                    text-transform: uppercase;
                }
            }
        }
    }    
}

@media (min-width: 720px){
    .experienceContainer{
        padding: 3rem;
        & .experiences{
            grid-template-columns: repeat(2, 1fr);
            gap: 1rem;

            & .experience{
                & .experience_image{
                    width: 30px;
                    height: 30px;
                }
            }
        }
    }
}



.contactContainer{
    display: flex;
    flex-direction: column;
    gap: 2rem;
    background-color: var(--color-blue-200);
    padding: 3rem;

    & .contactUs{
        flex: 1;
        display: grid;
        gap: .5rem;

        & h3{
            font-size: 1.2rem;
            color: var(--color-grey-900);
        }

        & a{
            text-decoration: none;
        }

        & div{
            display: flex;
            gap: 5px;
            border: 1px solid var(--color-grey-400);
            border-radius: 5px;
            padding: .5rem 1rem;
            justify-content: center;
            align-items: center;
            color: var(--color-grey-900);
        }
    }


    & form{
        flex: 1;
        display: flex;
        flex-direction: column;
        gap: .5rem;

        & label{
            display: flex;
            flex-direction: column;

            & input, textarea{
                border: none;
                outline: none;
                padding: .5rem;
                border-radius: 5px;
                background-color: var(--color-grey-300);
                color: var(--color-grey-900);

                ::placeholder{
                    color: var(--text-color);
                }
            }
        }

        & button{
            background: transparent;
            border: 1px solid var(--color-grey-900);
            color: var(--color-grey-900);
            width: fit-content;
            padding: .25rem 1rem;
            border-radius: 25px;
            cursor: pointer;
        }
    }
}

@media (min-width: 720px){
    .contactContainer{
        flex-direction: row;
    }
}



footer{
    text-align: center;
}











