/* Weekly market report. Uses the Longhand site tokens and typography. */
.market { max-width: calc(1260px + 2 * var(--gutter)); }
.market-hero { padding-block: clamp(34px, 5vw, 68px) 28px; border-bottom: 1px solid var(--rule); }
.market-kicker, .market-number, .market-rail-title, .market-stat-label, .market-policy span, .market-levels span, .market-callout-label {
  font: 600 11px/1.45 var(--font-sans); letter-spacing: .15em; text-transform: uppercase; color: var(--gold-ink);
}
.market-kicker { display: flex; gap: 10px; align-items: center; }
.market-kicker .cat { padding: 2px 7px; border: 1px solid var(--rule-2); color: var(--ink-2); letter-spacing: .1em; }
.market-hero h1 { margin-top: 22px; font: 500 clamp(44px, 5.2vw, 72px)/1.02 var(--font-sans); letter-spacing: -.05em; text-transform: uppercase; }
.market-hero h1 em { display: inline-block; font: italic 400 1em/1 var(--font-serif); letter-spacing: -.045em; text-transform: none; }
.market-deck { max-width: 36ch; margin-top: 18px; color: var(--ink-2); font: italic clamp(20px, 2vw, 27px)/1.35 var(--font-serif); }
.market-meta { display: flex; flex-wrap: wrap; gap: 6px 13px; margin-top: 24px; color: var(--ink-2); font: 500 11px/1.6 var(--font-sans); letter-spacing: .12em; text-transform: uppercase; }
.market-meta span { color: var(--ink-3); }
.market-stats { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); margin-top: clamp(28px,4vw,44px); border-top: 1px solid var(--rule); }
.market-stats > div { min-width: 0; padding: 17px 18px 5px 0; border-right: 1px solid var(--rule); }
.market-stats > div + div { padding-left: 18px; }
.market-stats > div:last-child { border: 0; }
.market-stat-label { display: block; min-height: 31px; color: var(--ink-2); letter-spacing: .08em; }
.market-stats strong { display: block; margin-top: 6px; font: 500 clamp(22px,2.6vw,32px)/1.1 var(--font-sans); letter-spacing: -.045em; white-space: nowrap; }
.market-stats small { display: block; margin-top: 7px; color: var(--ink-2); font: 400 12px/1.5 var(--font-sans); }
.market-source-note { margin-top: 18px; color: var(--ink-3); font: 400 11.5px/1.6 var(--font-sans); }
.market-grid { display: grid; grid-template-columns: 180px minmax(0,1fr); gap: clamp(24px,2.8vw,38px); align-items: start; }
.market-rail { position: sticky; top: calc(var(--masthead-h) + 24px); padding-top: 42px; font: 400 13px/1.4 var(--font-sans); }
.market-rail-title { margin-bottom: 10px; }
.market-rail a { display: flex; gap: 12px; padding: 9px 0; border-top: 1px solid var(--rule); color: var(--ink-3); text-decoration: none; font-variant-numeric: tabular-nums; }
.market-rail a span { color: var(--ink-2); }
.market-rail a:hover span { color: var(--gold-ink); }
.market-content { min-width: 0; max-width: 950px; padding-bottom: 64px; font-size: 16.5px; line-height: 1.62; }
.market-section { padding-top: clamp(40px,5vw,62px); scroll-margin-top: calc(var(--masthead-h) + 16px); }
.market-number { margin-bottom: 10px; font-family: ui-monospace, "SF Mono", Consolas, monospace; letter-spacing: .07em; }
.market-section h2 { max-width: 25ch; font: 400 clamp(30px,3.4vw,43px)/1.12 var(--font-serif); letter-spacing: -.022em; }
.market-section h3 { margin-top: 24px; font: 500 19px/1.3 var(--font-sans); letter-spacing: -.02em; }
.market-section p { max-width: 65ch; }
.market-section h2 + p, .market-section h2 + .market-policy { margin-top: 18px; }
.market-section p + p { margin-top: 1em; }
.market-lede { font-size: clamp(18px,1.8vw,21px); line-height: 1.5; }
.market-callout { max-width: 72ch; margin-top: 26px; padding: 17px 20px 18px; border-left: 2px solid var(--gold); background: var(--tint); }
.market-callout p { margin-top: 7px; }
.market-policy, .market-levels { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); max-width: 860px; margin-block: 26px; border-top: 1px solid var(--rule); }
.market-policy > div, .market-levels > div { padding: 16px 14px 7px 0; border-right: 1px solid var(--rule); }
.market-policy > div + div, .market-levels > div + div { padding-left: 14px; }
.market-policy > div:last-child, .market-levels > div:last-child { border-right: 0; }
.market-policy span, .market-levels span { display: block; color: var(--ink-2); letter-spacing: .08em; }
.market-policy strong, .market-levels strong { display: block; margin-top: 8px; font: 500 clamp(21px,2.5vw,29px)/1.15 var(--font-sans); letter-spacing: -.04em; }
.market-policy small, .market-levels small { display: block; margin-top: 5px; color: var(--ink-3); font: 400 12px/1.5 var(--font-sans); }
.market-caveat, .market-method { margin-top: 18px !important; color: var(--ink-3); font: 400 12px/1.65 var(--font-sans); }
.market-table-wrap { max-width: 760px; margin-top: 22px; overflow-x: auto; }
.market-table-wrap:focus-visible { outline: 2px solid var(--gold-ink); outline-offset: 2px; }
.market-table { width: 100%; border-collapse: collapse; font: 400 14px/1.45 var(--font-sans); font-variant-numeric: tabular-nums; }
.market-table caption { padding: 0 0 11px; color: var(--ink-2); text-align: left; font-size: 12px; }
.market-table th, .market-table td { padding: 8px 10px; border-top: 1px solid var(--rule); text-align: left; }
.market-table th:last-child, .market-table td:last-child { width: 125px; text-align: right; }
.market-table th { color: var(--ink-3); font-size: 10px; letter-spacing: .12em; text-transform: uppercase; }
.market-stock { display: grid; grid-template-columns: 74px minmax(0,1fr); gap: 16px; max-width: 78ch; padding: 22px 0; border-top: 1px solid var(--rule); }
.market-stock:first-of-type { margin-top: 24px; }
.market-ticker { color: var(--gold-ink); font: 600 14px/1.5 var(--font-sans); letter-spacing: .08em; }
.market-stock h3 { margin: 0 0 7px; font-size: 18px; }
.market-stock p { font-size: 16px; }
.market-sources .source-list { max-width: 68ch; margin-top: 18px; padding-left: 0; list-style: none; }
.market-sources .source-list li { padding: 11px 0; border-top: 1px solid var(--rule); font: 400 14px/1.55 var(--font-sans); }
.market-sources .source-list + p { margin-top: 18px; }
@media (max-width: 800px) {
  .market-grid { grid-template-columns: 1fr; gap: 0; }
  .market-rail { position: static; display: flex; gap: 0 16px; overflow-x: auto; padding: 18px 0 8px; white-space: nowrap; border-bottom: 1px solid var(--rule); }
  .market-rail-title { display: none; }
  .market-rail a { flex: 0 0 auto; border: 0; font-size: 12px; }
  .market-rail a span { display: none; }
  .market-content { padding-bottom: 58px; }
}
@media (max-width: 560px) {
  .market-stats { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .market-stats > div { padding: 14px 12px 14px 0; border-bottom: 1px solid var(--rule); }
  .market-stats > div + div { padding-left: 12px; }
  .market-stats > div:nth-child(2) { border-right: 0; }
  .market-stats > div:nth-child(3) { padding-left: 0; }
  .market-stats strong { font-size: clamp(23px,7vw,32px); }
  .market-policy, .market-levels { grid-template-columns: 1fr; }
  .market-policy > div, .market-levels > div, .market-policy > div + div, .market-levels > div + div { padding: 12px 0; border-right: 0; border-bottom: 1px solid var(--rule); }
  .market-policy > div:last-child, .market-levels > div:last-child { border-bottom: 0; }
  .market-stock { grid-template-columns: 1fr; gap: 5px; }
}
@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } }

