/* Stackz Research — quiet market docket.
   All visual materials resolve through the canonical --sz-* scale. */

.blog-page {
  background: var(--sz-paper);
  color: var(--sz-ink-2);
  font-family: var(--sz-font-text);
  font-size: var(--sz-text-body);
  line-height: var(--sz-leading-body);
}

.blog-page *,
.blog-page *::before,
.blog-page *::after { box-sizing: border-box; }

.blog-page :is(a, button, input):focus-visible {
  outline: none;
  box-shadow: var(--sz-focus-ring);
}

.blog-main { min-height: calc(var(--sz-16) + var(--sz-16) + var(--sz-16)); }
.blog-main:focus { outline: none; }

.blog-shell {
  width: calc(100% - var(--sz-gutter) - var(--sz-gutter));
  max-width: var(--sz-container);
  margin-inline: auto;
}

.blog-kicker,
.blog-block-label,
.blog-callout-label {
  margin: 0 0 var(--sz-3);
  color: var(--sz-ink-3);
  font-family: var(--sz-font-num);
  font-size: var(--sz-text-micro);
  font-variant-numeric: var(--sz-num-feat);
  font-weight: 600;
  text-transform: uppercase;
}

.blog-meta,
.blog-block-meta,
.blog-story-meta,
.blog-story-byline,
.blog-data-block figcaption,
.blog-media-block figcaption,
.blog-filing-excerpt figcaption {
  color: var(--sz-ink-3);
  font-size: var(--sz-text-meta);
  line-height: var(--sz-leading-snug);
}

.blog-num,
.blog-page time,
.blog-data-table :is(td, th) {
  font-variant-numeric: var(--sz-num-feat);
}

.blog-num { font-family: var(--sz-font-num); }
.blog-page a { color: inherit; text-underline-offset: var(--sz-1); }
.blog-page a:hover { color: var(--sz-ink); }

.blog-masthead {
  padding-block: var(--sz-16) var(--sz-12);
  border-bottom: thin solid var(--sz-rule);
}

.blog-masthead-grid,
.blog-list-head-grid {
  display: grid;
  grid-template-columns: minmax(0, 3fr) minmax(0, 2fr);
  align-items: end;
  gap: var(--sz-16);
}

.blog-masthead h1,
.blog-list-head h1,
.blog-search-head h1,
.blog-author-head h1,
.blog-article-head > h1,
.blog-notice > h1 {
  margin: 0;
  color: var(--sz-ink);
  font-family: var(--sz-font-display);
  font-size: var(--sz-text-display);
  font-weight: 500;
  line-height: var(--sz-leading-tight);
}

.blog-masthead-note { max-width: 100%; }
.blog-masthead-note > p:first-child { margin: 0 0 var(--sz-4); font-size: var(--sz-text-h3); }

.blog-index-search { padding-block: var(--sz-8); border-bottom: thin solid var(--sz-rule); }
.blog-search-form { max-width: 100%; }
.blog-search-form > label { display: block; margin-bottom: var(--sz-2); color: var(--sz-ink); font-size: var(--sz-text-sm); font-weight: 600; }
.blog-search-controls { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: var(--sz-2); }
.blog-search-controls input {
  width: 100%;
  min-height: var(--sz-12);
  padding: var(--sz-3) var(--sz-4);
  border: thin solid var(--sz-rule-strong);
  border-radius: var(--sz-r-sm);
  background: var(--sz-surface);
  color: var(--sz-ink);
  font-size: var(--sz-text-body);
}
.blog-search-controls button,
.blog-calculator form > button {
  min-height: var(--sz-12);
  padding: var(--sz-3) var(--sz-5);
  border: thin solid var(--sz-action);
  border-radius: var(--sz-r-sm);
  background: var(--sz-action);
  color: var(--sz-action-ink);
  font-size: var(--sz-text-sm);
  font-weight: 600;
  cursor: pointer;
  transition: background var(--sz-dur-fast) var(--sz-ease);
}
.blog-search-controls button:hover,
.blog-calculator form > button:hover { background: var(--sz-action-hover); }

.blog-lead,
.blog-ledger,
.blog-desks,
.blog-topic-ledger,
.blog-related { padding-block: var(--sz-10) var(--sz-12); }

.blog-section-rule {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: var(--sz-4);
  margin-bottom: var(--sz-8);
  padding-top: var(--sz-3);
  border-top: thin solid var(--sz-rule-strong);
}
.blog-section-rule :is(h2, p, span) { margin: 0; }
.blog-section-rule :is(h2, p) { color: var(--sz-ink); font-size: var(--sz-text-sm); font-weight: 600; }
.blog-section-rule > span { color: var(--sz-ink-4); font-family: var(--sz-font-num); font-size: var(--sz-text-micro); }

.blog-story { display: grid; gap: var(--sz-5); min-width: 0; }
.blog-story--lead { grid-template-columns: minmax(0, 3fr) minmax(0, 2fr); align-items: stretch; }
.blog-story-media { display: block; min-height: 100%; overflow: hidden; border-radius: var(--sz-r-md); background: var(--sz-surface-2); }
.blog-story-media img { display: block; width: 100%; height: 100%; aspect-ratio: 16 / 10; object-fit: cover; }
.blog-story-copy { min-width: 0; }
.blog-story--lead .blog-story-copy { align-self: center; padding-block: var(--sz-4); }
.blog-story-meta { display: flex; flex-wrap: wrap; gap: var(--sz-2); margin: 0 0 var(--sz-3); }
.blog-story-meta a { text-decoration: none; }
.blog-tickers { color: var(--sz-ink); font-family: var(--sz-font-num); font-variant-numeric: var(--sz-num-feat); }

