/* One full-viewport library. All navigation belongs to the bookcase. */
.library-header{position:fixed;inset:4px 0 auto;z-index:3;display:flex;align-items:center;justify-content:space-between;padding:23px 36px;pointer-events:none;background:linear-gradient(#e9e5ddf5,#e9e5dd00)}.library-header>*{pointer-events:auto}.collection-title{position:absolute;left:50%;transform:translateX(-50%);text-align:center}.collection-title h1{font-size:28px;color:var(--navy);letter-spacing:-.04em;margin:0 0 4px}.collection-title>span{font-size:10px;color:var(--muted)}.guide-link{padding:8px 0;background:transparent;border:0;border-bottom:1px solid #1a2b4a44;font-size:12px}.guide-link span{margin-left:12px}.library-room{position:relative;height:100dvh;min-height:380px;isolation:isolate}.filter-row{position:absolute;z-index:3;top:100px;left:50%;transform:translateX(-50%);display:flex;gap:3px;padding:5px;background:#f8f6f2c4;backdrop-filter:blur(12px);border:1px solid #1a2b4a14;border-radius:30px;white-space:nowrap;max-width:calc(100% - 40px);overflow-x:auto;scrollbar-width:none}.filter-row::-webkit-scrollbar{display:none}.filter{border:0;border-radius:22px;background:transparent;padding:8px 13px;color:#525d69;font-size:11px}.filter.active{background:var(--navy);color:var(--paper)}.filter:hover:not(.active){background:#1a2b4a0c}#shelf-stage{position:absolute;inset:0;touch-action:none;cursor:grab}#shelf-stage:active{cursor:grabbing}#shelf-stage canvas{display:block;width:100%;height:100%}#shelf-stage:focus-visible{outline-offset:-6px}#shelf-loading{position:absolute;inset:45% 0 auto;text-align:center;font:12px var(--mono);color:var(--muted)}#shelf-labels{position:absolute;inset:0;pointer-events:none;z-index:1}.shelf-label{position:absolute;transform:translate(-50%,-50%);display:flex;align-items:center;gap:10px;color:var(--navy);font:9px var(--mono);letter-spacing:.08em;white-space:nowrap;background:#f8f6f2e0;border:1px solid #1a2b4a16;border-radius:3px;padding:6px 12px;box-shadow:0 2px 3px #0e1b3010;transition:opacity .25s}.shelf-label i{width:5px;height:5px;border-radius:50%;background:var(--tone)}.shelf-position{position:absolute;right:28px;top:48%;display:grid;justify-items:center;gap:12px;z-index:2}.shelf-position button{border:1px solid #1a2b4a33;background:#f8f6f2bb;border-radius:50%;width:32px;height:32px}.shelf-position span{font:9px var(--mono);writing-mode:vertical-rl;letter-spacing:.12em;color:var(--muted)}.shelf-controls{position:absolute;z-index:2;left:50%;bottom:58px;transform:translateX(-50%);width:min(660px,calc(100% - 80px));display:grid;grid-template-columns:46px 1fr 46px;align-items:center;gap:24px;text-align:center}.shelf-controls[hidden]{display:none}.round-control{width:46px;height:46px;border:1px solid #1a2b4a33;border-radius:50%;font-size:22px;background:#f8f6f2bb;backdrop-filter:blur(8px)}.round-control:hover{background:var(--paper)}.shelf-caption{display:flex;align-items:center;flex-direction:column;gap:4px}.shelf-caption #shelf-category{font:9px var(--mono);letter-spacing:.1em;color:var(--muted)}.shelf-caption strong{font:600 26px/1.2 var(--serif);letter-spacing:-.02em;color:var(--navy)}#shelf-subtitle{font-size:11px;color:var(--muted)}#shelf-open{margin-top:6px;padding:3px 0;background:transparent;border:0;border-bottom:1px solid #1a2b4a66;color:var(--navy);font-size:12px}#shelf-open span{margin-left:14px}.library-hints{position:absolute;z-index:2;inset:auto 30px 14px;display:flex;align-items:center;gap:20px;color:var(--muted);font-size:10px}.library-hints p{margin:0 auto 0 0}.library-hints button{font-size:10px;border:0;background:transparent;padding:6px 0;color:var(--muted)}.library-hints button:hover{text-decoration:underline}.hint-divider{padding:0 10px;opacity:.4}.scroll-cue{display:inline-block;margin-right:5px;font-size:16px;animation:nudge 2s ease-in-out 3}.vertical-cue{animation-name:nudge-y}@keyframes nudge{50%{transform:translateX(4px)}}@keyframes nudge-y{50%{transform:translateY(3px)}}
/* Reading is an enlarged volume floating in the same room, without a dialog card. */
#detail{width:100%;height:100dvh;max-width:none;max-height:none;margin:0;background:transparent;overflow:auto}#detail::backdrop{background:#73716b2b;backdrop-filter:blur(12px)}.volume-stage{min-height:calc(100dvh - 86px);display:grid;align-items:center;justify-items:center;padding:65px 65px 20px;perspective:1800px;overflow:hidden}.open-volume{position:relative;width:min(960px,100%);display:grid;grid-template-columns:1fr 1fr;min-height:530px;transform:rotateX(3deg);transform-style:preserve-3d;filter:drop-shadow(10px 22px 18px #14243b40);transition:transform .7s cubic-bezier(.22,.7,.2,1)}.page{background:#fffaf0;padding:42px 36px 52px;position:relative;border-block:6px solid #172a44;line-height:1.65;visibility:hidden}.page-left{border-left:7px solid #172a44;border-radius:8px 0 0 8px;background:linear-gradient(90deg,#fffaf0 91%,#e5dece)}.page-right{border-right:7px solid #172a44;border-radius:0 8px 8px 0;background:linear-gradient(90deg,#d6cdbb,#fffaf0 9%);box-shadow:6px 5px 0 #ded6c4,9px 8px 0 #172a44}.page h2{font-size:38px;letter-spacing:-.035em;margin-bottom:18px;color:var(--navy)}.page .eyebrow{font-size:9px;letter-spacing:.07em}.page li{list-style:none;margin-bottom:25px;font-size:14px}.page li strong{display:block;color:var(--navy);font:600 22px var(--serif);margin-bottom:10px}.page ul{padding:0;margin:0}.page .detail-actions{display:grid;margin-top:25px;gap:10px}.page .button{font-size:12px;padding:12px}.page-number{position:absolute;bottom:20px;font:8px var(--mono);color:var(--muted)}.volume-cover{position:absolute;inset:0 0 0 50%;transform-origin:left;transform-style:preserve-3d;transition:transform .85s cubic-bezier(.22,.7,.2,1),opacity .6s;z-index:2;backface-visibility:hidden;cursor:pointer;border:0;padding:0;background:transparent;text-align:left;color:var(--paper)}.book{display:flex;flex-direction:column;position:relative;aspect-ratio:2/3;border-radius:3px 9px 9px 3px;padding:30px;color:var(--paper);background-color:var(--ink);background-size:100% 100%;box-shadow:inset 6px 0 8px #0008,inset 10px 0 1px #ffffff14,7px 5px 0 #e0d8c6,10px 8px 0 #172a44}.book-top{display:flex;justify-content:space-between;gap:12px}.book-label{font:8px var(--mono);letter-spacing:.1em;color:#a9b4c6}.book-num{font:13px var(--mono);color:var(--tone)}.book h3{font-size:38px;letter-spacing:-.035em;margin:32px 0 0;max-width:95%}.book .expert{font-size:11px;line-height:1.4;color:#a9b4c6;margin:auto 0 14px}.book-bottom{display:flex;justify-content:space-between;gap:12px;font:8px var(--mono);letter-spacing:.05em;color:#a9b4c6}.open-arrow{font-size:20px}.volume-cover>.book{height:100%;width:100%;aspect-ratio:auto}.open-volume:not(.is-open){transform:translateX(-25%) rotateY(-9deg)}.is-open .volume-cover{transform:rotateY(-178deg);pointer-events:none;opacity:0}.is-open .page{visibility:visible}.volume-controls{text-align:center;padding:0 24px 20px}.volume-controls p{margin:8px 0 0;font-size:10px;color:#3a4651}.volume-controls>.button{min-width:150px}#title-index{width:min(600px,calc(100% - 30px));max-height:calc(100dvh - 40px);padding:36px;border-radius:8px;background:var(--paper);box-shadow:0 30px 80px #0e1b3044}#title-index h2{font-size:32px;color:var(--navy);margin-bottom:25px}.title-list{display:flex;flex-direction:column}.card[hidden]{display:none}.card-open{display:flex;align-items:center;gap:16px;text-align:left;width:100%;border:0;border-top:1px solid var(--line);padding:14px 0;background:transparent;color:var(--navy)}.card-open:hover{color:#1f5c88}.index-number{font:10px var(--mono);color:var(--muted)}.index-name{flex:1;font:600 18px var(--serif)}.index-tone{width:6px;height:6px;border-radius:50%;background:var(--tone)}.page a.inline-link{color:#1f5c88;text-underline-offset:3px}.page .guide-note{font-size:11px;color:var(--muted)}
@media(max-width:760px){.library-header{padding:20px 22px}.brand{font-size:12px}.brand img{width:30px;height:30px}.brand small{font-size:6px}.collection-title h1{font-size:24px}.collection-title>span{font-size:9px}.guide-link{font-size:10px}.guide-link span{margin-left:4px}.shelf-position{right:15px}.volume-stage{padding:65px 30px 18px}.page{padding:32px 25px 50px}.page h2{font-size:30px}.page li{font-size:12px}.page li strong{font-size:20px}.book h3{font-size:30px}.library-hints{inset:auto 22px 12px;gap:16px;font-size:9px}.library-hints button{font-size:9px}}
@media(max-width:600px){.library-header{align-items:flex-start;height:100px;padding:20px}.brand span{display:none}.collection-title h1{font-size:25px}.collection-title>span{font-size:9px}.guide-link{margin-top:3px}.filter-row{top:90px;max-width:calc(100% - 24px);padding:4px;border-radius:22px;justify-content:flex-start;left:12px;transform:none;right:12px;width:max-content;margin:auto}.filter{font-size:10px;padding:8px 11px}#shelf-stage{inset:0}.shelf-position{top:44%;right:10px;gap:9px}.shelf-position button{width:29px;height:29px}.shelf-position span{font-size:8px}.shelf-controls{width:calc(100% - 32px);bottom:65px;gap:10px;grid-template-columns:40px 1fr 40px}.round-control{width:40px;height:40px;font-size:20px}.shelf-caption strong{font-size:23px}.shelf-caption #shelf-category{font-size:8px}.shelf-caption{gap:5px}#shelf-subtitle{font-size:10px;line-height:1.4}#shelf-open{font-size:11px;margin-top:5px}.library-hints{inset:auto 16px 12px;justify-content:space-between;gap:12px;flex-wrap:wrap}.library-hints p{width:100%;text-align:center;order:2;font-size:9px;margin:0}.library-hints button{padding:0;font-size:9px}.scroll-cue{font-size:12px}.hint-divider{padding:0 6px}.shelf-label{font-size:8px;padding:5px 8px;letter-spacing:0;gap:6px}.volume-stage{min-height:calc(100dvh - 95px);padding:65px 24px 18px;display:block}.open-volume{display:block;transform:none;min-height:440px;width:100%;max-width:400px;margin:auto}.open-volume:not(.is-open){transform:none;width:min(310px,100%);height:calc(100dvh - 190px);min-height:380px;max-height:520px}.volume-cover{inset:0}.volume-cover .book{padding:25px}.book h3{font-size:32px}.page{padding:32px 26px 48px;border:0;border-inline:5px solid #172a44;font-size:14px}.page-left{border-top:5px solid #172a44;border-radius:6px 6px 0 0}.page-right{border-bottom:5px solid #172a44;border-radius:0 0 6px 6px;border-top:1px solid #d9d0bd}.open-volume:not(.is-open) .page{display:none}.page h2{font-size:32px}.page li{font-size:14px}.page .detail-credit{font-size:12px}.is-open .volume-cover{visibility:hidden}.volume-controls{position:relative}.close{top:15px;right:15px;width:40px;height:40px}.book-label{font-size:7px}#title-index{padding:32px 24px}.index-name{font-size:16px}}
@media(max-height:600px) and (min-width:601px){.library-header{padding-block:12px}.filter-row{top:72px}#shelf-stage{inset:0}.shelf-controls{bottom:43px}.shelf-caption strong{font-size:21px}#shelf-subtitle{display:none}.library-hints{bottom:8px}.open-volume{min-height:420px}.volume-stage{padding-top:45px}.page{padding:25px 28px 45px}.page li{font-size:12px}.page h2{font-size:28px}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}

[hidden]{display:none!important}
/* A phone is a single leaf of the book. Text is paginated horizontally by the browser. */
.mobile-reader,.mobile-page-nav{display:none}
@media(max-width:600px),(max-height:500px) and (pointer:coarse){
 #detail{height:100dvh;overflow:hidden;overscroll-behavior:none;display:none}#detail[open]{display:flex;flex-direction:column}
 .volume-stage{flex:1;min-height:0;height:auto;width:100%;padding:65px 24px 18px;display:flex;align-items:stretch;justify-content:center;overflow:hidden}
 .open-volume,.open-volume:not(.is-open){display:block;height:100%;width:min(420px,100%);max-height:none;min-height:0;max-width:none;margin:0;transform:none}
 #open-volume>.page{display:none!important}.volume-cover{inset:0}.volume-cover .book{padding:24px}.volume-cover .book h3{font-size:clamp(25px,4.5dvh,34px)}
 .mobile-reader{display:block;position:relative;height:100%;width:100%;perspective:1400px;visibility:hidden;border-radius:5px;box-shadow:5px 4px 0 #ded6c4,8px 7px 0 #172a44}
 .is-open .mobile-reader{visibility:visible}.mobile-page-window{height:100%;width:100%;overflow:hidden;background:linear-gradient(90deg,#e5ddcb,#fffaf0 8%,#fffaf0);border:5px solid #172a44;border-radius:5px;touch-action:pan-y;overscroll-behavior:none;position:relative;backface-visibility:hidden}
 .mobile-page-flow{width:100%;height:100%;column-width:var(--page-width,300px);column-gap:0;column-fill:auto;padding:24px 0;will-change:transform}
 .reader-section{break-before:column;padding:0 23px;overflow-wrap:anywhere}.reader-section:first-child{break-before:auto}
 .reader-section h2{font-size:29px;letter-spacing:-.035em;margin-bottom:18px;color:var(--navy);break-inside:avoid;break-after:avoid}.reader-section h3{font-size:20px;margin:22px 0 12px;color:var(--navy);break-after:avoid}
 .reader-running-title{font:9px/1.7 var(--mono);letter-spacing:.05em;color:var(--muted);margin:0 0 16px;break-after:avoid}.reader-body{font-size:15px;line-height:1.7;margin:0;orphans:2;widows:2;user-select:text}
 .reader-section .detail-credit{font-size:11px;margin-bottom:18px}.reader-section .button{width:100%;margin:0 0 12px;break-inside:avoid;min-height:44px}.reader-section .access-note,.mobile-copy-status{font-size:11px;line-height:1.65;margin:12px 0}.mobile-copy-status{color:#24705a}.turning-page{position:absolute;inset:0;z-index:4;pointer-events:none;box-shadow:8px 0 18px #0e1b3044}
 .volume-controls{flex:none;width:100%;padding:0 24px max(12px,env(safe-area-inset-bottom));display:flex;align-items:center;flex-direction:column;gap:10px}.volume-controls>p{display:none}.volume-controls>.button{min-height:36px;padding:8px 16px;font-size:11px}
 .mobile-page-nav{display:grid;grid-template-columns:40px 1fr 40px;align-items:center;gap:3px 18px;max-width:320px;width:100%;font:10px var(--mono);color:var(--navy)}
 .mobile-page-nav button{width:40px;height:38px;border:1px solid #1a2b4a33;border-radius:50%;background:#f8f6f2cc;font-size:18px}.mobile-page-nav small{grid-column:1/-1;font:9px 'DM Sans',sans-serif;color:var(--muted);margin-top:3px}.mobile-page-nav span{text-align:center}
}
@media(max-width:600px) and (max-height:680px),(max-height:500px) and (pointer:coarse){.volume-stage{padding:56px 20px 13px}.mobile-page-flow{padding-block:18px}.reader-section{padding-inline:19px}.reader-section h2{font-size:25px;margin-bottom:14px}.reader-section h3{font-size:18px;margin:16px 0 10px}.reader-body{font-size:14px;line-height:1.65}.reader-running-title{margin-bottom:12px}.reader-section .detail-credit{margin-bottom:12px}.volume-controls{gap:6px}.mobile-page-nav{gap:0 14px}.mobile-page-nav button{height:34px}.mobile-page-nav small{font-size:8px}}
