@charset "UTF-8";

@font-face {
  font-style: normal;
  font-weight: normal;
  font-family: "ESReplanVariform-MediumTRIAL";
  src: url("../fonts/ESReplanVariform-MediumTRIAL.woff2") format("woff2"),
    url("../fonts/ESReplanVariform-MediumTRIAL.woff") format("woff");
}

* {
  margin: 0;
  padding: 0;
  box-sizing: border-box;
  cursor: none;
  width: 100vw;
}
.dot {
  position: absolute;
  width: 5vh;
  height: 5vh;
  background-color: white;
  border-radius: 50%;
  pointer-events: none;
  z-index: 1;
  box-shadow: 0 0 8px white;
  transform: translate(-50%, -50%);
  pointer-events: none;
}

.touch-dot {
  position: fixed;
  width: 5vh; /* diamètre du point – adapte selon tes goûts */
  height: 5vh;
  background-color: white;
  border-radius: 50%;
  pointer-events: none; /* n'interfère pas avec les clics/taps */
  opacity: 0.8; /* opacité initiale (modifiable) */
  transform: translate(-50%, -50%); /* centrer le cercle sur le doigt */
  will-change: opacity, transform;
  transition: opacity 0.6s ease-out, transform 0.6s ease-out;
}

/* Quand on veut forcer le départ de la disparition (optionnel) */
.touch-dot.fade-out {
  opacity: 0;
  transform: scale(0.5) translate(-50%, -50%);
}

body,
html {
  height: auto;
  width: 100vw;
  background-color: black;
  color: #d2d1d1;
  font-family: "ESReplanVariform-MediumTRIAL", sans-serif;
  overflow-x: hidden;
}

/* ——————————————————————————————
   ORBE REBONDISSSE EN ZIGZAG (CSS)
   —————————————————————————————— */
/* #random-orb {
  position: fixed; /* Toujours visible à l’écran, même au scroll */
/* width: 2vh; /* Diamètre de l’orbe (ajustez si besoin) */
/* height: 2vh; */
/* background-color: white;
  border-radius: 50%; 
  box-shadow: 0 0 8px rgba(255, 255, 255, 0.8);
  z-index: 10001; 
  pointer-events: none;
  top: 0; 
  left: 0; */
/* PAS de transition ici : le JS gère le mouvement au pixel près */

.oval-stack {
  position: fixed;
  z-index: 0;
  pointer-events: none;
  width: 100vw;
  height: 100vh;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
}
.animated-ellipses {
  position: fixed;
  top: 0;
  left: 0;
  width: 100vw;
  height: 100vh;
  z-index: 100;
  pointer-events: none;
}

.oval {
  position: relative;
  width: 100vw;
  height: 20vh;
  border: 3px solid #494949;
  border-radius: 50%;
  z-index: 100;
  overflow: visible;
}

.circle {
  position: absolute;
  width: 20px;
  height: 20px;
  background-color: #d2d1d1;
  border-radius: 50%;
  z-index: 100;
  animation: moveOnOval 5s linear infinite;
  pointer-events: none;
}

.intro {
  top: 0;
  position: absolute;
  height: 100vh;
  width: 100%;
  display: flex;
  justify-content: center;
  align-items: center;
  text-align: center;
  overflow: hidden;
  background-image: url("../images/galaxie01.png"),
    linear-gradient(black 50%, rgba(0, 0, 0, 0) 100%); /* Image de fond */
  background-size: cover; /* L'image couvre toute la section */
  background-position: center; /* Centre l'image */
  background-repeat: no-repeat; /* Empêche la répétition de l'image */
  /* background-color: black; */
}

