/*   DESIGN & DEVELOPMENT
     by Manu LECHAT
     http://www.e-lechat.com
*/


/*

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

*/

:root {
  --grid_unit: calc(100vw / 24);
  --fontSize_unit: 0.05vw;
  --color_txt : white;
  --color_txt_alt: black
  --color_deep: white;
  --color_bg: #111623;
  --color_bg_dark: #0C101B;
  
}


.toggle_light{

  --color_txt : black;
  --color_bg: white;
  --color_bg_dark: white;
  
}


/*

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

 */


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

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


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



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


/*

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

                                                           */


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

/* titles */

.txt_xs { font-size: calc( var(--fontSize_unit) * 12); }
.txt_s { font-size: calc( var(--fontSize_unit) * 15); }
.txt_m { font-size: calc( var(--fontSize_unit) * 19); }
.txt_l { font-size: calc( var(--fontSize_unit) * 36);  }
.txt_ll { font-size: calc( var(--fontSize_unit) * 44); line-height: 1.25em; }
.txt_xl { font-size: calc( var(--fontSize_unit) * 80); }
.txt_xxl { font-size: calc( var(--fontSize_unit) * 110); }
.txt_xxxl { font-size: calc( var(--fontSize_unit) * 136);  }
.txt_oversise{ font-size: calc( var(--fontSize_unit) * 240); z-index: -1; color: var(--color_deep); opacity: 0.34; }




/*

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


::selection {  background-color: #4d84f1; opacity: 0.5; transition: all .3s; ; color: #fff;  text-shadow: none; }
* {  box-sizing: border-box; outline: none; }
html{  top:0; left: 0; margin: 0; padding: 0;   }
body{   width: 100vw; max-width: 100%; font-family: "Regular"; background-color: var(--color_bg); color: var(--color_txt); margin: 0; padding: 0; top:0; left: 0; }
body {  background-color: #193c6d;  margin: 0px;}
.body_bg { z-index: -2; width: 100%;   height: 100vh;  top:0;   left: 0; position: fixed;  background-color: #193c6d;  background-size: 100% 100vh;  background-repeat: no-repeat;  background-position: fixed;  background-image: linear-gradient(135deg,  #026897, #003073, #111623);  margin: 0px;}

/* ZONE OPEN */

