/* Our library: a quiet directory using the shared site palette and fonts. */
body.lb { margin: 0; background: var(--site-paper); color: var(--site-ink); font-family: var(--site-sans); -webkit-font-smoothing: antialiased; }
.lb *, .lb *::before, .lb *::after { box-sizing: border-box; }
.lb main { max-width: 1080px; margin: 0 auto; padding: calc(var(--site-header-h) + 72px) 40px 88px; }
.lb-intro { margin-bottom: 40px; }
.lb-eyebrow { font-size: 12px; color: var(--site-muted); letter-spacing: .08em; text-transform: uppercase; }
.lb h1 { font: 500 clamp(38px, 5vw, 60px)/1.1 var(--site-display); letter-spacing: -.025em; margin: 16px 0; }
.lb-intro > p:last-child { max-width: 48ch; font-size: 16px; line-height: 1.6; color: var(--site-ink-2); }
.lb-grid { margin: 0; padding: 0; list-style: none; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 20px; }
.lb-grid li { min-width: 0; }
.lb-link { display: block; height: 100%; position: relative; padding: 28px 52px 28px 28px; border: 1px solid var(--site-rule); border-radius: 18px; background: #fffcf6; text-decoration: none; color: var(--site-ink); }
.lb-link:hover { border-color: var(--site-moss); }
.lb-link:focus-visible { outline: 2px solid var(--site-moss); outline-offset: 4px; }
.lb-link h2 { margin: 0 0 12px; font: 500 26px/1.2 var(--site-display); }
.lb-link p { margin: 0; font-size: 14px; line-height: 1.6; color: var(--site-ink-2); }
.lb-arrow { position: absolute; top: 28px; right: 24px; color: var(--site-moss); font-size: 20px; }
@media (max-width: 600px) {
  .lb main { padding: calc(var(--site-header-h) + 40px) 24px 56px; }
  .lb-intro { margin-bottom: 28px; }
  .lb-grid { grid-template-columns: 1fr; gap: 14px; }
  .lb-link { padding: 24px 48px 24px 24px; }
  .lb-arrow { top: 24px; }
}
