@import url("https://cdnjs.cloudflare.com/ajax/libs/meyer-reset/2.0/reset.min.css");
* {
    -webkit-font-smoothing: antialiased;
    box-sizing: border-box;
   scroll-behavior: smooth;
}

@font-face {
    font-family: "Nohemi";
    src: url(fonts/Nohemi/OpenType-PS/Nohemi-ExtraBold.otf);
}

@font-face {
    font-family: "Nohemi2";
    src: url(fonts/Nohemi/OpenType-PS/Nohemi-Medium.otf);
}

html{
    cursor: none;
}

body {
    font-family: "Nohemi2", sans-serif;
    margin: 0;
    padding: 0;
    cursor: none;
    overflow-x: hidden;
    position: relative;
    background-color: white;
}

*{
    margin: 0;
    padding: 0;
    box-sizing: border-box;
    cursor: none;
}



.loader {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background-color: white;
    display: flex;
    justify-content: center;
    align-items: center;
    z-index: 1000;
    flex-direction: column;
    gap: 2vw;
}
.loader img {
    width: 10%;
    animation: flip-rotate 4s linear infinite;
}

/* Définition de l'animation */
@keyframes spin {
    0% {
        transform: rotate(0deg); /* Départ à 0 degré */
    }
    100% {
        transform: rotate(360deg); /* Fin à 360 degrés (un tour complet) */
    }
}



main,footer,header{
    display: none;
    animation: spawn 3s ease-in-out;

}


.loader-container {
    width: 10%;
    background-color: #e0e0e0;
    border-radius: 25px;
    box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1);
    overflow: hidden;
}

/* La barre de progression */
.progress-bar {
    height: 15px;
    width: 0;
    background: linear-gradient(to right, #26d796, #f1c40f, #d72638, #00aaff, #26d796); /* Gradient avec 5 couleurs */
    animation: loading 3s linear infinite; /* Animation de la barre de chargement */
}
@keyframes loading {
    0% {
        width: 0;
    }
    50% {
        width: 50%;
    }
    100% {
        width: 100%;
    }
}



#btn-burger{
    display: none;
    
}

header nav{
    margin-top: 1%;
    display: flex;
    justify-content: space-between;
    align-items: center;
}

header nav .small-logo{
   width: 5%;
    margin-left: 1%;
}

header nav .small-logo img{
    width: 100%;
   
}

header nav .nav{
margin-right: 7%;
}
header nav ul{
    display: flex;
    list-style: none;
    gap: 4vw;

}

header nav ul li {
    font-size: 1.1rem;
}

header nav ul li a{
    text-decoration: none;
    color: black;
    transition: 0.3s;
    font-size: 1.3vw;
}


header ul li:nth-last-of-type(1) a:hover{
    color: #00aaff;
    transform: scale(1.1);
   
}
header ul li:nth-last-of-type(2) a:hover{
    color: #2ECC71;
    transform: scale(1.1);
}
header ul li:nth-last-of-type(3) a:hover{
    color: #D72638;
    transform: scale(1.1);
}
header ul li:nth-last-of-type(4) a:hover{
    color: #F1C40F;
    transform: scale(1.1);
}



.table {
    display: table;
    width: 100vw;
    height: 55vw;
}


.table-cell {
    display: table-cell;
    vertical-align: middle;
    text-align: center;
}


.centrer {
   
   
    display: flex;
    text-align: start;
    padding: 20px;
  
    margin: 0 auto;  
   justify-content: center;
    align-items: center;
    gap: 12vw;

}

.centrer .big-logo{
    width: 20vw;
}

#aa{
    width: 100%;
}



.animate {
    animation: flip-rotate 4s ease-in-out infinite;
  }

.centrer .left-presentation{
  font-size: 1.2vw;
  color: rgb(79, 79, 79);
}
.centrer .left-presentation span{
    font-family: "Nohemi";
    font-size: 4vw;
    color: black;
}

.me{
    height: 25vw;
    width: 100%;
    background:rgb(19, 17, 17);
    color:#F5F5F5;
    display: table;


   
}

