/* Data pages: Atlas below the map, Ledger, Demand, Funding. Reads tokens only; no hex here.
   Motion: transform and opacity only, 220 to 380 ms, the house easing, off under reduced motion. */

/* ---------------------------------------------------------------- shared page parts */
.group-title { font-size: var(--wa-t-2); margin-bottom: var(--wa-s-5); }
.fig-title { font-size: var(--wa-t-3); font-weight: 500; line-height: 1.28; letter-spacing: -.01em; }
h3.fig-title { margin-bottom: 0; }
.fig-lede {
  margin: var(--wa-s-2) 0 var(--wa-s-5); max-width: var(--wa-measure);
  font-family: var(--wa-font-read); font-size: var(--wa-t-body); line-height: 1.6; color: var(--wa-ink-body);
}
.fig-note {
  margin-top: var(--wa-s-5); padding-top: var(--wa-s-3); border-top: 1px solid var(--wa-hairline);
  max-width: var(--wa-measure); font-size: var(--wa-t-ui); line-height: 1.5; color: var(--wa-ink-body);
}
.wa-view { min-width: 0; }
.wa-view:empty { display: none; }

/* Stacked tables: the header row is .wa-sr (read aloud, not drawn) so phones stack rows under
   data-label captions; wider screens draw the header row as usual. */
@media (min-width: 641px) {
  thead.wa-stack-head {
    position: static; width: auto; height: auto; margin: 0; overflow: visible; clip-path: none; white-space: normal;
  }
}

/* ---------------------------------------------------------------- Atlas, below the map */
.atlas-below { margin-top: var(--wa-s-8); }
.atlas-below > .band { margin-bottom: var(--wa-s-8); }

.thesis {
  display: grid; grid-template-columns: minmax(0, 1.25fr) minmax(0, 1fr);
  gap: var(--wa-s-5) var(--wa-s-8); align-items: start; margin-bottom: var(--wa-s-8);
}
.thesis-line { font-size: var(--wa-t-1); line-height: 1.14; letter-spacing: -.018em; max-width: 14ch; }
.thesis-side { padding-top: var(--wa-s-2); }
.thesis-side .lede { margin-top: var(--wa-s-4); max-width: var(--wa-measure); }
.thesis-side .section-actions { margin-top: var(--wa-s-5); }

/* the Measurement Table (BRAND-STANDARD §8.5): figures in Plex Mono, right-aligned */
.wa-mtable-wrap { min-width: 0; }
.wa-mtable { width: 100%; border-collapse: collapse; font-size: var(--wa-t-ui); }
.wa-mtable th {
  text-align: left; vertical-align: bottom; padding: 0 var(--wa-s-4) var(--wa-s-2) 0;
  font-family: var(--wa-font-measure); font-size: var(--wa-t-meta); font-weight: 400; color: var(--wa-ink-muted);
  border-bottom: 1px solid var(--wa-rule);
}
.wa-mtable td { padding: var(--wa-s-3) var(--wa-s-4) var(--wa-s-3) 0; border-bottom: 1px solid var(--wa-hairline); vertical-align: baseline; }
.wa-mtable th:last-child, .wa-mtable td:last-child { padding-right: 0; }
.wa-mtable .num { text-align: right; white-space: nowrap; }
.wa-mtable td.num {
  font-family: var(--wa-font-measure); font-size: var(--wa-t-body); font-weight: 500; color: var(--wa-ink);
  font-variant-numeric: tabular-nums; padding-right: var(--wa-s-5);
}
.wa-mtable td[data-label="Measure"] { color: var(--wa-ink-body); }
.wa-mtable-src, .wa-mtable-date {
  font-family: var(--wa-font-measure); font-size: var(--wa-t-meta); line-height: 1.45; color: var(--wa-ink-muted);
}
.wa-mtable-src { max-width: 28rem; }
.wa-mtable-date { white-space: nowrap; }

