* {
  margin: 0;
  padding: 0;
}

/* WebKit / Blink (Chrome, Safari, etc.) */
*  {
  -webkit-font-smoothing: antialiased; /* rend plus fin, gris */
  -webkit-text-stroke: 0.2px transparent; /* petit hack parfois utile */
}

/* Firefox */
*  {
  -moz-osx-font-smoothing: grayscale; /* active un lissage gris */
}

/* CSS standard (pas vraiment pris en charge partout) */
*  {
  font-smooth: antialiased; /* quasi inutilisé */
}


@font-face {
  font-family: 'SuisseIntl-Light';
  src: url('../assets/fonts/SuisseIntl/OTF/SuisseIntl-Light.otf') format('opentype');
  font-weight: 100;
  font-style: normal;
}

@font-face {
  font-family: 'SuisseIntl-Medium';
  src: url('../assets/fonts/SuisseIntl/OTF/SuisseIntl-Medium.otf') format('opentype');
  font-weight: 300;
  font-style: normal;
}

@font-face {
  font-family: 'SuisseIntl-Medium';
  src: url('../assets/fonts/SuisseIntl/OTF/SuisseIntl-Medium.otf') format('opentype');
  font-weight: 500;
  font-style: normal;
}

@font-face {
  font-family: 'SuisseIntl-SemiBold';
  src: url('../assets/fonts/SuisseIntl/OTF/SuisseIntl-SemiBold.otf') format('opentype');
  font-weight: 500;
  font-style: normal;
}

@font-face {
  font-family: 'SuisseIntl-Bold';
  src: url('../assets/fonts/SuisseIntl/OTF/SuisseIntl-Bold.otf') format('opentype');
  font-weight: 700;
  font-style: normal;
}

@font-face {
  font-family: 'BebasNeue';
  src: url('../assets/fonts/BebasNeue/BebasNeue-Regular.ttf') format('truetype');
  font-weight: 700;
  font-style: normal;
}

@font-face {
  font-family: 'Right_Grotesk';
  src: url('../assets/fonts/RightGrotesk/RightGrotesk-TightMedium.otf') format('truetype');
  font-weight: 700;
  font-style: normal;
}


body, html {
    margin: 0;
    padding: 0;
    width: 100%;
    height: 100%;
    overflow-x: hidden;
    background: #000;
}

a { 
  text-decoration: none;
  color: #FFF;
}

a[href^="mailto:"]:hover,
a[href^="mailto:"]:focus,
a[href^="mailto:"]:active {
  text-decoration: none;
}

p {
  font-size: 1.125rem;
  line-height: 1.688rem;
  font-family: "SuisseIntl-Medium", sans-serif;
}


.loader {
  position: fixed;
  top: 0; left: 0;
  width: 100%; height: 100%;
  background: transparent;
  display: flex;
  flex-direction: row;
  gap: 0;
  z-index: 99999;
  color: #FFF;
  mix-blend-mode: difference;
}

.boxlineloader {
  width: 5%;
  height: 100%;
}

.lineloader{
  width: 100%;
  height: 100%;
  background: #FFFFFF;
  transition: width 0.5s ease-out;
}

.lineload1 { transition-delay: 0.025s; }
.lineload2 { transition-delay: 0.05s;  }
.lineload3 { transition-delay: 0.075s;  }
.lineload4 { transition-delay: 0.10s;  }
.lineload5 { transition-delay: 0.125s; }
.lineload6 { transition-delay: 0.15s; }
.lineload7 { transition-delay: 0.175s; }
.lineload8 { transition-delay: 0.20s; }
.lineload9 { transition-delay: 0.225s;  }
.lineload10 { transition-delay: 0.25s;  }
.lineload11 { transition-delay: 0.275s;  }
.lineload12 { transition-delay: 0.3s; }
.lineload13 { transition-delay: 0.325s; }
.lineload14 { transition-delay: 0.35s; }
.lineload15 { transition-delay: 0.375s;  }
.lineload16 { transition-delay: 0.40s;  }
.lineload17 { transition-delay: 0.425s;  }
.lineload18 { transition-delay: 0.45s; }
.lineload19 { transition-delay: 0.475s; }
.lineload20 { transition-delay: 0.5s; }

/* État “ouvert” */
.loaderopen .lineloader {
  width: 100%;
}

/* État “fermé” */
.loaderclose .lineloader {
  width: 0%;
}

.loader svg{
  position: absolute;
  top: 50%; left: 50%;
  transform: translate(-50%, -50%);
  width: 38px;
  height: 38px;
  fill: #FFF;
  mix-blend-mode: difference;
  transition: opacity 0.5s ease-out;
  opacity: 0;
  display: flex;
  align-items: center;
  justify-content: center;
}

/* État “ouvert” */
.loaderopen svg {
  opacity: 1;
}

/* État “fermé” */
.loaderclose svg {
  opacity: 0;
}


.bgnoise {
  position: absolute;
  z-index: 9;
  top: -50%;
  left: -50%;
  right: -50%;
  bottom: -50%;
  width: 200%;
  height: 200vh;
  background: transparent url('http://assets.iceable.com/img/noise-transparent.png') repeat 0 0;
  background-repeat: repeat;
  animation: bg-animation .2s infinite;
  opacity: 1;
  visibility: visible;
  display: none;
}

@keyframes bg-animation {
    0% { transform: translate(0,0) }
    10% { transform: translate(-5%,-5%) }
    20% { transform: translate(-10%,5%) }
    30% { transform: translate(5%,-10%) }
    40% { transform: translate(-5%,15%) }
    50% { transform: translate(-10%,5%) }
    60% { transform: translate(15%,0) }
    70% { transform: translate(0,10%) }
    80% { transform: translate(-15%,0) }
    90% { transform: translate(10%,5%) }
    100% { transform: translate(5%,0) }
}

.scene {
  perspective: 900px;
  position: relative;
  height: 100vh;
  display: flex;
  justify-content: center;
  align-items: center;
  background: #000;
  margin-top: -1px;
}

.scene:first-child {
  background: transparent !important;
  height: 100vh !important;
}
.scene:last-child {
  background: transparent !important;
  height: 65vh;
}
.scene:nth-child(2) {
  height: 60vh;
}


.overlay {
  position: fixed;
  z-index: 9997;
  width: 100vw; height: 100vh;
  background: rgba(0, 0, 0, 1);
  opacity: 1;
  backdrop-filter: blur(220px);
  -webkit-backdrop-filter: blur(220px);
  transition: all 0.8s ease-in-out;
  transform: translateZ(0); 
}

header {
  position: fixed;
  z-index: 99998;
  width: 100%;
  display: flex;
  flex-direction: row;
  justify-content: space-between;
  padding-top: 17px;
  padding-bottom: 4px;
  padding-left: 20px;
  padding-right: 20px;
  background: rgba(0, 0, 0, 0);
  backdrop-filter: blur(0px);
  -webkit-backdrop-filter: blur(0px);
}

#headerhome{
  background: rgba(0, 0, 0, 0) !important;
}

header div p {
  color: #FFF;
}

header div{
  cursor: pointer;
}

header div span {
  display: block;
  width: 0%;
  height: 3px;
  background: #FFF;
  margin-top: 3px;
}

.menu{
  display: flex;
  flex-direction: row;
  width: 100%;
  justify-content: space-between;
}


.box_menu {
  display: flex;
  flex-direction: row;
  align-items: center;
  gap: 20px;
}

.nom_span {
  display: flex;
  flex-direction: column;
  gap: 3px;
}

.nom_sotit {
  width: auto;
  display: flex;
  flex-direction: column;
  gap: 3px;
  cursor: pointer;
}

.nom_sotit:hover > .nom_sotit span {
  width: 100%;
}

.nom_sotit span {
  display: block;
  width: 100%;
  height: 3px;
  background: #000;
  margin-top: 3px;
  transition: width 0.35s ease-in-out;
  transform: translateZ(0); 
}