.me .table-cell .container{
    display: flex;
    text-align: start;
    padding: 20px;
    opacity: 0;
   justify-content: center;
    align-items: center;
    gap: 9vw;

  animation: slide2 2s ease-in-out forwards
}

@keyframes slide2 {
    0% {
       
        opacity: 0;
    }
    100% {
       
        opacity: 1;
    }
}


#pme{
    display: none;
}

.me .photo-left{
    width: 15vw;
}
.me .photo-left img{
    width: 100%;
  
    border: 2px solid black;
    box-shadow: 0px 10px 15px -3px rgba(0,0,0,0.1);
}

.me .table-cell{
    min-height: 30vw;
}
.me .table-cell .container .text-right{
    height: 25vw;
    display: flex;
    flex-direction: column;
    justify-content: center;
    gap: 3vw;
    align-items: start;
    color: #F5F5F5;
    width: 30%;
}

.title{
    font-size: 1.7vw;
    font-family: "Nohemi";
}

.me .table-cell .container .text-right a, .bouton{
    width: min-content;
    white-space: nowrap;
  
}

a{
    text-decoration: none;
    color: black;
    display: inline-block;
}

.me .table-cell .container .text-right p {
    font-size: 1.1vw;
    line-height: 1.2;
  
   
}


.parcours{
    margin-top: 4vw;
    width: 100%;
    gap: 5vw;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;

}



h2{
    font-family: "Nohemi";
    font-size: 2vw;
    color: black;
    text-align: center;
    position: relative;
    text-transform: uppercase;
}

.parcours .table{
    display: table;
    width: 100%;
    height: 30vw;
}

.parcours .table-cell{
    width: 100%;
    height: 30vw;
}

.parcours .table .table-cell .container{
    display: flex;
  flex-direction: column;
    padding: 20px;
   position: relative;
   justify-content: center;
    align-items: center;
    gap: 10vw;
   
}

.parcours .table .table-cell .container .frise{
   
    width: 100%;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 20vw;
}

.two , .three, .four, .five{
   visibility: hidden;

}




.frise i , .frise img{
    width: 5vw;
    height: 5vw;
    font-size: 2.5vw;
    border-radius: 100%;;
    padding: 0.3vw;
    border: 4px solid black;
    display: flex;
    align-items: center;
    justify-content: center;
   
    
}


#path6, #path7, #path8, #path9{
    display: block;
}
path{
    display: none;
    stroke:   black;
  

   
}
.responsive-sv{
    position: absolute;
    height: auto;
    width: 100%;
}
.responsive-svg {
    position: absolute;
    width: 70%;  
   
    height: auto;
}

.animated-path {
   
    transform: translate(25,0);
    stroke-dasharray: 500;  
    stroke-dashoffset: 500;  
    animation: draw 3s linear forwards;
}




@keyframes draw {
    from {
        stroke-dashoffset: 500;
    }
    to {
        stroke-dashoffset: 0;
    }
}

@media (max-width: 600px) {
    .animated-path {
        stroke-width: 2;
    }
}


.competences{
    margin-top: 10vw;
    height: 20vw;
    width: 100%;
}


.skill-container{
    padding: 8vw;
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 5vw;
}

.skill-container ul {
    display: flex;
    gap:2vw;
}

.skill-container ul li ,.skill-container ul a {
    display: flex;
    align-items: center;
    justify-content: center;
    flex-direction: column;
    transition: 0.3s;

}



.skill-container ul li:nth-of-type(1) p{
    color: #26d796;
}
.skill-container ul li:nth-of-type(2) p{
    color: #f1c40f;
}
.skill-container ul li:nth-of-type(3) p{
    color: #d72638;
}
.skill-container ul li:nth-of-type(4) p{
    color: #00aaff;
}
.skill-container ul li:nth-of-type(5) p{
    color: #d426d7;
}
.skill-container ul li:nth-of-type(6) p{
    color: #f1c40f;
}
.skill-container ul li:nth-of-type(7) p{
    color: #26d796;
}




#bvn, #z, #e, #r, #t{
    transition: 0.15s;
}
#z:hover, #e:hover, #r:hover, #t:hover, #bvn:hover{
    transform: translateY(-10px);
    
}