.open_container{   width: 100vw; height: 100vh; top: 0; left: 0; overflow: hidden; position: fixed; top: 0; left: 0;  z-index: 99;  }
.open_container .volet{  width: 100vw; height: 50vh; position: absolute;  background: #fff; z-index: 99; }
.open_container .volet_haut{ top: 0; }
.open_container .volet_bas{ bottom: 0; }
.open_container .ligne{  z-index: 1000; animation:  2.3s  anim_open_ligne cubic-bezier(.92,.01,.43,.99)0s 1 normal forwards; top: 50vh; width: 0; height: 1px; background: #09152d; position: absolute; }
.open_container.opening .volet_haut{  animation: anim_open_top  1.3s  cubic-bezier(.92,.01,.43,.99)0s 1 normal forwards;}
.open_container.opening .volet_bas{  animation: anim_open_bottom  1.3s cubic-bezier(.92,.01,.43,.99) 0s 1 normal forwards;}
.open_container.opening  .ligne{ display: none; }


body.shownav{ overflow: hidden; }

div, 
figure{  position: relative; display: block;  }
header, 
section, 
footer,  
main{  margin: 0; padding: 0; width: 100%; max-width: 100vw; display: block; position: relative;  overflow-x: hidden;  z-index: 2}


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; }
h1,h2,h3,h4{  display: block; width: auto; clear: both; break-after: always;  margin: 0; line-height: 1.15em;  font-weight: lighter } 

a{ display: inline-block; color: var(--color_txt); transition:all .3s; text-align: left; text-decoration: none;  }
a:hover{ cursor: pointer;  opacity: 1; }
.bold{ font-family: "Bold"; }
.regular{ font-family: "Regular"; }
.semibold{ font-family: "SemiBold"; }
.light{ font-family: "Light"; }
p{ font-family: "Light"; clear: both; margin-top: .3em; font-size: calc( var(--fontSize_unit) * 14); font-weight: lighter; position: relative;  line-height: 1.5em; letter-spacing: 0; ;  }
p .min{ position: relative; margin-left: 30px;   }
p .min::before { background: var(--color_txt); content: '';display: inline-block; position: absolute; width: 20px; top: 8px; height: 1px; left: -30px; }

p.txt_s{ line-height: 1.8em; }
.coolgrey{ color:var(--color_txt_alt);  }
.semibold{ font-family: "Semibold";  }
.center{ text-align: center; }
strong{ font-family: "Bold";  }
.maj{ text-transform: uppercase; letter-spacing: 0.2em;  }
.bigOne{ z-index: -1;  color:var(--color_deep); position: absolute; top :calc( var(--grid_unit) * 5); left: calc( var(--grid_unit) * 14);; }
#barba-wrapper{ width:  100%; max-width: 100vw; }
.barba-container { min-height: calc( 100vh - var(--grid_unit) * 2); width:  100%; max-width: 100vw; position: relative; left: 0; }
.color_txt_alt{color: var(--color_txt_alt); }
.logo{ z-index: 100;; position: fixed; width: calc( var(--grid_unit) * 1);  left: calc( var(--grid_unit) * 1) ; top: calc( var(--grid_unit) * 1) ; }
.footer{ border-top:1px solid rgba(255,255,255,0.05); width: 100%; padding: calc( var(--grid_unit) * 1) calc( var(--grid_unit) * 1); display: flex; justify-content: space-between; }
.cover_blue:after{ z-index: 2; background-color: #3E50A2;  opacity: 0.35;  content: ''; width: 100%; height: 100%; position: absolute; top:0; left:0;transition: all 1s;}


/* grid */

.grid { z-index: -1; opacity: 0.05; position: fixed; top:0; left: 0; width: 100%; overflow: hidden; height: 100vh; }
.grid .verticl{ position: fixed; height: 100vh; border-left:1px solid white; width: 0px;; }
.grid .verticl1{ left: calc( var(--grid_unit) * 4) ; }
.grid .verticl2{ left: calc( var(--grid_unit) * 8) ; }
.grid .verticl3{ left: calc( var(--grid_unit) * 12); z-index: 9;}
.grid .verticl4{ left: calc( var(--grid_unit) * 16) ; }
.grid .verticl5{ left: calc( var(--grid_unit) * 20) ; }
.grid .circle1{ border:1px solid white;   position: absolute; transform: translate(-50%,-50%);  top: calc( var(--grid_unit) * 4) ; left: calc( var(--grid_unit) * 12) ; width: calc( var(--grid_unit) * 8) ; height: calc( var(--grid_unit) * 8); border-radius: 100% ; }
.grid .circle2{ border:1px solid white;   position: absolute;  transform: translate(-50%,-50%);  top: calc( var(--grid_unit) * 4) ; left: calc( var(--grid_unit) * 12) ; width: calc( var(--grid_unit) * 11.60) ; height: calc( var(--grid_unit) * 11.60); border-radius: 100% ;  }
.grid .horiztl{  position: absolute; width: 100vw; border-bottom:1px solid white; height: 0px;; } 
.grid .horiztl1{   top: calc( var(--grid_unit) * 4) ;  } 
.grid .horiztl2{   top: calc( var(--grid_unit) * 8) ;  } 
.grid .diag{ position: absolute; height: 200vh; transform: translate(-50%,-50%);  top: calc( var(--grid_unit) * 4) ; left: calc( var(--grid_unit) * 12) ; transform-origin:50% 50%; border-left:1px solid white; width: 0px;  }
.grid .diag1{  transform: translate(-50%,-50%) rotate(45deg); }
.grid .diag2{ transform: translate(-50%,-50%) rotate(-45deg); }

/* nav  */


/* editor_content */

.editor_content{ width: calc( var(--grid_unit) * 12); margin: auto;  }
.editor_content h1{ font-size: calc( var(--fontSize_unit) * 80); }
.editor_content h2{ font-size: calc( var(--fontSize_unit) * 36); }
.editor_content p{font-size: calc( var(--fontSize_unit) * 19); padding: 1em; line-height: 1.8em; max-width: 60%;; }


/* home */

.home .header{  width: 100%;  padding-top: calc( var(--grid_unit) * 4); padding-left: calc( var(--grid_unit) * 6); padding-right: calc( var(--grid_unit) * 2); padding-bottom: calc( var(--grid_unit) * 2); }
.home .header h3{    }
.home .header h3 span{ transform: translate3d(0,1.1em,0);  height:.88em;position: relative; animation: font_top  1.4s cubic-bezier(.92,.01,.43,.99) 2s 1 normal forwards;; }
.home .header .surtitre{ line-height: 1.2em; margin-bottom: 1em; }

.home .dep44{ opacity: 0.5; letter-spacing: 0.5em; position: absolute; top: calc( var(--grid_unit) * 6);  left: calc( var(--grid_unit) * 20); transform: rotate(90deg); }
.home .dep56{ opacity: 0.5; letter-spacing: 0.5em; position: absolute; top: calc( var(--grid_unit) * 7); left: calc( var(--grid_unit) * 21);  transform: rotate(90deg); }

.home .home_intro_swiper{ width: 100%; height: calc( var(--grid_unit) * 3); }
.home .home_intro_swiper .swiper-wrapper{ width: 100%; height: calc( var(--grid_unit) * 4); }
.home .home_intro_swiper .swiper-slide{ width: 100%; height: 100%}
.home .home_intro_swiper .swiper-slide .titre{ transform:translateX(30px); opacity: 0; transition: all .3s; }
.home .home_intro_swiper .swiper-slide-active .titre{ transform:translateX(0px);opacity: 1; }
.home .home_intro_swiper .swiper-slide .txt{ transform:translateX(30px); opacity: 0; transition: all .3s .3s; }
.home .home_intro_swiper .swiper-slide-active .txt{ transform:translateX(0px);opacity: 1; }
canvas{ position: fixed; top: 0; left: 0; width: 100%; height: 100vh; }

.main_contact{ position: fixed; z-index: 10; top:var(--grid_unit) ; right: var(--grid_unit); }

.home .freelance_loop{  animation: freelance_loop  40s infinite linear;   border-radius:calc( var(--grid_unit) * 2);position: absolute; left:  calc( var(--grid_unit) * 17);  top:  calc( var(--grid_unit) * 1); width:calc( var(--grid_unit) * 2); height: calc( var(--grid_unit) * 2);  }

.home .intro{ width:calc( var(--grid_unit) * 18); padding-top:  var(--grid_unit);  margin-left: calc( var(--grid_unit) * 5);  margin-bottom: calc( var(--grid_unit) * 2);  }
.home .intro p{  line-height: 1.8em; }

.home .references{  width: 100%;  padding-top: calc( var(--grid_unit) * 2); padding-left: 0; padding-right: 0; padding-bottom: calc( var(--grid_unit) * 2); }
.home .txt_oversise{  position: relative; opacity: 0.1;  transition: all 8s cubic-bezier(.17,.67,.32,.96);  top:0; left: 3em; } 
.home .txt_oversise.appear{ left: -0.5em }


.home .references .reference{  width: calc( var(--grid_unit) *20); margin-left: calc( var(--grid_unit) * 2); }
.home .references .reference .device{ background-size: 100% auto; background-repeat: no-repeat; font-size: 1vw; margin:var(--grid_unit) auto; }
.home .references .reference .borne{ width: 50em; height: 35em; overflow: hidden; background-image: url(../images/device_borne.png);  }
.home .references .reference .borne .screen{  width: 49em;  height: 28em;  margin: 0.5em auto 0 auto;   }
.home .references .reference .macbook{ width: 50em; height: 35em; overflow: hidden; background-image: url(../images/device_macbook.png);  }
.home .references .reference .macbook .screen{  width: 38em;  height: 22em;  margin: 1.5em auto 0 auto;   }
.home .references .reference .imac{ width: 46em; height: 46em; overflow: hidden; background-image: url(../images/device_imac.png);  }
.home .references .reference .imac .screen{  width: 44em;  height: 22em;  margin: 1.5em auto 0 auto;   }
.home .references .reference .mobile_v{   width: 46em; height: 55em; overflow: hidden; background-image: url(../images/device_mobile_v.png);  }
.home .references .reference .mobile_v .screen{  width: 19em;  height: 34em;    margin: 5em auto 0 auto;  overflow: hidden;  }
.home .references .reference video{ position: absolute; top: 0; left: 0; width:100%; height:  100%; object-fit: cover;  z-index: 5;  }
.home .references .reference .video_cover{ position: absolute; top: 0; left: 0; width: 100%; height: 100%; object-fit: cover; z-index: 1; }
.home .references .reference p{ position: absolute; top:2em; left: 2em; z-index: 0; }
.home .intro_collabs{ width: 100%;  margin: 0 auto; }
.home .collabs{ width: 100%;  padding-top: calc( var(--grid_unit) * 2); padding-left: calc( var(--grid_unit) * 4); padding-right: calc( var(--grid_unit) * 2); padding-bottom: calc( var(--grid_unit) * 1); }
.home .collabs .cols{  width: calc( var(--grid_unit) * 16); margin-top: var(--grid_unit) ; margin-left: var(--grid_unit) ; display: flex; justify-content: space-between; }
.home .collabs .cols .col{ width: calc( var(--grid_unit) * 4); padding-right: 10% ; }
.home .collabs .cols .col li{ margin: 1em 0; }

.home .home_cloud{ height: auto;  padding-top: calc( var(--grid_unit) * 2); width: 100%;  padding-bottom: calc( var(--grid_unit) * 1); }
.home .home_cloud .intro{ z-index: 3; position: absolute; left: calc( var(--grid_unit) * 4); top: calc( var(--grid_unit) * -0.25);; }
.home .home_cloud .cloud_item{ padding: 0; margin: 10px; }
.home .home_cloud .cloud_item .caption{ height: 0; width: 0; overflow: hidden; }
.home .home_cloud .home_cloud_line{ justify-content: stretch; align-items: center;  position: relative; flex-wrap: wrap;  display: flex; width:700vw;  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;  opacity: 0.6;  }
.home .home_cloud  .patchwork_img_1{  transform: perspective(500px) translateZ(20px);  }
.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 .home_cloud .link_contact{   margin-top: calc( var(--grid_unit) * 1);  margin-left:calc( var(--grid_unit) * 14); }

.home .next{ padding: var(--grid_unit); margin: calc( var(--grid_unit) * 1) 0 0 calc( var(--grid_unit) * 4) ; height: auto; width: calc( var(--grid_unit) * 16); padding-bottom: calc( var(--grid_unit) * 1); border-top: 1px solid white; }
.home .next .link{  padding-top: var(--grid_unit); width: 100%; }
.home .next .link:hover{ text-decoration: underline; }
.home .next .link.right{ text-align: right; }

.home .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; }
.home .accroche_txt {    margin-bottom: calc( var(--grid_unit) * 1);    height: auto; line-height: 1.3em;  text-align: left;}
.home .accroche_txt a{ text-decoration: underline; }
/* projects  */

.projects .header {  overflow: visible; padding-top: calc( var(--grid_unit) * 2);  padding-left: calc( var(--grid_unit) * 2); }
.projects .header .page_surtitle{  margin-left: calc( var(--grid_unit) * 2) ;  }
.projects .header .page_title{ opacity: 0;  animation: slideTitle 3s cubic-bezier(0.17, 0.9, 0.46, 1) .2s  1 normal forwards; transform: translate3d(20px, 0, 0);  margin-left: calc( var(--grid_unit) * 2); transition: all .3s; }
.projects .intro{ margin-top:calc( var(--grid_unit) * 2); margin-left: calc( var(--grid_unit) * 5);  width:calc( var(--grid_unit) * 15); }
.projects .page_intro{ position: absolute; width:calc( var(--grid_unit) * 4); line-height: 1.23em;  left: calc( var(--grid_unit) * 16); top: calc( var(--grid_unit) * 3) ;}
.projects .projects_cloud{  display: flex; flex-wrap: wrap; justify-content: flex-start;  padding-top: calc( var(--grid_unit) * 2); padding-bottom: calc( var(--grid_unit) * 3) ;  margin-left: calc( var(--grid_unit) * 3) ;  width: calc( var(--grid_unit) * 20 ); overflow-x: hidden; overflow-y: hidden; }
.projects .next { width: 100%; display: flex; justify-content: flex-end;  margin-bottom:calc( var(--grid_unit) * 3);  }
.projects .next .txt_next{ margin-top: var(--grid_unit) }
.projects .next .projects_link{   width:calc( var(--grid_unit) * 8);  }
.projects .next .link{ transition: all .3s;  width:calc( var(--grid_unit) * 10);  border-bottom:1px solid white;  margin-right:calc( var(--grid_unit) * 5); margin-left:calc( var(--grid_unit) * 1); height: auto; padding:  calc( var(--grid_unit) * 0.1 ) 0 }
.projects .next .link:hover{ padding-left:  calc( var(--grid_unit) * 0.5 )   }
.projects .txt_oversise{ opacity: 0;  transform: translateX(30%); transition: all 2.8s cubic-bezier(.17,.67,.32,.96); position: fixed; top:calc( var(--grid_unit) * 4); left:calc( var(--grid_unit) * -1);  }
.projects .txt_oversise.appear{ opacity: 0.3;  transform: translateX(0%);}
/* project_pad */

.project_pad{  margin-right: calc( var(--grid_unit) * 1); transform: translate3d(0,40px,0); transition: all .7s;  width:calc( var(--grid_unit) * 7);   height: 100%; margin-bottom:calc( var(--grid_unit) * 1);}
.project_pad.appear{  transform: translate3d(0,0px,0); }
.project_pad .title{  opacity: 0.5;  padding: 1em 0;  height: 1em; overflow: hidden; transition: all .8s; }
.project_pad:hover .title{   opacity: 1; }
.project_pad .cover{ overflow: hidden;  position: relative;  }
.project_pad:hover{ cursor:pointer; }
.project_pad:hover .cover {}
.project_pad .cover img{ width:100%; height: 100%; object-fit: cover; transition: all .3s ease-in-out; transform:scale(1.05) }
.project_pad .cover:hover img{ transform:scale(1) }
.project_pad .project_pad_footer{  width: 100%;  padding: calc( var(--fontSize_unit) * 30) 0;; }
.project_pad:nth-child(6n+1){ width:calc( var(--grid_unit) * 5);   }
.project_pad:nth-child(6n+1) .cover{ height:calc( var(--grid_unit) * 7); }
.project_pad:nth-child(6n+2){ width:calc( var(--grid_unit) * 7); margin-top:calc( var(--grid_unit) * 2);  margin-right:calc( var(--grid_unit) * 2); ; }
.project_pad:nth-child(6n+2) .cover{ height:calc( var(--grid_unit) * 5); }
.project_pad:nth-child(6n+3){  width:calc( var(--grid_unit) * 7);  margin-left:calc( var(--grid_unit) * 1); margin-top:calc( var(--grid_unit) * 1);  }
.project_pad:nth-child(6n+3) .cover{ height:calc( var(--grid_unit) * 5); }
.project_pad:nth-child(6n+4){ width:calc( var(--grid_unit) * 6);   }
.project_pad:nth-child(6n+4) .cover{ height:calc( var(--grid_unit) * 6); }
.project_pad:nth-child(6n+5){  width:calc( var(--grid_unit) * 6); margin-top:calc( var(--grid_unit) * 1);  margin-left:calc( var(--grid_unit) * 5);  }
.project_pad:nth-child(6n+5) .cover{ height:calc( var(--grid_unit) * 6); }
.project_pad:nth-child(6n+6){ margin-top:calc( var(--grid_unit) * 5); width:calc( var(--grid_unit) * 7);  }
.project_pad:nth-child(6n+6) .cover{ height:calc( var(--grid_unit) * 4); }
.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 .header {  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 .header .surtitre{ margin-bottom: 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 .page_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;  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) * 10); margin-right: calc( var(--grid_unit) * 1); }
.project .screens_wrapper .image2{   width: calc( var(--grid_unit) * 10); }
.project .screens_wrapper .image3{    width: calc( var(--grid_unit) * 21);   }
.project .screens_wrapper .image4{   width: calc( var(--grid_unit) * 10); margin-right: calc( var(--grid_unit) * 1); }
.project .screens_wrapper .image5{   width: calc( var(--grid_unit) * 10); }
.project .screens_wrapper .image6{    width: calc( var(--grid_unit) * 21); }

