@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Manrope:wght@400;500;600;700;800&display=swap');
:root{--navy:#0d1934;--cream:#fcfaf5;--lavender:#e9e2ff;--muted:#626574;--accent:#b9a7ed;--line:#dedbe4;--hero:url('assets/hero-v2.webp')}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:30px}body{margin:0;background:var(--cream);color:var(--navy);font-family:'DM Sans',sans-serif;font-size:16px;line-height:1.6}h1,h2,h3,p,figure{margin:0}h1,h2,h3,.wordmark{font-family:Manrope,sans-serif}h1,h2{font-weight:800;line-height:1.04;letter-spacing:-.055em}h1{font-size:clamp(44px,5.4vw,84px)}h2{font-size:clamp(34px,3.7vw,58px)}h3{font-size:21px;line-height:1.3;letter-spacing:-.04em}p{color:var(--muted)}a{color:inherit;text-decoration:none}button{font:inherit;cursor:pointer}a,button{-webkit-tap-highlight-color:transparent}a:focus-visible,button:focus-visible{outline:3px solid #7251c5;outline-offset:6px}a:hover{opacity:.8}button:hover{filter:brightness(1.1)}.wrap{width:min(1280px,88%);margin-inline:auto}.section{padding-block:100px}.eyebrow{text-transform:uppercase;letter-spacing:.25em;font-size:12px;font-weight:700;margin-bottom:22px;color:inherit}.wordmark{font-size:24px;font-weight:800;letter-spacing:.015em}.wordmark span{color:#40346e}.hero{position:relative;min-height:810px;height: min(920px,65vw);background-image:var(--hero);background-size:cover;background-position:center;color:var(--navy);isolation:isolate}.nav{display:flex;align-items:center;justify-content:space-between;padding-block:27px}.navlinks{display:flex;align-items:center;gap:35px;font-size:15px}.button{display:inline-flex;justify-content:center;align-items:center;gap:28px;background:var(--navy);color:white;border:1px solid var(--navy);border-radius:100px;padding:14px 25px;font-size:14px;font-weight:600;min-height:49px;white-space:nowrap}.button span{font-size:19px}.button.outline{background:transparent;color:var(--navy);padding:9px 23px;min-height:43px}.hero-copy{padding-top:45px}.hero-copy .intro{font-size:20px;line-height:1.5;max-width:480px;margin:20px 0 27px;color:#424561}.actions{display:flex;align-items:center;gap:28px}.text-link{border:0;border-bottom:1px solid;background:transparent;padding:12px 0;color:var(--navy);font-size:14px;font-weight:600}.text-link span{margin-left:16px}.hero-bottom{position:absolute;bottom:82px;left:6%;display:flex;justify-content:space-between;color:white;text-transform:uppercase;font-size:11px;letter-spacing:.18em;text-shadow:0 1px 8px #14203d}.cream-shell{position:relative;margin:-54px 24px 0;background:var(--cream);border-radius:54px 54px 0 0;padding-top:1px}.cream-shell .wrap{width:min(1280px,91%)}.brands{padding:55px 0 0}.brands h2{font-size:clamp(26px,3vw,43px)}.brands .eyebrow{margin-bottom:12px}.section-top{display:flex;justify-content:space-between;align-items:center;gap:24px}.slider-control{border:1px solid var(--line);border-radius:50%;width:40px;height:40px;background:none;color:var(--navy);flex-shrink:0}.marquee{overflow:hidden;mask-image:linear-gradient(to right,transparent,#000 7%,#000 93%,transparent);margin:25px 0 0}.logo-track{display:flex;width:max-content;animation:marquee 28s linear infinite}.logo-set{display:flex;flex-shrink:0;gap:75px;padding:12px 37.5px;align-items:center}.logo-set span{display:flex;align-items:center;gap:17px;font-size:20px;font-weight:700;color:#696974;white-space:nowrap}.logo-set b{font-size:43px;line-height:1.5;font-weight:500}.marquee:hover .logo-track,.marquee:focus-within .logo-track,.marquee.paused .logo-track{animation-play-state:paused}@keyframes marquee{to{transform:translateX(-50%)}}.services{padding-top:75px}.services-grid{display:grid;grid-template-columns:repeat(4,1fr);margin-top:48px}.services-grid article{padding:0 30px;border-left:1px solid var(--line)}.services-grid article:first-child{padding-left:0;border:0}.services-grid article:last-child{padding-right:0}.number{font-family:Manrope,sans-serif;font-size:32px;font-weight:700;line-height:1.2;color:var(--accent)}.services h3{margin:12px 0}.services-grid p{font-size:16px}.services-grid a{display:inline-block;font-size:25px;margin-top:20px;width:40px}.work{background:var(--lavender);border-radius:48px 48px 0 0}.small-label{font-size:13px;color:var(--muted)}.project-grid{display:grid;grid-template-columns:1.25fr 1fr 1fr;gap:25px;margin-top:45px}.project-art{height:330px;position:relative;overflow:hidden;transition:transform .35s ease}.project-art:hover{transform:translateY(-6px)}.project-art span{position:absolute;bottom:15px;left:24px;font-family:Manrope,sans-serif;font-size:72px;letter-spacing:-.06em;color:#ffffff9c}.art-one{background:radial-gradient(circle at 67% 32%,#ffdfc1 0 22%,transparent 22.3%),linear-gradient(35deg,#474f9b 40%,#f7b8c9 40.3% 70%,#c4adf0 70.3%)}.art-two{background:radial-gradient(ellipse at 95% 90%,#ffdab8 0 25%,#e5a2be 25.3% 43%,#8d75be 43.3% 63%,#c7b8f1 63.3%)}.art-three{background:radial-gradient(circle at 58% 30%,#ffe0c4 0 21%,transparent 21.3%),linear-gradient(25deg,#27366c 0 40%,#bc9cdb 40.3% 60%,#f5c9dc 60.3%)}.project-title{display:flex;align-items:center;justify-content:space-between;margin-top:22px}.project-title span{font-size:24px}.project-grid p{font-size:15px;margin-top:8px;max-width:300px}.testimonials{background:var(--navy);color:var(--cream);border-radius:36px 36px 0 0}.testimonials .eyebrow{color:#c2b4e8}.quotes{display:grid;grid-template-columns:1fr 1fr;gap:65px;margin-top:45px}.quotes figure{display:flex;gap:22px}.quotes figure+figure{padding-left:55px;border-left:1px solid #ffffff33}.quote-mark{font-family:Georgia,serif;font-size:90px;color:#b9a7ed;line-height:1}.quotes blockquote{margin:0;font-size:18px;line-height:1.75;color:#e0deee}.quotes figcaption{display:flex;flex-direction:column;margin-top:25px;font-size:14px}.quotes figcaption span{color:#adb1c3;font-size:13px}.about{display:grid;grid-template-columns:1fr 1.1fr;gap:75px;align-items:center}.portrait{height:480px;background-image:var(--hero);background-size:auto 140%;background-position:88% 5%;border-radius:16px;position:relative}.portrait-tag{position:absolute;bottom:22px;left:22px;background:var(--cream);padding:8px 16px;border-radius:30px;font-size:12px;font-weight:600}.about-copy p:not(.eyebrow){margin:23px 0}.about-copy .button{margin-top:2px}.traits{display:flex;justify-content:space-between;border-top:1px solid var(--line);margin-top:35px;padding-top:22px;font-size:14px;font-weight:600}.process{padding-top:25px}.steps{display:grid;grid-template-columns:repeat(4,1fr);gap:40px;margin-top:45px}.steps article{position:relative}.steps article:before{content:'';position:absolute;top:19px;left:52px;right:0;height:1px;background:#c9c7d3}.steps article>span{display:flex;align-items:center;justify-content:center;width:38px;height:38px;border:1px solid #9698ac;border-radius:50%;font-size:13px}.steps h3{margin:20px 0 10px}.steps p{font-size:15px}.contact{border-radius:45px 45px 0 0;background-image:linear-gradient(90deg,#e6c9eda8,#e5c9f6c4),var(--hero);background-size:cover;background-position:center top;padding:95px 0 110px}.contact-grid{display:grid;grid-template-columns:1.3fr 1fr;gap:100px;align-items:center}.contact h2{font-size:clamp(45px,5.5vw,80px)}.contact p:not(.eyebrow){max-width:370px;color:#424561;margin-bottom:28px}footer{background:var(--navy);color:#e7e6ed;padding:50px 0 25px;font-size:13px}.footer-top{display:flex;align-items:center;justify-content:space-between;gap:30px;padding-bottom:36px}.footer-top nav,.footer-top>div{display:flex;gap:30px}.footer-top .wordmark{font-size:19px}.footer-bottom{display:flex;justify-content:space-between;gap:20px;border-top:1px solid #ffffff26;padding-top:23px;color:#b7bac9;font-size:12px}.skip{position:absolute;top:-70px;left:20px;z-index:20;background:var(--cream);padding:12px}.skip:focus{top:15px}.menu-toggle{display:none}dialog{border:0;border-radius:24px;background:var(--cream);color:var(--navy);max-width:520px;width:90%;padding:45px}dialog::backdrop{background:#0d1934a8;backdrop-filter:blur(5px)}dialog h2{font-size:36px}dialog p:not(.eyebrow){margin:24px 0}.dialog-close{position:absolute;right:15px;top:10px;background:none;border:0;font-size:30px;color:var(--navy)}
@media(min-width:1550px){.hero-copy{padding-top:65px}.hero-bottom{left:calc((100% - 1280px)/2)}}
@media(max-width:1050px){.hero{min-height:690px;height:80vw;background-position:58% center}.hero-copy{padding-top:34px}.hero-copy .intro{font-size:18px}.navlinks{gap:23px}.services-grid article{padding-inline:18px}.services-grid h3{font-size:18px}.project-art{height:270px}.about{gap:40px}.portrait{height:440px}.section{padding-block:75px}.process{padding-top:20px}.contact-grid{gap:50px}}
@media(max-width:700px){.wrap{width:88%}.nav{padding-block:22px}.wordmark{font-size:20px}.menu-toggle{display:flex;gap:12px;align-items:center;border:1px solid #0d19344d;border-radius:30px;background:#fcfaf533;padding:8px 14px;font-size:14px}.navlinks{display:none;position:absolute;top:77px;left:6%;right:6%;background:var(--cream);padding:25px;z-index:5;box-shadow:0 15px 35px #15224325;border-radius:20px;flex-direction:column;align-items:stretch;gap:18px}.navlinks.open{display:flex}.hero{height:870px;min-height:0;background-size:auto 690px;background-repeat:no-repeat;background-position:62% bottom;background-color:#b7afe6}.hero:before{content:'';position:absolute;inset:0;background:linear-gradient(#c8bcee 0 18%,#d4bdebcc 28%,transparent 49%);z-index:-1}.hero-copy{padding-top:27px}.hero .eyebrow{font-size:10px;letter-spacing:.2em;margin-bottom:15px}h1{font-size:clamp(40px,9vw,58px);letter-spacing:-.055em}.hero-copy .intro{font-size:16px;max-width:310px;margin:19px 0 22px}.desktop{display:none}.actions{gap:20px}.button{font-size:13px;padding:12px 19px;gap:16px}.text-link{font-size:13px}.hero-bottom{bottom:76px;left:6%;font-size:9px;letter-spacing:.1em}.hero-bottom a{display:none}.cream-shell{margin:-43px 10px 0;border-radius:32px 32px 0 0}.cream-shell .wrap{width:88%}.brands{padding-top:35px}.brands h2{font-size:29px;max-width:250px}.brands .eyebrow{font-size:10px}.logo-set{gap:42px;padding-inline:21px}.logo-set span{font-size:15px;gap:12px}.logo-set b{font-size:32px}.marquee{margin-top:18px}.section{padding-block:58px}h2{font-size:37px}.eyebrow{font-size:10px;letter-spacing:.22em;margin-bottom:15px}.services-grid{grid-template-columns:1fr 1fr;gap:32px 22px;margin-top:34px}.services-grid article,.services-grid article:first-child{padding:0;border:0}.services-grid p{font-size:15px}.services-grid a{margin-top:10px}.services-grid h3{font-size:19px}.number{font-size:28px}.work{border-radius:30px 30px 0 0}.section-top{align-items:flex-start}.small-label{display:none}.project-grid{grid-template-columns:1fr;gap:34px;margin-top:30px}.project-art{height:340px}.project-title{margin-top:15px}.project-grid p{max-width:none}.testimonials{border-radius:28px 28px 0 0}.quotes{grid-template-columns:1fr;gap:30px;margin-top:30px}.quotes figure+figure{padding:28px 0 0;border-left:0;border-top:1px solid #ffffff33}.quotes blockquote{font-size:16px}.quote-mark{font-size:65px}.quotes figure{gap:15px}.quotes figcaption{margin-top:17px}.about{grid-template-columns:1fr;gap:35px}.portrait{height:390px;background-size:auto 145%;background-position:87% 8%}.about-copy h2 br{display:none}.about-copy p:not(.eyebrow){margin:20px 0}.traits{font-size:13px;margin-top:28px}.process{padding-top:5px}.steps{grid-template-columns:1fr 1fr;gap:30px;margin-top:30px}.steps h3{margin-top:15px}.contact{border-radius:30px 30px 0 0;padding-block:62px;background-position:20% top}.contact-grid{grid-template-columns:1fr;gap:30px}.contact h2{font-size:49px}.footer-top{align-items:flex-start;flex-wrap:wrap;gap:27px}.footer-top .wordmark{width:100%}.footer-top nav,.footer-top>div{gap:22px}.footer-bottom{flex-wrap:wrap;font-size:11px}.footer-bottom>span:nth-child(2){display:none}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.logo-track{animation:none}.project-art{transition:none}}
@media(max-width:700px){.hero{height:930px;background-size:auto 620px;background-position:72% bottom}.hero:before{background:linear-gradient(#c8bcee 0 26%,#d4bdebcc 34%,transparent 49%)}}
/* Keep the hero actions clear against the illustrated skyline. */
.hero-copy{padding-top:18px}
.hero-copy .text-link{background:var(--cream);border:1px solid #0d193426;border-radius:100px;padding:14px 24px;min-height:49px;box-shadow:0 2px 12px #0d193412}
@media(min-width:1550px){.hero-copy{padding-top:24px}}
@media(max-width:700px){.hero-copy{padding-top:27px}.hero-copy .text-link{padding:12px 17px}.actions{gap:14px}}
:root{--hero:url('assets/hero-v2.webp')}
/* Independent, aligned foreground and skyline layers. */
.hero{background-image:none;overflow:clip}
.hero-scene{position:absolute;inset:0;z-index:-2;pointer-events:none;overflow:hidden;background:#c4b2ed}
.hero-layer{position:absolute;inset:0;background-size:cover;background-position:center;will-change:transform}
.hero-sky{background-image:url('assets/hero-background.webp');transform:translate3d(0,var(--sky-offset,0px),0)}
.hero-front{background-image:url('assets/hero-foreground.webp');transform:translate3d(0,var(--front-offset,0px),0)}
.logo-track{animation-duration:48s}
.logo-set{gap:64px;padding-inline:32px}
.logo-set span{width:180px;height:110px;justify-content:center}
.logo-set img{display:block;width:180px;height:85px;object-fit:contain}
@media(max-width:1050px){.hero-layer{background-position:58% center}}
@media(max-width:700px){.hero-scene{top:auto;height:620px}.hero-layer{background-size:auto 620px;background-position:72% bottom}.logo-set{gap:36px;padding-inline:18px}.logo-set span{width:145px;height:100px}.logo-set img{width:145px;height:75px}}
@media(prefers-reduced-motion:reduce){.hero-layer{transform:none!important;will-change:auto}}

/* Space visible artwork rather than equal-width image canvases. */
.brand-elmar{--logo-width:121.00px;--logo-height:88.00px;--image-width:135.88px;--image-height:103.53px;--image-left:-8.41px;--image-top:-7.44px;}
.brand-universiapolis{--logo-width:190.00px;--logo-height:50.95px;--image-width:211.59px;--image-height:64.77px;--image-left:-11.23px;--image-top:-8.64px;}
.brand-nazka{--logo-width:121.44px;--logo-height:88.00px;--image-width:132.00px;--image-height:94.60px;--image-left:-6.60px;--image-top:-4.18px;}
.brand-buddha-bar{--logo-width:157.93px;--logo-height:88.00px;--image-width:171.85px;--image-height:100.74px;--image-left:-9.19px;--image-top:-7.70px;}
.brand-synergie{--logo-width:52.35px;--logo-height:88.00px;--image-width:64.82px;--image-height:94.73px;--image-left:-6.98px;--image-top:-4.49px;}
.brand-draa-tafilalet{--logo-width:190.00px;--logo-height:60.95px;--image-width:204.30px;--image-height:68.10px;--image-left:-9.19px;--image-top:-5.11px;}
.brand-agadir-oufella{--logo-width:129.72px;--logo-height:88.00px;--image-width:144.14px;--image-height:96.09px;--image-left:-7.59px;--image-top:-5.06px;}
.brand-visit-agadir{--logo-width:190.00px;--logo-height:67.72px;--image-width:203.81px;--image-height:75.61px;--image-left:-9.20px;--image-top:-3.62px;}
.brand-custplace{--logo-width:190.00px;--logo-height:85.59px;--image-width:200.66px;--image-height:94.06px;--image-left:-7.21px;--image-top:-5.64px;}
.brand-inwi{--logo-width:190.00px;--logo-height:43.65px;--image-width:231.08px;--image-height:66.76px;--image-left:-23.62px;--image-top:-11.30px;}
.brand-onmt{--logo-width:190.00px;--logo-height:59.80px;--image-width:203.57px;--image-height:72.10px;--image-left:-10.18px;--image-top:-7.63px;}
.brand-the-view{--logo-width:170.46px;--logo-height:88.00px;--image-width:180.66px;--image-height:99.07px;--image-left:-7.28px;--image-top:-8.16px;}
.logo-set{gap:64px;padding:16px 32px;align-items:center}.logo-set span{position:relative;display:block;flex:none;width:var(--logo-width);height:var(--logo-height);overflow:hidden}.logo-set img{position:absolute;max-width:none;width:var(--image-width);height:var(--image-height);left:var(--image-left);top:var(--image-top);object-fit:fill}.marquee{padding-block:12px}.logo-track{align-items:center}
@media(max-width:700px){.logo-set{gap:40px;padding-inline:20px}}

/* Case study cards */
.project-grid .tag{display:inline-block;margin-top:12px;padding:5px 13px;border-radius:30px;background:var(--navy);color:var(--cream);font-size:12px;font-weight:600}
.project-grid p{max-width:none}

/* Highlights strip */
.stats{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;padding:55px 0 5px;text-align:center}
.stats div{display:flex;flex-direction:column;gap:4px}
.stats strong{font-family:Manrope,sans-serif;font-size:clamp(38px,4.6vw,64px);font-weight:800;letter-spacing:-.05em;line-height:1.05}
.stats span{font-size:14px;color:var(--muted)}
@media(max-width:700px){.stats{gap:10px;padding-top:40px}.stats span{font-size:12px}}

/* Experience & toolkit */
.experience{padding-top:25px}
.exp-grid{display:grid;grid-template-columns:1.25fr 1fr;gap:80px;margin-top:45px;align-items:start}
.timeline{list-style:none;margin:0;padding:0 0 0 30px;border-left:1px solid #c9c7d3}
.timeline li{position:relative;padding-bottom:36px}
.timeline li:last-child{padding-bottom:0}
.timeline li:before{content:'';position:absolute;left:-36px;top:8px;width:11px;height:11px;border-radius:50%;background:var(--accent);border:2px solid var(--cream)}
.when{font-size:12px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:#40346e}
.timeline h3{margin-top:6px}
.where{display:block;font-size:14px;color:var(--muted)}
.timeline p{font-size:15px;margin-top:8px;max-width:520px}
.toolkit h3{font-size:14px;letter-spacing:.02em;text-transform:uppercase;margin:0 0 14px}
.toolkit h3:not(:first-child){margin-top:34px}
.toolkit ul{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:10px}
.toolkit li{padding:7px 15px;border:1px solid var(--line);border-radius:30px;font-size:14px;font-weight:500;background:#fff}
@media(max-width:1050px){.exp-grid{gap:45px}}
@media(max-width:700px){.exp-grid{grid-template-columns:1fr;gap:40px;margin-top:30px}.timeline{padding-left:24px}.timeline li:before{left:-30px}}

.phone-link{display:block;margin-top:18px;font-size:14px;font-weight:600;color:#424561;text-decoration:underline;text-underline-offset:4px}