#z:hover {
    color: #00aaff;
}
#e:hover{
    color: #2ECC71;

}
#r:hover{
    color: #D72638;
}
#t:hover{
    color: #F1C40F;
}
#bvn:hover{
    background: linear-gradient(to right, #26d796, #f1c40f, #d72638, #00aaff, #26d796); /* Gradient avec 5 couleurs */
    -webkit-background-clip: text;  /* Nécessaire pour que le fond soit appliqué au texte */
    background-clip: text; /* Standard pour les navigateurs modernes */
    color: transparent; /* Rend le texte transparent pour que seul le dégradé soit visible */
}


.skill-container ul li img {
    width: 10vw;
  
}
.skill-container ul a img{
    width: 8vw;
}

.skill-container ul li:hover ,.skill-container ul a:hover {
    transform:translateY(-20px);
}

.skill-container ul li p {
    font-weight: 600;
    font-size: 2vw;
    font-family: "Nohemi";
    visibility: hidden;
   
}



s{
    margin-top: 10vw;
   
   display: flex;
    flex-direction: column;
   
    align-items: center;
}


.projets .slider{
  
  width: 100%;
   display: flex;
   align-items: center;
   transition: transform 0.5s ease-in-out;
   flex: 0 0 100%;
  
 

}

.projets .main-container{
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 2vw;
   
}

.projets .container-slider .content{
    display: flex;
   width: 100%;
    transition: transform 0.5s ease-in-out;
    flex-shrink: 0; 
    gap: 5vw;
  
}

.container2{
    display: flex;
    justify-content: center;
    align-items: center;
   
}

.container2 .center{
    width: 9vw;
    height: 9vw;
    border-radius: 100%;
    background: rgb(0, 0, 0);
    display: flex;
    justify-content: center;
    align-items: center;   
    font-family: "Nohemi"; 
    transition: 0.3s;
   animation: pulse 2s infinite;
    font-size: 1.2vw;
    box-shadow: 0 4px 8px rgba(0, 0, 0, 0.1), 
                0 1px 3px rgba(0, 0, 0, 0.2);
    color: #fff;
    border : 2px solid white;
  
   
  
}
.center:hover{
    background: #BA55D3;
   
    color: #000;
    
}
@keyframes pulse {
    0% {
        transform: scale(1);
    }
    50% {
        transform: scale(1.1);
    }
    100% {
        transform: scale(1);
    }
}

.container2 .center:hover{
    transform: scale(1.1);
   
}
.projets .container-slider{
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 2vw;
    position: relative;
    width: 70%;
    overflow: hidden;
    box-shadow: 0px 10px 15px -3px rgba(0,0,0,0.1);
  
    
   
    
}

.projets  i {
    font-size: 5vw;
    transition: 0.3s;
}

.projets  i:hover{
  
    transform: scale(1.1);
    animation-duration: 2s;
}

.projets .slider .img{
    flex: 50%;
    padding: 2vw;

}

.projets .slider .img img{
    width: 100%;

}

.projets .slider{
    padding: 2vw;
}

.projets .slider .presentation{
    flex: 50%;
    display: flex;
    flex-direction: column;
    gap: 3vw;

}

.projets .slider .presentation p {
    font-size: 1.1vw;
    color: rgba(0, 0, 0, 0.669);
    text-align: justify ;
    padding-right: 3vw;
   

}

@keyframes slide {
    0% { transform: translateX(0%); }
    100% { transform: translateX(-30%); }
   
}
.animated {
    animation: slide 0.3s linear;
}

h2::after {
    content: "";
    position: absolute;
    left: 50%;
    bottom: -10px; /* Ajuste la distance sous le texte */
    transform: translateX(-50%);
    width: 60px; /* Largeur du trait */
    height: 4px; /* Épaisseur du trait */
    background-color: black; /* Couleur du trait */
    border-radius: 2px; /* Arrondi des bords */
}