.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 { width: 100%; display: flex; justify-content: center; margin-top:calc( var(--grid_unit) * 2);   }
.project .next .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) * 8);  }
.project .next .project_pad .cover{ height:calc( var(--grid_unit) * 5); }
.project .next .txt_next{ margin-top: var(--grid_unit) }
.project .next .projects_link{   width:calc( var(--grid_unit) * 8);  }
.project .next .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 .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 {    margin-bottom: calc( var(--grid_unit) * 1);    height: auto; line-height: 1.3em;  text-align: left;}

/* error */
.error { width: 100vw; height: 70vh  ; }
.error .content{ position: absolute; top:50%; left: 50%; transform: translate(-50%, -50%); display: block;  width: auto; height: auto; padding:1em; overflow: hidden;  }


/* 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); font-family: "Bold"; margin: 1em 0 }
.default .content p{  margin:1em }

/* burger */

.burger{ z-index: 10;  position: fixed; top:var(--grid_unit); left: calc(var(--grid_unit) * 22.5 ) ; width: calc( var(--grid_unit) * 0.5); height: calc( var(--grid_unit) * 0.2); display: flex; flex-direction: column; justify-content: space-between;  }
.burger .line{ transform-origin:75% 50%; transform : translateX(0) rotate(0deg); transition:all .3s; content:''; width:100%; height: 2px; background: white; transition: all .3s; }
.burger:hover{ cursor: pointer; }
.burger:hover .line1{ transform : translateX(-10%) rotate(0deg); transition:all .3s; }
.burger:hover .line2{ transform : translateX(-10%) rotate(0deg); transition:all .3s .1s; }
.shownav .burger .line1{ transform :  translateX(-10%)rotate(45deg); transition:all .3s; }
.shownav .burger .line2{ transform :  translateX(-10%) rotate(-45deg); transition:all .3s .1s; }
.shownav .burger:hover .line1{ transform :  translateX(0%)rotate(45deg); transition:all .3s; }
.shownav .burger:hover .line2{ transform :  translateX(0%) rotate(-45deg); transition:all .3s ; }


