@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;450;500;550;600;650;700&family=Libre+Caslon+Display&display=swap');

:root{--paper:#efede7;--ink:#292c25;--muted:#777a70;--line:#d5d5c9;--accent:#656c4d;--serif:'Libre Caslon Display',Georgia,serif;--sans:'DM Sans',Arial,sans-serif;color-scheme:light;font-family:var(--sans);font-size:14px;color:var(--ink);background:var(--paper);font-synthesis:none}
*{box-sizing:border-box}body{margin:0}button,input,select{font:inherit}button,a,input,select{-webkit-tap-highlight-color:transparent}button{cursor:pointer;color:inherit}a{color:inherit;text-decoration:none}button{border:0}button:disabled{opacity:.28;cursor:default}button:focus-visible,a:focus-visible{outline:2px solid #8a643e;outline-offset:5px}input:focus-visible,select:focus-visible{outline:2px solid #747e5e;outline-offset:3px}button{touch-action:manipulation}svg{width:20px;height:20px;stroke:currentColor;stroke-width:1.4;fill:none}h1,h2,h3,p{margin:0}button{background:none}.site-shell{max-width:1600px;margin:auto;padding:0 64px}.masthead{height:104px;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between}.wordmark{font-family:var(--serif);font-size:57px;letter-spacing:-3px;line-height:1}.wordmark span{color:#8a8b58}.masthead nav{display:flex;gap:35px;align-items:center;margin-left:35px}.nav-link{height:104px;padding:0 0 3px;color:var(--muted);position:relative;font-size:13px}.nav-link.active{color:var(--ink)}.nav-link.active:after{content:'';position:absolute;bottom:-1px;left:0;right:0;height:2px;background:var(--ink)}.nav-link span{font-size:10px;margin-left:6px;border:1px solid var(--line);border-radius:20px;padding:1px 5px}.button{display:inline-flex;align-items:center;justify-content:center;gap:15px;min-height:42px;padding:0 21px;border-radius:3px;font-size:12px;font-weight:500;transition:background .2s,transform .2s}.button-dark{background:var(--ink);color:#faf9f2}.button-dark:hover{background:#47503e}.plus{font-size:20px;font-weight:400;line-height:1}.button-outline{border:1px solid #b8bbae}.introduction{display:flex;align-items:center;justify-content:space-between;padding:61px 0 58px;gap:40px}.eyebrow{font-size:9px;letter-spacing:1.8px;font-weight:600;display:flex;align-items:center;gap:9px}.little-dot{width:5px;height:5px;border-radius:50%;background:#7b825d;display:inline-block;flex-shrink:0}h1{font-family:var(--serif);font-size:clamp(56px,5.8vw,86px);font-weight:400;line-height:.99;letter-spacing:-2px;margin-top:23px}h1 em{font-weight:400;color:#737b5b;line-height:1.09}.intro-note{width:238px;margin-top:16px;font-size:13px;line-height:1.7}.intro-note .muted{font-size:12px;margin-top:12px}.muted{color:var(--muted)}.open-book-drawing{width:67px;height:47px;margin-bottom:13px;color:#626c51;transform:rotate(-7deg)}.collection-topline{border-top:1px solid var(--line);padding:23px 0 19px;display:flex;align-items:center;justify-content:space-between;gap:20px}.collection-heading{display:flex;align-items:center;gap:17px}.collection h2{font-family:var(--serif);font-size:30px;font-weight:400}.count-label{font-size:9px;letter-spacing:1.2px;color:var(--muted);padding-top:5px}.collection-actions{display:flex;gap:25px;align-items:center}.search-box{display:flex;align-items:center;gap:9px}.search-box svg{width:15px;height:15px;color:var(--muted)}.search-box input{background:none;border:none;padding:6px 0;color:var(--ink);font-size:12px;max-width:150px}.search-box input::placeholder{color:#85877d}.view-toggle{display:flex;border:1px solid var(--line);border-radius:4px;padding:3px;gap:2px}.view-toggle button{height:27px;width:30px;display:grid;place-items:center;border-radius:2px;color:#85877d}.view-toggle button.selected{background:#dadbd0;color:var(--ink)}.view-toggle svg{width:15px;height:15px}.filter-row{display:flex;justify-content:space-between;align-items:center;margin-bottom:32px}.filters{display:flex;gap:8px}.filters button{font-size:11px;padding:7px 14px;color:var(--muted);border-radius:3px}.filters button.active{background:#dfe1d5;color:#404932}.filters button:not(.active):hover{background:#e7e7de}.sort-label{font-size:10px;color:var(--muted);display:flex;gap:5px;align-items:center}.sort-label select{font-size:11px;background:none;border:0;color:var(--ink);padding:3px 0;cursor:pointer}.book-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:31px}.book-card{min-width:0;position:relative}.book-pedestal{height:326px;display:flex;align-items:center;justify-content:center;position:relative;background:radial-gradient(ellipse at 45% 40%,#e6e5dc 10%,#e4e3d9 75%);overflow:hidden;border-radius:2px}.book-open{display:block;position:relative;width:73%;height:81%;perspective:1000px;padding:0;border-radius:1px;outline-offset:10px!important}.book-cover{height:100%;position:relative;width:100%;text-align:left;box-shadow:2px 3px 1px #0002,7px 10px 10px #0002,12px 17px 20px #0002;transform:rotate(-5deg) rotateY(-9deg);transform-style:preserve-3d;transition:transform .45s cubic-bezier(.2,.75,.3,1),box-shadow .45s;background:var(--cover);color:var(--cover-ink,#eeebdd);border-radius:1px 3px 3px 1px;isolation:isolate}.book-cover:before{content:'';position:absolute;inset:0;z-index:4;pointer-events:none;background:linear-gradient(90deg,#0006,transparent 2%,#ffffff18 3%,#0003 4%,transparent 6%,transparent 96%,#0002),repeating-linear-gradient(0deg,#ffffff05 0 1px,transparent 1px 3px),repeating-linear-gradient(90deg,#00000005 0 1px,transparent 1px 3px);border-radius:inherit}.book-open:hover .book-cover{transform:rotate(-1deg) translateY(-10px) rotateY(-6deg);box-shadow:4px 8px 2px #0001,12px 22px 22px #0002}.book-open:active .book-cover{transform:rotate(0) translateY(-5px)}.book-cover.moss{--cover:#414c3d}.book-cover.rust{--cover:#ae5438}.book-cover.slate{--cover:#313b48}.book-cover.sand{--cover:#c5baa0;--cover-ink:#353b32}.cover-content{position:absolute;inset:25px 21px 18px 25px;display:flex;flex-direction:column;overflow:hidden}.cover-series{font-size:6px;letter-spacing:1.7px;font-weight:500;opacity:.7}.cover-title{font-family:var(--serif);font-size:38px;font-weight:400;letter-spacing:-1.2px;line-height:.94;overflow-wrap:anywhere;margin-top:22px}.cover-subtitle{font-size:6px;letter-spacing:1.4px;line-height:1.6;margin-top:10px;opacity:.75}.cover-bottom{font-size:6px;letter-spacing:1.5px;margin-top:auto;display:flex;justify-content:space-between}.cover-art{position:absolute;left:0;right:0;top:46%;bottom:14%;opacity:.6}.moss .cover-art{border:1px solid #d9dcc950;border-radius:48% 48% 0 0;left:18%;right:18%;top:50%;bottom:18%;background:linear-gradient(0deg,#cad1b323,transparent)}.moss .cover-art:before,.moss .cover-art:after{content:'';position:absolute;border:1px solid #d9dcc950;border-radius:50% 50% 0 0;inset:12% 15% 0}.moss .cover-art:after{inset:25% 30% 0}.rust .cover-title{font-size:48px}.rust .cover-art{background:repeating-linear-gradient(122deg,transparent 0 10px,#f3d5b8 10px 11px,transparent 11px 20px);top:52%;bottom:16%;left:-35px;right:-35px;transform:rotate(-8deg);opacity:.28}.slate .cover-title{font-size:43px;margin-top:40px}.slate .cover-art{top:15%;left:60%;right:0;bottom:auto;width:34px;height:34px;border-radius:50%;background:#d7d6bb;box-shadow:0 0 35px #f4f0cc10}.slate .cover-subtitle{margin-top:18px}.sand .cover-title{font-size:43px;line-height:.85}.sand .cover-art{inset:50% 4% 17%;border:1px solid #474f3c55;background:linear-gradient(90deg,transparent 49.5%,#474f3c55 49.5% 50%,transparent 50%),linear-gradient(0deg,transparent 49.5%,#474f3c55 49.5% 50%,transparent 50%);transform:rotate(-10deg)}.sand .cover-art:after{content:'N';font-family:var(--serif);font-size:23px;position:absolute;inset:0;display:grid;place-items:center;transform:rotate(10deg)}.book-card:nth-child(2) .book-cover{transform:rotate(3deg) rotateY(-7deg)}.book-card:nth-child(3) .book-cover{transform:rotate(-3deg) rotateY(-7deg)}.book-card:nth-child(4) .book-cover{transform:rotate(5deg) rotateY(-7deg)}.book-card .book-open:hover .book-cover{transform:translateY(-10px) rotate(0) rotateY(-6deg)}.cover-open-label{position:absolute;bottom:11px;left:0;right:0;font-size:8px;letter-spacing:1.6px;opacity:0;transition:opacity .3s;color:#555d49;pointer-events:none;text-align:center}.book-pedestal:hover .cover-open-label{opacity:1}.book-meta{padding-top:18px;display:flex;align-items:flex-start;justify-content:space-between;gap:6px}.book-meta h3{font-family:var(--serif);font-size:25px;font-weight:400;overflow-wrap:anywhere}.book-description{font-size:10px;color:var(--muted);line-height:1.8;margin-top:4px}.book-category{font-size:8px;letter-spacing:1.4px;display:block;margin-top:13px;color:#737a62}.bookmark-button{padding:5px;margin-top:0;color:#777e6d;flex-shrink:0}.bookmark-button svg{width:16px;height:19px}.bookmark-button[aria-pressed=true] svg{fill:#737b5b;color:#737b5b}.sample-chip{position:absolute;top:12px;right:12px;font-size:7px;letter-spacing:1.1px;color:#73776a}.shelf-caption{display:flex;justify-content:space-between;margin-top:31px;padding:20px 0;border-top:1px solid var(--line);color:var(--muted);font-size:10px;gap:20px}.shelf-caption>span:first-child{display:flex;gap:8px;align-items:center}.shelf-caption>span:last-child{font-size:8px;letter-spacing:1.2px}.shelf-caption>span:last-child span{margin-left:11px;font-size:15px}.reading-note{margin:51px 0 45px;padding:27px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line);display:grid;grid-template-columns:1fr 1.45fr 1fr;align-items:center;gap:35px}.note-number{font-size:8px;letter-spacing:1.4px;align-self:start;margin-top:10px;color:var(--muted)}.reading-note p{font-family:var(--serif);font-size:37px;line-height:1.06}.reading-note p em{color:#737b5b}.reading-note>div{font-size:11px;line-height:1.8;color:var(--muted)}.framework-label{font-size:7px;letter-spacing:1.3px;display:block;margin-top:17px}footer{display:flex;justify-content:space-between;align-items:center;padding-bottom:28px;color:var(--muted);gap:18px}footer .wordmark.small{font-size:34px;letter-spacing:-1px;color:var(--ink)}footer p{font-size:10px}footer>span{font-size:8px;letter-spacing:1.5px}.book-grid.list{grid-template-columns:1fr;gap:0}.book-grid.list .book-card{display:flex;align-items:center;gap:35px;padding:22px 0;border-bottom:1px solid var(--line)}.book-grid.list .book-pedestal{width:130px;height:158px;flex-shrink:0}.book-grid.list .book-open{width:65%;height:82%}.book-grid.list .cover-content{inset:9px 8px 9px 11px}.book-grid.list .cover-title{font-size:22px;margin-top:13px}.book-grid.list .cover-series,.book-grid.list .cover-bottom{font-size:3px;letter-spacing:.6px}.book-grid.list .cover-subtitle{font-size:3px;margin-top:5px}.book-grid.list .slate .cover-art{width:15px;height:15px}.book-grid.list .sample-chip{display:none}.book-grid.list .book-meta{flex:1;padding:0}.book-grid.list .cover-open-label{display:none}.empty-state{text-align:center;padding:60px 20px 80px}.empty-state[hidden]{display:none}.empty-glyph{font:48px var(--serif);color:#8a917a}.empty-state h3{font:32px var(--serif);margin:12px 0}.empty-state p{color:var(--muted);margin-bottom:20px;font-size:13px}.skip-link{position:fixed;top:-80px;left:20px;background:var(--ink);color:white;padding:12px;z-index:100}.skip-link:focus{top:15px}

/* A real two-sided paper leaf rotates around the center binding. */
body.reading{overflow:hidden}.reader{--table:#deded2;--reader-ink:#383e30;--reader-line:#535d3324;position:fixed;inset:0;width:100vw;max-width:none;height:100dvh;max-height:none;margin:0;padding:0;border:0;background:var(--table);color:var(--reader-ink);overflow:hidden}.reader::backdrop{background:#deded2}.reader[open]{display:flex;flex-direction:column;animation:reader-enter .5s both}.reader.dark-table{--table:#343a31;--reader-ink:#dfe2d3;--reader-line:#d7e1cc26;color-scheme:dark}.reader-header{height:93px;flex-shrink:0;display:flex;align-items:center;justify-content:space-between;padding:0 40px;border-bottom:1px solid var(--reader-line);position:relative;z-index:6}.text-button{font-size:11px;display:flex;align-items:center;gap:10px}.text-button>span{font-size:21px}.reader-heading{text-align:center;position:absolute;left:50%;transform:translateX(-50%);max-width:40%}.reader-heading .eyebrow{font-size:7px;justify-content:center;opacity:.6;margin-bottom:7px}.reader-heading h2{font:27px var(--serif);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.reader-tools{display:flex;gap:10px}.icon-button{display:inline-grid;place-items:center;width:36px;height:36px;border-radius:50%;font-size:25px;transition:background .2s}.icon-button:hover:not(:disabled){background:#7c866119}.tabletop{position:relative;flex:1;min-height:0;display:flex;align-items:center;justify-content:center;flex-direction:column;background:radial-gradient(ellipse at 50% 38%,#ffffff15 0%,transparent 70%),repeating-linear-gradient(0deg,#ffffff03 0 1px,transparent 1px 3px);perspective:1800px;overflow:hidden}.table-note{position:absolute;top:22px;left:0;right:0;text-align:center;font-size:7px;letter-spacing:2px;opacity:.4}.book-stage{padding-top:10px;filter:drop-shadow(0 24px 22px #0002);animation:book-enter .8s cubic-bezier(.2,.7,.2,1) both;perspective:1800px}.book-spread{width:min(1020px,calc((100dvh - 280px)*1.46),calc(100vw - 120px));aspect-ratio:1.46;position:relative;display:flex;perspective:1900px;box-shadow:0 1px 0 #aaa999,0 3px 0 #e4e1d5,0 4px 0 #b8b7a6,0 6px 0 #e4e1d5,0 7px 0 #a1a294,0 10px 0 var(--binding,#424d3c),0 12px 10px #0002;border-radius:3px 5px 5px 3px;touch-action:pan-y;user-select:none}.paper-page{width:50%;height:100%;position:relative;overflow:hidden;background:#f8f5eb;color:#34382e;flex-shrink:0;cursor:pointer}.page-left{border-radius:3px 0 0 2px;background:linear-gradient(90deg,#eeeadd 0,#f8f5eb 3%,#f8f5eb 86%,#eeeadf 97%,#d0ccbf 100%)}.page-right{border-radius:0 3px 2px 0;background:linear-gradient(90deg,#d2cec2 0,#efebdf 3%,#f8f5eb 14%,#f8f5eb 97%,#eeeadd 100%)}.book-gutter{position:absolute;left:calc(50% - 1px);width:2px;top:0;bottom:0;background:#69685848;box-shadow:0 0 12px #53504412;z-index:4;pointer-events:none}.page-inner{height:100%;padding:10% 11% 9%;position:relative;display:flex;flex-direction:column}.page-kicker{font-size:clamp(5px,.63vw,9px);letter-spacing:1.8px;opacity:.5}.page-folio{position:absolute;bottom:5%;font-size:clamp(5px,.65vw,9px);letter-spacing:1px;opacity:.5}.page-left .page-folio{left:11%}.page-right .page-folio{right:11%}.half-title{justify-content:center;align-items:center;text-align:center}.half-title .tiny-mark{font:clamp(18px,3vw,42px) var(--serif);color:#788066;margin-bottom:17%}.half-title h3{font:clamp(16px,2.6vw,38px) var(--serif);margin:0 0 6%;overflow-wrap:anywhere;max-width:100%}.half-title p{font-size:clamp(5px,.66vw,10px);color:#81846f;letter-spacing:1px}.title-page{justify-content:center}.title-page h3{font-family:var(--serif);font-size:clamp(25px,5vw,69px);line-height:.98;font-weight:400;letter-spacing:-1.5px;margin:10% 0 9%;overflow-wrap:anywhere}.title-page .page-subtitle{font-size:clamp(6px,.75vw,11px);line-height:1.8;color:#7d826e}.title-page .page-rule{width:30px;height:1px;background:#8e967b;margin:8% 0}.title-page .byline{font-size:clamp(5px,.65vw,9px);letter-spacing:1.5px}.photo-placeholder{background:#e5e5da;position:relative;flex:1;min-height:0;display:flex;align-items:center;justify-content:center;flex-direction:column;color:#9a9e8d}.photo-placeholder:before{content:'';position:absolute;inset:8%;border:1px solid #929a7e25}.photo-placeholder .placeholder-icon{font-family:var(--serif);font-size:clamp(21px,4vw,52px);font-style:italic;opacity:.35}.photo-placeholder span:last-child{font-size:clamp(4px,.5vw,8px);letter-spacing:1.6px;margin-top:8px;opacity:.7}.photo-placeholder.landscape-slot{flex:0 0 55%;margin:auto 0}.photo-placeholder.full-slot{margin:-12% -14% -12%;background:#d5d8ca}.photo-caption{font-size:clamp(5px,.57vw,8px);line-height:1.7;color:#929580;margin-top:8%;display:flex;justify-content:space-between;gap:10px}.spread-label{font-size:clamp(4px,.51vw,8px);letter-spacing:1.3px;color:#959b84;margin-bottom:8%}.quiet-page{justify-content:center}.quiet-page h3{font:clamp(24px,4.5vw,62px)/1.05 var(--serif);color:#767e62}.quiet-page p{font-size:clamp(6px,.76vw,11px);line-height:1.8;margin-top:10%;color:#8a9079}.quiet-page .page-kicker{margin-bottom:13%}.page-leaf{position:absolute;top:0;left:50%;width:50%;height:100%;transform-origin:left center;transform-style:preserve-3d;z-index:5;pointer-events:none;will-change:transform}.leaf-face{position:absolute;inset:0;width:100%;height:100%;backface-visibility:hidden;-webkit-backface-visibility:hidden}.leaf-back{transform:rotateY(180deg)}.leaf-front:after,.leaf-back:after{content:'';position:absolute;inset:0;background:linear-gradient(90deg,#0001,transparent 35%);pointer-events:none}.reader-hint{position:absolute;bottom:18px;left:0;right:0;text-align:center;font-size:9px;opacity:.5;letter-spacing:.3px}.reader-hint kbd{font-family:inherit;font-size:11px;border:1px solid currentColor;padding:0 3px;border-radius:3px;margin-left:4px}.reader-footer{height:73px;padding:0 40px;flex-shrink:0;border-top:1px solid var(--reader-line);margin:0;color:var(--reader-ink)}.reader-footer .text-button svg{width:16px;height:16px}.page-navigation{display:flex;align-items:center;gap:22px;position:absolute;left:50%;transform:translateX(-50%)}#page-counter{font-size:10px;letter-spacing:1px;min-width:94px;text-align:center}.reader-edition{opacity:.5;font-size:8px;letter-spacing:1.4px}.reader-index{position:absolute;bottom:73px;left:50%;transform:translateX(-50%);width:min(700px,calc(100vw - 32px));background:#f5f2e9;color:#3b4133;padding:24px;z-index:10;border-radius:5px 5px 0 0;box-shadow:0 -10px 60px #0002}.reader-index[hidden]{display:none}.index-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:18px}.index-header h3{font:27px var(--serif)}.spread-thumbnails{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}.spread-thumbnail{padding:12px 7px;border:1px solid #d8d8ca;background:#eeeee4;border-radius:2px;font-size:10px}.spread-thumbnail.selected{border-color:#626f4e;box-shadow:0 0 0 1px #626f4e}.mini-spread{height:65px;background:linear-gradient(90deg,#f9f5e9 49%,#c8cbb8 50%,#f9f5e9 51%);box-shadow:0 3px 6px #0001;margin-bottom:12px;display:flex;align-items:center;justify-content:center;font:19px var(--serif);gap:25px}.spread-thumbnail small{display:block;font-size:8px;opacity:.6;margin-top:5px}.small-dialog{width:min(470px,calc(100vw - 30px));max-height:calc(100dvh - 36px);overflow-y:auto;padding:40px;background:#f5f2ea;color:var(--ink);border:1px solid #ddded1;border-radius:5px;box-shadow:0 20px 100px #0003}.small-dialog::backdrop{background:#242b2470;backdrop-filter:blur(5px)}.small-dialog h2{font:40px/1.05 var(--serif);margin:20px 0 15px;letter-spacing:-.6px}.small-dialog>p,.dialog-intro{font-size:12px;color:var(--muted);line-height:1.8;margin-bottom:22px}.small-dialog>.eyebrow{font-size:8px}.dialog-close{position:absolute;top:10px;right:10px}.field-label{font-size:10px;display:block;margin-bottom:8px;font-weight:550}.form-input{width:100%;height:40px;background:#fdfbf5;border:1px solid #d7d9ca;border-radius:2px;padding:10px;font-size:12px;color:var(--ink)}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin:20px 0}.cover-options{border:0;padding:0;display:flex;gap:22px;margin:23px 0 18px}.cover-options label{display:flex;align-items:center;flex-direction:column;gap:7px;font-size:9px;cursor:pointer;color:var(--muted)}.cover-options input{appearance:none;background:var(--swatch);width:32px;height:37px;border-radius:2px;margin:3px;cursor:pointer}.cover-options input:checked{outline:1px solid var(--swatch);outline-offset:3px}.local-note{font-size:10px;color:var(--muted);line-height:1.7;margin:20px 0}.create-button{width:100%;justify-content:space-between}.toast{position:fixed;left:50%;bottom:25px;transform:translate(-50%,20px);z-index:1000;background:#30382b;color:#faf9f2;padding:12px 22px;border-radius:3px;font-size:12px;box-shadow:0 5px 25px #0002;opacity:0;transition:.25s;pointer-events:none;max-width:calc(100vw - 30px);text-align:center}.toast.show{opacity:1;transform:translate(-50%,0)}@keyframes reader-enter{from{opacity:0}to{opacity:1}}@keyframes book-enter{from{opacity:0;transform:translateY(32px) rotateX(6deg) scale(.94)}to{opacity:1;transform:translateY(0) rotateX(0) scale(1)}}

@media(min-width:1500px){.book-pedestal{height:370px}.cover-title{font-size:46px}.rust .cover-title{font-size:57px}.slate .cover-title{font-size:50px}.sand .cover-title{font-size:50px}}
@media(max-width:1100px){.site-shell{padding:0 38px}.book-grid{gap:22px}.book-pedestal{height:280px}.cover-content{inset:20px 15px 17px 20px}.cover-title{font-size:32px}.rust .cover-title{font-size:40px}.slate .cover-title{font-size:36px}.sand .cover-title{font-size:36px}.cover-series{font-size:5px;letter-spacing:1px}.cover-subtitle,.cover-bottom{font-size:5px}.intro-note{width:210px}.reading-note{grid-template-columns:.8fr 1.4fr 1fr;gap:25px}.note-number{font-size:7px}.reading-note p{font-size:34px}}
@media(max-width:850px){.site-shell{padding:0 28px}.masthead nav{gap:21px;margin-left:0}.introduction{padding:48px 0}.intro-note{width:180px;font-size:12px}.book-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:35px 25px}.book-pedestal{height:340px}.book-open{width:65%;height:82%}.cover-content{inset:25px 20px 18px 25px}.cover-title{font-size:39px}.rust .cover-title{font-size:48px}.slate .cover-title{font-size:43px}.sand .cover-title{font-size:43px}.cover-series{font-size:6px}.cover-subtitle,.cover-bottom{font-size:6px}.reading-note{grid-template-columns:1fr 1fr}.note-number{grid-column:1/-1}.reading-note{gap:15px;margin-top:35px}.reader-header{padding:0 22px}.reader-footer{padding:0 22px}.reader-edition{display:none}.book-spread{width:min(calc((100dvh - 280px)*1.46),calc(100vw - 55px))}.page-inner{padding:10% 10% 9%}.title-page h3{font-size:6vw}.half-title h3{font-size:3.7vw}.page-kicker{font-size:7px}.page-folio{font-size:6px}.page-subtitle,.title-page .page-subtitle{font-size:8px}.title-page .byline{font-size:6px}.half-title p{font-size:7px}.photo-caption{font-size:6px}.spread-label{font-size:6px}.quiet-page p{font-size:8px}.photo-placeholder span:last-child{font-size:6px}}
@media(max-width:580px){.site-shell{padding:0 20px}.masthead{height:85px;flex-wrap:wrap}.wordmark{font-size:48px}.masthead nav{order:3;width:100%;justify-content:center;gap:30px;height:44px;margin-top:15px;border-bottom:1px solid var(--line)}.masthead .nav-link{height:44px;font-size:11px}.masthead{border-bottom:0;margin-bottom:44px}.masthead .button{min-height:35px;padding:0 13px;font-size:10px;gap:10px}.introduction{padding:37px 0 35px;display:block}.eyebrow{font-size:7px;letter-spacing:1.4px}h1{font-size:54px;letter-spacing:-1.5px;margin-top:20px}.intro-note{width:auto;display:flex;align-items:center;gap:14px;margin-top:23px;font-size:11px;line-height:1.6}.open-book-drawing{width:43px;height:36px;margin:0;flex-shrink:0}.intro-note .muted{display:none}.collection-topline{flex-wrap:wrap;padding:19px 0 14px;gap:18px}.collection h2{font-size:27px}.count-label{font-size:8px}.collection-heading{gap:12px}.collection-actions{gap:12px}.search-box input{max-width:95px;font-size:11px}.search-box{gap:5px}.view-toggle{display:none}.filter-row{gap:10px;align-items:flex-start;margin-bottom:23px}.filters{gap:2px;flex-wrap:wrap}.filters button{font-size:10px;padding:6px 9px}.sort-label{font-size:0;padding-top:2px}.sort-label select{font-size:9px;max-width:88px}.book-grid{gap:27px 15px}.book-pedestal{height:235px}.book-open{width:76%;height:78%}.cover-content{inset:16px 10px 13px 16px}.cover-title{font-size:28px;margin-top:19px;letter-spacing:-.7px}.rust .cover-title{font-size:34px}.slate .cover-title{font-size:31px;margin-top:33px}.sand .cover-title{font-size:30px}.cover-series{font-size:4px;letter-spacing:.8px}.cover-subtitle{font-size:4px;letter-spacing:.9px;margin-top:7px}.cover-bottom{font-size:4px;letter-spacing:.8px}.slate .cover-art{width:25px;height:25px}.sample-chip{top:8px;right:8px;font-size:5px}.book-meta{padding-top:12px}.book-meta h3{font-size:22px;line-height:1.1}.book-description{font-size:9px;line-height:1.6;margin-top:6px}.book-category{font-size:7px;letter-spacing:1px;margin-top:8px}.bookmark-button{padding:1px;margin-top:2px}.bookmark-button svg{width:14px;height:17px}.shelf-caption{font-size:9px;margin-top:22px;padding:17px 0}.shelf-caption>span:last-child{display:none}.reading-note{padding:21px 0;gap:16px 20px;margin-top:20px;margin-bottom:25px}.reading-note p{font-size:29px}.reading-note>div{font-size:9px}.framework-label{font-size:6px;line-height:1.7;letter-spacing:.8px;margin-top:10px}footer p{font-size:8px;max-width:130px;line-height:1.5;text-align:center}footer>span{font-size:6px;letter-spacing:1px}footer .wordmark.small{font-size:30px}.reader-header{height:80px;padding:0 15px}.reader-heading h2{font-size:20px}.reader-heading .eyebrow{font-size:6px}.reader-header .text-button{font-size:0;gap:0}.reader-header .text-button span{font-size:24px}.reader-tools{gap:1px}.reader-tools .icon-button{width:32px;height:32px}.reader-tools svg{width:17px;height:17px}.reader-footer{height:70px;padding:0 15px}.reader-footer .text-button{font-size:0;gap:0}.reader-footer .text-button svg{width:19px;height:19px}.page-navigation{gap:13px}#page-counter{font-size:9px;min-width:88px}.reader-index{bottom:70px;padding:17px}.spread-thumbnails{gap:7px}.spread-thumbnail{font-size:8px;padding:7px 5px}.spread-thumbnail small{font-size:6px}.mini-spread{height:40px;font-size:13px;gap:12px}.book-spread{width:min(calc((100dvh - 280px)*1.46),calc(100vw - 28px))}.table-note{font-size:6px;letter-spacing:1.3px;top:35px}.book-stage{padding:0}.reader-hint{font-size:8px;bottom:33px}.page-kicker{font-size:4px;letter-spacing:.8px}.title-page h3{font-size:7.5vw;letter-spacing:-1px}.title-page .page-subtitle{font-size:5px;line-height:1.6}.title-page .byline{font-size:4px;letter-spacing:.8px}.title-page .page-rule{width:20px}.half-title h3{font-size:4.5vw}.half-title p{font-size:4px;letter-spacing:.6px}.half-title .tiny-mark{font-size:24px}.page-folio{font-size:4px}.photo-caption{font-size:4px}.spread-label{font-size:4px;letter-spacing:.6px}.photo-placeholder span:last-child{font-size:4px;letter-spacing:.7px}.quiet-page h3{font-size:6vw}.quiet-page p{font-size:5px}.small-dialog{padding:33px 25px}.small-dialog h2{font-size:35px}}
@media(max-width:370px){h1{font-size:46px}.book-pedestal{height:205px}.cover-title{font-size:24px}.rust .cover-title{font-size:29px}.slate .cover-title{font-size:27px}.sand .cover-title{font-size:27px}.collection-actions{width:100%}.search-box input{max-width:none;width:100%}.search-box{width:100%}.book-meta h3{font-size:20px}.intro-note{font-size:10px}}
.library-intro{padding:42px 0 31px}.library-intro h1{font-family:var(--sans);font-size:9px;font-weight:600;line-height:1.5;letter-spacing:1.8px;margin:0}.collection{padding-bottom:64px}
@media(max-width:580px){.library-intro{padding:31px 0 25px}.library-intro h1{font-size:7px;letter-spacing:1.4px}.collection{padding-bottom:35px}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;transition-duration:.01ms!important;scroll-behavior:auto!important}.book-open:hover .book-cover{transform:none}}

.form-row.author-only{grid-template-columns:1fr}

/* Original PDF artwork, including paired pages from exported spreads. */
.book-pedestal{container-type:size}
.book-open.pdf-book{width:min(76cqw,calc(80cqh * var(--page-ratio)));height:auto;aspect-ratio:var(--page-ratio)}
.pdf-cover{background:white}.pdf-cover:before{background:linear-gradient(90deg,#0003,transparent 2%,#fff1 3%,#0002 4%,transparent 6%,transparent 98%,#0001)}
.cover-photo{display:block;width:100%;height:100%;object-fit:contain;border-radius:inherit}
.book-grid.list .book-open.pdf-book{width:min(65cqw,calc(80cqh * var(--page-ratio)));height:auto}
.book-spread{--spread-ratio:1.46;--book-margin:120px;width:min(1100px,calc((100dvh - 280px)*var(--spread-ratio)),calc(100vw - var(--book-margin)));aspect-ratio:var(--spread-ratio)}
.pdf-page-image{position:absolute;inset:0;overflow:hidden;background:#fff}
.pdf-page-image img{display:block;position:absolute;top:0;left:0;width:100%;height:100%;max-width:none;object-fit:fill;user-select:none;-webkit-user-drag:none}
.pdf-page-image.crop-left img,.pdf-page-image.crop-right img{width:200%}
.pdf-page-image.crop-right img{left:-100%}
.blank-endpaper{position:absolute;inset:0;background:#f7f5ee}
.pdf-reader .paper-page:after{content:'';position:absolute;inset:0;pointer-events:none}
.pdf-reader .page-left:after{box-shadow:inset -8px 0 13px -10px #0005}
.pdf-reader .page-right:after{box-shadow:inset 8px 0 13px -10px #0005}
.reader-index{width:min(940px,calc(100vw - 32px));max-height:calc(100dvh - 180px);overflow:auto}
.spread-thumbnails{grid-template-columns:repeat(5,minmax(0,1fr));max-height:min(300px,calc(100dvh - 290px));overflow:auto;padding:2px 3px 6px}
.spread-thumbnail{min-width:0}.spread-thumbnail>span:last-child{display:block;font-size:9px}
.mini-spread.real-thumbnail{height:auto;gap:0;align-items:stretch;justify-content:normal;background:#f7f5ee;overflow:hidden;margin-bottom:9px}
.thumbnail-page{position:relative;display:block;width:50%;height:100%;overflow:hidden}.thumbnail-page+.thumbnail-page{border-left:1px solid #a8a89955}
.blank-page-number{display:grid;place-items:center;height:100%;font:16px var(--serif);color:#8a907c}
.zoom-dialog{position:fixed;inset:0;margin:0;padding:0;width:100vw;height:100dvh;max-width:none;max-height:none;border:0;background:#252a23;color:#efeee5}
.zoom-dialog[open]{display:flex;flex-direction:column}.zoom-dialog::backdrop{background:#252a23}
.zoom-header{height:65px;flex-shrink:0;padding:0 24px;display:flex;align-items:center;justify-content:space-between;gap:20px;border-bottom:1px solid #ffffff1c}
.zoom-header>span{font-size:12px}.zoom-header>div{display:flex;align-items:center;gap:20px}
.zoom-scroll{flex:1;min-height:0;overflow:auto;padding:16px;overscroll-behavior:contain}
.zoom-spread{display:flex;position:relative;flex-shrink:0;margin:0 auto;background:#f7f5ee}
.zoom-page{position:relative;display:block;width:50%;height:100%;overflow:hidden}.zoom-page+.zoom-page{border-left:1px solid #a8a89955}
@media(max-width:850px){.book-spread{--book-margin:55px}.spread-thumbnails{grid-template-columns:repeat(4,minmax(0,1fr))}}
@media(max-width:580px){.book-spread{--book-margin:28px}.book-open.pdf-book{width:min(78cqw,calc(80cqh * var(--page-ratio)))}.reader-tools{gap:0}.reader-tools .icon-button{width:28px}.reader-heading{max-width:45%}.reader-heading h2{font-size:18px}.reader-tools svg{width:15px;height:15px}.spread-thumbnails{grid-template-columns:repeat(3,minmax(0,1fr))}.spread-thumbnail>span:last-child{font-size:8px}.zoom-header{padding:0 15px}.zoom-header>span{font-size:10px}}

/* Covers sit alone in the center; opening keeps each leaf at the same scale. */
.book-spread[data-cover="front"]{transform:translateX(-25%)}
.book-spread[data-cover="back"]{transform:translateX(25%)}
.book-spread[data-cover="front"],.book-spread[data-cover="back"],.book-spread[data-cover="turning"]{box-shadow:none}
.book-spread[data-cover="front"]>.page-left,.book-spread[data-cover="back"]>.page-right{visibility:hidden;pointer-events:none}
.book-spread[data-cover="front"]>.page-right,.book-spread[data-cover="back"]>.page-left{border-radius:2px;box-shadow:0 2px 3px #0003,0 8px 14px #0001}
.book-spread[data-cover="front"]>.book-gutter,.book-spread[data-cover="back"]>.book-gutter,.book-spread[data-cover="turning"]>.book-gutter{visibility:hidden}
.book-spread[data-cover="front"]>.page-right:after,.book-spread[data-cover="back"]>.page-left:after{box-shadow:none}
.thumbnail-page:only-child,.zoom-page:only-child{width:100%}
.mini-spread.single-cover{width:50%;margin-left:auto;margin-right:auto}

.page-correction{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;user-select:none}

/* A quiet owner entrance below the shelf, with a comfortable touch target. */
.library-footer{justify-content:flex-end;padding:0 0 20px}
.owner-entry{display:grid;place-items:center;width:44px;height:44px;border-radius:50%;color:#878b7b;transition:color .2s,background .2s}
.owner-entry span{width:5px;height:5px;background:currentColor;border-radius:50%}
.owner-entry:hover,.owner-entry:focus-visible{color:var(--ink);background:#747e5e0c}

/* Fit the actual reading area, with no desktop width cap. */
.reader-header{height:76px;padding:0 clamp(16px,2.5vw,40px)}
.reader-footer{height:58px;padding:0 clamp(16px,2.5vw,40px)}
.tabletop{padding:0 0 18px}
.book-stage{flex-shrink:0;padding:0}
.book-spread{max-width:none;flex-shrink:0}
.reader-hint{bottom:9px;font-size:10px}
.reader-index{bottom:58px}
.book-spread[data-cover="single"]{transform:translateX(-25%);box-shadow:none}
.book-spread[data-cover="single"]>.page-left{visibility:hidden;pointer-events:none}
.book-spread[data-cover="single"]>.page-right{border-radius:2px;box-shadow:0 2px 3px #0002,0 12px 22px #0002}
.book-spread[data-cover="single"]>.book-gutter{visibility:hidden}
.book-spread[data-cover="single"]>.page-right:after{box-shadow:none}
.single-page-reader .reader-hint{font-size:9px}
@media(max-width:700px) and (orientation:portrait){
  .reader-header{height:66px;padding:0 12px}.reader-footer{height:56px;padding:0 12px}
  .reader-heading h2{font-size:21px}.reader-heading{max-width:48%}
  .reader-index{bottom:56px}.reader-tools .icon-button{width:32px;height:40px}
  .reader-header .text-button{font-size:0}.reader-header .text-button span{font-size:26px}
  .reader-footer .text-button{font-size:0}.page-navigation{gap:12px}
  .page-navigation .icon-button{width:44px;height:44px}.reader-edition{display:none}
  .reader-tools #fullscreen{display:none}
}
@media(max-height:550px){
  .reader-header{height:48px}.reader-footer{height:44px}.reader-heading .eyebrow,.reader-hint{display:none}
  .reader-heading h2{font-size:21px}.tabletop{padding-bottom:0}.reader-index{bottom:44px}
}
/* Composited zoom avoids relayout while dragging or pinching. */
.zoom-dialog[open]{animation:reader-enter .18s both}
.zoom-header{height:64px;padding:0 18px;gap:12px}
.zoom-header>span{min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.zoom-header>div{gap:7px;flex-shrink:0}
.zoom-header .icon-button{width:40px;height:44px}
#zoom-scale{min-height:44px;padding:0 8px;font-size:12px}
#zoom-level{font-size:11px;min-width:39px;text-align:center;font-variant-numeric:tabular-nums;color:#d8dbd2}
.zoom-scroll{position:relative;overflow:hidden;padding:0;touch-action:none;cursor:zoom-in;outline-offset:-4px}
.zoom-scroll.can-pan{cursor:grab}.zoom-scroll.dragging{cursor:grabbing}
.zoom-spread{position:absolute;top:0;left:0;margin:0;transform-origin:0 0;will-change:transform;user-select:none;box-shadow:0 10px 45px #0005}
@media(max-width:580px){.zoom-header{height:58px;padding:0 8px;gap:5px}.zoom-header>div{gap:0}.zoom-header .icon-button{width:34px}.zoom-header>span{font-size:10px}#zoom-scale{padding:0 5px}#zoom-level{min-width:34px;font-size:10px}}
