/* AustinIO - network skeleton (SolarSystemOS structure, EbikesX light reference ground).
   Layout: sticky head with dropdown nav, hero with the Texas facility map as signature art,
   data strip, sticky contents sidebar with section highlighting, tables banded by sector, Record section.
   Sector colors are the one color system that carries meaning; they follow the six Spotlights categories. */

:root {
  --bg: #F5F3EF;
  --bg-2: #EBE7E0;
  --panel: #FFFFFF;
  --line: #D5CEC3;
  --line-soft: #E4DFD7;
  --fg: #1B1815;
  --fg-2: #48413A;
  --fg-3: #766D63;
  --head: #7A3313;
  --link: #993D0F;
  --brand: #C2410C;
  --hero: #EDE8E0;
  --grid: rgba(122,51,19,.06);
  /* sectors - the six Spotlights categories */
  --s-giga: #0E8A70;
  --s-fab: #6553D0;
  --s-dc: #1F6AA8;
  --s-aero: #B42344;
  --s-mat: #5E6B73;
  --s-energy: #B97B05;
  --display: "Archivo", "Helvetica Neue", Arial, sans-serif;
  --body: "Instrument Sans", "Segoe UI", system-ui, sans-serif;
  --mono: "IBM Plex Mono", ui-monospace, Consolas, monospace;
  --wrap: 1240px;
}
@media (prefers-color-scheme: dark) {
  :root:not([data-theme="light"]) {
    --bg: #12100E; --bg-2: #1A1714; --panel: #201C18; --line: #3A332C; --line-soft: #2A2520;
    --fg: #EEE9E2; --fg-2: #BDB3A7; --fg-3: #8E8478; --head: #E3BE9E; --link: #F0A274; --brand: #F07A3A;
    --hero: #0F0D0B; --grid: rgba(227,190,158,.05);
    --s-giga: #39C4A2; --s-fab: #9B8FF2; --s-dc: #6FAEE8; --s-aero: #F0708A; --s-mat: #9AA8B0; --s-energy: #EDB23A;
    color-scheme: dark;
  }
}
:root[data-theme="dark"] {
  --bg: #12100E; --bg-2: #1A1714; --panel: #201C18; --line: #3A332C; --line-soft: #2A2520;
  --fg: #EEE9E2; --fg-2: #BDB3A7; --fg-3: #8E8478; --head: #E3BE9E; --link: #F0A274; --brand: #F07A3A;
  --hero: #0F0D0B; --grid: rgba(227,190,158,.05);
  --s-giga: #39C4A2; --s-fab: #9B8FF2; --s-dc: #6FAEE8; --s-aero: #F0708A; --s-mat: #9AA8B0; --s-energy: #EDB23A;
  color-scheme: dark;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; scroll-padding-top: 84px; }
body { margin: 0; background: var(--bg); color: var(--fg); font-family: var(--body); font-size: 17px; line-height: 1.62; -webkit-font-smoothing: antialiased; }
a { color: var(--link); text-decoration-color: color-mix(in srgb, var(--link) 40%, transparent); text-underline-offset: 3px; }
a:hover { text-decoration-color: currentColor; }
a:focus-visible, button:focus-visible { outline: 2px solid var(--link); outline-offset: 2px; }
h1, h2, h3 { text-wrap: balance; }
.wrap { max-width: var(--wrap); margin: 0 auto; padding-left: max(16px, env(safe-area-inset-left, 0px)); padding-right: max(16px, env(safe-area-inset-right, 0px)); }
.k { font-family: var(--mono); font-size: 11.5px; letter-spacing: .14em; text-transform: uppercase; color: var(--fg-3); }

/* ---------- sector system ---------- */
[data-s="giga"] { --sc: var(--s-giga); }
[data-s="fab"] { --sc: var(--s-fab); }
[data-s="dc"] { --sc: var(--s-dc); }
[data-s="aero"] { --sc: var(--s-aero); }
[data-s="mat"] { --sc: var(--s-mat); }
[data-s="energy"] { --sc: var(--s-energy); }
.dot { display: inline-block; width: 9px; height: 9px; border-radius: 50%; background: var(--sc); margin-right: 8px; vertical-align: 1px; }
.legend { display: flex; flex-wrap: wrap; gap: 8px 22px; margin: 0 0 20px; padding: 0; list-style: none; font-family: var(--mono); font-size: 12px; letter-spacing: .06em; text-transform: uppercase; color: var(--fg-2); }

/* ---------- header and nav ---------- */
.head { position: sticky; top: 0; z-index: 50; background: color-mix(in srgb, var(--bg) 92%, transparent); backdrop-filter: blur(10px); -webkit-backdrop-filter: blur(10px); border-bottom: 1px solid var(--line-soft); }
.head__in { display: flex; align-items: center; gap: 28px; height: 64px; position: relative; }
.logo { display: flex; align-items: center; gap: 10px; text-decoration: none; color: var(--fg); white-space: nowrap; }
.logo svg { width: 28px; height: 28px; }
.logo__word { font-family: var(--display); font-variation-settings: "wdth" 112; font-weight: 700; font-size: 19px; letter-spacing: -.01em; }
.logo__word span { color: var(--brand); }

.nv { display: flex; align-items: center; gap: 2px; margin-left: auto; }
.nv-item { position: relative; }
.nv-top { display: inline-flex; align-items: center; gap: 7px; color: var(--fg-2); text-decoration: none; font-size: 14.5px; font-weight: 500; padding: 20px 9px; box-shadow: inset 0 -2px 0 transparent; transition: color .15s, box-shadow .15s; }
.nv-top::after { content: ""; width: 5px; height: 5px; border-right: 1.3px solid currentColor; border-bottom: 1.3px solid currentColor; transform: rotate(45deg) translate(-1px, -1px); opacity: .5; }
.nv-top:hover, .nv-item:hover .nv-top, .nv-item:focus-within .nv-top, .nv-top[aria-current] { color: var(--fg); box-shadow: inset 0 -2px 0 var(--brand); }
.nv-panel { position: absolute; top: 100%; left: -12px; min-width: 250px; background: var(--panel); border: 1px solid var(--line); border-top: 2px solid var(--brand); border-radius: 0 0 6px 6px; padding: 12px 0; opacity: 0; visibility: hidden; transform: translateY(-6px); transition: opacity .16s, transform .16s, visibility .16s; box-shadow: 0 18px 36px -20px rgba(27,24,21,.35); }
.nv-item:hover .nv-panel, .nv-item:focus-within .nv-panel { opacity: 1; visibility: visible; transform: none; }
.nv-panel ul { list-style: none; margin: 0; padding: 0; }
.nv-panel a { display: block; padding: 6px 18px; font-size: 14.5px; color: var(--fg-2); text-decoration: none; white-space: nowrap; border-left: 2px solid transparent; }
.nv-panel a:hover, .nv-panel a:focus-visible { color: var(--fg); background: var(--bg-2); border-left-color: var(--brand); }
.nv-h { display: block; font-family: var(--mono); font-size: 10.5px; letter-spacing: .14em; text-transform: uppercase; color: var(--fg-3); padding: 12px 18px 4px; }
.nv-panel > div:first-child > .nv-h:first-child { padding-top: 2px; }
.nv-item--mega { position: static; }
.nv-panel--mega { left: 16px; right: 16px; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 0 8px; padding: 16px 8px 18px; }
.nv-panel--mega .nv-h:first-child { padding-top: 2px; }
.nv-item:not(.nv-item--mega):nth-last-child(-n+2) .nv-panel { left: auto; right: -12px; }
.burger { display: none; margin-left: auto; background: none; border: 1px solid var(--line); border-radius: 6px; color: var(--fg); font: 500 14px var(--body); padding: 6px 12px; cursor: pointer; }

/* ---------- home hero ---------- */
.hero { position: relative; background: var(--hero); border-bottom: 1px solid var(--line); overflow: hidden; }
.hero::before { content: ""; position: absolute; inset: 0; background-image: linear-gradient(var(--grid) 1px, transparent 1px), linear-gradient(90deg, var(--grid) 1px, transparent 1px); background-size: 32px 32px; }
.hero__in { position: relative; display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.05fr); gap: 40px; align-items: center; padding-block: 56px 32px; }
.hero h1 { font-family: var(--display); font-variation-settings: "wdth" 118; font-weight: 750; font-size: clamp(34px, 4.8vw, 60px); line-height: 1.02; letter-spacing: -.02em; margin: 14px 0 20px; max-width: 15ch; }
.hero__sub { font-size: clamp(17px, 1.5vw, 19px); color: var(--fg-2); max-width: 54ch; margin: 0; }
.hero__acts { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 28px; }
.btn { display: inline-block; padding: 11px 18px; border-radius: 6px; font-weight: 600; font-size: 15px; text-decoration: none; border: 1px solid var(--fg); color: var(--bg); background: var(--fg); }
.btn--ghost { background: transparent; color: var(--fg); border-color: var(--line); }
.hero__map svg { display: block; width: 100%; height: auto; }

/* Texas map, shared by home and interior heroes */
.tx-land { fill: var(--panel); stroke: var(--fg-3); stroke-width: 1.1; stroke-linejoin: round; }
.tx-tri { fill: color-mix(in srgb, var(--brand) 7%, transparent); stroke: var(--brand); stroke-width: 1.2; stroke-dasharray: 5 5; }
.tx-road { fill: none; stroke: var(--line); stroke-width: 2.5; stroke-linecap: round; }
.tx-metro { fill: var(--fg); }
.tx-ring { fill: none; stroke: var(--brand); stroke-width: 1.2; }
.tx-node { fill: var(--sc); stroke: var(--panel); stroke-width: 1.2; transition: r .15s; }
a:hover .tx-node, a:focus-visible .tx-node { r: 7; }
.tx-dim { opacity: .3; }
.tx-label { font-family: var(--mono); font-size: 11px; letter-spacing: .08em; fill: var(--fg-2); }
.tx-label--metro { fill: var(--fg); font-weight: 500; }
.tx-label--on { fill: var(--sc); font-weight: 600; }
.dp-hero__art .tx-label { font-size: 14px; }
.hero__map .tx-label { font-size: 12px; }

.meta { position: relative; border-top: 1px solid var(--line); }
.meta__grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); }
.meta__c { padding: 16px 20px; border-left: 1px solid var(--line); }
.meta__c:first-child { border-left: 0; padding-left: 0; }
.meta__v { font-family: var(--mono); font-size: 16px; font-variant-numeric: tabular-nums; }
.meta__v em { font-style: normal; color: var(--fg-3); font-size: 13px; }

