/*
CSS by Manu LECHAT
https://e-lechat.com
*/


/*

  /^^
  /^^                                                                                                       /^^
/^/^ /^     /^^   /^^     /^ /^^          /^^            /^^        /^ /^^^        /^^         /^ /^^       /^^          /^^   /^^
  /^^        /^^ /^^      /^  /^^       /^^  /^^       /^^  /^^      /^^         /^^  /^^      /^  /^^      /^ /^         /^^ /^^
  /^^          /^^^       /^   /^^     /^^    /^^     /^^   /^^      /^^        /^^   /^^      /^   /^^     /^^  /^^        /^^^
  /^^           /^^       /^^ /^^       /^^  /^^       /^^  /^^      /^^        /^^   /^^      /^^ /^^      /^   /^^         /^^
   /^^         /^^        /^^             /^^              /^^      /^^^          /^^ /^^^     /^^          /^^  /^^        /^^
             /^^          /^^                           /^^                                    /^^                        /^^

 */



  @font-face {
    font-family: "CircularStd-Light";
    src: url("../fonts/Circular/CircularStd-Light.otf") format('truetype')
    
   }

   @font-face {
    font-family: "CircularStd-Bold";
    src: url("../fonts/Circular/CircularStd-Bold.otf") format('truetype')
   } 

   @font-face {
    font-family: "Bauziet-Norm-Bold";
    src: url("../fonts/Bauziet/Bauziet-Norm-Bold.ttf") format('truetype')
   }

   


/*

/^^     /^^        /^^         /^ /^^^      /^^^^
 /^^   /^^       /^^  /^^       /^^        /^^
  /^^ /^^       /^^   /^^       /^^          /^^^
   /^/^^        /^^   /^^       /^^            /^^
    /^^           /^^ /^^^     /^^^        /^^

*/

:root {

  --font_regular : "CircularStd-Light";
  --font_medium : "CircularStd-Bold";
  --font_alt : "Bauziet-Norm-Bold";

  --grid_unit: calc(100vw / 24);
  --fontSize_unit: 0.05vw;
  --color_txt : white;
  /* --color_bg: linear-gradient(135deg,  #000, #000, #111623); */
  /* --color_bg: linear-gradient(135deg,  #0f131d, #111623, #111623);
  --color_bg: linear-gradient(0deg,  #000, #111623); 
  --color_bg: linear-gradient(0deg,  #000, #090c13);  */
  --color_bg: #09152d;
  --color_bg: #040419;
  /* --color_bg: radial-gradient(  #09195d, #0b1842, #040419); */
  --color_bg_dark: #0C101B;
  
}


.toggle_light{

  --color_txt : #09152d;
  /* --color_bg: linear-gradient(135deg,  #bdc9e7, #fff, #fff); */
  --color_bg: white;
  --color_bg_dark: white;
  
}





/*

  /^^                                    /^^
/^                                       /^^
/^/^ /^        /^^         /^^ /^^       /^/^ /^      /^^^^
/^^        /^^  /^^       /^^  /^^       /^^       /^^
/^^       /^^    /^^      /^^  /^^       /^^         /^^^
/^^        /^^  /^^       /^^  /^^       /^^           /^^
/^^          /^^         /^^^  /^^        /^^      /^^ /^^

                                                           */


/* font-style */

.font_regular{ font-family: var(--font_regular); } 
.font_medium{ font-family: var(--font_medium); }
.font_alt{ font-family: var(--font_alt); }

h1, h2, h3, h4, h5{ display:block; width: auto;   margin: 0;  font-weight: normal; padding-bottom: 0.2em; line-height: 1.26em; }
p {  margin: 0; padding-bottom: 1.26em; line-height: 1.35em; font-weight: normal;  margin: 0 auto; }
a {  text-decoration: none; color: var(--color_txt); }
a:hover { text-decoration: none; }
img { width: 100%; }

.center{ text-align: center; }
.font_alt{ font-family: var(--font_alt); }
.maj{ text-transform: uppercase; letter-spacing: 0.1em;  }
.color_alt{ color: var(--color_alt) }
/* titles */

.txt_xs { font-size: calc( var(--fontSize_unit) * 12); }
.txt_s { font-size: calc( var(--fontSize_unit) * 15); }
.txt_18 { font-size: calc( var(--fontSize_unit) * 18); }
.txt_20 { font-size: calc( var(--fontSize_unit) * 20); }
.txt_60 { font-size: calc( var(--fontSize_unit) * 60); }
.txt_l { font-size: calc( var(--fontSize_unit) * 32);  }
.txt_ll { font-size: calc( var(--fontSize_unit) * 44); line-height: 1.25em; }
.txt_xl { font-size: calc( var(--fontSize_unit) * 68); }
.txt_xxl { font-size: calc( var(--fontSize_unit) * 110);font-family: var(--font_alt);   }
.title { text-transform: uppercase; letter-spacing: -0.025em; font-family: var(--font_alt); margin: 0.8em 0; line-height: 1.2em; }
.txt_home { font-size: calc( var(--fontSize_unit) * 112); font-family: var(--font_alt); }
.txt_oversise{ font-size: calc( var(--fontSize_unit) * 240); z-index: -1; color: var(--color_deep); opacity: 0.34; }




