/* Paramètres généraux  */
@font-face {
    font-family: "Roboto";
    src: url(../fonts/PlayfairDisplay-Regular.ttf);
  }
  @font-face {
    font-family: "font-bold";
    src: url(../fonts/PlayfairDisplay-ExtraBold.ttf);
  }
  
  * {
    padding: 0;
    margin: 0;
  }
   *::selection {
    background: #000101;
    color: #fefeff;
  } 
  html {
    scroll-behavior: smooth;
   overflow-x: hidden;
  }
  body {
    font-family: "font-reg", serif;
    background: #000101;
    color: #fefeff;
    transition: 0.7s ease-in-out;
    max-width: 100vw;
  }
  h2 {
    font-size: calc(3rem + 3vw);
    text-align: center;
    color: rgb(217, 217, 217);
    font-family: "font-bold", serif;
    letter-spacing: 3px;
  }
  .title {
    font-size: calc(1.5rem + 5vw);
    letter-spacing: 0;
    width: 90%;
    background: #000101;
    color: #fefeff;
 
    margin: 0 auto;

  }
  span {
    display: inline-block;
  }
  a,
  a:visited {
    cursor: pointer;
    position: relative;
    text-decoration: none;
    color: #fefeff;
    transition: 0.1s linear;
    font-size: calc(0.8rem + 0.8vw);
  }
  a::after {
    content: "";
    position: absolute;
    width: 100%;
    height: 1px;
    background: #fefeff;
    bottom: -4px;
    left: 0;
    transform-origin: left;
  }
  a:hover {
    transform: scale(1.04);
    color: rgb(217, 217, 217);
  }
  a:hover::after {
    animation: animLink 1.4s infinite ease-in-out;
  }
  @keyframes animLink {
    50% {
      transform: scaleX(0.2);
    }
    100% {
      transform: scaleX(1);
    }
  }
  .img {
    height: 300px;
    width: 100vw;
    max-width: 405px;
    margin: 0 auto;
    filter: grayscale(100%);
    transition: 1.6s;
  }
  .img:hover {
    filter: grayscale(10%);
  }

  .appear{
    opacity: 0;
    transform: translateX(100%);
    transition: 1.8s ease-in-out;
  }
  .appear.right{
    opacity: 0;
    transform: translateX(-100%);
    transition: 1.8s ease-in-out;
  }

  .appear.diagonal-right{
    opacity: 0;
    transform: translate(100%, 200%);
    transition: 1.8s ease;
  }

  .appear.down{
    opacity: 0;
   
    transition: 1.8s ease;
  }


  .portfolio  #projets  span{
    border: 1px solid white;
    box-shadow: 0px 5px 30px lightblue;
    margin: 0;
    padding: 0;
  }



