/* Load after all older crew/motion CSS. No image is hidden by this enhancement. */
body .crew-card .crew-orbit-art,
body .character-info-avatar .crew-orbit-art,
body .crew-card .crew-planet,
body .character-info-avatar .crew-planet {
  animation: none !important;
  transform: none !important;
  aspect-ratio: 1;
  overflow: visible;
}

/* Old r9 rules have !important: match their specificity and explicitly stop rocking. */
body.performance-lite .crew-card.in-view .planet-original,
body.performance-lite .character-info-avatar .planet-original,
body .crew-card .crew-orbit-art > .planet-original,
body .character-info-avatar .crew-orbit-art > .planet-original,
body .crew-card .crew-planet > .planet-original,
body .character-info-avatar .crew-planet > .planet-original {
  animation: none !important;
  transform: none !important;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: contain;
  object-position: center;
  opacity: 1 !important;
  visibility: visible !important;
  filter: none;
}

/* The host's existing position, width, top and left remain the placement contract. */
.wn-globe-target { isolation: isolate; }
.wn-globe-canvas {
  position: absolute;
  display: block;
  inset: 0;
  width: 100%;
  height: 100%;
  max-width: 100%;
  z-index: 1;
  pointer-events: none;
  border-radius: 50%;
  animation: none !important;
  transform: none !important;
  filter: none;
}
.wn-globe-canvas[hidden] { display: none !important; }

/* The fallback's interior stays visible beneath a validated live frame. Exclude
   only its outer 1% diameter ring, preventing doubled atmosphere/antialias alpha.
   Failure, context loss, target movement and cleanup remove this class. */
body .crew-orbit-art.has-live-globe > .planet-original,
body .crew-planet.has-live-globe > .planet-original,
.wn-globe-host.has-live-globe > .planet-original {
  clip-path: circle(48% at 50% 50%);
}

/* Atmosphere is part of the physical shader. No generic CSS halo. */
.wn-globe-target > .wn-globe-canvas {
  box-shadow: none;
}

/* Generic opt-in host, for integrations that do not use the existing crew wrappers. */
.wn-globe-host { position: relative; display: block; aspect-ratio: 1; }
.wn-globe-host > .planet-original {
  display: block; width: 100%; height: 100%; object-fit: contain;
  opacity: 1 !important; visibility: visible !important;
  animation: none !important; transform: none !important;
}
/* Two fixed external photospheres, drawn from native granulation texture. */
body .crew-orbit-art>.binary-star{position:absolute;z-index:3;display:block;width:9%;height:9%;left:3%;top:1.5%;object-fit:contain;filter:none!important;box-shadow:none;background:none;border-radius:0;animation:none!important;transform:none!important;pointer-events:none}
body .crew-orbit-art>.binary-star.white{width:6.4%;height:6.4%;left:17%;top:.5%}
/* Loading failures never show a broken-image glyph over the fallback stage. */
body.performance-lite .crew-card .crew-orbit-art>.planet-original.asset-failed,
body.performance-lite .character-info-avatar .crew-orbit-art>.planet-original.asset-failed{visibility:hidden!important;opacity:0!important}
body .crew-orbit-art>.binary-star.asset-failed{visibility:hidden!important}
