/* =====================================================================
   NEXPI Orbit — contêiner da esfera (ver assets/js/nexpi-orbit.js)
   O contêiner já nasce com uma versão estática em SVG (esfera em fio,
   anéis e órbitas). Quando o canvas começa a desenhar, ganha .is-live e
   a versão estática se dissolve — sem JS, sem canvas ou com o motor
   desligado, a página continua com o elemento visual da marca.
   Posição e tamanho: --orbit-cx, --orbit-cy (fração da largura/altura)
   e --orbit-r (fração do menor lado). Dá para trocar por media query.
   ===================================================================== */
.nx-orbit{
  --orbit-cx:.5;--orbit-cy:.5;--orbit-r:.36;
  position:absolute;inset:0;overflow:hidden;pointer-events:none;
  container-type:size;
}
.nx-orbit > canvas{position:absolute;inset:0;width:100%;height:100%;display:block;opacity:0;transition:opacity 1.6s ease;}
.nx-orbit.is-live > canvas{opacity:1;}

/* Luz: um núcleo azul por trás da esfera e um halo Bold Blue mais largo. */
.nx-orbit::after{
  content:'';position:absolute;pointer-events:none;
  left:calc(var(--orbit-cx) * 100%);top:calc(var(--orbit-cy) * 100%);
  width:calc(var(--orbit-r) * 520cqmin);height:calc(var(--orbit-r) * 520cqmin);
  transform:translate(-50%,-50%);border-radius:50%;
  background:
    radial-gradient(closest-side,rgba(103,186,244,.20) 0%,rgba(103,186,244,.07) 32%,transparent 62%),
    radial-gradient(closest-side,rgba(30,70,107,.55) 0%,rgba(30,70,107,.18) 55%,transparent 100%);
  z-index:-1;
}

/* Versão estática (fallback) */
.nx-orbit::before{
  content:'';position:absolute;pointer-events:none;
  left:calc(var(--orbit-cx) * 100%);top:calc(var(--orbit-cy) * 100%);
  width:calc(var(--orbit-r) * 290cqmin);height:calc(var(--orbit-r) * 290cqmin);
  transform:translate(-50%,-50%);transition:opacity 1.2s ease;
  background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='-100 -100 200 200'%3E%3Cg fill='none' stroke='%23FAFAFA' stroke-opacity='.16' stroke-width='.32'%3E%3Ccircle r='69'/%3E%3Cellipse rx='69' ry='24'/%3E%3Cellipse rx='69' ry='50'/%3E%3Cellipse rx='24' ry='69'/%3E%3Cellipse rx='50' ry='69'/%3E%3C/g%3E%3Cg fill='none' stroke='%2367BAF4' stroke-opacity='.32' stroke-width='.36'%3E%3Ccircle r='44'/%3E%3Cellipse rx='44' ry='16' transform='rotate(-24)'/%3E%3Cellipse rx='16' ry='44' transform='rotate(-24)'/%3E%3Ccircle r='23'/%3E%3C/g%3E%3Cg fill='none' stroke='%2367BAF4' stroke-opacity='.4' stroke-width='.38' stroke-dasharray='1.2 3.4'%3E%3Cellipse rx='83' ry='23' transform='rotate(-16)'/%3E%3Cellipse rx='94' ry='34' transform='rotate(22)'/%3E%3C/g%3E%3Cg fill='%2367BAF4'%3E%3Ccircle cx='-60' cy='-34' r='1.3'/%3E%3Ccircle cx='38' cy='-56' r='1'/%3E%3Ccircle cx='66' cy='18' r='1.4'/%3E%3Ccircle cx='-22' cy='60' r='1'/%3E%3Ccircle cx='80' cy='-14' r='1.6'/%3E%3C/g%3E%3C/svg%3E") center/contain no-repeat;
}
.nx-orbit.is-live::before{opacity:0;}

@supports not (width:1cqmin){
  .nx-orbit::before{width:70vmin;height:70vmin;}
  .nx-orbit::after{width:120vmin;height:120vmin;}
}
