.library-page{--lib-measure: 48rem;--cover-w: 48px;--star: var(--lamp-amber);--hover: color-mix(in srgb, var(--bg-panel) 65%, transparent);color:var(--ink);font-family:var(--serif);font-feature-settings:var(--onum);padding:0 0 5rem;overflow-x:clip}.library-page .library-shell{margin-inline:auto;max-width:var(--lib-measure)}.library-page .library-hero{padding:.2rem 0 1.4rem;border-bottom:1px solid var(--rule-strong)}.library-page .library-title{margin:0;font-family:var(--serif);font-weight:600;font-size:clamp(2.1rem, 5.5vw, 2.9rem);line-height:1;letter-spacing:-.015em;color:var(--ink)}.library-page .library-subtitle{display:flex;flex-wrap:wrap;align-items:baseline;gap:.35rem 1.15rem;margin:.8rem 0 0}.library-page .lib-stat{display:inline-flex;align-items:baseline;gap:.34rem;font-family:var(--cond);font-size:.8rem;letter-spacing:.04em;text-transform:uppercase;color:var(--ink-2)}.library-page .lib-stat b{font-family:var(--serif);font-weight:600;font-size:1.2rem;letter-spacing:0;color:var(--ink);font-variant-numeric:oldstyle-nums tabular-nums;font-feature-settings:var(--onum)}.library-page .library-searchbox{display:block;margin-top:1.3rem}.library-page .library-search{width:100%;max-width:24rem;padding:.4rem 0;background:transparent;border:0;border-bottom:1px solid var(--rule-strong);color:var(--ink);font-family:var(--serif);font-size:1rem}.library-page .library-search::placeholder{color:var(--ink-3);font-style:italic}.library-page .library-search:focus{border-bottom-color:var(--ink)}.library-page .library-section{margin-top:2.75rem}.library-page .library-subhead{display:flex;align-items:baseline;justify-content:space-between;gap:1rem;margin:0 0 1rem;padding-bottom:.3rem;border-bottom:2px solid var(--rule-strong);font-family:var(--cond);font-stretch:condensed;font-weight:700;font-size:1.4rem;letter-spacing:.05em;text-transform:uppercase;color:var(--ink)}.library-page .library-subhead .lib-count{font-family:var(--mono);font-size:.64rem;font-weight:400;letter-spacing:.05em;text-transform:none;color:var(--ink-2);font-variant-numeric:tabular-nums}.library-page .library-cadence{margin:0 0 1.6rem;padding:.9rem 0 .55rem;border-top:1px solid var(--rule);border-bottom:1px solid var(--rule)}.library-page .cadence-svg{display:block;width:100%;max-width:27rem;height:auto}.library-page .cadence-baseline{stroke:var(--rule-strong);stroke-width:1}.library-page .cadence-bar{fill:var(--heat-2)}.library-page .cadence-bar.is-peak{fill:var(--heat-4)}.library-page .cadence-peak-label{fill:var(--heat-4);font-family:var(--mono);font-size:11px;font-weight:600;font-variant-numeric:tabular-nums}.library-page .cadence-tick{fill:var(--ink-2);font-family:var(--mono);font-size:10px;letter-spacing:.02em}.library-page .library-caption{margin-top:.5rem;font-family:var(--serif);font-variant:all-small-caps;font-feature-settings:"c2sc" 1, "smcp" 1;letter-spacing:.12em;font-size:.82rem;color:var(--ink-2)}.library-page .library-filters{display:flex;flex-wrap:wrap;gap:.1rem 1.35rem;margin:0 0 .5rem}.library-page .library-filter{padding:.2rem 0;border:0;border-bottom:2px solid transparent;background:none;color:var(--ink-2);cursor:pointer;font-family:var(--mono);font-size:.68rem;letter-spacing:.07em;text-transform:uppercase;transition:color .12s ease}.library-page .library-filter:hover{color:var(--ink)}.library-page .library-filter.is-active{color:var(--ink);border-bottom-color:var(--brick)}.library-page .library-list{list-style:none;margin:0 -.6rem;padding:0}.library-page .library-row{display:grid;grid-template-columns:var(--cover-w) minmax(0, 1fr) auto;align-items:center;column-gap:1rem;padding:.55rem .6rem;border-top:1px solid var(--rule);transition:background .12s ease}.library-page .library-row:first-child{border-top:0}.library-page .library-row:hover{background:var(--hover)}.library-page .library-row:focus-visible{outline:none;background:color-mix(in srgb, var(--bg-panel) 85%, transparent);box-shadow:inset 2px 0 0 var(--accent)}.library-page .library-row[hidden]{display:none}.library-page .library-thumb{display:block;width:var(--cover-w);height:auto;margin:0;aspect-ratio:2 / 3;object-fit:cover;background:var(--bg-sunk);border:1px solid var(--spine);box-shadow:1px 1px 3px rgba(33,28,24,0.22);transition:transform .16s ease, box-shadow .16s ease}.library-page .library-row:hover .library-thumb{transform:translateY(-2px);box-shadow:1px 3px 8px rgba(33,28,24,0.3)}.library-page .library-thumb--blank{position:relative;box-shadow:none}.library-page .library-thumb--blank::before{content:"";position:absolute;top:8%;bottom:8%;left:4px;width:1px;background:var(--rule)}.library-page .library-row-main{min-width:0}.library-page .library-row-title{font-family:var(--serif);font-style:italic;font-size:1.05rem;line-height:1.25;color:var(--ink)}.library-page .library-row-author{display:block;margin-top:.1rem;font-family:var(--serif);font-size:.84rem;line-height:1.2;color:var(--ink-2)}.library-page .library-row-meta{display:flex;flex-wrap:wrap;align-items:baseline;justify-content:flex-end;gap:.1rem .55rem;text-align:right;white-space:nowrap;font-family:var(--mono)}.library-page .library-when{font-family:var(--mono);font-size:.68rem;letter-spacing:.03em;text-transform:uppercase;color:var(--ink-2);font-variant-numeric:tabular-nums}.library-page .library-row[data-shelf="now"] .library-when{color:var(--heat-4)}.library-page .library-row[data-shelf="next"] .library-when{color:var(--ink-3)}.library-page .library-rating{font-family:var(--mono);font-size:.72rem;color:var(--ink);font-variant-numeric:tabular-nums}.library-page .library-rating::after{content:"/5";margin-left:.05rem;color:var(--ink-3);font-size:.62rem}.library-page .library-tag{padding:0 .28rem;border:1px solid var(--rule-green);font-family:var(--mono);font-size:.58rem;letter-spacing:.06em;text-transform:uppercase;color:var(--heat-4)}.library-page .library-star{color:var(--star);font-size:.82rem;line-height:1}.library-page .library-series{margin-top:.4rem}.library-page .library-series[hidden]{display:none}.library-page .library-series-summary{padding:.6rem;list-style:none;cursor:pointer;font-family:var(--mono);font-size:.68rem;letter-spacing:.06em;text-transform:uppercase;color:var(--ink-2)}.library-page .library-series-summary::-webkit-details-marker{display:none}.library-page .library-series-summary::before{content:"\25B8\00A0"}.library-page .library-series-summary:hover{color:var(--ink)}.library-page .library-series[open] .library-series-summary::before{content:"\25BE\00A0"}.library-page .library-allfav{display:flex;align-items:center;gap:.85rem;margin:0 0 1.3rem;padding:.2rem 0;font-family:var(--serif);color:var(--ink)}.library-page .library-allfav-thumb{width:44px;height:auto;margin:0;aspect-ratio:2 / 3;object-fit:cover;border:1px solid var(--spine);box-shadow:1px 1px 3px rgba(33,28,24,0.22)}.library-page .library-allfav-text{display:flex;flex-direction:column;gap:.1rem}.library-page .library-allfav-label{font-family:var(--serif);font-variant:all-small-caps;font-feature-settings:"c2sc" 1, "smcp" 1;letter-spacing:.1em;font-size:.8rem;color:var(--ink-2)}.library-page .library-allfav-title{display:inline-flex;align-items:baseline;gap:.4rem;font-size:1.15rem}.library-page .library-allfav-title cite{font-style:italic}.library-page .library-empty{margin-top:1.6rem;font-family:var(--serif);font-style:italic;color:var(--ink-2)}.library-page .library-empty[hidden]{display:none}@media (max-width: 560px){.library-page{--cover-w: 44px}.library-page .library-list{margin-inline:-.4rem}.library-page .library-row{grid-template-columns:var(--cover-w) minmax(0, 1fr);grid-template-areas:"cover main" "cover meta";align-items:start;column-gap:.8rem;row-gap:.18rem;padding:.55rem .4rem}.library-page .library-thumb{grid-area:cover;align-self:start}.library-page .library-row-main{grid-area:main}.library-page .library-row-meta{grid-area:meta;justify-content:flex-start;text-align:left}.library-page .library-subhead{font-size:1.2rem}.library-page .library-row-title{font-size:1rem}}@media (prefers-reduced-motion: reduce){.library-page .library-thumb,.library-page .library-filter,.library-page .library-row{transition:none}.library-page .library-row:hover .library-thumb{transform:none}}
