:root,
html[data-palette="phosphor"] {
  --atlas-c1: #33ff33;
  --atlas-c2: #a6ff33;
  --atlas-c3: #33ffd1;
  --atlas-c4: #f4ef67;
  --atlas-c5: #67a6ff;
  --atlas-c6: #ffb84d;
  --atlas-market: #67a6ff;
  --atlas-strategic: #ffb84d;
  --atlas-supply: #f4ef67;
}

html[data-palette="amber"] {
  --atlas-c1: #ff8800;
  --atlas-c2: #ffb000;
  --atlas-c3: #ffd166;
  --atlas-c4: #ff6b6b;
  --atlas-c5: #b992ff;
  --atlas-c6: #70d6ff;
  --atlas-market: #70d6ff;
  --atlas-strategic: #ff6b6b;
  --atlas-supply: #b992ff;
}

.atlas {
  display: grid;
  gap: 1.4rem;
  padding-bottom: 1rem;
}

.atlas .card {
  background: color-mix(in srgb, var(--surface) 94%, transparent);
}

.atlas-hero {
  overflow: hidden;
  padding: clamp(1.35rem, 4vw, 2.75rem);
  border-color: color-mix(in srgb, var(--accent) 50%, var(--border));
}

.atlas-hero h1 {
  max-width: 850px;
  margin: 0.25rem 0 0.7rem;
  font-family: var(--mono);
  font-size: clamp(2rem, 6vw, 4rem);
  line-height: 1.02;
  letter-spacing: -0.055em;
  text-wrap: balance;
}

.atlas-hero .lead {
  max-width: 780px;
  margin-bottom: 1.15rem;
}

.atlas-freshness,
.atlas-metric-line {
  display: flex;
  flex-wrap: wrap;
  gap: 0.45rem 1rem;
  color: var(--muted);
  font-family: var(--mono);
  font-size: 0.72rem;
  letter-spacing: 0.025em;
  text-transform: uppercase;
}

.atlas-freshness span + span::before,
.atlas-metric-line span + span::before {
  content: "·";
  margin-right: 1rem;
  color: var(--accent);
}

.atlas-path {
  margin: 1.75rem -0.3rem 0;
  overflow-x: auto;
  scrollbar-color: var(--accent) transparent;
}

.atlas-path ol {
  display: grid;
  grid-template-columns: repeat(7, minmax(150px, 1fr));
  gap: 0.55rem;
  min-width: 1110px;
  margin: 0;
  padding: 0.3rem;
  list-style: none;
}

.atlas-path a {
  display: flex;
  min-height: 3.7rem;
  align-items: center;
  gap: 0.55rem;
  padding: 0.7rem;
  border: 1px solid var(--border);
  border-radius: 4px;
  background: color-mix(in srgb, var(--surface-soft) 82%, transparent);
  color: var(--text);
  font-family: var(--mono);
  font-size: 0.72rem;
  line-height: 1.25;
  text-decoration: none;
  transition: border-color 160ms ease, background 160ms ease, transform 160ms ease;
}

.atlas-path a:hover {
  transform: translateY(-2px);
  border-color: var(--accent);
  background: color-mix(in srgb, var(--accent) 10%, var(--surface));
  text-decoration: none;
}

.atlas-path a span {
  color: var(--accent);
  font-size: 1rem;
  font-weight: 700;
}

.atlas-key {
  display: flex;
  flex-wrap: wrap;
  gap: 0.7rem 1.5rem;
  margin-top: 1.1rem;
  padding-top: 1rem;
  border-top: 1px solid var(--border);
  color: var(--muted);
  font-size: 0.84rem;
}

.atlas-key span {
  display: inline-flex;
  align-items: center;
  gap: 0.4rem;
}

.atlas-key strong {
  color: var(--text);
}

.atlas-type {
  width: 0.68rem;
  height: 0.68rem;
  flex: none;
  border-radius: 50%;
}

.atlas-type-coverage { background: var(--accent); box-shadow: 0 0 8px var(--palette-glow); }
.atlas-type-market { background: var(--atlas-market); box-shadow: 0 0 8px color-mix(in srgb, var(--atlas-market) 60%, transparent); }
.atlas-type-strategic { background: var(--atlas-strategic); box-shadow: 0 0 8px color-mix(in srgb, var(--atlas-strategic) 60%, transparent); }

.atlas-section {
  scroll-margin-top: 6.5rem;
  padding: clamp(1.1rem, 3vw, 2rem);
}

.atlas-section-head {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  gap: clamp(0.8rem, 2vw, 1.4rem);
  align-items: start;
}

.atlas-section-head h2,
.atlas-method h2 {
  margin: 0.1rem 0 0.35rem;
  font-family: var(--mono);
  font-size: clamp(1.45rem, 3vw, 2.25rem);
  line-height: 1.12;
  text-wrap: balance;
}

.atlas-section-head p:last-child {
  max-width: 790px;
  margin: 0;
  color: var(--muted);
}

.atlas-index {
  color: color-mix(in srgb, var(--accent) 22%, transparent);
  font-family: var(--mono);
  font-size: clamp(2.4rem, 7vw, 5rem);
  font-weight: 700;
  line-height: 0.9;
  -webkit-text-stroke: 1px color-mix(in srgb, var(--accent) 62%, transparent);
}