/* ariane */

.ariane{ margin-left: calc( var(--grid_unit) * 4); margin-top:  calc( var(--grid_unit) * 1); min-width: calc( var(--grid_unit) * 18);  }
.ariane ul{ display: flex; margin: 0; margin-block-start: 0;  }
.ariane ul a:hover{ text-decoration: underline;  }
.ariane ul li{ padding-right: 0.5em;   }
/* .ariane ul li:before{ content:" / ";   } */

.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; }

.toggle{ z-index: 11; position: fixed; padding:1em;  top: calc( var(--grid_unit) * 2); left: calc( var(--grid_unit) * 6); }
.toggle:hover{ background: red; }

.work_cloud{  width:calc( var(--grid_unit) * 24);;  display: flex; flex-direction: row; flex-wrap: wrap; padding-top: calc( var(--grid_unit) * 4);  }

.work_cloud .work_item{  height:calc( var(--grid_unit) * 4);  transition: all .3s; width:calc( var(--grid_unit) * 6);  }
.work_cloud .work_item:after{ width:50%; content:''; height:0; border-bottom: 1px solid white; position: absolute; bottom:  var(--grid_unit)  }
.work_cloud .work_item .cover{ ; width: 100%; height: 100%; overflow: hidden; overflow: hidden;  opacity: 0; transition: all 3s; }
.work_cloud .work_item .cover:after{ content: ''; width: 100%; height: 100%; position: absolute; top:0; left:0; background-color: #3E50A2;  opacity: 0.6; mix-blend-mode: screen; transition: all 1s;}
.work_cloud .work_item:hover .cover{  transition: all .3s; opacity: 1; cursor:pointer; }
.work_cloud .work_item .cover img{  width:100%; height: 100%; object-fit: cover;  }
.work_cloud .work_item .work_item_txt{ position: absolute; top: 0; left: 0; padding: 2em ; height:100%; width: 100%;   }

.work_cloud.listing{  flex-direction: column; }
.work_cloud.listing .work_item{ padding: 0; height:calc( var(--grid_unit) * 2); width:calc( var(--grid_unit) * 16); margin-left: calc( var(--grid_unit) * 4); }
.work_cloud.listing .work_item .cover{ opacity: 0; }
.work_cloud.listing .work_item:hover .cover{ opacity: 1; }
.work_cloud.listing .work_item .work_item_txt{ transform:scale(0.8) ; }


.patchwork_cloud{  display: flex; flex-wrap: wrap;  width:calc( var(--grid_unit) * 24);;  }
.patchwork_img{  height:calc( var(--grid_unit) * 2); width: auto; margin: calc( var(--grid_unit) * 0.15); }
.big .patchwork_img{  height:calc( var(--grid_unit) * 4); } 



/*


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


*/


@media ( max-width: 1500px){


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

}


@media ( max-width: 1400px){


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

}

@media ( max-width: 800px){


  :root {
    --fontSize_unit: .1vw;
  }
  .txt_s {    font-size:calc( var(--fontSize_unit) * 22); }
  .txt_m {    font-size: calc( var(--fontSize_unit) * 28); }
  .txt_l {    font-size: calc( var(--fontSize_unit) * 36); }

.home .header {
    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); }
  .logo {     width: calc( var(--grid_unit) * 4); }
  .burger {  left: auto; right: calc(var(--grid_unit) * 1 );  width: calc( var(--grid_unit) * 2); height: calc( var(--grid_unit) * 1); }

.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); }
.home .collabs .cols {    width: 100% ;}
.home .collabs{ padding-left: 0; }
.home .collabs p{ margin-left: calc( var(--grid_unit) * 4); }
.home .collabs .cols .col{ width: auto; padding-right: 3%; }
/* .grid .circle2{ width: calc( var(--grid_unit) * 16) ; } */
.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); }


.project .cover_wrapper { height:50vh; }
.project .bg_cover {    height: 60vh; width: 100%; background-position: top; background-size: cover; }
.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; }
}
@keyframes fadeOut{
    to { opacity: 0; }
}

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

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

/* before body  */
/* 
@keyframes BeforeAnimOut{
  to{  opacity: 1; }
} */


@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; }
}

/* after body  */
/* 
@keyframes AfterAnimOut{
  from{  height:calc( var(--grid_unit) * 8);  }
  to{  height: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 freelance_loop{
  0% {
    transform: rotate(0deg);
  }
  50% {
    transform: rotate(180deg);
  }
  100% {
    transform: rotate(360deg);
  }
}
@keyframes anim_open_ligne{
    0% { width: 0; opacity: 1; transform: translate3d(50vw, 0, 0)  } 
    100% { width: 100%; opacity: 1; transform: translate3d(0, 0, 0); }
}
@keyframes anim_open_top{
    0% { transform: translate3d(0, 0, 0)  } 
    100% { transform: translate3d(0, -50vh, 0); }
}
@keyframes anim_open_bottom{
    0% { transform: translate3d(0, 0, 0)  } 
    100% { transform: translate3d(0, 50vh, 0); }
}

@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)  }
 }
 