:root{--ink:#071d2b;--navy:#0a2a3c;--cream:#f5f1e8;--paper:#fbfaf6;--coral:#e85d3f;--teal:#168c91;--lime:#bdd65a;--muted:#65747c;--line:#d8dedc;--max:1200px}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--paper);color:var(--ink);font-family:"DM Sans",sans-serif;-webkit-font-smoothing:antialiased}body.menu-open{overflow:hidden}a{color:inherit;text-decoration:none}button{font:inherit}.container{width:min(var(--max),calc(100% - 48px));margin:auto}.skip-link{position:fixed;left:1rem;top:-5rem;z-index:100;background:#fff;padding:.8rem 1rem}.skip-link:focus{top:1rem}.site-header{height:88px;display:flex;align-items:center;position:absolute;top:0;left:0;right:0;z-index:20;color:#fff}.site-header.scrolled{position:fixed;height:72px;background:rgba(7,29,43,.93);backdrop-filter:blur(14px);animation:drop .35s ease}.nav-wrap{display:flex;align-items:center;justify-content:space-between}.brand{display:flex;align-items:center;gap:12px}.brand-mark{display:grid;grid-template-columns:repeat(2,13px);gap:3px;transform:rotate(-3deg)}.brand-mark i{display:block;width:13px;height:13px;border-radius:2px}.brand-mark i:nth-child(1){background:var(--coral)}.brand-mark i:nth-child(2){background:#ef9d61}.brand-mark i:nth-child(3){background:#1595ad}.brand-mark i:nth-child(4){background:#b9cb82}.brand-copy{display:flex;flex-direction:column;line-height:1}.brand-copy strong{font:700 21px/1 "Manrope",sans-serif;letter-spacing:-.5px}.brand-copy small{font-size:10px;text-transform:uppercase;letter-spacing:1.8px;margin-top:5px;opacity:.75}.site-nav{display:flex;align-items:center;gap:34px;font-size:14px;font-weight:600}.site-nav>a:not(.nav-cta){opacity:.8;transition:.2s}.site-nav>a:not(.nav-cta):hover{opacity:1;color:#fff}.nav-cta{border:1px solid rgba(255,255,255,.35);padding:13px 18px;border-radius:4px}.nav-cta span,.button span{margin-left:10px}.menu-toggle{display:none;background:none;border:0;color:#fff}.hero{min-height:820px;background:var(--ink);color:#fff;padding-top:88px;overflow:hidden;position:relative}.hero:before{content:"";position:absolute;width:650px;height:650px;border-radius:50%;background:rgba(22,140,145,.15);filter:blur(20px);right:-180px;top:-200px}.hero-grid{min-height:640px;display:grid;grid-template-columns:1fr 1fr;align-items:center;gap:40px}.eyebrow{font-size:12px;text-transform:uppercase;letter-spacing:2.3px;font-weight:700;display:flex;align-items:center;gap:10px;margin:0 0 22px}.eyebrow>span{display:inline-block;width:28px;height:2px;background:var(--lime)}.eyebrow.dark{color:var(--teal)}.eyebrow.light{color:#99cfd0}.hero h1,.section h2,.contact h2{font:700 clamp(48px,6vw,82px)/1.02 "Manrope",sans-serif;letter-spacing:-4px;margin:0}.hero h1 em,.section h2 em,.contact h2 em{font-style:normal;color:#a9dfe0}.hero-lede{font-size:19px;line-height:1.65;max-width:590px;color:#b6c2c8;margin:28px 0 34px}.hero-actions{display:flex;align-items:center;gap:28px}.button{display:inline-flex;align-items:center;justify-content:center;padding:17px 22px;border-radius:4px;font-size:14px;font-weight:700;transition:.25s}.button-primary{background:var(--coral);color:#fff;box-shadow:0 12px 35px rgba(232,93,63,.22)}.button-primary:hover{transform:translateY(-2px);background:#f16a4b}.text-link{font-size:14px;font-weight:700;border-bottom:1px solid rgba(255,255,255,.3);padding:10px 0}.text-link span{margin-left:8px}.hero-proof{display:flex;align-items:center;margin-top:54px;gap:14px}.hero-proof p{font-size:12px;line-height:1.5;color:#81939c;margin:0}.hero-proof strong{color:#d9e1e3;font-size:13px}.avatars{display:flex}.avatars img{width:35px;height:35px;border-radius:50%;object-fit:contain;background:white;border:2px solid var(--ink);margin-left:-8px}.avatars img:first-child{margin-left:0}.hero-art{height:560px;position:relative}.orbit{position:absolute;border:1px solid rgba(255,255,255,.13);border-radius:50%;inset:60px}.orbit-two{inset:130px;border-color:rgba(189,214,90,.22)}.process-core{position:absolute;width:170px;height:170px;border-radius:50%;background:#fff;color:var(--ink);display:flex;flex-direction:column;align-items:center;justify-content:center;left:50%;top:50%;transform:translate(-50%,-50%);box-shadow:0 30px 80px rgba(0,0,0,.25);z-index:3}.core-logo{display:grid;place-items:center;width:46px;height:46px;background:var(--coral);color:white;font:800 26px "Manrope";border-radius:5px 16px 5px 16px}.process-core p{font:700 17px "Manrope";margin:10px 0 1px}.process-core small{color:var(--muted);font-size:10px;text-transform:uppercase;letter-spacing:1.4px}.art-card{position:absolute;background:#fff;color:var(--ink);padding:16px 19px;border-radius:6px;display:flex;gap:12px;align-items:center;box-shadow:0 20px 45px rgba(0,0,0,.22);z-index:4}.art-card b{display:block;font:700 13px "Manrope"}.art-card small{color:#829097;font-size:10px}.mini-icon{width:35px;height:35px;background:#e9f1ef;border-radius:4px;display:grid;place-items:center;color:var(--teal);font-weight:700}.card-input{left:4px;top:82px}.card-output{right:0;bottom:80px}.card-output .mini-icon{background:#edf3d6;color:#6a8021}.format-pill{position:absolute;border:1px solid rgba(255,255,255,.25);background:rgba(255,255,255,.06);backdrop-filter:blur(8px);padding:9px 13px;border-radius:30px;font-size:11px;z-index:4}.pill-one{right:42px;top:124px}.pill-two{left:80px;bottom:87px}.pill-three{right:93px;bottom:181px}.flow-line{position:absolute;inset:0;width:100%;height:100%;z-index:2}.flow-line path{fill:none;stroke:var(--lime);stroke-width:2;stroke-dasharray:7 9;animation:dash 15s linear infinite}.flow-line circle{fill:var(--lime)}.capability-strip{height:92px;border-top:1px solid rgba(255,255,255,.13);display:flex;align-items:center;justify-content:space-between;color:#9aabb2;text-transform:uppercase;font-size:11px;letter-spacing:1.8px}.capability-strip i{width:5px;height:5px;background:var(--coral);border-radius:50%}.section{padding:130px 0}.about{background:var(--paper)}.about-grid{display:grid;grid-template-columns:1.1fr .9fr;gap:100px;align-items:start}.section h2{font-size:clamp(42px,5vw,66px);color:var(--ink)}.section h2 em{color:var(--teal)}.about-copy{padding-top:42px}.about-copy p{font-size:17px;line-height:1.8;color:#53636a}.text-link.dark{color:var(--ink);border-color:#a6b0b0;display:inline-block;margin-top:12px}.value-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;margin-top:90px}.value-card{position:relative;padding:34px 30px 36px;border:1px solid var(--line);background:#fff;transition:.3s}.value-card:hover{transform:translateY(-7px);box-shadow:0 20px 45px rgba(7,29,43,.08);border-color:transparent}.value-card>span{position:absolute;right:22px;top:22px;color:#a1afb3;font-size:11px}.value-icon{width:46px;height:46px;border-radius:50%;background:#e7f1ef;color:var(--teal);display:grid;place-items:center;font-size:20px}.value-card h3{font:700 20px "Manrope";margin:25px 0 11px}.value-card p{color:#718087;line-height:1.65;margin:0;font-size:14px}.services{background:var(--navy);color:#fff}.section-top{display:flex;align-items:end;justify-content:space-between;gap:60px;margin-bottom:70px}.services h2{color:#fff;max-width:700px}.section-top>p{max-width:390px;color:#9fafb6;line-height:1.7}.service-item{display:grid;grid-template-columns:60px 1fr 1fr 44px;gap:30px;align-items:center;padding:28px 10px;border-top:1px solid rgba(255,255,255,.14);transition:.25s}.service-item:last-child{border-bottom:1px solid rgba(255,255,255,.14)}.service-item:hover{padding-left:24px;background:rgba(255,255,255,.035)}.service-number{font-size:11px;color:#72acad}.service-item h3{font:600 clamp(22px,2.5vw,31px) "Manrope";margin:0}.service-item p{color:#91a3ab;line-height:1.6;font-size:14px;max-width:450px}.service-arrow{width:40px;height:40px;border:1px solid rgba(255,255,255,.2);border-radius:50%;display:grid;place-items:center}.work{background:var(--cream)}.work-top{margin-bottom:35px}.filters{display:flex;gap:8px;margin-bottom:30px;flex-wrap:wrap}.filters button{background:transparent;border:1px solid #c8ceca;border-radius:40px;padding:9px 16px;color:#58686e;font-size:12px;cursor:pointer}.filters button.active,.filters button:hover{background:var(--ink);border-color:var(--ink);color:#fff}.gallery-grid{display:grid;grid-template-columns:repeat(3,1fr);grid-auto-rows:280px;gap:14px}.project{border:0;padding:0;position:relative;overflow:hidden;cursor:zoom-in;background:#e1ded5;text-align:left}.project-tall{grid-row:span 2}.project-wide{grid-column:span 2}.project img{width:100%;height:100%;object-fit:contain;padding:24px;background:#fff;transition:.55s}.project:hover img{transform:scale(1.035);filter:brightness(.72)}.project>span{position:absolute;left:22px;bottom:20px;color:#fff;font:700 16px "Manrope";opacity:0;transform:translateY(8px);transition:.35s}.project:hover>span{opacity:1;transform:none}.project small{display:block;text-transform:uppercase;letter-spacing:1.5px;font:600 9px "DM Sans";margin-bottom:4px;color:#d8e37e}.project[hidden]{display:none}.clients{background:#fff}.centered{justify-content:center}.client-title{text-align:center;font-size:clamp(38px,4.2vw,58px)!important}.logo-wall{display:grid;grid-template-columns:repeat(4,1fr);margin-top:65px;border-top:1px solid var(--line);border-left:1px solid var(--line)}.logo-wall img{width:100%;height:120px;object-fit:contain;padding:30px;border-right:1px solid var(--line);border-bottom:1px solid var(--line);filter:grayscale(1);mix-blend-mode:multiply;transition:.25s}.logo-wall img:hover{filter:none}.testimonial{margin-top:95px;display:grid;grid-template-columns:80px 1fr 250px;gap:36px;align-items:start;border-top:1px solid var(--line);padding-top:50px}.quote-mark{font:500 90px/1 Georgia;color:var(--coral)}blockquote{font:600 clamp(24px,3vw,36px)/1.4 "Manrope";letter-spacing:-1.3px;margin:0}.quote-person{padding-top:8px}.quote-person b{display:block;font-size:14px;margin-bottom:8px}.quote-person span{font-size:12px;color:#7d8a8f;line-height:1.5}.quote-controls{grid-column:2/-1;display:flex;align-items:center;gap:18px;margin-top:15px}.quote-controls button{background:none;border:1px solid var(--line);border-radius:50%;width:38px;height:38px;cursor:pointer}.quote-controls>span{height:2px;background:#dde1df;width:150px}.quote-controls i{display:block;height:2px;background:var(--coral);width:50%;transition:.35s}.contact{padding:105px 0;background:var(--teal);color:#fff}.contact-grid{display:grid;grid-template-columns:1.4fr .6fr;align-items:end;gap:70px}.contact h2{font-size:clamp(44px,6vw,74px);max-width:760px}.contact h2 em{color:#dbe892}.contact-copy>p:last-child{color:#c3e0df;max-width:630px;font-size:17px;line-height:1.7;margin-top:25px}.contact-actions{display:flex;flex-direction:column;align-items:flex-start;gap:13px}.button-light{background:#fff;color:var(--ink);margin-bottom:15px}.contact-actions>a:not(.button){font-size:14px;border-bottom:1px solid rgba(255,255,255,.4);padding-bottom:4px}footer{background:var(--ink);color:#fff;padding:80px 0 25px}.footer-grid{display:grid;grid-template-columns:1fr 1fr 1fr;gap:30px;align-items:start}.brand-footer{align-items:center}.footer-grid>p{color:#85989f;line-height:1.7;margin:0}.footer-links{display:grid;grid-template-columns:1fr 1fr;gap:16px;font-size:13px}.footer-links a:hover{color:#bcd75b}.footer-bottom{border-top:1px solid rgba(255,255,255,.12);margin-top:65px;padding-top:24px;display:flex;justify-content:space-between;color:#6e838b;font-size:11px}.lightbox{width:min(850px,90vw);border:0;padding:14px;background:#fff;box-shadow:0 30px 90px rgba(0,0,0,.4)}.lightbox::backdrop{background:rgba(3,15,22,.86);backdrop-filter:blur(7px)}.lightbox img{display:block;width:100%;max-height:76vh;object-fit:contain}.lightbox p{margin:13px 4px 3px;font-weight:700}.lightbox-close{position:absolute;right:21px;top:20px;border:0;background:var(--ink);color:white;border-radius:50%;width:36px;height:36px;font-size:24px;cursor:pointer}.reveal{opacity:0;transform:translateY(24px);transition:opacity .7s ease,transform .7s ease}.reveal.visible{opacity:1;transform:none}@keyframes dash{to{stroke-dashoffset:-160}}@keyframes drop{from{transform:translateY(-100%)}to{transform:none}}
@media(max-width:900px){.site-nav{position:fixed;inset:0;background:var(--ink);padding:120px 32px 50px;flex-direction:column;align-items:flex-start;gap:25px;font:600 28px "Manrope";transform:translateX(100%);transition:.35s}.site-nav.open{transform:none}.nav-cta{font-size:16px;margin-top:10px}.menu-toggle{display:flex;position:relative;z-index:2;width:42px;height:42px;flex-direction:column;justify-content:center;gap:5px;align-items:center}.menu-toggle span{width:21px;height:2px;background:#fff;transition:.25s}.menu-toggle em{position:absolute;width:1px;height:1px;overflow:hidden}.menu-toggle.open span:nth-child(1){transform:translateY(7px) rotate(45deg)}.menu-toggle.open span:nth-child(2){opacity:0}.menu-toggle.open span:nth-child(3){transform:translateY(-7px) rotate(-45deg)}.hero{min-height:auto}.hero-grid{grid-template-columns:1fr;padding:130px 0 70px}.hero-art{height:480px}.about-grid,.contact-grid{grid-template-columns:1fr;gap:30px}.about-copy{padding-top:0}.section-top{display:block}.section-top>p{margin-top:25px}.gallery-grid{grid-template-columns:repeat(2,1fr)}.testimonial{grid-template-columns:60px 1fr}.quote-person{grid-column:2}.quote-controls{grid-column:2}.contact-actions{margin-top:15px}.footer-grid{grid-template-columns:1fr 1fr}.footer-links{grid-column:2;grid-row:1/3}.service-item{grid-template-columns:42px 1fr 38px}.service-item p{grid-column:2}.service-arrow{grid-column:3;grid-row:1}.value-grid{gap:10px}}
@media(max-width:600px){.container{width:min(100% - 32px,var(--max))}.hero h1,.section h2,.contact h2{letter-spacing:-2.4px}.hero h1{font-size:45px}.hero-grid{padding-bottom:30px}.hero-actions{align-items:flex-start;flex-direction:column;gap:12px}.hero-proof{margin-top:38px}.hero-art{height:390px;margin:0 -15px}.orbit{inset:35px}.orbit-two{inset:100px}.process-core{width:135px;height:135px}.card-input{top:40px}.card-output{bottom:45px}.pill-one{top:78px;right:9px}.pill-two{bottom:60px;left:35px}.pill-three{display:none}.art-card{padding:11px 13px}.card-output{right:3px}.capability-strip{overflow:hidden;gap:25px;justify-content:flex-start;white-space:nowrap}.section{padding:88px 0}.about-grid{gap:28px}.value-grid{grid-template-columns:1fr;margin-top:55px}.service-item{padding:25px 0;gap:12px}.service-item:hover{padding-left:8px}.gallery-grid{grid-template-columns:1fr;grid-auto-rows:300px}.project-tall{grid-row:span 1}.project-wide{grid-column:span 1}.filters{overflow-x:auto;flex-wrap:nowrap;padding-bottom:5px}.filters button{white-space:nowrap}.logo-wall{grid-template-columns:repeat(2,1fr)}.logo-wall img{height:100px;padding:22px}.testimonial{margin-top:65px;grid-template-columns:38px 1fr;gap:15px;padding-top:35px}.quote-mark{font-size:55px}blockquote{font-size:22px;letter-spacing:-.6px}.contact{padding:85px 0}.footer-grid{grid-template-columns:1fr}.footer-links{grid-column:1;grid-row:auto;margin-top:20px}.footer-bottom{gap:15px;flex-wrap:wrap}.footer-bottom span:nth-child(2){display:none}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;animation:none!important;transition:none!important}.reveal{opacity:1;transform:none}}

/* Client identities should always retain their original brand colours. */
.logo-wall img,.logo-wall img:hover{filter:none;mix-blend-mode:normal}
.quote-controls small{color:#7d8a8f;font-size:10px;letter-spacing:1.2px;white-space:nowrap}

/* Portfolio collage: two portraits, two stacked squares, then square + wide. */
.gallery-grid{
  aspect-ratio:1/1;
  grid-template-columns:repeat(3,minmax(0,1fr));
  grid-template-rows:repeat(3,minmax(0,1fr));
  grid-auto-rows:auto;
}
.project{
  border-radius:14px;
}
.project img{
  border-radius:14px;
}
.gallery-grid .project:nth-child(1){grid-area:1/1/3/2}
.gallery-grid .project:nth-child(5){grid-area:1/2/3/3}
.gallery-grid .project:nth-child(2){grid-area:1/3/2/4}
.gallery-grid .project:nth-child(4){grid-area:2/3/3/4}
.gallery-grid .project:nth-child(6){grid-area:3/1/4/2}
.gallery-grid .project:nth-child(3){grid-area:3/2/4/4}
.gallery-grid.is-filtered{aspect-ratio:auto;grid-template-rows:none;grid-auto-rows:300px}
.gallery-grid.is-filtered .project{grid-area:auto}
.gallery-grid.is-filtered .project-wide{grid-column:span 2}

@media(max-width:900px){
  .gallery-grid{aspect-ratio:auto;grid-template-columns:repeat(2,minmax(0,1fr));grid-template-rows:none;grid-auto-rows:280px}
  .gallery-grid .project{grid-area:auto}
  .gallery-grid .project-wide{grid-column:span 2}
}

@media(max-width:600px){
  .gallery-grid{grid-template-columns:1fr;grid-auto-rows:300px}
  .gallery-grid .project-wide{grid-column:auto}
}
