/* Hero globe (globe.js). Decorative, pointer-transparent, fades in once the idle-loaded data is ready. */
.hero-globe{position:absolute;z-index:1;margin:0;right:clamp(8px,4vw,72px);top:clamp(52px,9%,96px);width:min(42vw,61vh,580px);aspect-ratio:1;pointer-events:none;opacity:0;transform:scale(.96);transition:opacity 1.2s var(--ease-out,ease),transform 1.6s var(--ease-out,ease)}
.hero-globe.is-ready{opacity:1;transform:none}
.hero-globe canvas{display:block;width:100%;height:100%}
.globe-key{position:absolute;left:0;right:0;bottom:2%;display:flex;flex-wrap:wrap;justify-content:center;gap:6px 12px;font-size:11.5px;line-height:1.2;color:rgba(255,255,255,.78);text-align:center}
.globe-key span{display:inline-flex;align-items:center;gap:6px}
.globe-key i{width:7px;height:7px;border-radius:50%;display:inline-block}
.globe-key em{flex-basis:100%;font-style:normal;color:rgba(255,255,255,.55);font-size:11px}
.app-hero .hero-cap{z-index:3}
@media (max-width:1180px) and (min-width:821px){.hero-globe{width:min(40vw,58vh,500px)}}
@media (min-width:821px) and (max-height:680px){.globe-key{display:none}}
/* Phones: smaller globe tucked behind the lower half of the hero, no key */
@media (max-width:820px){
  .hero-globe{width:min(96vw,420px);right:auto;left:50%;top:auto;bottom:64px;transform:translateX(-50%) scale(.96);opacity:0}
  .hero-globe.is-ready{opacity:.82;transform:translateX(-50%)}
  .globe-key{display:none}
}
@media (prefers-reduced-motion:reduce){.hero-globe{transition:none;transform:none}.hero-globe.is-ready{transform:none}}
@media (max-width:820px) and (prefers-reduced-motion:reduce){.hero-globe,.hero-globe.is-ready{transform:translateX(-50%)}}
/* + satellite edition: WebGL earth under the 2D overlay (arcs, points, orbit ring) */
.hero-globe{position:absolute}
.hero-globe canvas{position:absolute;inset:0}
.hero-globe .globe-key{z-index:2}
.hero-globe .globe-gl.can-drag{cursor:grab}
.hero-globe .globe-gl.dragging{cursor:grabbing}
@media (min-width:821px) and (pointer:fine){.hero-globe .globe-gl.can-drag{pointer-events:auto;touch-action:none;-webkit-mask-image:radial-gradient(circle closest-side,#000 0 80%,transparent 81%);mask-image:radial-gradient(circle closest-side,#000 0 80%,transparent 81%)}}
.hero-globe.has-sat.is-ready{filter:drop-shadow(0 18px 50px rgba(20,12,60,.55))}
/* starfield behind the globe, only in the sky part of the hero */
.hero-stars{position:absolute;inset:0;width:100%;height:100%;z-index:1;pointer-events:none;opacity:0;transition:opacity 1.6s ease;mix-blend-mode:screen;-webkit-mask-image:linear-gradient(to bottom,#000 0,#000 54%,rgba(0,0,0,.6) 74%,transparent 90%);mask-image:linear-gradient(to bottom,#000 0,#000 54%,rgba(0,0,0,.6) 74%,transparent 90%)}
.hero-stars.is-ready{opacity:1}
@media (max-width:820px){.hero-stars{-webkit-mask-image:linear-gradient(to bottom,#000 0,#000 42%,rgba(0,0,0,.6) 62%,transparent 80%);mask-image:linear-gradient(to bottom,#000 0,#000 42%,rgba(0,0,0,.6) 62%,transparent 80%)}.hero-globe.is-ready{opacity:.9}}
