.journal-main, .article-main { color: var(--copy-main); }
.primary-nav a[aria-current="page"]:not(.download-button) { color: var(--brand-blue); }
.journal-intro { padding-top: clamp(4rem,7vw,6rem); padding-bottom: clamp(3rem,5vw,4rem); }
.journal-intro h1 { margin: 0; font-size: clamp(2.5rem,4.2vw,3.6rem); font-weight: 700; letter-spacing: -.035em; line-height: 1.1; }
.journal-intro > p:last-child { width: max-content; max-width: 100%; margin: 1.25rem 0 0; color: var(--copy-description); font-size: clamp(1rem,1.3vw,1.15rem); line-height: 1.5; white-space: nowrap; }
.journal-list { padding-bottom: clamp(6rem,10vw,10rem); }
.journal-search { width: min(100%,23rem); display: flex; align-items: center; gap: .65rem; margin: 0 0 2.5rem auto; padding: .65rem 0; border-bottom: 1px solid var(--line); color: var(--copy-unselected); transition: border-color .2s ease; }
.journal-search:focus-within { border-bottom-color: var(--copy-main); }
.journal-search svg { width: 1.15rem; height: 1.15rem; flex: none; stroke: currentColor; stroke-width: 1.7; stroke-linecap: round; }
.journal-search input { width: 100%; min-width: 0; padding: 0; border: 0; outline: 0; background: transparent; color: var(--copy-main); font-size: .9375rem; line-height: 1.5; }
.journal-search input::placeholder { color: var(--copy-unselected); opacity: 1; }
.journal-search-status { margin: 0; }
.journal-search-status:not(.is-empty) { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }
.journal-search-status.is-empty { padding: 3rem 0; color: var(--copy-unselected); font-size: 1rem; }
.journal-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); column-gap: 1.75rem; row-gap: clamp(3.25rem,5vw,5rem); }
.journal-card { min-width: 0; display: flex; flex-direction: column; }
.journal-card-image { position: relative; width: 100%; aspect-ratio: 16 / 10; overflow: hidden; border-radius: .5rem; background: var(--grey-1); }
.journal-card-image img { width: 100%; height: 100%; display: block; object-fit: cover; transition: transform .7s cubic-bezier(.22,1,.36,1); }
.journal-card:hover .journal-card-image img, .journal-card:focus-visible .journal-card-image img { transform: scale(1.035); }
.journal-card-meta { margin: 1.5rem 0 .7rem; color: var(--copy-unselected); font-size: .8125rem; line-height: 1.4; }
.journal-card h2, .journal-card h3 { margin: 0; font-size: clamp(1.15rem,1.4vw,1.375rem); font-weight: 700; letter-spacing: -.02em; line-height: 1.32; text-wrap: balance; }
.journal-card-desc { margin: .8rem 0 0; color: var(--copy-description); font-size: 1rem; line-height: 1.55; }
.journal-card-date { display: block; margin-top: auto; padding-top: 1.35rem; color: var(--copy-unselected); font-size: .8125rem; line-height: 1.4; }
.journal-card:focus-visible, .back-link:focus-visible, .article-index a:focus-visible { outline: 2px solid var(--brand-blue); outline-offset: 4px; }

