/* Homepage v3: modernization-first synthesis. Uses global V5.2 tokens only. */
.hp3 { background: var(--tw-cool); color: var(--tw-ink); }
.hp3 h1, .hp3 h2, .hp3 h3 { text-wrap: pretty; }
.hp3 p { text-wrap: pretty; }
.hp3-section { padding: clamp(64px, 7vw, 112px) var(--tw-page-margin); }
.hp3-section h2 { margin: 0; font-family: var(--tw-font-display); font-weight: 600; font-size: clamp(30px, 3.4vw, 46px); line-height: 1.04; letter-spacing: -.02em; }
.hp3-section p { font-size: 17px; line-height: 1.5; }
.hp3-label { font-family: var(--tw-font-mono); font-size: 14px; letter-spacing: .1em; text-transform: uppercase; line-height: 1.32; }
.hp3-label span, .hp3-label em { color: var(--tw-slate); font-style: normal; }

.hp3-hero { background: var(--tw-ink); color: var(--tw-fog); padding: clamp(72px, 9vw, 140px) var(--tw-page-margin) clamp(56px, 6vw, 96px); }
.hp3-hero h1 { margin: 0; max-width: 20ch; font-family: var(--tw-font-display); font-weight: 600; font-size: clamp(40px, 5.6vw, 76px); line-height: 1; letter-spacing: -.02em; color: var(--tw-fog); }
.hp3-hero-foot { display: grid; grid-template-columns: minmax(0,1fr) auto; align-items: end; gap: clamp(24px,4vw,64px); margin-top: clamp(36px,4.5vw,64px); padding-top: 28px; border-top: 1px solid var(--tw-graphite); }
.hp3-hero-foot p { max-width: 34ch; margin: 0; font-size: clamp(17px,1.6vw,22px); line-height: 1.4; color: var(--tw-fog); }
.hp3-btn-light { background: var(--tw-fog); border-color: var(--tw-fog); color: var(--tw-ink); }
.hp3-btn-light:hover { background: var(--tw-method-lt); border-color: var(--tw-method-lt); color: var(--tw-ink); }

.hp3-split-head { display: grid; grid-template-columns: minmax(0,1.15fr) minmax(0,1fr); gap: clamp(24px,4vw,72px); align-items: end; margin-bottom: clamp(40px,5vw,64px); }
.hp3-split-head-top { align-items: start; }
.hp3-split-head p { margin: 0; color: var(--tw-ink-2); }
.hp3-split-head > div { display: flex; flex-direction: column; gap: 18px; }

.hp3-proof { background: var(--tw-cool); }
.hp3-proof-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 1px; background: var(--tw-rule); border: 1px solid var(--tw-ink); }
.hp3-proof-card { background: var(--tw-paper); padding: clamp(24px,2.4vw,34px); border-top: 3px solid var(--tw-method); display: flex; flex-direction: column; gap: 14px; }
.hp3-proof-num { font-family: var(--tw-font-display); font-weight: 700; font-size: clamp(30px,3vw,40px); line-height: 1; letter-spacing: -.02em; color: var(--tw-outcome); }
.hp3-proof-num-long { font-size: clamp(24px,2.2vw,30px); line-height: 1.05; }
.hp3-proof-card strong { font-size: 16px; line-height: 1.45; }
.hp3-proof-card p { margin: 0; font-size: 15px; line-height: 1.45; color: var(--tw-ink-2); }
.hp3-proof-card .hp3-label { color: var(--tw-slate); }