.box_menu svg {
   margin-top: -8px;
}

.box_menu svg rect{
   height: 12px;
   width: 3px;
   fill: #FFF;
   transition: height 0.25s ease-out;
}

.nom_span span {
  transition: width 0.35s ease-in-out;
  transform: translateZ(0); 
}

.box_menu:hover > .nom_span span {
  width: 100%;
}

.box_menu:hover > svg rect:first-child {
  height: 0px;
}

.boxactive svg rect:first-child {
  height: 0px !important;
}

.name span {
  transition: width 0.35s ease-in-out;
  transform: translateZ(0); 
}
.menu span {
  transition: width 0.25s ease-in-out;
  transform: translateZ(0); 
}

.namemob{
  display: none;
  position: fixed;
  z-index: 9997;
  top: 28px; left: 15px;
  color: #FFF;
}

.menumobile{
  position: fixed;
  z-index: 9997;
  top: 15px; right: 15px; 
  height: 48px;
  padding-left: 24px;
  padding-right: 24px;
  flex-direction: row;
  gap: 15px;
  align-items: center;
  justify-content: center;
  border: 1px solid #FFF;
  background: rgba(0, 0, 0, 0.0);
  backdrop-filter: blur(30px);
  -webkit-backdrop-filter: blur(30px);
  transform: translateZ(0); 
  border-radius: 4px;
  color: #FFF;
  display: none;
  transition: all 0.35s ease-in;
}

.menumobile.active {
  background: rgba(0, 0, 0, 1.0);
  color: #FFF;
  border: 1px solid #000;
}

.menumobile.active svg rect{
  fill: #FFF;
}


.menumobile svg{
  width: 24px;
  height: 24px;
  fill: none;
  transform: scale(0.8);
}

.menumobile svg rect{
  width: 3px;
  height: 24px;
  fill: #FFF;
  transition: all 0.25s ease-in-out;
}

.box_menu_mobile{
  position: fixed;
  z-index: 9996;
  width: 100%;
  height: 0dvh;
  top: 0; left: 0;
  transition: all 0.5s ease-in-out;
  overflow: hidden;
}

.cont_box_mob{
  position: absolute;
  width: 100%;
  height: 100vh;
  top: 0; left: 0;
  background: #FFF;
  color: #000;
  padding: 15px;
  transition: all 0.5s ease-in-out;
}

.cont_box_mob .tit_menu{
  margin-top: 14px;
}

.cont_box_mob .listmenumob{
  margin-top: 15vh;
  width: 100%;
  display: flex;
  flex-direction: column;
  gap: 20px;
}

.cont_box_mob .linemenumob{
  width: 0%;
  height: 3px;
  background: #000;
  transition: all 0.5s ease-in-out;
}

.cont_box_mob .wordmenumob{
  position: relative;
  width: 100%;
  display: flex;
  flex-direction: row;
  align-items: center;
  gap: 15px;
  height: 32px;
  overflow: hidden;
}

.cont_box_mob .wordmenumob svg {

}

.cont_box_mob .wordmenumob svg rect{
   height: 12px;
   width: 3px;
   fill: #000;
   transition: height 0.25s ease-out;
}

.cont_box_mob .wordmenumob .h2menumob{
  display: block;
  margin-top: 60px;
  font-size: 2rem;
  line-height: 2.5rem;
  font-family: "SuisseIntl-Medium", sans-serif;
  text-transform: none;
  transition: all 0.5s ease-in-out;
}

.btnmailmenu{
  position: absolute;
  bottom: 22vh;
  width: calc(100% - 30px);
}

.btnmailmenu p {
  text-decoration: none !important;
}

.socialmenumob{
  position: absolute;
  left: 15px; bottom: 32vh;
  width: calc(100% - 30px);
  display: flex;
  flex-direction: column;
  gap: 10px;
  color: #000;
}

.socialmenumob a{
  color: #000 !important;
}
.socialmenumob a p{
  opacity: 1 !important;
}

.socialmenumob p:first-child{
  opacity: 0.3;
}

.socialmenumob p{
  width: 100%;
  text-align: right;
}

.boxcontact{
  position: fixed;
  right: calc(-30vw - 20px); top: 60px;
  z-index: 99999;
  padding: 20px;
  width: 30vw;
  background: #FFF;
  border-radius: 4px;
  display: flex;
  flex-direction: column;
  box-shadow: rgba(149, 157, 165, 0.4) 0px 8px 24px;
  transition: right 0.35s ease-in-out;
}

.boxcontact .closecontact{
  width: 24px; height: 24px;
  border-radius: 4px;
  background: rgba(0, 0, 0, 0);
  display: flex;
  justify-content: center;
  align-items: center;
  cursor: pointer;
}

.boxcontact .closecontact svg{
  fill: none;
  width: 24px;
  height: 24px;
  transform: rotate(0deg);
  transition: transform 0.15s ease-in-out;
}

.closecontact:hover svg{
  transform: rotate(45deg);
}

.closecontact:hover #efface{
  height: 0px;
}

.boxcontact .closecontact svg rect{
  fill: #000;
  transition: height 0.15s ease-in-out;
  width: 3px;
  height: 24px;
}


.boxcontact .titcontact{
  margin-top: 20px;
  width: 100%;
  display: flex;
  flex-direction: column;
  gap: 10px;
}

.boxcontact .tisocontact{
  color: #000;
  opacity: 0.3;
}

.boxcontact h3{
  color: #000;
  font-size: 3.25rem;
  line-height: 3.75rem;
  font-family: "SuisseIntl-Medium", sans-serif;
}

.boxcontact .linecontact{
  width: 100%;
  height: 3px;
  background: #000;
  margin-bottom: 70px;
}

.boxcontact .socontact{
  display: flex;
  flex-direction: row;
  gap: 20px;
  margin-top: 10px;
  margin-bottom: 20px;
}

.boxcontact .socontact .sobox{
  display: flex;
  flex-direction: column;
  gap: 3px;
}

.boxcontact .socontact .sobox span{
  width: 100%;
  height: 3px;
  background: #000;
}

.boxcontact .btn {
  background: #000 !important;
}


.ScrollSmoother-wrapper{
  z-index: 10;
}

.mask_voletmenu {
  position: fixed;
  z-index: 9998;
  top: 10px; right: 10px;
  width: 35vw;
  height: 0vh;
  overflow: hidden;
  display: none;
  transition: height 0.5s cubic-bezier(.51,0,.84,.49);
  transform: translateZ(0); 
}

#voletmenu {
  position: absolute;
  z-index: 9998;
  top: 0px; right: 0px;
  width: 100%;
  height: 75vh;
  background: #000;
}

#voletmenu .list_menu{
  position: absolute;
  left: 0; top: 46%;
  transform: translateY(-50%);
  width: 100%;
  display: flex;
  flex-direction: column;
  gap: 0;
}

#voletmenu .list_menu .row_menu{
  width: 100%;
  display: flex;
  flex-direction: row;
  gap: 0;
  align-items: flex-end;
  padding-top: 40px;
  padding-bottom: 10px;
  cursor: pointer;
  border-bottom: 1px solid rgba(255, 255, 255, 0.2);
}

#voletmenu .list_menu .row_menu:hover > .num_menu{
  opacity: 1;
}

#voletmenu .list_menu .rselect:hover > .nom_menu_up{
  width: 315px;
}
#voletmenu .list_menu .rfolio:hover > .nom_menu_up{
  width: 185px;
}
#voletmenu .list_menu .rabout:hover > .nom_menu_up{
  width: 135px;
}
#voletmenu .list_menu .rcontact:hover > .nom_menu_up{
  width: 180px;
}