.atlas-kind {
  display: inline-flex;
  width: fit-content;
  margin: 0 0 0.4rem;
  padding: 0.16rem 0.42rem;
  border: 1px solid currentColor;
  border-radius: 999px;
  font-family: var(--mono);
  font-size: 0.62rem;
  font-weight: 700;
  letter-spacing: 0.07em;
  line-height: 1.3;
  text-transform: uppercase;
}

.atlas-kind-coverage { color: var(--accent); }
.atlas-kind-market { color: var(--atlas-market); }
.atlas-kind-strategic { color: var(--atlas-strategic); }

.atlas-metric-line {
  margin: 1.1rem 0 0.7rem;
  padding-left: clamp(0px, 8vw, 6rem);
}

.atlas-chart {
  position: relative;
  min-height: 240px;
  margin-top: 1rem;
  padding: clamp(0.65rem, 2vw, 1rem);
  border: 1px solid var(--border);
  border-radius: 5px;
  background:
    linear-gradient(color-mix(in srgb, var(--accent) 4%, transparent), color-mix(in srgb, var(--accent) 1%, transparent)),
    var(--surface-soft);
}

.atlas-loading {
  display: grid;
  min-height: 210px;
  place-items: center;
  margin: 0;
  color: var(--muted);
  font-family: var(--mono);
  font-size: 0.78rem;
}

.atlas-chart-legend {
  display: flex;
  flex-wrap: wrap;
  gap: 0.45rem 0.8rem;
  align-items: center;
  min-height: 2.1rem;
  margin: 0 0 0.55rem;
  color: var(--muted);
  font-family: var(--mono);
  font-size: 0.68rem;
}

.atlas-legend-button,
.atlas-show-all {
  border: 1px solid var(--border);
  border-radius: 999px;
  background: transparent;
  color: var(--text);
  font: inherit;
  cursor: pointer;
}

.atlas-legend-button {
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
  padding: 0.25rem 0.55rem;
}

.atlas-legend-button::before {
  content: "";
  width: 0.58rem;
  height: 0.58rem;
  border-radius: 50%;
  background: var(--series-color);
  box-shadow: 0 0 6px color-mix(in srgb, var(--series-color) 55%, transparent);
}

.atlas-legend-button[aria-pressed="false"] {
  color: var(--muted);
  opacity: 0.62;
}

.atlas-svg {
  display: block;
  width: 100%;
  height: auto;
  overflow: visible;
}

.atlas-grid-line {
  stroke: color-mix(in srgb, var(--border) 82%, transparent);
  stroke-width: 1;
  vector-effect: non-scaling-stroke;
}

.atlas-grid-line-x { stroke-dasharray: 3 6; }

.atlas-axis-label,
.atlas-axis-title,
.atlas-point-label {
  fill: var(--muted);
  font-family: var(--mono);
  font-size: 11px;
}

.atlas-axis-title {
  fill: var(--text);
  font-size: 12px;
  letter-spacing: 0.025em;
}

.atlas-axis-title-y {
  transform-box: fill-box;
  transform-origin: center;
  transform: rotate(-90deg);
}

.atlas-topic-line,
.atlas-frontier-line {
  fill: none;
  stroke-width: 3;
  stroke-linecap: round;
  stroke-linejoin: round;
  vector-effect: non-scaling-stroke;
  transition: opacity 160ms ease;
}

.atlas-topic-point { transition: opacity 160ms ease; }
.atlas-topic-line.is-muted,
.atlas-topic-point.is-muted { opacity: 0.06; }

.atlas-frontier-line {
  stroke: var(--accent);
  stroke-width: 2;
  stroke-dasharray: 5 6;
  opacity: 0.62;
}

