/* Annalist site styles. Dark is the default theme; [data-theme="light"] on <html> switches to light. */
:root {
  --bg: #0E1014; --bg-soft: #13161C; --surface: #171A21; --surface-2: #1D212A;
  --ink: #E9ECF1; --ink-2: #C3C9D2; --ink-3: #8C94A1;
  --line: #252A33; --line-2: #333944;
  --accent: #8FA2FF; --accent-ink: #B1BEFF; --accent-soft: #1C2342; --on-accent: #0E1014; --warm: #F0A15A;
  --ok: #3CB56A; --warn: #F0A15A; --fail: #F07272;
  --s1: #7487F5; --s2: #D95926; --s3: #199E70; --s4: #C98500;
  --grid: #232831; --axis: #3A404C;
  --shadow: 0 14px 36px rgba(0, 0, 0, .5), 0 2px 6px rgba(0, 0, 0, .3);
  --serif: 'Newsreader', Georgia, serif;
  --sans: 'Instrument Sans', ui-sans-serif, system-ui, -apple-system, 'Segoe UI', sans-serif;
  --mono: 'DM Mono', ui-monospace, Menlo, monospace;
  --ease: cubic-bezier(.2, .7, .2, 1);
  color-scheme: dark;
}
:root[data-theme="light"] {
  --bg: #FFFFFF; --bg-soft: #F6F7F9; --surface: #FFFFFF; --surface-2: #F3F4F7;
  --ink: #14171C; --ink-2: #3F4650; --ink-3: #5F6672;
  --line: #E2E5E9; --line-2: #D5D9DF;
  --accent: #3550D6; --accent-ink: #2741C9; --accent-soft: #EEF1FD; --on-accent: #FFFFFF; --warm: #CF6A10;
  --ok: #1E8A47; --warn: #B65A0B; --fail: #C93636;
  --s1: #3550D6; --s2: #D4541F; --s3: #14875E; --s4: #B07400;
  --grid: #ECEEF1; --axis: #C9CED6;
  --shadow: 0 12px 32px rgba(20, 23, 28, .10), 0 2px 6px rgba(20, 23, 28, .06);
  color-scheme: light;
}
* { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; }
body { margin: 0; background: var(--bg); color: var(--ink); font: 400 15px/1.55 var(--sans); }
a { color: var(--accent); text-decoration: none; }
a:hover { color: var(--accent-ink); text-decoration: underline; text-underline-offset: 3px; }
:focus-visible { outline: 2px solid var(--accent); outline-offset: 2px; border-radius: 4px; }
button { font-family: inherit; }
.wrap { max-width: 1180px; margin: 0 auto; padding: 0 24px; }
.num { font-family: var(--mono); font-variant-numeric: tabular-nums; }
.muted { color: var(--ink-3); }
.sr { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
/* the skip link shows when it has focus (L11) */
a.sr:focus { position: fixed; top: 10px; left: 10px; z-index: 200; width: auto; height: auto; clip: auto; padding: 9px 14px;
  border: 1px solid var(--line-2); border-radius: 9px; background: var(--surface); color: var(--ink); box-shadow: var(--shadow); }
@media (pointer: coarse) { .kbd-find, .hint-keys { display: none; } }
kbd { font: 500 11px var(--mono); color: var(--ink-3); border: 1px solid var(--line-2); border-radius: 5px; padding: 1px 5px; background: var(--bg-soft); }
code { font: 400 13px var(--mono); }

/* top bar ---------------------------------------------------------------------------------------- */
.top { border-bottom: 1px solid var(--line); background: var(--bg); position: sticky; top: 0; z-index: 40; }
.top .wrap { display: flex; align-items: center; gap: 28px; height: 62px; }
.brand { font: 500 22px/1 var(--serif); color: var(--ink); letter-spacing: -.01em; }
.brand:hover { color: var(--ink); text-decoration: none; }
.nav { display: flex; gap: 4px; font-size: 14px; }
.nav a { color: var(--ink-2); padding: 7px 11px; border-radius: 8px; }
.nav a:hover { color: var(--ink); background: var(--bg-soft); text-decoration: none; }
.nav a[aria-current="page"] { color: var(--ink); background: var(--surface-2); }
.top .spacer { flex: 1; }
.find-btn { display: inline-flex; align-items: center; gap: 10px; height: 36px; padding: 0 10px 0 12px; border: 1px solid var(--line-2);
  border-radius: 9px; background: var(--surface); color: var(--ink-3); font: 400 14px var(--sans); cursor: pointer; }
.find-btn:hover { border-color: var(--ink-3); color: var(--ink-2); }
.icon-btn { display: inline-grid; place-items: center; width: 36px; height: 36px; border: 1px solid var(--line-2); border-radius: 9px;
  background: var(--surface); color: var(--ink-2); cursor: pointer; padding: 0; }
.icon-btn:hover { border-color: var(--ink-3); color: var(--ink); }
.menu-btn { display: none; }
.theme-btn .sun { display: none; }
:root[data-theme="light"] .theme-btn .sun { display: block; }
:root[data-theme="light"] .theme-btn .moon { display: none; }
.top .mobile-nav { display: none; height: auto; border-top: 1px solid var(--line); padding: 6px 24px 12px; }
.mobile-nav a { display: block; padding: 11px 0; color: var(--ink); font-size: 16px; border-bottom: 1px solid var(--line); }
.mobile-nav a[aria-current="page"] { color: var(--accent); }
.mobile-nav a:last-child { border-bottom: 0; }
.top.open .mobile-nav { display: block; }

/* search palette --------------------------------------------------------------------------------- */
.palette { position: fixed; inset: 0; z-index: 60; background: rgba(5, 6, 9, .62); display: grid; justify-items: center; align-items: start; padding: 10vh 16px 16px; }
:root[data-theme="light"] .palette { background: rgba(20, 23, 28, .32); }
.palette[hidden] { display: none; }
.palette .box { width: min(640px, 100%); background: var(--surface); border: 1px solid var(--line-2); border-radius: 16px; box-shadow: var(--shadow); overflow: hidden; }
.palette .search-box { border: 0; border-bottom: 1px solid var(--line); border-radius: 0; box-shadow: none; }
.palette .results { position: static; border: 0; border-radius: 0; box-shadow: none; max-height: min(420px, 60vh); }
.search { position: relative; max-width: 720px; }
.search-box { display: flex; align-items: center; gap: 12px; height: 58px; padding: 0 14px 0 18px; border: 1px solid var(--line-2);
  border-radius: 14px; background: var(--surface); }
.search-box:focus-within { border-color: var(--accent); box-shadow: 0 0 0 4px var(--accent-soft); }
.palette .search-box:focus-within { box-shadow: none; }
.search-box svg { flex: none; color: var(--ink-3); }
.search-box input { flex: 1; min-width: 0; border: 0; outline: 0; background: transparent; color: var(--ink); font: 400 17px var(--sans); }
.search-box input::placeholder { color: var(--ink-3); }
.search-box input::-webkit-search-cancel-button { display: none; }
.results { position: absolute; left: 0; right: 0; top: 66px; background: var(--surface); border: 1px solid var(--line-2); border-radius: 14px;
  box-shadow: var(--shadow); padding: 8px; z-index: 30; max-height: min(460px, 60vh); overflow: auto; }
.results[hidden] { display: none; }
.results h3 { font: 600 11px/1 var(--sans); letter-spacing: .09em; text-transform: uppercase; color: var(--ink-3); margin: 12px 10px 6px; }
.results ul { list-style: none; margin: 0; padding: 0; }
.results li { display: flex; align-items: baseline; gap: 10px; padding: 9px 10px; border-radius: 9px; cursor: pointer; }
.results li .t { font-weight: 500; }
.results li .m { font-size: 13px; color: var(--ink-3); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.results li[aria-selected="true"] { background: var(--accent-soft); }
.results .empty { padding: 14px 10px; color: var(--ink-3); font-size: 14px; }
.results .keys { display: flex; gap: 14px; padding: 10px 10px 4px; border-top: 1px solid var(--line); margin-top: 8px; font-size: 12px; color: var(--ink-3); }

/* page heads and sections ----------------------------------------------------------------------- */
.kicker { font: 600 12px/1 var(--sans); letter-spacing: .09em; text-transform: uppercase; color: var(--ink-3); margin: 0 0 16px; }
h1 { font: 400 46px/1.08 var(--serif); letter-spacing: -.02em; margin: 0; }
h2 { font: 400 28px/1.15 var(--serif); letter-spacing: -.01em; margin: 0; }
h3 { font: 500 19px/1.3 var(--serif); margin: 0; }
.page-head { padding: 48px 0 28px; }
.page-head .lede { font-size: 17px; line-height: 1.6; color: var(--ink-2); max-width: 66ch; margin: 16px 0 0; }
section.block { padding: 48px 0 8px; }
section[id] { scroll-margin-top: 72px; }
.head { display: flex; align-items: baseline; justify-content: space-between; gap: 24px; margin-bottom: 20px; }
.head p { margin: 6px 0 0; color: var(--ink-3); font-size: 14px; max-width: 64ch; }
.head .more { font-size: 14px; white-space: nowrap; }
.prose { max-width: 70ch; color: var(--ink-2); }
.prose p { margin: 0 0 14px; }
.prose h3 { color: var(--ink); margin: 26px 0 8px; }
.note { font-size: 13px; color: var(--ink-3); }
.btn { display: inline-flex; align-items: center; gap: 8px; height: 36px; padding: 0 14px; border: 1px solid var(--line-2); border-radius: 9px;
  background: var(--surface); color: var(--ink); font: 500 14px var(--sans); cursor: pointer; }
.btn:hover { border-color: var(--ink-3); color: var(--ink); text-decoration: none; }
.btn.primary { background: var(--accent); border-color: var(--accent); color: var(--on-accent); }
.btn.primary:hover { filter: brightness(1.08); color: var(--on-accent); }

/* home ------------------------------------------------------------------------------------------- */
.hero { padding: 72px 0 40px; }
.hero h1 { font-size: 52px; line-height: 1.06; max-width: 17ch; }
.lede { font-size: 18px; line-height: 1.6; color: var(--ink-2); max-width: 62ch; margin: 22px 0 32px; }
.hint { font-size: 13px; color: var(--ink-3); margin: 12px 0 0; }
.keynums { display: grid; grid-template-columns: repeat(4, 1fr); border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); margin: 28px 0 0; }
.keynums > * { padding: 26px 24px 24px 0; color: var(--ink); }
.keynums > * + * { padding-left: 24px; border-left: 1px solid var(--line); }
.keynums b { display: block; font: 400 46px/1 var(--serif); font-variant-numeric: lining-nums; letter-spacing: -.02em; }
.keynums span { display: block; margin-top: 10px; font-size: 14px; color: var(--ink-2); }
.keynums a:hover { text-decoration: none; }
.keynums a:hover span { color: var(--accent); }
.cards { display: grid; grid-template-columns: repeat(3, 1fr); gap: 16px; }
.card { display: block; border: 1px solid var(--line); border-radius: 14px; padding: 20px 20px 18px; background: var(--surface); color: var(--ink); }
.card:hover { border-color: var(--line-2); box-shadow: var(--shadow); text-decoration: none; color: var(--ink); }
.card .name { font: 500 20px/1.25 var(--serif); }
.card .meta { font-size: 13px; color: var(--ink-3); margin-top: 4px; }
.card .when { font-size: 13px; color: var(--ink-2); margin-top: 14px; padding-top: 14px; border-top: 1px solid var(--line); }
.card .figs { display: grid; grid-template-columns: 1.35fr 1fr; gap: 12px; margin-top: 14px; }
.fig .l { font-size: 12px; color: var(--ink-3); }
.fig .v { font: 500 19px/1.3 var(--mono); font-variant-numeric: tabular-nums; margin-top: 3px; }
.fig .d { font: 400 12px var(--mono); color: var(--ink-2); white-space: nowrap; }
.features { display: grid; grid-template-columns: repeat(4, 1fr); gap: 16px; }
.feature { display: flex; flex-direction: column; gap: 8px; border: 1px solid var(--line); border-radius: 14px; padding: 20px; background: var(--surface); color: var(--ink); }
.feature:hover { border-color: var(--line-2); box-shadow: var(--shadow); text-decoration: none; color: var(--ink); }
.feature b { font: 400 13px var(--mono); color: var(--warm); }
.feature p { margin: 0; color: var(--ink-2); font-size: 14px; }
.feature .go { margin-top: auto; padding-top: 8px; font-size: 14px; color: var(--accent); }

/* landing page ----------------------------------------------------------------------------------- */
.nav .nav-app { display: none; }
.mobile-nav .nav-app { color: var(--accent); font-weight: 500; }
.btn.big { height: 46px; padding: 0 20px; border-radius: 11px; font-size: 15px; }
.btn.launch { height: 36px; }
/* the landing page links to the app only, so it has no menu of 1 item at any width */
[data-page="landing"] .menu-btn { display: none; }
.l-hero { position: relative; overflow: hidden; padding: 96px 0 56px; border-bottom: 1px solid var(--line); }
.l-hero::before { content: ""; position: absolute; inset: -40% -10% auto; height: 120%; pointer-events: none;
  background: radial-gradient(48% 52% at 72% 18%, color-mix(in srgb, var(--s1) 28%, transparent), transparent 70%),
              radial-gradient(34% 40% at 12% 30%, color-mix(in srgb, var(--warm) 14%, transparent), transparent 70%); }
.l-hero::after { content: ""; position: absolute; inset: 0; pointer-events: none; opacity: .5;
  background-image: linear-gradient(var(--line) 1px, transparent 1px), linear-gradient(90deg, var(--line) 1px, transparent 1px);
  background-size: 56px 56px; mask-image: radial-gradient(70% 60% at 60% 20%, #000 20%, transparent 75%);
  -webkit-mask-image: radial-gradient(70% 60% at 60% 20%, #000 20%, transparent 75%); }
.l-hero .wrap { position: relative; z-index: 1; }
.l-hero h1 { font-size: 64px; line-height: 1.03; max-width: 16ch; margin-top: 18px; text-wrap: balance; }
.l-hero .lede { font-size: 19px; max-width: 60ch; }
.l-hero-grid { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.02fr); gap: 48px; align-items: center; }
.l-hero-grid h1 { font-size: 58px; max-width: 13ch; }
.l-hero-grid .lede { font-size: 18px; max-width: 48ch; }
.l-cta { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 8px; }
.l-stats { display: grid; grid-template-columns: repeat(5, 1fr); margin-top: 56px; border: 1px solid var(--line-2); border-radius: 16px;
  background: color-mix(in srgb, var(--surface) 82%, transparent); backdrop-filter: blur(6px); }
.l-stats > div { padding: 22px 20px 20px; }
.l-stats > div + div { border-left: 1px solid var(--line); }
.l-stats b { display: block; font: 400 40px/1 var(--serif); letter-spacing: -.02em; color: var(--ink); font-variant-numeric: lining-nums; }
.l-stats span { display: block; margin-top: 10px; font-size: 13px; color: var(--ink-3); }
.l-block { padding: 88px 0 8px; }
.l-h2 { font-size: 40px; line-height: 1.1; margin: 0 0 28px; max-width: 24ch; }
.l-msg { max-width: 72ch; color: var(--ink-2); font-size: 16px; margin: -8px 0 28px; }
.l-msg b { color: var(--ink); font-weight: 600; }
/* analysis: a credit update and the changes of the latest reports */
.la { display: grid; grid-template-columns: minmax(0, .9fr) minmax(0, 1.1fr); gap: 36px; align-items: start; }
.la .l-h2 { margin: 14px 0 18px; max-width: 16ch; }
.la .l-msg { margin: 0 0 24px; max-width: 50ch; }
.la-mini { border: 1px solid var(--line-2); border-radius: 16px; background: var(--surface); padding: 16px; }
.la-mini .hd { display: flex; justify-content: space-between; align-items: baseline; gap: 10px; flex-wrap: wrap; margin-bottom: 12px;
  font-size: 12.5px; color: var(--ink-3); }
.la-mini .hd b { font: 400 18px/1.2 var(--serif); color: var(--ink); }
.la-mini .g { display: grid; grid-template-columns: 1fr 1fr; gap: 1px; background: var(--line); border: 1px solid var(--line); border-radius: 10px; overflow: hidden; }
.la-mini .g div { background: var(--surface-2); padding: 11px 13px; }
.la-mini .g span { display: block; font-size: 11.5px; color: var(--ink-3); }
.la-mini .g b { display: block; margin-top: 3px; font: 400 22px/1.15 var(--serif); color: var(--ink); font-variant-numeric: lining-nums; }
.la-mini .g em { font: 400 10.5px var(--mono); font-style: normal; color: var(--ink-3); }
.la-open { display: inline-block; margin-top: 12px; font-size: 13px; }
.feed { border: 1px solid var(--line-2); border-radius: 16px; background: var(--surface); overflow: hidden; box-shadow: var(--shadow); }
.feed-h { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 6px 12px; padding: 12px 16px; border-bottom: 1px solid var(--line);
  font: 600 11px/1.2 var(--sans); letter-spacing: .09em; text-transform: uppercase; color: var(--ink-3); }
.feed-h .live { display: inline-flex; align-items: center; gap: 6px; font: 500 12px var(--sans); letter-spacing: 0; text-transform: none; color: var(--ink-2); white-space: nowrap; }
.feed-h .live i { width: 7px; height: 7px; border-radius: 50%; background: var(--ok); } /* still: the list is a ledger, not live data */
/* the list shows about 4 changes; while it is on screen it steps up to the next one, latest report first */
.feed-list { list-style: none; margin: 0; padding: 0 16px; height: 508px; overflow-y: auto; overscroll-behavior: contain; scrollbar-width: thin;
  -webkit-mask-image: linear-gradient(#000 calc(100% - 48px), transparent); mask-image: linear-gradient(#000 calc(100% - 48px), transparent); }
.feed-list li { padding: 12px 0; border-bottom: 1px solid var(--line); }
/* without motion the list does not step, so every change is shown */
@media (prefers-reduced-motion: reduce) { .feed-list { height: auto; -webkit-mask-image: none; mask-image: none; } }
.feed-list li.none { color: var(--ink-3); font-size: 13.5px; border: 0; }
.feed .fi { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }
.feed .ftk { min-width: 44px; font: 500 12.5px var(--mono); color: var(--ink); }
.feed .ft { font-size: 13.5px; font-weight: 500; color: var(--ink); }
.feed .src { font: 400 11px var(--mono); }
.feed .fx { margin: 5px 0 0; font-size: 13px; color: var(--ink-2); display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.feed .fp { margin: 3px 0 0; font-size: 12px; color: var(--ink-3); display: -webkit-box; -webkit-line-clamp: 1; -webkit-box-orient: vertical; overflow: hidden; }
@keyframes pulse { 0% { box-shadow: 0 0 0 0 color-mix(in srgb, var(--ok) 55%, transparent); } 70% { box-shadow: 0 0 0 8px transparent; } 100% { box-shadow: 0 0 0 0 transparent; } }
.l-head { display: flex; align-items: flex-end; justify-content: space-between; gap: 18px 32px; flex-wrap: wrap; margin-bottom: 26px; }
.l-head .l-h2 { margin: 14px 0 0; }
.seg button .c { font: 400 12px var(--mono); color: var(--ink-3); margin-left: 6px; }
.seg button[aria-pressed="true"] .c { color: var(--ink-2); }
.l-agents { display: grid; grid-template-columns: minmax(0, .95fr) minmax(0, 1.05fr); gap: 36px; align-items: center; border: 1px solid var(--line-2); border-radius: 20px;
  padding: 34px 36px; background: radial-gradient(60% 120% at 100% 0%, color-mix(in srgb, var(--s1) 14%, transparent), transparent 70%), var(--surface); }
.l-agents .l-h2 { margin: 14px 0 18px; }
.l-agents .l-msg { margin: 0 0 20px; }
.l-mcp { display: grid; gap: 10px; }
.l-mcp code { font: 400 15px var(--mono); color: var(--ink); padding: 12px 14px; border: 1px solid var(--line-2); border-radius: 10px; background: var(--bg-soft); overflow-wrap: anywhere; }
.l-mcp code .host { white-space: nowrap; } /* the address breaks at its slashes, not inside the host name (L11) */
#cov-seg { flex-wrap: nowrap; overflow-x: auto; max-width: 100%; scrollbar-width: none; } /* the market filter stays on one line (L-new-11) */

/* shared marks: eyebrow label, blueprint corners ---------------------------------------------------------- */
.eyebrow { display: inline-flex; align-items: center; gap: 8px; margin: 0; font: 600 12px/1 var(--sans); letter-spacing: .09em; text-transform: uppercase; color: var(--ink-3); }
.eyebrow i { width: 6px; height: 6px; background: var(--warm); flex: none; }
.cn { position: absolute; width: 5px; height: 5px; background: var(--ink-3); z-index: 2; pointer-events: none; }
.cn.tl { left: -3px; top: -3px; } .cn.tr { right: -3px; top: -3px; } .cn.bl { left: -3px; bottom: -3px; } .cn.br { right: -3px; bottom: -3px; }
.rv { transition: opacity .5s var(--ease), transform .5s var(--ease); transition-delay: var(--rd, 0ms); }
.rv.pre { opacity: 0; transform: translateY(12px); transition: none; }

/* landing hero: source panel ---------------------------------------------------------------------------- */
.trace { border: 1px solid var(--line-2); border-radius: 16px; background: color-mix(in srgb, var(--surface) 92%, transparent); box-shadow: var(--shadow); overflow: hidden; min-width: 0; }
.tr-tabs { display: flex; border-bottom: 1px solid var(--line); }
.tr-tabs button { position: relative; flex: 1; height: 42px; border: 0; background: transparent; color: var(--ink-3); font: 500 13.5px var(--sans); cursor: pointer; }
.tr-tabs button + button { border-left: 1px solid var(--line); }
.tr-tabs button:hover { color: var(--ink); }
.tr-tabs button[aria-selected="true"] { color: var(--ink); background: var(--bg-soft); }
.tr-tabs button b { position: absolute; left: 0; bottom: -1px; height: 2px; width: 0; background: var(--accent); }
.tr-tabs button[aria-selected="true"] b { width: 100%; }
.trace.auto .tr-tabs button[aria-selected="true"] b { animation: fill var(--cycle, 6200ms) linear both; }
@keyframes fill { from { width: 0; } to { width: 100%; } }
.tr-body { position: relative; padding: 16px 18px 18px; }
.tr-body.stack { display: grid; }
.tr-body.stack > .tr-ex { grid-area: 1 / 1; min-width: 0; }
.tr-body.stack > .tr-ex.is-off { visibility: hidden; }
.tr-cap { display: flex; align-items: baseline; justify-content: space-between; gap: 12px; margin-bottom: 6px; }
.tr-name { font: 500 18px/1.2 var(--serif); color: var(--ink); }
.tr-name:hover { color: var(--accent); }
.tr-unit { font-size: 12px; color: var(--ink-3); text-align: right; }
.tr-t { font-size: 13.5px; }
.tr-t thead th { text-align: right; padding: 6px 0 7px 10px; font: 500 11.5px var(--mono); letter-spacing: 0; text-transform: none; }
.tr-t thead th:first-child { text-align: left; padding-left: 0; }
.tr-t tbody th { text-align: left; font: 400 13.5px var(--sans); color: var(--ink-2); padding: 8px 10px 8px 0; border-bottom: 1px solid var(--line); }
.tr-t tbody td { padding: 8px 0 8px 10px; text-align: right; white-space: nowrap; }
.tr-t .c { font: 400 13.5px var(--mono); font-variant-numeric: tabular-nums; padding: 2px 5px; margin: -2px -5px; border-radius: 5px; transition: background .25s, color .25s, box-shadow .25s; }
.tr-t .c.hit { background: var(--accent-soft); color: var(--accent-ink); box-shadow: 0 0 0 1px var(--accent); }
.tr-t.anim tbody tr { animation: rise .45s var(--ease) both; }
.tr-t.anim tbody tr:nth-child(2) { animation-delay: 70ms; } .tr-t.anim tbody tr:nth-child(3) { animation-delay: 140ms; } .tr-t.anim tbody tr:nth-child(4) { animation-delay: 210ms; }
.tr-src { margin-top: 14px; padding: 13px 15px; border: 1px solid var(--line-2); border-radius: 12px; background: var(--surface-2); transition: opacity .35s var(--ease), transform .35s var(--ease); }
.tr-src.off { opacity: 0; transform: translateY(6px); }
.tr-src .k { font-size: 12px; color: var(--ink-3); }
.tr-src .v { font: 500 18px var(--mono); color: var(--ink); margin: 3px 0 9px; }
.tr-src .v small { font: 400 12px var(--sans); color: var(--ink-3); margin-left: 8px; }
.tr-src dl { display: grid; grid-template-columns: auto minmax(0, 1fr); gap: 5px 14px; margin: 0; font-size: 13px; }
.tr-src dt { color: var(--ink-3); }
.tr-src dd { margin: 0; color: var(--ink-2); min-width: 0; overflow-wrap: anywhere; }
.tr-src dd code { font-size: 12px; color: var(--ink); }
.tr-src.on dl > * { animation: rise .35s var(--ease) both; }
.tr-src.on dl > :nth-child(n+3) { animation-delay: 60ms; } .tr-src.on dl > :nth-child(n+5) { animation-delay: 120ms; } .tr-src.on dl > :nth-child(n+7) { animation-delay: 180ms; }
.cursor { position: absolute; left: 0; top: 0; z-index: 3; pointer-events: none; opacity: 0; transform: translate(var(--x, 0), var(--y, 0)); transition: transform .7s var(--ease), opacity .3s; }
.cursor.on { opacity: 1; }
.cursor svg { display: block; filter: drop-shadow(0 2px 3px rgba(0, 0, 0, .35)); }
.cursor path { fill: var(--ink); stroke: var(--bg); stroke-width: 1.2; }
.cursor .ring { position: absolute; left: -8px; top: -8px; width: 16px; height: 16px; border-radius: 50%; border: 2px solid var(--accent); opacity: 0; }
.cursor.click .ring { animation: ring .5s var(--ease); }
@keyframes ring { from { opacity: .9; transform: scale(.3); } to { opacity: 0; transform: scale(1.7); } }
@keyframes rise { from { opacity: 0; transform: translateY(5px); } }

/* landing coverage: one tile per company ---------------------------------------------------------------- */
.tk-wrap { position: relative; }
.tk-grid { display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); border-top: 1px solid var(--line); border-left: 1px solid var(--line); }
.tk { position: relative; display: flex; flex-direction: column; gap: 2px; min-width: 0; padding: 11px 12px 10px; border-right: 1px solid var(--line); border-bottom: 1px solid var(--line); color: var(--ink); }
.tk:hover, .tk:focus-visible { background: var(--bg-soft); text-decoration: none; color: var(--ink); }
/* the market filter sets hidden on tiles, and display: flex above would keep them visible */
.tk[hidden] { display: none; }
.tk b { font: 500 13.5px var(--mono); color: var(--ink); }
.tk .n { font-size: 12.5px; color: var(--ink-2); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.tk .s, .tk .p { font-size: 11.5px; color: var(--ink-3); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.tk .p { display: none; color: var(--accent-ink); }
.tk:hover .s, .tk:focus-visible .s { display: none; }
.tk:hover .p, .tk:focus-visible .p { display: block; }
.tk.lit { animation: lit 1.1s var(--ease) backwards; animation-delay: var(--d, 0ms); }
.tk.lit b { animation: litb 1.1s var(--ease) backwards; animation-delay: var(--d, 0ms); }
@keyframes lit { 0%, 100% { background-color: transparent; } 30% { background-color: var(--accent-soft); } }
@keyframes litb { 0%, 100% { color: var(--ink); } 30% { color: var(--accent-ink); } }
.tk-note { margin: 14px 0 0; font-size: 13px; color: var(--ink-3); max-width: 110ch; }

/* landing agents: MCP terminal --------------------------------------------------------------------------- */
.ag-tools { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 18px; }
.ag-tools code { font: 400 12px var(--mono); color: var(--ink-2); border: 1px solid var(--line-2); border-radius: 6px; padding: 3px 7px; transition: background .25s, color .25s, border-color .25s; }
.ag-tools code.on { background: var(--accent-soft); color: var(--accent-ink); border-color: transparent; }
.term { border: 1px solid var(--line-2); border-radius: 12px; background: var(--bg-soft); overflow: hidden; box-shadow: var(--shadow); min-width: 0; }
.term-h { display: flex; align-items: center; gap: 8px; padding: 10px 14px; border-bottom: 1px solid var(--line); font: 500 12.5px var(--sans); color: var(--ink-2); }
.term-h .dot { width: 7px; height: 7px; border-radius: 50%; background: var(--ok); animation: pulse 2.2s infinite; }
.term-h .ro { margin-left: auto; font: 400 11.5px var(--mono); color: var(--ink-3); border: 1px solid var(--line-2); border-radius: 5px; padding: 1px 6px; }
.term-b { margin: 0; padding: 14px 16px; height: 336px; overflow: hidden; font: 400 12.5px/1.7 var(--mono); color: var(--ink-2); white-space: pre-wrap; overflow-wrap: anywhere; }
.term-b .ln { display: block; }
.term-b .ln.new { animation: rise .25s var(--ease) both; }
.term-b .pr { color: var(--accent); }
.term-b .tl { color: var(--ink); font-weight: 500; }
.term-b .k { color: var(--accent-ink); }
.term-b .s { color: var(--ink); }
.term-b .nm { color: var(--warm); }
.term-b .cm { color: var(--ink-3); }
.caret { display: inline-block; width: 7px; height: 1.1em; vertical-align: -3px; margin-left: 1px; background: var(--accent); animation: blink 1s steps(2) infinite; }
@keyframes blink { 50% { opacity: 0; } }
.l-final { margin-top: 88px; padding: 72px 0; border-top: 1px solid var(--line); text-align: center;
  background: radial-gradient(40% 80% at 50% 100%, color-mix(in srgb, var(--s1) 16%, transparent), transparent 70%); }
.l-final h2 { font-size: 38px; max-width: 22ch; margin: 0 auto 24px; }
.l-final .l-cta { justify-content: center; }
body[data-page="landing"] footer { margin-top: 0; }

/* chips, facets, segmented controls ------------------------------------------------------------- */
.facets { display: grid; grid-template-columns: repeat(4, 1fr); gap: 20px 28px; margin-bottom: 18px; }
.facet .l, .ctl .l { font: 600 11px/1 var(--sans); letter-spacing: .09em; text-transform: uppercase; color: var(--ink-3); margin-bottom: 10px; }
.chips { display: flex; flex-wrap: wrap; gap: 8px; }
.chip { display: inline-flex; align-items: center; gap: 7px; height: 32px; padding: 0 12px; border: 1px solid var(--line-2); border-radius: 999px;
  background: var(--surface); color: var(--ink-2); font: 500 13px var(--sans); cursor: pointer; }
.chip .c { font: 400 12px var(--mono); color: var(--ink-3); }
.chip:hover { border-color: var(--ink-3); color: var(--ink); }
.chip[aria-pressed="true"] { background: var(--accent); border-color: var(--accent); color: var(--on-accent); }
.chip[aria-pressed="true"] .c { color: inherit; opacity: .75; }
.seg { display: inline-flex; padding: 3px; border: 1px solid var(--line-2); border-radius: 10px; background: var(--bg-soft); gap: 2px; flex-wrap: wrap; }
.seg button { height: 30px; padding: 0 12px; border: 0; border-radius: 7px; background: transparent; color: var(--ink-2); font: 500 13px var(--sans); cursor: pointer; }
.seg button:hover { color: var(--ink); }
.seg button[aria-pressed="true"] { background: var(--surface-2); color: var(--ink); box-shadow: 0 0 0 1px var(--line-2); }
.controls { display: flex; flex-wrap: wrap; align-items: flex-end; gap: 16px 24px; margin-bottom: 18px; }
.active { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; min-height: 32px; margin-bottom: 12px; font-size: 13px; color: var(--ink-3); }
.label { display: inline-flex; align-items: center; gap: 6px; height: 28px; padding: 0 6px 0 10px; border-radius: 7px; background: var(--accent-soft);
  color: var(--accent-ink); font: 500 13px var(--sans); }
.label button { border: 0; background: transparent; color: inherit; font-size: 16px; line-height: 1; cursor: pointer; padding: 0 4px; }
.clear { border: 0; background: transparent; color: var(--accent); font: 500 13px var(--sans); cursor: pointer; padding: 0; }
select { height: 36px; padding: 0 30px 0 12px; border: 1px solid var(--line-2); border-radius: 9px; background: var(--surface); color: var(--ink);
  font: 500 14px var(--sans); appearance: none; cursor: pointer;
  background-image: linear-gradient(45deg, transparent 50%, var(--ink-3) 50%), linear-gradient(135deg, var(--ink-3) 50%, transparent 50%);
  background-position: calc(100% - 16px) 15px, calc(100% - 11px) 15px; background-size: 5px 5px; background-repeat: no-repeat; }

/* tables ---------------------------------------------------------------------------------------- */
table { width: 100%; border-collapse: collapse; font-size: 14px; }
thead th { text-align: left; font: 600 11px/1.25 var(--sans); letter-spacing: .07em; text-transform: uppercase; color: var(--ink-3);
  padding: 10px 12px 10px 0; border-bottom: 1px solid var(--line-2); white-space: nowrap; vertical-align: bottom; }
thead th button.sort { all: unset; cursor: pointer; }
thead th button.sort:hover { color: var(--ink); }
thead th button.sort:focus-visible { outline: 2px solid var(--accent); outline-offset: 2px; border-radius: 3px; }
thead th[aria-sort="ascending"] button.sort::after { content: " ↑"; }
thead th[aria-sort="descending"] button.sort::after { content: " ↓"; }
tbody td { padding: 13px 12px 13px 0; border-bottom: 1px solid var(--line); vertical-align: top; }
tbody tr.link { cursor: pointer; }
tbody tr.link:hover td { background: var(--bg-soft); }
th.r, td.r { text-align: right; }
td .co { font: 500 16px/1.3 var(--serif); color: var(--ink); }
td a.co:hover { color: var(--accent); }
td .sub { font-size: 12.5px; color: var(--ink-3); margin-top: 2px; }
td.na, span.na { color: var(--ink-3); }
td.span-note { color: var(--ink-3); font-size: 13px; }
.none { padding: 26px 0; color: var(--ink-3); }
.table-scroll { overflow-x: auto; -webkit-overflow-scrolling: touch; border-top: 1px solid var(--line-2); }
.table-scroll table thead th { border-bottom-color: var(--line-2); }

/* company page ---------------------------------------------------------------------------------- */
.crumbs { font-size: 13px; color: var(--ink-3); padding-top: 26px; }
.crumbs a { color: var(--ink-3); }
.crumbs a:hover { color: var(--ink); }
.co-head { padding: 14px 0 22px; display: grid; grid-template-columns: 1fr auto; gap: 18px 32px; align-items: end; }
.co-head h1 { font-size: 42px; }
.co-meta { margin: 10px 0 0; color: var(--ink-2); font-size: 14.5px; }
.co-asof { margin: 6px 0 0; color: var(--ink-3); font-size: 13.5px; }
.co-actions { display: flex; gap: 10px; flex-wrap: wrap; }
.tabs { display: flex; gap: 4px; border-bottom: 1px solid var(--line); position: sticky; top: 62px; z-index: 20; background: var(--bg); overflow-x: auto; scrollbar-width: none; }
.tabs::-webkit-scrollbar { display: none; }
.tabs a { padding: 13px 14px 12px; color: var(--ink-3); font: 500 14px var(--sans); border-bottom: 2px solid transparent; white-space: nowrap; margin-bottom: -1px; }
.tabs a:hover { color: var(--ink); text-decoration: none; }
.tabs a[aria-selected="true"] { color: var(--ink); border-bottom-color: var(--accent); }
.tab-ink { position: absolute; left: 0; bottom: 0; height: 2px; width: 0; background: var(--accent); pointer-events: none; }
.tabs.inked .tab-ink { transition: transform .35s var(--ease), width .35s var(--ease); }
.tabs.inked a[aria-selected="true"] { border-bottom-color: transparent; }
.panel { padding: 30px 0 10px; }
.panel[hidden] { display: none; }
.panel > h2 { margin-bottom: 6px; }
.panel-sub { color: var(--ink-3); font-size: 14px; margin: 0 0 20px; max-width: 70ch; }
.tiles { display: grid; grid-template-columns: repeat(6, 1fr); border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.tile { padding: 18px 18px 16px 0; min-width: 0; }
.tile + .tile { padding-left: 18px; border-left: 1px solid var(--line); }
.tile .l { font-size: 12.5px; color: var(--ink-3); min-height: 2.6em; }
.tile .v { display: block; margin-top: 6px; font: 400 30px/1.05 var(--serif); letter-spacing: -.01em; color: var(--ink); font-variant-numeric: lining-nums; white-space: nowrap; }
button.v { all: unset; display: block; margin-top: 6px; font: 400 30px/1.05 var(--serif); letter-spacing: -.01em; color: var(--ink); cursor: pointer;
  font-variant-numeric: lining-nums; white-space: nowrap; border-bottom: 1px dashed transparent; }
button.v:hover { border-bottom-color: var(--ink-3); }
button.v:focus-visible { outline: 2px solid var(--accent); outline-offset: 3px; border-radius: 3px; }
.tile .d { display: block; margin-top: 8px; font: 400 12.5px var(--mono); color: var(--ink-2); }
.two { display: grid; grid-template-columns: 1fr 1fr; gap: 28px; }
.findings { list-style: none; margin: 0; padding: 0; counter-reset: f; }
.findings > li { position: relative; padding: 14px 0 14px 34px; border-bottom: 1px solid var(--line); color: var(--ink); counter-increment: f; }
.findings > li::before { content: counter(f, decimal-leading-zero); position: absolute; left: 0; top: 15px; font: 400 13px var(--mono); color: var(--warm); }
.findings > li:first-child { border-top: 1px solid var(--line); }
.findings .rule { display: block; margin-top: 4px; font: 400 11.5px var(--mono); color: var(--ink-3); }
.findings .rule a { white-space: nowrap; }
.findings .rule .rt { font: 400 12px var(--sans); } /* the title of the rule; its id is in the tooltip */
.findings .ft { margin: 0; }
.fmean { margin: 6px 0 0; max-width: 92ch; font-size: 13px; line-height: 1.5; color: var(--ink-3); }
.fmean b { font-weight: 600; color: var(--ink-2); }
.fstate { display: flex; flex-wrap: wrap; align-items: center; gap: 4px 10px; margin-top: 8px; font-size: 12.5px; color: var(--ink-3); }
.state { display: inline-flex; align-items: center; gap: 5px; height: 22px; padding: 0 8px; border-radius: 6px; border: 1px solid var(--line-2);
  background: var(--surface-2); color: var(--ink-2); font: 500 11.5px var(--sans); white-space: nowrap; }
.state.st-new { background: var(--accent-soft); border-color: transparent; color: var(--accent-ink); }
.state.st-retired { color: var(--ink-3); background: transparent; }
.hist { margin-top: 8px; }
.hist summary { cursor: pointer; font-size: 12.5px; color: var(--accent); list-style: none; }
.hist summary::-webkit-details-marker { display: none; }
.hist summary::before { content: "\25B8"; display: inline-block; width: 14px; color: var(--ink-3); }
.hist[open] summary::before { content: "\25BE"; }
.timeline { list-style: none; margin: 10px 0 4px; padding: 0 0 0 14px; border-left: 1px solid var(--line-2); }
.timeline li { display: grid; grid-template-columns: 76px 116px 1fr; gap: 4px 10px; align-items: baseline; padding: 7px 0; }
.timeline .state { justify-self: start; }
.timeline .tp { font: 400 12px var(--mono); color: var(--ink-2); }
.timeline .tx { font-size: 13px; color: var(--ink-2); }
.timeline .tb { grid-column: 3; font: 400 11px var(--mono); color: var(--ink-3); }
.former { margin-top: 26px; }
.former h3 { font: 600 11px/1 var(--sans); letter-spacing: .09em; text-transform: uppercase; color: var(--ink-3); margin-bottom: 4px; }
.former ul { list-style: none; margin: 8px 0 0; padding: 0; }
.former li { padding: 10px 0; border-bottom: 1px solid var(--line); }
.former .hist { margin-top: 0; }
.former .hist summary { color: var(--ink); font-size: 14px; }
.charts { display: grid; grid-template-columns: repeat(3, 1fr); gap: 18px; }
.chart-card { border: 1px solid var(--line); border-radius: 14px; background: var(--surface); padding: 16px 16px 10px; min-width: 0; }
.chart-card h3 { font: 600 13.5px/1.3 var(--sans); color: var(--ink); }
.chart-card .cs { font-size: 12.5px; color: var(--ink-3); margin: 2px 0 6px; }
.chart-card.wide { grid-column: span 2; }
.chart-card.full { grid-column: 1 / -1; }
.chart { position: relative; }
.chart svg { display: block; width: 100%; height: auto; overflow: visible; }
.chart .grid line { stroke: var(--grid); stroke-width: 1; shape-rendering: crispEdges; }
.chart .zero { stroke: var(--axis); stroke-width: 1; shape-rendering: crispEdges; }
.chart text { fill: var(--ink-3); font: 400 11px var(--sans); font-variant-numeric: tabular-nums; }
.chart text.end { fill: var(--ink-2); font-weight: 500; }
.chart .bar { fill: var(--s1); }
.chart .bar.dim { opacity: .45; }
.chart .bar { transform-box: fill-box; transform-origin: 50% 100%; }
.chart .bar.neg { transform-origin: 50% 0; }
.chart.pre .bar { transform: scaleY(0); }
.chart.drawing .bar { transition: transform .6s var(--ease); transition-delay: calc(var(--i, 0) * 16ms); }
.chart.pre .line, .chart.drawing .line { stroke-dasharray: 1; }
.chart.pre .line { stroke-dashoffset: 1; }
.chart.drawing .line { stroke-dashoffset: 0; transition: stroke-dashoffset 1.1s var(--ease); }
.chart.pre .dot, .chart.pre text.end { opacity: 0; }
.chart.drawing .dot, .chart.drawing text.end { transition: opacity .3s var(--ease) .8s; }
.chart .hit { fill: transparent; cursor: crosshair; }
.chart .hover-bar { fill: var(--ink); opacity: .06; }
.chart .line { fill: none; stroke-width: 2; stroke-linejoin: round; stroke-linecap: round; }
.chart .dot { stroke: var(--surface); stroke-width: 2; }
.chart .cross { stroke: var(--ink-3); stroke-width: 1; shape-rendering: crispEdges; }
.chart .off { fill: var(--surface); stroke-width: 1.6; stroke-linejoin: round; } /* a value off the scale, at the edge */
.chart-off { margin: 6px 0 0; font-size: 12px; }
.s1 { stroke: var(--s1); } .s2 { stroke: var(--s2); } .s3 { stroke: var(--s3); } .s4 { stroke: var(--s4); }
.f1 { fill: var(--s1); } .f2 { fill: var(--s2); } .f3 { fill: var(--s3); } .f4 { fill: var(--s4); }
.legend { display: flex; flex-wrap: wrap; gap: 6px 16px; font-size: 12.5px; color: var(--ink-2); margin: 2px 0 8px; }
.legend span { display: inline-flex; align-items: center; gap: 7px; }
.legend i { display: inline-block; width: 14px; height: 2px; border-radius: 2px; }
.legend .lv { font: 500 12px var(--mono); color: var(--ink); }
.legend i.k1 { background: var(--s1); } .legend i.k2 { background: var(--s2); } .legend i.k3 { background: var(--s3); } .legend i.k4 { background: var(--s4); }
.tip { position: absolute; pointer-events: none; z-index: 10; min-width: 140px; padding: 9px 11px; border: 1px solid var(--line-2); border-radius: 10px;
  background: var(--surface-2); box-shadow: var(--shadow); font-size: 12.5px; color: var(--ink-2); white-space: nowrap; }
.tip[hidden] { display: none; }
.tip .tt { color: var(--ink-3); margin-bottom: 4px; }
.tip .tv { font: 500 14px var(--mono); color: var(--ink); }
.tip .row { display: flex; align-items: center; gap: 8px; margin-top: 3px; }
.tip .row i { width: 12px; height: 2px; border-radius: 2px; flex: none; }
.tip .row .tv { margin-left: auto; padding-left: 14px; font-size: 13px; }

/* statements and ratios ------------------------------------------------------------------------- */
.stmt table { font-size: 13.5px; }
.stmt thead th { text-align: right; padding: 10px 0 10px 18px; }
.stmt thead th:first-child { text-align: left; padding-left: 0; position: sticky; left: 0; background: var(--bg); z-index: 2; }
.stmt thead th .pe { display: block; font: 400 11px var(--sans); letter-spacing: 0; text-transform: none; color: var(--ink-3); margin-top: 3px; }
.stmt tbody td { padding: 9px 0 9px 18px; text-align: right; white-space: nowrap; }
.stmt tbody td:first-child { text-align: left; padding-left: 0; white-space: normal; min-width: 230px; max-width: 320px; position: sticky; left: 0; background: var(--bg); z-index: 1; color: var(--ink-2); }
.stmt tbody tr.key td:first-child { color: var(--ink); font-weight: 500; }
.stmt tbody tr.key td { border-bottom-color: var(--line-2); }
.cell { all: unset; font: 400 13.5px var(--mono); font-variant-numeric: tabular-nums; color: var(--ink); cursor: pointer; padding: 2px 4px; margin: -2px -4px; border-radius: 5px; }
.cell:hover { background: var(--accent-soft); color: var(--accent-ink); }
.cell:focus-visible { outline: 2px solid var(--accent); outline-offset: 0; }
.cell.derived { color: var(--ink-2); }
.cell.derived::after { content: "d"; font-size: 9px; vertical-align: super; color: var(--warm); margin-left: 1px; }
.stmt-bar { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 12px 20px; margin-bottom: 14px; }
.stmt-bar .files { font-size: 13px; color: var(--ink-3); }
.ratio-group { margin-top: 26px; }
.ratio-group h3 { font: 600 11px/1 var(--sans); letter-spacing: .09em; text-transform: uppercase; color: var(--ink-3); margin-bottom: 4px; }
.ratios-table td.name { color: var(--ink); }
.ratios-table td.name .def { display: block; font-size: 12.5px; color: var(--ink-3); margin-top: 2px; max-width: 54ch; }
.ratios-table td.name .mean, .an-table td.name .mean { display: block; font-size: 13px; line-height: 1.45; color: var(--ink-2); margin-top: 3px; max-width: 62ch; }
.ratios-table td.spark { width: 128px; padding-top: 12px; }
.ratios-table td.spark svg { display: block; width: 120px; height: 28px; overflow: visible; }
.ratios-table td.spark polyline { fill: none; stroke: var(--s1); stroke-width: 1.5; stroke-linejoin: round; stroke-linecap: round; }
.ratios-table td.spark circle { fill: var(--s1); }
.stmt tbody tr.grp td { padding-top: 22px; font: 600 11px/1 var(--sans); letter-spacing: .09em; text-transform: uppercase; color: var(--ink-3); border-bottom-color: var(--line-2); }

/* corporate events ------------------------------------------------------------------------------ */
.events { list-style: none; margin: 0; padding: 0; }
.events > li { padding: 12px 0; border-bottom: 1px solid var(--line); }
.events > li:first-child { border-top: 1px solid var(--line); }
.events .eh { display: flex; flex-wrap: wrap; gap: 4px 10px; align-items: baseline; }
.events .ek { font: 600 11px/1.3 var(--sans); letter-spacing: .07em; text-transform: uppercase; color: var(--accent-ink); }
.events .ed { font-size: 12.5px; color: var(--ink-3); }
.events .et { margin: 4px 0 0; color: var(--ink); font-size: 14px; }
.events .es { display: block; margin-top: 3px; font: 400 11.5px var(--mono); color: var(--ink-3); }

/* analysis -------------------------------------------------------------------------------------- */
.module { margin-top: 52px; }
.module:first-of-type { margin-top: 10px; }
.module .findings { margin-bottom: 8px; }
.an-h { font: 600 11px/1.3 var(--sans); letter-spacing: .09em; text-transform: uppercase; color: var(--ink-3); margin: 30px 0 10px; }
.an-table { font-size: 13.5px; }
.an-table thead th { text-align: right; padding: 10px 0 10px 18px; }
.an-table thead th:first-child { text-align: left; padding-left: 0; }
.an-table thead th .pe { display: block; font: 400 11px var(--sans); letter-spacing: 0; text-transform: none; color: var(--ink-3); margin-top: 3px; }
.an-table tbody td { padding: 9px 0 9px 18px; text-align: right; white-space: nowrap; }
.an-table tbody td:first-child { text-align: left; padding-left: 0; white-space: normal; min-width: 220px; color: var(--ink-2); }
.an-table td.name { color: var(--ink); }
.an-table td.name .def { display: block; font-size: 12px; color: var(--ink-3); margin-top: 2px; max-width: 52ch; }
.an-table td.num, .an-table td .num { font: 400 13.5px var(--mono); font-variant-numeric: tabular-nums; color: var(--ink); }
.an-table tr.tot td { color: var(--ink); font-weight: 500; border-bottom-color: var(--line-2); }
.an-table .band { display: block; font: 400 11px var(--sans); color: var(--ink-3); margin-top: 3px; }
.band-scale { table-layout: fixed; min-width: 640px; }
.band-scale th, .band-scale td { border: 1px solid var(--line); padding: 10px 8px; vertical-align: middle; }
.band-scale thead th { text-align: center; border-bottom-color: var(--line); white-space: normal; text-transform: none; letter-spacing: 0; font: 600 12px/1.25 var(--sans); color: var(--ink-2); }
.band-scale thead th:first-child, .band-scale tbody th { text-align: left; font: 500 13px var(--sans); letter-spacing: 0; text-transform: none; color: var(--ink-2); width: 130px; }
.band-scale td { text-align: center; font-size: 12px; color: var(--ink-3); }
.band-scale td span { display: block; }
.band-scale td.on { background: var(--accent-soft); border-color: var(--accent); color: var(--accent-ink); }
.band-scale td.on b { display: block; font: 500 15px var(--mono); color: var(--ink); margin-bottom: 2px; }
.band-scale.zones { min-width: 0; margin: 12px 0 4px; }
.su { display: grid; grid-template-columns: 1fr 1fr; gap: 28px; }
.su-t tbody td:first-child { min-width: 0; }
.cover { margin: 12px 0 0; font-size: 14px; color: var(--ink-2); }
.cover b { font-size: 16px; color: var(--ink); margin-left: 6px; }
.module .chart-card { margin-bottom: 12px; }
.mat-t tbody td:first-child { min-width: 0; text-align: right; padding-left: 18px; }
.mat-t thead th:first-child { text-align: right; padding-left: 18px; }
.scores { display: grid; grid-template-columns: 1fr 1fr; gap: 18px; margin-top: 26px; }
.score-card { border: 1px solid var(--line); border-radius: 14px; background: var(--surface); padding: 18px 18px 8px; min-width: 0; }
.score-card h3 { font: 600 13.5px/1.3 var(--sans); color: var(--ink); }
.score-card .cs { font-size: 12.5px; color: var(--ink-3); margin: 2px 0 0; }
.score-card .sv { display: inline-block; margin: 10px 0 2px; font: 400 34px/1.05 var(--serif); color: var(--ink); padding: 2px 6px; margin-left: -6px; }
.score-card .sv .of { font: 400 15px var(--sans); color: var(--ink-3); }
.score-card .an-table tbody td:first-child { min-width: 180px; }
.score-card .note { margin: 12px 0 10px; }
.score-card .mean, .module .mean { font-size: 13.5px; line-height: 1.5; color: var(--ink-2); margin: 8px 0 0; max-width: 78ch; }
.score-card .reading, .module .reading { font-size: 14px; line-height: 1.5; color: var(--ink); margin: 8px 0 10px; max-width: 78ch; }
.score-card .an-table td.name .def { display: block; font-size: 12px; color: var(--ink-3); margin-top: 2px; white-space: normal; }
.sig { display: inline-flex; align-items: center; gap: 6px; font-size: 12.5px; color: var(--ink-2); }
.sig::before { display: inline-grid; place-items: center; width: 16px; height: 16px; border-radius: 50%; font: 600 10px/1 var(--sans); }
.sig.met::before { content: "\2713"; background: var(--accent-soft); color: var(--accent-ink); }
.sig.miss::before { content: "\00D7"; border: 1px solid var(--line-2); color: var(--ink-3); }
.an-notes { margin: 18px 0 0; padding-left: 18px; font-size: 13px; color: var(--ink-3); max-width: 92ch; }
.an-notes li { margin: 5px 0; }

/* analysis: credit update ----------------------------------------------------------------------------- */
/* the bar sits 1 pixel under the tab bar (top 62px, 44px high) so that no text shows between them; its chips scroll on
   their own and the tools at the right stay in view */
.an-jump, .r-jump { position: sticky; top: 105px; z-index: 15; display: flex; align-items: center; gap: 12px; padding: 10px 0;
  background: var(--bg); border-bottom: 1px solid var(--line); }
.jl { position: relative; display: flex; gap: 6px; flex: 1; min-width: 0; overflow-x: auto; scrollbar-width: none; }
.jl::-webkit-scrollbar { display: none; }
.jl.more { --fade: linear-gradient(to right, #000 calc(100% - 32px), transparent); }
.jl.less { --fade: linear-gradient(to right, transparent, #000 32px); }
.jl.less.more { --fade: linear-gradient(to right, transparent, #000 32px, #000 calc(100% - 32px), transparent); }
.jl.more, .jl.less { -webkit-mask-image: var(--fade); mask-image: var(--fade); }
.tabs.more { --fade: linear-gradient(to right, #000 calc(100% - 40px), transparent); }
.tabs.less { --fade: linear-gradient(to right, transparent, #000 40px); }
.tabs.less.more { --fade: linear-gradient(to right, transparent, #000 40px, #000 calc(100% - 40px), transparent); }
.tabs.more, .tabs.less { -webkit-mask-image: var(--fade); mask-image: var(--fade); }
.jt { display: flex; align-items: center; gap: 6px; flex: none; }
.an-jump a, .r-jump a { display: inline-flex; align-items: center; gap: 6px; height: 28px; padding: 0 11px; border-radius: 999px;
  border: 1px solid var(--line-2); color: var(--ink-2); font: 500 12.5px var(--sans); white-space: nowrap; }
.an-jump a:hover, .r-jump a:hover { text-decoration: none; color: var(--ink); border-color: var(--ink-3); }
.an-jump a[aria-current="true"], .r-jump a[aria-current="true"] { background: var(--accent-soft); border-color: transparent; color: var(--accent-ink); }
.an-jump .dot { width: 6px; height: 6px; border-radius: 50%; background: var(--warn); }
.tool { height: 28px; padding: 0 10px; border: 1px solid var(--line-2); border-radius: 8px; background: var(--surface); color: var(--ink-2);
  font: 500 12.5px var(--sans); cursor: pointer; white-space: nowrap; }
.tool:hover { color: var(--ink); border-color: var(--ink-3); }
.switch { display: inline-flex; align-items: center; gap: 8px; height: 28px; padding: 0 10px 0 6px; border: 1px solid var(--line-2); border-radius: 999px;
  background: var(--surface); color: var(--ink-2); font: 500 12.5px var(--sans); cursor: pointer; white-space: nowrap; }
.switch i { position: relative; width: 26px; height: 16px; border-radius: 999px; background: var(--line-2); transition: background .2s; }
.switch i::after { content: ""; position: absolute; top: 2px; left: 2px; width: 12px; height: 12px; border-radius: 50%; background: var(--ink); transition: transform .2s var(--ease); }
.switch[aria-checked="true"] i { background: var(--accent); }
.switch[aria-checked="true"] i::after { transform: translateX(10px); background: var(--on-accent); }
#analysis [id^="an-"], #ratio-groups [id] { scroll-margin-top: 172px; }
.cu-head { display: flex; align-items: flex-end; justify-content: space-between; gap: 14px 24px; flex-wrap: wrap; padding: 24px 0 16px; }
.cu-title { font: 400 28px/1.15 var(--serif); margin: 10px 0 6px; }
.cu-head p { margin: 0; font-size: 13.5px; color: var(--ink-2); max-width: 72ch; }
.cu-count { display: flex; gap: 8px; }
.cu-count span { display: inline-flex; align-items: baseline; gap: 6px; padding: 6px 10px; border: 1px solid var(--line-2); border-radius: 10px; font-size: 12.5px; color: var(--ink-2); }
.cu-count b { font: 400 20px/1 var(--serif); color: var(--ink); }
.cu-cards { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 10px; }
.cu-card { display: flex; flex-direction: column; gap: 6px; text-align: left; padding: 13px 14px 12px; border: 1px solid var(--line); border-radius: 12px;
  background: var(--surface); color: var(--ink); cursor: pointer; min-width: 0; font: inherit; transition: border-color .2s, box-shadow .2s; }
.cu-card:hover { border-color: var(--line-2); box-shadow: var(--shadow); }
.cu-card .k { display: flex; align-items: center; justify-content: space-between; gap: 6px; font: 600 10.5px/1.2 var(--sans); letter-spacing: .08em;
  text-transform: uppercase; color: var(--ink-3); }
.cu-card .v { font: 400 28px/1.05 var(--serif); color: var(--ink); font-variant-numeric: lining-nums; }
.cu-card .v small { font: 400 12px var(--sans); color: var(--ink-3); margin-left: 6px; }
.cu-card .m { font-size: 12px; color: var(--ink-2); }
.per { display: inline-flex; align-items: center; height: 18px; padding: 0 5px; border-radius: 4px; border: 1px solid var(--line-2); font: 400 10.5px var(--mono);
  color: var(--ink-3); vertical-align: 1px; white-space: nowrap; }
.per.lag { border-color: color-mix(in srgb, var(--warn) 55%, transparent); color: var(--warn); }
.rkey .d .lag { color: var(--warn); }
.rt .per-m { display: none; }
.sort-m { display: none; }
.sort-row { display: flex; gap: 8px; }
.sort-row select { flex: 1; min-width: 0; }
.cu-chip { align-self: flex-start; display: inline-flex; align-items: center; height: 20px; padding: 0 7px; border-radius: 6px; font: 500 11px var(--sans);
  white-space: nowrap; border: 1px solid var(--line-2); color: var(--ink-2); background: var(--surface-2); }
.cu-chip.band { background: var(--accent-soft); color: var(--accent-ink); border-color: transparent; }
.cu-chip.flag { color: var(--warn); border-color: color-mix(in srgb, var(--warn) 50%, transparent); background: transparent; }
.cu-chip.est { color: var(--warn); border-color: color-mix(in srgb, var(--warn) 50%, transparent); background: transparent; margin-top: 4px; }
.est { margin: 0 4px; padding: 0 4px; border-radius: 4px; font: 500 10px var(--sans); color: var(--warn); border: 1px solid color-mix(in srgb, var(--warn) 45%, transparent); vertical-align: 1px; cursor: help; }
.r-excl { margin: 6px 0 10px; max-width: 92ch; }
.cu-lists { display: grid; grid-template-columns: minmax(0, 1.35fr) minmax(0, 1fr); gap: 14px; margin-top: 14px; align-items: start; }
.cu-list { border: 1px solid var(--line); border-radius: 12px; background: var(--surface); padding: 6px 14px 10px; min-width: 0; }
.cu-list h4 { display: flex; align-items: baseline; justify-content: space-between; gap: 8px; margin: 8px 0 4px; font: 600 11px/1.2 var(--sans);
  letter-spacing: .09em; text-transform: uppercase; color: var(--ink-3); }
.cu-list h4 span { font: 400 12px var(--mono); letter-spacing: 0; }
.cu-list ul { list-style: none; margin: 0; padding: 0; }
.cu-list li { padding: 9px 0; border-top: 1px solid var(--line); }
.cu-list ul > li:first-child { border-top: 0; }
.cu-list .note { margin: 6px 0; }
.cu-list h4.lim { margin-top: 12px; padding-top: 10px; border-top: 1px solid var(--line); }
.ch-top { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }
.ch-top b { font-weight: 500; font-size: 13.5px; color: var(--ink); }
.ch-top .src { font: 400 11px var(--mono); }
.ch-text { margin: 4px 0 0; font-size: 13px; line-height: 1.5; color: var(--ink-2); }
.ch-prev { margin-top: 4px; }
.ch-prev summary, .more-row > summary, .rmore > summary { cursor: pointer; font-size: 12.5px; color: var(--accent); list-style: none; }
.ch-prev summary::-webkit-details-marker, .more-row > summary::-webkit-details-marker, .rmore > summary::-webkit-details-marker { display: none; }
.ch-prev summary::before, .rmore > summary::before { content: "\25B8"; display: inline-block; width: 13px; color: var(--ink-3); }
.ch-prev[open] summary::before, .rmore[open] > summary::before { content: "\25BE"; }
.ch-prev p { margin: 6px 0 0; padding-left: 10px; border-left: 2px solid var(--line-2); font-size: 12.5px; color: var(--ink-3); }
.more-row > summary { padding: 9px 0 3px; border-top: 1px solid var(--line); }
.an-open { all: unset; margin-top: 6px; display: inline-block; font-size: 12.5px; color: var(--accent); cursor: pointer; }
.an-open:hover { text-decoration: underline; }
.an-open:focus-visible, .rx:focus-visible, .ti:focus-visible { outline: 2px solid var(--accent); outline-offset: 2px; border-radius: 3px; }
.an-sub { margin: 30px 0 6px; }
details.mod { border-top: 1px solid var(--line); }
details.mod:last-of-type { border-bottom: 1px solid var(--line); }
details.mod > summary { display: grid; grid-template-columns: 18px minmax(0, 1fr) auto; gap: 4px 10px; align-items: baseline; padding: 16px 0; cursor: pointer; list-style: none; }
details.mod > summary::-webkit-details-marker { display: none; }
details.mod > summary::before { content: "\25B8"; color: var(--ink-3); font-size: 13px; }
details.mod[open] > summary::before { content: "\25BE"; }
.mod-t { font: 400 24px/1.2 var(--serif); color: var(--ink); }
.mod-k { grid-column: 2 / -1; font-size: 13px; color: var(--ink-3); }
.mod-f { grid-column: 3; grid-row: 1; display: inline-flex; flex-wrap: wrap; justify-content: flex-end; gap: 6px; }
.mod-body { padding: 0 0 22px 28px; }
.mod-lead { margin: 0 0 12px; font-size: 13.5px; color: var(--ink-3); max-width: 84ch; }
details.part { border-top: 1px dashed var(--line); }
details.part > summary { padding: 11px 0; cursor: pointer; list-style: none; font: 600 11px/1.3 var(--sans); letter-spacing: .09em; text-transform: uppercase; color: var(--ink-3); }
details.part > summary::-webkit-details-marker { display: none; }
details.part > summary::before { content: "\25B8"; display: inline-block; width: 14px; }
details.part[open] > summary::before { content: "\25BE"; }
details.part > summary:hover { color: var(--ink); }
.part-in { padding: 0 0 16px; }
.scores.one { grid-template-columns: 1fr; margin-top: 0; }

/* ratios: key ratios, compact groups and rows that open ------------------------------------------------- */
.rkeys { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 1px; background: var(--line); border: 1px solid var(--line); border-radius: 12px;
  overflow: hidden; margin: 16px 0 6px; }
.rkey { display: grid; gap: 3px; min-width: 0; padding: 12px 14px 10px; border: 0; background: var(--surface); color: var(--ink); text-align: left; font: inherit; cursor: pointer; }
.rkey:hover { background: var(--bg-soft); }
.rkey .l { font-size: 12px; color: var(--ink-3); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.rkey .v { font: 400 24px/1.05 var(--serif); font-variant-numeric: lining-nums; }
.rkey .d { font: 400 11.5px var(--mono); color: var(--ink-2); white-space: nowrap; }
.rkey svg { display: block; width: 100%; height: 24px; overflow: visible; }
.rkey svg polyline, .rt svg polyline { fill: none; stroke: var(--s1); stroke-width: 1.5; stroke-linejoin: round; stroke-linecap: round; }
.rkey svg circle, .rt svg circle { fill: var(--s1); }
.rg { margin-top: 24px; }
.rg h3 { display: flex; align-items: baseline; gap: 8px; margin: 0 0 4px; font: 600 11px/1.3 var(--sans); letter-spacing: .09em; text-transform: uppercase; color: var(--ink-3); }
.rg h3 span { font: 400 11.5px var(--mono); letter-spacing: 0; }
.rg .table-scroll { border-top: 0; }
table.rt { table-layout: fixed; font-size: 13.5px; }
.rt col.c-v { width: 120px; } .rt col.c-p { width: 104px; } .rt col.c-d { width: 112px; } .rt col.c-s { width: 132px; }
.rt thead th { padding: 8px 0 8px 12px; }
.rt thead th:first-child { padding-left: 0; }
.rt tbody th { text-align: left; font-weight: 400; padding: 9px 12px 9px 0; border-bottom: 1px solid var(--line); vertical-align: top; }
.rt tbody td { padding: 9px 0 9px 12px; text-align: right; white-space: nowrap; vertical-align: top; }
.rt td.num { font: 400 13.5px var(--mono); font-variant-numeric: tabular-nums; color: var(--ink); }
.rt td.chg { color: var(--ink-2); }
.rt td.spark { padding-top: 7px; }
.rt td.spark svg { display: block; width: 120px; height: 26px; margin-left: auto; overflow: visible; }
.rx { all: unset; cursor: pointer; color: var(--ink); font: 400 14px var(--sans); }
.rx::before { content: "\25B8"; display: inline-block; width: 14px; color: var(--ink-3); font-size: 12px; }
.rx[aria-expanded="true"]::before { content: "\25BE"; }
.rx:hover { color: var(--accent); }
.ti { all: unset; display: inline-grid; place-items: center; width: 16px; height: 16px; margin-left: 6px; border-radius: 50%; border: 1px solid var(--line-2);
  font: 600 10px/1 var(--serif); color: var(--ink-3); cursor: pointer; vertical-align: 1px; }
.ti:hover { color: var(--accent-ink); border-color: var(--accent); }
.rt .mean { display: none; margin: 4px 0 0 14px; font-size: 12.5px; line-height: 1.45; color: var(--ink-3); white-space: normal; }
.explain .rt .mean { display: block; }
.rt tr.rx-row td { padding: 0 0 14px 14px; text-align: left; white-space: normal; font: 400 13px var(--sans); color: var(--ink-2); background: var(--bg-soft); }
.rx-box { display: grid; grid-template-columns: minmax(0, 1.2fr) minmax(0, 1fr); gap: 14px 24px; padding: 12px 14px 4px 0; }
.rx-box h4 { margin: 0 0 6px; font: 600 10.5px/1.2 var(--sans); letter-spacing: .09em; text-transform: uppercase; color: var(--ink-3); }
.rx-box p { margin: 0 0 8px; }
.rx-box code { color: var(--ink); font-size: 12.5px; }
.inp { list-style: none; margin: 0; padding: 0; font-size: 12.5px; }
.inp li { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 2px 10px; padding: 6px 0; border-bottom: 1px solid var(--line); }
.inp li .num { font: 400 12.5px var(--mono); color: var(--ink); text-align: right; }
.inp li .is { grid-column: 1 / -1; font-size: 12px; }
.inp li .is .src + .src { margin-top: 4px; }
.hbars { display: flex; align-items: flex-end; gap: 3px; height: 72px; padding: 4px 0; border-bottom: 1px solid var(--axis); }
.hbars i { flex: 1; background: var(--s1); opacity: .5; border-radius: 2px 2px 0 0; min-height: 1px; }
.hbars i.neg { background: var(--fail); }
.hbars i:last-child { opacity: 1; }
.hlab { display: flex; justify-content: space-between; font: 400 10.5px var(--mono); color: var(--ink-3); margin-top: 4px; }
.rmore > summary { padding: 9px 0; border-bottom: 1px solid var(--line); }
.rmore[open] > summary { border-bottom: 0; }

/* sources and checks ---------------------------------------------------------------------------- */
.check-sum { display: flex; flex-wrap: wrap; gap: 10px 28px; align-items: baseline; margin: 0 0 18px; }
.check-sum b { font: 400 34px/1 var(--serif); }
.families { display: grid; grid-template-columns: 1fr 1fr; gap: 0 32px; }
.family { padding: 14px 0; border-bottom: 1px solid var(--line); display: grid; grid-template-columns: auto 1fr auto; gap: 4px 12px; align-items: baseline; align-content: start; }
.family .st { width: 18px; height: 18px; border-radius: 50%; display: inline-grid; place-items: center; font: 600 11px/1 var(--sans); color: var(--on-accent); align-self: start; margin-top: 1px; }
.family .st.ok { background: var(--ok); }
.family .st.warn { background: var(--warn); }
.family .st.fail { background: var(--fail); }
.family .fn { font-weight: 500; color: var(--ink); }
.family .fc { font: 400 13px var(--mono); color: var(--ink-2); white-space: nowrap; }
.family .fd { grid-column: 2 / 4; font-size: 13px; color: var(--ink-3); }
.family .fx { grid-column: 2 / 4; font-size: 12.5px; color: var(--ink-2); margin-top: 6px; }
.family .fx div { font-family: var(--mono); font-size: 12px; padding: 3px 0; }
.docs td { font-size: 13.5px; }
.docs td.id { font: 400 12.5px var(--mono); color: var(--ink-2); word-break: break-all; }
.cite { border: 1px solid var(--line); border-radius: 12px; background: var(--bg-soft); padding: 14px 16px; font: 400 13px/1.6 var(--mono); color: var(--ink-2); word-break: break-word; }
.vh { position: absolute; width: 1px; height: 1px; margin: -1px; padding: 0; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0; } /* read by screen readers only */
#sources .note code { overflow-wrap: anywhere; } /* the dataset hash wraps on a narrow screen */

/* source popover -------------------------------------------------------------------------------- */
.pop { position: absolute; z-index: 50; width: min(380px, calc(100vw - 32px)); padding: 14px 16px; border: 1px solid var(--line-2); border-radius: 12px;
  background: var(--surface-2); box-shadow: var(--shadow); font-size: 13.5px; color: var(--ink-2); }
.pop[hidden] { display: none; }
.pop:not([hidden]) { animation: popin .18s var(--ease); transform-origin: 24px 0; }
@keyframes popin { from { opacity: 0; transform: translateY(-4px) scale(.97); } }
.pop .pl { color: var(--ink-3); font-size: 12.5px; }
.pop .pv { font: 500 17px var(--mono); color: var(--ink); margin: 4px 0 10px; word-break: break-all; }
.pop dl { display: grid; grid-template-columns: auto 1fr; gap: 6px 12px; margin: 0; }
.pop dt { color: var(--ink-3); font-size: 12.5px; }
.pop dd { margin: 0; word-break: break-word; }
.pop dd code { font-size: 12px; }
.pop dd .src + .src { margin-top: 8px; }
.pop dd .num { font-family: var(--mono); font-size: 12.5px; color: var(--ink); }
.pop .x { position: absolute; top: 8px; right: 8px; width: 28px; height: 28px; border: 0; border-radius: 7px; background: transparent; color: var(--ink-3); font-size: 18px; cursor: pointer; }
.pop .x:hover { color: var(--ink); background: var(--bg-soft); }

/* compare --------------------------------------------------------------------------------------- */
.picker { display: flex; flex-wrap: wrap; gap: 10px; align-items: center; margin-bottom: 6px; }
.pick { display: inline-flex; align-items: center; gap: 8px; height: 36px; padding: 0 8px 0 12px; border: 1px solid var(--line-2); border-radius: 10px; background: var(--surface); font: 500 14px var(--sans); color: var(--ink); }
.pick i { width: 14px; height: 3px; border-radius: 2px; }
.pick button { border: 0; background: transparent; color: var(--ink-3); font-size: 17px; cursor: pointer; padding: 0 4px; }
.pick button:hover { color: var(--ink); }
.add { position: relative; }
.add input { height: 36px; width: 240px; padding: 0 12px; border: 1px dashed var(--line-2); border-radius: 10px; background: transparent; color: var(--ink); font: 400 14px var(--sans); }
.add input:focus { outline: 0; border-style: solid; border-color: var(--accent); }
.add .results { top: 42px; width: 340px; }
.cmp td.v { font-family: var(--mono); font-variant-numeric: tabular-nums; text-align: right; white-space: nowrap; }
.cmp th.c { text-align: right; }
.cmp td.m { color: var(--ink); min-width: 240px; }
@media (max-width: 640px) {
  /* on a phone the measure column narrows and stays in place while the figures scroll */
  .cmp td.m, .cmp th:first-child { min-width: 150px; max-width: 170px; position: sticky; left: 0; background: var(--surface); z-index: 1; }
}
.cmp td.v .sub { white-space: normal; font-family: var(--sans); }
.cmp td.m .def { display: block; font-size: 12.5px; color: var(--ink-3); margin-top: 2px; }
.cmp tr.grp td { padding-top: 22px; font: 600 11px/1 var(--sans); letter-spacing: .09em; text-transform: uppercase; color: var(--ink-3); border-bottom: 1px solid var(--line-2); }

/* method and agents ----------------------------------------------------------------------------- */
.steps { display: grid; grid-template-columns: repeat(3, 1fr); gap: 28px; }
.step b { display: block; font: 400 15px var(--mono); color: var(--warm); }
.step h3 { margin: 10px 0 8px; }
.step p { margin: 0; color: var(--ink-2); }
.toc { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 22px; }
.agents { border: 1px solid var(--line); border-radius: 14px; background: var(--bg-soft); padding: 6px 22px; }
.agents .row { display: grid; grid-template-columns: 190px 1fr auto; gap: 16px; align-items: center; padding: 14px 0; }
.agents .row + .row { border-top: 1px solid var(--line); }
.agents .k { font-weight: 600; }
.agents .row p { margin: 4px 0 0; font-size: 13px; color: var(--ink-3); }
#user-agent .note code { white-space: nowrap; } /* a User-Agent name stays on one line */
.agents code { color: var(--ink); word-break: break-all; }
pre.snippet { margin: 0; padding: 14px 16px; border: 1px solid var(--line); border-radius: 12px; background: var(--bg-soft); color: var(--ink);
  font: 400 13px/1.6 var(--mono); overflow-x: auto; white-space: pre; }
.snip-head { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin: 22px 0 8px; }
.snip-head h3 { font: 600 14px var(--sans); }
.copy { height: 36px; padding: 0 14px; border: 1px solid var(--line-2); border-radius: 8px; background: var(--surface); color: var(--ink-2);
  font: 500 13px var(--sans); cursor: pointer; }
.copy:hover { color: var(--ink); border-color: var(--ink-3); }
.tools { display: grid; grid-template-columns: 1fr 1fr; gap: 0 32px; }
.tools div { padding: 12px 0; border-bottom: 1px solid var(--line); }
.tools code { color: var(--ink); font-size: 13.5px; }
.tools p { margin: 4px 0 0; font-size: 13.5px; color: var(--ink-2); }

footer { margin-top: 80px; border-top: 1px solid var(--line); padding: 28px 0 48px; font-size: 13px; color: var(--ink-3); }
footer .wrap { display: grid; grid-template-columns: 1fr auto; gap: 10px 32px; }
footer nav { display: flex; gap: 18px; flex-wrap: wrap; }
footer nav a { color: var(--ink-3); }
footer nav a:hover { color: var(--ink); }

@media (max-width: 1000px) {
  .cu-cards, .rkeys { grid-template-columns: 1fr 1fr; }
  .cu-lists { grid-template-columns: 1fr; }
  .l-stats { grid-template-columns: repeat(3, 1fr); }
  .l-stats > div:nth-child(4) { border-left: 0; }
  .l-stats > div:nth-child(n+4) { border-top: 1px solid var(--line); }
  .la { grid-template-columns: 1fr; }
  .l-hero-grid { grid-template-columns: 1fr; gap: 36px; }
  .l-hero-grid h1 { max-width: 16ch; }
  .tk-grid { grid-template-columns: repeat(5, minmax(0, 1fr)); }
  .l-agents { grid-template-columns: 1fr; }
  .tiles { grid-template-columns: repeat(3, 1fr); }
  .tile:nth-child(4) { border-left: 0; padding-left: 0; }
  .tile:nth-child(n+4) { border-top: 1px solid var(--line); }
  .charts { grid-template-columns: 1fr 1fr; }
  .chart-card.wide { grid-column: 1 / -1; }
  .features { grid-template-columns: 1fr 1fr; }
}
@media (max-width: 900px) {
  .su, .scores { grid-template-columns: 1fr; }
  .cards { grid-template-columns: 1fr 1fr; }
  .facets { grid-template-columns: 1fr 1fr; }
  .steps { grid-template-columns: 1fr; }
  .nav, .find-btn kbd { display: none; }
  .menu-btn { display: inline-grid; }
  .two, .families, .tools { grid-template-columns: 1fr; }
  .co-head { grid-template-columns: 1fr; }
}
@media (max-width: 640px) {
  .cu-cards { grid-template-columns: 1fr; }
  .mod-body { padding-left: 0; }
  .mod-t { font-size: 20px; }
  .cu-title { font-size: 24px; }
  /* without the period and trend columns the widths come from the cells, so the column definitions go too */
  table.rt { table-layout: auto; }
  table.rt colgroup, .rt .pcol, .rt td.spark, .rt th.tcol { display: none; }
  .rt .per-m { display: block; margin-top: 2px; font: 400 10.5px var(--mono); color: var(--warn); }
  .sort-m { display: block; width: 100%; }
  [data-page="landing"] .btn.launch { display: inline-flex; } /* the one link of the landing header stays */
  .rt thead th { white-space: normal; }
  .rx-box { grid-template-columns: 1fr; }
  .wrap { padding: 0 16px; }
  .btn.launch { display: none; }
  .l-hero { padding: 56px 0 40px; }
  .l-hero h1 { font-size: 40px; }
  .l-hero .lede { font-size: 16.5px; }
  .l-stats { grid-template-columns: 1fr 1fr; margin-top: 36px; }
  .l-stats > div { padding: 18px 14px; }
  .l-stats > div:nth-child(n) { border-left: 0; border-top: 1px solid var(--line); }
  .l-stats > div:nth-child(-n+2) { border-top: 0; }
  .l-stats > div:nth-child(even) { border-left: 1px solid var(--line); }
  .l-stats > div:last-child { grid-column: 1 / -1; border-left: 0; }
  .l-stats b { font-size: 32px; }
  .l-block { padding: 64px 0 8px; }
  .l-h2 { font-size: 30px; }
  .feed-list { height: 470px; }
  .l-hero-grid h1 { font-size: 40px; }
  .tk-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .tk { padding: 10px 9px 9px; }
  .tr-body { padding: 14px 14px 16px; }
  .term-b { height: 400px; font-size: 11.5px; }
  .l-agents { padding: 24px 20px; }
  .l-final { margin-top: 64px; padding: 56px 0; }
  .l-final h2 { font-size: 28px; }
  .top .wrap { gap: 12px; }
  .search-box input { font-size: 16px; }
  .add input { font-size: 16px; width: 100%; }
  .add { width: 100%; }
  .add .results { width: 100%; }
  .hero { padding: 44px 0 28px; }
  .hero h1 { font-size: 36px; }
  h1, .co-head h1 { font-size: 32px; }
  .page-head { padding: 32px 0 20px; }
  .lede { font-size: 16.5px; }
  .find-btn span.t { display: none; }
  .find-btn { width: 36px; padding: 0; justify-content: center; }
  .keynums { grid-template-columns: 1fr 1fr; }
  .keynums > * { padding: 20px 12px 18px 0; }
  .keynums > * + * { padding-left: 12px; }
  .keynums > :nth-child(3) { border-left: 0; padding-left: 0; border-top: 1px solid var(--line); }
  .keynums > :nth-child(4) { border-top: 1px solid var(--line); }
  .keynums b { font-size: 36px; }
  .cards, .facets, .features, .charts { grid-template-columns: 1fr; }
  .chart-card.wide { grid-column: auto; }
  .tiles { grid-template-columns: 1fr 1fr; }
  .tile:nth-child(n) { border-left: 0; padding-left: 0; border-top: 1px solid var(--line); }
  .tile:nth-child(-n+2) { border-top: 0; }
  .tile:nth-child(even) { padding-left: 14px; border-left: 1px solid var(--line); }
  .tile .v, button.v { font-size: 25px; }
  .head { display: block; }
  .head .more { display: inline-block; margin-top: 10px; }
  table.stack thead { display: none; }
  table.stack, table.stack tbody, table.stack tr, table.stack td { display: block; width: 100%; }
  table.stack tbody tr { padding: 14px 0; border-bottom: 1px solid var(--line); }
  table.stack tbody td { border: 0; padding: 3px 0; text-align: left !important; }
  table.stack tbody td[data-l]::before { content: attr(data-l) " "; color: var(--ink-3); font: 400 12.5px var(--sans); }
  .agents .row { grid-template-columns: 1fr; gap: 6px; }
  .stmt tbody td:first-child { min-width: 160px; max-width: 190px; }
  .timeline li { grid-template-columns: 1fr; gap: 3px; }
  .timeline .tb { grid-column: 1; }
  footer .wrap { grid-template-columns: 1fr; }
}
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { animation-duration: .001ms !important; animation-iteration-count: 1 !important;
    transition-duration: .001ms !important; transition-delay: 0ms !important; }
}
@media print {
  .an-jump, .r-jump { display: none; }
  .top, .tabs, footer nav, .co-actions { display: none; }
  .panel[hidden] { display: block; }
}

/* landing revamp of 22 October 2026: marks, counters, the tape of the ledger, proof and point in time --- */
.l-marks { list-style: none; display: flex; flex-wrap: wrap; gap: 10px 22px; margin: 26px 0 0; padding: 0; }
.l-marks li { display: grid; gap: 2px; }
.l-marks b { font: 500 13.5px var(--sans); color: var(--ink); }
.l-marks span { font-size: 12.5px; color: var(--ink-3); }
.l-marks li::before { content: ""; width: 22px; height: 2px; background: var(--warm); margin-bottom: 6px; }
[data-count] { font-variant-numeric: tabular-nums lining-nums; }
.trace .tr-line { position: absolute; inset: 0; width: 100%; height: 100%; pointer-events: none; z-index: 2; overflow: visible; }
.trace .tr-line path { fill: none; stroke: var(--accent); stroke-width: 1.5; stroke-dasharray: var(--len, 400); stroke-dashoffset: var(--len, 400); opacity: 0; }
.trace .tr-line.on path { opacity: 1; animation: draw .7s var(--ease) forwards; }
.trace .tr-line circle { fill: var(--accent); opacity: 0; }
.trace .tr-line.on circle { animation: dot .3s var(--ease) .6s forwards; }
@keyframes draw { to { stroke-dashoffset: 0; } }
@keyframes dot { to { opacity: 1; } }
/* the tape: one line of ledger changes that crosses the screen, paused under the pointer */
.l-tape { border-bottom: 1px solid var(--line); background: var(--bg-soft); }
.tape-h { display: flex; justify-content: space-between; align-items: center; gap: 12px; padding: 12px 24px 0; max-width: 1180px; margin: 0 auto; }
.tape-more { font-size: 13px; }
.tape { overflow: hidden; padding: 12px 0 14px; mask-image: linear-gradient(90deg, transparent, #000 6%, #000 94%, transparent);
  -webkit-mask-image: linear-gradient(90deg, transparent, #000 6%, #000 94%, transparent); }
.tape-track { display: flex; gap: 10px; width: max-content; padding: 0 24px; }
.tape.run .tape-track { animation: tape var(--tape-s, 60s) linear infinite; }
.tape:hover .tape-track, .tape:focus-within .tape-track { animation-play-state: paused; }
@keyframes tape { to { transform: translateX(-50%); } }
.tp { display: inline-flex; align-items: center; gap: 8px; height: 34px; padding: 0 12px; border: 1px solid var(--line-2); border-radius: 999px;
  background: var(--surface); color: var(--ink-2); font-size: 13px; white-space: nowrap; }
.tp:hover { text-decoration: none; border-color: var(--ink-3); color: var(--ink); }
.tp b { font: 500 12.5px var(--mono); color: var(--ink); }
.tp .mk { font: 500 12px var(--mono); }
.tp .st { font-size: 12px; }
.tp .tt { color: var(--ink); }
.tp small { font: 400 11.5px var(--mono); color: var(--ink-3); }
.tp.st-strengthened .mk, .tp.st-new .mk { color: var(--s3); }
.tp.st-weakened .mk { color: var(--s2); }
.tp.st-retired .mk { color: var(--ink-3); }
.tp.st-confirmed .mk { color: var(--accent-ink); }
.tp.none { border: 0; background: transparent; color: var(--ink-3); }
@media (prefers-reduced-motion: reduce) { .tape { mask-image: none; -webkit-mask-image: none; } .tape-track { flex-wrap: wrap; width: auto; } .tape.run .tape-track { animation: none; } }
/* proof */
.proof { border: 1px solid var(--line-2); border-radius: 20px; background: var(--surface); padding: 28px 28px 24px; box-shadow: var(--shadow); }
.proof-nums { display: grid; grid-template-columns: repeat(5, 1fr); gap: 18px 20px; }
.proof-nums b { display: block; font: 400 40px/1 var(--serif); color: var(--ink); letter-spacing: -.02em; }
.proof-nums span { display: block; margin-top: 8px; font-size: 13px; color: var(--ink-3); }
.pbar { display: flex; height: 14px; margin: 26px 0 12px; border-radius: 999px; overflow: hidden; background: var(--bg-soft); }
.pbar i { display: block; width: 0; transition: width 1.2s var(--ease); }
.pbar.on i { width: var(--w); }
.pbar .a, .proof-legend .a { background: var(--s3); }
.pbar .b, .proof-legend .b { background: var(--s1); }
.pbar .c, .proof-legend .c { background: var(--line-2); }
.proof-legend { display: flex; flex-wrap: wrap; gap: 8px 22px; font-size: 13px; color: var(--ink-2); }
.proof-legend span { display: inline-flex; align-items: center; gap: 8px; }
.proof-legend i { width: 10px; height: 10px; border-radius: 3px; }
.proof-note { margin: 18px 0 0; font-size: 13.5px; color: var(--ink-3); max-width: 90ch; }
/* point in time: a receipt of one snapshot */
.l-pit { display: grid; grid-template-columns: minmax(0, .95fr) minmax(0, 1.05fr); gap: 36px; align-items: center; }
.l-pit .l-h2 { margin: 14px 0 18px; max-width: 16ch; }
.l-pit .l-msg { margin: 0 0 20px; max-width: 52ch; }
.pit { position: relative; border: 1px solid var(--line-2); border-radius: 16px; background: var(--surface); padding: 20px 22px; box-shadow: var(--shadow); min-width: 0; }
.pit::before { content: ""; position: absolute; left: 22px; right: 22px; top: 0; height: 3px; background: linear-gradient(90deg, var(--warm), var(--accent)); border-radius: 0 0 3px 3px; }
.pit-h { display: flex; justify-content: space-between; align-items: center; gap: 12px; flex-wrap: wrap; }
.pit-id code { font: 500 14px var(--mono); color: var(--accent-ink); background: var(--accent-soft); padding: 4px 9px; border-radius: 7px; }
.pit-co { display: flex; justify-content: space-between; align-items: baseline; gap: 12px; flex-wrap: wrap; margin: 14px 0 12px; padding-bottom: 12px; border-bottom: 1px dashed var(--line-2); }
.pit-co a { font: 500 22px/1.2 var(--serif); color: var(--ink); }
.pit-co span { font-size: 13px; color: var(--ink-3); }
.pit-dl { display: grid; grid-template-columns: auto minmax(0, 1fr); gap: 8px 16px; margin: 0; font-size: 13.5px; }
.pit-dl dt { color: var(--ink-3); }
.pit-dl dd { margin: 0; color: var(--ink-2); min-width: 0; overflow-wrap: anywhere; }
.pit-dl .hash { font: 400 12.5px var(--mono); color: var(--ink); }
.pit-dl .hash .dim { color: var(--ink-3); }
.pit-cite { margin-top: 14px; padding-top: 12px; border-top: 1px dashed var(--line-2); }
.pit-cite .k { display: block; font-size: 11.5px; color: var(--ink-3); margin-bottom: 4px; }
.pit-cite code { display: block; font: 400 12px/1.5 var(--mono); color: var(--ink-2); overflow-wrap: anywhere; }
@media (max-width: 900px) {
  .proof-nums { grid-template-columns: repeat(2, 1fr); }
  .l-pit { grid-template-columns: 1fr; gap: 24px; }
  .tape-h { padding: 12px 16px 0; }
  .tape-track { padding: 0 16px; }
}
@media (max-width: 560px) { .proof { padding: 20px 18px 18px; } .proof-nums b { font-size: 30px; } .l-marks { gap: 10px 16px; } }
/* app page revamp of 22 October 2026: facet rows, the ledger list, compare sets and lenses ------------- */
.hero-app .lede { margin-bottom: 26px; }
.facet-rows { display: grid; gap: 10px; margin: 22px 0 0; }
.facet-row { display: flex; align-items: flex-start; gap: 14px; }
.facet-row .l { flex: none; width: 64px; padding-top: 7px; font: 600 11.5px/1 var(--sans); letter-spacing: .08em; text-transform: uppercase; color: var(--ink-3); }
.facet-row .chips { gap: 6px; }
.facet-row .chip { height: 30px; font-size: 13px; }
.app-grid { display: grid; grid-template-columns: minmax(0, 1.05fr) minmax(0, .95fr); gap: 36px; align-items: start; }
.feed-app .feed-still { height: auto; max-height: none; -webkit-mask-image: none; mask-image: none; overflow: visible; }
.sets { display: grid; gap: 10px; }
.set { display: grid; gap: 3px; padding: 12px 14px; border: 1px solid var(--line); border-radius: 12px; background: var(--surface); color: var(--ink); }
.set:hover { border-color: var(--line-2); box-shadow: var(--shadow); text-decoration: none; color: var(--ink); }
.set b { font: 500 15px var(--sans); }
.set span { font: 400 12.5px var(--mono); color: var(--ink-2); }
.set small { font-size: 12px; color: var(--ink-3); }
.lenses { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
.lens { display: grid; gap: 4px; padding: 12px 14px; border: 1px solid var(--line); border-radius: 12px; background: var(--surface); color: var(--ink); }
.lens:hover { border-color: var(--line-2); box-shadow: var(--shadow); text-decoration: none; color: var(--ink); }
.lens b { font: 500 14px var(--sans); }
.lens span { font-size: 12.5px; color: var(--ink-3); }
@media (max-width: 900px) { .app-grid { grid-template-columns: 1fr; gap: 28px; } .facet-row { flex-direction: column; gap: 6px; } .facet-row .l { width: auto; padding-top: 0; } }
@media (max-width: 560px) { .lenses { grid-template-columns: 1fr; } }