.hp3-quote-carousel { margin-top: clamp(36px,4.5vw,60px); }
.hp3-quote-track { display: flex; overflow-x: auto; scroll-snap-type: x mandatory; scrollbar-width: none; border: 1px solid var(--tw-ink); }
.hp3-quote-track::-webkit-scrollbar { display: none; }
.hp3-quote { flex: 0 0 100%; scroll-snap-align: start; margin: 0; display: grid; grid-template-columns: minmax(210px,300px) minmax(0,1fr); min-width: 0; background: var(--tw-paper); }
.hp3-quote + .hp3-quote { border-left: 1px solid var(--tw-ink); }
.hp3-quote-media { position: relative; min-height: 360px; overflow: hidden; border-right: 1px solid var(--tw-rule); background: var(--tw-cool-2); }
.hp3-quote-media img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: center 20%; filter: grayscale(1) contrast(1.04); }
.hp3-quote-body { padding: clamp(28px,4vw,52px); display: flex; flex-direction: column; justify-content: space-between; gap: 32px; }
.hp3-quote-body blockquote { margin: 0; font-family: var(--tw-font-display); font-style: italic; font-size: clamp(21px,2.2vw,29px); line-height: 1.25; letter-spacing: -.015em; }
.hp3-quote-body figcaption { padding-top: 14px; border-top: 1px solid var(--tw-ink); }
.hp3-quote-nav { display: flex; align-items: center; justify-content: flex-end; gap: 14px; margin-top: 14px; }
.hp3-quote-nav > button { width: 42px; height: 42px; border: 1px solid var(--tw-ink); background: transparent; color: var(--tw-ink); cursor: pointer; }
.hp3-quote-nav > button:disabled { opacity: .35; cursor: default; }
.hp3-quote-dots { display: flex; gap: 7px; }
.hp3-quote-dots button { width: 28px; height: 4px; padding: 0; border: 0; background: var(--tw-rule); cursor: pointer; }
.hp3-quote-dots button.is-active { background: var(--tw-method); }

.hp3-economics { background: var(--tw-paper); border-top: 1px solid var(--tw-ink); }
.hp3-thinking-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: clamp(20px,2.5vw,40px); }
.hp3-thinking-card { border: 1px solid var(--tw-rule); background: var(--tw-cool); padding: clamp(24px,2.5vw,34px); }
.hp3-thinking-card-method { border-color: var(--tw-ink); border-top: 3px solid var(--tw-method); background: var(--tw-paper); }
.hp3-thinking-card h3 { margin: 0 0 24px; font-size: 22px; }
.hp3-thinking-card p { margin: 22px 0 0; color: var(--tw-slate); font-size: 15px; }
.hp3-project-list, .hp3-flow { display: grid; gap: 10px; }
.hp3-project-list div, .hp3-flow div { display: flex; justify-content: space-between; gap: 20px; padding: 13px 15px; border: 1px solid var(--tw-rule); background: var(--tw-paper); font-family: var(--tw-font-mono); font-size: 14px; letter-spacing: .04em; }
.hp3-project-list b { color: var(--tw-slate); font-weight: 500; }
.hp3-flow div { background: var(--tw-cool); color: var(--tw-ink); }
.hp3-flow span { color: var(--tw-method); }

.hp3-lifecycle { background: var(--tw-cool); border-top: 1px solid var(--tw-ink); }
.hp3-lifecycle-table { border: 1px solid var(--tw-ink); background: var(--tw-paper); overflow: hidden; }
.hp3-life-head, .hp3-life-row { display: grid; grid-template-columns: minmax(190px,1.2fr) repeat(5,minmax(58px,.55fr)) minmax(220px,1.55fr); gap: 10px; align-items: center; }
.hp3-life-head { padding: 13px 18px; border-bottom: 1px solid var(--tw-rule); font-family: var(--tw-font-mono); font-size: 12px; letter-spacing: .07em; text-transform: uppercase; color: var(--tw-slate); text-align: center; }
.hp3-life-row { padding: 18px; border-bottom: 1px solid var(--tw-rule-soft); }
.hp3-life-row:last-child { border-bottom: 0; }
.hp3-life-row strong { font-family: var(--tw-font-display); font-size: 18px; line-height: 1.1; }
.hp3-life-row p { margin: 0; font-size: 14px; line-height: 1.4; color: var(--tw-slate); }
.hp3-life-row i, .hp3-life-legend i { display: block; height: 9px; border: 1px solid var(--tw-rule-soft); }
.hp3-life-row i.owns, .hp3-life-legend i.owns { background: var(--tw-method); border-color: var(--tw-method); }
.hp3-life-row i.varies, .hp3-life-legend i.varies { background: var(--tw-cool-3); border-color: var(--tw-rule); }
.hp3-life-row i.out, .hp3-life-legend i.out { background: repeating-linear-gradient(135deg,var(--tw-rule) 0 2px,transparent 2px 5px); }
.hp3-life-row-tw { margin: 4px; border: 1px solid var(--tw-ink); background: var(--tw-cool); }
.hp3-life-row-tw p { color: var(--tw-ink); font-weight: 600; }
.hp3-life-legend { display: flex; justify-content: flex-end; gap: 20px; margin-top: 14px; font-family: var(--tw-font-mono); font-size: 12px; letter-spacing: .06em; text-transform: uppercase; color: var(--tw-slate); }
.hp3-life-legend span { display: flex; align-items: center; gap: 7px; }
.hp3-life-legend i { width: 30px; }
.hp3-life-notes { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 32px; margin-top: 28px; }
.hp3-life-notes p { margin: 0; color: var(--tw-slate); font-size: 15px; }