/* Referenced-symbol chips. A chip carries a live quote, so it stays visually
   distinct from reviewed figures: the move only appears once the client has a
   value, and direction is carried by the arrow and the sign as well as colour,
   never by colour alone. */
.blog-referenced-symbols { margin-top: var(--sz-6); padding-top: var(--sz-4); border-top: thin solid var(--sz-rule); }
.blog-referenced-symbols h2 { margin: 0 0 var(--sz-2); color: var(--sz-ink-3); font-family: var(--sz-font-text); font-size: var(--sz-text-micro); font-weight: 600; letter-spacing: var(--sz-tracking-label); text-transform: uppercase; }
.blog-ticker-strip { display: flex; flex-wrap: wrap; gap: var(--sz-2) var(--sz-4); margin: 0; }
.blog-ticker-note { margin: var(--sz-2) 0 0; color: var(--sz-ink-4); font-size: var(--sz-text-micro); }

.blog-ticker-chip { display: inline-flex; align-items: baseline; gap: var(--sz-1); color: var(--sz-ink); font-family: var(--sz-font-num); font-variant-numeric: var(--sz-num-feat); font-weight: 600; text-decoration: none; white-space: nowrap; }
.blog-ticker-chip:hover .blog-ticker-chip__symbol { text-decoration: underline; }
.blog-ticker-chip:focus-visible { border-radius: var(--sz-r-sm); box-shadow: var(--sz-focus-ring); outline: none; }
.blog-ticker-chip__arrow::before { content: ""; }
.blog-ticker-chip__quote { display: inline-flex; align-items: baseline; gap: var(--sz-1); }
.blog-ticker-chip__quote[hidden] { display: none; }
.blog-ticker-chip[data-direction="positive"] { color: var(--sz-pos); }
.blog-ticker-chip[data-direction="negative"] { color: var(--sz-neg); }
.blog-ticker-chip[data-direction="positive"] .blog-ticker-chip__arrow::before { content: "\2191"; }
.blog-ticker-chip[data-direction="negative"] .blog-ticker-chip__arrow::before { content: "\2193"; }

@media print {
  .blog-ticker-chip { color: var(--sz-print-ink) !important; font-weight: 400; }
}
.blog-story-title { margin: 0; color: var(--sz-ink); font-family: var(--sz-font-text); font-size: var(--sz-text-h2); line-height: var(--sz-leading-snug); }
.blog-story--lead .blog-story-title { font-size: var(--sz-text-h1); }
.blog-story-title a { text-decoration: none; }
.blog-story-title a:hover { text-decoration: underline; }
.blog-story-dek { margin: var(--sz-3) 0 0; color: var(--sz-ink-2); font-size: var(--sz-text-h3); }
.blog-story-excerpt { margin: var(--sz-3) 0 0; }
.blog-story-byline { margin: var(--sz-4) 0 0; }
/* Stories below the lead read as a magazine grid rather than a numbered
   ledger: the picture does the recruiting, and a row number tells a reader
   nothing they wanted to know. Cards size themselves, so one story does not
   sit alone in a three-column track. */
.blog-story-list { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, calc(var(--sz-16) * 5)), 1fr)); gap: var(--sz-8) var(--sz-6); }
.blog-story-list > .blog-story { grid-template-columns: minmax(0, 1fr); gap: var(--sz-4); align-content: start; }
.blog-story-list .blog-story-media { min-height: 0; }
.blog-story-list .blog-story-media img { aspect-ratio: 3 / 2; }
.blog-story-list .blog-story-title { font-size: var(--sz-text-h3); }
.blog-story-list .blog-story-dek { font-size: var(--sz-text-body); }
.blog-story-list .blog-story-excerpt { display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 3; overflow: hidden; }
.blog-story-list .blog-story-byline { margin-top: var(--sz-3); }

.blog-topic-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--sz-12); }
.blog-topic-grid h3 { margin: 0 0 var(--sz-4); color: var(--sz-ink); font-size: var(--sz-text-h3); }
.blog-link-ledger,
.blog-ticker-list { margin: 0; padding: 0; list-style: none; border-top: thin solid var(--sz-rule); }
.blog-link-ledger li,
.blog-ticker-list li { padding-block: var(--sz-4); border-bottom: thin solid var(--sz-rule); }
.blog-link-ledger a,
.blog-ticker-list a { display: flex; justify-content: space-between; gap: var(--sz-3); color: var(--sz-ink); font-weight: 600; text-decoration: none; }
.blog-link-ledger p { margin: var(--sz-2) 0 0; color: var(--sz-ink-3); font-size: var(--sz-text-sm); }

/* Desk columns.

   The reference design colour-codes each desk. This palette keeps colour
   scarce on purpose — gain, loss, and caution are the only saturated hues, and
   spending three more on taxonomy would weaken the ones that carry meaning. A
   heavy ink rule does the same separating work without borrowing the alphabet
   a price move needs. */
