@font-face {
    font-family: 'SpotifyMix';
    src: url('../fonts/SpotifyMix-Regular.woff2') format('woff2');
    font-weight: normal;
    font-style: normal;
}

@font-face {
    font-family: 'SpotifyMix';
    src: url('../fonts/SpotifyMix-Bold.woff2') format('woff2');
    font-weight: bold;
    font-style: normal;
}

@font-face {
    font-family: 'SpotifyMix';
    src: url('../fonts/SpotifyMix-RegularItalic.woff2') format('woff2');
    font-weight: normal;
    font-style: italic;
}

@font-face {
    font-family: 'SpotifyMix';
    src: url('../fonts/SpotifyMix-BoldItalic.woff2') format('woff2');
    font-weight: bold;
    font-style: italic;
}

@font-face {
    font-family: 'SpotifyMix';
    src: url('../fonts/SpotifyMix-Light.woff2') format('woff2');
    font-weight: 300;
    font-style: normal;
}

@font-face {
    font-family: 'SpotifyMix';
    src: url('../fonts/SpotifyMix-LightItalic.woff2') format('woff2');
    font-weight: 300;
    font-style: italic;
}

@font-face {
    font-family: 'SpotifyMix';
    src: url('../fonts/SpotifyMix-Medium.woff2') format('woff2');
    font-weight: 500;
    font-style: normal;
}

@font-face {
    font-family: 'SpotifyMix';
    src: url('../fonts/SpotifyMix-MediumItalic.woff2') format('woff2');
    font-weight: 500;
    font-style: italic;
}

@font-face {
    font-family: 'SpotifyMix';
    src: url('../fonts/SpotifyMix-Extrabold.woff2') format('woff2');
    font-weight: 800;
    font-style: normal;
}

@font-face {
    font-family: 'SpotifyMix';
    src: url('../fonts/SpotifyMix-ExtraboldItalic.woff2') format('woff2');
    font-weight: 800;
    font-style: italic;
}

@font-face {
    font-family: 'SpotifyMix';
    src: url('../fonts/SpotifyMix-Black.woff2') format('woff2');
    font-weight: 900;
    font-style: normal;
}

@font-face {
    font-family: 'SpotifyMix';
    src: url('../fonts/SpotifyMix-BlackItalic.woff2') format('woff2');
    font-weight: 900;
    font-style: italic;
}

@font-face {
    font-family: 'SpotifyMix';
    src: url('../fonts/SpotifyMix-Ultra.woff2') format('woff2');
    font-weight: 950;
    font-style: normal;
}

@font-face {
    font-family: 'SpotifyMix';
    src: url('../fonts/SpotifyMix-UltraItalic.woff2') format('woff2');
    font-weight: 950;
    font-style: italic;
}

@font-face {
    font-family: 'SpotifyMix';
    src: url('../fonts/SpotifyMix-Thin.woff2') format('woff2');
    font-weight: 200;
    font-style: normal;
}

@font-face {
    font-family: 'SpotifyMix';
    src: url('../fonts/SpotifyMix-ThinItalic.woff2') format('woff2');
    font-weight: 200;
    font-style: italic;
}


*,::before,::after{
	margin: 0;
	padding: 0;
	box-sizing: border-box;
	border: 0;
	font-size: 100%;
	vertical-align: baseline;
}

:root{
	--base-px:10px;
	--dark-blue: #384369;
    --light-blue: #6f8df1;
    --black: #242424;
    --radius: 30px;
}

.row{
	display: grid;
	grid-template-columns: repeat(12, 1fr);
	gap: 20px;
}

.col-1{grid-column: span 1;}
.col-2{grid-column: span 2;}
.col-3{grid-column: span 3;}
.col-4{grid-column: span 4;}
.col-5{grid-column: span 5;}
.col-6{grid-column: span 6;}
.col-7{grid-column: span 7;}
.col-8{grid-column: span 8;}
.col-9{grid-column: span 9;}
.col-10{grid-column: span 10;}
.col-11{grid-column: span 11;}
.col-12{grid-column: span 12;}

html{
	font-size: var(--base-px);
    background-color: var(--black);
    color: white;
    scroll-behavior: smooth;
}

body {
    font-family: 'SpotifyMix', sans-serif;
}

section{
	position: relative;
}

.container {
    -ms-overflow-style: none;
    scrollbar-width: none;
}
.container::-webkit-scrollbar { 
    display: none;
}

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

a:visited{
    color: inherit;
}

img{
    max-width: 100%;
    height: auto;
}

