:root{--paper:#f7f6f0;--surface:#fffefa;--ink:#272c25;--muted:#63665b;--line:#dedfd3;--green:#254e3a;--accent:#a66832;--wash:#eceee3;--shelf:#d7d4c4;--shadow:0 12px 22px -14px #302c2370;--serif:"Fraunces",Georgia,serif;--sans:"Instrument Sans",system-ui,-apple-system,"Segoe UI",sans-serif;color-scheme:light}
@media(prefers-color-scheme:dark){:root:not([data-theme="light"]){--paper:#191e1a;--surface:#222922;--ink:#f0eee5;--muted:#b8bcae;--line:#414a3e;--green:#abcaa8;--accent:#d7aa77;--wash:#2c342b;--shelf:#464d3f;--shadow:0 12px 22px -14px #000c;color-scheme:dark}}
:root[data-theme="dark"]{--paper:#191e1a;--surface:#222922;--ink:#f0eee5;--muted:#b8bcae;--line:#414a3e;--green:#abcaa8;--accent:#d7aa77;--wash:#2c342b;--shelf:#464d3f;--shadow:0 12px 22px -14px #000c;color-scheme:dark}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:115px}body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--sans);font-size:16px;line-height:1.55;-webkit-font-smoothing:antialiased}body.dialog-open{overflow:hidden}button,input,select{font:inherit}button,a,input,select{-webkit-tap-highlight-color:transparent}button,a{touch-action:manipulation}button{color:inherit;cursor:pointer}a{color:inherit}button:disabled{cursor:default;opacity:.45}button{border:0}button,select,input{min-height:44px}button{background:none}button svg{flex-shrink:0}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,[tabindex]:focus-visible{outline:3px solid var(--accent);outline-offset:4px}h1,h2,h3,p{margin:0}h1,h2,h3{font-family:var(--serif);font-weight:500}button:where(.button,.text-button),a:where(.button,.text-button){display:inline-flex;align-items:center;justify-content:center;gap:9px;text-decoration:none}.wrap{width:min(1240px,100%);margin-inline:auto;padding-inline:clamp(20px,4vw,56px)}[hidden]{display:none!important}.sr-only{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.skip-link{position:fixed;top:10px;left:10px;z-index:100;background:var(--surface);padding:12px 20px;transform:translateY(-200%)}.skip-link:focus{transform:none}
.topline{display:flex;justify-content:space-between;align-items:center;gap:12px;padding-block:25px;border-bottom:1px solid var(--line)}.wordmark{display:flex;align-items:center;gap:13px;color:var(--green);text-decoration:none;font-size:11px;letter-spacing:.14em;text-transform:uppercase;font-weight:600}.theme-label select{border:0;background:transparent;color:var(--muted);font-size:12px;max-width:135px;padding:6px}.hero-row{display:flex;justify-content:space-between;align-items:flex-end;gap:24px;padding-top:36px}.eyebrow{text-transform:uppercase;letter-spacing:.13em;font-size:10px;font-weight:700;color:var(--muted)}h1{font-size:clamp(42px,6.4vw,80px);letter-spacing:-.055em;line-height:1.05;margin-top:13px}h1 em{font-weight:400;color:var(--green)}.lede{color:var(--muted);font-size:17px;line-height:1.65;margin-top:20px}.hero-row .button{margin-bottom:7px}.button{min-height:46px;padding:11px 19px;border-radius:6px;font-size:13px;font-weight:600;line-height:1.5;text-align:center;transition:background .15s,transform .15s}.primary{background:var(--green);color:var(--paper);border:1px solid var(--green)}.secondary{background:var(--surface);border:1px solid var(--line);color:var(--ink)}.button:hover{transform:translateY(-1px)}.collection-stats{display:flex;gap:0;color:var(--muted);font-size:12px;padding-block:26px 27px;flex-wrap:wrap;row-gap:8px}.collection-stats span+span::before{content:"·";margin-inline:15px;color:var(--accent)}.collection-stats strong{font-weight:600;color:var(--ink)}
.search-bar{position:sticky;top:0;z-index:10;background:var(--paper);border-block:1px solid var(--line);padding-top:env(safe-area-inset-top,0px)}.toolbar{display:flex;gap:16px;align-items:center;padding-block:14px}.search{display:flex;gap:10px;align-items:center;flex:1;min-width:160px;background:var(--surface);border:1px solid var(--line);border-radius:6px;padding-inline:13px;color:var(--muted)}.search:focus-within{outline:2px solid var(--green);outline-offset:2px}.search input{min-width:0;flex:1;width:100%;border:0;outline:none;background:transparent;color:var(--ink);font-size:15px;padding:10px 0}.search input:focus-visible{outline:none}.search input::placeholder{color:var(--muted);opacity:1}.search input::-webkit-search-cancel-button{-webkit-appearance:none}.icon-button{font-size:24px;padding:0;width:30px;flex-shrink:0;color:var(--muted)}.sort-control{display:flex;align-items:center;gap:7px;color:var(--muted);font-size:12px;white-space:nowrap}.sort-control select{padding:8px 24px 8px 8px;border:0;background:transparent;color:var(--ink);max-width:145px}.view-control{display:flex;border:1px solid var(--line);padding:3px;border-radius:6px;background:var(--surface)}.view-control button{font-size:12px;padding:8px 12px;min-height:38px;border-radius:4px}.view-control button[aria-pressed="true"]{background:var(--green);color:var(--paper)}.view-control button:last-child{color:var(--muted)}.view-control button:last-child[aria-pressed="true"]{color:var(--paper)}
.subjects{padding-block:18px 26px}.subject-chips{display:flex;gap:7px;flex-wrap:wrap}.subject-chip{display:flex;align-items:center;gap:7px;font-size:11px;min-height:36px;border:1px solid transparent;border-radius:5px;padding:6px 9px;color:var(--muted);text-align:left}.subject-chip:hover{background:var(--wash)}.subject-chip[aria-pressed="true"]{background:var(--wash);color:var(--ink);border-color:var(--line)}.subject-chip .dot{width:6px;height:6px;background:var(--category);border-radius:50%;flex-shrink:0}.subject-chip small{font-size:10px;opacity:.8}.mobile-subject{display:none}.section-heading{display:flex;gap:20px;align-items:flex-end;justify-content:space-between;margin-bottom:25px}.section-heading h2{font-size:30px;letter-spacing:-.035em;line-height:1.2;margin-top:8px}.quiet{font-size:12px;color:var(--muted)}.section-heading>.quiet{margin-bottom:4px}.featured{padding:10px 0 34px;border-bottom:1px solid var(--line);margin-bottom:38px}.featured-books{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:24px}.book-card{min-width:0;text-align:left;display:flex;flex-direction:column;align-items:stretch;padding:0;background:transparent;border:0;width:100%;height:100%;border-radius:4px}.cover-slot{display:flex;align-items:flex-end;justify-content:center;width:100%;height:210px;padding:15px 12px 14px;background:var(--wash);border-bottom:4px solid var(--shelf);border-radius:5px 5px 2px 2px;position:relative}.book-image{display:block;max-width:100%;width:auto;height:auto;max-height:100%;object-fit:contain;box-shadow:var(--shadow);border-radius:1px 3px 3px 1px;transition:transform .2s}.book-card:hover .book-image,.book-card:hover .fallback-cover{transform:translateY(-4px)}.book-info{display:block;padding-top:13px;min-width:0}.book-title{font-family:var(--serif);font-size:16px;font-weight:500;line-height:1.3;letter-spacing:-.02em;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden}.book-author{display:block;font-size:11px;line-height:1.5;color:var(--muted);margin-top:5px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.book-subject{display:block;font-size:10px;color:var(--muted);margin-top:8px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.featured .cover-slot{height:184px}.featured .book-title{font-size:14px}.featured .book-subject{display:none}.fallback-cover{width:120px;max-width:100%;height:176px;max-height:100%;padding:12px 11px;background:var(--category);color:var(--category-ink);display:flex;flex-direction:column;justify-content:space-between;box-shadow:var(--shadow);border-radius:1px 3px 3px 1px;border-left:4px solid #0002;transition:transform .2s}.fallback-title{font-family:var(--serif);font-size:13px;line-height:1.25;display:-webkit-box;-webkit-line-clamp:7;-webkit-box-orient:vertical;overflow:hidden}.fallback-author{font-size:9px;line-height:1.2;border-top:1px solid currentColor;padding-top:7px;margin-top:7px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.fallback-mark{font-size:8px;text-transform:uppercase;letter-spacing:.13em;display:block;margin-bottom:9px}
.catalog{padding-bottom:24px;outline-offset:8px}.catalog-heading{align-items:center;margin-bottom:26px}.catalog-heading .quiet{margin-top:8px}.text-button{font-size:12px;padding:8px 0;color:var(--green);font-weight:600;text-underline-offset:4px}.text-button:hover{text-decoration:underline}.subject-description{max-width:65ch;color:var(--muted);font-size:14px;margin:-6px 0 22px}.active-filters{display:flex;justify-content:space-between;align-items:center;gap:16px;background:var(--wash);border-radius:5px;padding:5px 14px;margin-bottom:24px;font-size:12px;overflow-wrap:anywhere}.book-grid{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:30px 24px}.load-more-wrap{text-align:center;border-top:1px solid var(--line);margin-top:36px;padding-top:25px}.load-more-wrap .button{margin-top:12px}.empty{padding:50px 15px;text-align:center;background:var(--wash);border-radius:8px}.empty h3{font-size:27px;margin-top:14px}.empty p{color:var(--muted);font-size:14px;margin-block:10px 24px}.empty-mark{font-size:32px;color:var(--accent)}.book-list{display:flex;flex-direction:column}.book-list .book-card{display:grid;grid-template-columns:46px minmax(0,1fr) 26px;column-gap:20px;align-items:center;border-bottom:1px solid var(--line);padding:13px 0}.book-list .cover-slot{padding:0;height:61px;background:none;border:0}.book-list .book-info{padding:0}.book-list .book-title{font-size:18px}.book-list .book-author{font-size:12px;white-space:normal}.book-list .book-subject{font-size:11px}.book-list .fallback-cover{padding:3px;border-left-width:2px}.book-list .fallback-title{font-size:5px;-webkit-line-clamp:7}.book-list .fallback-author,.book-list .fallback-mark{display:none}.list-arrow{font-size:20px;color:var(--muted)}.spine-grid{--row:272px;display:flex;flex-wrap:wrap;align-items:flex-end;column-gap:4px;row-gap:30px;padding:22px 18px 10px;background-color:var(--wash);background-image:repeating-linear-gradient(to bottom,transparent 0 var(--row),var(--shelf) var(--row) calc(var(--row) + 8px),transparent calc(var(--row) + 8px) calc(var(--row) + 30px));background-origin:content-box;background-clip:border-box;border-radius:6px}.spine-button{height:var(--spine-h,244px);margin-top:calc(var(--row) - var(--spine-h,244px));width:var(--spine-w,44px);padding:12px 9px;writing-mode:vertical-rl;display:flex;align-items:center;gap:10px;flex-shrink:0;background:var(--category);color:var(--category-ink);border-radius:3px 3px 0 0;box-shadow:inset 3px 0 4px #ffffff18,inset -3px 0 5px #0003;transition:transform .2s}.spine-button:hover{transform:translateY(-4px)}.spine-button.has-cover{background:linear-gradient(90deg,rgba(0,0,0,.62),rgba(0,0,0,.38) 45%,rgba(0,0,0,.62)),var(--cover) 50% 50%/auto 100% no-repeat,var(--category);color:#fff;text-shadow:0 1px 2px rgba(0,0,0,.85)}.spine-button.has-cover .spine-title,.spine-button.has-cover .spine-author{background:rgba(12,12,12,.62);padding:7px 3px;border-radius:2px;box-shadow:0 0 0 1px rgba(255,255,255,.06)}.spine-button.has-cover .spine-author{opacity:1;padding:5px 2px}.spine-title{font-family:var(--serif);font-size:13px;text-align:left;max-height:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.spine-author{font-size:9px;max-height:100px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;opacity:.85}.footer{display:flex;align-items:center;justify-content:space-between;gap:24px;padding-block:32px 45px;border-top:1px solid var(--line);margin-top:36px}.footer-title{font-family:var(--serif);font-size:22px;letter-spacing:-.03em}.footer p{font-size:12px;color:var(--muted);margin-top:7px}.footer .small{font-size:10px}.back-top{font-size:12px;color:var(--muted);white-space:nowrap;text-decoration:none}.noscript-note{padding:30px;background:var(--wash)}
dialog{padding:0;border:1px solid var(--line);border-radius:12px;background:var(--surface);color:var(--ink);width:min(800px,calc(100vw - 32px));max-height:calc(100dvh - 40px);box-shadow:0 25px 100px #0005;overflow:auto}dialog::backdrop{background:#131b16aa;backdrop-filter:blur(4px)}.detail-sheet{display:grid;grid-template-columns:270px minmax(0,1fr);position:relative}.close-button{position:absolute;right:12px;top:10px;z-index:1;background:var(--surface);border:1px solid var(--line);border-radius:50%;width:44px;height:44px;font-size:27px;line-height:1;color:var(--ink)}.detail-art{background:var(--wash);padding:60px 35px;display:flex;align-items:flex-start;justify-content:center}.detail-art img{width:auto;max-width:100%;height:auto;max-height:350px;object-fit:contain;box-shadow:var(--shadow);border-radius:2px 4px 4px 2px}.detail-art .fallback-cover{width:200px;height:300px;padding:20px}.detail-art .fallback-title{font-size:20px}.detail-art .fallback-author{font-size:12px}.detail-body{padding:65px 32px 35px;min-width:0}.detail-body h2{font-size:32px;letter-spacing:-.03em;line-height:1.15;margin-top:12px;overflow-wrap:anywhere}.detail-author{font-size:16px;color:var(--muted);margin-top:13px}.book-facts{margin:25px 0 20px;border-block:1px solid var(--line);padding-block:12px}.fact{display:grid;grid-template-columns:80px 1fr;gap:12px;padding-block:7px;font-size:12px}.fact dt{color:var(--muted)}.fact dd{margin:0;overflow-wrap:anywhere}.detail-note{font-size:14px;margin-bottom:18px;white-space:pre-line}.edition-note{color:var(--muted);font-size:11px;line-height:1.6;margin-bottom:24px}.detail-actions{display:flex;gap:10px;flex-wrap:wrap}.detail-actions .button{font-size:12px;flex:1 1 auto}.detail-actions .text-button{flex-basis:100%;justify-content:flex-start}.copy-sheet{padding:30px;display:flex;gap:18px;flex-direction:column}.copy-sheet h2{font-size:28px}.copy-sheet p{color:var(--muted)}.copy-sheet input{width:100%;padding:12px;border:1px solid var(--line);border-radius:4px;color:var(--ink);background:var(--paper)}#copy-dialog{max-width:540px}.toast{position:fixed;bottom:calc(24px + env(safe-area-inset-bottom,0px));left:50%;transform:translateX(-50%);background:var(--ink);color:var(--paper);padding:13px 22px;border-radius:7px;z-index:100;font-size:13px;box-shadow:var(--shadow);width:max-content;max-width:calc(100vw - 32px);text-align:center}
@media(min-width:1400px){.cover-slot{height:230px}}
@media(max-width:1050px){.book-grid{grid-template-columns:repeat(5,minmax(0,1fr));gap:28px 18px}.featured-books{gap:16px}.featured .cover-slot{height:160px;padding:12px 10px}.toolbar{gap:10px}.sort-control>span{display:none}.view-control button{padding-inline:9px}.cover-slot{height:200px}.hero-row .button{font-size:12px;white-space:nowrap}.hero-row{gap:18px}.desktop-break{display:none}}
@media(max-width:800px){.book-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:28px 18px}.featured-books{grid-template-columns:repeat(3,minmax(0,1fr));gap:24px 18px}.featured .cover-slot{height:190px}.hero-row{display:block}.hero-row .button{margin-top:20px;margin-bottom:0}.cover-slot{height:190px}.toolbar{flex-wrap:wrap;gap:10px}.search{flex-basis:100%}.sort-control{flex:1}.sort-control>span{display:inline}.view-control button{padding-inline:15px}.topline{padding-block:17px}.desktop-only{display:none}html{scroll-padding-top:165px}.detail-sheet{grid-template-columns:220px minmax(0,1fr)}.detail-art{padding-inline:25px}.detail-body{padding-inline:25px}}
@media(max-width:600px){.subject-chips{display:none}.mobile-subject{display:flex;align-items:center;gap:15px;font-size:12px;color:var(--muted)}.mobile-subject select{border:1px solid var(--line);border-radius:5px;background:var(--surface);color:var(--ink);font-size:13px;padding:8px 10px;flex:1;min-width:0;width:100%}.subjects{padding-block:18px 22px}.hero-row{padding-top:28px}.eyebrow{font-size:9px}.lede{font-size:15px;margin-top:17px}.collection-stats{font-size:10px;padding-block:21px}.collection-stats span+span::before{margin-inline:8px}.toolbar{padding-block:10px;gap:7px}.search input{font-size:16px}.sort-control{font-size:11px}.sort-control select{font-size:12px;padding-inline:5px;max-width:112px}.view-control button{font-size:11px;padding:5px 11px;min-height:36px}.subject-chip{min-height:44px}.section-heading h2{font-size:26px}.section-heading{gap:12px;margin-bottom:20px}.featured{padding-top:3px;padding-bottom:28px;margin-bottom:29px}.featured-books{gap:20px 13px}.featured .cover-slot{height:157px;padding:10px 8px}.featured .book-title{font-size:13px}.featured .book-author{font-size:10px}.book-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:26px 13px}.cover-slot{height:159px;padding:10px 8px}.book-title{font-size:14px}.book-author{font-size:10px}.book-subject{font-size:9px}.book-info{padding-top:10px}.fallback-cover{padding:9px 7px}.fallback-title{font-size:10px;-webkit-line-clamp:6}.fallback-mark{font-size:6px}.fallback-author{font-size:7px}.catalog-heading{align-items:flex-start}.catalog-heading>.text-button{font-size:10px;max-width:100px;line-height:1.5;text-align:right;justify-content:flex-end}.footer{align-items:flex-start;padding-block:26px 35px;gap:15px}.footer-title{font-size:19px}.footer p{font-size:11px}.back-top{font-size:10px;padding-top:6px}.wordmark{font-size:9px;gap:9px}.wordmark svg{width:23px}.theme-label select{font-size:10px;padding-right:0}.detail-sheet{grid-template-columns:1fr}.detail-art{padding:28px 50px;min-height:200px}.detail-art img{height:200px;width:auto;max-height:200px}.detail-art .fallback-cover{width:132px;height:200px;padding:12px}.detail-art .fallback-title{font-size:14px}.detail-art .fallback-author{font-size:9px}.detail-body{padding:25px}.detail-body h2{font-size:29px}.detail-author{font-size:14px}.book-facts{margin-top:20px}dialog{max-height:calc(100dvh - 24px)}.copy-sheet{padding:24px}.book-list .book-title{font-size:16px}.book-list .book-card{column-gap:15px}.spine-grid{padding:22px 12px 10px}.active-filters{font-size:11px}}
@media(max-width:380px){.wrap{padding-inline:16px}.book-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:26px 18px}.cover-slot{height:195px}.featured-books{gap:20px 10px}.featured .cover-slot{height:137px;padding-inline:6px}.featured .book-title{font-size:12px}.view-control button{padding-inline:8px}.sort-control>span{display:none}.collection-stats{font-size:9px}.collection-stats span+span::before{margin-inline:6px}.wordmark{letter-spacing:.08em}.book-title{font-size:15px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{transition:none!important;animation:none!important}}
