:root{color-scheme:light;--paper:#f6f4ef;--surface:#fffdf8;--ink:#22251f;--muted:#72766b;--line:#dddcd3;--accent:#425a38;--soft:#e8ecdf;--reader-size:21px}
*{box-sizing:border-box}
body{margin:0;background:var(--paper);color:var(--ink);font:16px/1.6 var(--sans)}
a{color:inherit;text-decoration:none}
a:hover{color:var(--accent)}
button,input,select{font:inherit}
button,.button,.primary{display:inline-flex;align-items:center;justify-content:center;gap:1rem;border:1px solid var(--line);border-radius:5px;padding:.65rem 1rem;background:var(--surface);color:var(--ink);cursor:pointer}
button:hover,.button:hover{border-color:var(--accent)}
.primary{background:var(--accent);border-color:var(--accent);color:white}
.primary:hover{background:#31482a;color:white}
a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,summary:focus-visible{outline:3px solid #8da179;outline-offset:4px}
.quiet{background:transparent;border:0;color:var(--muted);font-size:.85rem}
.site-header{display:flex;align-items:center;gap:1rem;flex-wrap:wrap;padding:1.25rem 4vw;border-bottom:1px solid var(--line)}
.site-header form {margin:0 0 0 auto;max-width:none}
.site-header .pico .quiet {background:transparent;border:0;color:var(--muted);padding:.4rem;font-size:.85rem;width:auto}
.brand{font-size:1.6rem;font-weight:750;letter-spacing:-.08em}
.brand span{font-weight:400;color:var(--accent)}
.site-label{font-size:.8rem;color:var(--muted)}
main{max-width:1180px;margin:auto;padding:2.5rem 2rem 4rem;min-height:75vh}
.site-footer{border-top:1px solid var(--line);padding:1.5rem 4vw;font-size:.75rem;color:var(--muted)}
h1,h2,h3{line-height:1.15}
h1{font-family:var(--serif);font-weight:400;font-size:clamp(2.3rem,5vw,4rem);letter-spacing:-.035em;margin:.4rem 0 1rem}
h2{font-size:1.4rem}
p{margin:.6rem 0}
.eyebrow{font-size:.68rem;letter-spacing:.18em;color:var(--accent);font-weight:700}
.muted{color:var(--muted)}
.small{font-size:.8rem}
.breadcrumbs{display:flex;gap:.7rem;flex-wrap:wrap;font-size:.8rem;color:var(--muted);margin-bottom:2rem}
.breadcrumbs a+a:before{content:"/";margin-right:.7rem;color:var(--line)}
.section-heading{margin-bottom:2.5rem}
.folder-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:1rem;margin-bottom:2.5rem}
.folder{display:flex;align-items:center;gap:1rem;padding:1.4rem;border:1px solid var(--line);background:var(--surface);border-radius:6px}
.folder:hover{background:var(--soft)}
.folder>span:last-child{margin-left:auto}
.folder-icon{color:var(--accent);font-size:1.5rem}
.book-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:2rem}
.book-cover{height:260px;background:#e4e3d8;display:flex;align-items:center;justify-content:center;overflow:hidden;border-radius:3px;box-shadow:0 5px 15px #2221}
.book-cover img{width:100%;height:100%;object-fit:contain}
.book-cover span{font-family:var(--serif);padding:1.3rem;font-size:1.7rem}
.book-card h2{font-size:1rem;line-height:1.4;margin:1rem 0 .3rem}
.book-card p{font-size:.8rem}
.login-panel{max-width:460px;margin:3rem auto}
.login-panel h1{font-size:clamp(1.8rem,3.2vw,2.5rem)}
.login-panel form{margin:2rem 0}
.login-panel label{display:block;font-size:.85rem;margin-bottom:1rem}
input{border:1px solid var(--line);border-radius:4px;padding:.6rem;background:var(--surface);color:var(--ink)}
.login-panel input{display:block;width:100%;margin-top:.35rem}
.login-panel .primary{width:100%;justify-content:space-between}
.error{color:#99362f;padding:.8rem;background:#fff0ee}
.notice{padding:1.5rem;background:var(--soft);border-radius:5px}
.work-hero{display:grid;grid-template-columns:230px 1fr;gap:3rem;padding:1rem 0 3rem}
.detail-cover{height:330px}
.work-hero h1{font-size:clamp(2rem,4vw,3.5rem)}
.authors{font-size:1.05rem;color:var(--muted)}
.metadata{display:grid;grid-template-columns:auto 1fr;gap:.3rem 1.5rem;font-size:.85rem;margin:1.5rem 0}
.metadata dt{color:var(--muted)}
.metadata dd{margin:0}
.actions{display:flex;gap:.7rem;flex-wrap:wrap}
.downloads{display:flex;gap:1.5rem;flex-wrap:wrap;margin-top:1.1rem;font-size:.8rem;text-decoration:underline}
.contents{max-width:780px;border-top:1px solid var(--line);padding-top:2rem}
.toc-list{padding-left:1.2rem}
.toc-list li{padding:.4rem 0}
.toc-list ol{padding-left:1.3rem;font-size:.9em}
.reader-main{max-width:1440px;padding:1rem 2rem 3rem}
.reader-toolbar{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.6rem 0 1.1rem;border-bottom:1px solid var(--line);font-size:.85rem}
.reader-settings{display:flex;align-items:center;gap:.6rem;flex-wrap:wrap}
.reader-settings select,select{border:1px solid var(--line);background:var(--surface);color:var(--ink);padding:.5rem;border-radius:4px}
.reading-layout{display:grid;grid-template-columns:260px minmax(0,1fr);gap:3rem;margin-top:2rem}
.reader-sidebar{font-size:.8rem;max-height:80vh;overflow:auto;position:sticky;top:1rem;align-self:start}
.reader-sidebar summary{cursor:pointer;font-weight:600}
.reading-column{max-width:760px;margin:0 auto;width:100%}
.reader-work-title{margin-bottom:2.5rem}
.epub-content{font-family:var(--serif);font-size:var(--reader-size);line-height:1.8;overflow-wrap:anywhere}
.epub-content p{margin:1.1em 0}
.epub-content h1{font-size:2em}
.epub-content h2{font-size:1.6em}
.epub-content h3{font-size:1.3em}
.epub-content img{max-width:100%;height:auto}
.epub-content a{text-decoration:underline;color:var(--accent)}
.epub-content table{display:block;max-width:100%;overflow:auto;border-collapse:collapse;font-size:.85em}
.epub-content td,.epub-content th{border:1px solid var(--line);padding:.4em}
.epub-content blockquote{border-left:3px solid var(--accent);margin:1em 0;padding-left:1em}
.epub-content pre{white-space:pre-wrap}
.epub-content [id]{scroll-margin-top:2rem}
.chapter-navigation{display:flex;justify-content:space-between;gap:1rem;border-top:1px solid var(--line);margin-top:3rem;padding-top:1.5rem;font-size:.85rem}
.dark{color-scheme:dark;--paper:#20241f;--surface:#292f27;--ink:#e2e5db;--muted:#adb5a4;--line:#42493d;--accent:#b2c49b;--soft:#303b29}
.dark .primary{background:#435d36;color:white}
.pdf-controls{display:flex;align-items:center;gap:.8rem;flex-wrap:wrap;padding:1rem 0;font-size:.8rem}
.pdf-controls input{width:5rem}
.pdf-controls a{margin-left:auto}
#pdf-scroll{overflow:auto;max-width:100%;background:#deded9;padding:1rem}
.pdf-page-view{position:relative;margin:auto;background:white;box-shadow:0 3px 15px #0002}
.pdf-page-view canvas{display:block}
.pdf-page-view .textLayer{position:absolute;inset:0;--scale-factor:1;--total-scale-factor:1}
#pdf-links{position:absolute;inset:0;pointer-events:none}
#pdf-links a{position:absolute;pointer-events:auto}
#pdf-links a:hover{background:#6677aa22}
.pdf-page-view .textLayer span{color:transparent}
#pdf-status:empty{display:none}
@media(max-width:760px){.site-header{padding:1rem;gap:1rem}
.site-label{display:none}
main,.reader-main{padding:1.5rem 1rem}
.book-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:1.4rem 1rem}
.book-cover{height:220px}
.work-hero{grid-template-columns:1fr;gap:1.5rem}
.detail-cover{width:180px;height:260px}
.reading-layout{grid-template-columns:1fr;gap:1.5rem}
.reader-sidebar{position:static;max-height:250px;border-bottom:1px solid var(--line);padding-bottom:1rem}
.reader-toolbar{align-items:flex-start;flex-wrap:wrap}
.reader-settings{font-size:.75rem}
.pdf-controls{gap:.4rem}
#pdf-scroll{padding:.4rem}
.login-panel{margin:1rem auto}

}

.search-form{margin:0 0 2.5rem;max-width:850px}
.search-form>label{display:block;font-size:.9rem;margin-bottom:.6rem}
.search-input{display:flex;gap:.6rem}
.search-input input{min-width:0;flex:1;width:100%}
.scope-global{display:inline-block;margin-top:.5rem;text-decoration:underline}
.search-results{max-width:900px}
.search-hit{padding:1.7rem 0;border-bottom:1px solid var(--line)}
.search-hit h2{font-family:var(--serif);line-height:1.5;font-weight:400;font-size:1.4rem;overflow-wrap:anywhere}
.search-excerpt{line-height:1.8;overflow-wrap:anywhere}
.passage-link{display:inline-block;margin-top:.8rem;color:var(--accent);text-decoration:underline}
.search-pages{display:flex;justify-content:space-between;gap:1rem;margin-top:2rem}
.search-context{padding:.8rem 0;font-size:.85rem}
.search-context a{text-decoration:underline}
mark{background:#f1da82;color:#24251f;border-radius:2px;padding:0 .08em}
.dark mark{background:#77652c;color:#fff8d9}
@media(max-width:760px){.search-input{gap:.4rem}
.search-input button{padding:.65rem .8rem}
.search-hit h2{font-size:1.2rem}
}


.search-jumps { display:flex; gap:1.5rem; margin:1.5rem 0; flex-wrap:wrap; }

.search-columns { display:grid; grid-template-columns:minmax(0,1fr); gap:2rem; }

.search-columns section { min-width:0; }

#semantic-results { scroll-margin-top:1rem; }

.search-hit h3 { font-size:1.2rem; line-height:1.4; }

@media (min-width:1100px) { .search-columns { grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:3rem; }
 }

.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; }


/* Forms deliberately use Pico only inside controls, never inside EPUB text. */
:root {--sans:"Source Sans 3","Noto Sans","Noto Color Emoji","SauceCodePro NF",sans-serif;--serif:"STIX Two Text","STIX Two Math","Source Serif 4","Noto Serif","Noto Color Emoji","SauceCodePro NF",serif;--mono:"Source Code Pro","Noto Sans Mono","Noto Color Emoji","SauceCodePro NF",monospace;}

body {font-family:var(--sans)}

h1,.book-cover span,.epub-content {font-family:var(--serif)}

code,pre,kbd,samp {font-family:var(--mono)}

form {--pico-font-family:var(--sans);--pico-font-size:1rem;--pico-primary:var(--accent);--pico-primary-background:var(--accent);--pico-primary-border:var(--accent);--pico-form-element-background-color:var(--surface);--pico-form-element-color:var(--ink);--pico-color:var(--ink);--pico-border-radius:5px;max-width:48rem;margin:1.5rem 0;}

form label {display:block;margin:.85rem 0;font-weight:500}

form input:not([type=hidden]):not([type=checkbox]),form textarea,form select {display:block;width:100%;margin:.35rem 0 .8rem;}

form button {width:auto; margin:.5rem 0}

form textarea {min-height:8rem;resize:vertical}

.circle-form {display:block;max-width:44rem}

.circle-grid {display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,260px),1fr));gap:2rem;align-items:start}

.circle-section {margin-top:3rem;border-top:1px solid var(--line);padding-top:2rem}

.circle-post,.source-card {display:block;padding:1.4rem;margin:1.2rem 0;border:1px solid var(--line);border-radius:5px;overflow-wrap:anywhere;box-shadow:none;background:transparent}

.circle-post.reply {margin-left:1rem;border-left:3px solid var(--accent)}

.post-body {white-space:normal;line-height:1.7}

.source-card blockquote {margin:1rem 0;padding-left:1rem;border-left:2px solid var(--line)}

.inline-actions {display:flex;align-items:center;gap:.8rem;flex-wrap:wrap}

.auth-links {display:flex;gap:1.5rem;flex-wrap:wrap;margin-top:2rem}

.login-panel>a {display:inline-block;margin:0 1.3rem 1rem 0}



.nav-toggle {margin:0;flex:1}
.nav-toggle summary {display:none}
.member-nav {display:flex;flex-wrap:wrap;gap:1rem;font-size:.9rem}
.nav-toggle:not([open])>.member-nav {display:flex}

.site-header {gap:1rem;flex-wrap:wrap}
.site-header form {margin:0 0 0 auto;max-width:none}

.reader-toolbar {position:sticky;top:0;z-index:10;padding:.7rem;background:var(--paper);border-bottom:1px solid var(--line);gap:.5rem;flex-wrap:wrap}

.reader-toolbar button,.reader-toolbar select {font-size:.85rem;padding:.4rem .6rem}

.reader-settings {flex-wrap:wrap;gap:.5rem}

#reader-toc {scroll-margin-top:7rem}
.epub-content [id] {scroll-margin-top:7rem;position:relative}

.reader-notes {font:1rem/1.6 var(--sans);padding:1.2rem;border:1px solid var(--line);background:var(--surface);color:var(--ink);margin:1rem 0}

.reader-notes[open] {max-height:none;overflow:visible}
.reader-notes form {margin:1rem 0}

.block-note-button {font:13px var(--sans);position:absolute;right:-1.8rem;top:.2rem;padding:.2rem;background:transparent;border:0;opacity:0;min-width:1.5rem}

.epub-content [id]:hover>.block-note-button,.epub-content [id]:focus-within>.block-note-button,.block-note-button:focus-visible {opacity:1}

.mark-private {border-left:3px solid #557aae;padding-left:.5rem}
.mark-shared {border-right:3px dotted #b88728;padding-right:.5rem}

.invitation-result {padding:2rem;border:1px solid var(--line);margin:2rem auto;max-width:40rem}

.invitation-qr {display:block;width:min(100%,280px);height:auto;background:white;margin:1.5rem auto}

.invitation-link-print {overflow-wrap:anywhere;text-align:center;font-family:var(--mono);font-size:.9rem}
.print-brand {font-weight:700;font-size:1.4rem;color:#bc0926}

.invitation-result h2 {font-family:var(--serif);font-size:2rem;font-weight:500}
.invitation-result input {width:100%}

summary {cursor:pointer}
details {margin:1rem 0}

@media(max-width:760px) {.nav-toggle {order:3;width:100%;flex:none}
.nav-toggle summary {display:block}
.nav-toggle:not([open])>.member-nav {display:none}
.member-nav {padding:.8rem 0;display:grid;grid-template-columns:1fr 1fr;gap:1rem}
.site-header .site-label {display:none}
.reader-toolbar {font-size:.8rem}
.reader-settings {gap:.4rem}
.epub-content {padding-right:1.5rem}
.circle-post,.source-card {padding:1rem}
.block-note-button {opacity:0;min-width:44px;min-height:44px;right:-1.8rem}.actions-visible>.block-note-button {opacity:1}
.invitation-result {padding:1.2rem}
}

@media print {
 @page {size:A4;margin:18mm}

 body:has(.invitation-result) {background:white;color:#222}

 body:has(.invitation-result) header,body:has(.invitation-result) footer,body:has(.invitation-result) main>*:not(.invitation-result),.invitation-result button,.invitation-result form,.invitation-result a,.invitation-result label,.no-print {display:none!important}

 body:has(.invitation-result) main {padding:0;margin:0;min-height:0}
.invitation-result {border:1px solid #bbb;padding:18mm;margin:12mm auto;max-width:160mm;break-inside:avoid}
.invitation-qr {width:65mm}
.invitation-result p {margin:6mm 0}
.invitation-result h2 {font-size:27pt;line-height:1.25}

}


.reader-toc-popover {margin:0}.reader-toc-popover summary {font-size:.9rem;padding:.4rem;white-space:nowrap}.reader-toc-popover nav {position:absolute;left:0;right:0;top:100%;background:var(--surface);border:1px solid var(--line);padding:1rem;max-height:65vh;overflow:auto;box-shadow:0 6px 16px #0002}.reader-toolbar #save-status {flex-basis:100%;font-size:.8rem}.reader-toolbar #save-status:empty {display:none}
@media(max-width:760px){.reader-sidebar {display:none}}

#epub-content [class*="mark-"] {position:relative}
.marker-icons {position:absolute;right:-1.4rem;top:0;font:12px var(--sans);color:var(--muted);pointer-events:none}

.mark-bookmark-new > .marker-icons {color:#bc0926}
.mark-bookmark-old > .marker-icons {color:#aa6c7a}
.mark-auto > .marker-icons {color:#548151}
@media(max-width:760px) {.epub-content [id] {scroll-margin-top:12rem}}
.invitation-link-print {display:none}
@media print {
 .invitation-link-print {display:block}
 .invitation-result time {font-size:0}
 .invitation-result time::after {content:attr(title);font-size:10pt}
}