.container {
    width: 90%;
    max-width: 1200px;
    margin: 0 auto;
    padding: 0 15px;
}

/* Header */
header {
    position: sticky;
    top: 0;
    z-index: 1000;
}

nav.scrolled {
    backdrop-filter: blur(30px);
    background-color: rgb(56, 67, 105, 0.4);
}

nav{
    margin-top: 3rem;
    background-color: var(--dark-blue);
    border-radius: var(--radius);
    font-weight: bold;
    font-size: 2rem;
    width: 100%;
    padding: 1rem 2rem;
    transition: backdrop-filter 0.3s ease, background-color 0.3s ease;
}

.nav-list {
    display: flex;
    justify-content: center;
    align-items: center;
    list-style: none;
    gap: 10%;
    border-radius: var(--radius);
    padding: 0;
    margin: 0;
}

.nav-item a {
    text-decoration: none;
    font-weight: bold;
}

.nav-item.logo {
    display: flex;
    align-items: center;
}

.nav-item.logo img {
    height: 4rem;
    width: auto;
    margin-top: 1rem;
}

/* Hero */
.hello {
    font-size: 6rem;
    font-weight: bold;
    white-space: nowrap;
    overflow: hidden;
    border-right: 0.15em solid;
    padding-right: 0.5rem;
    animation: blink-caret 1s step-end infinite;
}

@keyframes blink-caret {
    from, to {
        border-color: transparent;
    }
    50% {
        border-color: white;
    }
}

.hero{
    display: flex;
    justify-content: center;
    align-items: center;
    height: 80rem;
}

.hero-txt .welcome,
.hero-txt .download-cv{
    display: inline-block;
    position: relative;
    font-size: 2rem;
    font-weight: 400;
    margin-bottom: 1rem;
    background-color: white;
    color: var(--light-blue);
    padding: 1rem 2rem 1rem 0.5rem;
    border-radius: var(--radius);
    margin-bottom: 4rem;
}

.hero-txt .welcome img,
.hero-txt .download-cv img{
    height: 24px;
    width: auto;
    vertical-align: -20%;
}

.hero-txt .welcome p span{
    color: white;
    background-color: var(--light-blue);
    padding: 0.5rem 1.75rem;
    border-radius: 40px;
    margin-right: 0.75rem;
}

.hero-txt .welcome-othertxt{
    font-size: 3.5rem;
    font-weight: 300;
    color: white;
}

.hero-txt .welcome-othertxt strong{
    color: var(--light-blue);
    font-weight: 450;
}

.hero-txt .welcome-othertxt p:nth-child(2){
    margin: 3rem 0;
    font-size: 1.75rem;
}

.hero .hero-txt .download-cv p{
    padding: 0.3rem 2.5rem;
    font-weight: 500;
}

.hero .hero-txt .download-cv img{
    margin-left: 1rem; 
}

/* Section À propos de moi */
.logo-citation{
    display: flex;
    text-align: center;
    flex-direction: column;
}

.logo-citation img{
    height: 55%;
    width: auto;
    text-align: center;
    margin-bottom: 4rem;
}

.logo-citation p{
    font-size: 3rem;
    font-weight: 100;
    text-align: center;
}

#about-me .who p{
    font-size: 2rem;
    font-weight: 300;
    margin-bottom: 3rem;
}

#about-me .who p strong{
    font-weight: 500;
}

.title{
    font-size: 3rem;
    font-weight: 500;
    margin-bottom: 2rem;
}

#about-me .container{
    /* border-top: white 3px solid; */
    padding-top: 4rem;
}

#about-me .container,
#services .container,
#skills .container,
#projects .container{
    /* border-bottom: white 3px solid; */
    padding-bottom: 4rem;
}

/* Section des services */
#services,
#skills,
#projects,
#contact{
    margin-top: 5rem;
}

.service-txt{
    display: flex;
    justify-content: space-between;
    align-items: center;
    background-color: white;
    color: black;
    padding: 3rem 5rem;
    border-radius: var(--radius);
}

.service-txt img{
    height: 100%;
    width: auto;
    background-color: rgb(111, 141, 241, 0.36);
    padding: 1rem 7rem;
    border-radius: var(--radius);
}

.service-txt p{
    margin-left: 2rem;
}

.service-txt span{
    font-size: 2.5rem;
    font-weight: 700;
    margin-bottom: 1rem;
}

.service-txt em:not(.lore-desc){
    font-size: 1.8rem;
    font-weight: 300;
}

.lore-desc{
    font-size: 1.5rem;
    font-style: normal;
}

