/* Vision uses the same artwork and type as Home and Company, with an editorial rhythm. */
.vision-page { --vision-canvas:#171816; --vision-panel:#20231e; --vision-ink:#f4f5ef; --vision-muted:#b8bdb2; --vision-rule:#41473c; --vision-accent:#7decc9; --vision-warm:#ffb36b; }
:root[data-theme="light"] .vision-page { --vision-canvas:#f6f7f2; --vision-panel:#e9ede4; --vision-ink:#18241a; --vision-muted:#505b4e; --vision-rule:#bdc7b8; --vision-accent:#155b3f; --vision-warm:#8c3c13; }
.vision-page main { color:var(--vision-ink); background:var(--vision-canvas); overflow-wrap:break-word; }
.vision-page main .shell { width:min(100% - 7rem,82rem); max-width:82rem; }
.vision-page main :is(h1,h2,h3) { color:var(--vision-ink); font-weight:500; }
.vision-page main .eyebrow { font-size:.875rem; line-height:1.6; font-weight:500; letter-spacing:.06em; color:var(--vision-muted); }
.vision-page main a { text-underline-offset:.25em; }
.vision-page main .technical-link { display:inline-flex; align-items:center; min-height:2.75rem; color:var(--vision-ink); font-size:.9375rem; line-height:1.5; }
.vision-page main .button { min-height:3rem; padding:.75rem 1.4rem; border-radius:2rem; font-size:.9375rem; white-space:normal; text-align:center; }
.vision-page main .button--primary { color:#10231c; background:#7decc9; border-color:#7decc9; }
.vision-page main .button--primary:hover { background:#a0f4d9; border-color:#a0f4d9; }
:root[data-theme="light"] .vision-page main .button--primary { color:#fff; background:#155b3f; border-color:#155b3f; }
:root[data-theme="light"] .vision-page main .button--primary:hover { background:#10462f; border-color:#10462f; }
.vision-page main a:focus-visible,.vision-page main button:focus-visible { outline:2px solid var(--vision-accent); outline-offset:5px; }
.vision-page .vision-hero { display:grid; grid-template-columns:1.12fr 1fr; align-items:center; gap:clamp(2rem,4vw,4rem); padding-block:4.5rem 3rem; }
.vision-hero-copy,.vision-boundary,.vision-prose,.vision-editorial > * { min-width:0; }
.vision-page .vision-kicker { display:flex; flex-wrap:wrap; gap:.5rem 1rem; margin:0 0 1.75rem; }
.vision-kicker > span { color:var(--vision-warm); letter-spacing:0; }
.vision-page h1 { font-size:clamp(3rem,5.3vw,5rem); line-height:1.04; letter-spacing:-.065em; margin:0 0 1.75rem; max-width:17ch; }
.vision-page h1 > span,.vision-page h2 > span { color:var(--vision-accent); }
.vision-page .vision-lead { max-width:34ch; font-size:1.25rem; line-height:1.55; color:var(--vision-ink); margin:0; }
.vision-introduction { max-width:46ch; margin:1rem 0 0; color:var(--vision-muted); font-size:1rem; line-height:1.75; }
.vision-page .cta-row { margin-top:1.75rem; gap:.75rem 1.5rem; flex-wrap:wrap; }
.vision-boundary { position:relative; isolation:isolate; margin:0; display:flex; flex-direction:column; min-height:36rem; overflow:hidden; border-radius:1.25rem; background:#1c142a; color:#fff9ee; }
.vision-art { display:block; position:absolute; inset:0; z-index:-2; overflow:hidden; }
.vision-art img { display:block; width:100%; height:100%; object-fit:cover; object-position:54% center; }
.vision-boundary::before { content:""; position:absolute; inset:0; z-index:-1; background:linear-gradient(180deg,rgba(18,11,27,.7),rgba(18,11,27,.15) 40%,rgba(18,11,27,.86) 82%); }
.vision-art-heading { padding:2rem 2.25rem 0; }
.vision-page .vision-figure-label { font-size:.875rem; line-height:1.6; color:#f1e6dd; margin:0 0 1.5rem; }
.vision-art-heading > p:last-child { font-size:clamp(2rem,2.9vw,2.75rem); line-height:1.12; letter-spacing:-.045em; font-weight:500; margin:0; }
.vision-art-heading strong { color:#a0ffe1; font-weight:500; }
.vision-boundary-diagram { width:100%; height:auto; display:block; margin-block:.5rem; }
.vision-route-base { stroke:#f9d8c1; stroke-width:1.5; opacity:.55; }
.vision-route-arrival { stroke:#ffe1b2; stroke-width:2.5; stroke-dasharray:100; stroke-dashoffset:0; }
.vision-route-source { fill:#ffe1b2; }
.vision-gate { stroke:#a0ffe1; stroke-width:4; }
.vision-gate-halo { stroke:#7decc9; stroke-width:18; opacity:.2; }
.vision-art-signature { display:flex; justify-content:space-between; align-items:end; gap:1rem; padding:0 2.25rem 1.75rem; }
.vision-art-signature p { margin:0; font-size:1rem; line-height:1.6; color:#fff9ee; }
.vision-art-signature > p:first-child { max-width:7ch; font-size:1.75rem; line-height:1.15; letter-spacing:-.03em; }
.vision-art-signature strong { color:#a0ffe1; font-weight:500; }
.vision-boundary figcaption { display:flex; align-items:center; justify-content:space-between; gap:.75rem; padding:1rem 1.5rem 1rem 2.25rem; background:#171324; margin-top:auto; color:#d9d7e3; font-size:.875rem; line-height:1.6; border-top:1px solid #61566d; }
.vision-replay { flex:none; font:500 .875rem/1.5 var(--font-sans); color:#fff9ee; border:1px solid #8e809c; border-radius:2rem; background:transparent; padding:.6rem .9rem; min-height:2.75rem; cursor:pointer; }
.vision-replay:hover { background:#302940; }
.vision-replay[hidden] { display:none; }
.vision-page main .vision-replay:focus-visible { outline-color:#a0ffe1; outline-offset:3px; }
.vision-boundary.is-playing .vision-route-arrival path { animation:vision-arrive 1.65s cubic-bezier(.2,.7,.2,1) both; }
.vision-boundary.is-playing .vision-route-arrival path:nth-child(2) { animation-delay:.12s; }
.vision-boundary.is-playing .vision-route-arrival path:nth-child(3) { animation-delay:.24s; }
.vision-boundary.is-playing .vision-gate-halo { animation:vision-boundary-light 2.1s ease-out both; }
@keyframes vision-arrive { from { stroke-dashoffset:100; } to { stroke-dashoffset:0; } }
@keyframes vision-boundary-light { 0% { opacity:.15; } 60% { opacity:.5; } 100% { opacity:.2; } }
.vision-hero-foot { display:flex; justify-content:space-between; align-items:center; gap:1.5rem; padding-block:1.25rem 2.25rem; }
.vision-hero-foot p { font-size:1.125rem; line-height:1.6; color:var(--vision-muted); margin:0; }
.vision-hero-foot strong { color:var(--vision-ink); font-weight:500; }
.vision-index { display:flex; flex-wrap:wrap; gap:.25rem 2rem; align-items:center; border-block:1px solid var(--vision-rule); padding-block:.6rem; }
.vision-index a { display:inline-flex; align-items:center; min-height:2.75rem; color:var(--vision-muted); font-size:.9375rem; line-height:1.5; }
.vision-index a:hover { color:var(--vision-accent); }
.vision-section { padding-block:6.5rem; scroll-margin-top:6rem; }
.vision-section-heading { margin-bottom:2.75rem; }
.vision-page h2 { font-size:clamp(2.25rem,4.25vw,4rem); line-height:1.1; letter-spacing:-.055em; margin:.75rem 0 1.25rem; text-wrap:balance; }
.vision-page h3 { font-size:1.5rem; line-height:1.25; letter-spacing:-.025em; }
.vision-section-heading > p:not(.eyebrow) { color:var(--vision-muted); max-width:49ch; font-size:1.125rem; line-height:1.75; }
.vision-editorial { display:grid; grid-template-columns:1.05fr 1fr; gap:clamp(2rem,5vw,5rem); align-items:start; }
.vision-editorial .vision-section-heading { margin:0; }
.vision-prose { max-width:65ch; font-size:1.0625rem; line-height:1.8; color:var(--vision-muted); }
.vision-prose p { margin:0 0 1.25rem; }
.vision-prose strong { color:var(--vision-ink); }
.vision-prose .technical-link { margin-right:1.25rem; }
.vision-distinction { display:grid; grid-template-columns:.9fr 1.25fr; gap:4rem; margin:3.5rem 0 0; padding-block:2rem; border-block:1px solid var(--vision-rule); }
.vision-distinction > div + div { border-left:2px solid var(--vision-accent); padding-left:3rem; }
.vision-distinction p { font-size:clamp(1.375rem,2.2vw,2rem); line-height:1.35; letter-spacing:-.03em; margin:.75rem 0 0; color:var(--vision-ink); }
.vision-source-note { max-width:90ch; font-size:.875rem; line-height:1.8; color:var(--vision-muted); margin:1.5rem 0 0; }
.vision-source-note a,.vision-now-grid a { color:inherit; text-decoration:underline; }
.vision-now { background:var(--vision-panel); }
.vision-now > .shell { display:grid; grid-template-columns:1fr 1.1fr; gap:0 5rem; }
.vision-now .vision-section-heading { grid-row:1/3; margin:0; }
.vision-now-grid { display:grid; gap:0; }
.vision-now-grid article { display:grid; grid-template-columns:2rem 1fr; column-gap:1rem; padding:1.5rem 0; border-top:1px solid var(--vision-rule); min-width:0; }
.vision-now-grid .vision-number { grid-row:1/4; margin:0; padding-top:.1rem; }
.vision-number { display:block; color:var(--vision-accent); font:500 .875rem/1.6 var(--font-mono); margin-bottom:1.125rem; }
.vision-now-grid h3 { margin:0 0 .75rem; }
.vision-now-grid p,.vision-growth p,.vision-horizons p:not(.eyebrow) { color:var(--vision-muted); font-size:1rem; line-height:1.75; margin:0 0 .75rem; }
.vision-now-grid a { display:inline-flex; align-items:center; min-height:2.75rem; font-size:.875rem; line-height:1.6; }
.vision-inference { margin:1.5rem 0 0; color:var(--vision-muted); font-size:1rem; line-height:1.75; }
.vision-inference strong { color:var(--vision-ink); }
.vision-wedge-grid,.vision-proof-grid { display:grid; grid-template-columns:1.1fr 1fr; gap:clamp(2rem,5vw,5rem); align-items:start; }
.vision-wedge-grid .vision-prose { padding-top:.5rem; }
.vision-obligation { padding:2.25rem; background:var(--vision-panel); border-left:3px solid var(--vision-accent); }
.vision-obligation h3 { font-size:2rem; font-weight:500; margin:.75rem 0 1.75rem; }
.vision-obligation dl { margin:0 0 1.5rem; }
.vision-obligation dl > div { display:flex; flex-wrap:wrap; gap:.35rem 1rem; justify-content:space-between; padding-block:.85rem; border-bottom:1px solid var(--vision-rule); }
.vision-obligation dt { color:var(--vision-muted); font-size:.9375rem; line-height:1.6; }
.vision-obligation dd { margin:0; font-weight:500; font-size:1rem; line-height:1.6; }
.vision-obligation dl > .vision-obligation-amount { display:block; padding-top:0; padding-bottom:1.5rem; }
.vision-obligation-amount dd { font-size:clamp(2.75rem,5vw,4.5rem); line-height:1.2; letter-spacing:-.06em; color:var(--vision-accent); margin-top:.5rem; }
.vision-obligation p { font-size:1rem; line-height:1.7; }
.vision-obligation small { color:var(--vision-muted); font-size:.875rem; line-height:1.6; }
.vision-scale { border-block:1px solid var(--vision-rule); }
.vision-growth { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:3rem; list-style:none; padding:0; margin:3rem 0 0; }
.vision-growth li { padding-top:1.5rem; border-top:2px solid var(--vision-accent); }
.vision-growth li:nth-child(2) { margin-top:3rem; }
.vision-growth li:nth-child(3) { margin-top:6rem; }
.vision-growth h3 { font-size:1.75rem; margin:.75rem 0 1rem; }
.vision-scale-case { display:grid; grid-template-columns:.7fr 1fr; gap:0 4rem; border-top:1px solid var(--vision-rule); margin-top:3rem; padding-top:2.5rem; }
.vision-scale-case h3 { grid-row:1/3; margin:0; font-size:1.75rem; max-width:16ch; }
.vision-scale-case > p { font-size:1.0625rem; line-height:1.8; color:var(--vision-muted); margin:0 0 1rem; }
.vision-depth { margin:0 0 2rem; counter-reset:vision-depth; }
.vision-depth > div { display:grid; grid-template-columns:1fr 1.3fr; gap:4rem; padding-block:1.75rem; border-top:1px solid var(--vision-rule); }
.vision-depth dt { font-size:1.25rem; font-weight:500; line-height:1.5; letter-spacing:-.025em; }
.vision-depth dd { margin:0; color:var(--vision-muted); font-size:1.0625rem; line-height:1.75; }
.vision-horizon { padding-top:0; background:var(--vision-panel); }
.vision-horizon-scene { position:relative; isolation:isolate; padding-block:5.5rem; overflow:hidden; background:#1c142a; }
.vision-horizon-scene .vision-art img { object-position:center 42%; }
.vision-horizon-scene::before { content:""; position:absolute; inset:0; z-index:-1; background:linear-gradient(90deg,rgba(18,11,27,.92),rgba(18,11,27,.65) 60%,rgba(18,11,27,.18)); }
.vision-horizon-scene .vision-section-heading { margin-bottom:0; }
.vision-page .vision-horizon-scene .eyebrow { color:#f1e6dd; }
.vision-page .vision-horizon-scene h2 { color:#fff9ee; max-width:23ch; }
.vision-page .vision-horizon-scene h2 > span { color:#a0ffe1; }
.vision-horizon-body { padding-top:3rem; }
.vision-figure-principle { font-size:1.375rem; line-height:1.55; letter-spacing:-.025em; margin:0 0 1.5rem; }
.vision-horizons { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:3rem; margin-top:2.5rem; }
.vision-horizons article { border-top:1px solid var(--vision-rule); padding-top:1.5rem; }
.vision-horizons h3 { margin:.75rem 0 1rem; }
.vision-horizons article > span { display:block; font-size:.875rem; color:var(--vision-accent); line-height:1.6; margin-top:1rem; }
.vision-proof-grid > div > h3 { margin:0 0 1.25rem; }
.vision-milestones { list-style:none; padding:0; margin:0; }
.vision-milestones li { display:grid; grid-template-columns:2rem 1fr; gap:1rem; padding-bottom:1.5rem; margin-bottom:1.5rem; border-bottom:1px solid var(--vision-rule); }
.vision-milestones li > span { font:500 .875rem/1.7 var(--font-mono); color:var(--vision-accent); }
.vision-milestones h3 { font-size:1.25rem; margin:0 0 .5rem; }
.vision-milestones p { font-size:1rem; line-height:1.75; color:var(--vision-muted); margin:0; }
.vision-close { padding-block:6rem; text-align:center; border-top:1px solid var(--vision-rule); }
.vision-close h2 { font-size:clamp(3rem,7vw,6rem); line-height:1.05; }
.vision-close > .shell > p:not(.eyebrow) { font-size:1.125rem; line-height:1.75; color:var(--vision-muted); }
.vision-close .cta-row { justify-content:center; }
@media (max-width:70rem) {
 .vision-page main .shell { width:calc(100% - 5rem); }
 .vision-page .vision-hero { gap:2rem; }
 .vision-boundary { min-height:33rem; }
 .vision-art-heading { padding:1.75rem 1.5rem 0; }
 .vision-art-signature { padding-inline:1.5rem; }
 .vision-boundary figcaption { padding-left:1.5rem; }
 .vision-now > .shell { gap:0 3rem; }
 .vision-page h1 { font-size:clamp(3rem,5.2vw,4rem); }
}
@media (max-width:59.99rem) {
 .vision-page main .shell { width:calc(100% - 3rem); }
 .vision-page .vision-hero { grid-template-columns:1fr; gap:2.5rem; padding-block:3.5rem 2rem; }
 .vision-page h1 { max-width:18ch; font-size:clamp(3rem,7.5vw,5rem); }
 .vision-boundary { min-height:0; max-width:42rem; width:100%; }
 .vision-art-heading { padding:2rem 2rem 0; }
 .vision-art-heading > p:last-child { font-size:2.5rem; }
 .vision-boundary-diagram { max-height:22rem; }
 .vision-art-signature { padding:0 2rem 2rem; }
 .vision-boundary figcaption { padding-left:2rem; }
 .vision-section { padding-block:4.5rem; }
 .vision-editorial,.vision-now > .shell { grid-template-columns:1fr; gap:2rem; }
 .vision-now .vision-section-heading { grid-row:auto; }
 .vision-growth,.vision-horizons { gap:1.5rem; }
 .vision-scale-case,.vision-depth > div { gap:0 2rem; }
 .vision-distinction { gap:2rem; }
 .vision-distinction > div + div { padding-left:2rem; }
 .vision-horizon { padding-top:0; }
}
@media (max-width:47.99rem) {
 .vision-page main .shell { width:calc(100% - 2.5rem); }
 .vision-page .vision-hero { padding-top:3rem; }
 .vision-page .vision-kicker { display:block; }
 .vision-kicker > span { display:block; margin-top:.5rem; }
 .vision-page h1 { font-size:clamp(2.75rem,9.6vw,4.25rem); margin-bottom:1.5rem; }
 .vision-page .vision-lead { font-size:1.125rem; }
 .vision-art-heading { padding:1.5rem 1.5rem 0; }
 .vision-art-heading > p:last-child { font-size:2rem; }
 .vision-art-signature { padding:0 1.5rem 1.5rem; }
 .vision-art-signature > p:first-child { font-size:1.5rem; }
 .vision-boundary figcaption { padding:1rem 1.25rem 1rem 1.5rem; }
 .vision-hero-foot { align-items:flex-start; flex-direction:column; gap:.75rem; }
 .vision-index { gap:.25rem 1.25rem; }
 .vision-section,.vision-close { padding-block:3.5rem; }
 .vision-section-heading { margin-bottom:2rem; }
 .vision-page h2 { font-size:clamp(2.125rem,7.5vw,3.25rem); }
 .vision-distinction,.vision-wedge-grid,.vision-proof-grid,.vision-growth,.vision-scale-case,.vision-depth > div,.vision-horizons { grid-template-columns:1fr; }
 .vision-distinction { margin-top:2rem; gap:1.75rem; }
 .vision-distinction > div + div { border-left:0; border-top:2px solid var(--vision-accent); padding:1.5rem 0 0; }
 .vision-obligation { padding:1.5rem; }
 .vision-growth { gap:2rem; margin-top:2rem; }
 .vision-growth li:nth-child(n) { margin-top:0; }
 .vision-scale-case { gap:1.5rem; padding-top:2rem; }
 .vision-scale-case h3 { grid-row:auto; max-width:24ch; }
 .vision-depth > div { gap:.75rem; }
 .vision-horizon { padding-top:0; }
 .vision-horizon-scene { padding-block:3.5rem; }
 .vision-horizon-scene::before { background:rgba(18,11,27,.73); }
 .vision-horizon-body { padding-top:2.5rem; }
 .vision-horizons { gap:1.75rem; }
 .vision-close h2 { font-size:clamp(2.75rem,10vw,4.5rem); }
}
@media (prefers-reduced-motion:reduce) { .vision-boundary.is-playing .vision-route-arrival path,.vision-boundary.is-playing .vision-gate-halo { animation:none; } .vision-replay { display:none; } }
@media (forced-colors:active) {
 .vision-page main,.vision-page .vision-now,.vision-page .vision-horizon,.vision-page .vision-obligation,.vision-page .vision-boundary,.vision-page .vision-boundary figcaption,.vision-page .vision-horizon-scene { color:CanvasText; background:Canvas; border-color:CanvasText; }
 .vision-page main * { color:CanvasText !important; border-color:CanvasText !important; }
 .vision-art,.vision-boundary::before,.vision-horizon-scene::before { display:none; }
 .vision-boundary-diagram path { stroke:CanvasText; animation:none !important; }
 .vision-boundary-diagram circle { fill:CanvasText; }
 .vision-replay { display:none; }
}
@media print {
 .vision-page main * { color:#111 !important; border-color:#aaa !important; }
 .vision-page main,.vision-page .vision-now,.vision-page .vision-horizon,.vision-page .vision-obligation,.vision-page .vision-boundary,.vision-page .vision-boundary figcaption,.vision-page .vision-horizon-scene { background:#fff !important; }
 .vision-page main .shell { width:100%; }
 .vision-art,.vision-boundary::before,.vision-horizon-scene::before,.vision-replay,.vision-index { display:none; }
 .vision-page .vision-hero,.vision-editorial,.vision-now > .shell,.vision-growth,.vision-horizons,.vision-wedge-grid,.vision-proof-grid,.vision-scale-case { display:block; }
 .vision-section,.vision-close,.vision-page .vision-hero,.vision-horizon-scene { padding-block:1.5rem; }
 .vision-page h1 { font-size:2.5rem; }
 .vision-page h2 { font-size:2rem; }
 .vision-boundary { min-height:0; max-width:30rem; margin-top:1rem; break-inside:avoid; }
 .vision-boundary-diagram { max-height:10rem; }
 .vision-boundary-diagram path { stroke:#333; animation:none !important; }
 .vision-boundary-diagram circle { fill:#333; }
 .vision-growth li:nth-child(n) { margin-top:1rem; }
 .vision-obligation,.vision-depth > div,.vision-milestones li { break-inside:avoid; }
 .vision-hero-foot { padding-bottom:1rem; }
}
