/* The homepage's type, width, navigation and colors remain the shared foundation. */
.library { --shelf-paper:#f4f1e9; --shelf-edge:#bdb5a4; }
.library [hidden] { display:none!important; }
.library-heading { margin:54px 0 34px; }
.library-eyebrow { color:var(--muted);font-size:.76rem;margin-bottom:14px; }
.library-heading h1 { margin-bottom:12px; }
.library-intro { color:var(--muted);font-size:.96rem; }
.library-tools { display:flex;justify-content:space-between;align-items:center;gap:24px;border-bottom:1px solid var(--line); }
.library-collections { display:flex;gap:26px;align-items:center; }
.library-collections a { color:var(--muted);font-size:.88rem;padding:12px 0;border-bottom:2px solid transparent;white-space:nowrap;text-decoration:none; }
.library-collections a[aria-current=page] { color:var(--ink);border-color:var(--ink); }
.library-collections a:hover { color:var(--ink); }
.library-tabs { display:flex;gap:12px; }
.library-tabs button { padding:6px 0;border:0;background:none;color:var(--muted);cursor:pointer;font-size:.74rem; }
.library-tabs button[aria-pressed=true] { color:var(--ink);text-decoration:underline;text-underline-offset:5px; }
.library-search { width:220px;max-width:35%; }
.library-search input { width:100%;border:0;background:transparent;font:inherit;font-size:.81rem;padding:10px 0;color:var(--ink);outline-offset:4px; }
.library-search input:focus-visible { outline:2px solid var(--link); }
.library-filters { display:flex;align-items:center;flex-wrap:wrap;gap:8px 20px;margin:18px 0 32px;font-size:.76rem;color:var(--muted); }
.library-filters select { font:inherit;background:none;border:0;border-radius:0;color:var(--ink);padding:7px 18px 7px 0;max-width:220px;cursor:pointer; }
.library-filters select:focus-visible { outline:2px solid var(--link);outline-offset:3px; }
.library-filters p { margin:0 0 0 auto; }
.library-reset,.library-more { border:0;background:none;color:var(--link);font:inherit;cursor:pointer;padding:8px 0; }
/* Each topic is a vertical shelf; books lie flat with horizontal titles. */
.library-shelves { display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:36px 24px;align-items:start; }
.library-shelves > .book-detail { grid-column:1/-1;margin:0; }
.shelf-group { min-width:0;margin:0; }
.library-shelves:not(:has(> .shelf-group ~ .shelf-group)) > .shelf-group { grid-column:1/-1;width:100%;max-width:530px; }
.shelf-caption { display:flex;gap:8px;align-items:center;justify-content:space-between;min-height:38px;margin:0 0 8px;font-size:.76rem;font-weight:400;color:var(--muted); }
.shelf-caption .shelf-subject { color:var(--ink);font:inherit;margin:0;letter-spacing:0;line-height:1.45; }
.shelf-navigation { display:flex;align-items:center;gap:2px;flex-shrink:0; }
.shelf-position { margin-right:3px;font-size:.65rem;font-variant-numeric:tabular-nums;white-space:nowrap; }
.shelf-navigation button { border:0;background:transparent;color:var(--ink);padding:4px;width:26px;height:30px;line-height:1;font-size:16px;cursor:pointer; }
.shelf-navigation button:hover:not(:disabled) { background:#f5f4f0; }
.shelf-navigation button:disabled { color:#c3c4be;cursor:default; }
.shelf-stage { position:relative;padding-left:9px; }
.shelf-stage::after { content:"";position:absolute;left:0;top:0;bottom:0;width:7px;border-right:1px solid #c3bbaa;background:linear-gradient(90deg,#e8e2d6,#d9d0bd);box-shadow:4px 0 7px -5px #74685165; }
.shelf-stage.has-next::before { content:"";position:absolute;left:9px;right:10px;bottom:0;height:20px;background:linear-gradient(#fff0,#fff);z-index:3;pointer-events:none; }
.shelf-track { max-height:480px;overflow-x:hidden;overflow-y:auto;scrollbar-width:thin;scrollbar-color:#c8c7bf transparent;scroll-padding-block:12px; }
.shelf-track::-webkit-scrollbar { width:4px; }
.shelf-track::-webkit-scrollbar-thumb { background:#c8c7bf;border-radius:2px; }
.book-row { display:flex;flex-direction:column;align-items:flex-start;gap:14px;width:100%;padding:10px 13px 14px 0;position:relative;isolation:isolate; }
.book-row::before { content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(90deg,#e9e4d920,transparent 64%); }
.shelf-book { position:relative;display:flex;align-items:center;flex:0 0 auto;width:calc(100% - var(--book-inset,0px));height:var(--stack-height,68px);padding:9px 15px 20px;border:0;border-radius:2px;background:var(--book-color);color:var(--book-ink,#343933);text-align:left;cursor:pointer;box-shadow:inset 0 1px 0 #ffffff8c,inset 0 -3px 4px #00000010,1px 2px 2px #302d2018;transition:transform 180ms ease-out,box-shadow 180ms; }
.shelf-book::before { content:"";position:absolute;left:5px;top:0;bottom:0;width:1px;background:#ffffff55;box-shadow:1px 0 #00000008; }
.shelf-book::after { content:"";position:absolute;right:2px;top:3px;width:3px;bottom:3px;background:repeating-linear-gradient(to bottom,#f9f7efbb 0 1px,#dcd6c966 1px 2px);opacity:.6; }
.shelf-book:hover,.shelf-book:focus-visible { transform:translateX(4px);box-shadow:inset 0 1px #ffffff8c,2px 3px 5px #302d201c;z-index:2; }
.shelf-book[aria-pressed=true] { transform:translateX(4px);outline:1px solid #7c8372;outline-offset:2px; }
.book-year { position:absolute;bottom:5px;right:12px;font-size:9px;line-height:1.3;font-variant-numeric:tabular-nums;letter-spacing:.025em;opacity:.8; }
.book-spine { display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;font-family:Georgia,"Noto Serif SC",serif;font-size:var(--spine-size,15px);font-weight:500;line-height:1.25;letter-spacing:.01em;overflow-wrap:anywhere; }
.book-mark { position:absolute;bottom:9px;left:15px;width:4px;height:4px;border-radius:50%;background:currentColor;opacity:.45; }
.book-mark.online { border-radius:0;width:13px;height:2px;opacity:.85; }
@media(max-width:900px) and (min-width:561px){.library-shelves{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:560px){.library-shelves{grid-template-columns:minmax(0,1fr);gap:32px}.shelf-track{max-height:440px}.library-shelves:not(:has(> .shelf-group ~ .shelf-group)) > .shelf-group{max-width:none}.book-row{padding-right:14px}.shelf-navigation button{width:30px;height:32px}.shelf-position{font-size:.7rem}.book-spine{font-size:var(--spine-size,15px)}}
.book-detail { display:grid;grid-template-columns:118px 1fr;gap:30px;border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:30px 0;margin:40px 0 0;scroll-margin-top:25px; }
.detail-cover { position:relative;min-height:155px;background:var(--book-color);padding:17px 13px 19px 17px;box-shadow:inset 4px 0 #0000000b;display:flex;flex-direction:column;justify-content:space-between;color:var(--book-ink); }
.detail-cover strong { font-family:Georgia,serif;font-weight:400;font-size:18px;line-height:1.2;overflow-wrap:anywhere; }
.detail-cover span { font-size:10px; }
.detail-copy { min-width:0; }
.detail-meta,.detail-title-long { color:var(--muted);font-size:.78rem; }
.detail-meta { margin:0 0 7px; }
.detail-copy h2 { font-size:1.4rem;margin:0 0 8px; }
.detail-title-long { line-height:1.65;margin:0 0 11px; }
.detail-terms { font-size:.8rem;margin:0 0 17px; }
.detail-links { display:flex;flex-wrap:wrap;gap:7px 21px;font-size:.83rem; }
.detail-quality { margin-top:14px;font-size:.76rem;color:var(--muted); }
.library-list-row { display:grid;grid-template-columns:32px minmax(0,1fr) 100px;gap:16px;border-bottom:1px solid var(--line);padding:22px 0;align-items:baseline; }
.list-number { color:#94918a;font-size:.74rem; }
.library-list-row h2 { font-size:1rem;margin:0 0 7px; }
.library-list-row h2 a { color:var(--ink); }
.list-meta { font-size:.73rem;color:var(--muted);margin:0; }
.list-status { color:var(--muted);font-size:.72rem;text-align:right; }
.list-status.online { color:var(--link); }
.library-empty { padding:50px 0;color:var(--muted);font-size:.85rem; }
.library-more { display:block;font-size:.83rem;margin:26px auto; }
.library-note { margin:44px 0 0;display:flex;justify-content:space-between;gap:20px;color:var(--muted);font-size:.76rem; }
.library-note p { max-width:570px;margin:0; }
.library-note a { flex-shrink:0; }
.detail-topline { display:flex;justify-content:space-between;align-items:start; }
.detail-close { border:0;background:none;color:var(--muted);font-size:24px;line-height:1;cursor:pointer;padding:0 4px 8px 12px; }
.detail-blog { font-size:.83rem; }
.collection-contents { grid-column:1/-1;min-width:0; }
.collection-contents h3 { font-size:.82rem;color:var(--muted);font-weight:400;margin-bottom:18px; }
.chapter-section { border-top:1px solid var(--line); }
.chapter-section > summary { display:flex;align-items:baseline;width:100%;padding:17px 0;font-size:.88rem;color:var(--ink); }
.chapter-section > summary small { margin-left:auto;padding-left:15px;font-size:.72rem;color:var(--muted); }
.chapter-section[open] > summary { margin-bottom:5px; }
.chapter-list { padding:0;margin:0;list-style:none; }
.chapter-list li { display:grid;grid-template-columns:25px minmax(0,1fr);gap:15px;margin:0;padding:13px 0;border-bottom:1px solid #f0f1f2;font-size:.84rem;line-height:1.65; }
.chapter-list li:last-child { border-bottom:0; }
.chapter-number { font-size:.69rem;color:#92938d;padding-top:3px;font-variant-numeric:tabular-nums; }
.chapter-list a { color:var(--ink); }
.chapter-list a:hover { color:var(--link); }
.chapter-list small,.chapter-list .chapter-report,.chapter-extra { font-size:.69rem;color:var(--muted);margin-left:8px; }
.chapter-list a > span { color:#909890;font-size:.75em; }
.collection-detail { margin-top:34px;margin-bottom:34px; }
.reader-back { display:inline-block;margin-top:46px;font-size:.8rem; }
.reader-heading { margin:28px 0; }
.reader-heading h1 { font-size:clamp(1.9rem,4vw,2.5rem);margin-bottom:10px; }
.reader-subtitle { font-size:.85rem;color:var(--muted);max-width:740px;margin-bottom:12px; }
.reader-meta { font-size:.75rem;color:var(--muted); }
.edition-bar { display:flex;align-items:center;justify-content:space-between;gap:18px;border-bottom:1px solid var(--line); }
.edition-tabs { display:flex;gap:25px; }
.edition-tabs a { font-size:.83rem;color:var(--muted);padding:12px 0;border-bottom:2px solid transparent; }
.edition-tabs a[aria-current=true] { color:var(--ink);border-color:var(--ink); }
.reader-external { font-size:.76rem;flex-shrink:0; }
.reader-quality { font-size:.76rem;color:#71654e;padding:12px 0;margin:0; }
.reader-frame { display:block;width:100%;height:78vh;min-height:580px;border:1px solid var(--line);background:#f5f5f3; }
.reader-fallback { font-size:.74rem;color:var(--muted);margin:12px 0 0; }
.pdf-controls { display:flex;align-items:center;justify-content:center;gap:14px;padding:10px 12px;font-size:.78rem;border-bottom:1px solid var(--line);position:sticky;top:0;z-index:3;background:#fbfaf8; }
.pdf-controls button,.pdf-controls select,.pdf-controls input { font:inherit;background:transparent;color:var(--ink);border:0;padding:6px; }
.pdf-controls button { cursor:pointer;min-width:36px; }
.pdf-controls button:disabled { opacity:.3;cursor:default; }
.pdf-controls input { width:52px;text-align:center;border-bottom:1px solid #cec8bb; }
.pdf-controls select { margin-left:15px; }
.pdf-controls [hidden] { display:none!important; }
.pdf-message { padding:20px;color:var(--muted);font-size:.82rem; }
.pdf-viewer { border:1px solid var(--line);background:#f6f5f2; }
.pdf-scroll { overflow:auto;padding:16px; }
.pdf-sheet { position:relative;margin:0 auto;background:white;box-shadow:0 1px 5px #272b3014; }
.pdf-sheet canvas { display:block; }
.textLayer { position:absolute;inset:0;overflow:clip;text-align:initial;line-height:1;text-size-adjust:none;forced-color-adjust:none;transform-origin:0 0;z-index:2; }
.textLayer :is(span,br) { color:transparent;position:absolute;white-space:pre;cursor:text;transform-origin:0 0; }
.textLayer span.markedContent { top:0;height:0; }
.textLayer ::selection { background:#2a6f9e44; }
.textLayer br::selection { background:transparent; }
@media(min-width:1100px){.reader-frame{width:calc(100% + 100px);margin-left:-50px}}
@media(max-width:640px){.library-heading{margin:42px 0 28px}.library-tools{gap:20px}.library-search{width:48%;max-width:48%}.library-search input{font-size:.75rem}.library-tabs{gap:19px}.library-filters{gap:5px 12px;margin-bottom:24px}.library-filters p{font-size:.69rem}.library-filters select{max-width:165px}.shelf-caption{font-size:.72rem}.book-detail{grid-template-columns:78px 1fr;gap:18px;padding:24px 0}.detail-cover{min-height:120px;padding:13px 9px}.detail-cover strong{font-size:17px}.detail-cover span{font-size:8px}.detail-copy h2{font-size:1.15rem}.detail-links{gap:8px 17px}.library-list-row{grid-template-columns:22px minmax(0,1fr);gap:10px}.list-status{grid-column:2;text-align:left}.library-note{display:block}.library-note a{display:inline-block;margin-top:12px}.reader-heading{margin:25px 0}.edition-bar{align-items:start;gap:10px}.edition-tabs{gap:16px}.edition-tabs a{font-size:.77rem}.reader-external{font-size:.7rem;padding-top:14px}.reader-frame{min-height:430px;height:67vh}.reader-meta{line-height:1.8}}
@media(prefers-reduced-motion:reduce){.shelf-book{transition:none}.shelf-book:hover,.shelf-book:focus-visible{transform:none}}

@media(max-width:760px){.library-tools{flex-wrap:wrap;gap:4px}.library-collections{width:100%;justify-content:space-between;gap:15px}.library-collections a{font-size:.8rem}.library-search{width:100%;max-width:100%;margin:0 0 6px}.library-search input{font-size:.78rem}.library-filters{gap:6px 13px}.library-filters p{margin-left:0}.library-tabs{margin-left:auto}.library-filters select{max-width:155px}.library-heading{margin:38px 0 24px}.chapter-list li{font-size:.8rem;gap:8px}.collection-detail{gap:18px}.library-collections{overflow:auto}}
@media print{.library-tools,.library-filters,.library-shelves,.book-detail,.reader-back,.edition-bar{display:none!important}.library-list-row{break-inside:avoid}}
