:root {
  color-scheme: dark;
  --font: Verdana, Arial, sans-serif;
  --bg: #0c0d14;
  --surface: #14151f;
  --raised: #1a1b29;
  --ink: #e7e5f1;
  --text: #bbb9cf;
  --muted: #a09bb7;
  --dim: #928ca8;
  --aqua: #b59cf8;
  --aqua-soft: #c9b7f9;
  --line: #2b2b3f;
  --line-strong: #484563;
  --method-color: #d2b3ff;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; scroll-padding-top: 92px; }
body { margin: 0; min-width: 300px; background: var(--bg); color: var(--text); font: 14px/1.75 var(--font); -webkit-font-smoothing: antialiased; }
main { min-width: 0; }
button, input, select, textarea, table, code, pre, svg text { font-family: var(--font); }
button, input, select, textarea { font-size: 14px; }
button { cursor: pointer; }
button:disabled { cursor: not-allowed; }
a { color: var(--aqua-soft); text-decoration-thickness: 1px; text-underline-offset: 4px; }
a:hover { color: var(--aqua); }
button, a, input, select, summary { outline-offset: 5px; -webkit-tap-highlight-color: transparent; }
:focus-visible { outline: 2px solid var(--aqua); }
img { max-width: 100%; height: auto; }
svg { max-width: 100%; }
[hidden] { display: none !important; }
h1, h2, h3, h4, p { margin: 0; }
h1, h2, h3, h4 { color: var(--ink); font-family: var(--font); font-style: normal; font-weight: 500; }
h1 { font-size: 38px; letter-spacing: -1.1px; line-height: 1.2; }
h2 { font-size: 28px; letter-spacing: -.65px; line-height: 1.35; }
h3 { font-size: 22px; line-height: 1.45; letter-spacing: -.3px; }
h4 { font-size: 18px; line-height: 1.5; }
h1 em, h2 em, h3 em, h4 em { font-style: normal; }
strong, b { font-weight: 600; color: var(--ink); }
p + p { margin-top: 13px; }
ul, ol { padding-left: 21px; }
li + li { margin-top: 7px; }
small { font-size: 13px; }
.wrap { width: min(1180px, calc(100% - 80px)); margin-inline: auto; min-width: 0; }
.skip { position: fixed; top: 14px; left: -9999px; z-index: 100; background: var(--aqua); color: var(--bg); padding: 13px 17px; font-size: 14px; }
.skip:focus { left: 20px; }
.sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; border: 0; }