.intro-text h1 {
  font-size: 10vh;
  line-height: 1;
  z-index: 2;
  position: relative;
  display: flex;
  justify-content: center;
  align-items: center;
  animation: fadeIn 2s ease-in-out forwards, float 4s infinite ease-in-out; /* Combine fadeIn et flottement */
  transition: all 0.3s ease; /* Transition fluide pour les effets */
  mix-blend-mode: difference;
}
@keyframes float {
  0% {
    transform: translateY(0); /* Position initiale */
  }
  50% {
    transform: translateY(-10px); /* Monte légèrement */
  }
  100% {
    transform: translateY(0); /* Retour à la position initiale */
  }
}
.next-section {
  top: 90vh;
  position: absolute;
  height: 100vh;
  width: 100%;
  display: flex;
  justify-content: center;
  align-items: center;
  text-align: center;
  overflow: hidden;
  background-image: linear-gradient(
    rgba(0, 0, 0, 0) 0%,
    black 50%,
    rgba(0, 0, 0, 0) 100%
  ); /* Image de fond */
  background-size: cover; /* L'image couvre toute la section */
  background-position: center; /* Centre l'image */
  background-repeat: no-repeat; /* Empêche la répétition de l'image */
  /* background-color: black; */
}

.next-text {
  font-size: 10vh;
  line-height: 1;

  position: relative;
  display: flex;
  justify-content: center;
  align-items: center;
  animation: fadeIn 2s ease-in-out forwards, float 4s infinite ease-in-out; /* Combine fadeIn et flottement */
  transition: all 0.3s ease; /* Transition fluide pour les effets */
  mix-blend-mode: difference;
}