.blog-desk-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, calc(var(--sz-16) * 4)), 1fr)); gap: var(--sz-8) var(--sz-10); }
/* Desks hold different numbers of stories, so each column stretches and its
   button is pushed to the floor. Otherwise the shorter desk's button floats
   mid-column and the row stops reading as one shelf. */
.blog-desk { display: flex; flex-direction: column; }
.blog-desk__title { margin: 0 0 var(--sz-5); padding-bottom: var(--sz-2); border-bottom: 3px solid var(--sz-ink); color: var(--sz-ink); font-size: var(--sz-text-h3); }
.blog-desk__title a { color: inherit; text-decoration: none; }
.blog-desk__title a:hover { text-decoration: underline; }
.blog-desk__list { flex: 1 1 auto; display: grid; gap: var(--sz-5); align-content: start; margin: 0; padding: 0; list-style: none; }
.blog-desk__item { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: start; gap: var(--sz-4); }
.blog-desk__copy a { display: block; color: var(--sz-ink); font-weight: 600; line-height: var(--sz-leading-snug); text-decoration: none; }
.blog-desk__copy a:hover { text-decoration: underline; }
.blog-desk__copy time { display: block; margin-top: var(--sz-2); color: var(--sz-ink-3); font-family: var(--sz-font-num); font-size: var(--sz-text-micro); }
.blog-desk__thumb { display: block; width: calc(var(--sz-16) + var(--sz-6)); height: auto; aspect-ratio: 4 / 3; border-radius: var(--sz-r-sm); object-fit: cover; background: var(--sz-surface-2); }
.blog-desk__more { display: block; margin-top: var(--sz-6); padding: var(--sz-3); border: thin solid var(--sz-rule-strong); border-radius: var(--sz-r-md); color: var(--sz-ink); font-size: var(--sz-text-sm); font-weight: 600; text-align: center; text-decoration: none; }
.blog-desk__more:hover { border-color: var(--sz-ink); background: var(--sz-surface-2); }
.blog-desk__more:focus-visible { box-shadow: var(--sz-focus-ring); outline: none; }

/* One desk per row on narrow screens: a two-column split leaves headlines
   wrapping after two words. */
@media (max-width: 48rem) {
  .blog-desk-grid { grid-template-columns: minmax(0, 1fr); gap: var(--sz-8); }
}
.blog-ticker-list a { display: grid; grid-template-columns: minmax(var(--sz-16), auto) minmax(0, 1fr) auto; }

.blog-empty { padding: var(--sz-10); border: thin solid var(--sz-rule); border-radius: var(--sz-r-md); background: var(--sz-surface); }
.blog-empty h2 { margin: 0 0 var(--sz-2); color: var(--sz-ink); font-size: var(--sz-text-h2); }
.blog-empty p { margin: 0; }
.blog-empty a { display: inline-block; margin-top: var(--sz-4); color: var(--sz-ink); font-weight: 600; }

.blog-pagination { display: grid; grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr); align-items: center; gap: var(--sz-4); width: calc(100% - var(--sz-gutter) - var(--sz-gutter)); max-width: var(--sz-container); margin: 0 auto var(--sz-12); padding-top: var(--sz-5); border-top: thin solid var(--sz-rule-strong); }
.blog-pagination > :last-child { justify-self: end; }
.blog-pagination p { margin: 0; color: var(--sz-ink-3); font-size: var(--sz-text-meta); }
.blog-pagination-link { min-height: var(--sz-10); padding: var(--sz-2) var(--sz-3); border: thin solid var(--sz-rule-strong); border-radius: var(--sz-r-sm); color: var(--sz-ink); font-size: var(--sz-text-sm); font-weight: 600; text-decoration: none; }
.blog-pagination-link.is-disabled { color: var(--sz-ink-4); cursor: not-allowed; }

.blog-list-head,
.blog-author-head { padding-block: var(--sz-12); border-bottom: thin solid var(--sz-rule); }
.blog-list-head-grid > p { margin: 0; font-size: var(--sz-text-h3); }
.blog-search-head .blog-search-form { margin-top: var(--sz-8); }
.blog-author-grid { display: grid; grid-template-columns: minmax(0, 2fr) minmax(0, 3fr); gap: var(--sz-16); }
.blog-author-identity { display: flex; align-items: center; gap: var(--sz-5); }
.blog-author-identity img,
.blog-byline img { flex: 0 0 auto; border-radius: var(--sz-r-full); background: var(--sz-surface-2); object-fit: cover; }
.blog-author-identity img { width: var(--sz-16); height: var(--sz-16); }
.blog-author-profile > p { margin: 0 0 var(--sz-5); font-size: var(--sz-text-h3); }
.blog-author-profile section { padding-top: var(--sz-4); border-top: thin solid var(--sz-rule); }
.blog-author-profile h2 { margin: 0 0 var(--sz-2); color: var(--sz-ink); font-size: var(--sz-text-h3); }
.blog-author-profile section p { margin: 0; }