.test{
  top: 33%;
color: white;
}

  .appear.is-inview{
    opacity: 1;
    transform: translate(0, 0);
  }
  /* .wrapper {
    perspective: 900px;
  }
  .appear {
    opacity: 0;
    transform: translateY(100%) rotateX(-80deg);
    transform-origin: top center;
    transform-style: preserve-3d;
    transition: 0.8s cubic-bezier(0.215, 0.61, 0.355, 1);
  } */
  .appear.is-inview {
    transition-delay: 1s;
    opacity: 1;
    transform: none;
  } 
  .line {
    height: 2px;
    width: 70%;
    margin: 0 auto;
    background: #000101;
    transition: 1s cubic-bezier(0.77, 0, 0.18, 1);

    transition-delay: 0.65s;
    opacity: 0;
    transform: scaleX(0);
  }
  .line-wrapper.is-inview .line {
    opacity: 1;
    transform: scaleX(1);
  }
  
  /* Paramètres par ordre d'apparition CSS */
  header {
    min-height: 100vh;
    position: relative;
    margin: 2vw 2vw 0;
  
  }
  .scroll-down {
    opacity: 1;
    -webkit-transition: all .5s ease-in 3s;
    transition: all .5s ease-in 3s;
  }
  
  .scroll-down {
    position: absolute;
    bottom: 150px;
    left: 50%;
    margin-left: -16px;
    display: block;
    width: 32px;
    height: 32px;
    border: 2px solid #FFF;
    background-size: 14px auto;
    border-radius: 50%;
    z-index: 2;
    cursor: none;
    -webkit-animation: bounce 2s infinite 2s;
    animation: bounce 2s infinite 2s;
    -webkit-transition: all .2s ease-in;
    transition: all .2s ease-in;
    transform: scale(1)
  }
  
  .scroll-down:before {
      position: absolute;
      top: calc(50% - 8px);
      left: calc(50% - 6px);
      transform: rotate(-45deg);
      display: block;
      width: 12px;
      height: 12px;
      content: "";
      border: 2px solid white;
      border-width: 0px 0 2px 2px;
  }
  
  @keyframes bounce {
    0%,
    100%,
    20%,
    50%,
    80% {
      -webkit-transform: translateY(0);
      -ms-transform: translateY(0);
      transform: translateY(0);
    }
    40% {
      -webkit-transform: translateY(-10px);
      -ms-transform: translateY(-10px);
      transform: translateY(-10px);
    }
    60% {
      -webkit-transform: translateY(-5px);
      -ms-transform: translateY(-5px);
      transform: translateY(-5px);
    }
  }



  #h1-wrapper {
    transition-delay: 0.2s
  }
  h1 {
    font-size: calc(1rem + 5vw);
    margin-top: 70px;
    font-family: "font-bold", serif;
    letter-spacing: 6px;
    color: #fefeff;
  }
  header h2 {
    font-size: calc(1rem + 5.5vw);
    margin: 18px 0;
    text-align: left;
  }
  #h2-1 {
    transition-delay: 0.9s;
  }
  #h2-2 {
    transition-delay: 1.2s;
  }
  .scroll-wrapper {
    position: absolute;
    left: 50%;
    bottom: 3.5vw;
    transform: translateX(-50%);
    color: rgb(217, 217, 217);
    font-size: calc(0.8rem + 0.5vw);
  }
  .about {
    margin: 400px 0 250px;
  }
  .img1-wrapper {
    z-index: 2;
    position: relative;
    display: flex;
    justify-content: center;
    align-items: center;
  }
  .about .infoCv{
    position: absolute;
  right: 200px;
  }
  .about .infoCv p{

    margin: 0;
    font-size: 1.5rem;
  }

  .descriptionDesktop{
    width: 100%;
  }

  .imgbg{
    position: absolute;
    background-color: #000100;
    width: 300px;
    height: 100%

  }
  .img1 {

    background: url(../img/kevin.png) bottom/contain;
    /* width: 70%; */
    background-repeat: no-repeat;
    /* background-color: black; */
  }
  .h2-wrapper {
    mix-blend-mode: exclusion;
    margin: -220px 0 200px;
    text-align: center;
    z-index: 10;
    position: relative;
  }
  .h2-wrapper h2 {
    color: rgb(196, 196, 196);
  }
  .about p {
    width: 70%;
    min-width: 280px;
    text-align: center;
    margin: 3rem auto;
    /* line-height: calc(7px + 4.5vw); */
    font-size: calc(1rem + 1vw);
    letter-spacing: 1px;
  }
  .skills {
    margin: 100px 0 0px;

  }
  .skills h2 {
    margin-bottom: 100px;
    background: none;
    color: black;
    text-shadow: 2px 2px 2px white;
  }
  .skills .wrapper {
    margin: 30px 0;
  }
  .skills .appear {
    text-align: center;
     transition-delay: 0.3s; 
  }
  .skills p {
    font-size: calc(1rem + 3vw);
    font-family: "font-bold", serif;
    letter-spacing: 4px;
    background: #000101;
    color: #fefeff;
    display: inline-block;
    border-radius: 12px;
    border:  2px solid;
    padding: 0 12px 12px 12px;
  }

  .portfolio {
    margin: 200px 0 0 0 ;
  }
  .projects-container {
    margin-top: 100px;
  }
  .project {
    position: relative;
    width: 60vw;
    max-width: 950px;
    margin: 50px 5vw;
    border: 2px solid black;
    box-shadow: 1px 2px 2px black;
  }


  .project::before {
    content: "";
    position: absolute;
    height: 101%;
    width: 100%;
    top: -3px;
    background : #000100;
    transition: width 1s ease-out;
    transition-delay: 1.85s;
  }
  .project.is-inview::before {
    width: 0;
  }
  #p3 {
    margin-left: 8vw;
  }
  .project img {
    transition: 0.4s ease-out;
    width: 100%;
    background-size: contain;

  
  }
  .project:hover img {
    filter: brightness(20%);
  }
  .project:hover .project-infos {
    opacity: 1;
    transform: translateY(-50%);
  }
  .project-infos {
    position: absolute;
    top: 50%;
    margin-left: 8vw;
    transform: translate(-50px, -50%);
    opacity: 0;
    transition: 0.4s ease-out;
  }
  .project-infos a {
    font-size: calc(1rem + 3vw);
  }
  .project-infos p {
    font-size: 2rem;
    margin-top: 1.5vw;
    color: #fefeff;
  }

  .project-infos p.codeSource{
font-size: .9rem;
margin-left: 20rem;
  }
  footer {
    margin: 100px 0 300px;
  
  }
  footer p {
    font-size: calc(1rem + 1vw);
    text-align: center;
    margin: 25px 0;
  }
  #l2 {
    transition-delay: 0.8s;
  }
  #l3 {
    transition-delay: 1.2s;
  }
  footer a {
    font-family: "font-bold", serif;
    color: #000101;
    font-size: calc(1rem + 1vw);
  }


  .button {
    display: inline-block;
    background-color: #504f4e;
    width: 150px;
    height: 50px;
    text-align: center;
    border-radius: 4px;
    position: fixed;
    top: 30px;
    /* bottom: 30px; */
    right: 30px;
    transition: background-color .3s, 
      opacity .5s, visibility .5s;
    /* opacity: 0;
    visibility: hidden; */
    z-index: 1000;
  }

  .button2{
    top: 90px;
  
  }
  .button3{
    top: 150px;

  }
  .button6{
    top: 210px;

  }
  .button4{
position: absolute;
top: 80vh;
bottom: 0;
left :0;
right: 50px;

  }
  .button5{
position: absolute;
top: 87vh;
bottom: 0;
left :0;
right: 50px;

  }
  .button::after {
    content: "";
    font-family: FontAwesome;
    font-weight: normal;
    font-style: normal;
    font-size: 2em;
    line-height: 50px;
    color: #fff;
  }
  .button:hover {
    cursor: pointer;
    background-color: #333;
  }
  .button:active {
    background-color: #555;
  }
  .button.show {
    opacity: 1;
    visibility: visible;
  }
  

