/* The Gane Index in Gane's own style (decided 1 November 2026: Gane only, one bar, one style). Loaded last, only while the
   publisher is Gane: it retunes the design system's tokens to Gane's type and colors, retires the per-index colors, and styles
   the one bar (.gx-head) and Gane's footer (.gx-foot). The page body keeps its components; only their tokens change. */
@import url('https://fonts.googleapis.com/css2?family=Archivo:wght@400;500;600;700;800&family=DM+Sans:wght@400;500;600;700&family=JetBrains+Mono:wght@400;500;600&display=swap');
:root, :root:not([data-theme="light"]), :root[data-theme="dark"] {
  --font-display: "Archivo", system-ui, sans-serif; --font-heading: "Archivo", system-ui, sans-serif; --font-body: "DM Sans", system-ui, sans-serif;
  --font-mono: "JetBrains Mono", ui-monospace, monospace;
  --index-gtm: #4c1be0; --index-hr: #4c1be0; --index-it: #4c1be0; --index-finance: #4c1be0; --index-hub: #070057;
}
:root {
  color-scheme: light;
  --color-bg: #ffffff; --color-surface: #f5f4fb; --color-text: #120f33;
  --color-divider: color-mix(in srgb, #070057 22%, transparent);
  --color-accent: #4c1be0; --color-accent-2: #7b59e8;
  --color-accent-100: #f3f0fd; --color-accent-200: #e4dcfb; --color-accent-300: #c9b9f7; --color-accent-400: #a28af0;
  --color-accent-500: #7b59e8; --color-accent-600: #5f33e3; --color-accent-700: #4c1be0; --color-accent-800: #2e0f8a;
  --color-neutral-100: #f7f7fb; --color-neutral-200: #ececf4; --color-neutral-300: #d8d7e6; --color-neutral-400: #b9b7cf;
  --color-neutral-500: #9592b0; --color-neutral-600: #747191; --color-neutral-700: #57546f; --color-neutral-800: #3b3852; --color-neutral-900: #24213a;
}
@media (prefers-color-scheme: dark) { :root:not([data-theme="light"]) {
  color-scheme: dark;
  --color-bg: #03002a; --color-surface: #0e0a3e; --color-text: #eeeefe;
  --color-divider: color-mix(in srgb, #eeeefe 24%, transparent);
  --color-accent: #a28af0; --color-accent-700: #c9b9f7; --color-accent-100: #1a1250; --color-accent-200: #24186a; --color-accent-300: #3d2b9e;
  --color-neutral-100: #0e0a3e; --color-neutral-200: #1a1650; --color-neutral-300: #2b2766; --color-neutral-400: #46427f;
  --color-neutral-500: #6d6a9c; --color-neutral-600: #9693bb; --color-neutral-700: #bdbbd8; --color-neutral-800: #dcdbee; --color-neutral-900: #f2f2fb;
} }
:root[data-theme="dark"] {
  color-scheme: dark;
  --color-bg: #03002a; --color-surface: #0e0a3e; --color-text: #eeeefe;
  --color-divider: color-mix(in srgb, #eeeefe 24%, transparent);
  --color-accent: #a28af0; --color-accent-700: #c9b9f7; --color-accent-100: #1a1250; --color-accent-200: #24186a; --color-accent-300: #3d2b9e;
  --color-neutral-100: #0e0a3e; --color-neutral-200: #1a1650; --color-neutral-300: #2b2766; --color-neutral-400: #46427f;
  --color-neutral-500: #6d6a9c; --color-neutral-600: #9693bb; --color-neutral-700: #bdbbd8; --color-neutral-800: #dcdbee; --color-neutral-900: #f2f2fb;
}
h1, h2, h3, .hq-top h1, .ch-l h1, .ch-name { letter-spacing: -0.02em; font-weight: 700; }
.hq-top h1 { font-size: clamp(42px, 6vw, 76px); line-height: 1.0; }
.ch-l h1 { font-size: clamp(34px, 4.4vw, 56px); line-height: 1.02; }
.fam-sq { display: none !important; }

/* One bar, as www.gane.ai's (gane-website-v2 Header.tsx in its white state: h-20 row, h-16 logo, mono 11px triggers, 8px buttons) */
/* Full width in the page's own ground, flat at the top of the page; the rule and the shadow come in once the page scrolls
   (.scrolled, set by the bar's script). The ground and the rule run edge to edge as layers behind the row, so the row stays
   on the page's column (the bar is centered in .shell, so 50% less half the window is the window's left edge); the page clips
   the scrollbar's width they can overrun (overflow-x: clip, which keeps the bar sticky). */
html { overflow-x: clip; }
.gx-head { position: sticky; top: 0; z-index: 60; background: var(--color-bg, #fff); }
.gx-head::before { content: ""; position: absolute; top: 0; bottom: 0; left: calc(50% - 50vw); right: calc(50% - 50vw); background: var(--color-bg, #fff); z-index: -1; }
.gx-head::after { content: ""; position: absolute; left: calc(50% - 50vw); right: calc(50% - 50vw); bottom: -1px; height: 1px; background: #EAECF0;
  box-shadow: 0 1px 3px rgba(16,24,40,.1), 0 1px 2px rgba(16,24,40,.06); opacity: 0; transition: opacity .2s; pointer-events: none; }
.gx-head.scrolled::after, .gx-head.open::after { opacity: 1; }
.gx-row { display: flex; align-items: center; height: 80px; }
.gx-logo { display: flex; align-items: center; border: 0; text-decoration: none; flex: none; }
.gx-logo img { height: 64px; width: auto; display: block; }
.gx-div { width: 1px; height: 28px; background: #EAECF0; margin: 0 18px; flex: none; }
/* The INDEX badge opens the area menu (publisher.area_switcher): the Index home and the four areas, as gane.ai's dropdown rows */
.gx-area { position: relative; flex: none; margin-right: 32px; }
.gx-sec { display: inline-flex; align-items: center; gap: 8px; font: 600 11px/1 "JetBrains Mono", ui-monospace, monospace; letter-spacing: .2em;
  text-transform: uppercase; color: #4c1be0; background: rgba(76,27,224,.08); border-radius: 6px; padding: 7px 9px 7px 11px; border: 0; cursor: pointer; }
.gx-sec:hover, .gx-area.open .gx-sec { background: rgba(76,27,224,.14); }
.gx-here { color: #070057; padding-left: 8px; border-left: 1px solid rgba(76,27,224,.25); }
.gx-sec svg { transition: transform .2s; } .gx-area.open .gx-sec svg { transform: rotate(180deg); }
.gx-amenu { display: none; position: absolute; top: calc(100% + 14px); left: 0; width: 340px; padding: 12px; background: #fff;
  border: 1px solid #EAECF0; border-radius: 12px; box-shadow: 0 12px 16px -4px rgba(16,24,40,.08), 0 4px 6px -2px rgba(16,24,40,.03); z-index: 70; }
.gx-area.open .gx-amenu { display: block; }
.gx-alabel { font: 400 11px/1 "JetBrains Mono", ui-monospace, monospace; letter-spacing: .25em; text-transform: uppercase; color: #98A2B3; padding: 8px 12px 10px; }
.gx-amenu a { display: block; padding: 10px 12px; border-radius: 12px; text-decoration: none; border: 0; }
.gx-amenu a:hover { background: #F9FAFB; }
.gx-amenu a[aria-current] { background: rgba(76,27,224,.06); }
.gx-amenu b { display: block; font: 600 14px/20px var(--font-body, "DM Sans", sans-serif); color: #070057; }
.gx-amenu a[aria-current] b { color: #4c1be0; }
.gx-amenu span { display: block; font: 400 12px/18px var(--font-body, "DM Sans", sans-serif); color: #667085; }
.gx-amenu a:first-of-type { border-bottom: 1px solid #EAECF0; border-radius: 12px 12px 0 0; margin-bottom: 4px; }
.gx-nav { display: flex; align-items: center; gap: 28px; }
.gx-nav a, .gx-drawer a { font: 400 11px/16.5px "JetBrains Mono", ui-monospace, monospace; letter-spacing: .1em; text-transform: uppercase; color: #070057;
  text-decoration: none; border: 0; white-space: nowrap; transition: color .3s; }
.gx-nav a:hover, .gx-nav a[aria-current] { color: #4c1be0; }
.gx-act { margin-left: auto; min-width: 0; display: flex; align-items: center; gap: 12px; padding-left: 24px; }
.gx-act .head-search { flex: 0 1 220px; min-width: 150px; }
.gx-act .head-search .search-input { height: 37px; font-size: 14px; border-radius: 8px; }
.gx-btn { display: inline-flex; align-items: center; padding: 10px 20px; border-radius: 8px; font: 600 11px/16.5px "JetBrains Mono", ui-monospace, monospace;
  letter-spacing: .1em; text-transform: uppercase; text-decoration: none; white-space: nowrap; border: 0; transition: background .2s; }
.gx-btn.cta { background: #1dd9f0; color: #03002a; }
.gx-btn.cta:hover { background: #5ee6f5; }
.gx-menu { display: none; width: 40px; height: 40px; padding: 0; background: none; border: 0; cursor: pointer; position: relative; }
.gx-menu span, .gx-menu span::before, .gx-menu span::after { position: absolute; left: 10px; width: 20px; height: 2px; border-radius: 2px; background: #070057; content: ""; }
.gx-menu span { top: 19px; } .gx-menu span::before { left: 0; top: -6px; } .gx-menu span::after { left: 0; top: 6px; }
.gx-drawer { display: none; }
@media (max-width: 1240px) { .gx-act .head-search { display: none; } }
@media (max-width: 1023px) {
  .gx-nav { display: none; }
  .gx-menu { display: block; }
  .gx-head.open .gx-drawer { display: flex; flex-direction: column; padding: 8px 0 16px; border-top: 1px solid #EAECF0; }
  .gx-drawer a { padding: 12px 0; border-bottom: 1px solid #EAECF0; }
}
@media (max-width: 560px) { .gx-logo img { height: 48px; } .gx-div { margin: 0 12px; } .gx-area { margin-right: 12px; position: static; }
  .gx-amenu { left: 16px; right: 16px; width: auto; top: 72px; } .gx-sec { letter-spacing: .12em; } .gx-btn.cta { padding: 9px 12px; } .gx-act { padding-left: 8px; gap: 8px; } }
/* Phones: the logo crops to its mark (x 102 to 407 of the logo's 1210 by 506 box) so the area menu, the call to action and
   the menu button fit in 343 pixels */
@media (max-width: 480px) { .gx-logo { width: 36px; overflow: hidden; } .gx-logo img { height: 56px; max-width: none; margin-left: -10px; }
  .gx-div { display: none; } .gx-area { margin: 0 0 0 10px; } .gx-sec { gap: 6px; padding: 7px 7px 7px 9px; letter-spacing: .08em; }
  .gx-sec.in-area .gx-idx { display: none; } .gx-sec.in-area .gx-here { padding-left: 0; border-left: 0; } .gx-btn.cta { padding: 9px 10px; letter-spacing: .05em; } .gx-act { gap: 4px; padding-left: 6px; } }

/* Gane footer, as www.gane.ai's (Footer.tsx) */
.gx-foot { position: relative; overflow: hidden; margin: 48px calc(-1 * var(--pad, 24px)) 0; padding: 0 var(--pad, 24px); background: #03002a; color: #fff;
  border-top: 1px solid rgba(29,217,240,.2); box-shadow: 0 0 0 100vmax #03002a; clip-path: inset(0 -100vmax); }
.gx-foot::before { content: ""; position: absolute; inset: 0; pointer-events: none; opacity: .12; background-size: 64px 64px;
  background-image: linear-gradient(to right, rgba(29,217,240,.06) 1px, transparent 1px), linear-gradient(to bottom, rgba(29,217,240,.04) 1px, transparent 1px);
  -webkit-mask-image: linear-gradient(180deg, black, transparent 90%); mask-image: linear-gradient(180deg, black, transparent 90%); }
.gx-fin { position: relative; z-index: 1; padding: 96px 0; }
.gx-fgrid { display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); gap: 48px; margin-bottom: 96px; }
.gx-foot h6 { margin: 0 0 24px; font: 400 11px/16.5px "JetBrains Mono", ui-monospace, monospace; letter-spacing: .25em; text-transform: uppercase; color: rgba(29,217,240,.7); }
.gx-foot ul { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 16px; }
.gx-foot ul a { font-size: 14px; line-height: 1.4; color: rgba(255,255,255,.5); text-decoration: none; border: 0; transition: color .2s; }
.gx-foot ul a:hover, .gx-li:hover { color: #1dd9f0; }
.gx-fbot { padding-top: 48px; border-top: 1px solid rgba(255,255,255,.1); }
.gx-fbar { display: flex; justify-content: space-between; align-items: center; gap: 24px; }
.gx-fbrand { display: flex; flex-direction: column; align-items: flex-start; gap: 24px; }
.gx-fbrand a { border: 0; } .gx-fbrand img { height: 40px; width: auto; display: block; }
.gx-fbrand span { font: 400 11px/16.5px "JetBrains Mono", ui-monospace, monospace; letter-spacing: .1em; text-transform: uppercase; color: rgba(255,255,255,.5); }
.gx-li { color: rgba(255,255,255,.5); border: 0; } .gx-li svg { display: block; }
.gx-foot .fnote { margin: 32px 0 0; max-width: 90ch; font-size: 13px; line-height: 1.55; color: rgba(255,255,255,.45); }
.gx-foot .fnote a { color: rgba(255,255,255,.7); text-decoration: underline; border: 0; }
.gx-copy { margin: 48px 0 0; font: 400 11px/16.5px "JetBrains Mono", ui-monospace, monospace; letter-spacing: .1em; text-transform: uppercase; color: rgba(255,255,255,.35); }
@media (max-width: 1279px) { .gx-fgrid { gap: 48px 32px; } }
@media (max-width: 1023px) { .gx-fgrid { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 48px; } }
@media (max-width: 767px) {
  .gx-fgrid { grid-template-columns: repeat(2, minmax(0, 1fr)); margin-bottom: 64px; } .gx-fin { padding: 64px 0; }
  .gx-fbar { flex-direction: column; align-items: center; gap: 24px; } .gx-fbrand { align-items: center; } .gx-fbrand img { height: 32px; } .gx-copy { text-align: center; }
}

/* The buyer's vendor page (render_vendor_buyer; Pete's wireframes, David, 4 November 2026). In the Index's own style: hairlines, square corners, mono labels. */
.bp-hero { display: grid; grid-template-columns: minmax(0, 1fr) 400px; gap: 40px; padding: 30px 0 24px; align-items: start; }
.bp-hero h1 { font-family: var(--font-heading); font-weight: 800; font-size: clamp(34px, 4.4vw, 52px); line-height: 1; letter-spacing: -0.025em; margin: 12px 0 8px; }
.bp-sub { margin: 0 0 4px; color: var(--color-neutral-700); font-size: 15px; }
.bp-sub a { color: var(--color-accent-700); }
.bp-stats { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.bp-claim { border: 1px solid var(--color-divider); background: var(--color-surface); padding: 20px 22px; }
.bp-claim-who { font-size: 13px; color: var(--color-neutral-700); }
.bp-claim h2 { font-family: var(--font-heading); font-weight: 800; font-size: 19px; line-height: 1.22; letter-spacing: -0.01em; margin: 4px 0 12px; text-wrap: balance; }
.bp-ticks { list-style: none; margin: 0 0 16px; padding: 0; display: grid; gap: 6px; font-size: 13.5px; }
.bp-ticks li { padding-left: 20px; position: relative; }
.bp-ticks li::before { content: "✓"; position: absolute; left: 0; color: var(--color-accent-700); font-weight: 700; }
.bp-claim-go { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 12px; font-size: 12.5px; color: var(--color-neutral-700); }
.bp-small { margin: 10px 0 0; font-size: 12px; color: var(--color-neutral-700); }
.bp-price { font-family: var(--font-heading); font-weight: 800; font-size: 26px; letter-spacing: -0.02em; margin: 8px 0 4px; }
.bp-claim.is-claimed p { margin: 6px 0 12px; font-size: 14px; }
.bp-claim-btns { display: grid; gap: 8px; margin-top: 10px; }
.bp-claim-btns .btn { text-align: center; justify-content: center; }
.bp-more { display: flex; flex-wrap: wrap; gap: 6px 14px; margin-top: 12px; font-size: 13px; }
.bp-more a { color: var(--color-accent-700); }
.bp-in { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; padding-bottom: 24px; border-bottom: 2px solid var(--color-text); }
.bp-chip { display: inline-flex; gap: 8px; align-items: baseline; padding: 5px 10px; border: 1px solid var(--color-divider); font-size: 13px; font-weight: 600; color: var(--color-text); text-decoration: none; }
.bp-chip:hover { border-color: var(--color-accent-700); }
.bp-chip span { font-family: var(--font-mono); font-size: 11px; font-weight: 400; color: var(--color-accent-700); }
.bp-standing { padding: 28px 0 8px; }
.bp-standing h2 { font-family: var(--font-heading); font-weight: 800; font-size: clamp(22px, 2.6vw, 30px); line-height: 1.12; letter-spacing: -0.02em; margin: 8px 0 6px; text-wrap: balance; }
.bp-lede { margin: 0 0 14px; font-size: 14.5px; color: var(--color-neutral-700); max-width: 62ch; }
.bp-segs { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; }
.bp-segs[data-n="1"] { grid-template-columns: minmax(0, 420px); }
.bp-seg { display: block; border: 1px solid var(--color-divider); padding: 14px 16px; color: inherit; text-decoration: none; }
.bp-seg:hover { border-color: var(--color-accent-700); }
.bp-seg.on { border: 2px solid var(--color-accent-700); padding: 13px 15px; background: var(--color-accent-100); }
.bp-seg-head { display: flex; justify-content: space-between; align-items: center; gap: 8px; }
.bp-strong { font-family: var(--font-mono); font-size: 10.5px; letter-spacing: 0.08em; text-transform: uppercase; color: var(--color-accent-700); }
.bp-seg-who { font-size: 12.5px; color: var(--color-neutral-700); margin-top: 2px; }
.bp-rank { margin: 10px 0 6px; font-size: 13px; color: var(--color-neutral-700); }
.bp-rank b { font-family: var(--font-heading); font-weight: 800; font-size: 32px; letter-spacing: -0.02em; color: var(--color-accent-700); }
.bp-rank b.muted { font-size: 20px; color: var(--color-neutral-700); }
.bp-share { display: flex; justify-content: space-between; font-size: 12.5px; color: var(--color-neutral-700); margin-bottom: 4px; }
.bp-share .num { color: var(--color-text); font-weight: 600; }
.bp-seg p { margin: 10px 0 0; font-size: 13.5px; line-height: 1.4; }
.bp-cols { display: grid; grid-template-columns: minmax(0, 1fr) 300px; gap: 32px; padding-top: 20px; align-items: start; }
.bp-main, .bp-rail { display: grid; gap: 28px; min-width: 0; }
.bp-card { border-top: 2px solid var(--color-text); padding-top: 12px; min-width: 0; }
.bp-card h2, .bp-how h2 { font-family: var(--font-heading); font-weight: 800; font-size: 19px; letter-spacing: -0.01em; margin: 0 0 8px; }
.bp-card-head { display: flex; justify-content: space-between; gap: 10px; align-items: baseline; flex-wrap: wrap; }
.bp-tag { font-family: var(--font-mono); font-size: 10.5px; letter-spacing: 0.04em; padding: 2px 7px; color: var(--color-accent-700); background: var(--color-accent-100); white-space: nowrap; }
.bp-tag-v { color: var(--color-neutral-800); background: var(--color-neutral-200); }
.bp-q { margin: 0; padding: 11px 0; border-bottom: 1px solid var(--color-divider); font-size: 15px; line-height: 1.42; }
.bp-q:last-child { border-bottom: 0; }
.bp-q span { display: block; margin-top: 4px; font-size: 12px; color: var(--color-neutral-700); }
.bp-table td, .bp-table th { font-size: 13.5px; }
.bp-prod { display: flex; align-items: center; gap: 8px; font-weight: 600; }
.bp-table td { vertical-align: middle; }
.bp-go { white-space: nowrap; }
.bp-facts { margin: 8px 0 12px; display: grid; gap: 10px; }
.bp-fact dt { font-size: 12px; color: var(--color-neutral-700); }
.bp-fact dd { margin: 1px 0 0; font-size: 14px; font-weight: 500; overflow-wrap: anywhere; }
.bp-fact em { display: block; font-style: normal; font-size: 11.5px; font-weight: 400; color: var(--color-neutral-700); }
.bp-out { font-size: 13.5px; color: var(--color-accent-700); }
.bp-follow label { display: block; font-size: 12px; margin: 8px 0 4px; }
.bp-follow .nrow { display: flex; gap: 8px; }
.bp-follow .input { min-width: 0; flex: 1; }
.bp-how { background: #070057; color: #fff; padding: 16px 18px; font-size: 13.5px; line-height: 1.45; }
.bp-how h2 { color: #fff; }
.bp-how p { margin: 0 0 8px; }
.bp-how-small { font-size: 12px; opacity: 0.82; }
.bp-how a { color: #1dd9f0; }
@media (max-width: 900px) {
  .bp-hero, .bp-cols { grid-template-columns: minmax(0, 1fr); gap: 24px; }
  .bp-segs { grid-template-columns: minmax(0, 1fr); }
}
@media (max-width: 520px) { .bp-stats { grid-template-columns: repeat(2, minmax(0, 1fr)); } .bp-stats .vstat:nth-child(3) { border-left: 0; padding-left: 0; } }
.bp-more-cats { display: contents; }
.bp-more-cats summary { cursor: pointer; font-size: 13px; color: var(--color-accent-700); list-style: none; padding: 5px 2px; }
.bp-more-cats summary::-webkit-details-marker { display: none; }
.bp-more-cats div { display: flex; flex-wrap: wrap; gap: 8px; flex-basis: 100%; }
@media (max-width: 520px) {
  .bp-table td, .bp-table th { font-size: 12.5px; padding-left: 4px; padding-right: 4px; letter-spacing: 0; }
  .bp-table th { font-size: 10.5px; }
  .bp-prod img, .bp-prod .pmark, .bp-prod .vtile { display: none; }
}
.bp-cols + .block { margin-top: 32px; }
.bp-cols ~ .block .sec-head h2 { font-size: 22px; line-height: 1.2; letter-spacing: -0.015em; }

/* The record's sections under the buyer's page: closed, the data still in the page. */
.bp-fold { border-top: 1px solid var(--color-divider); }
.bp-fold:first-of-type { margin-top: 32px; }
.bp-fold:last-of-type { border-bottom: 1px solid var(--color-divider); }
.bp-fold > summary { display: flex; align-items: center; gap: 12px; padding: 18px 0; cursor: pointer; list-style: none; }
.bp-fold > summary::-webkit-details-marker { display: none; }
.bp-fold > summary h2 { margin: 0; font-family: var(--font-heading); font-weight: 800; font-size: 20px; line-height: 1.25; letter-spacing: -0.01em; }
.bp-fold > summary::after { content: "+"; margin-left: auto; font: 400 20px/1 "JetBrains Mono", ui-monospace, monospace; color: var(--color-neutral-600); }
.bp-fold[open] > summary::after { content: "\2212"; }
.bp-fold > summary:hover h2, .bp-fold > summary:focus-visible h2 { color: var(--color-accent-700); }
.bp-fold > .block, .bp-fold > .rule-top { border-top: 0; margin: 0; padding: 0 0 24px; }
