/*
  Lugano research: the essay pages and the research library.
  Rewritten 3 Nov 2026 to read as a long-form publication: a title, a deck, one line of metadata,
  then the essay. Hierarchy comes from type, space and hairlines, not from tinted panels and labels.
  Numeric metadata (reading time, dates, source numbers) is set in the mono.
*/
.ip-site--report,
.ip-site--research {
  --rp-accent: #285b53;
  --rp-wash: #e8efeb;
  --rp-ink: #14203e;
  --rp-text: #2c3b4e;
  --rp-muted: #56647a;
  --rp-rule: rgba(18, 28, 60, .14);
  --rp-rule-strong: rgba(18, 28, 60, .32);
}
.rp-theme--teal { --rp-accent: #245c70; --rp-wash: #e7eef1; }
.rp-theme--violet { --rp-accent: #514479; --rp-wash: #edeaf3; }
.rp-theme--plum { --rp-accent: #674764; --rp-wash: #f0e9ed; }
.rp-theme--blue { --rp-accent: #2a4a85; --rp-wash: #e9edf5; }

/* ---- Essay header: breadcrumb, title, deck, one metadata line ---- */
.rp-hero { padding: 30px 0 64px; }
.rp-hero::before { opacity: .25; }
.rp-hero .ip-breadcrumb { flex-wrap: wrap; gap: 8px 14px; margin-bottom: 56px; color: #dce4ed; font-size: 12px; }
.rp-hero h1 { max-width: 860px; font-size: clamp(40px, 3.8vw, 54px); line-height: 1.06; letter-spacing: -.045em; text-wrap: balance; }
.rp-hero .ip-lede { max-width: 700px; margin-top: 26px; color: #e1e7ef; font-size: 18px; line-height: 1.65; }
.rp-meta { display: flex; flex-wrap: wrap; row-gap: 6px; margin: 32px 0 0; color: #b9c5d6; font-family: var(--v2-mono); font-size: 12px; line-height: 1.6; }
.rp-meta > * + *::before { content: "·"; margin: 0 10px; color: #7f8ea6; }
/* A note and its full essay link to each other from this line, on a line of their own. */
.rp-meta > .rp-meta__pair { flex-basis: 100%; }
.rp-meta > .rp-meta__pair::before { content: none; }
.rp-meta a { color: inherit; text-decoration: underline; text-decoration-color: #7f8ea6; text-decoration-thickness: 1px; text-underline-offset: 3px; }
.rp-meta a:hover { color: #fff; text-decoration-color: currentColor; }
@media (min-width: 1101px) { .ip-site .rp-hero .rp-hero-copy { margin-left: 288px; } }
@media (min-width: 821px) and (max-width: 1100px) { .ip-site .rp-hero .rp-hero-copy { margin-left: 228px; } }

/* ---- Reading layout: a contents rail and one measure of text ---- */
.rp-layout { display: grid; grid-template-columns: 200px minmax(0, 700px); gap: 88px; align-items: start; padding-top: 64px; padding-bottom: 96px; }
.rp-sidebar { position: sticky; top: 28px; min-width: 0; }
.rp-sidebar-inner { max-height: calc(100svh - 56px); overflow: auto; padding: 4px 8px 16px 2px; scrollbar-width: thin; }
.rp-sidebar-title { margin: 0 0 12px; color: var(--rp-ink); font-size: 13px; font-weight: 600; line-height: 1.5; }
.rp-sidebar ol,
.rp-mobile-contents ol { margin: 0; padding: 0; list-style: none; }
.rp-sidebar nav a { display: block; padding: 6px 0 6px 14px; border-left: 1px solid var(--rp-rule); color: var(--rp-muted); font-size: 13px; line-height: 1.5; }
.rp-sidebar nav a:hover { color: var(--rp-ink); border-left-color: var(--rp-rule-strong); }
.rp-sidebar [aria-current=location] { color: var(--rp-ink); border-left: 2px solid var(--rp-accent); padding-left: 13px; font-weight: 600; }
.rp-tools { display: flex; flex-direction: column; align-items: flex-start; gap: 2px; margin-top: 24px; padding-top: 16px; border-top: 1px solid var(--rp-rule); }
.rp-tools a,
.rp-tools button,
.rp-article-tools a,
.rp-article-tools button { display: inline-flex; align-items: center; gap: 10px; min-height: 36px; padding: 6px 0; border: 0; background: transparent; color: var(--rp-accent); font: 600 13px/1.5 var(--v2-sans); text-decoration: none; cursor: pointer; }
.rp-tools button[hidden],
.rp-article-tools button[hidden] { display: none; }
.rp-tools a:hover,
.rp-tools button:hover,
.rp-article-tools a:hover,
.rp-article-tools button:hover { text-decoration: underline; text-underline-offset: 5px; }
.rp-article-tools { display: none; flex-wrap: wrap; gap: 8px 28px; margin-top: 24px; }

/* ---- The essay ---- */
.rp-prose { min-width: 0; color: var(--rp-text); font-size: 18px; line-height: 1.8; }
.rp-prose p { margin: 0 0 24px; }
.rp-prose strong { color: #1b3048; font-weight: 600; }
.rp-prose em { font-style: italic; }
.rp-prose a { color: var(--rp-accent); text-decoration: underline; text-decoration-color: #8d9bb0; text-decoration-thickness: 1px; text-underline-offset: 4px; }
.rp-prose a:hover { text-decoration-color: currentColor; }

/* The current thesis, as a run-in abstract above the first section. */
.rp-prose .rp-abstract { margin: 0 0 56px; padding-bottom: 40px; border-bottom: 1px solid var(--rp-rule); color: #1d3047; font-size: 20px; line-height: 1.7; letter-spacing: -.008em; }
.rp-abstract__lead { color: var(--rp-ink); font-weight: 650; }
.rp-mobile-contents { display: none; }

.rp-chapter { margin-bottom: 64px; scroll-margin-top: 32px; }
.rp-prose h2 { margin: 0 0 20px; color: #172c43; font-family: var(--v2-sans); font-size: clamp(26px, 2.4vw, 32px); font-weight: 600; line-height: 1.2; letter-spacing: -.03em; text-wrap: pretty; }
.rp-chapter:first-of-type > p:first-of-type { color: #21364b; font-size: 21px; line-height: 1.7; letter-spacing: -.01em; }
.rp-prose h3 { margin: 36px 0 14px; color: #1d344c; font-size: 19px; font-weight: 600; line-height: 1.4; letter-spacing: -.02em; }
.rp-chapter ul,
.rp-chapter ol { margin: 20px 0 28px; padding-left: 24px; }
.rp-chapter li { margin: 12px 0; padding-left: 4px; }
.rp-prose .rp-cite { padding: 4px 2px; font-size: 11px; font-weight: 600; vertical-align: super; white-space: nowrap; text-decoration: none; scroll-margin-top: 38px; }
.rp-cite:target { border-radius: 2px; background: #dce7df; }

/* Tables on hairlines: a firm rule above the head, fine rules between rows, no fills. */
.rp-table-wrap { margin: 36px 0; overflow-x: auto; overscroll-behavior-inline: contain; border-top: 1px solid var(--rp-rule-strong); }
.rp-prose table { width: 100%; border-collapse: collapse; color: var(--rp-text); font-size: 14px; line-height: 1.6; text-align: left; font-variant-numeric: tabular-nums; }
.rp-prose th { color: var(--rp-ink); font-size: 13px; font-weight: 600; border-bottom: 1px solid var(--rp-rule-strong); }
.rp-prose td,
.rp-prose th { padding: 12px 16px 12px 0; vertical-align: top; }
.rp-prose td:last-child,
.rp-prose th:last-child { padding-right: 0; }
.rp-prose tbody tr + tr td { border-top: 1px solid var(--rp-rule); }
.rp-prose caption { padding: 14px 0 12px; color: var(--rp-ink); font-size: 14px; font-weight: 600; text-align: left; caption-side: top; }
.rp-prose blockquote { margin: 32px 0; padding: 2px 0 2px 24px; border-left: 2px solid var(--rp-accent); color: #1d3047; }
.rp-prose blockquote p:last-child { margin-bottom: 0; }
.rp-prose code { padding: 2px 5px; border-radius: 3px; background: #e9edf1; font-size: .85em; overflow-wrap: anywhere; }

/* ---- After the argument: the open question, materials, references ---- */
.rp-inquiry { padding-top: 48px; border-top: 1px solid var(--rp-rule); }
.rp-prose .rp-inquiry__question { color: var(--rp-ink); font-size: 23px; font-weight: 600; line-height: 1.45; letter-spacing: -.02em; text-wrap: pretty; }
.rp-inquiry > p:not(.rp-inquiry__question):not(.rp-inquiry__action) { color: var(--rp-muted); font-size: 17px; line-height: 1.75; }
.rp-prose .rp-inquiry__action { margin: 28px 0 0; }
.rp-inquiry .ip-button { color: #fff; text-decoration: none; }

.rp-resources > p { color: var(--rp-muted); font-size: 16px; line-height: 1.75; }
.rp-prose .rp-resource-list { margin: 8px 0 0; padding: 0; border-bottom: 1px solid var(--rp-rule); list-style: none; }
.rp-resource-list li { margin: 0; padding: 0; border-top: 1px solid var(--rp-rule); }
.rp-prose .rp-resource-list a { display: flex; align-items: center; justify-content: space-between; gap: 16px; min-height: 48px; padding: 10px 0; font-size: 15px; font-weight: 600; text-decoration: none; }
.rp-prose .rp-resource-list a:hover { text-decoration: underline; }

.rp-sources { margin-top: 16px; padding-top: 48px; border-top: 1px solid var(--rp-rule); scroll-margin-top: 32px; }
.rp-prose .rp-source-intro { max-width: 620px; color: var(--rp-muted); font-size: 14px; line-height: 1.75; }
.rp-prose .rp-source-list { margin: 32px 0 0; padding: 0; border-bottom: 1px solid var(--rp-rule); list-style: none; }
.rp-source-list > li { display: grid; grid-template-columns: 36px minmax(0, 1fr); gap: 12px; margin: 0; padding: 18px 0 16px; border-top: 1px solid var(--rp-rule); scroll-margin-top: 28px; }
.rp-source-list > li:target { background: var(--rp-wash); box-shadow: -12px 0 0 var(--rp-wash), 12px 0 0 var(--rp-wash); }
.rp-source-id { color: var(--rp-accent); font-family: var(--v2-mono); font-size: 12px; line-height: 1.9; font-variant-numeric: tabular-nums; }
.rp-source-list h3 { margin: 0 0 4px; font-size: 15px; font-weight: 600; line-height: 1.5; letter-spacing: -.01em; overflow-wrap: anywhere; }
.rp-prose .rp-source-list p { margin: 0 0 6px; font-size: 13.5px; line-height: 1.7; }
.rp-prose .rp-source-list .rp-source-meta { margin-bottom: 8px; color: var(--rp-muted); font-size: 12.5px; }
.rp-source-internal { color: var(--rp-muted); font-weight: 400; }
.rp-prose .rp-source-list .rp-return { display: inline-flex; align-items: center; gap: 6px; min-height: 24px; margin-left: 10px; color: var(--rp-muted); font-size: 12px; text-decoration: none; white-space: nowrap; }
.rp-prose .rp-source-list .rp-return:hover { color: var(--rp-accent); text-decoration: underline; }

.rp-colophon { margin-top: 40px; }
.rp-prose .rp-colophon p { margin: 0 0 10px; color: var(--rp-muted); font-size: 13px; line-height: 1.75; }
.rp-prose .rp-colophon p:last-child { margin: 0; }

/* ---- Related research: rows on hairlines ---- */
.rp-next { padding: 64px 0 72px; background: #e9edf0; }
.rp-next h2 { margin: 0 0 24px; color: var(--rp-ink); font-family: var(--v2-sans); font-size: clamp(24px, 2.2vw, 30px); font-weight: 600; line-height: 1.15; letter-spacing: -.03em; }
.rp-next__list { margin: 0; padding: 0; border-bottom: 1px solid var(--rp-rule); list-style: none; }
.rp-next__list li { border-top: 1px solid var(--rp-rule); }
.rp-next__list a { display: grid; grid-template-columns: 220px minmax(0, 1fr) 24px; gap: 24px; align-items: baseline; padding: 16px 0; color: var(--rp-ink); }
.rp-next__label { color: var(--rp-muted); font-size: 13px; font-weight: 500; line-height: 1.5; }
.rp-next__title { font-size: 17px; font-weight: 600; line-height: 1.4; letter-spacing: -.012em; }
.rp-next__arrow { justify-self: end; color: var(--rp-accent); transition: transform .18s ease; }
.rp-next__list a:hover .rp-next__title { color: var(--rp-accent); }
.rp-next__list a:hover .rp-next__arrow { transform: translateX(3px); }

/* ---- Research library (rebuilt 4 Nov 2026) ----
   The five research lines, then the study designs. No cards: hierarchy comes from type, space and hairlines.
   Each piece is listed once: a title link, one finding sentence and one line of mono metadata. Three pieces carry
   a Start here tag in that line. */
.rp-library-hero h1 { max-width: 1050px; font-size: clamp(46px, 4.9vw, 70px); }
.rp-library-hero .ip-lede { max-width: 690px; }
.rp-library-lines,
.rp-library-tests { padding-top: 64px; }
.rp-library-lines { padding-bottom: 24px; }
.rp-library-heading { margin: 0; color: var(--rp-ink); font-family: var(--v2-sans); font-size: clamp(24px, 2.2vw, 30px); font-weight: 600; line-height: 1.15; letter-spacing: -.03em; }
.rp-library-intro { max-width: 640px; margin: 14px 0 0; color: var(--rp-muted); font-size: 16px; line-height: 1.6; text-wrap: balance; }

/* One piece: the title is the only link. */
.rp-entry { margin: 0; scroll-margin-top: 28px; }
.rp-entry__title { display: block; width: fit-content; color: var(--rp-ink); font-size: 18px; font-weight: 500; line-height: 1.35; letter-spacing: -.012em; text-wrap: pretty; text-decoration: none; }
.rp-entry__title:hover { color: var(--rp-accent); text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: 4px; }
.rp-entry__finding { display: block; max-width: 660px; margin-top: 6px; color: var(--rp-text); font-size: 15.5px; line-height: 1.6; text-wrap: pretty; }
.rp-entry__meta { display: flex; flex-wrap: wrap; margin-top: 10px; color: var(--rp-muted); font-family: var(--v2-mono); font-size: 11.5px; line-height: 1.6; letter-spacing: .02em; font-variant-numeric: tabular-nums slashed-zero; font-feature-settings: "tnum" 1, "zero" 1; }
.rp-entry__sep { padding: 0 8px; color: #8d99ab; }
.rp-entry__start { color: var(--rp-accent); font-weight: 500; }

.rp-entry--lead .rp-entry__title { font-size: 21px; line-height: 1.3; letter-spacing: -.015em; }

.rp-lines { margin-top: 36px; border-bottom: 1px solid var(--rp-rule-strong); }
.rp-line { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); column-gap: 40px; padding: 24px 0 30px; border-top: 1px solid var(--rp-rule-strong); scroll-margin-top: 28px; }
.rp-line__label { margin: 0; color: var(--rp-ink); font-family: var(--v2-serif); font-size: 30px; font-weight: 400; line-height: 1.1; letter-spacing: -.01em; }
.rp-line__question { max-width: 320px; margin: 10px 0 0; color: var(--rp-muted); font-size: 15px; line-height: 1.5; }
.rp-line__list { grid-column: 2 / span 2; margin: 0; padding: 0; list-style: none; }
.rp-line__list > .rp-entry { padding: 18px 0 20px; border-top: 1px solid var(--rp-rule); }
.rp-line__list > .rp-entry:first-child { padding-top: 2px; border-top: 0; }
.rp-line__list > .rp-entry:last-child { padding-bottom: 0; }
.rp-entry--lead .rp-entry__finding { font-size: 16px; }

.rp-tests { margin: 32px 0 0; padding: 20px 0 24px; border-top: 1px solid var(--rp-rule-strong); border-bottom: 1px solid var(--rp-rule); list-style: none; }
.rp-library-foot { margin: 24px 0 0; }
.rp-editorial-note { max-width: 850px; margin-top: 24px; color: var(--rp-muted); font-size: 12px; line-height: 1.85; }
.rp-editorial-note summary { width: fit-content; padding: 12px 0; cursor: pointer; }
.rp-editorial-note p { margin: 12px 0; }
.rp-editorial-note a { color: #294dc4; text-decoration: underline; text-underline-offset: 3px; }

@media (max-width: 1100px) {
  .rp-layout { grid-template-columns: 180px minmax(0, 1fr); gap: 48px; }
  .rp-hero h1 { font-size: 46px; }
}

@media (max-width: 820px) {
  .rp-layout { grid-template-columns: minmax(0, 1fr); gap: 0; max-width: 720px; padding-top: 40px; padding-bottom: 56px; }
  .rp-sidebar { display: none; }
  .rp-article-tools { display: flex; }
  .rp-mobile-contents { display: block; margin: 0 0 48px; border-top: 1px solid var(--rp-rule); border-bottom: 1px solid var(--rp-rule); }
  .rp-mobile-contents summary { min-height: 48px; padding: 13px 0; color: var(--rp-ink); font-size: 14px; font-weight: 600; cursor: pointer; }
  .rp-mobile-contents nav { padding-bottom: 14px; }
  .rp-prose .rp-mobile-contents a { display: block; padding: 7px 0; color: var(--rp-muted); font-size: 14px; line-height: 1.5; text-decoration: none; }
  .rp-prose .rp-abstract { margin-bottom: 32px; padding-bottom: 0; border-bottom: 0; font-size: 19px; }
  .rp-hero .ip-breadcrumb { margin-bottom: 38px; }
  .rp-hero h1 { font-size: clamp(36px, 6vw, 46px); }
  .rp-hero .ip-lede { font-size: 17px; }
  .rp-prose { font-size: 17px; }
  .rp-chapter:first-of-type > p:first-of-type { font-size: 20px; }
  .rp-chapter { margin-bottom: 48px; }
  .rp-next__list a { grid-template-columns: minmax(0, 1fr) 24px; gap: 2px 16px; }
  .rp-next__label { grid-column: 1; }
  .rp-next__title { grid-column: 1; }
  .rp-next__arrow { grid-column: 2; grid-row: 1 / span 2; align-self: center; }
  .rp-library-lines,
  .rp-library-tests { padding-top: 56px; }
  .rp-line { grid-template-columns: minmax(0, 1fr); row-gap: 14px; padding: 20px 0 26px; }
  .rp-line__list { grid-column: 1; }
  .rp-line__label { font-size: 28px; }
  .rp-line__question { max-width: none; }
}

@media (max-width: 480px) {
  .rp-hero { padding-top: 20px; padding-bottom: 44px; }
  .rp-hero .ip-breadcrumb { gap: 5px 9px; margin-bottom: 32px; font-size: 11px; }
  .rp-hero h1 { font-size: 34px; letter-spacing: -.04em; }
  .rp-library-hero h1 { font-size: 38px; }
  .rp-hero .ip-lede { font-size: 16px; line-height: 1.7; }
  .rp-meta { margin-top: 26px; font-size: 11.5px; }
  .rp-layout { padding-top: 32px; }
  .rp-prose { font-size: 16.5px; line-height: 1.8; }
  .rp-prose .rp-abstract { font-size: 18px; }
  .rp-prose h2 { font-size: 26px; }
  .rp-prose h3 { font-size: 18px; }
  .rp-chapter:first-of-type > p:first-of-type { font-size: 19px; }
  .rp-prose .rp-inquiry__question { font-size: 21px; }
  .rp-prose table { min-width: 560px; }
  .rp-source-list > li { grid-template-columns: 30px minmax(0, 1fr); gap: 8px; }
  .rp-source-list h3 { font-size: 15px; }
  .rp-next { padding-block: 48px 56px; }
  .rp-library-lines,
  .rp-library-tests { padding-top: 44px; }
  .rp-library-lines { padding-bottom: 8px; }
  .rp-library-intro { text-wrap: wrap; }
  .rp-entry__title { font-size: 17.5px; }
  .rp-entry--lead .rp-entry__title { font-size: 20px; }
  .rp-entry__finding,
  .rp-entry--lead .rp-entry__finding { font-size: 15.5px; }
}

@media (prefers-reduced-motion: reduce) {
  .rp-next__arrow { transition: none; }
}

@media print {
  .v2-site-header, .v4-site-footer, .ip-review-footer, .v2-skip-link, .rp-sidebar, .rp-next, .rp-mobile-contents { display: none !important; }
  .ip-container { width: 100%; max-width: none; }
  .rp-hero { padding: 0 0 25px; background: none !important; color: #111; }
  .rp-hero::before { display: none; }
  .rp-hero h1 { font-size: 40px; }
  .rp-hero .ip-lede, .rp-meta { color: #333; }
  .rp-hero .ip-breadcrumb { display: none; }
  .rp-layout { display: block; padding: 0; }
  .rp-prose { max-width: none; color: #111; font-size: 11pt; line-height: 1.65; }
  .rp-prose h2 { font-size: 24pt; }
  .rp-chapter { margin-bottom: 26px; }
  .rp-prose h2, .rp-prose h3 { break-after: avoid; }
  .rp-prose table { min-width: 0; }
  .rp-table-wrap { overflow: visible; }
  .rp-source-list > li { break-inside: avoid; }
  .rp-inquiry .ip-button, .rp-return, .rp-article-tools { display: none !important; }
  .rp-resources { break-inside: avoid; }
}

/* Disclosure under an essay's metadata line, and the library's note on method (3 Nov 2026). */
.rp-disclosure { max-width: 680px; margin: 14px 0 0; color: #c9d3e1; font-size: 13.5px; line-height: 1.55; }
.rp-library-note { margin: 28px 0 0; color: var(--rp-muted); font-size: 14px; }

/* "What this is" note under In short, and the labeled "Scope and limits" section. Both are optional per essay. */
.rp-prose .rp-abstract:has(+ .rp-scope) { margin-bottom: 20px; padding-bottom: 0; border-bottom: 0; }
.rp-prose .rp-scope { margin: 0 0 56px; padding-bottom: 36px; border-bottom: 1px solid var(--rp-rule); color: var(--rp-muted); font-size: 15.5px; line-height: 1.65; }
.rp-scope__lead { margin-right: 4px; color: var(--rp-ink); font-family: var(--v2-mono); font-size: 11.5px; font-weight: 500; letter-spacing: .06em; text-transform: uppercase; }
.rp-limits { padding-top: 48px; border-top: 1px solid var(--rp-rule); }
.rp-limits__list { margin: 0; }
.rp-limits__list > div { display: grid; grid-template-columns: 168px 1fr; gap: 28px; padding: 16px 0; border-top: 1px solid var(--rp-rule); }
.rp-limits__list > div:first-child { border-top: 0; padding-top: 4px; }
.rp-limits__list dt { padding-top: 5px; color: var(--rp-ink); font-family: var(--v2-mono); font-size: 11.5px; font-weight: 500; letter-spacing: .06em; line-height: 1.5; text-transform: uppercase; }
.rp-limits__list dd { margin: 0; color: #2b3b52; font-size: 16px; line-height: 1.7; }
@media (max-width: 640px) {
  .rp-prose .rp-scope { margin-bottom: 32px; padding-bottom: 24px; font-size: 15px; }
  .rp-limits__list > div { grid-template-columns: 1fr; gap: 4px; }
}

/* Optional appendix: method and sample sections a reader can skip, set after Scope and limits. */
.rp-appendix { margin-top: 8px; padding-top: 40px; border-top: 1px solid var(--rp-rule-strong); }
.rp-appendix__label { margin: 0 0 20px; color: var(--rp-muted); font-family: var(--v2-mono); font-size: 11.5px; font-weight: 500; letter-spacing: .08em; text-transform: uppercase; }
.rp-appendix .rp-chapter h2 { font-size: clamp(26px, 2.3vw, 32px); }
