/* PDF library: a sideways shelf of PDF covers */
.lib-head{display:flex;justify-content:space-between;align-items:flex-end;gap:16px;flex-wrap:wrap;margin-bottom:24px}
.lib-nav{display:flex;align-items:center;gap:10px}
.lib-count{min-width:64px;text-align:center;color:var(--text-2);font-size:14px}
.lib-track{width:100%;max-width:none;list-style:none;margin:0 calc(-1*var(--edge,0px));padding:4px 2px 18px;display:grid;grid-auto-flow:column;grid-auto-columns:clamp(240px,24vw,300px);gap:20px;overflow-x:auto;scroll-snap-type:x mandatory;scroll-behavior:smooth;-webkit-overflow-scrolling:touch;scrollbar-width:thin}
.lib-track:focus-visible{outline:2px solid var(--sage);outline-offset:6px}
.lib-card{scroll-snap-align:start;display:flex;flex-direction:column;background:var(--card);border:1px solid var(--line);border-radius:var(--r);overflow:hidden;transition:transform .4s cubic-bezier(.2,.8,.2,1),border-color .3s}
.lib-card:hover{transform:translateY(-4px);border-color:#69B3E7}
.lib-cover{display:block;background:#fff}
.lib-cover img{display:block;width:100%;height:auto;aspect-ratio:560/725;object-fit:contain}
.lib-body{padding:16px 16px 18px;display:flex;flex-direction:column;gap:6px;flex:1}
.lib-body h3{margin:4px 0 0;font-size:19px;font-weight:500;line-height:1.2}
.lib-body p{margin:0;color:var(--text-2);font-size:14px;line-height:1.45}
.lib-meta{color:var(--text-3)!important;font-size:13px!important}
.lib-act{display:flex;gap:8px;margin-top:auto;padding-top:10px;flex-wrap:wrap}
.lib-act .btn{min-height:44px;padding:0 14px;font-size:14px}
.lib-note{color:var(--text-3);margin-top:14px}
@media (prefers-reduced-motion:reduce){.lib-track{scroll-behavior:auto}.lib-card{transition:none}}
.lib-nav button{width:44px;height:44px;border-radius:12px;border:1px solid var(--line-2);background:var(--glass);color:var(--text);display:inline-grid;place-items:center;cursor:pointer;padding:0}
.lib-nav button:hover{border-color:#69B3E7}
.lib-nav button:disabled{opacity:.35;cursor:default}
.lib-nav button svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.6}
/* beat the generic "section > .wrap > ul" text-list rules */
#shelf .lib-track{max-width:none;width:100%;padding:4px 2px 18px;margin:0;color:inherit}
#shelf .lib-track > li{margin:0}
.deck-track{grid-auto-columns:clamp(280px,32vw,400px)}
.deck-track .lib-cover img{aspect-ratio:16/9;object-fit:cover}
.lib-decks{border-top:1px solid var(--line)}
#decks .lib-track{max-width:none;width:100%;padding:4px 2px 18px;margin:0;color:inherit}
#decks .lib-track > li{margin:0}
