/* GlobalFinancialCore landing — "the source thread"
   The orange core of the mark becomes the page's thread: a copper line carries the reader
   from the opening to ReasyPort, each section is handed to the next by it.
   Black display type at scale, one cool mist band for the process, a light sand panel
   for ReasyPort. No gradients, shadows or glass; motion is driven by scroll position
   (landing-motion.js) and disappears entirely with reduced motion or without JavaScript */
:root {
  --ink: #0b0c0f;
  --muted: #565b67;
  --faint: #5d6270;
  --mist: #f4f4f6;
  --line: rgba(11, 12, 15, 0.09);
  --line-strong: rgba(11, 12, 15, 0.18);
  --ink-ghost: #c9ccd4;
  --sand-soft: #f6efe6;
  --sand-line: #e4d5c2;
  --band: 128px;
  --thread: 112px;
  --ease-out: cubic-bezier(0.2, 0.7, 0.1, 1);
}
.landing h1,
.landing h2 {
  color: var(--ink);
}

/* Header: a quiet bar with the reading progress as a copper hairline */
.landing .site-header {
  border-bottom-color: var(--line);
}
.landing .scroll-progress {
  position: absolute;
  left: 0;
  right: 0;
  bottom: -1px;
  height: 2px;
  background: var(--brand-accent);
  transform: scaleX(var(--progress, 0));
  transform-origin: 0 50%;
  pointer-events: none;
}

/* Opening: the mark settles above one black statement, everything on a single axis */
.landing .hero.container {
  grid-template-columns: minmax(0, 1fr);
  grid-template-areas: "mark" "title" "summary";
  justify-items: center;
  align-content: center;
  gap: 0;
  min-height: clamp(560px, calc(100svh - var(--header-height)), 880px);
  padding-block: 64px 72px;
  text-align: center;
}
.landing .hero.container::before {
  content: none;
}
.landing .hero-visual {
  align-self: auto;
  padding: 0;
  text-align: center;
}
.landing .hero-lockup {
  justify-content: center;
  gap: 16px;
}
.landing .hero-wordmark {
  font-size: clamp(24px, 2.2vw, 30px);
}
.landing .hero-visual figcaption {
  margin-top: 36px;
}
.landing .hero-visual .hero-path {
  justify-content: center;
  gap: 10px;
  font-size: 12px;
  letter-spacing: 0.02em;
  color: var(--muted);
}
.landing .hero-copy,
.landing .hero-summary {
  padding-left: 0;
  width: 100%;
}
.landing .hero-copy {
  align-self: auto;
  margin-top: 22px;
}
.landing .hero-copy h1 {
  margin: 0 auto;
  font-size: clamp(56px, 8.6vw, 132px);
  font-weight: 760;
  line-height: 0.94;
  letter-spacing: -0.062em;
  text-wrap: balance;
}
.landing .hero-summary {
  align-self: auto;
  margin-top: 32px;
}
.landing .hero-summary .hero-description {
  max-width: 36em;
  margin-inline: auto;
  font-size: 19px;
  line-height: 1.5;
  text-align: center;
  color: var(--muted);
}
.landing .hero-summary .hero-actions {
  justify-content: center;
  gap: 32px;
  margin-top: 32px;
}
.landing .button.primary {
  background: var(--ink);
  border-color: var(--ink);
}
.landing .button.primary:hover {
  background: var(--brand-ink);
  border-color: var(--brand-ink);
}

/* Kinetic words: each word rises out of its own line box. In the opening the reveal follows
   the logo's own --copy-reveal, so the statement arrives once, with the mark */
.kinetic-word {
  display: inline-block;
  overflow: clip;
  overflow-clip-margin: 0.1em;
  padding-bottom: 0.1em;
  margin-bottom: -0.1em;
  vertical-align: top;
}
.kinetic-word > span {
  display: inline-block;
  will-change: transform;
}
.landing .hero-copy .kinetic-word > span {
  --word: clamp(0, calc((var(--copy-reveal, 1) - var(--i, 0) * var(--step, 0.08)) / 0.6), 1);
  transform: translateY(calc((1 - var(--word)) * 108%));
}

/* The thread: one copper hairline hands each section to the next, its orange core travels down */
.gfc-thread {
  --p: 1;
  position: relative;
  display: block;
  width: 9px;
  height: var(--thread);
  margin: 0 auto;
  pointer-events: none;
}
.gfc-thread > span {
  position: absolute;
  left: 4px;
  top: 0;
  width: 1px;
  height: 100%;
  background: var(--copper);
  transform: scaleY(var(--p));
  transform-origin: 50% 0;
}
.gfc-thread::after {
  content: "";
  position: absolute;
  left: 0;
  top: calc(var(--p) * 100% - 9px);
  width: 9px;
  height: 9px;
  border-radius: 50%;
  background: var(--brand-accent);
}

/* Section openings: black, large, set close to their reading */
.landing .archive-intro h2,
.landing .purpose h2 {
  font-weight: 740;
  letter-spacing: -0.058em;
}
/* The archive title stays on one line, sized from its own container */
.landing .archive-intro h2 {
  font-size: min(80px, 7.4cqi);
  line-height: 0.98;
}
.landing :is(.purpose-eyebrow, .partner-eyebrow) {
  font-family: var(--mono);
  font-size: 12px;
  font-weight: 500;
  letter-spacing: 0.02em;
  color: var(--muted);
}
.ink-fill .kinetic-word > span {
  color: var(--ink);
}

/* Coverage: the published figures are the protagonists, census and documents stay apart */
.landing .coverage.container {
  padding: 8px 0 24px;
}
.landing .coverage-heading {
  align-items: end;
  padding-top: 0;
  border-top: 0;
}
.landing .coverage-heading h2 {
  font-size: clamp(36px, 4vw, 56px);
  font-weight: 740;
  line-height: 1;
  letter-spacing: -0.055em;
}
.landing .coverage-heading p {
  font-size: 12px;
  color: var(--muted);
}
.landing .ledger {
  grid-template-columns: minmax(0, 1fr) minmax(0, 2fr);
  gap: 0;
  margin-top: 40px;
  border-top: 1px solid var(--line-strong);
}
.landing .ledger-group {
  padding-top: 24px;
}
.landing .ledger-census {
  padding-right: 48px;
}
.landing .ledger-coverage {
  padding-left: 48px;
  padding-top: 24px;
  border-left: 1px solid var(--line-strong);
}
.landing .ledger-group h3 {
  margin-bottom: 20px;
  font-family: var(--mono);
  font-size: 12px;
  font-weight: 500;
  letter-spacing: 0.02em;
  color: var(--muted);
}
.landing .ledger .metrics {
  display: flex;
  flex-wrap: nowrap;
  gap: 0 clamp(40px, 5vw, 72px);
}
.landing .ledger .metrics > div {
  flex: none;
}
.landing .ledger .metrics dd,
.landing .ledger-census .metrics > div:first-child dd {
  font-size: clamp(56px, 6.4vw, 100px);
  font-weight: 720;
  line-height: 0.92;
  letter-spacing: -0.065em;
}
.landing .ledger .metrics dt {
  margin-top: 6px;
  font-size: 15px;
  color: var(--muted);
}
.landing .coverage-footer {
  margin-top: 40px;
  padding-top: 16px;
  border-top: 1px solid var(--line);
}
.landing .coverage-note {
  max-width: 62ch;
  font-size: 13px;
  line-height: 1.6;
}

/* Ribbon: verified logos with their ticker beneath, one continuous line */
.landing .company-ribbon-section {
  border-block: 1px solid var(--line);
}
.landing .archive-logo,
.landing .archive-logo-copy {
  display: grid;
  grid-template-rows: 48px auto;
  place-items: center;
  gap: 8px;
  flex: 0 0 168px;
  width: 168px;
  height: 124px;
  padding: 22px 28px 18px;
}
.landing .archive-logo img,
.landing .archive-logo-copy img {
  width: 96px;
  height: 48px;
  object-fit: contain;
}
.archive-ticker {
  font-family: var(--mono);
  font-size: 11px;
  line-height: 1;
  letter-spacing: 0.04em;
  color: var(--muted);
  white-space: nowrap;
}
.landing .archive-logo:hover .archive-ticker {
  color: var(--ink);
}

/* Archive */
.landing .archive-section.container {
  padding-top: 0;
}

/* Purpose: one statement filled in by reading, then three plain reasons */
.landing .purpose {
  padding-block: 24px var(--band);
  background: var(--paper);
}
.landing .purpose-intro {
  grid-template-columns: minmax(0, 1fr);
  gap: 32px;
}
.landing .purpose h2 {
  max-width: 19ch;
  font-size: clamp(48px, 6.4vw, 100px);
  line-height: 0.96;
}
.landing .purpose-body {
  max-width: 40em;
  font-size: 19px;
}
.landing .purpose-principles {
  margin-top: 56px;
  gap: 0 48px;
}
.landing .purpose-principle {
  padding-top: 20px;
  border-top: 1px solid var(--line-strong);
}
.landing .purpose h3 {
  font-size: 22px;
  font-weight: 700;
  letter-spacing: -0.035em;
}

/* ReasyPort: a compact light sand panel, the official logo on a transparent ground */
.landing .reasyport.container {
  margin-block: 0 var(--band);
  padding: 44px 56px 32px;
  border-radius: 28px;
  background: var(--sand-soft);
}
.landing .reasyport .partner-logo {
  background: transparent;
  isolation: auto;
}
.landing .reasyport .partner-logo img {
  mix-blend-mode: normal;
}
.landing .partner-brand h2 {
  font-size: clamp(28px, 2.8vw, 40px);
  font-weight: 760;
  line-height: 1.06;
}
.landing .partner-copy .button.primary {
  background: var(--clay);
  border-color: var(--clay);
}
.landing .partner-copy .button.primary:hover {
  background: var(--clay-hover);
  border-color: var(--clay-hover);
}
.landing .partner-flow {
  border-top-color: var(--sand-line);
}

