/* ============================================================
   observatory.css — thème sombre + observatoire 3D de la landing page.
   Chargé APRÈS landing.css : ne réécrit pas les pages, il redéfinit
   les tokens `.lp` en sombre et neutralise les fonds clairs codés en dur.
   Interface graphite/argent ; Terre et ciel conservent leurs couleurs naturelles.
   ============================================================ */

/* Palette du ciel commune a la vitrine et a l'authentification. */
body.lp,.auth-page{
  --universe-bg:#181818;
  --universe-surface:#222222;
  --universe-dust:#9C9C9C;
  --universe-star:#B8B8B8;
  --universe-star-cool:#BEC1C8;
  --universe-violet:#80768A;
}

body.lp{
  /* accents "azure" repris en argent (texte lisible sur sombre) */
  --azure:#D7DDE1; --azure-deep:#C3CCD2; --azure-bright:#EAF0F2; --azure-soft:rgba(255,255,255,.07); --on-azure:#10141A;
  /* le "green" de marque devient argent : monochrome */
  --green:#CED6DB; --green-soft:rgba(255,255,255,.07); --green-deep:#C3CCD2;
  --ink-strong:#F1F5F7; --ink:#C6CFD6; --muted:#8A94A0;
  --hair:rgba(255,255,255,.10); --strong:rgba(255,255,255,.20);
  --bg:var(--universe-bg); --surface:rgba(255,255,255,.045);
  --sh-soft:0 1px 2px rgba(0,0,0,.4),0 10px 30px rgba(0,0,0,.5);
  --sh-card:0 2px 6px rgba(0,0,0,.5),0 26px 60px rgba(0,0,0,.6);
  background:var(--universe-bg);
}