.article-main > .container { padding-top: clamp(2.5rem,5vw,4rem); padding-bottom: clamp(5rem,9vw,9rem); }
.back-link { display: inline-flex; align-items: center; gap: .65rem; color: var(--copy-body); font-size: 1rem; font-weight: 500; transition: color .2s ease, transform .2s ease; }
.back-link::before { content: "←"; font-size: 1.2em; }
.back-link:hover { color: var(--copy-main); transform: translateX(-.18rem); }
.article-intro { width: min(100%,62rem); margin: clamp(3.25rem,5vw,4.5rem) auto clamp(2.5rem,4vw,3rem); text-align: left; }
.article-intro h1 { margin: 0; font-size: clamp(2.25rem,3.5vw,3rem); font-weight: 700; letter-spacing: -.035em; line-height: 1.08; text-wrap: balance; }
.article-meta { display: flex; flex-wrap: wrap; align-items: center; gap: .55rem; margin-top: 1.5rem; color: var(--copy-unselected); font-size: .875rem; line-height: 1.4; }
.article-category { font-weight: 500; }
.article-date { color: var(--copy-unselected); font-weight: 400; }
.article-cover { position: relative; width: min(100%,62rem); margin: 0 auto clamp(3.75rem,6vw,5rem); aspect-ratio: 2.05 / 1; overflow: hidden; border-radius: .5rem; background: var(--grey-1); }
.article-cover img { width: 100%; height: 100%; display: block; object-fit: cover; }
.article-layout { width: min(100%,62rem); display: grid; grid-template-columns: minmax(0,11rem) minmax(0,1fr); gap: clamp(2rem,3vw,2.5rem); margin: 0 auto; }
.article-layout.without-index { grid-template-columns: minmax(0,1fr); }
.article-index { position: sticky; top: calc(var(--header-height) + 2rem); align-self: start; padding-top: 1.2rem; border-top: 1px solid var(--line); }
.article-index p { margin: 0 0 1rem; font-size: .875rem; font-weight: 600; }
.article-index a { display: block; padding: .65rem .5rem .65rem 1rem; border-left: 2px solid var(--line); color: var(--copy-unselected); font-size: .875rem; line-height: 1.4; transition: color .2s ease, border-color .2s ease; }
.article-index a.is-nested { padding-left: 1.8rem; font-size: .8125rem; }
.article-index a:hover { color: var(--copy-main); }
.article-index a[aria-current="location"] { border-left-color: var(--brand-blue); color: var(--copy-main); font-weight: 600; }
.article-body { min-width: 0; }
.article-body > p, .article-body section p { margin: 0 0 1.35rem; color: var(--copy-body); font-size: 1.0625rem; line-height: 1.6; }
.article-body > p:first-of-type { color: var(--copy-main); }
.article-body h2, .article-body h3, .article-body h4 { scroll-margin-top: calc(var(--header-height) + 2rem); }
.article-body section { padding-top: 2rem; margin-top: 2.5rem; scroll-margin-top: calc(var(--header-height) + 2rem); }
.article-body h2 { margin: 0 0 1.5rem; font-size: clamp(1.4rem,1.9vw,1.5rem); font-weight: 700; letter-spacing: -.02em; line-height: 1.32; }
.article-body > h2 { margin-top: 2.5rem; padding-top: 2rem; }
.article-body > h3 { margin: 2rem 0 1rem; font-size: 1.15rem; line-height: 1.4; }
.article-body > h4 { margin: 1.75rem 0 .9rem; font-size: 1.05rem; line-height: 1.4; }
.article-body ul, .article-body ol { margin: 0 0 1.35rem; padding-left: 1.5rem; color: var(--copy-body); font-size: 1.0625rem; line-height: 1.6; }
.article-body li + li { margin-top: .45rem; }
.article-body a { color: var(--blue); text-decoration: underline; text-underline-offset: .18em; }
.article-body figure { margin: 2rem 0; }
.article-body figure img { display: block; width: 100%; height: auto; border-radius: .5rem; }
.article-body figcaption { margin-top: .75rem; color: var(--copy-unselected); font-size: .8125rem; line-height: 1.5; }
.article-body > a[download] { display: inline-flex; margin: .25rem 0 1.35rem; padding: .8rem 1rem; border: 1px solid var(--line); border-radius: .5rem; text-decoration: none; font-weight: 600; }
.article-subsection { padding-top: 1rem; scroll-margin-top: calc(var(--header-height) + 2rem); }
.article-subsection h3 { margin: 1.25rem 0 1rem; font-size: 1.0625rem; font-weight: 700; letter-spacing: -.01em; line-height: 1.4; }
.article-inline-image { position: relative; margin: 3rem 0 1rem; overflow: hidden; border-radius: .5rem; }
.article-inline-image img { width: 100%; height: auto; aspect-ratio: 16 / 10; display: block; border-radius: .5rem; object-fit: cover; }
.article-inline-image figcaption { margin-top: .75rem; color: var(--copy-unselected); font-size: .8125rem; }
.article-inline-image.is-image-fallback { aspect-ratio: 16 / 10; }
.blog-image-fallback { width: 100%; height: 100%; min-height: 10rem; display: grid; place-content: center; gap: .2rem; background: linear-gradient(145deg,#eef1ff 0%,#dfe6ff 100%); color: var(--blue); text-align: center; letter-spacing: .08em; }
.blog-image-fallback span { font-size: clamp(.75rem,1vw,.9rem); font-weight: 600; }
.blog-image-fallback strong { font-size: clamp(1.1rem,1.8vw,1.6rem); font-weight: 800; }
.journal-related { margin-top: clamp(4rem,6vw,5rem); }
.journal-related[hidden] { display: none; }
.related-content { min-width: 0; width: 100%; grid-column: 2; padding-top: 1.75rem; border-top: 1px solid var(--line); }
.related-content > h2 { margin: 0 0 1.25rem; font-size: clamp(1.5rem,2vw,1.75rem); font-weight: 700; letter-spacing: -.025em; }
.journal-related-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 1.5rem; }
.journal-related .journal-card-image { aspect-ratio: 16 / 9; }
.journal-related .journal-card h3 { font-size: clamp(1rem,1.2vw,1.15rem); }
.journal-related .journal-card-desc { font-size: .9rem; line-height: 1.45; }
.journal-related .journal-card-meta, .journal-related .journal-card-date { font-size: .75rem; }
.article-missing { width: min(100%,64rem); margin: 6rem auto; }
.article-missing h1 { font-size: clamp(2rem,4vw,3rem); }
.article-loading { width: min(100%,62rem); min-height: 20rem; display: grid; place-items: center; margin: 3rem auto; color: var(--copy-unselected); }

@media (max-width: 900px) {
  .journal-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .article-layout { grid-template-columns: 10rem minmax(0,1fr); gap: 2.5rem; }
}
@media (max-width: 680px) {
  .journal-intro { padding-top: 3.5rem; padding-bottom: 2.5rem; }
  .journal-intro h1 { font-size: clamp(2.1rem,8vw,2.8rem); }
  .journal-intro > p:last-child { width: auto; white-space: normal; }
  .journal-search { width: 100%; margin-bottom: 2rem; }
  .journal-grid { grid-template-columns: 1fr; row-gap: 3rem; }
  .journal-card-image { aspect-ratio: 16 / 10; }
  .journal-card-meta { margin-top: 1.25rem; }
  .article-main > .container { padding-top: 2.25rem; }
  .article-intro { margin-top: 2.75rem; margin-bottom: 2rem; }
  .article-intro h1 { font-size: clamp(2rem,8vw,2.7rem); }
  .article-cover { aspect-ratio: 16 / 10; margin-bottom: 2.5rem; }
  .article-layout { display: block; }
  .article-index { display: none; }
  .article-inline-image img { height: clamp(12rem,56vw,18rem); aspect-ratio: auto; object-position: center; }
  .article-body > p, .article-body section p { font-size: 1rem; }
  .related-content { width: 100%; }
  .article-body section { scroll-margin-top: 6rem; }
  .journal-related-grid { grid-template-columns: 1fr; gap: 1.5rem; }
  .journal-related .journal-card { display: grid; grid-template-columns: 34% minmax(0,1fr); column-gap: 1rem; align-content: start; }
  .journal-related .journal-card-image { grid-row: span 4; aspect-ratio: 1 / 1; }
  .journal-related .journal-card-meta { margin: 0 0 .3rem; }
  .journal-related .journal-card-desc { display: none; }
  .journal-related .journal-card-date { margin: .45rem 0 0; padding: 0; }
}
@media (prefers-reduced-motion: reduce) {
  .journal-card-image img, .back-link { transition: none; }
}