/* ---------- home sections ---------- */
.sec { padding-block: 72px; border-bottom: 1px solid var(--line-soft); }
.sec__k { font-family: var(--mono); font-size: 12px; letter-spacing: .14em; text-transform: uppercase; color: var(--head); display: flex; align-items: center; gap: 10px; margin: 0 0 10px; }
.sec__k::before { content: ""; width: 18px; height: 1px; background: currentColor; }
.sec h2 { font-family: var(--display); font-variation-settings: "wdth" 110; font-weight: 700; font-size: clamp(26px, 3vw, 38px); line-height: 1.1; letter-spacing: -.015em; color: var(--fg); margin: 0 0 12px; max-width: 28ch; }
.sec__lede { color: var(--fg-2); max-width: 64ch; margin: 0 0 36px; }

.pillars { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1px; background: var(--line); border: 1px solid var(--line); }
.pillar { background: var(--panel); padding: 26px 24px 24px; display: flex; flex-direction: column; gap: 10px; min-width: 0; }
.pillar--wide { grid-column: span 2; }
.pillar h3 { font-family: var(--display); font-variation-settings: "wdth" 108; font-weight: 650; font-size: 21px; margin: 0; }
.pillar h3 a { color: var(--fg); text-decoration: none; }
.pillar h3 a:hover { color: var(--link); }
.pillar p { margin: 0; color: var(--fg-2); font-size: 15.5px; }
.pillar ul { list-style: none; margin: auto 0 0; padding: 12px 0 0; border-top: 1px solid var(--line-soft); display: flex; flex-wrap: wrap; gap: 6px 16px; font-size: 14.5px; }
.pillar svg { width: 40px; height: 40px; color: var(--head); }

.starts { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 16px; }
.start { display: block; background: var(--panel); border: 1px solid var(--line); border-radius: 6px; padding: 20px 20px 22px; text-decoration: none; color: var(--fg); transition: border-color .15s, transform .15s; }
.start:hover, .start:focus-visible { border-color: var(--brand); transform: translateY(-2px); }
.start h3 { font-family: var(--display); font-variation-settings: "wdth" 108; font-weight: 650; font-size: 19px; margin: 8px 0 6px; }
.start p { margin: 0; color: var(--fg-2); font-size: 15px; }

.book { display: grid; grid-template-columns: auto minmax(0, 1fr); gap: 36px; align-items: center; background: var(--panel); border: 1px solid var(--line); border-radius: 6px; padding: 28px 32px; }
.book__cover { width: 120px; aspect-ratio: 2 / 3; border-radius: 3px; background: linear-gradient(160deg, #1B1815 0%, #3A2418 60%, var(--brand) 140%); color: #F5F3EF; display: flex; flex-direction: column; justify-content: flex-end; padding: 12px; font-family: var(--display); font-variation-settings: "wdth" 112; font-weight: 700; font-size: 14px; line-height: 1.1; box-shadow: 0 10px 24px -14px rgba(0,0,0,.6); }
.book h3 { font-family: var(--display); font-variation-settings: "wdth" 110; font-weight: 700; font-size: 24px; margin: 6px 0 8px; }
.book p { margin: 0 0 14px; color: var(--fg-2); max-width: 62ch; }

/* ---------- tables (shared) ---------- */
.tscroll { overflow-x: auto; border: 1px solid var(--line); border-radius: 6px; background: var(--panel); }
.tbl { width: 100%; min-width: 640px; border-collapse: collapse; font-size: 15px; }
.tbl caption { text-align: left; padding: 12px 16px; font-family: var(--mono); font-size: 11.5px; letter-spacing: .12em; text-transform: uppercase; color: var(--fg-3); border-bottom: 1px solid var(--line); }
.tbl th { text-align: left; font-family: var(--mono); font-size: 11.5px; letter-spacing: .08em; text-transform: uppercase; font-weight: 500; color: var(--fg-3); padding: 10px 16px; background: var(--bg-2); }
.tbl td { padding: 12px 16px; border-top: 1px solid var(--line-soft); vertical-align: top; }
.tbl td.num { font-family: var(--mono); font-size: 14px; font-variant-numeric: tabular-nums; white-space: nowrap; }
.tbl tr[data-s] td:first-child { border-left: 4px solid var(--sc); font-weight: 600; }
.tbl tr.ph td { color: var(--fg-3); font-style: italic; }

/* ---------- interior page ---------- */
.dp-hero { position: relative; background: var(--hero); border-bottom: 1px solid var(--line); overflow: hidden; }
.dp-hero::before { content: ""; position: absolute; inset: 0; background-image: linear-gradient(var(--grid) 1px, transparent 1px), linear-gradient(90deg, var(--grid) 1px, transparent 1px); background-size: 32px 32px; }
.dp-hero__in { position: relative; display: grid; grid-template-columns: minmax(0, 1.2fr) minmax(0, 1fr); gap: 40px; align-items: center; padding-block: 40px 36px; }
.crumb { font-size: 14px; color: var(--fg-3); }
.crumb a { color: var(--fg-3); }
.dp-hero h1 { font-family: var(--display); font-variation-settings: "wdth" 118; font-weight: 750; font-size: clamp(34px, 4.4vw, 54px); line-height: 1.02; letter-spacing: -.02em; margin: 14px 0 10px; }
.dp-hero__anchor { font-family: var(--mono); font-size: 13px; color: var(--fg-3); margin: 0 0 18px; }
.dp-hero__thesis { font-size: 18px; color: var(--fg-2); margin: 0; max-width: 58ch; }
.dp-hero__thesis strong { color: var(--fg); }
.dp-hero__art svg { display: block; width: 100%; max-width: 460px; height: auto; margin-left: auto; }

.strip { background: var(--bg-2); border-bottom: 1px solid var(--line); }
.strip__grid { display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); }
.strip__c { padding: 14px 18px; border-left: 1px solid var(--line); min-width: 0; }
.strip__c:first-child { border-left: 0; padding-left: 0; }
.strip__v { font-family: var(--mono); font-size: 15px; font-variant-numeric: tabular-nums; }

.dp-body { display: grid; grid-template-columns: 250px minmax(0, 1fr); gap: 56px; padding-block: 48px 80px; }
.toc { position: sticky; top: 88px; align-self: start; font-size: 14.5px; max-height: calc(100vh - 110px); overflow-y: auto; }
.toc h4 { font-family: var(--mono); font-size: 11.5px; letter-spacing: .14em; text-transform: uppercase; font-weight: 500; color: var(--fg-3); margin: 0 0 10px; }
.toc ol, .toc ul { list-style: none; margin: 0 0 28px; padding: 0; display: grid; gap: 4px; }
.toc a { color: var(--fg-2); text-decoration: none; display: block; padding: 2px 0 2px 12px; border-left: 2px solid var(--line-soft); }
.toc a:hover { color: var(--fg); }
.toc a.is-active { color: var(--fg); border-left-color: var(--brand); }
.toc .here { display: block; padding: 2px 0 2px 12px; border-left: 2px solid var(--sc, var(--head)); font-weight: 600; }
.toc ul a { border-left-color: transparent; }

.dp-sec { padding-bottom: 52px; margin-bottom: 52px; border-bottom: 1px solid var(--line-soft); scroll-margin-top: 96px; }
.dp-sec:last-child { border-bottom: 0; }
.dp-sec h2 { font-family: var(--display); font-variation-settings: "wdth" 108; font-weight: 700; font-size: clamp(24px, 2.6vw, 32px); line-height: 1.15; color: var(--head); margin: 0 0 10px; }
.dp-sec__lede { font-size: 18.5px; color: var(--fg); margin: 0 0 18px; max-width: 62ch; }
.dp-sec p { max-width: 68ch; }
.dp-sec ul { max-width: 66ch; padding-left: 20px; }
.dp-sec li { margin-bottom: 6px; }
.dp-sec .tscroll { margin: 22px 0; }
.note { border-left: 4px solid var(--sc, var(--head)); background: var(--panel); padding: 14px 18px; border-radius: 0 6px 6px 0; margin: 18px 0; max-width: 68ch; }
.note p { margin: 0; }
.related { list-style: none; padding: 0 !important; display: flex; flex-wrap: wrap; gap: 8px 24px; }
.record dl { display: grid; grid-template-columns: 160px 1fr; gap: 10px 20px; margin: 0; font-size: 15.5px; }
.record dt { color: var(--fg-3); }
.record dd { margin: 0; }

/* ---------- footer ---------- */
.foot { background: var(--bg-2); border-top: 1px solid var(--line); padding-block: 48px 28px; font-size: 14.5px; }
.foot__grid { display: grid; grid-template-columns: 2fr 1fr 1fr; gap: 32px; }
.foot h4 { font-family: var(--mono); font-size: 11.5px; letter-spacing: .14em; text-transform: uppercase; font-weight: 500; color: var(--fg-3); margin: 0 0 12px; }
.foot ul { list-style: none; margin: 0; padding: 0; display: grid; gap: 6px; }
.foot a { color: var(--fg-2); text-decoration: none; }
.foot a:hover { color: var(--fg); }
.foot__note { color: var(--fg-3); margin: 12px 0 0; max-width: 34ch; }
.foot__bar { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 12px; margin-top: 40px; padding-top: 18px; border-top: 1px solid var(--line); color: var(--fg-3); font-size: 13.5px; }

/* ---------- back to top ---------- */
.totop { position: fixed; right: 22px; bottom: 22px; z-index: 40; width: 42px; height: 42px; border-radius: 50%; border: 1px solid var(--line); background: var(--panel); color: var(--fg-2); cursor: pointer; display: grid; place-items: center; opacity: 0; visibility: hidden; transform: translateY(8px); transition: opacity .2s, transform .2s, visibility .2s, color .2s, border-color .2s; }
.totop[data-show] { opacity: 1; visibility: visible; transform: none; }
.totop:hover { color: var(--brand); border-color: var(--brand); }
.totop svg { width: 18px; height: 18px; }

/* ---------- responsive ---------- */
@media (max-width: 1180px) {
  .nv-top { padding: 20px 6px; font-size: 13.5px; }
}
@media (max-width: 1000px) {
  .burger { display: block; }
  .nv { display: none; }
  .nv[data-open] { display: flex; flex-direction: column; align-items: stretch; position: absolute; top: 64px; left: 0; right: 0; background: var(--bg); border-bottom: 1px solid var(--line); padding: 8px max(16px, env(safe-area-inset-right, 0px)) 14px max(16px, env(safe-area-inset-left, 0px)); gap: 0; }
  .nv-item, .nv-item--mega { position: static; }
  .nv-top { display: block; padding: 10px 0; font-size: 16px; box-shadow: none !important; }
  .nv-top::after, .nv-panel, .nv-item:hover .nv-panel, .nv-item:focus-within .nv-panel { display: none; }
  .hero__in, .dp-hero__in { grid-template-columns: minmax(0, 1fr); }
  .hero__map svg { max-width: 560px; margin: 0 auto; }
  .dp-hero__art svg { max-width: 360px; margin: 0; }
  .dp-body { grid-template-columns: minmax(0, 1fr); gap: 0; }
  .toc { position: static; display: none; }
  .strip__grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .strip__c:nth-child(4) { border-left: 0; padding-left: 0; }
  .strip__c:nth-child(n+4) { border-top: 1px solid var(--line); }
  .starts { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .foot__grid { grid-template-columns: 1fr 1fr; }
}
@media (max-width: 640px) {
  .pillars, .starts { grid-template-columns: minmax(0, 1fr); }
  .pillar--wide { grid-column: auto; }
  .meta__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .meta__c:nth-child(3) { border-left: 0; padding-left: 0; }
  .meta__c:nth-child(n+3) { border-top: 1px solid var(--line); }
  .strip__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .strip__c:nth-child(4) { border-left: 1px solid var(--line); padding-left: 18px; }
  .strip__c:nth-child(odd) { border-left: 0; padding-left: 0; }
  .strip__c:nth-child(n+3) { border-top: 1px solid var(--line); }
  .book { grid-template-columns: 1fr; gap: 20px; padding: 22px; }
  .record dl { grid-template-columns: 1fr; gap: 2px; }
  .record dd { margin-bottom: 10px; }
  .sec { padding-block: 52px; }
  .foot__grid { grid-template-columns: 1fr; }
}
@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } * { transition-duration: .001ms !important; } }