/* ---------- globe 3D fixe, en arriere-plan de la page ---------- */
.lp #main{position:relative;isolation:isolate;z-index:3;}
.lp #main > :not(.lp-globe-stage){position:relative;z-index:2;}
.lp .lp-globe-stage{
  position:fixed;z-index:0;top:calc(var(--nav-height,72px) + env(safe-area-inset-top,0px));left:50%;width:100%;height:calc(100vh - var(--nav-height,72px) - env(safe-area-inset-top,0px));height:calc(100dvh - var(--nav-height,72px) - env(safe-area-inset-top,0px));
  overflow:hidden;isolation:isolate;transform:translateX(-50%);pointer-events:none;
  background:
    radial-gradient(ellipse 40% 42% at 50% 49%,rgba(215,221,225,.11),transparent 68%),
    radial-gradient(ellipse 54% 55% at 50% 50%,rgba(255,255,255,.035),transparent 72%),var(--universe-bg);
}
.lp .lp-globe-stage::after{
  content:"";position:absolute;inset:-1px;z-index:2;pointer-events:none;
  background:
    radial-gradient(ellipse 56% 56% at 50% 48%,transparent 42%,rgba(8,10,14,.16) 72%,rgba(8,10,14,.88) 100%),
    linear-gradient(180deg,rgba(8,10,14,.28),transparent 18%,transparent 72%,rgba(8,10,14,.92));
}
.lp .lp-globe-stage--matching{
  background:
    radial-gradient(ellipse 45% 45% at 50% 47%,rgba(215,221,225,.13),transparent 68%),
    radial-gradient(ellipse 60% 58% at 50% 50%,rgba(255,255,255,.04),transparent 72%),var(--universe-bg);
}
.lp .lp-globe-stage--matching::after{
  background:
    radial-gradient(ellipse 66% 58% at 50% 47%,rgba(215,221,225,.10) 0%,transparent 70%),
    radial-gradient(ellipse 70% 66% at 50% 48%,transparent 56%,rgba(215,221,225,.10) 84%,transparent 100%);
}
.auth-page .auth-globe-stage{
  position:absolute;z-index:0;inset:0;width:auto;height:auto;overflow:hidden;isolation:isolate;transform:none;pointer-events:none;
  background:
    radial-gradient(ellipse 48% 48% at 50% 50%,rgba(215,221,225,.14),transparent 68%),
    radial-gradient(ellipse 68% 66% at 50% 50%,rgba(255,255,255,.04),transparent 72%),var(--universe-bg);
}
.auth-page .auth-globe-stage::after{
  content:"";position:absolute;inset:-1px;z-index:2;pointer-events:none;
  background:
    radial-gradient(ellipse 52% 48% at 24% 43%,rgba(5,8,12,.86) 0%,rgba(5,8,12,.78) 42%,rgba(5,8,12,.44) 68%,transparent 100%),
    linear-gradient(90deg,rgba(8,10,14,.66),rgba(8,10,14,.08) 42%,rgba(8,10,14,.22)),
    radial-gradient(ellipse 70% 66% at 50% 50%,transparent 42%,rgba(8,10,14,.10) 70%,rgba(8,10,14,.68) 100%),
    linear-gradient(180deg,rgba(8,10,14,.42),transparent 20%,transparent 74%,rgba(8,10,14,.76));
}
.auth-page .auth-context__brand{position:relative;z-index:2;}
.auth-page.scene-off #lp-scene{background:radial-gradient(circle at 52% 52%,rgba(50,54,60,.62),rgba(8,10,14,0) 68%);}
[data-globe-pointer-surface]{cursor:grab;touch-action:pan-y;}
[data-globe-pointer-surface].is-globe-dragging{cursor:grabbing;user-select:none;}
/* Le ciel anime est porte par la scene, sans voile CSS supplementaire. */
.lp #main > .lp-globe-stage::before,
.auth-page .auth-context .auth-globe-stage::before{content:none;animation:none;}
#lp-scene{position:absolute;inset:0;z-index:1;overflow:hidden;pointer-events:none;}
#lp-scene canvas{
  display:block;width:100%;height:100%;opacity:0;
  transition:opacity .7s var(--easeq,cubic-bezier(.22,1,.36,1));
}
#lp-scene.is-ready canvas{opacity:1;}
.lp .lp-globe-stage:not(.lp-globe-stage--matching) #lp-scene{opacity:.54;}
.lp .globe-callout{
  position:absolute;left:0;top:0;z-index:4;width:0;height:0;
  pointer-events:none;opacity:0;will-change:transform,opacity;
  transition:opacity .24s var(--ease,cubic-bezier(.25,.8,.5,1));
}
.lp .globe-callout.is-visible{opacity:1;}
.lp .globe-callout__marker{
  position:absolute;left:0;top:0;z-index:2;width:44px;height:44px;display:grid;place-items:center;
  border:1px solid color-mix(in srgb,var(--callout-accent,#DCE8EE) 48%,transparent);border-radius:13px;
  background:linear-gradient(145deg,color-mix(in srgb,var(--callout-accent,#DCE8EE) 22%,rgba(15,23,33,.96)),rgba(7,11,17,.96));
  color:var(--callout-accent,#DCE8EE);box-shadow:inset 0 1px 0 rgba(255,255,255,.16),0 0 0 4px color-mix(in srgb,var(--callout-accent,#DCE8EE) 9%,transparent),0 0 28px var(--callout-glow,rgba(220,232,238,.34));
  font-size:var(--type-heading, 1.25rem);transform:translate(-50%,-50%) scale(.88);transition:transform .32s var(--easeq,cubic-bezier(.22,1,.36,1)),border-color .28s var(--ease,cubic-bezier(.25,.8,.5,1));
}
.lp .globe-callout.is-visible .globe-callout__marker{transform:translate(-50%,-50%) scale(1);}
.lp .globe-callout__surface{
  position:absolute;top:0;display:block;min-width:146px;padding:10px 13px;border:1px solid rgba(210,229,239,.24);border-radius:13px;
  background:linear-gradient(145deg,rgba(17,24,33,.95),rgba(7,11,17,.91));
  backdrop-filter:blur(16px) saturate(132%);box-shadow:inset 0 1px 0 rgba(255,255,255,.11),0 16px 38px rgba(0,0,0,.36);
  opacity:0;visibility:hidden;transform:translateY(-50%) scale(.96);
  transition:opacity .2s var(--ease,cubic-bezier(.25,.8,.5,1)),transform .34s var(--easeq,cubic-bezier(.22,1,.36,1)),border-color .3s var(--ease,cubic-bezier(.25,.8,.5,1)),box-shadow .3s var(--ease,cubic-bezier(.25,.8,.5,1));
}
.lp .globe-callout.is-visible.is-label-visible .globe-callout__surface{opacity:1;visibility:visible;transform:translateY(-50%) scale(1);}
.lp .globe-callout__copy{min-width:0;display:block;}
.lp .globe-callout__title{
  display:block;color:#F4F8FA;font-family:var(--display,'Bricolage Grotesque',sans-serif);font-size:var(--type-control, .875rem);line-height:1.15;white-space:nowrap;
}
.lp .globe-callout__subtitle{
  display:block;margin:4px 0 0;color:#A8B3BC;font-family:var(--mono,'IBM Plex Mono',monospace);font-size: var(--type-caption, .75rem);line-height:1.35;letter-spacing:.055em;text-transform:uppercase;white-space:nowrap;
}
.lp .globe-callout--commercial{--callout-accent:#D7DDE1;--callout-glow:rgba(215,221,225,.55);}
.lp .globe-callout--consultant{--callout-accent:#F4F8FA;--callout-glow:rgba(220,229,234,.44);}
.lp .globe-callout--commercial .globe-callout__surface{right:32px;transform-origin:right center;}
.lp .globe-callout--consultant .globe-callout__surface{left:32px;transform-origin:left center;}
.lp .globe-callout--consultant .globe-callout__surface{border-color:rgba(215,221,225,.32);box-shadow:inset 0 1px 0 rgba(255,255,255,.13),0 14px 40px rgba(2,16,27,.46);}
.lp .lp-globe-status{
  position:absolute;z-index:5;top:clamp(24px,4vw,48px);right:clamp(22px,5vw,54px);width:min(72%,560px);
  display:flex;align-items:center;justify-content:space-between;gap:14px;color:#AEB9C2;
  font-family:var(--mono,'IBM Plex Mono','SFMono-Regular',Consolas,monospace);font-size: var(--type-caption, .75rem);letter-spacing:.07em;text-transform:uppercase;
}
.lp .lp-globe-status span{
  display:inline-flex;align-items:center;gap:8px;padding:8px 11px;border:1px solid rgba(255,255,255,.10);border-radius:999px;
  background:rgba(8,12,18,.52);backdrop-filter:blur(12px) saturate(130%);box-shadow:inset 0 1px 0 rgba(255,255,255,.06);
}
.lp .lp-globe-status i{
  width:6px;height:6px;flex:none;border-radius:50%;background:#D7DDE1;
  box-shadow:0 0 0 4px rgba(215,221,225,.10),0 0 15px rgba(215,221,225,.55);
  animation:lp-globe-pulse 2.8s ease-in-out infinite;
}
.lp .lp-globe-status b{color:#F4F8FA;font-size:var(--type-caption, .75rem);}
.lp .lp-globe-stage.is-past-intro .lp-globe-status{opacity:0;visibility:hidden;}
@keyframes lp-globe-pulse{50%{opacity:.65;box-shadow:0 0 0 7px rgba(215,221,225,0),0 0 20px rgba(215,221,225,.36);}}
.lp .atmos{position:fixed;inset:0;z-index:2;pointer-events:none;
  background:
    radial-gradient(120% 80% at 80% -10%, rgba(214,221,226,.08), transparent 55%),
    radial-gradient(90% 70% at 5% 110%, rgba(150,160,170,.06), transparent 55%),
    linear-gradient(180deg, rgba(8,10,14,.10), rgba(8,10,14,.55));}
.lp .vignette{position:fixed;inset:0;z-index:2;pointer-events:none;box-shadow:inset 0 0 220px 40px rgba(0,0,0,.6);}
.lp.scene-off #lp-scene{background:radial-gradient(circle at 50% 48%,rgba(50,54,60,.58),rgba(8,10,14,0) 66%);}

/* le contenu flotte au-dessus du fond 3D */
.lp .foot{position:relative;z-index:3;background:rgba(8,10,14,.38);text-shadow:0 2px 4px #030712;}

/* ---------- nav ---------- */
.lp .nav{background:rgba(8,10,14,.68);backdrop-filter:saturate(160%) blur(14px);border-bottom:1px solid var(--hair);}
.lp .nlinks a:hover{background:rgba(255,255,255,.06);}
.lp .burger{background:rgba(255,255,255,.05);border-color:var(--strong);color:var(--ink-strong);}
.lp .pill--d,.lp a.pill--d{background:var(--azure);color:var(--on-azure);}
.lp .pill--d:hover{background:#fff;}
@media (max-width:980px){ .lp .nav__menu{background:rgba(8,10,14,.97);border-bottom:1px solid var(--hair);} }

/* ---------- boutons ---------- */
.lp .site-btn--p{box-shadow:0 8px 30px -10px rgba(215,221,225,.4);}
.lp .site-btn--p:hover{background:#fff;box-shadow:0 16px 44px -10px rgba(215,221,225,.5);}
.lp .site-btn--g{background:rgba(255,255,255,.05);border-color:var(--strong);}
.lp .site-btn--g:hover{background:rgba(255,255,255,.1);border-color:var(--azure);}
.lp-skip{background:#12161E;color:var(--ink-strong);border-color:var(--strong);}

/* ---------- badges / hero ---------- */
.lp .badge{background:rgba(255,255,255,.05);border:1px solid var(--hair);color:var(--azure-deep);backdrop-filter:blur(6px);}
.lp .hero{background:transparent;}           /* laisse voir la Terre */
.lp .hero .sub{color:var(--ink);}
.lp .hero :is(h1,.rs-index-line,.sub),.auth-page .auth-context__copy{
  text-shadow:0 2px 18px rgba(0,0,0,.7);
}

/* ---------- sections ---------- */
.lp .sec--alt{background:rgba(255,255,255,.022);border-block:1px solid var(--hair);}

/* cartes & panneaux : verre sombre (au lieu des fonds blancs) */
.lp .pstep,.lp .xtile,.lp .vcard,.lp .infopanel,.lp .applypanel{
  background:rgba(255,255,255,.045);border-color:var(--hair);backdrop-filter:blur(8px);
}

/* pastilles à texte blanc : garder un fond sombre (sinon blanc sur argent) */
.lp .pstep__no{
  background:linear-gradient(140deg,#3B404A,#20242B);color:#fff;box-shadow:0 8px 18px rgba(0,0,0,.5);
}

/* icônes rondes (fond doux + glyphe argent) */
.lp .pstep__ic,.lp .xtile__ic,.lp .vcard__ic,.lp .inforow .ic{
  background:rgba(255,255,255,.06);border-color:var(--hair);color:var(--azure-deep);
}

/* ---------- formulaires ---------- */
.lp .field .control{background:rgba(255,255,255,.05);border-color:var(--strong);color:var(--ink-strong);}
.lp .field .control::placeholder{color:var(--muted);}
.lp .field .control:focus{border-color:var(--azure);box-shadow:0 0 0 3px rgba(215,221,225,.18);}
.lp .form__status--success{background:rgba(255,255,255,.06);color:var(--ink-strong);border-color:var(--azure);}
.lp .status .sent-message{background:rgba(255,255,255,.06);color:var(--ink-strong);border-color:var(--azure);}

/* liste à puces (coche argent au lieu du vert codé en dur) */
.lp .lead-list li::before{
  background:rgba(255,255,255,.08);
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23E6EBEE' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 6 9 17l-5-5'/%3E%3C/svg%3E");
  background-size:14px;background-position:center;background-repeat:no-repeat;
}

/* map : léger cadre sombre */
.lp .mapwrap{border-color:var(--hair);}

@media (max-width:1180px){
  .lp .lp-globe-status{right:24px;width:min(76%,520px);}
}

@media (max-width:980px){
  .lp .lp-globe-stage--matching::after{
    background:
      radial-gradient(ellipse 78% 62% at 52% 45%,rgba(215,221,225,.11) 0%,transparent 72%),
      radial-gradient(ellipse 84% 66% at 50% 50%,transparent 56%,rgba(215,221,225,.10) 88%,transparent 100%);
  }
  .lp .lp-globe-status{top:20px;right:18px;width:min(80%,500px);}
}

@media (max-width:640px){
  .lp .lp-globe-stage{top:calc(var(--nav-height,72px) + env(safe-area-inset-top,0px));width:100%;height:calc(100vh - var(--nav-height,72px) - env(safe-area-inset-top,0px));height:calc(100dvh - var(--nav-height,72px) - env(safe-area-inset-top,0px));}
  .lp .lp-globe-stage::after{
    background:
      radial-gradient(ellipse 72% 58% at 50% 47%,transparent 38%,rgba(8,10,14,.24) 72%,rgba(8,10,14,.94) 100%),
      linear-gradient(180deg,rgba(8,10,14,.42),transparent 20%,transparent 64%,rgba(8,10,14,.98));
  }
  .lp .lp-globe-stage--matching::after{
    background:
      radial-gradient(ellipse 100% 68% at 52% 48%,rgba(215,221,225,.10) 0%,transparent 74%),
      radial-gradient(ellipse 94% 72% at 50% 50%,transparent 58%,rgba(215,221,225,.10) 90%,transparent 100%);
  }
  .lp .lp-globe-stage:not(.lp-globe-stage--matching) #lp-scene{opacity:.42;}
  .lp .lp-globe-status{display:none;}
  .lp .globe-callout__surface{display:none;}
  .lp .globe-callout__marker{width:36px;height:36px;border-radius:10px;font-size:1rem;}
}

@media (prefers-reduced-motion:reduce){
  #lp-scene canvas,.lp .globe-callout,.lp .globe-callout__marker,.lp .globe-callout__surface{transition:none;}
  .lp .lp-globe-status i{animation:none;box-shadow:0 0 0 4px rgba(215,221,225,.10);}
  .lp .globe-callout__surface{transform:translateY(-50%);}
  .lp .globe-callout__marker{transform:translate(-50%,-50%);}
}

/* Ciel statique disponible avant le rendu et sans WebGL. */
#lp-scene .globe-fallback{
  position:absolute;inset:0;pointer-events:none;
  background:
    radial-gradient(1px 1px at 12% 19%,var(--universe-star) 50%,transparent),
    radial-gradient(1px 1px at 32% 63%,var(--universe-star) 50%,transparent),
    radial-gradient(1px 1px at 73% 14%,var(--universe-star) 50%,transparent),
    radial-gradient(2px 2px at 89% 47%,var(--universe-star-cool) 20%,transparent),
    radial-gradient(ellipse at 72% 45%,color-mix(in srgb,var(--universe-violet) 18%,transparent),transparent 62%);
  background-size:307px 229px,419px 347px,557px 463px,631px 541px,100% 100%;
}
.globe-fallback::after{
  content:"";position:absolute;left:50%;top:50%;width:min(44vw,64vh);aspect-ratio:1;
  transform:translate(-50%,-50%);border-radius:50%;
  background:radial-gradient(circle at 25% 25%,transparent 20%,rgba(8,10,14,.65) 64%,#080a0e 90%),url("../textures/earth.0a610c805ddd.webp") center/cover;
  box-shadow:inset 8px 4px 28px rgba(244,247,248,.25),0 0 28px rgba(215,221,225,.14);
}
#lp-scene.is-ready .globe-fallback{visibility:hidden;}
.lp .lp-globe-stage--matching::after{
  background:linear-gradient(90deg,rgba(8,10,14,.92),rgba(8,10,14,.72) 35%,transparent 67%),
    radial-gradient(ellipse at 70% 45%,transparent 34%,rgba(8,10,14,.60) 100%);
}
.auth-page .auth-globe-stage::after{
  background:linear-gradient(90deg,rgba(8,10,14,.94),rgba(8,10,14,.66) 35%,transparent 80%),
    linear-gradient(0deg,rgba(8,10,14,.65),transparent 30%);
}
@media(max-width:979px){
  .globe-fallback::after{left:50%;top:62%;width:min(60vw,64vh);}
  .lp .lp-globe-stage--matching::after{
    background:linear-gradient(180deg,rgba(8,10,14,.90),rgba(8,10,14,.64) 55%,rgba(8,10,14,.18) 85%),
      linear-gradient(90deg,rgba(8,10,14,.62),transparent 85%);
  }
}
@media(max-width:640px){
  .lp .globe-callout__surface{display:block;min-width:0;padding:5px 7px;}
  .lp .globe-callout__title{font-size:.75rem;}
  .lp .globe-callout__subtitle{font-size:.75rem;letter-spacing:.02em;}
  .lp .globe-callout__marker{width:36px;height:36px;border-radius:10px;font-size:1rem;}
  .lp .globe-callout--commercial .globe-callout__surface{right:28px;}
  .lp .globe-callout--consultant .globe-callout__surface{left:28px;}
}

.lp .globe-callout--consultant.is-label-flipped .globe-callout__surface{left:auto;right:32px;transform-origin:right center;}
.lp .globe-callout--commercial.is-label-flipped .globe-callout__surface{right:auto;left:32px;transform-origin:left center;}
@media(max-width:979px){
  .lp #main .lp-globe-status{display:none;}
}
@media(max-width:640px){
  .lp .globe-callout--consultant.is-label-flipped .globe-callout__surface{right:28px;}
  .lp .globe-callout--commercial.is-label-flipped .globe-callout__surface{left:28px;}
}

.lp .lp-globe-status{top:12px;}

/* Le ciel traverse les sections ; seul le verre des cartes reste floute. */
.lp #main .lp-globe-stage::after,.auth-page .auth-globe-stage::after{
  background:radial-gradient(ellipse at 50% 50%,rgba(0,0,0,.10) 24%,rgba(0,0,0,.38) 100%);
}
.lp #main :is(.rs-surface-paper,.rs-telecom-metrics,.rs-lifecycle,.rs-sectors,.rs-values,.rs-dual-cta,
  .rs-facts,.rs-engagement,.rs-jobs,.rs-location,.rs-page-cta){
  background:color-mix(in srgb,var(--universe-surface) 12%,transparent);backdrop-filter:none;
}
.lp #main :is(h1,h2,h3,p,.rs-index-line),.auth-page .auth-context__copy{
  text-shadow:0 2px 4px #000,0 0 18px rgba(0,0,0,.9);
}

.lp #main .hero :is(p,h1 em),.auth-page .auth-context__copy p{
  text-shadow:0 0 1px #000,0 0 3px #000,0 2px 4px #000,0 0 18px rgba(0,0,0,.9);
}

/* Etiquettes dans le contexte du ciel, sous le contenu de la page. */
.lp-globe-callouts{position:absolute;inset:0;z-index:3;overflow:hidden;pointer-events:none;}