#voletmenu .list_menu .row_menu .num_menu{ 
  height: 1.688rem;
  width: 6vw;
  margin-left: 20px;
  margin-bottom: 7px;
  opacity: 0.3;
  overflow: hidden;
  transition: opacity 0.15s ease-out;
  transform: translateZ(0); 
}

#voletmenu .list_menu .row_menu .nom_menu{ 
  position: absolute;
  z-index: 3;
  left: 20%;
  height: 60px;
  overflow: hidden;
  cursor: pointer;
}

#voletmenu .list_menu .row_menu .num_menu p{
  color: #FFF;
}

#voletmenu .list_menu .row_menu .nom_menu p{
  font-size: 48px;
  line-height: 60px;
  color: #FFF;
}

#voletmenu .list_menu .row_menu .nom_menu_up{ 
  position: relative;
  z-index: 5;
  margin-left: -2px;
  height: 60px;
  overflow: hidden;
  cursor: pointer;
  background: #FFF;
  transition: width 0.15s ease-out;
  transform: translateZ(0); 
  width: 0;
}

#voletmenu .list_menu .row_menu .nom_menu_up p{
  position: absolute;
  font-size: 48px;
  line-height: 60px;
  color: #000;
  font-family: "SuisseIntl-Medium", sans-serif;
}

#voletmenu .footer_menu {
  position: absolute;
  left: 0; bottom: 20px;
  width: 100%;
  padding-left: 20px;
  padding-right: 20px;
  display: flex;
  flex-direction: row;
  justify-content: space-between;
}

#voletmenu .footer_menu .social_footer_menu{
  display: flex;
  flex-direction: row;
  gap: 20px;
}

#voletmenu .footer_menu .socialmedia_footer_menu{
  opacity: 0.3;
}

#voletmenu .footer_menu p{
  color: #FFF;
  font-family: "SuisseIntl-Medium", sans-serif;
}


#intro{
  position: fixed;
  top: 0; left: 0;
  z-index: 9;
  width: 100%;
  height: 100vh;
  display: flex;
  background: #000;
}


h1 {
  font-size: 11.875rem;
  line-height: 8.75rem;
  color: #FFF;
  text-transform: uppercase;
  font-family: "Right_Grotesk", sans-serif;
  margin-top: -15px;
}

.h1word{
  position: absolute;
  width: 100%;
  top: 155px;
  transition: all 0.75s 0.25s ease-in-out;
  transform: translateZ(0); 
}

.h1word_mob{
  top: 70px;
  transition: all 0.75s 0.25s ease-in-out;
  transform: translateZ(0); 
}

.h1word_footmob{
  top: 0px;
  transition: all 0.75s 0.25s ease-in-out;
  transform: translateZ(0); 
  color: #000;
}

h2 {
  font-size: 7.5rem;
  line-height: 6.875rem;
  font-family: "Right_Grotesk", sans-serif;
  text-transform: uppercase;
  color: #000;
}


.p_nom { width: 235px; }
.l_nom { width: 40%; text-align: right;}
.digital { width: 40%; }
.and { width: 20%; }
.motion { width: 40%; text-align: right;}
.designer { width: 40%; text-align: left;}
.f25 { width: 30%; }

.digitalintro { width: 40%; }
.andintro { width: 20%; }
.motionintro { width: 40%; text-align: left;}
.designerintro { width: 40%; text-align: right;}

.digitalmob { width: 50%; }
.andmob { width: 50%; }
.motionmob { width: 50%; text-align: left;}
.designermob { width: 100%; text-align: left;}

.titre_box{
  position: absolute;
  z-index: 10;
  left: 13px; top: 50vh;
  transform: translateY(-50%);
  width: calc(100% - 40px);
  height: auto;
  display: flex;
  flex-direction: column;
  gap: 20px;
}

.titre_box .row_word{
  width: 100%;
  display: flex;
  flex-direction: row;
  gap: 0;
}
.titre_box .row_word:last-child{
  justify-content: space-between;
}

.titre_box .row_word .word{
  position: relative;
  height: 140px;
  overflow: hidden;
}

.titre_box .line{
  width: 0%;
  height: 3px;
  background: #FFF;
  margin-left: 7px;
  transition: all 0.75s 0.35s ease-in-out;
  transform: translateZ(0); 
}

.titre_box .skill {
  width: 20%;
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
  align-items: flex-start;
  gap: 2px;
  padding-bottom: 2px;
}

.titre_box .skill p{
  color: #FFF;
  font-family: "SuisseIntl-Medium", sans-serif;
}


.titre_box_mob{
  position: absolute;
  z-index: 10;
  left: 13px; top: 20vh;
  width: calc(100% - 30px);
  height: auto;
  flex-direction: column;
  gap: 15px;
  display: none;
}

.titre_box_mob .row_word_mob{
  width: 100%;
  display: flex;
  flex-direction: row;
  justify-content: space-between;
  gap: 0;
}




.titre_box_mob .row_word_mob .word_mob{
  position: relative;
  height: 65px;
  overflow: hidden;
}

.titre_box_mob .row_word_mob .word_mob h1{
  width: 100%;
  margin-top: -15px;
}

.titre_box_mob .row_word_mob .andmob h1{
  text-align: right;
}
.titre_box_mob .row_word_mob .designermob h1{
  text-align: right;
}

.titre_box_mob .line_mob{
  width: 0%;
  height: 3px;
  background: #FFF;
  transition: all 0.75s 0.35s ease-in-out;
  transform: translateZ(0); 
}

.titre_box_mob .skill_mob {
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
  align-items: flex-start;
  gap: 0px;
  padding-bottom: 2px;
  color: #FFF;
}




.foot_header{
  position: fixed;
  z-index: 9998;
  left: 0px; bottom: 0px;
  width: 100%;
  padding: 20px;
  height: auto;
  display: flex;
  flex-direction: row;
  justify-content: space-between;
  align-items: flex-end;
  height: 55px;
  background: rgba(0, 0, 0, 1);
  mix-blend-mode: none;
}

#foot_head_about{
  display: none;
}

#footheaderhome{
  background: rgba(0, 0, 0, 0.0) !important;
}

.foot_header .langue{
  position: absolute;
  left: 20px; top: 15px;
  display: flex;
  flex-direction: row;
  gap: 20px;
}

.foot_header .langue div{
  display: flex;
  flex-direction: column;
  gap: 3px;
}

.foot_header .langue div p {
  transition: width 0.35s ease-in-out;
  transform: translateZ(0); 
}

.foot_header .langue div span{
  display: block;
  width: 0%;
  height: 3px;
  background: #FFF;
  transition: width 0.35s ease-in-out;
  transform: translateZ(0); 
}

.foot_header .time{ 
  position: absolute;
  right: 20px; top: 15px;
  text-align: right; 
}

.foot_header .langue .inactivelangue { opacity: 0.3;  cursor: pointer;}
.foot_header .langue .activelangue { opacity: 1; }

.foot_header .langue .inactivelangue:hover { opacity: 1; }

.foot_header p{
  color: #FFF;
}

.foot_header .time div{
  display: flex;
  flex-direction: row;
  justify-content: right;
}

.foot_header #clock{
  color: #FFF;
  font-family: "SuisseIntl-Medium", sans-serif;
  line-height: 1.688rem;
}

.timeabout{
  display: none;
}

.foot_header_menu{
  position: absolute;
  z-index: 99998;
  left: 0px; bottom: 107px;
  width: 100%;
  padding: 15px;
  height: auto;
  display: flex;
  flex-direction: row;
  justify-content: space-between;
  align-items: flex-end;
  height: 55px;
  color: #000;
}

.foot_header_menu .langue{
  position: absolute;
  left: 15px; top: 15px;
  display: flex;
  flex-direction: row;
  gap: 20px;
}

.foot_header_menu .langue div{
  display: flex;
  flex-direction: column;
  gap: 3px;
}

.foot_header_menu .langue div p {
  transition: width 0.35s ease-in-out;
  transform: translateZ(0); 
}