/* doors: a hairline-ruled row of links, not cards */
.doors { margin-top: var(--wa-s-8); }
.doors-list {
  list-style: none; margin: 0; padding: 0;
  display: grid; grid-template-columns: repeat(4, minmax(0, 1fr));
  border-top: 1px solid var(--wa-rule);
}
.doors-list li { min-width: 0; border-left: 1px solid var(--wa-hairline); }
.doors-list li:first-child { border-left: 0; }
.door {
  display: flex; flex-direction: column; gap: var(--wa-s-2); height: 100%;
  padding: var(--wa-s-4) var(--wa-s-4) var(--wa-s-5); color: var(--wa-ink-body); text-decoration: none;
}
.doors-list li:first-child .door { padding-left: 0; }
.door-name {
  display: inline-flex; align-items: center; gap: var(--wa-s-2);
  font-family: var(--wa-font-read); font-size: var(--wa-t-4); line-height: 1.3; color: var(--wa-ink);
}
.door-arrow { flex: none; stroke: var(--wa-accent); transition: transform var(--wa-dur-state) var(--wa-ease); }
.door-desc { font-size: var(--wa-t-ui); line-height: 1.5; color: var(--wa-ink-muted); }
.door:hover { color: var(--wa-ink-body); }
.door:hover .door-name { color: var(--wa-accent); }
.door:hover .door-arrow { transform: translateX(4px); }

/* speaking teaser: the signature talk in one line */
.teaser { margin-top: var(--wa-s-8); padding-top: var(--wa-s-5); border-top: 1px solid var(--wa-rule); }
.teaser .group-title { margin-bottom: var(--wa-s-3); }
.teaser-line {
  max-width: 40rem; font-family: var(--wa-font-read); font-size: var(--wa-t-4); line-height: 1.45; color: var(--wa-ink);
}
.teaser-more { margin-top: var(--wa-s-4); }
.teaser-more a { display: inline-flex; align-items: center; min-height: 44px; }