.atlas-point-circle {
  stroke: color-mix(in srgb, var(--surface) 50%, #ffffff);
  stroke-width: 1.5;
  vector-effect: non-scaling-stroke;
  transition: stroke-width 150ms ease, filter 150ms ease;
}

.atlas-data-point {
  cursor: pointer;
  outline: none;
}

.atlas-data-point:hover .atlas-point-circle,
.atlas-data-point:focus .atlas-point-circle {
  stroke: #ffffff;
  stroke-width: 3;
  filter: drop-shadow(0 0 5px var(--accent));
}

.atlas-data-point.is-frontier .atlas-point-circle {
  stroke: var(--accent);
  stroke-width: 3;
}

.atlas-point-label {
  fill: var(--text);
  font-size: 10px;
  paint-order: stroke;
  stroke: var(--surface);
  stroke-width: 3px;
  stroke-linejoin: round;
}

.atlas-frontier-key,
.atlas-ordinary-key,
.atlas-current-key,
.atlas-expected-key {
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
}

.atlas-frontier-key::before,
.atlas-ordinary-key::before,
.atlas-current-key::before,
.atlas-expected-key::before {
  content: "";
  width: 0.62rem;
  height: 0.62rem;
  border-radius: 50%;
  background: var(--muted);
}

.atlas-frontier-key::before { background: var(--accent); box-shadow: 0 0 7px var(--palette-glow); }
.atlas-current-key::before { background: var(--accent); }
.atlas-expected-key::before { border: 2px solid var(--atlas-market); background: transparent; }

.atlas-selection {
  min-height: 2.35rem;
  margin-top: 0.55rem;
  padding: 0.52rem 0.65rem;
  border-left: 3px solid var(--accent);
  background: color-mix(in srgb, var(--accent) 7%, transparent);
  color: var(--muted);
  font-family: var(--mono);
  font-size: 0.72rem;
}

.atlas-price-chart { min-height: 430px; }

.model-profile-controls {
  display: flex;
  flex-wrap: wrap;
  gap: 0.45rem;
  margin-bottom: 1rem;
}

.model-profile-button {
  padding: 0.38rem 0.7rem;
  border: 1px solid var(--border);
  border-radius: 999px;
  background: transparent;
  color: var(--muted);
  font-family: var(--mono);
  font-size: 0.68rem;
  cursor: pointer;
}

.model-profile-button[aria-pressed="true"] {
  border-color: var(--atlas-market);
  background: color-mix(in srgb, var(--atlas-market) 14%, transparent);
  color: var(--text);
  box-shadow: 0 0 9px color-mix(in srgb, var(--atlas-market) 24%, transparent);
}

.model-price-list { display: grid; gap: 0.38rem; }

.model-price-scale {
  display: grid;
  grid-template-columns: 1fr auto 1fr;
  gap: 0.6rem;
  margin-left: min(31%, 245px);
  color: var(--muted);
  font-family: var(--mono);
  font-size: 0.58rem;
  text-transform: uppercase;
}

.model-price-scale span:nth-child(2) { text-align: center; }
.model-price-scale span:last-child { text-align: right; }

.model-price-row {
  display: grid;
  grid-template-columns: minmax(155px, 29%) minmax(180px, 1fr) 76px;
  gap: 0.7rem;
  align-items: center;
  min-height: 3.5rem;
  padding: 0.5rem 0.65rem;
  border: 1px solid transparent;
  border-bottom-color: var(--border);
  background: transparent;
  color: var(--text);
  text-align: left;
  cursor: pointer;
}

.model-price-row:hover,
.model-price-row:focus-visible {
  border-color: var(--atlas-market);
  background: color-mix(in srgb, var(--atlas-market) 6%, transparent);
  outline: none;
}

.model-price-identity { display: flex; min-width: 0; flex-direction: column; }
.model-price-identity strong { overflow: hidden; font-family: var(--mono); font-size: 0.74rem; text-overflow: ellipsis; white-space: nowrap; }
.model-price-identity small { color: var(--muted); font-size: 0.64rem; }

.model-price-track {
  position: relative;
  height: 0.64rem;
  overflow: hidden;
  border-radius: 999px;
  background:
    linear-gradient(90deg, transparent 32.9%, var(--border) 33%, transparent 33.2%, transparent 65.9%, var(--border) 66%, transparent 66.2%),
    color-mix(in srgb, var(--border) 44%, transparent);
}

.model-price-bar {
  display: block;
  width: var(--model-price-share);
  height: 100%;
  border-radius: inherit;
  background: linear-gradient(90deg, color-mix(in srgb, var(--model-color) 35%, transparent), var(--model-color));
  box-shadow: 0 0 7px color-mix(in srgb, var(--model-color) 35%, transparent);
}

.model-price-value { color: var(--atlas-market); font-family: var(--mono); font-size: 0.75rem; text-align: right; }

.model-freshness { font-weight: 700; }
.model-freshness-current { color: var(--accent); }
.model-freshness-review_due { color: var(--atlas-strategic); }
.model-freshness-expired { color: #ff6b6b; }

.model-expired {
  margin-top: 1rem;
  padding: 1rem;
  border: 1px solid #ff6b6b;
  border-radius: 4px;
  background: color-mix(in srgb, #ff6b6b 8%, var(--surface));
}

.model-expired strong { color: #ff6b6b; font-family: var(--mono); text-transform: uppercase; }
.model-expired p { margin: 0.35rem 0 0; color: var(--muted); }
.model-history summary { color: var(--atlas-strategic); }

.atlas-readout {
  display: grid;
  grid-template-columns: minmax(120px, 0.26fr) minmax(0, 1fr);
  gap: 0.7rem 1rem;
  margin-top: 0.8rem;
  padding: 0.85rem 1rem;
  border: 1px solid color-mix(in srgb, var(--accent) 35%, var(--border));
  border-radius: 4px;
  background: color-mix(in srgb, var(--accent) 5%, var(--surface));
}

.atlas-readout strong {
  color: var(--accent);
  font-family: var(--mono);
  font-size: 0.75rem;
  letter-spacing: 0.04em;
  text-transform: uppercase;
}

.atlas-readout p { margin: 0; color: var(--muted); font-size: 0.9rem; }

.atlas-data-table {
  margin-top: 0.7rem;
  border-top: 1px solid var(--border);
}

.atlas-data-table summary {
  width: fit-content;
  padding: 0.65rem 0;
  color: var(--accent);
  font-family: var(--mono);
  font-size: 0.75rem;
  cursor: pointer;
}

.atlas-data-table > p { max-width: 820px; color: var(--muted); font-size: 0.85rem; }
.atlas-table-scroll { overflow-x: auto; }

.atlas-data-table table {
  width: 100%;
  min-width: 620px;
  border-collapse: collapse;
  font-size: 0.78rem;
}

.atlas-data-table th,
.atlas-data-table td {
  padding: 0.48rem 0.55rem;
  border-bottom: 1px solid var(--border);
  text-align: left;
}

.atlas-data-table thead th {
  color: var(--muted);
  font-family: var(--mono);
  font-size: 0.64rem;
  letter-spacing: 0.035em;
  text-transform: uppercase;
}

.atlas-data-table tbody th { color: var(--text); }

.atlas-heatmap { min-height: 360px; }
.atlas-heatmap-scroll { overflow-x: auto; }

.atlas-heatmap-grid {
  display: grid;
  grid-template-columns: minmax(138px, 1.2fr) repeat(var(--atlas-layer-count), minmax(105px, 1fr));
  gap: 0.38rem;
  min-width: 750px;
}

.atlas-heatmap-corner,
.atlas-heatmap-head {
  display: flex;
  min-height: 3.3rem;
  align-items: end;
  padding: 0.35rem;
  color: var(--muted);
  font-family: var(--mono);
  font-size: 0.66rem;
  line-height: 1.2;
}

.atlas-company-name {
  display: flex;
  min-height: 3.25rem;
  flex-direction: column;
  justify-content: center;
  padding: 0.35rem 0.45rem;
  border-bottom: 1px solid var(--border);
}

.atlas-company-name strong { font-family: var(--mono); font-size: 0.76rem; }
.atlas-company-name span { color: var(--muted); font-size: 0.68rem; }

.atlas-heat-cell {
  min-height: 3.25rem;
  border: 1px solid color-mix(in srgb, var(--accent) var(--heat-border-alpha), var(--border));
  border-radius: 3px;
  background: color-mix(in srgb, var(--accent) var(--heat-alpha), var(--surface-soft));
  color: color-mix(in srgb, var(--text) 90%, var(--accent));
  font-family: var(--mono);
  font-size: 0.76rem;
  font-weight: 700;
  cursor: pointer;
}

.atlas-heat-cell:hover,
.atlas-heat-cell:focus-visible {
  border-color: var(--accent);
  box-shadow: inset 0 0 0 1px var(--accent), 0 0 8px color-mix(in srgb, var(--accent) 30%, transparent);
}

.atlas-dumbbell { padding-bottom: 1.2rem; }

.atlas-adoption-ruler {
  display: flex;
  justify-content: space-between;
  margin: 0 0 0.35rem clamp(148px, 28%, 260px);
  color: var(--muted);
  font-family: var(--mono);
  font-size: 0.62rem;
}

.atlas-adoption-rows { display: grid; gap: 0.38rem; }

.atlas-adoption-row {
  display: grid;
  grid-template-columns: minmax(148px, 28%) minmax(260px, 1fr);
  gap: 0.8rem;
  align-items: center;
  min-height: 2.65rem;
}

.atlas-adoption-row.is-extra { display: none; }
.atlas-adoption-rows.is-expanded .atlas-adoption-row.is-extra { display: grid; }

.atlas-adoption-label {
  display: flex;
  min-width: 0;
  flex-direction: column;
}

.atlas-adoption-label strong {
  overflow: hidden;
  font-family: var(--mono);
  font-size: 0.7rem;
  line-height: 1.2;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.atlas-adoption-label span { color: var(--muted); font-size: 0.68rem; }

.atlas-adoption-track {
  position: relative;
  height: 0.45rem;
  border-radius: 999px;
  background:
    linear-gradient(90deg, transparent 49.75%, var(--border) 50%, transparent 50.25%),
    color-mix(in srgb, var(--border) 45%, transparent);
}

.atlas-adoption-connection {
  position: absolute;
  top: 50%;
  height: 3px;
  transform: translateY(-50%);
  background: color-mix(in srgb, var(--atlas-market) 66%, var(--accent));
}

.atlas-adoption-dot {
  position: absolute;
  top: 50%;
  width: 0.82rem;
  height: 0.82rem;
  border-radius: 50%;
  transform: translate(-50%, -50%);
}

.atlas-adoption-current { background: var(--accent); box-shadow: 0 0 6px var(--palette-glow); }
.atlas-adoption-expected { border: 2px solid var(--atlas-market); background: var(--surface-soft); }

.atlas-show-all {
  display: block;
  margin: 0.9rem auto 0;
  padding: 0.4rem 0.75rem;
  color: var(--accent);
  font-family: var(--mono);
  font-size: 0.7rem;
}

.atlas-method {
  padding: clamp(1.2rem, 3vw, 2rem);
}

.atlas-method > p:not(.eyebrow) { max-width: 850px; color: var(--muted); }

.atlas-source-list {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0.55rem;
  margin: 1rem 0;
  padding: 0;
  list-style: none;
}

.atlas-source-list li {
  display: flex;
  align-items: flex-start;
  gap: 0.55rem;
  padding: 0.7rem;
  border: 1px solid var(--border);
  border-radius: 4px;
  background: var(--surface-soft);
  font-size: 0.82rem;
}

.atlas-source-list .atlas-kind { flex: none; margin: 0.08rem 0 0; }
.atlas-method-note { font-size: 0.8rem; }

.atlas-supply {
  border-color: color-mix(in srgb, var(--atlas-supply) 55%, var(--border));
  background:
    linear-gradient(145deg, color-mix(in srgb, var(--atlas-supply) 7%, transparent), transparent 42%),
    color-mix(in srgb, var(--surface) 95%, transparent) !important;
}

.supply-freshness {
  display: flex;
  flex-wrap: wrap;
  gap: 0.55rem 1rem;
  align-items: center;
  margin-top: 1rem;
  color: var(--muted);
  font-family: var(--mono);
  font-size: 0.64rem;
}

.supply-freshness .evidence-badge { color: var(--atlas-supply); }

.supply-kpis {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 0.65rem;
  margin-top: 1rem;
}

.supply-kpis > div {
  min-height: 6.4rem;
  padding: 0.85rem;
  border: 1px solid color-mix(in srgb, var(--atlas-supply) 28%, var(--border));
  border-top: 3px solid var(--atlas-supply);
  border-radius: 4px;
  background: color-mix(in srgb, var(--surface-soft) 86%, transparent);
}

.supply-kpis strong { display: block; color: var(--atlas-supply); font-family: var(--mono); font-size: clamp(1.45rem, 4vw, 2.2rem); line-height: 1; }
.supply-kpis span { display: block; margin-top: 0.45rem; color: var(--text); font-family: var(--mono); font-size: 0.66rem; line-height: 1.35; text-transform: uppercase; }
.supply-kpis small { display: block; margin-top: 0.35rem; color: var(--muted); font-size: 0.6rem; }

.supply-chain-flow {
  display: grid;
  gap: 0.8rem;
  margin-top: 1rem;
  padding: 0.8rem;
  border: 1px solid var(--border);
  border-radius: 5px;
  background: color-mix(in srgb, var(--surface-soft) 86%, transparent);
}

.supply-flow-group { display: grid; gap: 0.55rem; }
.supply-flow-label { margin: 0; color: var(--muted); font-family: var(--mono); font-size: 0.62rem; text-transform: uppercase; }
.supply-flow-label span { margin-right: 0.45rem; color: var(--atlas-supply); font-weight: 700; }
.supply-flow-row { display: grid; gap: 0.55rem; align-items: stretch; }
.supply-flow-row-upstream { grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr) auto minmax(0, 1fr); }
.supply-flow-row-demand { grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr); width: min(760px, 100%); margin-inline: auto; }
.supply-flow-split,
.supply-flow-down {
  display: flex;
  justify-content: center;
  gap: 1rem;
  align-items: center;
  color: var(--atlas-market);
  font-family: var(--mono);
  font-size: 0.58rem;
  letter-spacing: 0.04em;
  text-align: center;
}
.supply-flow-split strong,
.supply-flow-down { color: var(--atlas-supply); }
.supply-flow-convergence { display: grid; grid-template-columns: minmax(0, 2fr) auto minmax(220px, 1fr); gap: 0.65rem; align-items: stretch; }
.supply-parallel-stack { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0.65rem; }
.supply-converge-arrow { align-self: center; color: var(--atlas-supply); font-family: var(--mono); font-size: 1.5rem; }
.supply-flow-down span { color: var(--atlas-supply); font-size: 1.1rem; }

.supply-stage {
  position: relative;
  min-width: 0;
  padding: 0.8rem;
  border: 1px solid var(--border);
  border-top: 3px solid var(--atlas-supply);
  border-radius: 4px;
  background: color-mix(in srgb, var(--surface) 92%, transparent);
}

.supply-stage-critical { border-top-color: #ff6b6b; }
.supply-stage-high { border-top-color: var(--atlas-strategic); }
.supply-stage-policy { border-top-color: var(--atlas-market); }
.supply-stage.is-parallel { background: linear-gradient(145deg, color-mix(in srgb, var(--atlas-market) 9%, var(--surface)), var(--surface)); }
.supply-stage.is-convergence { box-shadow: inset 0 0 0 1px color-mix(in srgb, var(--atlas-supply) 45%, transparent); }

.supply-stage-head { display: flex; justify-content: space-between; gap: 0.5rem; align-items: center; }
.supply-stage-head > span:first-child { color: var(--atlas-supply); font-family: var(--mono); font-size: 0.7rem; font-weight: 700; }
.supply-stage h3 { min-height: 2.45rem; margin: 0.45rem 0; font-family: var(--mono); font-size: 0.95rem; line-height: 1.25; }

.supply-choke {
  display: inline-flex;
  width: fit-content;
  padding: 0.12rem 0.32rem;
  border: 1px solid currentColor;
  border-radius: 999px;
  color: var(--muted);
  font-family: var(--mono);
  font-size: 0.52rem;
  font-weight: 700;
  letter-spacing: 0.04em;
  text-transform: uppercase;
}

.supply-choke-critical { color: #ff6b6b; }
.supply-choke-high { color: var(--atlas-strategic); }
.supply-choke-policy { color: var(--atlas-market); }

.supply-stage-route { display: grid; gap: 0.25rem; min-height: 7.3rem; margin: 0; color: var(--muted); font-size: 0.68rem; line-height: 1.38; }
.supply-stage-route strong { color: var(--text); font-size: 0.7rem; }
.supply-stage-route span { color: var(--atlas-supply); font-family: var(--mono); font-size: 1rem; }
.supply-stage-meta { margin-top: 0.65rem; padding-top: 0.55rem; border-top: 1px solid var(--border); }
.supply-stage-meta > span { color: var(--atlas-supply); font-family: var(--mono); font-size: 0.52rem; font-weight: 700; text-transform: uppercase; }
.supply-stage-meta p { margin: 0.18rem 0 0; color: var(--muted); font-size: 0.64rem; line-height: 1.35; }
.supply-branch-note { display: block; margin-top: 0.55rem; color: var(--atlas-market); font-family: var(--mono); font-size: 0.55rem; line-height: 1.35; text-transform: uppercase; }
.supply-flow-arrow { align-self: center; flex: none; color: var(--atlas-supply); font-family: var(--mono); font-size: 1.2rem; }

.supply-destination-grid {
  display: grid;
  grid-template-columns: minmax(0, 1.4fr) minmax(280px, 0.8fr);
  gap: 1rem;
  margin-top: 1rem;
}

.supply-destinations,
.supply-routing {
  padding: 1rem;
  border: 1px solid var(--border);
  border-radius: 5px;
  background: color-mix(in srgb, var(--surface-soft) 86%, transparent);
}

.supply-destination-bars { display: grid; gap: 0.55rem; }
.supply-destination-row { display: grid; grid-template-columns: minmax(145px, 0.8fr) minmax(150px, 1.5fr) 52px; gap: 0.65rem; align-items: center; }
.supply-destination-row > span { font-family: var(--mono); font-size: 0.68rem; }
.supply-destination-row > div { height: 0.6rem; overflow: hidden; border-radius: 999px; background: color-mix(in srgb, var(--border) 48%, transparent); }
.supply-destination-row i { display: block; width: var(--destination-share); height: 100%; border-radius: inherit; background: linear-gradient(90deg, var(--atlas-supply), var(--accent)); box-shadow: 0 0 7px color-mix(in srgb, var(--atlas-supply) 45%, transparent); }
.supply-destination-row > strong { color: var(--atlas-supply); font-family: var(--mono); font-size: 0.72rem; text-align: right; }

.supply-routing h3 { margin: 0; font-family: var(--mono); font-size: clamp(1rem, 2vw, 1.3rem); }
.supply-routing ul { display: grid; gap: 0.4rem; margin: 0.8rem 0; padding: 0; list-style: none; }
.supply-routing li { display: flex; justify-content: space-between; gap: 0.6rem; padding-bottom: 0.4rem; border-bottom: 1px solid var(--border); color: var(--muted); font-size: 0.7rem; }
.supply-routing li strong { color: var(--atlas-market); font-family: var(--mono); }
.supply-routing > p:last-child { margin: 0; color: var(--muted); font-size: 0.72rem; line-height: 1.45; }
.supply-readout { border-left-color: var(--atlas-supply); }
.supply-table table { min-width: 1180px; }
.supply-table td { min-width: 150px; vertical-align: top; line-height: 1.45; }
.supply-table td:nth-child(5) { min-width: 290px; }

.atlas-diffusion {
  border-color: color-mix(in srgb, var(--atlas-strategic) 55%, var(--border));
  background:
    linear-gradient(145deg, color-mix(in srgb, var(--atlas-strategic) 7%, transparent), transparent 42%),
    color-mix(in srgb, var(--surface) 95%, transparent) !important;
}

.atlas-index-watch {
  color: color-mix(in srgb, var(--atlas-strategic) 22%, transparent);
  -webkit-text-stroke-color: color-mix(in srgb, var(--atlas-strategic) 68%, transparent);
}

.diffusion-kpis {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 0.65rem;
  margin-top: 1.35rem;
}

.diffusion-kpis > div {
  min-height: 5.5rem;
  padding: 0.85rem;
  border: 1px solid color-mix(in srgb, var(--atlas-strategic) 28%, var(--border));
  border-radius: 4px;
  background: color-mix(in srgb, var(--surface-soft) 84%, transparent);
}

.diffusion-kpis strong {
  display: block;
  color: var(--atlas-strategic);
  font-family: var(--mono);
  font-size: clamp(1.5rem, 4vw, 2.2rem);
  line-height: 1;
}

.diffusion-kpis span {
  display: block;
  margin-top: 0.45rem;
  color: var(--muted);
  font-family: var(--mono);
  font-size: 0.64rem;
  letter-spacing: 0.05em;
  text-transform: uppercase;
}

.diffusion-flow {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr) auto minmax(0, 1fr);
  gap: 0.6rem;
  align-items: center;
  margin-top: 0.9rem;
  padding: 0.85rem;
  border: 1px solid var(--border);
  border-radius: 5px;
  background: color-mix(in srgb, var(--surface-soft) 86%, transparent);
}

.diffusion-stage {
  min-height: 8.2rem;
  padding: 0.85rem;
  border-left: 2px solid var(--atlas-strategic);
  background: color-mix(in srgb, var(--surface) 88%, transparent);
}

.diffusion-stage > span,
.diffusion-subhead > span {
  color: var(--atlas-strategic);
  font-family: var(--mono);
  font-size: 0.62rem;
  font-weight: 700;
  letter-spacing: 0.06em;
  text-transform: uppercase;
}

.diffusion-stage strong { display: block; margin: 0.35rem 0; font-size: 0.9rem; }
.diffusion-stage p { margin: 0; color: var(--muted); font-size: 0.76rem; line-height: 1.45; }
.diffusion-arrow { color: var(--atlas-strategic); font-family: var(--mono); font-size: 1.5rem; }

.diffusion-grid {
  display: grid;
  grid-template-columns: minmax(0, 1.75fr) minmax(250px, 0.8fr);
  gap: 1rem;
  margin-top: 1.15rem;
}

.diffusion-subhead {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  gap: 0.5rem 1rem;
  align-items: end;
  margin-bottom: 0.7rem;
}

.diffusion-subhead .eyebrow { margin-bottom: 0.18rem; }
.diffusion-subhead h3,
.diffusion-evidence h3 { margin: 0; font-family: var(--mono); font-size: clamp(1rem, 2vw, 1.3rem); }
.diffusion-subhead > span { max-width: 440px; color: var(--muted); text-align: right; line-height: 1.4; }

.diffusion-timeline {
  position: relative;
  display: grid;
  gap: 0.65rem;
  margin: 0;
  padding: 0;
  list-style: none;
}

.diffusion-event {
  display: grid;
  grid-template-columns: 105px minmax(0, 1fr);
  gap: 0.75rem;
  padding: 0.85rem;
  border: 1px solid var(--border);
  border-left: 3px solid var(--atlas-strategic);
  border-radius: 4px;
  background: color-mix(in srgb, var(--surface-soft) 86%, transparent);
}

.diffusion-event-released { border-left-color: var(--atlas-c3); }
.diffusion-event-disclosed { border-left-color: var(--accent); }
.diffusion-event-announced { border-left-color: var(--atlas-market); }

.diffusion-event time {
  color: var(--muted);
  font-family: var(--mono);
  font-size: 0.66rem;
  line-height: 1.5;
  text-transform: uppercase;
}

.diffusion-event-meta,
.diffusion-event-foot {
  display: flex;
  flex-wrap: wrap;
  gap: 0.4rem 0.75rem;
  align-items: center;
}

.diffusion-event-meta > span:last-child,
.diffusion-event-foot {
  color: var(--muted);
  font-family: var(--mono);
  font-size: 0.64rem;
}

.diffusion-event h4 { margin: 0.45rem 0 0.3rem; font-size: 0.96rem; line-height: 1.3; }
.diffusion-event p { margin: 0 0 0.55rem; color: var(--muted); font-size: 0.78rem; line-height: 1.48; }
.diffusion-event-foot { justify-content: space-between; padding-top: 0.5rem; border-top: 1px solid var(--border); }
.diffusion-event-foot a { color: var(--accent); }

.evidence-badge {
  display: inline-flex;
  width: fit-content;
  padding: 0.15rem 0.4rem;
  border: 1px solid currentColor;
  border-radius: 999px;
  font-family: var(--mono);
  font-size: 0.58rem;
  font-weight: 700;
  letter-spacing: 0.04em;
  line-height: 1.3;
  text-transform: uppercase;
}

.evidence-disclosed { color: var(--accent); }
.evidence-provider_claim { color: var(--atlas-strategic); }
.evidence-released { color: var(--atlas-c3); }
.evidence-announced { color: var(--atlas-market); }

.diffusion-evidence {
  height: fit-content;
  padding: 1rem;
  border: 1px solid color-mix(in srgb, var(--atlas-strategic) 36%, var(--border));
  border-radius: 5px;
  background: color-mix(in srgb, var(--atlas-strategic) 5%, var(--surface-soft));
}

.diffusion-evidence ul { display: grid; gap: 0.8rem; margin: 1rem 0; padding: 0; list-style: none; }
.diffusion-evidence li p { margin: 0.3rem 0 0; color: var(--muted); font-size: 0.75rem; line-height: 1.45; }
.diffusion-rule { margin: 0; padding-top: 0.8rem; border-top: 1px solid var(--border); color: var(--muted); font-size: 0.76rem; }
.diffusion-rule strong { color: var(--text); }

.diffusion-coverage {
  margin-top: 1rem;
  padding: 1rem;
  border: 1px solid var(--border);
  border-radius: 5px;
  background: color-mix(in srgb, var(--surface-soft) 86%, transparent);
}

.diffusion-story-list { display: grid; gap: 0; margin: 0; padding: 0; list-style: none; }
.diffusion-story-list li { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 0.75rem; padding: 0.65rem 0; border-top: 1px solid var(--border); }
.diffusion-story-list li:first-child { border-top: 0; }
.diffusion-story-list li div > span { display: block; color: var(--atlas-strategic); font-family: var(--mono); font-size: 0.6rem; text-transform: uppercase; }
.diffusion-story-list a { display: inline-block; margin-top: 0.15rem; color: var(--text); font-weight: 650; line-height: 1.35; }
.diffusion-story-list small { color: var(--muted); font-family: var(--mono); font-size: 0.62rem; white-space: nowrap; }
.diffusion-empty { margin: 0; color: var(--muted); font-size: 0.82rem; }
.diffusion-readout { border-left-color: var(--atlas-strategic); }

.diffusion-entry,
.supply-chain-entry {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto auto;
  gap: 1rem 1.4rem;
  align-items: center;
  padding: clamp(1rem, 3vw, 1.5rem);
  border-color: color-mix(in srgb, var(--atlas-strategic) 55%, var(--border));
  background: linear-gradient(110deg, color-mix(in srgb, var(--atlas-strategic) 12%, var(--surface)), var(--surface));
}

.supply-chain-entry {
  border-color: color-mix(in srgb, var(--atlas-supply) 55%, var(--border));
  background: linear-gradient(110deg, color-mix(in srgb, var(--atlas-supply) 11%, var(--surface)), var(--surface));
}

.diffusion-entry h2,
.supply-chain-entry h2 { margin: 0 0 0.25rem; font-family: var(--mono); font-size: clamp(1.2rem, 3vw, 1.8rem); }
.diffusion-entry-copy > p:last-child { max-width: 760px; margin: 0; color: var(--muted); }
.diffusion-entry-stats { display: flex; gap: 0.55rem; }
.diffusion-entry-stats span { min-width: 96px; padding: 0.6rem; border: 1px solid var(--border); border-radius: 4px; color: var(--muted); font-family: var(--mono); font-size: 0.58rem; line-height: 1.35; text-align: center; text-transform: uppercase; }
.diffusion-entry-stats strong { display: block; color: var(--atlas-strategic); font-size: 1.35rem; }
.supply-chain-entry .diffusion-entry-stats strong { color: var(--atlas-supply); }

.atlas-entry {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 1rem 1.5rem;
  align-items: center;
  padding: clamp(1rem, 3vw, 1.5rem);
  border-color: color-mix(in srgb, var(--atlas-market) 44%, var(--border));
  background: linear-gradient(110deg, color-mix(in srgb, var(--atlas-market) 9%, var(--surface)), var(--surface));
}

.atlas-entry h2 { margin: 0 0 0.25rem; font-family: var(--mono); font-size: clamp(1.2rem, 3vw, 1.8rem); }
.atlas-entry p { max-width: 720px; margin: 0; color: var(--muted); }

.atlas-entry-link {
  display: inline-flex;
  min-height: 2.8rem;
  align-items: center;
  justify-content: center;
  padding: 0.55rem 0.9rem;
  border: 1px solid var(--accent);
  border-radius: 3px;
  background: color-mix(in srgb, var(--accent) 12%, transparent);
  color: var(--accent);
  font-family: var(--mono);
  font-size: 0.72rem;
  font-weight: 700;
  text-transform: uppercase;
}

.atlas-entry-link:hover { background: color-mix(in srgb, var(--accent) 20%, transparent); text-decoration: none; }

@media (max-width: 720px) {
  .atlas { gap: 1rem; }
  .atlas-hero,
  .atlas-section,
  .atlas-method { padding: 1rem; }
  .atlas-hero h1 { letter-spacing: -0.04em; }
  .atlas-section-head { grid-template-columns: 1fr; }
  .atlas-index { font-size: 2.7rem; }
  .atlas-metric-line { padding-left: 0; }
  .atlas-freshness span,
  .atlas-metric-line span { width: 100%; }
  .atlas-freshness span + span::before,
  .atlas-metric-line span + span::before { content: none; }
  .atlas-chart { min-height: 210px; padding: 0.5rem; }
  .atlas-line-chart,
  .atlas-scatter { overflow-x: auto; }
  .atlas-line-chart .atlas-svg,
  .atlas-scatter .atlas-svg { min-width: 700px; }
  .atlas-readout { grid-template-columns: 1fr; }
  .atlas-adoption-ruler { min-width: 260px; margin-left: 148px; }
  .atlas-dumbbell { overflow-x: auto; }
  .atlas-adoption-rows { min-width: 600px; }
  .atlas-source-list { grid-template-columns: 1fr; }
  .supply-kpis { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .supply-destination-grid { grid-template-columns: 1fr; }
  .supply-destination-row { grid-template-columns: minmax(90px, 0.8fr) minmax(95px, 1fr) 42px; gap: 0.45rem; }
  .supply-chain-flow { padding: 0.65rem; }
  .supply-flow-row-upstream,
  .supply-flow-row-demand,
  .supply-flow-convergence,
  .supply-parallel-stack { grid-template-columns: 1fr; width: 100%; }
  .supply-flow-arrow,
  .supply-converge-arrow { justify-self: center; transform: rotate(90deg); }
  .supply-flow-split { flex-wrap: wrap; gap: 0.25rem 0.65rem; }
  .supply-flow-split strong { width: 100%; order: -1; }
  .model-price-row { grid-template-columns: minmax(105px, 36%) minmax(90px, 1fr) 58px; gap: 0.45rem; padding-inline: 0.35rem; }
  .model-price-identity strong { white-space: normal; }
  .model-price-scale { margin-left: 36%; }
  .diffusion-kpis { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .diffusion-flow { grid-template-columns: 1fr; }
  .diffusion-arrow { transform: rotate(90deg); justify-self: center; }
  .diffusion-grid { grid-template-columns: 1fr; }
  .diffusion-event { grid-template-columns: 1fr; }
  .diffusion-story-list li { grid-template-columns: 1fr; }
  .diffusion-story-list small { white-space: normal; }
  .diffusion-subhead > span { text-align: left; }
  .diffusion-entry,
  .supply-chain-entry { grid-template-columns: 1fr; }
  .diffusion-entry-stats { flex-wrap: wrap; }
  .atlas-entry { grid-template-columns: 1fr; }
  .atlas-entry-link { width: fit-content; }
}

@media (prefers-reduced-motion: reduce) {
  .atlas-path a,
  .atlas-topic-line,
  .atlas-topic-point,
  .atlas-point-circle { transition: none; }
}

@media print {
  .atlas-path,
  .atlas-show-all { display: none; }
  .atlas-section { break-inside: avoid; }
  .atlas-adoption-row.is-extra { display: grid; }
}