/* ---------- book lander ---------- */
.book-hero { grid-template-columns: minmax(0, 1.4fr) minmax(0, .6fr); }
.book-hero__cover { display: flex; justify-content: center; }
.book__cover--lg { width: 210px; font-size: 22px; padding: 18px; gap: 10px; }
.book__cover span { display: block; font-family: var(--mono); font-size: 10px; letter-spacing: .12em; text-transform: uppercase; font-weight: 400; opacity: .8; margin-top: 8px; }
.fig { margin: 0 0 52px; }
.fig img { display: block; width: 100%; height: auto; border: 1px solid var(--line); border-radius: 6px; cursor: zoom-in; background: var(--panel); }
.dp-sec .fig { margin: 22px 0 32px; }
.dp-sec h3 { font-family: var(--display); font-variation-settings: "wdth" 108; font-weight: 650; font-size: 20px; margin: 32px 0 0; }
@media (max-width: 1000px) {
  .book-hero { grid-template-columns: minmax(0, 1fr); gap: 24px; }
  .book-hero__cover { order: -1; justify-content: flex-start; }
  .book__cover--lg { width: 130px; font-size: 15px; padding: 12px; }
}
.book__img { display: block; width: 120px; height: auto; border-radius: 3px; box-shadow: 0 10px 24px -14px rgba(0,0,0,.6); }
.book__img--lg { width: 220px; }
@media (max-width: 1000px) { .book__img--lg { width: 140px; } }

/* ---------- exemplars: energy families, matrix, bars ---------- */
[data-family="gas"] { --fc: var(--s-energy); }
[data-family="clean"] { --fc: var(--s-giga); }
[data-family="grid"] { --fc: var(--s-dc); }
.ex-legend { margin: 20px 0 0; }
.ex-legend .dot { background: var(--fc); }
.ex-dot { fill: color-mix(in srgb, var(--fc) 55%, transparent); stroke: var(--fc); stroke-width: 1.4; }
.ex-dot--unk { fill: none; stroke-dasharray: 3 3; }
a:hover .ex-dot { fill: var(--fc); }
.ex-filters { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; margin: 24px 0 14px; }
.ex-filters .k { margin: 0 4px 0 8px; }
.ex-filters .k:first-child { margin-left: 0; }
.ex-chip { font: 500 14px var(--body); padding: 6px 12px; border: 1px solid var(--line); border-radius: 999px; background: var(--panel); color: var(--fg-2); cursor: pointer; }
.ex-chip:hover { border-color: var(--fg-3); color: var(--fg); }
.ex-chip[aria-pressed="true"] { background: var(--fg); color: var(--bg); border-color: var(--fg); }
.ex-fig { border: 1px solid var(--line); border-radius: 6px; background: var(--panel); padding: 18px 18px 12px; margin: 0 0 22px; }
.ex-scroll { overflow-x: auto; }
.ex-scroll svg { display: block; width: 100%; min-width: 720px; height: auto; }
.ex-info { font-size: 14.5px; color: var(--fg-2); margin: 10px 0 0; min-height: 1.6em; }
.mx-band { fill: var(--bg-2); }
.mx-band-t { font-family: var(--mono); font-size: 10.5px; letter-spacing: .12em; fill: var(--fg-3); }
.mx-col { font-family: var(--mono); font-size: 11px; letter-spacing: .03em; fill: var(--fg-2); }
.mx-row { font-family: var(--body); font-size: 14px; font-weight: 600; fill: var(--fg); }
.mx-rule { stroke: var(--line-soft); stroke-width: 1; }
.mx-node { cursor: pointer; outline: none; transition: opacity .15s; }
.mx-dot { fill: color-mix(in srgb, var(--fc) 50%, transparent); stroke: var(--fc); stroke-width: 1.5; transition: fill .15s; }
.mx-dot--unk { fill: none; stroke-dasharray: 3 3; }
.mx-lab { font-family: var(--mono); font-size: 11px; fill: var(--fg-2); }
.mx-node:hover .mx-dot, .mx-node:focus-visible .mx-dot, .mx-node.is-sel .mx-dot { fill: var(--fc); }
.mx-node.is-sel .mx-lab, .mx-node:focus-visible .mx-lab { fill: var(--fg); font-weight: 600; }
.mx-node.is-off { opacity: .14; pointer-events: none; }
.ex-tbl tr[data-family] td:first-child { border-left: 4px solid var(--fc); font-weight: 600; }
.ex-tbl tr.is-sel td { background: color-mix(in srgb, var(--fc) 12%, transparent); }
.ex-note { font-size: 14px; color: var(--fg-3); margin: 10px 0 0; }
.bar-grid { stroke: var(--line-soft); stroke-width: 1; }
.bar-tick { font-family: var(--mono); font-size: 11px; fill: var(--fg-3); }
.bar-name { font-family: var(--body); font-size: 13.5px; font-weight: 500; fill: var(--fg); }
.bar-val { font-family: var(--mono); font-size: 12px; fill: var(--fg-2); }
.bar-plan { fill: color-mix(in srgb, var(--fc) 28%, transparent); stroke: var(--fc); stroke-width: 1; }
.bar-live { fill: var(--fc); }
.bar-unk { fill: none; stroke: var(--fc); stroke-dasharray: 3 3; }
.sw { display: inline-block; width: 22px; height: 10px; border-radius: 2px; vertical-align: 0; margin-right: 6px; border: 1px solid var(--fg-3); }
.sw--plan { background: color-mix(in srgb, var(--fg-3) 25%, transparent); }
.sw--live { background: var(--fg-2); border-color: var(--fg-2); }

