@charset "UTF-8";

@import url('https://fonts.googleapis.com/css2?family=Libre+Baskerville:ital,wght@0,400;0,700;1,400&display=swap');

.libre-baskerville-regular {
   font-family: "Libre Baskerville", serif;
   font-weight: 400;
   font-style: normal;
}

.libre-baskerville-bold {
   font-family: "Libre Baskerville", serif;
   font-weight: 700;
   font-style: normal;
}

.libre-baskerville-regular-italic {
   font-family: "Libre Baskerville", serif;
   font-weight: 400;
   font-style: italic;
}

body {
   font-family: Libre Baskerville;
   background-color: black;
   overflow-y: hidden;
}

#main_container {
   height: 100dvh;
   width: 100dvw;
   overflow-x: scroll;
   overflow-y: hidden;
   background-color: rgb(0, 0, 0);
   /* scroll-snap-type: x mandatory; */
}

.footer {
   position: absolute;
   height: 7%;
   width: 100%;
   z-index: 20;
   bottom: 0;
   display: flex;
   justify-content: center;
   align-content: center;
   align-items: center;
   justify-items: center;
   box-sizing: border-box;
   opacity: 0;
   transition: opacity 1s cubic-bezier(0.08, 0.34, 0.38, 0.98);

}

.navigator_container {
   position: relative;
   height: 10px;
   width: auto;
   display: flex;
   align-items: center;
}

.navigator_cell {
   height: 8px;
   width: 8px;
   display: flex;
   flex: none;
}

.circle {
   border-radius: 100%;
   border: 1px solid rgb(218, 218, 218);
   display: flex;
   justify-items: center;
   align-items: center;
   justify-content: center;
   align-content: center;
}

.stroke {
   height: 1px;
   background-color: rgb(218, 218, 218);
}

.click-inner-circle {
   position: absolute;
   width: 6px;
   height: 6px;
   border-radius: 100%;
   background-color: rgb(255, 123, 0);
   opacity: 0;
}

.moving-inner-circle {
   position: absolute;
   width: 6px;
   height: 6px;
   border-radius: 100%;
   background-color: white;
   /* Same color as the background of large circles */
   transition: all 0.5s ease;
   /* For smooth movement */
}

/* ---------------------------------------- */

#caroussel {
   height: 100%;
   width: 100%;
   background-color: rgb(0, 0, 0);
   overflow-y: hidden;
   display: flex;
   overflow-x: scroll;
   /* scroll-snap-type: x mandatory; */
   /* Enable horizontal snapping */
   scroll-behavior: smooth;
   /* Smooth scrolling */
}

#caroussel.lock-scroll {
   overflow: hidden;
}



#intro {
   height: 100%;
   width: 100%;
   background-color: black;
   display: flex;
   flex: none;
   justify-content: center;
   align-items: flex-end;
   /* transition: width 1s cubic-bezier(0.86, 0.02, 0.19, 0.98); */
   transition: width 1s cubic-bezier(0.08, 0.34, 0.38, 0.98);
   /* Add transition for smooth width change */
   cursor: pointer;
}

#text_intro {
   position: absolute;
   z-index: 10;
   width: 100%;
   height: 55%;
   color: rgb(255, 255, 255);
   display: flex;
   flex-direction: column;
   justify-content: flex-start;
   align-items: center;
   overflow: hidden;
   pointer-events: none;
   /* Ajoutez ces propriétés pour le positionnement et le centrage */
   top: 70%;
   left: 50%;
   transform: translate(-50%, -50%);
}


.text_intro_line:not(#line0) {
   line-height: 125%;
   font-size: 2.5em;
   text-shadow: 0 0 2px rgba(255, 255, 255, 0.8);
}

.text_intro_line {
   transition: opacity 0.5s ease;
   /* Add transition for smooth fade-in effect */
}

#line0 {
   color: aliceblue;
   font-size: 1em;
   opacity: 70%;
   line-height: 300%;
   user-select: none;
}

#line2 {
   transform: translateY(0.3em);
   /* Translate line2 1em down */
   opacity: 0;
   /* Set initial opacity to 0% */
   transition: all 0.5s;
   user-select: none;
}

#line3 {
   transform: translateY(0.3em);
   /* Translate line2 1em down */
   opacity: 0;
   /* Set initial opacity to 0% */
   transition: all 0.5s;
   user-select: none;
}

#fader {
   position: absolute;
   width: 100%;
   height: 100%;
   background: linear-gradient(to right, rgba(0, 0, 0, 1) 0%, rgba(0, 0, 0, 0) 25%);
   flex: none;
}

.scene {
   flex: none;
   width: 1920px;
   min-height: 100dvh;
   display: flex;
   justify-content: center;
   align-items: center;
   position: relative;
   overflow: hidden;
}

.scene img {
   width: 100%;
   height: 100%;
   object-fit: cover;
}


/* ------- TEXTE -------*/
.text_container {
   position: absolute;
   width: 80%;
   height: 80%;
   background-color: rgba(0, 0, 255, 0);
   display: flex;
   align-items: top;
   justify-content: top;
   color: white;
}

