/* Journal extension: carries the existing ink, paper and acid-green identity. */
body { font-size: 16px; }
[hidden] { display: none !important; }
a:focus-visible, button:focus-visible, input:focus-visible, select:focus-visible { outline: 3px solid #567820; outline-offset: 5px; }
.preview-note { padding: 9px 22px; background: #dfe6d8; color: #465140; text-align: center; font-size: 12px; }
.site-nav { gap: clamp(14px, 1.8vw, 25px); }
.site-nav > a { font-size: 14px; }
.eyebrow, .section-kicker, .mini-label { font-size: 12px; }
.hero { min-height: 0; padding-top: 48px; padding-bottom: 55px; gap: 42px; }
.hero h1 { font-size: clamp(52px, 6vw, 87px); }
.hero-lede { font-size: 18px; }
.cover-story { align-self: center; background: var(--dark); border-radius: 18px; overflow: hidden; color: white; }
.cover-story > a { display: block; }
.cover-story img { display: block; width: 100%; height: auto; aspect-ratio: 16 / 9; object-fit: contain; background: #eaf0f3; }
.cover-copy { padding: 25px 28px 22px; }
.cover-copy h2 { font-size: clamp(28px, 3vw, 43px); letter-spacing: -.035em; line-height: 1.04; margin: 12px 0 18px; }
.cover-copy .story-label { color: var(--acid); }
.cover-copy p { margin: 0; font-size: 14px; color: #cbd4c8; }
.cover-credit { padding: 10px 28px 16px; border-top: 1px solid #3b4638; color: #b8c5b2; font-size: 12px; }
.cover-credit a { text-decoration: underline; text-underline-offset: 3px; }
.journal-section { padding-top: 65px; padding-bottom: 70px; border-bottom: 1px solid var(--line); }
.journal-inner, .reading-header, .library-wrap { max-width: 1280px; margin: auto; }
.journal-heading { display: flex; justify-content: space-between; align-items: end; gap: 24px; margin-bottom: 32px; }
.journal-heading h2 { font-size: clamp(38px, 4vw, 58px); margin: 0; }
.journal-heading .section-kicker { margin-bottom: 15px; }
.journal-heading > a { white-space: nowrap; font-size: 15px; border-bottom: 1px solid; padding-bottom: 4px; }
.story-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 34px 25px; }
.story-card { min-width: 0; border-bottom: 1px solid var(--line); padding-bottom: 25px; }
.story-card > a { display: block; }
.story-card img { width: 100%; aspect-ratio: 16/10; object-fit: contain; background: #e9ede5; display: block; border-radius: 10px; border: 1px solid var(--line); transition: opacity .15s; }
.story-card a:hover img { opacity: .88; }
.story-card h3 { margin: 13px 0 12px; font-family: var(--display); font-size: 29px; line-height: 1.07; letter-spacing: -.035em; }
.story-card p { color: #586253; font-size: 16px; line-height: 1.55; margin-bottom: 14px; }
.story-label { display: block; color: #526a3b; text-transform: uppercase; font-size: 12px; font-weight: 800; letter-spacing: .08em; margin-top: 17px; }
.story-meta { display: flex; gap: 10px; flex-wrap: wrap; font-size: 13px; color: #596452; }
.card-credit { font-size: 12px; margin-top: 6px; color: #53634d; }
.card-credit a { text-decoration: underline; text-underline-offset: 3px; }
.library-wrap { padding-top: 42px; padding-bottom: 75px; }
.reading-header { padding-top: 45px; padding-bottom: 35px; }
.reading-header h1 { font-size: clamp(46px, 5.5vw, 78px); max-width: 1020px; line-height: 1.04; letter-spacing: -.05em; margin: 22px 0; }
.reading-header .dek { max-width: 840px; font-size: 21px; line-height: 1.5; color: #52604e; }
.breadcrumb { font-size: 14px; color: #5d6c56; }
.breadcrumb a { text-decoration: underline; text-underline-offset: 4px; }
.reading-meta { display: flex; flex-wrap: wrap; gap: 10px 22px; font-size: 14px; }
.reading-meta strong { font-weight: 650; }
.date-explainer { font-size: 13px; color: #52604d; margin-top: 15px; }
.library-controls { background: #e8eddf; padding: 22px; border: 1px solid var(--line); display: grid; grid-template-columns: 2fr 1fr 1fr; gap: 16px; margin: 26px 0; border-radius: 12px; }
.library-controls label { font-size: 13px; font-weight: 700; }
.library-controls input, .library-controls select { display: block; width: 100%; margin-top: 8px; min-height: 47px; padding: 10px 12px; background: white; border: 1px solid #b5c0ad; border-radius: 6px; font: inherit; font-size: 16px; color: var(--ink); }
.result-count { font-size: 14px; margin-bottom: 24px; color: #5b6753; }
.library-empty { padding: 40px 15px; background: #e8eddf; border-radius: 10px; }
.article-figure { max-width: 1120px; margin: 0 auto 42px; }
.article-figure > a { display: block; background: #e9ede5; border: 1px solid var(--line); border-radius: 14px; overflow: hidden; }
.article-figure img { width: 100%; height: auto; max-height: 570px; object-fit: contain; display: block; }
.article-figure figcaption { font-size: 13px; line-height: 1.6; color: #53614c; padding: 15px 0; }
.article-figure figcaption a { text-decoration: underline; }
.article-layout { display: grid; grid-template-columns: minmax(0, 740px) minmax(200px, 280px); gap: 60px; max-width: 1120px; margin: auto; padding-bottom: 60px; }
.article-body { min-width: 0; }
.article-body p { font-family: Georgia, 'Times New Roman', serif; font-size: 20px; line-height: 1.75; margin-bottom: 23px; }
.article-body h2 { font-size: 34px; line-height: 1.12; letter-spacing: -.035em; margin: 42px 0 22px; scroll-margin-top: 20px; }
.article-body section:first-child h2 { margin-top: 0; }
.article-body .article-figure { margin: 30px 0; }
.article-aside { border-top: 3px solid var(--ink); align-self: start; padding-top: 21px; position: sticky; top: 24px; }
.article-aside h2 { font-family: var(--body); font-size: 14px; letter-spacing: .06em; text-transform: uppercase; line-height: 1.4; }
.article-aside p { color: #59654f; font-size: 14px; line-height: 1.65; }
.article-aside a { display: block; font-size: 14px; margin: 12px 0; text-decoration: underline; text-underline-offset: 4px; }
.article-aside .aside-label { font-size: 12px; margin-top: 25px; text-transform: uppercase; letter-spacing: .08em; }
.article-sources { border-top: 1px solid var(--line); padding-top: 15px; margin-top: 45px; }
.article-sources li { padding-left: 6px; margin-bottom: 20px; font-size: 16px; line-height: 1.55; overflow-wrap: anywhere; }
.article-sources a { font-weight: 700; text-decoration: underline; text-underline-offset: 4px; }
.article-sources small { display: block; font-size: 13px; color: #52604c; margin-top: 7px; }
.related-section { background: #e7eddf; padding-top: 55px; padding-bottom: 65px; }
.methodology { max-width: 850px; font-size: 18px; line-height: 1.7; }
.methodology h2 { font-size: 32px; letter-spacing: -.03em; line-height: 1.1; margin-top: 30px; }
.source-library { margin-top: 40px; }
.source-row { display: grid; grid-template-columns: 170px 1fr; gap: 25px; padding: 25px 0; border-top: 1px solid var(--line); }
.source-row h2 { font-family: var(--body); font-size: 19px; letter-spacing: -.015em; line-height: 1.4; margin-bottom: 8px; }
.source-row h2 a { text-decoration: underline; }
.source-row p { max-width: 780px; margin: 0 0 10px; }
.source-row small { font-size: 13px; color: #59664f; }
.source-row .used-in { display: flex; gap: 12px; flex-wrap: wrap; font-size: 13px; }
.source-row .used-in a { border-bottom: 1px solid var(--line); }
.visual-notebook { display: grid; grid-template-columns: 1fr 1fr; gap: 35px 25px; }
.visual-notebook .article-figure { width: 100%; margin: 0; }
.visual-notebook img { height: 340px; width: 100%; object-fit: contain; }
.visual-notebook .review-state { display: block; font-size: 12px; margin-top: 5px; }
.evidence-card img { object-fit: contain; }
.evidence-card figcaption em, .asset-note { font-size: 12px; }
.section-intro > p { font-size: 16px; }
.tool-card > p:not(.card-tools), .rights-card p { font-size: 15px; }
.card-tools, .card-foot, .workflow-step p, .check-items label, .chooser-tab, .result-foot { font-size: 14px; }
.workflow-step p { max-width: none; }
.result-foot { position: static; display: block; margin-top: 22px; }
.source-footer p, .source-footer span, .footer-links a, .footer-brand p { font-size: 14px; }
.site-footer { align-items: start; }
@media(max-width: 1000px) { .article-layout { grid-template-columns: minmax(0, 1fr) 210px; gap: 30px; } .site-nav { gap: 14px; } .site-nav > a { font-size: 13px; } }
@media(max-width: 760px) {
  .story-grid { grid-template-columns: 1fr 1fr; gap: 27px 18px; }
  .story-card h3 { font-size: 25px; }
  .article-layout { display: flex; flex-direction: column; gap: 35px; }
  .article-aside { position: static; order: -1; }
  .article-aside nav { display: flex; flex-wrap: wrap; gap: 8px 18px; }
  .article-aside nav a { margin: 0; }
  .article-aside > p, .article-aside > a { display: none; }
  .article-body p { font-size: 19px; }
  .reading-header .dek { font-size: 19px; }
  .library-controls { grid-template-columns: 1fr 1fr; padding: 16px; }
  .library-controls label:first-child { grid-column: 1 / -1; }
  .journal-heading { align-items: start; flex-direction: column; gap: 18px; }
  .visual-notebook { grid-template-columns: 1fr; }
  .visual-notebook img { height: auto; max-height: 450px; }
  .source-row { grid-template-columns: 1fr; gap: 10px; }
  .site-nav > a { font-size: 16px; }
}
@media(max-width: 480px) {
  .story-grid { grid-template-columns: 1fr; }
  .hero h1 { font-size: 51px; }
  .reading-header h1 { font-size: 44px; }
  .preview-note { text-align: left; }
  .library-controls { grid-template-columns: 1fr; }
  .article-figure { margin-bottom: 24px; }
}
@media(prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } *, *::before, *::after { animation: none !important; transition: none !important; } }
