:root{--navy:#253443;--cream:#f4f2ed;--link:#135f85;--paper:#fff;--muted:#666;--border:#d8d8d5;--focus:#f2a900}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;margin:0;background:var(--cream);color:#222;line-height:1.5}
header{padding:1.75rem max(5vw,1.25rem);background:var(--navy);color:#fff}
header h1{margin:0 0 .3rem;font-size:clamp(1.5rem,3.5vw,2.4rem)}
header p{margin:0;opacity:.85;font-size:.95rem}
header a{color:#fff;text-decoration:none}
a{color:var(--link)}
a:hover{text-decoration-thickness:2px}
:focus-visible{outline:3px solid var(--focus);outline-offset:3px}
.wrap{max-width:1100px;margin:0 auto;padding-left:max(3vw,1rem);padding-right:max(3vw,1rem)}
.search-panel{background:var(--paper);border:1px solid var(--border);border-radius:12px;margin:1.4rem 0 1rem;padding:1rem;box-shadow:0 2px 10px #0000000b}
.search-intro{display:flex;justify-content:space-between;gap:1rem;align-items:flex-start}
.search-intro h2{font-size:1.15rem;color:var(--navy);margin:0}
.search-intro p{margin:.2rem 0 0;color:var(--muted);font-size:.9rem}
.source-badge{white-space:nowrap;background:#e8eef2;border-radius:999px;padding:.3rem .65rem!important;color:var(--navy)!important;font-weight:650}
.controls{display:grid;grid-template-columns:minmax(240px,1fr) auto auto auto;gap:.75rem;align-items:end;padding:1rem 0 .55rem}
.controls label{display:grid;gap:.25rem;font-size:.78rem;color:var(--muted);font-weight:650}
.controls input[type=search],.controls select{width:100%;padding:.66rem .78rem;border:1px solid #bbb;border-radius:8px;background:#fff;color:#222;font:inherit;font-size:1rem}
.controls button{padding:.7rem .95rem;border:1px solid #b9c1c8;border-radius:8px;background:#eef1f3;color:var(--navy);font-weight:650;cursor:pointer}
.status{margin:0;color:var(--muted);font-size:.88rem}
.year-nav{display:flex;gap:.5rem;flex-wrap:wrap;padding:.2rem 0 1rem}
.year-nav a{background:#fff;border:1px solid #ddd;border-radius:6px;padding:.3rem .7rem;text-decoration:none;font-size:.9rem;color:var(--navy)}
h2.year{margin:1.5rem 0 .75rem;color:var(--navy);border-bottom:2px solid #ddd;padding-bottom:.25rem}
.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:1.1rem;padding-bottom:1rem}
article.card{background:#fff;border-radius:10px;padding:.9rem;box-shadow:0 2px 10px #0001}
.thumb{display:block;height:170px;overflow:hidden;border:1px solid #ddd;border-radius:6px;background:#fafafa}
.thumb img{display:block;width:100%;height:100%;object-fit:cover;object-position:top}
article.card h3{font-size:.98rem;line-height:1.3;margin:.6rem 0 .25rem}
article.card p{margin:0;color:#666;font-size:.85rem}
.search-results{display:grid;gap:.8rem;margin:0 0 1.25rem}
.result{background:#fff;border:1px solid var(--border);border-radius:10px;padding:1rem;box-shadow:0 2px 10px #0000000b}
.result h3{font-size:1.05rem;line-height:1.3;margin:0 0 .15rem}
.result-date{color:var(--muted);font-size:.82rem;margin:0 0 .55rem}
.result-excerpt{margin:.3rem 0 .7rem;color:#333}
.result-links{display:flex;gap:.8rem;flex-wrap:wrap;font-size:.86rem}
mark{background:#ffe49a;color:inherit;padding:0 .05em;border-radius:2px}
.empty-results{background:#fff;border:1px dashed #bbb;border-radius:10px;padding:1.25rem;color:var(--muted)}
.post-page h2{margin:.25rem 0;font-size:clamp(1.35rem,3vw,2rem);color:var(--navy)}
.post-meta{color:#666;margin:.25rem 0 1.25rem;font-size:.95rem}
.post-image{width:100%;border:1px solid #ddd;border-radius:8px;box-shadow:0 2px 14px #0002;margin-bottom:1rem}
.post-nav{display:flex;justify-content:space-between;align-items:center;gap:1rem;margin:1.5rem 0;flex-wrap:wrap}
.post-nav .navbtn{background:var(--navy);color:#fff;text-decoration:none;padding:.7rem 1.1rem;border-radius:8px;font-size:.95rem;max-width:46%}
.post-nav .disabled{background:#aeb4b9;color:#fff}
.post-links{display:flex;gap:.55rem;flex-wrap:wrap;margin:1rem 0}
.post-links a{background:#fff;border:1px solid #cad1d6;border-radius:7px;padding:.42rem .68rem;text-decoration:none;font-size:.88rem}
.transcript{background:#fff;border:1px solid var(--border);border-radius:10px;margin:1.25rem 0;scroll-margin-top:1rem}
.transcript summary{cursor:pointer;padding:.9rem 1rem;color:var(--navy);font-weight:700}
.transcript summary span{color:var(--muted);font-weight:400;font-size:.84rem;margin-left:.3rem}
.transcript-text{border-top:1px solid var(--border);padding:1rem;white-space:pre-wrap;line-height:1.65;font-family:Georgia,'Times New Roman',serif}
.provenance{margin-top:2rem;padding-top:1rem;border-top:1px solid #ddd;color:#777;font-size:.85rem;overflow-wrap:anywhere}
.back{display:inline-block;margin:1rem 0;font-size:.9rem}
footer{text-align:center;color:#888;font-size:.85rem;padding:2rem 1rem}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
[hidden]{display:none!important}
@media(max-width:760px){.controls{grid-template-columns:1fr 1fr}.search-field{grid-column:1/-1}.controls button{align-self:end}.source-badge{display:none}.post-nav .navbtn{max-width:100%;width:100%}}
@media(max-width:440px){.controls{grid-template-columns:1fr}.search-field{grid-column:auto}.grid{grid-template-columns:1fr}.thumb{height:210px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
