@font-face { font-family: 'Source Serif 4'; font-style: normal; font-weight: 500; font-display: swap; src: url('./fonts/source-serif-4-latin-500-normal.b8354e91d3f1f81f2276cbb5b8a1cfb20b1a23fdf1eb9e5ab11e0802ec740b54.woff2') format('woff2'); }
@font-face { font-family: 'Source Sans 3'; font-style: normal; font-weight: 400; font-display: swap; src: url('./fonts/source-sans-3-latin-400-normal.0f73f35e08cde0a2f10c109c6e01d71459d97e4099ecd9a50f1b6c0209e4de2b.woff2') format('woff2'); }
@font-face { font-family: 'Source Sans 3'; font-style: normal; font-weight: 500; font-display: swap; src: url('./fonts/source-sans-3-latin-500-normal.3b3a8b8e4a422ff71c9ffb0836a4d48ff337a4419b878214f65d6ebe0f59fa51.woff2') format('woff2'); }
@font-face { font-family: 'IBM Plex Mono'; font-style: normal; font-weight: 400; font-display: swap; src: url('./fonts/ibm-plex-mono-latin-400-normal.08949f728dc52d528e69b1667d15c89a5686a4ee9a296ff90983985f99c380f7.woff2') format('woff2'); }
:root { color-scheme: light; --background: #faf9f5; --text: #252723; --secondary: #565b54; --group: #f3f2ec; --separator: #d7d9d1; --boundary: #787c72; --link: #185b75; --focus: #154f67; --error: #a32e22; font-family: 'Source Sans 3', system-ui, sans-serif; font-size: 100%; line-height: 1.5; }
* { box-sizing: border-box; }
[hidden] { display: none !important; }
body { margin: 0; background: var(--background); color: var(--text); }
body, input, select, button { font-family: 'Source Sans 3', system-ui, sans-serif; }
a { color: var(--link); text-underline-offset: .18em; }
a:hover { text-decoration-thickness: .12em; }
:focus-visible { outline: 3px solid var(--focus); outline-offset: 4px; }
h1, h2, h3, .wordmark { font-family: 'Source Serif 4', Georgia, serif; font-weight: 500; line-height: 1.3; }
h1 { font-size: 1.625rem; margin: 0 0 .75rem; }
h2 { font-size: 1.25rem; margin: 0 0 .75rem; }
h3 { font-size: 1.125rem; margin: 0 0 .75rem; }
h4 { font-size: 1rem; font-weight: 500; margin: 0 0 .5rem; }
p { margin: 0 0 .75rem; }
strong, dt, legend { font-weight: 500; }
code, .literal { font-family: 'IBM Plex Mono', ui-monospace, monospace; font-size: .875rem; font-variant-ligatures: none; overflow-wrap: anywhere; }
ul, ol { padding-inline-start: 1.4rem; margin: .5rem 0 1rem; }
li + li { margin-top: .5rem; }
.shell { max-width: 75rem; margin: 0 auto; padding-inline: 1.5rem; }
.site-header { display: flex; flex-wrap: wrap; align-items: center; gap: 1rem 2rem; padding-block: 1.5rem; border-bottom: 1px solid var(--separator); }
.wordmark { color: var(--text); text-decoration: none; font-size: 1.625rem; overflow-wrap: anywhere; }
.wordmark span { color: var(--link); }
.site-nav { display: flex; flex-wrap: wrap; align-items: center; gap: .75rem 1.5rem; }
.site-nav a { min-height: 2rem; display: inline-flex; align-items: center; }
main { padding-block: 2rem; overflow-wrap: anywhere; }
.skip-link { position: absolute; top: -8rem; left: 1rem; padding: .75rem; background: var(--background); z-index: 1; }
.skip-link:focus { top: 1rem; }
.intro, .prose { max-width: 72ch; }
.muted, .meta { color: var(--secondary); }
.meta { font-size: .875rem; }
.filters { border-block: 1px solid var(--separator); padding-block: 1.5rem; margin-block: 1.5rem; }
.filter-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1.5rem; }
fieldset { min-width: 0; border: 0; padding: 0; margin: 0; }
legend { padding: 0 0 .5rem; }
.checkbox { display: flex; gap: .625rem; align-items: flex-start; padding-block: .25rem; min-height: 2rem; cursor: pointer; }
input[type='checkbox'] { flex: 0 0 auto; width: 1rem; height: 1rem; margin: .25rem 0; accent-color: var(--link); }
button, select { color: var(--text); background: var(--background); border: 1px solid var(--boundary); border-radius: 0; min-height: 2rem; font-size: 1rem; padding: .375rem .75rem; }
button { cursor: pointer; font-weight: 500; }
button:hover { background: var(--group); }
.filter-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 1rem; margin-top: 1rem; }
summary { cursor: pointer; min-height: 2rem; }
details > :not(summary) { margin-top: .75rem; }
.state { padding: 1rem; background: var(--group); margin-block: 1rem 1.5rem; }
.error { border-inline-start: 3px solid var(--error); }
.error h2 { color: var(--error); }
.error:focus { outline: 3px solid var(--focus); outline-offset: 4px; }
.field-error { color: var(--error); margin-block: .5rem 0; }
.invalid-option { border-inline-start: 3px solid var(--error); padding-inline-start: .5rem; }
.selection-summary { margin-bottom: 1.5rem; }
.column-headings, .witness { display: grid; grid-template-columns: minmax(0, 1.7fr) minmax(0, 1fr) minmax(0, 1fr); gap: 1.5rem; }
.column-headings { padding-block: .5rem; color: var(--secondary); font-size: .875rem; border-bottom: 1px solid var(--separator); }
.resource-row { border-bottom: 1px solid var(--separator); padding-block: 1.25rem; }
.resource-heading { max-width: 72ch; }
.resource-heading h2 a { text-decoration: none; }
.resource-heading h2 a:hover, .resource-heading h2 a:focus-visible { text-decoration: underline; }
.witness { padding-top: 1rem; margin-top: 1rem; border-top: 1px solid var(--separator); }
.witness > *, .detail-layout > *, .route > * { min-width: 0; }
.cell-label { display: block; color: var(--secondary); font-size: .875rem; margin-bottom: .5rem; }
.endpoint-control { display: flex; flex-wrap: wrap; align-items: center; gap: .5rem .75rem; margin-block: .5rem .75rem; min-width: 0; }
.endpoint { display: block; flex: 1 1 18rem; min-width: 0; background: var(--group); padding: .5rem .75rem; user-select: text; overflow-wrap: anywhere; }
.copy-status:not(:empty) { flex-basis: 100%; }
.detail-layout { display: grid; grid-template-columns: minmax(0, 1fr); gap: 2rem; }
.identity { overflow-wrap: anywhere; }
dl { margin: 0 0 1rem; }
dt { margin-top: .75rem; }
dd { margin: .25rem 0 0; }
.action, .route, .evidence-section, .about-section { padding-top: 1.5rem; margin-top: 1.5rem; border-top: 1px solid var(--separator); }
.action:first-child { margin-top: 0; }
.profile { margin-top: 1rem; padding-inline-start: 1rem; border-inline-start: 1px solid var(--separator); }
.profile:target, .route:target, .action:target, .observation:target, .source:target { outline: 3px solid var(--focus); outline-offset: 4px; }
.source, .observation { margin-block: 1rem; overflow-wrap: anywhere; }
.citation-list { display: flex; flex-wrap: wrap; gap: .375rem .75rem; list-style: none; padding: 0; font-size: .875rem; }
.citation-list li + li { margin-top: 0; }
.category-links { display: flex; flex-wrap: wrap; gap: .5rem 1rem; }
.site-footer { border-top: 1px solid var(--separator); padding-block: 1.5rem 2rem; color: var(--secondary); font-size: .875rem; }
.site-footer dl { display: grid; grid-template-columns: max-content minmax(0, 1fr); gap: .375rem 1rem; }
.site-footer dt, .site-footer dd { margin: 0; }
.site-footer nav { display: flex; flex-wrap: wrap; gap: .75rem 1.5rem; margin-bottom: 1rem; }
@media (min-width: 64rem) { .detail-layout { grid-template-columns: minmax(0, 1fr) minmax(0, 2.4fr); gap: 2.5rem; } }
@media (max-width: 51.99rem) { .column-headings { display: none; } .filter-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 35rem) { .shell { padding-inline: 1rem; } .site-header { gap: 1rem; } .site-nav { gap: .5rem 1rem; } .filter-grid { grid-template-columns: minmax(0, 1fr); } main { padding-block: 1.5rem; } .site-footer dl { display: block; } .site-footer dt { margin-top: .75rem; } }
@media (pointer: coarse) { button, select, summary, .checkbox, .site-nav a, .filter-actions a { min-height: 2.75rem; } .checkbox { align-items: center; } }

