*,
::before,
::after {
  box-sizing: border-box;
  margin: 0;
  padding: 0;
  text-decoration: none;
  list-style: none;
  font-family: "Poppins", sans-serif;
}

html {
  scroll-behavior: smooth;
  font-size: 62.5%;
  font-weight: 300;
}

/* MON ROUGE : #bb2649 */

body.jour {
  background-color: #f8f8f8;
  background-image: radial-gradient(
    circle at 30px 30px,
    #bb2649,
    transparent 4%
  );
  color: #000;
}

body {
  background-color: #080808;
  display: block;
  position: absolute;
  top: 0;
  left: 0;
  bottom: 0;
  right: 0;
  background-image: radial-gradient(
    circle at 30px 30px,
    rgb(255, 255, 255),
    transparent 3%
  );
  background-repeat: repeat;
  background-size: 60px 60px;
  color: #ffffff;
}

::-webkit-scrollbar {
  width: 11px;
  background-color: rgb(0, 0, 0);
  border-left: 1px solid #222;
}

::-webkit-scrollbar-thumb {
  background-color: #bb2649;
  border-radius: 8px;
}

section {
  height: 100vh;
  width: 100%;
  display: flex;
  justify-content: flex-start;
  align-items: center;
  flex-direction: column;
  scroll-margin: 80px;
}

section::after {
  content: "";
  line-height: 0;
  opacity: 0.4;
  position: absolute;
  align-self: flex-end;
  color: #222;
  margin-top: 180px;
  font-size: 40rem;
  font-weight: 500;
  z-index: -1;
}

body.jour section::after {
  color: #eee;
}

.grd_titre {
  z-index: 2;
  font-size: 5rem;
  font-weight: 600;
}

.container {
  height: auto;
  margin-top: 20px;
  justify-content: center;
  padding: 30px;
  display: flex;
  flex-wrap: wrap;
  position: relative;
  max-width: 92%;
  width: 1300px;
  overflow: hidden;
  border-radius: 25px;
  background-color: #181818c6;
  box-shadow: 0 20px 20px rgba(0, 0, 0, 0.5);
  z-index: 1;
  scroll-snap-align: center;
  /* border: 2px solid rgb(255, 255, 255); */
    
}

body.jour .container {
  background-color: #eeeeeec6;
}

.btn-toggle {
  content: url(./img/soleil.svg);
  position: fixed;
  width: 40px;
  top: 90px;
  right: 15px;
  cursor: pointer;
  z-index: 100;
}

body.jour .btn-toggle {
  content: url(./img/lune.svg);
  position: fixed;
  width: 25px;
  top: 97px;
  right: 23px;
}

/*---------- SECTION ACCUEIL ----------*/

section#accueil {
  scroll-margin: 0;
  justify-content: space-between;
}

section#accueil::after {
  content: "01.";
  top: 80px;
}

.intro {
  display: flex;
  flex-direction: column;
  align-items: center;
  top: 25vh;
  position: relative;
  max-width: 680px;
  width: 92%;
  z-index: 1;
}

.txt_intro {
  justify-content: start;
  line-height: 1.2;
  opacity: 0;
  transform: translateX(-500px);
  animation: apparition 0.5s 2.8s ease-out forwards;
}

.deco_et {
  color: #bb2649;
  font-size: 200%;
  line-height: 0;
  filter: drop-shadow(0px 0px 8px #bb2649);
}

.defilez {
  opacity: 1;
  color: #bb2649;
  position: relative;
  font-size: 2rem;
  font-weight: 500;
  animation: apparition 1s 3s ease-out forwards;
}

.container_fleche_scroll {
  position: relative;
  display: flex;
  flex-direction: column;
  align-items: center;
  opacity: 0;
  transform: translateY(+200px);
  animation: apparition 1s 3s ease-out forwards;
  bottom: 100px;
}

.fleche_scroll {
  align-self: center;
  content: url(./img/haut_bas.svg);
  height: 80px;
  animation: scroll_1 2s ease-in-out infinite;
}

@keyframes scroll_1 {
  0% {
    transform: translateY(0);
  }
  50% {
    transform: translateY(-3em);
  }

  100% {
    transform: translateY(0);
  }
}

/*---------- SECTION SERVICES ----------*/

section#services::after {
  content: "02.";
}

