:root {
  --hf-ink: #101b2b;
  --hf-navy: #0d1b2d;
  --hf-blue: #4e9ec8;
  --hf-cyan: #8ed8dc;
  --hf-paper: #f7f5ef;
  --hf-rule: #d9d6cc;
  --hf-gold: #d5aa52;
  --hf-muted: #66717d;
}

body.hf-landscape { background: var(--hf-paper); color: var(--hf-ink); }
.hf-landscape .main-content { max-width: none; width: 100%; padding: 0; }
.hf-page { font-family: "IBM Plex Sans", sans-serif; }
.hf-hero, .hf-section, .hf-brief-footer { padding-left: max(5vw, 28px); padding-right: max(5vw, 28px); }
.hf-hero { padding-top: 7rem; padding-bottom: 5rem; max-width: 1420px; margin: 0 auto; }
.hf-back { float: right; color: #315d78; font-size: .82rem; text-decoration: none; border-bottom: 1px solid #99b5c5; }
.hf-kicker, .hf-eyebrow { color: #397694; font-size: .72rem; font-weight: 600; letter-spacing: .14em; text-transform: uppercase; }
.hf-hero h1 { font-family: "IBM Plex Serif", serif; font-size: clamp(3rem, 6.4vw, 6.8rem); line-height: .98; letter-spacing: -.052em; max-width: 1200px; margin: 1.3rem 0 2rem; font-weight: 500; }
.hf-deck { max-width: 850px; font-family: "IBM Plex Serif", serif; font-size: clamp(1.2rem, 2vw, 1.75rem); line-height: 1.45; color: #42505d; }
.hf-summary-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 1px; margin-top: 4.5rem; border-top: 1px solid var(--hf-rule); border-bottom: 1px solid var(--hf-rule); }
.hf-summary-grid div { padding: 1.5rem 1.2rem 1.5rem 0; }
.hf-summary-grid strong { display: block; font-family: "IBM Plex Serif", serif; font-size: 3.2rem; font-weight: 400; line-height: 1; }
.hf-summary-grid span { display: block; margin-top: .45rem; color: var(--hf-muted); font-size: .82rem; max-width: 180px; line-height: 1.35; }
.hf-section { padding-top: 5.5rem; padding-bottom: 5.5rem; }
.hf-section > * { max-width: 1380px; margin-left: auto; margin-right: auto; }
.hf-section-dark { background: var(--hf-navy); color: #edf4f5; }
.hf-section-tint { background: #eceae3; }
.hf-section-heading { display: grid; grid-template-columns: minmax(0, 1.5fr) minmax(280px, .7fr); gap: 5rem; align-items: end; margin-bottom: 3rem; }
.hf-section-heading h2, .hf-conclusion h2 { font-family: "IBM Plex Serif", serif; font-size: clamp(2.2rem, 4vw, 4.6rem); line-height: 1.04; letter-spacing: -.035em; font-weight: 500; margin: .7rem 0 0; }
.hf-section-heading > p { color: var(--hf-muted); line-height: 1.55; margin: 0; }
.hf-section-dark .hf-section-heading > p { color: #aabac4; }
.hf-legend { display: flex; gap: 1.5rem; flex-wrap: wrap; color: #aabac4; font-size: .76rem; margin-bottom: 1rem; }
.hf-dot { width: 9px; height: 9px; border-radius: 50%; display: inline-block; margin-right: .4rem; }
.hf-dot-verified { background: var(--hf-cyan); }
.hf-dot-research { background: var(--hf-gold); }
.hf-dot-integration { background: #6b7d91; }
.hf-chart-shell { background: #112238; border: 1px solid #294057; padding: 1rem; }
.hf-journey-chart { display: block; width: 100%; min-height: 430px; }
.hf-journey-chart .grid { stroke: #294057; stroke-width: 1; }
.hf-journey-chart .axis-label { fill: #8fa4b2; font-size: 13px; letter-spacing: .03em; }
.hf-journey-chart .point { stroke: #112238; stroke-width: 3; }
.hf-journey-chart .point.verified { fill: var(--hf-cyan); }
.hf-journey-chart .point.research { fill: var(--hf-gold); }
.hf-journey-chart .point.integration { fill: #75879c; }
.hf-journey-chart .point-label { fill: #eef5f6; font-size: 13px; font-weight: 500; }
.hf-source { color: #8195a3; font-size: .71rem; line-height: 1.5; margin-top: 1rem; }
.hf-leader-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 1px; background: var(--hf-rule); border-top: 1px solid var(--hf-rule); border-bottom: 1px solid var(--hf-rule); }
.hf-leader-grid article { background: var(--hf-paper); padding: 2rem 1.8rem 2.4rem 0; min-height: 260px; }
.hf-leader-grid article + article { padding-left: 1.8rem; }
.hf-rank { font-size: .68rem; color: #397694; text-transform: uppercase; letter-spacing: .12em; font-weight: 600; }
.hf-leader-grid h3 { font-family: "IBM Plex Serif", serif; font-size: 2.35rem; font-weight: 500; margin: 1.5rem 0 1rem; }
.hf-leader-grid p { line-height: 1.5; font-size: .92rem; }
.hf-leader-grid small { display: block; color: var(--hf-muted); font-size: .72rem; line-height: 1.45; margin-top: 1.2rem; }
.hf-matrix-wrap { overflow-x: auto; border-top: 1px solid #c7c4bb; }
.hf-matrix { border-collapse: collapse; width: 100%; min-width: 820px; }
.hf-matrix th, .hf-matrix td { border-bottom: 1px solid #d2cfc7; padding: .72rem .5rem; text-align: center; }
.hf-matrix thead th { color: #657079; font-size: .66rem; text-transform: uppercase; letter-spacing: .08em; font-weight: 600; }
.hf-matrix thead th:first-child, .hf-matrix tbody th { text-align: left; }
.hf-matrix tbody th { width: 30%; font-weight: 500; }
.hf-matrix tbody th span { display: block; font-size: .88rem; }
.hf-matrix tbody th small { display: block; color: var(--hf-muted); font-size: .66rem; margin-top: .2rem; font-weight: 400; }
.hf-matrix .cell { display: inline-block; width: 54px; height: 8px; border-radius: 8px; background: #d4d1c8; }
.hf-matrix .c1 { background: #aebbc3; }
.hf-matrix .c2 { background: var(--hf-gold); }
.hf-matrix .c3 { background: #397f9e; }
.hf-key { display: flex; gap: 1.5rem; flex-wrap: wrap; margin-top: 1.2rem; color: var(--hf-muted); font-size: .7rem; }
.hf-key b { width: 26px; height: 6px; border-radius: 6px; display: inline-block; margin-right: .35rem; vertical-align: middle; }
.hf-key .k3 { background: #397f9e; } .hf-key .k2 { background: var(--hf-gold); } .hf-key .k1 { background: #aebbc3; } .hf-key .k0 { background: #d4d1c8; }
.hf-talent-layout { display: grid; grid-template-columns: 1.2fr .8fr; gap: 4rem; }
.hf-chart-panel { border-top: 2px solid var(--hf-ink); padding-top: 1.2rem; }
.hf-chart-panel h3 { font-family: "IBM Plex Serif", serif; font-size: 1.55rem; font-weight: 500; margin: 0; }
.hf-panel-note { color: var(--hf-muted); font-size: .74rem; line-height: 1.5; margin: .5rem 0 1.7rem; max-width: 620px; }
.hf-bar-row { display: grid; grid-template-columns: 122px minmax(80px, 1fr) 150px; align-items: center; gap: .8rem; margin: .72rem 0; }
.hf-bar-label { font-size: .72rem; font-weight: 500; }
.hf-bar-track { height: 7px; background: #e4e1d9; }
.hf-bar-track i { display: block; height: 100%; background: #397f9e; }
.hf-bar-value { color: var(--hf-muted); font-size: .66rem; }
.hf-model-cards article { padding: 1rem 0; border-bottom: 1px solid var(--hf-rule); }
.hf-model-cards article > div { display: flex; justify-content: space-between; gap: 1rem; }
.hf-model-cards strong { font-size: .82rem; }
.hf-model-cards span { color: #397694; font-size: .72rem; font-weight: 600; }
.hf-model-cards p { color: var(--hf-muted); font-size: .69rem; margin: .3rem 0 0; }
.hf-model-cards .hf-zero-card span { color: var(--hf-muted); }
.hf-conclusion { background: #dcebed; }
.hf-conclusion > p:not(.hf-eyebrow):not(.hf-method-link) { max-width: 900px; margin: 1.5rem auto 0 0; font-family: "IBM Plex Serif", serif; font-size: 1.35rem; line-height: 1.55; }
.hf-do { margin: 3rem 0 0; max-width: 900px; display: grid; grid-template-columns: 100px 1fr; gap: 1.5rem; border-top: 1px solid #93b1b7; border-bottom: 1px solid #93b1b7; padding: 1.5rem 0; }
.hf-do span { color: #397694; font-size: .7rem; letter-spacing: .12em; text-transform: uppercase; font-weight: 600; }
.hf-do p { margin: 0; line-height: 1.5; }
.hf-method-link { margin-top: 2.5rem; }
.hf-method-link a { color: #255c74; text-decoration: none; border-bottom: 1px solid #7ca3b4; }
.hf-brief-footer { display: flex; justify-content: space-between; padding-top: 2rem; padding-bottom: 2rem; background: var(--hf-navy); color: #9eafb9; font-size: .7rem; letter-spacing: .04em; }

@media (max-width: 900px) {
  .hf-summary-grid, .hf-leader-grid { grid-template-columns: repeat(2, 1fr); }
  .hf-section-heading, .hf-talent-layout { grid-template-columns: 1fr; gap: 2rem; }
  .hf-leader-grid article:nth-child(3) { padding-left: 0; }
  .hf-hero { padding-top: 4rem; }
}
@media (max-width: 620px) {
  .hf-back { float: none; display: inline-block; margin-bottom: 2rem; }
  .hf-summary-grid, .hf-leader-grid { grid-template-columns: 1fr; }
  .hf-leader-grid article, .hf-leader-grid article + article { padding-left: 0; min-height: 0; }
  .hf-bar-row { grid-template-columns: 92px 1fr; }
  .hf-bar-value { grid-column: 2; }
  .hf-journey-chart { min-width: 760px; }
  .hf-chart-shell { overflow-x: auto; }
  .hf-brief-footer { flex-direction: column; gap: .5rem; }
}