.blog-article-head { padding-block: var(--sz-12) var(--sz-8); }
.blog-article-rubric { display: flex; flex-wrap: wrap; gap: var(--sz-2); margin-bottom: var(--sz-5); color: var(--sz-ink-3); font-size: var(--sz-text-meta); }
.blog-article-rubric a { text-decoration: none; }
.blog-article-head > h1 { max-width: 80%; }
.blog-article-dek { max-width: 75%; margin: var(--sz-5) 0 0; color: var(--sz-ink-2); font-size: var(--sz-text-h2); line-height: var(--sz-leading-snug); }
.blog-byline-row { display: flex; align-items: end; justify-content: space-between; gap: var(--sz-8); margin-top: var(--sz-8); padding-top: var(--sz-4); border-top: thin solid var(--sz-rule-strong); }
.blog-byline { display: flex; align-items: center; gap: var(--sz-3); }
.blog-byline img { width: var(--sz-12); height: var(--sz-12); }
.blog-byline p { margin: 0; }
.blog-byline p > span { display: block; color: var(--sz-ink-3); font-size: var(--sz-text-meta); }
.blog-date-ledger { display: flex; flex-wrap: wrap; justify-content: end; gap: var(--sz-5); margin: 0; }
.blog-date-ledger div { display: grid; gap: var(--sz-1); }
.blog-date-ledger dt { color: var(--sz-ink-4); font-size: var(--sz-text-micro); text-transform: uppercase; }
.blog-date-ledger dd { margin: 0; color: var(--sz-ink); font-family: var(--sz-font-num); font-size: var(--sz-text-meta); }
/* Notices are cards, not bars. A thick coloured left edge reads as a template
   widget and stacks badly when two notices sit together; a hairline box with a
   restrained wash keeps the emphasis in the words. */
.blog-ai-disclosure,
.blog-head-disclosures { margin-top: var(--sz-5); padding: var(--sz-4) var(--sz-5); border: thin solid var(--sz-rule-strong); border-radius: var(--sz-r-md); background: var(--sz-surface); color: var(--sz-ink-2); }
.blog-head-disclosures { border-color: var(--sz-rule-strong); background: var(--sz-surface); }
.blog-head-disclosures h2 { margin: 0 0 var(--sz-3); color: var(--sz-ink-3); font-family: var(--sz-font-text); font-size: var(--sz-text-micro); font-weight: 600; letter-spacing: var(--sz-tracking-label); text-transform: uppercase; }
.blog-head-disclosures dl { display: grid; gap: var(--sz-3); margin: 0; }
.blog-head-disclosures dt { color: var(--sz-ink); font-size: var(--sz-text-meta); font-weight: 600; }
.blog-head-disclosures dd { margin: var(--sz-1) 0 0; color: var(--sz-ink-2); font-size: var(--sz-text-meta); }
/* A conflict is a warning and a method note is context; only the former earns
   the caution accent, so a page full of method notes never cries wolf. */
.blog-head-disclosures [data-kind="conflict"] dt { color: var(--sz-caution); }
.blog-head-disclosures ul { margin: 0; padding-left: var(--sz-5); }

.blog-hero-figure { margin-block: 0 var(--sz-10); }
.blog-hero-figure img { display: block; width: 100%; max-height: calc(var(--sz-16) + var(--sz-16) + var(--sz-16) + var(--sz-16) + var(--sz-16) + var(--sz-16)); border-radius: var(--sz-r-md); object-fit: cover; }
.blog-hero-figure figcaption { margin-top: var(--sz-2); color: var(--sz-ink-3); font-size: var(--sz-text-meta); }
.blog-hero-figure .blog-media-credit { display: flex; flex-wrap: wrap; align-items: center; gap: var(--sz-2) var(--sz-3); }
.blog-media-credit > span + span { padding-left: var(--sz-3); border-left: 1px solid var(--sz-rule); }
.blog-media-credit strong { margin-left: auto; color: var(--sz-ink); font-weight: 600; }
.blog-media-credit a { color: inherit; text-underline-offset: var(--sz-1); }

@media (max-width: 760px) {
  .blog-media-credit strong { width: 100%; margin-left: 0; }
}

.blog-article-layout { position: relative; padding-bottom: var(--sz-16); }
.blog-article-layout:has(.blog-toc) { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 3fr); gap: var(--sz-12); align-items: start; }
.blog-toc { position: sticky; top: calc(var(--sz-16) + var(--sz-4)); padding-top: var(--sz-4); border-top: thin solid var(--sz-rule-strong); }
.blog-toc h2 { margin: 0 0 var(--sz-3); color: var(--sz-ink); font-size: var(--sz-text-sm); }
.blog-toc ol { margin: 0; padding-left: var(--sz-5); color: var(--sz-ink-3); font-size: var(--sz-text-sm); }
.blog-toc li + li { margin-top: var(--sz-2); }
.blog-toc a { text-decoration: none; }
.blog-article-content { width: 75%; min-width: 0; margin-inline: auto; }
.blog-article-layout:has(.blog-toc) .blog-article-content { width: 100%; }

.blog-prose-block { color: var(--sz-ink-2); font-size: var(--sz-text-h3); line-height: var(--sz-leading-body); }
.blog-prose-block--lead { color: var(--sz-ink); font-size: var(--sz-text-h2); line-height: var(--sz-leading-snug); }
.blog-prose-block p { margin: 0 0 var(--sz-5); }
.blog-prose-block :is(strong, em) { color: var(--sz-ink); }
.blog-prose-block code { padding-inline: var(--sz-1); border-radius: var(--sz-r-sm); background: var(--sz-surface-2); color: var(--sz-ink); font-family: var(--sz-font-num); font-size: var(--sz-text-sm); }
/* A block carrying ten sources renders ten superscripts in a row. Raising them
   with `vertical-align: super` grew the line box and shunted the following
   words onto a new line; an inline-block with a negative offset lifts the mark
   without touching line height, and the run wraps as one unit. */
