/* Library hub + posts */
.lib-intro { max-width: 62ch; }
.lib-section { margin-top: clamp(40px, 5vw, 72px); }
.lib-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: clamp(14px, 1.6vw, 22px); margin-top: 1.6rem; }
.lib-card { display: flex; flex-direction: column; background: #fff; border: 1px solid var(--pearl); border-top: 2px solid var(--clay); border-radius: 4px; padding: 1.5rem 1.4rem 1.4rem; text-decoration: none; color: inherit; transition: transform .4s var(--ease), box-shadow .4s var(--ease); }
.lib-card:hover { transform: translateY(-3px); box-shadow: 0 24px 50px -30px rgba(13,13,11,.35); }
.lib-card .tag { font-family: var(--sans); font-size: .68rem; letter-spacing: .3em; text-transform: uppercase; color: var(--clay-deep); }
.lib-card h3 { font-family: var(--serif); font-weight: 400; font-size: 1.45rem; line-height: 1.25; margin: .6rem 0 .5rem; color: var(--obsidian); }
.lib-card p { font-family: var(--sans); font-size: .92rem; color: var(--stone); line-height: 1.55; margin: 0 0 1rem; }
.lib-card .more { margin-top: auto; font-family: var(--sans); font-size: .78rem; letter-spacing: .2em; text-transform: uppercase; color: var(--obsidian); }
.lib-card.soon { opacity: .55; pointer-events: none; }
.lib-card.soon .more { color: var(--stone); }
.aligned-lib .lib-card { border-top-color: #8FA8BE; } .aligned-lib .lib-card .tag { color: #7A95A8; }
/* post */
.post { max-width: 70ch; margin: 0 auto; }
.post .crumb { font-family: var(--sans); font-size: .76rem; letter-spacing: .2em; text-transform: uppercase; color: var(--stone); margin-bottom: 1.6rem; }
.post .crumb a { color: var(--clay-deep); text-decoration: none; }
.post .answer { font-family: var(--serif); font-size: clamp(1.25rem, 1.8vw, 1.55rem); line-height: 1.5; color: var(--obsidian); border-left: 3px solid var(--clay); padding: .4rem 0 .4rem 1.4rem; margin: 0 0 2.2rem; }
.post h2 { font-family: var(--serif); font-weight: 400; font-size: clamp(1.7rem, 2.6vw, 2.2rem); margin: 2.6rem 0 .25rem; }
.post .sub { font-family: var(--sans); font-size: .72rem; letter-spacing: .3em; text-transform: uppercase; color: var(--clay-deep); margin: 0 0 1rem; }
.post p { font-family: var(--sans); font-size: 1.08rem; line-height: 1.75; color: var(--charcoal); margin: 0 0 1.2rem; }
.post .fig { width: 100%; max-width: 480px; margin: 0 auto 2.4rem; display: block; border-radius: 4px; box-shadow: 0 30px 60px -30px rgba(13,13,11,.5); }
.post-cta { margin-top: 3rem; background: #fff; border: 1px solid var(--pearl); border-top: 2px solid var(--clay); border-radius: 4px; padding: 2rem 2rem 2.1rem; display: grid; grid-template-columns: 150px 1fr; gap: 1.8rem; align-items: center; }
.post-cta img { width: 100%; border-radius: 3px; box-shadow: 0 20px 40px -22px rgba(13,13,11,.5); }
.post-cta .k { font-family: var(--sans); font-size: .7rem; letter-spacing: .3em; text-transform: uppercase; color: var(--clay-deep); margin: 0 0 .5rem; }
.post-cta h3 { font-family: var(--serif); font-weight: 400; font-size: 1.6rem; margin: 0 0 .6rem; color: var(--obsidian); }
.post-cta p { font-size: .98rem; margin: 0 0 1.1rem; }
.post-cta .row { display: flex; gap: 12px; flex-wrap: wrap; align-items: center; }
.post-cta .link { font-family: var(--sans); font-size: .8rem; letter-spacing: .2em; text-transform: uppercase; color: var(--obsidian); text-decoration: none; border-bottom: 1px solid var(--clay); padding-bottom: 3px; }
.post-nav { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; margin-top: 2.4rem; }
.post-nav a { display: block; background: #fff; border: 1px solid var(--pearl); border-radius: 4px; padding: 1.1rem 1.2rem; text-decoration: none; color: inherit; }
.post-nav small { font-family: var(--sans); font-size: .68rem; letter-spacing: .3em; text-transform: uppercase; color: var(--clay-deep); }
.post-nav strong { display: block; font-family: var(--serif); font-weight: 400; font-size: 1.25rem; margin-top: .35rem; color: var(--obsidian); }
.aligned-post .answer, .aligned-post .post-cta, .aligned-post .lib-card { border-left-color: #8FA8BE; border-top-color: #8FA8BE; }
.aligned-post .sub, .aligned-post .post-cta .k, .aligned-post .post-nav small, .aligned-post .crumb a { color: #7A95A8; }
.aligned-post .post-cta .link { border-bottom-color: #8FA8BE; }
@media (max-width: 900px) { .lib-grid { grid-template-columns: 1fr 1fr; } }
@media (max-width: 640px) { .lib-grid, .post-nav, .post-cta { grid-template-columns: 1fr; } .post-cta img { max-width: 160px; } }
/* dark section (Purpose & Identity) */
.lib-dark { background: var(--obsidian); color: var(--ivory); }
.lib-dark .kicker { color: var(--clay); }
.lib-dark .lib-intro { color: var(--ash); }
.lib-dark .lib-card { background: #171715; border-color: rgba(253,252,250,.09); border-top-color: var(--clay); }
.lib-dark .lib-card:hover { box-shadow: 0 30px 60px -30px rgba(0,0,0,.9); }
.lib-dark .lib-card h3 { color: var(--ivory); }
.lib-dark .lib-card p { color: var(--ash); }
.lib-dark .lib-card .more { color: var(--clay); }
.lib-dark .lib-card.soon { opacity: .55; }
.lib-dark .lib-card.soon .more { color: var(--ash); }
/* podcast cards with episode art */
.lib-card.pod { padding: 0; overflow: hidden; }
.lib-card.pod .thumb { display: block; width: 100%; aspect-ratio: 16 / 9; object-fit: cover; border-bottom: 1px solid var(--pearl); }
.lib-card.pod .body { display: flex; flex-direction: column; flex: 1; padding: 1.25rem 1.4rem 1.3rem; }
.lib-card.pod.soon .thumb { filter: grayscale(.6); }
.lib-card.pod .more { margin-top: auto; }
