@font-face{font-family:Schibsted;src:url('../fonts/schibsted-grotesk-latin-wght-normal.woff2') format('woff2');font-weight:400 900;font-display:swap}
:root{--blue:#2864ea;--ink:#101d32;--night:#0b1119;--white:#f8fafc;--muted:#4e5e74;--line:#cbd4e1;--gutter:clamp(24px,6vw,96px);--space-xs:8px;--space-sm:16px;--space-md:24px;--space-lg:48px;--space-xl:96px;--header:80px;--z-header:10;--z-skip:20;--display:clamp(3.5rem,6.6vw,6rem);--heading:clamp(2.75rem,5.2vw,5rem);--lead:1.5rem;--body:1.125rem;--ease:cubic-bezier(.16,1,.3,1)}
*{box-sizing:border-box}html{scroll-padding-top:var(--header);-webkit-text-size-adjust:100%}body{margin:0;background:var(--white);color:var(--ink);font:400 var(--body)/1.6 Schibsted,Arial,sans-serif;-webkit-font-smoothing:antialiased}h1,h2,h3,p,figure{margin:0}h1,h2,h3{font-weight:550;line-height:1.06;letter-spacing:-.04em;text-wrap:balance}h1{font-size:var(--display)}h2{font-size:var(--heading)}p{text-wrap:pretty}em{font-style:normal;color:var(--blue)}a{color:inherit;text-decoration:none}button{font:inherit;cursor:pointer}a,button,summary{touch-action:manipulation;-webkit-tap-highlight-color:transparent}a:focus-visible,button:focus-visible,summary:focus-visible{outline:3px solid #709cff;outline-offset:6px}a:hover{text-decoration:underline;text-underline-offset:5px}svg{display:block;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}a>svg{width:24px;height:24px;flex-shrink:0}img{display:block;max-width:100%;height:auto}button:active,.contact-button:active{transform:scale(.98)}.wrap{width:calc(100% - var(--gutter)*2);max-width:1280px;margin-inline:auto}.section{padding-block:clamp(80px,10vw,160px)}.lead{font-size:var(--lead);line-height:1.5;max-width:50ch}.skip{position:fixed;top:-100px;left:24px;z-index:var(--z-skip);background:white;color:var(--ink);padding:16px}.skip:focus{top:16px}
.header{position:sticky;top:0;z-index:var(--z-header);background:#f8fafcf2;backdrop-filter:blur(18px);border-bottom:1px solid #dbe1e9}.header-inner{height:var(--header);padding-inline:var(--gutter);max-width:1600px;margin:auto;display:flex;align-items:center;justify-content:space-between;gap:32px}.brand{display:inline-flex;gap:10px;align-items:center;font-size:1.7rem;font-weight:650;letter-spacing:-.04em}.brand img{width:29px;height:32px}.header nav{display:flex;gap:32px;margin-left:auto;font-size:1rem}.header nav a{padding:12px 0}.header-cta{font-size:1rem;display:flex;align-items:center;gap:24px;min-height:48px;padding:8px 20px;border:1px solid #8290a2;border-radius:28px}.header-cta:hover{background:#e9eef6;text-decoration:none}
.scene-stage{position:relative}.hero{background:var(--night);color:white}.hero-stage{min-height:690px;height:calc(100svh - var(--header));isolation:isolate;overflow:hidden}.hero-photo{position:absolute;inset:0;z-index:-2;overflow:hidden}.hero-photo img{height:100%;width:100%;object-fit:cover;object-position:64% 47%}.hero-shade{position:absolute;inset:0;z-index:-1;background:linear-gradient(90deg,#08101ae0 0%,#08101aa8 31%,#08101a13 58%,transparent 80%)}.hero-copy{height:100%;display:flex;flex-direction:column;justify-content:center;align-items:flex-start;padding:64px var(--gutter);max-width:58%;gap:32px}.hero-copy h1{line-height:1.04}.hero-copy p{font-size:var(--lead);line-height:1.5;color:#f1f4f8}.hero-discover{display:inline-flex;align-items:center;gap:32px;font-size:var(--body);min-height:52px;margin-top:16px}.hero-discover span{font-size:1.75rem}
.flow{background:var(--night);color:var(--white)}.flow-stage{padding-block:64px;min-height:800px;display:flex;align-items:center}.scene-inner{width:calc(100% - var(--gutter)*2);max-width:1280px;margin:auto}.flow-heading{display:grid;grid-template-columns:1fr 1fr;gap:48px;align-items:end}.flow-heading .flow-title em{color:#91b3ff}.flow-copy{font-size:clamp(1.375rem,2vw,1.875rem);line-height:1.45;padding-bottom:8px}.flow-after{color:#c1d4fc;margin-top:16px}.flow-visual{height:350px;position:relative;margin:32px 0 0}.path-mobile{display:none}.flow-lines{position:absolute;inset:0;width:100%;height:100%;overflow:visible}.flow-ghost{stroke:#455368;stroke-dasharray:4 10;stroke-width:1}.flow-line{stroke:#88b0ff;stroke-width:2;stroke-dasharray:1;stroke-dashoffset:0}.flow-node{position:absolute;left:12.5%;top:50%;transform:translate(-50%,-50%);width:23%;display:flex;flex-direction:column;align-items:center;gap:16px;text-align:center}.node-1{left:37.5%}.node-2{left:62.5%}.node-3{left:87.5%}.node-face{width:112px;height:112px;display:grid;place-items:center;border:1px solid #7187a5;border-radius:26px;background:#142238;box-shadow:0 16px 32px #0003}.node-face svg{width:44px;height:44px;color:#d1dfff}.flow-node>span{font-size:1.25rem;line-height:1.3}.flow-break{display:none;position:absolute;font-size:1rem;color:#d1bfb5;transform:translateX(-50%)}
.construction{background:#eef3fb;overflow:clip}.construction-stage{min-height:820px;display:flex;align-items:center;padding-block:80px}.construction-grid{width:calc(100% - var(--gutter)*2);max-width:1280px;margin:auto;display:grid;grid-template-columns:1fr 1fr;align-items:center;column-gap:48px;position:relative}.construction-copy{position:relative;z-index:2}.construction-copy h2{font-size:clamp(2.75rem,4.7vw,4.5rem)}.build-copy{margin-top:32px;font-size:var(--lead);line-height:1.5;max-width:27ch}.build-copy p+p{margin-top:16px}.system-assembly{height:520px;position:relative;perspective:1100px;isolation:isolate}.assembly-orbit{position:absolute;inset:5% -8%;border:1px solid #bdcde8;border-radius:50%;transform:rotate(-25deg)}.assembly-orbit::after{content:'';position:absolute;inset:12%;border:1px solid #d2ddee;border-radius:50%}.system-layer{position:absolute;left:7%;width:90%;height:190px;padding:24px 32px;display:flex;flex-direction:column;justify-content:flex-start;border:1px solid #b2c4df;border-radius:24px;box-shadow:0 28px 42px #142d5d16;background:white;transform:rotate(-8deg);transform-origin:center;backface-visibility:hidden}.system-layer strong{font-size:2rem;line-height:1.3;font-weight:550;letter-spacing:-.03em}.system-layer>span:last-child{font-size:1rem;margin-top:8px}.layer-icon{position:absolute;right:24px;top:16px;font-size:2rem;line-height:1}.tools-layer{top:24px;left:0;background:#e0eafa;z-index:1;transform:rotate(-10deg)}.integration-layer{top:168px;left:5%;color:white;background:var(--blue);border-color:#2864ea;z-index:2;transform:rotate(-5deg)}.people-layer{top:320px;left:10%;z-index:3;transform:rotate(1deg)}.people-layer .layer-icon{color:var(--blue)}.assembly-note{grid-column:2;font-size:1rem;color:var(--muted);margin-top:24px;text-align:center}
details{border-bottom:1px solid var(--line)}summary{cursor:pointer;list-style:none;display:flex;align-items:center;justify-content:space-between;gap:24px;min-height:88px;font-size:1.375rem;line-height:1.4}summary::-webkit-details-marker{display:none}summary>span:last-child{flex-shrink:0}summary span[aria-hidden]{font-size:1.75rem;font-weight:400;transition:transform .25s var(--ease)}details[open] summary span[aria-hidden]{transform:rotate(45deg)}details>p{max-width:65ch;margin-bottom:24px;line-height:1.65;color:var(--muted)}.expertise{background:#eaf0f9}.expertise-heading{margin-bottom:64px}.expertise-heading h2{font-size:clamp(2.5rem,4.5vw,4rem)}.expertise-heading .lead{margin-top:24px;color:var(--muted)}.expertise-list details:first-child{border-top:1px solid #b7c5d9}.expertise-list details{border-color:#b7c5d9}.expertise-list summary{display:grid;grid-template-columns:1.2fr 1fr 32px;gap:32px;padding:24px 0;font-size:clamp(1.375rem,2.3vw,2rem);min-height:112px}.expertise-sub{font-size:1.125rem;color:var(--muted)}.expertise-list details>p{padding-bottom:8px;max-width:68ch}
.proof{background:var(--night);color:white;display:grid;grid-template-columns:1.2fr 1fr}.proof-copy{padding:clamp(64px,8vw,128px) var(--gutter);display:flex;flex-direction:column;align-items:flex-start;justify-content:center;gap:32px}.proof-name{font-size:1.125rem;color:#b1c8ef}.proof h2{font-size:clamp(2.25rem,3.5vw,3.5rem);line-height:1.15}.proof-person{font-size:1.125rem;line-height:1.5}.proof-person span{color:#bdc8d9}.proof-result{font-size:1.25rem;line-height:1.65;color:#c8d4e8}.proof figure{min-height:750px;overflow:hidden}.proof img{width:100%;height:100%;object-fit:cover;object-position:center 42%}.text-link{display:inline-flex;align-items:center;gap:24px;min-height:48px;font-size:1.125rem}.ownership{text-align:center}.ownership h2{font-size:clamp(2.5rem,4.5vw,4rem)}.ownership .lead{margin:32px auto 48px}.ownership-details{max-width:760px;margin:auto;text-align:left;border-top:1px solid var(--line)}.ownership-details summary{font-size:1.25rem}.contact{background:var(--blue);color:white;text-align:center}.contact h2{font-size:clamp(3rem,6vw,5.5rem)}.contact em{color:white}.contact-button{display:inline-flex;align-items:center;gap:32px;border-radius:40px;padding:20px 32px;background:white;color:#1748af;font-size:1.25rem;min-height:64px;margin:48px 0 16px;transition:transform .2s var(--ease)}.contact-button:hover{text-decoration:none;background:#eaf0fe}.contact>.wrap>p{font-size:1rem}.contact-person{display:flex;flex-direction:column;gap:4px;margin-top:64px;font-size:1.125rem}.contact-person strong{font-size:1.5rem;font-weight:550}.contact-person a{margin-top:16px}.diagnostic{text-align:left;max-width:760px;margin:64px auto 0;border-top:1px solid #9cbbff;border-bottom:1px solid #9cbbff}.diagnostic summary{font-size:1.125rem}.diagnostic p{color:white}.footer{background:var(--night);color:#bdc9da;padding:40px 0}.footer>.wrap{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:24px}.footer a{display:inline-flex;align-items:center;gap:16px;font-size:1rem;min-height:44px}.footer span{width:100%;font-size:1rem;border-top:1px solid #38465a;padding-top:24px}.motion-toggle{background:transparent;color:inherit;font-size:1rem;padding:10px 16px;min-height:44px;border:1px solid #6a7b91;border-radius:24px}
/* Progressive enhancement: the default document is complete and readable. */
.motion .hero{height:155svh}.motion .flow{height:230svh}.motion .construction{height:260svh}.motion .scene-stage{position:sticky;top:var(--header);height:calc(100svh - var(--header));min-height:0}.motion .hero-photo,.motion .hero-shade{clip-path:inset(var(--hero-inset,24px) round var(--hero-radius,24px))}.motion .hero-photo img{transform:scale(var(--hero-scale,1.06));will-change:transform}.motion .hero-copy{transform:translateY(var(--hero-y,0px))}.motion .flow-stage{padding-block:32px}.motion .flow-copy{position:relative;min-height:116px}.motion .flow-copy p{position:absolute;bottom:8px;left:0;right:0;margin:0;opacity:var(--before-opacity,1);transform:translateY(var(--before-y,0px))}.motion .flow-copy .flow-after{opacity:var(--after-opacity,0);transform:translateY(var(--after-y,20px))}.motion .flow-visual{height:clamp(240px,35svh,350px)}.motion .flow-line{stroke-dashoffset:var(--line-offset,1)}.motion .flow-node{transform:translate(-50%,-50%) translateY(var(--node-y,0px)) rotate(var(--node-angle,0deg))}.motion .flow-break{display:block;opacity:var(--break-opacity,1)}.break-0{left:25%;top:77%}.break-1{left:50%;top:9%}.break-2{left:75%;top:77%}.motion .construction-stage{padding-block:32px}.motion .build-copy{position:relative;min-height:116px}.motion .build-copy p{position:absolute;inset:0;margin:0;opacity:var(--copy-opacity,1);transform:translateY(var(--copy-y,0px))}.motion .system-layer{transform:translate3d(var(--layer-x,0px),var(--layer-y,0px),0) rotate(var(--layer-angle,0deg));opacity:var(--layer-opacity,1);will-change:transform}.motion .assembly-orbit{transform:rotate(var(--orbit-angle,-25deg)) scale(var(--orbit-scale,.88))}
@media(min-width:1600px){.hero-copy{padding-left:max(var(--gutter),calc((100vw - 1280px)/2));max-width:62%}}
@media(max-width:1100px){:root{--gutter:40px;--display:clamp(3.25rem,7vw,5rem);--heading:clamp(2.75rem,6vw,4.5rem);--lead:1.25rem}.hero-copy{max-width:62%}.hero-photo img{object-position:60% 50%}.hero-shade{background:linear-gradient(90deg,#08101ae6,#08101a9c 40%,transparent 75%)}.construction-grid{column-gap:24px}.construction-copy h2{font-size:3.25rem}.system-layer{height:170px;padding:24px}.system-layer strong{font-size:1.75rem}.system-layer>span:last-child{font-size:1rem;max-width:24ch}.tools-layer{top:48px}.integration-layer{top:190px}.people-layer{top:332px}.system-assembly{height:520px}.layer-icon{right:16px}.proof{grid-template-columns:1fr 1fr}.proof-copy{padding-inline:40px}.proof figure{min-height:720px}.expertise-list summary{grid-template-columns:1.2fr 1fr 24px;gap:24px}}
@media(max-width:760px){:root{--header:72px;--gutter:24px;--display:clamp(2.9rem,8vw,3.75rem);--heading:clamp(2.5rem,7.6vw,3.5rem);--lead:1.25rem;--body:1.0625rem}.header-inner{gap:16px}.brand{font-size:1.45rem;gap:8px}.brand img{width:25px;height:28px}.header nav{display:none}.header-cta{padding:8px 14px;gap:12px;font-size:1rem}.header-cta svg{width:18px;height:18px}.hero-stage{height:calc(100svh - var(--header));min-height:680px}.hero-photo img{position:absolute;bottom:0;height:88%;object-position:78% 50%;mask-image:linear-gradient(transparent,#000 20%)}.hero-photo{background:#0b1119}.hero-shade{background:linear-gradient(180deg,#07101bbf 0%,#07101b40 38%,#07101b00 60%,#07101b8c 100%)}.hero-copy{max-width:100%;justify-content:flex-start;padding:48px 32px;gap:24px}.hero-copy p{font-size:1.125rem}.hero-discover{margin-top:auto;font-size:1.125rem;gap:24px}.path-wide{display:none}.path-mobile{display:block}.flow-stage{padding-block:64px;min-height:740px}.flow-heading{display:block}.flow-heading .flow-title br{display:none}.flow-copy{font-size:1.375rem;margin-top:24px;min-height:90px}.flow-visual{height:330px;margin-top:16px}.node-face{width:76px;height:76px;border-radius:20px}.node-face svg{width:32px;height:32px}.flow-node{width:44%;left:25%;top:24%;gap:12px}.node-1{left:75%;top:24%}.node-2{left:25%;top:74%}.node-3{left:75%;top:74%}.flow-node>span{font-size:1.0625rem}.break-0{left:50%;top:10%}.break-1{left:50%;top:46%}.break-2{left:50%;top:89%}.flow-break{font-size:1rem}.construction-stage{padding-block:64px;min-height:850px}.construction-grid{display:flex;flex-direction:column;gap:16px;align-items:stretch}.construction-copy h2{font-size:var(--heading)}.construction-copy h2 br{display:none}.build-copy{margin-top:24px;font-size:1.25rem;max-width:none}.system-assembly{height:405px;max-width:500px;width:100%;margin:auto}.system-layer{height:146px;width:85%;padding:20px 24px}.system-layer strong{font-size:1.65rem}.system-layer>span:last-child{font-size:1rem;max-width:none}.tools-layer{top:16px;left:0}.integration-layer{top:128px;left:5%}.people-layer{top:248px;left:10%}.layer-icon{font-size:1.75rem;right:16px;top:12px}.assembly-orbit{inset:4% 0}.assembly-note{font-size:1rem;margin:0;text-align:left}.expertise-heading{margin-bottom:40px}.expertise-heading h2 br{display:none}.expertise-list summary{grid-template-columns:1fr 24px;gap:12px;padding:24px 0;font-size:1.5rem}.expertise-sub{grid-row:2;grid-column:1;font-size:1.0625rem}.expand{grid-row:1 / 3;grid-column:2}.proof{display:flex;flex-direction:column}.proof-copy{padding:64px 24px;gap:24px}.proof h2{font-size:2.25rem}.proof h2 br{display:none}.proof figure{height:560px;min-height:0}.proof img{object-position:center 30%}.proof-result{font-size:1.125rem}.ownership{text-align:left}.ownership h2{font-size:2.6rem}.ownership h2 br{display:none}.ownership .lead{margin:24px 0 32px}.ownership .lead br{display:none}.ownership-details summary{font-size:1.125rem}.contact h2{font-size:clamp(2.75rem,8vw,3.75rem)}.contact-button{gap:24px;padding:18px 24px;font-size:1.125rem;margin-top:32px}.contact-person{margin-top:48px}.diagnostic{margin-top:48px}.footer>.wrap{align-items:flex-start;flex-direction:column;gap:16px}.motion .hero{height:135svh}.motion .flow{height:190svh}.motion .construction{height:225svh}.motion .hero-stage{min-height:0}.motion .hero-copy{padding:40px 32px}.motion .flow-stage{padding-block:24px}.motion .flow-copy{min-height:82px}.motion .flow-copy p{bottom:0}.motion .flow-visual{height:clamp(250px,38svh,330px)}.motion .build-copy{min-height:72px;margin-top:20px}.motion .construction-stage{padding-block:24px}.motion .system-assembly{height:clamp(330px,48svh,405px)}.motion .system-layer{height:136px}.motion .tools-layer{top:8px}.motion .integration-layer{top:110px}.motion .people-layer{top:220px}.motion .assembly-note{font-size:1rem}}
@media(max-width:380px){:root{--gutter:20px;--heading:2.35rem}.hero-copy,.motion .hero-copy{padding-inline:24px}.header-cta{padding-inline:12px;gap:8px}.brand{font-size:1.3rem}.hero-copy p{font-size:1.0625rem}.flow-copy{font-size:1.25rem}.system-layer{padding-inline:20px}.system-layer strong{font-size:1.5rem}.system-layer>span:last-child{font-size:.9375rem}.flow-node>span{font-size:1rem}.contact-button{font-size:1rem;padding-inline:20px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{animation:none!important;transition:none!important}.hero-photo img,.hero-copy{transform:none!important}}
@media(prefers-reduced-transparency:reduce){.header{background:var(--white);backdrop-filter:none}}
@media print{.header,.footer,.hero-discover{display:none}.scroll-scene{height:auto!important}.scene-stage{position:relative!important;top:auto!important;height:auto!important;min-height:0!important}.hero-stage{height:650px!important}.flow-copy p,.build-copy p{position:static!important;opacity:1!important;transform:none!important}.system-layer{opacity:1!important}.flow-break{display:none!important}details>p{display:block!important}.section{padding-block:48px}}
/* The opening approaches the work itself: hands, documents and computer. */
.hero-copy{gap:24px;padding-block:40px}.hero-primary{display:block;font-size:var(--display);line-height:1.04}.hero-secondary{display:block;font-size:clamp(1.375rem,2.5vw,2.25rem);line-height:1.3;font-weight:450;letter-spacing:-.025em}.hero-primary+.hero-secondary{margin-top:20px}.hero-secondary:last-child{color:#c3d5ff}.hero-copy p{font-size:1.25rem;line-height:1.55;max-width:37ch}.hero-discover{margin-top:0}.motion .hero{height:190svh}.motion .hero-photo img{transform-origin:0 0;transform:translate3d(var(--hero-camera-x,0px),var(--hero-camera-y,0px),0) scale(var(--hero-scale,1))}.motion .hero-shade{opacity:var(--hero-shade,1)}.motion .hero-copy{opacity:var(--hero-copy-opacity,1);transform:translateY(var(--hero-y,0px))}.motion .hero-copy.is-away{pointer-events:none}
/* EasyOpto: the person, then the concrete result of the mission. */
.proof{display:block}.proof-stage{display:grid;grid-template-columns:1.2fr 1fr;overflow:hidden}.proof-story{width:100%}.proof-quote,.proof-outcome{display:flex;flex-direction:column;gap:32px}.proof-outcome{margin-top:48px}.proof-outcome h3{font-size:clamp(2.25rem,3.5vw,3.5rem);line-height:1.12}.proof-outcome .proof-result{color:#c8d4e8}.proof .text-link{width:max-content;max-width:100%}.proof-copy{min-width:0}.motion .proof{height:180svh}.motion .proof-stage{grid-template-columns:1.2fr 1fr}.motion .proof-copy{padding-block:32px;gap:32px}.motion .proof figure{height:100%;min-height:0}.motion .proof img{transform:translateY(var(--proof-photo-y,0px)) scale(var(--proof-photo-scale,1.12));transform-origin:65% 42%;will-change:transform}.motion .proof-story{position:relative;min-height:350px}.motion .proof-quote,.motion .proof-outcome{position:absolute;inset:0;margin:0;justify-content:center}.motion .proof-quote{opacity:var(--proof-quote-opacity,1);transform:translateY(var(--proof-quote-y,0px))}.motion .proof-outcome{opacity:var(--proof-outcome-opacity,0);transform:translateY(var(--proof-outcome-y,24px))}.motion .proof-outcome[inert]{pointer-events:none}
@media(max-width:1100px){.hero-copy p{font-size:1.125rem;max-width:35ch}.expertise-panel{gap:32px;grid-template-columns:.9fr 1.1fr}.expertise-panel>p{font-size:1.125rem}.strategy-origin{left:7%;width:25%;font-size:1rem;height:84px}.strategy-options span,.field-inputs span{font-size:1rem}.delivery-icon{width:72px;height:72px}.delivery-steps{top:66px}.delivery-steps strong{font-size:1rem}.proof-stage,.motion .proof-stage{grid-template-columns:1fr 1fr}.motion .proof-copy{padding-inline:32px}.motion .proof-story{min-height:380px}}
@media(max-width:760px){.hero-copy,.motion .hero-copy{padding:24px;gap:20px}.hero-primary{font-size:clamp(2.75rem,8vw,3.5rem)}.hero-secondary{font-size:clamp(1.25rem,4.8vw,1.5rem);line-height:1.3}.hero-primary+.hero-secondary{margin-top:16px}.hero-copy p{font-size:1.0625rem;line-height:1.5;max-width:36ch}.hero-photo img{height:55%;object-position:78% 50%}.hero-shade{background:linear-gradient(180deg,#07101b 0%,#07101bdb 34%,#07101b0d 67%,#07101b77 100%)}.hero-discover{margin-top:auto}.motion .hero{height:175svh}.hero-stage{min-height:780px}.motion .hero-stage{min-height:0}.expertise-panel{grid-template-columns:1fr;gap:24px;padding-bottom:32px}.expertise-panel>p{font-size:1.125rem;max-width:none}.expertise-visual{height:260px}.strategy-options{left:52%;right:3%}.strategy-origin{left:6%;width:25%}.field-core{font-size:1.375rem}.field-core small{font-size:1rem}.delivery-icon{width:64px;height:64px}.delivery-icon svg{width:32px;height:32px}.delivery-steps{top:70px;gap:0}.delivery-steps strong{font-size:1rem}.proof-stage,.motion .proof-stage{display:grid;grid-template-columns:1fr}.proof-copy{padding:48px 24px}.proof-quote,.proof-outcome{gap:24px}.proof-outcome h3{font-size:2.25rem}.proof-stage figure{height:520px;min-height:0}.motion .proof{height:170svh}.motion .proof-stage{grid-template-rows:56% 44%}.motion .proof-copy{padding:24px;gap:16px;justify-content:flex-start}.motion .proof-name{font-size:1rem}.motion .proof-story{min-height:0;flex:1}.motion .proof-quote,.motion .proof-outcome{gap:16px}.motion .proof h2,.motion .proof-outcome h3{font-size:clamp(1.75rem,6.8vw,2.25rem)}.motion .proof-person,.motion .proof-result,.motion .proof .text-link{font-size:1rem}.motion .proof-stage figure{height:100%;min-height:0}.motion .proof img{object-position:65% 33%;transform-origin:65% 40%}}
@media(max-width:760px){.hero-discover{background:#09111bf2;border:1px solid #ffffff40;border-radius:28px;padding:8px 16px;gap:24px;max-width:100%;width:max-content}}
@media(prefers-reduced-motion:reduce){.hero-photo img{mask-image:linear-gradient(transparent,#000 20%)}.proof img{transform:none!important}.expertise-visual *{animation:none!important}}
@media print{.hero-copy{opacity:1!important}.proof-story{position:static!important}.proof-quote,.proof-outcome{position:static!important;opacity:1!important;transform:none!important}.proof-outcome{margin-top:32px!important}}

/* Audit revision, 19 October 2026. The existing visual and motion language stays. */
:root { --focus: #1748af; }
:is(a,button,summary,[tabindex]):focus-visible { outline: 3px solid var(--focus); outline-offset: 5px; }
:is(.hero,.flow,.proof,.contact,.footer,[data-film="2"],[data-film="architecture"]) { --focus: #fff; }
.contact-button { --focus: #fff; }
.header-cta { --focus: #1748af; }
.header nav { gap: 24px; }
.mobile-menu { display: none; }
.eyebrow { color: #475569; font-size: 1rem; margin-bottom: 24px; }

/* Three scroll stories: human context, client journey, real proof. */
.motion .hero { height: 155svh; }
.motion .flow { height: 180svh; }

.motion .proof { height: 160svh; }
.hero-primary { font-size: clamp(3.5rem,5.9vw,5.3rem); }
.hero-secondary { font-size: clamp(1.5rem,2.7vw,2.5rem); }
.hero-copy p { max-width: 39ch; }
.proof-link { flex-shrink: 0; }
.motion .proof-story { min-height: 400px; }
.motion .proof-copy { gap: 24px; }
.proof-link::after { content: '↗'; display: none; }
.proof h2.proof-name { font-size: 1.125rem; line-height: 1.4; font-weight: 400; letter-spacing: 0; }
.proof-story h3 { font-size: clamp(2rem,3.3vw,3.2rem); line-height: 1.12; }
.proof-outcome h3 { color: var(--blue); }
.proof-quote,.proof-outcome { gap: 20px; }
.proof-phase { font-size: 1rem; color: #c1d4fc; }
.proof-safeguard { border-left: 2px solid #91b3ff; padding-left: 16px; font-size: 1rem; line-height: 1.5; color: #c8d4e8; }
.proof figure { position: relative; }
.proof figcaption { position: absolute; inset: auto 0 0; padding: 100px 40px 40px; background: linear-gradient(transparent,#07101ae8 55%); }
.proof blockquote { margin: 0; font-size: clamp(1.5rem,2.2vw,2rem); line-height: 1.3; letter-spacing: -.03em; }
.proof figcaption p { margin-top: 20px; font-size: 1rem; line-height: 1.5; }
.proof figcaption span { display: block; color: #c8d4e8; }

/* Show the first commitment and its deliverables before the detailed methodology. */
.offer { padding-block: 64px; background: #edf3fc; }
.offer>.wrap { max-width: 1060px; }
.offer-steps { list-style: none; margin: 0; padding: 0; }
.offer-steps li { display: grid; grid-template-columns: 48px 1fr 200px; gap: 28px; border-top: 1px solid #bac9e0; padding: 32px 0; }
.offer-index { color: #1748af; font-size: 1.125rem; padding-top: 4px; }
.offer-steps h3 { font-size: 1.65rem; line-height: 1.3; }
.offer-steps p { max-width: 60ch; color: var(--muted); font-size: 1.125rem; line-height: 1.6; margin-top: 12px; }
.offer-steps p strong { font-weight: 550; color: var(--ink); }
.offer-highlight { color: var(--blue); }
.offer-price { font-size: 1.5rem; font-weight: 550; line-height: 1.3; text-align: right; }
.offer-price span { display: block; margin-top: 8px; font-size: 1rem; font-weight: 400; color: var(--muted); }
.offer .diagnostic { max-width: none; margin: 24px 0 0; border-color: #bac9e0; }
.offer .diagnostic summary { min-height: 72px; }
.offer .diagnostic p { color: var(--muted); font-size: 1.0625rem; max-width: 80ch; }

@media (max-width:1100px) {
  .header nav { gap: 20px; }
  .header-inner { gap: 20px; }
}
@media (max-width:900px) {
  .header nav { display: none; }
  .mobile-menu { display: block; border: 0; margin-left: auto; }
  .mobile-menu summary { font-size: 1rem; min-height: 44px; gap: 8px; }
  .mobile-menu summary span { font-size: 1.25rem; }
  .mobile-menu nav { display: flex; position: absolute; top: 100%; right: 16px; left: 16px; margin: 0; padding: 20px 24px; flex-direction: column; gap: 0; border: 1px solid #cbd5e1; border-radius: 0 0 18px 18px; background: #f8fafc; box-shadow: 0 16px 30px #101d3226; }
  .mobile-menu nav a { padding: 14px 0; min-height: 48px; }
  .offer-heading { display: block; }
  .offer-heading .lead { margin-top: 24px; }
  .offer-steps li { grid-template-columns: 32px 1fr 155px; gap: 20px; }
}
@media (max-width:760px) {
  .header-inner { gap: 12px; }
  .brand { font-size: 1.3rem; }
  .header-cta { min-height: 44px; padding: 8px 12px; gap: 8px; }
  .header-cta svg { display: none; }
  .hero-primary { font-size: clamp(2.75rem,8vw,3.5rem); }
  .hero-secondary { font-size: clamp(1.25rem,4.8vw,1.5rem); }
  .hero-discover { font-size: 1rem; gap: 12px; }
  .motion .hero { height: 150svh; }
  .motion .flow { height: 170svh; }

  .motion .proof { height: 155svh; }
  .motion .proof-story { min-height: 0; }
  .motion .proof-copy { gap: 12px; }
  .motion .proof-stage { grid-template-rows: 61% 39%; }
  .motion .proof-quote,.motion .proof-outcome { gap: 12px; }
  .proof-story h3 { font-size: clamp(1.6rem,6vw,2.1rem); }
  .proof h2.proof-name { font-size: 1rem; }
  .proof-safeguard { font-size: 1rem; line-height: 1.4; padding-left: 12px; }
  .proof figcaption { padding: 60px 24px 24px; }
  .proof blockquote { font-size: 1.375rem; }
  .proof figcaption p { margin-top: 12px; }
  .motion .proof img { object-position: 65% 50%; }
  .motion .proof-link { font-size: 1rem; }
  .motion .value-outcome .node-face { height: 70px; }
  .motion .flow-copy { min-height: 110px; }

  .flow-copy { font-size: 1.25rem; }
  .offer-steps { margin-top: 0; }
  .offer-steps li { grid-template-columns: 24px 1fr; gap: 12px; padding-block: 28px; }
  .offer-steps h3 { font-size: 1.375rem; }
  .offer-steps p { font-size: 1.0625rem; }
  .offer-price { grid-column: 2; text-align: left; font-size: 1.375rem; margin-top: 8px; display: flex; align-items: baseline; flex-wrap: wrap; gap: 8px 16px; }
  .offer-price span { margin: 0; font-size: .9375rem; }
  .offer .diagnostic { margin-top: 24px; }
  .offer .diagnostic summary { font-size: 1.0625rem; }
  .contact { padding-block: 80px; }
}
@media (max-width:380px) {
  .header-inner { padding-inline: 16px; gap: 8px; }
  .brand { font-size: 1.2rem; gap: 6px; }
  .brand img { width: 21px; height: 24px; }
  .header-cta { padding-inline: 10px; font-size: .9375rem; }
  .mobile-menu summary { font-size: .9375rem; gap: 4px; }
}
@media (prefers-contrast:more) {
  .header { background: #fff; backdrop-filter: none; }
}
@media print {
  .mobile-menu,.case-return { display: none; }
  .offer,.needs { break-inside: avoid; }
}

/* Essential edition — one concrete workflow, no competing explanatory films. */
.hero-primary,.hero-primary em { color: #fff; }
.hero-secondary { color: #b8bec8; }
.hero-secondary:last-child { color: var(--blue); }
.flow { background: #f8fafc; color: var(--ink); --focus: #1748af; }
.flow-stage { padding-block: 72px; min-height: 760px; }
.flow-heading { grid-template-columns: 1.65fr 1fr; gap: 48px; }
.flow-heading .flow-title { font-size: clamp(2.5rem,4.5vw,4.5rem); }
.flow-heading .flow-title em { color: var(--blue); }
.flow .eyebrow { margin-bottom: 20px; }
.flow-copy { max-width: none; font-size: clamp(1.25rem,2vw,1.75rem); padding-bottom: 4px; }
.flow-after { color: #1748af; }
.motion .flow-copy { min-height: 100px; }
.client-journey,.motion .client-journey { height: 320px; margin: 36px 0 24px; background: #0e1929; border: 1px solid #263952; border-radius: 24px; color: #fff; }
.client-journey .flow-node { left: 12.5%; top: calc(50% + 30px); width: 23%; gap: 12px; }
@media(min-width:761px) {
  /* Only the longer English labels need an independent anchor. Keep the chosen FR motion exact. */
  :lang(en) .client-journey .flow-node { top:50%; }
  :lang(en) .client-journey .node-caption { position:absolute; top:calc(100% + 12px); width:100%; }
}
.client-journey .node-1 { left: 37.5%; }
.client-journey .node-2 { left: 62.5%; }
.client-journey .node-3 { left: 87.5%; }
.client-journey .node-face { width: 80px; height: 80px; border-radius: 22px; flex-shrink: 0; border-color: #7894bd; background: #1c2f4b; }
.client-journey .node-face svg { width: 32px; height: 32px; }
.node-caption { line-height: 1.4; }
.node-caption strong { display: block; font-size: 1.125rem; font-weight: 550; }
.node-caption span { display: block; color: #b9cce6; font-size: 1rem; margin-top: 4px; }
.client-journey .flow-line { stroke: #90b5ff; stroke-width: 2; }
.client-journey .flow-ghost { opacity: 0; }
.motion .client-journey .flow-ghost { opacity: var(--break-opacity,1); }
.motion .client-journey .flow-node { transform: translate(-50%,-50%) translate(var(--node-x,0px),var(--node-y,0px)) rotate(var(--node-angle,0deg)); }
.client-journey .flow-break { color: #dec8bb; border: 1px dashed #7c6d69; background: #162031; padding: 4px 12px; border-radius: 6px; font-size: .9375rem; white-space: nowrap; line-height: 1.4; }
.client-journey .break-0 { left: 25%; top: 82%; }
.client-journey .break-1 { left: 50%; top: 9%; }
.client-journey .break-2 { left: 75%; top: 82%; }

.interventions { padding-block: 64px; }
.value-heading { font-size: clamp(1.5rem,2.4vw,2rem); line-height: 1.2; letter-spacing: -.025em; margin-bottom: 32px; }
.value-pillars { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 40px; }
.value-pillar { position: relative; display: grid; grid-template-rows: auto 1fr auto; border-top: 1px solid var(--line); padding-top: 24px; }
.pillar-icon { display: grid; place-items: center; width: 64px; height: 64px; border-radius: 18px; background: #e7eefc; color: var(--blue); margin-bottom: 24px; }
.pillar-icon svg { width: 44px; height: 44px; fill: none; stroke: currentColor; stroke-width: 1.7; stroke-linecap: round; stroke-linejoin: round; }
.pillar-icon .icon-tint { fill: #c9d9fc; }
.value-pillar h3 { font-size: clamp(1.375rem,2vw,1.75rem); line-height: 1.2; letter-spacing: -.025em; text-wrap: pretty; }
.value-pillar p { margin-top: 12px; color: var(--muted); font-size: 1.125rem; }
.value-conclusion { margin-top: 36px; }
.value-combination { font-size: clamp(1.5rem,2.6vw,2.25rem); font-weight: 550; line-height: 1.25; letter-spacing: -.03em; }
.value-combination em { color: var(--blue); }
.value-accompaniment { max-width: 66ch; margin-top: 16px; font-size: clamp(1.125rem,1.6vw,1.375rem); line-height: 1.55; color: var(--muted); }
.industry-access { display: flex; align-items: center; justify-content: space-between; gap: 40px; margin-top: 40px; padding: 32px 40px; border: 1px solid #314a72; border-radius: 24px; background: var(--night); color: white; }
.industry-access-copy { display: block; min-width: 0; }
.industry-access-label { display: block; color: #a3bfff; font-size: 1rem; }
.industry-access strong { display: block; max-width: 27ch; margin-block: 12px 20px; font-size: clamp(1.5rem,2.3vw,2rem); font-weight: 550; letter-spacing: -.025em; line-height: 1.2; }
.industry-access-action { display: inline-flex; align-items: center; gap: 20px; font-size: 1rem; }
.industry-access-action svg { width: 20px; height: 20px; }
.industry-access .industry-access-visual { width: 300px; height: auto; flex-shrink: 0; color: #a3bfff; stroke-width: 1.5; }
.industry-access-visual rect { fill: #152743; stroke: #628bcf; }
.industry-access-visual .access-route { stroke: #5489ff; stroke-width: 2; }
.industry-access-visual .access-result { fill: #2864ea; stroke: #5489ff; }
.industry-access-visual .access-check { stroke: white; stroke-width: 2; }
.industry-access:hover { text-decoration: none; border-color: #5489ff; }
.industry-access:hover .industry-access-action { text-decoration: underline; text-underline-offset: 5px; }
.mastery-detail { border-color: #bac9e0; }
.mastery-detail summary { min-height: 72px; font-size: 1.125rem; }

/* Brief native scroll holds, only when the complete story fits the viewport.
   Pillar icons and headings stay visible; descriptions appear cumulatively,
   followed by the shared accompaniment sentence.
   Offer headings remain visible; each description and price appear together. */
.reading-scene { position: relative; }
.reading-story { min-width: 0; }
.reading-step-body,.proof-visual-scene { display: contents; }
.proof-narrative-scene,.proof-narrative { display: contents; }
.offer .reading-label { font-size: 1.0625rem; font-weight: 400; line-height: 1.5; letter-spacing: 0; text-wrap: pretty; color: var(--muted); margin-bottom: 24px; }
.motion .reading-scene.is-pinned { height: calc(var(--reading-height) + var(--reading-travel)); }
.motion .reading-scene.is-pinned .reading-story { position: sticky; top: var(--reading-top); }
.motion .is-pinned .value-pillar p { opacity: var(--step-reveal,1); transform: translate3d(0,var(--step-lift,0px),0); }
.motion .is-pinned .value-conclusion { opacity: var(--accompaniment-reveal,1); transform: translate3d(0,var(--accompaniment-lift,0px),0); }
.motion .interventions:focus-within .value-pillar p,.motion .interventions:focus-within .value-conclusion { opacity: 1; transform: none; }
.motion .offer-steps { position: relative; }
.motion .offer-steps::before,.motion .offer-steps::after { content: ''; position: absolute; left: 23px; top: var(--rail-start,56px); width: 2px; height: var(--rail-length,0px); background: #bac9e0; transform-origin: top; }
.motion .offer-steps::after { background: var(--blue); transform: scaleY(var(--reading-progress,0)); }
.motion .offer-steps li { position: relative; grid-template-columns: 48px minmax(0,1fr); column-gap: 24px; row-gap: 8px; border: 0; padding-block: 20px 28px; }
.motion .offer-index { position: relative; z-index: 1; display: grid; place-items: center; align-self: start; width: 48px; height: 48px; padding: 0; border: 1px solid #bac9e0; border-radius: 50%; background: #edf3fc; font-size: 1rem; font-weight: 550; }
.motion .offer-index::after { content: ''; position: absolute; inset: -1px; border: 2px solid var(--blue); border-radius: inherit; opacity: var(--step-reveal,1); transform: scale(calc(.85 + .15 * var(--step-reveal,1))); }
.motion .offer-steps p,.motion .offer-price { transform: translate3d(0,var(--step-lift,0px),0); }
.motion .offer .is-pinned .offer-steps p,.motion .offer .is-pinned .offer-price { opacity: var(--step-visible,1); }
/* Keyboard navigation to the disclosures keeps the whole offer readable. */
.motion .offer:focus-within .is-pinned .offer-steps p,.motion .offer:focus-within .is-pinned .offer-price { opacity: 1; transform: none; }
.motion .offer-steps h3 { padding-top: 6px; }
.motion .offer-price { grid-column: 2; text-align: left; display: flex; align-items: baseline; flex-wrap: wrap; gap: 8px 16px; margin-top: 8px; }
.motion .offer-price span { margin: 0; }
@media(min-width:1000px) {
  .motion .offer-steps li { grid-template-columns: 48px minmax(0,1fr) 180px; align-content: start; }
  .motion .offer-price { grid-column: 3; display: block; text-align: right; margin-top: 6px; }
  .motion .offer-price span { margin-top: 8px; }
  .motion .offer-steps li:last-child { padding-bottom: 32px; }
  .motion .offer-steps h3 { font-size: clamp(1.65rem,2vw,2rem); }
}
@media(max-width:760px) {
  .motion .offer-steps li { grid-template-columns: 36px minmax(0,1fr); column-gap: 16px; row-gap: 8px; padding-block: 16px 24px; }
  .motion .offer-steps::before,.motion .offer-steps::after { left: 17px; }
  .motion .offer-index { width: 36px; height: 36px; font-size: .875rem; }
  .motion .offer-steps h3 { padding-top: 2px; }
}
@media print {
  .motion .reading-scene.is-pinned { height: auto; }
  .motion .reading-scene.is-pinned .reading-story { position: static; }
  .motion .offer-steps::before,.motion .offer-steps::after { display: none; }
  .motion .offer-steps li { min-height: 0; }
  .motion .is-pinned .value-pillar p,.motion .is-pinned .value-conclusion { opacity: 1; }
  .motion .is-pinned .value-pillar p,.motion .is-pinned .value-conclusion,.motion .offer-steps p,.motion .offer-price { transform: none; }
  .motion .offer .is-pinned .offer-steps p,.motion .offer .is-pinned .offer-price { opacity: 1; }
}
.mastery-detail p { font-size: 1.0625rem; max-width: 80ch; }
.founder-experience { margin-top: 16px; font-size: 1rem; }
.anchor-alias { display: block; height: 0; }
@media(max-width:960px) {
  .hero-secondary:last-child { font-weight: 700; }
  .flow-heading { grid-template-columns: 1.5fr 1fr; gap: 32px; }
  .client-journey .node-face { width: 68px; height: 68px; }
  .node-caption strong { font-size: 1rem; }
  .node-caption span { font-size: .9375rem; }
  .value-pillars { gap: 24px; }
}
@media(max-width:760px) {
  .flow-stage { padding-block: 56px; min-height: 0; }
  .flow-heading { display: block; }
  .flow-heading .flow-title { font-size: clamp(2rem,7.5vw,3rem); }
  .flow-heading .flow-title br { display: block; }
  .flow .eyebrow { margin-bottom: 12px; font-size: .9375rem; }
  .flow-copy { margin-top: 20px; font-size: 1.25rem; }
  .motion .flow-copy { min-height: 60px; }
  .motion .flow-stage { padding-block: 24px; }
  .client-journey,.motion .client-journey { height: 352px; margin: 24px 0 20px; border-radius: 20px; }
  .client-journey .flow-lines { left: calc(6% + 26px); width: 88%; }
  .client-journey .flow-node { flex-direction: row; text-align: left; width: 88%; left: 50%; top: 12.5%; gap: 16px; }
  .client-journey .node-1 { top: 37.5%; }
  .client-journey .node-2 { top: 62.5%; }
  .client-journey .node-3 { top: 87.5%; }
  .client-journey .node-face { width: 52px; height: 52px; border-radius: 15px; }
  .client-journey .node-face svg { width: 26px; height: 26px; }
  .node-caption strong { font-size: 1.0625rem; }
  .node-caption span { font-size: 1rem; margin-top: 2px; }
  .client-journey .flow-break { left: auto; right: 16px; transform: translateY(-50%); padding: 2px 8px; font-size: .8125rem; }
  .client-journey .break-0 { top: 25%; }
  .client-journey .break-1 { top: 50%; }
  .client-journey .break-2 { top: 75%; }

  .interventions,.offer { padding-block: 48px; }
  .value-pillars { grid-template-columns: 1fr; gap: 24px; }
  .value-pillar { grid-template-columns: 52px minmax(0,1fr); grid-template-rows: auto auto; gap: 8px 20px; }
  .pillar-icon { grid-row: 1 / 3; width: 52px; height: 52px; border-radius: 14px; margin: 0; }
  .pillar-icon svg { width: 36px; height: 36px; }
  .value-pillar h3 { font-size: 1.375rem; min-height: 0; }
  .value-pillar p { grid-column: 2; font-size: 1.0625rem; margin: 0; }
  .value-conclusion { margin-top: 32px; }
  .industry-access { flex-direction: column-reverse; align-items: flex-start; gap: 16px; padding: 24px; margin-top: 32px; }
  .industry-access .industry-access-visual { width: 220px; max-width: 100%; align-self: center; }
  .mastery-detail summary { font-size: 1.0625rem; }
}
@media(max-width:380px) {
  .flow-heading .flow-title { font-size: 2rem; }
  .client-journey,.motion .client-journey { height: 328px; margin-block: 20px 16px; }
}
@media print {

  .flow-ghost { display: none; }
  .flow-node { transform: translate(-50%,-50%)!important; }
  .flow-line { stroke-dashoffset: 0!important; }
}

/* A real meeting: keep both people and the handshake visible, with the quote below. */
/* One vertical story, four optional horizontal examples. */
.flow-topbar { display: flex; align-items: center; justify-content: space-between; gap: 24px; margin-bottom: 28px; }
.flow-topbar .section-title { margin: 0; }
.flow-choices { display: flex; padding: 4px; gap: 4px; border-radius: 28px; background: #e9eef7; }
.flow-choices button { border: 0; background: transparent; color: #475569; border-radius: 24px; padding: 10px 20px; min-height: 44px; font-size: 1rem; white-space: nowrap; }
.flow-choices button[aria-pressed="true"] { color: #fff; background: var(--blue); }
.flow-choices button:hover:not([aria-pressed="true"]) { background: #dce5f5; color: var(--ink); }
.flow-carousel { display: grid; gap: 48px; min-width: 0; }
.flow-slide { min-width: 0; }
.flow-ready .flow-carousel { display: flex; gap: clamp(20px,3vw,40px); overflow-x: auto; overscroll-behavior-x: contain; scroll-snap-type: x mandatory; scrollbar-width: none; cursor: grab; }
.flow-ready .flow-carousel::-webkit-scrollbar { display: none; }
.flow-ready .flow-carousel:focus-visible { outline: 2px solid var(--blue); outline-offset: 6px; border-radius: 4px; }
.flow-ready .flow-slide { flex: 0 0 100%; display: flex; flex-direction: column; scroll-snap-align: start; scroll-snap-stop: always; }
.flow-ready .flow-heading { flex: 1; }
.flow-ready .flow-carousel.is-dragging { cursor: grabbing; user-select: none; scroll-snap-type: none; }
.flow-arrows { display: flex; gap: 8px; flex-shrink: 0; }
.flow-arrows button { display: grid; place-items: center; width: 48px; height: 48px; border: 1px solid #a2b1c7; border-radius: 50%; background: transparent; color: #1748af; padding: 0; }
.flow-arrows button svg { width: 22px; height: 22px; }
.flow-arrows button:hover:not(:disabled) { background: #e7eefc; border-color: var(--blue); }
.flow-arrows button:disabled { opacity: .35; cursor: default; }
.flow-choices[hidden],.flow-arrows[hidden] { display: none; }
.flow-foot { display: flex; justify-content: flex-end; }

/* Align every connector with the icon, independently of its caption length. */
@media(min-width:761px) {
  .flow-slide .flow-node { top: 50%; }
  .flow-slide .node-caption { position: absolute; top: calc(100% + 12px); width: 100%; }
  .flow-slide .flow-heading .flow-title { font-size: clamp(2.25rem,4vw,4rem); }
  .flow-slide .break-0 { left: 22%; top: 9%; }
  .flow-slide .break-2 { left: 78%; top: 9%; }
}
@media(max-width:1100px) and (min-width:761px) {
  .flow-topbar { margin-bottom: 24px; gap: 16px; }
  .flow-choices button { padding-inline: 14px; }
  .flow-slide .flow-heading { grid-template-columns: 1.5fr 1fr; gap: 32px; }
}
@media(max-width:760px) {
  .flow-topbar { display: grid; grid-template-columns: minmax(0,1fr); gap: 12px; margin-bottom: 16px; }
  .flow-choices { width: 100%; padding: 3px; gap: 2px; }
  .flow-choices button { flex: 1; min-width: 0; min-height: 40px; font-size: .875rem; padding: 8px 6px; }
  .flow-slide .flow-heading .flow-title { font-size: clamp(1.875rem,7vw,2.75rem); }
  .flow-slide .flow-copy { font-size: 1.125rem; margin-top: 16px; }
  .motion .flow-slide .flow-copy { min-height: 52px; }
  .flow-slide .client-journey,.motion .flow-slide .client-journey { height: 300px; margin-block: 16px; }
  .flow-slide .node-face { width: 48px; height: 48px; }
  .flow-slide .flow-lines { left: calc(6% + 24px); }
  .flow-slide .node-caption { min-width: 0; }
  .flow-slide .node-caption strong { font-size: 1rem; }
  .flow-slide .node-caption span { font-size: .9375rem; }
  .flow-slide .flow-break { font-size: .75rem; right: 12px; padding: 1px 6px; }

  .flow-arrows button { width: 44px; height: 44px; }
}
@media(max-width:380px) {
  .flow-choices button { font-size: .8125rem; padding-inline: 4px; }
  .flow-slide .flow-node { gap: 12px; }
  .flow-slide .node-caption span { font-size: .875rem; }
  .flow-slide .client-journey,.motion .flow-slide .client-journey { height: 288px; }
}
@media print {
  .flow-ready .flow-carousel { display: block; overflow: visible; }
  .flow-choices,.flow-arrows { display: none!important; }
  .flow-slide { break-inside: avoid; margin-bottom: 32px; }
}

.proof .proof-meeting,
.motion .proof .proof-meeting {
  display: flex;
  flex-direction: column;
  justify-content: center;
  min-width: 0;
  min-height: 0;
  height: 100%;
  padding-block: 24px;
}
.proof .proof-photo {
  position: relative;
  display: block;
  overflow: hidden;
  aspect-ratio: 3 / 2;
  width: 100%;
  flex: 0 0 auto;
}
.proof .proof-photo picture { position: absolute; inset: 0; display: block; width: 100%; height: 100%; }
.proof .proof-photo-mono { opacity: 1; pointer-events: none; }
.motion .proof .proof-photo-mono { opacity: var(--proof-mono-opacity,0); will-change: opacity; }
.proof .proof-photo img,
.motion .proof .proof-photo img {
  display: block;
  object-position: 85% 50%;
  transform-origin: 0 0;
}
.motion .proof .proof-photo img {
  transform: translate3d(var(--proof-photo-x,0px),var(--proof-photo-y,0px),0) scale(var(--proof-photo-scale,1));
}
.proof .proof-meeting figcaption {
  position: static;
  padding: 28px 40px 24px;
  background: none;
  container-type: inline-size;
}
@media(min-width:1024px) {
  .proof .proof-meeting blockquote {
    font-size: clamp(1rem,4.6cqw,2rem);
    white-space: nowrap;
  }
}
@media(min-width:761px) {
  .motion .proof .proof-photo,
  .motion .proof .proof-meeting figcaption {
    max-width: calc((100svh - var(--header) - 280px) * 1.5);
    align-self: center;
  }
  .motion .proof .proof-meeting figcaption { width: 100%; }
}
@media(max-width:760px) {
  .motion .proof { height: auto; }
  .motion .proof-stage { position: relative; top: auto; height: auto; grid-template-rows: auto auto; }
  .motion .proof-copy { padding: 48px 24px 32px; gap: 24px; }
  .motion .proof-story { position: static; }
  .motion .proof-quote,.motion .proof-outcome { position: static; transform: none; opacity: 1; }
  .motion .proof-outcome { margin-top: 32px; }
  .proof .proof-meeting,.motion .proof .proof-meeting { height: auto; padding: 0; }
  .proof .proof-photo { aspect-ratio: 3 / 2; }
  .proof .proof-meeting figcaption { padding: 24px 24px 40px; }
}

/* Keep motion on short phones. Only an oversized chapter leaves sticky mode;
   its picture/diagram still follows native scrolling and its text stays readable. */
@media screen {
  .motion .scroll-scene.scene-continuous { height: auto; }
  .motion .scene-continuous .scene-stage { position: relative; top: auto; height: auto; min-height: 0; }
  .motion .hero.scene-continuous .hero-stage { height: max(640px,calc(100svh - var(--header))); }
  .motion .flow.scene-continuous .flow-stage { padding-block: 32px; }
  .motion .flow.scene-continuous .flow-copy { min-height: 0; }
  .motion .flow.scene-continuous .flow-copy p { position: static; opacity: 1; transform: none; margin: 0; }
  .motion .flow.scene-continuous .flow-copy .flow-after { margin-top: 12px; }
  .motion .proof.scene-continuous .proof-story { position: static; }
  .motion .proof.scene-continuous .proof-quote,
  .motion .proof.scene-continuous .proof-outcome { position: static; opacity: 1; transform: none; }
  .motion .proof.scene-continuous .proof-outcome { margin-top: 32px; }
  .motion .proof.scene-continuous .proof-meeting { height: auto; }
}

/* Small-screen stops keep each complete unit of meaning in view. No wheel or
   touch interception; the containing block releases its sticky child naturally. */
@media screen {
  .motion .proof.scene-continuous .proof-stage { overflow: visible; }
  .motion .proof.scene-continuous .proof-photo,
  .motion .proof.scene-continuous .proof-meeting figcaption { max-width: none; }
  .motion .proof-visual-scene.is-pinned { display: block; min-width: 0; height: calc(var(--proof-hold-height) + var(--proof-hold-travel)); }
  .motion .proof-visual-scene.is-pinned .proof-meeting { position: sticky; top: var(--proof-hold-top); height: var(--proof-hold-height); }
  .reading-scene { --reading-surface: var(--white); }
  .offer .reading-scene { --reading-surface: #edf3fc; }
  .motion .reading-scene.is-stepped .reading-story > h2 { position: sticky; top: var(--reading-top); z-index: 2; margin: 0; padding-bottom: 16px; background: var(--reading-surface); }
  .motion .is-stepped .value-pillars { display: block; }
  .motion .is-stepped .value-pillar,
  .motion .is-stepped .offer-steps li { display: block; position: relative; padding: 0; border: 0; margin-bottom: 24px; }
  .motion .is-stepped .has-step-hold { height: calc(var(--step-height) + var(--step-travel)); }
  .motion .is-stepped .reading-step-body { display: grid; position: relative; align-content: start; background: var(--reading-surface); border-top: 1px solid var(--line); padding-block: 24px; }
  .motion .is-stepped .has-step-hold .reading-step-body { position: sticky; top: var(--step-top); }
  .motion .is-stepped .has-step-hold .reading-step-body::after { content: ''; position: absolute; top: -1px; left: 0; width: 100%; height: 2px; background: var(--blue); transform: scaleX(var(--step-progress,0)); transform-origin: left; }
  .motion .is-stepped .value-pillar .reading-step-body { grid-template-columns: 52px minmax(0,1fr); grid-template-rows: auto auto; gap: 8px 20px; }
  .motion .is-stepped .pillar-icon { grid-row: 1 / 3; width: 52px; height: 52px; margin: 0; }
  .motion .is-stepped .pillar-icon svg { width: 36px; height: 36px; }
  .motion .is-stepped .value-pillar p { grid-column: 2; margin: 0; }
  .motion .is-stepped .offer-steps::before,
  .motion .is-stepped .offer-steps::after { display: none; }
  .motion .is-stepped .offer-steps .reading-step-body { grid-template-columns: 36px minmax(0,1fr); column-gap: 16px; row-gap: 8px; }
  .motion .is-stepped .offer-index { width: 36px; height: 36px; font-size: .875rem; }
  .motion .is-stepped .offer-steps h3 { padding-top: 2px; }
  .motion .is-stepped .offer-price { grid-column: 2; text-align: left; display: flex; flex-wrap: wrap; gap: 8px 16px; margin-top: 8px; }
  .motion .is-stepped .offer-price span { margin: 0; }
}

/* Active shared type scale. Match roles across the home and industry pages. */
body:is(.sequence-home,.industry-page,.profile-page) {
  --layout-max: 1280px;
  --page-inset: max(var(--gutter),calc((100vw - var(--layout-max))/2));
  --type-display: clamp(3.5rem,5.9vw,5.3rem);
  --type-story: clamp(2.25rem,3.65vw,3.5rem);
  --type-section: clamp(1.5rem,2.4vw,2rem);
  --type-card: clamp(1.375rem,2vw,1.75rem);
  --type-lead: clamp(1.125rem,1.6vw,1.375rem);
  --type-copy: 1.125rem;
  --type-detail: 1rem;
  --heading-weight: 550;
}
body:is(.sequence-home,.industry-page,.profile-page) :is(.wrap,.scene-inner) { max-width: var(--layout-max); }
body.sequence-home :is(.offer,.contact,.footer)>.wrap { max-width: var(--layout-max); }
body:is(.sequence-home,.industry-page,.profile-page) .header-inner { max-width: none; padding-inline: var(--page-inset); }
body.sequence-home .hero-copy { padding-left: var(--page-inset); }
body.sequence-home .hero-primary { font-size: var(--type-display); letter-spacing: -.035em; }
body.sequence-home .hero-secondary { font-weight: 500; letter-spacing: -.025em; }
body.sequence-home .proof-copy { padding-left: var(--page-inset); }

body.sequence-home :is(.flow-slide .flow-heading .flow-title,.proof-story h3,.contact h2) {
  font-size: var(--type-story);
  font-weight: var(--heading-weight);
  line-height: 1.12;
  letter-spacing: -.035em;
  text-wrap: balance;
}
body.sequence-home :is(h2.section-title,.value-combination) {
  font-size: var(--type-section);
  font-weight: var(--heading-weight);
  line-height: 1.25;
  letter-spacing: -.025em;
  text-wrap: balance;
}
body.sequence-home h2.section-title { color: var(--ink); }
body.sequence-home .proof h2.section-title { color: #fff; }
body.sequence-home .offer .reading-label { color: var(--ink); margin-bottom: 32px; }
body.sequence-home :is(.value-pillar h3,.offer-steps h3,.industry-access strong) {
  font-size: var(--type-card);
  font-weight: var(--heading-weight);
  line-height: 1.25;
  letter-spacing: -.025em;
  text-wrap: balance;
}
body.sequence-home :is(.hero-copy p,.flow-copy,.value-accompaniment) {
  font-size: var(--type-lead);
  line-height: 1.5;
}
body.sequence-home :is(.value-pillar p,.offer-steps p,.proof-result) {
  font-size: var(--type-copy);
  line-height: 1.55;
  max-width: 65ch;
}
body.sequence-home .offer-price { font-size: var(--type-card); line-height: 1.25; font-variant-numeric: tabular-nums; }
body.sequence-home .proof-safeguard { border: 0; padding: 0; max-width: 50ch; font-size: var(--type-detail); line-height: 1.5; }
body.sequence-home .offer-details details>p { max-width: 70ch; }
body.sequence-home .contact-form label { font-size: var(--type-detail); }
body.sequence-home .contact-form :is(input,textarea)::placeholder { color: var(--muted); opacity: 1; }

/* Shared rows align every description even when a pillar heading wraps. */
@media(min-width:761px) {
  body.sequence-home .value-pillars { grid-template-rows: auto auto auto; row-gap: 0; }
  body.sequence-home .value-pillar { grid-row: span 3; grid-template-rows: subgrid; row-gap: 0; }
  body.sequence-home .value-pillar p { align-self: start; }
}
@media(max-width:760px) {
  body:is(.sequence-home,.industry-page,.profile-page) { --type-display: clamp(2.75rem,8vw,3.5rem); --type-story: clamp(1.875rem,7.4vw,2.75rem); --type-copy: 1.0625rem; }
  body.sequence-home .hero-secondary { font-weight: 700; }
  body.sequence-home .hero-copy { padding-right: var(--gutter); }
  body.sequence-home .proof-copy { padding-right: var(--gutter); }
  body.sequence-home .offer .reading-label { margin-bottom: 24px; }
  /* A single compact composition: accumulated pillars plus their conclusion.
     Spacing, not smaller text, makes room for all three on a phone. */
  body.sequence-home .value-heading { margin-bottom: 20px; }
  body.sequence-home .value-pillars { gap: 0; }
  body.sequence-home .value-pillar { grid-template-columns: 40px minmax(0,1fr); column-gap: 12px; row-gap: 4px; padding-block: 12px; }
  body.sequence-home .pillar-icon { width: 40px; height: 40px; border-radius: 12px; }
  body.sequence-home .pillar-icon svg { width: 28px; height: 28px; }
  body.sequence-home .value-conclusion { margin-top: 16px; }
  body.sequence-home .value-accompaniment { margin-top: 20px; }
  /* Use the full text width so the offer can form one readable mobile stack. */
  body.sequence-home .offer .reading-label { margin-bottom: 16px; }
  body.sequence-home .offer-steps li { display: block; padding: 0; margin: 0; border: 0; }
  body.sequence-home .offer-steps::before,body.sequence-home .offer-steps::after { display: none; }
  body.sequence-home .offer .reading-step-body { display: grid; grid-template-columns: 28px minmax(0,1fr); gap: 10px; padding-block: 16px; border-top: 1px solid var(--line); }
  body.sequence-home .offer .reading-step-body > div { display: contents; }
  body.sequence-home .offer-index { width: 28px; height: 28px; font-size: .875rem; }
  body.sequence-home .offer-steps h3 { padding: 0; }
  body.sequence-home .offer-steps p { grid-column: 1 / -1; margin: 0; line-height: 1.45; }
  body.sequence-home .offer-price { grid-column: 1 / -1; display: flex; align-items: baseline; flex-wrap: wrap; gap: 6px 12px; margin: 0; text-align: left; }
  body.sequence-home .offer-price span { margin: 0; }
}
@media(max-width:760px) and (max-height:700px) {
  body.sequence-home .offer .reading-label { margin-bottom: 12px; }
  body.sequence-home .offer .reading-step-body { padding-block: 7px; row-gap: 7px; }
}
/* Keep the complete stack within the reading pause on the shortest phones. */
@media(max-width:760px) and (max-height:660px) {
  body.sequence-home .offer .reading-step-body { padding-block: 5px; row-gap: 6px; }
}
@media screen and (max-width:760px) {
  .motion .is-stacked .value-pillar { opacity: var(--step-reveal,1); transform: translate3d(0,var(--step-lift,0px),0); }
  .motion .is-stacked .value-pillar p { opacity: 1; transform: none; }
  .motion .interventions:focus-within .is-stacked .value-pillar { opacity: 1; transform: none; }
  .motion .offer .is-stacked .offer-steps li { opacity: var(--step-reveal,1); transform: translate3d(0,var(--step-lift,0px),0); }
  .motion .offer .is-stacked .offer-steps p,.motion .offer .is-stacked .offer-price { opacity: 1; transform: none; transition: none; }
  .motion .offer:focus-within .is-stacked .offer-steps li { opacity: 1; transform: none; }
}

/* The last stop in the pillars chapter belongs to the industrial example. */
@media screen and (max-width:760px) {
  .motion .proof-chapters .proof-stage { display: block; overflow: visible; }
  .motion .proof-chapters .proof-copy { display: contents; }
  .motion .proof-chapters .proof-name { position: sticky; top: var(--proof-heading-top); z-index: 3; margin: 0; padding: 16px var(--page-inset); background: var(--night); }
  .motion .proof-chapters .proof-narrative-scene { display: block; position: relative; }
  .motion .proof-chapters .proof-narrative { display: flex; flex-direction: column; gap: 24px; padding: 16px var(--page-inset) 24px; background: var(--night); }
  .motion .proof-chapters .proof-narrative-scene.is-pinned { height: calc(var(--proof-narrative-height) + var(--proof-narrative-travel)); }
  .motion .proof-chapters .proof-narrative-scene.is-pinned .proof-narrative { position: sticky; top: var(--proof-narrative-top); }
  .motion .proof-chapters .is-pinned .proof-story { position: relative; min-height: var(--proof-story-height); flex: none; }
  .motion .proof-chapters .is-pinned .proof-quote,
  .motion .proof-chapters .is-pinned .proof-outcome { position: absolute; inset: 0; margin: 0; justify-content: center; }
  .motion .proof-chapters .is-pinned .proof-quote { opacity: var(--proof-quote-opacity,1); transform: translateY(var(--proof-quote-y,0px)); }
  .motion .proof-chapters .is-pinned .proof-outcome { opacity: var(--proof-outcome-opacity,0); transform: translateY(var(--proof-outcome-y,0px)); }
}

.scroll-viewport { position: fixed; top: 0; left: 0; width: 0; height: 100svh; visibility: hidden; pointer-events: none; }
.industry-access-scene { position: relative; margin-top: 40px; }
.industry-access-scene .industry-access { margin-top: 0; }
@media screen {
  .motion .industry-access-scene.is-pinned { height: calc(var(--industry-height) + var(--industry-travel)); }
  .motion .industry-access-scene.is-pinned .industry-access { position: sticky; top: var(--industry-top); }
}
@media(max-width:760px) {
  .industry-access-scene { margin-top: 32px; }
}

/* A small film entrance shares the existing hero action row. */
.hero-actions { display: flex; align-items: center; gap: 24px; max-width: 100%; }
.hero-actions .hero-discover { margin: 0; }
.promo-trigger { display: inline-flex; align-items: center; gap: 10px; flex-shrink: 0; font-size: 1rem; }
.promo-play { display: grid; place-items: center; width: 48px; height: 48px; border: 1px solid #ffffff90; border-radius: 50%; background: #0b1119b3; }
.promo-play svg { width: 22px; height: 22px; fill: currentColor; stroke: none; }
.promo-trigger:hover .promo-play { background: var(--blue); border-color: var(--blue); }
.promo-open { overflow: hidden; }
.promo-dialog { --film-ratio: 16 / 9; width: min(1120px,calc(100vw - 32px),calc((100dvh - 112px) * 16 / 9)); max-width: none; max-height: calc(100dvh - 32px); padding: 0; border: 1px solid #314a72; border-radius: 20px; background: var(--night); color: white; overflow: auto; }
.promo-dialog::backdrop { background: #050b14e8; }
.promo-dialog.is-portrait { --film-ratio: 9 / 16; width: min(440px,calc(100vw - 24px),calc((100dvh - 112px) * 9 / 16)); }
.promo-head { display: flex; align-items: center; justify-content: space-between; gap: 8px; padding: 4px 12px 4px 20px; }
.promo-head h2 { font-size: 1rem; line-height: 1.3; letter-spacing: -.01em; font-weight: 500; }
.promo-close { display: grid; place-items: center; flex-shrink: 0; width: 44px; height: 44px; padding: 10px; border: 0; border-radius: 50%; background: transparent; color: white; }
.promo-close:hover { background: #ffffff1a; }
.promo-close:focus-visible { outline-offset: -3px; }
.promo-close svg { width: 24px; height: 24px; }
.promo-video { display: block; width: 100%; height: auto; aspect-ratio: var(--film-ratio); object-fit: contain; background: #000; }
.promo-error { padding: 16px 20px; font-size: 1rem; }
.promo-error a { text-decoration: underline; }
@media(max-width:1100px) {
  .promo-trigger-label { display: none; }
}
@media(max-width:760px) {
  .hero-actions { gap: 16px; margin-top: auto; }
  .hero-actions .hero-discover { gap: 8px; padding-inline: 12px; min-height: 48px; }
  .promo-play { width: 44px; height: 44px; }
}
@media print {
  .hero-actions,.promo-dialog { display: none; }
}

/* Écran court : téléphone couché, fenêtre écrasée. Le hero doit tenir dans la
   scène épinglée (un écran moins l'en-tête). Sinon le script le passe en lecture
   continue, qui le fixait à 640 px et centrait le texte : sur 390 px de haut,
   le titre était coupé et les boutons hors champ. */
@media (max-height: 520px) {
  .hero-stage { min-height: 0; }
  .hero-copy { gap: 12px; padding-block: 12px; }
  body.sequence-home { --type-display: clamp(1.9rem, 3.2vw + .6rem, 2.6rem); }
  /* Le bleu de « Construire ce qui compte » n'atteint 3:1 qu'en grand texte :
     on garde au moins 19 px en gras pour rester au-dessus du seuil WCAG. */
  body.sequence-home .hero-secondary { font-size: clamp(1.1875rem, 1.2vw + .6rem, 1.3rem); font-weight: 700; }
  .hero-primary + .hero-secondary { margin-top: 10px; }
  body.sequence-home .hero-copy p { font-size: 1rem; line-height: 1.45; max-width: 52ch; }
  .hero-actions { margin-top: 0; }
  .hero-actions .hero-discover { min-height: 44px; margin-top: 0; padding-block: 6px; white-space: nowrap; }
  .hero-discover span { font-size: 1.25rem; line-height: 1; }
  /* Repli quand le contenu ne tient toujours pas : il prend sa hauteur réelle
     et commence en haut, au lieu d'être centré dans un plancher de 640 px. */
  .motion .hero.scene-continuous .hero-stage { height: auto; }
  .hero.scene-continuous .hero-copy { justify-content: flex-start; }
  /* Cas client : le titre passait sous la ligne de flottaison derrière 84 px de
     rembourrage de section. */
  .section.case-study-hero { padding-top: 24px; }
}
/* Très court (petit Android couché, 360 px) : un cran de plus sur les espacements. */
@media (max-height: 380px) {
  .hero-copy { gap: 8px; padding-block: 8px; }
  .hero-primary + .hero-secondary { margin-top: 6px; }
}
/* Petit téléphone couché : la mise en page portrait poserait le texte sur la
   photo. On reprend la composition côte à côte de l'ordinateur. */
@media (max-width: 760px) and (max-height: 520px) {
  .hero-copy { max-width: 60%; justify-content: center; }
  .hero-photo { background: none; }
  .hero-photo img { position: static; height: 100%; object-position: 70% 45%; mask-image: none; }
  /* Le voile reste dense jusqu'à la fin du texte (46 %) : le bleu du sous-titre
     n'atteint son seuil que sur un fond presque opaque. */
  .hero-shade { background: linear-gradient(90deg, #08101aeb 0%, #08101ae0 46%, #08101a66 70%, transparent 90%); }
}
