/* D2: scoped editorial reading and knowledge surfaces */
:root{--d2-ink:#102b42;--d2-muted:#526578;--d2-teal:#1ba997;--d2-paper:#f4f6f8;--d2-border:#dbe5ec}
body.reader-page,body:has(.knowledge-hub){background:var(--d2-paper);color:var(--d2-ink);font-family:Arial,'Segoe UI',sans-serif}
body.reader-page .reading-header{background:#091d31;color:#fff;border-radius:0 0 14px 14px}
body.reader-page .reading-header a{color:#b9f3eb}
body.reader-page .reading-main{max-width:1120px;margin:auto}
body.reader-page article#article{max-width:780px;margin:28px auto;padding:clamp(22px,4vw,48px);background:#fff;border:1px solid var(--d2-border);border-radius:18px;box-shadow:0 10px 35px #14344c12}
body.reader-page article#article h1{font-size:clamp(2rem,4vw,3.4rem);line-height:1.18;letter-spacing:-.03em;color:var(--d2-ink)}
body.reader-page article#article h2{color:var(--d2-ink);font-size:clamp(1.3rem,2.4vw,1.7rem);margin-top:32px}
body.reader-page article#article p{line-height:1.95}
body.reader-page .reading-deck{color:var(--d2-muted);font-size:1.2rem}
body.reader-page .reading-takeaway{border-right:4px solid var(--d2-teal);background:#eef9f7;padding:16px 20px;border-radius:10px}
body.reader-page .reading-sources{border-top:1px solid var(--d2-border);padding-top:18px}
body.reader-page .related-reading{max-width:1120px;margin:30px auto}
body.reader-page .reading-card{background:#fff;color:var(--d2-ink);border:1px solid var(--d2-border);border-radius:14px}
body:has(.knowledge-hub) .knowledge-hub{max-width:1160px}
body:has(.knowledge-hub) .knowledge-hub>h1{font-size:clamp(2.2rem,4vw,3.5rem);color:var(--d2-ink);margin-bottom:12px}
body:has(.knowledge-hub) .knowledge-hub>p{max-width:850px;color:var(--d2-muted)}
body:has(.knowledge-hub) .knowledge-controls{background:#fff;border:1px solid var(--d2-border);padding:18px;border-radius:14px;margin:26px 0}
body:has(.knowledge-hub) .knowledge-controls input,body:has(.knowledge-hub) .knowledge-controls select{background:#fff;color:var(--d2-ink);border:1px solid #b6c9d6}
body:has(.knowledge-hub) .knowledge-card{background:#fff;color:var(--d2-ink);border:1px solid var(--d2-border);border-radius:16px;box-shadow:0 8px 24px #14344c0b;padding:22px}
body:has(.knowledge-hub) .knowledge-card h2{font-size:1.25rem;line-height:1.35}
body:has(.knowledge-hub) .knowledge-card p{color:var(--d2-muted)}
body:has(.knowledge-hub) .knowledge-card a{color:#087d73;font-weight:700}
body.reader-page a:focus-visible,body:has(.knowledge-hub) a:focus-visible{outline:3px solid var(--d2-teal);outline-offset:3px}
@media(max-width:650px){body.reader-page article#article{margin:12px 10px;padding:20px}body:has(.knowledge-hub) .knowledge-controls{padding:12px}body:has(.knowledge-hub) .knowledge-controls label{width:100%}}
@media(prefers-reduced-motion:reduce){body.reader-page *,body:has(.knowledge-hub) *{scroll-behavior:auto!important}}

/* Contrast on white article and knowledge cards. */
body.reader-page article#article a,body.reader-page .related-reading a,body:has(.knowledge-hub) .knowledge-hub a{color:#075d66;text-decoration-color:currentColor;text-underline-offset:3px}
body.reader-page article#article a:hover,body:has(.knowledge-hub) .knowledge-hub a:hover{color:#064651}
body.reader-page article#article .reading-toc a{color:#075d66}

/* Article and knowledge cards: headings and nested labels must not inherit dark-theme colors. */
body.reader-page article#article :is(h1,h2,h3,h4,h5,h6,strong),body.reader-page .related-reading .reading-card :is(h2,h3,strong),body:has(.knowledge-hub) .knowledge-card :is(h2,h3,h4,strong){color:#102b42}
body.reader-page article#article :is(.reading-deck,.reading-meta,.reading-byline),body.reader-page .related-reading .reading-card :is(p,small,span),body:has(.knowledge-hub) .knowledge-card :is(p,small,span){color:#40566a}
body.reader-page article#article .reading-toc :is(h2,strong){color:#102b42}
