@font-face{font-family:Inter;src:url('/assets/inter-latin.woff2') format('woff2');font-style:normal;font-weight:100 900;font-display:swap}
@font-face{font-family:'IBM Plex Mono';src:url('/assets/plex-mono-latin.woff2') format('woff2');font-style:normal;font-weight:400;font-display:swap}
:root{--ink:#0b2740;--copper:#c9752b;--paper:#f4f2ed;--gray:#676861;--line:#d7d7d0;--light:#b9c5cf;--mono:'IBM Plex Mono',monospace;--space:clamp(24px,5.2vw,96px)}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:var(--header-height,110px)}body{margin:0;background:var(--paper);color:var(--ink);font-family:Inter,Arial,sans-serif;font-size:16px;line-height:1.65;-webkit-font-smoothing:antialiased}h1,h2,h3,p,figure{margin:0}h1,h2,h3{line-height:1.12;letter-spacing:-.045em;font-weight:550}h1{font-size:clamp(44px,5.45vw,86px);font-weight:530}h2{font-size:clamp(33px,3.6vw,58px)}h3{font-size:25px;letter-spacing:-.025em}p+p{margin-top:22px}em{font-style:normal;color:var(--copper)}a{color:inherit;text-decoration:none}button,input,textarea,select{font:inherit}button,a,input,textarea,select{-webkit-tap-highlight-color:transparent}button{cursor:pointer}button:disabled{cursor:wait;opacity:.65}a:focus-visible,button:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible,summary:focus-visible{outline:3px solid var(--copper);outline-offset:5px}a:hover{color:var(--copper)}.skip{position:fixed;top:-80px;left:20px;padding:12px 20px;background:white;z-index:100}.skip:focus{top:10px}.mono,.eyebrow,.section-label{font-family:var(--mono);font-size:13px;letter-spacing:.015em}.wordmark{display:inline-flex;align-items:center;flex:none;width:220px;line-height:1}.wordmark img{display:block;width:100%;height:auto}.wordmark-footer{align-self:start}.wordmark-footer img{filter:brightness(0) invert(1);opacity:.92}.header{padding:28px var(--space);display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line);min-height:101px}.header nav{display:flex;align-items:center;gap:36px;font-size:14px;font-weight:500}.nav-contact{border:1px solid #b5bab9;padding:10px 20px;margin-left:8px;display:flex;gap:25px;align-items:center}.nav-contact span{font-size:22px}.menu-toggle{display:none}.hero{padding:0 var(--space) 0}.hero-copy{padding:65px 0 40px}.eyebrow{display:flex;align-items:center;gap:14px;margin-bottom:25px}.copper-rule{display:inline-block;flex:none;width:30px;height:3px;background:var(--copper)}.hero-bottom{display:flex;justify-content:space-between;align-items:flex-end;margin-top:28px;gap:40px}.hero-bottom p{max-width:605px;font-size:18px;line-height:1.7;color:#475866}.circle-link{flex:none;width:54px;height:54px;border:1px solid #b2babb;border-radius:50%;display:grid;place-items:center;font-size:25px}.circle-link:hover{background:var(--ink);color:var(--paper)}.hero-image{position:relative;height:clamp(320px,40vw,610px);overflow:hidden;background:#c0bdb4}.hero-image img{width:100%;height:100%;object-fit:cover;object-position:50% 20%}.hero-image figcaption{position:absolute;bottom:0;left:0;right:0;padding:55px 26px 20px;display:flex;justify-content:space-between;color:white;font-family:var(--mono);font-size:12px;gap:20px;background:linear-gradient(transparent,#0b274099)}.section{padding:75px var(--space) 90px;scroll-margin-top:25px}.section-label{display:flex;align-items:center;justify-content:space-between;border-top:1px solid var(--line);padding-top:16px;margin-bottom:55px;gap:20px}.small-square{width:6px;height:6px;background:var(--copper)}.approach .section-label{border-top:0}.approach-content{display:grid;grid-template-columns:.86fr 1.14fr;gap:70px}.approach-content h2{font-size:clamp(31px,3vw,48px)}.two-col{display:grid;grid-template-columns:1fr 1fr;gap:40px}.two-col p{font-size:15px;color:#52616b}.two-col .lead{font-size:22px;color:var(--ink);line-height:1.5;letter-spacing:-.02em}.section-heading{display:flex;justify-content:space-between;gap:70px;align-items:flex-end;margin-bottom:55px}.section-heading>p{max-width:330px;color:var(--gray);font-size:16px}.capabilities{padding-top:10px}.capability-grid{display:grid;grid-template-columns:repeat(3,1fr);border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.capability{position:relative;min-width:0;padding:34px 34px 24px;display:flex;flex-direction:column}.capability+.capability{border-left:1px solid var(--line);padding-left:34px}.capability .index{color:var(--gray)}.line-icon{width:42px;height:42px;display:grid;place-items:center;font-size:42px;font-weight:300;color:var(--copper);line-height:1;position:absolute;right:34px;top:22px}.capability h3{font-size:31px;margin:42px 0 24px}.capability>p:not(.capability-end){font-size:15px;color:#52616b;max-width:370px}.capability .capability-end{font-family:var(--mono);font-size:13px;margin-top:38px;padding-top:24px;border-top:1px solid var(--line);color:var(--ink)}.edge{background:var(--ink);color:var(--paper);padding-top:55px}.edge .section-label{border-color:#395065;color:var(--light)}.edge-layout{display:grid;grid-template-columns:1fr 1fr;gap:90px}.edge h2{line-height:1.2}.edge h2 em{color:#d99554}.edge-list article{display:flex;gap:28px;padding:26px 0;border-bottom:1px solid #395065}.edge-list article:first-child{padding-top:0}.edge-list article>span{color:#d99554;padding-top:4px}.edge-list h3{font-size:23px;margin-bottom:13px;letter-spacing:-.02em}.edge-list p{color:#b9c5cf;font-size:15px;max-width:475px}.values{padding-bottom:55px}.values-grid{display:grid;grid-template-columns:repeat(3,1fr);column-gap:45px}.values-grid article{padding:32px 0 34px;border-top:1px solid var(--line)}.values-grid .mono{color:#8a541f}.values-grid h3{font-size:23px;margin:22px 0 15px}.values-grid p{color:#52616b;font-size:15px;max-width:345px}.process{padding-top:20px}.process-list{display:grid;grid-template-columns:repeat(5,1fr);list-style:none;margin:50px 0 0;padding:0}.process-list li{position:relative;padding:22px 15px 0 0;border-top:1px solid #bfc5c5}.process-list li:before{content:'';position:absolute;top:-4px;left:0;width:7px;height:7px;background:var(--copper)}.process-list .mono{color:#8a541f}.process-list h3{font-size:23px;margin:20px 0 12px}.process-list p{font-size:14px;color:#52616b}.process-note{display:flex;gap:20px;align-items:center;margin-top:45px;font-size:15px}.contact{background:var(--ink);color:var(--paper);padding-top:55px;padding-bottom:40px}.contact .section-label{border-color:#395065;color:var(--light)}.contact-main{display:flex;align-items:flex-end;justify-content:space-between;gap:50px;padding-bottom:65px}.contact h2{font-size:clamp(38px,4.7vw,74px)}.contact h2 em{color:#d99554}.contact-link{display:flex;align-items:center;gap:45px;font-size:clamp(21px,2.5vw,35px);border-bottom:1px solid #647482;padding-bottom:12px;white-space:nowrap}.contact-link span{font-size:40px;color:#d99554}.contact-address{display:grid;grid-template-columns:1fr 1fr 1fr;gap:40px;border-top:1px solid #395065;padding-top:35px}.contact-address p{font-size:14px;color:var(--light);margin:0}.contact-address .wordmark span{color:var(--light)}.footer{padding:23px var(--space);font-size:12px;display:flex;gap:25px;justify-content:space-between}.footer>div{display:flex;gap:25px;align-items:center}.footer button{border:0;background:none;color:inherit;padding:0;font-size:12px}.footer button:hover{color:var(--copper)}.legal{max-width:850px;min-height:65vh;margin:auto;padding:70px var(--space)}.legal h1{font-size:45px;margin-bottom:35px}.legal h2{font-size:24px;margin:35px 0 15px}.legal p{color:#52616b}.legal a{text-decoration:underline}.gate-page{min-height:100vh;display:flex;flex-direction:column}.gate-main{flex:1;display:grid;place-items:center;padding:35px 24px 70px}.gate-card{width:100%;max-width:450px}.gate-card h1{font-size:49px;margin:32px 0 18px}.gate-card>p{color:#52616b}.gate-card label{display:block;font-size:14px;margin:30px 0 9px}.gate-card input{width:100%;height:54px;background:transparent;border:1px solid #aeb7b9;padding:13px 16px;color:var(--ink);border-radius:0}.primary{border:1px solid var(--ink);background:var(--ink);color:white;min-height:50px;padding:12px 22px;display:inline-flex;align-items:center;justify-content:space-between;gap:35px}.primary:hover{background:#173e5b;color:white}.gate-card .primary{width:100%;margin-top:16px}.error{color:#a02f25!important;margin-top:15px;font-size:14px}.gate-footer{padding:20px var(--space);display:flex;justify-content:space-between;font-family:var(--mono);font-size:12px;color:var(--gray)}
.cookie-panel{position:fixed;z-index:1000;left:max(18px,var(--space));right:max(18px,var(--space));bottom:22px;display:flex;align-items:flex-end;justify-content:space-between;gap:45px;padding:24px 26px;border:1px solid #c7ccca;background:var(--paper);box-shadow:0 18px 65px #0b27402b}.cookie-copy{max-width:790px}.cookie-copy .eyebrow{margin-bottom:8px;color:var(--ink)}.cookie-copy>p{color:#52616b;font-size:14px;line-height:1.55}.cookie-copy>a{display:inline-block;margin-top:8px;font-size:12px;text-decoration:underline}.cookie-actions{display:flex;gap:12px;flex:none}.cookie-actions button{min-height:46px;padding:10px 18px;white-space:nowrap}.cookie-actions .secondary{border:1px solid var(--ink);background:transparent;color:var(--ink)}.cookie-actions .secondary:hover{background:#e5e2dc}
@media(min-width:1600px){body{max-width:1920px;margin:auto}.hero-copy{padding-top:85px}}
@media(max-width:1100px){.approach-content{grid-template-columns:1fr;gap:35px}.two-col{max-width:900px}.edge-layout{gap:40px}.header nav{gap:22px}.section-heading{gap:30px}.capability{padding-right:22px;padding-left:22px}.capability+.capability{padding-left:22px}.line-icon{right:22px}.capability h3{font-size:27px}.values-grid{column-gap:25px}.contact-main{align-items:flex-start;flex-direction:column;gap:35px}}
@media(max-width:760px){html{scroll-padding-top:var(--header-height,100px)}.header{padding-top:24px;padding-bottom:24px;flex-wrap:wrap;min-height:85px}.wordmark{width:170px}.menu-toggle{display:flex;gap:20px;align-items:center;background:none;border:0;color:var(--ink);font-size:14px;padding:8px 0 8px 16px}.menu-toggle span{font-size:26px;line-height:1}.header nav{display:none;width:100%;padding-top:28px;align-items:stretch;gap:0}.header nav.open{display:flex;flex-direction:column}.header nav a{padding:15px 0;border-top:1px solid var(--line);font-size:17px}.header nav .nav-contact{margin:0;border:0;border-top:1px solid var(--line);justify-content:space-between}.hero-copy{padding-top:40px;padding-bottom:30px}.eyebrow{font-size:11px;gap:10px;margin-bottom:24px}.copper-rule{width:20px}h1{font-size:clamp(37px,7.6vw,57px);letter-spacing:-.05em}.hero-bottom{gap:24px;margin-top:23px;align-items:center}.hero-bottom p{font-size:16px}.circle-link{width:42px;height:42px;font-size:22px}.hero-image{height:340px;margin-left:calc(-1 * var(--space));margin-right:calc(-1 * var(--space))}.hero-image figcaption{font-size:10px;padding-left:var(--space);padding-right:var(--space)}.section{padding-top:48px;padding-bottom:55px}.section-label{font-size:11px;margin-bottom:35px;align-items:flex-start}.section-label>span:last-child:not(.small-square){max-width:155px;text-align:right}.two-col{grid-template-columns:1fr;gap:20px}.two-col .lead{font-size:22px}.two-col p{font-size:16px}.section-heading{display:block;margin-bottom:35px}.section-heading>p{margin-top:23px;max-width:500px}.capabilities{padding-top:0}.capability-grid{grid-template-columns:1fr;border-bottom:0}.capability,.capability+.capability{border-left:0;border-bottom:1px solid var(--line);padding:25px 0}.capability h3{margin-top:25px;font-size:29px}.capability h3 br{display:none}.capability>p:not(.capability-end){max-width:none;font-size:16px}.line-icon{right:0;top:25px}.capability .capability-end{margin-top:23px;padding-top:0;border-top:0}.edge-layout{grid-template-columns:1fr;gap:40px}.edge-list article{gap:20px}.edge-list p{font-size:16px}.values-grid{grid-template-columns:1fr 1fr;gap:0 25px}.values-grid h3{font-size:21px}.values-grid p{font-size:15px}.process-list{grid-template-columns:1fr;margin-top:30px}.process-list li{display:grid;grid-template-columns:30px 1fr;gap:5px 20px;padding:23px 0 23px 5px;border-top:0;border-bottom:1px solid var(--line)}.process-list li:before{display:none}.process-list .mono{grid-row:span 2;padding-top:2px}.process-list h3{margin:0;font-size:23px}.process-list p{grid-column:2;font-size:15px}.process-list p br{display:none}.process-list p br:after{content:' '}.process-note{align-items:flex-start;gap:13px;font-size:14px;margin-top:30px}.process-note .copper-rule{margin-top:10px}.contact-main{padding-bottom:40px}.contact h2{font-size:clamp(33px,7.2vw,54px)}.contact-address{grid-template-columns:1fr 1fr;gap:27px}.contact-address>.wordmark{grid-column:span 2}.footer{display:block;font-size:11px}.footer>div{margin-top:18px;flex-wrap:wrap;gap:16px 22px}.footer button{font-size:11px}.gate-card h1{font-size:42px}.gate-footer{font-size:10px;gap:20px}.cookie-panel{left:12px;right:12px;bottom:12px;display:block;padding:20px}.cookie-actions{display:grid;grid-template-columns:1fr 1fr;margin-top:18px}.cookie-actions button{white-space:normal;padding-left:10px;padding-right:10px}}
@media(max-width:400px){.values-grid{grid-template-columns:1fr}.values-grid p{max-width:none}.hero-bottom{gap:15px}.hero-image figcaption{flex-direction:column;gap:0}.contact-address{grid-template-columns:1fr}.contact-address>.wordmark{grid-column:1}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{transition:none!important;animation:none!important}}

/* Shared content rows keep the three capability columns aligned without fixed heights. */
@media (min-width: 761px) {
  .capability-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .capability > p:not(.capability-end) { flex: 1; }
  @supports (grid-template-rows: subgrid) {
    .capability-grid { grid-template-rows: auto auto 1fr auto; }
    .capability {
      display: grid;
      grid-template-rows: subgrid;
      grid-row: span 4;
    }
  }
}

/* Echo the capability closing lines beneath the three partnership principles. */
.values-grid article { min-width: 0; display: flex; flex-direction: column; }
.values-grid article > p:not(.value-end) { flex: 1; }
.values-grid .value-end {
  max-width: none;
  margin-top: 38px;
  padding-top: 24px;
  border-top: 1px solid var(--line);
  font-family: var(--mono);
  font-size: 13px;
  color: var(--ink);
}
@supports (grid-template-rows: subgrid) {
  .values-grid { grid-template-rows: auto auto 1fr auto; }
  .values-grid article {
    display: grid;
    grid-template-rows: subgrid;
    grid-row: span 4;
  }
}
@media (max-width: 760px) {
  .values-grid .value-end { margin-top: 23px; padding-top: 0; border-top: 0; }
}

/* Keep the main navigation visible; anchor offsets follow its actual height. */
.header-sticky {
  position: sticky;
  top: 0;
  z-index: 50;
  background: var(--paper);
}
@media (max-width: 760px) {
  .header-sticky { max-height: 100dvh; overflow-y: auto; }
}

/* A connected portfolio: readable by default, hover-enhanced on large pointer screens. */
.focus-orbit { position: relative; isolation: isolate; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 30px 40px; max-width: 900px; margin: 0 auto; padding: 24px 18px 40px; }
.focus-orbit::before { content: ''; position: absolute; z-index: -1; inset: 65px 12% 20px; border: 1px solid #c9752b45; border-radius: 50%; }
.focus-connections { display: none; }
.focus-center { grid-column: 1 / -1; justify-self: center; display: flex; flex-direction: column; align-items: center; justify-content: center; width: 230px; min-height: 230px; padding: 30px; border: 1px solid var(--line); border-radius: 50%; background: var(--paper); text-align: center; }
.focus-center .copper-rule { width: 25px; margin-bottom: 17px; }
.focus-center h3 { font-size: 26px; line-height: 1.2; overflow-wrap: anywhere; }
.focus-center p { margin-top: 14px; font-size: 15px; line-height: 1.55; color: #52616b; }
.focus-node { position: relative; align-self: start; min-width: 0; padding: 12px 8px; background: var(--paper); text-align: center; }
.focus-node::before { content: ''; display: block; width: 5px; height: 5px; margin: 0 auto 12px; border-radius: 50%; background: var(--copper); }
.focus-node:focus-visible { outline: 2px solid var(--copper); outline-offset: 4px; border-radius: 4px; }
.focus-node h3 { font-size: 23px; line-height: 1.25; overflow-wrap: anywhere; }
.focus-node p { margin: 10px auto 0; max-width: 270px; font-size: 15px; line-height: 1.6; color: #52616b; }
.focus-orbit.is-interactive { display: block; aspect-ratio: 1000 / 640; padding: 0; margin-top: 70px; margin-bottom: 35px; }
.focus-orbit.is-interactive::before { display: none; }
.is-interactive .focus-connections { display: block; position: absolute; inset: 0; width: 100%; height: 100%; fill: none; stroke: var(--copper); stroke-width: 1; pointer-events: none; }
.focus-connections circle { opacity: .35; }
.focus-connections path { opacity: .22; transition: opacity 160ms ease, stroke-width 160ms ease; }
.focus-connections path.is-active { opacity: .9; stroke-width: 1.6; }
.is-interactive .focus-center { position: absolute; left: 50%; top: 50%; transform: translate(-50%, -50%); width: 250px; height: 250px; min-height: 0; padding: 28px; }
.is-interactive .focus-node { position: absolute; left: var(--orbit-x); top: var(--orbit-y); transform: translate(-50%, -50%); width: 230px; padding: 15px 12px; cursor: default; }
.is-interactive .focus-node h3 { font-size: 22px; transition: color 160ms ease; }
.is-interactive .focus-node.is-active h3 { color: #96521b; }
.is-interactive .focus-node::before { margin-bottom: 10px; transition: transform 160ms ease; }
.is-interactive .focus-node.is-active::before { transform: scale(1.6); }
/* Keep descriptions available to assistive technology when shown in the visual centre. */
.is-interactive .focus-node p { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }
@media (max-width: 600px) {
  .focus-orbit { gap: 22px 16px; padding: 8px 0 20px; }
  .focus-center { width: 205px; min-height: 205px; padding: 25px; }
  .focus-center h3 { font-size: 24px; }
  .focus-center p { font-size: 14px; }
  .focus-node { padding: 12px 3px; }
  .focus-node h3 { font-size: 18px; }
  .focus-node p { font-size: 14px; }
}
/* Open the mobile menu earlier to accommodate the new focus link. */
@media (max-width: 960px) {
  .header-sticky { flex-wrap: wrap; max-height: 100dvh; overflow-y: auto; }
  .menu-toggle { display: flex; gap: 20px; align-items: center; background: none; border: 0; color: var(--ink); font-size: 14px; padding: 8px 0 8px 16px; }
  .menu-toggle span { font-size: 26px; line-height: 1; }
  .header nav { display: none; width: 100%; padding-top: 28px; align-items: stretch; gap: 0; }
  .header nav.open { display: flex; flex-direction: column; }
  .header nav a { padding: 15px 0; border-top: 1px solid var(--line); font-size: 17px; }
  .header nav .nav-contact { margin: 0; border: 0; border-top: 1px solid var(--line); justify-content: space-between; }
}
