.library-page{padding-top:26px;padding-bottom:20px;--library-gap:clamp(24px,4vw,64px)}
.library-page ::selection{background:var(--accent);color:var(--bg)}
.library-page h1,.library-page h2,.library-page h3{margin-top:0;text-wrap:balance}
.library-page p{max-width:66ch}
.library-page a{overflow-wrap:anywhere}
.library-page section{scroll-margin-top:24px}
.library-breadcrumbs{display:flex;gap:12px;flex-wrap:wrap;font-size:.82rem;color:var(--muted);margin-bottom:36px}
.library-opening{display:grid;grid-template-columns:minmax(0,1.55fr) minmax(280px,1fr);gap:var(--library-gap);align-items:stretch}
.library-intro{padding-block:8px 20px}
.library-intro h1{font-size:clamp(3rem,5.8vw,5.8rem);line-height:1.02;letter-spacing:-.035em;margin-bottom:24px}
.library-intro>p{font-size:1.1rem;line-height:1.75;max-width:52ch;color:var(--muted);margin-bottom:24px}
.library-jump{display:flex;flex-wrap:wrap;gap:0 24px}
.library-jump a{display:inline-flex;align-items:center;min-height:44px;font-size:.875rem;text-decoration-thickness:1px}
.library-catalog{background:var(--accent);color:var(--surface);padding:clamp(26px,3.2vw,46px);display:flex;flex-direction:column;align-items:flex-start}
.library-book{margin-bottom:26px;flex:none}
.library-catalog h2{font-size:clamp(1.9rem,3vw,2.7rem);line-height:1.12;margin-bottom:14px}
.library-catalog p{font-size:.95rem;line-height:1.65;margin:0 0 28px;max-width:30ch}
.library-catalog>a{width:100%;display:flex;justify-content:space-between;gap:18px;align-items:center;min-height:48px;margin-top:auto;padding-top:14px;border-top:1px solid currentColor;text-decoration:none;font-weight:600}
.library-page a svg{flex:none;transition:transform .2s ease-out}
.library-page a:hover svg{transform:translateX(4px)}
.library-catalog>a:focus-visible{outline-color:currentColor}
.library-visit{display:grid;grid-template-columns:1fr 1.3fr 1fr;gap:32px;margin-top:40px;padding:32px 0;border-block:1px solid var(--line)}
.library-visit h2{font-family:inherit;font-size:.9rem;font-weight:650;line-height:1.4;margin:0 0 18px}
.library-visit p{font-size:.93rem;line-height:1.65;margin:0 0 10px}
.library-text-link{display:inline-flex;align-items:center;gap:14px;min-height:44px;color:var(--accent);text-decoration:none;font-size:.9rem}
.library-text-link:hover{text-decoration:underline}
.library-hours dl{margin:0 0 14px;font-size:.875rem}
.library-hours dl>div{display:flex;justify-content:space-between;gap:16px;margin-bottom:7px}
.library-hours dd{margin:0;white-space:nowrap;font-variant-numeric:tabular-nums;font-weight:600}
.library-visit .library-note{font-size:.8rem;line-height:1.6;color:var(--muted)}
.library-contact>a{display:block;width:fit-content;font-size:.9rem;min-height:30px}
.library-contact .library-phone{font-size:1.12rem;text-decoration:none}
.library-contact .library-note{margin-top:12px}
.library-section{margin-top:clamp(48px,6vw,84px)}
.library-section-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:24px;margin-bottom:28px}
.library-section h2{font-size:clamp(1.9rem,3vw,2.7rem);line-height:1.12;margin-bottom:0;letter-spacing:-.015em}
.library-section-heading>p{font-size:.9rem;color:var(--muted);line-height:1.7;max-width:46ch;margin:0}
.library-resources{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));border-block:1px solid var(--line)}
.library-resource{display:flex;flex-direction:column;align-items:flex-start;padding:30px 26px;text-decoration:none;min-width:0}
.library-resource:first-child{padding-left:0}
.library-resource:last-child{padding-right:0}
.library-resource+.library-resource{border-left:1px solid var(--line)}
.library-resource h3{font-size:1.55rem;line-height:1.2;margin:0 0 16px;color:var(--accent)}
.library-resource p{font-size:.9rem;color:var(--muted);margin:0 0 24px;line-height:1.7}
.library-resource-action{display:flex;gap:20px;align-items:center;justify-content:space-between;margin-top:auto;font-size:.82rem;width:100%}
.library-resource:hover h3{text-decoration:underline;text-underline-offset:.15em}
.library-computer{display:grid;grid-template-columns:1.25fr 1fr;gap:var(--library-gap);background:var(--surface);padding:36px}
.library-computer p{font-size:1rem;line-height:1.75;margin:20px 0 10px}
.library-computer ul{list-style:none;margin:0;padding:0;align-self:center}
.library-computer li{padding:18px 0;border-bottom:1px solid var(--line);font-size:.95rem}
.library-computer li:first-child{border-top:1px solid var(--line)}
.library-news-list{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:32px}
.library-news-item{display:flex;flex-direction:column;padding:24px 0 20px;border-top:1px solid var(--accent);border-bottom:1px solid var(--line)}
.library-news-item time{font-size:.8rem;color:var(--muted);font-variant-numeric:tabular-nums;margin-bottom:18px}
.library-news-item h3{font-size:1.35rem;line-height:1.4;margin:0 0 28px}
.library-news-item h3 a{text-decoration:none}
.library-news-item h3 a:hover{text-decoration:underline}
.library-news-read{display:flex;justify-content:space-between;align-items:center;gap:18px;margin-top:auto;min-height:44px;font-size:.8rem;color:var(--accent);text-decoration:none}
.library-empty{padding-block:24px;border-block:1px solid var(--line);color:var(--muted)}
.library-social{display:grid;grid-template-columns:1fr 1fr;gap:var(--library-gap);border-top:1px solid var(--line);padding-top:36px}
.library-social p{color:var(--muted);line-height:1.7;max-width:40ch;font-size:.95rem;margin-top:20px}
.library-social-links a{display:flex;align-items:center;justify-content:space-between;gap:24px;min-height:88px;padding:18px 0;border-bottom:1px solid var(--line);text-decoration:none}
.library-social-links a:first-child{padding-top:0}
.library-social-links strong{display:block;font-size:1.55rem;font-family:Georgia,serif;font-weight:400;line-height:1.3;color:var(--accent)}
.library-social-links small{display:block;color:var(--muted);font-size:.8rem;margin-top:4px}
.library-social-links a:hover strong{text-decoration:underline}
body[data-colors="dark"] .library-catalog,body[data-colors="light"] .library-catalog{background:var(--surface);color:var(--fg);border:1px solid var(--line)}
body[data-colors="dark"] .library-computer,body[data-colors="light"] .library-computer{border:1px solid var(--line)}
@media(max-width:1100px){.library-visit{grid-template-columns:1fr 1.3fr}.library-contact{grid-column:1/-1;display:flex;align-items:start;flex-wrap:wrap;gap:12px 30px;border-top:1px solid var(--line);padding-top:24px}.library-contact h2{width:100%;margin-bottom:0}.library-contact .library-note{margin:0}.library-section-heading{align-items:flex-start}.library-opening{gap:28px}}
@media(max-width:760px){.library-opening,.library-computer,.library-social{grid-template-columns:1fr}.library-intro h1{font-size:clamp(3rem,9vw,4.3rem)}.library-catalog{padding:26px}.library-book{margin-bottom:18px}.library-catalog h2 br{display:none}.library-catalog p{max-width:45ch}.library-visit{grid-template-columns:1fr;gap:28px;margin-top:28px;padding-block:28px}.library-contact{display:block;border-top:0;padding-top:0}.library-contact h2{margin-bottom:14px}.library-contact .library-note{margin-top:12px}.library-contact>a{min-height:40px}.library-hours dl{max-width:440px}.library-section-heading{display:block}.library-section-heading h2{margin-bottom:18px}.library-section-heading h2 br{display:none}.library-resource{padding:24px 18px}.library-news-list{grid-template-columns:1fr;gap:24px}.library-news-item h3{max-width:45ch;margin-bottom:16px}.library-computer{padding:26px;gap:18px}.library-social{gap:24px}.library-breadcrumbs{margin-bottom:24px}}
@media(max-width:520px){.library-resources{grid-template-columns:1fr}.library-resource,.library-resource:first-child,.library-resource:last-child{padding:24px 0}.library-resource+.library-resource{border-left:0;border-top:1px solid var(--line)}.library-resource p{margin-bottom:16px}.library-computer{padding:24px 20px}.library-jump{display:grid;gap:0}.library-intro{padding-bottom:0}.library-intro>p{font-size:1rem}.library-hours dl>div{gap:12px;flex-wrap:wrap}.library-catalog h2{font-size:2rem}}
@media(prefers-reduced-motion:reduce){.library-page a svg{transition:none}.library-page a:hover svg{transform:none}}

/* News covers share the existing lazy image renderer; posters stay uncropped. */
.library-news-preview{display:block;margin-bottom:20px;background:var(--surface);text-decoration:none}
.library-news-preview img,.library-news-preview .image-placeholder{display:block;width:100%;height:auto;aspect-ratio:3/2;object-fit:contain}
.library-news-preview .image-placeholder{display:grid;place-content:center;padding:20px;text-align:center}
body[data-hide-images="true"] .library-news-preview{display:none}