/* Shared navigation. */
.site-header { position: sticky; top: 0; z-index: 40; background: rgb(12 13 20 / 97%); border-bottom: 1px solid var(--line); backdrop-filter: blur(14px); }
.nav-wrap { min-height: 82px; display: flex; align-items: center; gap: 26px; position: relative; }
.brand { display: inline-flex; align-items: center; gap: 10px; flex-shrink: 0; color: var(--ink); text-decoration: none; font: 600 23px/1.2 var(--font); letter-spacing: -.6px; }
.brand:hover { color: var(--ink); }
.brand img { width: 32px; height: 32px; object-fit: contain; }
.brand small { display: block; color: var(--muted); font: 400 13px/1.5 var(--font); letter-spacing: 0; margin-top: 4px; }
.site-header nav { display: flex; align-items: center; gap: 21px; margin-left: auto; }
.site-header nav a { display: block; padding: 28px 0; color: #a6a4b2; text-decoration: none; font-size: 13px; white-space: nowrap; }
.site-header nav a:hover, .site-header nav a[aria-current='page'], .site-header nav a.active { color: var(--ink); }
.site-header nav a[aria-current='page'] { position: relative; }
.site-header nav a[aria-current='page']::after { content: ''; position: absolute; height: 1px; bottom: 21px; left: 0; right: 0; background: var(--aqua); }
.nav-cta { display: inline-flex; align-items: center; justify-content: center; flex-shrink: 0; padding: 9px 13px; border: 1px solid #5b5776; border-radius: 3px; color: var(--aqua-soft); text-decoration: none; font-size: 13px; line-height: 1.5; }
.nav-cta:hover { border-color: var(--aqua); color: var(--aqua); background: #121119; }
.menu-toggle { display: none; background: transparent; border: 1px solid var(--line-strong); border-radius: 3px; color: var(--text); padding: 8px 11px; font-size: 13px; }
.release-bar { color: var(--muted); border-bottom: 1px solid var(--line); font-size: 13px; }
.release-bar > .wrap { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center; gap: 5px 20px; padding-block: 8px; }
.status-dot { display: inline-block; width: 5px; height: 5px; background: var(--aqua); border-radius: 50%; margin-right: 8px; vertical-align: 1px; }
.eyebrow { font-size: 13px; line-height: 1.6; font-weight: 400; text-transform: uppercase; letter-spacing: 1px; color: var(--aqua-soft); margin-bottom: 16px; }
.button { display: inline-flex; align-items: center; justify-content: center; gap: 13px; padding: 11px 17px; border: 1px solid var(--line-strong); border-radius: 3px; text-decoration: none; font-size: 13px; line-height: 1.5; font-weight: 400; color: var(--ink); background: transparent; }
.button.primary { background: var(--aqua); border-color: var(--aqua); color: #100f16; }
.button.primary:hover { background: #a39fc0; border-color: #a39fc0; color: #100f16; }
.button.secondary:hover { color: var(--aqua); border-color: #706b90; background: #111018; }
.button.disabled, .button:disabled { color: #918f9f; border-color: #3a3848; background: #100f17; }
.button small, .button span { font-size: 13px; }
.text-link { display: inline-flex; gap: 9px; align-items: center; color: var(--aqua-soft); text-decoration: none; font-size: 13px; font-weight: 400; line-height: 1.7; }
.text-link:hover { color: var(--aqua); text-decoration: underline; }
button.text-link { border: 0; padding: 0; background: transparent; }
.badge { display: inline-flex; align-items: center; width: fit-content; border: 1px solid #3f3d4f; border-radius: 3px; padding: 3px 7px; font-size: 13px; line-height: 1.6; font-weight: 400; color: #b0aec0; background: #100f18; white-space: nowrap; }
.badge.teal { color: #b4b0cc; background: #12111a; border-color: #413c5d; }
.badge.blue { color: #bcbace; background: #14131d; border-color: #464358; }
.badge.amber { color: #d1c28e; background: #201f12; border-color: #5b5534; }
.badge.muted { color: #9b99ab; background: #100f16; border-color: #3b3949; }
.new-badge { display: inline-flex; align-items: center; margin-left: 9px; padding: 2px 7px; border: 1px solid #775073; border-radius: 3px; background: #2b1630; color: #f0b9ed; font-size: 13px; font-weight: 400; line-height: 1.5; vertical-align: middle; letter-spacing: 0; }

/* Home and scenario navigation. */
.home-hero { padding: 58px 0 53px; border-bottom: 1px solid var(--line); }
.hero-grid { display: grid; grid-template-columns: 1.2fr 1fr; gap: 69px; align-items: center; }
.home-hero h1 { font-size: 42px; line-height: 1.17; letter-spacing: -1.2px; }
.home-hero h1 em { color: var(--aqua-soft); font-style: normal; }
p.hero-copy { margin-top: 21px; max-width: 560px; color: #aeacba; font-size: 14px; line-height: 1.85; }
.hero-actions { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 25px; }
.hero-note { font-size: 13px; color: var(--muted); margin-top: 16px; }
.launch-window { padding: 24px; border: 1px solid #353343; border-radius: 3px; background: #0c0b12; min-width: 0; }
.window-head { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 9px 13px; color: #a4a1b5; font-size: 13px; letter-spacing: .25px; }
.launch-window > h2 { font-size: 26px; line-height: 1.3; margin-top: 22px; }
.window-scale { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 7px; margin: 25px 0 21px; }
.window-day { position: relative; padding: 10px 3px; border: 1px solid #312f41; text-align: center; color: #9f9db1; min-height: 77px; border-radius: 2px; }
.window-day strong { display: block; color: #c6c4d2; font: 400 24px/1.5 var(--font); }
.window-day small { font-size: 13px; line-height: 1.4; display: block; }
.window-day:first-child { border-color: #56507b; background: #14131c; }
.window-day:first-child strong { color: var(--aqua); }
.launch-point { position: absolute; width: 5px; height: 5px; border-radius: 50%; background: var(--aqua); top: -3px; left: calc(50% - 2.5px); }
.signal-chips { display: flex; flex-wrap: wrap; gap: 8px; border-top: 1px solid #2c2a3a; padding-top: 16px; }
.signal-chips span { border: 1px solid #383646; border-radius: 2px; padding: 4px 7px; font-size: 13px; color: #a3a0b7; }
.launch-window > p { color: #aaa7b8; font-size: 14px; line-height: 1.8; margin-top: 18px; }
.launch-window > p b { color: #c8c6d4; font-weight: 400; }
.illustration-note { display: block; font-size: 13px; line-height: 1.6; color: var(--dim); margin-top: 13px; }
.section { padding-block: 39px 5px; }
.section:last-child { padding-bottom: 45px; }
.section-heading { display: flex; align-items: flex-end; justify-content: space-between; gap: 24px; margin-bottom: 22px; }
.section-heading .eyebrow { margin-bottom: 10px; }
.section-heading p:not(.eyebrow) { color: var(--muted); font-size: 14px; line-height: 1.8; margin-top: 12px; max-width: 800px; }
.section-heading > .text-link { flex-shrink: 0; font-size: 13px; }
.section > p { font-size: 14px; color: var(--muted); margin-bottom: 20px; }
.scenario-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 18px; }
.scenario-card { display: flex; flex-direction: column; padding: 24px; text-decoration: none; color: inherit; border: 1px solid #343241; background: #0c0b11; border-radius: 3px; transition: border-color .15s; }
.scenario-card:hover { color: inherit; border-color: #6e698c; }
.line-icon { color: #aba7c6; font-size: 24px; line-height: 1; margin-bottom: 20px; display: inline-flex; align-items: center; width: 30px; height: 30px; }
.card-kicker { color: #a2a0b4; font-size: 13px; letter-spacing: .5px; text-transform: uppercase; margin-bottom: 13px; }
.scenario-card h3 { color: #d3d1de; font: 400 24px/1.3 var(--font); margin-bottom: 13px; letter-spacing: -.6px; }
.scenario-card p { font-size: 14px; color: var(--muted); line-height: 1.8; }
.card-link { display: block; color: var(--aqua-soft); font-size: 13px; padding-top: 21px; margin-top: auto; }
.scenario-foot { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 9px 20px; font-size: 13px; color: var(--muted); padding-top: 16px; }
.scenario-foot b { color: #bab7c8; font-weight: 400; }

/* Industry strip: equal-width duplicate runs make the rightward loop seamless. */
.industry-section { margin-top: 37px; padding-block: 30px; border-block: 1px solid #282636; background: #0b0a0f; }
.ticker-heading { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 13px 24px; margin-bottom: 19px; }
.ticker-heading h2 { font-size: 28px; }
.ticker-heading p { color: var(--muted); font-size: 14px; margin-top: 10px; }
#industry-motion-toggle { flex-shrink: 0; font-size: 13px; }
.industry-ticker { min-width: 0; width: 100%; }
.ticker-window { width: 100%; overflow: hidden; padding-block: 3px; }
.ticker-track { display: flex; align-items: stretch; width: max-content; gap: 0; animation: industry-drift-right 60s linear infinite; will-change: transform; }
.ticker-group { display: flex; flex-shrink: 0; align-items: stretch; gap: 14px; padding-right: 14px; }
.ticker-track > .industry-chip { margin-right: 14px; }
.industry-chip { flex-shrink: 0; display: flex; align-items: center; gap: 13px; width: 265px; min-height: 89px; padding: 17px 19px; border: 1px solid #383648; border-radius: 3px; background: #0f0e15; color: #c4c1d2; text-decoration: none; }
.industry-chip:hover { border-color: #6e6a86; color: #d6d4e1; }
.industry-icon { display: inline-flex; align-items: center; justify-content: center; flex-shrink: 0; width: 32px; height: 32px; font-size: 24px; color: #b9b0dc; }
.industry-icon svg { display: block; width: 28px; height: 28px; }
.ticker-copy { display: block; min-width: 0; font-size: 14px; line-height: 1.5; }
.ticker-copy strong { display: block; color: #d4d3de; font-size: 14px; font-weight: 400; }
.ticker-copy small { display: block; font-size: 13px; color: #9996a9; line-height: 1.55; margin-top: 5px; }
.industry-ticker:hover .ticker-track, .industry-ticker:focus-within .ticker-track,
.ticker-window:hover .ticker-track, .ticker-window:focus-within .ticker-track,
.industry-ticker.is-paused .ticker-track, .ticker-window.is-paused .ticker-track, .ticker-track.is-paused { animation-play-state: paused; }
@keyframes industry-drift-right { from { transform: translateX(-50%); } to { transform: translateX(0); } }
/* Older application markup remains usable while a release is being rebuilt. */
.industry-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 23px; }
.industry-card { min-width: 0; border-left: 1px solid #3f3d4e; padding: 3px 16px; color: var(--muted); font-size: 14px; }
.industry-card .card-kicker { display: block; font-size: 13px; }
.industry-card h3 { font-size: 18px; margin: 10px 0; color: #cac8d6; }
.industry-card p { font-size: 14px; line-height: 1.8; }
.industry-card .badge { margin-top: 13px; white-space: normal; font-size: 13px; }
.industry-card details, .industry-card .text-link { font-size: 13px; margin-top: 13px; }
.industry-card summary { cursor: pointer; }
.industry-card details p { margin-top: 10px; }

/* News retains clear sources and compact disclosures. */
.news-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 22px; }
.news-card { display: flex; flex-direction: column; min-width: 0; border-top: 1px solid #474557; padding-top: 15px; }
.news-top { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 7px 13px; color: #a19fb1; font-size: 13px; line-height: 1.8; }
.news-body { padding-top: 15px; display: flex; flex-direction: column; flex: 1; }
.news-body h3 { font-size: 19px; line-height: 1.6; font-weight: 400; margin-bottom: 13px; color: #d3d2dc; }
.news-body p { font-size: 14px; color: #a2a0b0; line-height: 1.8; }
.news-body .news-scope { font-size: 13px; color: var(--muted); margin-top: 13px; }
.news-date { font-size: 13px; color: var(--dim); margin-top: 16px; }
.news-body .text-link { margin-top: auto; padding-top: 17px; font-size: 13px; }
.news-body > .row-details { margin-top: 13px; }
.news-body > .row-details p { font-size: 13px; }
.news-toolbar { margin: 8px 0 22px; display: flex; flex-wrap: wrap; gap: 15px; align-items: center; justify-content: space-between; }
.news-grid > .empty-state, .news-grid > .loading { grid-column: 1 / -1; }
.service-callout { margin-top: 41px; padding-block: 31px; border-top: 1px solid var(--line-strong); display: flex; align-items: center; justify-content: space-between; gap: 30px; }
.service-callout h2 { font-size: 28px; }
.service-callout p { font-size: 14px; max-width: 680px; margin-top: 14px; color: var(--muted); }
.service-callout > div:last-child { display: flex; flex-direction: column; align-items: flex-start; gap: 13px; }

/* Benchmark controls and source context. */
.compact-hero, .page-hero { padding: 31px 0 18px; }
.compact-hero h1, .page-hero h1 { font-size: 34px; letter-spacing: -.9px; line-height: 1.25; }
.compact-hero p:not(.eyebrow), .page-hero p.hero-copy { color: #a7a4b5; font-size: 14px; line-height: 1.8; max-width: 850px; margin-top: 13px; }
.compact-hero .eyebrow { font-size: 13px; margin-bottom: 11px; }
.hero-meta { display: flex; flex-wrap: wrap; gap: 9px 17px; align-items: center; margin-top: 17px; font-size: 13px; color: var(--muted); }
.workbench { padding-bottom: 34px; }
.filters { display: grid; grid-template-columns: 1.35fr 1fr 1fr auto; align-items: end; gap: 16px; margin: 5px 0 15px; padding: 14px 0 17px; border-block: 1px solid #322f40; }
.filters label { min-width: 0; display: flex; flex-direction: column; gap: 8px; color: #a9a7b9; font-size: 13px; letter-spacing: 0; }
.filters select, .context-toolbar select, .search input, .board-subtoolbar select, .news-toolbar select { min-width: 0; width: 100%; min-height: 40px; padding: 8px 11px; border: 1px solid #484558; border-radius: 3px; background: #111018; color: #c6c4d2; font-size: 13px; outline-offset: 3px; }
.filters select, .context-toolbar select { padding-right: 25px; }
.filters select:hover, .context-toolbar select:hover { border-color: #807c95; }
.reset-filters { border: 0; padding: 9px 0; background: transparent; color: #aca9c1; font-size: 13px; text-decoration: underline; text-underline-offset: 4px; white-space: nowrap; }
.context-toolbar { display: flex; justify-content: space-between; align-items: end; gap: 20px; margin: 14px 0 12px; }
.context-toolbar > label { display: flex; flex-direction: column; gap: 8px; min-width: 0; font-size: 13px; letter-spacing: 0; color: #a8a5b8; }
.context-toolbar > label:first-child { width: min(620px, 67%); }
.context-toolbar #context-select { font-size: 13px; min-height: 40px; }
.context-toolbar .check-label { display: inline-flex; flex-direction: row; align-items: center; width: auto; flex-shrink: 0; gap: 8px; padding-bottom: 9px; font-size: 13px; letter-spacing: 0; }
.check-label { display: inline-flex; align-items: center; gap: 8px; font-size: 13px; color: #a7a5b7; }
.check-label input { accent-color: var(--aqua); width: 14px; height: 14px; }
.context-toolbar > .search { width: 205px; flex-shrink: 0; }
.context-toolbar > .search input { width: 100%; min-width: 0; }
.context-summary { font-size: 14px; color: #c0becc; line-height: 1.75; margin: 11px 0 5px; max-width: 1050px; }
.context-summary strong { color: #d5d3df; font-weight: 400; }
.context-meta { color: #9b98ac; display: flex; flex-wrap: wrap; gap: 6px 16px; font-size: 13px; margin: 8px 0 12px; }
.filter-status, .chart-status { font-size: 13px; color: #9d9ab2; line-height: 1.8; }
.filter-status { margin: 9px 0 12px; }
.context-details { border-bottom: 1px solid #373545; padding: 6px 0 15px; margin-bottom: 17px; font-size: 13px; color: #a7a5b7; }
.context-details summary { cursor: pointer; color: #b9b6cf; font-size: 13px; width: fit-content; }
.context-details > div { margin-top: 15px; max-width: 1000px; }
.context-details p, .context-details li { font-size: 13px; line-height: 1.85; }
.context-details .source-list { margin-top: 13px; }
.source-list { display: flex; flex-wrap: wrap; gap: 10px 20px; margin-top: 15px; }
.source-list .text-link { font-size: 13px; }
.chart-section { margin-top: 21px; padding-top: 19px; border-top: 1px solid #302e3e; min-width: 0; }
.bar-section { margin-top: 14px; padding-top: 5px; border-top: 0; }
.chart-section .section-heading { margin-bottom: 16px; }
.chart-section .section-heading h2 { font-size: 28px; }
.chart-section .section-heading p { font-size: 14px; margin-top: 10px; color: #9e9cae; }
.chart-actions { margin-top: 9px; }
.chart-scroll { width: 100%; max-width: 100%; overflow-x: auto; overflow-y: hidden; -webkit-overflow-scrolling: touch; scrollbar-color: #56526d #0f0e16; scrollbar-width: thin; }
.chart-scroll > div { min-width: 0; }
.chart-svg { width: 100%; height: auto; display: block; max-width: none; overflow: visible; font-family: var(--font); }
.chart-svg text { font-family: var(--font); font-size: 13px; }
.chart-grid-line { stroke: #353243; stroke-width: 1; stroke-dasharray: 2 5; }
.chart-axis-line { stroke: #5c596c; stroke-width: 1; }
.chart-tick { fill: #aba9b9; font-size: 13px; }
.chart-axis-label { fill: #b6b4c6; font-size: 13px; }
.chart-value { fill: #e2d7ee; font-size: 14px; font-variant-numeric: tabular-nums; }
.chart-method-label { fill: #c2c1ce; font-size: 13px; }
.chart-bar, .chart-dot { fill: var(--method-color, #d2b3ff); }
.chart-dot { stroke: var(--bg); stroke-width: 1.5; }
.chart-bar[data-selected='true'], .chart-dot[data-selected='true'] { stroke: #ffe4ff; stroke-width: 2; }
.chart-hit-target { cursor: pointer; pointer-events: all; }
.chart-hit-target:hover { filter: brightness(1.1); stroke: #f3d5ff; stroke-width: 1; }
.chart-hit-target:focus, .chart-hit-target:focus-visible, .chart-hit-target[data-selected='true'] { outline: none; stroke: #f4ccff; stroke-width: 2; }
.chart-legend { display: flex; align-items: center; flex-wrap: wrap; gap: 13px 23px; margin: 18px 0 13px; }
.chart-legend-item { display: inline-flex; align-items: center; gap: 8px; font-size: 13px; color: #b6b4c4; }
.legend-swatch { display: inline-block; flex-shrink: 0; width: 10px; height: 10px; background: var(--method-color, #d2b3ff); border-radius: 2px; }
.chart-status { min-height: 29px; color: #b1aec5; margin: 13px 0; padding-left: 11px; border-left: 1px solid #615d7b; }

/* Plain tables, with overflow contained inside the table wrapper. */
.table-scroll { width: 100%; max-width: 100%; overflow-x: auto; -webkit-overflow-scrolling: touch; scrollbar-color: #56526d #0f0e16; scrollbar-width: thin; }
.compact-table, .result-table { width: 100%; border-collapse: collapse; text-align: left; font-size: 14px; line-height: 1.8; }
.compact-table th, .result-table th { color: #acaaba; font-size: 13px; font-weight: 400; letter-spacing: 0; padding: 13px 14px; border-bottom: 1px solid #514f60; background: transparent; vertical-align: bottom; white-space: nowrap; }
.compact-table td, .result-table td { padding: 15px 14px; border-bottom: 1px solid #322f40; color: #b8b6c6; font-size: 14px; vertical-align: top; }
.compact-table th:first-child, .compact-table td:first-child, .result-table th:first-child, .result-table td:first-child { padding-left: 0; }
.compact-table th:last-child, .compact-table td:last-child, .result-table th:last-child, .result-table td:last-child { padding-right: 0; }
.compact-table tbody tr:hover { background: #0e0d15; }
.compact-table .method-cell { min-width: 245px; color: #d1d0dd; }
.method-cell { display: flex; align-items: center; gap: 11px; }
td.method-cell { display: table-cell; }
.method-name { font-size: 14px; color: #d4d2de; }
.method-icon { flex-shrink: 0; display: inline-flex; width: 27px; height: 27px; align-items: center; justify-content: center; border: 1px solid #51505a; border-radius: 3px; background: #131318; color: var(--method-color, #d2b3ff); font: 400 13px var(--font); }
td.method-cell .method-icon { vertical-align: middle; margin-right: 10px; }
td.method-cell .method-name { vertical-align: middle; }
.compact-table .score-cell { color: #e2d4ef; font-size: 14px; font-variant-numeric: tabular-nums; white-space: nowrap; }
.compact-table .inputs-cell { color: #a8a6b8; font-size: 13px; min-width: 235px; max-width: 390px; }
.compact-table .source-cell { color: #a2a0b1; font-size: 13px; min-width: 135px; }
.compact-table .source-cell a { font-size: 13px; color: #b6b3cc; }
.compact-table small { font-size: 13px; color: #9b98ab; display: block; margin-top: 5px; }
.row-details { font-size: 13px; color: #a29fb3; max-width: 660px; }
.row-details summary { cursor: pointer; color: #c3c0d4; font-size: 13px; }
.row-details p { font-size: 13px; line-height: 1.85; margin-top: 12px; }
.row-details .source-list { margin-top: 13px; }
.fine-print { margin-top: 14px; font-size: 13px; color: #9592a8; line-height: 1.85; max-width: 1050px; }
.empty-state { border-top: 1px solid #3c3a4c; padding: 28px 0; color: #a8a6b6; }
.empty-state h3 { font: 400 24px/1.35 var(--font); margin: 10px 0 13px; color: #d1d0dc; }
.empty-state p { font-size: 14px; line-height: 1.85; max-width: 850px; }
.loading { font-size: 14px; color: #a2a0b1; padding: 25px 0; }
.note-box { color: #a7a5b6; font-size: 13px; line-height: 1.85; border-left: 1px solid #625f77; padding: 11px 17px; margin: 23px 0; max-width: 1050px; }
.note-box strong { font-weight: 400; color: #d2d0dc; }
.search input { min-width: 200px; width: auto; }
.segmented { display: flex; flex-wrap: wrap; gap: 6px 20px; }
.segmented button { border: 0; border-bottom: 1px solid transparent; color: #a3a1b5; background: transparent; padding: 10px 0; font-size: 13px; }
.segmented button[aria-pressed='true'] { color: #d5d3e2; border-bottom-color: var(--aqua); }
.segmented button:hover { color: var(--aqua-soft); }

/* Three-step service and methodology. */
.service-layout { display: grid; grid-template-columns: 1fr 1fr; align-items: center; gap: 52px; padding-top: 5px; padding-bottom: 16px; min-width: 0; }
.orbit-visual { min-width: 0; text-align: center; }
.orbit-visual picture { display: block; width: 100%; max-width: 540px; margin: auto; }
.orbit-visual picture img { display: block; width: 100%; height: auto; aspect-ratio: 1; object-fit: contain; margin: auto; }
.orbit-visual > .text-link, .orbit-visual #animation-toggle { margin-top: 8px; font-size: 13px; color: #adaabf; }
.service-steps { list-style: none; margin: 0; padding: 0; min-width: 0; }
.service-steps li { display: grid; grid-template-columns: 34px minmax(0, 1fr); column-gap: 17px; padding: 23px 0; border-bottom: 1px solid #363344; margin: 0; }
.service-steps li:last-child { border-bottom: 0; }
.service-steps .step-number, .service-steps .num, .service-steps .step-num, .service-steps li > span:first-child { color: #a3a0b8; font-size: 13px; line-height: 1.5; padding-top: 5px; }
.service-steps h2, .service-steps h3 { color: #d4d2df; font: 400 24px/1.35 var(--font); letter-spacing: -.5px; grid-column: 2; }
.service-steps p { color: #a9a7b9; font-size: 14px; line-height: 1.85; margin-top: 12px; max-width: 470px; grid-column: 2; }
.service-steps .badge { margin-top: 14px; grid-column: 2; }
.service-steps .text-link { margin-top: 12px; font-size: 13px; }
.service-bottom { border-top: 1px solid #3b3949; display: flex; flex-wrap: wrap; align-items: center; justify-content: flex-start; gap: 13px 18px; padding-block: 24px; margin-top: 12px; }
.service-bottom p { color: #a7a5b6; font-size: 13px; line-height: 1.85; max-width: 820px; }
.service-bottom p.fine-print { flex-basis: 100%; font-size: 13px; margin: 0; }
.service-bottom .button { flex-shrink: 0; }
.service-bottom .text-link { font-size: 13px; margin-top: 0; }
.service-notes { padding-top: 15px; }
.service-notes p { font-size: 13px; line-height: 1.85; color: #aaa7ba; max-width: 1050px; }

/* Compatibility for existing protocol disclosures and supplemental layouts. */
.two-column, .three-column { display: grid; gap: 24px; grid-template-columns: repeat(2, minmax(0, 1fr)); }
.three-column { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.panel, .padded { min-width: 0; }
.panel.padded { border-top: 1px solid #3c3a4c; padding-top: 20px; }
.panel.padded h3 { color: #cccbd8; font-size: 20px; margin-bottom: 13px; }
.panel.padded p { font-size: 14px; color: #a7a5b6; }
.contents { border-left: 1px solid #454256; padding-left: 18px; }
.contents a { display: block; color: #b7b4c9; font-size: 13px; padding-block: 6px; text-decoration: none; }
.contents > span { color: #9a97ab; font-size: 13px; display: block; margin-bottom: 13px; }
.methodology-layout { display: grid; grid-template-columns: 215px minmax(0, 1fr); gap: 42px; }
.methodology-copy > article { padding-bottom: 25px; margin-bottom: 25px; border-bottom: 1px solid #323042; }
.methodology-copy h2 { font-size: 28px; margin-bottom: 18px; }
.methodology-copy p, .methodology-copy li { font-size: 14px; color: #adabbb; line-height: 1.85; }
.definition-row { display: grid; grid-template-columns: 65px minmax(0, 1fr); gap: 16px; align-items: start; margin: 18px 0; }
.formula { border-left: 1px solid #635f7e; padding: 13px 18px; margin: 20px 0; color: #cdcbdc; }
.formula strong, .formula code, .formula small { display: block; font-family: var(--font); }
.formula strong { color: #d4d3e0; font-size: 14px; font-weight: 400; margin-bottom: 10px; }
.formula code { font-size: 14px; line-height: 1.85; overflow-wrap: anywhere; }
.formula small { margin-top: 11px; color: #a3a0b7; font-size: 13px; }

/* Minimal footer. */
.compact-footer { border-top: 1px solid #333142; margin-top: 36px; padding-block: 24px 29px; color: #9592a9; font-size: 13px; }
.compact-footer > .wrap { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 15px 27px; }
.compact-footer nav, .footer-links { display: flex; flex-wrap: wrap; gap: 10px 19px; }
.compact-footer a { font-size: 13px; color: #a9a6be; text-decoration: none; }
.compact-footer a:hover { color: var(--aqua); }
.compact-footer p, .compact-footer small, .compact-footer > .wrap > span { color: #9795a9; font-size: 13px; line-height: 1.8; }
.compact-footer .footer-brand { color: #cdcbdb; font-size: 15px; font-weight: 500; letter-spacing: -.2px; }
.site-footer { margin-top: 41px; border-top: 1px solid #333142; padding-block: 29px; color: #aaa7bd; }
.footer-grid { display: grid; grid-template-columns: 2fr 1fr 1fr 1.3fr; gap: 32px; }
.footer-grid strong { font-weight: 400; font-size: 14px; display: block; margin-bottom: 13px; }
.footer-grid a:not(.brand) { display: block; font-size: 13px; color: #a9a6bd; text-decoration: none; padding: 4px 0; }
.footer-grid p { font-size: 14px; margin-top: 14px; }
.footer-grid small { display: block; font-size: 13px; margin-top: 10px; color: #9491a7; }
.footer-bottom { display: flex; justify-content: space-between; flex-wrap: wrap; gap: 13px; margin-top: 25px; padding-top: 17px; border-top: 1px solid #302e40; font-size: 13px; color: #9491a7; }

@media (min-width: 1500px) {
  .home-hero { padding-top: 68px; padding-bottom: 62px; }
  .hero-grid { gap: 87px; }
}
@media (max-width: 1120px) {
  .nav-wrap { gap: 18px; }
  .site-header nav { gap: 16px; }
  .hero-grid { gap: 42px; }
  .service-layout { gap: 31px; }
  .context-toolbar > .search { width: 180px; }
}
@media (max-width: 1000px) {
  .wrap { width: calc(100% - 56px); }
  .nav-cta { display: none; }
  .site-header nav { gap: 15px; }
  .hero-grid { gap: 30px; }
  .launch-window { padding: 21px; }
  .window-head { font-size: 13px; }
  .context-toolbar { gap: 15px; }
  .context-toolbar > .search { width: 165px; }
}
@media (max-width: 900px) {
  .nav-wrap { min-height: 78px; justify-content: space-between; }
  .menu-toggle { display: inline-flex; align-items: center; gap: 7px; }
  .site-header nav { display: none; position: absolute; top: 78px; left: -28px; right: -28px; padding: 12px 28px 18px; background: #0c0b12; border-bottom: 1px solid #484559; margin: 0; box-shadow: 0 10px 20px rgb(0 0 0 / 15%); }
  .site-header nav.open, .site-header.open nav { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0 13px; }
  .site-header nav a { padding: 11px 10px; font-size: 13px; }
  .site-header nav a[aria-current='page'] { color: var(--aqua); }
  .site-header nav a[aria-current='page']::after { display: none; }
  .context-toolbar { flex-wrap: wrap; }
  .context-toolbar > label:first-child { flex: 1; width: auto; }
  .context-toolbar > .search { width: 100%; flex-basis: 100%; }
}
@media (max-width: 760px) {
  html { scroll-padding-top: 88px; }
  .wrap { width: calc(100% - 40px); }
  .site-header nav { left: -20px; right: -20px; padding-inline: 20px; }
  .brand { font-size: 22px; }
  .brand img { width: 30px; height: 30px; }
  .brand small { font-size: 13px; }
  .home-hero { padding: 35px 0 33px; }
  .hero-grid { grid-template-columns: 1fr; gap: 31px; }
  .home-hero h1 { font-size: 40px; }
  p.hero-copy { font-size: 14px; margin-top: 19px; }
  .hero-actions { margin-top: 23px; }
  .launch-window { width: 100%; max-width: 560px; padding: 23px; }
  .launch-window > h2 { font-size: 26px; }
  .section { padding-top: 31px; }
  .section-heading { gap: 16px; margin-bottom: 20px; align-items: flex-start; }
  .section-heading h2 { font-size: 26px; }
  .section-heading p:not(.eyebrow), .section-heading > .text-link { font-size: 13px; }
  .scenario-grid { grid-template-columns: 1fr; gap: 13px; }
  .scenario-card { padding: 22px; }
  .scenario-card h3 { font-size: 24px; }
  .industry-section { margin-top: 31px; padding-block: 26px; }
  .ticker-heading h2 { font-size: 26px; }
  .industry-chip { width: 250px; }
  .industry-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 23px 15px; }
  .news-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 24px 19px; }
  .news-grid .news-card:last-child:nth-child(3) { grid-column: 1 / -1; }
  .service-callout { display: block; margin-top: 31px; padding-block: 26px; }
  .service-callout h2 { font-size: 26px; }
  .service-callout > div:last-child, .service-callout > .button { margin-top: 23px; }
  .compact-hero, .page-hero { padding: 27px 0 17px; }
  .compact-hero h1, .page-hero h1 { font-size: 30px; }
  .compact-hero p:not(.eyebrow), .page-hero p.hero-copy { font-size: 14px; }
  .filters { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; padding-block: 13px; margin-bottom: 14px; }
  .reset-filters { justify-self: start; }
  .context-toolbar { gap: 15px; margin: 12px 0; }
  .context-toolbar .check-label { padding-top: 27px; padding-bottom: 0; font-size: 13px; }
  .chart-section { margin-top: 19px; padding-top: 17px; }
  .chart-section .section-heading h2 { font-size: 26px; }
  .bar-section { padding-top: 0; margin-top: 12px; }
  .chart-legend { gap: 12px 18px; margin-top: 15px; }
  .compact-table, .result-table { min-width: 790px; }
  .compact-table td, .result-table td { padding-block: 14px; }
  .service-layout { grid-template-columns: 1fr; gap: 13px; padding-top: 0; }
  .orbit-visual picture { max-width: 450px; }
  .orbit-visual > .text-link, .orbit-visual #animation-toggle { margin-top: 0; }
  .service-steps { margin-top: 6px; }
  .service-steps li { padding-block: 22px; grid-template-columns: 29px minmax(0, 1fr); column-gap: 15px; }
  .service-steps h2, .service-steps h3 { font-size: 24px; }
  .service-steps p { font-size: 14px; max-width: none; }
  .service-bottom { padding-block: 23px; }
  .two-column, .three-column { grid-template-columns: 1fr; gap: 22px; }
  .methodology-layout { grid-template-columns: 1fr; gap: 27px; }
  .contents { display: flex; flex-wrap: wrap; gap: 5px 18px; }
  .contents > span { flex-basis: 100%; }
  .methodology-copy h2 { font-size: 26px; }
  .compact-footer { margin-top: 29px; padding-top: 22px; }
  .compact-footer > .wrap { align-items: flex-start; gap: 14px; }
  .footer-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 25px 18px; }
  .footer-grid > div:first-child { grid-column: 1 / -1; }
}
@media (max-width: 440px) {
  .wrap { width: calc(100% - 32px); }
  .site-header nav { left: -16px; right: -16px; padding-inline: 16px; }
  .brand { gap: 8px; font-size: 21px; }
  .brand img { width: 27px; height: 27px; }
  .brand small { font-size: 13px; max-width: 215px; line-height: 1.4; }
  .menu-toggle { padding: 7px 9px; }
  .home-hero h1 { font-size: 36px; letter-spacing: -.7px; }
  .eyebrow { letter-spacing: .5px; }
  .hero-actions { gap: 10px; }
  .button { padding: 10px 14px; gap: 10px; }
  .launch-window { padding: 20px 17px; }
  .launch-window > h2 { font-size: 24px; }
  .window-head { font-size: 13px; }
  .window-scale { gap: 5px; }
  .window-day { min-height: 76px; padding: 9px 2px; }
  .window-day strong { font-size: 23px; }
  .window-day small { font-size: 13px; overflow-wrap: normal; }
  .section-heading { flex-wrap: wrap; }
  .section-heading h2, .ticker-heading h2 { font-size: 24px; }
  .section-heading > .text-link { margin-top: 0; }
  .scenario-card { padding: 20px 17px; }
  .industry-chip { width: 245px; padding-inline: 16px; }
  .industry-grid { grid-template-columns: 1fr; }
  .news-grid { grid-template-columns: 1fr; gap: 27px; }
  .news-grid .news-card:last-child:nth-child(3) { grid-column: auto; }
  .compact-hero h1, .page-hero h1 { font-size: 28px; }
  .filters { grid-template-columns: 1fr; gap: 13px; }
  .reset-filters { padding-block: 4px; }
  .context-toolbar { display: block; }
  .context-toolbar > label:first-child { width: 100%; }
  .context-toolbar .check-label { padding-top: 13px; }
  .context-toolbar > .search { width: 100%; margin-top: 13px; }
  .chart-section .section-heading { display: block; }
  .chart-section .section-heading h2 { font-size: 24px; }
  .chart-section .section-heading > .text-link { margin-top: 10px; }
  .chart-legend { gap: 11px 16px; }
  .compact-footer > .wrap { display: block; }
  .compact-footer nav, .compact-footer .footer-links { margin-top: 14px; }
  .compact-footer > .wrap > span { display: block; margin-top: 12px; }
  .orbit-visual picture { max-width: 360px; }
  .footer-bottom { display: block; }
  .footer-bottom > span { display: block; margin-top: 8px; }
}
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { animation-duration: .01ms !important; transition-duration: .01ms !important; }
  .ticker-track { animation: none !important; transform: none !important; width: 100%; flex-wrap: wrap; gap: 13px; will-change: auto; }
  .ticker-group { display: contents; padding: 0; }
  .ticker-track > .industry-chip { margin-right: 0; }
  .ticker-track [aria-hidden='true'], .ticker-track[aria-hidden='true'], .ticker-group[aria-hidden='true'] { display: none !important; }
  .industry-chip { flex: 1 1 240px; width: auto; }
}
@media print {
  :root { --bg: white; --ink: black; --text: #333; --muted: #555; --line: #ccc; color-scheme: light; }
  body { background: white; color: #333; }
  .site-header { position: static; }
  .site-header nav, .nav-cta, .menu-toggle, .compact-footer, .release-bar, .orbit-visual { display: none; }
  .wrap { width: 100%; }
  .table-scroll, .chart-scroll { overflow: visible; }
  .compact-table, .result-table { min-width: 0; }
  .service-layout { grid-template-columns: 1fr; }
  .ticker-track { animation: none; transform: none; width: 100%; flex-wrap: wrap; }
  .ticker-group { display: contents; }
  .ticker-group[aria-hidden='true'] { display: none; }
  h1, h2, h3, p { color: black !important; }
}

/* Current ticker and research-watch markup. */
.ticker-heading > .section-heading { margin-bottom: 0; }
.ticker-heading > .section-heading p { font-size: 14px; }
.venue-watch-list { display: flex; flex-wrap: wrap; gap: 13px; margin-top: 19px; }
.venue-watch-item { display: inline-flex; flex-wrap: wrap; align-items: center; gap: 9px 13px; padding: 11px 14px; border: 1px solid #3a3848; border-radius: 3px; background: #0e0d14; font-size: 13px; line-height: 1.7; }
.venue-watch-item .text-link { font-size: 13px; }
.venue-status { color: #a9a7b5; font-size: 13px; }
@media (max-width: 440px) {
  .venue-watch-item { width: 100%; }
  .ticker-heading { gap: 15px; }
}
.ticker-group { min-width: 100vw; justify-content: space-around; }
@media (prefers-reduced-motion: reduce) {
  .ticker-group { min-width: 0; }
}

/* Cold-start illustration: native, light and deliberately conceptual. */
.button.primary { color: #171020; }
.button.primary:hover { background: #cbb7ff; border-color: #cbb7ff; color: #171020; }
.coldstart-visual { border: 1px solid var(--line-strong); border-radius: 10px; padding: 22px; min-width: 0; background: linear-gradient(145deg,#181824,#11121b); box-shadow: 0 18px 55px #00000020; }
.visual-heading { display: flex; justify-content: space-between; align-items: center; gap: 12px; color: var(--muted); font-size: 13px; letter-spacing: .4px; }
.history-states { position: relative; display: inline-grid; text-align: right; color: var(--aqua-soft); }
.history-states > span { grid-area: 1/1; }
.history-zero { animation: history-zero 14s ease-in-out infinite; }
.history-few { animation: history-few 14s ease-in-out infinite; }
.visual-legend { display: flex; gap: 21px; flex-wrap: wrap; margin-top: 20px; font-size: 13px; color: var(--text); }
.visual-legend > span { display: inline-flex; align-items: center; gap: 7px; }
.visual-legend i { display: inline-block; width: 7px; height: 7px; border-radius: 50%; background: #b59cf8; }
.visual-legend > span:last-child i { background: #e783bd; }
.history-graph { display: block; width: 100%; height: auto; margin-top: 8px; overflow: visible; }
.history-grid { stroke: #303043; stroke-width: 1; stroke-dasharray: 2 7; fill: none; }
.history-axis { stroke: #45425b; stroke-width: 1; fill: none; }
.forecast-origin { stroke: #78708d; stroke-width: 1.5; stroke-dasharray: 4 6; }
.observed-history { animation: history-few 14s ease-in-out infinite; }
.history-line { fill: none; stroke: #b59cf8; stroke-width: 3; stroke-linejoin: round; stroke-dasharray: 1; animation: history-trace 14s ease-in-out infinite; }
.history-fill { fill: #b59cf817; }
.observed-history circle { fill: #cbb6ff; stroke: #191824; stroke-width: 2; }
.empty-history { animation: history-zero 14s ease-in-out infinite; }
.empty-history path { stroke: #5c5673; stroke-width: 2; stroke-dasharray: 3 7; fill: none; }
.empty-history circle { fill: #181824; stroke: #9e91bc; stroke-width: 2; }
.current-arrow { fill: none; stroke: #cbb7ff; stroke-width: 1.5; animation: origin-highlight 7s ease-in-out infinite; }
.unknown-connector { stroke: #d391c8; stroke-width: 2; stroke-dasharray: .012 .02; opacity: .7; fill: none; animation: future-flow 8s linear infinite; }
.forecast-question { transform-box: fill-box; transform-origin: center; animation: demand-float 8s ease-in-out infinite; }
.forecast-question circle { fill: #2a1e36; stroke: #bc80b9; stroke-width: 1.5; }
.forecast-question text { fill: #efa6d1; font: 400 28px Verdana,Arial,sans-serif; }
.q2 { animation-delay: -2.7s; }.q3 { animation-delay: -5.4s; }
.visual-axis { display: grid; grid-template-columns: 36% 10% 54%; font-size: 13px; color: var(--muted); gap: 0; }
.visual-axis .now-label { text-align: center; color: #d0bfff; }
.visual-axis > span:last-child { text-align: right; color: #dba3cc; }
.visual-caption { display: flex; align-items: center; justify-content: space-between; gap: 12px; border-top: 1px solid var(--line); margin-top: 20px; padding-top: 15px; font-size: 14px; color: var(--ink); }
.coldstart-visual .illustration-note { margin-top: 8px; color: var(--muted); }
@keyframes history-zero { 0%,42%,100% { opacity: 1; } 50%,92% { opacity: 0; } }
@keyframes history-few { 0%,42%,100% { opacity: 0; } 50%,92% { opacity: 1; } }
@keyframes demand-float { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-5px); } }
@keyframes history-trace { 0%,44%,100% { stroke-dashoffset: 1; } 65%,92% { stroke-dashoffset: 0; } }
@keyframes future-flow { from { stroke-dashoffset: 0; } to { stroke-dashoffset: -.16; } }
@keyframes origin-highlight { 0%,100% { opacity: .5; } 50% { opacity: 1; } }
.coldstart-visual.is-paused *, .service-process.is-paused *, .service-process.is-paused *::before, .service-process.is-paused *::after { animation-play-state: paused !important; }
/* Original official marks on an unboxed, compact research-source strip. */
.industry-chip.org-logo { justify-content: center; flex-direction: column; gap: 4px; width: 140px; min-height: 62px; height: 62px; padding: 8px; background: transparent; border: 0; border-radius: 0; }
.org-logo img { display: block; width: auto; height: auto; max-width: 124px; max-height: 34px; object-fit: contain; }
.org-logo:has(img[src$="cvpr-2022.png"]) { background: var(--bg); isolation: isolate; }
.org-logo img[src$="cvpr-2022.png"] { mix-blend-mode: screen; }
.org-logo:hover { background: transparent; opacity: .8; }
.org-caption { font-size: 13px; line-height: 1.4; color: #c5bfd6; }
/* Slim service flow; a slowly travelling highlight joins three small nodes. */
.service-page { padding-top: 14px; }
.service-process { position: relative; max-width: 1050px; margin: 0 auto; padding: 15px 0 22px; }
.service-process .service-steps { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 36px; list-style: none; padding: 0; margin: 0; }
.service-process .service-steps li { display: flex; flex-direction: column; align-items: flex-start; padding: 0; border: 0; margin: 0; position: relative; }
.service-process .step-number { display: block; padding: 0; font-size: 13px; line-height: 1.5; color: var(--muted); }
.service-process .step-node { display: inline-flex; align-items: center; justify-content: center; width: 52px; height: 52px; border: 1.5px solid #b59cf8; border-radius: 50%; background: #1d192b; color: #cfbaff; margin: 18px 0 21px; z-index: 1; box-shadow: 0 0 0 8px var(--bg); }
.service-process .service-steps li:nth-child(2) .step-node { border-color: #dd82bc; color: #eaa5d2; background: #261a29; }
.service-process .service-steps li:nth-child(3) .step-node { border-color: #999be8; color: #b3b6fa; background: #191b2d; }
.step-node svg { width: 24px; height: 24px; fill: none; stroke: currentColor; stroke-width: 1.6; stroke-linecap: round; stroke-linejoin: round; }
.service-process .service-steps h2 { font-size: 26px; line-height: 1.3; color: var(--ink); }
.service-process .service-steps p { font-size: 14px; line-height: 1.8; margin-top: 13px; max-width: 255px; color: var(--text); }
.service-process .service-steps .text-link, .service-process .service-steps .badge { margin-top: 17px; font-size: 13px; }
.service-rail { position: absolute; top: 78px; left: 26px; right: calc(33.333% - 2px); height: 2px; background: #4a3f61; overflow: hidden; }
.service-rail span { display: block; position: absolute; inset: 0 auto 0 0; width: 40%; background: linear-gradient(90deg,transparent,#c4abff,#ec97cf,transparent); animation: service-travel 12s ease-in-out infinite alternate; }
@keyframes service-travel { from { transform: translateX(-35%); } to { transform: translateX(190%); } }
.motion-row { max-width: 1050px; margin: 0 auto; padding-top: 14px; }
.service-bottom { margin-top: 32px; }
.methodology-process { max-width: none; }
.methodology-process .service-steps { grid-template-columns: repeat(4,minmax(0,1fr)); gap: 30px; }
.methodology-process .service-rail { right: calc(25% - 4px); }
.methodology-process .service-steps h2 { font-size: 22px; min-height: 58px; }
.methodology-process .service-steps p { flex: 1; margin-top: 10px; }
.methodology-process .service-steps li:nth-child(4) .step-node { border-color: #be90df; color: #d6b3ed; background: #231a2c; }
.methodology-bottom { display: flex; align-items: baseline; justify-content: space-between; gap: 24px; margin-top: 40px; padding-top: 25px; border-top: 1px solid var(--line); }
.methodology-bottom .fine-print { margin: 0; }
.methodology-bottom .text-link { flex-shrink: 0; font-size: 14px; }
@media(max-width:900px) {
 .methodology-process .service-steps { grid-template-columns: 1fr; gap: 30px; }
 .methodology-process .service-steps li { padding-left: 80px; min-height: 155px; }
 .methodology-process .step-node { position: absolute; left: 0; top: 0; margin-top: 0; }
 .methodology-process .service-steps h2 { margin-top: 9px; min-height: 0; }
 .methodology-process .service-steps p { max-width: none; flex: initial; }
 .methodology-process .service-rail { top: 40px; bottom: 145px; left: 25px; right: auto; width: 2px; height: auto; }
 .methodology-process .service-rail span { width: 2px; height: 40%; inset: 0 auto auto 0; animation-name: service-travel-vertical; }
 .methodology-bottom { flex-direction: column; gap: 15px; }
}
@media(max-width:760px) {
 .coldstart-visual { padding: 20px; }
 .service-process .service-steps { gap: 20px; }
 .service-process .service-steps h2 { font-size: 22px; }
 .service-process .service-steps p { font-size: 14px; }
 .service-rail { right: calc(33.333% - 7px); }
 .methodology-process .service-rail { right: auto; }
}
@media(max-width:440px) {
 .coldstart-visual { padding: 18px 15px; }
 .visual-legend { gap: 14px; }
 .visual-caption { flex-wrap: wrap; font-size: 14px; }
 .service-process .service-steps { grid-template-columns: 1fr; gap: 26px; }
 .service-process .service-steps li { padding-left: 75px; min-height: 140px; }
 .service-process .step-node { position: absolute; left: 0; top: 0; margin-top: 0; }
 .service-process .service-steps h2 { margin-top: 9px; }
 .service-process .service-steps p { margin-top: 9px; max-width: none; }
 .service-process .service-steps .badge, .service-process .service-steps .text-link { margin-top: 12px; }
 .service-rail { top: 40px; bottom: 100px; left: 25px; right: auto; width: 2px; height: auto; }
 .service-rail span { width: 2px; height: 40%; inset: 0 auto auto 0; animation-name: service-travel-vertical; }
}
@keyframes service-travel-vertical { from { transform: translateY(-35%); } to { transform: translateY(190%); } }
@media(prefers-reduced-motion:reduce) {
 .coldstart-visual *, .service-process *, .ticker-track { animation: none !important; }
 .history-zero, .empty-history { display: none; }
 .history-few, .observed-history { opacity: 1; }
}

.paper-access { display: inline-flex; align-items: baseline; gap: 10px; flex-wrap: wrap; margin-top: 14px; margin-right: 16px; font-size: 13px; }
.access-note, .access-unavailable { color: var(--muted); font-size: 13px; }
.ticker-group { min-width: 100vw; justify-content: space-around; }

/* New-product launch map and compact source-comparison selectors. */
.launch-map { display: grid; grid-template-columns: 1fr; align-items: center; gap: 30px; padding: 6px 0 12px; }
.launch-root { display: flex; justify-content: center; gap: 12px; align-items: center; color: var(--ink); font-size: 16px; position: relative; }
.launch-root svg, .launch-type svg { width: 34px; height: 34px; fill: none; stroke: currentColor; stroke-width: 1.4; stroke-linecap: round; stroke-linejoin: round; color: var(--aqua); }
.launch-branches { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 26px; position: relative; }
.launch-branches::before { content: ''; position: absolute; left: 16%; right: 16%; top: -1px; height: 1px; background: var(--line-strong); }
.launch-root::after { content: ''; position: absolute; left: 50%; top: 100%; width: 1px; height: 30px; background: var(--line-strong); }
.launch-type { display: flex; flex-direction: column; align-items: center; text-align: center; gap: 14px; color: var(--text); text-decoration: none; padding: 24px 0 16px; font-size: 16px; position: relative; }
.launch-type::before { content: ''; position: absolute; width: 1px; height: 17px; left: 50%; top: 0; background: var(--line-strong); }
.launch-type:nth-child(2) svg { color: #e783bd; }
.launch-type:nth-child(3) svg { color: #95a6ff; }
.launch-type:hover { color: var(--ink); }
.launch-arrow { font-size: 16px; color: var(--aqua-soft); }
.context-toolbar { align-items: center; flex-wrap: wrap; }
.context-toolbar > .comparison-picker { width: min(700px, 100%); flex: 1 1 400px; }
.comparison-picker select:disabled { opacity: .6; cursor: default; }
.context-toolbar > .search { width: 180px; }
.context-details > .check-label { margin-top: 12px; }
.coldstart-visual:hover *, .coldstart-visual:focus-within *, .service-process:hover *, .service-process:focus-within * { animation-play-state: paused !important; }
@media(max-width:760px) {
 .launch-type { font-size: 14px; }
}
@media(max-width:440px) {
 .launch-branches { gap: 12px; }
 .launch-type { font-size: 13px; }
 .context-toolbar { display: flex; }
 .context-toolbar > .search { width: 100%; margin-top: 0; }
 .industry-chip.org-logo { flex: 0 0 130px; }
}

/* Searchable paper survey, using the same restrained type and source links. */
.survey-controls { display: grid; grid-template-columns: minmax(240px,2fr) minmax(150px,1fr) minmax(150px,1fr); gap: 20px; padding: 17px 0 20px; border-block: 1px solid var(--line); }
.survey-controls label { display: flex; flex-direction: column; gap: 9px; color: var(--muted); font-size: 13px; min-width: 0; }
.survey-controls input, .survey-controls select { width: 100%; min-height: 44px; padding: 10px 12px; border: 1px solid var(--line-strong); border-radius: 3px; background: #111018; color: var(--ink); font-size: 14px; }
.survey-controls input::placeholder { color: var(--muted); }
.survey-toolbar { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 13px; margin-top: 16px; }
.survey-meta { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 5px 20px; margin-top: 18px; }
.survey-meta .fine-print { margin: 0; }
.survey-results { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 0 30px; }
.survey-paper { padding: 24px 0; border-top: 1px solid var(--line-strong); min-width: 0; display: flex; flex-direction: column; }
.survey-paper-meta { display: flex; flex-wrap: wrap; align-items: center; gap: 7px 13px; color: var(--muted); font-size: 13px; }
.survey-paper h2 { font-size: 19px; line-height: 1.6; margin-top: 12px; overflow-wrap: anywhere; }
.survey-paper h2 a { text-decoration: none; color: var(--ink); }
.survey-paper h2 a:hover { color: var(--aqua-soft); }
.survey-paper p { font-size: 14px; color: var(--text); line-height: 1.8; margin-top: 13px; }
.survey-paper .survey-fit { font-size: 13px; color: #c2b8d9; }
.survey-paper .survey-links { display: flex; flex-wrap: wrap; gap: 12px 20px; margin-top: auto; padding-top: 18px; }
.survey-paper details { margin-top: 15px; font-size: 13px; color: var(--muted); }
.survey-paper summary { cursor: pointer; color: var(--aqua-soft); }
.survey-paper details p { font-size: 13px; margin-top: 9px; }
.survey-paper .access-note { align-self: center; }
.survey-footnote { padding-top: 18px; border-top: 1px solid var(--line); }
.survey-results > .empty-state { grid-column: 1 / -1; }
@media(max-width:760px) {
 .survey-controls { grid-template-columns: repeat(2,minmax(0,1fr)); gap: 16px; }
 .survey-controls .survey-search { grid-column: 1 / -1; }
 .survey-results { grid-template-columns: 1fr; }
}
@media(max-width:440px) {
 .survey-controls { grid-template-columns: 1fr; }
}

/* Four six-second stages, always flowing forward; decorative motion only. */
.methodology-process { --flow-gap: 30px; }
.methodology-process .service-rail { display: none; }
.methodology-process .service-steps { gap: var(--flow-gap); }
.methodology-process .service-steps li { --flow-delay: 0s; --flow-color: #b59cf8; }
.methodology-process .service-steps li:nth-child(2) { --flow-delay: 6s; --flow-color: #dd82bc; }
.methodology-process .service-steps li:nth-child(3) { --flow-delay: 12s; --flow-color: #999be8; }
.methodology-process .service-steps li:nth-child(4) { --flow-delay: 18s; --flow-color: #be90df; }
.methodology-process .step-node { animation: methodology-node-glow 24s ease-in-out var(--flow-delay) infinite; }
.methodology-process .service-steps li:not(:last-child)::before,
.methodology-process .service-steps li:not(:last-child)::after { content: ''; position: absolute; top: 64px; left: 60px; right: calc(8px - var(--flow-gap)); height: 2px; pointer-events: none; }
.methodology-process .service-steps li:not(:last-child)::before { background: #4a3f61; }
.methodology-process .service-steps li:not(:last-child)::after { opacity: 0; background: linear-gradient(90deg,transparent 30%,var(--flow-color) 48%,#eadbff 50%,transparent 68%); background-size: 300% 100%; background-position: 100% 0; animation: methodology-link-flow 24s linear var(--flow-delay) infinite; }
@keyframes methodology-node-glow {
 0%,13%,100% { filter: brightness(1); box-shadow: 0 0 0 8px var(--bg), 0 0 0 transparent; }
 3%,9% { filter: brightness(1.22); box-shadow: 0 0 0 8px var(--bg), 0 0 18px var(--flow-color); }
}
@keyframes methodology-link-flow {
 0%,9% { opacity: 0; background-position: 100% 0; }
 11% { opacity: 1; }
 24% { opacity: 1; background-position: 0 0; }
 25%,100% { opacity: 0; background-position: 0 0; }
}
.methodology-process:hover .service-steps li::after,
.methodology-process:focus-within .service-steps li::after { animation-play-state: paused !important; }
@media(max-width:900px) {
 .methodology-process { --flow-gap: 28px; }
 .methodology-process .service-steps li { min-height: 155px; padding-left: 80px; }
 .methodology-process .service-steps li:not(:last-child)::before,
 .methodology-process .service-steps li:not(:last-child)::after { top: 60px; left: 25px; right: auto; bottom: calc(8px - var(--flow-gap)); width: 2px; height: auto; }
 .methodology-process .service-steps li:not(:last-child)::after { background-image: linear-gradient(180deg,transparent 30%,var(--flow-color) 48%,#eadbff 50%,transparent 68%); background-size: 100% 300%; background-position: 0 100%; animation-name: methodology-link-flow-vertical; }
}
@keyframes methodology-link-flow-vertical {
 0%,9% { opacity: 0; background-position: 0 100%; }
 11% { opacity: 1; }
 24% { opacity: 1; background-position: 0 0; }
 25%,100% { opacity: 0; background-position: 0 0; }
}
@media(prefers-reduced-motion:reduce) {
 .methodology-process .step-node,
 .methodology-process .service-steps li::after { animation: none !important; }
 .methodology-process .service-steps li::after { opacity: 0; }
}
.forecasting-paths .launch-type { gap: 12px; }
.forecasting-paths .launch-type strong { font-weight: 400; color: var(--ink); }
.forecasting-paths .launch-type .path-description { max-width: 270px; font-size: 14px; line-height: 1.7; color: var(--muted); }
.forecasting-scope { text-align: center; margin-top: 18px; }
.dataset-evidence-controls { display: flex; align-items: center; flex-wrap: wrap; gap: 24px 36px; padding: 8px 0 22px; border-bottom: 1px solid var(--line); }
.dataset-evidence-controls .comparison-picker { display: flex; flex-direction: column; gap: 10px; width: min(360px,100%); flex: 0 1 360px; color: var(--muted); font-size: 13px; }
.dataset-evidence-controls select { width: 100%; min-height: 46px; padding: 11px 14px; border: 1px solid var(--line-strong); border-radius: 3px; background: #111018; color: var(--ink); font: 14px var(--font); }
.portal-window { margin: 0 0 20px; }
.dataset-name-link { color: var(--ink); font-size: 14px; text-decoration: none; }
.dataset-name-link:hover { color: var(--aqua-soft); }
.dataset-history { display: block; margin-top: 7px; font-size: 13px; color: var(--muted); font-weight: 400; }
.dataset-modality { color: #d3b5f5; font-size: 14px; }
.dataset-context { flex: 1 1 300px; min-width: 0; }
.dataset-context .context-summary { margin: 0; font-size: 14px; }
#context-source { display: flex; align-items: center; flex-wrap: wrap; gap: 16px; margin-top: 10px; }
#context-source:empty, .chart-status:empty { display: none; }
#context-source .paper-access { margin: 0; }
@media(max-width:600px) {
 .dataset-evidence-controls { align-items: flex-start; gap: 18px; }
 .dataset-evidence-controls .comparison-picker, .dataset-context { flex-basis: 100%; width: 100%; }
}
/* lean nav: section sub-navigation */
.site-header nav a.nav-mobile-only { display: none; }
.subnav { border-bottom: 1px solid #24222f; background: #0e0f17; }
.subnav .wrap { display: flex; gap: 22px; overflow-x: auto; padding-top: 10px; padding-bottom: 10px; }
.subnav a { color: #a9a6bd; text-decoration: none; font-size: .9rem; white-space: nowrap; padding-bottom: 3px; border-bottom: 2px solid transparent; }
.subnav a:hover { color: var(--aqua-soft); }
.subnav a[aria-current="page"] { color: #fff; border-bottom-color: var(--aqua); }
@media (max-width: 1000px) { .site-header nav a.nav-mobile-only { display: block; } }
/* lean benchmark pages */
.lean-cards { display: grid; grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); gap: 18px; }
.lean-card { display: flex; flex-direction: column; gap: 8px; padding: 22px; border: 1px solid #2a2838; border-radius: 6px; text-decoration: none; color: inherit; background: #10111a; }
.lean-card:hover { border-color: var(--aqua); }
.lean-card span { color: #a9a6bd; }
.lean-table-wrap { overflow-x: auto; }
.lean-table { width: 100%; border-collapse: collapse; }
.lean-table th, .lean-table td { text-align: left; padding: 12px 10px; border-bottom: 1px solid #24222f; }
.lean-table th { color: #a9a6bd; font-weight: 500; font-size: .85rem; }
/* strict scope 2026-10-19: full-screen hero, reveal, benchmark bars */
body[data-page="home"] .home-hero { padding: 32px 0 28px; }
body[data-page="home"] #updates { padding-top: 28px; padding-bottom: 40px; }
@media (max-width: 760px) { body[data-page="home"] .home-hero { padding: 20px 0 18px; } body[data-page="home"] #updates { padding-top: 20px; } }
body[data-page="home"] .home-hero > .wrap { width: min(1180px, calc(100% - 56px)); }
.reveal { opacity: 0; transform: translateY(24px); transition: opacity .6s ease, transform .6s ease; }
.reveal.is-visible { opacity: 1; transform: none; }
@media (prefers-reduced-motion: reduce) { .reveal { opacity: 1; transform: none; transition: none; } }
.bench-charts { display: grid; gap: 22px; }
.bench-card { padding: 24px; border: 1px solid #2a2838; border-radius: 10px; background: #10111a; }
.bench-card h2 { font-size: 18px; margin: 0 0 18px; }
.bench-card h3 { font-size: 14px; color: #a9a6bd; margin: 18px 0 10px; font-weight: 500; }
.bench-bars { display: grid; gap: 14px; }
.bar-row { display: grid; grid-template-columns: minmax(120px, 220px) 1fr 64px; align-items: center; gap: 14px; }
.bar-label { color: #e6e3f5; font-size: 14px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.bar-track { height: 12px; border-radius: 999px; background: #1d1b29; overflow: hidden; }
.bar-fill { display: block; height: 100%; border-radius: 999px; background: linear-gradient(90deg, #b59cf8, #e783bd); }
.bar-value { text-align: right; color: #cbb7ff; font-variant-numeric: tabular-nums; font-size: 14px; }
.skeleton .bar-label { height: 10px; border-radius: 6px; background: #1d1b29; }
.skeleton .bar-fill { background: #262338; }
.bench-status { text-transform: none; text-align: center; color: #cbb7ff; font-size: 16px; margin: 4px 0 0; }
/* lean menu pages 2026-10-19 */
.lean-steps .steps { list-style: none; counter-reset: s; padding: 0; margin: 0 0 24px; display: grid; gap: 16px; }
.lean-steps .steps li { counter-increment: s; display: grid; gap: 6px; padding: 16px 18px 16px 54px; position: relative; border: 1px solid #2a2838; border-radius: 8px; background: #10111a; }
.lean-steps .steps li::before { content: counter(s); position: absolute; left: 18px; top: 16px; width: 24px; height: 24px; border-radius: 50%; background: linear-gradient(135deg, #b59cf8, #e783bd); color: #0c0d14; font-size: 13px; display: grid; place-items: center; font-weight: 600; }
.lean-steps .steps span { color: #a9a6bd; }
.lean-steps pre { margin: 4px 0; padding: 12px; background: #0b0b12; border-radius: 6px; overflow-x: auto; font-size: 13px; }
.lean-h2 { margin: 34px 0 16px; font-size: 20px; }
.lean-card .text-link { margin-top: auto; }
.bench-label { margin: -10px 0 14px; color: #e783bd; font-size: 13px; }
.bench-sub { margin: 0 0 12px; color: #8f8ca6; font-size: 13px; }
a.bar-row { text-decoration: none; color: inherit; border-radius: 6px; }
a.bar-row:hover .bar-label { color: var(--aqua-soft); }
.bench-bars { gap: 10px; }
.bar-row { grid-template-columns: minmax(140px, 300px) 1fr 64px; }
.bench-block + .bench-block { margin-top: 22px; padding-top: 18px; border-top: 1px solid #24222f; }
@media (max-width: 760px) { .bar-row { grid-template-columns: 1fr 54px; } .bar-row .bar-track { grid-column: 1 / -1; grid-row: 2; } .bar-label { white-space: normal; } }
