/* Visual reference: himcap.com. Shared with the research, game and reading pages. */
@font-face {
  font-family: 'Playfair Display';
  src: url('assets/fonts/playfair-display.ttf') format('truetype');
  font-style: normal;
  font-weight: 400 700;
  font-display: swap;
  unicode-range: U+0000-024F, U+1E00-1EFF, U+2000-206F, U+20A0-20CF, U+2113, U+2122;
}
:root {
  --navy: #131e29;
  --navy-light: #273746;
  --navy-dark: #101a23;
  --brand-blue: #315a70;
  --gold: #81653f;
  --gold-light: #b39e77;
  --cream: #efeee6;
  --white: #fffdf9;
  --bg: #f7f5ef;
  --surface-soft: #f1eee5;
  --surface-sage: #edf2eb;
  --accent-soft: #e7eef0;
  --text: #333;
  --text-light: #59616a;
  --text-lighter: #69727c;
  --text-secondary: #59616a;
  --border: #deded4;
  --border-light: #e8e7df;
  --ink: #333;
  --muted: #59616a;
  --serif: 'Playfair Display', 'Songti SC', 'STSong', 'SimSun', Georgia, serif;
  --sans: -apple-system, BlinkMacSystemFont, 'Segoe UI', 'PingFang SC', 'Microsoft YaHei', sans-serif;
  --page-width: 1180px;
  --up: #216447;
  --down: #9b3e3e;
  --new: #275486;
}
body { background: var(--bg); color: var(--text); font-family: var(--sans); }
.mobile-cost-detail { display: none; }
.current-price { font-size: .96rem; font-weight: 650; color: var(--navy); }
.quote-stale { color: var(--text-light); }
.quote-date { display: block; margin-top: 3px; color: var(--text-lighter); font-size: .64rem; font-variant-numeric: tabular-nums; white-space: nowrap; }
.cost-estimate { display: grid; gap: 4px; }
.cost-estimate strong { color: var(--navy); font-size: .92rem; }
.average-cost { margin-top: 6px; padding-top: 7px; border-top: 1px solid var(--border-light); color: var(--navy); font-weight: 500; }
.average-cost small { display: block; margin-top: 4px; }
.mobile-average-cost { color: var(--text-light); line-height: 1.6; }
.cost-estimate small, .estimate-method, .estimate-unavailable { color: var(--text-light); font-size: .7rem; line-height: 1.6; white-space: normal; }
.cost-gap { display: grid; gap: 4px; line-height: 1.5; }
.cost-gap strong { font-size: .91rem; }
.cost-gap small { font-size: .67rem; font-weight: 400; white-space: normal; }
.cost-gap.deep, .cost-gap.positive { color: #216447; }
.cost-gap.watch { color: #806020; }
.cost-gap.negative { color: #9b3e3e; }
.cost-gap.neutral { color: var(--text-light); }
.cost-method-note { margin-bottom: 10px; line-height: 1.8; }
.table-subhead { display: block; font-size: .65rem; font-weight: 400; }
.timeline-source { display: inline-block; margin-top: 5px; font-size: .72rem; color: var(--brand-blue); }
.timeline-heading { color: var(--navy); font-size: .88rem; font-weight: 600; margin-bottom: 24px; }
a { text-underline-offset: 4px; }
button, input, select, textarea { font-family: inherit; }
:where(button, a, input, select, summary):focus-visible { outline: 2px solid var(--brand-blue); outline-offset: 4px; }
:where(#holdings, #about, #philosophy, #readings) { scroll-margin-top: 104px; }

/* Warm paper surfaces keep the existing typography and page rhythm. */
.nav, .nav.scrolled, body.spin-research .nav {
  background: rgba(255,253,249,.98);
  border-bottom: 1px solid var(--border-light);
  box-shadow: none;
  backdrop-filter: none;
}
.nav-inner { max-width: calc(var(--page-width) + 64px); height: 80px; padding: 0 32px; }
.nav-brand { color: var(--brand-blue); font-size: 1.16rem; font-weight: 400; letter-spacing: 1.4px; }
.nav-links { gap: 30px; }
.nav-links a { color: var(--navy); font-size: .78rem; font-weight: 500; letter-spacing: 1.2px; }
.nav-links a:hover { color: var(--brand-blue); }
.lang-btn { color: var(--navy); border-color: var(--border); border-radius: 6px; min-width: 44px; min-height: 36px; }
.lang-btn:hover { color: var(--brand-blue); border-color: var(--brand-blue); }
.status-dot { width: 36px; height: 36px; }
.status-dot span { width: 7px; height: 7px; }
.status-dot.ok span, .status-dot.warn span, .status-dot.fail span { box-shadow: none; animation: none; }
.nav-hamburger { border: 0; background: transparent; min-width: 44px; min-height: 44px; align-items: center; justify-content: center; }
.nav-hamburger span { background: var(--navy); }
.hero { background: var(--surface-soft); padding: 128px 32px 36px; border-bottom: 1px solid var(--border-light); }
.hero::before { display: none; }
.hero-inner, .data-inner, .ref-inner, .footer-inner { max-width: var(--page-width); }
.hero-top { gap: 28px; margin-bottom: 28px; align-items: center; }
.hero-eyebrow { color: var(--text-lighter); font-size: .68rem; font-weight: 500; letter-spacing: 2px; margin-bottom: 12px; }
.hero-title { color: var(--navy); font-size: clamp(2rem,3.4vw,3.1rem); font-weight: 400; line-height: 1.35; letter-spacing: 0; }
.hero-title .sub { color: var(--text-light); font-size: .86rem; line-height: 1.85; margin-top: 14px; }
.hero-actions { flex-wrap: wrap; justify-content: flex-end; max-width: 360px; }
.btn-refresh { color: white; background: var(--brand-blue); border: 1px solid var(--brand-blue); border-radius: 6px; min-height: 44px; padding: 9px 18px; }
.btn-refresh:hover { color: var(--brand-blue); background: var(--cream); border-color: var(--brand-blue); }
.data-source-tag { color: var(--text-lighter); font-size: .7rem; }
.hero-meta { color: var(--text-light); font-size: .75rem; gap: 24px; line-height: 1.8; margin-bottom: 0; }
.hero-meta strong { color: var(--navy); font-weight: 500; }
.data-quality-note { color: #806020; }
.data-wrap { background: var(--bg); border-top: 0; padding: 32px 32px 60px; }
body.spin-research .data-wrap { padding-top: 112px; }

/* Research controls: text navigation on desktop, a native selector on mobile. */
#investorSelectorBar { gap: 18px!important; margin-bottom: 22px!important; }
.investor-selector-label { font-size: .74rem; color: var(--text-light); white-space: nowrap; }
#investorBtn { gap: 4px 20px!important; flex: 1; min-width: 0; }
.investor-button { border: 0; border-bottom: 1px solid transparent; background: none; color: var(--text-light); border-radius: 0; padding: 8px 0; font-size: .77rem; cursor: pointer; white-space: nowrap; min-height: 38px; }
.investor-button:hover { color: var(--brand-blue); }
.investor-button[aria-pressed="true"] { color: var(--brand-blue); border-bottom-color: var(--brand-blue); font-weight: 600; }
#investorSelect { display: none; }
.stat-line { padding: 16px 0 24px; border-color: var(--border); gap: 0; }
.stat-num { font-family: var(--serif); font-weight: 600; font-size: 1.8rem; font-variant-numeric: lining-nums tabular-nums; }
.stat-item { flex-wrap: wrap; }
.stat-desc { font-size: .72rem; color: var(--text-light); }
.stat-sep { margin: 0 24px; background: var(--border); }
.tabs { gap: 20px; margin-bottom: 28px; }
.tab-btn { padding: 13px 0; font-size: .86rem; min-height: 48px; color: var(--text-light); }
.tab-btn.active { border-bottom-color: var(--brand-blue); color: var(--brand-blue); background: var(--accent-soft); border-radius: 6px 6px 0 0; padding-left: 14px; padding-right: 14px; font-weight: 600; }
.table-wrap { border-radius: 7px; border-color: var(--border); background-color: var(--white); }
table { font-variant-numeric: tabular-nums; }
thead th { background: var(--surface-sage); color: var(--text-light); letter-spacing: .3px; font-weight: 500; padding: 14px; }
tbody td { padding: 14px; }
tbody tr:hover { background: #f2f5ed; }
.name-line { color: var(--text-secondary); line-height: 1.7; }
.sector-badge, .sector-tag { border-radius: 1px; background: #f1f3f4; color: var(--text-light); font-weight: 400; }
.weight-cell { display: grid; gap: 7px; min-width: 90px; }
.weight-percent { font-size: .74rem; color: var(--navy); }
.bar-wrap { height: 3px; border-radius: 0; background: #e9ecef; overflow: hidden; }
.bar-fill { border-radius: 0; background: #48637d; }
.chart-wrap { border-radius: 7px; background: var(--white); }
.count-badge { border-radius: 1px; background: #edf0f2; color: var(--navy); }
.price-note { border-radius: 0; background: var(--surface-soft); color: var(--text-light); }
.position-note { border: 1px solid var(--border); border-left: 2px solid var(--up); border-radius: 6px; padding: 18px 20px; margin-bottom: 20px; background: var(--surface-sage); }
.position-note.watch { border-left-color: #87652d; }
.position-note-heading { display: flex; align-items: baseline; flex-wrap: wrap; gap: 10px; margin-bottom: 8px; color: var(--navy); font-weight: 500; }
.position-note-heading b { font-size: .77rem; color: var(--text-light); font-weight: 400; }
.position-note-description { font-size: .8rem; color: var(--text-light); margin-bottom: 10px; }
.position-note-items { display: flex; gap: 8px; flex-wrap: wrap; }
.position-note-items>span { background: var(--white)!important; border-color: var(--border)!important; border-radius: 4px!important; }
.holdings-legend { border-radius: 0!important; border-color: var(--border-light)!important; }

/* Interpretations read as a report rather than another stack of tiles. */
.insights-box { background: var(--surface-sage); border-radius: 7px; border: 0; border-top: 1px solid var(--border); padding: 28px 32px; margin-top: 32px; }
.scope-heading h3 { font: 400 1rem var(--serif); }
.briefing-headline { font-family: var(--serif); font-weight: 400; font-size: 1.38rem; }
.briefing-lead { color: var(--text); font-size: .92rem; line-height: 2; }
.briefing-drivers li { padding-top: 20px; padding-bottom: 20px; }
.briefing-drivers strong { font-weight: 500; }
.insights-box .briefing-drivers li::before { color: var(--text-light); font-weight: 400; font-family: var(--serif); top: 20px; }
.scope-badge, .briefing-notes, .scope-footnote { color: var(--text-light); }
.insights-box .scope-facts li { border-radius: 0; }

/* Generous section rhythm and unboxed editorial layouts, as on the reference. */
.ref-section { padding: 88px 32px; }
.ref-title { font-size: clamp(1.8rem,3vw,2.6rem); font-weight: 400; line-height: 1.5; margin-bottom: 22px; letter-spacing: 0; }
.ref-label { color: var(--text-lighter); font-size: .7rem; font-weight: 500; letter-spacing: 2px; }
.ref-divider { width: 64px; height: 1px; background: var(--brand-blue); margin: 28px 0; }
.ref-grid { grid-template-columns: minmax(0,1fr) minmax(0,1.05fr); gap: 56px; align-items: start; }
.ref-grid > div { min-width: 0; }
.ref-text p { font-size: .96rem; line-height: 2; margin-bottom: 20px; max-width: 760px; }
.ref-text a { color: var(--brand-blue); }
.timeline { padding-left: 16px; }
.ref-grid .tl-item { display: grid; grid-template-columns: 90px minmax(0,1fr); column-gap: 14px; padding-left: 18px; padding-bottom: 18px; }
.ref-grid .tl-year { grid-column: 1; grid-row: 1 / span 2; font-size: .85rem; line-height: 1.9; overflow-wrap: anywhere; }
.ref-grid .tl-text, .ref-grid .timeline-source { grid-column: 2; overflow-wrap: anywhere; }
.ref-grid .timeline-source { justify-self: start; margin-top: 3px; }
.ref-grid .tl-item:last-child { padding-bottom: 0; }
.tl-item::before { width: 5px; height: 5px; left: -12px; top: 10px; background: var(--brand-blue); border: 0; box-shadow: none; }
.tl-year { font-weight: 400; font-size: 1.05rem; }
.tl-text { font-size: .86rem; line-height: 1.9; }
.holdings-timeline { min-width: 0; }
.holdings-timeline .tl-table-wrap { width: 100%; }
.holding-change { display: block; margin-top: 5px; }
.option-field-note { display: block; margin-top: 4px; font-size: .65rem; line-height: 1.5; color: var(--text-light); }
.option-toggle { display: block; margin-top: 7px; padding: 4px 0; border: 0; background: transparent; color: var(--brand-blue); cursor: pointer; font-size: .72rem; text-align: left; }
#tab-current .table-wrap .option-details-row > td { display: table-cell!important; width: auto!important; padding: 18px!important; white-space: normal; text-align: left; background: var(--cream); }
.option-details-row[hidden] { display: none!important; }
.option-position-content { display: grid; grid-template-columns: repeat(auto-fit,minmax(min(100%,300px),1fr)); gap: 12px 28px; max-width: 1000px; font-size: .76rem; line-height: 1.8; font-weight: 400; color: var(--text-light); overflow-wrap: anywhere; }
.option-position-content p { margin: 0; }
.option-position-content strong { font-weight: 500; }
.holdings-key { margin: 10px 0; font-size: .72rem; }
.holdings-key summary { cursor: pointer; color: var(--text-light); }
.holdings-key-items { display: flex; flex-wrap: wrap; gap: 14px 22px; padding: 12px 0; }
.legend-item { display: inline-flex; align-items: center; gap: 8px; color: var(--text-light); }
.legend-item .cost-gap small { font-size: .62rem; }
.legend-item .cost-gap strong { font-size: .73rem; }
.legend-swatch { width: 9px; height: 9px; flex-shrink: 0; border-radius: 50%; background: var(--text-light); }
.legend-swatch.deep, .legend-swatch.positive { background: #216447; }
.legend-swatch.watch { background: #806020; }
.legend-swatch.negative { background: #9b3e3e; }
.hw-holder-count { flex-basis: 100%; color: var(--text-light); font-size: .64rem; line-height: 1.65; }
.hw-nearby { color: var(--text-light); font-size: .64rem; line-height: 1.7; }
.hw-nearby summary { cursor: pointer; }
.hw-nearby > span { display: block; white-space: normal; overflow-wrap: anywhere; }
.briefing-compact .briefing-headline { font-size: 1.13rem; }
.briefing-depth { margin-top: 18px; padding-top: 14px; border-top: 1px solid var(--border-light); font-size: .82rem; line-height: 1.9; overflow-wrap: anywhere; }
.briefing-depth summary { cursor: pointer; color: var(--brand-blue); }
.briefing-depth section { margin-top: 20px; }
.briefing-depth section h4 { margin-bottom: 10px; font-weight: 500; }
.briefing-depth ul { padding-left: 1.2em; }
.briefing-depth li { margin-bottom: 14px; color: var(--text-light); }
.briefing-compact .briefing-lead { font-size: .87rem; line-height: 1.8; margin-bottom: 12px; }
.briefing-compact .briefing-drivers { grid-template-columns: repeat(auto-fit,minmax(min(100%,280px),1fr)); gap: 0 24px; }
.insights-box .briefing-compact .briefing-drivers li { padding: 12px 0; font-size: .8rem; line-height: 1.8; }
.insights-box .briefing-compact .briefing-drivers li::before { display: none; }
.position-change { display: inline-flex; align-items: center; gap: 3px; padding: 2px 5px; border-radius: 2px; font-size: .65rem; font-weight: 600; line-height: 1.6; }
.position-change.added { background: #edf5f0; color: #216447; }
.position-change.trimmed, .position-change.exited { background: #fbefed; color: #9b3e3e; }
.position-change.new { background: #edf2f8; color: #275486; }
.position-change.hold { color: var(--text-light); }
.split-change-note { display: block; color: var(--text-light); font-size: .6rem; }
.hk-disclosure-section { margin-top: 32px; padding-top: 24px; border-top: 1px solid var(--border); }
.hk-disclosure-section h3 { font: 400 1.2rem var(--serif); color: var(--navy); margin-bottom: 12px; }
.hk-disclosure-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 24px; }
.hk-security { min-width: 0; }
.hk-disclosure-card { padding: 18px 0; border-top: 1px solid var(--border-light); overflow-wrap: anywhere; }
.hk-disclosure-card h4 { font-size: .94rem; font-weight: 600; }
.hk-disclosure-card h4 small, .hk-status, .hk-entity { color: var(--text-light); font-size: .72rem; margin-top: 5px; }
.hk-facts { margin: 14px 0; display: grid; gap: 12px; }
.hk-facts > div { display: grid; grid-template-columns: minmax(0,1fr) minmax(0,1.25fr); gap: 12px; }
.hk-facts dt { font-size: .73rem; color: var(--text-light); }
.hk-facts dd { font-size: .8rem; font-variant-numeric: tabular-nums; }
.hk-facts dd small, .hk-inline-note { display: block; font-size: .65rem; font-weight: 400; color: var(--text-light); margin-top: 3px; }
.hk-evidence-note { font-size: .72rem; line-height: 1.85; color: var(--text-light); margin: 8px 0; }
.hk-source, .hk-history, .hk-other-owners, .hk-more { font-size: .72rem; line-height: 1.9; }
.hk-history summary, .hk-other-owners summary, .hk-more summary { cursor: pointer; color: var(--brand-blue); }
.hk-history p { padding: 5px 0; }
.hk-table-heading { display:flex;align-items:baseline;justify-content:space-between;gap:16px;flex-wrap:wrap; }
.hk-table-heading > span {font-size:.7rem;color:var(--text-light);}
.hk-table-wrap {overflow-x:auto;border:1px solid var(--border-light);margin-top:16px;}
.hk-disclosure-table {width:100%;border-collapse:collapse;font-size:.78rem;}
.hk-disclosure-table > thead th {background:var(--cream);font-weight:500;color:var(--text-light);text-align:left;padding:12px 14px;white-space:nowrap;}
.hk-disclosure-table > tbody > tr > td {padding:16px 14px;border-top:1px solid var(--border-light);vertical-align:top;font-variant-numeric:tabular-nums;}
.hk-disclosure-table td:first-child {min-width:140px;}
.hk-disclosure-table small {display:block;font-size:.65rem;color:var(--text-light);line-height:1.7;margin-top:5px;}
.hk-detail-button {display:block;border:0;background:transparent;color:var(--brand-blue);font:inherit;cursor:pointer;min-height:40px;padding:4px 0;}
.hk-row-details[hidden] {display:none!important;}
.hk-row-details > td {background:var(--cream);}
.hk-row-details h4 {font-size:.8rem;margin:18px 0 10px;overflow-wrap:anywhere;}
.hk-history-scroll {width:100%;max-width:100%;min-width:0;overflow-x:auto;}
.hk-event-history {min-width:540px;width:100%;border-collapse:collapse;font-size:.72rem;}
.hk-event-history th,.hk-event-history td {text-align:left;padding:10px;border-bottom:1px solid var(--border-light);font-weight:400;}
@media(max-width:650px){
 .hk-table-wrap {width:100%;max-width:100%;min-width:0;overflow:hidden;}
 .hk-disclosure-table,.hk-disclosure-table > tbody {display:block;width:100%;}
 .hk-disclosure-table > thead {position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0);}
 .hk-disclosure-table > tbody > .hk-main-row {display:block;padding:12px 14px;border-top:1px solid var(--border-light);}
 .hk-disclosure-table > tbody > .hk-main-row:first-child {border-top:0;}
 .hk-disclosure-table > tbody > .hk-main-row > td {display:grid;grid-template-columns:110px minmax(0,1fr);gap:12px;padding:8px 0;border:0;min-width:0;overflow-wrap:anywhere;}
 .hk-main-row > td:before {content:attr(data-label);color:var(--text-light);font-size:.7rem;}
 .hk-main-row > td:first-child {display:block!important;font-size:.9rem;padding-bottom:12px!important;}
 .hk-main-row > td:first-child:before {display:none;}
 .hk-main-row > td small {grid-column:2;}
 .hk-main-row > td:last-child {align-items:center;}
 .hk-detail-button {grid-column:2;}
 .hk-row-details:not([hidden]) {display:block;}
 .hk-row-details > td {display:block!important;width:100%;max-width:100%;min-width:0!important;}
}
.hk-change { font-size: .78rem; margin: 12px 0; }
.hk-change small { display: block; font-size: .65rem; color: var(--text-light); }
@media(max-width:650px) {
  .holding-change .position-change { font-size: .6rem; }
  .hk-disclosure-grid { grid-template-columns: minmax(0,1fr); gap: 16px; }
  .ref-grid .tl-item { grid-template-columns: 74px minmax(0,1fr); column-gap: 10px; }
}
#philosophy { background-color: #e8eee5; }
#philosophy .ref-label { color: var(--gold); }
#philosophy .ref-divider { background: var(--gold); }
.philosophy-signature { padding: 0 0 26px; margin-top: 24px; background: transparent; border: 0; border-radius: 0; max-width: 820px; }
.philosophy-signature strong { font-weight: 400; font-size: 1.45rem; margin-bottom: 10px; }
.philosophy-signature p { font-size: .96rem; line-height: 2; }
.phil-grid { gap: 18px 38px; margin-top: 34px; }
.phil-card { background: transparent; padding: 25px 0; border: 0; border-top: 1px solid var(--border-light); border-radius: 0; }
.phil-card:hover { transform: none; box-shadow: none; }
.phil-card .icon { font-family: var(--serif); font-weight: 400; color: var(--gold); font-size: 1rem; margin-bottom: 14px; }
.phil-card h4 { font-weight: 400; font-size: 1.18rem; margin-bottom: 12px; }
.phil-card p { font-size: .91rem; line-height: 2; }
.articles-grid { grid-template-columns: repeat(2,minmax(0,1fr)); gap: 0 48px; margin-top: 32px; }
.article-card { padding: 28px 0; border: 0; border-top: 1px solid var(--border); border-radius: 0; background: transparent; }
.article-card:hover { box-shadow: none; border-color: var(--brand-blue); }
.article-card .year { color: var(--text-light); font-weight: 400; letter-spacing: 1px; }
.article-card h4 { font-size: 1.18rem; font-weight: 400; margin: 12px 0; line-height: 1.65; }
.article-card p { font-size: .9rem; line-height: 1.95; }
.quote-block { background: #e9e3d7; padding: 72px 32px; }
.quote-block blockquote { color: var(--navy); font-family: var(--serif); font-weight: 400; font-size: clamp(1.1rem,2vw,1.6rem); max-width: 820px; line-height: 1.9; }
.quote-block .attr { color: var(--text-light); font-weight: 400; }
.footer { padding: 44px 32px; color: #b9c2ca; }
.footer a { color: #d3dce3; }

/* Spin-off research shares the same restrained controls and status typography. */
.sd-header h2 { font-weight: 400; font-size: 1.8rem; }
.sd-dashboard button, .sd-controls input, .sd-controls select, .sd-results, .sd-changes { border-radius: 1px; }
.sd-dashboard button { min-height: 36px; }
.sd-controls input, .sd-controls select { min-height: 40px; }
.sd-status, .sd-type { border-radius: 1px; background: #f2f4f5; border-color: #e0e5e8; color: #53616e; }
.sd-completed { color: var(--up); background: #f2f6f3; border-color: #dfe8e1; }
.sd-terminated { color: var(--down); background: #faf4f4; border-color: #eddddd; }
.sd-paused, .sd-record_set { color: #806128; background: #faf7f0; border-color: #e8e0cd; }
.sd-latest-title a, .sd-announcements a { color: var(--brand-blue); }
.sd-kpis button[aria-pressed=true] { background: var(--navy); }
.sd-dashboard [aria-pressed=true] { box-shadow: none; border-color: var(--brand-blue); }
.sd-dashboard .sd-watch { min-height: 28px; }

/* Game and companion reading use this same font, palette and corner treatment. */
.game-top { background: white; border-bottom: 1px solid var(--border); color: var(--navy); }
.game-top .brand { color: var(--brand-blue); font-family: var(--serif); font-weight: 400; }
.game-top a { color: var(--text-light); min-height: 36px; display: inline-flex; align-items: center; }
.game-main h1, .article-body h1 { font-weight: 400; }
.game-main h2, .game-main h3, .article-body h2, .article-body h3, .chapter-rail h2, .article-toc h2 { font-weight: 400; }
.game-main .card, .game-main .takeaway, .game-main .choice, .game-main .button, .game-main .step-button, .chapter-button, .article-body .button, .article-body .table-wrap { border-radius: 1px; box-shadow: none; }
.game-main .takeaway { background: var(--cream); border-left: 0; border-top: 1px solid var(--border); }
.chapter-button.active { border-color: var(--brand-blue); }
.game-main .eyebrow, .article-body .eyebrow, .article-toc .eyebrow, .chapter-rail .eyebrow { color: var(--text-light); }
.game-main .metric-grid>div { border-color: var(--border); }
.article-body .article-note { border-left-color: var(--brand-blue); background: var(--cream); }
.article-body .lead { font-family: var(--sans); }
.article-body .article-section h2 { font-size: 1.45rem; }
.game-footer { color: var(--text-light); }
.game-footer a, .text-link, .text-button, .rules summary { color: var(--brand-blue); }

@media (max-width: 1050px) {
  .nav-links { gap: 18px; }
  .ref-grid { gap: 44px; }
  .stat-sep { margin: 0 16px; }
}
@media (max-width: 768px) {
  .nav-inner { height: 68px; padding: 0 20px; }
  .nav-links { top: 68px; background: var(--white); padding: 20px 24px; border-bottom: 1px solid var(--border); gap: 12px; }
  .nav-links a { display: inline-block; padding: 8px 0; min-height: 44px; }
  .nav-brand { font-size: 1rem; }
  .hero { padding: 108px 24px 28px; }
  .hero-title { font-size: 2rem; }
  .hero-top { gap: 24px; }
  .hero-actions { justify-content: flex-start; }
  .data-wrap { padding: 24px 20px 40px; }
  .ref-section { padding: 60px 24px; }
  .ref-grid { grid-template-columns: minmax(0,1fr); gap: 32px; }
  .ref-title { font-size: 1.9rem; }
  .articles-grid { gap: 0 28px; }
  .quote-block { padding: 56px 24px; }
  :where(#holdings, #about, #philosophy, #readings) { scroll-margin-top: 88px; }
  body.spin-research .data-wrap { padding-top: 96px; }
}
@media (max-width: 640px) {
  .nav-inner { padding: 0 16px; }
  .lang-btn, .status-dot { min-height: 44px; }
  .hero { padding: 98px 20px 24px; }
  .hero-eyebrow { font-size: .63rem; margin-bottom: 10px; }
  .hero-title { font-size: 1.8rem; }
  .hero-title .sub { font-size: .8rem; margin-top: 10px; }
  .hero-meta { font-size: .72rem; gap: 8px 18px; }
  .hero-actions { gap: 12px; }
  .hero-top { margin-bottom: 20px; align-items: flex-start; }
  .data-source-tag { font-size: .68rem; }
  .data-wrap { padding: 24px 12px 36px; }
  #investorSelectorBar { flex-direction: row!important; align-items: center!important; gap: 12px!important; }
  #investorBtn { display: none!important; }
  #investorSelect { display: block; flex: 1; min-width: 0; width: 100%; min-height: 46px; border: 1px solid var(--border); border-radius: 6px; padding: 10px 12px; color: var(--navy); background: var(--white); font-size: .88rem; }
  .stat-line { gap: 0!important; padding: 0!important; border-top: 1px solid var(--border); margin-bottom: 24px!important; }
  .stat-item { padding: 16px 8px; background: transparent; border: 0; border-bottom: 1px solid var(--border-light); border-radius: 0; gap: 6px; }
  .stat-item:nth-of-type(1), .stat-item:nth-of-type(5) { border-right: 1px solid var(--border-light); }
  .stat-num { font-size: 1.4rem!important; line-height: 1.4; }
  .stat-desc { font-size: .68rem; line-height: 1.8; }
  .stat-change { font-size: .73rem; }
  .tabs { gap: 24px; margin-bottom: 24px; }
  .tab-btn { font-size: .82rem; padding: 12px 0; }
  .table-wrap { border-radius: 7px; background-image: none; }
  .table-wrap table { font-size: .75rem; }
  .table-wrap table th { font-size: .68rem; }
  .table-wrap table td { padding: 12px 10px; }
  .ticker-line { font-size: .8rem; }
  #tab-current .table-wrap table { min-width: 0; table-layout: fixed; }
  #tab-current .table-wrap th:nth-child(1), #tab-current .table-wrap td:nth-child(1) { width: 23px; padding-left: 3px; padding-right: 3px; }
  #tab-current .table-wrap th:nth-child(2), #tab-current .table-wrap td:nth-child(2) { width: 28%; overflow-wrap: anywhere; }
  #tab-current .table-wrap th:nth-child(3), #tab-current .table-wrap td:nth-child(3) { width: 31%; overflow-wrap: anywhere; }
  #tab-current .table-wrap th:nth-child(4), #tab-current .table-wrap td:nth-child(4) { width: auto; min-width: 0; text-align: right; padding: 12px 6px; }
  #tab-current .table-wrap th:nth-child(5), #tab-current .table-wrap td:nth-child(5), #tab-current .table-wrap th:nth-child(7), #tab-current .table-wrap td:nth-child(7) { display: none; }
  #tab-current .table-wrap td { white-space: normal; }
  #tab-current .mobile-cost-detail { display: grid; gap: 5px; margin-top: 8px; font-size: .68rem; }
  #tab-current .mobile-estimate-label { display: block; color: var(--navy); font-weight: 600; }
  #tab-current .mobile-estimate-quarter { display: block; color: var(--text-light); font-size: .65rem; }
  #tab-current .cost-gap { gap: 0; }
  #tab-current .cost-gap strong { font-size: .75rem; }
  #tab-current .current-price { font-size: .83rem; }
  .name-line { font-size: .71rem; }
  .sector-badge { font-size: .66rem; }
  #homeworkContent .table-wrap table { font-size: .73rem; }
  .insights-box { padding: 24px 18px; margin-top: 28px; }
  .briefing-headline { font-size: 1.2rem; }
  .briefing-lead { font-size: .88rem; }
  .ref-section { padding: 56px 20px; }
  .ref-title { font-size: 1.65rem; }
  .ref-text p { font-size: .93rem; }
  .phil-grid { grid-template-columns: minmax(0,1fr); gap: 0; }
  .phil-card { padding: 24px 0; }
  .articles-grid { grid-template-columns: minmax(0,1fr); gap: 0; }
  .article-card { padding: 24px 0; }
  .position-note { padding: 16px; }
  .sd-header h2 { font-size: 1.55rem; }
  .sd-dashboard button, .sd-controls input, .sd-controls select { min-height: 44px; }
  .sd-dashboard .sd-watch { min-height: 32px; }
  .game-top { padding: 12px 16px; flex-wrap: wrap; gap: 8px 16px; }
  .game-top .brand { max-width: none; flex-shrink: 1; }
  .game-main .lead { font-size: .9rem; }
  .article-body .article-section h2 { font-size: 1.2rem; }
}
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { animation: none!important; transition: none!important; }
}

.cost-gap small{font-size:.7rem}.cost-gap strong{white-space:normal}
.cost-method-note{font-size:.72rem;line-height:1.8;margin:8px 0}.cost-method-note summary{cursor:pointer;color:var(--brand-blue)}
.trade-price-cell strong{font-variant-numeric:tabular-nums;white-space:nowrap}
.trade-price-cell small,#tab-changes td>small,.trade-timeline td>small{display:block;color:var(--text-lighter);font-size:.66rem;margin-top:5px;line-height:1.5}
.trade-source-detail,.trade-price-details{font-size:.68rem;margin-top:8px;color:var(--text-lighter)}
.trade-source-detail summary,.trade-price-details summary{cursor:pointer;color:var(--brand-blue)}
.trade-source-detail small{display:block;margin-top:5px}
.timeline-status>small{display:block;color:var(--text-lighter);font-size:.66rem;margin-top:5px;line-height:1.5}
.trade-timeline table{width:100%;font-size:.8rem}
.trade-timeline td{vertical-align:top;white-space:normal}
.trade-quarter-list{display:grid;gap:8px;min-width:0;margin-top:8px}
.trade-quarter-list>div{display:grid;gap:4px;border-bottom:1px solid var(--border-light);padding-bottom:6px}
.security-retired{color:var(--text-lighter);font-size:.72rem}
/* Labels, values and dates use the same hierarchy in every price reference. */
.trade-price-brief{padding:14px 0;border-bottom:1px solid var(--border-light)}
.trade-price-brief:last-child{border-bottom:0;padding-bottom:0}
.trade-price-brief h5{font-size:.84rem;font-weight:600;line-height:1.6;margin:0 0 10px}
.trade-price-metrics{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
.trade-price-metric{min-width:0}
.trade-metric-label{display:block;font-size:.73rem;line-height:1.5;color:var(--text-light);margin-bottom:5px}
.trade-metric-value>strong,.trade-price-cell>strong{font-size:.88rem;line-height:1.5;font-weight:600;font-variant-numeric:tabular-nums;white-space:nowrap}
#changesAISummary .trade-metric-value small{display:block;font-size:.68rem;line-height:1.5;color:var(--text-lighter);margin:4px 0 0}
.trade-price-comparison{font-size:.75rem!important;line-height:1.6;margin:10px 0 0!important;color:var(--text-light)}
@media(max-width:650px){
 #tab-changes .table-wrap,.trade-timeline{overflow:visible}
 #tab-changes table,.trade-timeline table{display:block;width:100%;min-width:0}
 #tab-changes thead,.trade-timeline thead{display:none}
 #tab-changes tbody,.trade-timeline tbody{display:grid;gap:12px}
 #tab-changes tbody tr,.trade-timeline tbody tr{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));border:1px solid var(--border-light);border-radius:8px;padding:8px;background:var(--white)}
 #tab-changes td,.trade-timeline td{display:block!important;min-width:0;width:auto!important;border:0;white-space:normal;overflow-wrap:anywhere;padding:8px;font-size:.76rem}
 #tab-changes td:first-child{max-width:none}.trade-timeline td:first-child{grid-column:1;grid-row:1;max-width:none}
 .trade-timeline td{text-align:left!important}
 .trade-timeline td.timeline-meta{display:contents!important}
 .trade-timeline td.timeline-meta[data-label]::before{display:none}
 .trade-timeline .timeline-status{grid-column:2;grid-row:1;padding:8px;min-width:0;text-align:right;font-size:.7rem;line-height:1.6;overflow-wrap:anywhere}
 .trade-timeline .timeline-actions{grid-column:1/-1;display:flex;flex-wrap:wrap;gap:0 16px;border-top:1px solid var(--border-light);margin:4px 8px 0;padding-top:4px;min-width:0}
 .trade-timeline .timeline-actions>details{flex:1 1 calc(50% - 16px);min-width:0;margin:0;font-size:.72rem}
 .trade-timeline .timeline-actions>details>summary{padding:8px 0;min-height:32px;box-sizing:border-box}
 .trade-timeline .timeline-actions>details[open]{flex-basis:100%;order:1}
 .trade-timeline .timeline-actions .trade-quarter-list{margin:0 0 8px}
 .trade-timeline td:nth-child(2){grid-column:1/-1}
 .trade-timeline td:nth-child(2)>strong,.trade-timeline td:nth-child(2)>small{display:inline-block;margin:0 10px 0 0}
 .trade-timeline td.trade-price-cell[data-label]::before{font-size:.72rem}
 .trade-timeline .trade-price-details{font-size:.72rem}
 .trade-price-metrics{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px 16px}
 .trade-price-metric:first-child{grid-column:1/-1}
 #tab-changes td[data-label]::before,.trade-timeline td[data-label]::before{content:attr(data-label);display:block;color:var(--text-lighter);font-size:.65rem;margin-bottom:5px}
 #tab-changes td:nth-child(2){text-align:right}
 #tab-changes .stock-cell,.trade-timeline .stock-cell{min-width:0!important;max-width:none}
 #tab-changes .name-line,.trade-timeline .name-line{white-space:normal}
}

/* Keep each portfolio summary centered within its own cell. */
#summaryCards{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));align-items:stretch;background:var(--white);border:1px solid var(--border-light);border-radius:8px;padding:8px 0 16px}
#summaryCards .stat-sep{display:none}
#summaryCards .stat-item{min-width:0;display:flex;flex-direction:column;flex-wrap:nowrap;justify-content:center;align-items:center;text-align:center;gap:8px;padding:16px 12px;border-right:1px solid var(--border-light)}
#summaryCards .stat-item:last-child{border-right:0}
#summaryCards .stat-primary{display:flex;flex-wrap:wrap;align-items:baseline;justify-content:center;gap:6px;width:100%;min-width:0}
#summaryCards .stat-desc{display:block;width:100%;margin:0;text-align:center;overflow-wrap:anywhere}
#summaryCards .stat-change{margin-left:0}
@media(max-width:640px){
  #summaryCards{grid-template-columns:repeat(2,minmax(0,1fr))!important}
  #summaryCards .stat-item{padding:16px 8px;border-right:0}
  #summaryCards .stat-item:nth-of-type(1),#summaryCards .stat-item:nth-of-type(5){border-right:1px solid var(--border-light)}
}

/* Keep the existing help bubbles readable inside narrow table columns. */
.info-popover{width:320px;max-width:calc(100vw - 32px);white-space:normal;overflow-wrap:anywhere;text-align:left}
@media(max-width:640px){
  .info-popover{width:280px;max-height:calc(100dvh - 160px);overflow-y:auto}
}
.investor-load-state{padding:10px 12px;margin:0 0 16px;border:1px solid var(--border);color:var(--brand-blue);font-size:.82rem;line-height:1.7}.investor-load-state[hidden]{display:none}.investor-load-state.load-error{color:var(--down)}.investor-loading #summaryCards,.investor-loading #tab-current,.investor-loading #tab-changes,.investor-loading #tab-history{opacity:.45}.portfolio-history-loading{padding:20px;color:var(--text-light);font-size:.85rem}
.hw-price-reference{display:none}
@media(max-width:640px){.hw-price-reference{display:grid;gap:3px;margin-top:7px;font-size:.65rem;line-height:1.65;color:var(--text-light);white-space:normal;overflow-wrap:anywhere}}

/* Price references and disclosed actions stay together on every screen size. */
.hw-intro{display:flex;align-items:flex-start;justify-content:space-between;gap:20px;margin-bottom:16px}.hw-intro h3{font-size:1.08rem;margin:0 0 6px}.hw-intro p,.hw-intro>small,.hw-method{color:var(--text-light);font-size:.76rem;line-height:1.7}.hw-intro p{margin:0}.hw-intro>small{white-space:nowrap}.hw-facts{display:flex;flex-wrap:wrap;gap:12px 24px;padding:14px 0;border-block:1px solid var(--border);margin-bottom:18px}.hw-facts>span{font-size:.76rem;color:var(--text-light)}.hw-facts strong{font-size:1.25rem;color:var(--brand-blue);margin-right:6px;font-variant-numeric:tabular-nums}.hw-controls{display:flex;align-items:end;gap:12px;flex-wrap:wrap;margin-bottom:16px}.hw-controls label{display:grid;gap:5px;font-size:.7rem;color:var(--text-light)}.hw-controls input,.hw-controls select{background:var(--white);border:1px solid var(--border);border-radius:5px;color:var(--text);font:inherit;font-size:.8rem;min-height:40px;padding:8px 10px;max-width:100%}.hw-controls label:first-child{flex:1;min-width:180px}.hw-controls #hwResultCount{font-size:.7rem;color:var(--text-light);padding-bottom:10px}.homework-table{table-layout:fixed;width:100%}.homework-table th:nth-child(1){width:18%}.homework-table th:nth-child(2){width:11%}.homework-table th:nth-child(3){width:20%}.homework-table th:nth-child(4){width:11%}.homework-table th:nth-child(5){width:40%}.homework-table td{vertical-align:top;padding:16px 12px;white-space:normal}.homework-table td>small{display:block;line-height:1.6;margin-top:4px;font-size:.68rem;color:var(--text-light);overflow-wrap:anywhere}.homework-table .hw-gap{color:var(--brand-blue);font-size:1.06rem}.hw-holder-line{display:flex;align-items:center;flex-wrap:wrap;gap:4px 8px;margin:5px 0}.hw-holder-line small{color:var(--text-light);font-size:.68rem}.hw-investor-link{border:0;background:none;padding:0;color:var(--brand-blue);text-decoration:underline;text-underline-offset:3px;cursor:pointer;font:inherit;font-size:.76rem}.hw-direction{display:inline-block;font-size:.68rem;color:var(--text-light);line-height:1.7}.hw-company>.hw-direction{margin-top:7px}.hw-direction.added,.hw-direction.new{color:#246e51}.hw-direction.trimmed{color:#9a423c}.hw-direction.mixed{color:#8a602b}.hw-calculation{margin-top:10px;font-size:.72rem}.hw-calculation summary{cursor:pointer;color:var(--brand-blue);line-height:1.8}.hw-holder-detail{padding:10px 0;border-bottom:1px solid var(--border);line-height:1.8}.hw-holder-detail small{color:var(--text-light);font-size:.66rem}.hw-holder-detail .hw-direction{margin-left:8px}.hw-other-holders{padding-top:10px;line-height:1.9}.hw-other-holders small{display:block;color:var(--text-light)}.hw-method{margin:12px 0 24px}.hw-empty{text-align:center;padding:28px 16px;color:var(--text-light)}
@media(max-width:640px){.hw-intro{display:block}.hw-intro>small{display:block;margin-top:8px}.hw-facts{display:grid;grid-template-columns:1fr 1fr;gap:10px}.hw-controls{display:grid;grid-template-columns:1fr 1fr;gap:10px}.hw-controls label:first-child{grid-column:1/-1;min-width:0}.hw-controls label{min-width:0}.hw-controls #hwResultCount{grid-column:1/-1;padding-bottom:0}.homework-table thead{display:none}.homework-table,.homework-table tbody{display:block}.homework-table tbody tr{display:grid;grid-template-columns:1fr 1.2fr .9fr;border:1px solid var(--border);border-radius:7px;margin-bottom:12px;padding:12px;gap:12px 8px}.homework-table tbody td{display:block!important;border:0;padding:0!important;min-width:0;white-space:normal!important}.homework-table .hw-company,.homework-table .hw-holders{grid-column:1/-1}.homework-table .hw-company{padding-bottom:8px!important;border-bottom:1px solid var(--border)}.homework-table td[data-label]::before{content:attr(data-label);display:block;color:var(--text-light);font-size:.68rem;margin-bottom:5px}.homework-table .ticker-line{font-size:1.04rem}.homework-table .name-line{font-size:.8rem;white-space:normal}.homework-table .hw-holders{border-top:1px solid var(--border);padding-top:8px!important}.homework-table td>small{font-size:.65rem}.hw-calculation summary{padding:7px 0;min-height:36px}.hw-holder-line{gap:4px 7px}.hw-investor-link{min-height:32px}.hw-holder-count{font-size:.7rem}}
.portfolio-controls{display:flex;align-items:end;flex-wrap:wrap;gap:10px;margin:12px 0 18px}.portfolio-controls label{display:grid;gap:5px;font-size:.7rem;color:var(--text-light);flex:1;min-width:150px}.portfolio-controls input{min-height:40px;font:inherit;font-size:.8rem;border:1px solid var(--border);background:var(--white);color:var(--text);border-radius:5px;padding:8px 10px}.portfolio-controls button{min-height:40px;padding:8px 12px;border:1px solid var(--border);border-radius:5px;background:var(--white);color:var(--brand-blue);cursor:pointer}.portfolio-controls button:disabled{opacity:.4;cursor:default}.portfolio-controls>span{font-size:.72rem;color:var(--text-light);padding-bottom:10px}
@media(max-width:640px){.portfolio-controls label{flex-basis:100%}.portfolio-controls>span{flex:1}}
@media(max-width:640px){.homework-table tbody tr{padding:10px;gap:7px 8px;margin-bottom:8px}.homework-table .hw-company{display:grid!important;grid-template-columns:auto minmax(0,1fr);align-items:baseline;column-gap:8px;padding-bottom:6px!important}.homework-table .hw-company .ticker-line{font-size:.94rem}.homework-table .hw-company .name-line{font-size:.74rem}.homework-table .hw-company>.hw-direction{display:none}.homework-table td:nth-child(3)>small:last-child{display:none}.homework-table td>small{font-size:.61rem;line-height:1.4;margin-top:2px}.homework-table td[data-label]::before{margin-bottom:2px;font-size:.62rem}.homework-table .hw-holders{padding-top:5px!important}.hw-holder-line{margin:2px 0;line-height:1.5}.hw-holder-line small{font-size:.62rem}.hw-holder-line .hw-investor-link{min-height:0;font-size:.7rem}.hw-holders>.hw-holder-line:nth-of-type(n+4){display:none}.hw-calculation{margin-top:3px}.hw-calculation summary{min-height:30px;padding:3px 0}.hw-facts{padding:9px 0;margin-bottom:12px;gap:6px}.hw-facts strong{font-size:1.06rem}.hw-intro{margin-bottom:10px}.hw-intro p{font-size:.7rem;line-height:1.5}}