.hp3-compounding { background: var(--tw-graphite-2); color: var(--tw-fog); }
.hp3-compounding h2 { color: var(--tw-fog); max-width: 30ch; }
.hp3-compare-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: clamp(20px,2.5vw,40px); margin-top: clamp(36px,4.5vw,60px); }
.hp3-compare-grid article { border: 1px solid var(--tw-graphite); padding: clamp(24px,2.4vw,32px); }
.hp3-compare-grid article.is-method { border-color: var(--tw-method-lt); border-top: 3px solid var(--tw-method-lt); background: rgba(79,184,219,.06); }
.hp3-compare-grid h3 { margin: 0 0 20px; padding-bottom: 14px; border-bottom: 1px solid var(--tw-graphite); font-family: var(--tw-font-mono); font-size: 14px; letter-spacing: .1em; text-transform: uppercase; color: var(--tw-fog-2); }
.hp3-compare-grid .is-method h3 { color: var(--tw-method-lt); }
.hp3-compare-grid ul { list-style: none; padding: 0; margin: 0; display: grid; gap: 12px; font-size: 16px; line-height: 1.4; color: var(--tw-fog-2); }
.hp3-compare-grid .is-method ul { color: var(--tw-fog); }
.hp3-founder-quote { margin: clamp(36px,4.5vw,60px) 0 0; padding-top: 32px; border-top: 1px solid var(--tw-graphite); display: grid; grid-template-columns: minmax(0,1.6fr) minmax(220px,.8fr); gap: clamp(24px,4vw,64px); align-items: end; }
.hp3-founder-quote blockquote { margin: 0; font-family: var(--tw-font-display); font-size: clamp(24px,2.4vw,34px); line-height: 1.1; letter-spacing: -.02em; }
.hp3-founder-quote figcaption { display: flex; align-items: center; gap: 14px; }
.hp3-founder-quote img { width: 58px; height: 58px; border-radius: 50%; object-fit: cover; object-position: center 20%; filter: grayscale(1); }
.hp3-founder-quote .hp3-label { color: var(--tw-fog); }
.hp3-founder-quote .hp3-label em { color: var(--tw-method-lt); }

.hp3-durable { background: var(--tw-cool); }
.hp3-durable-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); border: 1px solid var(--tw-ink); background: var(--tw-paper); }
.hp3-durable-col { display: grid; }
.hp3-durable-col + .hp3-durable-col { border-left: 1px solid var(--tw-rule); }
.hp3-durable-col h3 { margin: 0; padding: 18px 28px; border-bottom: 1px solid var(--tw-ink); font-family: var(--tw-font-mono); font-size: 14px; letter-spacing: .1em; text-transform: uppercase; color: var(--tw-method); }
.hp3-durable-col-muted h3 { color: var(--tw-slate); }
.hp3-durable-col span { padding: 16px 28px; border-bottom: 1px solid var(--tw-rule-soft); font-size: 17px; font-weight: 600; }
.hp3-durable-col span:last-child { border-bottom: 0; }
.hp3-durable-col-muted span { color: var(--tw-slate); font-weight: 400; }