@keyframes jump {
    0% {
        transform: translateY(0);
    }
   
    50% {
        transform: translateY(-15px);
    }
    100% {
        transform: translateY(0);
    }
}

 .jump-animation {
            animation: jump 0.6s ease-in-out infinite;
        }



.contact{
    margin-top: 7vw;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 5vw;
   margin-bottom: 7vw;


}


.contact .skill-container{
    padding: 0;
    gap: 5vw;
}

button:active , .fill4:active{
   transform: scale(0.9);;
}

button , .fill4 , .slider a ,.fill3{
    background: none;
    border: 2px solid;
    font: inherit;
    line-height: 1;
    padding: 1vw 2vw;
    font-size: 1.2vw;
  }

  
strong{
  
    color: black;
    font-family: "Nohemi";
}
span{
    font-size: 1.3vw;
}

a:checked{
    background-color: #2ECC71;}
   

  .fill:hover {
    box-shadow: inset 0 0 0 2em  #00aaff;
  }

  .fill {  
    color: black;
    transition: 0.3s;   

  
   
    &:hover { 
      background-color:  #00aaff;
      color: #fff;
      border-color:  #00aaff;
    }
  }

  .fill2:hover {
    box-shadow: inset 0 0 0 2em  #D72638;
  }

  .fill2 {  
    color: black;
    transition: 0.3s;   
   
    &:hover { 
      background-color:  #D72638;
      color: #fff;
      border-color:  #D72638;
    }
  }

  .center:hover {
    box-shadow: inset 0 0 0 2em  #BA55D3;
  }

  .center {  
    color: black;
    transition: 0.3s;   
   
    &:hover { 
        background-color:  #BA55D3;;
        color: #fff;
      border:   #BA55D3;;
    }
  }


  .fill3:hover {
    box-shadow: inset 0 0 0 2em  #F1C40F;
  }

  .fill3 {  
    color: black;
    transition: 0.3s;   
   
    &:hover { 
      background-color: #F1C40F;
      color: #fff;
      border-color: #F1C40F;
    }
  }
  .fill4:hover {
    box-shadow: inset 0 0 0 2em  #2ECC71;
  }

  .fill4 {  
    color: white;
    transition: 0.3s;   
   
    &:hover { 
    background-color: #2ECC71;
      color: white;
      border-color:  #2ECC71;
    }
  }

  .fill5:hover {
    box-shadow: inset 0 0 0 2em  #2ECC71;
  }

  .fill5 {  
    color: black;
    transition: 0.3s;   
   
    &:hover { 
    background-color: #2ECC71;
      color: white;
      border-color:  #2ECC71;
    }
  }



  .cursor {
    position: absolute;
    border-radius: 50%;
    pointer-events: none;
  }


  .small {
    width: 12px;
    border : 2px solid black;
    height: 12px;
    transition: 0.1s ease-out;
    transform: translate(-50%, -50%);
    z-index: 1007;
    background-color: white;
    mix-blend-mode: difference;
}

.medium {
    width: 50px;
    border : 2px solid black;
    height: 50px;
    transition: 0.2s ease-out;
    transform: translate(-50%, -50%);
    z-index: 1006;
    background-color: white;
    mix-blend-mode: difference;
}


#tr{
    background-color: #d426d7;
    height: 50px;
    width: 50px;
    border-radius: 200px;
    position: absolute;
    z-index: 50000;
    transition: 0.2s;
    transform: translate(-50%,-50%);
}


  

  .burger{
    display: none;
    position: fixed;
    width: 100%;
    height: 100%;
    z-index: 100;
    background-color: rgba(0, 0, 0, 0.865);
   
  }


  footer{
   
   background-color: rgb(32, 32, 32);
   color: white;
    display: flex !important;
    align-items: center;
   padding: 5vh 0 10vh;
    gap: 2vw;
    flex-direction: column;
  }

  .content1{
  
    
    font-size: 1.5vw;
  }

  



  
  @keyframes fall {
    0% {
        transform: translateX(100%) translateY(-50px); /* Commence du côté droit, un peu au-dessus */
        opacity: 0; /* Commence invisible */
    }
    100% {
        transform: translateX(0) translateY(0); /* Terminer à sa position finale */
        opacity: 1; /* Devient visible */
    }
}

  @keyframes flip-rotate {
    0% {
      transform: rotateY(0deg) rotateX(0deg);
    }
    25% {
      transform: rotateY(180deg); /* Flip horizontal */
    }
    50% {
      transform: rotateY(180deg) rotateX(180deg); /* Flip vertical */
    }
    75% {
      transform: rotateY(360deg) rotateX(180deg); /* Deuxième flip horizontal */
    }
    100% {
      transform: rotateY(360deg) rotateX(360deg); /* Retour à la position initiale */
    }
  }
  
  @keyframes gradientMove {
    0% {
      background-position: 0% 0%;
    }
    25% {
      background-position: 100% 0%;
    }
    50% {
      background-position: 100% 100%;
    }
    75% {
      background-position: 0% 100%;
    }
    100% {
      background-position: 0% 0%;
    }}

    @keyframes shake {
        0% {
          transform: translateX(0);
        }
        25% {
          transform: translateX(-10px);
        }
        50% {
          transform: translateX(10px);
        }
        75% {
          transform: translateX(-10px);
        }
        100% {
          transform: translateX(10px);
        }
      }
     


        @keyframes spawn {
            0% {
                opacity: 0;
            }
           
            100% {
                opacity: 1;
            }
        }
    
      