/* Footer: same tokens as the page, ink headings */
.landing .gfc-footer {
  background: var(--mist);
  border-top: 0;
}

@media (max-width: 1100px) {
  :root {
    --thread: 96px;
  }
  .landing .hero-copy h1 {
    font-size: clamp(56px, 9.4vw, 104px);
  }
  .landing .ledger-census {
    padding-right: 32px;
  }
  .landing .ledger-coverage {
    padding-left: 32px;
  }
  .landing .ledger .metrics {
    gap: 0 32px;
  }
  .landing .ledger .metrics dd,
  .landing .ledger-census .metrics > div:first-child dd {
    font-size: clamp(48px, 6.2vw, 72px);
  }
  .landing .reasyport.container {
    padding: 36px 40px 28px;
  }
}
@media (max-width: 800px) {
  :root {
    --band: 88px;
    --thread: 80px;
  }
  .landing .hero.container {
    min-height: 0;
    padding-block: 48px 56px;
  }
  .landing .hero-copy h1 {
    font-size: clamp(48px, 11vw, 84px);
  }
  .landing .hero-summary .hero-description {
    font-size: 17px;
  }
  .landing .ledger {
    grid-template-columns: minmax(0, 1fr);
  }
  .landing .ledger-census {
    padding-right: 0;
  }
  .landing .ledger-coverage {
    margin-top: 24px;
    padding-left: 0;
    border-left: 0;
    border-top: 1px solid var(--line-strong);
  }
  .landing .ledger .metrics dd,
  .landing .ledger-census .metrics > div:first-child dd {
    font-size: clamp(52px, 11vw, 84px);
  }
  .landing .coverage-footer {
    flex-direction: column;
    align-items: flex-start;
    gap: 8px;
  }
    .landing .purpose h2 {
    font-size: clamp(42px, 9vw, 72px);
  }
}
@media (max-width: 650px) {
  :root {
    --band: 72px;
    --thread: 64px;
  }
  .landing .hero.container {
    padding-block: 36px 44px;
  }
  .landing .hero-visual figcaption {
    margin-top: 24px;
  }
  .landing .hero-visual .hero-path {
    font-size: 11px;
    gap: 6px;
  }
  .landing .hero-copy {
    margin-top: 16px;
  }
  .landing .hero-copy h1 {
    font-size: clamp(42px, 12.4vw, 56px);
    letter-spacing: -0.058em;
  }
  .landing .hero-summary {
    margin-top: 24px;
  }
  .landing .hero-summary .hero-description {
    font-size: 16px;
  }
  .landing .hero-summary .hero-actions {
    gap: 20px;
    margin-top: 24px;
  }
  .landing .coverage-heading {
    align-items: flex-start;
  }
  .landing .coverage-heading h2 {
    font-size: clamp(32px, 9vw, 40px);
  }
  .landing .ledger {
    margin-top: 24px;
  }
  .landing .ledger .metrics {
    gap: 0 28px;
  }
  .landing .ledger .metrics dd,
  .landing .ledger-census .metrics > div:first-child dd {
    font-size: clamp(40px, 12vw, 52px);
  }
  .landing .ledger .metrics dt {
    font-size: 13px;
  }
  .landing .archive-logo,
  .landing .archive-logo-copy {
    flex-basis: 136px;
    width: 136px;
    height: 108px;
    padding: 18px 20px 14px;
    grid-template-rows: 40px auto;
  }
  .landing .archive-logo img,
  .landing .archive-logo-copy img {
    width: 80px;
    height: 40px;
  }
  .landing .purpose h2 {
    font-size: clamp(36px, 10.4vw, 44px);
  }
  .landing .purpose-body {
    font-size: 16px;
  }
  .landing .purpose-principles {
    margin-top: 32px;
    gap: 20px;
  }
  .landing .reasyport.container {
    padding: 24px 22px;
    border-radius: 20px;
  }
  .landing .partner-brand h2 {
    font-size: 24px;
  }
}
@media (prefers-reduced-motion: reduce) {
  .kinetic-word > span,
  .landing .hero-copy .kinetic-word > span {
    transform: none;
  }
      }

/* ===== Data-provider layer: colour, live sample data and the formats terminal ===== */
:root {
  --night: #15142c;
  --night-2: #1f1d3d;
  --night-line: rgba(255, 255, 255, 0.14);
  --night-ink: #f4f3ff;
  --night-muted: #b9b7d8;
  --copper-light: #e6ad7c;
  --violet-light: #b1adff;
  --mint: #6fd3a5;
  --coral: #ff8a7d;
}
.landing main {
  overflow-x: clip;
}

/* Opening: a field of points behind the statement, data travelling across it */
.landing .hero-band {
  display: grid;
  overflow: clip;
}
.landing .hero-band > * {
  grid-area: 1 / 1;
}
.hero-field {
  display: block;
  width: 100%;
  height: 100%;
  min-height: 0;
  pointer-events: none;
}
/* The second line of the statement carries the brand copper */
.landing .hero-copy .kinetic-word[data-line="1"] > span {
  color: var(--copper);
}

/* Coverage sits on one deep indigo band, opened by a ribbon of real sample values */
.landing #coverage {
  position: relative;
  isolation: isolate;
  padding: 0 0 72px;
  color: var(--night-ink);
}
.landing #coverage::before {
  content: "";
  position: absolute;
  z-index: -1;
  inset: 0 calc(50% - 50vw);
  background: var(--night);
}
.landing #coverage .coverage-heading {
  margin-top: 64px;
}
.landing #coverage h2,
.landing #coverage .ledger .metrics dd {
  color: #fff;
}
.landing #coverage .coverage-heading p,
.landing #coverage .ledger .metrics dt,
.landing #coverage .coverage-note {
  color: var(--night-muted);
}
.landing #coverage .ledger-group h3 {
  color: var(--copper-light);
}
.landing #coverage .ledger,
.landing #coverage .ledger-coverage,
.landing #coverage .coverage-footer {
  border-color: var(--night-line);
}
.landing #coverage .text-link {
  color: var(--violet-light);
}
.landing #coverage .text-link:hover {
  color: #fff;
}
.landing #coverage :focus-visible {
  outline-color: var(--copper-light);
}
.landing .gfc-thread:has(+ #coverage) {
  margin-bottom: 0;
}
.data-tape {
  display: flex;
  align-items: stretch;
  margin-inline: calc(50% - 50vw);
  border-bottom: 1px solid var(--night-line);
  background: var(--night-2);
  font-family: var(--mono);
  font-size: 12px;
  line-height: 1;
  white-space: nowrap;
}
.data-tape-track {
  display: flex;
  width: max-content;
  animation: data-tape var(--tape-duration, 80s) linear infinite;
  animation-play-state: var(--tape-state, paused);
}
.data-tape:hover .data-tape-track {
  animation-play-state: paused;
}
.data-tape-item {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 14px 22px;
  border-right: 1px solid var(--night-line);
  color: var(--night-muted);
}
.data-tape-item b {
  font-weight: 500;
  color: #fff;
}
.data-tape-item .up {
  color: var(--mint);
}
.data-tape-item .down {
  color: var(--coral);
}
@keyframes data-tape {
  to {
    transform: translateX(-50%);
  }
}