.hp3-independence { background: var(--tw-paper); border-top: 1px solid var(--tw-ink); }
.hp3-independence-grid { display: grid; grid-template-columns: minmax(0,1fr) minmax(0,1.1fr); gap: clamp(32px,5vw,80px); }
.hp3-independence-points { display: grid; gap: 10px; margin-top: 32px; }
.hp3-independence-points span { padding: 13px 0; border-bottom: 1px solid var(--tw-rule); font-family: var(--tw-font-mono); font-size: 14px; letter-spacing: .06em; text-transform: uppercase; }
.hp3-independence-copy { display: flex; flex-direction: column; gap: 18px; padding-top: 5px; }
.hp3-independence-copy p { margin: 0; color: var(--tw-ink-2); }

.hp3-capabilities { background: var(--tw-cool); border-top: 1px solid var(--tw-ink); }
.hp3-cap-grid { display: grid; grid-template-columns: repeat(5,minmax(0,1fr)); border: 1px solid var(--tw-ink); background: var(--tw-rule); gap: 1px; }
.hp3-cap-grid a { display: block; padding: 24px 20px; background: var(--tw-paper); color: var(--tw-ink); text-decoration: none; border-bottom: 0; }
.hp3-cap-grid a:hover { background: var(--tw-cool-2); color: var(--tw-ink); }
.hp3-cap-grid h3 { margin: 0; font-size: 20px; line-height: 1.1; }
.hp3-cap-grid p { margin: 14px 0 0; font-size: 15px; line-height: 1.45; color: var(--tw-ink-2); }
.hp3-method-note { margin: 24px 0 0; color: var(--tw-slate); font-size: 15px !important; }
.hp3-method-note a { color: var(--tw-method); }

.hp3-destination { background: var(--tw-ink); color: var(--tw-fog); }
.hp3-destination-grid { display: grid; grid-template-columns: minmax(0,1fr) minmax(0,1.05fr); gap: clamp(36px,6vw,96px); }
.hp3-destination h2 { color: var(--tw-fog); }
.hp3-destination p { color: var(--tw-fog-2); }
.hp3-destination-list { display: grid; border-top: 1px solid var(--tw-graphite); }
.hp3-destination-list span { padding: 15px 0; border-bottom: 1px solid var(--tw-graphite); font-size: 17px; }

.hp3-sectors { background: var(--tw-paper); }
.hp3-rail-head { display: flex; justify-content: space-between; gap: 20px; align-items: baseline; margin-bottom: 28px; }
.hp3-rail-head h2 { font-size: 30px; }
.hp3-rail-head a { font-family: var(--tw-font-mono); font-size: 14px; letter-spacing: .08em; text-transform: uppercase; color: var(--tw-method); border-bottom: 0; }
.hp3-sector-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 20px; }
.hp3-sector-grid a { display: block; padding: 24px; border: 1px solid var(--tw-ink); background: var(--tw-cool); color: var(--tw-ink); text-decoration: none; }
.hp3-sector-grid a:hover { background: var(--tw-cool-2); color: var(--tw-ink); }
.hp3-sector-grid h3 { margin: 0; font-size: 22px; }
.hp3-sector-grid p { margin: 12px 0 0; font-size: 15px; line-height: 1.45; color: var(--tw-ink-2); }

.hp3-insights { background: var(--tw-cool); border-top: 1px solid var(--tw-rule); }

.hp3-start { background: var(--tw-graphite-2); color: var(--tw-fog); }
.hp3-start-grid { display: grid; grid-template-columns: minmax(0,1.2fr) minmax(0,.8fr); gap: clamp(36px,6vw,96px); }
.hp3-start h2 { color: var(--tw-fog); }
.hp3-start p { color: var(--tw-fog-2); max-width: 48ch; }
.hp3-start .tw-btn { margin-top: 14px; }
.hp3-start-aside { border-left: 1px solid var(--tw-graphite); padding-left: clamp(24px,4vw,48px); }
.hp3-start-aside a { font-family: var(--tw-font-display); font-size: 23px; line-height: 1.15; color: var(--tw-method-lt); border-bottom: 0; }
.hp3-start-aside p { margin-top: 26px; font-size: 15px; }

