/* Research volumes: a compact spine index, one persistent full-cover preview. */
#shelf-view .shelf-scroll{position:absolute;inset:150px 0 210px;display:flex;align-items:center;justify-content:center;padding:0;overflow:visible}
#shelf-view .single-shelf{width:min(1100px,94vw);height:min(360px,calc(100svh - 380px));min-width:0;margin:0}
#all-books{--cover-width:190px;--closed-width:46px;left:8%;right:8%;height:88%;bottom:18px;gap:clamp(14px,3vw,32px);justify-content:center;perspective:1600px;perspective-origin:center bottom}
#all-books .research-volume{width:var(--closed-width);min-width:0;max-width:none;flex:0 0 var(--closed-width);height:var(--book-height);padding:0;perspective-origin:center bottom;transition:flex-basis 520ms cubic-bezier(.22,.7,.18,1),transform 400ms;transform:none}
#all-books .research-volume:is(:hover,:focus-visible){flex-basis:var(--closed-width);transform:translateY(-5px);z-index:4}
#all-books .research-volume.shelf-selected,#all-books .research-volume.shelf-selected:is(:hover,:focus-visible){flex-basis:var(--cover-width);transform:translateY(-10px);z-index:20}
#all-books .book-solid{left:50%;width:var(--cover-width);right:auto;--depth:inherit;--half-depth:calc(var(--depth)/2);transform:translateX(-50%) rotateY(90deg);transform-origin:center;transition:transform 520ms cubic-bezier(.22,.7,.18,1)}
#all-books .research-volume:is(:hover,:focus-visible) .book-solid{transform:translateX(-50%) rotateY(90deg)}
#all-books .research-volume.shelf-selected .book-solid,#all-books .research-volume.shelf-selected:is(:hover,:focus-visible) .book-solid{transform:translateX(-50%) rotateY(-11deg) rotateX(2deg) translateZ(12px)}
#all-books .volume-cover,#all-books .volume-back{background-color:var(--book-color);border:1px solid #ffffff66;border-radius:2px 5px 5px 2px;background-image:repeating-linear-gradient(0deg,#fff0 0 2px,#ffffff0b 2px 3px),repeating-linear-gradient(90deg,#00000004 0 1px,transparent 1px 3px)}
#all-books .volume-cover{transform:translateZ(var(--half-depth));display:grid!important;grid-template-rows:auto minmax(0,1fr) auto auto;gap:10px;align-items:stretch;justify-content:stretch;padding:17px 14px 12px;box-shadow:inset 5px 0 4px #00000013,inset 8px 0 1px #ffffff28,inset -1px 0 1px #fff8}
#all-books .volume-cover:after{content:'';display:block;position:absolute;inset:9px 8px 8px 11px;border:1px solid #ffffff48;pointer-events:none}
#all-books .volume-image{position:relative;display:block;width:100%;height:100%;min-height:0;object-fit:contain;background:#ffffffb8;box-shadow:0 1px 3px #3e506519;border:3px solid #ffffff90}
#all-books .cover-imprint{font:9px/1.4 'Songti SC',serif;letter-spacing:.1em;color:#435966;opacity:.8}
#all-books .cover-title{font:15px/1.5 'Songti SC',serif;text-align:center;color:#354b59;position:relative}
#all-books .cover-number{text-align:right;font:9px/1.2 Georgia,serif;color:#566b76}
#all-books .volume-back{transform:translateZ(calc(var(--half-depth)*-1)) rotateY(180deg);box-shadow:4px 7px 10px #40505b22}
#all-books .volume-spine{left:calc(var(--half-depth)*-1);width:var(--depth);transform:rotateY(-90deg);border-radius:5px 4px 4px 5px;border-left:1px solid #ffffff6b;border-right:1px solid #40586c22;background:linear-gradient(90deg,#0000001a,#ffffff40 24%,transparent 70%,#00000016),repeating-linear-gradient(0deg,transparent 0 2px,#ffffff0b 2px 3px),var(--book-color);box-shadow:inset 3px 0 2px #fff2,inset -2px 0 2px #0001}
#all-books .volume-spine:after{content:'';position:absolute;inset:15px 4px;border-block:1px solid #ffffff65;pointer-events:none}
#all-books .volume-spine>span{font:13px/1.6 'Songti SC',serif;letter-spacing:.11em;writing-mode:vertical-rl;text-shadow:0 1px #fff4;color:#405463}
#all-books .volume-spine small{position:absolute;bottom:21px;font:8px Georgia,serif;color:#526979}
#all-books .volume-pages{top:3px;bottom:3px;width:calc(var(--depth) - 5px);right:calc(var(--half-depth)*-1 + 1px);transform:rotateY(90deg);background:repeating-linear-gradient(90deg,#f5f1e8 0 1px,#fffdf7 1px 2px,#e6e0d5 2px 2.6px,#fffaf0 2.6px 4.5px);border:1px solid #d4cfc2;box-shadow:inset 0 0 4px #b0a58d40}
#all-books .volume-top{height:calc(var(--depth) - 5px);top:calc(var(--half-depth)*-1 + 3px);left:3px;right:3px;transform:rotateX(90deg);background:repeating-linear-gradient(0deg,#eee8dc 0 1px,#fffaf0 1px 3px);border:1px solid #d5cfc3}
.shelf-preview{position:absolute;bottom:35px;left:50%;transform:translateX(-50%);width:min(850px,86vw);height:145px;text-align:center}
.shelf-details h2{font:22px/1.45 'Songti SC',serif;margin:0 0 8px;color:#41535d}
.shelf-details p{font-size:12px;line-height:1.85;color:#7a8890;margin:0 auto;max-width:660px}
.shelf-actions{display:flex;align-items:center;justify-content:center;gap:25px;margin-top:15px}
.shelf-actions button{padding:8px 13px;font-size:12px}
.shelf-read{border:1px solid #b1c1c9;background:#f9fbfbd9}
.shelf-putback{color:#8a959a;border-bottom:1px solid #ccd3d6}
.shelf-read:hover{background:#e9eff1}.shelf-putback:hover{color:#506a78}
.research-flight{position:fixed;display:block;z-index:100;width:1px;height:1px;object-fit:contain;background:#f3f5f2;box-shadow:0 12px 45px #33445225;pointer-events:none;padding:8px}
.brand-gallery-frame{display:block;width:100%;height:100%;border:0;background:#f8f9f8}
/* Project directory restores paper cards, while drawing pages keep the 3D gallery. */
#spatial-view .paper-directory{position:absolute;inset:145px 0 0;width:100%;height:auto;max-width:none;margin:0;display:flex;flex-direction:column}
.paper-track{width:100%;flex:1;min-height:0;position:relative;overflow:hidden;touch-action:pan-y;cursor:grab;--paper-drag:0px;outline-offset:-4px}
.paper-card{position:absolute;left:50%;top:50%;width:min(73vw,790px);height:calc(100% - 24px);max-height:570px;padding:18px;background:white;box-shadow:2px 4px 0 #cfd4dc,0 18px 40px #46556c15;display:flex;flex-direction:column;transform:translate(calc(-50% + var(--paper-offset)*82vw + var(--paper-drag)),-50%) rotate(calc(var(--paper-offset)*-4deg));transition:transform 550ms cubic-bezier(.22,.7,.18,1);transform-origin:center;user-select:none}
.paper-photo{flex:1;min-height:0;width:100%;padding:0;display:block}
.paper-photo img{width:100%;height:100%;display:block;object-fit:contain;pointer-events:none;background:#fafbfa}
.paper-caption{padding:16px 10px 7px;flex:none}
.paper-caption h2{font:22px/1.4 'Songti SC',serif;margin:0 0 7px}
.paper-caption p{font-size:12px;line-height:1.7;margin:0 0 8px;color:#7a8790}
.paper-open{font-size:11px;color:#a1738a;padding:3px 0}
.paper-controls{height:78px;flex:none;display:flex;align-items:center;justify-content:center;gap:36px;font-size:12px;color:#71818e}
.paper-controls button{font-size:24px;padding:8px 18px}.paper-controls button:disabled{opacity:.25;cursor:default}
.paper-track.dragging,.paper-track.dragging .paper-photo{cursor:grabbing}.paper-track.dragging .paper-card{transition:none}
@media(max-width:700px){
 #shelf-view .shelf-scroll{inset:150px 0 225px}#shelf-view .single-shelf{height:min(340px,calc(100svh - 400px))}
 #all-books{--cover-width:126px;--closed-width:28px;left:5%;right:5%;gap:12px}
 #all-books .volume-spine>span{font-size:11px;letter-spacing:.07em}#all-books .volume-cover{padding:13px 9px 10px;gap:7px}#all-books .cover-title{font-size:12px}#all-books .cover-imprint{font-size:7px}#all-books .volume-image{border-width:2px}
 .shelf-preview{bottom:23px;width:88vw;height:180px}.shelf-details h2{font-size:18px}.shelf-details p{font-size:11px;line-height:1.7}.shelf-actions{margin-top:11px;gap:14px}
 #spatial-view .paper-directory{top:145px}.paper-card{width:83vw;padding:12px;transform:translate(calc(-50% + var(--paper-offset)*93vw + var(--paper-drag)),-50%) rotate(calc(var(--paper-offset)*-4deg))}
 .paper-caption{padding:12px 5px 5px}.paper-caption h2{font-size:18px}.paper-caption p{font-size:11px}.paper-controls{height:67px;gap:25px}
}
@media(max-height:600px){#shelf-view .shelf-scroll{inset:130px 0 160px}#shelf-view .single-shelf{height:calc(100svh - 330px)}.shelf-preview{bottom:12px;height:130px}.shelf-details h2{font-size:18px}.shelf-details p{font-size:11px}.shelf-actions{margin-top:7px}#all-books .volume-cover{gap:5px;padding:10px}#all-books .cover-title{font-size:11px}#all-books .cover-imprint{font-size:7px}}
@media(prefers-reduced-motion:reduce){#all-books *,#all-books .research-volume,.paper-card{transition:none!important}}