/* Formats: a dark terminal with real excerpts of the public files */
.landing .formats.container {
  padding-bottom: var(--band);
}
.formats-intro {
  display: grid;
  grid-template-columns: minmax(0, 7fr) minmax(0, 5fr);
  align-items: end;
  gap: 24px 64px;
}
.formats-eyebrow {
  margin: 0 0 14px;
  font-family: var(--mono);
  font-size: 12px;
  color: var(--copper-ink);
}
.formats h2 {
  margin: 0;
  font-size: clamp(44px, 5.4vw, 80px);
  font-weight: 740;
  line-height: 0.98;
  letter-spacing: -0.058em;
  white-space: pre-line;
}
.formats-body {
  max-width: 30em;
  margin: 0;
  font-size: 17px;
  line-height: 1.6;
  color: var(--muted);
}
.formats-terminal {
  margin-top: 48px;
  border-radius: 22px;
  background: var(--night);
  color: var(--night-ink);
  overflow: hidden;
}
.formats-tabs {
  display: flex;
  gap: 4px;
  padding: 10px 10px 0;
  background: var(--night-2);
  overflow-x: auto;
  scrollbar-width: none;
}
.formats-tab {
  flex: none;
  min-height: 44px;
  padding: 0 18px;
  border: 0;
  border-radius: 12px 12px 0 0;
  background: transparent;
  color: var(--night-muted);
  font: 600 14px/1 var(--sans);
  cursor: pointer;
  transition: color 0.2s, background-color 0.2s;
}
.formats-tab:hover {
  color: #fff;
}
.formats-tab[aria-pressed="true"] {
  background: var(--night);
  color: #fff;
  box-shadow: inset 0 2px 0 var(--copper);
}
.formats-tab:focus-visible {
  outline: 2px solid var(--copper-light);
  outline-offset: -4px;
}
.formats-panel[hidden] {
  display: none;
}
.formats-panel + .formats-panel:not([hidden]) {
  border-top: 1px solid var(--night-line);
}
.formats-file {
  display: flex;
  align-items: center;
  gap: 14px;
  padding: 14px 22px;
  border-bottom: 1px solid var(--night-line);
}
.formats-dots {
  display: inline-flex;
  gap: 6px;
}
.formats-dots i {
  width: 9px;
  height: 9px;
  border-radius: 50%;
  background: var(--coral);
}
.formats-dots i:nth-child(2) {
  background: var(--copper-light);
}
.formats-dots i:nth-child(3) {
  background: var(--mint);
}
.formats-name {
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  font-size: 12px;
  color: var(--night-muted);
}
.formats-download {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  min-height: 44px;
  margin-left: auto;
  padding: 0 4px;
  color: var(--copper-light);
  font-size: 13px;
  font-weight: 600;
  white-space: nowrap;
}
.formats-download:hover {
  color: #fff;
}
.formats-download:focus-visible,
.formats-code:focus-visible {
  outline: 2px solid var(--copper-light);
  outline-offset: -2px;
}
.formats-code {
  height: 420px;
  margin: 0;
  padding: 20px 22px 24px;
  overflow: auto;
  font: 12.5px/1.75 var(--mono);
  color: var(--night-ink);
  counter-reset: line;
  scrollbar-color: var(--night-line) transparent;
}
.formats-code code {
  font: inherit;
}
.formats-code .ln {
  display: block;
  white-space: pre;
}
.formats-code .ln::before {
  counter-increment: line;
  content: counter(line);
  display: inline-block;
  width: 3ch;
  margin-right: 18px;
  text-align: right;
  color: #6b698d;
}
.tk-h { color: var(--copper-light); font-weight: 500; }
.tk-p { color: #6b698d; }
.tk-n { color: var(--mint); }
.tk-b { color: var(--violet-light); }
.tk-m { color: var(--night-muted); }
.formats-code .c0 { color: var(--copper-light); }
.formats-code .c1 { color: var(--violet-light); }
.formats-code .c2 { color: #fff; }
.formats-code .c3 { color: var(--night-muted); }
.formats-code .c4 { color: var(--mint); }
.formats-code .c5 { color: #8fb7ff; }
.formats-code .c6,
.formats-code .c7 { color: var(--coral); }
.formats-caret {
  display: inline-block;
  width: 0.6em;
  height: 1.1em;
  margin-left: 2px;
  vertical-align: -0.2em;
  background: var(--copper-light);
  animation: formats-caret 1s steps(1) infinite;
}
@keyframes formats-caret {
  50% { opacity: 0; }
}
.formats-note {
  margin: 14px 0 0;
  font-family: var(--mono);
  font-size: 12px;
  color: var(--muted);
}

/* Footer closes on the same night tone as the coverage band */
.landing .gfc-footer {
  --footer-ink: var(--night-ink);
  --footer-muted: var(--night-muted);
  --footer-line: var(--night-line);
  background: var(--night);
}
.landing .gfc-footer a:hover,
.landing .gfc-footer a:active {
  color: var(--copper-light);
}
.landing .gfc-footer a:focus-visible {
  outline-color: var(--copper-light);
}
.landing .gfc-footer .brand svg {
  color: #fff;
}

@media (max-width: 800px) {
  .formats-intro {
    grid-template-columns: minmax(0, 1fr);
  }
  .formats-code {
    height: 360px;
  }
  .landing #coverage .coverage-heading {
    margin-top: 48px;
  }
}
@media (max-width: 650px) {
  .formats h2 {
    font-size: clamp(34px, 9.6vw, 44px);
  }
  .formats-terminal {
    margin-top: 32px;
    border-radius: 16px;
  }
  .formats-tab {
    padding: 0 14px;
    font-size: 13px;
  }
  .formats-file {
    padding: 10px 14px;
    gap: 10px;
  }
  .formats-dots {
    display: none;
  }
  .formats-code {
    height: 320px;
    padding: 16px 14px;
    font-size: 11.5px;
  }
  .landing #coverage {
    padding-bottom: 48px;
  }
}
@media (prefers-reduced-motion: reduce) {
  .data-tape-track,
  .formats-caret {
    animation: none;
  }
}
.formats-panel.is-typing .ln {
  opacity: 0;
  animation: formats-line 0.32s var(--ease-out) forwards;
  animation-delay: calc(var(--n, 0) * 55ms);
}
@keyframes formats-line {
  from { opacity: 0; transform: translateX(-8px); }
  to { opacity: 1; transform: none; }
}
@media (prefers-reduced-motion: reduce) {
  .formats-panel.is-typing .ln {
    opacity: 1;
    animation: none;
  }
}
.landing .gfc-footer h2 {
  color: var(--night-muted);
}
.landing .partner-brand h2 {
  color: var(--partner-orange);
}
.landing .reasyport.container {
  margin-bottom: 96px;
}
.formats-code code {
  white-space: normal;
}
@media (max-width: 650px) {
  .landing .reasyport.container {
    margin-bottom: 64px;
  }
}

/* ===== One type scale for the whole page =====
   display: the opening only · h2: every section title · figure: published counters */
:root {
  --t-display: clamp(42px, 4.4vw + 24px, 92px);
  --t-h2: clamp(30px, 2vw + 22px, 52px);
  --t-figure: clamp(40px, 3.6vw + 24px, 76px);
  --t-h3: clamp(22px, 0.8vw + 17px, 30px);
  --t-lead: clamp(16px, 0.3vw + 15px, 18px);
}
.landing .hero-copy h1 {
  font-size: var(--t-display);
  line-height: 0.96;
}
.landing .hero-summary .hero-description,
.landing .formats-body,
.landing .purpose-body {
  font-size: var(--t-lead);
}
.landing .coverage-heading h2,
.landing .formats h2,
.landing .purpose h2 {
  max-width: none;
  font-size: var(--t-h2);
  font-weight: 720;
  line-height: 1.04;
  letter-spacing: -0.05em;
}
.landing .archive-intro h2 {
  font-size: min(52px, 7.4cqi);
  font-weight: 720;
  letter-spacing: -0.05em;
}
.landing .ledger .metrics dd,
.landing .ledger-census .metrics > div:first-child dd {
  font-size: var(--t-figure);
}
.landing .partner-brand h2 {
  font-size: var(--t-h3);
}
.landing .purpose h3 {
  font-size: 19px;
}
.landing .purpose-principles {
  margin-top: 40px;
}
.landing .formats-intro,
.landing .purpose-intro {
  margin-bottom: 40px;
}
.landing .formats-terminal {
  margin-top: 0;
}
:is(.landing .purpose-eyebrow, .formats-eyebrow) {
  margin: 0 0 12px;
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.02em;
  text-transform: none;
  color: var(--copper-ink);
}

:root {
  --band: 104px;
}
.landing .purpose-principles {
  margin-top: 0;
}
.landing .purpose {
  padding-bottom: 88px;
}
@media (max-width: 800px) {
  :root { --band: 80px; }
}
@media (max-width: 650px) {
  :root { --band: 64px; }
}

/* ===== Premium motion layer ===== */
@media (prefers-reduced-motion: no-preference) {
  /* Actions: the arrow leads the pointer */
  .landing .text-link span[aria-hidden],
  .landing .partner-copy .button span[aria-hidden],
  .landing .formats-download span[aria-hidden] {
    display: inline-block;
    transition: transform 0.35s var(--ease-out);
  }
  .landing .text-link:hover span[aria-hidden],
  .landing .partner-copy .button:hover span[aria-hidden] {
    transform: translate(3px, -3px);
  }
  .landing .formats-download:hover span[aria-hidden] {
    transform: translateY(3px);
  }
  .landing .button.primary {
    transition: background-color 0.25s ease, transform 0.35s var(--ease-out);
  }
  .landing .button.primary:hover {
    transform: translateY(-1px);
  }
}
.landing .text-link span[aria-hidden] {
  margin-left: 0.22em;
}

/* ===== Light coverage: a register of the published figures ===== */
.landing #coverage {
  display: grid;
  grid-template-columns: minmax(0, 5fr) minmax(0, 7fr);
  grid-template-areas: "tape tape" "head ledger" "foot ledger";
  align-content: start;
  column-gap: 72px;
  padding: 0 0 96px;
  color: var(--ink);
}
.landing #coverage::before {
  content: none;
}
.landing #coverage .data-tape {
  grid-area: tape;
  background: var(--mist);
  border-block: 1px solid var(--line);
}
.landing #coverage .data-tape-item {
  color: var(--muted);
  border-right-color: var(--line);
}
.landing #coverage .data-tape-item b {
  color: var(--ink);
}
.landing #coverage .data-tape-item .up { color: #1d7a50; }
.landing #coverage .data-tape-item .down { color: #b13c2e; }
.landing #coverage .coverage-heading {
  grid-area: head;
  flex-direction: column;
  align-items: flex-start;
  justify-content: flex-start;
  gap: 14px;
  margin-top: 72px;
}
.landing #coverage h2 {
  color: var(--ink);
}
.landing #coverage .coverage-heading p,
.landing #coverage .coverage-note {
  color: var(--muted);
}
.landing #coverage .ledger {
  grid-area: ledger;
  display: block;
  margin-top: 72px;
  border-top: 0;
}
.landing #coverage .ledger-group,
.landing #coverage .ledger-coverage {
  margin: 0;
  padding: 0;
  border: 0;
}
.landing #coverage .ledger-coverage {
  margin-top: 28px;
}
.landing #coverage .ledger-group h3 {
  margin: 0;
  padding-bottom: 10px;
  border-bottom: 1px solid var(--line-strong);
  color: var(--copper-ink);
}
.landing #coverage .ledger .metrics {
  display: block;
}
.landing #coverage .ledger .metrics > div {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 24px;
  padding: 18px 0 16px;
  border-bottom: 1px solid var(--line);
}
.landing #coverage .ledger .metrics dd {
  order: 0;
  color: var(--ink);
}
.landing #coverage .ledger .metrics dt {
  order: 1;
  margin: 0;
  max-width: 16ch;
  text-align: right;
  color: var(--muted);
}
.landing #coverage .coverage-footer {
  grid-area: foot;
  flex-direction: column;
  align-items: flex-start;
  gap: 12px;
  margin-top: 28px;
  padding-top: 0;
  border-top: 0;
}
.landing #coverage .text-link {
  color: var(--accent);
}
.landing #coverage .text-link:hover {
  color: var(--ink);
}
.landing #coverage :focus-visible {
  outline-color: var(--accent);
}
@media (max-width: 800px) {
  .landing #coverage {
    grid-template-columns: minmax(0, 1fr);
    grid-template-areas: "tape" "head" "ledger" "foot";
    padding-bottom: 64px;
  }
  .landing #coverage .coverage-heading,
  .landing #coverage .ledger {
    margin-top: 40px;
  }
}

