.lib-room{--floor:30vh;--ease-out:cubic-bezier(.23, 1, .32, 1);background:radial-gradient(at 50% 40%,#ffc87824,#0000 60%),linear-gradient(#24170e,#140c07);flex-direction:column;display:flex;position:fixed;inset:0}.lib-scroller{overscroll-behavior-x:contain;scrollbar-width:none;flex:1;overflow:auto hidden}.lib-scroller::-webkit-scrollbar{display:none}.lib-shelf{width:max-content;height:100%;padding:0 8vw var(--floor) 30vw;background:linear-gradient(to top, transparent var(--floor), #6a4529 var(--floor), #4a2f1c calc(var(--floor) + 16px), #00000059 calc(var(--floor) + 16px), transparent calc(var(--floor) + 40px));align-items:flex-end;display:flex}.lib-year-group{align-items:flex-end;display:flex}.lib-year-group+.lib-year-group{margin-left:28px}.lib-book{--lean:0;--lifted:perspective(800px) translate3d(calc(var(--lean) * -6px), -10px, 28px) rotateY(calc(var(--lean) * -20deg));cursor:pointer;animation:lib-rise .6s var(--ease-out) var(--delay) backwards;background:0 0;border:0;flex:none;padding:0;position:relative}.lib-book:before{content:"";position:absolute;inset:-12px 0 0}.lib-body{transform-style:preserve-3d;transform-origin:50% 100%;transition:transform .18s var(--ease-out);display:block;position:absolute;inset:0}.lib-side{background:linear-gradient(90deg, #00000073, #0003), var(--color);backface-visibility:hidden;width:44px;height:100%;position:absolute;top:0}.lib-side-left{transform-origin:0;left:0;transform:rotateY(90deg)}.lib-side-right{transform-origin:100%;right:0;transform:rotateY(-90deg)}.lib-body:after{content:"";opacity:0;height:14px;transform:translate3d(calc(var(--lean) * 6px), 0, -1px);transition:opacity .18s var(--ease-out);pointer-events:none;background:radial-gradient(closest-side,#0000008c,#0000);border-radius:50%;position:absolute;inset:auto -15% -10px}.lib-book[data-pinned],.lib-book:focus-visible{z-index:1}.lib-book[data-pinned] .lib-body,.lib-book:focus-visible .lib-body{transform:var(--lifted);transition-duration:.24s}.lib-book[data-pinned] .lib-body:after,.lib-book:focus-visible .lib-body:after{opacity:1;transition-duration:.24s}@media (hover:hover) and (pointer:fine){.lib-book:hover{z-index:1}.lib-book:hover .lib-body{transform:var(--lifted);transition-duration:.24s}.lib-book:hover .lib-body:after{opacity:1;transition-duration:.24s}}.lib-book:focus-visible{outline:none}.lib-book:focus-visible .lib-spine{outline-offset:2px;outline:2px solid #e3c27a}.lib-spine{background:linear-gradient(90deg, #00000059, #ffffff14 30%, #00000040), linear-gradient(transparent 10%, #e3c27a8c 10%, #e3c27a8c calc(10% + 2px), transparent calc(10% + 2px), transparent 88%, #e3c27a8c 88%, #e3c27a8c calc(88% + 2px), transparent calc(88% + 2px)), var(--color);border-radius:2px;justify-content:center;align-items:center;display:flex;position:absolute;inset:0;overflow:hidden;box-shadow:inset -1px 0 #0006}.lib-title{color:#e9d6a6;max-height:72%;font-family:var(--font-serif);text-align:center;writing-mode:vertical-rl;padding:0 2px;font-size:10px;line-height:1.15;overflow:hidden;transform:rotate(180deg)}.lib-now{color:#e3c27a99;height:160px;font-family:var(--font-serif);border-left:1px dashed #e3c27a66;align-items:flex-end;margin-left:28px;padding-bottom:8px;font-size:13px;font-style:italic;display:flex}.lib-now span{padding-left:8px}.lib-timeline{cursor:pointer;touch-action:none;-webkit-user-select:none;user-select:none;width:min(820px,86vw);height:40px;margin:30px auto 0;position:relative}.lib-timeline:focus-visible{outline-offset:6px;border-radius:4px;outline:2px solid #e3c27a99}.lib-rail{background:#e3c27a59;height:1px;position:absolute;top:22px;left:0;right:0}.lib-tick{background:#e3c27a80;width:1px;transition:background-color .15s;position:absolute;bottom:18px;transform:translate(-.5px)}.lib-tick[data-active]{background:#f3d58f}.lib-viewport{will-change:transform;background:#f3d58f14;border:1px solid #f3d58fb3;border-radius:4px;height:28px;position:absolute;top:8px;left:0}.lib-viewport-year{color:#f3d58f;font-family:var(--font-serif);font-variant-numeric:tabular-nums;font-size:13px;position:absolute;bottom:calc(100% + 4px);left:50%;transform:translate(-50%)}.lib-end{color:#e3c27a80;font-family:var(--font-serif);font-size:11px;position:absolute;top:38px}.lib-end-start{left:0}.lib-end-finish{right:0}.lib-card{left:50%;top:calc(100dvh - var(--floor) + 36px);z-index:50;color:#2a1d12;width:min(36rem,100vw - 32px);font-family:var(--font-serif);opacity:0;pointer-events:none;transition:opacity .16s ease-out, transform .22s var(--ease-out);background:#f6efe0;border-radius:10px;padding:16px 20px;position:fixed;transform:translate(-50%,8px);box-shadow:0 12px 40px #00000059,0 0 0 1px #00000014}.lib-card[data-open]{opacity:1;pointer-events:auto;transform:translate(-50%)}.lib-hint{color:#e3c27a99;width:max-content;max-width:90vw;font-family:var(--font-serif);text-align:center;pointer-events:none;font-size:14px;font-style:italic;position:fixed;bottom:20px;left:50%;transform:translate(-50%)}.lib-hint-touch{display:none}@media (hover:none){.lib-hint-mouse{display:none}.lib-hint-touch{display:inline}}@keyframes lib-rise{0%{opacity:0;transform:translateY(24px)}}@media (prefers-reduced-motion:reduce){.lib-book{--lifted:none;animation:none}.lib-body,.lib-card{transition-property:opacity}.lib-card{transform:translate(-50%)}.lib-book:hover .lib-spine,.lib-book[data-pinned] .lib-spine,.lib-book:focus-visible .lib-spine{filter:brightness(1.25)}}@media (max-width:640px){.lib-room{--floor:38vh}}
