/* One print layout for browser printing and PDF export; never changes screen styles. */
@page { size: A4; margin: 14mm 15mm 16mm; }
@media print {
  :root { --page: 100%; --type-h1-size: 29pt; --type-h1-line: 1.1; --type-h2-size: 19pt; --type-h2-line: 1.2; --type-subsection-size: 18pt; --type-subsection-line: 1.2; --type-body-size: 10.5pt; --type-body-line: 1.5; --type-intro-size: 11pt; --type-intro-line: 1.5; }
  html, body { width: auto; min-width: 0; margin: 0; overflow: visible !important; background: white !important; color: var(--text); }
  * { animation: none !important; transition: none !important; box-shadow: none !important; text-shadow: none !important; -webkit-print-color-adjust: exact; print-color-adjust: exact; }
  p, li { orphans: 3; widows: 3; }
  h1, h2, h3, h4, summary, .section-kicker { break-after: avoid; }
  a { color: inherit; text-decoration: none; }
  .skip-link, .primary-navigation, .menu-button, .print-button, .print-status,
  .page-next, .people-contact, .legal-index,
  .person-bio-toggle, .lab-view-switch,
  input[type="range"], .lab-control-scale, .demo-scale,
  .home-strength-arrow, .home-glance-kpis i, .strategy-details summary span,
  .site-footer::before, .footer-meta a[href="#top"], .office-arrow,
  .access-actions .back-link, .lab-sr-only { display: none !important; }
  .site-header, .site-header.is-scrolled { position: static; display: flex; width: 100%; height: auto; min-height: 0; margin: 0 0 7mm; padding: 0 0 5mm; border-bottom: 1px solid var(--line); background: white; }
  .site-header .brand { display: inline-flex; gap: 12px; color: var(--navy); }
  .brand img { width: 34px; height: 34px; }
  .brand-regulatory { display: block; }
  body .content-main, .legal-main, :is(.approach-page, .methodology-page, .people-page) .content-main { padding: 0; }
  .page-grid, .legal-wrap, .footer-grid { width: 100%; max-width: none; margin: 0; }
  .content-main > .section, .contact-main > .contact { min-height: 0; }
  .section, .home-glance, .strategy-hero, .strategy-cards-section, .legal-hero { padding: 6mm 0; background: white; }
  .section-kicker { font-size: 8pt; line-height: 1.4; }
  .reveal { opacity: 1 !important; visibility: visible !important; transform: none !important; }
  .hero, .visual-hero { position: static; height: auto; min-height: 0; margin: 0; padding: 0 0 7mm; overflow: visible; clip-path: none; background: white; color: var(--navy); break-inside: avoid; }
  .hero-grid, .visual-hero-grid, .people-hero .visual-hero-grid { display: grid; grid-template-columns: 1.15fr 1fr; grid-template-rows: auto; gap: 5mm 7mm; height: auto; min-height: 0; padding: 0; }
  .hero-copy, .visual-hero-copy { position: static; grid-column: 1; grid-row: 1; align-self: center; padding: 0; }
  body:not(.access-page) :is(.hero, .visual-hero-copy) h1 { max-width: none; margin: 3mm 0; color: var(--navy); font-size: 27pt; line-height: 1.08; }
  body:not(.access-page) :is(.hero, .visual-hero-copy) h1 .title-accent { color: var(--color-accent); }
  .hero-copy > p, .visual-hero-lead { max-width: none; margin: 4mm 0 0; padding: 0; color: var(--text); font-size: 10.5pt; line-height: 1.5; }
  .visual-hero-copy .section-kicker { color: var(--color-text-secondary); }
  .hero-scene, .visual-hero-media { position: relative; inset: auto; grid-column: 2; grid-row: 1; align-self: stretch; width: 100%; height: auto; min-height: 45mm; margin: 0; transform: none; opacity: 1 !important; background: var(--color-surface); }
  .hero-scene::after, .visual-hero-media::after { display: none; }
  .hero-scene img, .visual-hero-media img { position: absolute; inset: 0; width: 100%; height: 100%; transform: none !important; object-fit: cover; filter: grayscale(15%) saturate(85%); }
  :is(.methodology-hero, .people-hero) .visual-hero-media img { width: 100%; margin: 0; mask-image: none; }
  .visual-hero-quote { position: static; grid-column: 1 / -1; justify-self: stretch; width: auto; margin: 0; padding: 3mm 5mm; color: var(--navy); background: var(--color-surface); backdrop-filter: none; }
  .visual-hero-quote > p { font-size: 12pt; line-height: 1.4; }
  .visual-hero-quote > p span, .visual-hero-quote cite, .visual-hero-quote footer span { color: var(--text); }
  .visual-hero-quote footer { margin-top: 2mm; padding-top: 2mm; border-color: var(--line); }
  .visual-hero-quote cite, .visual-hero-quote footer span { font-size: 8pt; line-height: 1.4; }

  .home-glance-intro h2 { margin-top: 3mm; }
  .home-glance-kpis { grid-template-columns: repeat(4, 1fr); margin: 6mm 0 0; break-inside: avoid; }
  .home-glance-kpis a { min-height: 0; gap: 3mm; padding: 5mm 4mm; }
  .home-glance-kpis strong { font-size: 17pt; line-height: 1.2; }
  .home-glance-kpis span { font-size: 7.5pt; line-height: 1.5; }
  .home-strengths { margin-top: 7mm; padding: 0; break-inside: avoid; }
  .home-strength:hover { translate: none; background: var(--color-surface); }
  .home-strength::before { display: none; }
  .home-strengths-heading { padding-bottom: 3mm; }
  .home-strength { min-height: 0; padding: 5mm; break-inside: avoid; }
  .home-strength h3 { margin-top: 3mm; font-size: 13pt; line-height: 1.35; }
  .home-strength p { margin-top: 3mm; font-size: 10pt; line-height: 1.5; }

  .landing-chapter { break-inside: avoid; margin: 7mm 0; }
  .landing-banner { display: grid; grid-template-columns: 1.15fr 1fr; gap: 7mm; min-height: 0; overflow: visible; background: white; }
  .landing-banner::after { display: none; }
  .landing-banner-copy { grid-column: 1; grid-row: 1; width: auto; padding: 0; }
  .landing-banner-photo { position: relative; z-index: auto; grid-column: 2; grid-row: 1; height: 40mm; filter: none; }
  .landing-banner h2 { margin-top: 3mm; color: var(--navy); font-size: 23pt; }
  .landing-banner .section-kicker { color: var(--color-text-secondary); }
  .landing-banner .title-accent { color: var(--color-accent); }
  .landing-chapter-content { padding: 5mm 0 0; }
  .landing-headings { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 5mm; }
  .landing-headings > li { padding-top: 3mm; }
  .landing-headings h3 { margin-top: 2mm; font-size: 12pt; line-height: 1.35; }
  .landing-headings .section-kicker { font-size: 7pt; }
  .landing-chapter-action, .landing-banner-arrow { display: none; }
  .landing-people { grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 0; }
  .landing-person .person-photo { float: none; width: 100%; margin: 0; }
  .person-photo img { filter: none; }
  .landing-person h3 { margin-top: 3mm; font-size: 10pt; line-height: 1.35; }

  details::details-content { display: block; content-visibility: visible; }
  details > summary { list-style: none; cursor: default; }
  details > summary::-webkit-details-marker { display: none; }
  .approach-page .process { padding: 0; }
  .approach-page .process > li { break-inside: avoid; }
  .approach-page .process-summary { padding: 5mm 0; }
  .approach-page .process h2 { font-size: 18pt; line-height: 1.2; }
  .approach-page .process-detail { display: block; padding: 0 0 5mm; }
  .portfolio-demo { grid-template-columns: 1.1fr 1fr; gap: 3mm 5mm; padding: 4mm; break-inside: avoid; }
  .demo-header { padding-bottom: 3mm; }
  .demo-header > strong, .lab-heading > strong { font-size: 13pt; line-height: 1.3; }
  .demo-header > span, .demo-units, .demo-chart-label { font-size: 8pt; line-height: 1.4; }
  .demo-range-label { font-size: 9pt; line-height: 1.5; margin-bottom: 2mm; }
  .portfolio-demo figcaption { padding-top: 2mm; margin-bottom: 0; font-size: 8pt; line-height: 1.45; }
  .allocation-demo, .frontier-demo { grid-template-columns: 1.6fr 1fr; }
  .response-weight input, .response-sr-only, .selection-controls input, .frontier-timeline input { display: none; }
  .response-plot, .frontier-chart { max-height: 64mm; }
  .response-plot text, .frontier-chart text, .frontier-chart .frontier-label { font-size: 17px; }
  .response-allocation, .frontier-decision { padding-left: 4mm; border-left: 1px solid var(--line); border-top: 0; padding-top: 0; }
  .response-weight { margin-bottom: 3mm; }
  .response-weight label { font-size: 10pt; }
  .response-weight output { font-size: 12pt; }
  .selection-demo { grid-template-columns: 1fr; }
  .selection-chart { max-height: 60mm; }
  .selection-chart text { font-size: 17px; }
  .selection-summary { display: flex; margin-bottom: 3mm; }
  .selection-estimates { margin: 0; gap: 4mm; }
  .selection-estimates dt { max-width: none; font-size: 7pt; }
  .selection-estimates dd { font-size: 13pt; }
  .selection-axis, .selection-legend, .response-axis, .frontier-axis, .frontier-key { font-size: 7pt; line-height: 1.4; margin: 2mm 0; }
  .frontier-metrics dt { font-size: 8pt; }
  .frontier-metrics dd { font-size: 16pt; }
  .frontier-allocation { display: block; margin-top: 3mm; padding-top: 3mm; }
  .frontier-weight { gap: 1mm; margin-bottom: 3mm; font-size: 8pt; }
  .frontier-timeline { padding-top: 2mm; }
  .frontier-time-labels { display: none; }
  .selection-about summary, .frontier-about summary { min-height: 0; padding: 0; font-size: 8pt; }
  .selection-about p, .frontier-about p { margin: 2mm 0; font-size: 8pt; line-height: 1.4; }

  .methodology-summary { padding: 5mm 0 3mm; }
  .methodology-block { break-inside: avoid; }
  .methodology-panel { display: block; padding: 0 0 6mm; }
  .methodology-lab { overflow: visible; break-inside: avoid; }
  .lab-heading, .lab-control, .lab-explanation, .methodology-lab figcaption { padding: 3mm 4mm; }
  .lab-heading span { display: none; }
  .lab-body { display: grid; grid-template-columns: minmax(0, 1.5fr) minmax(0, 1fr); }
  .lab-control, .lab-assumptions, .lab-explanation { grid-column: 1 / -1; }
  .lab-body > :is(.lab-panel, .lab-profile, .lab-axis-label, .lab-legend) { grid-column: 1; }
  .lab-profile, .lab-panel { padding: 3mm 4mm 0; }
  .lab-chart { max-height: 53mm; }
  .lab-profile .lab-chart { max-height: 32mm; }
  .lab-metrics { display: flex; flex-direction: column; align-self: start; gap: 5mm; margin: 3mm 4mm; padding: 3mm 0; grid-column: 2; grid-row: 2 / span 4; border-top: 1px solid var(--line); }
  .lab-metrics > div, .lab-metrics > div:first-child, .lab-metrics > div:last-child { padding: 0; border: 0; }
  .lab-metrics dd { font-size: 18pt; line-height: 1.3; }
  .lab-metrics dt { min-height: 0; font-size: 8pt; line-height: 1.4; }
  .lab-assumptions { padding: 0 4mm 3mm; }
  .lab-assumptions summary { min-height: 0; padding: 2mm 0 0; font-size: 8pt; }
  .lab-assumptions p, .lab-explanation, .methodology-lab figcaption { font-size: 8pt; line-height: 1.45; }
  .lab-legend { margin: 0; padding: 2mm 4mm; }
  .selected-research { gap: 4mm; margin-top: 6mm; break-inside: avoid; }
  .selected-research > a { min-height: 0; padding: 4mm; }
  .selected-research > a > strong { margin: 3mm 0; font-size: 12pt; line-height: 1.4; }
  .selected-research > a > em, .research-relevance { font-size: 9pt; line-height: 1.45; }
  .research-relevance { margin-bottom: 3mm; }

  .people-intro { margin-bottom: 5mm; padding-top: 3mm; break-after: avoid; }
  .people-intro h2 { margin-top: 3mm; }
  .people-list { display: block; }
  .person { display: flow-root; margin: 0 0 6mm; padding: 0 0 5mm; break-inside: avoid; }
  .person::before { display: none; }
  .person-photo { float: left; width: 32mm; margin-right: 6mm; }
  .person-identity, .person-biography { margin-left: 38mm; }
  .person :is(h2, h3) { font-size: 16pt; line-height: 1.3; }
  .person:hover :is(h2, h3) { color: var(--heading); }
  .person:hover .person-photo { translate: none; }
  .person-identity > p { min-height: 0; font-size: 9pt; line-height: 1.4; }
  /* Print every complete biography, including those collapsed on screen. */
  .person-biography, .person-biography[hidden] { display: block; margin-top: 3mm; padding: 3mm 0 0; }
  .person-biography p { font-size: 9pt; line-height: 1.5; }
  .person-biography .person-evidence { margin-top: 3mm; padding-top: 2mm; font-size: 7.5pt; line-height: 1.5; }

  .strategy-page-intro { display: block; }
  .strategy-hero { padding: 2mm 0 4mm; }
  .strategy-cards-section { padding: 0; }
  .strategy-page-intro h1 { margin: 3mm 0; }
  #strategies-title br { display: none; }
  #strategies-title .title-accent::before { content: " "; white-space: pre; }
  .strategy-page-intro > p:last-child { font-size: 11pt; line-height: 1.5; }
  .strategy-cards { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 5mm; --strategy-header-height: 9mm; --strategy-title-height: 20mm; --strategy-title-size: 23pt; }
  .strategy-type-card { overflow: visible; break-inside: avoid; }
  .strategy-type-card:hover { translate: none; border-color: var(--line); }
  .strategy-details summary:hover { background: none; }
  .strategy-type-card > header, .strategy-card-title { padding: 3mm 4mm; }
  .strategy-card-copy { min-height: 0; padding: 3mm 4mm; }
  .strategy-card-copy > p, .strategy-detail-copy > p { font-size: 9pt; line-height: 1.4; }
  .strategy-detail-copy > p { margin-bottom: 3mm; }
  .strategy-details summary { min-height: 0; padding: 3mm 4mm; font-size: 10pt; }
  .strategy-detail-copy { padding: 0 4mm 4mm; }
  .strategy-detail-copy li { padding: 1.5mm 0; font-size: 9pt; line-height: 1.4; }
  .strategy-access-note { display: block; padding: 4mm; break-inside: avoid; }
  .strategy-access-note a { display: none; }
  .strategy-access-note p { font-size: 9pt; line-height: 1.5; }

  .contact-grid { gap: 5mm; }
  .contact-copy { padding: 5mm; }
  .contact-information { margin-top: 5mm; }
  .contact-information section { padding: 4mm; }
  .contact-notice { margin-top: 5mm; padding: 4mm; }
  .contact-actions { display: block; }
  .contact-actions a { display: block; min-height: 0; margin-bottom: 3mm; padding: 0; border: 0; color: var(--navy); background: none; }
  .contact-actions a::after { display: block; content: attr(href); font-size: 8pt; overflow-wrap: anywhere; }
  .contact-copy address { margin-top: 5mm; }
  .legal-content, .legal-sections section { display: block; padding: 5mm 0; }
  .legal-hero h1 { margin: 3mm 0; }
  .legal-hero .legal-updated { margin-top: 4mm; }
  .legal-number { display: none; }
  .legal-sections h2 { margin-bottom: 3mm; }
  .legal-sections div > p { max-width: none; font-size: 10.5pt; line-height: 1.5; }
  .access-shell { width: 100%; min-height: 0; padding: 0; }
  .access-content { max-width: none; margin: 12mm 0; }
  .access-page, .access-content h1, .access-content .section-kicker, .access-legal, .access-legal a { color: var(--navy); }
  .brand-light { color: var(--navy); }
  .brand-light img { filter: none; }

  .site-footer { margin-top: 6mm; padding: 5mm 0 0; overflow: visible; border-top: 1px solid var(--line); background: white; color: var(--text); break-inside: avoid; }
  .footer-grid { grid-template-columns: 1fr 2fr; gap: 4mm 7mm; }
  .footer-brand, .footer-office-label, .office-link { display: none; }
  .footer-office address { margin: 0; color: var(--text); }
  .footer-grid > p, .site-footer address { font-size: 8pt; line-height: 1.45; }
  .footer-meta { grid-column: 1 / -1; flex-direction: row; gap: 5mm; font-size: 8pt; line-height: 1.4; }
  .footer-meta a { color: var(--navy); }
  .site-footer .legal-note { margin: 3mm 0 0 !important; padding-top: 3mm; border-color: var(--line); color: var(--text); font-size: 8pt; line-height: 1.45; }
}