/* ===== Light formats terminal ===== */
.formats-terminal {
  background: var(--paper);
  color: var(--ink);
  border: 1px solid var(--line-strong);
}
.formats-tabs {
  background: var(--mist);
  border-bottom: 1px solid var(--line);
}
.formats-tab {
  color: var(--muted);
}
.formats-tab:hover {
  color: var(--ink);
}
.formats-tab[aria-pressed="true"] {
  background: var(--paper);
  color: var(--ink);
}
.formats-tab:focus-visible,
.formats-download:focus-visible,
.formats-code:focus-visible {
  outline-color: var(--accent);
}
.formats-file {
  border-bottom-color: var(--line);
}
.formats-name {
  color: var(--muted);
}
.formats-download {
  color: var(--copper-ink);
}
.formats-download:hover {
  color: var(--ink);
}
.formats-code {
  color: var(--ink);
  scrollbar-color: var(--line-strong) transparent;
}
.formats-code .ln::before {
  color: #9aa0ab;
}
.tk-h { color: var(--copper-ink); }
.tk-p { color: #a6abb5; }
.tk-n { color: #1d7a50; }
.tk-b { color: var(--accent); }
.tk-m { color: var(--muted); }
.formats-code .c0 { color: var(--copper-ink); }
.formats-code .c1 { color: var(--accent); }
.formats-code .c2 { color: var(--ink); }
.formats-code .c3 { color: var(--muted); }
.formats-code .c4 { color: #1d7a50; }
.formats-code .c5 { color: #2b5fa8; }
.formats-code .c6,
.formats-code .c7 { color: #a8452f; }
.formats-caret {
  background: var(--copper);
}

/* ===== Ribbon: logos only ===== */
.landing .archive-logo,
.landing .archive-logo-copy {
  grid-template-rows: auto;
  height: 104px;
  padding: 26px 30px;
}
.landing #coverage {
  grid-template-rows: auto auto 1fr;
}
.landing #coverage .coverage-footer {
  align-self: start;
}
.landing #coverage .ledger .metrics > div {
  flex-direction: row;
}
.landing #coverage .ledger .metrics dt {
  align-self: baseline;
}

/* ===== Coverage: three figures, each with its own scope ===== */
.landing #coverage {
  grid-template-columns: minmax(0, 1fr);
  grid-template-areas: "head" "ledger" "foot";
  grid-template-rows: auto;
  padding: 72px 0 96px;
}
.landing #coverage .coverage-heading {
  flex-direction: row;
  align-items: flex-end;
  justify-content: space-between;
  gap: 24px;
  margin-top: 0;
}
.landing #coverage .coverage-heading p {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 8px 14px;
  border: 1px solid var(--line);
  border-radius: 999px;
  white-space: nowrap;
}
.landing #coverage .coverage-heading p::before {
  content: "";
  width: 7px;
  height: 7px;
  border-radius: 50%;
  background: var(--copper);
}
.landing #coverage .ledger {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 2fr);
  gap: 16px;
  margin-top: 36px;
}
.landing #coverage .ledger-coverage {
  margin-top: 0;
}
.landing #coverage .ledger-group h3 {
  padding: 0 0 12px;
  border-bottom: 0;
}
.landing #coverage .ledger-coverage .metrics {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 16px;
}
.landing #coverage .ledger .metrics > div {
  position: relative;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  justify-content: flex-start;
  gap: 10px;
  min-height: 220px;
  padding: 28px 28px 24px;
  border: 0;
  border-radius: 22px;
  background: var(--mist);
}
.landing #coverage .ledger .metrics dt {
  order: 1;
  max-width: none;
  text-align: left;
  font-size: 16px;
  font-weight: 600;
  color: var(--ink);
}
.landing #coverage .ledger .metrics > div::after {
  content: attr(data-scope);
  order: 2;
  margin-top: auto;
  padding-top: 18px;
  font-size: 13px;
  line-height: 1.5;
  color: var(--muted);
}
.landing #coverage .ledger .metrics > div::before {
  content: "";
  position: absolute;
  top: 28px;
  right: 28px;
  width: 9px;
  height: 9px;
  border-radius: 50%;
  background: var(--copper);
}
.landing #coverage .coverage-footer {
  flex-direction: row;
  align-items: center;
  justify-content: space-between;
  gap: 24px;
  margin-top: 24px;
}
@media (max-width: 800px) {
  .landing #coverage {
    padding: 48px 0 64px;
  }
  .landing #coverage .coverage-heading,
  .landing #coverage .coverage-footer {
    flex-direction: column;
    align-items: flex-start;
  }
  .landing #coverage .ledger {
    grid-template-columns: minmax(0, 1fr);
    margin-top: 28px;
  }
  .landing #coverage .ledger .metrics > div {
    min-height: 0;
    padding: 22px 22px 20px;
  }
}
@media (max-width: 520px) {
  .landing #coverage .ledger-coverage .metrics {
    grid-template-columns: minmax(0, 1fr);
  }
}

/* ===== Map: one brand ramp on a quiet basemap ===== */
.landing .archive-intro {
  margin-bottom: 24px;
}
.landing .market-live-map .leaflet-tile-pane {
  filter: grayscale(1) brightness(1.06) contrast(0.85);
  opacity: 0.5;
}
.landing .market-live-map .leaflet-container,
.landing .market-live-map {
  background: #f7f7f9;
}
.landing .market-legend li::before {
  height: 10px;
  border-radius: 3px;
  background: var(--swatch, var(--brand-ink));
  opacity: 1;
}
.landing .market-exchange-tag {
  height: 20px;
  padding: 0 7px;
  border-color: var(--line);
  border-radius: 999px;
  font-size: 10px;
  letter-spacing: 0.02em;
}
.landing .market-live-map .leaflet-tile-pane {
  opacity: 0.22;
}

/* ===== ReasyPort: the analyst bull points to the way in ===== */
.landing .reasyport.container {
  position: relative;
  padding-right: clamp(230px, 21vw, 300px);
}
.partner-bull {
  position: absolute;
  right: clamp(20px, 3vw, 44px);
  bottom: 0;
  width: auto;
  height: calc(100% - 20px);
  max-height: 380px;
  pointer-events: none;
  transform-origin: 70% 100%;
}
@media (prefers-reduced-motion: no-preference) {
  .partner-bull {
    transition: opacity 0.7s ease 0.35s, transform 0.9s var(--ease-out) 0.35s;
  }
  .motion-ready:not(.motion-off) [data-reveal="partner"]:not(.is-in) .partner-bull {
    opacity: 0;
    transform: translateX(48px);
  }
  .landing [data-reveal="partner"].is-in .partner-bull {
    animation: gfc-bull-nudge 4.5s ease-in-out 1.6s infinite;
  }
}
@keyframes gfc-bull-nudge {
  0%, 70%, 100% { transform: none; }
  78% { transform: translateX(-7px) rotate(-1deg); }
  86% { transform: translateX(0); }
  92% { transform: translateX(-4px); }
}
@media (max-width: 800px) {
  .landing .reasyport.container {
    padding-right: 24px;
    padding-bottom: 230px;
  }
  .partner-bull {
    right: 16px;
    height: 220px;
  }
}
.partner-bull-link {
  display: none;
}
@media (max-width: 800px) {
  .landing .partner-bull-link {
    position: absolute;
    right: 164px;
    bottom: 150px;
    display: inline-flex;
    align-items: center;
    min-height: 44px;
    padding: 0 16px;
    border-radius: 999px;
    background: var(--clay);
    color: #fff;
    font-size: 14px;
    font-weight: 600;
    white-space: nowrap;
  }
  .landing .partner-bull-link:focus-visible {
    outline: 2px solid var(--partner-brown);
    outline-offset: 3px;
  }
}

/* ===== ReasyPort card, organised around the bull's gesture =====
   The way in (the action) always sits at the height of the pointing finger:
   the button is centred on the height of the presenting hand */