.foot_header_menu .time{ 
  position: absolute;
  right: 15px; top: 12px;
  text-align: right; 
}

.foot_header_menu .langue .inactivelangue { opacity: 0.3;  cursor: pointer;}
.foot_header_menu .langue .activelangue { opacity: 1; }

.foot_header_menu .langue .inactivelangue:hover { opacity: 1; }

.foot_header_menu p{
  color: #000;
}

.foot_header_menu .time div{
  display: flex;
  flex-direction: row;
  justify-content: right;
}

.foot_header_menu #clock{
  color: #000;
  font-family: "SuisseIntl-Medium", sans-serif;
  line-height: 1.5rem;
}

.h1_folio{ 
  position: fixed;
  display: flex;
  left: calc(40% + 0px); bottom: 20px;
  z-index: 10;
  width: 40vw;
  height: 155px;
}

.box_h1_folio{
  position: relative;
  height: 155px;
  width: 100%;
  overflow: hidden;
}

.box_h1_folio h1{ margin-left: -7px; }

.h1_folio_mob{ 
  position: fixed;
  display: flex;
  left: 15px; bottom: 12vh;
  z-index: 10;
  width: 50%;
  height: 70px;
}

.box_h1_folio_mob{
  position: relative;
  height: 70px;
  width: 100%;
  overflow: hidden;
}

.videointro{
  position: absolute;
  z-index: 9;
  top: 0; left: 0;
  width: 100%;
  height: 100vh;
  background: 000;
  display: flex;
  justify-content: center;
  align-items: center;
}

.videointro video{
  height: 102%;
  opacity: 0.7;
}

.txtselection {
  position: absolute;
  width: calc(100% - 40px);
  padding-bottom: 20px;
  padding-top: 140px;
  left: 20px;
  top: 0px;
  border-bottom: 3px solid #FFF;
  display: flex;
  flex-direction: row;
  justify-content: right;
  margin-bottom: auto;
}

.txtselection .imgselection{
  position: absolute;
  left: 0; bottom: 30px;
  display: flex;
  flex-direction: row;
  gap: 20px;
  align-items: center;
  height: 80px;
}

.txtselection .imgselection img{
  width: 100px;
  height: 100px;
  object-fit: cover;
}

.txtselection .titretxt{
  width: 40vw;
  display: flex;
  flex-direction: column;
  margin-bottom: auto;
  gap: 70px;
}

.txtselection .titre_select{
  width: 100%;
  color: #FFF;
  font-size: 3.25rem;
  line-height: 3.75rem;
  font-family: "SuisseIntl-Medium", sans-serif;
}

.txtselection .titre_work{
  color: #FFF;
  font-family: "SuisseIntl-Medium", sans-serif;
}

.btn{
  cursor: pointer;
  height: 62px;
  display: flex;
  align-items: center;
  justify-content: center;
  background: #FFF;
  border-radius: 4px;
  padding-left: 50px;
  padding-right: 50px;
  color: #000;
  transition: all 0.35s ease-in-out;
  transform: translateZ(0); 
}

.btn:hover{
  background: #000;
  color: #FFF !important;
  gap: 10px;
}

.btn:hover svg{
  transform: scale(1);
  height: 18px;
  width: 18px;
}

.btn p{
  font-family: "SuisseIntl-Medium", sans-serif;
}

.btn2{
  cursor: pointer;
  height: 62px;
  display: flex;
  align-items: center;
  justify-content: center;
  background: transparent;
  border: 2px solid #000;
  border-radius: 4px;
  padding-left: 50px;
  padding-right: 50px;
  color: #000;
  transition: all 0.35s ease-in-out;
  transform: translateZ(0); 
}

.btn2:hover{
  background: #000;
  color: #FFF !important;
  gap: 10px;
}

.btn2:hover svg{
  transform: scale(1);
  height: 18px;
  width: 18px;
}

.btn2:hover svg path{
  fill: #FFF;
}

.btn2 p{
  font-family: "SuisseIntl-Medium", sans-serif;
}

.btn3{
  cursor: pointer;
  height: 62px;
  display: flex;
  align-items: center;
  justify-content: center;
  background: transparent;
  border: 2px solid #FFF;
  border-radius: 4px;
  padding-left: 50px;
  padding-right: 50px;
  color: #FFF;
  transition: all 0.35s ease-in-out;
  transform: translateZ(0); 
}

.btn3:hover{
  background: FFF;
  color: #000;
}

.boxdiscover{
  position: fixed;
  z-index: 9999;
  width: 400px;
  margin-left: -200px;
  left: 50%; bottom: -100px;
  padding: 5px;
  border: 1px solid rgba(255, 255, 255, 1);
  border-radius: 4px;
  display: flex;
  flex-direction: row;
  align-items: center;
  justify-content: space-between;
  background: rgba(0, 0, 0, 0.0);
  backdrop-filter: blur(30px);
  -webkit-backdrop-filter: blur(30px);
  transition: all 0.35s ease-in-out;
  transform: translateZ(0); 
  color: #FFF;
  cursor: pointer;
}

.boxdiscover:hover{
  background: rgba(255, 255, 255, 1);
  color: #000;
}

.boxdiscover:hover > .btn{
  background: rgba(0, 0, 0, 1);
  color: #FFF;
}

.contlistdiscover{
  position: relative;
  width: 20vw;
  height: 30px;
  overflow: hidden;
}

.listdiscover{
  position: absolute;
  top: 0px; left: 0;
  width: 100%;
  display: flex;
  flex-direction: column;
  gap: 0;
  transition: all 0.35s ease-in-out;
  transform: translateZ(0); 
}

.listdiscover p{
  width: 100%;
  line-height: 30px;
  font-family: "SuisseIntl-Medium", sans-serif;
  padding-left: 20px;
}

 #square {
    position: fixed;
    z-index: 99998;
    width: 0px;
    height: 0px;
    top: 50%; left: 50%;
    border-radius: 100%;
    backdrop-filter: blur(20px);
    -webkit-backdrop-filter: blur(20px);
    pointer-events: none; /* pour ne pas gêner la souris */
    display: flex;
    align-items: center;
    justify-content: center;
    opacity: 0;
    transform: translateZ(0); 
    transition: left 0.15s ease-out, top 0.15s ease-out, width 0.35s ease-out, height 0.35s ease-out, opacity 0.35s ease-out, background 0.35s ease-out, border 0.35s ease-out;
}

  /* Style quand ça bouge */
  #square.moving {
    background: rgba(255, 255, 255, 0.15);
    border: 1px solid rgba(255, 255, 255, 0.2);
    color: #FFF;
  }

  /* Style quand c’est arrêté */
  #square.stopped {
    background: #FFF;
    border: 1px solid #FFF;
    color: #000;
    cursor: pointer;
  }

.plus{
  opacity: 0;
  transform: translateZ(0); 
  transition: opacity 0.35s ease-out,
}

.boxprojet{
  position: fixed;
  z-index: 9993;
  left: 0;
  width: calc(100vw - 30px);
  height: 180px;
  top: calc(50vh - 120px);
  display: flex;
  flex-direction: row;
  color: #FFF;
  overflow: hidden;
  pointer-events: none;
  padding-left: 15px;
  mix-blend-mode: difference;
}

.boxnameprojet{
  margin-top: 70px;
  width: 100%;
  height: 100%;
}

.cont_list{
  position: relative;
  top: 110px; left: 0px;
  width: 100%; height: 110px;
  overflow: hidden;
  transition: all 0.35s ease-out;
  transform: translateZ(0); 
}

.listnameprojet{
  position: absolute;
  top: 0px;
  display: flex;
  flex-direction: column;
  gap: 0;
  justify-content: left;
  width:auto; height: 110px;
  transition: all 0.35s ease-out;
  transform: translateZ(0); 
}
.listnameprojet p{
  font-size: 7.5rem;
  line-height: 6.875rem;
  font-family: "Right_Grotesk", sans-serif;
  text-transform: uppercase;
}