.blog-citation { display: inline-block; margin-left: var(--sz-1); font-family: var(--sz-font-num); font-size: var(--sz-text-micro); line-height: 1; vertical-align: baseline; transform: translateY(-0.4em); }
.blog-citation + .blog-citation { margin-left: 2px; }
.blog-citation a { color: var(--sz-info); }
.blog-content-heading { margin: var(--sz-10) 0 var(--sz-4); scroll-margin-top: calc(var(--sz-16) + var(--sz-4)); color: var(--sz-ink); font-family: var(--sz-font-text); line-height: var(--sz-leading-snug); }
h2.blog-content-heading { font-size: var(--sz-text-h2); }
h3.blog-content-heading { font-size: var(--sz-text-h3); }

.blog-pull-quote { margin: var(--sz-10) 0; padding-block: var(--sz-6); border-block: thin solid var(--sz-rule-strong); }
.blog-pull-quote blockquote { margin: 0; color: var(--sz-ink); font-family: var(--sz-font-display); font-size: var(--sz-text-h2); line-height: var(--sz-leading-snug); }
.blog-pull-quote blockquote p { margin: 0; }
.blog-pull-quote figcaption { display: flex; flex-wrap: wrap; gap: var(--sz-2); margin-top: var(--sz-4); color: var(--sz-ink-3); font-size: var(--sz-text-meta); }

.blog-callout,
.blog-disclosure,
.blog-correction,
.blog-education-note,
.blog-unsupported-block { margin-block: var(--sz-8); padding: var(--sz-5); border: thin solid var(--sz-rule-strong); border-radius: var(--sz-r-md); background: var(--sz-surface); }
.blog-callout--compact { padding: var(--sz-3) var(--sz-4); }
.blog-callout[data-tone="caution"],
.blog-correction { border-color: var(--sz-caution); background: var(--sz-caution-wash); }
.blog-callout[data-tone="positive"] { border-color: var(--sz-pos); background: var(--sz-pos-wash); }
.blog-callout[data-tone="negative"] { border-color: var(--sz-neg); background: var(--sz-neg-wash); }
.blog-callout h2,
.blog-disclosure h2,
.blog-correction h2,
.blog-education-note h2 { margin: 0 0 var(--sz-2); color: var(--sz-ink); font-size: var(--sz-text-h3); }
.blog-callout > p:last-child,
.blog-disclosure > p:last-child,
.blog-correction > p:last-child,
.blog-education-note > p:last-child,
.blog-unsupported-block > p:last-child { margin-bottom: 0; }
.blog-disclosure { border-color: var(--sz-caution); }
.blog-disclosure ul { margin-bottom: 0; padding-left: var(--sz-5); }

.blog-media-block,
.blog-filing-excerpt { margin-block: var(--sz-10); }
.blog-media-block img { display: block; width: 100%; border-radius: var(--sz-r-md); }
.blog-media-unavailable { display: grid; min-height: calc(var(--sz-16) + var(--sz-16)); place-items: center; border: thin solid var(--sz-rule); border-radius: var(--sz-r-md); background: var(--sz-surface-2); color: var(--sz-ink-3); }
.blog-media-block figcaption,
.blog-filing-excerpt figcaption { display: flex; flex-wrap: wrap; gap: var(--sz-3); margin-top: var(--sz-2); }

/* Inline figure width variants. An editor picks the emphasis; the breakout is
   suppressed below 64rem so a wide figure can never force a horizontal scroll
   on the article column. */
.blog-media-block[data-width="content"] img { width: 100%; }
.blog-media-block .blog-media-caption { flex: 1 1 100%; color: var(--sz-ink-2); }
@media (min-width: 64rem) {
  .blog-media-block[data-width="wide"] { width: 112%; margin-inline: -6%; }
  .blog-media-block[data-width="full"] { width: 124%; margin-inline: -12%; }
}

/* Inline ticker cards and price charts sit between paragraphs, so they carry a
   quieter rule than a standalone data block and stay flush with the prose. */
.blog-article-content > .blog-quote,
.blog-article-content > .blog-chart-block { margin-block: var(--sz-8); padding: var(--sz-5); border: thin solid var(--sz-rule-strong); border-radius: var(--sz-r-md); background: var(--sz-surface); }
.blog-article-content > .blog-quote .blog-block-head,
.blog-article-content > .blog-chart-block .blog-block-head { margin-bottom: var(--sz-4); }
.blog-chart-block .blog-stat-ledger { margin-bottom: var(--sz-4); }