.landing .reasyport.container {
  --bull-h: 360px;
  /* the open palm sits at 35% of the image height */
  --finger: 0.35;
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto auto;
  grid-template-areas:
    "brand   actions bull"
    "eyebrow actions bull"
    "body    actions bull"
    "flow    actions bull";
  grid-template-rows: auto auto auto 1fr;
  column-gap: 0;
  padding: 44px 40px 0 56px;
}
.landing .reasyport .partner-inner,
.landing .reasyport .partner-copy {
  display: contents;
}
.landing .reasyport .partner-brand {
  grid-area: brand;
  margin-bottom: 28px;
}
.landing .reasyport .partner-copy .partner-eyebrow {
  grid-area: eyebrow;
}
.landing .reasyport .partner-copy > p:not(.partner-eyebrow) {
  grid-area: body;
  max-width: 46ch;
}
.landing .reasyport .partner-flow {
  grid-area: flow;
  align-self: end;
  margin: 28px 0 0;
  padding: 20px 0 36px;
}
.landing .reasyport .partner-actions {
  grid-area: actions;
  align-self: end;
  flex-direction: column;
  align-items: flex-end;
  gap: 8px;
  margin: 0 14px calc(var(--bull-h) * (1 - var(--finger)) - 74px) 40px;
}
.landing .reasyport .partner-actions .button.primary {
  min-height: 48px;
  padding: 12px 24px;
  font-size: 15px;
  box-shadow: none;
}
.landing .reasyport .partner-guide {
  min-height: 40px;
}
.landing .partner-bull {
  position: static;
  grid-area: bull;
  align-self: end;
  height: var(--bull-h);
  max-height: none;
}
@media (max-width: 1100px) {
  .landing .reasyport.container {
    --bull-h: 320px;
    padding: 36px 28px 0 36px;
  }
  .landing .reasyport .partner-actions {
    margin-left: 24px;
  }
}
@media (max-width: 800px) {
  .landing .reasyport.container {
    --bull-h: 230px;
    grid-template-columns: minmax(0, 1fr) auto;
    grid-template-areas:
      "brand   brand"
      "eyebrow eyebrow"
      "body    body"
      "flow    flow"
      "actions bull";
    grid-template-rows: auto;
    padding: 28px 16px 0 24px;
  }
  .landing .reasyport .partner-flow {
    padding-bottom: 8px;
  }
  .landing .reasyport .partner-actions {
    margin: 0 10px calc(var(--bull-h) * (1 - var(--finger)) - 74px) 0;
  }
  .landing .partner-bull {
    height: var(--bull-h);
    right: auto;
  }
}
@media (max-width: 400px) {
  .landing .reasyport.container {
    --bull-h: 200px;
  }
  .landing .reasyport .partner-actions .button.primary {
    padding: 12px 18px;
    font-size: 14px;
  }
}

/* ReasyPort card, tidied: the statement runs across, reading and action share the
   palm's row, the three steps close the card under both */
@media (min-width: 801px) {
  .landing .reasyport.container {
    grid-template-areas:
      "brand   brand   bull"
      "eyebrow actions bull"
      "body    actions bull"
      "flow    flow    bull";
    grid-template-rows: auto auto 1fr auto;
    padding-top: 40px;
  }
  .landing .reasyport .partner-brand {
    grid-template-columns: 64px minmax(0, 1fr);
    gap: 22px;
    margin-bottom: 24px;
    padding-bottom: 24px;
    border-bottom: 1px solid var(--sand-line);
  }
  .landing .reasyport .partner-logo {
    width: 64px;
  }
  .landing .reasyport .partner-brand h2 {
    display: flex;
    flex-wrap: wrap;
    align-items: baseline;
    gap: 4px 14px;
    font-size: clamp(24px, 1vw + 16px, 32px);
  }
  .landing .reasyport .partner-brand h2 > span {
    display: inline;
  }
  .landing .reasyport .partner-brand .partner-resolution {
    margin-top: 0;
  }
  .landing .reasyport .partner-copy > p:not(.partner-eyebrow) {
    max-width: 44ch;
    padding-right: 24px;
  }
  .landing .reasyport .partner-actions {
    align-self: end;
  }
  .landing .reasyport .partner-flow {
    margin-top: 24px;
    padding: 18px 24px 32px 0;
  }
}
@media (min-width: 801px) {
  .landing .reasyport.container {
    grid-template-areas:
      "brand   brand   bull"
      "eyebrow actions bull"
      "body    actions bull"
      "flow    actions bull";
    grid-template-rows: auto auto auto auto;
    align-content: end;
  }
  .landing .reasyport .partner-brand h2 {
    display: block;
  }
  .landing .reasyport .partner-brand h2 > span {
    display: block;
  }
  .landing .reasyport .partner-brand .partner-resolution {
    margin-top: 6px;
  }
  .landing .reasyport .partner-flow {
    padding-right: 0;
  }
}

/* ReasyPort: the three steps sit above the way in, as a short vertical sequence */
@media (min-width: 801px) {
  .landing .reasyport.container {
    grid-template-areas:
      "brand   brand   bull"
      "eyebrow flow    bull"
      "body    flow    bull"
      "body    actions bull";
    grid-template-rows: auto auto 1fr auto;
    padding-bottom: 0;
  }
  .landing .reasyport .partner-copy > p:not(.partner-eyebrow) {
    align-self: start;
    padding-bottom: 36px;
  }
  .landing .reasyport .partner-flow {
    grid-area: flow;
    align-self: end;
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    gap: 0;
    margin: 0 14px 18px 40px;
    padding: 0;
    border: 0;
  }
  .landing .reasyport .partner-flow li {
    position: relative;
    display: grid;
    gap: 2px;
    padding: 0 0 14px 22px;
    text-align: left;
  }
  .landing .reasyport .partner-flow li::before {
    content: "";
    position: absolute;
    left: 0;
    top: 5px;
    width: 9px;
    height: 9px;
    border-radius: 50%;
    background: var(--partner-orange);
  }
  .landing .reasyport .partner-flow li:not(:last-child)::after {
    content: "";
    position: absolute;
    left: 4px;
    top: 16px;
    right: auto;
    bottom: 0;
    width: 1px;
    height: auto;
    background: var(--sand-line);
    transform: none;
  }
  .landing .reasyport .partner-flow-label {
    font-size: 14px;
  }
  .landing .reasyport .partner-flow-owner {
    margin: 0;
    font-size: 12px;
  }
  .landing .reasyport .partner-actions {
    margin-bottom: calc(var(--bull-h) * (1 - var(--finger)) - 74px);
  }
}

/* The bull is alive: it breathes, sways a little on its feet, and leans in when the action is hovered */
.partner-bull-shadow {
  display: none;
}
@media (prefers-reduced-motion: no-preference) {
  .landing [data-reveal="partner"].is-in .partner-bull {
    animation: gfc-bull-idle 5.2s ease-in-out 1.2s infinite;
  }
  .landing .reasyport:has(.partner-actions .button.primary:hover, .partner-actions .button.primary:focus-visible) .partner-bull {
    animation: gfc-bull-present 0.7s var(--ease-out) both;
  }
}
@keyframes gfc-bull-idle {
  0%, 100% { transform: rotate(0deg) scale(1, 1); }
  25% { transform: rotate(-0.8deg) scale(1.006, 1.012); }
  50% { transform: rotate(0deg) scale(1, 1); }
  72% { transform: rotate(0.6deg) scale(1.004, 1.008); }
  84% { transform: translateX(-6px) rotate(-1.4deg) scale(1.006, 1.012); }
  92% { transform: translateX(0) rotate(0deg); }
}
@keyframes gfc-bull-present {
  to { transform: translateX(-10px) rotate(-2.2deg) scale(1.02); }
}
@media (min-width: 801px) {
  .landing .reasyport.container {
    --bull-h: 380px;
    grid-template-areas:
      "brand   brand   bull"
      ".       flow    bull"
      "eyebrow flow    bull"
      "body    actions bull";
    grid-template-rows: auto 1fr auto auto;
  }
  .landing .reasyport .partner-copy .partner-eyebrow {
    align-self: end;
  }
  .landing .reasyport .partner-copy > p:not(.partner-eyebrow) {
    align-self: end;
    padding-bottom: 44px;
  }
}
@media (min-width: 1101px) {
  .landing .reasyport.container {
    --bull-h: 440px;
  }
}
@media (min-width: 801px) {
  .landing .reasyport.container {
    grid-template-areas:
      "brand   brand   bull"
      "eyebrow flow    bull"
      "body    flow    bull"
      "body    actions bull";
    grid-template-rows: auto auto 1fr auto;
  }
  .landing .reasyport .partner-copy .partner-eyebrow {
    align-self: start;
    margin-top: 4px;
  }
  .landing .reasyport .partner-copy > p:not(.partner-eyebrow) {
    align-self: start;
    max-width: 30ch;
    padding: 0 24px 40px 0;
    font-size: clamp(18px, 0.5vw + 14px, 21px);
    line-height: 1.55;
    color: #4b3d30;
  }
}

/* The bull is now a short looping film; the stylesheet only adds the lean toward the action */
.landing video.partner-bull {
  display: block;
  object-fit: contain;
  background: var(--sand-soft);
}
@media (prefers-reduced-motion: no-preference) {
  .landing [data-reveal="partner"].is-in video.partner-bull {
    animation: none;
  }
  .landing .reasyport:has(.partner-actions .button.primary:hover, .partner-actions .button.primary:focus-visible) video.partner-bull {
    animation: gfc-bull-present 0.7s var(--ease-out) both;
  }
}
/* The film's ground is pure white and multiplied into the card, so it takes the card's exact sand */
.landing video.partner-bull {
  background: transparent;
  mix-blend-mode: multiply;
}
.landing .reasyport.container {
  isolation: isolate;
}
@media (min-width: 1px) {
  .landing .reasyport.container {
    /* the presenting palm in the film sits at 40% of its height */
    --finger: 0.4;
  }
}

