
/* EB Garamond, self-hosted (variable font, latin subset) — no third-party
   requests; the woff2 files in assets/fonts/ are hand-kept */
@font-face{font-family:'EB Garamond';font-style:normal;font-weight:400 800;
 font-display:swap;src:url(fonts/eb-garamond-latin.woff2) format('woff2')}
@font-face{font-family:'EB Garamond';font-style:italic;font-weight:400 800;
 font-display:swap;src:url(fonts/eb-garamond-latin-italic.woff2) format('woff2')}
:root{--paper:#faf7f1;--ink:#26221c;--muted:#6f6759;--accent:#7a3b2e;
 --accent-soft:#f0e4de;--rule:#e2dbcf;--card:#ffffff;--maxw:46rem}
@media(prefers-color-scheme:dark){
 :root:not([data-theme=light]){--paper:#211e19;--ink:#e6dfd2;--muted:#a2988a;
  --accent:#d09a85;--accent-soft:#43302a;--rule:#3b352c;--card:#2b2721}
}
:root[data-theme=dark]{--paper:#211e19;--ink:#e6dfd2;--muted:#a2988a;
 --accent:#d09a85;--accent-soft:#43302a;--rule:#3b352c;--card:#2b2721}
*{box-sizing:border-box}
body{margin:0;background:var(--paper);color:var(--ink);
 font:400 1.06rem/1.72 "EB Garamond",Georgia,"Times New Roman",serif;
 -webkit-font-smoothing:antialiased}
a{color:var(--accent);text-decoration:none}
a:hover{text-decoration:underline}
.wrap{max-width:var(--maxw);margin:0 auto;padding:0 1.25rem}
header.site{border-bottom:1px solid var(--rule);padding:1.1rem 0;background:var(--paper)}
header.site .wrap{display:flex;justify-content:space-between;align-items:baseline;gap:1rem;flex-wrap:wrap}
.brand{font-variant:small-caps;letter-spacing:.06em;font-size:1.15rem;color:var(--ink)}
.brand a{color:inherit}
nav.top{display:flex;gap:1.1rem;align-items:baseline;flex-wrap:wrap;
 justify-content:flex-end;margin-left:auto}
/* wrapped header stacks like a title page: brand centered, nav centered */
header.site .wrap.stacked{justify-content:center}
.wrap.stacked .brand{width:100%;text-align:center}
.wrap.stacked nav.top{margin-left:0;width:100%;justify-content:center}
nav.top a{font-size:.95rem;color:var(--muted)}
nav.top a:hover{color:var(--accent)}
.hero{padding:3.2rem 0 2.2rem;text-align:center}
.hero h1{font-weight:500;font-size:2.1rem;margin:0 0 .6rem;letter-spacing:.01em}
.hero p.lede{color:var(--muted);max-width:34rem;margin:0 auto 1.4rem}
.progress{font-size:.9rem;color:var(--muted);letter-spacing:.04em}
.progress b{color:var(--accent)}
.searchbox{margin:1.6rem auto 0;max-width:30rem;position:relative}
.searchbox input{width:100%;padding:.7rem 1rem;font:inherit;border:1px solid var(--rule);
 border-radius:.5rem;background:var(--card);color:var(--ink)}
.searchbox input:focus{outline:2px solid var(--accent-soft);border-color:var(--accent)}
#results{list-style:none;margin:.6rem 0 0;padding:0;text-align:left}
#results li{background:var(--card);border:1px solid var(--rule);border-radius:.5rem;
 margin-bottom:.5rem;padding:.65rem .9rem}
#results .r-id{font-size:.8rem;color:var(--muted);letter-spacing:.05em}
#results .snip{font-size:.92rem;color:var(--muted)}
#results mark{background:var(--accent-soft);color:var(--accent);padding:0 .1em}
.group-head{font-variant:small-caps;letter-spacing:.08em;color:var(--muted);
 border-bottom:1px solid var(--rule);padding-bottom:.35rem;margin:2.6rem 0 1rem;font-size:1rem}
summary.group-head{cursor:pointer;list-style:none;user-select:none}
summary.group-head::-webkit-details-marker{display:none}
summary.group-head::before{content:"▾ ";color:var(--accent);font-size:.8em}
details.theil:not([open]) summary.group-head::before{content:"▸ "}
details.theil:not([open]) summary.group-head{opacity:.75}
ul.letter-list{list-style:none;margin:0;padding:0}
ul.letter-list li{display:flex;gap:.9rem;align-items:baseline;padding:.42rem 0;
 border-bottom:1px dotted var(--rule)}
.lnum{font-size:.85rem;color:var(--muted);min-width:4.6rem;letter-spacing:.03em}
article.letter{padding:2.6rem 0 3rem}
.crumb{font-size:.85rem;color:var(--muted);letter-spacing:.04em}
h1.l-title{font-weight:500;font-size:1.7rem;margin:.5rem 0 .2rem;line-height:1.3}
.l-meta{font-size:.92rem;color:var(--muted);margin:.8rem 0 0;line-height:1.65}
.l-meta b{color:var(--ink);font-weight:600}
.status{font-size:.8rem;letter-spacing:.05em;margin-top:.7rem;color:var(--muted)}
.pd-note{font-size:.8rem;color:var(--muted);letter-spacing:.03em;margin-top:1.2rem}
.de-cut{border:0;border-top:1px solid var(--rule);margin:1.4rem 0 .9rem}
#panel-en .opening::first-letter{float:left;font-size:3.3em;line-height:.83;
 padding:.04em .09em 0 0;color:var(--accent);font-weight:500}
.fleuron{text-align:center;color:var(--muted);font-size:1.15rem;margin:2.2rem 0 .4rem;
 user-select:none;cursor:pointer;transition:color .3s}
.fleuron:hover{color:var(--accent)}
.sortes{margin-top:1rem;display:flex;justify-content:center;gap:.6rem;flex-wrap:wrap}
.sizectl{display:inline-flex;gap:.6rem}
.controls .sizectl{margin-left:auto}
.themebtn{font:inherit;background:none;border:none;border-left:1px solid var(--rule);
 cursor:pointer;color:var(--muted);padding:.1rem 0 .1rem 1.1rem;
 font-size:1.05rem;line-height:1;vertical-align:-.05em}
.themebtn:hover{color:var(--accent)}
.controls{margin:1.8rem 0 .4rem;display:flex;gap:.6rem;flex-wrap:wrap}
button.ctl,a.ctl{font:inherit;font-size:.88rem;padding:.4rem .95rem;border-radius:2rem;
 border:1px solid var(--rule);background:var(--card);color:var(--muted);cursor:pointer;
 display:inline-block;text-decoration:none}
button.ctl:hover,a.ctl:hover{border-color:var(--accent);color:var(--accent);text-decoration:none}
button.ctl[aria-pressed="true"]{background:var(--accent);border-color:var(--accent);color:#fff}
.panels{margin-top:1rem}
.panel h2{font-variant:small-caps;font-weight:500;letter-spacing:.08em;font-size:1rem;
 color:var(--muted);border-bottom:1px solid var(--rule);padding-bottom:.3rem}
.panel .letter-ordinal{text-align:center;font-weight:500;font-size:1.25rem;margin:1.4rem 0 .3rem}
.panel .letter-ordinal + p em, .panel p.argument{color:var(--muted)}
.sc{font-variant-caps:all-small-caps;letter-spacing:.05em}
.panel blockquote{margin:1rem 2rem;color:var(--muted);font-style:italic}
.panel blockquote em{font-style:normal}
#panel-de{display:none;-webkit-user-select:none;user-select:none}
.show-both #panel-de{display:block}
@media(min-width:74rem){
 body.show-both .wrap.article-wrap{max-width:92rem}
 .show-both .panels{display:grid;grid-template-columns:1fr 1fr;gap:2.6rem;align-items:start}
}
details.apparatus{margin:1.6rem 0;border:1px solid var(--rule);border-radius:.5rem;
 background:var(--card);padding:.2rem 1rem}
details.apparatus summary{cursor:pointer;font-variant:small-caps;letter-spacing:.07em;
 color:var(--muted);padding:.5rem 0;font-size:.95rem}
details.apparatus summary:hover{color:var(--accent)}
details.apparatus li{margin-bottom:.5rem}
.bookgrid{display:grid;grid-template-columns:1fr;gap:1.6rem;margin-top:1.8rem}
@media(min-width:42rem){.bookgrid{grid-template-columns:1fr 1fr}}
.bookcard{background:var(--card);border:1px solid var(--rule);border-radius:.6rem;
 padding:1.5rem 1.3rem;text-align:center;display:flex;flex-direction:column;
 transition:box-shadow .2s,border-color .2s}
.bookcard:hover{box-shadow:0 6px 22px rgba(0,0,0,.13);border-color:var(--accent)}
.bookcard .cover{height:17rem;display:flex;align-items:center;justify-content:center}
.bookcard .cover img{max-height:100%;max-width:80%;width:auto;border-radius:.25rem;
 box-shadow:0 3px 14px rgba(0,0,0,.18)}
.bookcard h3{font-weight:500;font-style:italic;font-size:1.25rem;margin:1.1rem 0 .3rem}
.bookcard p{font-size:.92rem;color:var(--muted);margin:.3rem 0 1.1rem;text-align:left;flex:1}
a.bookbtn{margin:0 auto}
.contactform label{display:block;margin:1rem 0 .2rem;color:var(--muted);font-size:.95rem}
.contactform input[type=text],.contactform input[type=email],.contactform textarea{
 width:100%;padding:.6rem .9rem;font:inherit;border:1px solid var(--rule);
 border-radius:.5rem;background:var(--card);color:var(--ink)}
.contactform input:focus,.contactform textarea:focus{outline:2px solid var(--accent-soft);border-color:var(--accent)}
.contactform button{margin-top:1.2rem}
.contactform .hp{position:absolute;left:-9999px;height:0;overflow:hidden}
.citebox{margin:2.2rem 0 0;border:1px solid var(--rule);border-radius:.5rem;
 background:var(--card);padding:1rem 1.1rem;font-size:.92rem}
.citebox .cb-head{font-variant:small-caps;letter-spacing:.07em;color:var(--muted);margin-bottom:.4rem}
.citebox code{font-size:.85rem;background:var(--accent-soft);padding:.1rem .3rem;border-radius:.2rem}
.citebox button{margin-top:.6rem}
.pn{display:flex;justify-content:space-between;margin:2.4rem 0 0;font-size:.95rem;gap:1rem}
footer.site{border-top:1px solid var(--rule);margin-top:3rem;padding:2rem 0 3rem;
 font-size:.88rem;color:var(--muted)}
footer.site .wrap{display:flex;flex-direction:column;gap:.5rem}
.toast{position:fixed;bottom:1.2rem;left:50%;transform:translateX(-50%);
 background:var(--ink);color:var(--paper);padding:.5rem 1.1rem;border-radius:2rem;
 font-size:.85rem;opacity:0;transition:opacity .25s;pointer-events:none}
.toast.on{opacity:.94}
@media print{
 nav.top,.controls,.searchbox,.pn,footer.site,.toast,
 details.apparatus,.citebox button,.l-meta,.status,#panel-de{display:none !important}
 body{background:#fff;color:#000;font-size:11.5pt;line-height:1.55}
 header.site{background:#fff;border-bottom:1px solid #000;padding:.4rem 0}
 .wrap{max-width:100%;padding:0}
 a{color:#000;text-decoration:none}
 .status{display:none}
 .citebox{border:none;border-top:1px solid #000;border-radius:0;
  padding:.8rem 0 0;margin-top:2rem;font-size:9pt;background:#fff}
 .citebox code{background:none;padding:0}
}
