/*
  ACT II — Impacto & Suspensão (Phase 3)
  ---------------------------------------
  Namespace: tudo aqui vive sob #act-ii / .neo-act-ii, nunca vaza para nav,
  formulário, modal ou tipografia do site legado. Consome os tokens de
  css/neo-cinematic-foundation.css (--neo-*), carregado antes deste arquivo.

  Continuidade com o Ato I (seção 5 da autorização): .neo-act-ii__object usa
  a MESMA geometria de viewport/monitor/NX que .neo-act-i__viewport (mesmas
  proporções, mesmas posições percentuais) para que o estado inicial do Ato
  II (definido em js/acts/act-ii.js) seja visualmente idêntico ao estado
  final do Ato I — nenhum "pulo" perceptível na transição entre pins.
*/

#act-ii {
  /* AD-03: removido da abertura — ver
     dev/impl-ciclo-1/reports/AD-03-DECISAO-ABERTURA.md. Preservado, não
     excluído; reverter é remover esta linha. */
  display: none;
  height: 100vh;
  position: relative;
  overflow: hidden;
  background: var(--neo-bg, #05050A);
  align-items: center;
  justify-content: center;
}

.neo-act-ii__space {
  position: absolute;
  inset: 0;
  z-index: var(--neo-z-background-space, 0);
  background:
    radial-gradient(ellipse 55% 55% at 50% 40%, rgba(79, 168, 255, 0.05) 0%, transparent 70%),
    radial-gradient(ellipse 40% 40% at 50% 65%, rgba(168, 85, 247, 0.03) 0%, transparent 70%);
}

/* ---- Earth: corpo monumental, parcialmente fora do quadro (seção 8/9).
   object-position mantém o limbo/curvatura visível mesmo quando a imagem é
   recortada por overflow:hidden do #act-ii. Sem filtro animado (seção 17). ---- */
.neo-act-ii__earth {
  position: absolute;
  left: 50%;
  bottom: -8%;
  width: min(150vw, 1800px);
  max-width: none;
  aspect-ratio: 1536 / 1024;
  transform: translateX(-50%);
  z-index: var(--neo-z-planetary, 10);
  will-change: transform, opacity;
}
.neo-act-ii__earth img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center top;
  display: block;
}

/* ---- object: wrapper rígido que agrupa identidade (halo) + monitor + NX
   como um único corpo — a "queda"/estabilização anima este wrapper, nunca
   os elementos internos individualmente (eles mantêm a composição herdada
   do Ato I). ---- */
.neo-act-ii__object {
  position: relative;
  z-index: var(--neo-z-monitor-body, 20);
  width: min(60vw, 640px);
  aspect-ratio: 220 / 250;
  will-change: transform;
}

.neo-act-ii__identity-group {
  position: absolute;
  inset: 0;
}

.neo-act-ii__axis {
  position: absolute;
  left: 45%;
  top: 6%;
  width: 10%;
  height: 72%;
  transform-origin: top center;
}

.neo-act-ii__circle {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  overflow: visible;
  transform-origin: center;
  will-change: transform, opacity;
}

.neo-act-ii__glints {
  position: absolute;
  left: 22%;
  top: 7%;
  width: 56%;
  height: 24%;
  overflow: visible;
}
.neo-act-ii__glint {
  transform-box: fill-box;
  transform-origin: center;
}

.neo-act-ii__monitor {
  position: absolute;
  left: 50%;
  top: 54%;
  transform: translate(-50%, -50%);
  width: min(66vw, 740px);
  aspect-ratio: 1536 / 1024;
}
.neo-act-ii__monitor img {
  position: absolute;
  width: 100%;
  height: 100%;
}
.neo-act-ii__monitor .neo-monitor-screen { z-index: var(--neo-z-monitor-screen, 30); }
.neo-act-ii__monitor .neo-monitor-chassis,
.neo-act-ii__monitor .neo-monitor-stand,
.neo-act-ii__monitor .neo-monitor-base { z-index: var(--neo-z-monitor-body, 20); }

.neo-act-ii__nx {
  position: absolute;
  left: 50%;
  top: 4%;
  width: 15%;
  aspect-ratio: 257 / 177;
  transform: translate(-50%, 0);
}
.neo-act-ii__nx img {
  width: 100%;
  height: 100%;
  object-fit: contain;
}

@media (max-width: 768px) {
  /* Earth ocupa framing diferente em telas estreitas — mais alta/estreita a
     composição não cabe na mesma largura relativa do desktop (seção 15:
     "preservar intenção, não coordenadas idênticas"). */
  .neo-act-ii__earth {
    width: min(220vw, 1400px);
    bottom: -14%;
  }
  .neo-act-ii__axis,
  .neo-act-ii__circle,
  .neo-act-ii__glints { filter: none !important; }
}

/* Regra reduced-motion de altura/padding removida pelo mesmo motivo do
   act-i.css: #act-ii é display:none sempre depois do AD-03, não só para
   reduced-motion. */
