/* Screen-sized chapters with gentle, native scroll snapping. */
html{scroll-snap-type:y proximity;scroll-padding-top:0}
main>section{position:relative;scroll-snap-align:start;scroll-margin-top:0;isolation:isolate}
.hero{min-height:calc(100svh - 96px);display:flex;flex-direction:column;justify-content:center;padding-top:65px}
.hero-foot{margin-top:auto;padding-top:45px}
.hero{scroll-margin-top:96px}
.case-eapp,.case-pair{scroll-snap-align:start;scroll-margin-top:45px}
.section,.about,.careers,.giving{min-height:100svh;padding-top:110px;padding-bottom:110px}
.work{padding-bottom:130px}.work .section-heading{margin-bottom:65px}
.case-eapp{margin-bottom:45px}.case-pair{gap:32px}
.expertise{display:flex;align-items:center}.expertise>.wrap{position:relative}.expertise .section-heading{margin-bottom:65px}.service{padding-block:38px}
.about,.careers,.giving{align-content:center;align-items:center}
.contact{min-height:90svh;display:flex;flex-direction:column;justify-content:center;margin-top:40px;margin-bottom:40px;padding-block:100px}
.contact-bottom{margin-top:65px}
.chapter-content{transition:opacity .8s ease,transform .9s cubic-bezier(.2,.7,.2,1)}
.motion-ready .chapter-content.is-waiting{opacity:0;transform:translateY(48px)}
.motion-ready .chapter-content.is-visible{opacity:1;transform:translateY(0)}
.ambient-art{position:absolute;z-index:-1;pointer-events:none;overflow:hidden;opacity:.14;color:var(--lime)}
.growth-art{right:0;bottom:8%;width:64%;height:48%}.growth-art .chart-line{stroke-dasharray:1200;stroke-dashoffset:1200}.is-inview .chart-line{animation:draw-growth 3.5s ease forwards}.growth-art .chart-area{opacity:0}.is-inview .chart-area{animation:fade-area 2s 1.5s ease forwards}
.orbit-art{width:48%;height:70%;right:-2%;top:15%;opacity:.09}.orbit-art .orbit-ring{transform-origin:300px 300px}.is-inview .orbit-ring{animation:orbit 40s linear infinite}
.funnel-art{width:50%;height:65%;right:0;top:20%;opacity:.09}.funnel-art .flow-dot{offset-path:path('M 40 100 C 200 100 160 270 300 270 S 420 440 560 440');offset-distance:0%;}.is-inview .flow-dot{animation:flow 8s linear infinite}.funnel-art .flow-dot:nth-of-type(2){animation-delay:-2.7s}.funnel-art .flow-dot:nth-of-type(3){animation-delay:-5.4s}
@keyframes draw-growth{to{stroke-dashoffset:0}}@keyframes fade-area{to{opacity:.3}}@keyframes orbit{to{transform:rotate(360deg)}}@keyframes flow{to{offset-distance:100%}}
@media(min-width:1001px){.hero{padding-right:15%}.hero h1{font-size:clamp(64px,6.9vw,100px)}.hero .growth-art{right:-2%;width:60%;bottom:12%}}
@media(max-width:700px){html{scroll-snap-type:none}.hero{min-height:calc(100svh - 80px);padding-top:40px;padding-right:0}.hero-foot{padding-top:35px}.section,.about,.careers,.giving{min-height:0;padding-block:80px}.work .section-heading,.expertise .section-heading{margin-bottom:35px}.case-eapp{margin-bottom:24px}.case-pair{gap:24px}.service{padding-block:28px}.contact{min-height:70svh;padding-block:55px;margin-block:20px}.contact-bottom{margin-top:30px}.ambient-art{opacity:.08}.growth-art{width:95%;height:35%;bottom:20%}.orbit-art,.funnel-art{width:90%;right:0}.chapter-content{transition-duration:.6s}}
@media(prefers-reduced-motion:reduce){html{scroll-snap-type:none;scroll-behavior:auto}.chapter-content{transition:none}.motion-ready .chapter-content.is-waiting{opacity:1;transform:none}.ambient-art *{animation:none!important}.growth-art .chart-line{stroke-dashoffset:0}.growth-art .chart-area{opacity:.2}}

/* Dedicated illustration rows keep movement away from photographs and copy. */
.vector-art{display:block;width:100%;height:auto;color:var(--lime);pointer-events:none;overflow:visible}
.work .section-heading{margin-bottom:32px}
.growth-ribbon{max-height:180px;margin:0 0 48px}
.expertise .section-heading{margin-bottom:25px}
.journey-ribbon{max-height:130px;margin-bottom:38px}
.team-network{max-width:430px;margin-top:38px}
.vector-grid{stroke:currentColor;stroke-width:1;opacity:.13;stroke-dasharray:3 7}
.vector-track{stroke:currentColor;stroke-width:1.5;opacity:.25}
.vector-draw{stroke:currentColor;stroke-width:2.5;stroke-linecap:round;stroke-dasharray:1;animation:vector-draw 9s ease-in-out infinite}
.vector-flow{stroke:currentColor;stroke-width:3;stroke-linecap:round;stroke-dasharray:9 150;animation:vector-travel 12s linear infinite}
.vector-stations{stroke:currentColor;stroke-width:1.4;fill:var(--bg)}
.vector-nodes{fill:currentColor}
.vector-symbol{stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.vector-pulse{stroke:currentColor;stroke-width:1;transform-box:fill-box;transform-origin:center;animation:vector-pulse 4s ease-out infinite}
.vector-art *{animation-play-state:paused}
.vector-art.is-inview *{animation-play-state:running}
@keyframes vector-draw{0%{stroke-dashoffset:1;opacity:.3}55%,90%{stroke-dashoffset:0;opacity:1}100%{stroke-dashoffset:0;opacity:.3}}
@keyframes vector-travel{to{stroke-dashoffset:-636}}
@keyframes vector-pulse{0%{transform:scale(.8);opacity:.5}85%,100%{transform:scale(1.5);opacity:0}}
@media(max-width:700px){.growth-ribbon{margin-bottom:30px}.journey-ribbon{margin-bottom:24px}.team-network{margin-top:25px}.vector-draw,.vector-flow{stroke-width:3}.vector-grid{opacity:.18}}
@media(prefers-reduced-motion:reduce){.vector-art *{animation:none!important}.vector-draw{stroke-dashoffset:0}.vector-flow{stroke-dasharray:none;opacity:.35}.vector-pulse{opacity:.25;transform:none}}
