/* Paramètres généraux */
@font-face {
    font-family: "font-reg";
    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;
  }
  body {
    font-family: "font-reg", serif;
    background: #000101;
    color: #fefeff;
    transition: 0.7s ease-in-out;
  }
  .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;
  }
  h2 {
    font-size: calc(3rem + 5vw);
    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;
  }
  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%;
    background: #fefeff;
    height: 1px;
    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: 395px;
    width: 100vw;
    max-width: 395px;
    margin: 0 auto;
    filter: grayscale(100%);
    transition: 1.6s;
  }
  .img:hover {
    filter: grayscale(10%);
  }
  .line {
    height: 2px;
    width: 70%;
    margin: 0 auto;
    background: #000101;
    transition: 1s cubic-bezier(0.77, 0, 0.18, 1);
    transition-delay: 0.45s;
    opacity: 0;
    transform: scaleX(0);
  }
  .line-wrapper.is-inview .line {
    opacity: 1;
    transform: scaleX(1);
  }
  
  /* Paramètres par ordre d'apparition */
  header {
    height: 100vh;
    position: relative;
    margin: 2vw 2vw 0;
  }
  .links {
    display: flex;
    justify-content: space-between;
  }
  #h1-wrapper {
    transition-delay: 0.3s;
  }
  h1 {
    font-size: calc(2rem + 8vw);
    margin-top: 70px;
    font-family: "font-bold", serif;
    letter-spacing: 6px;
    color: #fefeff;
  }
  header h2 {
    font-size: calc(1rem + 6.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%;
    transform: translateX(-50%);
    bottom: 3.5vw;
    color: rgb(217, 217, 217);
    font-size: calc(0.8rem + 0.5vw);
  }
  .about {
    margin: 400px 0 80px;
  }
  .img1 {
    background: url(../img/PHOTOISMA.jpg) center/cover;
  }
  .h2-wrapper {
    mix-blend-mode: exclusion;
    margin: -220px 0 200px;
  }
  .about p {
    width: 70%;
    min-width: 280px;
    text-align: center;
    margin: 0 auto;
    line-height: calc(7px + 4.5vw);
    font-size: calc(1rem + 1vw);
    letter-spacing: 1px;
  }
  .skills {
    margin: 80px 0 100px;
  }
  .skills h2 {
    margin-bottom: 150px;
  }
  .skills .wrapper {
    margin: 30px 0;
  }
  .skills .appear {
    text-align: center;
    transition-delay: 0.6s;
  }
  .skills p {
    font-size: calc(1rem + 6vw);
    font-family: "font-bold", serif;
    letter-spacing: 4px;
    background: #000101;
    color: #fefeff;
    display: inline-block;
    padding: 0 12px 12px;
  }
  .portfolio {
    margin: 80px 0 80px;
  }
  .projects-container {
    margin-top: 60px;
  }
  .project {
    position: relative;
    width: 60vw;
    max-width: 600px;
    margin: 50px 5vw;
  }
  .project::before {
    content: "";
    position: absolute;
    height: 110%;
    width: 100%;
    top: -3px;
    background: #fefeff;
    transition: width 1s ease-out;
    transition-delay: 0.85s;
  }
  .project.is-inview::before {
    width: 0;
  }
  #p2 {
    margin: 0 6vw 0 auto;
  }
  #p3 {
    margin-left: 8vw;
  }
  .project video {
    transition: 0.4s ease-out;
    width: 100%;
    border-radius: 30px;
    aspect-ratio: 16 / 9;
    object-fit: cover;
  }
  .project:hover video {
    filter: brightness(20%);
    border-radius: 30px;
  }
  .project img {
    transition: 0.4s ease-out;
    width: 100%;
    border-radius: 30px;
    aspect-ratio: 16 / 9;
    object-fit: cover;
  }
  .project:hover img {
    filter: brightness(20%);
  }
  .project:hover .project-infos {
    opacity: 1;
    transform: translate(0, -50%);
  }
  .project-infos {
    position: absolute;
    top: 50%;
    transform: translate(-50px, -50%);
    margin-left: 8vw;
    transition: 0.4s ease-out;
    opacity: 0;
  }
  .project-infos a {
    font-size: calc(1rem + 3vw);
  }
  .project-infos p {
    font-size: 2rem;
    margin-top: 1.5vw;
    color: #fefeff;
  }
  footer {
    margin: 100px 0 120px;
  }
  footer p {
    font-size: calc(1rem + 2vw);
    margin: 25px 0;
    text-align: center;
  }
  #l2 {
    transition-delay: 1.2s;
  }
  #l3 {
    transition-delay: 1.6s;
  }
  footer a {
    font-family: "font-bold", serif;
    color: #000101;
    font-size: calc(1rem + 2vw);
  }
  .img2 {
    background: url(../img/bill-gates-2.jpeg) center/cover;
  }
  
  
  
  
  
  
  
  