.container_serv {
  margin-top: 20px;
  background-color: none;
  width: 1300px;
  max-width: 92%;
  display: flex;
  flex-wrap: wrap;
  justify-content: space-around;
  margin-bottom: 0;
  
}

.carte {
  background-color: #111111c6;
  display: flex;
  flex-direction: column;
  align-items: center;
  margin: 0 0 30px 0;
  padding: 26px;
  width: 300px;
  max-width: 100%;
  height: 300px;
  border-radius: 25px;
  box-shadow: 0 20px 20px rgba(0, 0, 0, 0.5);
  z-index: 1;
}
body.jour .carte {
  background-color: #eeeeeec6;
}

.icon_serv {
  position: relative;
  top: -10px;
  height: 60px;
  width: 60px;
  filter: drop-shadow(0px 0px 8px #bb2649);
}

.serv1 {
  content: url(./img/icone01.svg);
}
.serv2 {
  content: url(./img/icone02.svg);
}
.serv3 {
  content: url(./img/icone03.svg);
}
.serv4 {
  content: url(./img/icone04.svg);
}
.serv5 {
  content: url(./img/icone05.svg);
}
.serv6 {
  content: url(./img/icone06.svg);
}
.serv7 {
  content: url(./img/icone07.svg);
}
.serv8 {
  content: url(./img/icone08.svg);
}


/*---------- SECTION PORTFOLIO ----------*/

section#portfolio::after {
  content: "03.";
}

#portfolio .container {
  padding: 0;
  max-width: 1150px;
  margin-top: 20px;
  max-height: 650px;
  display: flex;
  position: relative;
  overflow: hidden;
  border-radius: 25px;
  box-shadow: 0 20px 20px rgba(0, 0, 0, 0.5);
  }


.caroussel .photo {
  
  display: none;
}

.photo.active {
  display: flex;
  animation: fondu_img 1s;
}

@keyframes fondu_img {
  from {
    opacity: 0;
  }

  to {
    opacity: 1;
  }
}

.container_fleche {
  display: flex;
  position: absolute;
  height: 100%;
  width: 100%;
  
   
}


/* IMAGE 1155x650px */

.gauche {
  
  left: 0px;
  height: 100%;
  width: 50%;
 }

.droite {
  
  right: 0px;
  height: 100%;
  width: 50%;
 
}

/*---------- SECTION A PROPOS ----------*/

section#apropos{
min-height: 100vh;
margin-bottom: 30px;
}


section#apropos::after {
  content: "04.";
  
}
.container_apropos{
 min-height: 70%;
  margin-top: 20px;
  justify-content: center;
  padding: 30px;
  display: flex;
  flex-wrap: wrap;
  max-width: 92%;
  width: 1300px;
  overflow: hidden;
  border-radius: 25px;
  background-color: #181818c6;
  box-shadow: 0 20px 20px rgba(0, 0, 0, 0.5);
  z-index: 1;
  
}
body.jour .container_apropos{
  background-color: #eeeeeec6;
}
.bio {
  max-width: 1000px;
  min-width: 300px;
  /* width: 50%; */
  /* height: 610px; */
  display: flex;
  justify-content: center;
  
  /* background-color: #7c7c7c; */
}