/*

 /^^                                                                /^^
 /^^                                                                /^^
 /^^        /^^         /^^   /^^        /^^         /^^  /^^     /^/^ /^
 /^^      /^^  /^^       /^^ /^^       /^^  /^^      /^^  /^^       /^^
 /^^     /^^   /^^         /^^^       /^^    /^^     /^^  /^^       /^^
 /^^     /^^   /^^          /^^        /^^  /^^      /^^  /^^       /^^
/^^^       /^^ /^^^        /^^           /^^           /^^/^^        /^^
                         /^^
*/


::selection {  background: white; color: black;  opacity: 0.5; transition: all .3s; ; text-shadow: none; }
* {  box-sizing: border-box; outline: none; }
html{  top:0; left: 0; margin: 0; padding: 0;   }
body{  font-family: var(--font_regular);  color: var(--color_txt); margin: 0; padding: 0; top:0; left: 0;  background-color: var(--color_bg);  }

section{ position: relative;  width: 100%; }
img{ max-width: 100%; height: auto; display: block; }
ul{ margin: 0; display: block; text-align: left; padding: 0; }
li{ letter-spacing: 0.05em;  margin: 0em 0;  list-style: none; min-height:1.6em; padding-left: 0px; background-repeat:  no-repeat; background-size: 16px; background-position: 0 3px; padding-bottom: 0px; }
div{  position: relative; display: block;  height: fit-content;  }
header, 
section, 
footer,  
main{  margin: 0; padding: 0; width: 100%; overflow-x: hidden; display: block; position: relative;  height: fit-content;  z-index: 2}
.page_wrapper{ min-height: calc( 100vh - calc( var(--grid_unit) * 2)  );  }
.legals{ opacity: 0.5; }
.noscroll{ overflow: hidden; }
.burger{ display: none; }


/* loader */

#loader { position: fixed; top: 0; left: 0; width: 100vw; height: 100%; background-color: #000; z-index: 9999; display: flex; justify-content: center; align-items: center; flex-direction: column; }
#loader .spinner { width: 65px;  animation: loop  .5s infinite linear;  }



/* three_container */
.three_container {  z-index: -2; width: 100%;   height: 100vh;  top:0;   left: 0; position: fixed;  margin: 0px;  }
.three_container.opacity_low{ opacity: 0.3; }