.listnameprojet > * {
    margin: 0;
    padding: 0;
    border: none;
}

.numprojet{
  position: absolute;
  z-index: 99999;
  left: 20px; top: -30px;
  transition: all 0.35s ease-out;
  transform: translateZ(0); 
  height: 30px;
}

.numprojet p{
  line-height: 30px;
  font-family: "SuisseIntl-Medium", sans-serif;
  text-transform: none;
}

.cont_num{
  position: relative;
  width: auto;
  height: 30px;
  display: flex;
  flex-direction: row;
  gap: 10px;
  overflow: hidden;
}

.listnum{
  position: absolute;
  top: 0; left: 0;
  width: auto;
  height: 30px;
  display: flex;
  flex-direction: column;
  gap: 10px;
  transition: all 0.35s ease-in-out;
  transform: translateZ(0); 
}

.listnum p {
  text-align: right;
}

.slash{
  margin-left: 3.3vw;
  opacity: 0.3;
}
.five{
  margin-left: 0.3vw;
  opacity: 0.3;
}


.typeprojet{
  position: absolute;
  z-index: 99999;
  top: 30px; right: 0;
  display: flex;
  height: 100%;
  align-items: flex-end;
  transition: all 0.35s ease-in-out;
  transform: translateZ(0); 
}

.typeprojet p{
  line-height: 30px;
  font-family: "SuisseIntl-Medium", sans-serif;
  text-transform: none;
  color: #FFF;
}

.cont_type{
  height: 30px;
  overflow: hidden;
}

.listtype{
  margin-top: 0px;
  transition: all 0.35s ease-in-out;
  transform: translateZ(0); 
}

.listtype p {
  text-align: right;
}



footer {
  position: fixed;
  z-index: 9;
  bottom: 0; left: 0px;
  width: calc(100% - 0px);
  height: 65vh;
  padding-right: 20px;
  padding-left: 15px;
  display: none;
  background: #FFF;
  color: #000;
  transform: translateZ(0); 
}

.boxfooter {
  position: relative;
  z-index: 99;
  margin-top: 20px;
  width: 100%;
  display: flex;
  flex-direction: column;
  gap: 20px;
}


.boxfooter .boxh2foot h2{
  margin-top: -20px !important;
  color: #000;
}

.boxh2foot{
  position: relative;
  height: 88px;
  overflow: hidden;
}

.h2foot {
  width: 100%;
  position: absolute;
  top: 90px;
  transition: all 0.5s ease-in-out;
  transform: translateZ(0); 
}

.boxfooter .linefoot{
  width: 0;
  height: 3px;
  background: #000;
  margin-top: 0px;
  margin-left: 5px;
  transition: all 0.5s ease-in-out;
  transform: translateZ(0); 
}

.boxfooter .rowfooter{
  width: 100%;
  display: flex;
  flex-direction: row;
  justify-content: flex-end;
}

.boxfooter .rowfooter:first-child{
  justify-content: space-between;
}

.boxfooter .rowfooter:last-child{
  justify-content: left;
}

.boxfooter .rowfooter .firstbloc{
  display: flex;
  flex-direction: row;
  gap: 20px;
}

.boxfooter .footercontact{
  height: 100%;
  display: flex;
  flex-direction: column;
  gap: 5px;
  justify-content: flex-end;
  margin-top: -4px;
  margin-left: 10px;
}

.h1size{ width: 40%; }
.h1fix{ margin-left: auto; }

.boxfooter .footercontact p{
  font-family: "SuisseIntl-Medium", sans-serif;
  text-transform: none;
}

footer .social {
  height: 105%;
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
}

footer .social a{
  color: #000 !important;
}

.sotit {
  opacity: 0.3;
  margin-bottom: 10px;
}

.copyright{
  position: absolute;
  z-index: 99;
  bottom: 20px; left: 50%;
  transform: translateX(-50%);
  opacity: 0.3;
}

.copyright p{
  font-family: "SuisseIntl-Medium", sans-serif;
  text-transform: none;
}


.footermobile{
  position: fixed;
  z-index: 1;
  bottom: 0; left: 0px;
  width: 100vw;
  height: 70vh;
  background: #EFEFEF;
  color: #000;
  transform: translateZ(0); 
}

.footer_titre_mob{
  position: absolute;
  top: 15px; left: 15px;
  width: calc(100% - 30px);
  display: flex;
  flex-direction: column;
  gap: 15px;
}

.footer_titre_mob .row_word_footmob{
  width: 100%;
  display: flex;
  flex-direction: row;
}

.footer_titre_mob .row_word_footmob .word_footmob{
  position: relative;
  height: 45px;
  overflow: hidden;
}

.footer_titre_mob .row_word_footmob .word_footmob h1{
  position: absolute;
  top: 0px;
  width: 100%;
  margin-top: -10px;
}

.footer_titre_mob .line_footmob{
  width: 100%;
  height: 3px;
  background: #000;
  transition: all 0.75s 0.35s ease-in-out;
  transform: translateZ(0); 
}

.footer_titre_mob .row_word_footmob .socfootmob{
  height: 65px;
  display: flex;
  flex-direction: column;
  gap: 10px;
  text-align: right;
}

.footer_titre_mob .row_word_footmob .socfootmob p:first-child{
  opacity: 0.3;
}

.longfoot { width: 100%; }
.midfoot { width: 50%; }
.trifoot { width: 38%; }
.andfoot { width: 24%; }
.rightfoot h1{ text-align: right; }

.copyrightfoot{
  position: absolute;
  z-index: 99;
  bottom: 15px; left: 44%;
  transform: translateX(-50%);
  opacity: 0.3;
}

.btnmailfoot{
  margin-top: 70px;
}



/** PORTFOLIO **/

.mainportfolio {
  width: 100vw;
  height: 100vh;
}

.bandeaufolio {
  position: fixed;
  left: 0; bottom: 0;
  z-index: 999;
  width: 100vw;
  height: auto;
  flex-direction: row;
  justify-content: space-between;
  align-items: flex-end;
  padding: 15px;
  background: rgba(0, 0, 0, 0.5);
  border-top: 1px solid rgba(255, 255, 255, 0.2);
  backdrop-filter: blur(30px);
  -webkit-backdrop-filter: blur(30px);
  color: #FFF;
  gap: 40px;
  display: none;
}

.bandeaufolio .videobandeau{
  position: relative;
  width: 280px;
  height: 64px;
  overflow: hidden;
}

.bandeaufolio .videobandeau video{
  position: absolute;
  top:0; left: 50%;
  transform: translateX(-50%);
  height: 102%;
  overflow: hidden;
}

.titfolio{
  position: absolute;
  z-index: 100;
  left: 0px; top: -40px;
  display: flex;
  flex-direction: row;
  width: 40vw;
}  

.maskfocus{
  position: absolute;
  width: 100%;
  left: 0; top: 0px;
  height: 30px;
  overflow: hidden;
}  

.contfocus {
  position: absolute;
  top: 0px; left: 0;
  width: 100%;
  height: absolute;
  display: flex;
  flex-direction: column;
  transition: all 0.35s ease-in-out;
  transform: translateZ(0); 
}  

.contfocus p{
  font-family: "SuisseIntl-Medium", sans-serif;
  color: #FFF;
  text-transform: none;
  line-height: 30px;
  height: 30px;
}  

.txtintrofolio {
  position: fixed;
  width: 340px;
  z-index: 2;
  left: 20px;
  top: 15vh;
}

.txtintrofolio p{
  font-family: "SuisseIntl-Medium", sans-serif;
  color: #FFF;
  text-transform: none;
}

.boxvisuelprojet{
  position: fixed;
  z-index: 1;
  left: 20px; bottom: 20px;
  display: flex;
  height: 420px;
  width: 40vw;
  background: rgba(255,255,255,0.025);
}

