/* Fonts are served from this site (latin subset, variable weights): no third-party request before text can render. */
@font-face { font-family: 'Inter'; font-style: normal; font-weight: 400 700; font-display: swap; src: url(/fonts/inter-latin.woff2) format('woff2'); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
@font-face { font-family: 'Source Serif 4'; font-style: normal; font-weight: 400 700; font-display: swap; src: url(/fonts/source-serif-4-latin.woff2) format('woff2'); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
@font-face { font-family: 'Source Serif 4'; font-style: italic; font-weight: 400 700; font-display: swap; src: url(/fonts/source-serif-4-italic-latin.woff2) format('woff2'); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
/* ABiS Capital Research: monochrome, print-inspired. Same palette and type as the PDF reports. */
:root {
  --bg: #fff; --on-ink: #fff; --on-ink-m: #cfc8c0; --ink-h: #000; --bar2: #b9b1a8; --bar3: #8a837c; --bar4: #555; --hl: #e8dfd3; --hov: rgba(20,20,20,.04); color-scheme: light;
  --ink: #141414; --text: #2a2a2a; --muted: #6e6a66; --rule: #d9d3cc; --paper: #f8f2ec;
  --serif: 'Source Serif 4', Georgia, serif; --sans: 'Inter', 'Helvetica Neue', Arial, sans-serif;
  --w: 2400px; --gut: clamp(20px, 4.2vw, 88px);
}
* { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; }
body { margin: 0; font-family: var(--sans); font-size: 16px; line-height: 1.6; color: var(--text); background: var(--bg); }
a { color: var(--ink); text-decoration: underline; text-decoration-color: var(--rule); text-underline-offset: 3px; }
a:hover { text-decoration-color: var(--ink); }
h1, h2, h3 { font-family: var(--serif); color: var(--ink); font-weight: 600; line-height: 1.15; letter-spacing: -.01em; }
strong { color: var(--ink); font-weight: 600; }
.wrap { max-width: calc(var(--w) + 2 * var(--gut)); margin: 0 auto; padding: 0 var(--gut); }
.narrow { max-width: 820px; }
.center { text-align: center; }
.kicker, .label, .meta, .l, .wl, .no { font-family: var(--sans); font-size: 12px; letter-spacing: .14em;
  text-transform: uppercase; color: var(--muted); font-weight: 600; }
.label { color: var(--ink); border-bottom: 1px solid var(--ink); padding-bottom: 7px; margin: 40px 0 16px; }
.lead { font-family: var(--serif); font-size: 21px; line-height: 1.5; color: var(--ink); max-width: 760px; }
.src { font-size: 13px; color: var(--muted); line-height: 1.5; }

/* header / footer */
.top { border-bottom: 1.5px solid var(--ink); background: var(--bg); position: sticky; top: 0; z-index: 5; }
.top .wrap { display: flex; align-items: center; justify-content: space-between; height: 72px; gap: 20px; }
.brand { display: flex; align-items: flex-end; gap: 12px; text-decoration: none; color: var(--ink); }
.brand svg, .foot-brand svg { height: 28px; width: auto; display: block; color: var(--ink); }
.sub { font-size: 11px; letter-spacing: .18em; text-transform: uppercase; font-weight: 600; color: var(--ink);
  line-height: 1; padding: 0 0 3px 12px; border-left: 1px solid var(--rule); white-space: nowrap; }
nav { display: flex; gap: 28px; }
nav a { text-decoration: none; font-size: 14px; font-weight: 500; color: var(--muted); padding: 6px 0; border-bottom: 1.5px solid transparent; }
nav a:hover, nav a.on { color: var(--ink); border-bottom-color: var(--ink); }
.foot { border-top: 1.5px solid var(--ink); margin-top: 96px; padding: 36px 0 48px; font-size: 13px; color: var(--muted); }
.foot-brand { display: flex; align-items: flex-end; gap: 12px; margin-bottom: 14px; }
.foot-brand svg { height: 22px; }
.foot-note { max-width: 720px; margin: 0 0 8px; }
.foot-links a { color: var(--muted); }

/* buttons */
.btns { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 28px; }
.btn { display: inline-block; background: var(--ink); color: var(--on-ink); text-decoration: none; padding: 12px 20px;
  font-size: 14px; font-weight: 600; border: 1.5px solid var(--ink); }
.btn:hover { background: var(--ink-h); }
.btn.ghost { background: transparent; color: var(--ink); }
.btn.ghost:hover { background: var(--paper); }

/* home */

.hero h1 { font-size: clamp(38px, 5.4vw, 62px); max-width: 880px; margin: 14px 0 22px; }
.sec-head { display: flex; justify-content: space-between; align-items: baseline; margin: 64px 0 12px; }
.sec-head h2 { font-size: 28px; margin: 0; }
.sec-head a { font-size: 14px; font-weight: 500; }
.band { background: var(--paper); margin-top: 72px; padding: 56px 0; }
.three { display: grid; grid-template-columns: repeat(3, 1fr); gap: 40px; }
.three h3 { font-size: 22px; margin: 8px 0 10px; }
.three p { margin: 0; font-size: 15px; }
.band h2 { font-size: 30px; margin: 0 0 8px; }

/* cards */
.grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(320px, 1fr)); gap: 24px; }
.card { display: flex; flex-direction: column; text-decoration: none; color: var(--text); border-top: 2px solid var(--ink);
  padding: 18px 0 8px; transition: background .15s; }
.card:hover { background: var(--paper); }
.card h3 { font-size: 24px; margin: 8px 0 10px; }
.card .tk, h1 .tk { font-weight: 400; color: var(--muted); }
.card p { font-size: 15px; margin: 0 0 16px; flex: 1; }
.chips { display: grid; grid-template-columns: 1fr 1fr; gap: 6px 16px; font-size: 13px; border-top: 1px solid var(--rule); padding-top: 12px; }
.chips b { display: block; font-size: 10.5px; letter-spacing: .1em; text-transform: uppercase; color: var(--muted); font-weight: 600; }
.card[hidden] { display: none; }

/* page heads */
.page-head { padding: 64px 0 24px; }
.page-head h1 { font-size: clamp(36px, 4.6vw, 52px); margin: 0 0 18px; }
.filters { display: flex; gap: 8px; margin: 28px 0 8px; flex-wrap: wrap; }
.filters button { font: 500 14px var(--sans); background: var(--bg); border: 1.5px solid var(--rule); padding: 8px 16px; cursor: pointer; color: var(--text); }
.filters button.on { border-color: var(--ink); color: var(--ink); background: var(--paper); }
.stat { font-size: 15px; color: var(--muted); }
.stat b { color: var(--ink); font-size: 20px; font-family: var(--serif); }

/* report page */
.r-head { padding: 56px 0 8px; }
.r-head h1 { font-size: clamp(34px, 4.4vw, 50px); margin: 12px 0 16px; }
.headline { font-family: var(--serif); font-size: 21px; line-height: 1.45; color: var(--ink); max-width: 900px; margin: 0; }
.verdict { display: grid; grid-template-columns: repeat(4, 1fr); border-top: 1.5px solid var(--ink); border-bottom: 1px solid var(--rule); margin-top: 28px; }
.verdict > div { padding: 14px 16px 14px 0; }
.verdict > div + div { padding-left: 16px; border-left: 1px solid var(--rule); }
.verdict .v { font-family: var(--serif); font-size: 22px; color: var(--ink); line-height: 1.2; margin-top: 4px; }
.verdict .n { font-size: 13px; color: var(--muted); margin-top: 2px; }
.r-cols { display: grid; grid-template-columns: minmax(0, 1fr) clamp(300px, 26vw, 460px); gap: clamp(40px, 4vw, 96px); }
ol.points { list-style: none; counter-reset: p; padding: 0; margin: 0; }
ol.points li { counter-increment: p; position: relative; padding-left: 34px; margin-bottom: 14px; }
ol.points li::before { content: counter(p, decimal-leading-zero); position: absolute; left: 0; top: 2px; font-size: 12px; color: var(--muted); font-weight: 600; }
.watch { background: var(--paper); padding: 2px 20px 12px; margin-top: 28px; }
.watch .label { border-bottom-color: var(--rule); margin-top: 18px; }
.watch p { margin: 0 0 12px; }
.wl { display: block; }
table.kd { width: 100%; border-collapse: collapse; font-size: 14px; }
table.kd td { padding: 7px 0; border-bottom: 1px solid var(--rule); vertical-align: top; }
table.kd td:last-child { text-align: right; color: var(--ink); font-weight: 500; padding-left: 12px; }
.r-body { margin-top: 32px; }
.r-body h2:not(.label) { font-size: 30px; margin: 56px 0 14px; padding-top: 12px; border-top: 1.5px solid var(--ink); }
.r-body .label + h2 { border-top: 0; margin-top: 8px; padding-top: 0; }
.r-body h3 { font-size: 22px; margin: 32px 0 10px; }
.lede { font-family: var(--serif); font-size: 19px; line-height: 1.5; color: var(--ink); }
.disclosure { margin-top: 56px; padding-top: 14px; border-top: 1.5px solid var(--ink); font-size: 13px; color: var(--muted); }
.disclosure b { color: var(--ink); text-transform: uppercase; letter-spacing: .12em; font-size: 12px; margin-right: 6px; }
blockquote { margin: 18px 0; padding: 14px 20px; background: var(--paper); border: 0; }
pre { background: var(--paper); padding: 14px 16px; overflow-x: auto; font-size: 12.5px; line-height: 1.45; }
code { font-size: .9em; }

/* exhibits and tables */
figure.exhibit { margin: 32px 0; }
figcaption { font-family: var(--serif); font-size: 18px; color: var(--ink); padding-top: 8px; border-top: 1px solid var(--ink); margin-bottom: 10px; }
.table-wrap { overflow-x: auto; margin: 0 0 8px; }
table { width: 100%; border-collapse: collapse; font-size: 14px; line-height: 1.45; }
th { text-align: left; font-weight: 600; color: var(--ink); font-size: 12.5px; padding: 8px 12px 8px 0; border-bottom: 1px solid var(--ink); vertical-align: bottom; }
td { padding: 9px 12px 9px 0; border-bottom: 1px solid var(--rule); vertical-align: top; }
th.num, td.num { text-align: right; font-variant-numeric: tabular-nums; white-space: nowrap; }
td.nw { white-space: nowrap; }
tr.total td { font-weight: 600; color: var(--ink); border-top: 1px solid var(--ink); }
table.tr td a { font-weight: 500; }
.prose h2 { font-size: 28px; margin: 44px 0 12px; }
.prose h3 { font-size: 21px; margin: 28px 0 8px; }

/* home: two featured reports */
.features { display: grid; grid-template-columns: 1fr 1fr; border-top: 2px solid var(--ink); border-bottom: 1px solid var(--rule); }
.feature { display: flex; flex-direction: column; text-decoration: none; color: var(--text); padding: 26px 32px 26px 0; transition: background .15s; }
.feature + .feature { padding: 26px 0 26px 32px; border-left: 1px solid var(--rule); }
.feature:hover { background: var(--paper); }
.feature .tag { display: inline-block; color: var(--ink); border: 1px solid var(--ink); padding: 2px 7px; margin-right: 10px; letter-spacing: .1em; }
.feature h3 { font-size: clamp(30px, 3.2vw, 40px); margin: 16px 0 12px; }
.feature h3 .tk { font-family: var(--sans); font-size: 15px; font-weight: 600; letter-spacing: .08em; color: var(--muted); vertical-align: middle; margin-left: 6px; }
.feature p { font-family: var(--serif); font-size: 18px; line-height: 1.5; color: var(--ink); margin: 0 0 24px; flex: 1; }
.fv { display: grid; grid-template-columns: 1fr 1fr; border-top: 1px solid var(--ink); }
.fv > div { padding: 10px 12px 10px 0; border-bottom: 1px solid var(--rule); }
.fv > div:nth-child(even) { padding-left: 14px; border-left: 1px solid var(--rule); }
.fv .l { font-size: 10.5px; letter-spacing: .12em; }
.fv .v { font-family: var(--serif); font-size: 19px; color: var(--ink); line-height: 1.25; margin-top: 2px; }
.more { margin-top: 18px; font-size: 14px; font-weight: 600; color: var(--ink); }
.feature:hover .more { text-decoration: underline; text-underline-offset: 3px; }

/* track record */
.perf { border-top: 2px solid var(--ink); padding-top: 18px; margin-top: 16px; }
.perf-top { display: flex; justify-content: space-between; align-items: flex-end; gap: 20px; flex-wrap: wrap; }
.perf .big { font-family: var(--serif); font-size: clamp(48px, 6vw, 72px); color: var(--ink); line-height: 1; margin: 8px 0 6px; font-variant-numeric: tabular-nums; }
.perf-top .src { margin: 0; }
.filters.seg { margin: 0; gap: 0; }
.filters.seg button { border-right-width: 0; padding: 7px 14px; }
.filters.seg button:last-child { border-right-width: 1.5px; }
.filters.seg button.on { box-shadow: inset 0 0 0 0 var(--ink); }
.line-wrap { position: relative; margin: 18px 0 6px; }

.chart svg text, #tr-line text { font-family: var(--sans); }
#tr-line .gl, .bars .gl { stroke: var(--rule); stroke-width: 1; vector-effect: non-scaling-stroke; }
#tr-line .z, .bars .z { stroke: var(--ink); stroke-width: 1; stroke-dasharray: 3 3; vector-effect: non-scaling-stroke; }
#tr-line .ax, .bars .ax { font-size: 12px; fill: var(--muted); }
#tr-line .ln { fill: none; stroke: var(--ink); stroke-width: 2; vector-effect: non-scaling-stroke; stroke-linejoin: round; }
#tr-line .area { fill: var(--paper); }
#tr-line .dot { fill: var(--ink); stroke: var(--bg); stroke-width: 2; vector-effect: non-scaling-stroke; }
#tr-line .cross { stroke: var(--muted); stroke-width: 1; vector-effect: non-scaling-stroke; }
.tip { position: absolute; transform: translateX(-50%); background: var(--ink); color: var(--on-ink); font-size: 12px; padding: 6px 10px; pointer-events: none; white-space: nowrap; text-align: center; }
.tip b { display: block; font-family: var(--serif); font-size: 17px; font-weight: 600; color: var(--on-ink); }
.empty { position: absolute; inset: 0; display: flex; align-items: center; justify-content: center; background: var(--paper); color: var(--muted); font-size: 14px; }
.two { display: grid; grid-template-columns: 1fr 1fr; gap: 48px; align-items: start; }
.chart { margin: 40px 0 0; }
.chart figcaption { font-family: var(--sans); font-size: 12px; letter-spacing: .14em; text-transform: uppercase; font-weight: 600; border-top: 0; border-bottom: 1px solid var(--ink); padding: 0 0 7px; margin-bottom: 12px; }
.legend { display: flex; gap: 18px; font-size: 12.5px; color: var(--muted); margin-bottom: 6px; }
.legend i { display: inline-block; width: 12px; height: 12px; border-radius: 2px; margin-right: 6px; vertical-align: -1px; }
i.bk, .bars rect.bk { background: var(--ink); fill: var(--ink); }
i.bm, .bars rect.bm { background: var(--bar2); fill: var(--bar2); }
.bars { width: 100%; height: auto; display: block; }
.bars .bl { font-size: 14px; font-weight: 600; fill: var(--ink); }
.bars .bs { font-size: 12.5px; fill: var(--muted); }
.bars .bv { font-size: 13px; fill: var(--ink); font-variant-numeric: tabular-nums; }
.bars .bar:hover rect { opacity: .8; }
table.stats td:first-child { font-weight: 500; color: var(--ink); }
table.calls td { vertical-align: top; }
table .tk, .nc .tk { color: var(--muted); font-size: 12.5px; font-weight: 600; letter-spacing: .06em; }
.sm { display: block; font-size: 12px; color: var(--muted); font-weight: 400; margin-top: 2px; }
td.num .sm { text-align: right; }
.muted { color: var(--muted); }
td.v-pos, td.v-neg { font-weight: 600; color: var(--ink); }
.act { display: inline-block; font-size: 11.5px; font-weight: 600; letter-spacing: .1em; text-transform: uppercase; padding: 2px 8px; border: 1px solid var(--rule); color: var(--ink); }
.act-neg { background: var(--ink); color: var(--on-ink); border-color: var(--ink); }
.act-pos { border-color: var(--ink); }
.fstats { display: grid; grid-template-columns: repeat(6, 1fr); border-top: 1px solid var(--ink); border-bottom: 1px solid var(--rule); margin: 8px 0 18px; }
.fstats > div { padding: 12px 14px 12px 0; }
.fstats > div + div { padding-left: 14px; border-left: 1px solid var(--rule); }
.fstats b { display: block; font-family: var(--serif); font-size: 24px; font-weight: 600; color: var(--ink); line-height: 1.1; }
.fstats span { font-size: 11px; letter-spacing: .12em; text-transform: uppercase; color: var(--muted); font-weight: 600; }
table.freg tr.month th { font-family: var(--serif); font-size: 17px; font-weight: 600; padding: 22px 0 6px; border-bottom: 1px solid var(--ink); }
table.freg tr.month:first-child th { padding-top: 6px; }
table.freg thead th { border-bottom: 0; color: var(--muted); font-size: 11px; letter-spacing: .1em; text-transform: uppercase; }
.pill { display: inline-block; font-size: 11.5px; font-weight: 600; padding: 2px 8px; border: 1px solid var(--rule); white-space: nowrap; }
.pill.p-open { color: var(--muted); }
.pill.p-due { border-style: dashed; border-color: var(--ink); color: var(--ink); }
.pill.p-hit { background: var(--ink); color: var(--on-ink); border-color: var(--ink); }
.pill.p-hit::before { content: "✓ "; }
.pill.p-miss { border-color: var(--ink); color: var(--ink); text-decoration: line-through; text-decoration-thickness: 1px; }
.pill.p-miss::before { content: "✕ "; display: inline-block; text-decoration: none; }
.pill.p-partial { background: var(--paper); border-color: var(--ink); color: var(--ink); }
tr[hidden] { display: none; }

@media (max-width: 860px) {
  .features, .two { grid-template-columns: 1fr; gap: 0; }
  .feature, .feature + .feature { padding: 22px 0; border-left: 0; }
  .feature + .feature { border-top: 1px solid var(--rule); }
  .fstats { grid-template-columns: repeat(3, 1fr); }
  .fstats > div:nth-child(4) { border-left: 0; padding-left: 0; }

  .top .wrap { height: auto; padding-top: 14px; padding-bottom: 12px; flex-direction: column; align-items: flex-start; gap: 10px; }
  nav { gap: 2px 20px; flex-wrap: wrap; }
  nav a { padding: 2px 0; }
  .three, .r-cols { grid-template-columns: 1fr; gap: 28px; }
  .verdict { grid-template-columns: 1fr 1fr; }
  .verdict > div:nth-child(3) { border-left: 0; padding-left: 0; }
  .verdict > div:nth-child(n+3) { border-top: 1px solid var(--rule); }
  
  .lead, .headline { font-size: 19px; }
  .grid { grid-template-columns: 1fr; }
}
.empty[hidden], .tip[hidden] { display: none; }

/* label row with a link on the right (Scorecard · All scores →) */
.lab-head { display: flex; justify-content: space-between; align-items: baseline; border-bottom: 1px solid var(--ink); margin: 44px 0 16px; padding-bottom: 7px; }
.lab-head .label { border: 0; margin: 0; padding: 0; }
.lab-head a { font-size: 14px; font-weight: 500; }
.chart { margin-top: 44px; }

/* scores by call */
.score-list { border-top: 2px solid var(--ink); }
.score-row { display: grid; grid-template-columns: minmax(0, 1.3fr) minmax(0, 1fr) 200px minmax(0, 2fr); gap: 28px; align-items: center; padding: 22px 0;
  border-bottom: 1px solid var(--rule); text-decoration: none; color: var(--text); transition: background .15s; }
.score-row:hover { background: var(--paper); }
.score-row[hidden] { display: none; }
.score-row h3 { font-size: 26px; margin: 4px 0 8px; }
.sr-score span:first-child { display: block; font-size: 10.5px; letter-spacing: .12em; text-transform: uppercase; color: var(--muted); font-weight: 600; }
.sr-score b { display: block; font-family: var(--serif); font-size: 30px; font-weight: 600; color: var(--ink); line-height: 1.15; }
.sr-score b.v-nil { font-size: 18px; color: var(--muted); font-weight: 400; padding: 6px 0; }
.sr-rev { font-size: 14px; line-height: 1.5; }
.rd { font-size: 11px; letter-spacing: .12em; text-transform: uppercase; color: var(--muted); font-weight: 600; margin-right: 6px; }
.sr-go { font-size: 14px; font-weight: 600; color: var(--ink); text-align: right; }
svg.spark { width: 180px; height: 44px; display: block; overflow: visible; }
svg.spark .z { stroke: var(--rule); stroke-dasharray: 3 3; }
svg.spark .ln { fill: none; stroke: var(--ink); stroke-width: 2; stroke-linejoin: round; }
svg.spark .dot { fill: var(--ink); }

/* single call page */
.cgrid { display: grid; grid-template-columns: repeat(6, 1fr); border-top: 2px solid var(--ink); border-bottom: 1px solid var(--rule); }
.cgrid > div { padding: 14px 14px 14px 0; }
.cgrid > div + div { padding-left: 14px; border-left: 1px solid var(--rule); }
.cgrid > div > span { display: block; font-size: 10.5px; letter-spacing: .12em; text-transform: uppercase; color: var(--muted); font-weight: 600; }
.cgrid b { display: block; font-family: var(--serif); font-size: 24px; font-weight: 600; color: var(--ink); margin-top: 4px; line-height: 1.2; }
.cgrid b .sm { font-family: var(--sans); font-weight: 400; }
.cgrid b .act { font-family: var(--sans); vertical-align: 4px; }
.pathc { width: 100%; height: auto; display: block; overflow: visible; }
.pathc text { font-family: var(--sans); }
.pathc .z { stroke: var(--ink); stroke-dasharray: 3 3; }
.pathc .gl { stroke: var(--rule); }
.pathc .ax { font-size: 12px; fill: var(--muted); }
.pathc .ln, .pathc .lm { fill: none; stroke-width: 2; stroke-linejoin: round; }
.pathc .ln { stroke: var(--ink); } .pathc .lm { stroke: var(--bar2); }
.pathc .dot { stroke: var(--bg); stroke-width: 2; } .pathc .dot.ln { fill: var(--ink); } .pathc .dot.lm { fill: var(--bar2); }
.pathc .el { font-size: 12px; font-weight: 600; fill: var(--ink); } .pathc .ev { font-size: 13px; fill: var(--ink); }
.pathc .hov { fill: transparent; } .pathc .hov:hover { fill: var(--hov); }
.empty-box { background: var(--paper); color: var(--muted); font-size: 14px; padding: 80px 20px; text-align: center; }
.rev { display: grid; grid-template-columns: 170px 1fr; gap: 20px; padding: 14px 0; border-bottom: 1px solid var(--rule); }
.rev.none { background: var(--paper); padding: 16px 18px; border: 0; }
.call-kd { max-width: 620px; }
@media (max-width: 860px) {
  .score-row { grid-template-columns: 1fr 1fr; gap: 14px; }
  .sr-rev { grid-column: 1 / -1; }
  .cgrid { grid-template-columns: 1fr 1fr 1fr; }
  .cgrid > div:nth-child(4) { border-left: 0; padding-left: 0; }
  .rev { grid-template-columns: 1fr; gap: 4px; }
}

/* home: next checks */
.nc-intro { margin: -8px 0 14px; color: var(--muted); font-size: 15px; }
.ncs { border-top: 2px solid var(--ink); }
.nc { display: grid; grid-template-columns: 170px 1.4fr 1fr 170px; gap: 24px; align-items: baseline; padding: 16px 0;
  border-bottom: 1px solid var(--rule); text-decoration: none; color: var(--text); }
.nc:hover { background: var(--paper); }
.nc-d { font-family: var(--serif); font-size: 19px; color: var(--ink); font-weight: 600; }
.nc-t { color: var(--ink); font-weight: 500; }
.nc-t .tk { margin-right: 6px; }
.nc > div:last-child { text-align: right; }
.page-head .kicker a { color: inherit; }
@media (max-width: 860px) { .nc { grid-template-columns: 1fr; gap: 4px; } .nc > div:last-child { text-align: left; } }

/* ---------- fluid sizing: the page widens with the screen, and type steps up on large monitors ---------- */
@media (min-width: 1600px) { body { font-size: 17px; } .lead, .headline { font-size: 23px; } }
@media (min-width: 2200px) { body { font-size: 18px; } .lead, .headline { font-size: 25px; } .label, .kicker { font-size: 13px; } }
.lead { max-width: 64ch; }
.hero h1 { max-width: 20ch; font-size: clamp(38px, 4.6vw, 84px); }
.page-head h1 { font-size: clamp(34px, 3.6vw, 64px); }

/* line charts drawn at the real pixel size */
.line-wrap { position: relative; margin: 18px 0 6px; }
.line-wrap svg { width: 100%; display: block; overflow: visible; }
.line-wrap.main svg { height: clamp(260px, 26vw, 560px); }
.line-wrap.call svg { height: clamp(240px, 22vw, 480px); }
.line-wrap .gl { stroke: var(--rule); stroke-width: 1; }
.line-wrap .z { stroke: var(--ink); stroke-width: 1; stroke-dasharray: 3 3; }
.line-wrap text { font-family: var(--sans); }
.line-wrap .ax { font-size: 12px; fill: var(--muted); }
.line-wrap .ln, .line-wrap .lm { fill: none; stroke-width: 2; stroke-linejoin: round; }
.line-wrap .ln { stroke: var(--ink); } .line-wrap .lm { stroke: var(--bar2); }
.line-wrap .area { fill: var(--paper); }
.line-wrap .dot { stroke: var(--bg); stroke-width: 2; fill: var(--ink); } .line-wrap .dot.lm { fill: var(--bar2); }
.line-wrap .cross { stroke: var(--muted); stroke-width: 1; }
.line-wrap .el { font-size: 12px; font-weight: 600; fill: var(--ink); } .line-wrap .ev { font-size: 13px; fill: var(--ink); }
.tip { position: absolute; transform: translate(-50%, -100%); background: var(--ink); color: var(--on-ink); font-size: 12px; padding: 6px 10px;
  pointer-events: none; white-space: nowrap; text-align: center; z-index: 2; }
.tip b { font-family: var(--serif); font-size: 16px; font-weight: 600; color: var(--on-ink); margin-right: 8px; }
.tip span { color: var(--on-ink-m); } .tip em { display: block; font-style: normal; color: var(--on-ink-m); }
.empty { z-index: 1; }

/* per-call bars (HTML) */
.cbars { margin-top: 8px; }
.cb-row { display: grid; grid-template-columns: clamp(150px, 16%, 280px) 1fr; align-items: center; border-bottom: 1px solid var(--rule); }
.cb-row.cb-axis { border: 0; }
.cb-name { text-decoration: none; padding: 12px 0; }
.cb-name b { display: block; color: var(--ink); font-weight: 600; } .cb-name span { font-size: 12.5px; color: var(--muted); }
.cb-plot { position: relative; padding: 12px 0; }
.cb-g { position: absolute; top: 0; bottom: 0; width: 1px; background: var(--rule); }
.cb-g.z { background: none; border-left: 1px dashed var(--ink); }
.cb-line { position: relative; height: 22px; margin: 3px 0; }
.cb-bar { position: absolute; top: 3px; height: 16px; border-radius: 2px; min-width: 2px; }
.cb-bar.bk { background: var(--ink); } .cb-bar.bm { background: var(--bar2); }
.cb-v { position: absolute; top: 1px; font-size: 13px; color: var(--ink); font-variant-numeric: tabular-nums; white-space: nowrap; }
.cb-ticks { position: relative; height: 26px; }
.cb-ticks span { position: absolute; top: 6px; transform: translateX(-50%); font-size: 12px; color: var(--muted); }

/* research list: one row per company */
.rl { border-top: 2px solid var(--ink); margin-top: 8px; }
.rl-row { display: grid; grid-template-columns: 2.1fr 1.25fr 1.25fr 1fr .7fr; border-bottom: 1px solid var(--rule); }
.rl-row[hidden] { display: none; }
.rl-head { font-size: 11px; letter-spacing: .12em; text-transform: uppercase; color: var(--muted); font-weight: 600; border-bottom: 1px solid var(--ink); }
.rl-head > div { padding: 10px 18px 10px 0; } .rl-head > div + div { padding-left: 18px; } .rl-head .r { text-align: right; }
.rl-co { padding: 22px 28px 22px 0; }
.rl-co a { text-decoration: none; } .rl-co h3 { font-size: clamp(24px, 1.9vw, 34px); margin: 0 0 2px; }
.rl-co a:hover h3 { text-decoration: underline; text-underline-offset: 4px; text-decoration-thickness: 1px; }
.rl-tk { font-size: 12px; letter-spacing: .1em; text-transform: uppercase; color: var(--muted); font-weight: 600; }
.rl-co p { font-family: var(--serif); font-size: 17px; line-height: 1.45; color: var(--ink); margin: 10px 0 4px; max-width: 62ch; }
.rl-cell { display: flex; flex-direction: column; gap: 6px; padding: 22px 18px; border-left: 1px solid var(--rule); text-decoration: none; color: var(--text); }
a.rl-cell:hover { background: var(--paper); }
.rl-k { font-size: 11px; letter-spacing: .12em; text-transform: uppercase; color: var(--muted); font-weight: 600; }
.rl-call { font-family: var(--serif); font-size: 19px; color: var(--ink); line-height: 1.3; }
.rl-call .act { font-family: var(--sans); vertical-align: 3px; margin-right: 6px; }
.rl-s { font-size: 13px; color: var(--muted); line-height: 1.45; }
.rl-go { margin-top: auto; padding-top: 6px; font-size: 13.5px; font-weight: 600; color: var(--ink); }
a.rl-cell:hover .rl-go { text-decoration: underline; text-underline-offset: 3px; }
.rl-none { color: var(--muted); font-size: 14px; }
.rl-px { font-family: var(--serif); font-size: 19px; color: var(--ink); font-variant-numeric: tabular-nums; }
.rl-chg { align-items: flex-end; text-align: right; }
.rl-chg b { font-family: var(--serif); font-size: clamp(26px, 2vw, 36px); font-weight: 600; color: var(--ink); line-height: 1.1; font-variant-numeric: tabular-nums; }
@media (max-width: 1100px) {
  .rl-row { grid-template-columns: 1fr 1fr; } .rl-head { display: none; }
  .rl-co { grid-column: 1 / -1; padding-bottom: 6px; }
  .rl-cell { border-left: 0; padding: 12px 16px 12px 0; } a.rl-cell:hover { background: none; }
  .rl-chg { align-items: flex-start; text-align: left; }
}
@media (max-width: 560px) { .rl-row { grid-template-columns: 1fr; } }

/* report pages: contents rail on wide screens so the reading column stays comfortable */
.r-wide { display: grid; grid-template-columns: minmax(180px, 260px) minmax(0, 820px); gap: clamp(32px, 4vw, 96px); justify-content: start; }
.toc { position: sticky; top: 96px; align-self: start; margin-top: 40px; font-size: 13.5px; line-height: 1.4; }
.toc b { display: block; font-size: 11px; letter-spacing: .12em; text-transform: uppercase; color: var(--ink); border-bottom: 1px solid var(--ink); padding-bottom: 7px; margin-bottom: 8px; }
.toc a { display: block; padding: 5px 0; color: var(--muted); text-decoration: none; border-bottom: 1px solid var(--rule); }
.toc a:hover { color: var(--ink); }
@media (max-width: 1100px) { .r-wide { grid-template-columns: 1fr; } .toc { display: none; } }
@media (min-width: 2500px) { body { font-size: 19px; } .lead, .headline { font-size: 27px; } .rl-co p { font-size: 19px; } .rl-call, .rl-px { font-size: 22px; } .rl-s { font-size: 14.5px; } }
nav.toc { display: block; }
nav.toc a { display: block; margin: 0; padding: 6px 0; height: auto; border-bottom: 1px solid var(--rule); font-size: 13.5px; color: var(--muted); }
nav.toc a::after { display: none; }
.rail { display: none; }
@media (min-width: 1700px) {
  .r-wide { grid-template-columns: minmax(200px, 280px) minmax(0, 900px) minmax(300px, 420px); justify-content: space-between; }
  .rail { display: block; position: sticky; top: 96px; align-self: start; margin-top: 40px; max-height: calc(100vh - 120px); overflow: auto; }
  .rail-h { display: block; font-size: 11px; letter-spacing: .12em; text-transform: uppercase; color: var(--ink); border-bottom: 1px solid var(--ink); padding-bottom: 7px; }
  .rail-v { display: grid; grid-template-columns: 1fr 1fr; border-bottom: 1px solid var(--rule); margin-bottom: 14px; }
  .rail-v > div { padding: 10px 10px 10px 0; border-bottom: 1px solid var(--rule); }
  .rail-v span { display: block; font-size: 10.5px; letter-spacing: .12em; text-transform: uppercase; color: var(--muted); font-weight: 600; }
  .rail-v b { font-family: var(--serif); font-size: 18px; color: var(--ink); font-weight: 600; }
  .rail .kd { font-size: 13px; width: 100%; }
  .rail-go { display: inline-block; margin-top: 14px; font-weight: 600; font-size: 14px; }
}

/* ---------- report page modules ---------- */
.rx { margin-top: 8px; }
.tiles { display: grid; grid-template-columns: repeat(auto-fit, minmax(170px, 1fr)); border-top: 2px solid var(--ink); border-bottom: 1px solid var(--rule); margin-bottom: 14px; }
.tiles > div { padding: 14px 16px 14px 0; }
.tiles > div + div { padding-left: 16px; border-left: 1px solid var(--rule); }
.tiles span { display: block; font-size: 10.5px; letter-spacing: .12em; text-transform: uppercase; color: var(--muted); font-weight: 600; }
.tiles b { display: block; font-family: var(--serif); font-size: clamp(24px, 1.9vw, 34px); font-weight: 600; color: var(--ink); line-height: 1.15; margin: 4px 0 2px; font-variant-numeric: tabular-nums; }
.tiles em { font-style: normal; font-size: 12.5px; color: var(--muted); line-height: 1.4; display: block; }
p.about { font-family: var(--serif); font-size: 18px; line-height: 1.55; color: var(--ink); }
.whys { display: grid; grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); gap: 0; border-top: 2px solid var(--ink); }
.why { padding: 18px 20px 20px 0; border-bottom: 1px solid var(--rule); }
.whys .why:not(:first-child) { padding-left: 20px; border-left: 1px solid var(--rule); }
.why .no { display: block; margin-bottom: 8px; }
.why .stat { display: block; font-family: var(--serif); font-size: clamp(30px, 2.4vw, 44px); font-weight: 600; color: var(--ink); line-height: 1.05; }
.why .stat-l { display: block; font-size: 12.5px; color: var(--muted); line-height: 1.4; margin: 4px 0 12px; min-height: 2.8em; }
.why h3 { font-size: 18px; margin: 0 0 6px; }
.why p { margin: 0; font-size: 14.5px; line-height: 1.55; }
.risk-row { display: grid; grid-template-columns: 1.4fr 1fr; gap: clamp(32px, 4vw, 96px); }
.cats { border-top: 1px solid var(--ink); }
.cat { display: grid; grid-template-columns: 150px 1fr; gap: 16px; padding: 11px 0; border-bottom: 1px solid var(--rule); }
.cat b { font-family: var(--serif); font-weight: 600; color: var(--ink); }
.qcharts { display: grid; grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)); gap: clamp(24px, 3vw, 64px); }
.qchart { margin: 0; }
.qchart figcaption { font-family: var(--serif); font-size: 19px; font-weight: 600; color: var(--ink); }
.qsub { font-size: 13.5px; color: var(--muted); margin: 2px 0 12px; min-height: 2.9em; }
.cols { display: flex; align-items: stretch; gap: 6px; height: clamp(190px, 16vw, 300px); border-bottom: 1px solid var(--ink); }
.has-neg .cols { border-bottom: 0; }
.col { flex: 1; position: relative; text-decoration: none; display: flex; flex-direction: column; justify-content: flex-end; }
.col i { display: block; background: var(--ink); border-radius: 2px 2px 0 0; min-height: 1px; }
.col:hover i { background: var(--bar4); }
.col .cv { font-size: 11px; color: var(--ink); text-align: center; white-space: nowrap; margin-bottom: 3px; font-variant-numeric: tabular-nums; }
.col .cq { position: absolute; bottom: -20px; left: 0; right: 0; font-size: 10.5px; color: var(--muted); text-align: center; white-space: nowrap; }
.qchart .cols { margin-bottom: 26px; }
.has-neg .col { justify-content: flex-start; }
.has-neg .col::before { content: ""; position: absolute; left: -3px; right: -3px; top: 50%; border-top: 1px solid var(--ink); }
.has-neg .col i { position: absolute; left: 0; right: 0; bottom: 50%; border-radius: 2px 2px 0 0; }
.has-neg .col .cv { position: absolute; left: -4px; right: -4px; bottom: calc(50% + 2px); }
.has-neg .col.neg i { bottom: auto; top: 50%; background: var(--bar3); border-radius: 0 0 2px 2px; }
.has-neg .col.neg .cv { bottom: auto; top: calc(50% + 2px); }
.has-neg .col:not(.neg) .cv { transform: translateY(var(--lift, 0)); }
.peers { border-top: 1px solid var(--ink); }
.pset[hidden] { display: none; }
.pr { display: grid; grid-template-columns: clamp(170px, 18%, 300px) 1fr; align-items: center; border-bottom: 1px solid var(--rule); }
.pn { padding: 9px 0; font-size: 12.5px; color: var(--muted); }
.pn b { color: var(--ink); font-size: 14px; margin-right: 8px; }
.pr.me .pn b { text-decoration: underline; text-underline-offset: 3px; }
.pp { position: relative; height: 34px; }
.pp.has-neg::before { content: ""; position: absolute; left: 50%; top: 4px; bottom: 4px; border-left: 1px dashed var(--ink); }
.pb { position: absolute; top: 9px; height: 16px; background: var(--bar2); border-radius: 2px; min-width: 2px; }
.pb.me { background: var(--ink); }
.pv { position: absolute; top: 7px; font-size: 13px; color: var(--ink); white-space: nowrap; font-variant-numeric: tabular-nums; }
.pv.na { left: 0; color: var(--muted); }
table.bynum td, table.bynum th { white-space: nowrap; }
@media (max-width: 860px) {
  .risk-row { grid-template-columns: 1fr; gap: 0; }
  .whys .why:not(:first-child) { padding-left: 0; border-left: 0; }
  .tiles > div + div { border-left: 0; padding-left: 0; }
  .cat { grid-template-columns: 110px 1fr; }
}
.whys { grid-template-columns: repeat(auto-fit, minmax(190px, 1fr)); }
.has-neg .col .cv { bottom: auto; top: auto; }
.has-neg .col:not(.neg) .cv, .has-neg .col.neg .cv { position: absolute; left: -4px; right: -4px; }
.pb.clip { border-radius: 2px 0 0 2px; -webkit-mask-image: linear-gradient(90deg, #000 85%, transparent); mask-image: linear-gradient(90deg, #000 85%, transparent); }

/* track record: chart mode toggle and multi-call lines */
.tr-mode { margin: 0 0 14px; }
.line-wrap .d1 { stroke-dasharray: 7 4; } .line-wrap .d2 { stroke-dasharray: 2 3; } .line-wrap .d3 { stroke-dasharray: 10 3 2 3; }
.line-wrap .lm2 { fill: none; stroke: var(--muted); stroke-width: 2; }
.line-wrap .dot.lm2 { fill: var(--muted); }
.line-wrap circle.dot { stroke-dasharray: none; }
.line-wrap path.lm { stroke-width: 1.5; }
.tip div { text-align: left; } .tip div b { font-size: 14px; margin: 0 0 0 6px; }

/* research list: every row the same height; summaries cut to two lines */
@media (min-width: 1101px) {
  .rl-row:not(.rl-head) { height: 12.75em; }
  .rl-row:not(.rl-head) > * { overflow: hidden; min-height: 0; }
}
.rl-co h3 { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.rl-co p { display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 2; line-clamp: 2; overflow: hidden; }
.rl-call { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.rl-cell .rl-s { display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 2; overflow: hidden; }
.line-wrap .mk { fill: var(--muted); } .line-wrap .mkt { fill: var(--muted); font-size: 9px; }
/* research list v3: one line of summary, compact equal rows */
@media (min-width: 1101px) { .rl-row:not(.rl-head) { height: 9.4em; } }
.rl-co { padding: 18px 28px 18px 0; display: flex; flex-direction: column; justify-content: center; }
.rl-co p { -webkit-line-clamp: 1; line-clamp: 1; margin: 8px 0 0; }
.rl-cell { padding: 18px; gap: 4px; }
.rl-d { font-size: 11px; letter-spacing: .12em; text-transform: uppercase; color: var(--muted); font-weight: 600; margin-top: -3px; }
.rl-call { margin-top: 6px; }
.rl-go { padding-top: 0; }
.rl-perf .rl-px { margin-top: auto; margin-bottom: auto; }
.rl-chg { justify-content: center; }

/* segmented buttons: every edge visible, the active one on top */
.filters.seg button, .filters.seg button:last-child { border-right-width: 1.5px; }
.filters.seg button + button { margin-left: -1.5px; }
.filters.seg button.on { position: relative; z-index: 1; }

/* motion: quick fade on filter changes; ease-in on first scroll. Off for reduced motion. */
@keyframes abfade { from { opacity: 0; transform: translateY(4px); } to { opacity: 1; transform: none; } }
.fx { animation: abfade .3s ease both; }
.rv { opacity: 0; transform: translateY(12px); transition: opacity .5s ease, transform .5s ease; }
.rv.in { opacity: 1; transform: none; }
@media (prefers-reduced-motion: reduce) { .fx { animation: none; } .rv { opacity: 1; transform: none; } }

/* research list v4: name and sector, dates, prices; all cells centred on one level */
@media (min-width: 1101px) { .rl-row:not(.rl-head) { height: 7.4em; } }
.rl-co, .rl-cell { justify-content: center; padding-top: 14px; padding-bottom: 14px; }
.rl-co h3 { margin: 0 0 6px; }
.rl-cell { gap: 3px; }
.rl-d { margin-top: 0; }
.rl-go { margin-top: 8px; }
.rl-perf .rl-px { margin: 6px 0 0; }
.rl-chg { justify-content: center; }

/* research list v5: slim rows, no cell dividers, two short lines per cell */
.rt { margin-top: 8px; border-top: 1px solid var(--rule); }
.rt-row { display: grid; grid-template-columns: minmax(0, 2.6fr) minmax(0, 1fr) minmax(0, 1fr) minmax(0, 1.3fr) minmax(0, .8fr);
  column-gap: 32px; align-items: center; padding: 16px 0; border-bottom: 1px solid var(--rule); transition: background .15s; }
.rt-row[hidden] { display: none; }
.rt-row:not(.rt-head):hover { background: var(--paper); }
.rt-head { padding: 12px 0; font-size: 13px; color: var(--muted); }
.r { text-align: right; }
.rt-co, .rt-c { display: flex; flex-direction: column; gap: 3px; min-width: 0; text-decoration: none; color: var(--text); }
.rt-co b { font-family: var(--serif); font-size: 20px; font-weight: 600; color: var(--ink); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.rt-co b .tk { font-family: var(--sans); font-size: 13px; font-weight: 500; color: var(--muted); letter-spacing: .04em; margin-left: 10px; }
.rt-co > span, .rt-c > span { font-size: 13.5px; color: var(--muted); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.rt-c b { font-size: 15px; font-weight: 500; color: var(--ink); white-space: nowrap; font-variant-numeric: tabular-nums; }
.rt-c.r { align-items: flex-end; }
.rt-c .ar { display: inline-block; transition: transform .15s; }
a.rt-c:hover .ar { transform: translateX(3px); }
a.rt-c:hover b, a.rt-co:hover b { text-decoration: underline; text-underline-offset: 3px; text-decoration-thickness: 1px; }
.rt-chg { font-family: var(--serif); font-size: 20px !important; font-weight: 600 !important; }
.rt-na b { color: var(--muted); }
@media (max-width: 900px) {
  .rt-row { grid-template-columns: 1fr 1fr; row-gap: 12px; }
  .rt-head { display: none; }
  .rt-co { grid-column: 1 / -1; }
  .rt-c.r { align-items: flex-start; text-align: left; }
}

/* ---------- iteration 1: hero scoreboard ---------- */
.hero-grid { display: grid; grid-template-columns: minmax(0, 1.15fr) minmax(320px, .85fr); gap: clamp(32px, 5vw, 120px); align-items: center; }
.hb { border: 1.5px solid var(--ink); background: var(--bg); box-shadow: 10px 10px 0 var(--paper); }
.hb-h { display: flex; align-items: center; gap: 10px; padding: 14px 20px; border-bottom: 1.5px solid var(--ink); font-size: 12px; letter-spacing: .14em; text-transform: uppercase; }
.hb-h b { color: var(--ink); } .hb-h em { margin-left: auto; font-style: normal; color: var(--muted); letter-spacing: .06em; text-transform: none; font-size: 12.5px; }
.live { width: 9px; height: 9px; border-radius: 50%; background: var(--ink); animation: pulse 2s ease-in-out infinite; }
@keyframes pulse { 0%, 100% { box-shadow: 0 0 0 0 rgba(20,20,20,.35); } 50% { box-shadow: 0 0 0 7px rgba(20,20,20,0); } }
.hb-row { display: grid; grid-template-columns: minmax(0, 1.25fr) minmax(0, 1fr) 96px; gap: 18px; align-items: center; padding: 16px 20px; border-bottom: 1px solid var(--rule); text-decoration: none; color: var(--text); transition: background .15s; }
.hb-row:hover { background: var(--paper); }
.hb-who b { font-family: var(--serif); font-size: 26px; color: var(--ink); margin-right: 10px; vertical-align: middle; }
.hb-d { display: block; font-size: 12.5px; color: var(--muted); margin-top: 4px; }
.hb-sp svg.spark { width: 100%; height: 40px; }
.hb-sp .sm, .sr-spark .sm { margin: 0; text-align: left; }
.hb-n { text-align: right; } .hb-n b { display: block; font-family: var(--serif); font-size: 30px; line-height: 1; color: var(--ink); font-variant-numeric: tabular-nums; }
.hb-n span { font-size: 12px; color: var(--muted); }
.hb-f { display: grid; grid-template-columns: repeat(3, auto); justify-content: space-between; gap: 12px; padding: 14px 20px; background: var(--paper); }
.hb-f span { display: block; font-size: 10.5px; letter-spacing: .12em; text-transform: uppercase; color: var(--muted); font-weight: 600; }
.hb-f b { font-family: var(--serif); font-size: 18px; color: var(--ink); }
.hb-go { display: block; padding: 14px 20px; background: var(--ink); color: var(--on-ink); text-decoration: none; font-weight: 600; font-size: 14px; }
.hb-go:hover { background: var(--ink-h); }
@media (max-width: 960px) { .hero-grid { grid-template-columns: 1fr; } .hb { box-shadow: none; } }
@media (prefers-reduced-motion: reduce) { .live { animation: none; } }

/* ---------- iteration 2: fair value gauge on report pages ---------- */
.fg { margin: 26px 0 4px; padding: 18px 22px 14px; background: var(--paper); }
.fg-top { display: flex; justify-content: space-between; align-items: baseline; gap: 16px; flex-wrap: wrap; }
.fg-top b { font-family: var(--serif); font-size: 20px; color: var(--ink); font-weight: 600; }
.fg-track { position: relative; height: 22px; margin: 44px 0 0; }
.fg-track::before { content: ""; position: absolute; left: 0; right: 0; top: 10px; border-top: 1px solid var(--ink); }
.fg-band { position: absolute; top: 3px; height: 16px; background: var(--bar2); border: 1px solid var(--ink); font-style: normal; }
.fg-band em, .fg-p em, .fg-l em, .fg-w em { position: absolute; font-style: normal; font-size: 12.5px; white-space: nowrap; color: var(--ink); }
.fg-band em { left: 0; top: 22px; color: var(--muted); }
.fg-p, .fg-l, .fg-w { position: absolute; top: -4px; width: 0; height: 30px; border-left: 2px solid var(--ink); }
.fg-p::after { content: ""; position: absolute; left: -7px; top: -6px; border: 6px solid transparent; border-top: 7px solid var(--ink); border-bottom: 0; }
.fg-p em { bottom: 38px; left: 0; transform: translateX(-50%); font-weight: 600; background: var(--ink); color: var(--on-ink); padding: 2px 8px; }
.fg-l { border-left-style: dashed; border-color: var(--muted); } .fg-l em { top: 40px; left: 0; transform: translateX(-50%); color: var(--muted); }
.fg-w { border-left-color: var(--muted); height: 22px; top: 0; } .fg-w em { top: -22px; left: 0; transform: translateX(-50%); color: var(--muted); }
.fg-ticks { position: relative; height: 22px; margin-top: 44px; }
.fg-ticks span { position: absolute; transform: translateX(-50%); font-size: 11.5px; color: var(--muted); }
@media (max-width: 860px) { .fg { padding: 14px 14px 10px; } .fg-top b { font-size: 17px; } .fg-ticks span:nth-child(even) { display: none; } }
.fg-ticks span.e { transform: translateX(-100%); } .fg-ticks span:first-child { transform: none; }

/* ---------- iteration 3: command palette (Cmd/Ctrl-K or /) ---------- */
.top .wrap { gap: 16px; } .top nav { margin-left: auto; }
.srch { display: inline-flex; align-items: center; gap: 8px; font: 500 13.5px var(--sans); color: var(--muted); background: var(--bg); border: 1.5px solid var(--rule); padding: 7px 10px 7px 12px; cursor: pointer; white-space: nowrap; }
.srch:hover { border-color: var(--ink); color: var(--ink); }
.srch svg { width: 15px; height: 15px; fill: none; stroke: currentColor; stroke-width: 1.8; }
kbd { font: 600 11px var(--sans); color: var(--muted); border: 1px solid var(--rule); border-bottom-width: 2px; padding: 1px 6px; background: var(--bg); border-radius: 3px; letter-spacing: .02em; }
.cp { position: fixed; inset: 0; z-index: 100; display: flex; justify-content: center; align-items: flex-start; padding: 12vh 16px 16px; }
.cp[hidden] { display: none; }
.cp-bg { position: absolute; inset: 0; background: rgba(20,20,20,.5); backdrop-filter: blur(3px); animation: abfade .15s ease both; }
.cp-box { position: relative; width: min(680px, 100%); background: var(--bg); border: 1.5px solid var(--ink); box-shadow: 14px 14px 0 rgba(20,20,20,.18); animation: abfade .18s ease both; }
.cp-in { display: flex; align-items: center; gap: 12px; padding: 0 16px; border-bottom: 1.5px solid var(--ink); }
.cp-in input { flex: 1; font: 500 20px var(--serif); border: 0; outline: 0; padding: 18px 0; color: var(--ink); background: none; min-width: 0; }
.cp-list { list-style: none; margin: 0; padding: 6px 0; max-height: min(52vh, 460px); overflow-y: auto; }
.cp-list li a { display: grid; grid-template-columns: 78px 1fr; column-gap: 12px; padding: 10px 16px; text-decoration: none; color: var(--text); align-items: baseline; }
.cp-list li.on a { background: var(--paper); box-shadow: inset 3px 0 0 var(--ink); }
.cp-k { grid-row: span 2; font-size: 10.5px; letter-spacing: .12em; text-transform: uppercase; color: var(--muted); font-weight: 600; }
.cp-list b { color: var(--ink); font-weight: 600; font-size: 15.5px; }
.cp-s { font-size: 13px; color: var(--muted); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; grid-column: 2; }
.cp-list mark { background: var(--hl); color: var(--ink); padding: 0 1px; }
.cp-none { padding: 22px 16px; color: var(--muted); font-size: 14.5px; }
.cp-foot { display: flex; gap: 18px; padding: 9px 16px; border-top: 1px solid var(--rule); font-size: 12px; color: var(--muted); background: var(--paper); }
.cp-foot kbd { margin-right: 4px; } .cp-n { margin-left: auto; }
body.cp-open { overflow: hidden; }
@media (max-width: 860px) { .top .wrap { flex-wrap: wrap; } .top nav { margin-left: 0; } .srch { position: absolute; right: var(--gut); top: 12px; } .srch kbd, .srch span { display: none; } .srch { padding: 8px; } .cp-list li a { grid-template-columns: 1fr; } .cp-k { grid-row: auto; } .cp-s { grid-column: 1; } }

/* ---------- iteration 4: sticky call bar and reading progress on report pages ---------- */
.cbar { max-height: 0; overflow: hidden; background: var(--paper); border-top: 0 solid var(--ink); transition: max-height .25s ease; position: relative; }
.cbar.on { max-height: 80px; border-top-width: 1px; }
.cbar .wrap { display: flex; align-items: center; gap: clamp(18px, 3vw, 56px); height: 52px; }
.cb-id { display: flex; align-items: baseline; gap: 10px; } .cb-id b { font-family: var(--serif); font-size: 20px; color: var(--ink); }
.cb-id span, .cb-c span { font-size: 10.5px; letter-spacing: .12em; text-transform: uppercase; color: var(--muted); font-weight: 600; }
.cb-c { display: flex; flex-direction: column; line-height: 1.15; } .cb-c b { font-family: var(--serif); font-size: 17px; color: var(--ink); font-variant-numeric: tabular-nums; }
.cb-go { margin-left: auto; font-weight: 600; font-size: 14px; white-space: nowrap; }
.cb-prog { position: absolute; left: 0; right: 0; bottom: 0; height: 3px; background: var(--ink); transform: scaleX(0); transform-origin: 0 50%; }
body.cb-on .toc, body.cb-on .rail { top: 150px; }
@media (max-width: 860px) { .cbar .wrap { gap: 16px; height: 46px; overflow: hidden; } .cb-c:nth-of-type(n+4), .cb-id span { display: none; } .cb-go { display: none; } }

/* ---------- iteration 5: follow the calls ---------- */


 
 


/* ---------- iteration 6: gauge on the home feature cards ---------- */






 
 



/* ---------- iteration 7: dark theme (follows the system, toggle in the header remembers the choice) ---------- */
@media (prefers-color-scheme: dark) { :root { --bg: #121110; --on-ink: #121110; --on-ink-m: #4a453f; --ink-h: #fff; --bar2: #6a645d; --bar3: #837d75; --bar4: #bdb6ad; --hl: #4a4337; --hov: rgba(255,255,255,.05); color-scheme: dark;
  --ink: #f2ede7; --text: #d4cec7; --muted: #9d968e; --rule: #34312d; --paper: #1c1b19; } }



  

body, .top, .hb, .cp-box, .btn, .srch { transition: background-color .25s ease, color .25s ease, border-color .25s ease; }
.top .wrap { gap: 10px; } .top nav { margin-right: 8px; }


/* ---------- iteration 9: methodology page you can play with ---------- */


 
 


 




   

 

 



/* ---------- iteration 10: phone layout: bottom tab bar, slim header, roomier scoreboard ---------- */
.tabs { display: none; }
@media (max-width: 860px) {
  nav:not(.tabs):not(.toc) { display: none; }
  .top .wrap { flex-direction: row; align-items: center; height: 58px; padding-top: 0; padding-bottom: 0; }
   .srch { top: 11px; }
  .tabs { display: grid; grid-template-columns: repeat(4, 1fr); position: fixed; left: 0; right: 0; bottom: 0; z-index: 50; background: var(--bg); border-top: 1.5px solid var(--ink); padding-bottom: env(safe-area-inset-bottom); }
  .tabs a { display: flex; flex-direction: column; align-items: center; gap: 3px; padding: 9px 0 8px; font-size: 11px; font-weight: 600; letter-spacing: .04em; color: var(--muted); border: 0; text-decoration: none; position: relative; }
  .tabs a.on { color: var(--ink); } .tabs a.on::before { content: ""; position: absolute; top: -1.5px; left: 22%; right: 22%; height: 3px; background: var(--ink); }
  .tabs svg { width: 22px; height: 22px; fill: none; stroke: currentColor; stroke-width: 1.7; stroke-linecap: round; stroke-linejoin: round; }
  body { padding-bottom: 64px; } .foot { margin-top: 64px; }
  .hb-row { grid-template-columns: minmax(0, 1fr) auto; row-gap: 6px; } .hb-sp { grid-column: 1 / -1; order: 3; } .hb-sp svg.spark { height: 34px; }
  .hb-f { grid-template-columns: 1fr 1fr; } .hb-f > div:last-child { grid-column: 1 / -1; }
  .hb-h em { display: none; }
}

/* ---------- iteration 11: motion: page transitions, hero entrance, drawn lines, counted numbers ---------- */
@view-transition { navigation: auto; }
.top { view-transition-name: site-header; } .tabs { view-transition-name: site-tabs; }
::view-transition-old(root), ::view-transition-new(root) { animation-duration: .22s; }
@keyframes rise { from { opacity: 0; transform: translateY(14px); } to { opacity: 1; transform: none; } }
@keyframes draw { from { stroke-dashoffset: 1; } to { stroke-dashoffset: 0; } }
@keyframes pop { from { opacity: 0; transform: scale(0); } to { opacity: 1; transform: scale(1); } }
.hero-copy > * { animation: rise .6s cubic-bezier(.2,.7,.2,1) both; }
.hero-copy > :nth-child(1) { animation-delay: .05s; } .hero-copy > :nth-child(2) { animation-delay: .12s; } .hero-copy > :nth-child(3) { animation-delay: .22s; } .hero-copy > :nth-child(4) { animation-delay: .32s; }
.hb { animation: rise .7s .25s cubic-bezier(.2,.7,.2,1) both; }
.hb-row svg.spark .ln, .score-row svg.spark .ln { stroke-dasharray: 1; stroke-dashoffset: 1; animation: draw 1.1s .6s ease-out forwards; }
.hb-row svg.spark .dot, .score-row svg.spark .dot { transform-box: fill-box; transform-origin: center; animation: pop .3s 1.6s ease-out both; }
@media (prefers-reduced-motion: reduce) { @view-transition { navigation: none; } .hero-copy > *, .hb { animation: none; } .hb-row svg.spark .ln, .score-row svg.spark .ln { stroke-dashoffset: 0; animation: none; } .hb-row svg.spark .dot, .score-row svg.spark .dot { animation: none; } }

/* ---------- iteration 12: glossary tooltips ---------- */
abbr.gl { text-decoration: underline dotted var(--muted); text-underline-offset: 4px; text-decoration-thickness: 1.5px; cursor: help; position: relative; outline: 0; }
abbr.gl::after { content: attr(data-d); position: absolute; left: 50%; bottom: calc(100% + 8px); transform: translateX(-50%) translateY(4px); width: max-content; max-width: min(300px, 80vw); background: var(--ink); color: var(--on-ink); font: 400 13px/1.45 var(--sans); padding: 9px 12px; opacity: 0; pointer-events: none; transition: opacity .15s, transform .15s; z-index: 20; text-align: left; }
abbr.gl:hover::after, abbr.gl:focus::after { opacity: 1; transform: translateX(-50%); }
abbr.gl:focus-visible { outline: 2px solid var(--ink); outline-offset: 2px; }

/* ---------- iteration 13: where next, at the end of every report ---------- */







 



/* ---------- iteration 14: plain-English call status ---------- */
.state { display: grid; grid-template-columns: auto 1fr; gap: 6px 22px; align-items: baseline; padding: 16px 20px; margin: 0 0 22px; border: 1.5px solid var(--ink); background: var(--paper); }
.state b { font-family: var(--serif); font-size: 22px; color: var(--ink); white-space: nowrap; }
.state p { margin: 0; font-size: 15.5px; max-width: 90ch; }
.state-pos { background: var(--bg); } .state-pos b::before { content: "\2713\00a0"; } .state-neg b::before { content: "\2715\00a0"; } .state-nil b::before { content: "\25cb\00a0"; }
.state-neg { border-style: dashed; }
.st { display: inline-block; font-style: normal; font-size: 10.5px; letter-spacing: .1em; text-transform: uppercase; font-weight: 700; padding: 1px 7px; border: 1px solid var(--rule); color: var(--muted); margin-bottom: 4px; }
.st-pos { background: var(--ink); border-color: var(--ink); color: var(--on-ink); } .st-neg { border: 1px dashed var(--ink); color: var(--ink); }
 .hb-n b { margin-top: 0; }
@media (max-width: 860px) { .state { grid-template-columns: 1fr; } }

/* ---------- iteration 15: next-test countdown strip ---------- */





 





/* ---------- iteration 16: open data and call fingerprints ---------- */

 
 




/* ---------- iteration 17: hero headline that says what is different ---------- */
.hero h1 em { font-style: normal; background: linear-gradient(var(--hl), var(--hl)) 0 88% / 0% .34em no-repeat; animation: sweep .9s .7s cubic-bezier(.3,.7,.2,1) forwards; padding: 0 .06em; margin: 0 -.06em; }
@keyframes sweep { to { background-size: 100% .34em; } }
@media (prefers-reduced-motion: reduce) { .hero h1 em { animation: none; background-size: 100% .34em; } }
.hero h1 { max-width: 19ch; }

/* ---------- iteration 18: event study strip chart ---------- */
.ach { margin-top: 44px; }
.ach-grid { border-top: 2px solid var(--ink); }
.ar { display: grid; grid-template-columns: clamp(110px, 13%, 200px) 1fr; align-items: center; border-bottom: 1px solid var(--rule); }
.aw { padding: 12px 0; } .aw b { display: block; font-family: var(--serif); font-size: 19px; color: var(--ink); } .aw span { font-size: 12.5px; color: var(--muted); }
.ap { position: relative; height: 64px; }
.ap::before { content: ""; position: absolute; left: 50%; top: 6px; bottom: 6px; border-left: 1px dashed var(--ink); }
.ap::after { content: ""; position: absolute; left: 4%; right: 4%; top: 50%; border-top: 1px solid var(--rule); }
.ad { position: absolute; top: 50%; width: 15px; height: 15px; margin: -7.5px 0 0 -7.5px; outline: 0; border-radius: 50%; background: var(--ink); border: 2px solid var(--bg); z-index: 2; transition: transform .15s, opacity .15s; cursor: pointer; box-sizing: content-box; }
.ad.clip { border-radius: 2px 50% 50% 2px; }
.am { position: absolute; top: 18px; bottom: 8px; width: 0; border-left: 3px solid var(--bar2); z-index: 1; text-decoration: none; }
.am em { position: absolute; top: -16px; left: 6px; font-style: normal; font-size: 11.5px; line-height: 14px; color: var(--muted); white-space: nowrap; }
.at { position: relative; height: 26px; } .at span { position: absolute; top: 6px; transform: translateX(-50%); font-size: 12px; color: var(--muted); }
.ar.ax { border: 0; }
#ach[data-hl]:not([data-hl=""]) .ad:not(.h) { opacity: .15; }
#ach .ad.h, #ach .ad:hover, #ach .ad:focus-visible { width: 19px; height: 19px; margin: -9.5px 0 0 -9.5px; z-index: 6; outline: 2px solid var(--bg); }
.ad::after { content: attr(data-v); position: absolute; bottom: calc(100% + 9px); left: 50%; transform: translateX(-50%); background: var(--ink); color: var(--on-ink); font: 600 12.5px/1 var(--sans); padding: 5px 8px; white-space: nowrap; opacity: 0; pointer-events: none; transition: opacity .12s; font-variant-numeric: tabular-nums; }
.ad::before { content: ""; position: absolute; bottom: calc(100% + 4px); left: 50%; margin-left: -5px; border: 5px solid transparent; border-top-color: var(--ink); border-bottom: 0; opacity: 0; transition: opacity .12s; }
#ach .ad.h::after, #ach .ad:hover::after, #ach .ad.h::before, #ach .ad:hover::before { opacity: 1; }
.ac.pin { background: var(--ink); color: var(--on-ink); border-color: var(--ink); }
.acs { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; margin-top: 14px; font-size: 13px; color: var(--muted); }
.ac { font: 500 13px var(--sans); background: var(--bg); border: 1.5px solid var(--rule); padding: 5px 11px; cursor: pointer; color: var(--text); }
.ac:hover, .ac.h { border-color: var(--ink); background: var(--paper); color: var(--ink); }
@media (max-width: 860px) { .ar { grid-template-columns: 78px 1fr; } .aw b { font-size: 16px; } .aw span { display: none; } .at span:nth-child(even) { display: none; } .am em { display: none; } }

/* ---------- iteration 19: catalyst calendar ---------- */
.cal { margin-top: 72px; }
.tl { position: relative; margin: 10px 0 8px; padding: 34px 0 30px; }
.tl-pts { position: absolute; left: 0; right: 0; top: 50%; height: 2px; background: var(--ink); }
.tl-pts i { position: absolute; top: 50%; width: 13px; height: 13px; margin: -6.5px 0 0 -6.5px; background: var(--bg); border: 2px solid var(--ink); border-radius: 50%; }
.tl-pts i.ex { background: var(--ink); }
.tl-now { position: absolute; top: -22px; bottom: -22px; width: 0; border-left: 2px dashed var(--muted); } .tl-now em { position: absolute; top: -6px; left: 6px; font-style: normal; font-size: 11px; letter-spacing: .12em; text-transform: uppercase; color: var(--muted); font-weight: 600; }
.tl-ax { position: absolute; left: 0; right: 0; bottom: 0; height: 22px; } .tl-ax span { position: absolute; font-size: 12px; color: var(--muted); border-left: 1px solid var(--rule); padding-left: 5px; height: 14px; line-height: 14px; }
.crs { border-top: 2px solid var(--ink); margin-top: 6px; }
.cr { display: grid; grid-template-columns: clamp(170px, 18%, 280px) 1fr; gap: 16px; padding: 14px 0; border-bottom: 1px solid var(--rule); }
.cr-d b { display: block; font-family: var(--serif); font-size: 19px; color: var(--ink); } .cr-d em { font-style: normal; font-size: 13px; color: var(--muted); }
.cr ul { list-style: none; margin: 0; padding: 0; } .cr li a { display: block; padding: 3px 0; text-decoration: none; color: var(--text); } .cr li a:hover { color: var(--ink); text-decoration: underline; text-underline-offset: 3px; }
.cr li .tk { color: var(--muted); font-size: 12.5px; font-weight: 600; letter-spacing: .06em; margin-right: 10px; display: inline-block; min-width: 42px; }
.cr.past { opacity: .5; }
@media (max-width: 860px) { .cr { grid-template-columns: 1fr; gap: 4px; } }

/* ---------- iteration 20: what the price needs (sensitivity grid) ---------- */
.sg { margin-top: 56px; }
.sg-in { display: grid; grid-template-columns: 1fr 1.2fr; gap: clamp(28px, 4vw, 90px); align-items: center; }
.sg-m { font-family: var(--serif); font-size: clamp(24px, 2.3vw, 36px); line-height: 1.2; color: var(--ink); margin: 0 0 14px; font-weight: 600; }
.sg-g { display: grid; gap: 6px; }
.sg-h, .sg-r { display: grid; grid-template-columns: 82px repeat(auto-fit, minmax(0, 1fr)); gap: 6px; align-items: stretch; }
.sg-h { font-size: 12px; color: var(--muted); text-align: center; } .sg-h em { font-style: normal; text-align: left; font-size: 10.5px; letter-spacing: .1em; text-transform: uppercase; align-self: end; }
.sg-h span { font-weight: 600; color: var(--ink); padding-bottom: 2px; }
.sg-r b { align-self: center; font-size: 13px; color: var(--ink); }
.sg-r i { font-style: normal; text-align: center; padding: 22px 4px; font-family: var(--serif); font-size: clamp(18px, 1.7vw, 26px); font-variant-numeric: tabular-nums; border: 1.5px solid var(--rule); color: var(--muted); background: var(--paper); }
.sg-r i.hi { background: var(--ink); color: var(--on-ink); border-color: var(--ink); font-weight: 600; }
@media (max-width: 860px) { .sg-in { grid-template-columns: 1fr; } .sg-r i { padding: 16px 2px; } }
.sg-h em { white-space: nowrap; }

/* ---------- iteration 21: footer that keeps people going ---------- */
.foot { padding-top: 0; margin-top: 96px; border-top: 0; }
.foot-cta { display: flex; justify-content: space-between; align-items: center; gap: 24px; flex-wrap: wrap; background: var(--ink); color: var(--on-ink); margin: 0 calc(-1 * var(--gut)); padding: clamp(28px, 4vw, 56px) var(--gut); }
.foot-cta h2 { color: var(--on-ink); margin: 0; font-size: clamp(32px, 4vw, 60px); letter-spacing: -.02em; }
.foot-cta .btn { background: var(--on-ink); color: var(--ink); border-color: var(--on-ink); font-size: 15px; padding: 14px 24px; } .foot-cta .btn:hover { background: var(--bg); }
.foot-cols { display: grid; grid-template-columns: 1.6fr repeat(3, 1fr); gap: clamp(20px, 3vw, 64px); padding: 40px 0 28px; }
.foot-cols b { display: block; font-size: 11px; letter-spacing: .14em; text-transform: uppercase; color: var(--ink); margin-bottom: 10px; border-bottom: 1px solid var(--rule); padding-bottom: 8px; }
.foot-cols a, .fc-s { display: block; padding: 4px 0; color: var(--muted); text-decoration: none; font-size: 14px; } .foot-cols a:hover, .fc-s:hover { color: var(--ink); text-decoration: underline; text-underline-offset: 3px; }
.fc-s { background: none; border: 0; font: inherit; font-size: 14px; cursor: pointer; text-align: left; padding: 4px 0; }
.fc-brand .foot-note { margin: 0; font-size: 13px; }
.foot .foot-links { border-top: 1px solid var(--rule); padding-top: 18px; margin: 0; }
@media (max-width: 960px) { .foot-cols { grid-template-columns: 1fr 1fr; } .fc-brand { grid-column: 1 / -1; } }

/* ---------- iteration 22: live record strip on every page ---------- */




  
 


/* ---------- iteration 24: About principles with evidence ---------- */
.pr-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 0; border-top: 2px solid var(--ink); margin: 22px 0 8px; }
.pc { display: flex; flex-direction: column; padding: 22px 24px 20px 0; border-bottom: 1px solid var(--rule); text-decoration: none; color: var(--text); transition: background .15s; }
.pc:nth-child(even) { padding-left: 24px; padding-right: 0; border-left: 1px solid var(--rule); }
.pc:hover { background: var(--paper); }
.pc-n { font-size: 12px; letter-spacing: .14em; color: var(--muted); font-weight: 600; }
.pc h3 { font-size: 22px; margin: 6px 0 8px !important; } .pc p { margin: 0 0 16px; font-size: 14.5px; flex: 1; }
.pc-e { display: flex; align-items: baseline; gap: 12px; border-top: 1px solid var(--rule); padding-top: 12px; }
.pc-e b { font-family: var(--serif); font-size: 40px; line-height: 1; color: var(--ink); font-weight: 600; } .pc-e span { font-size: 13px; color: var(--muted); line-height: 1.35; }
.pc i { font-style: normal; font-weight: 600; font-size: 13.5px; color: var(--ink); margin-top: 12px; } .pc:hover i { text-decoration: underline; text-underline-offset: 3px; }
@media (max-width: 700px) { .pr-grid { grid-template-columns: 1fr; } .pc:nth-child(even) { padding-left: 0; border-left: 0; } }

/* ---------- iteration 25: print / Save as PDF, skip link, visible keyboard focus ---------- */
.skip { position: absolute; left: 8px; top: -60px; z-index: 200; background: var(--ink); color: var(--on-ink); padding: 10px 16px; font-weight: 600; text-decoration: none; }
.skip:focus { top: 8px; }
a:focus-visible, button:focus-visible, input:focus-visible, [tabindex]:focus-visible { outline: 2px solid var(--ink); outline-offset: 3px; }
main:focus { outline: none; }
.print-head { display: none; }
@media print {
  :root { --bg: #fff; --on-ink: #fff; --on-ink-m: #cfc8c0; --ink-h: #000; --bar2: #b9b1a8; --bar3: #8a837c; --bar4: #555; --hl: #e8dfd3; --ink: #141414; --text: #2a2a2a; --muted: #6e6a66; --rule: #d9d3cc; --paper: #f8f2ec; color-scheme: light; }
  @page { margin: 16mm 14mm 18mm; }
  html, body { background: #fff !important; font-size: 10.5pt; line-height: 1.5; -webkit-print-color-adjust: exact; print-color-adjust: exact; }
  body { padding: 0 !important; }
  .skip, .top, .tabs, .cbar, .srch, .btns, .filters, .toc, .rail, .rn, .follow-sm, .foot-cta, .fc-s, .foot-cols > div:not(.fc-brand), .cp, .tr-mode, #tr-range { display: none !important; }
  .print-head { display: flex; justify-content: space-between; align-items: flex-end; border-bottom: 1.5px solid #141414; padding-bottom: 8px; margin-bottom: 14px; font-size: 8.5pt; color: #6e6a66; }
  .ph-logo svg { height: 24px; width: auto; color: #141414; display: block; }
  .wrap { max-width: none; padding: 0; }
  .rv { opacity: 1 !important; transform: none !important; transition: none !important; }
  * { animation: none !important; }
  .r-head { padding-top: 0; } .r-head h1 { font-size: 26pt; }
  .r-cols { grid-template-columns: 1fr 34%; gap: 18pt; } .r-wide { display: block; }
  .r-body h2:not(.label) { break-after: avoid; } h3 { break-after: avoid; }
  figure, table, .tiles, .fg, .sg, .whys, .why, blockquote, .pc, .state, .watch, .label { break-inside: avoid; } .label { break-after: avoid; }
  tr { break-inside: avoid; }
  .table-wrap { overflow: visible; }
  abbr.gl { text-decoration: none; } abbr.gl::after { display: none; }
  a { text-decoration: none; color: inherit; }
  .foot { margin-top: 18pt; padding: 8pt 0 0; border-top: 1px solid #141414; } .foot-cols { display: block; padding: 0; } .foot-note { font-size: 8pt; }
  .foot-links { font-size: 8pt; border: 0; padding: 0; }
  .cols { height: 110pt; }
}

/* phone fixes: Contents nav stays hidden, chart labels and glossary tooltips never push the page sideways */
.pv.in { color: var(--ink); } .pb.me + .pv.in { color: var(--on-ink); }
@media (max-width: 1100px) { nav.toc { display: none; } }
@media (max-width: 860px) {
  abbr.gl:hover::after, abbr.gl:focus::after { position: fixed; left: 12px; right: 12px; bottom: 76px; top: auto; width: auto; max-width: none; transform: none; z-index: 60; box-shadow: 0 6px 24px rgba(0,0,0,.25); }
  abbr.gl::after { position: fixed; left: 12px; right: 12px; bottom: 76px; top: auto; width: auto; max-width: none; transform: none; }
  .qchart .cols { gap: 3px; } .col .cv { font-size: 9.5px; letter-spacing: -.02em; }
}
@media (max-width: 1100px) { .r-wide { grid-template-columns: minmax(0, 1fr); } }
.r-body, .r-wide > *, .r-cols > * { min-width: 0; }

/* all calls: clean single-line table */
.ctable { border: 1px solid var(--rule); border-radius: 10px; overflow: hidden; overflow-x: auto; background: var(--bg); }
table.calls2 { width: 100%; border-collapse: collapse; font-size: 15px; }
table.calls2 th { text-align: left; font-weight: 500; font-size: 13.5px; color: var(--muted); background: var(--paper);
  padding: 13px 20px; border-bottom: 1px solid var(--rule); white-space: nowrap; cursor: pointer; user-select: none; }
table.calls2 th.num, table.calls2 td.num { text-align: right; }
table.calls2 th[data-s]::after { content: "▴"; display: inline-block; margin-left: 6px; font-size: 10px; opacity: .3; }
table.calls2 th.sorted::after { opacity: .9; }
table.calls2 th.sorted.desc::after { content: "▾"; }
table.calls2 th:hover { color: var(--ink); }
table.calls2 td { padding: 13px 20px; border-bottom: 1px solid var(--rule); white-space: nowrap; color: var(--ink); font-variant-numeric: tabular-nums; vertical-align: middle; }
table.calls2 tbody tr:last-child td { border-bottom: 0; }
table.calls2 tbody tr:nth-child(even) td { background: color-mix(in srgb, var(--paper) 45%, var(--bg)); }
table.calls2 tbody tr { cursor: pointer; transition: background .15s; }
table.calls2 tbody tr:hover td { background: var(--paper); }
table.calls2 td:first-child { color: var(--muted); }
table.calls2 td a { color: var(--ink); text-decoration: none; font-weight: 500; }
table.calls2 tr:hover td a { text-decoration: underline; text-underline-offset: 3px; text-decoration-thickness: 1px; }
table.calls2 .tk { margin-left: 9px; color: var(--muted); font-size: 13px; font-weight: 500; letter-spacing: .04em; }
table.calls2 td.ret, table.calls2 td.v-pos, table.calls2 td.v-neg { font-weight: 600; }
.pill2 { display: inline-block; font-size: 12.5px; font-weight: 500; padding: 3px 10px; border-radius: 6px; background: var(--paper); color: var(--text); }
.pill2.p2-neg { background: var(--ink); color: var(--on-ink); }
.pill2.p2-pos { background: var(--bg); box-shadow: inset 0 0 0 1px var(--ink); color: var(--ink); }
/* ---------- profile / admin sign-in ---------- */
.login { display: grid; gap: 8px; max-width: 420px; border: 1.5px solid var(--ink); padding: 28px; background: var(--paper); }
.login label { font-size: 12px; letter-spacing: .12em; text-transform: uppercase; color: var(--muted); font-weight: 600; margin-top: 8px; }
.login input { font: 400 16px var(--sans); padding: 12px 14px; border: 1.5px solid var(--rule); background: var(--bg); color: var(--ink); width: 100%; }
.login input:focus { border-color: var(--ink); outline: 0; }
.login .btn { margin-top: 18px; cursor: pointer; font-family: var(--sans); width: 100%; text-align: center; }
.lg-msg { margin: 14px 0 0; padding: 10px 12px; border: 1px dashed var(--ink); background: var(--bg); font-size: 14px; color: var(--ink); }
.lg-note { max-width: 420px; margin-top: 14px; }

/* ---------- round 2: icon-only search, small follow box, small read-next box ---------- */
.srch { width: 38px; height: 36px; padding: 0; justify-content: center; gap: 0; }
.srch svg { width: 17px; height: 17px; }
.follow-sm { display: flex; flex-wrap: wrap; align-items: baseline; justify-content: flex-end; gap: 4px 16px; margin: 22px 0 0 auto; width: fit-content; max-width: 100%; padding: 9px 14px; border: 1px solid var(--rule); font-size: 13px; color: var(--muted); }
.follow-sm span { font-size: 10.5px; letter-spacing: .12em; text-transform: uppercase; font-weight: 600; color: var(--ink); }
.follow-sm a { color: var(--muted); text-decoration-color: var(--rule); } .follow-sm a:hover { color: var(--ink); text-decoration-color: var(--ink); }
.rn { display: flex; align-items: baseline; gap: 14px; width: fit-content; max-width: 100%; margin: 48px 0 0; padding: 12px 18px; border: 1.5px solid var(--ink); text-decoration: none; color: var(--text); transition: background .15s; }
.rn:hover { background: var(--paper); }
.rn .l { font-size: 10.5px; letter-spacing: .12em; text-transform: uppercase; font-weight: 600; color: var(--muted); white-space: nowrap; }
.rn b { font-family: var(--serif); font-size: 18px; color: var(--ink); } .rn i { font-style: normal; font-weight: 600; color: var(--ink); }
@media (max-width: 860px) { .follow-sm { justify-content: flex-start; margin-left: 0; } .rn { flex-wrap: wrap; gap: 4px 12px; } .srch { height: 34px; width: 34px; } }
.ad.lr::after { left: auto; right: -8px; transform: none; } .ad.ll::after { left: -8px; transform: none; }
.hero { padding: 88px 0 72px; border-bottom: 1px solid var(--rule); }
@media (max-width: 860px) { .hero { padding: 56px 0 48px; } }

/* ---------- round 3: Read next on the right; centered sign-in ---------- */
.rn { margin-left: auto; }
.login-head { text-align: center; padding-bottom: 8px; } .login-head .lead { margin-left: auto; margin-right: auto; }
.login-wrap { display: flex; flex-direction: column; align-items: center; }
.login-wrap .login { width: 100%; max-width: 420px; }
.lg-note { text-align: center; }
@media (max-width: 860px) { .rn { margin-left: auto; } }

/* report call bar v2: roomier, cells separated by thin rules, score link on the right */
.cbar.on { max-height: 96px; }
.cbar .wrap { gap: 0; height: 64px; }
.cb-id { flex-direction: column; align-items: flex-start; gap: 2px; padding-right: clamp(20px, 2.4vw, 40px); min-width: 0; max-width: 30%; }
.cb-id b { font-size: 22px; line-height: 1; }
.cb-id span { font-size: 12px; letter-spacing: 0; text-transform: none; font-weight: 400; color: var(--muted); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; max-width: 100%; }
.cb-cells { display: flex; align-items: stretch; height: 40px; min-width: 0; }
.cb-c { justify-content: center; gap: 3px; padding: 0 clamp(16px, 2vw, 32px); border-left: 1px solid var(--rule); white-space: nowrap; }
.cb-c span { font-size: 10.5px; }
.cb-c b { font-size: 18px; line-height: 1.1; }
.cb-go { margin-left: auto; font-size: 14px; font-weight: 600; color: var(--ink); text-decoration: none; padding-left: 24px; white-space: nowrap; }
.cb-go:hover { text-decoration: underline; text-underline-offset: 3px; }
.cb-prog { height: 2px; }
@media (max-width: 1000px) { .cb-id span { display: none; } .cb-c:nth-child(n+4) { display: none; } }
@media (max-width: 640px) { .cb-c:nth-child(n+3) { display: none; } .cb-c { padding: 0 12px; } }

/* event-study ranges on the track record (scored automatically from daily closes) */
.rg-table td { vertical-align: top; }
.rg-cs { display: flex; flex-wrap: wrap; gap: 4px 6px; font-size: 13px; }
.rg-c { padding: 2px 8px; border-radius: 6px; color: var(--muted); white-space: nowrap; }
.rg-c b { font-weight: 600; margin-right: 3px; }
.rg-c.on { background: var(--paper); color: var(--ink); box-shadow: inset 0 0 0 1px var(--ink); }

/* scoreboard: plain numbers, no pulse or offset shadow */
.hb { box-shadow: none !important; }
.live { display: none; }
.empty-note { color: var(--muted); font-size: 15px; padding: 22px 0; margin: 0; }
td.empty-note { text-align: center; padding: 28px 20px; }
.features .empty-note { grid-column: 1 / -1; }
@media (max-width: 560px) { .col { min-width: 0; } .col .cv { font-size: 8.5px; letter-spacing: -.03em; } }
.hb-who .act { white-space: nowrap; vertical-align: middle; }

/* bylines, team, report PDFs */
.byline { font-size: 14px; color: var(--muted); margin: 14px 0 0; }
.byline a { color: var(--ink); }
.team { display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: 28px; margin: 8px 0 12px; }
.person { border-top: 1.5px solid var(--ink); padding-top: 14px; scroll-margin-top: 96px; }
.person h3 { margin: 0 0 6px; font-size: 21px; }
.person p { margin: 10px 0 0; font-size: 15px; }
.pdf-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(190px, 1fr)); gap: 40px 28px; margin-top: 24px; }
.pdf-tile { display: flex; flex-direction: column; gap: 3px; font-size: 13.5px; color: var(--muted); min-width: 0; }
.pdf-tile[hidden] { display: none; }
.pdf-cv { display: block; margin-bottom: 10px; text-decoration: none; }
.pdf-tile img, .pdf-tile .pdf-ph { width: 100%; height: auto; aspect-ratio: 17 / 22; object-fit: cover; object-position: top; display: block; border: 1px solid var(--rule); box-shadow: 0 2px 8px rgba(20,20,20,.08); transition: box-shadow .15s, transform .15s; background: #fff; }
.pdf-cv:hover img, .pdf-cv:hover .pdf-ph { box-shadow: 0 6px 18px rgba(20,20,20,.18); transform: translateY(-2px); }
.pdf-tile b { color: var(--ink); font-size: 16px; font-family: var(--serif); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.pdf-tile .tk { font-family: var(--sans); font-size: 12.5px; font-weight: 500; color: var(--muted); letter-spacing: .04em; margin-left: 4px; }
.pdf-sub { color: var(--ink); font-weight: 500; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.pdf-links { margin-top: 4px; }
.pdf-tile .pdf-ph { display: flex; flex-direction: column; align-items: stretch; justify-content: flex-start; gap: 10px; padding: 9% 9%; letter-spacing: 0; font-weight: 400; --ink: #141414; --text: #2a2a2a; --muted: #6e6a66; --rule: #d9d3cc; color: var(--text); text-align: left; border-color: #d9d3cc; }
.ph-k { font-size: 9px; letter-spacing: .14em; text-transform: uppercase; color: var(--muted); font-weight: 600; border-bottom: 1px solid var(--ink); padding-bottom: 6px; }
.ph-co { font-family: var(--serif); font-size: 15px; font-weight: 600; color: var(--ink); line-height: 1.2; }
.ph-co span { font-weight: 400; color: var(--muted); }
.ph-h { font-family: var(--serif); font-size: 11px; line-height: 1.45; color: var(--text); overflow: hidden; flex: 1; }
.ph-f { font-size: 8.5px; letter-spacing: .12em; text-transform: uppercase; color: var(--muted); border-top: 1px solid var(--rule); padding-top: 6px; }
.filters .n { color: var(--muted); font-weight: 500; margin-left: 4px; }
@media (max-width: 560px) { .pdf-grid { grid-template-columns: repeat(2, 1fr); gap: 28px 16px; } .pdf-tile { font-size: 12.5px; } .pdf-tile b { font-size: 15px; } }
/* home: forecast check calendar (month view) */
.bigcal { border-top: 2px solid var(--ink); }
.bc-bar { display: flex; align-items: center; justify-content: space-between; gap: 16px; padding: 16px 0; }
.bc-bar h3 { margin: 0; font-family: var(--serif); font-size: clamp(24px, 2.4vw, 34px); font-weight: 600; color: var(--ink); }
.bc-bar h3 span { font-family: var(--sans); font-size: 13px; font-weight: 500; color: var(--muted); letter-spacing: .04em; margin-left: 10px; }
.bc-bar button { font: 500 18px var(--sans); width: 44px; height: 44px; background: var(--bg); color: var(--ink); border: 1.5px solid var(--rule); cursor: pointer; }
.bc-bar button:hover:not(:disabled) { border-color: var(--ink); }
.bc-bar button:disabled { opacity: .3; cursor: default; }
.bc-grid { display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); border-left: 1px solid var(--rule); border-top: 1px solid var(--rule); }
.bc-wd { padding: 10px 12px; font-size: 11px; font-weight: 600; letter-spacing: .12em; text-transform: uppercase; color: var(--muted); background: var(--paper); border-right: 1px solid var(--rule); border-bottom: 1px solid var(--rule); }
.bc-day { min-height: 128px; padding: 8px 10px 10px; border-right: 1px solid var(--rule); border-bottom: 1px solid var(--rule); display: flex; flex-direction: column; gap: 6px; min-width: 0; }
.bc-pad { background: color-mix(in srgb, var(--paper) 50%, var(--bg)); }
.bc-n { font-family: var(--serif); font-size: 17px; color: var(--ink); font-variant-numeric: tabular-nums; }
.bc-dow { display: none; }
.bc-past .bc-n { color: var(--muted); }
.bc-today .bc-n { display: inline-flex; align-self: flex-start; align-items: center; justify-content: center; min-width: 28px; height: 28px; padding: 0 6px; background: var(--ink); color: var(--on-ink); border-radius: 14px; }
.bc-has { background: var(--paper); }
.bc-ev { display: block; font-size: 12.5px; line-height: 1.35; color: var(--ink); text-decoration: none; padding: 5px 7px; background: var(--bg); border-left: 2px solid var(--ink); overflow: hidden; display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; }
.bc-ev:hover { text-decoration: underline; text-underline-offset: 2px; }
.bc-ev .tk { font-size: 11px; font-weight: 700; letter-spacing: .06em; color: var(--muted); margin-right: 2px; }
@media (max-width: 760px) {
  .bc-grid { grid-template-columns: 1fr; border-left: 0; }
  .bc-wd, .bc-pad, .bc-day:not(.bc-has):not(.bc-today) { display: none; }
  .bc-day { min-height: 0; border-right: 0; padding: 12px 0; background: none; }
  .bc-dow { display: inline; }
  .bc-today .bc-n { align-self: flex-start; }
  .bc-ev { -webkit-line-clamp: unset; font-size: 14px; }
}
