/* Foreign-sector fog is a presentation boundary, not hidden graph data.
   Repository planets stay selectable and their labels stay readable; only the
   soma is visually muted until incoming fork evidence marks it as familiar. */
html[data-foreign-sector]
  .renderer-surface--wasm:not([data-renderer="webgpu"])
  .wasm-node[data-foreign-fogged="true"] {
  filter: brightness(.62) saturate(.52);
}

html[data-foreign-sector]
  .renderer-surface--wasm:not([data-renderer="webgpu"])
  .wasm-node[data-foreign-fogged="true"] .wasm-node__halo {
  opacity: .38;
}

/* WebGPU owns the visible soma, while SVG owns semantic hit geometry above it.
   Reuse that exact SVG core as a translucent dark skin: no duplicate spatial
   projection, and the fog remains aligned with the GPU planet on every frame. */
html[data-foreign-sector]
  .renderer-surface--wasm[data-renderer="webgpu"]
  .wasm-node[data-foreign-fogged="true"] .wasm-node__core {
  opacity: .46;
  fill: #03050a;
  stroke: rgba(151, 162, 190, .34);
  stroke-width: 1.4;
}

html[data-foreign-sector]
  .renderer-surface--wasm[data-renderer="webgpu"]
  .wasm-node[data-foreign-fogged="true"] .wasm-node__halo {
  opacity: .28;
  fill: rgba(9, 12, 22, .16);
  stroke: rgba(139, 150, 178, .42);
  stroke-width: 1.1;
  stroke-dasharray: 2 7;
}

html[data-foreign-sector]
  .renderer-surface--wasm[data-renderer="webgpu"]
  .wasm-node[data-foreign-fogged="true"]:hover .wasm-node__halo,
html[data-foreign-sector]
  .renderer-surface--wasm[data-renderer="webgpu"]
  .wasm-node[data-foreign-fogged="true"].wasm-node--selected .wasm-node__halo {
  opacity: .52;
}

@media (prefers-reduced-motion: no-preference) {
  html[data-foreign-sector]
    .wasm-node[data-foreign-fogged="true"] .wasm-node__halo {
    animation: foreign-fog-breathe 4.8s ease-in-out infinite alternate;
  }
}

@media (prefers-reduced-motion: reduce) {
  html[data-foreign-sector]
    .wasm-node[data-foreign-fogged="true"] .wasm-node__halo {
    animation: none;
  }
}

@keyframes foreign-fog-breathe {
  from { stroke-opacity: .58; }
  to { stroke-opacity: .92; }
}