.boxvisuelprojet .maskvisuelprojet {
  position: relative;
  width: 0%;
  height: 420px;
  overflow: hidden;
  transition: width 1s ease-in-out;
}

.boxvisuelprojet .visuelprojet {
  position: absolute;
  width: 40vw;
  height: 420px;
}

.boxvisuelprojet .visuelprojet .bgvisuelprojet{
  position: relative;
  top: 0; left: 0;
  z-index: 5;
  height: 100%;
  display: flex;
  justify-content: center;
  align-items: center;
  overflow: hidden;
}

.boxvisuelprojet .visuelprojet .bgvisuelprojet video{
  position: absolute;
  height: 105%;
}

.boxvisuelprojet .visuelprojet .imgpro{
  position: absolute;
  top: 0; left: 0;
  width: 100%;
  overflow: hidden;
}

.boxvisuelprojet .visuelprojet .hover{
  z-index: 10;
  height: 420px;
  transition: height 0.5s ease-in;
  transform: translateZ(0); 
}
.boxvisuelprojet .visuelprojet .nohover{
  z-index: 1;
  height: 0px;
  transition: height 0.5s ease-out;
  transform: translateZ(0); 
}

.boxvisuelprojet .visuelprojet .imgpro img{
  width: 100%;
  height: 420px;
  object-fit: cover;
  transition: all 0.5s ease-in-out;
  transform: translateZ(0); 
}

.boxvisuelprojet .visuelprojet .hover img{
  transform: scale(1);
  filter: blur(0px);
  -webkit-filter: blur(0px);
}
.boxvisuelprojet .visuelprojet .nohover img{
  transform: scale(3);
  filter: blur(80px);
  -webkit-filter: blur(80px);
}

.gradientlist{
  position: fixed;
  z-index: 999;
  right: 0; top: 0;
  background: #000;
  width: 50vw;
  height: 60px;
}


.scroll-container {
  position: absolute;
  z-index: 999;
  width: 100vw;
  display: flex;
  height: 100vh;
  overflow-y: auto;
}

.scroll-container-projet {
  width: 70vw !important;
}

.scroll-container {
  overflow-y: scroll;       /* scroll vertical activé */
  scrollbar-width: none;    /* Firefox */
}

.scroll-container::-webkit-scrollbar {
  display: none;            /* Chrome, Safari, Edge */
}

.linelist{
  position: fixed;
  top: 48px; left: 50vw;
  width: 1px;
  height: calc(100vh - 48px);
  background: rgba(255, 255, 255, 0.2);
}


.scroll-list {
  position: relative;
  z-index: 999;
  width: calc(50vw - 40px);
  display: flex;
  flex-direction: column;
  margin-left: auto;
  margin-right: 20px;
  padding-right: 0px;
}

.bgitem {display: none;}
.item {
  position: relative;
  display: flex;
  align-items: center;
  gap: 20px;
  padding: 20px;
  padding-left: 0;
  padding-right: 0;
  background: rgba(255, 255, 255, 0);
  border-bottom: 3px solid rgba(255, 255, 255, 1);
  color: #FFF;
  transition: all 0.35s ease-out;
  transform: translateZ(0); 
  cursor: pointer;
  min-height: 165px;
  pointer-events: auto;
}

.item .maskreveal{
  position: absolute;
  z-index: 1;
  top: 0;
  height: 0%;
  z-index: 30;
  width: 100%;
  transition: all 0.45s ease-out;
  transform: translateZ(0); 
  overflow: hidden;
}

.item .maskreveal .contreveal{
  position: absolute;
  top: 20px; left: 0;
  width: 100%;
  height: 120px;
  transition: all 0.35s ease-out;
  transform: translateZ(0); 
}

.item .maskreveal .contreveal .imgitem{
  display: flex;
  flex-direction: row;
  gap: 20px;
}

.item .maskreveal .contreveal .imgitem img{
  width: 120px;
  height: 120px;
  object-fit: cover;
}


.item .btngo {
    position: absolute;
    z-index: 10;
    width: 62px;
    height: 62px;
    top: calc(50% - 31px); right: -82px;
    border-radius: 4px;
    background: #FFF;
    display: flex;
    align-items: center;
    justify-content: center;
    transition: all 0.35s ease-out;
    transform: translateZ(0); 
}

.btngo svg rect{
   height: 12px;
   width: 3px;
   fill: #000;
   transition: height 0.25s ease-out;
}

.item .btngo:hover {
  background: #000;
}


.item .maskreveal .contreveal .btngo  .plus{
  opacity: 0;
  transition: opacity 0.35s ease-out;
}


.item:hover .maskreveal{
  height: 100%;
  width: 100%;
}

.item:hover > .maskreveal .contreveal .btngo {
  transform: scale(1);
}

.item:hover > .cont_item .number{
  top: -35px;
}
.item:hover > .cont_item .title{
  bottom: -90px;
}
.item:hover > .cont_item .tags{
  bottom: -35px;
}
.item:hover > .cont_item .date{
  top: -35px;
}

.item:hover > .btngo{
  right: 0px;
}

.item .cont_item{
  position: relative;
  z-index: 1;
  width: 100%;
  height: 100%;
  overflow: hidden;
}

.number {
  position: absolute;
  top: 0px; right:0;
  font-family: "SuisseIntl-Medium", sans-serif;
  color: #FFF;
  letter-spacing: 0.25;
  text-transform: uppercase;
  opacity: 0.3;
  transition: all 0.35s ease-out;
  transform: translateZ(0); 
}

.tags {
  position: absolute;
  bottom: 0; right: 0%;
  display: flex;
  align-items: center;
  justify-content: center;
  opacity: 1;
  transition: all 0.35s ease-out;
  transform: translateZ(0); 
  font-family: "SuisseIntl-Medium", sans-serif;
  text-transform: none;
}

.date {
  position: absolute;
  top: 0; left:0;
  font-family: "SuisseIntl-Medium", sans-serif;
  text-transform: none;
  opacity: 1;
  transition: all 0.35s ease-out;
  transform: translateZ(0); 
  display: none;
}

.title{
  position: absolute;
  bottom: -90px; left:0;
  font-size: 5rem;
  line-height: 4.375rem;
  color: #FFF;
  text-transform: uppercase;
  font-family: "Right_Grotesk", sans-serif;
  opacity: 1;
  transition: all 1s ease-in-out;
  transform: translateZ(0); 
}

.tags span {
  font-family: "SuisseIntl-Medium", sans-serif;
  text-transform: none;
  margin-right: 10px;
}

.mainportfolio a {
  color: none;
  text-decoration: none;
}

/** PROJETS **/

.mainprojet{
  position: fixed;
  z-index: 999;
  top: 0px; right: 0;
  width: 70vw; height: 100vh;
  text-align: right;
  overflow: auto;
  scrollbar-width: none;
}

.gradientprojet{
  position: fixed;
  z-index: 9990;
  right: 0; top: 0;
  background: #000;
  width: 70%;
  height: 60px;
}

.mainprojet .contentprojet{
  position: absolute;
  top: 40px; right: 0px;
  width: 70vw;
  height: auto;
  padding: 20px;
  display: flex;
  flex-direction: column;
}

.mainprojet::-webkit-scrollbar {
  display: none;            /* Chrome, Safari, Edge */
}

.mainprojet .contentprojet .maskprojet{
  width: 0%;
  overflow: hidden;
  transition: width 0.75s ease-in-out;
}

.mainprojet .contentprojet img{
  width: 70vw;
  margin-bottom: 20px;
}

.mainprojet .contentprojet img:last-child{
  margin-bottom: 0px !important;
}

.mainprojet .contentprojet video{
  width: 70vw;
  margin-bottom: 20px;
}

.headprojetmobile{
  display: none;
  width: 100%;
  flex-direction: column;
  gap: 15px;
  margin-top: 120px;
}