.blog-methodology,
.blog-sources,
.blog-related-links,
.blog-correction-history { margin-block: var(--sz-10); padding-top: var(--sz-5); border-top: thin solid var(--sz-rule-strong); }
.blog-methodology h2,
.blog-sources h2,
.blog-related-links h2,
.blog-correction-history h2,
.blog-filing-excerpt h2 { margin: 0 0 var(--sz-4); color: var(--sz-ink); font-size: var(--sz-text-h2); }
.blog-methodology ol,
.blog-sources ol,
.blog-related-links ul,
.blog-correction-history ol { margin: 0; padding-left: var(--sz-5); }
.blog-methodology li + li,
.blog-sources li + li,
.blog-related-links li + li,
.blog-correction-history li + li { margin-top: var(--sz-4); }
.blog-methodology li p,
.blog-related-links li p { margin: var(--sz-1) 0 0; }
.blog-sources li > p { margin: 0; }
.blog-sources .blog-block-meta { display: flex; flex-wrap: wrap; gap: var(--sz-2); margin-top: var(--sz-1); }
.blog-source-excerpt { margin-top: var(--sz-2) !important; color: var(--sz-ink-3); }

.blog-filing-excerpt { padding: var(--sz-5); border: thin solid var(--sz-rule-strong); border-radius: var(--sz-r-md); background: var(--sz-surface); }
.blog-filing-excerpt blockquote { margin: 0; color: var(--sz-ink); font-family: var(--sz-font-display); font-size: var(--sz-text-h3); }
.blog-filing-excerpt blockquote p { margin: 0; }

.blog-data-block { margin-block: var(--sz-10); padding-block: var(--sz-5); border-block: thin solid var(--sz-rule-strong); }
.blog-block-head { display: flex; align-items: start; justify-content: space-between; gap: var(--sz-4); margin-bottom: var(--sz-5); }
.blog-block-head h2 { margin: 0; color: var(--sz-ink); font-size: var(--sz-text-h2); line-height: var(--sz-leading-snug); }
.blog-status { flex: 0 0 auto; padding: var(--sz-1) var(--sz-2); border: thin solid var(--sz-rule-strong); border-radius: var(--sz-r-full); color: var(--sz-ink-3); font-family: var(--sz-font-num); font-size: var(--sz-text-micro); }
.blog-block-meta { display: flex; flex-wrap: wrap; gap: var(--sz-2) var(--sz-4); margin: var(--sz-4) 0 0; }
.blog-data-block > figcaption { margin-top: var(--sz-4); }
.blog-chart-summary { margin: 0 0 var(--sz-4); }
.blog-missing { color: var(--sz-ink-4); font-family: var(--sz-font-num); }

.blog-quote-primary { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--sz-4); padding-bottom: var(--sz-5); }
.blog-quote-primary > div { display: grid; gap: var(--sz-1); }
.blog-quote-primary span { color: var(--sz-ink-3); font-size: var(--sz-text-meta); }
.blog-quote-primary strong { color: var(--sz-ink); font-size: var(--sz-text-h1); line-height: var(--sz-leading-tight); overflow-wrap: anywhere; }
.blog-quote-primary small { color: var(--sz-ink-3); font-size: var(--sz-text-micro); }
.blog-quote-change[data-direction="positive"] strong { color: var(--sz-pos); }
.blog-quote-change[data-direction="negative"] strong { color: var(--sz-neg); }
.blog-stat-ledger,
.blog-kpi-strip { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); margin: 0; border-top: thin solid var(--sz-rule); }
.blog-stat-ledger > div,
.blog-kpi-strip > div { min-width: 0; padding: var(--sz-4); border-right: thin solid var(--sz-rule); border-bottom: thin solid var(--sz-rule); }
.blog-stat-ledger > div:last-child,
.blog-kpi-strip > div:last-child { border-right: 0; }
.blog-stat-ledger dt,
.blog-kpi-strip dt { color: var(--sz-ink-3); font-size: var(--sz-text-micro); }
.blog-stat-ledger dd,
.blog-kpi-strip dd { margin: var(--sz-2) 0 0; color: var(--sz-ink); font-size: var(--sz-text-h3); font-weight: 600; overflow-wrap: anywhere; }
.blog-kpi-strip dd small { display: block; margin-top: var(--sz-1); color: var(--sz-ink-3); font-family: var(--sz-font-text); font-size: var(--sz-text-micro); font-weight: 400; }
.blog-kpi-strip > div > p { margin: var(--sz-2) 0 0; color: var(--sz-ink-3); font-size: var(--sz-text-micro); }

.blog-chart-stage { position: relative; width: 100%; aspect-ratio: 5 / 2; min-height: calc(var(--sz-16) + var(--sz-16) + var(--sz-16)); margin-bottom: var(--sz-5); overflow: hidden; border: thin solid var(--sz-rule); border-radius: var(--sz-r-md); background: var(--sz-surface-2); }
.blog-chart-stage canvas { position: absolute; inset: 0; width: 100% !important; height: 100% !important; }