@media (max-width: 960px) {
  .hp3-proof-grid { grid-template-columns: 1fr; gap: 0; }
  .hp3-proof-card + .hp3-proof-card { border-top: 1px solid var(--tw-rule); }
  .hp3-cap-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .hp3-life-head { display: none; }
  .hp3-life-row { grid-template-columns: minmax(160px,.8fr) repeat(5,minmax(36px,.35fr)) minmax(200px,1.2fr); }
  .hp3-life-row i { height: 8px; }
}

@media (max-width: 640px) {
  .hp3-section { padding-top: 58px; padding-bottom: 58px; }
  .hp3-hero { padding-top: 68px; }
  .hp3-hero-foot, .hp3-split-head, .hp3-thinking-grid, .hp3-compare-grid, .hp3-founder-quote, .hp3-durable-grid, .hp3-independence-grid, .hp3-destination-grid, .hp3-sector-grid, .hp3-start-grid, .hp3-life-notes { grid-template-columns: 1fr; }
  .hp3-hero-foot { align-items: start; }
  .hp3-hero-foot .tw-btn { justify-self: start; }
  .hp3-split-head { margin-bottom: 34px; }
  .hp3-quote { grid-template-columns: 1fr; }
  .hp3-quote-media { min-height: auto; aspect-ratio: 4 / 3; border-right: 0; border-bottom: 1px solid var(--tw-rule); }
  .hp3-quote-media img { object-position: center 18%; }
  .hp3-quote-body { padding: 26px 22px 30px; }
  .hp3-lifecycle-table { border: 0; background: transparent; overflow: visible; }
  .hp3-life-row { grid-template-columns: repeat(5,minmax(0,1fr)); gap: 7px; padding: 18px 0; }
  .hp3-life-row strong, .hp3-life-row p { grid-column: 1 / -1; }
  .hp3-life-row strong { margin-bottom: 5px; }
  .hp3-life-row p { margin-top: 7px; }
  .hp3-life-row-tw { margin: 8px 0 0; padding: 18px; }
  .hp3-life-legend { justify-content: flex-start; flex-wrap: wrap; }
  .hp3-founder-quote figcaption { margin-top: 4px; }
  .hp3-durable-col + .hp3-durable-col { border-left: 0; border-top: 1px solid var(--tw-ink); }
  .hp3-cap-grid { grid-template-columns: 1fr; gap: 0; }
  .hp3-cap-grid a + a { border-top: 1px solid var(--tw-rule); }
  .hp3-start-aside { border-left: 0; border-top: 1px solid var(--tw-graphite); padding-left: 0; padding-top: 28px; }
}

@media (max-width: 460px) {
  .hp3-hero h1 { font-size: clamp(36px,11vw,48px); }
  .hp3-proof-card, .hp3-thinking-card { padding: 22px 18px; }
  .hp3-quote-media { aspect-ratio: 3 / 2; }
  .hp3-quote-nav { justify-content: space-between; }
  .hp3-durable-col h3, .hp3-durable-col span { padding-left: 20px; padding-right: 20px; }
  .hp3-life-legend { gap: 12px; }
  .hp3-life-legend span { font-size: 11px; }
}

@media (max-height: 520px) and (orientation: landscape) {
  .hp3-hero { padding-top: 48px; padding-bottom: 44px; }
  .hp3-quote { grid-template-columns: 180px minmax(0,1fr); }
  .hp3-quote-media { aspect-ratio: auto; min-height: 300px; border-right: 1px solid var(--tw-rule); border-bottom: 0; }
  .hp3-quote-media img { object-position: center 14%; }
  .hp3-quote-body { padding: 24px; }
}