.txt_bio {
  font-size: 1.6rem;
}
.container_skills {
  
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content:space-evenly;
  
  margin-top: 30px;
 
}
.skills {
  margin: 0 50px 30px 0;
  display: flex;
  flex-direction: column;
  align-items: center;
  
  
 
  
}
  
  
  .logo_c4d {
      content: url(./img/c4d.png);
      display: flex;
      flex-direction: column;
      align-items:center;
      width: 60px;
      z-index: 1;
  
  }
  
  .logo_ps {
      content: url(./img/ps.png);
      
      display: flex;
      flex-direction: column;
      align-items: center;
      width: 60px;
      z-index: 1;
  
  }
  
  .logo_ai {
      content: url(./img/ai.png);
      
      display: flex;
      flex-direction: column;
      align-items: center;
      width: 60px;
      z-index: 1;
  
  }
  
  .logo_figma {
      content: url(./img/figma.png);
      
      display: flex;
      flex-direction: column;
      align-items: center;
      width: 60px;
      z-index: 1;
  
  }
  .logo_ae {
      content: url(./img/ae.png);
      
      display: flex;
      flex-direction: column;
      align-items: center;
      width: 60px;
      z-index: 1;
  
  }
  .logo_blender {
      content: url(./img/blender.png);
      
      display: flex;
      flex-direction: column;
      align-items: center;
      width: 60px;
      z-index: 1;
  
  }
  .logo_vscode {
      content: url(./img/vscode.png);
      
      display: flex;
      flex-direction: column;
      align-items: center;
      width: 60px;
      z-index: 1;
  
  }
  
  
  
.barre_skills {
  height: 100%;
  background: #bb2649;
  box-shadow: inset 0px 4px 6px #222;
}

.ps {
  width: 80%;
  animation: charge_ps 30s ease-out infinite;
}

@keyframes charge_ps {
  0% {
    width: 0%;
  }
  10% {
    width: 80%;
  }
}

.ai {
  width: 75%;
  animation: charge_ai 30s ease-out infinite;
}
@keyframes charge_ai {
  0% {
    width: 0%;
  }
  10% {
    width: 75%;
  }
}

.ae {
  width: 70%;
  animation: charge_ae 30s ease-out infinite;
}

@keyframes charge_ae {
  0% {
    width: 0%;
  }
  10% {
    width: 70%;
  }
}

.c4d {
  width: 60%;
  animation: charge_c4d 30s ease-out infinite;
}
@keyframes charge_c4d {
  0% {
    width: 0%;
  }
  10% {
    width: 60%;
  }
}

.htmlcss {
  width: 60%;
  animation: charge_htmlcss 30s ease-out infinite;
}
@keyframes charge_htmlcss {
  0% {
    width: 0%;
  }
  10% {
    width: 60%;
  }
}

/*---------- SECTION CONTACT ----------*/

section#contact {
height: 100vh;
}

section#contact::after {
  content: "05.";
}

.container_contacts {
  height: 70%;
  margin-top: 20px;
  justify-content: center;
  align-items: center;
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  max-width: 92%;
  width: 1300px;
  overflow: hidden;
  border-radius: 25px;
  background-color: #181818c6;
  box-shadow: 0 20px 20px rgba(0, 0, 0, 0.5);
  z-index: 1;
  scroll-snap-align: center;
  
}

body.jour .container_contacts{
  background-color: #eeeeeec6;
}

.formulaire {
 
  min-width: 200px;
  max-width: 600px;
  width: 50%;
  
  }

.map {
  min-width: 300px;
  max-width: 600px;
  display: flex;
  align-items: center;
  justify-content: center;
  
}

.gmap {
  padding: 30px 0 30px 0;
  min-width: 300px;
  height: 100%;
  max-width: 600px;
  width: 50%;
  min-height: 300px;
}

iframe {
  filter: grayscale(100%);
  height: 100%;
  width: 100%;
}

h1 {
  font-size: 5rem;
  font-weight: 700;
}

h2 {
  font-size: 4rem;
  font-weight: 600;
}

h3 {
  font-size: 3rem;
  font-weight: 550;
}

h4 {
  font-size: 2.2rem;
  font-weight: 500;
}

h5 {
  font-size: 1.6rem;
  font-weight: 400;
}

h6 {
  font-size: 1.4rem;
  font-weight: 300;
}

.tel {
  color: #bb2649;
}

.mail {
  color: #bb2649;
  text-decoration: underline;
}
section#contact form {
  display: flex;
  flex-direction: column;
}

section#contact form input,
section#contact form textarea {
  background: none;
  width: 70%;
  margin: 10px 0;
  padding: 10px;
  border: none;
  outline: none;
  border-bottom: 3px solid rgb(157, 157, 157);
  transition: 0.2s;
  font-weight: 400;
  color: #ffffff;
}

body.jour section#contact form input,
body.jour section#contact form textarea{
color: #000;
}