@media (max-width: 600px) {

    #btn-burger{
        display: block;
        position: fixed;
        top: 2%;
        right: 3%;
        font-size: 2rem;
        cursor: pointer;
        z-index: 150;
    }

    .burger{
        display: none;
        justify-content: center;
        align-items: center;
        transition: 0.3s;
    
    }
    
    .loader img {
        width: 40%;
    }

    .loader .loader-container {
        width: 50%;
        height: 20px;
    }
    .loader .progress-bar {
        height: 20px;
    }

    .content1{
  
    
        font-size: 4vw;
      }
    
      .contact{
        padding: 10vw;

      }
    .burger .container-burger ul{
        display: flex;
        flex-direction: column;
        gap: 5vw;
        justify-content: center;
        align-items: center;
    }
    .burger .container-burger li a{
        font-size: 2rem;
        text-transform: uppercase;
        font-family: "Nohemi";
    }

    .burger .container-burger li:nth-child(1) a{
        color: #00aaff;
    }
    .burger .container-burger li:nth-child(2) a{
        color: #2ECC71;
    }
    .burger .container-burger li:nth-child(3) a{
        color: #D72638;
    }
    .burger .container-burger li:nth-child(4) a{
        color: #F1C40F;
    }

    header nav {
        display: none;
    }
    
    .centrer .big-logo{
        width: 40vw;
    }

    .projets .container-slider {
        width: 75vw;
    }

   .cursor {
        display: none;
    }
    .competences, .contact ,.projets{
       margin: 10vw 0 ;
    }
    .parcours{
        display: none;
    }
    

    .projets i{
        font-size: 15vw;
    }
    .table{
        min-height: 100vh;
    }
    .me{
        min-height: 60vh;
    }
    .table .centrer {
    flex-direction: column-reverse;
    justify-content: center;
    align-items: center;
    }
    .table .centrer {
        text-align: center;
        gap: 5vw;
       
    }
    .centrer .left-presentation span{
       font-size: 9vw;

    }
    .centrer .left-presentation{
        font-size: 3.8vw;
    }
    
    .me .photo-left{
        width: 40%;
    }
    .me .table-cell .container{
        flex-direction: column;
       
      text-align: center;
      width: 100%;
      height: 100%;
     
    }
    .me .table-cell .container .text-right{
        align-items: center;
        gap: 10vw;
        width: 90%;
        height: auto;
      
      
       
    }



    .container2 .center{
        width: 35vw;
        height: 35vw;
        font-size: 3.5vw;
    }
    .me .table-cell .container .text-right p{
        font-size: 4vw;
       
    }
    .me .title{
       display: none;
    }
    .fill, .fill2, .fill3, .fill4{
        font-size: 5vw;
        padding: 3vw 6vw;
        z-index: 10000;

    }
    
    .competences{
        height: auto;
    }
    h2{
        font-size: 4vw;
    }
    span{
        font-size: 3vw;
    }

    .projets .slider{
        flex-direction: column;
        gap: 5vw;
        height: 80%;
    }
    .projets .slider .presentation{
        justify-content: center;
        align-items: center;
        gap: 5vw;
    }
    .title{
        font-size: 4vw;
    }
    .projets .main-container{
        margin-top: 10vw;
    }
    .projets .slider .presentation p{
        font-size: 3vw;
        text-align: center;
        line-height: 1.5;
    }
    .projets{
        margin-top: 0vw;
    }
    .skill-container ul{
        flex-wrap: wrap;
     
        row-gap: 10vw; /* Augmente l'espace vertical */
    }
    .skill-container{
        padding-top: 5vh;


    }

    .presentation a {
        padding: 3vw 6vw;
        font-size: 5vw;
    }
    
    .skill-container ul li, .skill-container ul a{
        width: calc(50% - 10px);

    }
    .skill-container ul li:last-of-type{
        display: none;
    }
    .skill-container ul li img, .skill-container ul a img{
        width: 22vw;
    }
    .skill-container ul li p {
        font-size: 5vw;
    }

    footer .content{
        font-size: 3vw;
    }
}