.third-section {
  top: 180vh;
  position: absolute;
  width: 100vw; /* La section occupe toute la largeur de la fenêtre */
  height: 100vh; /* La section occupe toute la hauteur de la fenêtre */
  display: flex; /* Active Flexbox */
  justify-content: center; /* Centre les éléments verticalement */
  align-items: center; /* Centre les éléments horizontalement */
  background-image: url("../images/galaxie02.png"),
    linear-gradient(rgba(0, 0, 0, 0) 0%, #d2d1d1 50%, rgba(0, 0, 0, 0) 100%); /* Image de fond */
  background-size: cover; /* L'image couvre toute la section */
  background-position: center; /* Centre l'image */
  background-repeat: no-repeat; /* Empêche la répétition de l'image */
}

.third-text h1 {
  font-size: 10vh; /* Taille du texte */
  font-family: "ESReplanVariform-MediumTRIAL", sans-serif;
  color: #d2d1d1; /* Couleur du texte */
  text-align: center; /* Centre le texte horizontalement */
  margin: 0; /* Supprime tout margin par défaut */
  animation: scaleText 10s infinite ease-in-out; /* Applique l'animation d'agrandissement */
  white-space: pre-line; /* Permet de gérer les retours à la ligne */
  mix-blend-mode: difference;
}
.orbs-container {
  top: 270vh;
  position: absolute;
  display: flex;
  flex-direction: column;
  align-items: center;
  z-index: 2; /* Place les orbes au-dessus du texte */
}

.orb {
  width: 100vw; /* Les orbes occupent toute la largeur de l'écran */
  height: 20vh; /* Ajustez la hauteur selon vos besoins */
  background-color: transparent;
  border: 2px solid white(255, 255, 255, 0.5);
  background-color: white; /* Fond blanc au survol */
  filter: blur(8px); /* Ajoute un effet flou */
  border-radius: 50%; /* Forme ovale */
  transition: all 0.3s ease;
  position: relative;
}

.fourth-section {
  top: 400vh;
  position: absolute;
  width: 100vw; /* La section occupe toute la largeur de la fenêtre */
  height: 100vh;
  display: flex;
  justify-content: center;
  align-items: center;
  overflow: visible; /* background-color: black; */
}

.stars {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background: transparent;
  pointer-events: none;
  z-index: 0;
}

.star {
  position: absolute;
  width: 2px;
  height: 2px;
  background: white;
  border-radius: 50%;
  opacity: 1;
  filter: blur(2px);
  animation: twinkle 6s infinite ease-in-out alternate;
}

@keyframes twinkle {
  0% {
    opacity: 0.2;
    transform: scale(1);
  }
  100% {
    opacity: 1;
    transform: scale(1.5);
  }
}

.fourth-text h1 {
  font-size: 10vh;
  font-family: "ESReplanVariform-MediumTRIAL", sans-serif;
  color: #d2d1d1;
  text-align: center;
  margin: 0;
  animation: float 4s infinite ease-in-out; /* Combine fadeIn et flottement */
  mix-blend-mode: difference;
  z-index: 100;
}

.fifth-section {
  top: 500vh;
  position: absolute;
  width: 100vw; /* La section occupe toute la largeur de la fenêtre */
  height: 100vh;
  display: flex;
  flex-direction: column; /* Dispose les éléments verticalement */
  justify-content: center;
  align-items: center;
}

.fifth-text h1 {
  font-size: 10vh;
  font-family: "ESReplanVariform-MediumTRIAL", sans-serif;
  color: #d2d1d1;
  text-align: center;
  margin: 0;
  animation: shine 3s infinite linear; /* Effet de brillance */
  mix-blend-mode: difference;
  z-index: 100;
}

.fifth-image {
  position: relative; /* Nécessaire pour que l'image reste en dessous du texte */
  z-index: 1; /* Place l'image en dessous du texte */
}

.fifth-image img {
  width: 50vh; /* Ajustez la largeur de l'image */
  height: auto; /* Conserve les proportions de l'image */
}
.sixth-section {
  top: 590vh;
  position: absolute;
  width: 100vw; /* La section occupe toute la largeur de la fenêtre */
  height: 100vh; /* La section occupe toute la hauteur de la fenêtre */
  display: flex; /* Active Flexbox */
  justify-content: center; /* Centre les éléments verticalement */
  align-items: center; /* Centre les éléments horizontalement */
  background-image: url("../images/sphere03.png"); /* Chemin vers l'image */
  background-size: 100vh; /* L'image couvre toute la section */
  background-position: center; /* Centre l'image */
  background-repeat: no-repeat; /* Empêche la répétition de l'image */
  z-index: 10;
}

.sixth-text h1 {
  font-size: 10vh; /* Taille du texte */
  font-family: "ESReplanVariform-MediumTRIAL", sans-serif;
  color: #d2d1d1; /* Couleur blanche pour contraster avec le fond noir */
  text-align: center; /* Centre le texte horizontalement */
  margin: 0; /* Supprime tout margin par défaut */
  animation: fadeIn 5s infinite ease-in-out; /* Animation de fade-in et fade-out */
  mix-blend-mode: difference;
  z-index: 100;
}

.seventh-section {
  top: 670vh;
  position: absolute;
  width: 100vw; /* La section occupe toute la largeur de la fenêtre */
  height: 100vh;
  display: flex;
  justify-content: center;
  align-items: center;
  background-image: linear-gradient(rgba(0, 0, 0, 0) 0%, rgba(0, 0, 0, 1) 100%);
  z-index: 100;
}

.seventh-text h1 {
  font-size: 10vh;
  font-family: "ESReplanVariform-MediumTRIAL", sans-serif;
  color: #d2d1d1;
  text-align: center;
  margin: 0;
  animation: fadeIn 5s infinite ease-in-out;
  white-space: pre-line;
  z-index: 100;
}

/* ————————————
   SECTION 8 (HUITIÈME)
   ———————————— */
.eighth-section {
  top: 770vh; /* position verticale : ajustez selon votre flow */
  position: absolute;
  width: 100vw;
  height: 100vh;
  display: flex;
  justify-content: center;
  align-items: center;
  text-align: center;
  background-color: black;
  /* on reprend exactement le même background que .intro */
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
  z-index: 1000;
}

/* Texte à l’intérieur de la huitième section */

.intro.duplicate {
  top: 870vh; /* 7 sections × 100vh = 700vh, +70vh d’espacement si tu veux un petit gap ; ajuste selon ton calcul exact */
  position: absolute;
  width: 100vw;
  height: 100vh;
  display: flex;
  justify-content: center;
  align-items: center;
  text-align: center;
  background-image: url("../images/galaxie01.png"),
    linear-gradient(black 50%, rgba(0, 0, 0, 0) 100%);
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
}

h1,
p,
span {
  transition: color 0.3s ease;
}

/* Même règle de survol pour ces trois types d’éléments */
h1:hover,
p:hover,
span:hover {
  color: #7e7e7e;
}