.blog-table-scroll { width: 100%; overflow-x: auto; overscroll-behavior-inline: contain; border: thin solid var(--sz-rule); border-radius: var(--sz-r-md); }
.blog-table-scroll:focus-visible { box-shadow: var(--sz-focus-ring); outline: none; }
.blog-data-table { width: 100%; border-collapse: collapse; background: var(--sz-surface); }
.blog-data-table caption { padding: var(--sz-3) var(--sz-4); border-bottom: thin solid var(--sz-rule); color: var(--sz-ink-2); font-size: var(--sz-text-meta); text-align: left; }
.blog-data-table :is(th, td) { min-width: var(--sz-16); padding: var(--sz-3) var(--sz-4); border-bottom: thin solid var(--sz-rule-soft); color: var(--sz-ink-2); font-size: var(--sz-text-sm); text-align: left; vertical-align: top; white-space: normal; overflow-wrap: anywhere; }
.blog-data-table thead th { background: var(--sz-surface-2); color: var(--sz-ink-3); font-size: var(--sz-text-micro); font-weight: 600; }
.blog-data-table tbody th { color: var(--sz-ink); font-weight: 600; }
.blog-data-table tr:last-child > * { border-bottom: 0; }
.blog-data-table .blog-num { text-align: right; }
.blog-data-table button { display: inline-flex; align-items: center; gap: var(--sz-2); min-height: var(--sz-8); padding: var(--sz-1) var(--sz-2); border: 0; border-radius: var(--sz-r-sm); background: transparent; color: inherit; font: inherit; font-weight: inherit; cursor: pointer; }
.blog-data-table button[aria-sort="ascending"] span { transform: rotate(180deg); }
.blog-data-table button[aria-sort="descending"] span { transform: none; }
.blog-download { flex: 0 0 auto; font-size: var(--sz-text-sm); font-weight: 600; }

.blog-calculator > p { margin-top: 0; }
.blog-calculator form { margin-block: var(--sz-5); padding: var(--sz-5); border: thin solid var(--sz-rule); border-radius: var(--sz-r-md); background: var(--sz-surface-2); }
.blog-calculator fieldset { margin: 0; padding: 0; border: 0; }
.blog-calculator legend { margin-bottom: var(--sz-4); color: var(--sz-ink); font-size: var(--sz-text-h3); font-weight: 600; }
.blog-input-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--sz-4); }
.blog-input-grid label { display: grid; gap: var(--sz-2); color: var(--sz-ink); font-size: var(--sz-text-sm); font-weight: 600; }
.blog-input-grid input[type="number"] { width: 100%; min-height: var(--sz-12); padding: var(--sz-3); border: thin solid var(--sz-rule-strong); border-radius: var(--sz-r-sm); background: var(--sz-surface); color: var(--sz-ink); font-family: var(--sz-font-num); font-size: var(--sz-text-body); }
.blog-input-grid small { min-height: var(--sz-4); color: var(--sz-ink-3); font-size: var(--sz-text-micro); font-weight: 400; }
.blog-input-grid .blog-check { display: flex; align-items: center; align-self: end; min-height: var(--sz-12); }
.blog-check input { inline-size: var(--sz-5); block-size: var(--sz-5); accent-color: var(--sz-focus); }
.blog-calculator form > button { margin-top: var(--sz-5); }
.blog-calc-status { margin: var(--sz-3) 0 0; color: var(--sz-ink-3); font-size: var(--sz-text-meta); }
.blog-live-output { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); margin: 0 0 var(--sz-5); border: thin solid var(--sz-rule); border-radius: var(--sz-r-md); background: var(--sz-surface); }
.blog-live-output > div { padding: var(--sz-4); }
.blog-live-output > div + div { border-left: thin solid var(--sz-rule); }
.blog-live-output dt { color: var(--sz-ink-3); font-size: var(--sz-text-micro); }
.blog-live-output dd { margin: var(--sz-2) 0 0; color: var(--sz-ink); }
.blog-live-output [data-live-output-value] { font-size: var(--sz-text-h2); overflow-wrap: anywhere; }
.blog-calculator-note { margin: var(--sz-4) 0 0; padding: var(--sz-3) var(--sz-4); border: thin solid var(--sz-caution); border-radius: var(--sz-r-md); background: var(--sz-caution-wash); color: var(--sz-ink-2); font-size: var(--sz-text-sm); }

.blog-timeline ol,
.blog-claim-ledger ol { margin: 0; padding: 0; list-style: none; border-top: thin solid var(--sz-rule); }
.blog-timeline li,
.blog-claim-ledger li { position: relative; padding: var(--sz-5) 0 var(--sz-5) var(--sz-6); border-bottom: thin solid var(--sz-rule); }
.blog-timeline li::before { position: absolute; top: var(--sz-6); left: 0; width: var(--sz-3); height: var(--sz-3); border: thin solid var(--sz-rule-strong); border-radius: var(--sz-r-full); background: var(--sz-surface); content: ''; }
.blog-timeline li[data-kind="catalyst"]::before { border-color: var(--sz-pos); background: var(--sz-pos-wash); }
.blog-timeline li[data-kind="risk"]::before { border-color: var(--sz-neg); background: var(--sz-neg-wash); }
.blog-timeline li > div,
.blog-claim-status { display: flex; flex-wrap: wrap; align-items: center; gap: var(--sz-2); color: var(--sz-ink-3); font-size: var(--sz-text-meta); }
.blog-event-kind,
.blog-claim-status > span { padding: var(--sz-1) var(--sz-2); border: thin solid var(--sz-rule-strong); border-radius: var(--sz-r-full); color: var(--sz-ink); font-family: var(--sz-font-num); font-size: var(--sz-text-micro); }
.blog-timeline h3 { margin: var(--sz-2) 0; color: var(--sz-ink); font-size: var(--sz-text-h3); }
.blog-timeline li > p,
.blog-claim-ledger li > p { margin: 0; }
.blog-claim-ledger li { padding-left: 0; }
.blog-claim-ledger li > p { margin-top: var(--sz-2); }
.blog-claim-status [data-claim-status="confirmed"] { border-color: var(--sz-pos); }
.blog-claim-status [data-claim-status="denied"] { border-color: var(--sz-neg); }
.blog-claim-status [data-claim-status="unverified"],
.blog-claim-status [data-claim-status="single_source"] { border-color: var(--sz-caution); }

