:root {
    --ft-max-width: 1480px;
    --ft-content-width: 1180px;
    --ft-section-gap: clamp(72px, 9vw, 132px);
    --ft-card-radius: 0;
    --ft-shadow: 14px 14px 0 color-mix(in srgb, var(--nv-text) 8%, transparent);
}

.ft-page {
    margin: 0;
    color: var(--nv-text);
    background: var(--nv-bg);
}

.ft-shell {
    width: min(var(--ft-max-width), calc(100% - 48px));
    margin: 0 auto;
    padding: clamp(36px, 6vw, 88px) 0 96px;
}

.ft-hero {
    display: grid;
    grid-template-columns: minmax(0, 1.35fr) minmax(280px, .65fr);
    gap: clamp(36px, 7vw, 112px);
    min-height: min(760px, calc(100vh - var(--nv-header-height)));
    align-items: center;
}

.ft-kicker,
.ft-section-head > p {
    margin: 0;
    color: var(--nv-accent);
    font-size: 12px;
    font-weight: 800;
    letter-spacing: .12em;
    text-transform: uppercase;
}

.ft-hero h1 {
    max-width: 14em;
    margin: 22px 0 0;
    font-size: clamp(52px, 7vw, 108px);
    font-weight: 780;
    line-height: .98;
    letter-spacing: -.065em;
    text-wrap: balance;
}

.ft-thesis {
    max-width: 760px;
    margin: 32px 0 0;
    color: var(--nv-muted);
    font-size: clamp(18px, 2vw, 26px);
    line-height: 1.62;
    text-wrap: pretty;
}

.ft-signal-grid {
    display: grid;
    gap: 1px;
    border: 1px solid var(--nv-line-strong);
    background: var(--nv-line);
}

.ft-signal-grid article {
    min-height: 132px;
    padding: 22px;
    background: var(--nv-panel);
}

.ft-section {
    margin-top: var(--ft-section-gap);
}

.ft-section-head {
    display: grid;
    gap: 14px;
    max-width: 1100px;
    margin-bottom: 34px;
}

.ft-section-head h2 {
    margin: 0;
    font-size: clamp(34px, 4.5vw, 68px);
    line-height: 1.08;
    letter-spacing: -.045em;
    text-wrap: balance;
}

.ft-section-head > span {
    max-width: 860px;
    color: var(--nv-muted);
    font-size: 17px;
    line-height: 1.75;
}

.ft-insight-list,
.ft-entity-list {
    display: grid;
    gap: 28px;
}

.ft-sources {
    margin-top: 22px;
    border-top: 1px solid var(--nv-line);
    color: var(--nv-muted);
    font-size: 12px;
}

.ft-sources summary {
    padding: 16px 0;
    cursor: pointer;
    list-style: none;
}

.ft-sources summary::before { content: "▸ "; }
.ft-sources[open] summary::before { content: "▾ "; }
.ft-sources > div { display: grid; gap: 12px; padding-bottom: 16px; }
.ft-sources article { padding: 14px; border: 1px solid var(--nv-line); background: var(--nv-panel); }
.ft-sources article > * { display: block; }
.ft-sources article span,
.ft-sources article p { margin: 7px 0 0; line-height: 1.6; }
.ft-sources a { margin-top: 9px; color: var(--nv-accent); }

.ft-method {
    max-width: var(--ft-content-width);
    font-size: 13px;
}

.ft-method > h2 {
    margin: 0 0 12px;
    font-size: 18px;
}

.nv-profit-model { min-width:0; margin:0 0 14px; border:1px solid var(--nv-line,#d9dce2); background:var(--nv-panel,#fff); }
.nv-profit-model svg { display:block; width:100%; height:auto; }
.nv-profit-axis { stroke:#aeb4bf; stroke-width:1; }
.nv-profit-revenue,.nv-profit-cost,.nv-profit-cost-after { fill:none; stroke-width:4; stroke-linecap:round; stroke-linejoin:round; }
.nv-profit-revenue { stroke:#3978f6; }.nv-profit-cost { stroke:#ed6a5e; }.nv-profit-cost-after { stroke:#d59b2a; stroke-dasharray:7 5; }
.nv-profit-area { fill:rgba(54,164,135,.18); stroke:none; }
.nv-profit-model text { font-size:10px; font-weight:760; }.nv-profit-revenue-label { fill:#3978f6; }.nv-profit-cost-label { fill:#ba4b42; }.nv-profit-contribution-label { fill:#147765; }.nv-profit-x-label { fill:#7a808c; font-size:9px!important; }
.nv-profit-model figcaption { display:grid; gap:4px; min-height:68px; padding:10px 12px; border-top:1px solid var(--nv-line,#d9dce2); }
.nv-profit-model figcaption strong { color:var(--nv-text,#151922); font-size:11px; }.nv-profit-model figcaption span { color:var(--nv-muted,#69717e); font-size:9px; line-height:1.45; }

@media (max-width: 900px) {
    .ft-shell { width: min(100% - 32px, var(--ft-max-width)); }
    .ft-hero { grid-template-columns: 1fr; min-height: auto; }
    .ft-hero h1 { font-size: clamp(48px, 11vw, 82px); }
}

@media (max-width: 520px) {
    .ft-shell { width: min(100% - 24px, var(--ft-max-width)); padding-top: 34px; }
    .ft-hero h1 { font-size: clamp(42px, 13vw, 64px); }
    .ft-thesis { font-size: 17px; }
    .ft-section-head h2 { font-size: 34px; }
}
