/* Désactiver curseur natif */
body {
  cursor: none;
}

/* Curseur principal : sphère */
#cursor {
  position: fixed;
  width: 30px;
  height: 30px;
  border-radius: 50%;
  pointer-events: none;
  z-index: 9999;
  transform: translate(-50%, -50%);

  /* Effet sphérique */
  background: radial-gradient(
    circle at 30% 30%,
    hwb(213 38% 2%),
    hwb(213 38% 2%),
    hwb(213 38% 2%)
  );


}

/* Prunelle (œil) */
#cursor .pupil {
  position: absolute;
  top: 50%;
  left: 50%;
  width: 7px;
  height: 7px;
  background: radial-gradient(circle, #fdfdff, #ffffff);
  border-radius: 50%;
  transform: translate(-50%, -50%);
}

/* Bulles satellites */
#cursor .orbit {
  position: absolute;
  top: 50%;
  left: 50%;
  width: 12px;
  height: 12px;
  background: rgba(180, 180, 180, 0.6);
  border-radius: 50%;
  box-shadow: 0 0 8px rgba(200,200,200,0.6);
}

/* Vitesses normales */
.o1 { animation: orbit 2.5s linear infinite; }
.o2 { animation: orbit 3.5s linear infinite reverse; }
.o3 { animation: orbit 4.5s linear infinite; }

/* Transition fluide des vitesses */
#cursor .orbit {
  transition: animation-duration 0.6s ease;
}

/* Mode boost (clic) */
#cursor.boost .o1 { animation-duration: 0.9s; }
#cursor.boost .o2 { animation-duration: 1.1s; }
#cursor.boost .o3 { animation-duration: 1.3s; }


/* Animation orbite */
@keyframes orbit {
  from { transform: rotate(0deg) translateX(22px); }
  to   { transform: rotate(360deg) translateX(22px); }
}

/* Désactiver sur mobile */
@media (max-width: 768px) {
  #cursor { display: none; }
  body { cursor: auto; }
}


/* ================= FIX VISIBILITÉ FOOTER ================= */
footer img {
  filter: brightness(0) invert(1);
}




/* ⚙️ Gears animation */
.gear {
  position: absolute;
  opacity: 0.12;
  animation: spin linear infinite;
}

.gear-1 {
  width: 380px;
  top: 10%;
  left: 5%;
  animation-duration: 60s;
}

.gear-2 {
  width: 280px;
  bottom: 15%;
  right: 10%;
  animation-duration: 45s;
  animation-direction: reverse;
}

.gear-3 {
  width: 450px;
  top: 20%;
  right: 25%;
  animation-duration: 90s;
}

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

/* ================= PAGE LOADER ================= */
@keyframes fadeOut {
  to {
    opacity: 0;
    visibility: hidden;
  }
}

.loader-hide {
  animation: fadeOut 0.8s ease forwards;
}
#backToTop {
  opacity: 0;
  transform: translateY(10px);
}

#backToTop.flex {
  opacity: 1;
  transform: translateY(0);
}

