/* Article-library composition; colors, typography and article cards stay shared. */
.article-library { width:var(--page-width); margin:var(--page-start-gap) auto 4rem; }
.library-head { padding:clamp(1.5rem,3vw,2.25rem); margin-bottom:var(--page-intro-gap); background:var(--story-bg); border-radius:1rem; }
.library-head h1 { margin:0 0 var(--page-title-gap); font:500 var(--type-page-title)/1.12 Georgia,serif; letter-spacing:-.03em; }
.library-head p { margin:0; color:var(--muted); font-size:1.1rem; line-height:1.65; }
.library-group { margin-bottom:3rem; }
.group-heading { display:flex; align-items:end; justify-content:space-between; gap:1rem; margin-bottom:1.3rem; padding-top:1.15rem; border-top:2px solid var(--sun); }
.group-heading h2 { margin:0; font:500 var(--type-section)/1.16 Georgia,serif; }
.group-heading span { color:var(--muted); font-size:.83rem; }
.topic-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:1rem; }
.topic-card { min-width:0; padding:1.4rem 1.5rem; border:1px solid var(--line); border-radius:1rem; background:var(--story-bg); }
.topic-card h3 { margin:0 0 .8rem; font:500 var(--type-card)/1.3 Georgia,serif; }
.topic-card h3 a { color:var(--ink); text-decoration:none; }
.topic-card h3 a:hover,.topic-card h3 a:focus-visible { color:var(--jade); text-decoration:underline; }
.topic-links { display:flex; flex-wrap:wrap; gap:.42rem .6rem; margin:0; padding:0; list-style:none; }
.topic-links a { color:var(--jade-dark); font-size:.91rem; line-height:1.35; overflow-wrap:anywhere; }
.topic-links li:not(:last-child)::after { content:"·"; margin-left:.6rem; color:var(--muted); }
.library-related { margin-bottom:2.5rem; }
.subtopic-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:.8rem; }
.subtopic-card { display:flex; align-items:center; min-height:94px; padding:1.05rem 1.2rem; border:1px solid var(--line); border-radius:1rem; background:var(--card); color:var(--ink); text-decoration:none; font:500 var(--type-card-compact)/1.3 Georgia,serif; }
.subtopic-card:hover,.subtopic-card:focus-visible { border-color:var(--jade); color:var(--jade-dark); background:var(--cream); }
.article-section { padding-top:1.2rem; border-top:1px solid var(--line); }
.article-section>h2 { margin:0 0 1.3rem; font:500 var(--type-section)/1.16 Georgia,serif; }
.article-library a:focus-visible { outline:3px solid var(--jade); outline-offset:3px; }
@media(max-width:760px) { .topic-grid { grid-template-columns:1fr; } .subtopic-grid { grid-template-columns:repeat(2,minmax(0,1fr)); } .topic-links { display:grid; gap:0; } .topic-links a { display:flex; align-items:center; min-height:44px; } .topic-links li:not(:last-child)::after { content:none; } }
@media(max-width:520px) { .article-library { margin-bottom:3rem; } .subtopic-grid { grid-template-columns:1fr; } .topic-card { padding:1.15rem; } .group-heading { display:block; } .group-heading span { display:block; margin-top:.55rem; } }