@media (max-width: 900px) {
  .thesis { grid-template-columns: minmax(0, 1fr); }
  .thesis-line { max-width: none; }
  .doors-list { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .doors-list li:nth-child(3) { border-left: 0; }
  .doors-list li:nth-child(3) .door { padding-left: 0; }
  .doors-list li:nth-child(n + 3) { border-top: 1px solid var(--wa-hairline); }
}

@media (max-width: 640px) {
  .atlas-below { margin-top: var(--wa-s-6); }
  .atlas-below > .band { margin-bottom: var(--wa-s-6); }
  .thesis { margin-bottom: var(--wa-s-6); }
  .thesis-line { font-size: var(--wa-t-2); }
  .group-title { font-size: var(--wa-t-3); }
  .fig-title { font-size: var(--wa-t-4); }
  .doors, .teaser { margin-top: var(--wa-s-6); }
  .doors-list { grid-template-columns: minmax(0, 1fr); }
  .doors-list li { border-left: 0; border-top: 1px solid var(--wa-hairline); }
  .doors-list li:first-child { border-top: 0; }
  .door, .doors-list li:nth-child(3) .door { padding: var(--wa-s-3) 0 var(--wa-s-4); }

  /* the Measurement Table stacks: figure and measure on one line, source and date beneath */
  .wa-mtable, .wa-mtable tbody { display: block; }
  .wa-mtable tr {
    display: grid; grid-template-columns: auto minmax(0, 1fr); gap: var(--wa-s-1) var(--wa-s-3);
    padding: var(--wa-s-3) 0; border-bottom: 1px solid var(--wa-hairline);
  }
  .wa-mtable td { display: block; padding: 0; border: 0; }
  .wa-mtable td.num { text-align: left; padding: 0; }
  .wa-mtable-src, .wa-mtable-date { grid-column: 1 / -1; max-width: none; }
  .wa-mtable-date { white-space: normal; }
  .wa-mtable-date::before { content: "As of "; }
}

/* ---------------------------------------------------------------- Ledger, Demand, Funding */
.page-head .lede { max-width: 40rem; }

/* on this page: four labelled groups of links, hairline-ruled */
.toc {
  display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 0 var(--wa-s-5);
  margin-top: var(--wa-s-6); border-top: 1px solid var(--wa-rule);
}
.toc-group { min-width: 0; padding-top: var(--wa-s-3); }
.toc-head {
  display: inline-flex; align-items: center; min-height: 32px;
  font-family: var(--wa-font-read); font-size: var(--wa-t-body); color: var(--wa-ink); text-decoration: none;
}
.toc-head:hover { color: var(--wa-accent); }
.toc ul { list-style: none; margin: 0; padding: 0; }
.toc li a {
  display: inline-flex; align-items: center; min-height: 32px;
  font-size: var(--wa-t-ui); color: var(--wa-ink-muted); text-decoration: none;
}
.toc li a:hover { color: var(--wa-accent); text-decoration: underline; }

.fig-group { scroll-margin-top: var(--wa-s-5); }
.fig-group + .fig-group { margin-top: var(--wa-s-10); }
.wa-fig { scroll-margin-top: var(--wa-s-5); min-width: 0; }
.wa-fig + .wa-fig { margin-top: var(--wa-s-5); }

/* a gated view: the request stands where the data would be */
.wa-gated {
  display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: center; gap: var(--wa-s-2) var(--wa-s-5);
  margin-top: var(--wa-s-5); padding-top: var(--wa-s-4); border-top: 1px solid var(--wa-rule);
}
.wa-gated-title { grid-column: 1; font-size: var(--wa-t-ui); font-weight: 600; color: var(--wa-ink); }
.wa-gated-text { grid-column: 1; max-width: var(--wa-measure); font-size: var(--wa-t-ui); line-height: 1.5; color: var(--wa-ink-body); }
.wa-gated .btn { grid-column: 2; grid-row: 1 / span 2; }

/* ---------------------------------------------------------------- tables */
.wa-tbl-view { min-width: 0; }
.wa-tbl-terms { line-height: 2; margin-bottom: var(--wa-s-4); }
.wa-tbl-terms .wa-term { margin-right: var(--wa-s-3); white-space: nowrap; }
.wa-tbl-terms .wa-def-text { white-space: normal; }
.wa-tbl-controls { display: flex; flex-wrap: wrap; align-items: flex-end; gap: var(--wa-s-3) var(--wa-s-5); margin-bottom: var(--wa-s-3); }
.wa-field { display: inline-flex; flex-direction: column; gap: var(--wa-s-1); min-width: 0; flex: 0 1 20rem; }
.wa-input {
  min-height: 44px; width: 100%; padding: 0 var(--wa-s-3);
  font-family: var(--wa-font-operate); font-size: var(--wa-t-ui); color: var(--wa-ink);
  background: var(--wa-sheet); border: 1px solid var(--wa-rule); border-radius: 0;
}
.wa-input:hover { border-color: var(--wa-ink); }
.wa-sortsel { display: none; }
.wa-tbl-status { margin: 0 0 var(--wa-s-2); font-family: var(--wa-font-measure); font-size: var(--wa-t-meta); color: var(--wa-ink-muted); }
.wa-tbl-empty { padding: var(--wa-s-4) 0; border-top: 1px solid var(--wa-rule); font-size: var(--wa-t-ui); color: var(--wa-ink-body); }

.wa-tbl-scroll { overflow-x: auto; border-top: 1px solid var(--wa-rule); }
.wa-tbl { width: 100%; border-collapse: collapse; font-size: var(--wa-t-ui); }
.wa-tbl thead th {
  position: relative; text-align: left; vertical-align: bottom; padding: var(--wa-s-2) var(--wa-s-2);
  font-family: var(--wa-font-operate); font-size: var(--wa-t-meta); font-weight: 600; line-height: 1.35; color: var(--wa-ink);
  background: var(--wa-recess); border-bottom: 1px solid var(--wa-rule);
}
.wa-tbl thead th.num { text-align: right; }
.wa-tbl tbody th, .wa-tbl td {
  padding: var(--wa-s-2) var(--wa-s-2); text-align: left; vertical-align: top; font-weight: 400;
  border-bottom: 1px solid var(--wa-hairline); color: var(--wa-ink-body);
}
.wa-tbl td.num {
  text-align: right; font-family: var(--wa-font-measure); font-size: var(--wa-t-meta); line-height: 1.6;
  font-variant-numeric: tabular-nums; color: var(--wa-ink); white-space: nowrap;
}
.wa-tbl tbody tr:hover { background: var(--wa-accent-wash); }
.wa-tbl .wa-occ { min-width: 10rem; max-width: 16rem; color: var(--wa-ink); }
.wa-tbl .wa-occ a { color: var(--wa-ink); text-decoration-color: var(--wa-rule); }
.wa-tbl .wa-occ a:hover { color: var(--wa-accent); text-decoration-color: currentColor; }
.wa-soc { display: block; font-family: var(--wa-font-measure); font-size: var(--wa-t-meta); color: var(--wa-ink-muted); }
.wa-np { font-family: var(--wa-font-measure); font-size: var(--wa-t-meta); font-style: italic; color: var(--wa-ink-muted); white-space: normal; }
.wa-np-why { display: block; max-width: 14rem; margin-left: auto; line-height: 1.4; }
.wa-tbl .wa-np { display: inline-block; max-width: 6.5em; white-space: normal; line-height: 1.35; }
.wa-np-ref { margin-left: 2px; font-style: normal; font-size: var(--wa-t-meta); line-height: 0; color: var(--wa-ink-body); }
.wa-np-key {
  display: flex; flex-wrap: wrap; align-items: baseline; gap: var(--wa-s-1) var(--wa-s-3); padding-top: var(--wa-s-2);
  font-family: var(--wa-font-measure); font-size: var(--wa-t-meta); line-height: 1.45; color: var(--wa-ink-muted);
}
.wa-np-key-title { font-style: italic; }
.wa-np-key ol { margin: 0; padding: 0; list-style: none; counter-reset: wa-np; display: flex; flex-wrap: wrap; gap: var(--wa-s-1) var(--wa-s-4); }
.wa-np-key li { counter-increment: wa-np; }
.wa-np-key li::before { content: counter(wa-np) " "; color: var(--wa-ink-body); }
.wa-zero { color: var(--wa-ink-muted); }
.wa-online { white-space: nowrap; }

/* sort buttons fill the header cell; the active direction is drawn in ink */
.wa-sort {
  display: inline-flex; align-items: flex-end; gap: var(--wa-s-1); min-height: 32px; padding: 0; margin: 0;
  font: inherit; color: inherit; text-align: inherit; background: none; border: 0; cursor: pointer;
}
.wa-sort::after { content: ""; position: absolute; inset: 0; }
.wa-sort:hover { color: var(--wa-accent); }
.wa-sort-glyph { flex: none; margin-bottom: 2px; }
.wa-sort-glyph path { fill: none; stroke: var(--wa-rule); stroke-width: 1.25px; }
th[aria-sort="ascending"] .wa-sort-up, th[aria-sort="descending"] .wa-sort-down { stroke: var(--wa-ink); }

.wa-pager { display: flex; align-items: center; justify-content: space-between; gap: var(--wa-s-3); margin-top: var(--wa-s-3); }
.wa-page-at { font-family: var(--wa-font-measure); font-size: var(--wa-t-meta); color: var(--wa-ink-muted); }
.wa-page-btn {
  min-height: 44px; min-width: 6.5rem; padding: 0 var(--wa-s-4);
  font-family: var(--wa-font-operate); font-size: var(--wa-t-ui); color: var(--wa-ink);
  background: var(--wa-sheet); border: 1px solid var(--wa-rule); border-radius: 0; cursor: pointer;
}
.wa-page-btn:hover:not([disabled]) { border-color: var(--wa-ink); }
.wa-page-btn[disabled] { color: var(--wa-ink-muted); border-color: var(--wa-hairline); cursor: default; }

@media (max-width: 900px) {
  .toc { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 640px) {
  .toc { gap: 0 var(--wa-s-4); margin-top: var(--wa-s-5); }
  .fig-group + .fig-group { margin-top: var(--wa-s-8); }
  .wa-fig + .wa-fig { margin-top: var(--wa-s-4); }
  .fig-lede { font-size: var(--wa-t-ui); }
  .wa-gated { grid-template-columns: minmax(0, 1fr); }
  .wa-gated .btn { grid-column: 1; grid-row: auto; justify-self: start; margin-top: var(--wa-s-2); }

  /* tables stack: each row becomes a block, each cell a label and its value */
  .wa-sortsel { display: inline-flex; }
  .wa-field { flex-basis: 100%; }
  .wa-tbl-controls .wa-control, .wa-tbl-controls .wa-select { width: 100%; }
  .wa-tbl-scroll { overflow-x: visible; }
  .wa-tbl, .wa-tbl tbody, .wa-tbl tr { display: block; }
  .wa-tbl tr { padding: var(--wa-s-3) 0; border-bottom: 1px solid var(--wa-hairline); }
  .wa-tbl tbody tr:hover { background: none; }
  .wa-tbl tbody th, .wa-tbl td { display: flex; justify-content: space-between; align-items: baseline; gap: var(--wa-s-3); padding: 2px 0; border: 0; }
  .wa-tbl tbody th { display: block; padding-bottom: var(--wa-s-2); font-size: var(--wa-t-body); }
  .wa-tbl .wa-occ { min-width: 0; max-width: none; }
  .wa-tbl td::before {
    content: attr(data-label); flex: 1 1 auto; min-width: 0; text-align: left; white-space: normal;
    font-family: var(--wa-font-operate); font-size: var(--wa-t-meta); color: var(--wa-ink-muted); font-style: normal;
  }
  .wa-tbl td > * { flex: 0 1 auto; }
  .wa-tbl td.num { white-space: normal; }
  .wa-np { text-align: right; }
  .wa-np-why { max-width: 11rem; }
  .wa-tbl .wa-np { max-width: none; }
}

@media (prefers-reduced-motion: reduce) {
  .door-arrow { transition: none; }
}

/* ---------------------------------------------------------------- Programs: tabs and the matrix */
/* Without JavaScript the tab list is hidden and both panels show in turn. */
.wa-tabs:not(.is-tabbed) .wa-tablist { display: none; }
.wa-tablist {
  display: flex; flex-wrap: wrap; gap: 0 var(--wa-s-5);
  margin-bottom: var(--wa-s-5); border-bottom: 1px solid var(--wa-rule);
}
.wa-tab {
  position: relative; min-height: 44px; padding: var(--wa-s-2) 0; margin: 0 0 -1px;
  font-family: var(--wa-font-read); font-size: var(--wa-t-4); line-height: 1.3; color: var(--wa-ink-muted);
  background: none; border: 0; border-bottom: 2px solid transparent; border-radius: 0; cursor: pointer;
  transition: color var(--wa-dur-state) var(--wa-ease);
}
.wa-tab:hover { color: var(--wa-ink); }
.wa-tab[aria-selected="true"] { color: var(--wa-ink); border-bottom-color: var(--wa-accent); }
.wa-tabpanel[hidden] { display: none; }
.wa-tabpanel + .wa-tabpanel { margin-top: var(--wa-s-5); }
.wa-tbl-view > .wa-chart-note { margin: 0 0 var(--wa-s-4); max-width: var(--wa-measure); }

.wa-tbl .wa-prog { min-width: 13rem; max-width: 20rem; overflow-wrap: anywhere; }
.wa-prog-title { display: block; color: var(--wa-ink); }
.wa-prov { display: block; margin-top: 2px; font-size: var(--wa-t-meta); line-height: 1.45; color: var(--wa-ink-muted); }
.wa-prov-type { white-space: normal; }
.wa-type-sq {
  display: inline-block; width: 8px; height: 8px; margin-right: 6px; vertical-align: 0;
  background: var(--wa-ink-muted);
}
.wa-type-sq.is-university { background: var(--wa-type-university); }
.wa-type-sq.is-community-college { background: var(--wa-type-community-college); }
.wa-type-sq.is-private { background: var(--wa-type-private); }
.wa-type-sq.is-apprenticeship-sponsor { background: var(--wa-type-apprenticeship); }
.wa-type-sq.is-bootcamp { background: var(--wa-type-bootcamp); }
.wa-type-sq.is-employer-academy { background: var(--wa-type-employer-academy); }
.wa-cellbox, .wa-srcbox { display: block; }
.wa-tbl .wa-socc { min-width: 9rem; max-width: 14rem; overflow-wrap: anywhere; }
.wa-soc-only { font-size: var(--wa-t-ui); color: var(--wa-ink-body); }
.wa-enroll { display: block; font-size: var(--wa-t-meta); color: var(--wa-ink-muted); white-space: nowrap; }
.wa-enroll.is-internal { color: var(--wa-ink-body); }
.wa-tbl .wa-tier { white-space: nowrap; }
.wa-tbl .wa-tier .wa-def-text { width: 15rem; max-width: 60vw; white-space: normal; }
.wa-tbl .wa-srcc { min-width: 9rem; max-width: 13rem; }
.wa-src { display: block; font-size: var(--wa-t-meta); line-height: 1.45; color: var(--wa-ink-body); overflow-wrap: anywhere; }
.wa-asof { display: block; font-family: var(--wa-font-measure); font-size: var(--wa-t-meta); line-height: 1.45; color: var(--wa-ink-muted); white-space: nowrap; }

@media (max-width: 640px) {
  .wa-tab { font-size: var(--wa-t-body); }
  .wa-tbl .wa-prog, .wa-tbl .wa-socc, .wa-tbl .wa-srcc { min-width: 0; max-width: none; }
  .wa-tbl td.wa-tier { flex-wrap: wrap; }
  .wa-cellbox, .wa-srcbox { min-width: 0; text-align: right; }
  .wa-tbl td.wa-socc::before, .wa-tbl td.wa-srcc::before { flex: 0 0 auto; white-space: nowrap; }
  .wa-tbl .wa-tier .wa-def-text { width: auto; max-width: none; flex-basis: 100%; }
  .wa-asof { white-space: normal; }
}

@media (prefers-reduced-motion: reduce) {
  .wa-tab { transition: none; }
}

/* ---------------------------------------------------------------- About */
.about-title span { display: inline-block; }
.about { display: grid; grid-template-columns: minmax(0, 1fr); gap: var(--wa-s-5); }
.about.has-photo { grid-template-columns: minmax(0, 18rem) minmax(0, 1fr); align-items: start; gap: var(--wa-s-6); }
.about-defs { position: absolute; width: 0; height: 0; overflow: hidden; }
.about-photo { margin: 0; border: 1px solid var(--wa-hairline); }
.about-photo img { display: block; width: 100%; height: auto; aspect-ratio: 4 / 5; object-fit: cover; filter: url(#wa-duotone); }
.about-main { display: grid; gap: var(--wa-s-5); min-width: 0; }
.about-bio .prose { margin-top: var(--wa-s-2); }
/* v4 callout: hairline, recess fill, a mono label at top-left, no accent border */
.about-disclosure {
  margin-top: var(--wa-s-5); padding: var(--wa-s-4); max-width: calc(var(--wa-measure) + 2 * var(--wa-s-4));
  background: var(--wa-recess); border: 1px solid var(--wa-hairline);
}
.about-disclosure-label { margin: 0 0 var(--wa-s-2); font-family: var(--wa-font-measure); font-size: var(--wa-t-meta); color: var(--wa-ink-muted); }
.about-disclosure-text { margin: 0; font-family: var(--wa-font-read); font-size: var(--wa-t-body); line-height: 1.6; color: var(--wa-ink); }
.about-contact-text { font-size: var(--wa-t-body); line-height: 1.6; color: var(--wa-ink-body); }
.about-actions { display: flex; flex-wrap: wrap; gap: var(--wa-s-3); }
.about-privacy { margin-top: var(--wa-s-4); font-size: var(--wa-t-ui); }
.about-privacy a { display: inline-flex; align-items: center; min-height: 44px; }

@media (min-width: 961px) {
  .about:not(.has-photo) .about-main { grid-template-columns: minmax(0, 1.75fr) minmax(0, 1fr); align-items: start; }
}
@media (max-width: 760px) {
  .about.has-photo { grid-template-columns: minmax(0, 1fr); }
  .about-photo { max-width: 16rem; }
}

/* ---------------------------------------------------------------- Method */
.method-toc { margin-top: var(--wa-s-5); border-top: 1px solid var(--wa-rule); }
.method-toc ul { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 0 var(--wa-s-5); }
.method-toc a {
  display: inline-flex; align-items: center; min-height: 44px;
  font-size: var(--wa-t-ui); color: var(--wa-ink-body); text-decoration: none;
}
.method-toc a:hover { color: var(--wa-accent); text-decoration: underline; }
.method { display: grid; gap: var(--wa-s-5); }
.method .wa-fig + .wa-fig { margin-top: 0; }
.method-sec, .method .wa-fig { scroll-margin-top: var(--wa-s-5); }
.method h2.fig-title { font-size: var(--wa-t-3); font-weight: 500; }
.method-sec .fig-note { border-top: 0; }

/* the three tiers: a numbered, hairline-ruled list (the number carries order: tier 1 is tried first) */
.method-tiers { margin: 0; border-top: 1px solid var(--wa-rule); }
.method-tier {
  display: grid; grid-template-columns: minmax(0, 14rem) minmax(0, 1fr); gap: var(--wa-s-2) var(--wa-s-5);
  padding: var(--wa-s-4) 0; border-bottom: 1px solid var(--wa-hairline);
}
.method-tier dt { font-family: var(--wa-font-read); font-size: var(--wa-t-4); line-height: 1.3; color: var(--wa-ink); }
.method-tier-n {
  display: inline-block; min-width: 1.5em; font-family: var(--wa-font-measure); font-size: var(--wa-t-ui);
  color: var(--wa-accent); vertical-align: 2px;
}
.method-tier dd { margin: 0; max-width: var(--wa-measure); font-size: var(--wa-t-ui); line-height: 1.6; color: var(--wa-ink-body); }

.method-guards { margin: 0; padding: 0; list-style: none; border-top: 1px solid var(--wa-rule); max-width: 46rem; }
.method-guards li {
  position: relative; padding: var(--wa-s-3) 0 var(--wa-s-3) var(--wa-s-5); border-bottom: 1px solid var(--wa-hairline);
  font-size: var(--wa-t-ui); line-height: 1.6; color: var(--wa-ink-body);
}
.method-guards li::before {
  content: ""; position: absolute; left: 0; top: calc(var(--wa-s-3) + 0.55em); width: 8px; height: 1px; background: var(--wa-ink);
}

/* definitions: a two-column glossary on wide screens, one column on phones */
.method-defs { margin: 0; columns: 2 24rem; column-gap: var(--wa-s-6); border-top: 1px solid var(--wa-rule); }
.method-def { break-inside: avoid; padding: var(--wa-s-3) 0; border-bottom: 1px solid var(--wa-hairline); scroll-margin-top: var(--wa-s-5); }
.method-def dt { font-family: var(--wa-font-operate); font-size: var(--wa-t-ui); font-weight: 600; color: var(--wa-ink); }
.method-def dd { margin: var(--wa-s-1) 0 0; font-size: var(--wa-t-ui); line-height: 1.6; color: var(--wa-ink-body); }
.method-def:target { background: var(--wa-accent-wash); }

.method-attr { margin: 0; border-top: 1px solid var(--wa-rule); }
.method-attr-row {
  display: grid; grid-template-columns: minmax(0, 14rem) minmax(0, 1fr); gap: var(--wa-s-1) var(--wa-s-5);
  padding: var(--wa-s-3) 0; border-bottom: 1px solid var(--wa-hairline);
}
.method-attr-row dt { font-size: var(--wa-t-ui); font-weight: 600; color: var(--wa-ink); }
.method-attr-row dd { margin: 0; max-width: 40rem; font-size: var(--wa-t-ui); line-height: 1.6; color: var(--wa-ink-body); overflow-wrap: anywhere; }
.method-mit { margin-top: var(--wa-s-4); max-width: 46rem; }
.method-mit summary { display: inline-flex; align-items: center; min-height: 44px; font-size: var(--wa-t-ui); color: var(--wa-ink); cursor: pointer; }
.method-mit p { margin: var(--wa-s-2) 0 0; font-family: var(--wa-font-measure); font-size: var(--wa-t-meta); line-height: 1.6; color: var(--wa-ink-body); }
.wa-license { min-width: 9rem; }
.wa-run.is-blocked, .wa-run.is-schema_changed, .wa-run.is-error { color: var(--wa-accent); }

@media (max-width: 640px) {
  .method-toc ul { gap: 0 var(--wa-s-4); }
  .method-tier, .method-attr-row { grid-template-columns: minmax(0, 1fr); }
  .method-tier dt { font-size: var(--wa-t-body); }
  .method h2.fig-title { font-size: var(--wa-t-4); }
}

/* ---------------------------------------------------------------- Speaking */
.speak-signature {
  margin-top: var(--wa-s-5); max-width: 38rem;
  font-family: var(--wa-font-read); font-size: var(--wa-t-3); line-height: 1.3; letter-spacing: -.01em; color: var(--wa-ink);
}
.speak-actions { display: flex; flex-wrap: wrap; gap: var(--wa-s-3); }
.speak { display: grid; gap: var(--wa-s-5); }
.speak h2.fig-title { font-size: var(--wa-t-3); font-weight: 500; }

/* the talk menu: numbered because the spec numbers it; titles in Spectral, hairline rows */
.talks { margin: 0; padding: 0; list-style: none; border-top: 1px solid var(--wa-rule); }
.talk {
  display: grid; grid-template-columns: 3rem minmax(0, 1fr); gap: var(--wa-s-4);
  padding: var(--wa-s-5) 0; border-bottom: 1px solid var(--wa-hairline);
}
.talk-n { font-family: var(--wa-font-measure); font-size: var(--wa-t-ui); line-height: 2.2; color: var(--wa-accent); }
.talk-title { font-size: var(--wa-t-4); line-height: 1.3; letter-spacing: 0; }
.talk-title strong { font-weight: 500; }
.talk-desc { margin-top: var(--wa-s-2); max-width: var(--wa-measure); font-family: var(--wa-font-read); font-size: var(--wa-t-body); line-height: 1.6; color: var(--wa-ink-body); }

.formats { margin: var(--wa-s-4) 0 0; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); border-top: 1px solid var(--wa-rule); }
.format { min-width: 0; padding: var(--wa-s-4) var(--wa-s-4) var(--wa-s-4) 0; }
.format + .format { padding-left: var(--wa-s-4); border-left: 1px solid var(--wa-hairline); }
.format dt { font-family: var(--wa-font-read); font-size: var(--wa-t-4); line-height: 1.3; color: var(--wa-ink); }
.format dd { margin: var(--wa-s-2) 0 0; font-size: var(--wa-t-ui); line-height: 1.55; color: var(--wa-ink-body); }

.speak-book-text { font-size: var(--wa-t-body); line-height: 1.6; color: var(--wa-ink-body); }
.speak-privacy { margin-top: var(--wa-s-4); font-size: var(--wa-t-ui); }
.speak-privacy a { display: inline-flex; align-items: center; min-height: 44px; }

@media (max-width: 900px) {
  .formats { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .format:nth-child(3) { padding-left: 0; border-left: 0; }
  .format:nth-child(n + 3) { border-top: 1px solid var(--wa-hairline); }
}
@media (max-width: 640px) {
  .speak-signature { font-size: var(--wa-t-4); }
  .speak h2.fig-title { font-size: var(--wa-t-4); }
  .talk { grid-template-columns: 2rem minmax(0, 1fr); gap: var(--wa-s-2); padding: var(--wa-s-4) 0; }
  .talk-title { font-size: var(--wa-t-body); }
  .talk-desc { font-size: var(--wa-t-ui); }
  .formats { grid-template-columns: minmax(0, 1fr); }
  .format, .format + .format { padding: var(--wa-s-3) 0; border-left: 0; }
  .format + .format { border-top: 1px solid var(--wa-hairline); }
}

/* ---------------------------------------------------------------- Privacy */
.privacy + .privacy { margin-top: var(--wa-s-5); }
.privacy-list { margin: var(--wa-s-4) 0 0; border-top: 1px solid var(--wa-rule); }
.privacy-row {
  display: grid; grid-template-columns: minmax(0, 14rem) minmax(0, 1fr); gap: var(--wa-s-1) var(--wa-s-5);
  padding: var(--wa-s-4) 0; border-bottom: 1px solid var(--wa-hairline);
}
.privacy-row dt { font-size: var(--wa-t-ui); font-weight: 600; color: var(--wa-ink); }
.privacy-row dd { margin: 0; max-width: 38rem; font-family: var(--wa-font-read); font-size: var(--wa-t-body); line-height: 1.6; color: var(--wa-ink-body); }
@media (max-width: 640px) {
  .privacy-row { grid-template-columns: minmax(0, 1fr); padding: var(--wa-s-3) 0; }
}