/* The Modal (background) */
.modal {
  display: none; /* Hidden by default */
  position: absolute; /* Stay in place */
  z-index: 1; /* Sit on top */
  left: 0;
  top: 0;
  width: 100%; /* Full width */
  height: 100%; /* Full height */
  overflow: auto; /* Enable scroll if needed */
  background-color: rgb(0,0,0); /* Fallback color */
  background-color: rgba(0,0,0,0.4); /* Black w/ opacity */
}

/* Modal Content/Box */
.modal-content {
  background-color: #fefefe;
  margin: 5% auto; /* 15% from the top and centered */
  padding: 20px;
  border: 1px solid #888;
  width: 90%; /* Could be more or less, depending on screen size */
  color: #333;
font-size: 1.2rem;
}
.modal-content a {
  color: orange;
  font-size: 1.3rem;
}
.dateModal{
  color: orange;
position: absolute;
top: 5px;
left: 5px;

}


/* The Close Button */
.close {
  color: orange;
  float: right;
  font-size: 28px;

  font-weight: bold;
}

.close:hover,
.close:focus {
  color: black;
  text-decoration: none;
  cursor: pointer;
}
.modalText{
  display: flex;
  flex-direction: column;
  justify-content: center;
  gap: 2rem;
  align-items: center;
}
.modalText.p3{
  margin-top: 0.5rem;
  flex-direction: row;

justify-content: space-around;
}

.codeAccessContainer{
  text-align: center;
  border-left: 2px solid;
  padding-left: 1rem;
}