/* Section Skills */

.skill{
    display: flex;
    justify-content: center;
    align-items: center;
    flex-direction: column;
}

.skill-img {
    display: flex;
    justify-content: center;
    align-items: center;
    background-color: white;
    border: var(--light-blue) 1rem solid;
    width: 15rem;
    height: 15rem;
    border-radius: 50%;
    padding: 2rem;
}

.skill-img img{
    height: 80%;
    width: auto;
}

.skill h3{
    font-size: 2rem;
    font-weight: 300;
    margin-top: 1rem;
}

.skill p{
    font-size: 1.3rem;
    font-weight: 200;
}

/* Section Projets */

.project{
    display: flex;
    justify-content: center;
    align-items: center;
    flex-direction: column;
    text-align: center;
}

.project-img{
    background-color: white;
    padding: 8rem 4rem;
    border-radius: var(--radius);
}

.project-img a img{
    height: 15rem;
    width: 15rem;
}

.project-txt{
    width: 65%;
}

.project-txt h3{
    font-size: 1.5rem;
    font-weight: 700;
    margin-top: 1rem;
}

.project-txt h4{
    font-size: 1.3rem;
    font-weight: 400;
    padding-bottom: 2rem;
}

.project-txt p{
    text-align: left;
    font-size: 1.5rem;
    font-style: italic;
    font-weight: 100;
}

/* Section Contact */

.contact{
    font-size: 1.6rem;
    text-align: center;
}

.contact a img{
    height: 4.5rem;
    width: auto;
}

.thanks {
    display: flex;
    justify-content: center;
    align-items: center;
    flex-direction: column;
    font-size: 1.3rem;
    font-weight: 100;
    margin-top: 2rem;
    text-align: center;
    width: 100%;
    padding: 4rem 0;
}

.thanks p{
    width: 50%;
}

@media (max-width: 1200px) {
    .container {
        width: 95%;
    }
    .nav-list {
        gap: 9%;
    }
}

@media (max-width: 992px) {
    .container {
        width: 98%;
    }
    .nav-list {
        gap: 7%;
    }

    .hero-img{
        display: none;
    }

    .hero-txt{
        text-align: center;
    }

    .title{
        text-align: center;
    }

    .col-md-1{grid-column: span 1;}
    .col-md-2{grid-column: span 2;}
    .col-md-3{grid-column: span 3;}
    .col-md-4{grid-column: span 4;}
    .col-md-5{grid-column: span 5;}
    .col-md-6{grid-column: span 6;}
    .col-md-7{grid-column: span 7;}
    .col-md-8{grid-column: span 8;}
    .col-md-9{grid-column: span 9;}
    .col-md-10{grid-column: span 10;}
    .col-md-11{grid-column: span 11;}
    .col-md-12{grid-column: span 12;}

    .hero{
        height: 65rem;
    }
}

@media (max-width: 768px) {
    .container {
        width: 90%;
        padding: 0 2.5rem;
    }
    .nav-list {
        gap: 5%;
    }

    .logo-citation{
        flex-flow: row wrap;
    }

    .logo-citation p{
        font-size: 2rem;
    }

    .logo-citation img{
        height: auto;
        width: 40%;
        padding-bottom: 3.5rem;
        margin: 0 auto;
    }

    .welcome p{
        font-size: 1.5rem;
    }

    .hero-txt .welcome img{
        height: 20px;
        width: 20px;
    }


    .who p{
        text-align: center;
    }

    .service-txt:not(.dev){
        flex-direction: column;
    }

    .service-txt.dev{
        flex-direction: column-reverse;
    }


    .service-txt img{
        margin-bottom: 2rem;
    }
    

    .col-sm-1{grid-column: span 1;}
    .col-sm-2{grid-column: span 2;}
    .col-sm-3{grid-column: span 3;}
    .col-sm-4{grid-column: span 4;}
    .col-sm-5{grid-column: span 5;}
    .col-sm-6{grid-column: span 6;}
    .col-sm-7{grid-column: span 7;}
    .col-sm-8{grid-column: span 8;}
    .col-sm-9{grid-column: span 9;}
    .col-sm-10{grid-column: span 10;}
    .col-sm-11{grid-column: span 11;}
    .col-sm-12{grid-column: span 12;}

    .nav-item{
        font-size: 1.5rem;
    }
}

@media (max-width: 576px) {
    .container {
        width: 90%;
        padding: 0 2rem;
    }
    .nav-list li:not(.logo){
        display: none;
    }
}