
/* ================================================================
   THE 13TH INDEX — V4.1
   Global Signal Map + Obsidian Motion Upgrade
   ================================================================ */

/* Hero: the map becomes the primary global intelligence field. */
.hero__map-stage{
  height:min(60vh,560px);
  min-height:450px;
}
.hero__map-relief{
  opacity:.62;
  filter:contrast(1.18) brightness(.94);
  animation:globalMapDrift 22s var(--ease) infinite alternate;
}
@keyframes globalMapDrift{
  0%{transform:translate3d(0,0,0) scale(1.01);opacity:.56}
  50%{transform:translate3d(-3px,2px,0) scale(1.022);opacity:.65}
  100%{transform:translate3d(4px,-2px,0) scale(1.016);opacity:.59}
}

.signal-route{
  fill:none;
  stroke:rgba(202,42,31,.58);
  stroke-width:1.05;
  opacity:.0;
  vector-effect:non-scaling-stroke;
}
.signal-route--secondary{stroke:rgba(202,42,31,.36)}
.signal-route.is-connected{opacity:1}

.signal-node .node-core{
  fill:rgba(238,238,233,.34);
  transition:fill .55s var(--ease), r .55s var(--ease);
}
.signal-node .node-halo{
  fill:none;
  stroke:rgba(202,42,31,.0);
  stroke-width:1;
  opacity:0;
  transition:opacity .55s var(--ease),stroke .55s var(--ease);
}
.signal-node text{
  opacity:0;
  fill:rgba(255,255,255,.28);
  transition:opacity .5s var(--ease),fill .5s var(--ease);
  pointer-events:none;
}
.signal-node.is-secondary .node-core{
  fill:rgba(202,42,31,.76);
}
.signal-node.is-secondary .node-halo{
  stroke:rgba(202,42,31,.20);
  opacity:.65;
}
.signal-node.is-secondary text{
  opacity:.54;
}
.signal-node.is-primary .node-core{
  fill:var(--red2);
  r:5;
  filter:url(#signalGlow);
}
.signal-node.is-primary .node-halo{
  stroke:rgba(202,42,31,.46);
  opacity:1;
  animation:primaryNodePulse 3.6s ease-in-out infinite;
}
.signal-node.is-primary text{
  opacity:1;
  fill:rgba(255,255,255,.78);
}
@keyframes primaryNodePulse{
  0%,100%{r:16;opacity:.55}
  50%{r:29;opacity:.10}
}

.hero__map-status{
  right:8%;
  bottom:8%;
  max-width:52%;
}
.hero__map-status b{
  color:rgba(255,255,255,.70);
}
.hero__map-status span{
  color:var(--red2);
}

/* Live environment panel: scenario-driven, not a static list of capitals. */
.intel-card--v41{
  padding:22px;
}
.intel-card__live{
  padding-bottom:18px !important;
}
.intel-card__live div{
  align-items:start;
}
.intel-card__live dd[data-active-corridor]{
  max-width:165px;
  line-height:1.45;
}
.intel-card__active-network{
  padding-top:18px;
}
.intel-card__active-network>p{
  margin-bottom:13px;
}
.active-network{
  display:grid;
  gap:7px;
}
.active-network>div{
  display:grid;
  grid-template-columns:1fr auto;
  gap:18px;
  align-items:center;
}
.active-network dt{
  color:var(--text50);
}
.active-network dd{
  margin:0;
  color:var(--text36);
  text-align:right;
}
.active-network .primary dt{
  color:#fff;
  position:relative;
}
.active-network .primary dt::before{
  content:"";
  position:absolute;
  left:-12px;
  top:5px;
  width:5px;
  height:5px;
  border-radius:50%;
  background:var(--red2);
  box-shadow:0 0 0 0 rgba(202,42,31,.25);
  animation:pulse 4.2s infinite;
}
.active-network .primary dd{
  color:var(--red2);
}
.active-network__meta{
  margin-top:5px;
  padding-top:8px;
  border-top:1px solid var(--line2);
}

/* Situation Room / Obsidian graph */
.situation-room__support{
  max-width:330px;
  margin-top:18px;
  color:var(--text50);
  font-size:14px;
  line-height:1.55;
}
.situation-room__network{
  height:350px;
}
#signalNetworkCanvas{
  width:100%;
  height:100%;
  touch-action:none;
}

/* The Current Environment card subtly changes with the active anomaly. */
.environment-card h3{
  transition:opacity .28s ease,transform .4s var(--ease);
}
.environment-card h3.is-changing{
  opacity:.28;
  transform:translateY(3px);
}

/* More breathing room for the hero at ultra-wide desktop sizes. */
@media(min-width:1450px){
  .hero__layout{
    grid-template-columns:minmax(300px,.70fr) minmax(590px,1.34fr) minmax(275px,.56fr);
    gap:34px;
  }
}

/* Mobile: keep the global character, reduce data density. */
@media(max-width:767px){
  .hero__map-stage{
    height:370px;
    min-height:0;
  }
  .hero__map-status{
    max-width:82%;
    right:6%;
    bottom:5%;
  }
  .intel-card__live dd[data-active-corridor]{
    max-width:145px;
  }
  .situation-room__network{
    height:320px;
  }
}

.cursor-dot{transition:width .22s var(--ease),height .22s var(--ease)}
.cursor-dot.is-interactive{width:15px;height:15px}
.cursor-dot.is-interactive>span{width:15px;height:15px;background:rgba(202,42,31,.92)}