.modalExplication{
  display: flex;
  flex-direction: column;
  justify-content: center;
  gap: .7rem;
}

.modalExplication li{
  margin: 1rem;
}

.sideEffect::before{
  content: '';
  position: absolute;
  left: 0;
  width: 100%;
  height: 15px;
  background-color: black;
  transition: 5s;
  animation: 2s ease-in  slidein;
  margin-top: 2rem;
 
 
}

.expertise_container {
  display: flex;
  justify-content: center;
  gap: 10rem;
}

.sideEffect.P2::before {
  animation: 1.5s ease-in-out slideinVertical;
}

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


@keyframes slideinVertical {
  from {height: 0px;}
  to {height: 15px;}
}




  

  @media (min-width: 500px) {
    .content {
      width: 43%;
    }
    #button {
      margin: 30px;
    }

  }
  .content h1 {
    margin-bottom: -10px;
    color: #03a9f4;
    line-height: 1.5;
  }
  .content h3 {
    font-style: italic;
    color: #96a2a7;
  }

  #fixed-target{
position: relative;  }



.overlay {
  position: absolute;
  top: 50%;
  left: 50%;
  border: 2px solid white;
  display: block;
  min-width: 20em;
  background-color: #363635;
  color : black;
  border-radius: 1em;
  transform: translate(-50%, -45vh);
  outline: transparent;
  z-index: 100;
}



@media only screen and (max-width: 900px) {

  .expertise_container{
    display: block!important;
  }
  .button {
 display: none;
  }
  .project-infos p {
    font-size: 1rem;
    margin-top: 1.5vw;

  }
  .project{
    width: 100vw;
    margin: .5rem 0;
  }
  
  #p3{
    margin: .5rem 0;
  }
  #p2{
    margin: .5rem 0;
  }
  .modal-content{
    margin: auto;
      font-size: 1rem;
    }
    .modalText{
      gap: .2rem;
    }
    
    .sideEffect::before{
      display: none;
    }

    .carouselContainer{
      width: 100%!important;
      padding: 1rem;

    }
  .carousel{
    width: 100%!important;
  }
  .carousel .carousel-image{
    height: auto;
  }
  .wmsContainer{
    flex-direction: column;
    gap: 2rem;
  }
    
}

.wmsContainer{
  display: flex;
}

.wmsContainer ul{
  list-style: none;
  font-weight: bold;
}

/*Carousel */

.carouselContainer{
  width: 80%;
  margin: auto;
  text-align: center;
}

.carouselContainer .titleWms{
  font-size: 2rem;
  margin:2rem;
}
.carousel {
  position: relative;
  width: 80%;
  margin: auto;
  max-width: 100%;
  overflow: hidden;
  border-radius: 10px;
  box-shadow: 0 0 10px #ccc;
  background: white;
  margin-left: 1rem;
}

.imageProject{
  cursor: pointer;
}

.carousel-image {
  width: 100%;
  height: 700px;
  object-fit: contain;
  display: none;
}

.carousel-image.active {
  display: block;
}

.legend {
  text-align: center;
  padding: 10px;
  font-size: 2rem;
  background: #fff;
}

.arrow {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  font-size: 2rem;
  background: none;
  border: none;
  cursor: pointer;
  padding: 10px;
  z-index: 1;
}

.arrow.left {
  left: 10px;
}

.arrow.right {
  right: 10px;
}

.finalProject{
  margin: 2rem;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 1rem;
  justify-content: center;
  padding: 2rem;

}

.finalProject p {
  font-size: 1.3rem;
}

.tech-stack {
  font-weight: bold;
  color: #444;
  font-size: 1rem;
  margin-bottom: 2rem;
  margin-right: 1rem;
}

.feature-list {
  list-style: none;
  padding: 0;
  font-size: 1rem;
  color: #333;
}

.feature-list li {
  position: relative;
  padding-left: 1.5rem;
  margin-bottom: 0.75rem;
}

.feature-list li::before {
  content: "✔";
  position: absolute;
  left: 0;
  color: #4caf50;
  font-weight: bold;
}

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