.strings_container {
   width: auto;
   display: flex;
   flex-direction: column;
   bottom: 0;
   margin-bottom: 10px;
   font-family: Libre Baskerville;
   /* Adjust the spacing as needed */
}

.string {
   /* background-color: rgba(0, 0, 0, 0.5); */
   position: absolute;
   color: white;
   padding: 5px 10px;
   border-radius: 5px;
   font-size: clamp(20px, 1.5vw, 50px);
   opacity: 0;
   transition: opacity 0.3s;
   line-height: 1.35;
   text-shadow: 1px 1px 5px #000;
}

/* .string:hover {
   font-size: 23px;
   transition: all 0.3s;
} */

.string.visible {
   opacity: 1;
   /* Make text visible */
}

.string.hidden {
   opacity: 0;
   /* Make text hidden */
}


/* ---------------- CARTE_POSTALE -------------------*/
.carte_postale_container {
   position: absolute;
   width: 60%;
   height: 78%;
   max-height: calc(0.66 * 70dvw);
   max-width: 70dvw;
   min-height: calc(0.66 * 350px);
   min-width: 350px;
   display: flex;
   align-items: center;
   justify-content: center;
   opacity: 0;
   perspective: 2000px;
   pointer-events: none;
   transition: opacity 0.5s ease-in-out, transform 0.35s ease, box-shadow 0.35s ease;
}

.carte_postale_container img {
   height: auto;
   width: auto;
   max-height: 100%;
   max-width: 100%;
   object-fit: contain;
}

.carte_postale_container.visible {
   opacity: 1;
   pointer-events: auto;
   transform: opacity 1s ease;
   cursor: pointer;
}

.carte_postale_container.visible:hover {
   transform: scale(1.02);
   transition: all 0.35s ease;
}

.flip-card {
   /* width: 60%;
   height: 78%; */
   display: flex;
   flex: none;
   align-items: center;
   justify-content: center;
   perspective: 1000px;
}

.flip-card-inner {
   position: relative;
   width: 100%;
   height: 100%;
   text-align: center;
   transition: transform 0.6s;
   transform-style: preserve-3d;
}

.flip-card-inner.flipped {
   transform: rotateY(180deg);
}

.flip-card-front,
.flip-card-back {
   position: absolute;
   top: 0;
   left: 0;
   width: 100%;
   height: 100%;
   -webkit-backface-visibility: hidden;
   backface-visibility: hidden;
   box-shadow:
      3px 3px 3px rgba(0, 0, 0, 0.5);
   transition: box-shadow 0.5s ease;
}


.flip-card-front img,
.flip-card-back img {
   width: 100%;
   height: 100%;
   object-fit: fill;
}

.flip-card-back {
   background-color: #f0d9c2;
   transform: rotateY(180deg);
   display: flex;
   box-shadow:
      /* -1px -1px 1px rgba(255, 243, 205, 0.5), */
      3px 3px 3px rgba(0, 0, 0, 0.5);
}

.flip-card-front:hover,
.flip-card-back:hover {
   box-shadow:
      /* Top left bevel */
      10px 10px 10px rgba(0, 0, 0, 0.5);
   /* Bottom right shadow */
   transition: box-shadow 0.5s ease;
}

.flip-card-back-container {
   width: 100%;
   height: auto;
   /* background-color: aqua; */
   margin: 5%;
   display: flex;
   /* flex: none; */
}

.flip-card-back-subcontainer {
   display: flex;
   align-items: center;
   justify-content: center;
   line-height: normal;
   font-size: clamp(11px, 1vw, 18px);
   flex: 1;
   padding: 10px;
   text-align: left;
   box-sizing: border-box;
   overflow-y: auto;
}

.flip-card-back-subcontainer img {
   width: 100%;
   height: auto;
   object-fit: contain;
}


.string,
.text_intro_line {
   user-select: none;
   /* Empêche la sélection du texte */
}

/* ----------- */
.decors {
   transition: opacity 0.5s ease-in-out;
}

.trigger {
   pointer-events: click;
}

@media (max-width: 600px) {
   #caroussel {
      height: 100%;
      width: 100%;
      display: flex;
      align-items: center;
      align-content: center;
   }

   .scene {
      flex: none;
      width: 1280px;
      min-height: 50%;
      height: 100%;
      display: flex;
      justify-content: center;
      align-items: center;
      position: relative;
      overflow: hidden;
   }

   .carte_postale_container {
      position: absolute;
      width: 60%;
      height: 78%;
      max-height: calc(0.66 * 70dvw);
      max-width: 70dvw;
      min-height: calc(0.66 * 350px);
      min-width: 350px;
      display: flex;
      align-items: center;
      justify-content: center;
      opacity: 0;
      perspective: 2000px;
      pointer-events: none;
      transition: opacity 0.5s ease-in-out, transform 0.35s ease, box-shadow 0.35s ease;
   }
}