/* ---------- Texas AI compute pages: power source ---------- */
[data-power="gas"] { --pc: var(--s-energy); }
[data-power="renew"] { --pc: var(--s-giga); }
[data-power="nuclear"] { --pc: var(--s-fab); }
[data-power="grid"] { --pc: var(--s-dc); }
.dc-legend { margin: 20px 0 0; }
.dc-legend .dot { background: var(--pc); }
.dc-dot { fill: color-mix(in srgb, var(--pc) 55%, transparent); stroke: var(--pc); stroke-width: 1.3; transition: opacity .15s; }
.dc-dot--unk { fill: var(--panel); stroke-dasharray: 2.5 2.5; }
.dc-dot--dim { opacity: .22; }
a:hover .dc-dot { fill: var(--pc); opacity: 1; }
.dp-hero__art a.is-off { opacity: .1; pointer-events: none; }
.dc-tbl tr[data-power] td:first-child { border-left: 4px solid var(--pc); font-weight: 600; }
.dc-tbl tr.is-sel td { background: color-mix(in srgb, var(--pc) 12%, transparent); }
.dc-seg { fill: color-mix(in srgb, var(--pc) 70%, transparent); stroke: var(--panel); stroke-width: 1; }
.dc-cobar { cursor: pointer; outline: none; transition: opacity .15s; }
.dc-cobar:hover .bar-name, .dc-cobar:focus-visible .bar-name { fill: var(--link); text-decoration: underline; }
.dc-cobar.is-off { opacity: .25; }
.dc-site { cursor: pointer; outline: none; }
.dc-site.is-sel .bar-name, .dc-site:focus-visible .bar-name { fill: var(--link); }
.dc-bar { stroke: var(--pc); stroke-width: 1.2; }
.dc-bar--live { fill: var(--pc); }
.dc-bar--build { fill: color-mix(in srgb, var(--pc) 45%, transparent); }
.dc-bar--planned { fill: color-mix(in srgb, var(--pc) 10%, transparent); stroke-dasharray: 4 3; }
.dc-bar--unk { fill: none; stroke-dasharray: 2 3; }
.dc-sw--live { background: var(--fg-2); border-color: var(--fg-2); }
.dc-sw--build { background: color-mix(in srgb, var(--fg-2) 45%, transparent); }
.dc-sw--planned { background: transparent; border-style: dashed; }
.dc-sw--unk { background: transparent; border-style: dotted; width: 14px; }
.dc-cards { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; }
@media (max-width: 1000px) { .dc-cards { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 640px) { .dc-cards { grid-template-columns: minmax(0, 1fr); } }

/* ---------- Texas data centers directory ---------- */
.dcx-toggle { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; margin: 0 0 12px; }
.dcx-toggle .k { margin-right: 4px; }
.dcx-seg { stroke: var(--panel); stroke-width: 1; }
.dcx-seg--live, .dcx-sw--live { fill: var(--fg-2); background: var(--fg-2); }
.dcx-seg--build, .dcx-sw--build { fill: color-mix(in srgb, var(--fg-2) 60%, transparent); background: color-mix(in srgb, var(--fg-2) 60%, transparent); }
.dcx-seg--pre, .dcx-sw--pre { fill: color-mix(in srgb, var(--fg-2) 32%, transparent); background: color-mix(in srgb, var(--fg-2) 32%, transparent); }
.dcx-seg--announced, .dcx-sw--announced { fill: color-mix(in srgb, var(--fg-2) 12%, transparent); background: color-mix(in srgb, var(--fg-2) 12%, transparent); }
.dcx-key { display: inline-flex; align-items: center; margin-right: 14px; font-size: 14px; }
.dcx-key .dot { background: var(--pc); }
.dcx-search { display: inline-flex; align-items: center; gap: 8px; margin-left: 8px; }
.dcx-search input { font: 15px var(--body); padding: 6px 12px; border: 1px solid var(--line); border-radius: 999px; background: var(--panel); color: var(--fg); min-width: 240px; }
.dcx-tbl th[data-sort] { cursor: pointer; white-space: nowrap; }
.dcx-tbl th[data-sort]::after { content: " \2195"; opacity: .4; }
.dcx-tbl th[aria-sort="ascending"]::after { content: " \2191"; opacity: 1; }
.dcx-tbl th[aria-sort="descending"]::after { content: " \2193"; opacity: 1; }
@media (max-width: 640px) { .dcx-search { margin-left: 0; width: 100%; } .dcx-search input { min-width: 0; flex: 1; } }

/* ---------- supplier ring (Samsung Taylor and the other anchors) ---------- */
[data-origin="kr"] { --oc: var(--s-aero); }
[data-origin="jp"] { --oc: var(--s-fab); }
[data-origin="us"] { --oc: var(--s-dc); }
[data-origin="eu"] { --oc: var(--s-giga); }
[data-origin="ot"] { --oc: var(--s-energy); }
[data-origin="cn"] { --oc: var(--s-mat); }
.st-legend { margin: 20px 0 0; }
.st-legend .dot, .st-card .dot { background: var(--oc); }
.st-legend li[data-s] .dot { background: var(--sc); }
.st-sq { display: inline-block; width: 9px; height: 9px; margin-right: 8px; background: var(--fg-2); border: 1px solid var(--fg); vertical-align: 0; }
.st-county { fill: none; stroke: var(--line); stroke-width: 1; }
.st-county--on { fill: var(--panel); stroke: var(--fg-3); stroke-width: 1.3; }
.st-county-t { fill: var(--fg-3); font-size: 10px; letter-spacing: .14em; }
.st-road { fill: none; stroke: var(--line); stroke-width: 3; stroke-linecap: round; stroke-linejoin: round; }
.st-road-t { fill: var(--fg-3); font-size: 10px; }
.st-dc { fill: var(--fg-2); stroke: var(--panel); stroke-width: 1; }
a:hover .st-dc { fill: var(--fg); }
.st-sup { fill: var(--oc); stroke: var(--panel); stroke-width: 1; }
a:hover .st-sup { r: 6; }
.st-anchor { fill: var(--s-fab); }
.st-anchor-ring { fill: none; stroke: var(--s-fab); stroke-width: 1.5; }
.st-anchor-t { fill: var(--s-fab); }
.st-node { fill: var(--sc); stroke: var(--panel); stroke-width: 1.5; }
.st-ringwrap { display: grid; grid-template-columns: minmax(0, 1.6fr) minmax(0, 1fr); gap: 22px; align-items: start; }
.st-ring svg { min-width: 520px; }
.st-card { border-left: 3px solid var(--line); padding: 4px 0 4px 18px; font-size: 15px; min-height: 320px; }
.st-card h3 { font-family: var(--display); font-variation-settings: "wdth" 108; font-weight: 650; font-size: 20px; margin: 6px 0 12px; }
.st-card dl { display: grid; grid-template-columns: auto 1fr; gap: 6px 14px; margin: 0 0 12px; }
.st-card dt { color: var(--fg-3); }
.st-card dd { margin: 0; }
.st-card p { margin: 0 0 10px; color: var(--fg-2); }
.rg-ring { fill: none; stroke: var(--line); stroke-width: 1; stroke-dasharray: 3 4; }
.rg-ring-t { font-family: var(--mono); font-size: 9.5px; letter-spacing: .12em; fill: var(--fg-3); }
.rg-wedge { stroke: var(--line); stroke-width: 1; }
.rg-tier-t { font-family: var(--mono); font-size: 10.5px; letter-spacing: .1em; fill: var(--fg-2); }
.rg-core { fill: var(--s-fab); }
.rg-core-t { font-family: var(--mono); font-size: 10px; letter-spacing: .12em; fill: var(--panel); font-weight: 600; }
.rg-node { cursor: pointer; outline: none; transition: opacity .15s; }
.rg-dot { stroke: var(--oc); stroke-width: 1.6; fill: var(--oc); }
.rg-ev--rep .rg-dot { fill: color-mix(in srgb, var(--oc) 45%, var(--panel)); }
.rg-ev--inf .rg-dot { fill: var(--panel); }
.rg-node:hover .rg-dot, .rg-node:focus-visible .rg-dot { r: 9; }
.rg-node.is-sel .rg-dot { r: 9.5; stroke: var(--fg); stroke-width: 2; }
.rg-node.is-off { opacity: .1; pointer-events: none; }
.rg-bar { fill: color-mix(in srgb, var(--s-fab) 55%, transparent); stroke: var(--s-fab); stroke-width: 1; }
.st-tbl tr[data-origin] td:first-child { border-left: 4px solid var(--oc); font-weight: 600; }
.st-tbl tr.is-sel td { background: color-mix(in srgb, var(--oc) 12%, transparent); }
.st-tbl th[data-sort] { cursor: pointer; white-space: nowrap; }
.st-tbl th[data-sort]::after { content: " \2195"; opacity: .4; }
.st-tbl th[aria-sort="ascending"]::after { content: " \2191"; opacity: 1; }
.st-tbl th[aria-sort="descending"]::after { content: " \2193"; opacity: 1; }
.st-kr tr[data-origin] td:first-child { border-left: 4px solid var(--oc); font-weight: 600; }
@media (max-width: 1000px) { .st-ringwrap { grid-template-columns: minmax(0, 1fr); } .st-card { min-height: 0; } }
.st-details { margin: 18px 0 0; }
.st-details > summary { cursor: pointer; font-weight: 600; color: var(--link); padding: 10px 0; }
.st-details[open] > summary { margin-bottom: 8px; }

/* ---------- Giga Texas campus schematic ---------- */
[data-prog="ev"] { --pg: var(--s-giga); }
[data-prog="optimus"] { --pg: var(--s-aero); }
[data-prog="cortex"] { --pg: var(--s-dc); }
[data-prog="terafab"] { --pg: var(--s-fab); }
[data-prog="campus"] { --pg: var(--s-mat); }
.gx-legend { margin: 20px 0 0; }
.gx-legend .dot { background: var(--pg); }
.gx-site { fill: var(--panel); stroke: var(--fg-3); stroke-width: 1.2; stroke-dasharray: 6 4; }
.gx-river { fill: none; stroke: color-mix(in srgb, var(--s-dc) 45%, transparent); stroke-width: 7; stroke-linecap: round; }
.gx-road { stroke: var(--line); stroke-width: 6; }
.gx-note { font-family: var(--mono); font-size: 10px; letter-spacing: .12em; fill: var(--fg-3); }
.gx-b { fill: color-mix(in srgb, var(--pg) 22%, var(--panel)); stroke: var(--pg); stroke-width: 1.4; transition: fill .15s; cursor: pointer; }
a:hover .gx-b, a:focus-visible .gx-b { fill: color-mix(in srgb, var(--pg) 45%, var(--panel)); }
.gx-t { font-family: var(--mono); font-size: 11px; letter-spacing: .06em; fill: var(--fg); font-weight: 600; pointer-events: none; }
.gx-t--sm { font-size: 9.5px; font-weight: 500; fill: var(--fg-2); }
.gx-solar path { stroke: color-mix(in srgb, var(--s-energy) 70%, transparent); stroke-width: 2; }
.gx-loop { fill: none; stroke: var(--s-giga); stroke-width: 3; cursor: pointer; }
.gx-oval { fill: color-mix(in srgb, var(--s-giga) 8%, transparent); stroke: var(--s-giga); stroke-width: 5; stroke-opacity: .55; cursor: pointer; }
.gx-mp rect { fill: color-mix(in srgb, var(--s-dc) 55%, var(--panel)); }
.gx-tbl tr[data-prog] td:first-child { border-left: 4px solid var(--pg); font-weight: 600; }

/* ---------- Bastrop: hero map, ingot-to-orbit chain, comparison ---------- */
.st-ring[data-s] .rg-core { fill: var(--sc); }
.bx-anchor { fill: var(--s-aero); stroke: var(--panel); stroke-width: 1.5; }
.bx-anchor-ring { fill: none; stroke: var(--s-aero); stroke-width: 1.5; }
.bx-anchor-t { fill: var(--s-aero); font-weight: 600; }
.bx-sub { font-weight: 400; font-size: 11px; }
.bx-zone { fill: color-mix(in srgb, var(--s-dc) 8%, transparent); stroke: var(--s-dc); stroke-width: 1.2; stroke-dasharray: 4 4; }
a:hover .bx-zone { fill: color-mix(in srgb, var(--s-dc) 16%, transparent); }
.bx-city { fill: var(--fg-3); }
.bx-dc-t { fill: var(--s-dc); font-weight: 600; }
.bx-map .st-dc { fill: var(--s-dc); }
.bx-chain { list-style: none; margin: 0 0 24px; padding: 0; display: grid; grid-template-columns: repeat(4, 1fr); gap: 8px; counter-reset: bx; }
.bx-chain li { counter-increment: bx; position: relative; }
.bx-chain li > a, .bx-chain li > div { display: flex; flex-direction: column; gap: 4px; height: 100%; padding: 12px 12px 14px; border: 1px solid var(--line); border-top: 4px solid var(--stc); background: var(--panel); color: var(--fg); text-decoration: none; }
.bx-chain li > a:hover { border-color: var(--stc); }
.bx-chain li > a:focus-visible { outline: 2px solid var(--brand); outline-offset: 2px; }
.bx-chain strong { font-family: var(--display); font-size: 15px; line-height: 1.2; }
.bx-chain strong::before { content: counter(bx, decimal-leading-zero) " "; font-family: var(--mono); font-size: 11px; color: var(--fg-3); font-weight: 400; }
.bx-chain span:last-child { font-size: 13px; color: var(--fg-2); line-height: 1.4; }
.bx-st { font-family: var(--mono); font-size: 10px; letter-spacing: .1em; text-transform: uppercase; color: var(--stc); }
[data-st="op"] { --stc: var(--s-giga); }
[data-st="build"] { --stc: var(--s-energy); }
[data-st="plan"] { --stc: var(--fg-3); }
.bx-why th[scope="col"][data-s] { border-bottom: 3px solid var(--sc); }
.bx-why th[scope="row"] { font-family: var(--mono); font-size: 12px; font-weight: 500; text-transform: uppercase; letter-spacing: .06em; white-space: nowrap; }
@media (max-width: 900px) { .bx-chain { grid-template-columns: repeat(2, 1fr); } }
.bx-dc .st-sq { background: var(--s-dc); border-color: var(--s-dc); }

/* ---------- Austin Supercluster: map, domain matrix, comparison bars ---------- */
.vh { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.sc-tri { fill: color-mix(in srgb, var(--brand) 6%, transparent); stroke: var(--brand); stroke-width: 1.2; stroke-dasharray: 5 4; }
.sc-tri-t { font-family: var(--mono); font-size: 9px; letter-spacing: .14em; fill: var(--brand); }
.sc-corr { fill: none; stroke: color-mix(in srgb, var(--sc) 30%, transparent); stroke-width: 16; stroke-linecap: round; stroke-linejoin: round; }
.sc-corr-c { fill: none; stroke: var(--sc); stroke-width: 2.5; stroke-linecap: round; stroke-linejoin: round; }
.sc-clu { fill: var(--sc); stroke: var(--panel); stroke-width: 2; }
.sc-clu--forming { fill: color-mix(in srgb, var(--sc) 12%, transparent); stroke: var(--sc); stroke-width: 2; stroke-dasharray: 4 3; }
.sc-core { fill: var(--fg); stroke: var(--panel); stroke-width: 1.5; }
.sc-lab { font-weight: 600; fill: var(--fg); }
.sc-city { font-size: 10px; fill: var(--fg-3); }
.sc-node { cursor: pointer; }
.sc-node:hover .sc-corr { stroke: color-mix(in srgb, var(--sc) 50%, transparent); }
.dp-hero__art .is-dim { opacity: .2; transition: opacity .15s; }
.sc-tbl tr.is-dim, .sc-mx tr.is-dim { opacity: .35; }
.sc-legend { display: flex; flex-wrap: wrap; gap: 6px 20px; }
.sc-k { display: inline-block; width: 14px; height: 14px; margin-right: 8px; vertical-align: -2px; }
.sc-k--clu { border-radius: 50%; background: var(--s-giga); }
.sc-k--corr { width: 22px; height: 8px; vertical-align: 1px; border-radius: 4px; background: color-mix(in srgb, var(--s-dc) 35%, transparent); box-shadow: inset 0 -3px 0 -1px var(--s-dc), inset 0 3px 0 -1px var(--s-dc); }
.sc-k--forming { border-radius: 50%; border: 2px dashed var(--s-dc); }
.sc-k--core { width: 10px; height: 10px; margin-left: 2px; transform: rotate(45deg); background: var(--fg); }
.sc-tag { font-family: var(--mono); font-size: 10px; letter-spacing: .08em; text-transform: uppercase; color: var(--s-dc); border: 1px dashed var(--s-dc); padding: 1px 5px; border-radius: 3px; }
.sc-tbl tr[data-forming] td:first-child { border-left-style: dashed; }
.sc-mx th[data-d] { font-size: 11px; line-height: 1.25; vertical-align: bottom; min-width: 60px; text-transform: none; letter-spacing: 0; }
.sc-mx th.sc-sup { color: var(--fg-3); }
.sc-mx td { text-align: center; position: relative; }
.sc-mx th[scope="row"] { font-weight: 500; min-width: 150px; }
.sc-dot { display: inline-block; width: 13px; height: 13px; border-radius: 50%; background: var(--brand); vertical-align: -2px; }
.sc-dot[data-v="f"], td[data-v="f"] .sc-dot { background: transparent; border: 2px dashed var(--brand); }
.sc-mx [data-d].is-on { background: color-mix(in srgb, var(--brand) 9%, transparent); }
.sc-bar { display: block; width: 180px; height: 12px; background: color-mix(in srgb, var(--fg-3) 15%, transparent); border-radius: 2px; overflow: hidden; white-space: nowrap; font-size: 0; }
.sc-bar i { display: inline-block; height: 100%; width: calc(var(--n) * 100% / 9); background: var(--s-dc); }
.sc-cmp tr[data-s] .sc-bar i { background: var(--brand); }
.sc-bar .sc-bar--rng { background: repeating-linear-gradient(45deg, var(--s-dc) 0 3px, transparent 3px 6px) !important; }
.sc-bar .sc-bar--sup { background: color-mix(in srgb, var(--brand) 40%, transparent) !important; }
.sc-sw { background: var(--s-dc); border-color: var(--s-dc); }
.sc-sw--rng { background: repeating-linear-gradient(45deg, var(--s-dc) 0 3px, transparent 3px 6px); }
.sc-sw--sup { background: color-mix(in srgb, var(--brand) 40%, transparent); border-color: var(--brand); }
@media (max-width: 700px) { .sc-bar { width: 110px; } }
.dp-body > main { min-width: 0; }

/* ---------- Starbase: coastal map, cadence bars ---------- */
.sb-sea { fill: color-mix(in srgb, var(--s-dc) 7%, var(--bg)); }
.sb-land { fill: var(--bg); }
.st-county--on.sb-land { fill: var(--panel); }
.sb-chan { fill: none; stroke: color-mix(in srgb, var(--s-dc) 45%, transparent); stroke-width: 5; stroke-linecap: round; }
.sb-site { fill: var(--sc); stroke: var(--panel); stroke-width: 2; }
a:hover .sb-site { stroke: var(--fg); }
.sb-lng { fill: var(--fg-3); }
.sb-cad { display: block; width: 100%; max-width: 640px; height: auto; }
.sb-cad-l { font-family: var(--mono); font-size: 11px; fill: var(--fg-2); }
.sb-cad-v { font-family: var(--mono); font-size: 13px; font-weight: 600; fill: var(--fg); }
.sb-cad-b { fill: var(--s-aero); }
.sb-cad--cur { fill: var(--fg-3); }
.sb-cad--p1 { fill: color-mix(in srgb, var(--s-aero) 55%, transparent); }
.sb-island { fill: color-mix(in srgb, var(--s-energy) 18%, var(--panel)); }
.sb-river { fill: none; stroke: color-mix(in srgb, var(--s-dc) 45%, transparent); stroke-width: 4; stroke-linecap: round; }
.sb-port-rd { stroke-width: 2; }

/* ---------- Terafab: capital bars, scale squares, timeline, map ---------- */
.tf-bars, .tf-scale, .tf-plan { display: block; width: 100%; max-width: 680px; height: auto; }
.tf-bar-l { font-family: var(--mono); font-size: 11px; fill: var(--fg-2); }
.tf-bar-v { font-family: var(--mono); font-size: 12px; font-weight: 600; fill: var(--fg); }
.tf-bar-b { fill: var(--s-fab); }
.tf-bar[data-kind="est"] .tf-bar-b { fill: color-mix(in srgb, var(--s-fab) 45%, transparent); }
.tf-bar-r { fill: color-mix(in srgb, var(--s-fab) 20%, transparent); stroke: var(--s-fab); stroke-dasharray: 3 3; }
.tf-sw { background: var(--s-fab); border-color: var(--s-fab); }
.tf-sw--rng { background: repeating-linear-gradient(45deg, var(--s-fab) 0 3px, transparent 3px 6px); }
.tf-sq { fill: color-mix(in srgb, var(--sc) 18%, transparent); stroke: var(--sc); stroke-width: 1.5; }
.tf-sq-t { font-family: var(--mono); font-size: 10px; letter-spacing: .08em; fill: var(--fg-2); }
.tf-sq-v { font-family: var(--mono); font-size: 12px; font-weight: 600; fill: var(--sc); }
.tf-ring { fill: color-mix(in srgb, var(--s-aero) 6%, transparent); stroke: var(--s-aero); stroke-width: 1.5; stroke-dasharray: 6 4; }
.tf-ring-t { fill: var(--s-aero); }
.tf-road { stroke: var(--fg-3); stroke-width: 1; }
.tf-cap { fill: none; stroke: var(--s-fab); stroke-width: 1.5; }
.tf-res { fill: color-mix(in srgb, var(--s-dc) 35%, transparent); }
.tf-fab { fill: var(--s-fab); stroke: var(--panel); stroke-width: 1.5; }
.tf-lab { fill: var(--s-fab); }
.tf-arr { stroke: var(--fg-3); stroke-width: 1.5; fill: none; stroke-dasharray: 4 3; }
.tf-arrhead { fill: var(--fg-3); }
.tf-zone-t { font-size: 9px; letter-spacing: .1em; }
.tf-focus .gx-b:not([data-prog="terafab"]), .tf-focus .gx-mp, .tf-focus .gx-oval, .tf-focus .gx-loop, .tf-focus .gx-solar { opacity: .28; }
.tf-two th[scope="col"][data-s] { border-bottom: 3px solid var(--sc); }
.tf-two th[scope="row"], .tf-needs th[scope="row"] { font-family: var(--mono); font-size: 12px; font-weight: 500; text-transform: uppercase; letter-spacing: .06em; white-space: nowrap; }
.tf-path { display: flex; flex-wrap: wrap; gap: 4px 0; }
.tf-path span { white-space: nowrap; }
.tf-path span + span::before { content: "\2192"; margin: 0 6px; color: var(--fg-3); }
.tl { list-style: none; margin: 18px 0 24px; padding: 0 0 0 18px; border-left: 2px solid var(--line); }
.tl li { position: relative; display: grid; grid-template-columns: 150px 1fr; gap: 14px; padding: 7px 0; }
.tl li::before { content: ""; position: absolute; left: -25px; top: 13px; width: 10px; height: 10px; border-radius: 50%; background: var(--kc, var(--fg-3)); border: 2px solid var(--bg); }
.tl li[hidden] { display: none; }
.tl-d { font-family: var(--mono); font-size: 12px; color: var(--fg-2); padding-top: 2px; }
.tl li[data-kind="deal"] { --kc: var(--s-dc); }
.tl li[data-kind="land"] { --kc: var(--s-giga); }
.tl li[data-kind="build"] { --kc: var(--s-energy); }
.tl li[data-kind="tech"] { --kc: var(--s-fab); }
.tl li[data-kind="issue"] { --kc: var(--s-aero); }
@media (max-width: 700px) { .tl li { grid-template-columns: 1fr; gap: 2px; } }
.tf-path--alt span + span::before { content: "or"; font-size: 12px; }

/* ---------- US 79 corridor: status-colored campuses, rail, capacity bars ---------- */
[data-st="op"] { --uc: var(--s-giga); }
[data-st="build"] { --uc: var(--s-dc); }
[data-st="pre"] { --uc: color-mix(in srgb, var(--s-dc) 40%, var(--panel)); }
[data-st="cont"] { --uc: var(--s-aero); }
.u79-dot { fill: var(--uc); stroke: var(--panel); stroke-width: 1.5; fill-opacity: .9; }
.u79-dc.is-hi .u79-dot, .u79-dc:hover .u79-dot { stroke: var(--fg); stroke-width: 2.5; }
.u79-rail { fill: none; stroke: var(--fg-2); stroke-width: 1.5; stroke-dasharray: 1 0; }
.u79-rail { stroke-dasharray: 6 3; }
.u79-k .dot { background: var(--uc) !important; }
.u79-bar { fill: var(--uc); }
.u79-bar--nd { opacity: .6; }
.u79-row.is-hi .tf-bar-l { fill: var(--fg); font-weight: 600; }
.u79-tbl tr.is-hi td { background: color-mix(in srgb, var(--s-dc) 8%, transparent); }
.u79-tbl tr[data-st] td:first-child { border-left: 4px solid var(--uc); }
.u79-sw { background: var(--uc); border-color: var(--uc); }
.u79-total { font-family: var(--mono); font-size: 13px; color: var(--fg-2); margin: 0 0 12px; }
.u79-total span { font-family: var(--display); font-size: 28px; font-weight: 700; color: var(--fg); margin-right: 6px; }
.is-off { display: none; }
.u79-stack { list-style: none; margin: 0 0 20px; padding: 0; display: grid; gap: 6px; }
.u79-stack li { padding: 10px 14px; background: var(--panel); border: 1px solid var(--line); border-left: 4px solid var(--sc); }
.u79-stack .k { display: block; margin-bottom: 2px; }
.u79-k-rail { display: inline-block; width: 22px; height: 0; border-top: 2px dashed var(--fg-2); margin-right: 8px; vertical-align: 3px; }

/* ---------- I-35 South: pipelines, featured campus, first-power chart ---------- */
.i35-gas { fill: none; stroke: var(--s-energy); stroke-width: 1.5; stroke-dasharray: 2 4; stroke-linecap: round; }
.i35-gas-t { fill: var(--s-energy); }
.i35-k-gas { display: inline-block; width: 22px; height: 0; border-top: 2px dotted var(--s-energy); margin-right: 8px; vertical-align: 3px; }
.i35-end { fill: var(--fg-3); }
.i35-dc.is-hi .u79-dot, .i35-dc:hover .u79-dot { stroke: var(--fg); stroke-width: 2.5; }
.i35-feature { margin: 0 0 22px; padding: 18px 20px; background: var(--panel); border: 1px solid var(--line); border-top: 4px solid var(--sc); }
.i35-feature h3 { margin: 4px 0 12px; font-family: var(--display); font-size: 22px; }
.i35-facts { display: grid; grid-template-columns: 120px 1fr; gap: 6px 16px; margin: 0 0 12px; }
.i35-facts dt { font-family: var(--mono); font-size: 11px; letter-spacing: .08em; text-transform: uppercase; color: var(--fg-3); padding-top: 3px; }
.i35-facts dd { margin: 0; }
.i35-grid { stroke: var(--line); stroke-width: 1; }
.i35-now { stroke: var(--brand); stroke-width: 1.5; stroke-dasharray: 4 3; }
.i35-now-t { fill: var(--brand); }
.i35-wait { stroke: var(--uc); stroke-width: 3; stroke-opacity: .35; }
@media (max-width: 700px) { .i35-facts { grid-template-columns: 1fr; gap: 0 0; } .i35-facts dd { margin-bottom: 8px; } }

/* ---------- Aerospace and defense family: maps, cards, steps, pipeline ---------- */
.df-zone { fill: color-mix(in srgb, var(--s-aero) 6%, transparent); stroke: var(--s-aero); stroke-width: 1; stroke-dasharray: 4 4; }
.df-zone-t { font-family: var(--mono); font-size: 9px; letter-spacing: .12em; fill: var(--s-aero); }
.df-node { fill: var(--sc); stroke: var(--panel); stroke-width: 2; }
[data-node].is-hi .df-node, [data-node].is-hi .gd-node, a:hover .df-node { stroke: var(--fg); stroke-width: 2.5; }
.dp-hero__art [data-cats].is-dim { opacity: .15; }
.df-cards { display: grid; grid-template-columns: repeat(auto-fill, minmax(250px, 1fr)); gap: 10px; margin: 0 0 20px; }
.df-card { padding: 14px 16px; background: var(--panel); border: 1px solid var(--line); border-top: 4px solid var(--sc); transition: opacity .15s; }
.df-card h3 { margin: 4px 0 6px; font-family: var(--display); font-size: 17px; line-height: 1.25; }
.df-card p:last-child { margin: 0; font-size: 14px; color: var(--fg-2); line-height: 1.45; }
.df-card.is-dim { opacity: .3; }
.df-card.is-hi, .gd-steps li.is-hi { border-color: var(--sc, var(--brand)); box-shadow: 0 0 0 1px var(--sc, var(--brand)); }
.gd-route { fill: none; stroke: var(--brand); stroke-width: 1.5; stroke-dasharray: 5 4; }
.gd-node { fill: var(--s-aero); stroke: var(--panel); stroke-width: 2; }
.gd-node--next { fill: color-mix(in srgb, var(--s-fab) 20%, transparent); stroke: var(--s-fab); stroke-dasharray: 3 2; }
.gd-num { font-family: var(--mono); font-size: 10px; font-weight: 700; fill: #fff; pointer-events: none; }
.gd-fh { fill: var(--s-mat); stroke: var(--panel); stroke-width: 1.5; }
.gd-k { display: inline-block; width: 13px; height: 13px; border-radius: 50%; background: var(--s-aero); margin-right: 8px; vertical-align: -2px; }
.gd-k--next { background: transparent; border: 2px dashed var(--s-fab); }
.gd-k-route { display: inline-block; width: 22px; height: 0; border-top: 2px dashed var(--brand); margin-right: 8px; vertical-align: 3px; }
.gd-steps { list-style: none; margin: 0 0 20px; padding: 0; display: grid; grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); gap: 8px; }
.gd-steps li { display: grid; grid-template-columns: 40px 1fr; gap: 14px; padding: 12px 16px; background: var(--panel); border: 1px solid var(--line); --sc: var(--s-aero); }
.gd-steps h3 { margin: 2px 0 4px; font-family: var(--display); font-size: 17px; }
.gd-steps p:last-child { margin: 0; font-size: 14px; color: var(--fg-2); }
.gd-num-b { display: grid; place-items: center; width: 32px; height: 32px; border-radius: 50%; background: var(--s-aero); color: #fff; font-family: var(--mono); font-weight: 700; font-size: 13px; }
.gd-bar { fill: var(--s-aero); }
.fh-base { fill: color-mix(in srgb, var(--s-mat) 22%, transparent); stroke: var(--s-mat); stroke-width: 1.5; }
.fh-k { display: inline-block; width: 18px; height: 12px; background: color-mix(in srgb, var(--s-mat) 22%, transparent); border: 1.5px solid var(--s-mat); margin-right: 8px; vertical-align: -1px; }
.fh-pipe { list-style: none; margin: 0 0 22px; padding: 0; display: grid; grid-template-columns: repeat(5, 1fr); gap: 6px; counter-reset: fh; }
.fh-pipe li { position: relative; padding: 12px 12px 14px; background: var(--panel); border: 1px solid var(--line); border-top: 4px solid var(--s-mat); }
.fh-pipe li + li::before { content: "\2192"; position: absolute; left: -12px; top: 40%; color: var(--fg-3); font-size: 14px; }
.fh-pipe h3 { margin: 4px 0 2px; font-family: var(--display); font-size: 15px; line-height: 1.25; }
.fh-where { margin: 0 0 6px; font-family: var(--mono); font-size: 11px; color: var(--fg-3); }
.fh-pipe p:last-child { margin: 0; font-size: 13px; color: var(--fg-2); line-height: 1.4; }
@media (max-width: 900px) { .fh-pipe { grid-template-columns: 1fr; } .fh-pipe li + li::before { content: "\2193"; left: 50%; top: -14px; } }

/* ---------- Fermi and Abilene: generation stack, layer stack, buildings ---------- */
[data-k="gas"] { --fk: var(--s-energy); }
[data-k="nuc"] { --fk: var(--s-fab); }
[data-k="smr"] { --fk: color-mix(in srgb, var(--s-fab) 45%, var(--panel)); }
.fm-seg { fill: var(--fk); stroke: var(--panel); stroke-width: 2; }
[data-node].is-hi .fm-seg, g[data-node]:hover .fm-seg { stroke: var(--fg); }
.fm-v { font-family: var(--mono); font-size: 14px; font-weight: 700; fill: #fff; }
.fm-tick { stroke: var(--fg-3); stroke-width: 1; }
.fm-mark { stroke: var(--brand); stroke-width: 2; stroke-dasharray: 4 3; }
.fm-mark-t { font-family: var(--mono); font-size: 10px; letter-spacing: .08em; fill: var(--brand); }
.fm-k .dot { background: var(--fk) !important; }
.fm-row td:first-child { border-left: 4px solid var(--fk); }
.fm-row.is-hi td { background: color-mix(in srgb, var(--fk) 10%, transparent); }
.dr-loc-a { fill: var(--brand); }
.dr-loc-p { fill: var(--s-dc); }
.dr-bar { fill: var(--s-dc); }
[data-camp="c1"] { --cc: var(--s-dc); }
[data-camp="c2"] { --cc: var(--s-aero); }
[data-camp="both"] { --cc: var(--fg-3); }
[data-camp="c3"] { --cc: var(--s-giga); }
.sg-box { fill: color-mix(in srgb, var(--cc) 14%, var(--panel)); stroke: var(--cc); stroke-width: 1.5; }
g[data-node].is-hi .sg-box, g[data-node]:hover .sg-box { fill: color-mix(in srgb, var(--cc) 28%, var(--panel)); }
.sg-t { font-family: var(--sans, inherit); font-size: 12px; fill: var(--fg); }
.sg-lab { font-family: var(--mono); font-size: 9.5px; letter-spacing: .08em; fill: var(--fg-2); }
.sg-col { font-family: var(--mono); font-size: 11px; font-weight: 700; letter-spacing: .1em; fill: var(--fg); }
.sg-k .dot { background: var(--cc) !important; }
.sg-tbl th[scope="col"][data-camp] { border-bottom: 3px solid var(--cc); }
.sg-tbl th[scope="row"] { font-family: var(--mono); font-size: 12px; font-weight: 500; text-transform: uppercase; letter-spacing: .05em; }
.sg-tbl tr.is-hi td, .sg-tbl tr.is-hi th { background: color-mix(in srgb, var(--s-dc) 8%, transparent); }
.sg-bld { display: block; width: 100%; max-width: 680px; height: auto; }
.sg-b { fill: color-mix(in srgb, var(--s-dc) 10%, var(--panel)); stroke: var(--s-dc); stroke-width: 1.5; stroke-dasharray: 4 3; }
.sg-b--live { fill: var(--s-dc); stroke-dasharray: none; }

/* ---------- Tract Caldwell Valley: site plan ---------- */
.tr-parcel { stroke: var(--s-dc); stroke-width: 1.5; }
.tr-parcel[data-p="p1"] { fill: color-mix(in srgb, var(--s-dc) 14%, var(--panel)); }
.tr-parcel[data-p="p2"] { fill: color-mix(in srgb, var(--s-dc) 6%, var(--panel)); stroke-dasharray: 6 4; }
[data-node].is-hi .tr-parcel { fill: color-mix(in srgb, var(--s-dc) 26%, var(--panel)); }
.tr-pl { font-family: var(--mono); font-size: 10px; font-weight: 700; letter-spacing: .1em; fill: var(--fg); }
.tr-pv { font-family: var(--mono); font-size: 9.5px; letter-spacing: .06em; fill: var(--fg-2); }
.tr-pad { fill: color-mix(in srgb, var(--s-aero) 16%, var(--panel)); stroke: var(--s-aero); stroke-width: 1.5; }
[data-node].is-hi .tr-pad, g:hover > .tr-pad { fill: color-mix(in srgb, var(--s-aero) 30%, var(--panel)); }
.tr-open { fill: none; stroke: var(--fg-3); stroke-width: 1; stroke-dasharray: 3 3; }
.tr-sub { fill: var(--s-energy); stroke: var(--panel); stroke-width: 1.5; }
.tr-sub + .tr-pl, g[data-node="sub"] .tr-pl, g[data-node="sub"] .tr-pv { fill: #fff; }
.tr-hv { stroke: var(--fg); stroke-width: 2; stroke-dasharray: 10 3 2 3; fill: none; }
.tr-gas { stroke: var(--s-energy); stroke-width: 4; stroke-dasharray: 2 5; stroke-linecap: round; fill: none; }
.tr-fiber { stroke: var(--s-fab); stroke-width: 2; fill: none; }
[data-node].is-hi .tr-hv, [data-node].is-hi .tr-gas, [data-node].is-hi .tr-fiber { stroke-width: 6; }
.tr-nb { fill: color-mix(in srgb, var(--fg-3) 18%, var(--panel)); stroke: var(--fg-3); }
.tr-lt { font-family: var(--mono); font-size: 9.5px; letter-spacing: .1em; }
.tr-lt--hv { fill: var(--fg); } .tr-lt--gas { fill: var(--s-energy); } .tr-lt--fiber { fill: var(--s-fab); }
.tr-k { display: inline-block; width: 16px; height: 12px; margin-right: 8px; vertical-align: -1px; border: 1.5px solid var(--s-dc); }
.tr-k--p1 { background: color-mix(in srgb, var(--s-dc) 14%, var(--panel)); }
.tr-k--p2 { background: color-mix(in srgb, var(--s-dc) 6%, var(--panel)); border-style: dashed; }
.tr-k--ph { background: color-mix(in srgb, var(--s-aero) 16%, var(--panel)); border-color: var(--s-aero); }
.tr-k--gas { height: 0; border: 0; border-top: 3px dotted var(--s-energy); vertical-align: 3px; }
.tr-k--hv { height: 0; border: 0; border-top: 2px dashed var(--fg); vertical-align: 3px; }
.tr-legend li { cursor: default; }
.tr-bar { fill: var(--s-dc); }
.tr-step:last-child .tr-bar { fill: color-mix(in srgb, var(--s-dc) 45%, var(--panel)); }
.tr-when { font-weight: 400; fill: var(--fg-3); }
.tr-model th[scope="col"][data-s] { border-bottom: 3px solid var(--sc); }
.tr-model th[scope="row"] { font-family: var(--mono); font-size: 12px; font-weight: 500; text-transform: uppercase; letter-spacing: .05em; }
tr[data-node].is-hi td { background: color-mix(in srgb, var(--s-dc) 8%, transparent); }

/* ---------- Megasites: Skybox Hutto and Sandow Lakes ---------- */
.mg-bar { fill: var(--s-dc); }
.mg-bar[data-kind="o"] { fill: var(--s-energy); }
.sk-camp { fill: color-mix(in srgb, var(--s-dc) 10%, var(--panel)); stroke: var(--s-dc); stroke-width: 1.5; }
.sk-seq { fill: color-mix(in srgb, var(--s-dc) 4%, var(--panel)); stroke: var(--s-dc); stroke-width: 1.2; stroke-dasharray: 6 4; }
.sk-rest { fill: none; stroke: var(--line); stroke-dasharray: 3 3; }
.sk-util { fill: color-mix(in srgb, var(--s-energy) 12%, var(--panel)); stroke: var(--s-energy); }
.sk-subt { fill: #fff; font-weight: 700; }
[data-st="live"] { --bk: var(--s-dc); }
[data-st="fit"] { --bk: color-mix(in srgb, var(--s-dc) 65%, var(--panel)); }
[data-st="shell"] { --bk: color-mix(in srgb, var(--s-dc) 35%, var(--panel)); }
[data-st="plan"], [data-st="opt"] { --bk: var(--panel); }
.sk-b { fill: var(--bk); stroke: var(--s-dc); stroke-width: 1.2; }
.sk-b[data-st="opt"] { stroke-dasharray: 3 3; }
.sk-k .dot { background: var(--bk) !important; border: 1px solid var(--s-dc); }
[data-node].is-hi .sk-camp, [data-node].is-hi .sk-seq { stroke-width: 3; }
[data-node].is-hi .tr-sub { stroke: var(--fg); stroke-width: 2; }
[data-ind="solar"] { --ic: var(--s-giga); }
[data-ind="ai"] { --ic: var(--s-dc); }
[data-ind="btc"] { --ic: var(--s-energy); }
[data-ind="power"] { --ic: var(--s-aero); }
.sl-ten { fill: color-mix(in srgb, var(--ic) 22%, var(--panel)); stroke: var(--ic); stroke-width: 1.5; }
[data-node].is-hi .sl-ten { fill: color-mix(in srgb, var(--ic) 40%, var(--panel)); }
.sl-tl { font-size: 9px; }
.sl-k .dot { background: var(--ic) !important; }
.sl-lake { fill: color-mix(in srgb, var(--s-dc) 25%, transparent); }
.sl-amlc { fill: none; stroke: var(--fg-2); stroke-width: 1.2; stroke-dasharray: 5 3; }
.sl-tbl tr[data-ind] td:first-child { border-left: 4px solid var(--ic); }
.sl-tbl tr.is-dim, .dp-hero__art g.is-dim { opacity: .25; }

/* ---------- Giga Texas program pages ---------- */
.gx-focus .gx-b, .gx-focus .gx-mp, .gx-focus .gx-oval, .gx-focus .gx-loop, .gx-focus .gx-solar { opacity: .28; }
.gx-focus[data-f="optimus"] .gx-b[data-prog="optimus"],
.gx-focus[data-f="cortex"] .gx-b[data-prog="cortex"], .gx-focus[data-f="cortex"] .gx-mp,
.gx-focus[data-f="ev"] .gx-b[data-prog="ev"], .gx-focus[data-f="ev"] .gx-oval, .gx-focus[data-f="ev"] .gx-loop, .gx-focus[data-f="ev"] .gx-solar { opacity: 1; }
.gt-bar[data-kind="a"] { fill: var(--s-giga); }
.gt-bar[data-kind="t"] { fill: color-mix(in srgb, var(--s-giga) 45%, var(--panel)); stroke: var(--s-giga); stroke-dasharray: 4 3; }
.gt-bar[data-kind="c"] { fill: var(--fg-3); }
.gt-sw[data-kind="a"] { background: var(--s-giga); border-color: var(--s-giga); }
.gt-sw[data-kind="t"] { background: color-mix(in srgb, var(--s-giga) 45%, var(--panel)); border: 1px dashed var(--s-giga); }
.gt-sw[data-kind="c"] { background: var(--fg-3); border-color: var(--fg-3); }
.gt-loops { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; margin: 0 0 18px; }
.gt-loop { padding: 14px 16px; background: var(--panel); border: 1px solid var(--line); border-top: 4px solid var(--pg); }
.gt-loop ol { margin: 6px 0 0; padding-left: 20px; }
.gt-loop li { margin: 4px 0; font-size: 14px; }
.gt-rec { list-style: none; margin: 0 0 18px; padding: 0; display: grid; gap: 6px; }
.gt-rec li { padding: 10px 14px; background: var(--panel); border: 1px solid var(--line); border-left: 4px solid var(--s-giga); }
.gt-rec .k { display: block; margin-bottom: 2px; }
@media (max-width: 700px) { .gt-loops { grid-template-columns: 1fr; } }

/* ---------- Anchor facilities directory ---------- */
.nd-dot { fill: var(--sc); stroke: var(--panel); stroke-width: 1.5; fill-opacity: .9; }
a.is-hi .nd-dot, a:hover .nd-dot { stroke: var(--fg); stroke-width: 2.5; }
.dp-hero__art a.is-dim { opacity: .12; }
.nd-group { margin: 26px 0 0; }
.nd-group[hidden] { display: none; }
.nd-h { display: flex; align-items: center; gap: 8px; margin: 0 0 4px; font-family: var(--display); font-size: 19px; }
.nd-h .dot { width: 12px; height: 12px; border-radius: 50%; background: var(--sc); display: inline-block; }
.nd-tbl tr.is-hi td { background: color-mix(in srgb, var(--sc) 10%, transparent); }

/* ---------- Saronic: hulls to scale ---------- */
.sr-hull[data-k="v"] { fill: var(--s-aero); }
.sr-hull[data-k="s"] { fill: color-mix(in srgb, var(--s-dc) 18%, var(--panel)); stroke: var(--s-dc); stroke-width: 1.5; stroke-dasharray: 5 3; }
g.is-hi .sr-hull, g[data-node]:hover .sr-hull { stroke: var(--fg); stroke-width: 2; }
.sr-ft { font-family: var(--mono); font-size: 12px; font-weight: 700; fill: var(--fg); }
.sr-k[data-k="v"] .dot { background: var(--s-aero) !important; }
.sr-k[data-k="s"] .dot { background: color-mix(in srgb, var(--s-dc) 25%, var(--panel)) !important; border: 1px dashed var(--s-dc); }
tr[data-node].is-hi td { background: color-mix(in srgb, var(--s-aero) 8%, transparent); }

/* ---------- Ring pages 2: Meta Temple, Robstown, Brookshire, T1 Energy ---------- */
.mt-ghost { fill: none; stroke: var(--fg-3); stroke-width: 1.5; stroke-dasharray: 5 4; }
.mt-x { fill: var(--brand); }
.mt-arrow { stroke: var(--fg-3); stroke-width: 1.5; }
.mt-head { fill: var(--fg-3); }
.mt-bl { font-family: var(--mono); font-size: 12px; font-weight: 700; letter-spacing: .1em; fill: var(--s-dc); }
.mt-bs { font-family: var(--mono); font-size: 9.5px; letter-spacing: .08em; fill: var(--fg-2); }
.mt-bl--live { fill: #fff; }
.mt-k .dot { background: color-mix(in srgb, var(--s-dc) 10%, var(--panel)) !important; border: 1.5px dashed var(--s-dc); }
.mt-k--live .dot { background: var(--s-dc) !important; border-style: solid; }
.mt-k--gone .dot { background: transparent !important; border: 1.5px dashed var(--fg-3); }
.r2-map { display: block; width: 100%; height: auto; }
.r2-route { stroke-width: 3; stroke-linecap: round; }
.r2-in { stroke: var(--s-mat); stroke-dasharray: 6 4; }
.r2-out { stroke: var(--s-giga); }
.r2-pt circle { fill: var(--fg-2); stroke: var(--panel); stroke-width: 2; }
.r2-pt.is-here circle { fill: var(--s-mat); }
.r2-k--in .dot { background: var(--s-mat) !important; }
.r2-k--out .dot { background: var(--s-giga) !important; }
.r2-k[data-st] .dot { background: var(--stc) !important; }
.r2-st { font-family: var(--mono); font-size: 9.5px; font-weight: 600; letter-spacing: .1em; fill: var(--stc); }
.r2-box { fill: color-mix(in srgb, var(--stc) 10%, var(--panel)); stroke: var(--stc); stroke-width: 1.5; }
[data-st="plan"] .r2-box { stroke-dasharray: 5 4; }
.r2-box--here { stroke-width: 3; fill: color-mix(in srgb, var(--stc) 22%, var(--panel)); }
a:hover .r2-box, a:focus-visible .r2-box { fill: color-mix(in srgb, var(--stc) 28%, var(--panel)); }
.r2-bt { font-family: var(--display); font-size: 17px; font-weight: 700; fill: var(--fg); }
.r2-arr { stroke: var(--fg-3); stroke-width: 2; fill: none; }
.r2-imp { stroke: var(--s-mat); stroke-width: 2.5; stroke-dasharray: 6 4; fill: none; }
.r2-imp-h { fill: var(--s-mat); }
.r2-bar[data-k="b"] { fill: var(--s-energy); }
.r2-bar[data-k="p"] { fill: color-mix(in srgb, var(--s-energy) 40%, var(--panel)); }
.r2-bar[data-k="o"] { fill: var(--s-giga); }
.r2-pt.is-sea circle { fill: var(--s-mat); r: 3; }
.r2-map .sc-lab { font-size: 12px; }

/* ---------- Companies headquartered in Austin ---------- */
.hq-bars { display: block; width: 100%; height: auto; }
.hq-bar { fill: var(--sc, var(--fg-3)); }
.hq-bars a:hover .hq-bar, .hq-bars a:focus-visible .hq-bar { opacity: .75; }
.hq-tag { display: inline-block; margin: 2px 6px 2px 0; padding: 1px 8px; border: 1px solid var(--line); border-radius: 999px; font-size: 12.5px; color: var(--fg-2); white-space: nowrap; }
.hq-tbl td:first-child { font-weight: 600; }
.hq-tbl tr[hidden] { display: none; }
.hq-find { margin: 0 0 14px; font-family: var(--mono); font-size: 12px; letter-spacing: .06em; text-transform: uppercase; color: var(--fg-3); }
.hq-find input { margin-left: 8px; width: min(320px, 100%); padding: 7px 10px; font: 400 15px var(--body); text-transform: none; letter-spacing: 0; color: var(--fg); background: var(--panel); border: 1px solid var(--line); border-radius: 4px; }
.hq-cards { grid-template-columns: repeat(2, 1fr); }
@media (max-width: 700px) { .hq-cards { grid-template-columns: 1fr; } }
.hq-bars .tf-bar-l, .hq-bars .tf-bar-v { font-size: 13px; }

/* ---------- B2B metro directories ---------- */
.bb-map { display: block; width: 100%; height: auto; }
.bb-city circle { fill: var(--panel); stroke: var(--fg-3); stroke-width: 2; }
.bb-city.is-here circle { fill: var(--sc); stroke: var(--sc); }
.bb-cl { font-family: var(--mono); font-size: 11px; letter-spacing: .08em; fill: var(--fg-2); }
.bb-city.is-here .bb-cl { font-weight: 700; fill: var(--fg); font-size: 13px; }
a:hover .bb-city circle, a:focus-visible .bb-city circle { stroke: var(--sc); }

/* ---------- TIE NGMM and TI Sherman ---------- */
.fb-room { fill: color-mix(in srgb, var(--s-fab) 22%, var(--panel)); stroke: var(--s-fab); stroke-width: 1.5; }
.fb-new { fill: color-mix(in srgb, var(--s-energy) 14%, var(--panel)); stroke: var(--s-energy); stroke-width: 1.5; stroke-dasharray: 5 4; }
.fb-util { fill: var(--panel); stroke: var(--fg-3); stroke-width: 1.2; stroke-dasharray: 3 3; }
.fb-in { font-family: var(--mono); font-size: 14px; font-weight: 700; letter-spacing: .06em; fill: var(--fg); }
.fb-in2, .fb-in3 { font-family: var(--mono); font-size: 10px; letter-spacing: .1em; fill: var(--fg-2); }
.fb-fab { font-family: var(--display); font-size: 34px; font-weight: 800; fill: var(--fg); }
.fb-flow { stroke: var(--s-fab); stroke-width: 2.5; stroke-dasharray: 6 4; fill: none; }
.fb-flow-h { fill: var(--s-fab); }
.fb-loc-p { fill: var(--s-fab); }

/* ---------- Lighter-pass pages: generic hero art ---------- */
.lt-art svg { display: block; width: 100%; height: auto; }
.lt-axis { stroke: var(--sc, var(--fg-3)); stroke-width: 2; }
.lt-dot { fill: var(--panel); stroke: var(--sc, var(--fg-3)); stroke-width: 3; }
.lt-d { font-family: var(--mono); font-size: 13px; font-weight: 700; letter-spacing: .04em; fill: var(--fg); }
.lt-t { font-size: 14px; fill: var(--fg-2); }
.lt-bl { font-family: var(--mono); font-size: 13px; letter-spacing: .06em; fill: var(--fg-2); }
.lt-bar { fill: var(--sc, var(--fg-3)); }
.lt-card { fill: var(--panel); stroke: var(--line); stroke-width: 1; }
.lt-k { font-family: var(--mono); font-size: 9.5px; letter-spacing: .1em; fill: var(--sc, var(--fg-3)); }
.lt-v { font-family: var(--display); font-size: 22px; font-weight: 700; fill: var(--fg); }

/* ---------- Glossary and footer pages ---------- */
.gl { margin: 0; }
.gl-item { padding: 14px 0; border-top: 1px solid var(--line); scroll-margin-top: 90px; }
.gl-item[hidden] { display: none; }
.gl dt { font-family: var(--display); font-size: 17px; font-weight: 700; margin: 0 0 4px; }
.gl dd { margin: 0; color: var(--fg-2); line-height: 1.55; }
.gl-az { display: flex; flex-wrap: wrap; gap: 6px 10px; margin: 0 0 18px; font-family: var(--mono); font-size: 13px; }
.gl-az a { text-decoration: none; padding: 2px 6px; border: 1px solid var(--line); border-radius: 3px; }
.gl-count { margin-left: 10px; }
.lt-list { margin: 0 0 16px; padding-left: 20px; line-height: 1.6; }
.lt-list li { margin: 4px 0; }

/* Sitemap */
.sm-cols { columns: 2 280px; column-gap: 40px; }
.sm-grp { break-inside: avoid; margin: 0 0 8px; }
.sm-grp h3 { margin: 0 0 6px; font-family: var(--mono); font-size: 12px; font-weight: 500; letter-spacing: .08em; text-transform: uppercase; color: var(--fg-3); }

/* AI1 schematic (Gigasat) */
.ai1-sol { fill: color-mix(in srgb, var(--s-dc) 22%, var(--panel)); stroke: var(--s-dc); stroke-width: 1.2; }
.ai1-grid { stroke: var(--s-dc); stroke-width: .6; opacity: .5; }
.ai1-rad { fill: color-mix(in srgb, var(--s-aero) 14%, var(--panel)); stroke: var(--s-aero); stroke-width: 1.2; }
.ai1-core { fill: var(--s-aero); stroke: var(--panel); stroke-width: 1.5; }
.ai1-core-t { fill: #fff; font-family: var(--mono); font-size: 10px; letter-spacing: .06em; }
.ai1-dim { stroke: var(--fg-2); stroke-width: 1.2; }
.ai1-dim--ref { stroke: var(--fg-3); stroke-dasharray: 5 4; }
.ai1-ref-t { fill: var(--fg-3); }

/* Data center site schematics (Comal, Blueprint) */
.cm-site { fill: color-mix(in srgb, var(--s-dc) 8%, var(--panel)); stroke: var(--s-dc); stroke-width: 1.5; }
.cm-fab { fill: color-mix(in srgb, var(--s-fab) 12%, var(--panel)); stroke: var(--s-fab); stroke-width: 1.5; }
.cm-bld { fill: var(--s-dc); fill-opacity: .75; stroke: var(--panel); stroke-width: 1; }
.cm-sub { fill: var(--s-energy); }
.cm-l { font-family: var(--mono); font-size: 11px; font-weight: 600; letter-spacing: .08em; fill: var(--fg); }
.cm-l--fab { fill: var(--s-fab); }
.cm-s { font-family: var(--mono); font-size: 10px; letter-spacing: .06em; fill: var(--fg-2); }

/* Robotaxi and freight maps */
.rt-metro { fill: var(--fg-3); stroke: var(--panel); stroke-width: 2; }
.rt-op { fill: var(--sc); stroke: var(--panel); stroke-width: 1; }
.rt-op--test { fill: none; stroke: var(--sc); stroke-width: 1.5; }
.fr-zone { fill: color-mix(in srgb, var(--sc) 14%, transparent); stroke: var(--sc); stroke-width: 1.2; stroke-dasharray: 4 3; }

/* Exemplar deal stack */
.sk-band { fill: color-mix(in srgb, var(--sc) 9%, var(--panel)); stroke: color-mix(in srgb, var(--sc) 45%, transparent); stroke-width: 1; }
.sk-tab { fill: var(--sc); }
.sk-k { font-family: var(--mono); font-size: 10.5px; letter-spacing: .1em; fill: var(--sc); font-weight: 600; }
.sk-v { font-size: 15px; fill: var(--fg); }