.blog-correction-history time { color: var(--sz-ink); font-family: var(--sz-font-num); font-size: var(--sz-text-meta); }
.blog-correction-history p { margin: var(--sz-1) 0 0; }
.blog-education-note { border-color: var(--sz-info); background: var(--sz-info-wash); }

.blog-notice { padding-block: var(--sz-16); }
.blog-notice-ledger { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--sz-5); margin-block: var(--sz-8); padding-block: var(--sz-5); border-block: thin solid var(--sz-rule-strong); }
.blog-notice-ledger > div { display: grid; gap: var(--sz-2); }
.blog-notice-ledger span { color: var(--sz-ink-3); font-size: var(--sz-text-micro); text-transform: uppercase; }
.blog-notice-ledger strong,
.blog-notice-ledger time { color: var(--sz-ink); }
.blog-notice-reason { max-width: 75%; margin-bottom: var(--sz-8); }
.blog-notice-reason h2 { margin: 0 0 var(--sz-3); color: var(--sz-ink); font-size: var(--sz-text-h2); }
.blog-text-link { font-weight: 600; }

@media (max-width: 64rem) {
  .blog-masthead-grid,
  .blog-list-head-grid { gap: var(--sz-8); }
  .blog-article-head > h1,
  .blog-article-dek { max-width: 100%; }
  .blog-article-content { width: 85%; }
}

@media (max-width: 48rem) {
  .blog-shell,
  .blog-pagination { width: calc(100% - var(--sz-4) - var(--sz-4)); }
  .blog-masthead { padding-block: var(--sz-10); }
  .blog-masthead-grid,
  .blog-list-head-grid,
  .blog-author-grid,
  .blog-story--lead,
  .blog-topic-grid,
  .blog-article-layout:has(.blog-toc) { grid-template-columns: minmax(0, 1fr); gap: var(--sz-6); }
  .blog-masthead h1,
  .blog-list-head h1,
  .blog-search-head h1,
  .blog-author-head h1,
  .blog-article-head > h1,
  .blog-notice > h1 { font-size: var(--sz-text-h1); }
  .blog-story--lead .blog-story-title { font-size: var(--sz-text-h2); }
  .blog-story-list { gap: var(--sz-6); }
  .blog-byline-row { align-items: start; flex-direction: column; gap: var(--sz-4); }
  .blog-date-ledger { justify-content: start; }
  .blog-toc { position: static; margin-bottom: var(--sz-6); }
  .blog-article-content,
  .blog-article-layout:has(.blog-toc) .blog-article-content { width: 100%; }
  .blog-stat-ledger,
  .blog-kpi-strip { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .blog-stat-ledger > div:nth-child(2n),
  .blog-kpi-strip > div:nth-child(2n) { border-right: 0; }
  .blog-input-grid { grid-template-columns: minmax(0, 1fr); }
  .blog-live-output { grid-template-columns: minmax(0, 1fr); }
  .blog-live-output > div + div { border-top: thin solid var(--sz-rule); border-left: 0; }
  .blog-notice-ledger { grid-template-columns: minmax(0, 1fr); }
  .blog-notice-reason { max-width: 100%; }
}

@media (max-width: 24rem) {
  .blog-search-controls { grid-template-columns: minmax(0, 1fr); }
  .blog-search-controls button { width: 100%; }
  .blog-quote-primary,
  .blog-stat-ledger,
  .blog-kpi-strip { grid-template-columns: minmax(0, 1fr); }
  .blog-stat-ledger > div,
  .blog-kpi-strip > div { border-right: 0; }
  .blog-block-head { align-items: start; flex-direction: column; }
  .blog-pagination { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .blog-pagination p { grid-column: 1 / -1; grid-row: 1; text-align: center; }
}

@media (prefers-reduced-motion: reduce) {
  .blog-page *,
  .blog-page *::before,
  .blog-page *::after { scroll-behavior: auto !important; transition-duration: 0s !important; animation-duration: 0s !important; }
}

@media print {
  .blog-toc,
  .blog-search-form,
  .blog-calculator form,
  .blog-chart-stage,
  .blog-pagination,
  .sz-footer,
  .app-shared-nav { display: none !important; }
  .blog-page { background: var(--sz-print-paper) !important; color: var(--sz-print-ink) !important; }
  .blog-shell,
  .blog-article-content,
  .blog-article-layout:has(.blog-toc) .blog-article-content { width: 100%; max-width: none; }
  .blog-article-layout:has(.blog-toc) { display: block; }
  .blog-data-block,
  .blog-table-scroll { break-inside: avoid; border-color: var(--sz-print-ink); }
  .blog-data-table { background: var(--sz-print-paper); }
  .blog-data-table :is(th, td) { color: var(--sz-print-ink); }
}
