:root{color-scheme:light;--navy:#0c1d2a;--navy-dark:#081621;--ink:#142532;--muted:#475661;--gold:#d6ae65;--ochre:#785319;--paper:#f6f4ef;--line:#dcdedc;--white:#fff;--max:1232px;font-family:"Segoe UI",Arial,sans-serif;color:var(--ink);background:var(--white);font-synthesis:none}
*,*::before,*::after{box-sizing:border-box}body{margin:0;line-height:1.55}h1,h2,h3,p,figure,dl,dd,ol{margin:0}img{display:block;max-width:100%}a{color:inherit;text-decoration:none}a:focus-visible{outline:3px solid #b77724;outline-offset:5px}address{font-style:normal}.skip{position:absolute;top:8px;left:8px;z-index:5;transform:translateY(-150%);background:#fff;padding:10px 18px}.skip:focus{transform:none}.wrap{width:min(var(--max),calc(100% - 96px));margin-inline:auto}
.utility{background:var(--navy-dark);color:#e8e9e7;font-size:.77rem;letter-spacing:.035em}.utility-grid{display:flex;justify-content:space-between;align-items:center;min-height:34px;gap:1rem}.utility a:hover,.footer a:hover{text-decoration:underline;text-underline-offset:4px}.header{background:white;border-bottom:1px solid #e4e4df}.head-grid{display:grid;grid-template-columns:1fr auto 1fr;gap:35px;align-items:center;min-height:80px}.brand{display:inline-flex;align-items:center;justify-self:start;gap:10px;line-height:1.07;font-size:1.1rem;font-weight:720;letter-spacing:-.025em;white-space:nowrap}.brand img{width:46px;height:46px}.brand small{display:block;margin-top:5px;text-transform:uppercase;letter-spacing:.11em;font-size:.53rem;font-weight:700;color:var(--muted)}.header nav{display:flex;align-items:stretch;align-self:stretch;gap:28px}.header nav a{position:relative;display:flex;align-items:center;min-height:42px;font-size:.9rem;font-weight:600;color:var(--muted)}.header nav a:hover,.header nav a[aria-current]{color:var(--ink)}.header nav a[aria-current]::after{content:"";position:absolute;bottom:0;left:0;right:0;height:3px;background:var(--ochre)}.header-action{justify-self:end;white-space:nowrap}.button{display:inline-flex;align-items:center;justify-content:center;gap:.72rem;padding:.73rem 1.04rem;min-height:46px;border:1px solid transparent;font-size:.875rem;font-weight:700;line-height:1.25;transition:background .15s,color .15s,border .15s}.button span,.text-link span{font-size:1.05em}.gold{background:var(--gold);color:var(--navy-dark)}.gold:hover{background:#e2c183}.outline{border-color:#80909a;color:var(--navy)}.outline:hover{background:var(--navy);color:white;border-color:var(--navy)}.text-link{display:inline-flex;align-items:center;gap:.5rem;line-height:1.4;font-weight:700;border-bottom:1px solid var(--ochre);padding-block:3px}.text-link:hover{color:var(--ochre)}
.hero,.intro,.tint{background:var(--paper)}.hero-grid{display:grid;grid-template-columns:1fr 1fr;gap:clamp(38px,5.4vw,86px);align-items:center;padding-block:56px}.hero-copy{padding-bottom:8px}.kicker{display:flex;align-items:center;gap:12px;margin-bottom:18px;color:var(--ochre);text-transform:uppercase;letter-spacing:.15em;font-size:.72rem;font-weight:750}.kicker::before{content:"";width:24px;height:1px;background:currentColor;flex:none}h1,h2,h3{line-height:1.07;letter-spacing:-.045em}h1{font-size:clamp(3.05rem,5.55vw,5.4rem);font-weight:730;overflow-wrap:break-word}h2{font-size:clamp(2rem,3.2vw,3.5rem);font-weight:710}h3{font-size:1.2rem;letter-spacing:-.025em}.lede{font-size:clamp(1.04rem,1.45vw,1.2rem);color:var(--muted);max-width:41ch;line-height:1.68}.hero .lede{margin-top:23px}.actions{display:flex;flex-wrap:wrap;gap:11px;margin-top:30px}.hero-figure{min-width:0}.hero-img{width:100%;aspect-ratio:1.24;object-fit:cover;object-position:center 57%;background:#61727a}.hero-figure figcaption{display:flex;align-items:center;gap:11px;padding:13px 16px;background:var(--navy);color:#f4f0e8;font-size:.68rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase}.hero-figure figcaption span:last-child{margin-left:auto;color:#d8c39d}.caption-line{width:14px;height:1px;background:var(--gold);flex:none}.facts{border-block:1px solid var(--line)}.fact-grid{display:grid;grid-template-columns:repeat(3,1fr);padding-block:19px}.fact-grid>div{display:grid;gap:2px;padding-inline:27px;border-left:1px solid var(--line)}.fact-grid>div:first-child{border:0;padding-left:0}.fact-grid span{font-size:.75rem;color:var(--muted)}.fact-grid strong{font-size:1rem}
.section{padding-block:clamp(52px,6vw,92px)}.section-split{display:grid;grid-template-columns:minmax(0,.78fr) minmax(0,1.22fr);gap:clamp(32px,7vw,112px);align-items:start}.body-copy{color:var(--muted);margin:17px 0 20px;max-width:49ch}.teasers,.service-list,.steps{list-style:none;padding:0}.teasers li,.service-list li{border-top:1px solid var(--line)}.teasers li:last-child,.service-list li:last-child{border-bottom:1px solid var(--line)}.teasers a,.service-list li{display:grid;grid-template-columns:34px minmax(0,1fr) auto;gap:12px;align-items:start;padding:18px 0}.teasers a:hover h3{color:var(--ochre)}.index{color:var(--ochre);font-size:.8rem;font-weight:750;font-variant-numeric:tabular-nums;padding-top:2px}.teasers p,.service-list p,.steps p{color:var(--muted);margin-top:6px;font-size:.94rem}.feature{display:grid;grid-template-columns:1fr 1fr;gap:clamp(30px,6vw,95px);align-items:center}.feature-image,.side-image{width:100%;aspect-ratio:1.62;object-fit:cover;background:#58666e}.feature-top{align-items:start}.intro{border-bottom:1px solid var(--line)}.intro-grid{display:grid;grid-template-columns:1.25fr .75fr;align-items:end;gap:clamp(24px,8vw,110px);padding-block:clamp(49px,6vw,90px)}.intro-grid .lede{padding-bottom:5px}.intro h1{font-size:clamp(2.9rem,5vw,4.9rem)}.details>div{display:grid;grid-template-columns:minmax(90px,.43fr) minmax(0,1fr);gap:14px;border-top:1px solid var(--line);padding:12px 0;font-size:.94rem}.details>div:last-child{border-bottom:1px solid var(--line)}.details dt{font-weight:720}.details dd{color:var(--muted);overflow-wrap:anywhere}.leadership{display:grid;grid-template-columns:minmax(200px,300px) 1fr;gap:clamp(34px,7vw,98px);align-items:center}.portrait{width:100%;aspect-ratio:4/5;object-fit:cover;object-position:center 24%;background:#68737b}.role{margin-top:8px;color:var(--muted);font-size:.95rem}blockquote{margin:24px 0 0;padding-left:16px;border-left:2px solid var(--ochre);font-family:Georgia,serif;font-size:clamp(1.32rem,2.3vw,2rem);line-height:1.36;max-width:32ch}.service-list li{grid-template-columns:36px minmax(0,1fr);padding-block:21px;scroll-margin-top:18px}.service-list li:target{background:var(--paper);padding-inline:14px}.service-list h2{font-size:clamp(1.23rem,2vw,1.65rem);letter-spacing:-.026em}.services-layout aside .kicker{margin-top:23px}.services-layout aside .body-copy{margin-top:0}.steps{display:grid;grid-template-columns:repeat(3,1fr);gap:0 28px;margin-top:36px}.steps li{border-top:1px solid var(--line);padding:17px 0 23px}.steps h3{margin-top:7px}.industries>div{grid-template-columns:minmax(0,.65fr) minmax(0,1fr)}.contact-grid{display:grid;grid-template-columns:1fr .85fr;gap:clamp(30px,9vw,140px);align-items:start}.contact-details{margin-top:25px}.contact-details>div{padding-block:17px}.contact-details a{text-decoration:underline;text-underline-offset:4px}.contact-details a:hover{color:var(--ochre)}.enquiry{background:var(--paper);padding:clamp(22px,4vw,48px);border-top:3px solid var(--ochre)}.enquiry h2,.contact-grid>div:first-child h2{font-size:clamp(1.85rem,3vw,2.6rem)}.enquiry ul{padding-left:1.2rem;margin:17px 0 24px;color:var(--muted)}.enquiry li+li{margin-top:5px}.note{margin-top:10px;color:var(--muted);font-size:.82rem}
.cta{background:var(--navy);color:#fff;padding-block:49px}.cta-grid{display:flex;justify-content:space-between;align-items:center;gap:24px}.cta .kicker{color:var(--gold);margin-bottom:11px}.cta h2{font-size:clamp(1.9rem,3.7vw,3.3rem)}.cta p:not(.kicker){margin-top:9px;color:#d4dde3}.cta .button{flex:none}.footer{background:var(--navy-dark);color:#c1cdd4;font-size:.86rem;padding-top:32px}.foot-grid{display:grid;grid-template-columns:1.15fr .7fr .85fr;gap:25px}.foot-name{color:#fff;font-weight:700;margin-bottom:4px}.foot-grid nav{display:grid;grid-template-columns:auto auto;justify-content:start;column-gap:18px}.foot-contact{display:grid;align-content:start;justify-content:end;overflow-wrap:anywhere}.foot-bottom{display:flex;justify-content:space-between;gap:10px;border-top:1px solid #354650;margin-top:26px;padding-block:14px;font-size:.76rem}
@media(max-width:1030px){.wrap{width:calc(100% - 64px)}.head-grid{gap:22px}.header nav{gap:19px}.header-action{padding-inline:.7rem}.hero-grid{gap:32px}.desktop{display:none}}
@media(max-width:850px){.header-action{display:none}.head-grid{grid-template-columns:auto 1fr}.header nav{justify-self:end}.hero-grid{grid-template-columns:1fr 1fr;gap:24px}.hero-img{aspect-ratio:.92}.hero-figure figcaption span:last-child{display:none}.section-split{gap:32px}.contact-grid{gap:30px}.foot-grid{grid-template-columns:1fr auto}.foot-contact{justify-content:start}.intro-grid{gap:24px}}
@media(max-width:680px){.wrap{width:calc(100% - 36px)}.utility{font-size:.68rem}.utility-grid{min-height:30px;gap:8px}.head-grid{display:flex;align-items:start;flex-direction:column;gap:3px;padding-top:10px;min-height:0}.brand img{width:38px;height:38px}.header nav{align-self:stretch;gap:0;justify-content:space-between}.header nav a{font-size:.81rem;padding-inline:3px;min-height:44px}.hero-grid,.intro-grid,.section-split,.feature,.contact-grid,.leadership{grid-template-columns:1fr;gap:23px}.hero-grid{padding-block:35px 28px}.hero-copy{padding:0}.hero-img{aspect-ratio:1.32;object-position:center 58%}.hero-figure figcaption span:last-child{display:inline}.hero .lede{margin-top:15px}.actions{margin-top:22px}.intro-grid{padding-block:36px}.intro-grid .lede{padding:0}.intro h1{max-width:16ch}.fact-grid{padding-block:13px;grid-template-columns:1.12fr 1fr .9fr}.fact-grid>div{padding-inline:8px;gap:3px}.fact-grid span{font-size:.64rem;line-height:1.3}.fact-grid strong{font-size:.75rem;line-height:1.36}.section{padding-block:43px}.side-image{aspect-ratio:2}.portrait{max-width:300px;aspect-ratio:1.04;object-position:center 27%}.steps{grid-template-columns:repeat(2,1fr);gap:0 14px;margin-top:25px}.cta{padding-block:35px}.cta-grid{display:grid;justify-items:start;gap:18px}.foot-grid{grid-template-columns:1fr;gap:14px}.foot-grid nav{grid-template-columns:repeat(4,auto)}.foot-bottom{font-size:.7rem}.enquiry{padding:23px}.kicker{margin-bottom:13px}.teasers a,.service-list li{gap:6px}.industries>div{gap:10px}}
@media(max-width:360px){.wrap{width:calc(100% - 26px)}h1{font-size:2.65rem}.hero-figure figcaption span:last-child{display:none}.foot-bottom{flex-direction:column}.utility{font-size:.64rem}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{transition:none!important}}

/* Layer the port image, its frame and caption in the same perspective. */
.hero-img,
.feature-image,
.side-image,
.portrait {
  height: auto;
}

.hero-stage {
  min-width: 0;
  position: relative;
  perspective: 1200px;
  isolation: isolate;
}

.hero-figure {
  position: relative;
  transform-style: preserve-3d;
}

.hero-figure::before {
  content: "";
  position: absolute;
  inset: 10px -10px -10px 10px;
  border: 1px solid #bda777;
  pointer-events: none;
  transform: translateZ(-18px);
}

.hero-photo {
  position: relative;
  overflow: hidden;
  background: #61727a;
}

.hero-photo::after {
  content: "";
  position: absolute;
  inset: 12px;
  border: 1px solid #ffffff4d;
  pointer-events: none;
}

.hero-figure figcaption {
  position: relative;
}

@media (min-width: 681px) {
  .hero-figure figcaption {
    margin-inline: -10px 15px;
    border-left: 3px solid var(--gold);
    box-shadow: 0 7px 12px #08162121;
  }
}

@media (max-width: 680px) {
  .hero-figure::before {
    inset: 7px -5px -6px 5px;
  }
}

@keyframes lift-in {
  from {
    opacity: .85;
    transform: translateY(13px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}

@media (prefers-reduced-motion: no-preference) {
  .hero-copy > *,
  .intro-grid > * {
    animation: lift-in 580ms cubic-bezier(.22, .7, .26, 1) both;
  }

  .hero-copy h1,
  .intro-grid > :nth-child(2) {
    animation-delay: 55ms;
  }

  .hero-copy .lede {
    animation-delay: 110ms;
  }

  .hero-copy .actions {
    animation-delay: 160ms;
  }

  .motion-enter {
    animation: lift-in 550ms cubic-bezier(.22, .7, .26, 1);
  }

  .button span,
  .text-link span,
  .teasers a > span:last-child {
    transition: transform 180ms ease;
  }

  .button:is(:hover, :focus-visible) span,
  .text-link:is(:hover, :focus-visible) span,
  .teasers a:is(:hover, :focus-visible) > span:last-child {
    transform: translate(3px, -3px);
  }
}

@media (hover: hover) and (pointer: fine) and (prefers-reduced-motion: no-preference) {
  .hero-figure {
    transform: rotateX(var(--tilt-x, 0deg)) rotateY(var(--tilt-y, 0deg));
    transition: transform 380ms cubic-bezier(.2, .7, .3, 1);
  }

  .hero-img {
    transform: translate(var(--photo-x, 0px), var(--photo-y, 0px)) scale(1.025);
    transition: transform 380ms cubic-bezier(.2, .7, .3, 1);
  }

  .hero-figure figcaption {
    transform: translateZ(0);
    transition: transform 380ms cubic-bezier(.2, .7, .3, 1);
  }

  .hero-figure.is-tilting figcaption {
    transform: translateZ(26px);
  }

  .hero-figure.is-tilting,
  .hero-figure.is-tilting .hero-img {
    transition-duration: 160ms;
  }
}
