:root{
  --ink:#1a1815; --muted:#6b6459; --line:#ddd6c9; --bg:#f7f4ed; --card:#fffdf8;
  --accent:#8c2f18; --accent-soft:#f3e2dc; --mark:#ffe9a8;
  --serif:"Iowan Old Style","Palatino Linotype",Palatino,Georgia,"Times New Roman",serif;
  --sans:system-ui,-apple-system,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;
}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--bg);color:var(--ink);font-family:var(--sans);
     font-size:16px;line-height:1.55}
a{color:var(--accent);text-decoration:none}
a:hover{text-decoration:underline}
main{max-width:1120px;margin:0 auto;padding:1.5rem 1.1rem 3rem}
h1,h2,h3{font-family:var(--serif);font-weight:600;line-height:1.2;margin:0 0 .5em}
h1{font-size:1.75rem}
code{background:#eee8dc;padding:.1em .35em;border-radius:3px;font-size:.9em}

/* header */
.top{display:flex;gap:1rem;align-items:center;flex-wrap:wrap;
     background:var(--card);border-bottom:2px solid var(--ink);
     padding:.7rem 1.1rem;position:sticky;top:0;z-index:20}
.brand{display:flex;align-items:baseline;gap:.45rem;color:var(--ink)}
.brand:hover{text-decoration:none}
.brand-name{font-family:var(--serif);font-size:1.5rem;font-weight:700;letter-spacing:-.02em}
.brand-sub{font-size:.78rem;text-transform:uppercase;letter-spacing:.14em;color:var(--muted)}
.nav{margin-left:auto;display:flex;gap:1rem;font-size:.92rem}
.q{display:flex;flex:1 1 260px;max-width:520px}
.q input{flex:1;min-width:0;padding:.5rem .7rem;border:1px solid var(--line);
         border-right:0;border-radius:4px 0 0 4px;font-size:1rem;background:#fff;color:var(--ink)}
.q input:focus{outline:2px solid var(--accent);outline-offset:-2px}
.q button{padding:.5rem 1rem;border:1px solid var(--accent);background:var(--accent);
          color:#fff;border-radius:0 4px 4px 0;cursor:pointer;font-size:.95rem}
.q button:hover{background:#701f0e}

/* home */
.hero{text-align:center;padding:2.5rem 0 1.5rem;border-bottom:1px solid var(--line);margin-bottom:2rem}
.hero h1{font-size:2.3rem}
.lede{color:var(--muted);font-size:1.05rem;margin:.2rem 0 1.4rem}
.q.big{max-width:640px;margin:0 auto}
.q.big input{padding:.8rem 1rem;font-size:1.1rem}
.q.big button{padding:.8rem 1.5rem;font-size:1.05rem}
.hint{color:var(--muted);font-size:.88rem;margin-top:.9rem}
.yeargrid{list-style:none;padding:0;display:grid;gap:.6rem;
          grid-template-columns:repeat(auto-fill,minmax(140px,1fr))}
.yeargrid a{display:block;background:var(--card);border:1px solid var(--line);
            border-radius:6px;padding:.8rem;text-align:center;color:var(--ink)}
.yeargrid a:hover{border-color:var(--accent);text-decoration:none}
.yeargrid .y{display:block;font-family:var(--serif);font-size:1.5rem;font-weight:600}
.yeargrid .n{display:block;font-size:.8rem;color:var(--muted)}

/* results */
.results-head{display:flex;justify-content:space-between;align-items:baseline;
              flex-wrap:wrap;gap:.6rem;margin-bottom:1rem}
.results-head h1{font-size:1.3rem;margin:0}
.tools{display:flex;gap:.8rem;font-size:.88rem}
.tools a.on,.facets a.on{font-weight:700;color:var(--ink)}
.cols{display:grid;grid-template-columns:170px 1fr;gap:1.8rem;align-items:start}
.facets h2{font-size:.8rem;text-transform:uppercase;letter-spacing:.1em;color:var(--muted)}
.facets ul{list-style:none;padding:0;margin:0;font-size:.9rem}
.facets li a{display:flex;justify-content:space-between;padding:.2rem 0}
.facets li span{color:var(--muted);font-size:.82rem}
.results{list-style:none;padding:0;margin:0}
.results li{display:flex;gap:1rem;padding:1rem 0;border-bottom:1px solid var(--line)}
.results .thumb img{border:1px solid var(--line);background:#fff;display:block}
.rtitle{font-family:var(--serif);font-size:1.1rem;font-weight:600}
.snip{margin:.35rem 0;color:#3a352e;font-size:.95rem}
.snip mark{background:var(--mark);padding:0 .1em}
.links{font-size:.85rem;color:var(--muted);margin:.3rem 0 0}
.none{border:0;color:var(--muted)}
.tag{background:var(--accent-soft);color:var(--accent);border-radius:3px;
     padding:.05em .4em;font-size:.72rem;text-transform:uppercase;letter-spacing:.06em;font-style:normal}
.tag.block{display:block;padding:.6rem .8rem;font-size:.85rem;text-transform:none;letter-spacing:0}
.pager{display:flex;gap:1.2rem;justify-content:center;align-items:center;
       margin-top:1.6rem;font-size:.95rem;color:var(--muted)}
.err{background:#fdecea;border:1px solid #e0b4ad;padding:.8rem;border-radius:4px}

/* single page */
.crumbs{font-size:.85rem;color:var(--muted);margin-bottom:1rem}
.pagewrap{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,1fr);gap:2rem;align-items:start}
.scan{margin:0;position:sticky;top:5rem}
.scan img{width:100%;height:auto;border:1px solid var(--line);background:#fff;
          box-shadow:0 2px 14px rgba(0,0,0,.09)}
.scan figcaption{display:flex;gap:.6rem;margin-top:.7rem;flex-wrap:wrap}
.btn{display:inline-block;background:var(--accent);color:#fff;padding:.45rem .9rem;
     border-radius:4px;font-size:.9rem}
.btn:hover{background:#701f0e;text-decoration:none}
.btn.ghost{background:transparent;color:var(--accent);border:1px solid var(--accent)}
.btn.ghost:hover{background:var(--accent-soft)}
.sidetext h1{font-size:1.35rem;display:flex;flex-wrap:wrap;gap:.6rem;align-items:baseline}
.sidetext h1 .pg{font-family:var(--sans);font-size:.85rem;color:var(--muted);
                 text-transform:uppercase;letter-spacing:.08em}
.pnav{display:flex;gap:1rem;font-size:.9rem;flex-wrap:wrap;margin:.2rem 0 1rem}
.ptext{white-space:pre-wrap;font-family:var(--serif);font-size:1rem;line-height:1.6;
       background:var(--card);border:1px solid var(--line);border-radius:6px;
       padding:1rem;max-height:70vh;overflow:auto}

/* grids */
.grid{list-style:none;padding:0;display:grid;gap:1rem;
      grid-template-columns:repeat(auto-fill,minmax(120px,1fr))}
.grid a{display:block;text-align:center;color:var(--ink);font-size:.85rem}
.grid img{width:100%;height:auto;border:1px solid var(--line);background:#fff;display:block;margin-bottom:.3rem}
.grid a:hover img{border-color:var(--accent)}
.month{margin-bottom:1.4rem}
.month h2{font-size:1.05rem;border-bottom:1px solid var(--line);padding-bottom:.25rem}
.days{list-style:none;padding:0;display:grid;gap:.4rem;
      grid-template-columns:repeat(auto-fill,minmax(74px,1fr))}
.days a{display:block;background:var(--card);border:1px solid var(--line);border-radius:4px;
        padding:.4rem;text-align:center;color:var(--ink);font-size:.95rem}
.days a:hover{border-color:var(--accent);text-decoration:none}
.days span{display:block;font-size:.72rem;color:var(--muted)}
.yearjump{display:flex;gap:.5rem;flex-wrap:wrap;margin-bottom:1.4rem;font-size:.9rem}
.yearjump a.on{font-weight:700;color:var(--ink)}
.prose{max-width:62ch}
.prose h2{font-size:1.15rem;margin-top:1.6rem}
.muted{color:var(--muted);font-size:.9rem}

.foot{border-top:1px solid var(--line);padding:1.4rem 1.1rem;text-align:center;
      color:var(--muted);font-size:.88rem}

@media(max-width:820px){
  .cols{grid-template-columns:1fr}
  .facets ul{display:flex;flex-wrap:wrap;gap:.3rem .8rem}
  .pagewrap{grid-template-columns:1fr}
  .scan{position:static}
  .nav{order:3}
}
@media(prefers-color-scheme:dark){
  :root{--ink:#eae4d8;--muted:#9a9184;--line:#3a3630;--bg:#16151300;--bg:#161513;
        --card:#1f1d1a;--accent:#e0785c;--accent-soft:#3a2119;--mark:#6b5410}
  .scan img,.grid img,.results .thumb img{background:#ddd}
  .q input{background:#26241f}
  code{background:#2a2721}
}