.description{
    display: grid;
    grid-template-columns: 50% 50%;
}
.details {
    display: none;
    position: fixed;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    width: 90%;
    height: 80%; /* Hauteur relative à l'écran */
    max-height: 90vh; /* Limite maximale */
    overflow-y: auto; /* Scroll interne seulement */
    overscroll-behavior-y: contain; /* Bloque le scroll parent */
    padding: 20px;
    background: white;
    border-radius: 15px;
    box-shadow: 0 5px 30px rgba(0,0,0,0.3);
    z-index: 100;
    align-items: center;
}

/* Empêcher le scroll de la page quand le popup est ouvert */
body.details-open {
    overflow: hidden;
    position: fixed;
    width: 100%;
}

.details.active-details {
    display: block;
    opacity: 1;
    visibility: visible;
    display: flex;
    transform: translate(-50%, -50%) scale(1);
    align-items: center;
}

.overlay {
    position: fixed;
    border-radius: 20px;
    top: 0;
    left: 0;
    width: 100%;
    height: 100vh;
    background: rgba(0, 0, 0, 0.6);
    backdrop-filter: blur(5px);
    z-index: 999;
    display: none;
    opacity: 0;
    transition: opacity 0.3s ease;
}

.overlay.active-overlay {
    display: block;
    opacity: 1;
    z-index: 99;
}

.details .close-btn {
    position: absolute;
    top: 15px;
    right: 20px;
    width: 30px;
    height: 30px;
    background: #f5f5f5;
    border: none;
    border-radius: 50%;
    font-size: 16px;
    cursor: pointer;
    color: #777;
    display: flex;
    align-items: center;
    justify-content: center;
    transition: all 0.2s ease;
}

.details .close-btn:hover {
    background: #ff4444;
    color: white;
    transform: rotate(90deg);
}

.details-content {
    text-align: center;
  	height: 100%;
  	width :100%;
   
}

.details-content h2 {
    color: #4a4a4a;
    margin-bottom: 20px;
    font-weight: 700;
}

.details-content p {
    color: #666;
    line-height: 1.6;
    margin-bottom: 25px;
    font-size: 0.9rem;
}

.details-content img {
    width: 60%;
   
    margin: 0 auto 20px;
   
    border: 3px solid #e0e0e0;
}

.action-btn {
    padding: 10px 25px;
    background: linear-gradient(135deg, #6e8efb, #a777e3);
    color: white;
    border: none;
    border-radius: 50px;
    font-size: 14px;
    font-weight: 600;
    cursor: pointer;
    transition: all 0.3s ease;
    box-shadow: 0 4px 10px rgba(111, 142, 251, 0.3);
}

.action-btn:hover {
    transform: translateY(-2px);
    box-shadow: 0 6px 15px rgba(111, 142, 251, 0.4);
}