/* bg_gradient */
.bg_gradient{ mix-blend-mode: lighten;  z-index: -10; top: 0; left: 0; transform: translateX(-30%) translateY(-50%);  width:140vw; height: 140vw; border-radius: 140vw; ;   position: fixed;  background: radial-gradient( #0a1a5d, var(--color_bg), var(--color_bg)) }
.bg_gradient2{   z-index: -12;  top: 0; right: 0; transform: translateX(40%) translateY(10%);  width:100vw; height: 100vw; border-radius: 100vw; ;   position: fixed;  background: radial-gradient( #1a0f28, var(--color_bg), var(--color_bg)) }

/* header  */
.fixed_ui {  top: 0; left:0;  z-index: 11; width: 100%; padding: var(--grid_unit); height: 20vh;  position: fixed; display: flex; justify-content: space-between; }
.fixed_ui .logo {  }
.fixed_ui .logo img{ display: none; width: 2.4em; margin-right: 1.2em;  }
.fixed_ui .logo .txt{ opacity: 1;  line-height: .9em;  font-weight: normal; font-family: var(--font_medium);  font-size:calc( var(--fontSize_unit) * 28); text-transform: uppercase; }
.fixed_ui .logo:hover .txt{ opacity: 1; }
.fixed_ui .nav ul{  display: flex; }
.fixed_ui .menu_link{ letter-spacing: 0.1em;  margin-left: 2em; font-size:calc( var(--fontSize_unit) * 16); text-transform: uppercase;}
.fixed_ui .menu_link:hover{ cursor: pointer; }
.fixed_ui .menu_link.actif{  font-family: var(--font_alt); }


/* home */
.home .cover_content{ width:  fit-content;  }
.home .cover{  width: 100%; padding-top: calc( var(--grid_unit) * 4); padding-bottom: calc( var(--grid_unit) * 2); height: auto; display: flex; justify-content: center; align-items: center; }
.home .cover h3 { font-size: 9vw; line-height: 1em; }
.home .cover .surtitre{ line-height: 1.2em; margin-bottom: 1em; }
.home .cover .freelance_loop{  animation: freelance_loop  40s infinite linear;   border-radius:calc( var(--grid_unit) * 2);position: absolute; right:calc( var(--grid_unit) * -0.5);  top: calc( var(--grid_unit) * -1);  width:calc( var(--grid_unit) * 2); height: calc( var(--grid_unit) * 2);   }

.home .intro {  margin-top: var(--grid_unit); width: calc( var(--grid_unit) * 18); display: flex; justify-content: flex-start; overflow: visible; margin-left: calc( var(--grid_unit) * 4);   }
.home .intro p{  width: 20em;  font-size: calc( var(--fontSize_unit) * 36);   margin-bottom: calc( var(--grid_unit) * 1);    height: auto; line-height: 1.63em;  }

.home  .intro .mockup{ perspective-origin: 50vw 50vh; perspective: 1000px;  z-index: 3; background:black;  transform: rotateY(20deg)  rotate(4deg);  width: 13vw; padding: 3vw .5vw; height: 26vw ; /* border: 3px solid white;  border-left: 8px solid white; */  border-left: 2px solid #070f34;   border-right: 6px solid #051038; border-top:1px solid #0a1a5d;   border-bottom: 2px solid #11091f; border-radius: 12px; position: absolute; right:  calc( var(--grid_unit) * 3); top: 0; }
.home  .intro .mockup .screen{ width: 100%; height: 100%; background: #000;  }
.home  .intro .mockup .screen img{ width: 100%; height: 100%; object-fit: cover; }

.home .home_cloud{   height: auto;  margin-top: var(--grid_unit); padding-top: calc( var(--grid_unit) * 4); width: 100%;   padding-bottom: calc( var(--grid_unit) * 1); }
.home .home_cloud  .intro{ line-height: 1.26em;  z-index: 3; position: absolute; left: calc( var(--grid_unit) * 4); top: 0; width:fit-content;  }
.home .home_cloud .cloud_item{ padding: 0; margin: 10px; position: relative; display: block; overflow: hidden;  }
.home .home_cloud .cloud_item img{  margin: 0; position: relative; display: table; z-index: 2; width: 100%; }
.home .home_cloud .cloud_item::after{  z-index: 3; opacity: 0.4; content: ""; position: absolute; width: 100%; height: 100%; background: var(--color_bg);  display: block; top: 0;  left: 0; }
.home .home_cloud .cloud_item .caption{  z-index: 1; width: 100%; position: absolute; top: 0; padding: 15px; }
.home .home_cloud .home_cloud_line{ opacity: 1; justify-content: stretch; align-items: center;  position: relative; flex-wrap: wrap;  display: flex; width:600vw;  animation: home_cloud_cloud_left  200s infinite linear;  z-index: 2;  height:auto  }
.home .home_cloud .patchwork_img{ object-fit: cover; height: calc( var(--grid_unit) * 2.5); margin: 0;  ; width: auto;    }
.home .home_cloud .patchwork_img_1{  transform: perspective(500px)  translateZ(-220px) translateY(40px);  }
.home .home_cloud .patchwork_img_2{  transform: perspective(500px) translateZ(-40px); }
.home .home_cloud .patchwork_img_3{  transform: perspective(500px) translateZ(-80px); }
.home .home_cloud .patchwork_img_4{  transform: perspective(500px) translateZ(-60px); }
.home .home_cloud .patchwork_img_5{  transform: perspective(500px) translateZ(-120px); }


.home .text { margin-top: var(--grid_unit);  margin-bottom: var(--grid_unit); width: calc( var(--grid_unit) * 18); margin-left: calc( var(--grid_unit) * 3); }
.home .text p{  width: 20em;  font-size: calc( var(--fontSize_unit) * 36);      height: auto; line-height: 1.63em;  }


/* projects  */

.projects .descrition{  display: flex; width:100%; flex-direction: row;   justify-content: flex-start; padding-bottom: calc( var(--grid_unit) * 2);  padding-top: calc( var(--grid_unit) * 4); padding-left: calc( var(--grid_unit) * 5); }
.projects .descrition .paragraphe{ width: calc( var(--grid_unit) * 6); line-height: 1.3em;   }
.projects .descrition .paragraphe:nth-child(1){ margin-right: calc( var(--grid_unit) * 2); }

.projects .grid_bt{ position: relative; width: 20px; height: 20px; margin: 200px; border:2px solid white }

.projects .mosaique_workitems{ justify-content: center;flex-direction: row; align-items: center;  display: flex; flex-wrap: wrap; }
.projects .mosaique_workitems .work_item{ transition: all .3s; display: flex; flex-direction: column; margin: calc( var(--grid_unit) * 1); position: relative; overflow: hidden;    width:calc( var(--grid_unit) * 6);    height:auto;   }
.projects .mosaique_workitems .work_item .cover_wraper{ z-index: 1; width:100%;   height:calc( var(--grid_unit) * 3 );  overflow: hidden;  }
.projects .mosaique_workitems .work_item .cover_wraper::after { z-index: 2; opacity: 0.3; content: ""; position: absolute; width: 100%; height: 100%;  background: #3E50A2; display: block; top: 0; left: 0;}
.projects .mosaique_workitems .work_item .cover{ opacity: 1;  transition: all .3s ease-in-out;  width:100%;  height:100%; object-fit: cover;  } 
.projects .mosaique_workitems .work_item:hover .cover_wraper::after {  } 
.projects .mosaique_workitems .work_item .categ{ margin-top: 20px; }
.projects .mosaique_workitems .work_item .titre{ opacity: 0;  z-index: 3; position: absolute; top: 0; left: 0;  padding: 20px;  }
.projects .mosaique_workitems .work_item:hover .titre{   opacity: 1; transition: all .17s ease-out; }
.projects .mosaique_workitems .work_item .txt_thumb{ margin-top: 10px; }
.projects .mosaique_workitems .txt_wrapper{ margin-top: 10px;  } 
.projects .mosaique_workitems li{ min-height: 20px; } 
.projects .mosaique_workitems .title{ font-family: var(--font_medium);  }

/* new mood  */

.projects .mosaique_workitems .work_item{ margin: 2vw;  }
.projects .mosaique_workitems .work_item{  width:calc( var(--grid_unit) * 4); } 
.projects .mosaique_workitems .work_item .cover_wraper{  height:calc( var(--grid_unit) * 4); } 

.projects .mosaique_workitems .work_item.panoramique{  width:calc( var(--grid_unit) * 9); } 


/* project_pad */

.project_pad{  margin-right: calc( var(--grid_unit) * 1); transform: translate3d(0,40px,0); transition: all .7s;    height: 100%; margin-bottom:calc( var(--grid_unit) * 1);}
.project_pad.appear{  transform: translate3d(0,0px,0); }
.project_pad .title{ padding-left: 1em; opacity: 0.5; transition: all 3s; }
.project_pad:hover .title{   opacity: 1;  }
.project_pad .cover{ overflow: hidden;  position: relative;  }
.project_pad .cover img{ width:100%; height: 100%; object-fit: cover; transition: all .3s ease-in-out; opacity: 0.7 }
.project_pad .cover:hover img{ opacity: 1; }
.project_pad .project_pad_footer{  width: 100%;  padding: calc( var(--fontSize_unit) * 30) 0;; }
.project_pad.banner{ width:calc( var(--grid_unit) * 2); margin-left: calc( var(--grid_unit) * 1)!important;margin-right: calc( var(--grid_unit) * 1)!important; }
.project_pad.banner .cover{ height:calc( var(--grid_unit) * 5); } 

/* project */

.project .title_wrapper {  z-index: 2;  height:calc( var(--grid_unit) * 8); display: flex; flex-direction: column; justify-content: space-around;  padding-left: calc( var(--grid_unit) * 6); }
.project .title_wrapper .surtitre{ margin-bottom: calc( var(--grid_unit) * 0.5); padding-left: .2em; }
.project .title_wrapper .subtitre{ margin-top: calc( var(--grid_unit) * 0.5); padding-left: .2em; }
.project .cover_wrapper{  overflow: hidden;  position: relative; width: 100%; height:calc( var(--grid_unit) * 8) ;  }


.project .bg_cover{    opacity:0.6;  background-size: cover; background-position: center; background-color: black; background-repeat: no-repeat; position: absolute; width:100%; height:100vh; background-size: 100% auto; background-position: 0 0; background-attachment: fixed; }
.project .title{ max-width: 80%; }
.project .cover_wrapper:after{  background-color: #3E50A2;  opacity: 0.34; mix-blend-mode: screen;  content: ''; width: 100%; height: 100%; position: absolute; top:0; left:0;transition: all 1s;}
.project .descrition{ display: flex; width:100%; flex-direction: row;   justify-content: flex-start; padding-bottom: calc( var(--grid_unit) * 2);  padding-top: calc( var(--grid_unit) * 2); padding-left: calc( var(--grid_unit) * 5); }
.project .descrition .paragraphe{ width: calc( var(--grid_unit) * 6); line-height: 1.3em;   }
.project .descrition .paragraphe:nth-child(1){ margin-right: calc( var(--grid_unit) * 2); }
.project .screens_wrapper{ display: flex; flex-wrap: wrap; align-content: stretch;padding-top:  var(--grid_unit) ;   margin-left: calc( var(--grid_unit) * 3); width: calc( var(--grid_unit) * 21);  }
.project .screens_wrapper .image{ max-height: calc( var(--grid_unit) * 40); object-fit: contain ; opacity: 0.8; height: auto; object-fit: contain; margin-bottom: calc( var(--grid_unit) * 1); }
.project .screens_wrapper .image img{ object-fit: contain ; max-height: calc( var(--grid_unit) * 40);  }
.project .screens_wrapper .image1{   width: calc( var(--grid_unit) * 8); margin-right: calc( var(--grid_unit) * 1); }
.project .screens_wrapper .image2{   width: calc( var(--grid_unit) * 8); }
.project .screens_wrapper .image3{    width: calc( var(--grid_unit) * 17);   }
.project .screens_wrapper .image4{   width: calc( var(--grid_unit) * 8); margin-right: calc( var(--grid_unit) * 1); }
.project .screens_wrapper .image5{   width: calc( var(--grid_unit) * 8); }
.project .screens_wrapper .image6{    width: calc( var(--grid_unit) * 17); }
.project .screens_wrapper .video_container{ margin-right: calc( var(--grid_unit) * 1);  width: calc( var(--grid_unit) * 12); margin-bottom: calc( var(--grid_unit) * 1);   }
.project .screens_wrapper .video_container.size_4{  width: calc( var(--grid_unit) * 4); }
.project .screens_wrapper .video_container.size_6{  width: calc( var(--grid_unit) * 6); }
.project .screens_wrapper .video_container.size_8{  width: calc( var(--grid_unit) * 8); }
.project .screens_wrapper .video_container.size_10{  width: calc( var(--grid_unit) * 10); }
.project .screens_wrapper .video_container.size_12{  width: calc( var(--grid_unit) * 12); }
.project .screens_wrapper .video_container.size_14{  width: calc( var(--grid_unit) * 14); }
.project .screens_wrapper .video_container video{ width: 100%; }
.project .screens_wrapper .appear_on_scroll{   overflow: hidden; transform: translateX(-100%); transition: all .5s .3s cubic-bezier(.17,.67,.32,.96); }
.project .screens_wrapper .appear_on_scroll.appear{   transform: translateX(0%); }
.project .screens_wrapper .appear_on_scroll img{ transform: translateX(100%);  transition: all .5s .3s cubic-bezier(.17,.67,.32,.96); opacity: 0 }
.project .screens_wrapper .appear_on_scroll.appear img{ transform: translateX(0%); opacity: 1 }
.project .screens_wrapper .appear_on_scroll:nth-child(2n+1){ overflow: hidden; transform: translateX(100%); transition: all .5s .3s cubic-bezier(.17,.67,.32,.96); }
.project .screens_wrapper .appear_on_scroll:nth-child(2n+1).appear{   transform: translateX(0%); }
.project .screens_wrapper .appear_on_scroll:nth-child(2n+1) img{ transform: translateX(-100%);  transition: all .5s .3s cubic-bezier(.17,.67,.32,.96); opacity: 0 }
.project .screens_wrapper .appear_on_scroll:nth-child(2n+1).appear img{ transform: translateX(0%); opacity: 1 }
.project .urlsite{ margin-top: 1em;  }
.project .iframe_wrapper{ margin-top: calc( var(--grid_unit) * -0); left:0; position:relative;  width: 100%; height: 600px;   }
.project .iframe_wrapper iframe{  position: absolute; top: 0; left: calc( var(--grid_unit) * 8); margin: 0;  width: 300px!important; height: 600px!important;  overflow: hidden; }
/* .project .tags{ position: absolute;  top:calc( var(--grid_unit) * 2); width:calc( var(--grid_unit) * 4); left:calc( var(--grid_unit) * 16); text-align: right; } */
.project .link_next{  margin-left:calc( var(--grid_unit) * 12);; width: calc( var(--grid_unit) * 12); }
.project .next_project {  width: calc( var(--grid_unit) * 8);  margin-left:calc( var(--grid_unit) * 9) ;  margin-top:calc( var(--grid_unit) * 2) ;   }
.project .next_project .project_pad{     transform: none; margin-bottom: 0;  margin-top: 0; margin-right:calc( var(--grid_unit) * 5); margin-left:calc( var(--grid_unit) * 1); height: auto; width:calc( var(--grid_unit) * 5);  }
.project .next_project .project_pad .cover{ height:calc( var(--grid_unit) * 5); width:calc( var(--grid_unit) * 5);  }
.project .next_project .txt_next{ margin-bottom: var(--grid_unit); opacity: 0.5; position: absolute; transform: rotate(-90deg) translateX(-100%) translateY(-1em); left: -4em; }
.project .next_project .projects_link{   width:calc( var(--grid_unit) * 8);  }
.project .next_project .link{ transition: all .3s;  width:calc( var(--grid_unit) * 8);  border-bottom:1px solid white;  margin-right:calc( var(--grid_unit) * 5); margin-left:calc( var(--grid_unit) * 1); height: auto; width:calc( var(--grid_unit) * 8); padding:  calc( var(--grid_unit) * 0.1 ) 0 }
.project .next_project .link:hover{ padding-left:  calc( var(--grid_unit) * 0.5 )   }
.project  .cloud { margin: 0 auto;  height: auto; width: calc( var(--grid_unit) * 16); overflow: hidden;  margin-bottom:calc( var(--grid_unit) * 2); margin-top:calc( var(--grid_unit) * 2); padding: calc( var(--grid_unit) * 1);   border-top: 1px solid white; }
.project .accroche {  width: calc( var(--grid_unit) * 14); margin-left: calc( var(--grid_unit) * 3); padding: calc( var(--grid_unit) * 1); height: auto; text-align: left; }
.project .accroche_txt p{  font-size: calc( var(--fontSize_unit) * 36);  margin-bottom: calc( var(--grid_unit) * 1);    height: auto; line-height: 1.3em;  text-align: left;}

.project .tags{ display: flex; flex-direction: column; text-transform: uppercase;  }
.project .tags li{ width: fit-content;  font-family: var(--font_medium); }

.project .link_site{ display: block; width: fit-content; margin-top:20px; border: 2px solid white; padding: 0.2em 0.5em; }

/* error */
.error{ display: flex; justify-content: center;  } 
.error h1{ margin: 0.7em 0 0 0;  } 
.error .content{ text-align: center; } 

/* contact */

.contact { width: 100%; height: 100vh; display: flex; justify-content: center; align-items: center; }
.contact .intro{ width: 18em; }
.contact .contact_links{ line-height: 2em; }
.contact .link{ margin-bottom: 1em;  display: flex; align-items: center; }
.contact .link .icon{ width: 1em; height: 1em; margin-right: .5em;  }
.contact .cover{  width: calc( var(--grid_unit) * 3);; height: auto;  opacity: 0.5; margin-left: var(--grid_unit);  }

/* default */

.default .header { padding: calc( var(--grid_unit) * 3)  0 0 calc( var(--grid_unit) * 6);  }
.default .content {  padding: calc( var(--grid_unit) * 1) calc( var(--grid_unit) * 4); }
.default .content h1,
.default .content h2,
.default .content h3{ font-size: calc( var(--fontSize_unit) * 36);  margin: 1em 0 }
.default .content p{  margin:1em }

.illus{  mix-blend-mode: screen; overflow: hidden; height: 100vh; width: calc( var(--grid_unit) * 16) ; z-index: 8; position: fixed; left: 0; top:0;   }
.illus .illu{  transition: all .2s;  position: absolute; top:0; right:0; opacity: 0; width:100%; height:100% ; object-fit: cover;}
.illus .illu:after{ content: ''; width: 100%; height: 100%; position: absolute; top:0; left:0; background-color: #3E50A2;  opacity: 0.3; transition: all 1s;}
.illus .illu.visible{  opacity: 0.1;  transition: all .2s; }



.about{ margin-top: calc( var(--grid_unit) * 4); padding-bottom: calc( var(--grid_unit) * 4);  width: 100%; }
.about .editor_content{ width:calc( var(--grid_unit) * 12); margin-left: calc( var(--grid_unit) * 5); }
.about .editor_content p{ font-size: calc( var(--fontSize_unit) * 32);  line-height: 1.8em;  }
.about .editor_content h2{ font-size: calc( var(--fontSize_unit) * 32); font-family: var(--font_medium);  line-height: 1.8em; margin:1em 0 }
.about .editor_content h1{ font-size: calc( var(--fontSize_unit) * 32);  line-height: 1.8em; margin:1em 0 }

.about .competences {  width:calc( var(--grid_unit) * 16); margin:calc( var(--grid_unit) * 2) auto;  display: flex;  align-items: center; flex-direction: column;  }
.about .competences h1{  margin-bottom: var(--grid_unit); }
.about .competences .articles{  width: 100%; display: flex;   justify-content: space-between; flex-wrap: wrap;  }
.about .competences article{ width: 30%; margin-top: 40px; }
.about .competences p{ position: relative; padding-bottom: 20px; font-size: calc( var(--fontSize_unit) * 22) }
.about .competences h3{ position: relative; margin-bottom: 20px; text-transform: capitalize; font-size: calc( var(--fontSize_unit) * 32); padding-bottom: 0.5em;  }
.about .competences h3:after{ width: 100%; content: ""; left: 0; height: 1px; opacity: 0.5; position: absolute; bottom: 0; background: white; }

.about .intro_collabs{  margin-bottom: calc(var(--grid_unit) * 2);  }

.about .collabs{ width: calc( var(--grid_unit) * 16); margin:calc( var(--grid_unit) * 2) 0 0  calc( var(--grid_unit) * 4)  ; }
.about .collabs .cols{  width: 100%; margin-top: var(--grid_unit) ; margin-left: var(--grid_unit) ; display: flex; justify-content: space-between; }
.about .collabs .cols .col{ width: 100%;; }
.about .collabs .cols .col li{ margin: 1em 0; }


/*


/^^^^^^^                                                                        
/^^    /^^                                                                      
/^^    /^^          /^^          /^^^^      /^ /^^        /^^^^      /^^     /^^
/^ /^^            /^   /^^      /^^         /^  /^^      /^^          /^^   /^^ 
/^^  /^^         /^^^^^ /^^       /^^^      /^   /^^       /^^^        /^^ /^^  
/^^    /^^       /^                 /^^     /^^ /^^          /^^        /^/^^   
/^^      /^^       /^^^^        /^^ /^^     /^^          /^^ /^^         /^^    
                                            /^^                                 


*/


@media ( max-width: 1500px){


  :root {
    --fontSize_unit: .8px;
    
  }

}


@media ( max-width: 1400px){


  :root {
    --fontSize_unit: .7px;
    
  }

}

@media ( max-width: 800px){


    :root {
      --fontSize_unit: .15vw;
    }
    .txt_s {    font-size:calc( var(--fontSize_unit) * 20); line-height: 1.6em; }
    .txt_20 {    font-size: calc( var(--fontSize_unit) * 28); }
    .txt_l {    font-size: calc( var(--fontSize_unit) * 36); }

    .home .fixed_ui {
      width: 100%;
      padding: calc( var(--grid_unit) * 8) 0 calc( var(--grid_unit) * 2) calc( var(--grid_unit) * 1)   ;
    }
    .home .freelance_loop { left: calc( var(--grid_unit) * 16); top: calc( var(--grid_unit) * 16); width: calc( var(--grid_unit) * 6); height: calc( var(--grid_unit) * 6); }
    .fixed_ui .nav{ transition: all .3s ease-in-out; background: var(--color_bg); justify-content: center; position: fixed; flex-direction: column; width: 100vw; height: 100vh;  top: 0; left: 120vw; }
    .fixed_ui .menu_link{  line-height: 4em; font-size: calc( var(--fontSize_unit) * 44);; }
    .fixed_ui .nav ul {  height: 100vh;  justify-content: center; display: flex; flex-direction: column; align-items: center; }
    .shownav .fixed_ui .nav{ left: 0vw; }
    .fixed_ui .logo .txt{font-size: 5vw!important; }
    .burger{ display: block; z-index: 91;   position: fixed; top:17px; left: calc( 100vw - 50px ); width: 25px; height: 30px; }
    .burger .line{ position: absolute;  transform-origin:50% 50%; left: 50%; top:50%; transition:all .3s; content:''; width: 25px; height: 2px; background: var(--color_txt); transition: all .3s; }
    .burger:hover{ cursor: pointer; }
    .burger .line1{ transform : translateX(-50%) translateY(-8px)  rotate(0deg);   }
    .burger .line2{ transform : translateX(-50%) translateY(0px) rotate(0deg);  }
    .burger .line3{ transform : translateX(-50%) translateY(8px) rotate(0deg);  }
    .shownav .burger .line1{ transform : translateX(-50%) translateY(0) rotate(45deg); transition:all .3s; }
    .shownav .burger .line3{ transform : translateX(-50%) translateY(0)  rotate(-45deg); transition:all .3s .1s; }
    .shownav .burger .line2{ display: none; }

    .fixed_ui .link{ transition: all 0s; margin-left: 0.5em; text-transform: capitalize;  letter-spacing: .1em; opacity: 0; transform: translateX(.5em); font-size: calc( var(--fontSize_unit) * 150); }
    .shownav .fixed_ui .link:nth-child(1){ transition: all .6s cubic-bezier(0.17, 0.67, 0.46, 1.05) .3s ; }
    .shownav .fixed_ui .link:nth-child(2){ transition: all .6s cubic-bezier(0.17, 0.67, 0.46, 1.05) .4s; }
    .shownav .fixed_ui .link:nth-child(3){ transition: all .6s cubic-bezier(0.17, 0.67, 0.46, 1.05) .5s; }
    .shownav .fixed_ui .link{ transform: translateX(0); opacity: 1; letter-spacing: 0;  }

    .home .home_work_item{ min-height: calc( var(--grid_unit) * 16); }
    .home .references .reference {  width: 100%;   margin-left: 0; }
    .home .references .reference .device {  font-size: 1.8vw; }
    .home .surtitre{ font-size: calc( var(--fontSize_unit) * 24); }
    .home .txt{ font-size: calc( var(--fontSize_unit) * 32); }

    .grid .circle1{ top:50vh; width: calc( var(--grid_unit) * 16) ; height: calc( var(--grid_unit) * 16) ; }
    .grid .circle2{ top:50vh; }
    .grid .diag1{ top:50vh; }
    .grid .diag2{ top:50vh; }

    .home .collabs .intro{ font-size: calc( var(--fontSize_unit) * 52); }
    .home .collabs .cols{ flex-wrap: wrap; }
    .home .collabs .col{ padding-left: calc( var(--grid_unit) * 3);  padding-bottom: calc( var(--grid_unit) * 3); width:  calc( var(--fontSize_unit) * 8);  }
    .home .home_cloud .intro{ font-size: calc( var(--fontSize_unit) * 52); }
    .home .next {    width: calc( var(--grid_unit) * 12); }

    .portfolio .realisation_line .work_item{ width: calc( var(--grid_unit) * 16);  }
    .realisation_line .work_item .cover_wraper { height: calc( var(--grid_unit) * 9); }

    .project .cover_wrapper { height:50vh; }
    .project .header { padding-top: calc( var(--grid_unit) * 8) ; height: auto; }
    .work_cloud .work_item {  height: calc( var(--grid_unit) * 12);   width: calc( var(--grid_unit) * 12); }
    .work_cloud .work_item.appear .cover{ opacity: 1; }

    .project .title_wrapper { height:50vh; } 
    .project .title_wrapper {  padding-left: calc( var(--grid_unit) * 4);  }
    .project .bg_cover {  height: 50vh; width: 100%; background-position: center; background-size: cover;  background-attachment: scroll; }

    .about .editor_content{ width: calc( var(--grid_unit) * 16);     margin-left: calc( var(--grid_unit) * 4); }
    .about .competences{ width: calc( var(--grid_unit) * 16);     margin-left: calc( var(--grid_unit) * 4); }
    .about .collabs{  width: calc( var(--grid_unit) * 20);     margin-left: calc( var(--grid_unit) * 2); }
    .about .competences{  flex-direction: column; }
    .about .competences article {   width: 100%; }
    .about .competences p { font-size: calc( var(--fontSize_unit) * 28); }
    .about .txt_xl {   font-size: calc( var(--fontSize_unit) * 62); margin-bottom: 2em;  }

    .contact { flex-direction: column; padding: var(--grid_unit); align-items: flex-start; }
    .projects .mosaique_workitems .work_item{ width: calc( var(--grid_unit) * 10); }
    .contact .intro{ width: auto; }
    .contact .cover { width: 33vw; margin-left: auto; margin-top: var(--grid_unit); }
 
}

@keyframes fadeOut{
    to { opacity: 0; }
}

@keyframes fadeIn{
    to { opacity: 1; }
}

@keyframes slideTitle{
  to{ opacity: 1; transform:translate3D(0,0,0) }
}

@keyframes BeforeAnimIn{
  from{  height:calc( var(--grid_unit) * 8); }
  to{   height:0 }
}
@keyframes BeforeAnimOut{
  from{   height:0 }
  to{  height:calc( var(--grid_unit) * 8);}
}
@keyframes AfterAnimIn{
  from{ height:calc( 100vh - var(--grid_unit) * 8);top: calc( var(--grid_unit) * 8); }
  to{   height:0; top: 100vh; }
}
@keyframes AfterAnimOut{
  to{   height:0; top: 100vh; }
  to{   height:calc( 100vh - var(--grid_unit) * 8); top: calc( var(--grid_unit) * 8); }
}
@keyframes LoaderAnimIn{
  0%{  width:0;  opacity: 0;}
  85%{  width:calc( var(--grid_unit) * 8); opacity: 1; }
  100%{ width:calc( var(--grid_unit) * 8); opacity: 0; }
}


@keyframes home_cloud_cloud_left {
  0% {
    transform: translate3d(0, 0, 0);
  }
  50% {
    transform: translate3d(calc(-100% + 100vw), 0, 0);
  }
  100% {
    transform: translate3d(0, 0, 0);
  }
}

@keyframes home_cloud_cloud_right {
  0% {
    transform: translate3d(calc(-100% - 100vw), 0, 0);
  }
  50% {
    transform: translate3d(0, 0, 0);
  }
  100% {
    transform: translate3d(-100%, 0, 0);
  }
}

@keyframes loop{
  0% {
    transform: rotateZ(0deg) ;
  }
  50% {
    transform: rotateZ(180deg) ;
  }
  100% {
    transform: rotateZ(360deg) ;
  }
}

@keyframes freelance_loop{
  0% {
    transform: rotateZ(0deg) ;
  }
  50% {
    transform: rotateZ(180deg) ;
  }
  100% {
    transform: rotateZ(360deg) ;
  }
}
@keyframes anim_open_ligne{
    0% { width: 0; height: 5px; } 
    100% { width: 100%; height: 1px;}
}
@keyframes anim_open_top{
    0% { transform: translate3d(0, 0, 0)  } 
    100% { transform: translate3d(0, -200vh, 0) rotate(-45deg); }
}
@keyframes anim_open_bottom{
    0% { transform: translate3d(0, 0, 0)  } 
    100% { transform: translate3d(0, 200vh, 0) rotate(-45deg);; }
}

@keyframes anim_page_fadeIn{
  from{  transform: translateY(5px); opacity:0;  }
  to{  transform: translateY(0); opacity:1;  }
 }

@keyframes font_top{
  to{  transform: translate3d(0, 0, 0)  }
 }
 