/* ===========================================================================
   Marqueur au defilement (fichier nomme d'apres le premier jet, un satellite) : page d'accueil uniquement.
   Construit par static/js/satellite-scroll.js. Purement decoratif :
   aucun element ne capte la souris, tout vit derriere le contenu (z-index -1,
   au-dessus du fond etoile #bgMesh qui est avant lui dans le document),
   colonne collee au bord gauche. Rien n'est cree sur un ecran etroit
   (seuil LARGEUR_MIN du script).
   ========================================================================== */

/* Couches calees sur toute la hauteur du document. overflow: clip : un
   element qui sort a gauche ne cree jamais de defilement horizontal. */
.sat-couche {
  position: absolute; left: 0; top: 0; width: 100%;
  z-index: -1; pointer-events: none;
  overflow: hidden; overflow: clip;
}

/* --- Colonne : pointilles, trainee orange, planetes ---------------------- */
.sat-ligne {
  position: absolute; width: 2px; margin-left: -1px;
  background: linear-gradient(#2E2E38 50%, transparent 50%);
  background-size: 2px 10px;
}
.sat-trainee {
  position: absolute; width: 2px; margin-left: -1px; height: 0;
  background: linear-gradient(180deg, rgba(238,90,42,0), #EE5A2A 220px);
}
.sat-planete {
  position: absolute; border-radius: 50%;
  filter: grayscale(1) brightness(0.42);
  transition: filter .6s ease;
}
.sat-planete.allumee { filter: var(--sat-lueur); }
.sat-terre { filter: drop-shadow(0 0 8px rgba(212,168,83,0.55)); }

/* Lune : orbite aplatie autour de la Terre */
.sat-lune-orbite {
  position: absolute; width: 60px; height: 60px; margin: -30px 0 0 -30px;
  transform: rotate(-20deg) scaleY(0.45);
}
.sat-lune-tour { position: absolute; inset: 0; animation: sat-tour 16s linear infinite; }
.sat-lune {
  position: absolute; left: 50%; top: 0; width: 8px; height: 8px; margin: -4px 0 0 -4px;
  border-radius: 50%;
  background: radial-gradient(circle at 35% 30%, #FFFFFF, #C9C9D1 50%, #6E6E78);
}
@keyframes sat-tour { to { transform: rotate(360deg); } }

/* --- Marqueur ------------------------------------------------------------ */
/* Point lumineux + halo (le satellite 3D a ete retire le 2026-10-09, juge
   enfantin). Fixe a mi-ecran pendant la descente, puis pose sur la planete
   finale (coordonnees de page) pour le trajet autonome. Position par
   transform ; le halo ne bouge qu'en transform/opacity. */
.sat-engin { position: fixed; left: 0; top: 0; width: 0; height: 0; z-index: -1; pointer-events: none; }
.sat-engin.au-port { position: absolute; }
.sat-drift, .sat-orbit, .sat-marqueur { position: absolute; left: 0; top: 0; width: 0; height: 0; }
.sat-coeur {
  position: absolute; left: -4px; top: -4px; width: 8px; height: 8px; border-radius: 50%;
  background: radial-gradient(circle at 40% 40%, #FFF4EC 0%, #FFB08A 45%, #EE5A2A 100%);
  box-shadow: 0 0 6px 1px rgba(255,176,138,.9), 0 0 16px 4px rgba(238,90,42,.55), 0 0 34px 8px rgba(238,90,42,.22);
}
.sat-halo {
  position: absolute; left: -14px; top: -14px; width: 28px; height: 28px; border-radius: 50%;
  border: 1px solid rgba(255,176,138,.55);
  background: radial-gradient(circle, rgba(238,90,42,.18) 0%, rgba(238,90,42,0) 70%);
  animation: sat-respire 2.8s ease-out infinite;
}
.sat-halo-2 { animation-delay: 1.4s; }
@keyframes sat-respire {
  0%   { transform: scale(.45); opacity: .9; }
  100% { transform: scale(1.6); opacity: 0; }
}

/* Trajet autonome : les chemins sont poses en JS (--sat-trajet, --sat-boucle) */
.sat-engin.en-voyage .sat-drift {
  offset-path: var(--sat-trajet); offset-rotate: 0deg;
  animation: sat-avance 50s linear 1 forwards;
}
.sat-engin.en-voyage .sat-orbit {
  offset-path: var(--sat-boucle); offset-rotate: 0deg;
  animation: sat-avance 12s linear 50s infinite;
}
@keyframes sat-avance { from { offset-distance: 0%; } to { offset-distance: 100%; } }

/* --- Particules de fin de page ------------------------------------------- */
.sat-poussiere { position: absolute; border-radius: 50%; animation: mote-a 10s ease-in-out infinite; }
@keyframes mote-a{0%,100%{transform:translate(0,0)}25%{transform:translate(7px,-9px)}50%{transform:translate(-3px,-16px)}75%{transform:translate(-9px,-5px)}}
@keyframes mote-b{0%,100%{transform:translate(0,0)}30%{transform:translate(-8px,6px)}60%{transform:translate(5px,12px)}80%{transform:translate(10px,2px)}}
@keyframes mote-c{0%,100%{transform:translate(0,0) scale(1)}40%{transform:translate(4px,10px) scale(.6)}70%{transform:translate(-6px,4px) scale(1.2)}}

/* --- Moins d'animations : le marqueur suit seulement le defilement ------- */
@media (prefers-reduced-motion: reduce) {
  .sat-lune-tour, .sat-halo, .sat-poussiere,
  .sat-engin.en-voyage .sat-drift,
  .sat-engin.en-voyage .sat-orbit { animation: none; }
  .sat-halo { opacity: .5; transform: none; }
  .sat-halo-2 { display: none; }
}
/* Appareil modeste : le script ne cree rien (il distingue ce cas du simple
   refus du mouvement, ou le marqueur reste et suit le defilement). */
