
body.archive,
body.single-magazine {
  --ink:         #0D1B2A;
  --ink-soft:    #3A4A5C;
  --linen:       #F2EFEA;
  --paper:       #FDFCF9;
  --mist:        #E5E1D8;
  --smoke:       #545454;
  --gold:        #C19A4B;
  --olive:       #7A7E3F;
  --rule:        #D7D2C7;
  --rule-chrome: #CFC9BD;

  --s-1: 4px;  --s-2: 8px;  --s-3: 12px; --s-4: 16px;
  --s-5: 24px; --s-6: 32px; --s-7: 48px; --s-8: 64px;
  --s-9: 88px; --s-10: 120px;

  --font-serif: var(--wp--preset--font-family--spectral);
  --font-ui:    var(--wp--preset--font-family--inter);
  --font-mono:  var(--wp--preset--font-family--mono);

  --t-small:  180ms;
  --t-medium: 280ms;
  --t-card-hover: 280ms;
  --card-hover-opacity: 0.85;
  --ease-standard: cubic-bezier(0.22, 1, 0.36, 1);

  --rhythm-mag: clamp(48px, 7vw, 88px);

  --pad: var(--s-4);
}
@media (min-width: 720px)  { body.archive, body.single-magazine { --pad: var(--s-6); } }
@media (min-width: 1024px) { body.archive, body.single-magazine { --pad: var(--s-7); } }
@media (min-width: 1440px) { body.archive, body.single-magazine { --pad: var(--s-8); } }

.wrap { max-width: 1280px; margin: 0 auto; padding: 0 var(--pad); }

.sr-only {
  position: absolute !important;
  width: 1px; height: 1px;
  padding: 0; margin: -1px;
  overflow: hidden; clip: rect(0, 0, 0, 0);
  white-space: nowrap; border: 0;
}

