:root{
  --bg:#e5e1d9;
  --ink:#111111;
  --muted:#6f6b63;
  --line:rgba(17,17,17,.18);
  --red:#ff5a42;
  --yellow:#f5dc4a;
  --blue:#4e6dff;
  --pink:#e65599;
  --green:#56a940;
  --orange:#ff9f43;
  --max:1440px;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:var(--bg);color:var(--ink);font-family:Inter,Arial,sans-serif;line-height:1.45}
a{color:inherit;text-decoration:none}
.site-header{position:sticky;top:0;z-index:20;display:flex;justify-content:space-between;align-items:center;padding:20px 28px;border-bottom:1px solid var(--line);background:rgba(229,225,217,.94);backdrop-filter:blur(12px)}
.brand{display:flex;gap:8px;font-family:"Space Grotesk",sans-serif;font-weight:700;letter-spacing:-.04em;font-size:17px}.brand-op{font-weight:500}
.nav{display:flex;gap:28px;align-items:center;font-size:14px}.nav a{opacity:.75}.nav a:hover{opacity:1}.nav-cta{padding:10px 14px;border:1px solid var(--ink);opacity:1!important}.menu-toggle{display:none;background:none;border:0;font:inherit}
.section-pad{padding:96px max(28px,calc((100vw - var(--max))/2 + 28px))}
.eyebrow{font-size:12px;letter-spacing:.14em;font-weight:700;margin:0 0 22px}.hero{min-height:82vh;display:grid;grid-template-columns:1.04fr .96fr;gap:60px;align-items:center}.hero h1,.section-heading h2,.sticky-title h2,.contact h2,.about h2,.mode-card h2{font-family:"Space Grotesk",sans-serif;letter-spacing:-.055em;line-height:.98;margin:0}.hero h1{font-size:clamp(62px,7.3vw,128px);max-width:950px}.hero-lede{font-size:clamp(18px,1.7vw,28px);max-width:760px;margin:32px 0 34px}.hero-actions,.contact-actions{display:flex;align-items:center;gap:28px;flex-wrap:wrap}.button{display:inline-flex;padding:14px 20px;border:1px solid}.button-dark{background:var(--ink);color:white}.button-light{background:white;color:var(--ink);border-color:white}.text-link{font-weight:600;border-bottom:1px solid;padding-bottom:3px}.hero-art{position:relative;min-height:560px;background:#dedad0;overflow:hidden}.shape{position:absolute}.shape-a{width:47%;aspect-ratio:1;background:var(--red);border-radius:50%;left:-10%;top:10%}.shape-b{width:48%;height:34%;background:var(--blue);right:-7%;top:0;transform:skew(-18deg)}.shape-c{width:52%;height:28%;background:var(--yellow);left:13%;bottom:4%;border-radius:999px 999px 0 0}.shape-d{width:27%;aspect-ratio:1;background:var(--pink);right:9%;bottom:15%;transform:rotate(45deg)}.route-line{position:absolute;left:50%;top:5%;width:3px;height:90%;background:var(--ink);transform:rotate(19deg)}.floor-label{position:absolute;font-family:"Space Grotesk";font-size:72px;font-weight:700}.label-1{left:6%;bottom:4%}.label-2{right:7%;top:31%}.label-3{left:51%;top:5%}
.statement{border-top:1px solid var(--line);border-bottom:1px solid var(--line);display:grid;grid-template-columns:1fr 1fr;gap:60px;align-items:start}.formula{font-family:"Space Grotesk";font-weight:700;font-size:clamp(42px,5vw,80px);letter-spacing:-.05em;display:flex;gap:.18em;flex-wrap:wrap}.formula b{font-weight:500}.statement>p{font-size:clamp(22px,2.2vw,36px);margin:0;max-width:760px}
.split-section{display:grid;grid-template-columns:.8fr 1.2fr;gap:80px;border-bottom:1px solid var(--line)}.sticky-title{align-self:start;position:sticky;top:100px}.sticky-title h2,.section-heading h2{font-size:clamp(42px,5.2vw,82px);max-width:900px}.principle{display:grid;grid-template-columns:80px 1fr;gap:16px;padding:36px 0;border-top:1px solid var(--line)}.principle:last-child{border-bottom:1px solid var(--line)}.principle .num{font-family:"Space Grotesk"}.principle h3{font-family:"Space Grotesk";font-size:36px;letter-spacing:-.04em;margin:0 0 8px}.principle p{font-size:19px;margin:0;max-width:650px;color:#393733}
.retrofit-grid{display:grid;grid-template-columns:1fr 1fr;gap:2px;padding-top:0}.mode-card{padding:64px;min-height:430px;display:flex;flex-direction:column;justify-content:flex-end}.mode-card h2{font-size:clamp(42px,4vw,68px);max-width:620px}.mode-card p:last-child{font-size:19px;max-width:580px}.mode-new{background:var(--pink)}.mode-existing{background:var(--green);color:var(--ink)}
.projects{padding-top:72px}.section-heading{margin-bottom:34px}.project{border-top:1px solid var(--line);padding-top:20px;margin-bottom:54px}.project-large{display:grid;grid-template-columns:1.25fr .75fr;gap:48px}.project-visual{min-height:520px;position:relative;overflow:hidden}.visual-weplay{background:#d7d5cf}.module{position:absolute;background:var(--red)}.m1{width:280px;height:280px;border-radius:50%;left:8%;top:12%}.m2{width:330px;height:160px;background:var(--blue);right:6%;top:8%;transform:rotate(-18deg)}.m3{width:360px;height:170px;background:var(--yellow);left:38%;bottom:8%;border-radius:180px 180px 0 0}.m4{width:180px;height:180px;background:var(--green);right:15%;bottom:27%;transform:rotate(45deg)}.project-copy{padding-top:10px}.project-kicker,.tags{font-size:11px;letter-spacing:.12em;font-weight:700}.project-copy h3{font-family:"Space Grotesk";font-size:clamp(34px,3vw,54px);line-height:1.02;letter-spacing:-.045em;margin:12px 0 18px}.project-copy p:not(.project-kicker):not(.tags){font-size:18px;max-width:620px}.tags{margin-top:24px;color:var(--muted)}.project-grid{display:grid;grid-template-columns:1fr 1fr;gap:34px}.small .project-visual{min-height:420px}.visual-rbk{display:grid;grid-template-columns:repeat(4,1fr);background:#ddd}.visual-rbk span{display:flex;align-items:flex-end;padding:22px;font-family:"Space Grotesk";font-size:48px;font-weight:700}.visual-rbk span:nth-child(1){background:var(--red)}.visual-rbk span:nth-child(2){background:var(--yellow)}.visual-rbk span:nth-child(3){background:var(--green)}.visual-rbk span:nth-child(4){background:var(--pink)}.visual-diversity{display:flex;align-items:center;justify-content:center;gap:25px;background:#d9d6cf}.visual-diversity div{width:23%;aspect-ratio:1;background:var(--blue)}.visual-diversity div:nth-child(1){border-radius:50%;background:var(--yellow)}.visual-diversity div:nth-child(2){transform:rotate(45deg);background:var(--red)}.visual-diversity div:nth-child(3){border-radius:50% 50% 0 0;background:var(--green)}
.applications{background:#111;color:#fff}.narrow{max-width:1000px}.application-list{margin-top:60px}.application-list div{display:flex;justify-content:space-between;align-items:center;border-top:1px solid rgba(255,255,255,.25);padding:22px 0;font-family:"Space Grotesk";font-size:clamp(30px,4vw,64px);letter-spacing:-.04em}.application-list em{font-family:Inter;font-size:12px;font-style:normal;letter-spacing:.12em;opacity:.6}
.process-list{list-style:none;margin:0;padding:0;border-top:1px solid var(--line)}.process-list li{display:grid;grid-template-columns:100px 1fr;padding:34px 0;border-bottom:1px solid var(--line)}.process-list li>span{font-family:"Space Grotesk";font-size:24px}.process-list h3{font-family:"Space Grotesk";font-size:32px;margin:0 0 8px;letter-spacing:-.03em}.process-list p{margin:0;font-size:18px;color:#4d4942}
.about{display:grid;grid-template-columns:.45fr 1.55fr;gap:70px;background:#f8f7f3}.about-mark{width:min(36vw,380px);aspect-ratio:1;background:var(--red);display:grid;place-items:center;font-family:"Space Grotesk";font-size:min(22vw,250px);font-weight:700}.about h2{font-size:clamp(44px,5.5vw,88px);max-width:1000px}.about p:not(.eyebrow){font-size:20px;max-width:820px;margin:28px 0}
.about-portrait-frame{width:min(36vw,440px);aspect-ratio:1365/2048;overflow:hidden;align-self:start;background:#ddd}
.about-portrait{display:block;width:100%;height:100%;object-fit:contain;object-position:center;transform:none}
.testimonials{background:#111;color:#fff}.testimonial-heading{display:flex;justify-content:space-between;align-items:flex-start;gap:30px}.testimonial-stage{position:relative;display:grid;min-height:clamp(330px,31vw,460px);margin-top:clamp(34px,5vw,70px)}.testimonial{grid-area:1/1;margin:0;display:flex;flex-direction:column;justify-content:space-between;opacity:0;visibility:hidden;transform:translateY(12px);transition:opacity .6s ease,transform .6s ease,visibility .6s}.testimonial.is-active{opacity:1;visibility:visible;transform:none}.testimonial blockquote{font-family:"Space Grotesk",sans-serif;font-size:clamp(30px,4vw,58px);line-height:1.08;letter-spacing:-.04em;max-width:1120px;margin:0}.testimonial blockquote.is-typing::after{content:"";display:inline-block;width:2px;height:.82em;margin-left:.12em;background:currentColor;vertical-align:-.06em;animation:typing-caret .8s steps(1,end) infinite}.testimonial figcaption{display:flex;flex-direction:column;gap:5px;margin-top:44px;font-size:12px;letter-spacing:.1em}.testimonial figcaption span{color:rgba(255,255,255,.62);letter-spacing:.04em}.testimonial-controls{display:flex;align-items:center;gap:14px}.testimonial-controls button{width:42px;height:42px;border:1px solid rgba(255,255,255,.45);border-radius:50%;background:transparent;color:#fff;font:inherit;cursor:pointer;transition:background .2s ease,color .2s ease}.testimonial-controls button:hover{background:#fff;color:#111}.testimonial-count{min-width:48px;text-align:center;font-size:11px;letter-spacing:.08em}@keyframes typing-caret{50%{opacity:0}}
.contact{background:#f7d9e5;color:var(--ink);min-height:500px;display:flex;flex-direction:column;justify-content:center}.contact h2{font-size:clamp(54px,7vw,110px);max-width:1200px}.contact>p:not(.eyebrow){font-size:22px;max-width:800px;margin:24px 0 30px}.text-link.light{border-color:white}.footer{display:flex;justify-content:space-between;gap:20px;padding:22px 28px;font-size:12px;background:#111;color:white}
@media(max-width:900px){.site-header{padding:16px 18px}.menu-toggle{display:block}.nav{display:none;position:absolute;top:62px;left:0;right:0;background:var(--bg);padding:18px;flex-direction:column;align-items:flex-start;border-bottom:1px solid var(--line)}.nav.open{display:flex}.section-pad{padding:70px 20px}.hero{grid-template-columns:1fr;min-height:auto}.hero-art{min-height:460px}.statement,.split-section,.project-large,.project-grid,.about,.retrofit-grid{grid-template-columns:1fr}.sticky-title{position:static}.mode-card{padding:38px 28px;min-height:360px}.project-visual,.small .project-visual{min-height:360px}.principle{grid-template-columns:50px 1fr}.about-mark{width:220px}.about-portrait-frame{width:min(100%,440px)}.footer{flex-direction:column}.hero h1{font-size:58px}.formula{font-size:42px}}
@media(max-width:520px){.brand{font-size:14px;gap:5px}.hero h1{font-size:48px}.hero-art{min-height:360px}.floor-label{font-size:50px}.statement>p{font-size:22px}.mode-card h2{font-size:40px}.project-copy h3{font-size:34px}.application-list div{font-size:30px}.contact h2{font-size:54px}.section-pad{padding-left:16px;padding-right:16px}}

/* Fine-tuning: layout, interaction and responsive polish */
html{scroll-padding-top:88px}
body{text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased}
.site-header{padding-left:max(28px,calc((100vw - var(--max))/2 + 28px));padding-right:max(28px,calc((100vw - var(--max))/2 + 28px));-webkit-backdrop-filter:blur(12px)}
.nav{gap:clamp(18px,2vw,30px)}
.nav a,.button,.text-link{transition:opacity .2s ease,transform .2s ease,background-color .2s ease,color .2s ease}
.nav-cta:hover{background:var(--ink);color:var(--bg)}
.button:hover{transform:translateY(-2px)}
.button-dark:hover{background:transparent;color:var(--ink)}
.button-light:hover{background:transparent;color:white}
.text-link:hover{opacity:.62}
.section-pad{padding-top:clamp(56px,5vw,76px);padding-bottom:clamp(56px,5vw,76px)}
.hero{min-height:calc(100svh - 70px);grid-template-columns:minmax(430px,.78fr) minmax(560px,1.22fr);gap:clamp(28px,3vw,52px)}
.hero h1{font-size:clamp(64px,6.9vw,120px)}
.hero-art{min-height:clamp(460px,45vw,650px);isolation:isolate}
.shape{transition:transform .5s cubic-bezier(.2,.7,.2,1)}
.hero-art:hover .shape-a{transform:translate(2%,-2%)}
.hero-art:hover .shape-b{transform:skew(-18deg) translate(-2%,2%)}
.hero-art:hover .shape-c{transform:translate(2%,-2%)}
.hero-art:hover .shape-d{transform:rotate(48deg)}
.split-section{grid-template-columns:minmax(280px,.8fr) minmax(0,1.2fr);gap:clamp(50px,6vw,96px)}
.sticky-title{top:104px}
.principle{grid-template-columns:64px minmax(150px,.55fr) minmax(220px,1fr);gap:16px 24px;align-items:start}
.principle h3{margin:0}
.principle p{margin-top:3px}
.project-large{grid-template-columns:minmax(0,1.25fr) minmax(280px,.75fr);gap:clamp(34px,4vw,58px)}
.m1{width:36%;height:auto;aspect-ratio:1}
.m2{width:42%;height:30%}
.m3{width:46%;height:32%;border-radius:999px 999px 0 0}
.m4{width:23%;height:auto;aspect-ratio:1}
.application-list div{transition:padding .25s ease,color .25s ease}
.application-list div:last-child{border-bottom:1px solid rgba(255,255,255,.25)}
.application-list div:hover{padding-left:12px;color:var(--pink)}
.footer{padding-left:max(28px,calc((100vw - var(--max))/2 + 28px));padding-right:max(28px,calc((100vw - var(--max))/2 + 28px))}
:focus-visible{outline:2px solid currentColor;outline-offset:5px}
@media(max-width:1080px){.nav{gap:16px}.hero{grid-template-columns:minmax(360px,.85fr) minmax(470px,1.15fr)}.principle{grid-template-columns:54px minmax(120px,.45fr) minmax(200px,1fr)}}
@media(max-width:900px){html{scroll-padding-top:70px}.site-header{padding-left:20px;padding-right:20px}.nav{display:flex;visibility:hidden;opacity:0;pointer-events:none;top:100%;transform:translateY(-8px);transition:opacity .2s ease,transform .2s ease,visibility .2s}.nav.open{visibility:visible;opacity:1;pointer-events:auto;transform:none}.nav a{font-size:18px}.hero{grid-template-columns:1fr}.split-section,.project-large{grid-template-columns:1fr}.principle{grid-template-columns:50px minmax(130px,.5fr) 1fr}.footer{padding-left:20px;padding-right:20px}}
@media(max-width:640px){.principle{grid-template-columns:42px 1fr}.principle p{grid-column:2}.process-list li{grid-template-columns:58px 1fr}.project-grid{gap:0}}
@media(max-width:520px){.site-header,.footer{padding-left:16px;padding-right:16px}.hero{gap:42px}.contact h2{font-size:50px}}
@media(max-width:640px){.testimonial-stage{min-height:400px}.testimonial blockquote{font-size:30px}.testimonial-heading{align-items:center}.testimonial-controls{gap:8px}.testimonial-controls button{width:38px;height:38px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}

/* Full-width geometric wordmark */
.logo-header{
  position:relative;
  display:block;
  padding-top:18px;
  padding-bottom:14px;
  background:#fff;
}
.brand-wordmark{
  display:block;
  width:100%;
  max-width:1540px;
  margin:0 auto;
}
.brand-wordmark img{
  display:block;
  width:100%;
  height:auto;
}
.header-nav-row{
  display:flex;
  justify-content:flex-end;
  align-items:center;
  max-width:1540px;
  margin:12px auto 0;
}
@media(max-width:900px){
  .logo-header{padding:14px 20px 12px}
  .header-nav-row{margin-top:9px}
  .header-nav-row .nav{left:0;right:0;top:100%}
}
@media(max-width:520px){
  .logo-header{padding:12px 16px 10px}
  .brand-wordmark img{min-height:36px;object-fit:contain}
}

/* Amended identity and real project carousels */
.brand{flex-direction:column;align-items:flex-start;gap:4px;line-height:1}
.brand-logo-image{display:block;width:clamp(330px,32vw,490px);height:auto}
.brand small{font-size:9px;font-weight:600;letter-spacing:.055em;text-transform:none}
.hero-carousel{align-self:center;width:100%;aspect-ratio:4/3;background:#ddd8d0}
.hero-carousel .carousel-image{object-position:center}
.principle{grid-template-columns:64px minmax(150px,.55fr) minmax(220px,1fr);align-items:start}
.principle h3{font-size:36px;line-height:1.1;text-transform:none}
.project-carousel{position:relative;overflow:visible;background:#d7d5cf;aspect-ratio:3/2;margin-bottom:34px}
.carousel-track{display:grid;height:100%;overflow:hidden}
.carousel-slide{grid-area:1/1;height:100%;min-height:0;margin:0;opacity:0;visibility:hidden;transform:scale(1.012);transition:opacity .65s ease,transform .8s ease,visibility .65s}
.carousel-slide.is-active{opacity:1;visibility:visible;transform:none}
.carousel-image{display:block;width:100%;height:100%;object-fit:cover;object-position:center}
.portrait-pair{display:grid;grid-template-columns:1fr 1fr;gap:5px;background:var(--bg)}
.portrait-pair img{display:block;width:100%;height:100%;min-width:0;object-fit:cover;object-position:center}
.intersection-pair img[alt^="Petra"]{object-position:50% 43%}
.intersection-pair img[alt^="Intersection artwork seen"]{object-position:50% 58%}
.intersection-pair img[alt^="Pedestrians"]{object-position:50% 60%}
.intersection-pair img[alt^="Heat"]{object-position:50% 62%}
.carousel-prev,.carousel-next{position:absolute;z-index:3;top:calc(100% + 10px);width:auto;height:auto;border:0;border-radius:0;background:transparent;color:var(--ink);font:600 11px/1 Inter,Arial,sans-serif;letter-spacing:.12em;text-transform:uppercase;cursor:pointer;padding:5px 0;transform:none}
.carousel-prev{left:0}.carousel-next{right:0}
.carousel-prev:hover,.carousel-next:hover{opacity:.48}
.carousel-status{position:absolute;top:calc(100% + 12px);left:50%;transform:translateX(-50%);font:500 10px/1 Inter,Arial,sans-serif;letter-spacing:.12em;color:var(--muted)}
.footer-logo{font-family:"Space Grotesk",sans-serif;font-size:16px;font-weight:700;letter-spacing:-.03em}
@media(max-width:900px){.brand-logo-image{width:min(62vw,430px)}}
@media(max-width:640px){.brand-logo-image{width:min(72vw,360px)}.brand small{font-size:8px}.principle{grid-template-columns:42px 1fr}.principle p{grid-column:2}}

/* COLOUR FORM SPACE identity */
.brand{flex-direction:row;align-items:center;gap:0}
.wordmark{display:flex;align-items:center;gap:.28em;font-family:"Space Grotesk",Inter,Arial,sans-serif;font-size:clamp(20px,2.05vw,31px);font-weight:700;letter-spacing:-.055em;line-height:1;white-space:nowrap}
.wordmark i{display:inline-block;width:.72em;height:.72em;flex:0 0 auto}
.wordmark-square,.formula-square{background:var(--pink)}
.wordmark-circle,.formula-circle{background:var(--green);border-radius:50%}
.formula{align-items:center;gap:.22em}
.formula i{display:inline-block;width:.58em;height:.58em;flex:0 0 auto}
.footer-logo-image{display:block;width:min(360px,42vw);height:auto;object-fit:contain}
.hero h1{font-size:clamp(54px,4.9vw,88px)}
.no-break{white-space:nowrap}
@media(max-width:1080px){.hero h1{font-size:clamp(50px,4.8vw,68px)}}
@media(max-width:900px){.wordmark{font-size:clamp(18px,3.2vw,26px)}.hero h1{font-size:58px}}
@media(max-width:640px){.wordmark{font-size:clamp(14px,4vw,21px)}}
@media(max-width:520px){.hero h1{font-size:46px}.footer-wordmark{font-size:13px}}
.restored-logo{display:block;width:clamp(330px,32vw,490px);height:auto}
@media(max-width:900px){.restored-logo{width:min(62vw,430px)}}
@media(max-width:640px){.restored-logo{width:min(72vw,360px)}.footer-logo-image{width:min(310px,82vw)}}

.section-intro{max-width:790px;margin:24px 0 0;font-size:clamp(18px,1.65vw,25px);line-height:1.45}
.about>div:last-child>p:not(.eyebrow){margin:20px 0}
.brand-name{font-family:"Space Grotesk",sans-serif;font-size:clamp(22px,2.25vw,34px);font-weight:700;line-height:1;letter-spacing:-.055em;white-space:nowrap}
.footer-brand-name{font-family:"Space Grotesk",sans-serif;font-size:clamp(16px,1.7vw,24px);letter-spacing:-.045em}
@media(max-width:520px){.brand-name{font-size:20px}}

/* Exact supplied Colour Form Space artwork */
.exact-logo{display:block;width:auto;height:auto;object-fit:contain}
.exact-logo-header{width:clamp(300px,35vw,520px);max-width:100%}
.exact-logo-statement{width:min(730px,100%)}
.exact-logo-footer{width:min(420px,48vw)}
@media(max-width:900px){.exact-logo-header{width:min(58vw,420px)}.exact-logo-footer{width:min(420px,80vw)}}
@media(max-width:520px){.exact-logo-header{width:min(70vw,310px)}.exact-logo-footer{width:min(310px,90vw)}}
