/* Research typography: technical, squared and deliberately mechanical. */
:root {
  --research-machine-font: "IBM Plex Mono", "SFMono-Regular", Consolas, "Liberation Mono", monospace;
  --research-reading-font: "Inter Tight", "Helvetica Neue", Arial, sans-serif;
}

body:is(.research-index-page, .research-overview-page, .methodology-reference-page) main :is(h1, h2, h3, h4, h5, h6),
body[data-research-article] main :is(h1, h2, h3, h4, h5, h6),
body:is(.research-index-page, .research-overview-page, .methodology-reference-page) main :is(button, input, label, time, code, kbd, samp),
body[data-research-article] main :is(button, input, label, time, code, kbd, samp),
body:is(.research-index-page, .research-overview-page, .methodology-reference-page) main :is([class*="kicker"], [class*="eyebrow"], [class*="meta"], [class*="label"], [class*="tag"]),
body[data-research-article] main :is([class*="kicker"], [class*="eyebrow"], [class*="meta"], [class*="label"], [class*="tag"]) {
  font-family: var(--research-machine-font) !important;
  font-variant-ligatures: none;
}

body:is(.research-index-page, .research-overview-page, .methodology-reference-page) main :is(h1, h2, h3, h4, h5, h6),
body[data-research-article] main :is(h1, h2, h3, h4, h5, h6) {
  letter-spacing: -.055em;
}

/* Keep the whole Research experience typographically consistent. */
body:is(.research-index-page, .research-overview-page, .methodology-reference-page) main :is(p, li, blockquote),
body[data-research-article] main :is(p, li, blockquote) {
  font-family: var(--research-machine-font) !important;
  font-variant-ligatures: none;
}

body:is(.research-index-page, .research-overview-page, .methodology-reference-page) main,
body[data-research-article] main {
  font-family: var(--research-machine-font);
}

body:is(.research-index-page, .research-overview-page, .methodology-reference-page) main :is(a, span, strong, small, figcaption, th, td),
body[data-research-article] main :is(a, span, strong, small, figcaption, th, td) {
  font-family: var(--research-machine-font) !important;
  font-variant-ligatures: none;
}

/* Research index */
.research-index-page .index-hero h1 {
  max-width: 7.4ch;
  font-size: clamp(68px, 7.7vw, 116px) !important;
  font-weight: 600;
  line-height: .84 !important;
  letter-spacing: -.085em !important;
}

.research-index-page .archive-head h2 {
  font-size: clamp(52px, 5.8vw, 86px) !important;
  line-height: .9 !important;
  letter-spacing: -.07em !important;
}

.research-index-page .filter-row button,
.research-index-page .archive-tools,
.research-index-page .publication :is(time, span, b),
.research-index-page .publication > a {
  font-family: var(--research-machine-font) !important;
  font-variant-ligatures: none;
}

.research-index-page .publication h3 {
  letter-spacing: -.045em !important;
}

/* Research overview */
.research-overview-page .research-hero h1 {
  max-width: 8ch;
  font-size: clamp(68px, 8vw, 122px) !important;
  font-weight: 600;
  line-height: .86 !important;
  letter-spacing: -.085em !important;
}

.research-overview-page main :is(a, button),
.research-overview-page main :is([class*="number"], [class*="index"], [class*="datum"]) {
  font-family: var(--research-machine-font);
  font-variant-ligatures: none;
}

/* Methodology reference */
.methodology-reference-page main :is(a, button),
.methodology-reference-page main :is([class*="number"], [class*="index"], [class*="mono"]) {
  font-family: var(--research-machine-font) !important;
  font-variant-ligatures: none;
}

.methodology-reference-page main h1 {
  letter-spacing: -.07em !important;
}

/* Long-form papers */
body[data-research-article] .research-article-title {
  max-width: 17ch;
  font-size: clamp(58px, 7vw, 104px);
  font-weight: 600;
  line-height: .94;
  letter-spacing: -.075em;
}

body[data-research-article] .research-article-kicker,
body[data-research-article] .research-article-meta,
body[data-research-article] .research-toc-content,
body[data-research-article] .research-section-number,
body[data-research-article] :is(figcaption, th) {
  font-family: var(--research-machine-font) !important;
  font-variant-ligatures: none;
}

body[data-research-article] .research-section-number {
  letter-spacing: .08em;
}

/* Long-form papers read in the standard CNW editorial typeface.
   Mono is reserved for metadata, navigation markers and technical notation. */
body[data-research-article] main {
  font-family: var(--research-reading-font);
}