.story__media { aspect-ratio: 3 / 2; }
.story--side .story__media,
.story--row .story__media { aspect-ratio: 3 / 2; }
.story__media.ph-1 { background: radial-gradient(ellipse at 30% 25%, rgba(255,255,255,0.16), transparent 65%), linear-gradient(155deg, #c9b89c 0%, #a98a6a 50%, #6e5640 100%); }
.story__media.ph-2 { background: radial-gradient(ellipse at 30% 25%, rgba(255,255,255,0.18), transparent 65%), linear-gradient(155deg, #c2a0a0 0%, #a07578 50%, #6e4548 100%); }
.story__media.ph-3 { background: radial-gradient(ellipse at 30% 25%, rgba(255,255,255,0.15), transparent 65%), linear-gradient(155deg, #a4afba 0%, #6a7480 50%, #3e4854 100%); }
.story__media.ph-4 { background: radial-gradient(ellipse at 30% 25%, rgba(255,255,255,0.16), transparent 65%), linear-gradient(155deg, #b0b29a 0%, #7e8068 50%, #4a4c34 100%); }
.story__media.ph-5 { background: radial-gradient(ellipse at 30% 25%, rgba(255,255,255,0.14), transparent 65%), linear-gradient(155deg, #d4c4a8 0%, #a89578 50%, #6e5e44 100%); }
.story__media.ph-6 { background: radial-gradient(ellipse at 30% 25%, rgba(255,255,255,0.12), transparent 65%), linear-gradient(155deg, #8b6a47 0%, #5e4528 50%, #3a2814 100%); }
.story__media.ph-7 { background: radial-gradient(ellipse at 30% 25%, rgba(255,255,255,0.18), transparent 65%), linear-gradient(155deg, #b48a64 0%, #845830 50%, #4a2e14 100%); }

.masthead { padding: var(--rhythm-mag) 0 clamp(32px, 4vw, 56px); }
.masthead__eyebrow {
  display: block;
  font-family: var(--font-mono); font-size: 12px; font-weight: 400;
  letter-spacing: 0.16em; text-transform: uppercase;
  color: var(--smoke);
  margin: 0 0 var(--s-5);
}
.masthead__title {
  font-size: clamp(40px, 5.6vw, 64px);
  line-height: 1.08;
  max-width: 16ch;
}
.masthead__lede {
  font-family: var(--font-serif); font-weight: 400;
  font-size: clamp(19px, 1.6vw, 21px); line-height: 1.65;
  color: var(--ink);
  max-width: 58ch;
  margin: var(--s-5) 0 0;
}
.masthead__meta {
  font-size: 12.5px; font-weight: 400; letter-spacing: 0.02em;
  color: var(--smoke);
  margin: var(--s-4) 0 0;
}

.topic-bar {
  border-top: 1px solid var(--rule);
  border-bottom: 1px solid var(--rule);
}
.topic-bar__inner {
  display: flex; align-items: center; justify-content: space-between;
  gap: var(--s-6);
  flex-wrap: wrap;
}
.topic-nav { min-width: 0; }
.topic-nav__list {
  list-style: none; margin: 0; padding: 0;
  display: flex; gap: clamp(20px, 2.4vw, 36px);
  overflow-x: auto;
  scrollbar-width: none;
  -webkit-overflow-scrolling: touch;
}
.topic-nav__list::-webkit-scrollbar { display: none; }
.topic-nav__list a {
  position: relative;
  display: inline-block; white-space: nowrap;
  padding: 16px 2px 15px;
  font-family: var(--font-mono); font-size: 12px;
  letter-spacing: 0.14em; text-transform: uppercase;
  color: var(--smoke);
  transition: color var(--t-small) ease;
}
.topic-nav__list a:hover { color: var(--ink); }
.topic-nav__list a[aria-current="page"] { color: var(--ink); }
.topic-nav__list a[aria-current="page"]::after {
  content: "";
  position: absolute; left: 0; right: 0; bottom: -1px;
  height: 2px; background: var(--ink);
}

.archive-search {
  display: flex; align-items: center; gap: var(--s-2);
  flex: 0 0 auto;
  align-self: stretch;
  border: 1px solid transparent;
  border-left-color: var(--rule);
  border-right-color: var(--rule);
  border-radius: 0;
  background: var(--paper);
  padding: 0 6px 0 18px;
  transition: border-color var(--t-small) ease, box-shadow var(--t-small) ease;
}
.archive-search:hover { border-color: var(--ink-soft); }
.archive-search:focus-within { border-color: var(--ink); }
.archive-search__input {
  width: 200px;
  border: 0; background: transparent;
  font-family: var(--font-ui); font-weight: 300; font-size: 14px;
  color: var(--ink);
  padding: 14px 0;
  outline: none;
}
@media (pointer: coarse) {
  .archive-search__input { font-size: 16px; }
}
.archive-search__input::placeholder { color: var(--smoke); }
.archive-search__input::-webkit-search-decoration,
.archive-search__input::-webkit-search-cancel-button { -webkit-appearance: none; }
.archive-search__input:focus-visible { outline: none; }
.archive-search__btn {
  background: none; border: 0; padding: 10px; cursor: pointer;
  color: var(--smoke);
  min-width: 44px; min-height: 44px;
  display: inline-flex; align-items: center; justify-content: center;
  transition: color var(--t-small) ease;
}
.archive-search__btn:hover { color: var(--ink); }
.archive-search__btn svg { width: 18px; height: 18px; display: block; }
@media (max-width: 1023px) {
  .archive-search {
    width: 100%;
    justify-content: space-between;
    align-self: auto;
    border: 1px solid var(--rule);
  }
  .archive-search__input { flex: 1; width: auto; }
}

.archive__resultmeta {
  font-size: 12.5px; font-weight: 400; letter-spacing: 0.02em;
  color: var(--smoke);
  margin: var(--s-3) 0 0;
}
.archive__resultmeta a {
  color: var(--smoke);
  text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: 3px;
  transition: color var(--t-small) ease;
}
.archive__resultmeta a:hover { color: var(--ink); }

.story { position: relative; }
.story__link::after { content: ""; position: absolute; inset: 0; }
.story__media { overflow: hidden; background: var(--mist); }
.story__media img {
  width: 100%; height: 100%; object-fit: cover;
  aspect-ratio: 3 / 2;
  transition: opacity var(--t-card-hover) var(--ease-standard);
}
.story:hover .story__media img { opacity: var(--card-hover-opacity); }
.story:hover .story__title { text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: 4px; }
.story__cat {
  display: block;
  font-family: var(--font-mono); font-size: 11px; font-weight: 400;
  letter-spacing: 0.1em; text-transform: uppercase;
  color: var(--smoke);
}
.story__dek {
  font-size: 15.5px; line-height: 1.6;
  color: var(--ink-soft);
  max-width: 60ch;
  margin: 0;
}
.story__meta {
  font-size: 12.5px; font-weight: 400; letter-spacing: 0.02em;
  color: var(--smoke);
  margin: 0;
}

.featured { padding: var(--rhythm-mag) 0; }
.featured__marker {
  display: block;
  font-family: var(--font-mono); font-size: 11px;
  letter-spacing: 0.1em; text-transform: uppercase;
  color: var(--smoke);
  margin: 0 0 var(--s-6);
}
.featured__grid { display: grid; gap: clamp(40px, 4vw, 56px); }
@media (min-width: 1024px) {
  .featured__grid { grid-template-columns: minmax(0, 7fr) minmax(0, 5fr); align-items: start; }
}

.story--lead .story__cat { margin: var(--s-5) 0 var(--s-3); }
.story--lead .story__title {
  font-size: clamp(28px, 3.2vw, 42px);
  line-height: 1.12;
  max-width: 22ch;
}
.story--lead .story__dek { margin-top: var(--s-4); font-size: 17px; }
.story--lead .story__meta { margin-top: var(--s-4); }

.story--side {
  display: grid; grid-template-columns: minmax(0, 1fr) 148px; gap: var(--s-5);
  align-items: start;
  padding: var(--s-6) 0;
  border-top: 1px solid var(--rule);
}
.featured__side .story--side:first-child { padding-top: 0; border-top: 0; }
@media (min-width: 1024px) {
  .featured__side .story--side:first-child { padding-top: 0; }
  .featured__side .story--side:last-child { padding-bottom: 0; }
}
.story--side .story__title { font-size: clamp(20px, 1.9vw, 24px); line-height: 1.3; margin: var(--s-2) 0 var(--s-3); }
.story--side .story__dek { font-size: 14.5px; }
.story--side .story__dek, .story--row .story__dek {
  display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 3; overflow: hidden;
}
.story--side .story__meta { margin-top: var(--s-3); }
@media (max-width: 479px) {
  .story--side { grid-template-columns: 1fr; }
  .story--side .story__media { order: -1; }
}

section.archive { padding-bottom: var(--rhythm-mag); }
.archive__heading {
  font-size: clamp(22px, 2vw, 28px); line-height: 1.3;
  padding-bottom: var(--s-4);
  border-bottom: 1px solid var(--ink);
}
.archive__month {
  font-family: var(--font-mono); font-size: 11px; font-weight: 400;
  letter-spacing: 0.1em; text-transform: uppercase;
  color: var(--smoke);
  margin: var(--s-7) 0 0;
  padding-bottom: var(--s-3);
  border-bottom: 1px solid var(--rule);
}
.archive__list { list-style: none; margin: 0; padding: 0; }
.story--row {
  display: grid; grid-template-columns: 1fr; gap: var(--s-4);
  padding: var(--s-6) 0;
  border-bottom: 1px solid var(--rule);
}
@media (min-width: 720px) {
  .story--row { grid-template-columns: 216px minmax(0, 1fr); gap: var(--s-6); align-items: start; }
}
.story--row .story__title { font-size: clamp(21px, 2vw, 26px); line-height: 1.3; margin: var(--s-2) 0 var(--s-3); max-width: 30ch; }
.story--row .story__meta { margin-top: var(--s-3); }

.archive__empty {
  padding: var(--s-8) 0;
  border-bottom: 1px solid var(--rule);
  max-width: 52ch;
}
.archive__empty h3 { font-size: 22px; margin-bottom: var(--s-3); }
.archive__empty p { margin: 0; font-size: 16px; color: var(--ink-soft); }
.archive__empty a { text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: 3px; transition: color var(--t-small) ease; }
.archive__empty a:hover { color: var(--ink-soft); }

.pagination {
  display: flex; align-items: center; gap: var(--s-5);
  padding-top: var(--s-6);
  font-family: var(--font-mono); font-size: 12px;
  letter-spacing: 0.1em; text-transform: uppercase;
}
.pagination__pages { display: flex; gap: var(--s-2); }
.pagination a, .pagination [aria-current="page"], .pagination__muted {
  display: inline-flex; align-items: center; justify-content: center;
  min-width: 44px; min-height: 44px; padding: 0 var(--s-2);
}
.pagination a { color: var(--smoke); transition: color var(--t-small) ease; }
.pagination a:hover { color: var(--ink); }
.pagination [aria-current="page"] { color: var(--ink); box-shadow: inset 0 -2px 0 var(--ink); }
.pagination__muted { color: var(--rule); }
.pagination__next { margin-left: auto; }

.loadmore {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: var(--s-3);
  margin-top: clamp(48px, 6vw, 72px);
}
.loadmore__btn {
  display: inline-flex;
  align-items: center;
  font-family: var(--font-ui);
  font-weight: 500;
  font-size: 12px;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--ink);
  background: var(--paper);
  border: 1px solid var(--ink);
  border-radius: 0;
  padding: 15px var(--s-8);
  min-height: 48px;
  text-decoration: none;
  cursor: pointer;
  transition: background-color var(--t-small) ease, color var(--t-small) ease;
}
.loadmore__btn:hover,
.loadmore__btn:focus-visible {
  background: var(--ink);
  color: var(--paper);
}
.loadmore__btn[aria-busy="true"] { opacity: 0.6; cursor: progress; }
.loadmore__btn[hidden] { display: none; }

.eyebrow {
  display: inline-block;
  font-family: var(--font-mono);
  font-weight: 400;
  font-size: 11px;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--smoke);
  margin: 0;
}
.cta {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  font-family: var(--font-mono);
  font-weight: 400;
  font-size: 11px;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--smoke);
  text-decoration: none;
  transition: color var(--t-medium) ease;
}
.cta:hover { color: var(--ink); }

.routing {
  background: var(--paper);
  padding: clamp(40px, 5vw, 64px) var(--pad) clamp(48px, 6vw, 72px);
}
.routing__inner {
  max-width: 1080px;
  margin: 0 auto;
}
.routing__head {
  margin: 0 0 var(--s-8);
}
.routing__eyebrow { margin: 0 0 var(--s-5); }
.routing__h {
  font-family: var(--font-serif);
  font-weight: 400;
  font-size: clamp(28px, 3.4vw, 40px);
  line-height: 1.15;
  letter-spacing: -0.02em;
  margin: 0;
  color: var(--ink);
  text-wrap: balance;
}
.routing__grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: var(--s-6);
}
.routing__side {
  display: flex;
  flex-direction: column;
  gap: var(--s-6);
}
@media (min-width: 1024px) {
  .routing__grid {
    grid-template-columns: 1.4fr 1fr;
    column-gap: var(--s-8);
    row-gap: var(--s-8);
    align-items: stretch;
  }
  .routing__side {
    display: grid;
    grid-template-rows: 1fr 1fr;
    gap: var(--s-7);
  }
}
.route-card {
  display: flex;
  flex-direction: column;
  text-decoration: none;
  color: var(--ink);
}
.route-card__index {
  font-family: var(--font-mono);
  font-weight: 400;
  font-size: 12px;
  letter-spacing: 0;
  color: var(--smoke);
  margin: 0 0 var(--s-3);
}
.route-card__h {
  font-family: var(--font-serif);
  font-weight: 400;
  font-size: 20px;
  line-height: 1.25;
  letter-spacing: -0.02em;
  margin: 0 0 var(--s-3);
  color: var(--ink);
  text-wrap: balance;
}
.route-card__p {
  font-family: var(--font-ui);
  font-weight: 300;
  font-size: 16px;
  line-height: 1.5;
  color: var(--ink-soft);
  margin: 0 0 var(--s-4);
  flex: 1;
  max-width: 56ch;
}
.route-card__cta {
  align-self: flex-start;
  color: var(--ink);
  padding-bottom: 4px;
  border-bottom: 1px solid transparent;
  transition: border-color var(--t-small) ease;
}
.route-card:hover .route-card__cta { border-bottom-color: var(--ink); }
.route-card--lead {
  border: 1px solid var(--ink);
  padding: var(--s-6);
  transition: background var(--t-small) ease;
}
.route-card--lead:hover { background: var(--linen); }
@media (min-width: 1024px) {
  .route-card--lead {
    padding: var(--s-8) var(--s-7);
  }
  .route-card--lead .route-card__h {
    font-size: clamp(24px, 2.6vw, 30px);
  }
  .route-card--lead .route-card__p {
    max-width: 42ch;
    font-size: 17px;
    margin-bottom: var(--s-6);
  }
}

body.single-magazine { background: var(--paper); }

.article__header { padding: var(--rhythm-mag) 0 0; }
.article__head-inner { max-width: 960px; }
.article__crumbs { padding: var(--s-5) 0 0; }
.masthead__crumbs { padding: var(--s-5) 0 0; }
.article__eyebrow {
  display: flex;
  align-items: baseline;
  flex-wrap: wrap;
  gap: var(--s-3);
  margin: 0 0 var(--s-4);
}
.article__eyebrow-sep { color: var(--rule); font-family: var(--font-mono); font-size: 12px; line-height: 1; }
.article__date {
  font-family: var(--font-mono); font-size: 12px; font-weight: 400;
  letter-spacing: 0.14em; text-transform: uppercase;
  color: var(--smoke);
}
.article__cat {
  display: inline-block;
  font-family: var(--font-mono); font-size: 12px; font-weight: 400;
  letter-spacing: 0.14em; text-transform: uppercase;
  color: var(--smoke);
  text-decoration: none;
  transition: color var(--t-small) ease;
  margin: 0;
}
.article__cat:hover { color: var(--ink); }
.article__title {
  font-size: clamp(30px, 4.4vw, 52px);
  line-height: 1.1;
  letter-spacing: -0.015em;
  max-width: 38ch;
  margin: 0;
  text-wrap: balance;
}
.article__title--split {
  max-width: none;
  text-wrap: initial;
}
.article__title--split .article__title-row { white-space: nowrap; }
.article__title--split.article__title--compact { font-size: clamp(28px, 3.4vw, 42px); }
@media (max-width: 700px) {
  .article__title--split .article__title-row { white-space: normal; }
}
.article__meta {
  font-family: var(--font-mono); font-size: 12.5px; font-weight: 400;
  letter-spacing: 0.04em;
  color: var(--smoke);
  margin: var(--s-5) 0 0;
}
.article__meta-author {
  color: inherit;
  text-decoration: none;
  border-bottom: 1px solid var(--rule);
  transition: border-color var(--t-small) ease, color var(--t-small) ease;
}
.article__meta-author:hover,
.article__meta-author:focus-visible { color: var(--ink); border-bottom-color: var(--ink); }
.article__byline {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: var(--s-3);
  margin: var(--s-5) 0 0;
}
.article__byline .article__meta { margin: 0; }
.article__byline-sep { color: var(--rule); font-family: var(--font-mono); font-size: 12px; line-height: 1; }
.article__save {
  flex: 0 0 auto;
  display: inline-flex;
  align-items: center;
  gap: 7px;
  padding: 0;
  background: none;
  border: 0;
  cursor: pointer;
  font-family: var(--font-mono);
  font-size: 11px;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--smoke);
  transition: color var(--t-small) ease;
}
.article__save:hover { color: var(--ink); }
.article__save svg { width: 15px; height: 15px; display: block; }
.article__save svg path {
  fill: none;
  stroke: currentColor;
  stroke-width: 1.6;
  transition: fill var(--t-small) ease;
}
.article__save[aria-pressed="true"] { color: var(--ink); }
.article__save[aria-pressed="true"] svg path { fill: currentColor; stroke: currentColor; }
.article__save-text--saved { display: none; }
.article__save[aria-pressed="true"] .article__save-text--default { display: none; }
.article__save[aria-pressed="true"] .article__save-text--saved { display: inline; }
.article__save:focus-visible { outline: 2px solid var(--ink); outline-offset: 3px; border-radius: 2px; }

.article__save,
.article__cat,
.article__filed a { position: relative; }
.article__save::before,
.article__cat::before,
.article__filed a::before {
  content: "";
  position: absolute;
  inset: -14px 0;
}
.article__save::before { inset: -15px -8px; }
.article__hero {
  margin: clamp(32px, 4vw, 56px) 0 0;
  overflow: hidden;
  background: var(--mist);
}
.article__hero img { display: block; width: 100%; height: auto; }
.article__hero--ph { aspect-ratio: 16 / 9; }
.article__hero-credit {
  font-size: 12px; color: var(--smoke);
  margin: var(--s-3) auto 0;
  max-width: 760px; padding: 0 var(--pad);
}

.article__body {
  padding: clamp(40px, 5vw, 64px) var(--pad) 0;
}
.article__body > * { margin-left: auto; margin-right: auto; }
.article__body p,
.article__body ul,
.article__body ol,
.article__body h2,
.article__body h3,
.article__body blockquote,
.article__body figure,
.article__body .wp-block-table {
  max-width: 720px;
}
.article__body p {
  font-family: var(--font-ui); font-weight: 300;
  font-size: 18.5px; line-height: 1.7;
  color: var(--ink);
  margin: 0 auto var(--s-5);
}
.article__body .wp-block-post-content > p:first-of-type {
  font-family: var(--font-serif); font-weight: 400;
  font-size: 21px; line-height: 1.65;
}
.article__body h2 {
  font-size: clamp(24px, 2.4vw, 30px); line-height: 1.25;
  margin: var(--s-8) auto var(--s-4);
}
.article__body h3 {
  font-size: clamp(20px, 2vw, 24px); line-height: 1.3;
  margin: var(--s-7) auto var(--s-3);
}
.article__body ul,
.article__body ol { margin: 0 auto var(--s-5); padding-left: 1.4em; }
.article__body li { font-size: 17px; line-height: 1.65; color: var(--ink-soft); margin-bottom: var(--s-2); }
.article__body blockquote {
  border-left: 2px solid var(--gold);
  padding-left: var(--s-5);
  margin: var(--s-7) auto;
  font-family: var(--font-serif); font-style: italic;
  font-size: clamp(20px, 2vw, 24px); line-height: 1.45;
  color: var(--ink);
}
.article__body a {
  color: var(--ink);
  text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: 3px;
  transition: color var(--t-small) ease;
}
.article__body a:hover { color: var(--ink-soft); }
.article__body img { max-width: 100%; height: auto; }
.article__body figcaption { font-size: 12.5px; color: var(--smoke); margin-top: var(--s-2); }
.article__body .wp-block-table { overflow-x: auto; }
.article__body table { width: 100%; border-collapse: collapse; font-size: 15px; }
.article__body th,
.article__body td { border-bottom: 1px solid var(--rule); padding: var(--s-3) var(--s-4); text-align: left; }

.article__body .article-notice {
  max-width: 720px;
  margin: 0 auto var(--s-7);
  padding: var(--s-5) 0;
  background: transparent;
  border-top: 1px solid var(--rule);
  border-bottom: 1px solid var(--rule);
}
.article__body .article-notice p {
  font-family: var(--font-ui); font-weight: 400;
  font-size: 14.5px; line-height: 1.6;
  color: var(--smoke);
  margin: 0;
  max-width: none;
}

.article__body .article-sources {
  max-width: 720px;
  margin: var(--s-8) auto 0;
  padding: var(--s-6) 0 0;
  border-top: 1px solid var(--rule);
}
.article__body .article-sources h2 {
  font-family: var(--font-mono); font-weight: 400;
  font-size: 11px; letter-spacing: 0.1em; text-transform: uppercase;
  color: var(--smoke);
  margin: 0 0 var(--s-5);
}
.article__body .article-sources ul {
  list-style: none; padding: 0; margin: 0;
  display: grid; grid-template-columns: 1fr;
  gap: var(--s-3) var(--s-6);
}
@media (min-width: 720px) {
  .article__body .article-sources ul { grid-template-columns: repeat(2, 1fr); }
}
.article__body .article-sources li {
  font-family: var(--font-ui); font-weight: 400;
  font-size: 13px; line-height: 1.55;
  color: var(--smoke);
  margin: 0;
}
.article__body .article-sources a {
  color: var(--smoke);
  text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: 3px;
  transition: color var(--t-small) ease;
}
.article__body .article-sources a:hover { color: var(--ink); }

.article__filed {
  margin-top: clamp(40px, 5vw, 64px);
  padding: var(--s-6) 0;
  border-top: 1px solid var(--rule);
}
.article__filed .wrap { max-width: 760px; display: flex; flex-wrap: wrap; align-items: baseline; gap: var(--s-3); }
.article__filed-label {
  font-family: var(--font-mono); font-size: 11px;
  letter-spacing: 0.1em; text-transform: uppercase;
  color: var(--smoke);
}
.article__filed a {
  font-family: var(--font-mono); font-size: 11px;
  letter-spacing: 0.1em; text-transform: uppercase;
  color: var(--ink);
  text-decoration: none;
  border-bottom: 1px solid transparent;
  transition: border-color var(--t-small) ease;
}
.article__filed a:hover { border-bottom-color: var(--ink); }
.article__filed .sep { color: var(--rule); margin: 0 2px; }

.article-related { padding: var(--rhythm-mag) 0; border-top: 1px solid var(--rule); }
.article-related__heading {
  font-size: clamp(22px, 2vw, 28px); line-height: 1.3;
  margin: 0 0 var(--s-7);
}
.article-related__grid { display: grid; grid-template-columns: 1fr; gap: clamp(32px, 3.5vw, 48px); }
@media (min-width: 640px)  { .article-related__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (min-width: 1024px) { .article-related__grid { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
.story--card .story__cat { margin: var(--s-4) 0 var(--s-2); }
.story--card .story__title { font-size: clamp(19px, 1.7vw, 22px); line-height: 1.3; margin: 0 0 var(--s-3); }
.story--card .story__meta { margin: 0; }

.article-brands { padding: var(--rhythm-mag) 0; border-top: 1px solid var(--rule); }
.article-brands__heading {
  font-size: clamp(22px, 2vw, 28px); line-height: 1.3;
  margin: 0 0 var(--s-7);
}
.article-brands__grid { display: grid; grid-template-columns: 1fr; gap: clamp(28px, 3vw, 44px); }
@media (min-width: 640px)  { .article-brands__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (min-width: 1024px) { .article-brands__grid { grid-template-columns: repeat(3, minmax(0, 1fr)); } }

.brand-mini { position: relative; }
.brand-mini__link { display: block; color: var(--ink); text-decoration: none; }
.brand-mini__media { aspect-ratio: 3 / 2; overflow: hidden; background: var(--mist); margin-bottom: var(--s-4); }
.brand-mini__media img { width: 100%; height: 100%; object-fit: cover; display: block; transition: opacity 280ms ease; }
.brand-mini:hover .brand-mini__media img { opacity: var(--card-hover-opacity); }
.brand-mini__meta {
  font-family: var(--font-mono);
  font-size: 12px; letter-spacing: 0.06em; text-transform: uppercase;
  color: var(--smoke); margin: 0 0 var(--s-2);
}
.brand-mini__name { font-size: clamp(19px, 1.7vw, 22px); line-height: 1.3; margin: 0; }
.brand-mini:hover .brand-mini__name { text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: 4px; }

.article-brands__routes { display: flex; flex-wrap: wrap; gap: var(--s-4) var(--s-7); margin: clamp(28px, 3vw, 40px) 0 0; }
.article-brands__routes:not(:first-child) { padding-top: var(--s-6); border-top: 1px solid var(--rule); }
.article-brands__routes a {
  font-family: var(--font-mono);
  font-size: 12px; letter-spacing: 0.08em; text-transform: uppercase;
  color: var(--smoke); text-decoration: none;
  transition: color 180ms ease;
}
.article-brands__routes a:hover,
.article-brands__routes a:focus-visible { color: var(--ink); }

