/* Not a source file. network-graph.css and network-motion.css reference a
   handful of base.css tokens the page doesn't otherwise define (--ash,
   --line, --surface-alt, --s14, --sec, --r-lg, --focus-w, --focus-off, and
   the six --d-* discipline colours). Rather than load a second copy of
   base.css or add these to the page's shared global stylesheet — where they
   could drift into meaning something else for an unrelated section — they're
   declared once here, scoped to .netsec, exactly the values base.css gives
   them. Nothing outside the constellation section can see or depend on these. */
.netsec {
  --ash: #4a4e57;
  --line: #e2e2e2;
  --surface-alt: #f9f9fb;
  --s6: 24px;
  --s14: 56px;
  --sec: clamp(56px, 6.6vw, 96px);
  --r-lg: 24px;
  --focus-w: 2px;
  --focus-off: 2px;
  --black: #000000;
  --d-brand: #904fff;
  --d-digital: #2f6be3;
  --d-b2b: #14897a;
  --d-content: #e8632f;
  --d-pr: #e0407a;
  --d-media: #f0a81e;
}

/* Not source rules — these three live in base.css, which this block
   deliberately does not load (MapHero owns the legacy sheet set; see the
   port note in ConstellationStage.client.tsx). Copied verbatim from base.css
   and scoped to .netsec so they cannot reach anything outside this block. */

/* base.css:693 */
.netsec .wrap {
  max-width: 1400px;
  margin: 0 auto;
  padding: 0 var(--s6);
}

/* base.css:500 — headings take --black; without it the h2 inherits the
   app's --foreground, which is white on the dark theme. */
.netsec h2 {
  color: var(--black);
  text-wrap: balance;
}

/* base.css:527 */
.netsec .t-h2 {
  font-size: clamp(36px, 4.4vw, 56px);
  font-weight: 500;
  line-height: 1.1;
  letter-spacing: -0.015em;
}
