/* A small working shelf: books and a few things Jess would reach for. */
#library .lib-head{margin-bottom:35px}.shelf-wrap{max-width:790px;padding:18px 90px 0;border:0;border-radius:0;background:none;box-shadow:none;isolation:isolate}.shelf-wrap::before{inset:0 35px 14px;border:1px solid #ffe3b014;border-bottom:0;border-radius:280px 280px 0 0;background:radial-gradient(ellipse at 50% 38%,#d3ac6b22,transparent 72%);box-shadow:none;z-index:-1}.shelf{gap:16px;min-height:0;flex-wrap:nowrap;align-items:flex-end}.spine{--vw:180px;width:110px;height:calc(var(--vw)*var(--ar));flex:0 0 110px;perspective:1200px}.spine .book{overflow:visible;filter:drop-shadow(5px 5px 5px #0005);transition:transform .8s cubic-bezier(.22,.8,.24,1),opacity .25s}.spine .book::after{content:'';position:absolute;left:10%;right:10%;bottom:calc(var(--seat)*-1);height:9px;filter:blur(4px);background:#0007;border-radius:50%;z-index:-1}.spine.previewing .book,.spine:focus-visible .book{transform:translateY(calc(var(--seat) - 25px)) translateZ(60px) rotateY(-6deg) scale(1.035)}.spine .pulltag{top:15px;left:50%;width:160px;transform:translateX(-50%) translateY(10px);font-size:18px;text-align:center;background:none;border:0;padding:0;z-index:4}.spine.previewing .pulltag{transform:translateX(-50%) translateY(0)}.spine.pulling .book{opacity:0}.paper-bookmark{display:none!important}.shelf-board{width:calc(100% + 155px);margin-left:-77.5px;height:24px;border-radius:5px;background:linear-gradient(180deg,#d0a374 0,#b18355 22%,#805732 25%,#986b40 80%,#67482b);box-shadow:0 5px 0 #4d3827,0 25px 24px #0005,inset 0 2px 0 #ffe4bf88}.shelf-board::after{content:'';position:absolute;inset:2px 15px;background:repeating-linear-gradient(0deg,transparent 0 3px,#ffe6c414 3px 4px);pointer-events:none}.shelf-caption{bottom:-47px;font-size:17px}.shelf-index{max-width:790px;margin-top:74px;gap:20px}.shelf-keepsake{position:absolute;bottom:24px;width:100px;z-index:3;transform-origin:center bottom;filter:drop-shadow(4px 8px 4px #0004)}.shelf-plant{left:4px}.shelf-cup{right:0;width:92px}.shelf-keepsake svg{width:100%;height:auto;display:block}.plant-leaves{transform-origin:60px 110px;animation:leaf-sway 6.8s ease-in-out infinite alternate}.cup-pencils{transform-origin:65px 90px;transition:transform .8s cubic-bezier(.2,1.5,.3,1)}.shelf-wrap:has(.spine.previewing) .cup-pencils{transform:rotate(6deg)}@keyframes leaf-sway{from{transform:rotate(-3deg)}to{transform:rotate(4deg)}}
.library-lift{position:fixed;z-index:100;pointer-events:none;perspective:1600px;transform-style:preserve-3d;transform-origin:center center;filter:drop-shadow(0 24px 25px #0007)}.lift-volume{position:absolute;inset:0;transform-style:preserve-3d}.lift-front{position:absolute;inset:0;transform:translateZ(18px);backface-visibility:hidden;border-radius:2px 5px 5px 2px;overflow:hidden}.lift-pages{position:absolute;inset:5px 3px 5px 4px;background:#fff0d3;transform:translateZ(0);box-shadow:0 0 0 1px #d1c4a7}.lift-pages::after{content:'';position:absolute;top:0;bottom:0;right:-18px;width:36px;background:repeating-linear-gradient(0deg,#dfcfaf 0 1px,#fff2d9 1px 3px);transform:rotateY(90deg);transform-origin:left center}.lift-spine{position:absolute;top:0;bottom:0;left:-18px;width:36px;transform:rotateY(-90deg);transform-origin:center center;background:var(--cloth);border-radius:5px 0 0 5px;box-shadow:inset 5px 0 7px #0004,inset -3px 0 4px #ffffff24}.lift-front .cloth-cover{border-radius:inherit}.lift-front .bc-t{font-size:clamp(28px,3vw,38px)}.lift-front .bc-by{margin-bottom:22px}.lift-front .bc-sub{font-size:21px}.lift-front .cover-mark{margin-top:24px;width:32px;height:32px;font-size:17px}.book-arriving .lib-foot,.book-arriving .reading-status{visibility:hidden}.lib-reader[data-closed=true] .flip-wrap::before{display:none}
@media(max-width:900px){.shelf-wrap{max-width:700px;padding-inline:85px}.spine{--vw:157px;width:94px;flex-basis:94px}.shelf{gap:10px}.shelf-keepsake{width:78px}.shelf-cup{width:72px}.shelf-board{width:calc(100% + 150px);margin-left:-75px}.shelf-wrap::before{inset-inline:10px}.shelf-index{max-width:700px}}
@media(max-width:650px){#library .lib-head{margin-bottom:30px}.shelf-wrap{padding:15px 35px 0;max-width:420px}.spine{--vw:clamp(88px,24vw,125px);width:calc(var(--vw)*.53);flex-basis:calc(var(--vw)*.53)}.shelf{gap:12px}.shelf-board{height:19px;width:calc(100% + 66px);margin-left:-33px}.shelf-keepsake{width:42px;bottom:19px}.shelf-plant{left:-3px}.shelf-cup{right:-5px;width:39px}.shelf-wrap::before{inset:0 -2px 16px;border-radius:150px 150px 0 0}.shelf-caption{font-size:14px;bottom:-43px;left:-8px;right:-8px;gap:12px}.shelf-caption span{max-width:17ch}.shelf-index{margin-top:72px}.shelf-index button{min-height:110px}.spine .pulltag{display:none}.lift-front .cloth-cover{padding:30px 24px}.lift-front .bc-t{font-size:30px}.lift-front .bc-sub{font-size:20px}}
@media(prefers-reduced-motion:reduce){.plant-leaves{animation:none}.cup-pencils,.spine .book{transition:none}.spine.previewing .book,.spine:focus-visible .book{transform:translateY(var(--seat))}.library-lift{display:none}}
.lib-sec:not(.ambient-visible) .plant-leaves{animation-play-state:paused}
.spine .book::after{display:none}.spine.pulling{outline:none!important}.spine.pulling .pulltag{display:none}.shelf-keepsake{transition:transform .5s}.shelf-wrap:has(.spine.previewing) .shelf-cup{transform:rotate(2deg)}

.spine:hover{outline:none}.spine:focus-visible{outline:2px solid var(--gold);outline-offset:6px;border-radius:8px}
.lib-sec.open .shelf-wrap{display:block!important}.lib-sec.open .shelf-index{visibility:visible!important}
.lib-reader:not([hidden]){position:fixed!important;inset:90px 24px 16px;z-index:90;overflow:auto;overscroll-behavior:contain;padding:12px 0 18px;background:transparent;scroll-margin-top:0;filter:drop-shadow(0 20px 35px #0009)}
.lib-reader .lib-foot{margin-top:18px;padding:12px 18px;border-radius:24px;background:#102328ef;width:max-content;max-width:100%;margin-inline:auto;box-shadow:0 8px 25px #0004}
.lib-reader .reading-text{position:relative;z-index:2}
.library-lift .cloth-cover,.lib-reader .cloth-cover{background:radial-gradient(ellipse at 25% 15%,#ffffff12,transparent 60%),linear-gradient(90deg,#0005,transparent 5%,#ffffff0c 8%,transparent 12%,#0002 98%),var(--cloth);box-shadow:inset 2px 0 2px #ffffff35,inset 8px 0 9px #0008,inset 13px 0 1px #ffffff12,inset -3px 0 4px #0008,0 2px 5px #0006}
.library-lift .cloth-cover::before,.lib-reader .cloth-cover::before{opacity:.72;background:repeating-linear-gradient(0deg,transparent 0 1px,#ffffff12 1px 2px),repeating-linear-gradient(90deg,#0000 0 2px,#00000028 2px 3px)}
.library-lift .bc-t,.lib-reader .cloth-cover .bc-t{text-shadow:0 -1px 1px #000c,0 1px 0 #ffffff75,1px 2px 2px #0005;filter:drop-shadow(0 0 1px #eec78425)}
.library-lift .bc-by,.library-lift .bc-sub,.lib-reader .bc-by,.lib-reader .bc-sub{text-shadow:0 -1px 1px #000a,0 1px 0 #ffffff50}
.library-lift .cover-mark,.lib-reader .cover-mark{box-shadow:inset 0 1px 2px #0007,0 1px 0 #ffffff30;text-shadow:0 -1px 1px #0009,0 1px 0 #ffffff50}
@media(max-width:650px){.lib-reader:not([hidden]){inset:76px 24px 12px;padding-top:4px}.lib-reader .lib-foot{padding:10px 6px;width:100%}}

.lib-sec.open .shelf-index{display:grid!important}

.lib-reader:not([hidden]){overflow-x:hidden}
@media(max-width:650px){.lib-reader .lib-foot{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:3px;padding:7px 4px}.lib-reader .reading-status{grid-column:1/-1;margin:0;font-size:10px}.lib-reader .r-arrow{width:36px;height:36px}.lib-reader #lbPrev{grid-column:1}.lib-reader .lib-dots{grid-column:2/span 4;justify-content:center}.lib-reader #lbNext{grid-column:6}.lib-reader .lib-back{grid-column:1/span 2}.lib-reader .read-text{grid-column:3/span 2}.lib-reader .restart-book{grid-column:5/span 2}.lib-reader .lib-back,.lib-reader .read-text,.lib-reader .restart-book{padding:8px 2px;font-size:12px;line-height:1.25}}
/* Give the photographed silhouettes real breathing room, including the wider red volume. */
.shelf-wrap{max-width:870px;padding-inline:110px}.spine{width:140px;flex-basis:140px}.shelf{gap:24px}.shelf-index{max-width:870px}.shelf-keepsake{width:140px}.shelf-plant{left:-16px}.shelf-cup{width:128px;right:-20px}.shelf-keepsake:hover{transform:translateY(-3px) rotate(-3deg)}.shelf-cup:hover{transform:translateY(-3px) rotate(4deg)}.shelf-plant:hover .plant-leaves{animation:leaf-greeting 1.8s ease-in-out infinite alternate}.plant-smile{transform-origin:60px 134px;transition:transform .55s}.shelf-plant:hover .plant-smile{transform:scale(1.24,1.4)}.plant-eyes{opacity:.72;transition:opacity .4s}.shelf-plant:hover .plant-eyes{opacity:1}.shelf-cup:hover .cup-pencils{transform:rotate(-9deg)}
@keyframes leaf-greeting{from{transform:rotate(-7deg)}to{transform:rotate(8deg)}}
.lib-reader .fpage.text{background-color:#f5ecd5;background-image:radial-gradient(ellipse at 35% 35%,#fffdf526,transparent 72%),repeating-linear-gradient(4deg,#7f694d04 0 1px,transparent 1px 4px),repeating-linear-gradient(91deg,#fffaf008 0 1px,transparent 1px 3px);box-shadow:inset 15px 0 22px -16px #71583455,inset -2px 0 5px #9d89642a,0 1px 1px #d9c8a3}.lib-reader .fpage.text.--left{background-image:linear-gradient(90deg,transparent 80%,#a48b5830),repeating-linear-gradient(4deg,#7f694d04 0 1px,transparent 1px 4px),repeating-linear-gradient(91deg,#fffaf008 0 1px,transparent 1px 3px)}.lib-reader .fpage.text.--right{background-image:linear-gradient(90deg,#a48b5826,transparent 16%),repeating-linear-gradient(4deg,#7f694d04 0 1px,transparent 1px 4px),repeating-linear-gradient(91deg,#fffaf008 0 1px,transparent 1px 3px)}
.book-dust{position:absolute;inset:-30px;pointer-events:none;transform:translateZ(-2px)}.book-dust i{position:absolute;left:var(--x);top:var(--y);width:var(--size);height:var(--size);border-radius:50%;background:#f6cc75;box-shadow:0 0 8px #efc56590;opacity:0;animation:book-dust-rise 2.9s ease-out var(--delay) both}.book-dust i.star{border-radius:0;clip-path:polygon(50% 0,60% 38%,100% 50%,60% 62%,50% 100%,40% 62%,0 50%,40% 38%);background:#ffe7a6}
@keyframes book-dust-rise{0%{opacity:0;transform:translate(0,18px) scale(.25)}20%{opacity:.82}65%{opacity:.52}100%{opacity:0;transform:translate(var(--drift),-80px) scale(.25)}}
@media(max-width:900px){.shelf-wrap{max-width:800px;padding-inline:100px}.spine{width:128px;flex-basis:128px}.shelf{gap:22px}.shelf-keepsake{width:116px}.shelf-plant{left:-12px}.shelf-cup{width:106px;right:-15px}}
@media(max-width:650px){.shelf-wrap{padding-inline:30px;max-width:420px}.spine{--vw:clamp(82px,22vw,114px);width:calc(var(--vw)*.72);flex-basis:calc(var(--vw)*.72)}.shelf{gap:10px}.shelf-keepsake{width:58px}.shelf-plant{left:-15px}.shelf-cup{width:54px;right:-13px}.shelf-board{width:calc(100% + 66px);margin-left:-33px}}
@media(prefers-reduced-motion:reduce){.book-dust{display:none}.shelf-plant:hover .plant-leaves{animation:none}.shelf-keepsake,.plant-smile,.plant-eyes{transition:none}.shelf-keepsake:hover{transform:none}}

.book-dust{transform:translateZ(24px)}

.lib-reader:not([hidden]){padding-bottom:6px}
/* Precisely bounded photographic spines, with one consistent shelf rhythm. */
.shelf{gap:24px;align-items:flex-end;padding-bottom:0}.spine{--book-height:350px;--book-width:102px;height:var(--book-height);width:var(--book-width);flex-basis:var(--book-width);--seat:0px}.spine .book{inset:0;transform:none;filter:none;overflow:visible}.spine img,.spine.n0 img{width:var(--book-height);height:var(--book-width);clip-path:none;filter:brightness(1.16) contrast(1.03);transform:translate(-50%,-50%) rotate(-90deg);object-fit:fill}.spine .book::after{display:block;content:'';left:-8px;right:-8px;bottom:-5px;height:12px;z-index:-1;background:#0008;filter:blur(5px);border-radius:50%}.spine.previewing .book,.spine:focus-visible .book{transform:translateY(-22px);box-shadow:none}.shelf-board{box-shadow:0 5px 0 #4d3827,0 12px 14px #0007,0 30px 32px #0004,inset 0 2px 0 #ffe4bf88}.shelf-board::before{height:16px;top:-12px;background:linear-gradient(0deg,#38271577,transparent);left:0;right:0;z-index:-1}.library-lift{filter:none}.lift-front{transform:none;overflow:visible;box-shadow:0 24px 25px #0007}.lift-pages{transform:translateZ(-18px)}.lift-front .bc-t{font:500 clamp(32px,3.3vw,46px)/1.1 Georgia,serif;letter-spacing:-.01em}.lift-front .bc-by{font-size:.72rem;font-weight:800;letter-spacing:.22em;text-transform:uppercase;opacity:.7;margin-bottom:1.2rem}.lift-front .bc-sub{font-family:'Patrick Hand',cursive;font-size:1.35rem;opacity:.82;margin-top:.7rem}.library-lift .bc-t,.lib-reader .cloth-cover .bc-t{filter:none}
@media(max-width:900px){.spine{--book-height:310px;--book-width:90px}.shelf{gap:20px}}
@media(max-width:650px){.spine{--book-height:clamp(195px,57vw,235px);--book-width:clamp(45px,13vw,54px);width:var(--book-width);flex-basis:var(--book-width)}.shelf{gap:12px}}
@media(prefers-reduced-motion:reduce){.spine.previewing .book,.spine:focus-visible .book{transform:none}}

.lift-front,.library-lift .cloth-cover,.lib-reader .fpage.bookcover{overflow:hidden}
