:root{--navy:#012855;--deep:#001b39;--gold:#de9b22;--blue:#47acfb;--green:#65ac4a;--ink:#18314a;--muted:#61758a;--pale:#f1f5f9;--line:#d8e1ea;--header:86px;--ease:cubic-bezier(.22,1,.36,1)}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:calc(var(--header) + 24px);touch-action:pan-x pan-y}body{margin:0;background:#fff;color:var(--ink);font:17px/1.7 "Segoe UI",Arial,sans-serif}body,button,a{-webkit-tap-highlight-color:transparent}h1,h2,h3,p,figure{margin:0}p+p{margin-top:20px}h1,h2,h3{line-height:1.12;font-weight:500;letter-spacing:-.045em}a{color:inherit;text-decoration:none}button,input,textarea,select{font:inherit}button,summary{cursor:pointer}button{border:0}img{display:block;max-width:100%}a,button,select,textarea,summary{touch-action:manipulation}a:focus-visible,button:focus-visible,select:focus-visible,textarea:focus-visible,summary:focus-visible{outline:3px solid var(--deep);outline-offset:3px;box-shadow:0 0 0 6px var(--blue);border-radius:2px}[hidden]{display:none!important}::selection{background:#f4cf8e;color:var(--deep)}.wrap{width:min(1280px,calc(100% - 112px));margin-inline:auto}.section{padding:120px 0}.scene{position:relative;isolation:isolate;overflow:clip}.eyebrow{font-size:12px;font-weight:700;letter-spacing:.16em;line-height:1.65;margin-bottom:28px;text-transform:uppercase}.eyebrow.light{color:#ccdceb}.muted{color:#5f7386}.accent{color:var(--blue)}h2{font-size:clamp(38px,4.1vw,61px)}.lead{font-size:25px;line-height:1.45;letter-spacing:-.025em;color:var(--navy)}.button{display:inline-flex;align-items:center;justify-content:center;gap:30px;min-height:58px;padding:15px 23px;font-size:15px;font-weight:650;transition:background .2s,box-shadow .2s}.button-gold{background:var(--gold);color:var(--deep)}.button-gold:hover{background:#f0b54b;box-shadow:0 8px 30px #de9b2229}.text-link{display:inline-flex;gap:18px;align-items:center;border-bottom:1px solid #8294a7;padding-bottom:6px;font-size:15px;font-weight:600}.light-link{color:white;border-color:#8ea8c0}.text-link:hover{color:#257dbb}.light-link:hover{color:#f1c574}.skip-link{position:fixed;top:10px;left:15px;z-index:100;background:white;color:var(--navy);padding:12px;transform:translateY(-180%)}.skip-link:focus{transform:none}
.site-header{height:var(--header);position:sticky;top:0;z-index:50;display:flex;gap:28px;align-items:center;justify-content:space-between;padding:0 max(56px,calc((100% - 1280px)/2));background:#fffffff2;backdrop-filter:blur(22px);border-bottom:1px solid #01285510}.site-header:after{content:"";position:absolute;left:0;bottom:-1px;right:0;height:3px;background:var(--gold);transform:scaleX(var(--page-progress,0));transform-origin:left}.brand{flex:none;width:108px}.brand img{width:108px;height:80px;object-fit:contain}.desktop-nav{display:flex;gap:28px;font-size:14px;font-weight:600}.desktop-nav a{padding:10px 0;position:relative}.desktop-nav a:after{content:"";height:2px;position:absolute;bottom:3px;left:0;right:0;background:var(--gold);transform:scaleX(0);transform-origin:left;transition:transform .3s}.desktop-nav a:hover:after,.desktop-nav a[aria-current]:after{transform:scaleX(1)}.header-cta{font-size:14px;font-weight:650;padding:11px 18px;background:var(--navy);color:white;display:flex;align-items:center;gap:20px;white-space:nowrap}.header-cta:hover{background:#124773}.menu-toggle{display:none}
.hero{min-height:calc(100svh - var(--header));background:var(--navy);color:white;display:flex;flex-direction:column;justify-content:center;max-height:none}.hero-photo{position:absolute;inset:-180px 0 -360px 18%;background:url("../images/hero-collaboration.webp") 61% center/cover no-repeat;z-index:-4;will-change:transform}.hero-shade{position:absolute;inset:0;background:linear-gradient(90deg,#001b39 0%,#012855f5 22%,#012855b8 47%,#01285514 83%),linear-gradient(0deg,#001b39dd,transparent 45%);z-index:-3}.hero-grid{position:absolute;inset:0;background-image:linear-gradient(#b4daff0a 1px,transparent 1px),linear-gradient(90deg,#b4daff0a 1px,transparent 1px);background-size:110px 110px;mask-image:linear-gradient(90deg,black,transparent 70%);z-index:-2}.hero-content{padding:74px 0 112px;position:relative;z-index:3}.hero .eyebrow{display:flex;align-items:center;gap:16px;margin-bottom:30px}.mini-mark{width:10px;height:10px;background:var(--gold);box-shadow:14px 0 0 -2px var(--blue);margin-right:12px}h1{font-size:clamp(55px,6.5vw,98px);line-height:1.045;max-width:1000px;letter-spacing:-.055em}h1 em,.immersive h2 em,.project h2 em{font-style:normal;color:var(--gold)}.hero-copy{max-width:500px;font-size:19px;line-height:1.7;color:#e1e9f2;margin-top:27px}.hero-actions{display:flex;align-items:center;gap:28px;flex-wrap:wrap;margin-top:30px}.hero-location{font-size:13px;color:#b8cbdf;margin-top:21px}.hero-bottom{position:absolute;bottom:24px;left:0;right:0;display:flex;align-items:center;justify-content:space-between;font-size:12px;letter-spacing:.06em;color:#d5e0ec;z-index:4}.hero-bottom>span:first-child{font-size:14px;letter-spacing:0}.hero-bottom a{display:flex;gap:18px;align-items:center}.hero-bottom a span{font-size:23px}.hero:after{content:"";position:absolute;bottom:0;left:0;right:0;height:5px;background:linear-gradient(90deg,var(--gold) 34%,var(--blue) 34% 69%,var(--green) 69% 86%,var(--blue) 86% 93%,var(--gold) 93%)}
.motifs{position:absolute;inset:0;pointer-events:none;z-index:2}.pixel{display:block;position:absolute;width:40px;height:40px;pointer-events:none;will-change:transform}.gold{background:var(--gold)}.blue{background:var(--blue)}.green{background:var(--green)}.outline{border:1px solid currentColor;background:transparent}.hero-motifs .p1{width:66px;height:66px;right:10%;top:26%}.hero-motifs .p2{width:110px;height:110px;right:6%;top:61%;color:#cee6ff85}.hero-motifs .p3{width:32px;height:32px;right:25%;top:75%}.hero-motifs .p4{width:18px;height:18px;right:4%;top:38%}.hero-motifs .p5{width:18px;height:18px;right:19%;top:86%}.hero-motifs .p6{width:25px;height:25px;right:35%;top:15%;opacity:.75}
.brand-ribbon{overflow:hidden;background:var(--pale);padding:20px 0;border-bottom:1px solid var(--line)}.brand-ribbon>div{display:flex;align-items:center;gap:50px;white-space:nowrap;width:max-content;font-size:24px;font-weight:400;letter-spacing:-.025em;will-change:transform}.brand-ribbon b{font-size:9px;color:var(--gold);font-weight:400}.brand-ribbon b:nth-child(2n){color:var(--blue)}.brand-ribbon b:nth-child(3n){color:var(--green)}
.vision-heading{margin-bottom:65px}.vision .wrap{position:relative;z-index:3}.vision-grid{display:grid;grid-template-columns:1fr 1.05fr;gap:90px;align-items:start}.vision-copy{color:var(--muted)}.vision-copy .lead{margin-bottom:24px}.photo-window{position:relative;overflow:hidden;background:#c6d6e2}.photo-window>img{position:absolute;left:0;top:-160px;width:100%;max-width:none;height:calc(100% + 320px);object-fit:cover;will-change:transform}.vision-image{height:520px;clip-path:polygon(0 0,100% 0,100% 88%,90% 88%,90% 100%,0 100%)}.vision-image img{object-position:46% center}.vision-image figcaption{position:absolute;bottom:0;left:0;right:0;padding:60px 25px 25px;color:white;background:linear-gradient(transparent,#001b39d9);font-size:15px}.principles{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:22px;margin-top:35px;border-top:1px solid var(--line);padding-top:25px}.principles span{font-size:12px;color:#6c7e91}.principles h3{font-size:20px;margin:9px 0}.principles p{font-size:14px;line-height:1.6}.section-motifs .p1{right:3%;top:22%;width:80px;height:80px;color:#01285525}.section-motifs .p2{right:5%;top:73%;width:18px;height:18px}.section-motifs .p3{left:1%;top:35%;width:24px;height:24px;opacity:.65}
.expertise{background:var(--deep);color:white}.expertise-grid{display:grid;grid-template-columns:.85fr 1.2fr;gap:100px}.expertise-intro{position:sticky;top:125px;align-self:start}.expertise-intro h2{font-size:clamp(37px,3.6vw,52px)}.expertise-intro>p:not(.eyebrow){color:#bccfe2;margin-top:25px}.expertise-intro>.text-link{margin-top:25px}.expertise-image{height:250px;margin-top:38px}.expertise-image img{top:-100px;height:calc(100% + 200px);object-position:40% center}.image-tag{position:absolute;bottom:0;left:0;right:0;background:linear-gradient(transparent,#001b39e6);padding:50px 20px 15px;font-size:14px;color:#e3edf6}.service{border-top:1px solid #ffffff29}.service summary{list-style:none;display:grid;grid-template-columns:27px 1fr 26px;gap:15px;align-items:center;padding:29px 0}.service summary::-webkit-details-marker,.faq summary::-webkit-details-marker{display:none}.service-number{font-size:12px;color:#96adc5}.service-title{font-size:24px;line-height:1.2;letter-spacing:-.025em}.service-plus{width:26px;height:26px;border:1px solid #617f9d;position:relative}.service[open] .service-plus{background:var(--gold);border-color:var(--gold)}.service summary:hover .service-title{color:var(--blue)}.service-body{padding:0 0 29px 42px;font-size:16px;color:#c4d4e4}.service-body ul{list-style:none;padding:0;margin:20px 0}.service-body li{padding-left:16px;position:relative;margin:6px 0}.service-body li:before{content:"";position:absolute;width:5px;height:5px;left:0;top:.7em;background:var(--blue)}.service-body .deliverable{font-size:14px;padding:16px 0;border-top:1px solid #ffffff18;margin:0}.deliverable strong{color:white;font-weight:600}.service-body>a{color:#f1c574;font-size:14px;display:inline-block;padding:7px 0}.service-note{font-size:13px;color:#98b0c9;border-top:1px solid #ffffff29;padding-top:26px}.expertise-pixel{bottom:40px;left:27%;width:24px;height:24px;opacity:.6}
.section-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:50px;margin-bottom:55px}.section-heading>p{font-size:16px;color:var(--muted);max-width:300px;margin-bottom:6px}.use-cases{display:grid;grid-template-columns:repeat(3,1fr);border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.use-case{padding:34px 35px 30px 0;display:flex;flex-direction:column;position:relative}.use-case+.use-case{padding-left:35px;border-left:1px solid var(--line)}.use-case:last-child{padding-right:0}.case-index{font-size:12px;letter-spacing:.14em;color:var(--muted);font-weight:700}.use-case h3{font-size:28px;line-height:1.3;margin:23px 0;letter-spacing:-.035em}.use-case>p{color:var(--muted);font-size:16px;flex:1}.case-path{display:block;font-size:12px;font-weight:600;color:#536c85;margin:25px 0 15px}.use-case>a{display:flex;justify-content:space-between;align-items:center;gap:12px;font-size:14px;font-weight:600;padding:12px 0}.use-case:hover:before{transform:scaleX(1)}.use-case:before{content:"";position:absolute;top:-1px;left:0;right:0;height:3px;background:var(--gold);transform:scaleX(0);transform-origin:left;transition:transform .35s}
.immersive{min-height:780px;height:90svh;max-height:1100px;display:flex;align-items:center;background:var(--navy);color:white;overflow:hidden}.immersive-photo{position:absolute;inset:0;z-index:-3;overflow:hidden}.immersive-photo img{position:absolute;width:100%;max-width:none;height:calc(100% + 460px);top:-230px;object-fit:cover;object-position:center;will-change:transform}.immersive-shade{position:absolute;inset:0;background:linear-gradient(90deg,#001b39e8,#0128558a 55%,#01285514),linear-gradient(0deg,#001b3944,transparent);z-index:-2}.immersive-copy{position:relative;z-index:3;padding:80px 0}.immersive h2{font-size:clamp(55px,6.9vw,100px);line-height:1.04}.immersive-copy>p:not(.eyebrow){max-width:420px;font-size:18px;line-height:1.6;color:#deebf7;margin:28px 0}.immersive-motifs .p1{right:17%;top:24%;width:80px;height:80px}.immersive-motifs .p2{right:5%;top:65%;width:40px;height:40px}.immersive-motifs .p3{right:30%;top:74%;width:100px;height:100px;color:#ffffff80}.immersive-motifs .p4{right:5%;top:30%;width:18px;height:18px}
.approach{background:var(--pale)}.soft-glow{position:absolute;width:500px;height:500px;background:#47acfb20;border-radius:50%;filter:blur(70px);left:-180px;top:35%;z-index:-1}.method-grid{display:grid;grid-template-columns:1fr 1fr;gap:100px}.method-intro{position:sticky;top:150px;align-self:start}.method-intro>p:not(.eyebrow){color:var(--muted);max-width:430px;margin-top:28px}.method-mark{position:relative;height:160px;max-width:330px;margin-top:55px}.method-mark .gold{width:72px;height:72px;left:15px;top:20px}.method-mark .blue{width:48px;height:48px;left:110px;top:65px}.method-mark .green{width:24px;height:24px;left:185px;top:95px}.method-mark .outline{width:70px;height:70px;left:230px;top:15px;color:#8ea5bc}.method-list{list-style:none;margin:0;padding:0}.method-list li{display:grid;grid-template-columns:45px 1fr;gap:25px;padding:65px 0;border-top:1px solid #bccbda}.method-list li:first-child{padding-top:18px;border:0}.method-number{font-size:13px;color:var(--muted);padding-top:4px}.overline{font-size:12px;font-weight:700;letter-spacing:.13em;color:#5b7590}.method-list h3{font-size:43px;margin:17px 0 23px}.method-list li>div>p:not(.overline){color:var(--muted);font-size:17px}.method-result{margin-top:28px;padding-left:20px;border-left:3px solid var(--gold)}.method-result span{font-size:11px;letter-spacing:.12em;font-weight:700}.method-result p{font-size:15px;margin-top:8px}.method-list li:nth-child(2) .method-result{border-color:var(--blue)}.method-list li:nth-child(3) .method-result{border-color:var(--green)}
.talents-heading{display:flex;justify-content:space-between;gap:40px;align-items:flex-end;margin-bottom:50px}.talents-heading h2{font-size:clamp(35px,3.8vw,55px)}.talents-heading>.text-link{flex-shrink:0;margin-bottom:8px}.academy-photo{height:540px}.academy-photo img{object-position:center}.academy-badge{position:absolute;bottom:0;left:0;background:var(--navy);color:white;padding:26px 34px;z-index:2}.academy-badge>span{font-size:11px;font-weight:700;letter-spacing:.14em;color:#c2d7e9}.academy-badge strong{display:block;font-size:31px;letter-spacing:-.025em;line-height:1.2;margin-top:14px;font-weight:500}.academy-photo>.pixel{right:5%;top:30%;width:38px;height:38px}.talent-bottom{display:grid;grid-template-columns:1fr 1fr;gap:100px;margin-top:45px}.talent-bottom>div{color:var(--muted);font-size:17px}
.project{background:var(--navy);color:white}.project-grid{display:grid;grid-template-columns:1fr 1fr;gap:100px;position:relative;z-index:3}.project h2{font-size:clamp(42px,4.3vw,64px)}.project-lead{font-size:25px;line-height:1.5;color:#e1edf8;margin-top:30px}.project-description{font-size:17px;color:#bcd0e4;max-width:430px}.project-motifs .p1{width:64px;height:64px;left:3%;top:80%}.project-motifs .p2{left:42%;top:75%;width:24px;height:24px}.project-motifs .p3{left:36%;top:20%;width:16px;height:16px;opacity:.6}.form-note{font-size:12px;line-height:1.65;color:#bcd0e4;margin-top:15px}.form-status{font-size:14px;color:#ffe0a3;margin-top:12px}.send-brief{margin-top:20px}.contact-details{margin-top:28px;border-top:1px solid #ffffff33;padding-top:22px;font-size:15px}.contact-links{display:flex;flex-direction:column;gap:10px;margin-top:14px;align-items:start}.contact-links a{border-bottom:1px solid #abc1d6;overflow-wrap:anywhere}.contact-links a:hover{color:var(--gold)}
.faq{display:grid;grid-template-columns:.8fr 1.2fr;gap:100px}.faq-list details{border-top:1px solid var(--line)}.faq-list details:last-child{border-bottom:1px solid var(--line)}.faq summary{list-style:none;display:flex;justify-content:space-between;gap:30px;align-items:center;font-size:18px;line-height:1.5;padding:24px 0}.faq details>p{color:var(--muted);font-size:16px;padding:0 35px 25px 0}
.site-footer{background:var(--deep);color:white;padding:65px 0 25px}.footer-top{display:grid;grid-template-columns:1fr 1fr 180px;gap:70px;padding-bottom:50px}.footer-wordmark{display:block;font-size:50px;font-weight:750;line-height:1;letter-spacing:-.04em;width:160px}.footer-wordmark span{display:block;font-size:16px;font-weight:400;letter-spacing:.22em;margin:10px 0 0 2px}.brand-stripe{width:153px;height:4px;margin-top:17px;background:linear-gradient(90deg,var(--gold) 45%,transparent 45% 48%,var(--blue) 48% 78%,transparent 78% 82%,var(--green) 82% 89%,transparent 89% 93%,var(--blue) 93%)}.footer-top>div>p{font-size:13px;color:#c0d2e6;margin-top:14px}.footer-statement{font-size:27px;line-height:1.4;letter-spacing:-.02em}.footer-top nav{display:flex;flex-direction:column;gap:11px;font-size:14px;color:#bdcfe0}.footer-top nav a:hover{color:var(--gold)}.footer-bottom{border-top:1px solid #ffffff26;padding-top:24px;display:flex;align-items:center;justify-content:space-between;gap:25px;font-size:13px;color:#b3c8dc}.motion-toggle{display:flex;align-items:center;gap:10px;background:none;color:#b3c8dc;font-size:13px;padding:8px 0}.motion-toggle:disabled{cursor:default}.image-disclosure{color:#90a9c0;font-size:12px;margin-top:25px}.noscript-message{padding:20px;text-align:center}
.js-ready [data-reveal]{opacity:0;transform:translate3d(var(--rx,0px),var(--ry,38px),0) scale(var(--rs,1));filter:blur(var(--rb,6px));transition:opacity .85s var(--ease),transform 1s var(--ease),filter .9s var(--ease);transition-delay:var(--reveal-delay,0s)}.js-ready [data-reveal].is-visible{opacity:1;--rx:0px;--ry:0px;--rs:1;--rb:0px}.js-ready .hero-content>*{animation:enter 1.1s var(--ease) both}.js-ready .hero-content h1{animation-delay:.1s}.js-ready .hero-copy{animation-delay:.18s}.js-ready .hero-actions{animation-delay:.24s}.js-ready .hero-location{animation-delay:.3s}@keyframes enter{from{opacity:0;transform:translateY(30px);filter:blur(6px)}to{opacity:1;transform:translateY(0);filter:blur(0)}}html[data-motion="off"]{scroll-behavior:auto}html[data-motion="off"] [data-reveal]{opacity:1;transform:none;filter:none;transition:none}html[data-motion="off"] [data-scroll],html[data-motion="off"] [data-ribbon]{transform:none!important}html[data-motion="off"] .hero-content>*{animation:none}
@media(min-width:1800px){.hero-content{padding-top:100px;padding-bottom:145px}.hero{min-height:900px}}
@media(max-width:1150px){.wrap{width:calc(100% - 72px)}.site-header{padding-inline:36px;gap:20px}.desktop-nav{gap:18px;font-size:13px}.header-cta{padding:10px 14px;gap:12px}.vision-grid,.expertise-grid,.method-grid,.project-grid{gap:50px}.section{padding-block:96px}.service-title{font-size:21px}.vision-image{height:540px}.use-case{padding-right:25px}.use-case+.use-case{padding-left:25px}.use-case h3{font-size:25px}.talents-heading{display:block}.talents-heading>.text-link{margin-top:30px}.talent-bottom,.faq{gap:60px}}
@media(max-width:900px){.desktop-nav{display:none}.site-header{gap:18px}.header-cta{margin-left:auto}.menu-toggle{display:flex;flex:none;flex-direction:column;justify-content:center;gap:7px;width:44px;height:44px;padding:11px;background:none;border:1px solid var(--line)}.mobile-nav{position:absolute;top:var(--header);left:0;right:0;background:white;padding:15px 36px 25px;box-shadow:0 15px 25px #001b3914;max-height:calc(100svh - var(--header));overflow-y:auto;overscroll-behavior:contain}.mobile-nav a{display:block;font-size:20px;padding:12px 0}.vision-grid,.expertise-grid{grid-template-columns:1fr;gap:45px}.vision-image{height:480px;max-width:660px}.vision-copy{max-width:680px}.expertise-intro{position:relative;top:0;display:grid;grid-template-columns:1fr 1fr;column-gap:40px}.expertise-intro .eyebrow,.expertise-intro h2{grid-column:1}.expertise-intro>.text-link{justify-self:start;grid-column:1}.expertise-intro>.expertise-image{grid-column:2;grid-row:1/5;margin:0;height:100%;min-height:300px}.service-title{font-size:25px}.service-body{max-width:700px}.service-note{max-width:640px}.use-cases{grid-template-columns:1fr}.use-case,.use-case+.use-case,.use-case:last-child{padding:30px 0;border:0}.use-case+.use-case{border-top:1px solid var(--line)}.use-case h3 br{display:none}.use-case h3{font-size:29px;margin-block:15px}.use-case>p{max-width:590px}.use-case>a{justify-content:flex-start;gap:25px}.case-path{margin-top:20px}.section-heading{display:block}.section-heading>p{margin-top:25px;max-width:none}.method-grid{grid-template-columns:.8fr 1fr;gap:45px}.method-intro h2{font-size:38px}.method-mark{transform:scale(.8);transform-origin:left top}.method-list li{grid-template-columns:25px 1fr;gap:15px}.method-list h3{font-size:36px}.project-grid{grid-template-columns:1fr;gap:45px}.project-grid>div{max-width:600px}.project-motifs .p1{left:83%;top:10%}.project-motifs .p2{left:85%;top:35%}.project-motifs .p3{left:90%;top:85%}.faq{grid-template-columns:1fr;gap:40px}.footer-top{gap:40px;grid-template-columns:1fr 1fr 150px}.footer-statement{font-size:24px}}
@media(max-width:600px){:root{--header:74px}.wrap{width:calc(100% - 40px)}body{font-size:16px}.site-header{padding:0 20px;gap:12px}.brand,.brand img{width:92px}.brand img{height:70px}.header-cta{font-size:12px;gap:8px;padding:9px 12px}.mobile-nav{padding-inline:25px}.hero{min-height:calc(100svh - var(--header))}.hero-content{padding:78px 0 105px}.hero-photo{inset:-80px -25% -180px -65%;background-position:64% center}.hero-shade{background:linear-gradient(90deg,#001b39e6,#01285585),linear-gradient(0deg,#001b39ee 0%,#012855ad 48%,#01285522 100%)}.hero .eyebrow{font-size:10px;letter-spacing:.12em;margin-bottom:25px;gap:10px}.mini-mark{width:7px;height:7px;box-shadow:12px 0 0 -1px var(--blue);margin-right:10px}h1{font-size:clamp(40px,11.3vw,66px);line-height:1.1}.hero-copy{font-size:17px;line-height:1.6;margin-top:23px;max-width:360px}.hero-actions{gap:21px;margin-top:26px}.button{min-height:55px;padding:14px 20px;font-size:14px;gap:25px}.hero-actions .text-link{font-size:14px}.hero-location{font-size:12px;max-width:290px}.hero-bottom>span:last-child{display:none}.hero-bottom>span:first-child{font-size:12px}.hero-bottom a{font-size:10px;gap:10px}.hero-motifs .p1{width:28px;height:28px;right:8%;top:7%}.hero-motifs .p2{width:48px;height:48px;right:6%;top:82%;opacity:.5}.hero-motifs .p3{right:12%;top:64%;width:12px;height:12px}.hero-motifs .p4{right:21%;top:10%;width:10px;height:10px}.hero-motifs .p5,.hero-motifs .p6{display:none}.brand-ribbon{padding:16px 0}.brand-ribbon>div{font-size:20px;gap:28px}.section{padding-block:72px}.eyebrow{font-size:11px;margin-bottom:23px}h2{font-size:37px;line-height:1.15}.lead{font-size:23px}.vision-heading{margin-bottom:35px}.vision-grid{gap:32px}.vision-image{height:390px}.vision-copy{font-size:16px}.principles{gap:16px}.principles h3{font-size:18px}.principles p{font-size:13px}.section-motifs{opacity:.6}.section-motifs .p1{width:38px;height:38px;right:0}.section-motifs .p3{left:0;width:12px;height:12px}.expertise-intro{display:block}.expertise-intro h2{font-size:38px}.expertise-intro>.expertise-image{height:235px;min-height:0;margin-top:28px}.expertise-intro>p:not(.eyebrow){font-size:16px;margin-top:20px}.service summary{padding:25px 0;grid-template-columns:21px 1fr 25px;gap:12px}.service-title{font-size:21px;line-height:1.3}.service-number{font-size:11px}.service-body{padding-left:33px;font-size:16px}.service-body .deliverable,.service-body>a{font-size:14px}.service-note{font-size:12px}.section-heading{margin-bottom:35px}.use-case h3{font-size:27px}.use-case>a{font-size:14px}.case-path{font-size:11px}.immersive{height:85svh;min-height:670px;max-height:none}.immersive-copy{padding:65px 0}.immersive h2{font-size:clamp(48px,12vw,70px)}.immersive-copy>p:not(.eyebrow){font-size:17px;max-width:310px}.immersive-photo img{object-position:38% center}.immersive-shade{background:linear-gradient(90deg,#001b39dc,#01285555),linear-gradient(0deg,#001b39a6,transparent)}.immersive-motifs .p1{right:6%;top:14%;width:30px;height:30px}.immersive-motifs .p2{right:6%;top:79%;width:20px;height:20px}.immersive-motifs .p3{right:7%;top:54%;width:45px;height:45px}.immersive-motifs .p4{display:none}.method-grid{grid-template-columns:1fr;gap:35px}.method-intro{position:relative;top:0}.method-intro h2{font-size:38px}.method-intro>p:not(.eyebrow){margin-top:22px}.method-mark{height:115px;width:100%;max-width:300px;margin-top:20px;transform:scale(.7);margin-bottom:-35px}.method-list li,.method-list li:first-child{padding:35px 0;border-top:1px solid #bccbda;grid-template-columns:24px 1fr;gap:12px}.method-list h3{font-size:35px;margin:15px 0 18px}.method-list li>div>p:not(.overline){font-size:16px}.method-result{margin-top:22px}.overline{font-size:11px}.method-result span{font-size:10px}.method-result p{font-size:14px}.talents-heading{margin-bottom:30px}.talents-heading h2{font-size:35px}.talents-heading>.text-link{margin-top:23px}.academy-photo{height:420px}.academy-photo img{object-position:35% center}.academy-badge{padding:20px 23px}.academy-badge strong{font-size:25px}.academy-badge>span{font-size:10px}.academy-photo>.pixel{width:24px;height:24px}.talent-bottom{grid-template-columns:1fr;gap:24px;margin-top:30px}.talent-bottom>div{font-size:16px}.project h2{font-size:40px}.project-lead{font-size:23px;margin-top:24px}.project-description{font-size:16px}.project-motifs{opacity:.3}.project-motifs .p1{width:30px;height:30px;left:88%}.faq summary{font-size:17px;gap:22px}.faq details>p{font-size:16px;padding-right:15px}.footer-top{grid-template-columns:1fr 1fr;gap:30px}.footer-top nav{grid-row:1;grid-column:2;font-size:13px}.footer-statement{grid-column:1/-1;font-size:24px}.footer-wordmark{font-size:40px;width:140px}.footer-wordmark span{font-size:13px}.brand-stripe{width:135px}.footer-top>div>p{font-size:12px}.footer-bottom{flex-wrap:wrap;justify-content:flex-start;gap:15px 25px;font-size:12px}.motion-toggle{font-size:12px}.image-disclosure{font-size:11px}.site-footer{padding-top:50px}}
@media(max-width:380px){.header-cta{display:none}.menu-toggle{margin-left:auto}.hero-content{padding-top:62px}h1{font-size:39px}.hero .eyebrow{font-size:9px;letter-spacing:.08em}.hero-copy{font-size:16px}.hero-actions{gap:18px}.hero-location{font-size:11px}.principles{grid-template-columns:1fr;gap:17px}.principles>div{display:grid;grid-template-columns:24px 1fr;gap:4px 10px}.principles>div>p{grid-column:2}.principles h3{margin:0}.principles span{padding-top:1px}.service-title{font-size:19px}h2{font-size:34px}.footer-top{gap:20px}.footer-top nav{font-size:12px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation-duration:.01ms!important;transition-duration:.01ms!important;animation-iteration-count:1!important}.js-ready [data-reveal]{opacity:1;transform:none;filter:none}[data-scroll],[data-ribbon]{transform:none!important}.hero-content>*{animation:none!important}}
@media print{.site-header,.motifs,.pixel,.brand-ribbon,.motion-toggle,.nia-card,.nia-steps,.nia-fab{display:none}.section{padding:35px 0}.wrap{width:100%}body{font-size:12pt}.hero{min-height:auto}.hero-content{padding:30px 0}.hero-bottom{display:none}h1{font-size:40pt}h2{font-size:28pt}.js-ready [data-reveal]{opacity:1;transform:none;filter:none}.expertise-intro,.method-intro{position:static}.immersive{height:500px;min-height:0}.photo-window{break-inside:avoid}.service{break-inside:avoid}}

@media(max-width:600px){.photo-window>img{top:-80px;height:calc(100% + 160px)}.vision-image{height:330px}.immersive-photo img{top:-100px;height:calc(100% + 200px)}}

/* ================================================================
   Ajouts du 14/09/2026 — design, responsive, effets.
   Le zoom est desactive a la demande du client : pour le retablir,
   retirer `touch-action:pan-x pan-y` sur html (plus haut), le bloc
   anti-zoom de main.js et maximum-scale/user-scalable dans index.html.
   ================================================================ */

/* --- Etats presses : au doigt, le survol n existe pas --- */
.button,.header-cta,.motion-toggle,.menu-toggle,.language-switch button{transition:background .2s,box-shadow .2s,color .2s,transform .12s var(--ease),filter .24s var(--ease),opacity .24s var(--ease)}
.button:active,.header-cta:active,.motion-toggle:active,.menu-toggle:active,.language-switch button:active{transform:translateY(1px) scale(.985)}
.service summary:active,.faq summary:active{opacity:.7}
.use-case:active>a,.text-link:active{opacity:.7}

/* --- Survol reserve aux souris --- */
@media (hover:none){
  /* Au doigt, le :hover reste colle apres l appui : on fige les icones. */
  .button:hover .ico,.header-cta:hover .ico,.text-link:hover .ico,.use-case>a:hover .ico,
  .service-body>a:hover .ico,.footer-top nav a:hover .ico,.hero-bottom a:hover .ico,
  .footer-bottom a:hover .ico{transform:none}
  .button:hover .ico-go,.header-cta:hover .ico-go,.text-link:hover .ico-go,
  .use-case>a:hover .ico-go,.service-body>a:hover .ico-go,
  .footer-top nav a:hover .ico-go{transform:rotate(-45deg)}
  .button-gold:hover{background:var(--gold);box-shadow:none}
  .text-link:hover{color:inherit}
  .light-link:hover{color:#fff}
}

/* --- Cibles tactiles portees a 44 px --- */
@media (pointer:coarse){
  .footer-top nav a,.footer-bottom a,.motion-toggle{min-height:44px;display:inline-flex;align-items:center}
  .footer-top nav{gap:2px}
  .footer-bottom{gap:10px 25px}
  .hero-bottom a{min-height:44px;display:inline-flex;align-items:center}
  /* .text-link garde son soulignement colle au texte : on etend la zone tactile
     par un calque, au lieu de gonfler la boite avec min-height. */
  .text-link{position:relative}
  .text-link:after{content:"";position:absolute;left:0;right:0;top:50%;height:44px;transform:translateY(-50%)}
}

/* --- Encoches et barres systeme (iPhone en paysage) --- */
@supports (padding:env(safe-area-inset-left)){
  /* le contenu vit dans .wrap : c est la qu il faut degager l encoche, sinon
     viewport-fit=cover fait passer les debuts de ligne sous la decoupe. */
  .wrap{padding-left:env(safe-area-inset-left,0px);padding-right:env(safe-area-inset-right,0px)}
  .skip-link{left:max(15px,env(safe-area-inset-left,0px))}
  .site-footer{padding-bottom:calc(30px + env(safe-area-inset-bottom,0px))}
  .site-header{padding-left:max(56px,env(safe-area-inset-left,0px),calc((100% - 1280px)/2));padding-right:max(56px,env(safe-area-inset-right,0px),calc((100% - 1280px)/2))}
  .mobile-nav{padding-left:max(36px,env(safe-area-inset-left,0px));padding-right:max(36px,env(safe-area-inset-right,0px))}
  /* chaque palier de gouttiere doit etre repris ici, sinon ce bloc ecrase les media queries plus haut */
  @media (max-width:1150px){
    .site-header{padding-left:max(36px,env(safe-area-inset-left,0px));padding-right:max(36px,env(safe-area-inset-right,0px))}
  }
  @media (max-width:600px){
    .site-header{padding-left:max(20px,env(safe-area-inset-left,0px));padding-right:max(20px,env(safe-area-inset-right,0px))}
    .mobile-nav{padding-left:max(25px,env(safe-area-inset-left,0px));padding-right:max(25px,env(safe-area-inset-right,0px))}
  }
}

/* --- Apparition au defilement : directions et cascade ---
   Le rang dans le parent est pose par main.js via --reveal-delay.
   La direction est posee par main.js via data-reveal-dir. */
.js-ready [data-reveal][data-reveal-dir="left"]{--rx:-40px;--ry:14px}
.js-ready [data-reveal][data-reveal-dir="right"]{--rx:40px;--ry:14px}
.js-ready [data-reveal][data-reveal-dir="zoom"]{--rx:0px;--ry:0px;--rs:.94;--rb:8px}
/* redeclare apres les directions : meme specificite, doit gagner a l arrivee */
.js-ready [data-reveal].is-visible{opacity:1;--rx:0px;--ry:0px;--rs:1;--rb:0px}
/* la sortie est plus rapide que l entree, et suit le bouton « Reduire les animations » */
html[data-motion="on"] [data-reveal]:not(.is-visible){transition:opacity .35s var(--ease),transform .4s var(--ease),filter .35s var(--ease);transition-delay:0s}

/* --- Accordeons : ouverture en douceur --- */
@supports (interpolate-size:allow-keywords){
  html{interpolate-size:allow-keywords}
  html[data-motion="on"] .service[open] .service-body,html[data-motion="on"] .faq-list details[open]>p{animation:nuya-unfold .32s var(--ease)}
  @keyframes nuya-unfold{from{height:0;opacity:0}to{height:auto;opacity:1}}
}

/* ================================================================
   Bouton flottant « Parler a N IA DIGIT ».
   Presence permanente, discrete : il ne s affiche qu une fois le hero
   passe, et s efface des que l assistant ou le pied de page sont a
   l ecran — la ou l invitation serait redondante.
   ================================================================ */
.nia-fab{
  position:fixed;
  right:max(24px,env(safe-area-inset-right,0px));
  bottom:max(24px,env(safe-area-inset-bottom,0px));
  z-index:40;
  display:grid;grid-template-columns:auto 0fr;align-items:center;
  min-height:56px;padding:9px;
  background:var(--navy);color:#fff;border-radius:999px;
  box-shadow:0 0 0 1.5px #de9b2273,0 12px 32px #00122938,0 2px 6px #00122926;
  opacity:0;transform:translateY(14px) scale(.92);pointer-events:none;visibility:hidden;
  transition:opacity .3s var(--ease),transform .3s var(--ease),
             grid-template-columns .3s var(--ease),background .2s,box-shadow .2s,visibility .3s;
}
.nia-fab.is-shown{opacity:1;transform:none;pointer-events:auto;visibility:visible}
.nia-fab:hover{background:#01346f;box-shadow:0 0 0 1.5px var(--gold),0 16px 40px #00122945,0 2px 6px #00122926}
.nia-fab:active{transform:translateY(1px) scale(.985)}
.nia-fab-mark{display:grid;place-items:center;width:38px;height:38px;flex:none}
.nia-fab-text{overflow:hidden;min-width:0}
.nia-fab-text>span{display:block;white-space:nowrap;font-size:15px;font-weight:650;letter-spacing:-.01em;padding:0 16px 0 13px}
/* Le libelle se deploie au survol (souris) et toujours au focus clavier. */
@media (hover:hover) and (pointer:fine){
  .nia-fab:hover{grid-template-columns:auto 1fr}
}
.nia-fab:focus-visible{grid-template-columns:auto 1fr}
@media (max-width:479px){.nia-fab{padding:8px}}
/* Animations reduites : le bouton parait sans glisser ni grossir. */
html[data-motion="off"] .nia-fab{transition:opacity .12s linear}
html[data-motion="off"] .nia-fab:not(.is-shown){transform:none}
html[data-motion="off"] .nia-fab:active{transform:none}

/* ================================================================
   Iconographie — Font Awesome Free 6.7.2, icônes sous licence CC BY 4.0.
   Servie en sprite SVG inline : 4 Ko et aucune requête réseau, au lieu
   d'environ 180 Ko de fonte + CSS — décisif sur une connexion lente.
   Tout se colore par currentColor et se dimensionne par font-size.
   ================================================================ */
.ico{display:inline-block;width:1em;height:1em;fill:currentColor;flex:none;
     vertical-align:-.125em;transition:transform .28s var(--ease),opacity .22s var(--ease),color .22s}
/* La diagonale de la charte : arrow-right incliné, plutôt qu'un caractère ↗. */
.ico-go{transform:rotate(-45deg)}

.button .ico{font-size:20px}
.button:hover .ico-go{transform:rotate(-45deg) translateX(4px)}
.button:hover .ico-down{transform:translateY(4px)}
.header-cta .ico{font-size:15px;color:var(--gold)}
.header-cta:hover .ico-go{transform:rotate(-45deg) translateX(3px)}
.text-link .ico{font-size:15px}
.text-link:hover .ico-go{transform:rotate(-45deg) translateX(3px)}
.text-link:hover .ico-down{transform:translateY(3px)}
.use-case>a .ico,.service-body>a .ico,.mobile-nav a .ico,.footer-top nav a .ico{font-size:14px}
/* Les cartes « Vos projets » gardent leur unique signal colore. */
.use-case>a .ico{font-size:17px;color:#2b82bf}
/* Ces liens ne sont pas des conteneurs flex : l'icone a besoin de sa propre marge. */
.service-body>a{display:inline-flex;align-items:center;gap:10px}
.mobile-nav a .ico,.footer-top nav a .ico{margin-left:9px}
.use-case>a:hover .ico-go,.service-body>a:hover .ico-go,.footer-top nav a:hover .ico-go{transform:rotate(-45deg) translateX(3px)}
.hero-bottom a .ico{font-size:13px}
.hero-bottom a:hover .ico-down{transform:translateY(3px)}
.footer-bottom a{display:inline-flex;align-items:center;gap:8px}
.footer-bottom a .ico{font-size:13px}
.footer-bottom a:hover .ico-up{transform:translateY(-3px)}
.contact-links a .ico{font-size:13px;margin-left:8px}

/* Accordéons : un chevron qui bascule, au lieu d'un plus dessiné au pixel. */
.service-plus{display:grid;place-items:center;transition:background .25s var(--ease),border-color .25s var(--ease)}
.service-plus .ico{font-size:12px;color:#cddcea}
.service[open] .service-plus .ico{transform:rotate(180deg);color:var(--deep)}
.faq-chevron{display:grid;place-items:center;width:26px;height:26px;flex:none;color:var(--muted);transition:color .25s}
.faq-chevron .ico{font-size:14px}
.faq details[open] .faq-chevron{color:var(--navy)}
.faq details[open] .faq-chevron .ico{transform:rotate(180deg)}

/* Menu : les barres cèdent la place à la croix. */
@media (max-width:900px){
  .menu-toggle{display:grid;place-items:center;gap:0;padding:0}
}
.menu-toggle .ico{grid-area:1/1;font-size:17px;color:var(--navy)}
.menu-toggle .ico-xmark{opacity:0;transform:rotate(-90deg)}
.menu-toggle[aria-expanded="true"] .ico-bars{opacity:0;transform:rotate(90deg)}
.menu-toggle[aria-expanded="true"] .ico-xmark{opacity:1;transform:none}

/* Animations : pause quand elles tournent, lecture quand elles sont coupées. */
.motion-icon{display:grid;place-items:center;width:16px;height:16px;flex:none}
.motion-icon .ico{grid-area:1/1;font-size:12px}
.motion-icon .ico-play{opacity:0}
.motion-toggle[aria-pressed="true"] .ico-pause{opacity:0}
.motion-toggle[aria-pressed="true"] .ico-play{opacity:1}

/* Assistant */
.ico-mic{font-size:19px}
.ico-send{font-size:18px}
.ico-robot{font-size:21px}

/* ================================================================
   Passage français / anglais : le contenu se floute, change, revient.
   Le flou n'est jamais posé sur un ancêtre d'élément fixe ou collant —
   cela les ferait basculer en position absolue. On cible donc le
   contenu et les éléments de l'en-tête un par un, jamais <html>,
   <body>, ni la pastille flottante.
   ================================================================ */
main,.site-footer,.site-header>.brand,.site-header>.desktop-nav,.site-header>.mobile-nav{
  transition:opacity .26s var(--ease),filter .26s var(--ease);
}
/* Entree rapide pour que le flou soit etabli au moment de l echange,
   retour plus doux une fois le nouveau texte en place. */
html.is-translating main,html.is-translating .site-footer,
html.is-translating .site-header>.brand,html.is-translating .site-header>.desktop-nav,
html.is-translating .site-header>.mobile-nav,html.is-translating .site-header>.header-cta,
html.is-translating .site-header>.menu-toggle{transition-duration:.16s}
html.is-translating main,
html.is-translating .site-footer,
html.is-translating .site-header>.brand,
html.is-translating .site-header>.desktop-nav,
html.is-translating .site-header>.mobile-nav,
html.is-translating .site-header>.header-cta,
html.is-translating .site-header>.menu-toggle{
  opacity:.4;filter:blur(5px);
}
/* Animations réduites : le contenu change sans flou ni fondu. */
html[data-motion="off"].is-translating main,
html[data-motion="off"].is-translating .site-footer,
html[data-motion="off"].is-translating .site-header>.brand,
html[data-motion="off"].is-translating .site-header>.desktop-nav,
html[data-motion="off"].is-translating .site-header>.mobile-nav,
html[data-motion="off"].is-translating .site-header>.header-cta,
html[data-motion="off"].is-translating .site-header>.menu-toggle{opacity:1;filter:none}
