/* Layout: an archive reading room. Home = chapter index; a letter = zoomable scan beside its transcription. */
:root{
  --paper:#F7F1E3; --card:#EFE6D2; --ink:#1C2534; --muted:#5E5646; --rule:#CDBFA2;
  --red:#A8352A; --blue:#2D4A7A; --mark:#F2D9A6; --viewer:#2A2F38;
  --display:'Libre Caslon Display', Georgia, 'Times New Roman', serif;
  --text:'Libre Caslon Text', Georgia, 'Times New Roman', serif;
  --mono:'Courier Prime', 'Courier New', monospace;
}
@media (prefers-color-scheme: dark){:root:not([data-theme="light"]){
  --paper:#171C26; --card:#212837; --ink:#EDE4CF; --muted:#B3A88F; --rule:#3A4356;
  --red:#E08A7E; --blue:#9DB6E0; --mark:#5A4A22; --viewer:#0F1218; color-scheme:dark}}
:root[data-theme="dark"]{
  --paper:#171C26; --card:#212837; --ink:#EDE4CF; --muted:#B3A88F; --rule:#3A4356;
  --red:#E08A7E; --blue:#9DB6E0; --mark:#5A4A22; --viewer:#0F1218; color-scheme:dark}
*{box-sizing:border-box}
body{background:var(--paper);color:var(--ink);font-family:var(--text);font-size:17px;line-height:1.6;margin:0}
.wrap{max-width:1120px;margin:0 auto;padding-left:max(16px, env(safe-area-inset-left, 0px));padding-right:max(16px, env(safe-area-inset-right, 0px))}
a{color:var(--blue)} a:focus-visible,button:focus-visible{outline:3px solid var(--red);outline-offset:2px}
.stripe{height:8px;background:repeating-linear-gradient(-45deg,var(--red) 0 14px,var(--paper) 14px 22px,var(--blue) 22px 36px,var(--paper) 36px 44px)}
header.site{border-bottom:1px solid var(--rule)}
header.site .wrap{display:flex;flex-wrap:wrap;align-items:baseline;justify-content:space-between;gap:8px 24px;padding-block:18px}
.brand{font-family:var(--display);font-size:28px;line-height:1.1;color:var(--ink);text-decoration:none}
.tag{font-family:var(--mono);font-size:12px;letter-spacing:2px;color:var(--muted);text-transform:uppercase}
.eyebrow{font-family:var(--mono);font-size:12px;letter-spacing:3px;text-transform:uppercase;color:var(--red);margin:0}
h1,h2,h3{font-family:var(--display);font-weight:400;text-wrap:balance;margin:0;line-height:1.1}
h1{font-size:clamp(38px,6vw,64px)} h2{font-size:clamp(28px,4vw,40px)} h3{font-size:24px}
.lede{font-size:19px;max-width:62ch;margin:16px 0 0}
main{padding-block:40px 64px}
.hero{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);gap:40px;align-items:start}
.hero figure{margin:0}
.hero img{display:block;width:100%;height:auto;border:1px solid var(--rule)}
.cap{font-size:13px;font-style:italic;color:var(--muted);margin-top:6px}
.prose p{margin:0 0 14px;max-width:64ch}
.meanwhile{background:var(--card);padding:16px 20px;margin-top:18px;font-size:15px}
.meanwhile b{font-family:var(--mono);font-size:12px;letter-spacing:2px;color:var(--blue);display:block;margin-bottom:4px}
section.block{margin-top:56px;border-top:2px solid var(--ink);padding-top:16px}
.block-head{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:8px}
.letters{list-style:none;padding:0;margin:20px 0 0;display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:20px}
.letters a{display:flex;flex-direction:column;gap:10px;height:100%;text-decoration:none;color:var(--ink);background:var(--card);padding:16px;border:1px solid transparent}
.letters a:hover{border-color:var(--rule)}
.thumb{aspect-ratio:4/5;max-width:100%;overflow:hidden;background:var(--viewer)}
.thumb img{width:100%;height:100%;object-fit:cover;object-position:top}
.ldate{font-family:var(--mono);font-size:12px;letter-spacing:2px;text-transform:uppercase}
.lquote{font-style:italic;font-size:15px;line-height:1.45;margin:0}
.lplace{font-size:13px;color:var(--muted);margin-top:auto}
/* letter view */
.crumbs{display:flex;flex-wrap:wrap;gap:8px 16px;align-items:center;font-family:var(--mono);font-size:13px;letter-spacing:1px}
.crumbs a{text-decoration:none}
.lv-head{margin:18px 0 20px;display:flex;flex-wrap:wrap;justify-content:space-between;align-items:end;gap:12px;border-bottom:1px solid var(--rule);padding-bottom:14px}
.lv{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,1fr);gap:28px;align-items:start}
.viewer{position:sticky;top:calc(env(safe-area-inset-top, 0px) + 12px)}
.osd{height:min(78vh,820px);background:var(--viewer);position:relative}
.osd img.fallback{width:100%;height:100%;object-fit:contain}
.tools{display:flex;flex-wrap:wrap;gap:8px;margin-top:8px;align-items:center}
.tools button{font-family:var(--mono);font-size:13px;min-height:44px;min-width:44px;padding:0 14px;background:var(--card);color:var(--ink);border:1px solid var(--rule);cursor:pointer}
.tools button:hover{border-color:var(--ink)}
.tools .hint{font-size:13px;color:var(--muted);margin-left:auto}
.transcript{font-family:var(--mono);font-size:15.5px;line-height:1.65}
.transcript p{margin:0 0 12px}
mark{background:var(--mark);color:inherit;padding:0 2px}
.notes{background:var(--card);padding:16px 20px;margin-top:22px;font-size:15px;line-height:1.5}
.notes h4{font-family:var(--mono);font-size:12px;letter-spacing:2px;color:var(--red);margin:0 0 8px;font-weight:700}
.notes p{margin:0 0 8px}
.ctx{margin-top:22px;font-size:15.5px}
.pager{display:flex;justify-content:space-between;gap:16px;margin-top:36px;border-top:1px solid var(--rule);padding-top:16px;flex-wrap:wrap}
.pager a{font-family:var(--mono);font-size:14px;text-decoration:none;min-height:44px;display:inline-flex;align-items:center}
.intro{display:grid;grid-template-columns:minmax(0,300px) minmax(0,1fr);gap:40px;align-items:center}
.intro img{display:block;width:100%;height:auto;aspect-ratio:1/1;object-fit:cover;filter:sepia(.15)}
.svc{list-style:none;padding:0;margin:20px 0 0;display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:20px 28px}
.svc li{border-top:1px solid var(--rule);padding-top:10px;font-size:15px;line-height:1.5}
.svc .yr{font-family:var(--mono);font-size:12px;letter-spacing:2px;color:var(--red);display:block;margin-bottom:2px}
.pull{font-family:var(--display);font-size:clamp(22px,3vw,30px);line-height:1.3;margin:0;max-width:30ch}
.chapters{list-style:none;padding:0;margin:20px 0 0;display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:20px}
.chapters li{background:var(--card);padding:18px 20px;display:flex;flex-direction:column;gap:6px}
.chapters li.soon{background:transparent;border:1px dashed var(--rule);color:var(--muted)}
.chapters a{font-family:var(--display);font-size:24px;line-height:1.15;color:var(--ink);text-decoration:none}
.chapters a:hover{text-decoration:underline}
@media (max-width:820px){.intro{grid-template-columns:minmax(0,1fr)}.intro img{max-width:320px}}
footer{border-top:1px solid var(--rule);font-size:13px;color:var(--muted)}
footer .wrap{padding-block:20px;display:flex;flex-wrap:wrap;gap:8px 24px;justify-content:space-between}
@media (max-width:820px){.hero,.lv{grid-template-columns:minmax(0,1fr)}.viewer{position:static}.osd{height:62vh}.tools .hint{margin-left:0}}
@media (prefers-reduced-motion:reduce){*{scroll-behavior:auto!important}}

/* added by build_site.py */
.transcript .mono{font-size:14px;color:var(--muted)}
.pg{font-family:var(--mono);font-size:12px;letter-spacing:2px;text-transform:uppercase;color:var(--red);background:none;border:0;border-bottom:1px solid var(--rule);
  padding:14px 0 4px;margin:10px 0 12px;width:100%;text-align:left;cursor:pointer;min-height:44px}
.pg:hover{color:var(--ink)}
.pages{display:flex;flex-wrap:wrap;gap:6px}
.pages button[aria-current="true"]{background:var(--ink);color:var(--paper);border-color:var(--ink)}
.about{margin-top:22px;font-size:15.5px}
.about p{margin:0 0 10px}
.about b{font-family:var(--mono);font-size:12px;letter-spacing:2px;color:var(--red);display:block;margin-top:12px}
.history{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:40px;margin-top:48px;border-top:2px solid var(--ink);padding-top:16px}
.history h3{margin:4px 0 12px}
.history .prose p{font-size:16px}
.history svg{width:100%;height:auto;margin:6px 0 12px}
.meanwhile div{margin-top:6px}
.lv-head h1{font-size:clamp(30px,4.5vw,46px)}
.sub{margin:6px 0 0;font-style:italic;color:var(--muted)}
.skip{position:absolute;left:-9999px}.skip:focus{left:16px;top:8px;background:var(--paper);padding:8px;z-index:9}
@media (max-width:820px){.history{grid-template-columns:minmax(0,1fr);gap:24px}}
