.dream-research { max-width: 980px; }
.dream-research > section { max-width: 920px; }
.dream-research h1 { color: var(--gold); }
.dream-research h2 { color: var(--purple); }
.dream-research h3 { color: var(--gold); }
.dream-research p { max-width: 920px; }
.dream-research a { color: var(--gold); text-decoration: none; }
.dream-research a:hover, .dream-research a:focus-visible { color: var(--purple); }
.dream-research > .nr-project-provenance { max-width: 920px; align-items: flex-start; }
.dream-research > .nr-project-provenance .project-heading { min-width: 0; }
.page-index a, .route-ledger a { text-decoration: none; }
.mission-statement strong { color: var(--green); }
.related-work { max-width: 920px; margin: 16px 0 0; padding: 10px 0; border-block: .5px solid var(--line); color: var(--muted); }
.related-work strong { color: var(--green); font-weight: 500; }
.anchor-alias { display: block; position: relative; top: -24px; visibility: hidden; }

.term, [data-nrtip].term { color: var(--green); cursor: help; }

.route-ledger { margin: 16px 0 0; border-top: .5px solid var(--line); }
.route-ledger > div { display: grid; grid-template-columns: 150px minmax(0,1fr); gap: 18px; padding: 10px 0; border-bottom: .5px solid var(--line); }
.route-ledger dt { font-size: var(--fs-h3); }
.route-ledger dd { margin: 0; color: var(--muted); }

.linked-notes { margin: 16px 0 18px; }
.linked-notes > div { padding-top: 10px; border-top: .5px solid var(--line); }
.linked-notes h3 { margin-top: 0 !important; }

.table-scroll { max-width: 920px; overflow-x: auto; margin-top: 16px; }
.research-table { width: 100%; border-collapse: collapse; min-width: 660px; }
.research-table th, .research-table td { padding: 9px 12px 9px 0; border-bottom: .5px solid var(--line); text-align: left; vertical-align: top; }
.research-table th { color: var(--dim); font-size: var(--fs-small); font-weight: 500; letter-spacing: .05em; }
.research-table td:first-child { color: var(--green); white-space: nowrap; }
.research-table td:last-child { width: 26%; }
.module-table td:nth-child(2) { width: 25%; }

.assembly-ledger { margin: 16px 0 0; border-top: .5px solid var(--line); }
.assembly-ledger > div { display: grid; grid-template-columns: 145px minmax(0,1fr) 190px; gap: 16px; padding: 10px 0; border-bottom: .5px solid var(--line); align-items: baseline; }
.assembly-ledger dt { color: var(--green); }
.assembly-ledger dd { margin: 0; }
.assembly-ledger dd:last-child { text-align: right; }

.thermal-ladder { display: grid; grid-template-columns: repeat(5,minmax(0,1fr)); max-width: 920px; margin: 16px 0; border-block: .5px solid var(--line); }
.thermal-ladder > div { min-width: 0; padding: 11px 12px 12px 0; }
.thermal-ladder > div + div { padding-left: 12px; border-left: .5px solid var(--line); }
.thermal-ladder strong { display: block; color: var(--gold); font-weight: 500; }
.thermal-ladder span { display: block; margin-top: 3px; color: var(--dim); font-size: var(--fs-small); line-height: 1.45; }
.thermal-network { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); max-width: 920px; margin: 16px 0; border-block: .5px solid var(--line); }
.thermal-network > div { min-width: 0; padding: 11px 12px 12px 0; }
.thermal-network > div + div { padding-left: 12px; border-left: .5px solid var(--line); }
.thermal-network strong { display: block; color: var(--gold); font-weight: 500; }
.thermal-network span { display: block; margin-top: 3px; color: var(--dim); font-size: var(--fs-small); line-height: 1.45; }

.production-ladder { list-style: none; margin: 16px 0 0; padding: 0; border-top: .5px solid var(--line); }
.production-ladder > li { display: grid; grid-template-columns: 210px minmax(0,1fr); gap: 8px 24px; padding: 13px 0; border-bottom: .5px solid var(--line); }
.production-ladder > li > div { display: flex; gap: 10px; align-items: baseline; grid-row: 1 / span 2; }
.production-ladder > li > div span { color: var(--dim); }
.production-ladder h3 { margin: 0 !important; }
.production-ladder p { margin: 0; }
.production-ladder .source-line { color: var(--dim); font-size: var(--fs-small); }