/* ===== ReasyPort card, compact: one reading column, the action at the palm, the bull ===== */
@media (min-width: 801px) {
  .landing .reasyport.container {
    --bull-h: 420px;
    grid-template-columns: minmax(0, 1fr) auto auto;
    grid-template-areas:
      "brand   brand   bull"
      "eyebrow actions bull"
      "body    actions bull"
      "flow    actions bull";
    grid-template-rows: auto auto auto auto;
    align-content: end;
    min-height: calc(var(--bull-h) + 32px);
    padding: 36px 32px 0 52px;
  }
  .landing .reasyport .partner-brand {
    margin-bottom: 20px;
    padding-bottom: 20px;
  }
  .landing .reasyport .partner-copy .partner-eyebrow {
    align-self: end;
    margin: 0 0 10px;
  }
  .landing .reasyport .partner-copy > p:not(.partner-eyebrow) {
    align-self: start;
    max-width: 40ch;
    padding: 0 32px 0 0;
    font-size: clamp(17px, 0.4vw + 13px, 19px);
  }
  /* The three steps as one horizontal line under the reading */
  .landing .reasyport .partner-flow {
    align-self: end;
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 0 16px;
    margin: 24px 32px 32px 0;
    padding: 0;
    border: 0;
  }
  .landing .reasyport .partner-flow li {
    position: relative;
    padding: 20px 0 0;
    text-align: left;
  }
  .landing .reasyport .partner-flow li::before {
    left: 0;
    top: 0;
  }
  .landing .reasyport .partner-flow li:not(:last-child)::after {
    content: "";
    position: absolute;
    left: 14px;
    right: -10px;
    top: 4px;
    bottom: auto;
    width: auto;
    height: 1px;
    background: var(--sand-line);
    transform: none;
  }
  .landing .reasyport .partner-actions {
    margin: 0 12px calc(var(--bull-h) * (1 - var(--finger)) - 74px) 0;
  }
}
@media (min-width: 801px) and (max-width: 1100px) {
  .landing .reasyport.container {
    --bull-h: 380px;
    padding: 32px 20px 0 36px;
  }
  .landing .reasyport .partner-flow {
    grid-template-columns: minmax(0, 1fr);
    gap: 10px;
    margin-right: 20px;
  }
  .landing .reasyport .partner-flow li {
    padding: 0 0 0 20px;
  }
  .landing .reasyport .partner-flow li::before {
    top: 5px;
  }
  .landing .reasyport .partner-flow li:not(:last-child)::after {
    content: none;
  }
}

/* ===== ReasyPort card, short: motto and action share the top row above the rule,
   reading on the left and the three steps under the action, the bull on the right ===== */
@media (min-width: 801px) {
  .landing .reasyport.container {
    --bull-h: 340px;
    --top-row: 140px;
    grid-template-columns: minmax(0, 1fr) auto auto;
    grid-template-areas:
      "brand   actions bull"
      "eyebrow flow    bull"
      "body    flow    bull";
    grid-template-rows: var(--top-row) auto 1fr;
    align-content: start;
    min-height: 0;
    padding: 28px 28px 0 48px;
  }
  .landing .reasyport .partner-brand,
  .landing .reasyport .partner-actions {
    align-self: stretch;
    margin: 0;
    padding-bottom: 18px;
    border-bottom: 1px solid var(--sand-line);
  }
  .landing .reasyport .partner-brand {
    align-items: center;
  }
  .landing .reasyport .partner-actions {
    display: flex;
    flex-direction: column;
    justify-content: flex-end;
    align-items: flex-start;
    margin: 0 16px 0 0;
    padding-left: 24px;
  }
  .landing .reasyport .partner-copy .partner-eyebrow {
    align-self: start;
    margin: 18px 0 8px;
  }
  .landing .reasyport .partner-copy > p:not(.partner-eyebrow) {
    padding: 0 32px 24px 0;
  }
  .landing .reasyport .partner-flow {
    grid-area: flow;
    align-self: start;
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    gap: 0;
    margin: 18px 16px 24px 0;
    padding: 0 0 0 24px;
    border: 0;
  }
  .landing .reasyport .partner-flow li {
    position: relative;
    padding: 0 0 12px 20px;
    text-align: left;
  }
  .landing .reasyport .partner-flow li::before {
    left: 0;
    top: 5px;
  }
  .landing .reasyport .partner-flow li:not(:last-child)::after {
    content: "";
    position: absolute;
    left: 4px;
    right: auto;
    top: 16px;
    bottom: 0;
    width: 1px;
    height: auto;
    background: var(--sand-line);
    transform: none;
  }
  .landing .partner-bull {
    align-self: end;
  }
}
@media (min-width: 801px) and (max-width: 1100px) {
  .landing .reasyport.container {
    --bull-h: 320px;
    --top-row: 132px;
    padding: 24px 16px 0 32px;
  }
}
@media (min-width: 801px) {
  .landing .reasyport.container {
    --bull-h: 318px;
    --top-row: 144px;
  }
  .landing .reasyport .partner-copy .partner-eyebrow {
    margin: 16px 0 6px;
  }
  .landing .reasyport .partner-copy > p:not(.partner-eyebrow) {
    max-width: 52ch;
    padding-bottom: 20px;
    font-size: 17px;
    line-height: 1.55;
  }
  .landing .reasyport .partner-flow {
    margin: 16px 16px 20px 0;
  }
  .landing .reasyport .partner-flow li {
    padding-bottom: 8px;
  }
  .landing .reasyport .partner-flow-label {
    font-size: 13px;
  }
  .landing .reasyport .partner-flow-owner {
    font-size: 11.5px;
  }
}
@media (min-width: 801px) and (max-width: 1100px) {
  .landing .reasyport.container {
    --bull-h: 318px;
    --top-row: 140px;
  }
}
@media (min-width: 801px) {
  .landing .reasyport.container {
    --bull-h: 332px;
  }
  .landing .reasyport .partner-copy > p:not(.partner-eyebrow) {
    padding-bottom: 6px;
  }
  .landing .reasyport .partner-flow {
    margin-bottom: 4px;
  }
}
@media (min-width: 801px) and (max-width: 1100px) {
  .landing .reasyport.container {
    --bull-h: 332px;
  }
}
@media (max-width: 800px) {
  /* the action alone (no guide link): centre the button itself on the palm */
  .landing .reasyport .partner-actions {
    margin-bottom: calc(var(--bull-h) * (1 - var(--finger)) - 24px);
  }
}
@media (min-width: 801px) {
  .landing .reasyport.container {
    --bull-h: 300px;
  }
  .landing .reasyport .partner-flow {
    min-width: 270px;
  }
  .landing .reasyport .partner-flow li {
    display: flex;
    flex-wrap: wrap;
    align-items: baseline;
    gap: 0 6px;
    padding-bottom: 7px;
  }
  .landing .reasyport .partner-flow-owner::before {
    content: "· ";
  }
  .landing .reasyport .partner-flow li:not(:last-child)::after {
    top: 15px;
  }
}
@media (min-width: 801px) and (max-width: 1100px) {
  .landing .reasyport.container {
    --bull-h: 300px;
  }
}
@media (min-width: 801px) {
  .landing .reasyport.container {
    --top-row: 168px;
  }
}
@media (min-width: 801px) and (max-width: 1100px) {
  .landing .reasyport.container {
    --top-row: 168px;
  }
}
/* Between tablet and laptop the card stacks like on phones: reading first, then the action beside the bull */
@media (min-width: 801px) and (max-width: 1100px) {
  .landing .reasyport.container {
    --bull-h: 270px;
    --finger: 0.4;
    grid-template-columns: minmax(0, 1fr) auto;
    grid-template-areas:
      "brand   brand"
      "eyebrow eyebrow"
      "body    body"
      "flow    flow"
      "actions bull";
    grid-template-rows: auto;
    padding: 28px 24px 0 32px;
  }
  .landing .reasyport .partner-brand,
  .landing .reasyport .partner-actions {
    border-bottom: 0;
    padding-bottom: 0;
  }
  .landing .reasyport .partner-brand {
    margin-bottom: 20px;
    padding-bottom: 20px;
    border-bottom: 1px solid var(--sand-line);
  }
  .landing .reasyport .partner-copy > p:not(.partner-eyebrow) {
    max-width: 60ch;
  }
  .landing .reasyport .partner-flow {
    min-width: 0;
    margin: 16px 0 0;
    padding: 0;
  }
  .landing .reasyport .partner-actions {
    align-self: end;
    justify-content: flex-start;
    margin: 0 12px calc(var(--bull-h) * (1 - var(--finger)) - 24px) 0;
    padding: 0;
  }
}
@media (min-width: 801px) and (max-width: 1100px) {
  .landing .reasyport.container {
    grid-template-columns: minmax(0, 1fr) auto auto;
    grid-template-areas:
      "brand   brand   bull"
      "eyebrow actions bull"
      "body    actions bull"
      "flow    actions bull";
    grid-template-rows: auto;
    align-content: start;
    padding: 28px 20px 0 32px;
  }
  .landing .reasyport .partner-actions {
    align-self: stretch;
    justify-content: flex-start;
    margin: 0 8px 0 16px;
  }
  .landing .reasyport .partner-copy > p:not(.partner-eyebrow) {
    max-width: 44ch;
    padding-right: 0;
  }
  .landing .reasyport .partner-flow {
    margin: 16px 0 24px;
  }
  .landing .reasyport .partner-flow li {
    display: grid;
  }
  .landing .reasyport .partner-flow-owner::before {
    content: none;
  }
}
@media (min-width: 801px) and (max-width: 1100px) {
  .landing .reasyport.container {
    grid-template-areas:
      "brand   brand   bull"
      "eyebrow actions bull"
      "body    actions bull"
      "body    flow    bull";
    grid-template-rows: auto auto auto 1fr;
  }
  .landing .reasyport .partner-actions {
    align-self: stretch;
    min-height: 64px;
  }
  .landing .reasyport .partner-flow {
    align-self: start;
    margin: 8px 8px 24px 16px;
  }
}
/* The ReasyPort logo keeps a confident size beside the motto */
@media (min-width: 801px) {
  .landing .reasyport .partner-brand {
    grid-template-columns: 92px minmax(0, 1fr);
    gap: 26px;
  }
  .landing .reasyport .partner-logo {
    width: 92px;
  }
  .landing .reasyport.container {
    --top-row: 196px;
  }
}
@media (min-width: 801px) and (max-width: 1100px) {
  .landing .reasyport .partner-brand {
    grid-template-columns: 80px minmax(0, 1fr);
    gap: 22px;
  }
  .landing .reasyport .partner-logo {
    width: 80px;
  }
}
@media (max-width: 800px) {
  .landing .reasyport .partner-brand {
    grid-template-columns: 72px minmax(0, 1fr);
  }
  .landing .reasyport .partner-logo {
    width: 72px;
  }
}

