/* One spatial field for four complementary offers. No card shells or scroll runways. */
.xp-solutions{position:relative;isolation:isolate;background:linear-gradient(180deg,#f8f9f7,#ebecea 48%,#dfe2de);scroll-margin-top:78px;padding:90px 0 100px;overflow:clip}
.xp-solutions-heading,.xp-reading{position:relative;max-width:1600px;margin:0 auto;padding:0 var(--gutter)}
.xp-solutions-heading{margin-bottom:62px;z-index:2}
.xp-solutions h2{font-size:clamp(46px,4.4vw,68px);line-height:1.06;letter-spacing:-.04em;color:#181a19}
.xp-solutions-heading .passage-line{width:72px;height:4px;margin-top:26px;background:var(--red)}
.xp-reading{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);column-gap:26%;row-gap:78px;align-items:start;z-index:2}
.xp-offer{position:relative;padding:0;margin:0;width:100%;scroll-margin-top:118px}
.xp-offer h3{margin:0;max-width:600px;font-size:clamp(29px,2.55vw,39px);font-weight:500;line-height:1.12;letter-spacing:-.035em;color:#181a19;text-wrap:balance}
.xp-offer p,.xp-combination p{font-size:22px;line-height:1.5;color:#353935;margin:20px 0 0;max-width:650px}
.xp-offer p+p{margin-top:16px}
.xp-offer p strong{font-weight:600;color:#181a19}
.xp-offer:nth-child(2){padding-top:105px}
.xp-offer:nth-child(4){padding-top:64px}
.xp-combination{grid-column:1/-1;max-width:860px;margin:10px auto 0;text-align:center}
.xp-combination p{max-width:none;font-size:24px;line-height:1.5;font-weight:500;color:#181a19}
.xp-scene{position:absolute;top:200px;bottom:190px;left:calc(50% - min(10vw,145px));width:min(20vw,290px);z-index:1;pointer-events:none;perspective:1000px;overflow:visible}
.xp-world{position:absolute;inset:16% 8% 20%;will-change:transform;transform-origin:center}
.xp-world img{width:100%;height:100%;max-width:none;object-fit:cover;object-position:80% center;filter:grayscale(1) contrast(.9);opacity:.75;clip-path:polygon(0 13%,100% 0,100% 85%,0 100%)}
.xp-frame{position:absolute;inset:5% -32% 17%;border:12px solid var(--red);transform-style:preserve-3d;transform:rotateY(-24deg) rotateZ(-11deg);clip-path:polygon(0 0,100% 0,100% 100%,30% 100%,30% 96%,96% 96%,96% 4%,4% 4%,4% 64%,0 64%);will-change:transform;z-index:1}
.xp-frame-back{inset:12% -42% 11%;border-color:#a5aea4;transform:rotateY(-24deg) rotateZ(-11deg) translate3d(22px,-28px,-24px);opacity:.7}
.xp-plane{display:none}
/* A graphite chapter: one reading axis, with the step in view mirrored at architectural scale. */
.xp-process{position:relative;isolation:isolate;display:grid;grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr);column-gap:8%;color:#fff;scroll-margin-top:78px;padding:96px max(var(--gutter),calc((100% - 1600px)/2 + var(--gutter))) 110px;background:#121313}
.xp-process-scene{position:absolute;inset:0;z-index:-1;overflow:clip;pointer-events:none}
.process-material{display:block;position:sticky;top:0;width:100%;height:100svh;object-fit:cover;object-position:74% 50%}
.xp-process-scene::after{content:'';position:absolute;inset:0;background:linear-gradient(90deg,rgba(9,11,11,.87),rgba(9,11,11,.70) 42%,rgba(9,11,11,.60)),linear-gradient(180deg,rgba(9,11,11,.2),transparent 16%,transparent 84%,rgba(9,11,11,.45))}
.xp-process-header{grid-column:1;grid-row:1;position:sticky;top:130px;align-self:start;max-width:530px;padding-right:20px}
.xp-process-header h2{font-size:clamp(38px,3.4vw,52px);line-height:1.08;letter-spacing:-.04em;max-width:530px;text-wrap:balance}
.xp-process .passage-line{width:72px;height:4px;margin-top:28px;background:var(--red)}
.xp-steps{grid-column:2;grid-row:1;list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:74px}
.xp-step>div{display:contents}
.xp-step{position:relative;display:grid;width:75%;grid-template-columns:32px minmax(0,1fr);column-gap:14px;row-gap:12px;align-items:baseline;padding:0;scroll-margin-top:118px;transform-origin:left center;will-change:transform}
.xp-step-index{font-size:clamp(26px,2vw,29px);font-weight:500;font-variant-numeric:tabular-nums;color:var(--red);line-height:1.15;grid-column:1;grid-row:1}
.xp-step h3{font-size:clamp(26px,2vw,29px);font-weight:500;line-height:1.15;letter-spacing:-.03em;color:#fff;margin:0;text-wrap:balance;grid-column:2;grid-row:1}
.xp-step p{font-size:19px;line-height:1.5;color:#dce0db;margin:0;max-width:660px;grid-column:2;grid-row:2}
@media(min-width:701px) and (max-width:1100px){
 .xp-reading{column-gap:22%;row-gap:64px}.xp-scene{left:41.5%;width:17%}.xp-frame{border-width:8px}.xp-offer p,.xp-combination p{font-size:21px}.xp-process{column-gap:5%;grid-template-columns:.85fr 1.15fr}.xp-process-header h2{font-size:42px}
}
@media(max-width:700px){
 .xp-solutions{padding:44px 0 58px}.xp-solutions-heading{margin-bottom:230px;padding-right:var(--gutter)}.xp-solutions h2{font-size:42px}
 .xp-scene{top:130px;bottom:auto;left:34%;width:43%;height:210px}.xp-world{inset:2% -15% 2%}.xp-frame{inset:-3% -22% 0;border-width:7px}.xp-frame-back{inset:6% -28% -6%}
 .xp-reading{display:flex;flex-direction:column;gap:42px;padding:0 var(--gutter)}.xp-offer:nth-child(2),.xp-offer:nth-child(4){padding-top:0}
 .xp-offer h3{font-size:29px;max-width:500px}.xp-offer p,.xp-combination p{font-size:19px;line-height:1.5;margin-top:14px}.xp-offer p+p{margin-top:14px}.xp-combination{margin:0;text-align:left;padding-top:4px}.xp-combination p{font-size:20px;font-weight:500}
 .xp-offer h3::before{content:'';display:block;width:26px;height:3px;background:var(--red);margin-bottom:13px}
 .xp-process{display:block;padding:58px var(--gutter) 62px}.xp-process-header{position:relative;top:auto;margin-bottom:48px;padding-right:0}.xp-process-header h2{font-size:38px;max-width:550px}.xp-steps{gap:62px}.xp-step{width:85%;grid-template-columns:25px minmax(0,1fr);column-gap:12px;row-gap:13px}.xp-step h3,.xp-step-index{font-size:24px}.xp-step p{font-size:18px;grid-column:1/-1}
}
@media(max-width:360px){.xp-offer h3{font-size:26px}.xp-step h3,.xp-step-index{font-size:23px}.xp-process-header h2{font-size:35px}}
@media(prefers-reduced-motion:reduce){.xp-world{transform:none!important;will-change:auto!important}.xp-frame{will-change:auto!important}.process-material{position:absolute;inset:0;height:100%}}
.motion-off .xp-world{transform:none!important;will-change:auto!important}
.motion-off .process-material{position:absolute;inset:0;height:100%}