.organization-map { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); max-width: 920px; margin-top: 16px; border-top: .5px solid var(--line); }
.organization-map > div { padding: 12px 18px 12px 0; border-bottom: .5px solid var(--line); }
.organization-map > div:nth-child(even) { padding-left: 18px; border-left: .5px solid var(--line); }
.organization-map h3 { margin: 0 0 4px !important; }
.organization-map p { margin: 0; }

.reference-intro { margin: 3px 0 14px !important; color: var(--dim) !important; }
.reference-tabs { display: flex; flex-wrap: wrap; gap: 7px; margin: 0 0 14px; }
.reference-tabs button { min-height: 30px; padding: 4px 10px; border: .5px solid var(--green-bd); border-radius: 5px; background: var(--bg); color: var(--green); font: inherit; cursor: pointer; }
.reference-tabs button:hover, .reference-tabs button:focus-visible { border-color: var(--purple-bd); color: var(--purple); }
.reference-tabs button[aria-pressed="true"] { border-color: var(--gold-bd); background: var(--gold-bg); color: var(--gold); }
.reference-browser { border-block: .5px solid var(--line); background: var(--bg); }
.reference-browser > summary { padding: 12px 0; color: var(--green); cursor: pointer; }
.reference-browser > summary::marker { color: var(--gold); }
.reference-browser > summary:hover, .reference-browser > summary:focus-visible { color: var(--purple); outline: none; }
.reference-summary { float: right; margin-left: 18px; color: var(--dim); font-size: var(--fs-small); }
.reference-controls { display: flex; align-items: end; flex-wrap: wrap; gap: 10px 20px; padding: 12px 0 14px; border-top: .5px solid var(--line); color: var(--dim); }
.reference-controls label { color: var(--green); white-space: nowrap; }
.reference-controls select, .reference-controls input { height: 34px; margin-left: 7px; border: .5px solid var(--green-bd); border-radius: 4px; background: var(--panel); color: var(--green); font: inherit; outline: none; }
.reference-controls select { min-width: 142px; padding: 3px 28px 3px 8px; }
.reference-controls input { width: 210px; padding: 3px 8px; }
.reference-controls select:focus, .reference-controls input:focus { border-color: var(--green); }
#reference-count { margin-left: auto; color: var(--green); font-size: var(--fs-small); }
.reference-list { list-style: none; padding: 0; margin: 0; border-top: .5px solid var(--line); }
.reference-list li { display: grid; grid-template-columns: 105px minmax(0,1fr) auto; gap: 14px; padding: 10px 0; border-bottom: .5px solid var(--line); align-items: baseline; }
.reference-domain, .reference-date { color: var(--dim); }
.reference-list a { font-size: var(--fs-h3); }
.reference-note { color: var(--muted); margin-top: 2px; }
.reference-date { white-space: nowrap; }

@media (max-width: 780px) {
  .thermal-ladder, .thermal-network { grid-template-columns: 1fr; }
  .thermal-ladder > div + div, .thermal-network > div + div { padding-left: 0; border-left: 0; border-top: .5px solid var(--line); }
  .assembly-ledger > div { grid-template-columns: 120px minmax(0,1fr); }
  .assembly-ledger dd:last-child { grid-column: 2; text-align: left; }
  .production-ladder > li { grid-template-columns: 1fr; }
  .production-ladder > li > div { grid-row: auto; }
}
@media (max-width: 620px) {
  .route-ledger > div { grid-template-columns: 1fr; gap: 3px; }
  .organization-map { grid-template-columns: 1fr; }
  .organization-map > div:nth-child(even) { padding-left: 0; border-left: 0; }
  .reference-controls { align-items: flex-start; flex-direction: column; }
  .reference-controls input { width: min(60vw,240px); }
  #reference-count { margin-left: 0; }
  .reference-list li { grid-template-columns: 78px minmax(0,1fr); gap: 5px 10px; }
  .reference-date { grid-column: 2; }
}
