.main-hero{--main-hero-bg:#fff;background:var(--main-hero-bg);border-bottom:1px solid #d8d8d8;width:100%}.main-hero__inner{max-width:var(--site-content-width);padding:clamp(2.5rem, 6vw, 5rem) var(--site-content-padding) clamp(2.5rem, 5vw, 4rem);margin:0 auto}.main-hero__titles{gap:var(--hero-title-gap-row,clamp(.35rem, 1.2vw, .85rem)) var(--hero-title-gap-column,clamp(2.5rem, 5.5vw, 4.5rem));flex-wrap:wrap;display:flex}.main-hero__title{--hero-title-scale:1;color:var(--text-colour,var(--colour-primary));font-family:var(--font-title-family), sans-serif;font-size:calc(var(--text-size,var(--font-size-h1)) * var(--hero-title-scale));font-weight:var(--text-weight,var(--font-weight-h1));letter-spacing:var(--text-letter-spacing,var(--font-letter-spacing-h1,-.03em));overflow-wrap:anywhere;word-break:break-word;margin:0;line-height:1.1}.main-hero h1.main-hero__title,.main-hero h2.main-hero__title,.main-hero h3.main-hero__title,.main-hero h4.main-hero__title,.main-hero h5.main-hero__title{font-size:calc(var(--text-size,var(--font-size-h1)) * var(--hero-title-scale));font-weight:var(--text-weight,var(--font-weight-h1));margin:0}.main-hero__body{color:var(--text-colour,var(--colour-primary));font-family:var(--font-body-family), sans-serif;font-size:var(--text-size,var(--font-size-body-medium));font-weight:var(--text-weight,var(--font-weight-body-medium));line-height:var(--font-line-height-body);width:100%;min-width:75%;margin:clamp(2rem,4vw,3.5rem) 0 0}.main-hero__body :where(p){text-indent:0;margin:0 0 .85em;padding-inline-start:0}.main-hero__body :where(p:last-child){margin-bottom:0}.main-hero__body :where(a){color:inherit;text-underline-offset:.15em;text-decoration:underline}.main-hero__body :where(a:hover){opacity:.75}.main-hero__body :where(em){font-style:italic}@media (max-width:1024px){.main-hero__title{--hero-title-scale:.85}}@media (max-width:768px){.main-hero__titles{gap:var(--hero-title-gap-row,.35rem);flex-direction:column}.main-hero__title{--hero-title-scale:.72}.main-hero__body{width:100%;min-width:0;max-width:none}}@media (max-width:480px){.main-hero__title{--hero-title-scale:.62}}
.logo-strip{--logo-strip-gap:clamp(6rem, 12vw, 10rem);background:var(--colour-background,#fff);border-bottom:1px solid #d8d8d8;width:100%;padding:clamp(2rem,4vw,3.5rem) 0}.logo-strip__inner{margin:0 auto var(--section-title-gap);max-width:var(--site-content-width);padding:0 var(--site-content-padding)}.logo-strip__title{color:var(--text-colour,var(--colour-primary));font-family:var(--font-title-family), sans-serif;font-size:var(--text-size,var(--font-size-h2));font-weight:var(--text-weight,var(--font-weight-h2));letter-spacing:-.03em;margin:0;line-height:1.15}.logo-strip__viewport{width:100%;overflow:hidden}.logo-strip__track{will-change:transform;width:max-content;display:flex}.logo-strip__track--ready{animation:logo-strip-marquee var(--marquee-duration,18s) linear infinite}.logo-strip__group{gap:var(--logo-strip-gap);padding-right:var(--logo-strip-gap);flex-shrink:0;display:flex}.logo-strip__slide{flex:none;justify-content:center;align-items:center;display:flex}.logo-strip__image{object-fit:contain;object-position:center;height:90px;opacity:var(--logo-fade-opacity,1);width:auto;display:block}@keyframes logo-strip-marquee{0%{transform:translate(0,0)}to{transform:translate3d(calc(-1 * var(--marquee-offset,0px)), 0, 0)}}@media (max-width:1024px){.logo-strip__title{font-size:calc(var(--text-size,var(--font-size-h2)) * .88)}}@media (prefers-reduced-motion:reduce){.logo-strip__track{gap:var(--logo-strip-gap);flex-wrap:wrap;justify-content:center;width:100%;animation:none}.logo-strip__group{flex-wrap:wrap;justify-content:center;width:100%;padding-right:0}.logo-strip__group[aria-hidden=true]{display:none}}
.project-display{background:var(--colour-background,#fff);border-bottom:1px solid #d8d8d8;width:100%;overflow-x:clip}.project-display__inner{max-width:var(--site-content-width);padding:clamp(2rem, 4vw, 3.5rem) var(--site-content-padding);margin:0 auto}.project-display__title{color:var(--text-colour,var(--colour-primary));font-family:var(--font-title-family), sans-serif;font-size:var(--text-size,var(--font-size-h2));font-weight:var(--text-weight,var(--font-weight-h2));letter-spacing:-.03em;margin:0 0 var(--section-title-gap);overflow-wrap:anywhere;line-height:1.15}.project-display__list{gap:clamp(.875rem,2vw,1.5rem);display:flex}.project-display__item{cursor:pointer;flex-direction:column;flex:1 1 0;min-width:0;transition:flex .38s cubic-bezier(.22,1,.36,1);display:flex;position:relative}.project-display__item-motion{flex-direction:column;flex:1;width:100%;min-width:0;display:flex;position:relative}.project-display__item-motion--reveal{opacity:0;transform:translate3d(var(--display-reveal-x,100vw), 0, 0);will-change:opacity, transform;transition:opacity .65s cubic-bezier(.16,1,.3,1),transform .65s cubic-bezier(.16,1,.3,1)}.project-display__item-motion--from-right{--display-reveal-x:100vw}.project-display__item-motion--inview{opacity:1;transition-delay:calc(var(--reveal-step,0) * .16s), calc(var(--reveal-step,0) * .16s);transform:translate(0,0)}.project-display__card-link{z-index:1;position:absolute;inset:0}.project-display__list:has(.project-display__item--hover) .project-display__item{flex:.92 1 0}.project-display__list:has(.project-display__item--hover) .project-display__item--hover{flex:1.16 1 0}.project-display__media{aspect-ratio:1;background:#f0f0f0;width:100%;position:relative;overflow:hidden}.project-display__image{object-fit:cover;opacity:0;transition:opacity .28s}.project-display__image--active{opacity:1}.project-display__placeholder{background:#e8e8e8;width:100%;height:100%}.project-display__tags{pointer-events:none;z-index:2;flex-wrap:wrap;gap:.45rem;margin:0;padding:.65rem;list-style:none;display:flex;position:absolute;bottom:0;left:0;right:0}.project-display__tag{cursor:default;list-style:none}.project-display__footer{justify-content:space-between;align-items:flex-start;gap:.75rem;margin-top:clamp(.625rem,1.25vw,.875rem);display:flex}.project-display__item-title{color:var(--text-colour,var(--colour-primary));font-family:var(--font-title-family), sans-serif;font-size:var(--text-size,var(--font-size-h5));font-weight:var(--text-weight,var(--font-weight-h5));letter-spacing:-.02em;overflow-wrap:anywhere;flex:1;min-width:0;margin:0;line-height:1.25}.project-display__footer .site-button{flex-shrink:0}@media (max-width:1024px){.project-display__title{font-size:calc(var(--text-size,var(--font-size-h2)) * .88)}.project-display__item-title{font-size:calc(var(--text-size,var(--font-size-h5)) * .92)}}@media (max-width:768px){.project-display__list{flex-direction:column}:is(.project-display__list:has(.project-display__item--hover) .project-display__item,.project-display__list:has(.project-display__item--hover) .project-display__item--hover){flex-grow:1}}@media (max-width:640px){.project-display__footer{flex-wrap:wrap;align-items:center}}@media (prefers-reduced-motion:reduce){.project-display__item,.project-display__item-motion--reveal,.project-display__image{opacity:1;transition:none;transform:none}}
.project-grid{background:var(--colour-background,#fff);width:100%;overflow-x:clip}.project-grid__inner{max-width:var(--site-content-width);padding:clamp(2rem, 4vw, 3.5rem) var(--site-content-padding);margin:0 auto}.project-grid__title{color:var(--text-colour,var(--colour-primary));font-family:var(--font-title-family), sans-serif;font-size:var(--text-size,var(--font-size-h2));font-weight:var(--text-weight,var(--font-weight-h2));letter-spacing:-.03em;margin:0 0 var(--section-title-gap);overflow-wrap:anywhere;line-height:1.15}.project-grid__list{--project-grid-gap:clamp(1rem, 2vw, 1.5rem);gap:var(--project-grid-gap);flex-wrap:wrap;display:flex}.project-grid__item{box-sizing:border-box;flex:0 0 calc((100% - 2 * var(--project-grid-gap)) / 3);min-width:0;width:calc((100% - 2 * var(--project-grid-gap)) / 3);flex-direction:column;transition:flex-basis .38s cubic-bezier(.22,1,.36,1),width .38s cubic-bezier(.22,1,.36,1);display:flex;position:relative}.project-grid__item-motion{flex-direction:column;flex:1;width:100%;min-width:0;display:flex;position:relative}.project-grid__item-motion--reveal{opacity:0;transform:translate3d(var(--grid-reveal-x,100vw), 0, 0);will-change:opacity, transform;transition:opacity .65s cubic-bezier(.16,1,.3,1),transform .65s cubic-bezier(.16,1,.3,1)}.project-grid__item-motion--from-right{--grid-reveal-x:100vw}.project-grid__item-motion--from-left{--grid-reveal-x:-100vw}.project-grid__item-motion--inview{opacity:1;transition-delay:calc(var(--reveal-step,0) * .16s), calc(var(--reveal-step,0) * .16s);transform:translate(0,0)}.project-grid:not(.project-grid--editing) .project-grid__item{cursor:pointer}.project-grid__card-link{z-index:1;position:absolute;inset:0}.project-grid:not(.project-grid--editing) .project-grid__item--row-peer{flex-basis:calc((100% - 2 * var(--project-grid-gap)) * .31);width:calc((100% - 2 * var(--project-grid-gap)) * .31)}.project-grid:not(.project-grid--editing) .project-grid__item--row-focus{flex-basis:calc((100% - 2 * var(--project-grid-gap)) * .38);width:calc((100% - 2 * var(--project-grid-gap)) * .38)}.project-grid__media{aspect-ratio:1;background:#f0f0f0;width:100%;position:relative;overflow:hidden}.project-grid__image{object-fit:cover;opacity:0;transition:opacity .28s}.project-grid__image--active{opacity:1}.project-grid__placeholder{background:#e8e8e8;width:100%;height:100%}.project-grid__tags{pointer-events:none;z-index:2;flex-wrap:wrap;gap:.45rem;margin:0;padding:.65rem;list-style:none;display:flex;position:absolute;bottom:0;left:0;right:0}.project-grid__tag{cursor:default;list-style:none}.project-grid__footer{justify-content:space-between;align-items:flex-start;gap:.75rem;margin-top:clamp(.625rem,1.25vw,.875rem);display:flex}.project-grid__item-title{color:var(--text-colour,var(--colour-primary));font-family:var(--font-title-family), sans-serif;font-size:var(--text-size,var(--font-size-h5));font-weight:var(--text-weight,var(--font-weight-h5));letter-spacing:-.02em;overflow-wrap:anywhere;flex:1;min-width:0;margin:0;line-height:1.25}.project-grid__footer .site-button{flex-shrink:0}.project-grid__sentinel{width:100%;height:1px}.project-grid__order-controls{z-index:60;flex-wrap:wrap;justify-content:flex-end;gap:.5rem;display:flex;position:fixed;bottom:1.25rem;right:1.25rem}.project-grid__order-button{color:#fff;cursor:pointer;font-family:var(--font-body-family), sans-serif;background:#111;border:0;border-radius:6px;padding:.7rem 1rem;font-size:.875rem;font-weight:500}.project-grid__order-button:disabled{cursor:wait;opacity:.7}.project-grid__order-button--secondary{color:#111;background:#fff;border:1px solid #d0d0d0}.project-grid__order-error{color:#8a1f1f;font-family:var(--font-body-family), sans-serif;background:#fff5f5;border:1px solid #f0c0c0;border-radius:6px;max-width:16rem;margin:0;padding:.55rem .7rem;font-size:.8125rem}.project-grid--editing .project-grid__item{cursor:grab;outline:1px dashed #0000;transition:outline-color .12s,opacity .12s;position:relative}.project-grid--editing .project-grid__item:hover{outline-color:#bdbdbd}.project-grid__item--dragging{cursor:grabbing;opacity:.55}.project-grid__drag-handle{color:#fff;font-family:var(--font-body-family), sans-serif;letter-spacing:.02em;pointer-events:none;z-index:2;background:#111111b8;padding:.35rem .5rem;font-size:.75rem;font-weight:500;position:absolute;top:.5rem;left:.5rem}@media (max-width:1024px){.project-grid__title{font-size:calc(var(--text-size,var(--font-size-h2)) * .88)}.project-grid__item-title{font-size:calc(var(--text-size,var(--font-size-h5)) * .92)}.project-grid__item{flex-basis:calc((100% - var(--project-grid-gap)) / 2);width:calc((100% - var(--project-grid-gap)) / 2)}.project-grid:not(.project-grid--editing) .project-grid__item--row-peer{flex-basis:calc((100% - var(--project-grid-gap)) * .46);width:calc((100% - var(--project-grid-gap)) * .46)}.project-grid:not(.project-grid--editing) .project-grid__item--row-focus{flex-basis:calc((100% - var(--project-grid-gap)) * .54);width:calc((100% - var(--project-grid-gap)) * .54)}}@media (max-width:640px){.project-grid__item,.project-grid:not(.project-grid--editing) .project-grid__item--row-peer,.project-grid:not(.project-grid--editing) .project-grid__item--row-focus{flex-basis:100%;width:100%}.project-grid__footer{flex-wrap:wrap;align-items:center}}@media (prefers-reduced-motion:reduce){.project-grid__item,.project-grid__item-motion--reveal,.project-grid__image{opacity:1;transition:none;transform:none}}
