:root { color-scheme: light; --ink: #000; --muted: #555; --mono: 'Courier New', Courier, monospace; --serif: 'Times New Roman', Times, serif; }
* { box-sizing: border-box; }
html { scroll-padding-top: 16px; }
body { margin: 0; background: #fff; color: #000; font: 16px/1.3 var(--serif); }
::selection { background: #000; color: #fff; }
a { color: #000; text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: 2px; }
a:visited { color: #555; }
a:hover { background: #000; color: #fff; text-decoration: none; }
button, input, select { font: 12px/1.25 var(--mono); color: #000; border-radius: 0; }
button, summary, select { cursor: pointer; }
button { background: #eee; }
button:disabled { cursor: default; }
:focus-visible { outline: 2px dotted #000; outline-offset: 3px; }
[hidden] { display: none !important; }
.sr-only { position: absolute; width: 1px; height: 1px; padding: 0; border: 0; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }
.skip-link { position: fixed; top: -80px; left: 10px; padding: 10px; background: #000; color: #fff; z-index: 10; }
.skip-link:focus { top: 8px; }
.site { width: min(820px, calc(100% - 40px)); margin: 0 auto; padding-top: 24px; }
.masthead { text-align: center; border-bottom: 4px double #000; padding: 0 0 13px; }
.identity { display: inline-block; max-width: 100%; color: #000; vertical-align: top; }
.identity:hover { background: transparent; }
.identity img { display: block; width: 335px; max-width: 100%; height: auto; image-rendering: pixelated; }
.masthead-description { font-size: 16px; margin: 10px 0 9px; }
nav { display: flex; justify-content: center; flex-wrap: wrap; gap: 5px 17px; font-size: 14px; }
nav a { color: #000 !important; }
nav a:hover { color: #fff !important; }
nav a::before { content: '[ '; }
nav a::after { content: ' ]'; }
nav a[aria-current] { font-weight: bold; }
.index-tools { margin-top: 12px; padding: 10px; border: 1px solid #999; background: #f3f3f3; }
#search-form { display: flex; gap: 20px; align-items: center; }
.search-wrap { display: flex; gap: 7px; align-items: center; flex: 1; min-width: 0; }
#search-form label { font: 12px var(--mono); }
input[type=search] { min-width: 0; width: 100%; flex: 1; height: 28px; padding: 3px 7px; background: #fff; border: 2px inset #ccc; appearance: none; }
input::placeholder { color: #666; opacity: 1; }
.search-submit { padding: 3px 11px; min-height: 28px; border: 2px outset #ddd; }
.search-submit:active { border-style: inset; }
.lab-select { display: flex; gap: 7px; align-items: center; }
select { height: 28px; max-width: 180px; min-width: 151px; background: #fff; border: 2px inset #ccc; padding: 1px 3px; }
.filter-line { display: flex; align-items: baseline; flex-wrap: wrap; gap: 2px 7px; margin-top: 7px; }
.browse-label { font: 12px var(--mono); margin-right: 2px; }
.filters { display: flex; gap: 3px 8px; flex-wrap: wrap; }
.filters button { border: 0; padding: 3px 0; background: transparent; font: 12px/1.5 var(--serif); text-decoration: underline; text-underline-offset: 2px; }
.filters button::before { content: '[ '; }
.filters button::after { content: ' ]'; }
.filters button span { font-size: 11px; }
.filters button[aria-pressed=true] { font-weight: bold; text-decoration: none; }
.filters button:hover { background: #000; color: #fff; }
.reset { margin-left: auto; padding: 3px 0; border: 0; background: none; font: 11px/1.5 var(--serif); text-decoration: underline; }
.list-caption { display: flex; justify-content: space-between; gap: 10px; font-size: 12px; padding: 12px 0 9px; }
.year-section { margin-bottom: 16px; }
.year-heading { font-size: 14px; margin: 0 0 3px; background: #ececec; border: 1px solid #999; padding: 3px 7px; display: flex; justify-content: space-between; align-items: baseline; }
.year-count { font: 10px var(--mono); font-weight: normal; }
.entry { display: grid; grid-template-columns: 92px minmax(0, 1fr); column-gap: 12px; padding: 10px 7px; border-bottom: 1px dotted #bbb; scroll-margin-top: 18px; }
.entry:last-child { border-bottom: 0; }
.entry:target { outline: 1px dotted #000; background: #f3f3f3; }
.entry-date { padding-top: 2px; font: 11px/1.5 var(--mono); white-space: nowrap; }
.entry h3 { font: normal 17px/1.25 var(--serif); margin: 0 0 4px; }
.headline:visited { color: #555; }
.entry-meta { display: flex; flex-wrap: wrap; align-items: baseline; gap: 3px 9px; font-size: 12px; line-height: 1.4; }
.setting { font-style: italic; color: #333; }
.setting::before { content: '['; }
.setting::after { content: ']'; }
.setting-real-world { font-style: normal; font-weight: bold; color: #000; }
.lab-names { color: #555; }
.entry-bottom { position: relative; font-size: 11px; line-height: 1.4; color: #555; margin-top: 3px; }
.source { display: block; padding-right: 89px; }
.domain { font-size: 10px; }
.context summary { position: absolute; top: -4px; right: 0; padding: 4px 0 4px 7px; min-height: 23px; list-style: none; color: #000; text-decoration: underline; text-underline-offset: 2px; font: 11px/1.4 var(--serif); }
.context summary::-webkit-details-marker { display: none; }
.context summary::before { content: '[ '; }
.context summary::after { content: ' ]'; }
.context summary:hover { background: #000; color: #fff; }
.context-close, .context[open] .context-open { display: none; }
.context[open] .context-close { display: inline; }
.context-note { font-size: 14px; line-height: 1.45; color: #111; padding: 10px 12px 9px; margin-top: 9px; border: 1px solid #aaa; background: #f6f6f6; }
.context-note p { margin: 0 0 9px; }
.context-note .qualification { color: #444; }
.context-note dl { display: grid; grid-template-columns: 68px 1fr; gap: 4px 10px; margin: 10px 0; font-size: 12px; }
.context-note dt { font-weight: bold; }
.context-note dd { margin: 0; }
.note-links { display: flex; gap: 8px 18px; flex-wrap: wrap; font-size: 12px; }
.related { margin: 9px 0; padding-left: 17px; font-size: 12px; }
#empty-state { border: 1px solid #aaa; margin: 0 0 20px; padding: 20px; }
#empty-state h2 { font-size: 20px; margin: 0 0 8px; }
#empty-state p { margin: 0 0 10px; }
.reset-link { padding: 4px 10px; border: 2px outset #ddd; }
.index-end { text-align: center; margin: 14px 0 23px; font-size: 13px; }
.index-end p { margin: 0; }
.button-link, .form-submit { display: inline-block; border: 2px outset #ddd; background: #eee; padding: 7px 13px; color: #000; font: 12px/1.3 var(--mono); text-decoration: none; }
.button-link { margin-top: 8px; }
.button-link:visited { color: #000; }
.button-link:hover { background: #ddd; color: #000; }
.button-link:active, .form-submit:active { border-style: inset; }
.form-submit:disabled { opacity: .6; }
.submission { max-width: 560px; margin: 26px auto 40px; }
.submission h1 { font-size: 26px; margin: 0 0 10px; }
.submission > p { margin: 0 0 24px; }
.form-field { margin: 0 0 20px; }
.form-field label { display: block; font-weight: bold; margin-bottom: 6px; }
.form-field label span { font-size: 13px; font-weight: normal; color: #555; }
.form-field input, .form-field textarea { display: block; width: 100%; border: 2px inset #ccc; border-radius: 0; background: #fff; color: #000; padding: 8px; font: 14px/1.4 var(--mono); }
.form-field textarea { resize: vertical; min-height: 130px; }
.form-field small { display: block; margin-top: 5px; color: #555; font-size: 13px; }
.form-note { font-size: 13px; color: #555; margin-top: 13px; }
.form-trap { position: absolute; left: -10000px; width: 1px; height: 1px; overflow: hidden; }
#submission-status { border: 1px solid #999; background: #f3f3f3; padding: 12px; margin: 18px 0; line-height: 1.5; overflow-wrap: anywhere; }
footer { text-align: center; border-top: 4px double #000; padding: 17px 0 24px; font-size: 12px; }
footer p { margin: 8px 0; }
footer > div { display: flex; gap: 7px; justify-content: center; flex-wrap: wrap; }
.no-script { font-size: 13px; }
.about { max-width: 690px; margin: 20px auto 35px; }
.breadcrumb { font-size: 13px; }
.about h1 { font-size: 28px; margin: 20px 0 14px; }
.about h2 { font-size: 20px; margin: 25px 0 8px; }
.about p, .about li { line-height: 1.5; }
.about p { margin: 10px 0; }
.about .lede { font-weight: bold; }
.about .about-note { margin-top: 28px; font-size: 13px; color: #555; }
.about ul { padding-left: 24px; }
.about li { margin: 8px 0; }
.setting-definitions { border: 1px solid #999; background: #f3f3f3; padding: 14px; }
.setting-definitions dt { font-weight: bold; }
.setting-definitions dd { margin: 4px 0 14px 18px; line-height: 1.45; }
.setting-definitions dd:last-child { margin-bottom: 0; }
@media (max-width: 600px) {
  .form-field input, .form-field textarea { font-size: 16px; }
  .form-submit, .button-link { min-height: 40px; padding: 10px 14px; }
  .site { width: calc(100% - 24px); padding-top: 17px; }
  .identity { width: min(100%, 268px); }
  .masthead { padding-bottom: 11px; }
  .masthead-description { font-size: 14px; margin: 8px 0; }
  nav { font-size: 13px; gap: 4px 13px; }
  .index-tools { padding: 8px; }
  #search-form { flex-wrap: wrap; gap: 8px; }
  .search-wrap { flex-basis: 100%; gap: 7px; }
  input[type=search], select { font-size: 16px; height: 32px; }
  input::placeholder { font-size: 12px; }
  .search-submit { min-height: 32px; padding: 4px 9px; }
  .lab-select { flex-basis: 100%; }
  select { min-width: 0; flex: 1; max-width: 100%; }
  #search-form label { width: 46px; flex-shrink: 0; }
  .filter-line { margin-top: 6px; gap: 2px 5px; }
  .browse-label { width: 45px; }
  .filters { gap: 1px 9px; flex: 1; }
  .filters button { font-size: 12px; padding: 5px 0; }
  .reset { min-height: 27px; }
  .list-caption { font-size: 11px; padding-top: 10px; }
  .entry { grid-template-columns: 1fr; gap: 3px; padding: 9px 5px 11px; }
  .entry-date { font-size: 10px; padding: 0; }
  .entry h3 { font-size: 17px; }
  .entry-meta { font-size: 11px; gap: 3px 7px; }
  .entry-bottom { font-size: 11px; }
  .source { padding-right: 85px; }
  .domain { display: none; }
  .context summary { top: -7px; padding-top: 7px; padding-bottom: 7px; }
  .context-note { padding: 8px; font-size: 14px; }
  .context-note dl { grid-template-columns: 57px 1fr; }
  .year-heading { font-size: 13px; }
  .index-end { margin-bottom: 18px; }
  footer { font-size: 11px; }
  .about { margin-top: 16px; font-size: 16px; }
  .about h1 { font-size: 25px; }
}
@media print {
  .index-tools, footer, .context summary, .list-caption, .index-end, nav { display: none; }
  .site { width: 100%; }
  .entry { break-inside: avoid; }
  .domain { display: inline; }
}