/* The data-driven weekly page keeps source links next to the claim or figure. */
.market-loading, .market-error { padding-block: clamp(48px, 8vw, 110px); }
.market-error h1 { font: 400 clamp(32px, 5vw, 52px)/1.1 var(--font-serif); }
.market-error p { margin-block: 18px; color: var(--ink-2); }
.market-template-bars { margin-top: 16px; }
.market-template-bars + .market-table-wrap { margin-top: 24px; }
@media (max-width: 400px) {
  .page-market .site-nav [data-add-report] { display: none !important; }
  .market-hero h1 { font-size: clamp(36px, 11vw, 44px); }
}

/* Native report figures and transparent scenario calculations. */
.page-market { --chart-up: #276653; --chart-down: #a13f2b; --chart-neutral: #968a78; --chart-line: #306791; }
[data-theme="dark"] .page-market { --chart-up: #7bc6a8; --chart-down: #ed9681; --chart-neutral: #9e9488; --chart-line: #83b6dc; }
.research-figure, .return-lab { margin: 26px 0; padding: clamp(16px, 2vw, 24px); border: 1px solid var(--rule-2); }
.figure-label { color: var(--gold-ink); font: 600 10px/1.5 var(--font-sans); letter-spacing: .12em; }
.research-figure h3, .return-lab h3 { margin: 7px 0 18px; font: 400 clamp(23px,2.5vw,30px)/1.18 var(--font-serif); }
.figure-note { margin-top: 14px; color: var(--ink-3); font: 400 12.5px/1.6 var(--font-sans); }
.chart-scroll { overflow-x: auto; }
.chart-scroll svg { display: block; width: 100%; min-width: 540px; }
.chart-rule { stroke: var(--rule); }
.chart-baseline { stroke: var(--gold-ink); stroke-dasharray: 5 5; opacity: .65; }
.chart-axis { fill: var(--ink-3); font: 12px var(--font-sans); }
.chart-annotation { fill: var(--gold-ink); font: 600 12px var(--font-sans); }
.index-line { fill: none; stroke: var(--chart-line); stroke-width: 2.5; }
.index-point { fill: var(--bg); stroke: var(--chart-line); stroke-width: 2; }
.index-point.selected { fill: var(--chart-line); stroke-width: 4; }
.chart-buttons { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 15px; }
.chart-buttons button, .research-button { color: var(--ink); background: var(--bg); border: 1px solid var(--rule-2); border-radius: 0; padding: 9px 12px; font: 500 12px/1.4 var(--font-sans); cursor: pointer; }
.chart-buttons button[aria-pressed="true"] { color: var(--bg); background: var(--ink); border-color: var(--ink); }
.research-button { display: inline-block; margin-top: 20px; border-color: var(--gold-ink); }
.research-button:hover { background: var(--tint); }
.chart-readout { display: grid; gap: 5px; margin-top: 17px; min-height: 64px; font: 400 12px/1.6 var(--font-sans); }
.chart-readout strong { font-size: 17px; }
.chart-readout span { color: var(--ink-3); }
.data-note { margin-top: 20px; padding-top: 15px; border-top: 1px solid var(--rule); }
.data-note h4 { margin: 0 0 9px; color: var(--ink-2); font: 600 13px/1.45 var(--font-sans); letter-spacing: .015em; }
.data-note p, .data-note ul { font: 400 13.5px/1.62 var(--font-sans); }
.data-note p + p { margin-top: 8px; }
.data-note ul { margin: 0; padding-left: 20px; }
.data-note li { padding: 4px 0; }
.market-sources .data-note li { border: 0; padding: 3px 0; font: 400 13.5px/1.55 var(--font-sans); }
.data-note .market-table-wrap { margin-top: 12px; }
.data-note .figure-note { margin-top: 12px; }
.finding-pair { display: grid; grid-template-columns: 1fr 1fr; gap: 24px; }
.finding-pair > div { display: grid; gap: 6px; padding: 16px 0; border-top: 1px solid var(--rule); }
.finding-pair strong { color: var(--chart-down); font: 400 32px/1.1 var(--font-serif); }
.finding-pair span { color: var(--ink-3); font: 400 12px/1.5 var(--font-sans); }
.transmission-chain { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 20px; margin-top: 28px; }
.transmission-chain > div { border-top: 2px solid var(--gold-ink); padding-top: 10px; }
.transmission-chain span { font: 600 11px var(--font-sans); color: var(--gold-ink); text-transform: uppercase; }
.transmission-chain p { margin-top: 10px; font-size: 15px; }
.return-lab { background: var(--tint); }
.return-lab > p:not(.figure-label):not(.figure-note) { font-size: 16px; }
.lab-layout { display: grid; grid-template-columns: 1.1fr 1fr; gap: 32px; margin-top: 28px; }
.lab-controls label { display: flex; justify-content: space-between; gap: 12px; font: 500 12px/1.5 var(--font-sans); }
.lab-controls output { font-variant-numeric: tabular-nums; }
.lab-controls input { width: 100%; margin: 12px 0 22px; accent-color: var(--gold-ink); cursor: pointer; }
.lab-controls .research-button { margin-top: 0; }
.lab-result { padding-left: 24px; border-left: 1px solid var(--rule); }
.lab-result > span { font: 500 11px/1.5 var(--font-sans); text-transform: uppercase; letter-spacing: .07em; }
.lab-result > strong { display: block; margin: 10px 0; font: 400 clamp(40px,5vw,56px)/1 var(--font-serif); font-variant-numeric: tabular-nums; }
.negative { color: var(--chart-down); } .positive { color: var(--chart-up); }
.lab-result p { font: 400 12px/1.6 var(--font-sans); }
.formula-box { padding: 18px 0 0; margin-top: 22px; border-top: 1px solid var(--rule); overflow-wrap: anywhere; }
.formula-box > span { font: 500 16px/1.7 ui-monospace, Consolas, monospace; }
.formula-box p { margin-top: 8px; color: var(--ink-3); font: 400 12px/1.7 var(--font-sans); }
.sector-axis { position: relative; margin: 20px 80px 7px 155px; display: flex; justify-content: space-between; font: 400 10px var(--font-sans); color: var(--ink-3); }
.sector-axis span:first-child { transform:translateX(-50%); }
.sector-axis span:nth-child(2) { position: absolute; left: 85.714%; transform: translateX(-50%); }
.sector-axis span:last-child { position:absolute; left:100%; transform:translateX(-50%); }
.sector-row { display: grid; grid-template-columns: 145px minmax(0,1fr) 70px; align-items: center; gap: 10px; min-height: 35px; font: 400 11px/1.4 var(--font-sans); }
.sector-row strong { text-align: right; font-weight: 500; font-variant-numeric: tabular-nums; }
.sector-track { position: relative; height: 24px; background: var(--tint); }
.sector-track::after { content: ''; position: absolute; left: 85.714%; top: -6px; bottom: -6px; width: 1px; background: var(--rule-2); }
.sector-bar { position: absolute; top: 5px; height: 14px; }
.gain { background: var(--chart-up); } .loss { background: var(--chart-down); } .flat { background: var(--chart-neutral); }
.liquidity-row { display: grid; grid-template-columns: 110px minmax(0,1fr) 100px; align-items: center; gap: 12px; margin: 18px 0; font: 400 12px/1.5 var(--font-sans); }
.liquidity-row strong { font-weight: 500; text-align: right; font-variant-numeric: tabular-nums; }
.liquidity-track { background: var(--tint); height: 14px; }
.liquidity-track > span { display: block; background: var(--chart-line); height: 100%; }
.liquidity-track > .loss { background: var(--chart-down); }
.market-table-wrap { max-width: 100%; }
.market-table { font-size: 12px; }
.market-table th { letter-spacing: .035em; }
.market-table tbody th { font-size: 12px; color: var(--ink-2); font-weight: 500; text-transform: none; }
.market-table td:not(:first-child) { text-align: right; }
.market-table small { display: block; margin-top: 3px; color: var(--ink-3); font-weight: 400; }
.market-table td:last-child { min-width: 90px; width: auto; }
.market-table .table-total th, .market-table .table-total td { border-top: 1px solid var(--gold-ink); color: var(--ink); font-weight: 600; }
.event-row { display: grid; grid-template-columns: 100px 1fr; gap: 20px; padding: 20px 0; border-bottom: 1px solid var(--rule); }
.event-row > span { color: var(--gold-ink); font: 600 11px/1.6 var(--font-sans); letter-spacing: .04em; }
.event-row strong { font: 500 16px/1.4 var(--font-sans); }
.event-row p { margin-top: 7px; font-size: 15px; }
/* Reveal once on entry. No looping, count-ups or movement of text. */
@media (prefers-reduced-motion: no-preference) {
  .figure-motion:not(.figure-revealed) .index-line { stroke-dasharray: 1; stroke-dashoffset: 1; }
  .figure-motion:not(.figure-revealed) .index-point { opacity: 0; }
  .figure-motion:not(.figure-revealed) .sector-bar,
  .figure-motion:not(.figure-revealed) .liquidity-track > span { transform: scaleX(0); }
  .sector-bar, .liquidity-track > span { transform-origin: left center; }
  .sector-bar.loss { transform-origin: right center; }
  .figure-motion.figure-revealed .index-line { stroke-dasharray: 1; animation: trace-index 650ms ease-out both; }
  .figure-motion.figure-revealed .index-point { animation: chart-appear 250ms 350ms ease-out both; }
  .figure-motion.figure-revealed .sector-bar,
  .figure-motion.figure-revealed .liquidity-track > span { animation: extend-bar 450ms cubic-bezier(.2,.65,.3,1) both; }
  .chart-buttons button { transition: background-color 150ms, color 150ms; }
}
@keyframes trace-index { from { stroke-dashoffset: 1; } to { stroke-dashoffset: 0; } }
@keyframes extend-bar { from { transform: scaleX(0); } to { transform: scaleX(1); } }
@keyframes chart-appear { from { opacity: 0; } to { opacity: 1; } }
@media (max-width: 800px) { .market-rail a span { display: inline; } }
@media (max-width: 600px) {
  .lab-layout, .transmission-chain { grid-template-columns: 1fr; gap: 22px; }
  .lab-result { padding: 20px 0 0; border-left: 0; border-top: 1px solid var(--rule); }
  .sector-row { grid-template-columns: 92px minmax(0,1fr) 56px; gap: 7px; font-size: 11px; }
  .sector-axis { margin-left: 99px; margin-right: 63px; }
  .liquidity-row { grid-template-columns: 75px minmax(0,1fr) 85px; gap: 7px; font-size: 11px; }
  .event-row { grid-template-columns: 1fr; gap: 6px; }
  .finding-pair { gap: 15px; }
  .finding-pair strong { font-size: 30px; }
  .market-table { min-width: 420px; }
  .market-table.compact-table { min-width: 0; }
}
@media (max-width:360px) {
  .sector-axis { min-height:28px; }
  .sector-axis span:nth-child(2) { top:14px; }
}
@media print {
  .figure-motion .index-line { animation: none !important; stroke-dashoffset: 0 !important; }
  .figure-motion .index-point { animation: none !important; opacity: 1 !important; }
  .figure-motion .sector-bar, .figure-motion .liquidity-track > span { animation: none !important; transform: none !important; }
  .market-rail, .chart-buttons, .lab-controls { display: none; }
  .market-grid { display: block; }
  .research-figure, .return-lab { break-inside: avoid; }
  .chart-scroll svg { min-width: 0; }
  .chart-scroll, .market-table-wrap { overflow: visible; }
}
