@import url('https://fonts.googleapis.com/css2?family=Inter:wght@100;200;300;400;500;600;700;800;900&display=swap');

*{
    margin: 0;
    padding: 0;
}
html, body{
    background-color: #172231;
    color: #DCFFF9;
    /*overflow-x: hidden;*/  /* supprime la barre de scroll horizontal */
    font-size: 1.5vh;
    user-select: none;  /* empèche la sélection du texte par l'utilisateur */
    font-family: 'Inter', sans-serif;
}

/*######## changement de la scrollbar ########*/
/* Firefox */
*{
    scrollbar-width: 5px;
    scrollbar-color: #FFF6C0 #172231;
}

/* Chrome, Edge, et Safari */
*::-webkit-scrollbar{
    width: 5px;
}
*::-webkit-scrollbar-track{
    background: none;
}
*::-webkit-scrollbar-thumb{
    background-color: #FFF6C0;
    border-radius: 20px;
}

h2{
    font-size: 3vw;
}
a{
    color: #DCFFF9;
    font-weight: bold;
}
strong{
    font-size: 1.1em;
}

/*###################### LOADER ########################*/

@keyframes carteLoader{
    10%{
        transform: rotate3d(0,1,0,180deg);
        background-color: #70B7D3;
    }
    50%{
        transform: rotate3d(0,1,0,180deg);
        background-color: #70B7D3;
    }
    60%{
        transform: rotate3d(0,1,0,0deg);
        background-color: #3C6778;
    }
}
@keyframes carteLoaderOut{
    0%{
        transform: translateY(0);
    }
    10%{
        transform: translateY(-10vh);
    }
    25%{
        transform: translateY(-11.5vh);
    }
    100%{
        transform: translateY(150vh);
    }
}
@keyframes barLoader{
    0%{
        width: 40vw;
    }
    100%{
        width: 0vw;
    }
}

#loader{
    width: 105vw;
    height: 120vh;
    position: fixed;
    top: 0vh;
    z-index: 5;
    background-color: #172231;
    display: grid;
    grid-auto-columns: auto;
    grid-template-rows: repeat(10, 10vh);
    justify-content: center;
    align-items: center;

    animation: carteLoaderOut 1.5s 7.3s ease;
    animation-fill-mode: forwards;
}
#loader div:first-of-type{
    width: 40vw;
    height: 1vh;
    border-radius: 1vh;
    background-color: #FFF6C0;
    grid-column: 1 / 4;
    grid-row: 10;

    animation: barLoader 7s linear;
    animation-fill-mode: forwards;
}
#loader .carteLoader{
    background-color: #3C6778;
    margin: 0.5vw;
    width: 12.5vw;
    height: 19vw;
    border-radius: 20px;
    border: solid 5px #FFF6C0;
    background-size: cover;
    filter: drop-shadow(5px 5px 5px black);
}

/*###################### HEADER ########################*/

header{
    position: absolute;
    top: 0;
    left: 0;
    z-index: 2;
}
header nav svg{
    top: -35.2vw;
}
header svg{
    position: absolute;
    top: 0;
    left: 0;
    width: 100vw;
    z-index: -1;
}
#burger_menu{
    position: absolute;
    top: 50%;
    left: 90vw;
    width: 5vw;
    transition: 0.5s;
}
#burger_menu:hover{
    cursor: pointer;
}
header > a{
    position: relative;
    font-size: 5vw;
    top: 3vw;
    left: 5vw;
    color: #FFF6C0;
    text-decoration: none;
}
header > a h1{
    font-size: 5vw;
}

#navContent{
    opacity: 0;
    position: absolute;
    top: 12vw;
    padding: 3vw;
    width: 95vw;
    display: flex;
    flex-wrap: wrap;
}
#navContent ul:nth-of-type(1){
    flex: 1 1 auto;
    margin: 2vw;
}
#navContent ul:nth-of-type(2){
    flex: 1 1 auto;
    margin: 2vw;
}
#navContent ul:nth-of-type(3){
    flex: 1 1 auto;
    margin: 2vw;
}
#navContent ul:nth-of-type(4){
    flex: 1 1 auto;
    margin: 2vw;
}
#navContent ul:nth-of-type(5){
    flex: 1 1 auto;
    margin: 2vw;
}
#navContent ul:nth-of-type(6){
    flex: 1 1 auto;
    margin: 2vw;
}
#navContent ul li{
    list-style-type: none;
    font-size: 1.5vw;
}
#navContent ul a{
    color: #FFF6C0;
    text-decoration: none;
    pointer-events:none;
}
#navContent ul a:hover{
    color: #FFF6C0;
}

