:root{color-scheme:dark;--ink:#f5f3ed;--muted:#b3b3ad;--base:#131413;--line:#373934;--accent:#e0f68d;--gutter:clamp(22px,5.5vw,92px)}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--base);color:var(--ink);font-family:Arial,Helvetica,sans-serif;-webkit-font-smoothing:antialiased}a{color:inherit;text-decoration:none}button{font:inherit;color:inherit}img{display:block;max-width:100%;object-fit:cover}a:focus-visible,button:focus-visible{outline:2px solid var(--accent);outline-offset:5px}.wrap{max-width:1580px;margin-inline:auto;padding-inline:var(--gutter)}.skip{position:fixed;top:10px;left:10px;transform:translateY(-150%);padding:12px;background:var(--accent);color:#171914;z-index:9}.skip:focus{transform:none}.top{position:absolute;inset:0 0 auto;z-index:2;display:flex;justify-content:space-between;align-items:center;min-height:96px;padding:0 var(--gutter);border-bottom:1px solid #ffffff30}.brand{display:inline-flex;align-items:center;gap:10px;font-size:22px;font-weight:800;letter-spacing:-.065em}.brand img{mix-blend-mode:screen}.brand small{display:block;font-size:9px;letter-spacing:.24em;margin-top:1px}.top nav{display:flex;align-items:center;gap:clamp(15px,3.8vw,52px);font-size:14px;font-weight:600}.top nav a:hover,.text-link:hover,.footer a:hover{color:var(--accent)}.nav-contact{border:1px solid #ffffff65;padding:12px 16px}.hero{position:relative;isolation:isolate;overflow:hidden;min-height:min(830px,90svh);display:flex;align-items:end;background:#232925}.hero-image,.hero-motion,.hero-shade{position:absolute;inset:0;width:100%;height:100%;z-index:-1}.hero-image{object-position:center 48%}.hero-motion{opacity:.9;pointer-events:none}.hero-motion iframe{position:absolute;top:50%;left:50%;width:max(100vw, calc(min(830px,90svh) * 1.7778));height:max(56.25vw,min(830px,90svh));transform:translate(-50%,-50%);border:0}.hero-shade{background:linear-gradient(0deg,#111411ef,transparent 91%),linear-gradient(90deg,#10120f94,transparent 75%),linear-gradient(180deg,#121512a8,transparent 28%)}.hero-content{width:100%;padding-top:154px;padding-bottom:clamp(68px,9vw,120px)}.eyebrow{text-transform:uppercase;letter-spacing:.16em;font-size:11px;font-weight:700;margin:0 0 24px;color:var(--accent)}h1,h2,p{margin-top:0}h1,h2{font-weight:650;letter-spacing:-.065em;line-height:.94}h1{font-size:clamp(55px,10vw,151px);margin:0 0 25px}h2{font-size:clamp(44px,6.6vw,103px);margin:0}.hero-intro{max-width:530px;font-size:clamp(17px,2vw,23px);line-height:1.45;margin:0 0 28px}.hero-actions,.contact-links{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.button{min-height:48px;display:inline-flex;align-items:center;justify-content:center;gap:18px;padding:12px 18px;font-size:14px;font-weight:700}.solid{background:var(--accent);color:#191d14}.solid:hover{background:#f2ffbc}.glass{border:1px solid #ffffff65}.glass:hover{background:#ffffff20}.motion-control{position:absolute;right:var(--gutter);bottom:22px;background:#161814dd;border:1px solid #ffffff65;padding:8px 10px;font-size:11px;cursor:pointer}.work{padding-block:clamp(64px,9vw,132px)}.section-head{display:flex;justify-content:space-between;align-items:end;gap:18px;margin-bottom:32px}.text-link{width:fit-content;font-size:14px;border-bottom:1px solid #85867b;padding-bottom:5px}.projects{display:grid;grid-template-columns:1fr 1fr;gap:32px 18px}.project{margin:0}.project.wide{grid-column:1/-1}.image-open{width:100%;display:block;padding:0;border:0;background:#272a24;overflow:hidden;cursor:zoom-in}.image-open img{width:100%;height:auto;aspect-ratio:4/3;transition:transform .35s ease}.wide .image-open img{aspect-ratio:2.15}.image-open:hover img{transform:scale(1.025)}figcaption{display:flex;align-items:baseline;justify-content:space-between;gap:8px;margin-top:12px;font-size:clamp(14px,1.7vw,22px)}figcaption small{color:var(--muted);font-size:11px}.about{background:#20221e;padding-block:clamp(64px,8vw,118px)}.about-grid{display:grid;grid-template-columns:1fr 1fr;gap:35px clamp(24px,5vw,75px);align-items:center}.about-copy p:not(.eyebrow),.contact>p:not(.eyebrow){line-height:1.6;color:var(--muted);max-width:46ch}.about-copy .lead{font-size:clamp(18px,2.1vw,25px);margin-top:24px}.services{grid-column:1/-1;display:grid;grid-template-columns:repeat(3,1fr);gap:24px;margin:10px 0 0}.services div{border-top:1px solid #53584a;padding-top:17px}.services dt{font-weight:700;margin-bottom:10px}.services dd{margin:0;color:var(--muted);line-height:1.5;font-size:15px}.contact{padding-block:clamp(64px,8vw,118px)}.contact>p:not(.eyebrow){font-size:18px;margin:20px 0 24px}.contact-links{gap:24px}.footer{display:flex;justify-content:space-between;gap:16px;padding-block:22px;border-top:1px solid var(--line);color:var(--muted);font-size:13px}dialog{width:min(94vw,1050px);max-height:94vh;background:#171915;color:var(--ink);border:1px solid var(--line);padding:12px}dialog::backdrop{background:#080a08dc}.close{display:block;margin:0 0 10px auto;background:transparent;border:1px solid #818478;padding:8px 12px;cursor:pointer}.viewer-content img{margin:auto;width:auto;height:auto;max-height:76vh;object-fit:contain}.viewer-content iframe{width:100%;border:0;aspect-ratio:16/9;display:block}
@media(max-width:650px){.top{min-height:74px}.brand img{width:35px;height:35px}.nav-contact{padding:9px}.top nav{font-size:13px}.hero{min-height:76svh}.hero-content{padding-top:130px}.hero-motion iframe{width:max(100vw,135.12svh);height:max(56.25vw,76svh)}.section-head{align-items:start;flex-direction:column}.projects,.about-grid,.services{grid-template-columns:1fr}.wide .image-open img{aspect-ratio:4/3}.project.wide,.services{grid-column:auto}.services{gap:18px}.footer{flex-wrap:wrap}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{scroll-behavior:auto!important;transition:none!important}}
svg{vertical-align:-.12em}.hero-motion{opacity:1}.hero-shade{background:linear-gradient(0deg,#111411ef,transparent 86%),linear-gradient(90deg,#10120f9e,transparent 78%),linear-gradient(180deg,#121512a8,transparent 28%)}

@media (min-width: 1000px) {
  .projects { grid-template-columns: repeat(6, minmax(0, 1fr)); }
  .projects > .project { grid-column: span 2; }
  .projects > .project:nth-child(-n+2),
  .projects > .project:nth-last-child(-n+2) { grid-column: span 3; }
}

.project figcaption { align-items: flex-end; flex-wrap: wrap; gap: 10px 14px; }
.project figcaption small { display: block; margin-bottom: 5px; }
.project figcaption a { font-size: 12px; flex-shrink: 0; }
#project-st-andrews img { object-position: 50% 55%; }
#project-channel-swim img { object-position: 50% 72%; }
.text-project { border-top: 1px solid var(--line); }

.case-study {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  align-items: center;
  gap: clamp(24px, 5vw, 76px);
  margin-bottom: clamp(42px, 6vw, 80px);
}

.case-study-image img { aspect-ratio: 4 / 3; object-position: 50% 65%; }
.case-study h3 {
  margin: 0 0 18px;
  font-size: clamp(35px, 5vw, 70px);
  line-height: 1;
  letter-spacing: -.055em;
}
.case-study-copy p:not(.eyebrow) { max-width: 47ch; color: var(--muted); line-height: 1.6; }
.case-study-copy .text-link { display: inline-block; margin-top: 4px; }

.enquiry-form { display: grid; max-width: 720px; gap: 18px; }
.enquiry-fields { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }
.enquiry-form label { display: grid; gap: 8px; font-size: 14px; font-weight: 700; }
.enquiry-form input:not([type="hidden"]), .enquiry-form textarea {
  width: 100%;
  padding: 13px 14px;
  background: #20221e;
  color: var(--ink);
  border: 1px solid #53584a;
  border-radius: 0;
  font: inherit;
  font-size: 16px;
  font-weight: 400;
}
.enquiry-form textarea { min-height: 120px; resize: vertical; }
.enquiry-form input:focus-visible, .enquiry-form textarea:focus-visible {
  outline: 2px solid var(--accent);
  outline-offset: 2px;
}
.enquiry-form button { border: 0; cursor: pointer; }
.enquiry-form button:disabled { cursor: default; opacity: .7; }
.enquiry-status { margin: 0; line-height: 1.5; }

@media (max-width: 650px) {
  .case-study, .enquiry-fields { grid-template-columns: 1fr; }
}

.project figcaption:has(.project-description) { display: grid; gap: 10px; align-content: start; }
.project-description { max-width: 58ch; margin: 0; color: var(--muted); font-size: 15px; line-height: 1.5; }

.operator-collage {
  display: grid;
  grid-template-columns: 3fr 2fr;
  grid-template-rows: repeat(2, minmax(0, 1fr));
  aspect-ratio: 5 / 4;
  gap: 8px;
  min-width: 0;
}
.operator-collage .image-open { min-height: 0; }
.operator-collage img { width: 100%; height: 100%; aspect-ratio: auto; }
.operator-portrait { grid-row: 1 / -1; }
.operator-portrait img { object-position: 50% 26%; }
.operator-haydock img { object-position: 50% 40%; }
.operator-fuerteventura img { object-position: 50% 66%; }

@media (min-width: 651px) {
  .services { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (min-width: 1000px) {
  .services { grid-template-columns: repeat(4, minmax(0, 1fr)); }
}
