:root {
  --paper:#fbfaf6; --ink:#202d29; --muted:#52625b; --line:#cbd5ce;
  --accent:#24594d; --wash:#edf3ed; --panel:#fffefa; --focus:#98601d;
  --font:system-ui,-apple-system,"PingFang SC","Microsoft YaHei",sans-serif;
  color-scheme:light;
}
* { box-sizing:border-box }
body { margin:0; color:var(--ink); background:var(--paper); font:16px/1.6 var(--font) }
a { color:var(--accent); text-underline-offset:.2em; text-decoration-thickness:1px }
a:hover { text-decoration-thickness:2px }
button,input,select { font:inherit; color:inherit }
button,a,input,select,summary { touch-action:manipulation }
button { cursor:pointer }
button:disabled { cursor:default; opacity:.55 }
:focus-visible { outline:3px solid var(--focus); outline-offset:4px }
[hidden] { display:none!important }
.skip { position:absolute; left:1rem; top:0; max-width:calc(100% - 2rem); transform:translateY(calc(-100% - .75rem)); z-index:8; padding:.65rem 1rem; background:var(--panel) }
.skip:focus { top:.4rem; transform:none }
.top { border-top:3px solid var(--accent); border-bottom:1px solid var(--line); padding:.6rem max(1.25rem,calc((100vw - 1160px)/2)); display:flex; align-items:center; justify-content:space-between; gap:.3rem 1rem; flex-wrap:wrap }
.top a { text-decoration:none; font-size:.88rem }
.brand { font-family:Georgia,"Songti SC",serif; font-weight:700; letter-spacing:.03em }
.top nav { display:flex; align-items:center; gap:1.15rem; flex-wrap:wrap }
.top nav a,.top button { display:inline-flex; align-items:center; min-height:40px }
.top button { font-size:.88rem; border:0; background:none; text-decoration:underline; color:var(--accent); padding:.3rem }
main { max-width:1200px; margin:auto; padding:clamp(1.3rem,3vw,2.4rem) 1.25rem 3.5rem }
h1 { font:clamp(2rem,3.7vw,3.15rem)/1.14 Georgia,"Songti SC",serif; font-weight:400; letter-spacing:-.025em; max-width:100%; margin:.15rem 0 .8rem; overflow-wrap:break-word }
h2 { font:1.5rem/1.3 Georgia,"Songti SC",serif; margin:0 0 .85rem }
h3 { font-size:1rem; margin:.2rem 0 }
.lede { color:var(--muted); max-width:68ch; margin:0 0 1.3rem }
.tabs { display:flex; gap:1.6rem; flex-wrap:wrap; border-bottom:1px solid var(--line); margin:.8rem 0 1.7rem }
.tabs a { color:var(--muted); text-decoration:none; padding:.65rem .1rem; min-height:44px; border-bottom:3px solid transparent }
.tabs a:hover { color:var(--accent) }
.tabs a[aria-current=page] { color:var(--accent); border-color:var(--accent); font-weight:600 }
.searchbox { background:var(--panel); border:1px solid var(--line); border-top:3px solid var(--accent); padding:1.25rem 1.4rem }
.searchbox>label { font-weight:600; font-size:1.04rem }
.queryrow { display:flex; gap:.65rem; margin:.6rem 0 1rem }
.queryrow input { flex:1; min-width:0; font-size:1.12rem; padding:.7rem .8rem; border:1px solid #7d9184; background:var(--panel); border-radius:2px }
.primary { padding:.65rem 1.2rem; background:var(--accent); border:1px solid var(--accent); color:#fff; border-radius:2px; min-height:44px }
.primary:hover { background:#193f36 }
.secondary { padding:.5rem .85rem; border:1px solid #718679; background:var(--panel); border-radius:2px; color:var(--accent); min-height:44px }
.secondary:hover { background:var(--wash) }
.text-action { border:0; background:none; text-decoration:underline; text-underline-offset:.2em; color:var(--accent); padding:.5rem .2rem; min-height:44px; font-size:.88rem }
.filters { display:flex; flex-wrap:wrap; gap:.8rem 1.25rem }
.filters label { min-width:0; max-width:100%; font-size:.88rem; display:flex; gap:.35rem; flex-wrap:wrap; align-items:center }
.filters select,.filters input,.date-inputs input { border:1px solid #718679; background:var(--panel); padding:.5rem; max-width:100%; min-height:44px; border-radius:2px }
.query-filters { display:grid; grid-template-columns:minmax(0,1.15fr) minmax(0,1.2fr) minmax(0,.7fr); gap:1rem }
.query-filters label { display:flex; flex-direction:column; align-items:stretch; gap:.35rem }
.query-filters select { min-width:0; width:100%; font-size:.88rem }
.date-range { padding:0; border:0; min-width:0; margin:.9rem 0 .7rem }
.date-range legend { padding:0; font-size:.88rem; margin-bottom:.4rem }
.optional { color:var(--muted); font-weight:400 }
.date-inputs { display:flex; align-items:center; flex-wrap:wrap; gap:.5rem 1rem }
.date-inputs label { display:flex; align-items:center; gap:.5rem; font-size:.88rem }
.date-inputs input { width:7rem; min-width:0 }
.date-inputs .note { flex:1; min-width:15rem; margin:0 }
.note { font-size:.88rem; color:var(--muted); max-width:90ch }
#query-help { margin:.7rem 0 }
.examples { display:flex; flex-wrap:wrap; gap:.2rem 1rem; margin-top:.6rem }
.examples button { background:none; border:0; text-decoration:underline; text-underline-offset:.2em; color:var(--accent); padding:.4rem .1rem; min-height:40px; font-size:.88rem }
.scope { margin-top:1rem }
.scope summary { font-size:.9rem; color:var(--accent); cursor:pointer; padding:.4rem .1rem; min-height:40px }
.scope summary:hover { text-decoration:underline }
.search-help { border-top:1px solid var(--line); padding-top:.3rem; margin-top:.6rem }
.corpus-choices { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:.4rem 1rem; margin:.7rem 0 }
.corpus-choices label { font-size:.9rem }
.status { min-height:1.5em; margin:1rem 0 .4rem; color:var(--muted); font-size:.9rem; max-width:95ch }
.status:empty { min-height:0; margin:.6rem 0 }
.filter-summary-row { display:flex; align-items:center; flex-wrap:wrap; gap:.2rem 1rem }
.active-filters { font-size:.88rem; color:var(--muted); margin:.4rem 0; overflow-wrap:anywhere }
.results-heading { font-size:1.5rem; margin:.9rem 0 .7rem; scroll-margin-top:1rem }
.results-top { display:flex; gap:.7rem 1rem; align-items:center; flex-wrap:wrap; border-bottom:1px solid var(--line); padding:0 0 .9rem; margin-bottom:.3rem; font-size:.9rem }
.results-top a { display:inline-flex; align-items:center; min-height:44px }
.result { border-bottom:1px solid var(--line); padding:1.25rem 0; max-width:100% }
.result h3 a { font-family:Georgia,"Songti SC",serif; text-decoration:none; font-size:1.25rem; line-height:1.4 }
.result h3 a:hover { text-decoration:underline }
.result .meta { font-size:.85rem; color:var(--muted); margin:.45rem 0; overflow-wrap:anywhere }
.transcription { font-family:"New Athena Unicode","Iowan Old Style",Georgia,"Songti SC",serif; font-size:1.13rem; line-height:1.85; white-space:pre-wrap; overflow-wrap:anywhere; max-height:26rem; overflow:auto; background:var(--wash); padding:1rem 1.1rem; border-left:3px solid #90ad9f; max-width:100% }
.result details { margin:.65rem 0 }
.result summary { color:var(--accent); font-size:.9rem; cursor:pointer; padding:.35rem .1rem; min-height:36px }
.record-details { font-size:.88rem; margin:.6rem 0; overflow-wrap:anywhere; max-width:90ch }
.record-details dt { font-weight:600 }
.record-details dd { margin:0 0 .6rem }
.hash { font-family:ui-monospace,monospace; font-size:.78rem; overflow-wrap:anywhere }
.result nav { display:flex; gap:.5rem 1.2rem; flex-wrap:wrap; font-size:.88rem }
.result nav a { display:inline-flex; align-items:center; min-height:36px }
.directory-controls { display:grid; grid-template-columns:minmax(0,1.8fr) repeat(2,minmax(0,1fr)); gap:1rem; margin:1rem 0 .3rem; padding:1.15rem; background:var(--panel); border:1px solid var(--line); border-top:3px solid var(--accent) }
.directory-controls label { display:flex; flex-direction:column; gap:.4rem; min-width:0; font-size:.88rem }
.directory-controls input,.directory-controls select { width:100%; min-width:0; max-width:100%; padding:.6rem; border:1px solid #718679; border-radius:2px; background:var(--panel); min-height:44px }
.resource { display:grid; grid-template-columns:minmax(0,1fr) 10rem; gap:1rem; border-bottom:1px solid var(--line); padding:1rem 0 }
.resource a { font-weight:600; overflow-wrap:anywhere }
.resource p { font-size:.9rem; color:var(--muted); margin:.4rem 0; max-width:85ch }
.resource small { font-size:.82rem; color:var(--muted) }
.routes { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:1.6rem; margin:2rem 0 0 }
.routes section { border-top:2px solid var(--accent); padding-top:1rem }
.routes p { font-size:.9rem; color:var(--muted) }
.routes ul { list-style:none; padding:0; margin:.7rem 0 }
.routes li a { display:inline-flex; align-items:center; min-height:40px; font-size:.94rem }
.table-wrap { overflow:auto; margin:1.2rem 0; max-width:100% }
table { border-collapse:collapse; font-size:.88rem; width:100% }
th,td { text-align:left; vertical-align:top; padding:.8rem; border-bottom:1px solid var(--line) }
th { font-weight:600; white-space:nowrap; background:var(--wash) }
code { font-size:.85em; overflow-wrap:anywhere }
pre { padding:1rem; background:var(--wash); overflow:auto; font-size:.86rem; max-width:100% }
.method-copy { max-width:78ch }
.method-copy p { margin:1rem 0 }
.method-copy h3 { margin-top:1.6rem }
.pager { display:flex; gap:1rem; margin:1.4rem 0; align-items:center; flex-wrap:wrap }
#page-label { font-size:.88rem; color:var(--muted) }
.error { color:#7b301a; background:#fff1e9; padding:.8rem 1rem; border-left:3px solid #87341b; overflow-wrap:anywhere }
.footer { border-top:1px solid var(--line); padding:1rem 1.25rem; color:var(--muted); font-size:.83rem; max-width:1200px; margin:auto; display:flex; gap:.3rem 1.1rem; flex-wrap:wrap }
.footer a { display:inline-flex; align-items:center; min-height:36px }
.section-head { display:flex; justify-content:space-between; gap:1rem; flex-wrap:wrap }
.collection-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(min(100%,260px),1fr)); gap:0 1.4rem; margin:1rem 0 2rem }
.collection-card { padding:1.15rem 0; border-bottom:1px solid var(--line) }
.collection-card h3 { margin:0 0 .5rem; font-family:Georgia,"Songti SC",serif; font-size:1.16rem; font-weight:400 }
.collection-card h3 a { text-decoration:none; display:inline-flex; align-items:center; min-height:36px }
.collection-card h3 a:hover { text-decoration:underline }
.collection-card p { font-size:.9rem; color:var(--muted); margin:0; max-width:50ch }
.world-crumb { font-size:.88rem; margin:0 0 .8rem }
.collection-section { margin:2rem 0 }
.collection-section h2 { font-size:1.35rem }
.resource-list { padding:0; list-style:none; max-width:95ch }
.resource-list li { padding:.8rem 0; border-bottom:1px solid var(--line) }
.resource-role { display:block; font-size:.85rem; color:var(--muted); margin-top:.2rem }
.resource-context-link { display:inline-flex; align-items:center; min-height:32px; font-size:.82rem; margin-top:.25rem }
.evidence-scope { border-left:3px solid #90ad9f; padding-left:1rem; max-width:85ch }
.resource-item { scroll-margin-top:1rem }
.resource-context { display:none; font-size:.9rem; margin-top:.8rem; max-width:76ch }
.resource-item:target { background:var(--wash); border-left:3px solid var(--accent); padding:1rem }
.resource-item:target>.resource-context { display:block }
.resource-context dl { display:grid; grid-template-columns:max-content minmax(0,1fr); gap:.2rem 1rem }
.resource-context dt { font-weight:600 }
.resource-context dd { margin:0; overflow-wrap:anywhere }
.resource-context nav ul { padding-left:1.2rem }
.resource-context nav li { border:0; padding:.2rem 0 }
.lang-zh { display:none }
html[data-epigraphy-lang=zh] .lang-en { display:none }
html[data-epigraphy-lang=zh] .lang-zh { display:initial }
html[data-epigraphy-lang=zh] h1 { font-family:"Songti SC",serif; font-size:clamp(1.8rem,3.7vw,2.9rem) }
@media(max-width:700px) {
  .query-filters { grid-template-columns:repeat(2,minmax(0,1fr)); gap:.8rem }
  .query-filters label:first-child { grid-column:1/-1 }
  .directory-controls { grid-template-columns:repeat(2,minmax(0,1fr)); gap:.8rem }
  .directory-search { grid-column:1/-1 }
  .routes { gap:1.1rem }
}
@media(max-width:480px) {
  main { padding:1.25rem 1rem 2.5rem }
  .top { padding:.35rem 1rem }
  .top nav { gap:.85rem }
  .tabs { gap:0 1rem; font-size:.88rem; margin:.7rem 0 1.25rem }
  .tabs a { padding:.6rem .05rem }
  .queryrow { flex-wrap:wrap }
  .queryrow input { flex-basis:100% }
  .queryrow button { flex:1 }
  .searchbox { padding:.9rem }
  .query-filters { grid-template-columns:1fr; gap:.65rem }
  .query-filters label:first-child { grid-column:auto }
  .date-inputs { gap:.5rem }
  .date-inputs label { flex:1; min-width:0; flex-direction:column; align-items:stretch; gap:.3rem }
  .date-inputs input { width:100% }
  .date-inputs .note { flex-basis:100%; min-width:0; font-size:.82rem }
  .directory-controls { grid-template-columns:1fr; padding:.9rem }
  .directory-search { grid-column:auto }
  .routes { grid-template-columns:1fr; gap:1.2rem }
  .resource { grid-template-columns:1fr; gap:.3rem }
  .transcription { font-size:1.05rem; padding:.8rem }
  .corpus-choices { grid-template-columns:1fr }
  .resource-context dl { grid-template-columns:1fr; gap:.15rem }
  .resource-context dd { margin-bottom:.5rem }
}
@media(prefers-reduced-motion:reduce) { *,*::before,*::after { scroll-behavior:auto!important; animation:none!important; transition:none!important } }
@media(forced-colors:active) {
  .primary,.secondary,.searchbox,.directory-controls,input,select,.transcription { border:1px solid ButtonText }
  .tabs a[aria-current=page],.resource-item:target { outline:2px solid Highlight; outline-offset:-2px }
  :focus-visible { outline-color:Highlight }
}
@media print {
  .top,.tabs,form,.examples,.pager,.results-top button,.footer,.filter-summary-row,.directory-controls,.resource-context-link { display:none }
  .transcription { max-height:none; overflow:visible; break-inside:avoid }
  .resource-context { display:block }
  main { max-width:none; padding:0 }
  body { background:#fff; color:#000 }
  .result { break-inside:avoid }
}

.collection-grid-heading{grid-column:1/-1;font-size:1.3rem;margin:.6rem 0 0}