/* ReasyPort card: no rule; the action high and to the right beside the bull; three roomy steps */
.landing .reasyport .partner-brand,
.landing .reasyport .partner-actions {
  border-bottom: 0;
}
@media (min-width: 801px) {
  .landing .reasyport .partner-brand {
    padding-bottom: 8px;
  }
  .landing .reasyport .partner-actions {
    align-self: start;
    justify-content: flex-start;
    align-items: flex-end;
    margin: 8px 8px 0 0;
    padding: 0;
  }
  .landing .reasyport .partner-flow {
    align-self: start;
    min-width: 380px;
    margin: 4px 8px 28px 0;
    padding: 0;
  }
  .landing .reasyport .partner-flow li {
    display: grid;
    gap: 3px;
    padding: 0 0 18px 26px;
  }
  .landing .reasyport .partner-flow li::before {
    top: 6px;
    width: 11px;
    height: 11px;
  }
  .landing .reasyport .partner-flow li:not(:last-child)::after {
    left: 5px;
    top: 21px;
    bottom: 2px;
  }
  .landing .reasyport .partner-flow-label {
    font-size: 16px;
  }
  .landing .reasyport .partner-flow-owner {
    font-size: 13px;
  }
  .landing .reasyport .partner-flow-owner::before {
    content: none;
  }
}
@media (min-width: 1101px) {
  .landing .reasyport.container {
    --top-row: auto;
    grid-template-areas:
      "brand   actions bull"
      "eyebrow flow    bull"
      "body    flow    bull";
    grid-template-rows: auto auto 1fr;
  }
}
@media (min-width: 801px) and (max-width: 1100px) {
  .landing .reasyport.container {
    grid-template-areas:
      "brand   actions bull"
      "eyebrow flow    bull"
      "body    flow    bull";
    grid-template-rows: auto auto 1fr;
  }
  .landing .reasyport .partner-flow {
    min-width: 260px;
  }
  .landing .reasyport .partner-brand h2 {
    font-size: 22px;
  }
}
@media (max-width: 800px) {
  .landing .reasyport .partner-brand {
    padding-bottom: 0;
  }
}
/* With followed companies the companies group holds three figures */
.landing #coverage .ledger:has(.ledger-coverage .metrics > div:nth-child(3)) {
  grid-template-columns: minmax(0, 1fr) minmax(0, 3fr);
}
.landing #coverage .ledger-coverage .metrics:has(> div:nth-child(3)) {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}
@media (max-width: 1100px) {
  .landing #coverage .ledger:has(.ledger-coverage .metrics > div:nth-child(3)) {
    grid-template-columns: minmax(0, 1fr);
  }
}
@media (max-width: 520px) {
  .landing #coverage .ledger-coverage .metrics:has(> div:nth-child(3)) {
    grid-template-columns: minmax(0, 1fr);
  }
}
.landing #coverage .ledger:has(.ledger-coverage .metrics > div:nth-child(3)) .metrics dd {
  font-size: clamp(40px, 2.4vw + 22px, 60px);
}
.landing #coverage .ledger:has(.ledger-coverage .metrics > div:nth-child(3)) .metrics > div {
  padding-inline: 24px;
}

/* ReasyPort card without the steps: the reading in two lines under the motto */
.landing .reasyport .partner-copy > p:not(.partner-eyebrow) {
  white-space: pre-line;
}
@media (min-width: 801px) {
  .landing .reasyport.container {
    grid-template-areas:
      "brand   actions bull"
      "eyebrow eyebrow bull"
      "body    body    bull";
    grid-template-rows: auto auto 1fr;
  }
  .landing .reasyport .partner-copy > p:not(.partner-eyebrow) {
    max-width: none;
    padding: 0 24px 32px 0;
    font-size: clamp(15px, 0.35vw + 12px, 17px);
  }
}
@media (max-width: 800px) {
  .landing .reasyport.container {
    grid-template-areas:
      "brand   brand"
      "eyebrow eyebrow"
      "body    body"
      "actions bull";
  }
}
/* ReasyPort lockup as on its homepage: a slightly smaller logo, a clear gap,
   the motto set large enough to almost fill the logo's height */
@media (min-width: 801px) {
  .landing .reasyport .partner-brand {
    grid-template-columns: 78px minmax(0, 1fr);
    gap: 34px;
    align-items: center;
  }
  .landing .reasyport .partner-logo {
    width: 78px;
  }
  .landing .reasyport .partner-brand h2 {
    font-size: clamp(30px, 1.2vw + 20px, 37px);
    line-height: 1.04;
  }
  .landing .reasyport .partner-brand .partner-resolution {
    margin-top: 4px;
  }
}
@media (min-width: 801px) and (max-width: 1100px) {
  .landing .reasyport .partner-brand {
    grid-template-columns: 66px minmax(0, 1fr);
    gap: 26px;
  }
  .landing .reasyport .partner-logo {
    width: 66px;
  }
  .landing .reasyport .partner-brand h2 {
    font-size: 27px;
  }
}
@media (max-width: 800px) {
  .landing .reasyport .partner-brand {
    grid-template-columns: 62px minmax(0, 1fr);
    gap: 20px;
  }
  .landing .reasyport .partner-logo {
    width: 62px;
  }
}
@media (min-width: 801px) and (max-width: 1100px) {
  .landing .reasyport .partner-brand h2 {
    font-size: 31px;
  }
}
@media (min-width: 801px) and (max-width: 1100px) {
  .landing .reasyport .partner-copy > p:not(.partner-eyebrow) {
    font-size: 14px;
    padding-right: 8px;
  }
}


/* ReasyPort, the three steps back beside the bull: the second (ReasyPort) is the way in and
   sits at the height of the presenting palm (landing-motion.js aligns it) */
.landing .reasyport .partner-flow-link a {
  display: grid;
  gap: 2px;
  color: inherit;
  text-decoration: none;
  border-radius: 6px;
}
.landing .reasyport .partner-flow-link .partner-flow-label {
  color: #8a4a1c;
  text-decoration: underline;
  text-decoration-thickness: 1px;
  text-underline-offset: 3px;
}
.landing .reasyport .partner-flow-link a:hover .partner-flow-label,
.landing .reasyport .partner-flow-link a:focus-visible .partner-flow-label {
  text-decoration-thickness: 2px;
}
.landing .reasyport .partner-flow-link a:focus-visible {
  outline: 2px solid var(--partner-orange);
  outline-offset: 4px;
}
@media (min-width: 801px) {
  .landing .reasyport.container {
    grid-template-areas:
      "brand   flow bull"
      "eyebrow flow bull"
      "body    flow bull";
    grid-template-rows: auto auto 1fr;
  }
  /* a slightly shorter card */
  .landing .reasyport.container {
    padding-top: 22px;
  }
  .landing .reasyport .partner-copy > p:not(.partner-eyebrow) {
    padding-bottom: 20px;
  }
  .landing .reasyport .partner-flow {
    align-self: start;
    justify-self: end;
    width: max-content;
    min-width: 0;
    max-width: 300px;
    margin: 0 28px 0 40px;
  }
  /* label over owner, so the column is only as wide as its longest line */
  .landing .reasyport .partner-flow li {
    display: grid;
    gap: 2px;
  }
}
@media (max-width: 800px) {
  .landing .reasyport.container {
    grid-template-areas:
      "brand   brand"
      "eyebrow eyebrow"
      "body    body"
      "flow    bull";
  }
  .landing .reasyport .partner-flow {
    align-self: start;
    margin: 0 10px 0 0;
    padding: 0;
  }
}
@media (prefers-reduced-motion: no-preference) {
  .landing .reasyport:has(.partner-flow-link a:hover, .partner-flow-link a:focus-visible) .partner-bull {
    animation: gfc-bull-present 0.7s var(--ease-out) both;
  }
}