/*###################### #contenu_projet ########################*/

/* sommaire */
#sommaire{
    padding: 5vw;
    padding-bottom: 0;
    margin-top: 13vw;
}
#sommaire h2{
    color: #FFF6C0;
}
#sommaire article{
    display: grid;
    grid-template-columns: auto;
    gap: 5vw;
    margin-top: 5vw;
}
#sommaire article a img{
    width: 26vw;
    border-radius: 13.8px;
    filter: drop-shadow(5px 5px 13.8px #FFF6C0);
    transition-property: filter transform;
    transition: 0.5s ease;
}
#sommaire article a img:hover{
    transform: scale(1.1);
    filter: drop-shadow(5px 5px 20px #fbbb7288);
}
#sommaire article a:nth-of-type(1){
    grid-column-start: 1;
    grid-row-start: 1;
}
#sommaire article a:nth-of-type(2){
    grid-column-start: 2;
    grid-row-start: 1;
}
#sommaire article a:nth-of-type(3){
    grid-column-start: 3;
    grid-row-start: 1;
}
#sommaire article a:nth-of-type(4){
    grid-column-start: 1;
    grid-row-start: 2;
}
#sommaire article a:nth-of-type(5){
    grid-column-start: 2;
    grid-row-start: 2;
}
#sommaire article > img{
    grid-column-start: 3;
    grid-row-start: 2;
    width: 30vw;
}

/* design graphique */
main>svg:first-of-type{
    margin-top: -75px;
}
#design_graphique{
    position: relative;
    top: -1vh;
    padding: 0 5vw;
    background-color: #3C6778;
}
#design_graphique h2{
    text-align: right;
    color: #FFF6C0;
}
main>svg:nth-of-type(2){
    margin-top: -1vh;
    transform: scale(-1,-1);
}

/* 3D */
#_3d{
    position: relative;
    top: -1vh;
    padding: 0 5vw;
}
#_3d h2{
    color: #FFF6C0;
}

/* video */
#video{
    position: relative;
    top: -1vh;
    padding: 0 5vw;
    background-color: #3C6778;
}
#video h2{
    text-align: right;
    color: #FFF6C0;
}
main>svg:nth-of-type(4){
    margin-top: -1vh;
    transform: scale(-1,-1);
}

/* photo */
#photo{
    position: relative;
    top: -1vh;
    padding: 0 5vw;
}
#photo h2{
    color: #FFF6C0;
}

/* programmation */
#programmation{
    position: relative;
    top: -1vh;
    padding: 0 5vw;
    background-color: #3C6778;
}
#programmation h2{
    text-align: right;
    color: #FFF6C0;
}
main>svg:nth-of-type(6){
    margin-top: -1vh;
    transform: scale(-1,-1);
}

#contenu_projet{
    padding: 5vw;
    margin-top: 13vw;
    display: grid;
    grid-auto-columns: auto;
    grid-auto-rows: auto;

    justify-content: center;
    align-items: center;
}
#contenu_projet img, #contenu_projet p{
    margin: 1vw;
}
#contenu_projet p:first-of-type{
    grid-column: 1 / 3;
    grid-row: 2;
    margin: 5vh 0;
}
#contenu_projet iframe{
    grid-column: 1 / 3;
    grid-row: 3;
    margin-bottom: 5vh;
}
#contenu_projet h2{
    grid-column: 1 / 3;
    grid-row: 1;
}
#contenu_projet ul li{
    margin-top: 1vh;
    margin-left: 5vw;
}
.img_projet{
    width: 60vw;
    margin: 2vw auto;
    border-radius: 20px;
    border: solid 5px #FFF6C0;
    background-size: cover;
    filter: drop-shadow(5px 5px 5px black);
}
.important_content{
    width: 64vw;
    height: 80vh;
    border-radius: 20px;
    border: solid 5px #FFF6C0;
    filter: drop-shadow(5px 5px 5px black);
    margin-left: auto;
    margin-right: auto;
}

/*###################### FOOTER ########################*/

footer{
    position: relative;
    top: -1vh;
    padding: 0 5vw;
    margin-bottom: 3vw;
}

footer a{
    color: #DCFFF9;
    text-decoration: none;
}
footer a:hover{
    color: #FFF6C0;
    text-decoration: none;
}