body[data-research-article] main :is(
  h1, h2, h3, h4, h5, h6,
  p, li, blockquote,
  a, span, strong, small, td
) {
  font-family: var(--research-reading-font) !important;
  font-variant-ligatures: normal;
}

body[data-research-article] .research-article-title {
  font-family: var(--research-reading-font) !important;
  font-weight: 500;
  letter-spacing: -.06em;
}

body[data-research-article] main :is(
  button, input, label, time, code, kbd, samp,
  [class*="kicker"], [class*="eyebrow"], [class*="meta"],
  [class*="label"], [class*="tag"],
  .research-toc-content, .research-section-number,
  figcaption, th
) {
  font-family: var(--research-machine-font) !important;
  font-variant-ligatures: none;
}

@media (max-width: 760px) {
  .research-index-page .index-hero h1,
  .research-overview-page .research-hero h1 {
    max-width: 100%;
    font-size: clamp(52px, 15vw, 78px) !important;
    letter-spacing: -.075em !important;
  }

  body[data-research-article] .research-article-title {
    max-width: 100%;
    font-size: clamp(40px, 11vw, 54px);
    line-height: .96;
    letter-spacing: -.07em;
  }
}

/* The two Research landing pages share the same mechanical voice. Long-form
   papers keep the quieter editorial type rules defined below. */
body.research-index-page .index-hero h1 {
  max-width: 820px !important;
  font-size: clamp(52px, 5.35vw, 82px) !important;
  font-weight: 600 !important;
  line-height: .97 !important;
  letter-spacing: -.058em !important;
}
body.research-index-page .index-hero-copy p {
  max-width: 460px !important;
  font-size: clamp(17px, 1.25vw, 20px) !important;
  line-height: 1.45 !important;
  letter-spacing: -.015em !important;
}
body.research-index-page .archive-head h2 {
  font-size: clamp(44px, 4.2vw, 64px) !important;
  line-height: 1 !important;
  letter-spacing: -.045em !important;
}
body.research-index-page .publication h3 {
  font-size: clamp(21px, 1.8vw, 28px) !important;
  line-height: 1.12 !important;
  letter-spacing: -.045em !important;
}
body.research-index-page main :is(button, input, label, time, code, kbd, samp),
body.research-index-page .publication :is(time, span, b),
body.research-index-page .archive-tools {
  font-family: var(--research-machine-font) !important;
  font-variant-ligatures: none;
}
@media (max-width: 760px) {
  body.research-index-page .index-hero h1 { max-width: 11ch !important; font-size: clamp(44px, 12vw, 58px) !important; }
  body.research-index-page .archive-head h2 { font-size: 40px !important; }
}

/* Calm editorial scale shared with the Terminal Alpha presentation. */
body[data-research-article] main {
  padding: 104px 24px 112px !important;
}
body[data-research-article] .research-article-hero {
  width: min(100%, 1080px) !important;
  padding: 12px 0 78px !important;
}
body[data-research-article] .research-article-hero::after {
  display: none !important;
  content: none !important;
}
body[data-research-article] .research-article-kicker {
  margin-bottom: 24px !important;
  font-size: 12px !important;
}
body[data-research-article] .research-article-title {
  max-width: 16ch !important;
  font-size: clamp(48px, 5vw, 76px) !important;
  line-height: .98 !important;
  letter-spacing: -.052em !important;
}
body[data-research-article] .research-article-subtitle {
  max-width: 720px !important;
  margin-top: 24px !important;
  font-size: clamp(17px, 1.5vw, 21px) !important;
  line-height: 1.45 !important;
}
body[data-research-article] .research-article-meta {
  margin-top: 26px !important;
  font-size: 12px !important;
}
body[data-research-article] .research-article-content {
  font-size: 18px !important;
  line-height: 1.64 !important;
}
body[data-research-article] .research-article-lead {
  margin-bottom: 48px !important;
  font-size: clamp(20px, 1.65vw, 24px) !important;
  line-height: 1.48 !important;
}
body[data-research-article] .research-article-section h2 {
  font-size: clamp(30px, 3vw, 42px) !important;
  line-height: 1.06 !important;
}
@media (max-width: 760px) {
  body[data-research-article] main { padding: 88px 16px 80px !important; }
  body[data-research-article] .research-article-hero { padding-bottom: 52px !important; }
  body[data-research-article] .research-article-title {
    font-size: clamp(36px, 9.5vw, 46px) !important;
    line-height: 1 !important;
  }
  body[data-research-article] .research-article-subtitle { font-size: 17px !important; }
  body[data-research-article] .research-article-lead { font-size: 20px !important; }
  body[data-research-article] .research-article-section h2 { font-size: 32px !important; }
}