/* Archive map, refined: a soft ocean, finer venues, a night side with a soft edge */
.landing .market-live-map .leaflet-container,
.landing .market-live-map {
  background: radial-gradient(120% 90% at 50% 40%, #f8f8fc 0%, #eef0f6 100%);
}
.landing .market-live-map path[data-iso] {
  transition: filter 0.3s ease;
}
.landing .market-live-map path[data-iso]:hover,
.landing .market-live-map path[data-iso][aria-pressed="true"] {
  filter: drop-shadow(0 3px 6px rgba(46, 43, 119, 0.28));
}
.landing .market-night {
  filter: blur(9px);
}
.landing .market-exchange-dot {
  left: 7.5px;
  top: 7.5px;
  width: 9px;
  height: 9px;
  border-width: 1.5px;
  box-shadow: 0 1px 3px rgba(23, 22, 43, 0.35);
}
.landing .market-exchange-pin[data-session-state="open"] .market-exchange-dot::after {
  inset: -3px;
  border-width: 1.5px;
  animation-duration: 2.6s;
}
.landing .market-exchange-tag {
  border-color: rgba(23, 22, 43, 0.08);
  background: rgba(255, 255, 255, 0.94);
  box-shadow: 0 2px 8px -3px rgba(23, 22, 43, 0.25);
  color: #17162b;
}
/* medium screens: the statement keeps the full width, the steps start under it */
@media (min-width: 801px) and (max-width: 1180px) {
  .landing .reasyport.container {
    grid-template-areas:
      "brand   brand bull"
      "eyebrow flow  bull"
      "body    flow  bull";
  }
}
/* The bull leans in softly toward the hovered link: the idle sway keeps running (same animation,
   so it never restarts) and a small lean eases in and out on top of it */
.landing .partner-bull {
  transition: translate 0.9s cubic-bezier(0.25, 0.8, 0.3, 1), rotate 0.9s cubic-bezier(0.25, 0.8, 0.3, 1);
}
@media (prefers-reduced-motion: no-preference) {
  .landing .reasyport:has(.partner-flow-link a:hover, .partner-flow-link a:focus-visible) .partner-bull {
    animation: gfc-bull-idle 5.2s ease-in-out 1.2s infinite;
    translate: -5px 0;
    rotate: -1deg;
  }
}
/* the three steps spaced evenly: landing-motion.js sets the gap from the card's height */
@media (min-width: 801px) {
  .landing .reasyport .partner-flow li {
    padding-bottom: var(--flow-gap, 14px);
  }
  .landing .reasyport .partner-flow li:last-child {
    padding-bottom: 0;
  }
}

/* Footer, light: warm paper, ink type, copper headings and a faint oversized wordmark */
.landing .gfc-footer {
  --footer-ink: #17162b;
  --footer-muted: #5b5a6e;
  --footer-line: rgba(23, 22, 43, 0.12);
  position: relative;
  overflow: hidden;
  padding-bottom: clamp(72px, 9vw, 150px);
  border-top: 1px solid var(--footer-line);
  background: linear-gradient(180deg, #f8f5ef 0%, #f0e9de 100%);
}
.landing .gfc-footer::after {
  content: "GlobalFinancialCore" / "";
  position: absolute;
  left: 50%;
  bottom: -0.18em;
  translate: -50% 0;
  font: 760 clamp(44px, 10.4vw, 190px) / 1 var(--display, sans-serif);
  letter-spacing: -0.06em;
  white-space: nowrap;
  color: rgba(23, 22, 43, 0.045);
  pointer-events: none;
}
.landing .gfc-footer > .container {
  position: relative;
  z-index: 1;
}
.landing .gfc-footer h2 {
  font-family: var(--mono, monospace);
  font-size: 11px;
  font-weight: 600;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: #8a4a1c;
}
.landing .gfc-footer .brand svg {
  color: #17162b;
}
.landing .gfc-footer a:hover,
.landing .gfc-footer a:active {
  color: #8a4a1c;
}
.landing .gfc-footer a:focus-visible {
  outline-color: #8a4a1c;
}
.landing .gfc-footer .gfc-footer-partner {
  color: #17162b;
}
.landing .gfc-footer-signature span {
  color: #b87944;
}

/* ===== Formats, as a library: three format cards beside the live file, a row inspector on the series ===== */
.landing .formats-terminal {
  display: grid;
  grid-template-columns: minmax(250px, 330px) minmax(0, 1fr);
  gap: 22px;
  align-items: start;
  border: 0;
  border-radius: 0;
  background: none;
  overflow: visible;
}
.landing .formats-tabs {
  display: grid;
  gap: 12px;
  padding: 0;
  border: 0;
  background: none;
  overflow: visible;
}
.landing .formats-tab {
  display: grid;
  justify-items: start;
  gap: 6px;
  min-height: 0;
  padding: 18px 20px 16px;
  border: 1px solid var(--line);
  border-radius: 16px;
  background: #fff;
  color: var(--ink);
  font: inherit;
  text-align: left;
  box-shadow: none;
  transition: border-color 0.25s ease, box-shadow 0.35s ease, transform 0.35s var(--ease-out, ease);
}
.landing .formats-tab:hover {
  border-color: var(--line-strong);
  transform: translateY(-2px);
}
.landing .formats-tab[aria-pressed="true"] {
  border-color: var(--copper, #b87944);
  background: linear-gradient(180deg, #fff 0%, #fdf8f2 100%);
  box-shadow: 0 18px 44px -28px rgba(23, 22, 43, 0.45);
}
.landing .formats-tab:focus-visible {
  outline: 2px solid var(--accent, #3b3990);
  outline-offset: 3px;
}
.formats-badge {
  padding: 3px 8px;
  border-radius: 6px;
  background: #3b3990;
  color: #fff;
  font-size: 11px;
  font-weight: 600;
  letter-spacing: 0.06em;
}
.formats-tab:first-child .formats-badge {
  background: #8a4a1c;
}
.formats-card-title {
  font: 680 18px/1.2 var(--display, sans-serif);
  letter-spacing: -0.02em;
}
.formats-card-text {
  font-size: 13.5px;
  line-height: 1.5;
  color: var(--muted);
}
.formats-card-meta {
  margin-top: 2px;
  font-size: 11.5px;
  color: #8a4a1c;
}
.landing .formats-panels {
  min-width: 0;
  border: 1px solid var(--line-strong);
  border-radius: 18px;
  background: #fff;
  overflow: hidden;
  box-shadow: 0 34px 80px -54px rgba(23, 22, 43, 0.5);
}
/* the series rows can be picked */
#formats-series .formats-code .ln:not(:first-child) {
  cursor: pointer;
  border-radius: 4px;
  transition: background-color 0.2s ease;
}
#formats-series .formats-code .ln.is-picked {
  background: rgba(184, 121, 68, 0.13);
}
.formats-inspector {
  min-height: 64px;
  padding: 14px 22px;
  border-top: 1px solid var(--line);
  background: #faf7f2;
}
.formats-inspect-hint {
  margin: 8px 0;
  font-size: 13px;
  color: var(--muted);
}
.formats-inspect-fields {
  display: flex;
  flex-wrap: wrap;
  gap: 10px 28px;
  margin: 0;
}
.formats-inspect-fields[hidden] {
  display: none;
}
.formats-inspect-fields dt {
  font: 600 10.5px/1.4 var(--mono, monospace);
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--muted);
}
.formats-inspect-fields dd {
  margin: 2px 0 0;
  font-size: 14px;
  font-weight: 600;
  color: var(--ink);
}
.formats-inspect-fields > div {
  display: grid;
}
.formats-inspect-fields a {
  color: #2b5fa8;
}
@media (max-width: 900px) {
  .landing .formats-terminal {
    grid-template-columns: minmax(0, 1fr);
    gap: 16px;
  }
  .landing .formats-tabs {
    grid-auto-flow: column;
    grid-auto-columns: minmax(230px, 76%);
    overflow-x: auto;
    scroll-snap-type: x mandatory;
    padding-bottom: 4px;
    scrollbar-width: none;
  }
  .landing .formats-tab {
    scroll-snap-align: start;
  }
}

/* Footer, second take: soft indigo mist, everything set in the display face */
.landing .gfc-footer {
  --footer-ink: #1e1c4f;
  --footer-muted: #565585;
  --footer-line: rgba(59, 57, 144, 0.16);
  background: linear-gradient(180deg, #f4f3fb 0%, #e9e8f6 100%);
  font-family: var(--display, sans-serif);
}
.landing .gfc-footer::after {
  color: rgba(59, 57, 144, 0.07);
}
.landing .gfc-footer h2 {
  font: 700 13px/1.5 var(--display, sans-serif);
  letter-spacing: 0;
  text-transform: none;
  color: #3b3990;
}
.landing .gfc-footer nav > a {
  font-size: 15px;
  font-weight: 560;
  letter-spacing: -0.01em;
}
.landing .gfc-footer-identity > p {
  font-size: 15px;
  font-weight: 450;
}
.landing .gfc-footer .gfc-footer-caption,
.landing .gfc-footer .gfc-footer-note,
.landing .gfc-footer-bottom {
  font-family: var(--display, sans-serif);
}
.landing .gfc-footer .brand svg,
.landing .gfc-footer .gfc-footer-partner {
  color: #1e1c4f;
}
.landing .gfc-footer a:hover,
.landing .gfc-footer a:active {
  color: #8a4a1c;
}

/* Formats: slightly smaller type; the series keeps the same box, its inspector inside it */
.landing .formats-code {
  font-size: 11.5px;
}
.landing .formats-inspector {
  box-sizing: border-box;
  height: 84px;
  min-height: 0;
  display: flex;
  align-items: center;
  overflow: hidden;
}
.landing #formats-series .formats-code {
  height: calc(420px - 84px);
}
@media (max-width: 800px) {
  .landing #formats-series .formats-code {
    height: calc(360px - 84px);
  }
}
@media (max-width: 650px) {
  .landing .formats-code {
    font-size: 10.5px;
  }
  .landing .formats-inspector {
    height: 112px;
    padding: 10px 14px;
  }
  .landing .formats-inspect-fields {
    gap: 6px 18px;
  }
  .landing #formats-series .formats-code {
    height: calc(320px - 112px);
  }
}