.headprojetmobile .boxh1head{
  position: relative;
  height: 65px;
  overflow: hidden;
}

.headprojetmobile .boxh1head h1{
  position: absolute;
  top: 65px;
  color: #FFF;
  text-align: left;
  line-height: 4.5rem;
  transition: top 0.75s ease-in-out;
}

.headprojetmobile .lineheadpro{
  width: 0%;
  height: 3px;
  background: #FFF;
  transition: width 0.75s ease-in-out;
}

.infosprojet {
  position: fixed;
  z-index: 999;
  top: 100px; left: 0;
  width: 30vw; height: calc(100vh - 150px);
  display: flex;
  flex-direction: column;
  padding: 20px;
}

.infosprojet .introinfo{
  position: absolute;
  left: 20px;
  bottom: 40vh;
  width: calc(100% - 20px);
  height: auto;
  display: flex;
  flex-direction: column;
  gap: 5vh;
  padding-bottom: 20px;
  border-bottom: 3px solid rgba(255,255,255,1);
}

.infosprojet .restinfo{
  position: absolute;
  left: 20px;
  bottom: 20px;
  width: calc(100% - 40px);
  height: auto;
  display: flex;
  flex-direction: column;
  gap: 30px;
  color: #FFF;
}

.btnsprojet {
  position: absolute;
  z-index: 9990;
  left: 20px; top: 80px;
  display: flex;
  flex-direction: row;
  gap: 15px;
  align-items: center;
}

.btnprojet {
  display: flex;
  align-items: center;
  justify-content: center;
  height: 62px;
  font-family: "SuisseIntl-Medium", sans-serif;
  text-transform: none;
  border-radius: 4px;
  padding-left: 50px;
  padding-right: 50px;
  transition: all 0.35s ease-in-out;
  transform: translateZ(0); 
  cursor: pointer;
  gap: 0px;
}

.btnprojet:hover{
  gap: 10px;
}

.btnprojet:hover svg{
  transform: scale(1);
  height: 18px;
  width: 18px;
}

.btnfermer {
  background: #FFF;
  color: #000;
}

.btnsuiv {
  background: transparent;
  border: 1px solid rgba(255,255,255,1);
  color: #FFF;
}

#btnplus {
  position: absolute;
  right: 5px;
  width: 42px;
  height: 42px;
  background: rgba(255, 255, 255, 1);
  border: 2px solid #FFF;
  border-radius: 4px;
  display: flex;
  justify-content: center;
  align-items: center;
  transition: all 0.35s ease-out;
}


#btnplus svg rect{
   height: 12px;
   width: 3px;
   fill: #000;
   transition: all 0.25s ease-out;
}

.btnsuiv svg rect{
  fill: #FFF !important;
}

.btnsuiv svg path{
  fill: #FFF !important;
  transition: all 0.35s ease-out;
}

.btnprojet svg{
  height: 0px;
  width: 0px;
  transform: scale(0);
  transition: all 0.35s ease-in-out;
}

.btnprojet svg rect{
   height: 18px;
   width: 3px;
   fill: #000;
}

.btnprojet svg path{
   fill: #000;
   transition: all 0.35s ease-out;
}

.btn svg{
  height: 0px;
  width: 0px;
  transform: scale(0);
  transition: all 0.35s ease-in-out;
}

.btn svg rect{
   height: 18px;
   width: 3px;
   fill: #000;
}

.btn svg path{
   fill: #000;
   transition: all 0.35s ease-out;
}

.btn2 svg{
  height: 0px;
  width: 0px;
  transform: scale(0);
  transition: all 0.35s ease-in-out;
}

.btn2 svg rect{
   height: 18px;
   width: 3px;
   fill: #FFF;
}

.btn2 svg path{
   fill: #FFF;
   transition: all 0.35s ease-out;
}

.infosprojet .introinfo video {
  height: 17vh;
}

.infosprojet .introinfo .infotit {
  display: flex;
  flex-direction: row;
  justify-content: space-between;
  align-items: flex-end;
}

.infosprojet .introinfo .infotit h3{
  font-size: 5rem;
  line-height: 4.375rem;
  font-family: "Right_Grotesk", sans-serif;
  text-transform: uppercase;
  color: #FFF;
}

.infosprojet .introinfo .infotit .btnvisit{
  width: 36px;
  height: 36px;
  background: transparent;
  border: 1px solid rgba(255, 255, 255, 0.3);
  border-radius: 4px;
  display: flex;
  justify-content: center;
  align-items: center;
  transition: all 0.35s ease-in-out;
  cursor: pointer;
}

.infosprojet .introinfo .infotit .btnvisit svg{
  width: 12px;
  height: 12px;
  fill: none;
  transition: all 0.35s ease-in-out;
}

.infosprojet .introinfo .infotit .btnvisit svg path{
  fill: #FFF;
  transition: all 0.35s ease-in-out;
}

.infosprojet .introinfo .infotit .btnvisit:hover{
  background: #FFF;
  border: 1px solid rgba(255, 255, 255, 1);
}

.infosprojet .introinfo .infotit .btnvisit:hover svg path{
  fill: #000;
}

.infosprojet .restinfo .infotag{
  display: flex;
  flex-direction: row;
  gap: 15px;
  opacity: 0.3;
}

.infotag{
  opacity: 0.3;
}

.infoprojetmobile {
  display: none;
  position: fixed;
  z-index: 9995;
  left: 15px; bottom: 15px;
  width: calc(100% - 30px);
  padding: 5px;
  flex-direction: column;
  background: rgba(0,0,0,0.5);
  border: 1px solid rgba(255, 255, 255, 1);
  backdrop-filter: blur(30px);
  color: #FFF;
  border-radius: 4px;
}

.infoprojetmobile .h2infomob {
  height: 42px;
}

.infoprojetmobile .h2infomob  h2{
  font-family: "SuisseIntl-Medium", sans-serif;
  text-transform: none;
  font-size: 1rem;
  line-height: 42px;
  color: #FFF;
  margin-left: 10px;
}

.infoprojetmobile .typepromob{
  opacity: 0.3;
}

.infoprojetmobile .btnsprojetmob{
  position: absolute;
  left: 0px;
  bottom: 10px;
  display: flex;
  flex-direction: row;
  gap: 10px;
  width: calc(100% - 10px);
}

.infoprojetmobile .btnsprojetmob div{
  flex: 1;
}


.maskinfomob{
  position: relative;
  width: 100%;
  height: 0px;
  overflow: hidden;
  transition: all 0.5s ease-in-out;
}

.continfomob{
  position: absolute; 
  top: 0; left: 10px;
  display: flex;
  padding-top: 20px;
  flex-direction: column;
  gap: 15px;
  height: 490px;
}

.continfomob .videoinfoprojetmob{
  position: relative;
  width: 200px;
  height: 5vh;
  overflow: hidden;
  display: none;
}

.continfomob .videoinfoprojetmob video{
  position: absolute;
  min-height: 105%;
  min-width: 105%;
  width: 105%;
  height: 105%;
  left: 50%; top: 50%;
  transform: translate(-50%, -50%);
}

.restinfomob {
  display: flex;
  flex-direction: column;
  gap: 15px;
  margin-bottom: 100px;
}

.infodate{
  opacity: 0.3;
}


/** ABOUT **/

.content_about {
  margin-top: 50vh;
  width: 100vw;
  height: 3000px;
  background: #FFF;
}


.mainabout {
  position: absolute;
  z-index: 99;
  width: 100vw; height: 100vh;
}

.contentabout {
  background: #000;
  border-bottom: 1px solid rgba(255, 255, 255, 0.2);
  width: 100vw; height: 110vh;
  overflow: hidden;
}

.contaboutmob{
  width: 100%;
  height: 100%;
  background: transparent;
}

