:root {
  --network-ink: #292621;
  --network-muted: #6f6961;
  --network-rule: #d8d2c8;
  --network-paper: #fbfaf7;
}

* { box-sizing: border-box; }
body { margin: 0; background: #fff; color: var(--network-ink); font-family: Georgia, "Times New Roman", serif; }

.academic-network {
  width: min(100%, 1280px);
  margin-inline: auto;
  padding: 1.25rem clamp(.75rem, 2vw, 1.5rem) 2.25rem;
}
.academic-network__header { max-width: 74ch; margin-inline: auto; text-align: left; }
.academic-network__header h2,
.network-legend h3,
.network-key > h3 { margin: 0; color: #2c2924; font-weight: 600; }
.academic-network__header h2 { font-size: clamp(1.65rem, 3vw, 2.35rem); }
.academic-network__title-main,
.academic-network__title-sub { display: block; }
.academic-network__title-sub { margin-top: .12em; font-size: .78em; font-weight: 500; }

.academic-network__header p { margin: .55rem 0 1.1rem; color: var(--network-muted); font-size: clamp(.98rem, 1.4vw, 1.08rem); line-height: 1.58; }

.academic-network__figure { margin: 0; }
.academic-network__scroll {
  width: 100%;
  overflow-x: auto;
  overscroll-behavior-inline: contain;
  scrollbar-width: thin;
  border-block: 1px solid var(--network-rule);
  background: #fff;
}
.academic-network__svg { display: block; width: 100%; height: auto; }

.network-legend { margin-top: 1.35rem; padding: .95rem 1.05rem; border: 1px solid var(--network-rule); background: var(--network-paper); }
.network-legend h3, .network-key > h3 { font-size: 1.18rem; }
.network-legend ul { display: grid; grid-template-columns: repeat(4, minmax(0,1fr)); gap: .8rem 1.25rem; padding: 0; margin: .8rem 0 0; list-style: none; }
.network-legend__item { display: flex; align-items: center; gap: .65rem; font-size: .91rem; }
.network-legend__line { flex: 0 0 4.2rem; height: 0; }
.network-legend__line--lineage { border-top: 3px solid #37342f; }
.network-legend__line--mentor { border-top: 2px solid #5d5953; }
.network-legend__line--collaborator { border-top: 2px dashed #68645e; }
.network-legend__line--coauthor { border-top: 2px dotted #827d75; }
.network-legend__note { margin: .75rem 0 0; color: var(--network-muted); font-size: .9rem; line-height: 1.45; }

.network-key { margin-top: 1.5rem; }
.network-key__grid { display: grid; grid-template-columns: repeat(2, minmax(0,1fr)); gap: 1rem; margin-top: .8rem; align-items: start; }
.network-key__group { min-width: 0; padding: 1rem 1.1rem; border: 1px solid var(--network-rule); background: #fff; }
.network-key__group h3 { margin: 0 0 .8rem; color: #59534b; font-size: .94rem; font-weight: 700; letter-spacing: .055em; text-transform: uppercase; }
.network-key__group dl { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: .72rem 1.15rem; margin: 0; }
.network-key__entry { display: grid; grid-template-columns: 3.25rem 1fr; gap: .55rem; align-items: start; min-width: 0; }
.network-key dt { font-weight: 700; font-size: .97rem; }
.network-key dd { margin: 0; min-width: 0; }
.network-key__name, .network-key__affiliation { display: block; }
.network-key__name { font-weight: 600; }
.network-key__affiliation { margin-top: .1rem; color: var(--network-muted); font-size: .78rem; line-height: 1.3; }

@media (max-width: 1000px) {
  .academic-network__svg { width: 1020px; max-width: none; }
  .network-legend ul { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .network-key__group dl { grid-template-columns: 1fr; }
}
@media (max-width: 660px) {
  .academic-network { padding-inline: .65rem; }
  .academic-network__svg { width: 960px; }
  .network-key__grid, .network-legend ul { grid-template-columns: 1fr; }
}


.network-key__column { display: grid; gap: 1rem; align-content: start; min-width: 0; }