footer a:nth-of-type(6){
    position: absolute;
    bottom: 6vw;
    left: 40vw;
    font-size: 2vw;
}
footer a:nth-of-type(7){
    position: absolute;
    bottom: 3vw;
    left: 38vw;
    font-size: 2vw;
}
footer a:nth-of-type(8), footer a img:first-of-type{
    position: absolute;
    width: 4vw;
    bottom: 2vw;
    right: 15vw;
}
footer a:nth-of-type(9), footer a img:last-of-type{
    position: absolute;
    width: 4vw;
    bottom: 2vw;
    right: 10vw;
}

/*###################### CARTES ########################*/

@keyframes carteIn{
    0%{
        transform: rotate3d(0deg);
    }
    100%{
        transform: rotate3d(0,1,0,180deg);
        background: #172231;
    }
}
@keyframes carteOut{
    0%{
        transform: rotate3d(0,1,0,180deg);
        background: #172231;
    }
    100%{
        transform: rotate3d(0deg);
    }
}

.carte_container{
    margin-top: 5vw;
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
}
.carte{
    flex: 0 0 auto;
    margin: 0.5vw;
    width: 25vw;
    height: 38vw;
    border-radius: 20px;
    border: solid 5px #FFF6C0;
    background-size: cover;
    filter: drop-shadow(5px 5px 5px black);
    hyphens: auto;
    word-wrap: break-word;
    overflow: hidden;
}
.carte:hover{
    cursor: pointer;
}
/* Contenu des cartes */
.carte h3, .carte p{
    opacity: 0;
    color: #DCFFF9;
    padding: 5%;
    transform: rotate3d(0,1,0,180deg);
    transition: opacity 0s;
    transition-delay:0.5s;
}
.carte:hover h3, .carte:hover p{
    opacity: 1;
    transform: rotate3d(0,1,0,180deg);
}
.carte h3{
    text-align: center;
}

/*###################### MEDIA QUERIES ########################*/

@media all and (orientation: landscape) {
    html, body{
        font-size: 1.5vw;
    }
    header svg{
        top: -4vw;
    }
    header nav svg{
        top: -39.2vw;
    }
    header h1{
        font-size: 4vw;
        top: 2vw;
    }
    #navContent{
        top: 10vw;
    }


    #sommaire{
        padding: 10vw 18vw;
        padding-bottom: 0;
        margin-top: 5vw;
    }
    #sommaire article a img{
        width: 17vw;
    }
    #design_graphique{
        padding: 0 18vw;
    }
    #_3d{
        padding: 0 18vw;
    }
    #video{
        padding: 0 18vw;
    }
    #photo{
        padding: 0 18vw;
    }
    #programmation{
        padding: 0 18vw;
    }


    #contenu_projet{
        padding: 10vw 18vw;
        margin-top: 5vw;
    }
    .img_projet{
        width: 30vw;
    }


    .carte_container{
        margin-top: 1vw;
        gap: 1vw;
    }
    .carte{
        width: 17vw;
        height: 27vw;
    }
    .carte h3, .carte p{
        padding: 5%;
    }
    .carte h3{
        font-size: 2vw;
    }
    .carte p{
        font-size: 1.5vw;
    }
}

@media screen and (device-width <= 480px) {
    #navContent ul h2{
        list-style-type: none;
        font-size: 3.5vw;
    }
    #navContent ul li{
        list-style-type: none;
        font-size: 3vw;
    }
    .img_projet, .important_content{
        width: 80vw;
    }
    #contenu_projet h2{
    grid-column: 1;
    grid-row: 1;
    }
    #contenu_projet p:first-of-type{
        grid-column: 1;
        grid-row: 2;
    }
    #contenu_projet iframe{
        grid-column: 1;
        grid-row: 3;
    } 


    .carte{
        width: 62.5vw;
        height: 95vw;
    }
    .carte h3{
        opacity: 1;
        transform: none;
        text-shadow: 0 0 20px black;
        padding: 0%;
        margin-top: 2vh;
        font-size: 7vw;
    }
    .carte:hover h3{
        display: none;
    }
    .carte p{
        font-size: 3vh;
    }


    footer a:nth-of-type(6){
        font-size: 4vw;
        bottom: 6vh;
        margin-bottom: 2vh;
    }
    footer a:nth-of-type(7){
        font-size: 4vw;
        bottom: 5vh;
    }
    footer a:nth-of-type(8), footer a img:first-of-type{
        width: 7vw;
        right: 12vw;
    }
    footer a:nth-of-type(9), footer a img:last-of-type{
        width: 7vw;
        right: 4vw;
    }
}