.downloadcv{
  position: absolute;
  z-index: 999999;
  right: calc(40vw + 40px); top: calc(100vh - 50px);
  display: flex;
  flex-direction: column;
  gap: 3px;
  cursor: pointer;
}

.downloadcv:hover span{
  width: 100%;
}


.linkabout {
  flex-direction: column !important;
  gap: 3px !important;
  justify-content: left !important;
  cursor: pointer;
}

.linkabout:hover  span{
  width: 100%;
}

.linkabout span{
  width: 0%;
  height: 3px;
  background: #FFF;
  transition: all 0.35s ease-in-out;
  transform: translateZ(0); 
}


.downloadcvmob {
  width: 100%;
  display: none;
}
.downloadcvmob p{
  color: #FFF;
}

.downloadcv p{
  color: #FFF;
  font-family: "SuisseIntl-Medium", sans-serif;
  text-transform: none;
  transition: all 0.35s ease;
  transform: translateZ(0); 
}

.downloadcv span{
  width: 0%;
  height: 3px;
  background: #FFF;
  transition: all 0.35s ease-in-out;
  transform: translateZ(0); 
}

.titabout {
  position: absolute;
  z-index: 20;
  top: 120px; left: 20px;
  width: calc(60vw - 60px);
  padding-bottom: 20px;
  border-bottom: 3px solid #FFF;
}

.titabout .h2{
  width: 90%;
  color: #FFF;
  font-size: 2rem;
  line-height: 2.5rem;
  font-family: "SuisseIntl-Medium", sans-serif;
}

.txtselection .titre_select{
  width: 100%;
  color: #FFF;
  font-size: 3.25rem;
  line-height: 3.75rem;
  font-family: "SuisseIntl-Medium", sans-serif;
}

.aboutinfo{
  position: absolute;
  z-index: 20;
  width: calc(60vw - 20px);
  right: calc(40vw + 40px);
  top: 50vh;
  display: flex;
  flex-direction: column;
  align-items: right;
  justify-content: right;
  gap: 40px;
}

.aboutinfo .boxaboutinfo{
  display: flex;
  flex-direction: column;
  align-items: right;
  justify-content: right;
  gap: 10px;
}

.aboutinfo .boxaboutinfo div{
  display: flex;
  flex-direction: row;
  align-items: right;
  justify-content: right;
  gap: 30px;
}

.linkabout {
  flex-direction: column !important;
  gap: 3px !important;
  justify-content: left !important;
  cursor: pointer;
}

.linkabout:hover  span{
  width: 100%;
}

.linkabout span{
  width: 0%;
  height: 3px;
  background: #FFF;
  transition: all 0.35s ease-in-out;
  transform: translateZ(0); 
}

.aboutinfo .boxaboutinfo div p{
  font-family: "SuisseIntl-Medium", sans-serif;
  color: #FFF;
  text-transform: none;
  transition: all 0.35s ease;
  transform: translateZ(0); 
  flex: 0 0 auto; 
  white-space: nowrap;
}

.titboxaboutinfo{
  font-family: "SuisseIntl-Medium", sans-serif;
  color: #FFF;
  text-transform: none;
  text-align: right;
  opacity:0.35;
} 


.borderphoto {
  position: absolute;
  z-index: 20;
  width: 40vw; 
  right: 20px; bottom: 20px;
}

.maskphoto {
  position: relative;
  width: 0%; 
  height: 40vw;
  display: flex;
  overflow: hidden;
  transition: width 0.75s ease-in-out;
}

.maskphoto .photo1{
  position: absolute;
  z-index: 10;
  width: 40vw;
  height: 100%;
  display: flex;
  justify-content: center;
  align-items: center;
  overflow: hidden;
  transition: all 0.5s ease-in-out;
  transform: translateZ(0); 
}

.maskphoto .photo1 img{
  width: 100%; height: 100%;
}

.maskphoto .photo2{
  position: absolute;
  z-index: 20;
  width: 40vw;
  height: 100%;
  display: flex;
  justify-content: center;
  align-items: center;
  overflow: hidden;
  border-radius: 100%;
  animation: spin var(--spin-duration) linear infinite;
  display: none;
}

:root { --spin-duration: 12s; }        /* change la vitesse ici */

@keyframes spin { to { transform: rotate(360deg); } }


.maskphoto .photo2 img{
  position: absolute;
  z-index: 10;
  width: 100%; height: 100%;
}

.maskphoto .photo2 .circlephoto{
  position: absolute;
  z-index: 15;
  width: 94%; height: 94%;
  border: 1px solid rgba(255, 255, 255, 0.2);
  border-radius: 100%;
  display: flex;
  justify-content: center;
  align-items: center;
}

.maskphoto .photo2 .circlephoto .contcirclephoto{
  display: flex;
  flex-direction: row;
  justify-content: space-between;
  align-items: center;
  width: 80%;
  height: auto;
}
.maskphoto .photo2 .circlephoto .contcirclephoto .namephoto{
  text-align: right;
}

.maskphoto .photo2 .circlephoto .contcirclephoto .bulletphoto{
  width: 8px; height: 8px;
  background: #FFF;
  border-radius: 100%;
}

.maskphoto .photo2 .circlephoto .contcirclephoto p{
  font-size: 0.875rem;
  color: #FFF;
  font-family: "SuisseIntl-Medium", sans-serif;
  letter-spacing: 0.15px;
  text-transform: uppercase;
}

.footerabout{
  display: flex !important;
  z-index: 0;
}

.ball {
  
  --delay:0s;
  --size:0.4;
  --speed: 20s;
  
  aspect-ratio:1;
  width:calc( 150% * var(--size) );
  
  background: linear-gradient(259.53deg, #995721 19%, #786130 8%, #231E16 73%);
  filter:blur( 10vw );
  
  border-radius:50%;
  
  position:absolute;
  top:0;
  left:0;
  
  animation: loop var(--speed) infinite linear;
  animation-delay: var(--delay);
  transform-origin: 50% 50%;
  
  opacity:0.8;
}

@keyframes loop {
  0% { transform: translate3D( 0%, 51%, 0 ) rotate(0deg); }
  5% { transform: translate3D( 8%, 31%, 0 ) rotate(18deg); }
  10% { transform: translate3D( 22%, 13%, 0 ) rotate(36deg); }
  15% { transform: translate3D( 40%, 2%, 0 ) rotate(54deg); }
  20% { transform: translate3D( 46%, 21%, 0 ) rotate(72deg); }
  25% { transform: translate3D( 50%, 47%, 0 ) rotate(90deg); }
  30% { transform: translate3D( 53%, 80%, 0 ) rotate(108deg); }
  35% { transform: translate3D( 59%, 98%, 0 ) rotate(125deg); }
  40% { transform: translate3D( 84%, 89%, 0 ) rotate(144deg); }
  45% { transform: translate3D( 92%, 68%, 0 ) rotate(162deg); }
  50% { transform: translate3D( 99%, 47%, 0 ) rotate(180deg); }
  55% { transform: translate3D( 97%, 21%, 0 ) rotate(198deg); }
  60% { transform: translate3D( 80%, 7%, 0 ) rotate(216deg); }
  65% { transform: translate3D( 68%, 25%, 0 ) rotate(234deg); }
  70% { transform: translate3D( 59%, 41%, 0 ) rotate(251deg); }
  75% { transform: translate3D( 50%, 63%, 0 ) rotate(270deg); }
  80% { transform: translate3D( 38%, 78%, 0 ) rotate(288deg); }
  85% { transform: translate3D( 21%, 92%, 0 ) rotate(306deg); }
  90% { transform: translate3D( 3%, 79%, 0 ) rotate(324deg); }
  100% { transform: translate3D( 0%, 51%, 0 ) rotate(360deg); }
  
}

.glow-container {
  overflow-x:hidden;
  overflow-y: hidden;
  position:fixed;
  width:100%;
  height: 100%;
}