section#contact form textarea {
  height: 130px;
  width: 70%;
}

.envoyer {
  width: 150px;
  height: 30px;
  background-color: black;
  border: 1px solid #888;
  color: #fff;
  font-weight: 500;
  margin: 20px 0;
}

.style_mail {
  display: flex;
  padding-top: 20vh;
  font-size: 1.6rem;
  justify-content: center;
}

body.jour .navbar {
  background: linear-gradient(0deg, #ddd, #fff);
  border-bottom: 1px solid #ddd;
}

.navbar {
  position: fixed;
  width: 100%;
  height: 80px;
  background: linear-gradient(0deg, rgb(0, 0, 0), #222);
  border-bottom: 1px solid #222;
  display: flex;
  justify-content: center;
  align-items: center;
  transform: translateY(-102px);
  animation: apparition 0.5s 1s ease-out forwards;
  box-shadow: 0 10px 20px #000000cc;
  z-index: 99;
}

@keyframes apparition {
  100% {
    opacity: 1;
    transform: none;
  }
}

.navbar_centre {
  width: 100%;
  height: 100%;
  display: flex;
  align-items: center;
  justify-content: space-around;
}

.logo {
  fill: rgb(255, 255, 255);
  height: 64px;
  margin-top: 6px;
  transform: translateY(-81px);
  animation: apparition 1s 1.4s ease-out forwards;
}
body.jour .logo {
  fill: #000;
}

.navbar ul {
  display: inherit;
  transform: translateY(-55px);
  animation: apparition 0.8s 2s ease-out forwards;
}

.navbar a {
  font-size: 1.6rem;
  margin: 0 1.3rem;
  font-weight: 500;
  color: rgb(255, 255, 255);
}

body.jour .navbar a {
  font-size: 1.6rem;
  margin: 0 1.3rem;
  font-weight: 600;
  color: #000;
}

.btn_burger {
  display: none;
}

.lien {
  position: relative;
}

.lien.active,
.lien:hover {
  background-color: #bb2649;
  color: rgb(255, 255, 255);
}

body.jour .lien.active,
body.jour .lien:hover {
  color: rgb(255, 255, 255);
}

/* Loader */

.loader {
  overflow: hidden;
  position: fixed;
  width: 100%;
  height: 100vh;
  background-color: #111;
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  z-index: 1000;
}
.logo_load {
  height: 30vh;
  animation: charge 3s linear infinite;
}

@keyframes charge {
  0% {
    fill: rgb(255, 255, 255);
  }
  50% {
    fill: #111;
  }
  100% {
    fill: rgb(255, 255, 255);
  }
}
.loader::after {
  font-size: 16px;
  padding-top: 10px;
  content: "CHARGEMENT...";
}
.fondu {
  z-index: 1;
  opacity: 0;
  transition: opacity 0.5s ease-out;
}

.fond_defilement {
  overflow: hidden;
  position: absolute;
  height: 100%;
  width: 100%;
  
}

.defilement1 {
  position: relative;
  overflow: hidden;
  display: flex;
  transform: rotate(-90deg);
  left: calc(-50% + 7rem);
}

.txt {
  color: #11111181;
  white-space: nowrap;
  font-size: 20rem;
  font-weight: 500;
  animation: scrollTxt 65s linear infinite;
}

body.jour .txt {
  color: #eeeeeecc;
}

@keyframes scrollTxt {
  0% {
    transform: translate(0%, 0);
  }
  100% {
    transform: translate(-100%, 0);
  }
}

.defilement2 {
  position: relative;
  overflow: hidden;
  display: flex;
  transform: rotate(-90deg);
  left: calc(-50% + 21.5rem);
  transform: rotate(90deg);
  z-index: 1;
}

.txt2 {
  line-height: 1;
  -webkit-text-stroke: 1px #bb2649cc;
  z-index: 3;
  align-items: center;
  color: transparent;
  white-space: nowrap;
  font-size: 20rem;
  font-weight: 500;
  animation: scrollTxt 65s linear infinite;
}

.rideau_nav {
  position: fixed;
  width: 100vw;
  min-height: 100vh;
  display: flex;
  justify-content: center;
  align-items: center;
  flex-direction: column;
  background-color: #111;
  border-bottom: 10px solid #bb2649;
  padding: 20px 40px;
  transform: translateY(-100%);
  transition: transform 0.4s cubic-bezier(0.73, 0.11, 0.67, 0.84);
  z-index: 10;
}
body.jour .rideau_nav {
  background-color: #ddd;
}

.rideau_nav a {
  display: flex;
  font-size: 2rem;
  font-weight: 600;
  color: #bb2649;
  margin: 10px 0;
  justify-content: center;
}

.rideau_nav.active {
  transform: translateY(0);
}

/*---------- SECTION FOOTER ----------*/

footer {
  background-color: #111;
  align-items: center;
  justify-content: center;
  display: flex;
  height: 100px;
  font-size: 1.2rem;z-index: 100;
  color: #bb2649;
  border-top: 1px solid #bb2649;
}

footer a {
  color: #fff;
  text-decoration: underline;
  z-index: 100;
  
}

/*---------- CGU & MENTIONS ----------*/

.cgu {
  scroll-margin: -120px;
  margin-top: 50px;
  margin-bottom: 1000px;
  width: 1300px;
  max-width: 92%;
  display: flex;
  justify-content: center;
  align-items: center;
  flex-direction: column;
  justify-self: center;
  font-size: 1.6rem;
}

.logo_cgu {
  margin-top: 40px;
  height: 80px;
}

/*---------- MEDIA SCREEN !!! ----------*/

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



  section#accueil {
    height: 100vh;
  }

  section {
    height: auto;
  }


  
  .container {
    margin-bottom: 40px;
  }
 

  .formes{
    display: none;
  }
  .fleche_nav {
    font-size: 10rem;
  }

  h1 {
    font-size: 3.6rem;
  }

  section::after {
    display: none;
  }
  .navbar ul {
    display: none;
  }
  .fond_defilement {
    display: none;
  }

  .navbar_centre {
    justify-content: space-between;
  }

  .btn_burger {
    top: 25px;
    right: 30px;
    position: fixed;
    background: transparent;
    display: flex;
    height: 21px;
    width: 34px;
    cursor: pointer;
    border: none;
    outline: none;
    z-index: 100;
  }

  .ligne {
    position: absolute;
    background-color: rgb(255, 255, 255);
    height: 3px;
    width: 100%;
    transition: transform 0.3s ease-out, opacity 0.1s ease-out;
  }

  body.jour .ligne {
    background-color: rgb(0, 0, 0);
  }

  .l1 {
    transform: translateY(0px);
  }
  .l2 {
    transform: translateY(9px);
  }
  .l3 {
    transform: translateY(18px);
  }

  .btn_burger.active .l1 {
    transform: translateY(9px) rotate(-135deg);
  }
  .btn_burger.active .l2 {
    opacity: 0;
  }
  .btn_burger.active .l3 {
    transform: translateY(9px) rotate(135deg);
  }
}



.formes {
 filter: blur(1px);
  border: 1px solid #222;
  box-shadow: 0 20px 20px #000000cc;
  position: absolute;
  opacity: 0;
  background: linear-gradient(135deg, hsl(346, 66%, 44%), hsl(346, 66%, 14%));
  animation: fondu_forme 0.5s 4s ease-in forwards;
}

@keyframes fondu_forme {
  from {
    opacity: 0;
  }

  to {
    opacity: 1;
  }
}

.forme1{
width: 200px;
height: 300px ;
top: 25vh;
left: 20vw;
}

.forme2{
width: 200px;
height: 200px ;
top: 50vh;
left: 65vw;
border-radius: 50%;
}

.forme3{
width: 300px;
height: 300px ;
top: -15vh;
left: calc(50vw - 150px);
border-radius: 30px;

}

.erreur_404 {
height: 100vh;
width: 100%;
position: absolute;
display: flex;
align-items: center;
justify-content: center;
}

.image404{
display: flex;
flex-direction: column;
align-items: center;
font-size: 200%;
min-width: 250px;
width: 450px;
height: 400px;
}