/* Editorial catalogue and decision-first detail layout. */
html { scroll-padding-top: 1rem; }
.shell { max-width: 84rem; padding-inline: clamp(1rem, 3vw, 2rem); }
.site-header { justify-content: space-between; gap: .25rem 2rem; padding-block: 1rem .85rem; }
.wordmark { white-space: nowrap; }
.site-nav { font-size: .9375rem; }
main { padding-block: 1.4rem 3rem; }
h1, h2, h3, .wordmark { line-height: 1.2; }
h1 { font-size: clamp(1.9rem, 3.2vw, 2.45rem); margin-bottom: .45rem; }
h2 { font-size: 1.45rem; margin-bottom: .45rem; }
h3 { font-size: 1.2rem; margin-bottom: .4rem; }
p { margin-bottom: .65rem; }
.eyebrow, .cell-label { display: block; color: var(--secondary); font-size: .76rem; font-weight: 500; letter-spacing: .065em; text-transform: uppercase; }
.eyebrow { margin-bottom: .35rem; }
.catalogue-intro { max-width: 76ch; margin-bottom: 1.2rem; }
.catalogue-intro .intro { margin-bottom: 0; font-size: 1.075rem; }
.selection-summary { margin-bottom: .65rem; scroll-margin-top: 1rem; }
.selection-summary h2 { margin: 0 0 .2rem; font-size: 1.5rem; }
.selection-summary p { margin-bottom: .3rem; }
.active-filters { display: flex; flex-wrap: wrap; gap: .2rem .65rem; }
.filter-panel { margin-bottom: 1rem; border-block: 1px solid var(--separator); }
.filter-panel > summary { padding: .65rem 0; color: var(--link); font-weight: 500; }
.filter-panel > summary::marker { color: var(--link); }
.filter-count { margin-inline-start: .4rem; color: var(--secondary); font-size: .875rem; font-weight: 400; }
.filter-panel .filters { border: 0; margin: 0; padding: .35rem 0 1rem; }
.filter-grid { gap: 1rem 1.5rem; }
legend { padding-bottom: .35rem; }
.checkbox { padding-block: .2rem; }
.filter-actions { margin-top: .75rem; }
.state { padding: .8rem 1rem; margin-block: .7rem 1.2rem; }
.state > :last-child { margin-bottom: 0; }
.resource-row { padding-block: 1.1rem 1.3rem; }
.resource-row:first-child { border-top: 1px solid var(--separator); }
.resource-heading { max-width: 80ch; }
.resource-heading h2 { font-size: 1.75rem; margin-bottom: .25rem; }
.resource-heading h2 a { color: var(--text); text-decoration: underline; text-decoration-color: var(--link); text-decoration-thickness: 1px; text-underline-offset: .15em; }
.resource-heading h2 a:hover, .resource-heading h2 a:focus-visible { color: var(--link); text-decoration-thickness: 2px; }
.resource-heading p { margin-bottom: .3rem; }
.witness { display: block; margin-top: .8rem; padding-top: .7rem; border-top: 1px solid var(--separator); }
.witness:first-of-type { margin-top: .55rem; }
.witness h3 { margin-bottom: .15rem; }
.route-meta { display: flex; flex-wrap: wrap; align-items: baseline; gap: .15rem .65rem; color: var(--secondary); font-size: .875rem; margin-bottom: .25rem; }
.category-links { gap: .2rem .7rem; font-size: .875rem; }
.decision-grid { display: grid; grid-template-columns: minmax(0, 1.5fr) repeat(2, minmax(0, 1fr)); gap: .5rem 1.35rem; margin-block: .65rem .35rem; }
.decision-grid > * { min-width: 0; overflow-wrap: anywhere; }
.decision-grid p { margin-bottom: .25rem; }
.decision-grid .cell-label { margin-bottom: .2rem; }
.decision-grid .meta { display: block; }
.fit-summary, .setup-summary, .evidence-summary { padding-inline-start: .8rem; border-inline-start: 2px solid var(--separator); }
.profile-fit + .profile-fit { margin-top: .4rem; }
.status { font-weight: 500; }
.status-conditional, .status-unknown, .status-inconclusive, .status-untested { color: var(--secondary); }
.status-failed { color: var(--error); }
.route-caveats, .resource-disclosure { margin-top: .45rem; }
.route-caveats > summary, .resource-disclosure > summary, .record-details > summary, .dataset-details > summary { color: var(--link); font-size: .9375rem; }
.route-caveats > :not(summary), .resource-disclosure > :not(summary) { max-width: 84ch; }
.route-caveats:not(details) { max-width: 84ch; margin-block: .65rem; padding-inline-start: .8rem; border-inline-start: 2px solid var(--separator); }
.route-caveats:not(details) > :last-child { margin-bottom: 0; }
.route-link { margin: .45rem 0 0; font-weight: 500; }
.resource-intro { max-width: 82ch; margin-bottom: 1rem; }
.back-link { margin-bottom: .35rem; font-size: .9375rem; }
.action-index { display: flex; flex-wrap: wrap; gap: .25rem 1rem; padding-block: .5rem; border-block: 1px solid var(--separator); }
.resource-intro h1 { margin-top: .45rem; }
.resource-intro > :last-child { margin-bottom: 0; }
.detail-layout { display: block; }
.action, .evidence-section, .about-section { padding-top: 1.2rem; margin-top: 1.2rem; }
.action:first-child { margin-top: 0; }
.action > h2 { font-size: 1.55rem; }
.route { padding-top: .9rem; margin-top: .9rem; }
.route > h3 { font-size: 1.25rem; }
.route-overview { max-width: 76rem; }
.route-procedure { max-width: 84ch; padding-top: .85rem; margin-top: .85rem; border-top: 1px solid var(--separator); }
.route-procedure li + li { margin-top: .65rem; }
.endpoint { padding: .45rem .65rem; }
.profile { max-width: 84ch; margin-top: .85rem; padding-inline-start: .85rem; }
.profile:first-of-type { margin-top: .25rem; }
.profile-explanation > summary { color: var(--link); font-size: .875rem; }
.record-details { margin-top: 1.5rem; padding-block: .65rem; border-block: 1px solid var(--separator); }
.source, .observation { max-width: 84ch; margin-block: .8rem; }
.site-footer { padding-block: 1rem 2rem; }
.site-footer nav { gap: .3rem 1.25rem; margin-bottom: .75rem; }
.dataset-details { padding-top: .4rem; }
@media (min-width: 64rem) { .detail-layout { display: block; } }
@media (max-width: 55rem) { .decision-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } .fit-summary { grid-column: 1 / -1; } }
@media (max-width: 38rem) {
  .site-header { padding-block: .7rem .6rem; }
  main { padding-block: .85rem 2.5rem; }
  .catalogue-intro { margin-bottom: .75rem; }
  .catalogue-intro h1 { margin-bottom: .3rem; }
  .catalogue-intro .intro { font-size: 1rem; line-height: 1.4; }
  .selection-summary { margin-bottom: .35rem; }
  .filter-panel { margin-bottom: .6rem; }
  .resource-row { padding-block: .75rem 1rem; }
  .resource-heading h2 { font-size: 1.55rem; }
  .resource-heading p { margin-bottom: .2rem; }
  .witness, .witness:first-of-type { margin-top: .55rem; padding-top: .55rem; }
  .decision-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .4rem .5rem; margin-block: .45rem .25rem; }
  .fit-summary { grid-column: 1 / -1; }
  .setup-summary, .evidence-summary { padding-inline-start: .5rem; }
}
