/* The closing CTA's aura remains anchored to the section's top edge while its
   taller scene viewport shifts the composition lower. Keep its mask opaque at
   the top so the animation is not clipped as it enters the section. */
:root {
  --gm-hero-heading-size: 68px;
  --gm-section-heading-size: 45.744px;
  --gm-btn-outline-width: 1.5px;
}

.gm-btn--outline {
  box-shadow: inset 0 0 0 var(--gm-btn-outline-width) var(--gm-border);
}

.gm-cta--aura > .gm-cta__aura {
  inset: 0 0 calc(-1 * var(--gm-space-8));
  opacity: 0.9;
  -webkit-mask-image: linear-gradient(to bottom, #000 0%, #000 84%, transparent 100%);
          mask-image: linear-gradient(to bottom, #000 0%, #000 84%, transparent 100%);
}

.gm-cta--aura > .gm-motion-scrim {
  background: linear-gradient(180deg, rgba(0,0,0,0.08) 0%, rgba(0,0,0,0.03) 48%, rgba(0,0,0,0.42) 100%);
}

/* ==========================================================================
   GEOMORPHIC AI — HOME PAGE LAYER
   Everything the approved Editorial home page needs that is NOT part of the
   brand system. Load AFTER brand.css and brand-dataviz.css.

   The split matters. brand.css is the SYSTEM — colour, type, buttons, forms,
   components, sections — and is shared with every future page. This file is
   PAGE FURNITURE: the framed 1440 shell, the falling beams, the ticker, the
   marquee, the spotlight cards. Adding a second page means reusing brand.css
   untouched and writing a sibling to this file, never editing brand.css.

   Class names are kept exactly as they appear in the signed-off mock-up
   (REFERENCE/mockup-1-approved.html) so the two stay diffable. The `mk-`
   prefix is historical — rename it in one pass if you want, but do it across
   both files at once, not piecemeal.
   ========================================================================== */


/* --------------------------------------------------------------------------
   1 · THE SHELL
   A framed 1440 column with a faint 12rem × 24rem grid and three vertical
   rules. Coloured beams fall down the rules on a loop — blue, then teal, then
   gold, in logomark order. This is the device that makes the page read as
   "instrument", and it is the first thing to check when comparing against the
   reference: without it the page looks like a generic dark site.
   ----------------------------------------------------------------------- */
.mk-shell {
  position: relative; max-width: 1440px; margin-inline: auto;
  border-inline: 1px solid #8A8A8A;
}
.mk-shell__grid {
  position: absolute; inset: 0; z-index: 0; pointer-events: none;
  background-image:
    linear-gradient(rgba(255, 255, 255, 0.02) 1px, transparent 1px),
    linear-gradient(90deg, rgba(255, 255, 255, 0.02) 1px, transparent 1px);
  background-size: 12rem 24rem;
}
.mk-shell__rules {
  position: absolute; inset: 0; z-index: 0; pointer-events: none;
  display: flex; justify-content: space-between;
  padding-inline: clamp(20px, 5vw, 96px);
}
/* The homepage header already sits within .mk-shell's bordered frame. Interior
   pages need the shared nav rails; rendering those again here doubles them. */
.mk-shell .gm-nav::before,
.mk-shell .gm-nav::after {
  content: none;
}

/* Home hero background scenes. The video layer is inert and source-less
   until selected by the small Scene control. */
.gm-home-hero__media {
  position: absolute;
  inset: 0;
  z-index: 0;
  overflow: hidden;
  background: var(--gm-black);
}
.gm-home-hero__video {
  transition: opacity 420ms var(--gm-ease);
}
.gm-home-hero__video {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  opacity: 1;
  filter: saturate(.78) contrast(1.06) brightness(.82);
}
.gm-home-hero__shade {
  position: absolute;
  inset: 0;
  z-index: 1;
  pointer-events: none;
  transition: opacity 240ms var(--gm-ease);
}
.gm-home-hero__shade--vertical {
  background: linear-gradient(
    180deg,
    rgba(0,0,0,.42),
    rgba(0,0,0,.08) 34%,
    rgba(0,0,0,.58) 82%,
    var(--gm-black)
  );
}
.gm-home-hero__shade--horizontal {
  background: linear-gradient(
    90deg,
    rgba(0,0,0,.94) 0%,
    rgba(0,0,0,.8) 30%,
    rgba(0,0,0,.3) 56%,
    rgba(0,0,0,.05) 78%,
    rgba(0,0,0,.3) 100%
  );
}
.gm-home-hero__hatch {
  position: absolute;
  inset: 0;
  z-index: 1;
  pointer-events: none;
  opacity: 0;
  background-image: repeating-linear-gradient(
    -45deg,
    var(--gm-white),
    var(--gm-white) 1px,
    transparent 1px,
    transparent 12px
  );
}
.gm-hero-optin {
  display: flex;
  flex-direction: column;
  justify-content: center;
  padding: 26px;
  border: 1.5px solid rgba(255,255,255,.82);
  border-radius: 4px;
  background:
    linear-gradient(135deg, rgba(7,20,28,.5), rgba(0,0,0,.32));
  box-shadow: 0 18px 48px rgba(0,0,0,.28);
  backdrop-filter: blur(20px) saturate(125%);
  -webkit-backdrop-filter: blur(20px) saturate(125%);
}
.gm-hero-optin .gm-newsletter__status:empty {
  display: none;
}
@media (max-width: 620px) {
  .gm-hero-optin .gm-newsletter__row {
    flex-direction: column;
    gap: 12px;
  }
  .gm-hero-optin .gm-newsletter__row .gm-btn {
    align-self: flex-start;
    white-space: nowrap;
  }
}
@media (prefers-reduced-motion: reduce) {
  .gm-home-hero__media canvas,
  .gm-home-hero__video {
    transition: none;
  }
}
.mk-shell__rule {
  position: relative; width: 1px;
  background: rgba(255, 255, 255, 0.035); overflow: hidden;
}
.mk-shell__rule:nth-child(2) { position: absolute; left: 50%; top: 0; bottom: 0; }

@keyframes mk-beam {
  0%   { top: -160px; opacity: 0; }
  5%   { opacity: 1; }
  95%  { opacity: 1; }
  100% { top: 100%; opacity: 0; }
}
.mk-beam {
  position: absolute; left: 0; width: 1px; height: 120px;
  background: linear-gradient(to bottom, transparent, rgba(54, 156, 212, 0.42) 80%, rgba(54, 156, 212, 0.8) 100%);
  animation: mk-beam 5.5s linear infinite;
}
.mk-beam--2 { animation-delay: 1.8s;
  background: linear-gradient(to bottom, transparent, rgba(78, 196, 169, 0.38) 80%, rgba(78, 196, 169, 0.72) 100%); }
.mk-beam--3 { animation-delay: 3.6s;
  background: linear-gradient(to bottom, transparent, rgba(241, 202, 81, 0.32) 80%, rgba(241, 202, 81, 0.62) 100%); }
@media (prefers-reduced-motion: reduce) {
  .mk-beam { animation: none; opacity: 0.25; top: 30%; }
}


/* --------------------------------------------------------------------------
   2 · TARGETED MOTION: DATA SCAN, LAYER, ASSEMBLE
   Replaces generic scroll-reveal with semantic, evidence-assembly motions.
   ----------------------------------------------------------------------- */

.gm-motion-ready .gm-layer-reveal,
.gm-motion-ready .gm-scan-reveal,
.gm-motion-ready .gm-assemble-reveal,
.gm-motion-ready .gm-slide-right-reveal {
  opacity: 0;
}

@media (prefers-reduced-motion: reduce) {
  .gm-layer-reveal,
  .gm-scan-reveal,
  .gm-assemble-reveal,
  .gm-slide-right-reveal {
    opacity: 1 !important;
    transform: none !important;
    animation: none !important;
    transition: none !important;
  }
}

/* Layer Reveal: Geological strata building up */
.gm-motion-ready .gm-layer-reveal {
  transform: translateY(12px) scaleY(0.985);
  transform-origin: 50% 100%;
  transition: transform 0.9s cubic-bezier(0.16, 1, 0.3, 1),
              opacity 0.8s ease;
}
.gm-layer-reveal.in {
  opacity: 1;
  transform: translateY(0) scaleY(1);
}

/* Scan Reveal: Data scanning horizontally */
.gm-motion-ready .gm-scan-reveal {
  transform: translateX(-12px);
  transition: transform 0.72s cubic-bezier(0.16, 1, 0.3, 1), opacity 0.58s ease;
}
.gm-scan-reveal.in {
  opacity: 1;
  transform: translateX(0);
}

/* Section entrance: slides deliberately from right to left when scrolled into view */
.gm-motion-ready .gm-slide-right-reveal {
  transform: translateX(32px);
  transition: transform 1.05s cubic-bezier(0.16, 1, 0.3, 1), opacity 0.78s ease;
}
.gm-slide-right-reveal.in {
  opacity: 1;
  transform: translateX(0);
}

/* Assemble Reveal: crisp data blocks resolving into place */
.gm-motion-ready .gm-assemble-reveal {
  transform: translateY(7px);
  transition: opacity 0.5s steps(3, end), transform 0.7s cubic-bezier(0.16, 1, 0.3, 1);
}
.gm-assemble-reveal.in {
  opacity: 1;
  transform: translateY(0);
}

/* Mask reveal for figures (retained for backward compatibility if needed) */
.mk-mask > * { clip-path: inset(0 0 100% 0); transition: clip-path 0.95s var(--gm-ease); }
.mk-mask.in > * { clip-path: inset(0 0 0% 0); }
@media (prefers-reduced-motion: reduce) { .mk-mask > * { clip-path: none; } }

/* Reusable four-card metrics row — shared by Home, Company, and future pages. */
.gm-metrics {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 25px;
}
.gm-metric-card {
  --metric-accent: var(--gm-white);
  --metric-glow: rgba(255,255,255,.1);
  position: relative;
  isolation: isolate;
  overflow: hidden;
  min-height: 180px;
  display: flex;
  flex-direction: column;
  justify-content: flex-start;
  padding: clamp(22px,2.4vw,34px);
  border: 1.5px solid var(--metric-accent);
  border-radius: 2px;
  background: var(--gm-basalt-950);
}
.gm-metric-card::before {
  content: "";
  position: absolute;
  z-index: 0;
  left: 3%;
  right: 3%;
  bottom: -30%;
  height: 105%;
  pointer-events: none;
  background: radial-gradient(
    ellipse at 50% 100%,
    var(--metric-glow) 0,
    transparent 74%
  );
}
.gm-metric-card > * {
  position: relative;
  z-index: 1;
}
.gm-metric-card--blue {
  --metric-accent: var(--gm-blue-500);
  --metric-glow: rgba(54,156,212,.28);
}
.gm-metric-card--teal {
  --metric-accent: var(--gm-teal-500);
  --metric-glow: rgba(78,196,169,.25);
}
.gm-metric-card--gold {
  --metric-accent: var(--gm-gold-500);
  --metric-glow: rgba(241,202,81,.25);
}
.gm-metric-card--white {
  --metric-accent: var(--gm-white);
  --metric-glow: rgba(255,255,255,.18);
}
.gm-metric-card__value {
  font-family: var(--gm-font-display);
  font-weight: 300;
  font-size: clamp(2.2rem,1.6rem + 1.8vw,3.4rem);
  line-height: 1;
  white-space: nowrap;
  color: var(--metric-accent);
}
.gm-metric-card__label {
  margin: 14px 0 0;
  font-size: var(--gm-fs-caption);
  line-height: 1.7;
  letter-spacing: .12em;
  text-transform: uppercase;
  color: var(--gm-text-muted);
}
@media (max-width: 1199px) {
  .gm-metrics {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 20px;
  }
}
@media (max-width: 560px) {
  .gm-metrics {
    grid-template-columns: 1fr;
  }
  .gm-metric-card {
    min-height: 150px;
  }
}


/* --------------------------------------------------------------------------
   3 · TICKER — what the platform reads
   Two identical sets scrolling -50% gives a seamless loop with no JS.
   ----------------------------------------------------------------------- */
@keyframes mk-scroll { from { transform: translateX(0); } to { transform: translateX(-50%); } }
.mk-ticker {
  overflow: hidden; border-block: 1px solid var(--gm-line-hairline);
  background: var(--gm-basalt-600); padding-block: 20px;
}
.mk-ticker__row { display: flex; width: max-content; animation: mk-scroll 42s linear infinite; }
.mk-ticker__set { display: flex; align-items: center; gap: 64px; padding-inline: 32px; }
.mk-ticker__item {
  display: flex; align-items: center; gap: 12px;
  font-size: 11px; font-weight: 700; letter-spacing: 0.2em; text-transform: uppercase;
  color: var(--gm-white); white-space: nowrap;
}
.mk-ticker__item::before {
  content: "";
  width: 6px;
  height: 6px;
  flex: none;
  border-radius: 50%;
  background: var(--gm-teal-500);
}
.mk-ticker__item svg { display: none; }
@media (prefers-reduced-motion: reduce) { .mk-ticker__row { animation: none; } }


/* --------------------------------------------------------------------------
   4 · MARQUEE — client logo rail
   Same two-set loop as the ticker, masked at both ends so marks fade rather
   than clip.
   ----------------------------------------------------------------------- */
@keyframes mk-marq { from { transform: translateX(0); } to { transform: translateX(-50%); } }
.logo-strip {
  position: relative;
  isolation: isolate;
  overflow: hidden;
  background-color: var(--gm-basalt-950);
}
.logo-strip::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 0;
  pointer-events: none;
  opacity: .46;
  background-image:
    radial-gradient(ellipse at center, rgba(255,255,255,.2) 0 .8px, transparent 1.15px),
    radial-gradient(ellipse at center, rgba(255,255,255,.13) 0 .65px, transparent 1px),
    radial-gradient(ellipse at center, rgba(255,255,255,.09) 0 .9px, transparent 1.3px),
    repeating-linear-gradient(117deg, transparent 0 7px, rgba(255,255,255,.025) 7px 8px);
  background-size: 7px 6px, 11px 9px, 17px 14px, 23px 23px;
  background-position: 0 0, 4px 3px, 9px 7px, 0 0;
  mix-blend-mode: screen;
}
.logo-strip__inner {
  position: relative;
  z-index: 1;
  padding-block: clamp(64px,7vw,112px);
}
.logo-strip__head {
  margin: 0 auto calc(clamp(32px,3.5vw,48px) + 30px);
  text-align: center;
}
.logo-strip__head .gm-eyebrow {
  margin-bottom: 12px;
}
.logo-strip__title {
  margin: 0 auto;
  max-width: 22ch;
  font-family: var(--gm-font-display);
  font-weight: 300;
  font-size: clamp(1.9rem,3.4vw,3rem);
  line-height: 1.05;
}
.logo-strip__title span {
  display: block;
}
.mk-marquee {
  overflow: hidden;
  -webkit-mask-image: linear-gradient(90deg, transparent, #000 12%, #000 88%, transparent);
          mask-image: linear-gradient(90deg, transparent, #000 12%, #000 88%, transparent);
}
.mk-marquee__row { display: flex; width: max-content; animation: mk-marq 34s linear infinite; }
.mk-marquee__set { display: flex; align-items: center; gap: 104px; padding-inline: 52px; }
.mk-marquee img { height: 88px; width: auto; opacity: 0.62; }
@media (prefers-reduced-motion: reduce) { .mk-marquee__row { animation: none; } }

/* Optical width cap. The 2026 Daura mark is a single wide word (~3.9:1), so at
   a shared HEIGHT it out-measures every other logo in the row. Capping width
   with object-fit:contain lets it letterbox down to a matching optical size
   instead of being squashed — the standard fix for mixed-aspect logo rows.
   Any new client mark added to this row inherits the same treatment. */
.mk-marquee img, .gm-tslider__logo { object-fit: contain; }
.mk-marquee img { max-width: 270px; }
.mk-marquee img[src$="daura-gold-white.png"] {
  height: 66px;
  max-width: 202.5px;
}
.mk-marquee img[src$="noble-plains-white.svg"] {
  height: 137.5px;
  max-width: 422.5px;
}
.mk-tw .gm-tslider__logo { max-width: 290px; }
.mk-tw .gm-tslider__quote::before,
.mk-tw .gm-tslider__quote::after {
  display: inline-block;
  color: var(--gm-teal-500);
  font-family: Georgia, "Times New Roman", serif;
  font-size: 2.25em;
  font-weight: 700;
  line-height: .55;
}
.mk-tw .gm-tslider__quote::before {
  content: "“";
  margin-right: .08em;
  vertical-align: -.18em;
}
.mk-tw .gm-tslider__quote::after {
  content: "”";
  margin-left: .08em;
  vertical-align: -.28em;
}

@media (max-width: 900px) {
  .mk-marquee img { height: 64px; max-width: 200px; }
  .mk-marquee img[src$="daura-gold-white.png"] {
    height: 48px;
    max-width: 150px;
  }
  .mk-marquee img[src$="noble-plains-white.svg"] {
    height: 100px;
    max-width: 312.5px;
  }
  .mk-marquee__set { gap: 64px; padding-inline: 32px; }
  .mk-tw .gm-tslider__logo { max-width: 210px; }
}
@media (max-width: 560px) {
  .mk-marquee img { height: 52px; }
  .mk-marquee img[src$="daura-gold-white.png"] { height: 39px; }
  .mk-marquee img[src$="noble-plains-white.svg"] { height: 81.25px; }
}


/* --------------------------------------------------------------------------
   5 · SPOTLIGHT CARD — cursor-tracked hairline
   A radial gradient follows the pointer through --mx / --my, set by home.js,
   and is masked to the 1px border only. The ::after is the resting hairline
   so a card never looks unborded before first hover.
   ----------------------------------------------------------------------- */
.mk-spot {
  position: relative; border-radius: 2px;
  background: rgba(255, 255, 255, 0.02); overflow: hidden;
}
.mk-spot::before {
  content: ""; position: absolute; inset: 0; border-radius: inherit; padding: 1px;
  background: radial-gradient(600px circle at var(--mx, -100px) var(--my, -100px),
              rgba(54, 156, 212, 0.55), transparent 40%);
  -webkit-mask: linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0);
  -webkit-mask-composite: xor; mask-composite: exclude;
  opacity: 0; transition: opacity 500ms var(--gm-ease); pointer-events: none; z-index: 2;
}
.mk-spot::after {
  content: ""; position: absolute; inset: 0; border-radius: inherit; padding: 1px;
  background: linear-gradient(225deg, rgba(255, 255, 255, 0.06), rgba(255, 255, 255, 0.01));
  -webkit-mask: linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0);
  -webkit-mask-composite: xor; mask-composite: exclude; pointer-events: none; z-index: 1;
}
.mk-spot:hover::before { opacity: 1; }
.mk-spot > * { position: relative; z-index: 3; }
.mk-business-card::before { padding: 1.5px; }
.mk-platform-heading { max-width: none; }
.mk-platform-heading h2 span { display: block; }
.mk-platform-heading h2 .mk-italic { white-space: nowrap; }

/* Targeting explorer — supplied tabbed section. */
#platform { background: #050505; border-bottom: 1px solid #8A8A8A; }
.platform-inner { padding-top: 70px; padding-bottom: clamp(56px,6.5vw,104px); }
.pr-h2 {
  font-family: var(--gm-font-display); font-weight: 300; margin: .4rem 0 0;
  font-size: clamp(1.9rem,3.4vw,3rem); line-height: 1.05; max-width: 20ch;
}
.pr-intro { margin: 0; max-width: 66ch; }
.pr-head {
  display: grid; grid-template-columns: 1fr 1fr; gap: clamp(28px,4vw,72px);
  align-items: end; margin-bottom: clamp(34px,4vw,52px);
}
.pr-title {
  font-family: var(--gm-font-display); font-weight: 300;
  font-size: clamp(1.5rem,1.1rem + 1vw,2.1rem); letter-spacing: .01em; margin: 0;
}
.pr-body { margin: 0; max-width: 54ch; }
.ex { --c:#369CD4; --c10:rgba(54,156,212,.12); --c22:rgba(54,156,212,.28); }
.ex-tile { width: 48px; height: 48px; color: var(--c); border-color: var(--c22); }
.ex-tag { font-family: var(--gm-font-mono); font-size: 11.5px; letter-spacing: .16em; color: var(--c); }
.ex-top { display: flex; align-items: center; gap: 16px; }
.ex-top .ex-tag { margin-left: auto; }
.pr-metric { display: flex; align-items: baseline; gap: 13px; }
.pr-val {
  font-family: var(--gm-font-mono); font-weight: 500;
  font-size: clamp(1.4rem,1.8vw,1.9rem); color: var(--c); line-height: 1;
}
.pr-lab {
  font-family: var(--gm-font-mono); font-size: 11px; letter-spacing: .12em;
  text-transform: uppercase; color: var(--gm-basalt-500,#8A8A8A);
}
.ex-link {
  margin-top: 20px;
  color: var(--c);
  align-self: flex-start;
}
.ex-link:hover { color: var(--c); border-bottom-color: currentColor; }
.ex-media {
  position: relative; border: 1px solid var(--c22); border-radius: 6px;
  overflow: hidden; background: #050505; transition: border-color .3s;
}
.ex-media img {
  display: block; width: 100%; height: 100%; object-fit: cover;
  transition: opacity .18s ease;
}
.ex-panel { display: none; flex-direction: column; gap: 18px; }
.ex-panel.is-active { display: flex; }
.h-tabs {
  display: flex; border: 1px solid var(--gm-border); border-radius: 999px;
  padding: 5px; margin-bottom: 28px; width: fit-content; max-width: 100%;
}
.h-tab {
  display: flex; align-items: center; gap: 10px; padding: 10px 22px;
  border: 0; background: transparent; color: var(--gm-basalt-400,#9a9a9a);
  font-family: var(--gm-font-body); font-size: 15px; border-radius: 999px;
  cursor: pointer; transition: all .2s; white-space: nowrap;
}
.h-tab__no { font-family: var(--gm-font-mono); font-size: 12px; opacity: .7; }
.h-tab:hover { color: #fff; }
.h-tab.is-active { background: var(--c10); color: #fff; box-shadow: inset 0 0 0 1px var(--c22); }
.h-tab.is-active .h-tab__no { color: var(--c); opacity: 1; }
.h-tab:focus-visible { outline: 2px solid var(--c); outline-offset: 2px; }
.h-stage {
  display: grid; grid-template-columns: .85fr 1.15fr;
  gap: clamp(28px,3.5vw,64px); align-items: center;
}
.h-media { aspect-ratio: 16/10; }
@media (max-width:900px) {
  .pr-head { grid-template-columns: 1fr; gap: 18px; align-items: start; }
  .h-stage { grid-template-columns: 1fr; gap: 24px; }
  .h-tabs { width: 100%; }
  .h-tab { padding: 10px 12px; flex: 1; justify-content: center; }
}

/* --------------------------------------------------------------------------
   CLIENT SERVICES PAGE
   A technical, editorial service catalogue adapted to the established public
   site shell. All route-specific furniture stays here; brand.css is immutable.
   ----------------------------------------------------------------------- */
.cs-page {
  overflow: clip;
  background: var(--gm-black);
}
.cs-shell {
  position: relative;
  width: min(100%, var(--gm-container-wide));
  margin-inline: auto;
  border-inline: 1px solid #8A8A8A;
  background: var(--gm-black);
}
.cs-shell .gm-container--wide {
  max-width: none;
}
.cs-shell > .gm-footer {
  border-top: 0;
}
.cs-page :is(#capabilities, #how-we-work, #testimonials) {
  scroll-margin-top: 112px;
}
.cs-hero {
  --gm-company-nav-overlap: 112px;
  position: relative;
  isolation: isolate;
  min-height: calc(clamp(420px, 54vh, 555px) + var(--gm-company-nav-overlap));
  display: flex;
  align-items: flex-end;
  margin-top: calc(-1 * var(--gm-company-nav-overlap));
  padding-top: var(--gm-company-nav-overlap);
  overflow: hidden;
  border-bottom: 1px solid #8A8A8A;
  background:
    linear-gradient(90deg, rgba(0,0,0,.98) 0%, rgba(0,0,0,.82) 43%, rgba(0,0,0,.26) 100%),
    #050506;
}
.cs-hero__scan {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  z-index: -2;
  opacity: .72;
}
.cs-hero__glow {
  position: absolute;
  inset: 0;
  z-index: -1;
  pointer-events: none;
  background:
    radial-gradient(60% 80% at 82% 30%, rgba(78,196,169,.1), transparent 60%),
    radial-gradient(50% 70% at 10% 90%, rgba(54,156,212,.08), transparent 60%);
}
.cs-hero__inner {
  position: relative;
  z-index: 1;
  width: 100%;
  padding-block: clamp(51px, 6vw, 90px);
}
.cs-hero__copy { max-width: 920px; }
.cs-hero__title {
  max-width: 22ch;
  margin: 0;
  font-family: var(--gm-font-display);
  font-size: var(--gm-fs-h1);
  font-weight: 300;
  line-height: var(--gm-lh-tight);
  letter-spacing: var(--gm-ls-display);
}
.cs-hero__title span {
  display: block;
  white-space: nowrap;
}
.cs-hero__title > .mk-dim {
  color: #B4B4B4;
}
.cs-hero__lead { max-width: 60ch; margin: 28px 0 0; }
.cs-hero__action { margin-top: 28px; }
.cs-section {
  padding-block: clamp(74px, 8vw, 126px);
  border-bottom: 1px solid #8A8A8A;
}
.cs-section-head h2 {
  margin: 13px 0 0;
  font-weight: 300;
  font-size: clamp(2.35rem, 4.8vw, 4.7rem);
  line-height: .98;
}
.cs-section-head > p:not(.gm-eyebrow) {
  margin-top: 22px;
  max-width: 36ch;
  color: var(--gm-text-secondary);
}
.cs-capabilities__grid {
  display: grid;
  grid-template-columns: minmax(240px, .65fr) minmax(0, 1.35fr);
  gap: clamp(50px, 8vw, 130px);
  align-items: start;
}
.cs-capabilities__head {
  position: sticky;
  top: 142px;
}
.cs-capabilities__head .cs-fineprint {
  margin-top: 26px;
  font-size: var(--gm-fs-body-sm);
  color: var(--gm-text-muted);
}
.cs-capability-list { border-top: 1px solid var(--gm-border-subtle); }
.cs-capability {
  display: grid;
  grid-template-columns: 42px 58px minmax(0, 1fr);
  gap: clamp(16px, 2.3vw, 32px);
  align-items: start;
  padding-block: clamp(28px, 3.5vw, 46px);
  border-bottom: 1px solid var(--gm-border-subtle);
}
.cs-capability__number,
.cs-process__number,
.cs-note__label {
  font-family: var(--gm-font-mono);
  font-size: 11px;
  font-weight: 500;
  letter-spacing: .13em;
  text-transform: uppercase;
}
.cs-capability__number { padding-top: 17px; color: var(--gm-text-muted); }
.cs-capability__icon {
  width: 54px;
  height: 54px;
  display: grid;
  place-items: center;
  border: 1.5px solid rgba(78,196,169,.3);
  border-radius: var(--gm-radius-sm);
  background: rgba(78,196,169,.055);
  color: var(--gm-teal-500);
}
.cs-capability__icon svg { width: 25px; height: 25px; }
.cs-capability h3 {
  margin: 0;
  font-size: clamp(1.35rem, 2.2vw, 1.85rem);
  font-weight: 400;
}
.cs-capability p {
  max-width: 68ch;
  margin: 12px 0 0;
  color: var(--gm-text-secondary);
  line-height: 1.72;
}
.cs-process {
  position: relative;
  isolation: isolate;
  overflow: hidden;
  background: var(--gm-basalt-950);
}
.cs-process::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 0;
  pointer-events: none;
  opacity: .46;
  background-image:
    radial-gradient(ellipse at center, rgba(255,255,255,.2) 0 .8px, transparent 1.15px),
    radial-gradient(ellipse at center, rgba(255,255,255,.13) 0 .65px, transparent 1px),
    radial-gradient(ellipse at center, rgba(255,255,255,.09) 0 .9px, transparent 1.3px),
    repeating-linear-gradient(117deg, transparent 0 7px, rgba(255,255,255,.025) 7px 8px);
  background-size: 7px 6px, 11px 9px, 17px 14px, 23px 23px;
  background-position: 0 0, 4px 3px, 9px 7px, 0 0;
  mix-blend-mode: screen;
}
.cs-process > .gm-container {
  position: relative;
  z-index: 1;
}
.cs-process__head h2 { max-width: 20ch; }
.cs-process__flow {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 0;
  margin: clamp(54px, 6vw, 84px) 0 0;
  padding: 0;
  list-style: none;
}
.cs-process__step {
  position: relative;
  min-width: 0;
  padding: 42px clamp(18px, 2.4vw, 32px) 0 0;
  border-top: 1px solid var(--gm-border);
}
.cs-process__step:not(:last-child) { margin-right: clamp(18px, 2.4vw, 32px); }
.cs-process__node {
  position: absolute;
  top: -7px;
  left: 0;
  width: 13px;
  height: 13px;
  border: 2px solid var(--gm-basalt-950);
  border-radius: 50%;
  background: var(--step-accent);
  box-shadow: 0 0 0 1px var(--step-accent), 0 0 18px color-mix(in srgb, var(--step-accent) 55%, transparent);
}
.cs-process__number { color: var(--step-accent); }
.cs-process__step h3 { margin: 13px 0 0; font-size: 1.6rem; font-weight: 400; }
.cs-process__step p { margin: 15px 0 0; color: var(--gm-text-secondary); line-height: 1.68; }
.cs-notes {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 18px;
  margin-top: clamp(58px, 7vw, 92px);
}
.cs-note {
  min-height: 175px;
  padding: clamp(24px, 3vw, 36px);
  border: 1px solid var(--gm-border-subtle);
  border-radius: var(--gm-radius-sm);
  background: linear-gradient(135deg, rgba(255,255,255,.055), rgba(255,255,255,.012));
}
.cs-note__label { color: var(--gm-teal-500); }
.cs-note > p:last-child { margin: 16px 0 0; color: var(--gm-text-secondary); line-height: 1.7; }
.cs-testimonials {
  padding-block: clamp(70px, 8vw, 118px);
  border-bottom: 1px solid #8A8A8A;
  background: #050505;
}
.cs-testimonials .gm-tslider__card { min-height: 330px; display: flex; flex-direction: column; }
.cs-testimonials .gm-tslider__attr { margin-top: auto; padding-top: var(--gm-space-6); }
.cs-cta { border-bottom: 1px solid #8A8A8A; }
.cs-cta .gm-lead { max-width: 56ch; margin-inline: auto; }

@media (max-width: 1000px) {
  .cs-capabilities__grid { grid-template-columns: 1fr; gap: 48px; }
  .cs-capabilities__head { position: static; }
  .cs-process__flow { grid-template-columns: repeat(2, minmax(0, 1fr)); row-gap: 52px; }
}
@media (max-width: 900px) {
  .cs-page :is(#capabilities, #how-we-work, #testimonials) { scroll-margin-top: 96px; }
  .cs-hero {
    --gm-company-nav-overlap: 96px;
    min-height: calc(420px + var(--gm-company-nav-overlap));
  }
  .cs-hero__inner { padding-block: clamp(51px, 7.5vw, 72px); }
  .cs-hero__copy { max-width: 700px; }
  .cs-hero__title { max-width: 22ch; }
}
@media (max-width: 620px) {
  .cs-hero {
    --gm-company-nav-overlap: 84px;
    min-height: calc(390px + var(--gm-company-nav-overlap));
  }
  .cs-hero__scan { opacity: .64; }
  .cs-hero__title {
    max-width: none;
    font-size: clamp(1.45rem, 6.25vw, 1.75rem);
  }
  .cs-hero__lead { margin-top: 20px; font-size: .95rem; }
  .cs-hero__action { margin-top: 22px; }
  .cs-capability {
    grid-template-columns: 36px 48px minmax(0, 1fr);
    gap: 14px;
  }
  .cs-capability__icon { width: 46px; height: 46px; }
  .cs-capability__number { padding-top: 14px; }
  .cs-capability h3 { font-size: 1.25rem; }
  .cs-capability p { grid-column: 1 / -1; margin-top: 4px; }
  .cs-process__flow { grid-template-columns: 1fr; row-gap: 40px; }
  .cs-process__step,
  .cs-process__step:not(:last-child) { margin-right: 0; padding-right: 0; }
  .cs-notes { grid-template-columns: 1fr; }
  .cs-testimonials .gm-tslider { padding: 26px 20px; }
  .cs-testimonials .gm-tslider__card { min-height: 350px; }
  .cs-testimonials .gm-tslider__attr { align-items: flex-start; flex-direction: column; }
  .cs-testimonials .gm-tslider__logo { max-width: 180px; }
}
@media (prefers-reduced-motion: reduce) {
  .cs-hero__scan { opacity: .58; }
}

/* --------------------------------------------------------------------------
   NEWS & MEDIA PAGE
   Editorial signal ledger adapted from the supplied newsroom composition.
   ----------------------------------------------------------------------- */
.nw-shell {
  position: relative;
  width: min(100%, var(--gm-container-wide));
  margin-inline: auto;
  border-inline: 1px solid #8A8A8A;
  background: var(--gm-black);
}
.nw-shell .gm-container--wide { max-width: none; }
.nw-shell > .gm-footer { border-top: 0; }
.nw-page {
  overflow: clip;
  background: var(--gm-black);
}
.nw-page :is(#newsroom, #media) { scroll-margin-top: 112px; }
.nw-hero {
  --gm-news-nav-overlap: 112px;
  position: relative;
  min-height: calc(clamp(420px, 54vh, 555px) + var(--gm-news-nav-overlap));
  display: flex;
  align-items: flex-end;
  margin-top: calc(-1 * var(--gm-news-nav-overlap));
  padding-top: var(--gm-news-nav-overlap);
  overflow: hidden;
  border-bottom: 1px solid #8A8A8A;
  background: var(--gm-black);
}
.nw-hero__field {
  position: absolute;
  inset: 0;
  pointer-events: none;
  background: var(--gm-black) url("../assets/video/news-earth-hero-poster-1280.webp") center center / cover no-repeat;
}
.nw-hero__field::after {
  content: "";
  position: absolute;
  inset: 0;
  background:
    linear-gradient(90deg, rgba(0,0,0,.78) 0%, rgba(0,0,0,.52) 48%, rgba(0,0,0,.18) 100%),
    linear-gradient(180deg, rgba(0,0,0,.2), rgba(0,0,0,.42));
}
.nw-hero__video {
  width: 100%;
  height: 100%;
  display: block;
  object-fit: cover;
  object-position: center center;
}
.nw-hero__inner {
  position: relative;
  width: 100%;
  z-index: 1;
  padding-block: clamp(51px, 6vw, 90px);
}
.nw-hero__title {
  max-width: 22ch;
  margin: 14px 0 0;
  font-family: var(--gm-font-display);
  font-size: var(--gm-fs-h1);
  font-weight: 300;
  line-height: var(--gm-lh-tight);
  letter-spacing: var(--gm-ls-display);
  color: var(--gm-white);
}
.nw-hero__title span { display: block; }
.nw-hero__title .mk-dim {
  color: inherit;
  opacity: 1;
}
.nw-hero__lead {
  max-width: 58ch;
  margin: 26px 0 0;
  color: var(--gm-white);
}
.nw-newsroom,
.nw-media {
  padding-block: clamp(64px, 7vw, 112px);
  border-bottom: 1px solid #8A8A8A;
}
.nw-newsroom { background: var(--gm-black); }
.nw-media {
  position: relative;
  isolation: isolate;
  overflow: hidden;
  background: var(--gm-basalt-950);
}
.nw-media::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 0;
  pointer-events: none;
  opacity: .46;
  background-image:
    radial-gradient(ellipse at center, rgba(255,255,255,.2) 0 .8px, transparent 1.15px),
    radial-gradient(ellipse at center, rgba(255,255,255,.13) 0 .65px, transparent 1px),
    radial-gradient(ellipse at center, rgba(255,255,255,.09) 0 .9px, transparent 1.3px),
    repeating-linear-gradient(117deg, transparent 0 7px, rgba(255,255,255,.025) 7px 8px);
  background-size: 7px 6px, 11px 9px, 17px 14px, 23px 23px;
  background-position: 0 0, 4px 3px, 9px 7px, 0 0;
  mix-blend-mode: screen;
}
.nw-media--research::before { content: none; }
.nw-media > .gm-container {
  position: relative;
  z-index: 1;
}
.nw-section-head {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 36px;
  margin-bottom: 40px;
}
.nw-section-head h2 {
  margin: 12px 0 0;
  font-weight: 300;
}
.nw-section-head--split {
  display: grid;
  grid-template-columns: 1fr 1fr;
  align-items: end;
}
.nw-section-head--split > p { max-width: 46ch; margin: 0; }
@media (min-width: 1001px) {
  .nw-newsroom .nw-section-head--split {
    grid-template-columns: repeat(3, minmax(0, 1fr));
    column-gap: 16px;
  }
  .nw-newsroom .nw-section-head--split > p {
    grid-column: 2 / -1;
  }
  .nw-media .nw-section-head--split {
    grid-template-columns: repeat(3, minmax(0, 1fr));
    column-gap: 18px;
  }
  .nw-media .nw-section-head--split > p {
    grid-column: 2 / -1;
    max-width: none;
  }
}
.nw-filters {
  display: flex;
  justify-content: flex-end;
  flex-wrap: wrap;
  gap: 8px;
}
.nw-filters .gm-chip {
  min-height: 44px;
  height: auto;
}
.nw-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 16px;
}
.nw-card {
  min-height: 330px;
  display: flex;
  flex-direction: column;
  padding: clamp(24px, 2.5vw, 36px);
  border-right: 1px solid #8A8A8A;
  border-bottom: 1px solid #8A8A8A;
  background: var(--gm-basalt-950);
}
.nw-card--lead {
  grid-column: span 2;
  background:
    linear-gradient(120deg, rgba(54,156,212,.07), transparent 58%),
    var(--gm-basalt-950);
}
.nw-card[hidden] { display: none; }
.nw-card__meta {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 18px;
}
.nw-card__meta time,
.nw-card__status,
.nw-media-card__frame,
.nw-media-card > p {
  color: var(--gm-text-muted);
  font-family: var(--gm-font-mono);
  font-size: var(--gm-fs-caption);
  letter-spacing: .08em;
  text-transform: uppercase;
}
.nw-card h3 {
  max-width: 25ch;
  margin: 36px 0 0;
  font-size: clamp(1.35rem, 1.1rem + .7vw, 1.85rem);
  font-weight: 300;
  line-height: 1.18;
}
.nw-card p {
  max-width: 62ch;
  margin: 18px 0 0;
  color: var(--gm-text-secondary);
  line-height: 1.65;
}
.nw-card__status {
  margin-top: auto;
  padding-top: 34px;
}
.nw-card--placeholder :is(h3, p, time) { color: var(--gm-basalt-400); }
.nw-load {
  display: flex;
  justify-content: center;
  padding-top: 40px;
}
.nw-load [hidden] { display: none; }
.nw-media-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 18px;
}
.nw-media-card {
  min-width: 0;
  scroll-margin-top: 120px;
}
.nw-media-card:target .nw-media-card__frame {
  border-color: var(--gm-lime-500);
  box-shadow: 0 0 0 1px var(--gm-lime-500), 0 0 28px rgba(176, 255, 69, .14);
}
.nw-media-card > a {
  display: block;
  color: inherit;
  text-decoration: none;
}
.nw-media-card__frame {
  position: relative;
  aspect-ratio: 16 / 9;
  display: grid;
  place-items: center;
  overflow: hidden;
  border: 1px solid #fff;
  border-radius: 2px;
  background:
    radial-gradient(circle at 60% 44%, rgba(78,196,169,.1), transparent 32%),
    linear-gradient(rgba(255,255,255,.025) 1px, transparent 1px),
    linear-gradient(90deg, rgba(255,255,255,.025) 1px, transparent 1px),
    var(--gm-black);
  background-size: auto, 24px 24px, 24px 24px, auto;
}
.nw-media-card__frame > img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  filter: grayscale(36%) brightness(.58) contrast(1.08);
  transition: filter 300ms var(--gm-ease), transform 500ms var(--gm-ease);
}
.nw-media-card__frame::after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, rgba(0,0,0,.14), rgba(0,0,0,.52));
  pointer-events: none;
}
.nw-media-card__frame > small {
  position: absolute;
  right: 16px;
  bottom: 16px;
  z-index: 2;
  color: var(--gm-white);
}
.nw-media-card__frame svg {
  position: relative;
  z-index: 2;
  width: 44px;
  height: 44px;
  padding: 12px;
  border: 1px solid var(--gm-border);
  border-radius: 50%;
  fill: var(--gm-white);
  transition: background-color 180ms var(--gm-ease), border-color 180ms var(--gm-ease), transform 180ms var(--gm-ease);
}
.nw-media-card--article .nw-media-card__frame svg { fill: none; stroke: var(--gm-white); stroke-width: 1.5; }
.nw-media-card > a:hover .nw-media-card__frame > img,
.nw-media-card > a:focus-visible .nw-media-card__frame > img {
  filter: grayscale(0) brightness(.72) contrast(1.04);
  transform: scale(1.025);
}
.nw-media-card > a:hover .nw-media-card__frame svg,
.nw-media-card > a:focus-visible .nw-media-card__frame svg {
  border-color: var(--gm-lime-500);
  background: var(--gm-lime-500);
  fill: var(--gm-lime-ink);
  transform: scale(1.06);
}
.nw-media-card--article > a:hover .nw-media-card__frame svg,
.nw-media-card--article > a:focus-visible .nw-media-card__frame svg {
  fill: none;
  stroke: var(--gm-lime-ink);
}
.nw-media-card > a:focus-visible { outline: 2px solid var(--gm-lime-500); outline-offset: 4px; }
.nw-media-card h3 {
  margin: 18px 0 0;
  font-size: 1.1rem;
  font-weight: 400;
}
.nw-media-card__meta {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: var(--gm-space-3);
  margin: 8px 0 0;
  font-family: var(--gm-font-mono);
  font-size: var(--gm-fs-caption);
  letter-spacing: .08em;
  text-transform: uppercase;
}
.nw-media-card__meta span { color: var(--gm-teal-500); }
.nw-media-card__meta time {
  flex: 0 0 auto;
  color: var(--gm-text-muted);
  text-align: right;
}
.nw-video-modal {
  width: min(1080px, calc(100vw - 32px));
  max-width: none;
  max-height: calc(100dvh - 32px);
  margin: auto;
  padding: 0;
  overflow: auto;
  border: 1px solid rgba(255,255,255,.32);
  border-radius: 4px;
  color: var(--gm-white);
  background: #050706;
  box-shadow: 0 24px 80px rgba(0,0,0,.72);
}
.nw-video-modal::backdrop {
  background: rgba(0,0,0,.62);
  backdrop-filter: blur(3px);
}
.nw-video-modal__shell { padding: 18px; }
.nw-video-modal__header {
  display: grid;
  grid-template-columns: 158px minmax(0, 1fr) auto;
  align-items: center;
  gap: 20px;
  padding: 0 0 14px;
}
.nw-video-modal__brand {
  display: block;
  line-height: 0;
}
.nw-video-modal__brand img {
  width: 100%;
  height: auto;
}
.nw-video-modal__header h2 {
  margin: 0;
  overflow: hidden;
  font-size: clamp(1rem, 2vw, 1.35rem);
  font-weight: 400;
  line-height: 1.3;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.nw-video-modal__close {
  flex: 0 0 auto;
  display: grid;
  place-items: center;
  width: 42px;
  height: 42px;
  padding: 0;
  border: 1px solid var(--gm-border);
  border-radius: 50%;
  color: var(--gm-white);
  background: transparent;
  cursor: pointer;
}
.nw-video-modal__close:hover,
.nw-video-modal__close:focus-visible {
  border-color: var(--gm-lime-500);
  color: var(--gm-lime-ink);
  background: var(--gm-lime-500);
}
.nw-video-modal__close:focus-visible { outline: 2px solid var(--gm-lime-500); outline-offset: 3px; }
.nw-video-modal__close svg {
  width: 20px;
  height: 20px;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.8;
}
.nw-video-modal__player {
  position: relative;
  aspect-ratio: 16 / 9;
  overflow: hidden;
  background: #000;
}
.nw-video-modal__player iframe {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  border: 0;
}
.nw-video-modal__more { padding-top: 18px; }
.nw-video-modal__more > p {
  margin: 0 0 10px;
  font-family: var(--gm-font-mono);
  font-size: var(--gm-fs-caption);
  letter-spacing: .1em;
  text-transform: uppercase;
  color: var(--gm-teal-500);
}
.nw-video-modal__more-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 12px;
}
.nw-video-modal__more-card {
  min-width: 0;
  padding: 0;
  border: 0;
  color: var(--gm-white);
  text-align: left;
  background: transparent;
  cursor: pointer;
}
.nw-video-modal__more-frame {
  position: relative;
  display: block;
  aspect-ratio: 16 / 9;
  overflow: hidden;
  border: 1px solid var(--gm-border);
  background: var(--gm-black);
}
.nw-video-modal__more-frame::after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, transparent, rgba(0,0,0,.48));
}
.nw-video-modal__more-frame img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  filter: grayscale(28%) brightness(.68);
  transition: filter 180ms var(--gm-ease), transform 300ms var(--gm-ease);
}
.nw-video-modal__more-frame small {
  position: absolute;
  z-index: 1;
  right: 8px;
  bottom: 7px;
  color: var(--gm-white);
}
.nw-video-modal__more-title {
  display: -webkit-box;
  margin-top: 8px;
  overflow: hidden;
  font-size: .84rem;
  line-height: 1.35;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
}
.nw-video-modal__more-card:hover .nw-video-modal__more-frame,
.nw-video-modal__more-card:focus-visible .nw-video-modal__more-frame {
  border-color: var(--gm-lime-500);
}
.nw-video-modal__more-card:hover img,
.nw-video-modal__more-card:focus-visible img {
  filter: grayscale(0) brightness(.82);
  transform: scale(1.03);
}
.nw-video-modal__more-card:focus-visible { outline: 2px solid var(--gm-lime-500); outline-offset: 3px; }
@media (max-width: 1000px) {
  .nw-section-head { align-items: flex-start; flex-direction: column; }
  .nw-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .nw-media-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 900px) {
  .nw-page :is(#newsroom, #media) { scroll-margin-top: 96px; }
  .nw-hero {
    --gm-news-nav-overlap: 96px;
    min-height: calc(420px + var(--gm-news-nav-overlap));
  }
  .nw-hero__inner { padding-block: clamp(51px, 7.5vw, 72px); }
}
@media (max-width: 620px) {
  .nw-page :is(#newsroom, #media) { scroll-margin-top: 84px; }
  .nw-hero {
    --gm-news-nav-overlap: 84px;
    min-height: calc(390px + var(--gm-news-nav-overlap));
  }
  .nw-hero__field { background-position: 62% center; }
  .nw-hero__video { object-position: 62% center; }
  .nw-hero__title { font-size: clamp(1.8rem, 9vw, 2.55rem); }
  .nw-grid,
  .nw-media-grid,
  .nw-section-head--split { grid-template-columns: 1fr; }
  .nw-card--lead { grid-column: auto; }
  .news-card { min-height: 300px; }
  .nw-video-modal { width: calc(100vw - 20px); }
  .nw-video-modal__shell { padding: 12px; }
  .nw-video-modal__header {
    grid-template-columns: 128px minmax(0, 1fr) auto;
    gap: 12px;
    padding-bottom: 10px;
  }
  .nw-video-modal__header h2 { white-space: normal; }
  .nw-video-modal__more-grid {
    grid-template-columns: repeat(4, minmax(160px, 1fr));
    overflow-x: auto;
    padding: 2px 2px 8px;
  }
}
@media (max-width: 480px) {
  .nw-video-modal__header {
    grid-template-columns: minmax(0, 1fr) auto;
  }
  .nw-video-modal__brand { width: 138px; }
  .nw-video-modal__header h2 {
    grid-column: 1 / -1;
    grid-row: 2;
  }
  .nw-video-modal__close {
    grid-column: 2;
    grid-row: 1;
  }
}
/* --------------------------------------------------------------------------
   COMPANY PAGE
   Survey-core hero with layered strata, editorial split layout for About/
   Approach, team cards with special treatment for Morph, closing CTA.
   ----------------------------------------------------------------------- */

/* Standard page hero (.pg-hero) — the compact hero pattern for every
   non-home page. Short band, text on true black at left, the terrain
   cropped into a hard-edged evidence strip bleeding off the right.
   Reuse as-is on other pages; only the copy (and, if a page ever needs
   it, the --pg-hero-media image) changes. */
.pg-hero {
  --gm-company-nav-overlap: 112px;
  --pg-hero-media: url("../assets/img/terrain-glacial-fracture.jpg");
  position: relative;
  min-height: calc(clamp(340px, 44vh, 460px) + var(--gm-company-nav-overlap));
  display: flex;
  align-items: flex-end;
  margin-top: calc(-1 * var(--gm-company-nav-overlap));
  padding: calc(clamp(48px, 6vw, 88px) + var(--gm-company-nav-overlap)) 0 clamp(48px, 6vw, 80px);
  border-bottom: 1px solid #8A8A8A;
  overflow: hidden;
  background: var(--gm-black);
}
/* Terrain confined to the right ~46% with a hard vertical edge — an
   evidence strip, not wallpaper. Teal hairline marks the cut. */
.pg-hero__media {
  position: absolute;
  inset: 0 0 0 auto;
  width: 46%;
  z-index: 0;
  border-left: 1px solid rgba(78,196,169,.34);
  background:
    linear-gradient(90deg, rgba(0,0,0,.88) 0%, rgba(0,0,0,.38) 34%, rgba(0,0,0,.12) 62%, rgba(0,0,0,.44) 100%),
    linear-gradient(180deg, rgba(0,0,0,.42) 0%, rgba(0,0,0,.08) 46%, rgba(0,0,0,.6) 100%),
    var(--pg-hero-media) center 44% / cover no-repeat;
  filter: saturate(.78) contrast(1.1) brightness(.92);
  pointer-events: none;
}
.pg-hero__grid {
  position: absolute;
  inset: 0 0 0 auto;
  width: 46%;
  z-index: 1;
  opacity: .5;
  background-image:
    linear-gradient(rgba(255,255,255,.025) 1px, transparent 1px),
    linear-gradient(90deg, rgba(255,255,255,.025) 1px, transparent 1px);
  background-size: 24px 24px;
  pointer-events: none;
}
/* Headline and lead share a bottom baseline, side by side. */
.pg-hero__content {
  position: relative;
  z-index: 2;
  display: grid;
  grid-template-columns: minmax(0, 1.25fr) minmax(0, .75fr);
  gap: clamp(32px, 5vw, 80px);
  align-items: end;
}
.pg-hero__title {
  margin: 18px 0 0;
  font-family: var(--gm-font-display);
  font-weight: 300;
  font-size: clamp(2rem, 1.35rem + 2vw, 3.25rem);
  line-height: 1.08;
  max-width: 22ch;
}
.pg-hero__title span { display: block; }
.pg-hero__aside {
  border-top: 1px solid rgba(78,196,169,.34);
  padding-top: 20px;
}
.pg-hero__sub {
  margin: 0;
  max-width: 46ch;
  font-size: clamp(1rem, .94rem + .2vw, 1.125rem);
  line-height: 1.6;
  color: var(--gm-basalt-200);
}
.co-about,
.co-approach,
.co-team,
.co-cta,
.gm-footer {
  scroll-margin-top: 112px;
}

/* Split layout — left sticky heading, right flowing body */
.co-about,
.co-approach {
  border-bottom: 1px solid #8A8A8A;
  background: var(--gm-basalt-950);
  padding-block: clamp(64px, 7vw, 112px);
}
.co-split {
  display: grid;
  grid-template-columns: .7fr 1.3fr;
  gap: clamp(40px, 6vw, 96px);
  align-items: start;
}
.co-split__left h2 {
  margin: 0;
  font-weight: 300;
  position: sticky;
  top: 140px;
}
.co-split__right {
  display: flex;
  flex-direction: column;
  gap: clamp(32px, 4vw, 52px);
}
.co-body {
  display: flex;
  flex-direction: column;
  gap: 24px;
}
.co-body p {
  margin: 0;
  max-width: 68ch;
  color: var(--gm-white);
}

/* Approach — numbered principles */
.co-approach__intro {
  margin: 18px 0 0;
  max-width: 42ch;
}
.co-principle {
  display: flex;
  flex-direction: column;
  gap: 14px;
  padding: clamp(24px, 2.2vw, 36px);
  border: 1px solid var(--gm-border);
  border-radius: 4px;
  background: rgba(255,255,255,.015);
}
.co-principle__no {
  font-family: var(--gm-font-mono);
  font-size: 28px;
  font-weight: 500;
  line-height: 1;
  color: var(--gm-blue-500);
  opacity: .7;
}
.co-principle__title {
  font-family: var(--gm-font-display);
  font-weight: 300;
  font-size: clamp(1.4rem, 1.1rem + .9vw, 1.9rem);
  letter-spacing: .005em;
  margin: 0;
}
.co-principle p {
  margin: 0;
  max-width: 62ch;
}
.co-approach__close {
  padding: 28px;
  border-left: 2px solid var(--gm-teal-500);
  background: rgba(78,196,169,.03);
}
.co-approach__close p {
  margin: 0;
  max-width: 64ch;
  color: var(--gm-white);
}

/* Team section */
.co-team {
  border-bottom: 1px solid #8A8A8A;
  background: var(--gm-basalt-900);
  padding-block: clamp(64px, 7vw, 112px);
}
.co-team__head {
  margin-bottom: clamp(48px, 6vw, 72px);
  max-width: 72ch;
}
.co-team__head h2 {
  margin: 0;
  font-weight: 300;
}
.co-team__intro {
  margin-top: 20px;
}
.co-team__grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
  gap: 24px;
}
.co-member {
  display: flex;
  flex-direction: column;
  gap: 22px;
  padding: clamp(28px, 2.6vw, 40px);
  border: 1px solid #8A8A8A;
  border-radius: 4px;
  background: var(--gm-basalt-950);
}
.co-member__avatar {
  width: 72px;
  height: 72px;
  flex: none;
  border-radius: 4px;
  display: flex;
  align-items: center;
  justify-content: center;
  background: var(--gm-basalt-800);
  border: 1px solid var(--gm-border);
}
.co-member__avatar--placeholder {
  font-family: var(--gm-font-display);
  font-weight: 500;
  font-size: 20px;
  letter-spacing: .02em;
  color: var(--gm-basalt-300);
}
.co-member__avatar--morph {
  background: rgba(78,196,169,.08);
  border-color: rgba(78,196,169,.28);
}
.co-member__avatar--morph svg {
  width: 36px;
  height: 36px;
  color: var(--gm-teal-500);
}
.co-member__body {
  display: flex;
  flex-direction: column;
  gap: 8px;
}
.co-member__name {
  font-family: var(--gm-font-body);
  font-weight: 700;
  font-size: 1.125rem;
  margin: 0;
  color: var(--gm-white);
}
.co-member__title {
  font-family: var(--gm-font-mono);
  font-size: 11px;
  letter-spacing: .14em;
  text-transform: uppercase;
  color: var(--gm-teal-500);
  margin: 0;
}
.co-member__title-line {
  white-space: nowrap;
}
.co-member__bio {
  margin: 12px 0 0;
  font-size: .9375rem;
  line-height: 1.65;
  color: var(--gm-basalt-200);
}
/* Closing CTA */
.co-cta {
  border-bottom: 1px solid #8A8A8A;
  background: var(--gm-basalt-950);
  padding-block: clamp(72px, 9vw, 140px);
}
.co-cta__inner {
  max-width: 840px;
  margin-inline: auto;
  text-align: center;
}
.co-cta__inner h2 {
  margin: 0;
  font-family: var(--gm-font-display);
  font-weight: 300;
  font-size: clamp(2rem, 1.4rem + 1.8vw, 3.2rem);
  line-height: 1.1;
}
.co-cta__inner h2 span {
  display: block;
}
.co-cta__body {
  margin-top: 24px;
  max-width: 48ch;
  margin-inline: auto;
  font-size: var(--gm-fs-body-lg);
}
.co-cta__inner .gm-btn {
  margin-top: 38px;
}

@media (max-width: 900px) {
  .pg-hero {
    --gm-company-nav-overlap: 96px;
    min-height: calc(380px + var(--gm-company-nav-overlap));
    padding: calc(clamp(48px, 9vw, 72px) + var(--gm-company-nav-overlap)) 0 clamp(44px, 8vw, 64px);
  }
  /* Single column: terrain becomes a full-width backdrop with a heavier
     left scrim so the stacked text stays legible. */
  .pg-hero__media,
  .pg-hero__grid {
    width: 100%;
    border-left: 0;
  }
  .pg-hero__media {
    background:
      linear-gradient(90deg, rgba(0,0,0,.9) 0%, rgba(0,0,0,.66) 46%, rgba(0,0,0,.3) 78%, rgba(0,0,0,.5) 100%),
      linear-gradient(180deg, rgba(0,0,0,.46) 0%, rgba(0,0,0,.14) 44%, rgba(0,0,0,.68) 100%),
      var(--pg-hero-media) center 44% / cover no-repeat;
  }
  .pg-hero__content {
    grid-template-columns: 1fr;
    gap: 24px;
  }
  .pg-hero__title {
    font-size: clamp(1.8rem, 5vw, 2.5rem);
  }
  .co-split {
    grid-template-columns: 1fr;
    gap: 28px;
  }
  .co-split__left h2 {
    position: static;
  }
  .co-team__grid {
    grid-template-columns: 1fr;
  }
  .co-cta__inner h2 {
    font-size: clamp(1.8rem, 5vw, 2.4rem);
  }
  .co-about,
  .co-approach,
  .co-team,
  .co-cta,
  .gm-footer {
    scroll-margin-top: 96px;
  }
}
/* 620px matches the nav's own height step (84px), keeping the hero's
   negative overlap in sync with the actual nav height. */
@media (max-width: 620px) {
  .pg-hero {
    --gm-company-nav-overlap: 84px;
    min-height: calc(360px + var(--gm-company-nav-overlap));
  }
}
@media (max-width: 620px) {
  .co-about,
  .co-approach,
  .co-team,
  .co-cta,
  .gm-footer {
    scroll-margin-top: 84px;
  }
}

/* -----------------------------------------------------------------------
   COMPANY B — production adaptation of the supplied Company concept.
   Header remains standard and outside the shell. Main + footer share one
   1440px frame so the homepage's left/right content rails remain continuous.
   ----------------------------------------------------------------------- */
.co-shell {
  position: relative;
  width: min(100%, var(--gm-container-wide));
  margin-inline: auto;
  border-inline: 1px solid #8A8A8A;
  background: var(--gm-black);
}
.co-shell .gm-container--wide {
  max-width: none;
}

/* Legal documents — shared bounded shell and long-form document layout. */
.legal-shell {
  position: relative;
  width: min(100%, var(--gm-container-wide));
  margin-inline: auto;
  border-inline: 1px solid #8A8A8A;
  background: var(--gm-black);
}
.legal-shell .gm-container--wide {
  max-width: none;
}
.legal-shell > .gm-footer {
  border-top-color: #8A8A8A;
}
.lp-hero {
  --gm-legal-nav-overlap: 112px;
  position: relative;
  min-height: calc(clamp(420px, 54vh, 555px) + var(--gm-legal-nav-overlap));
  display: flex;
  align-items: center;
  margin-top: calc(-1 * var(--gm-legal-nav-overlap));
  padding-top: var(--gm-legal-nav-overlap);
  overflow: hidden;
  border-bottom: 1px solid #8A8A8A;
  background: #050506;
}
@keyframes lp-hero-zoom {
  0%,
  100% { transform: scale(1); }
  50% { transform: scale(1.2); }
}
.lp-hero__bg {
  position: absolute;
  inset: 0;
  transform-origin: center;
  animation: lp-hero-zoom 14s ease-in-out infinite;
  will-change: transform;
  background:
    linear-gradient(90deg, rgba(0,0,0,.86) 0%, rgba(0,0,0,.58) 42%, rgba(0,0,0,.18) 72%, rgba(0,0,0,.34) 100%),
    linear-gradient(180deg, rgba(0,0,0,.34) 0%, rgba(0,0,0,.08) 48%, rgba(0,0,0,.48) 100%),
    url("../assets/img/legal-hero-geology.jpg") center / cover no-repeat;
}
@media (prefers-reduced-motion: reduce) {
  .lp-hero__bg {
    animation: none;
    transform: none;
    will-change: auto;
  }
}
.lp-hero__glow {
  position: absolute;
  inset: 0;
  background:
    radial-gradient(60% 80% at 82% 30%, rgba(78,196,169,.10), transparent 60%),
    radial-gradient(50% 70% at 10% 90%, rgba(54,156,212,.08), transparent 60%);
  pointer-events: none;
}
.lp-hero__in {
  position: relative;
}
.lp-eye {
  margin: 0 0 22px;
  color: var(--gm-teal-400);
}
.lp-title {
  max-width: 20ch;
  margin: 0;
  font-family: var(--gm-font-display);
  font-size: clamp(2.4rem, 5vw, 4.4rem);
  font-weight: 300;
  line-height: 1.02;
  letter-spacing: -.015em;
}
.lp-title .mk-dim { color: var(--gm-basalt-300); }
.lp-title .mk-italic { font-style: italic; }
.lp-meta {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 14px;
  margin-top: 28px;
  color: var(--gm-basalt-200);
  font-family: var(--gm-font-mono);
  font-size: 12.5px;
  letter-spacing: .04em;
}
.lp-meta__k {
  margin-right: 2px;
  color: var(--gm-basalt-400);
  font-size: 10.5px;
  letter-spacing: .14em;
  text-transform: uppercase;
}
.lp-meta__dot {
  width: 4px;
  height: 4px;
  border-radius: 50%;
  background: var(--gm-basalt-600);
}
.lp-body {
  padding-block: clamp(56px, 7vw, 110px);
}
.lp-gridA {
  display: grid;
  grid-template-columns: 270px 1fr;
  gap: clamp(40px, 6vw, 96px);
  align-items: start;
}
.lp-toc {
  position: sticky;
  top: 128px;
}
.lp-toc__h {
  margin: 0 0 16px;
  color: #8A8A8A;
  font-family: var(--gm-font-mono);
  font-size: 10.5px;
  letter-spacing: .18em;
  text-transform: uppercase;
}
.lp-toc__list {
  display: flex;
  flex-direction: column;
  gap: 2px;
  margin: 0 0 30px;
  padding: 0;
  list-style: none;
}
.lp-toc__list a {
  display: flex;
  gap: 10px;
  align-items: baseline;
  padding: 7px 10px;
  border-left: 2px solid transparent;
  border-radius: 5px;
  color: var(--gm-basalt-300);
  font-size: 13.5px;
  line-height: 1.35;
  text-decoration: none;
  transition: color .15s, background-color .15s, border-color .15s;
}
.lp-toc__list a:hover {
  border-left-color: var(--gm-teal-400);
  background: rgba(255,255,255,.03);
  color: var(--gm-white);
}
.lp-toc__n {
  flex: none;
  color: var(--gm-basalt-500);
  font-family: var(--gm-font-mono);
  font-size: 11px;
}
.lp-toc__meta {
  display: flex;
  flex-direction: column;
  gap: 14px;
  padding-top: 18px;
  border-top: 1px solid var(--gm-border);
  color: #8A8A8A;
  font-family: var(--gm-font-mono);
  font-size: 12px;
  line-height: 1.6;
}
.lp-toc__meta p { margin: 0; }
.lp-toc__meta b { color: var(--gm-basalt-100); font-weight: 500; }
.lp-toc__meta a,
.lp-p a {
  color: var(--gm-teal-400);
  text-decoration: none;
}
.lp-content { max-width: 74ch; }
.lp-lead {
  max-width: 60ch;
  margin: 0 0 clamp(40px, 5vw, 64px);
  color: var(--gm-basalt-100);
  font-family: var(--gm-font-display);
  font-size: clamp(1.25rem, 1.9vw, 1.7rem);
  font-weight: 300;
  line-height: 1.5;
}
.lp-sec {
  padding-block: clamp(28px, 2.8vw, 40px);
  border-top: 1px solid var(--gm-border);
  scroll-margin-top: 128px;
}
.lp-sec:first-of-type {
  padding-top: 0;
  border-top: 0;
}
.lp-h2 {
  display: flex;
  gap: 14px;
  align-items: baseline;
  margin: 0 0 16px;
  font-family: var(--gm-font-display);
  font-size: clamp(1.4rem, 2vw, 1.9rem);
  font-weight: 300;
  letter-spacing: -.005em;
}
.lp-h2__n {
  flex: none;
  color: var(--gm-teal-400);
  font-family: var(--gm-font-mono);
  font-size: 12px;
}
.lp-p {
  max-width: 70ch;
  margin: 0;
  color: var(--gm-basalt-200);
  line-height: 1.75;
}
.lp-p + .lp-p { margin-top: 1.1em; }
.lp-p a { border-bottom: 1px solid rgba(78,196,169,.35); }
.lp-p a:hover { border-bottom-color: var(--gm-teal-400); }
@media (max-width: 900px) {
  .lp-hero {
    --gm-legal-nav-overlap: 96px;
    min-height: calc(420px + var(--gm-legal-nav-overlap));
  }
}
@media (max-width: 860px) {
  .lp-gridA { grid-template-columns: 1fr; gap: 36px; }
  .lp-toc {
    position: static;
    padding: 20px;
    border: 1px solid var(--gm-border);
    border-radius: 8px;
  }
}
@media (max-width: 620px) {
  .lp-hero {
    --gm-legal-nav-overlap: 84px;
    min-height: calc(390px + var(--gm-legal-nav-overlap));
  }
}

/* Text-first dossier hero */
.co-b-hero {
  --gm-company-nav-overlap: 112px;
  position: relative;
  min-height: calc(clamp(420px, 54vh, 555px) + var(--gm-company-nav-overlap));
  display: flex;
  align-items: flex-end;
  margin-top: calc(-1 * var(--gm-company-nav-overlap));
  padding-top: var(--gm-company-nav-overlap);
  overflow: hidden;
  border-bottom: 1px solid #8A8A8A;
  background: var(--gm-black);
}
.co-b-hero__video {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
  filter: saturate(.82) contrast(1.08) brightness(.72);
}
.co-b-hero__texture {
  position: absolute;
  inset: 0;
  opacity: .34;
  background:
    linear-gradient(rgba(255,255,255,.022) 1px, transparent 1px),
    linear-gradient(90deg, rgba(255,255,255,.022) 1px, transparent 1px),
    radial-gradient(ellipse 56% 72% at 84% 47%, rgba(54,156,212,.08), transparent 72%);
  background-size: 24px 24px, 24px 24px, auto;
  pointer-events: none;
}
@media (prefers-reduced-motion: reduce) {
  .co-b-hero__video {
    filter: saturate(.75) contrast(1.06) brightness(.68);
  }
}
.co-b-hero__inner {
  position: relative;
  z-index: 1;
  width: 100%;
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  align-items: end;
  padding-block: clamp(51px, 6vw, 90px);
}
.co-b-hero__copy {
  max-width: 920px;
}
.co-b-hero__title {
  max-width: 22ch;
  margin: 0;
  font-family: var(--gm-font-display);
  font-size: var(--gm-fs-h1);
  font-weight: 300;
  line-height: var(--gm-lh-tight);
  letter-spacing: var(--gm-ls-display);
}
.co-b-hero__title span {
  display: block;
  white-space: nowrap;
}
.co-b-hero__title > .mk-dim {
  color: #8a8a8a;
}
.co-b-hero__lead {
  max-width: 60ch;
  margin: 28px 0 0;
}
.co-b-hero__figure {
  align-self: end;
}
.co-b-hero__specimen {
  position: relative;
  aspect-ratio: 4 / 5;
  overflow: hidden;
  border: 1px solid var(--gm-border);
  border-radius: 4px;
  background:
    linear-gradient(180deg, rgba(0,0,0,.08), rgba(0,0,0,.5)),
    url("../assets/img/terrain-glacial-fracture.jpg") center / cover no-repeat;
  filter: saturate(.74) contrast(1.1);
}
.co-b-hero__specimen::after {
  content: "";
  position: absolute;
  inset: 0;
  background-image:
    linear-gradient(rgba(255,255,255,.025) 1px, transparent 1px),
    linear-gradient(90deg, rgba(255,255,255,.025) 1px, transparent 1px);
  background-size: 32px 32px;
}
.co-b-hero__corner {
  position: absolute;
  z-index: 1;
  width: 22px;
  height: 22px;
  border-color: var(--gm-teal-400);
  opacity: .8;
}
.co-b-hero__corner--tl { top: 14px; left: 14px; border-top: 1px solid; border-left: 1px solid; }
.co-b-hero__corner--tr { top: 14px; right: 14px; border-top: 1px solid; border-right: 1px solid; }
.co-b-hero__corner--bl { bottom: 14px; left: 14px; border-bottom: 1px solid; border-left: 1px solid; }
.co-b-hero__corner--br { right: 14px; bottom: 14px; border-right: 1px solid; border-bottom: 1px solid; }
.co-b-hero__meta {
  display: flex;
  justify-content: space-between;
  gap: 20px;
  padding-top: 14px;
  color: var(--gm-basalt-400);
  font-family: var(--gm-font-mono);
  font-size: 10px;
  letter-spacing: .14em;
  text-transform: uppercase;
}

/* Numbered editorial sections */
.co-about,
.co-approach,
.co-team,
.co-cta {
  padding-block: clamp(56px, 6.5vw, 104px);
}
.co-about,
.co-approach {
  background: var(--gm-black);
}
.co-approach {
  position: relative;
  isolation: isolate;
}
.co-approach::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 0;
  pointer-events: none;
  opacity: .46;
  background-image:
    radial-gradient(ellipse at center, rgba(255,255,255,.2) 0 .8px, transparent 1.15px),
    radial-gradient(ellipse at center, rgba(255,255,255,.13) 0 .65px, transparent 1px),
    radial-gradient(ellipse at center, rgba(255,255,255,.09) 0 .9px, transparent 1.3px),
    repeating-linear-gradient(117deg, transparent 0 7px, rgba(255,255,255,.025) 7px 8px);
  background-size: 7px 6px, 11px 9px, 17px 14px, 23px 23px;
  background-position: 0 0, 4px 3px, 9px 7px, 0 0;
  mix-blend-mode: screen;
}
.co-approach > .gm-container {
  position: relative;
  z-index: 1;
}
.co-b-section-head {
  display: block;
  padding-bottom: clamp(32px, 4vw, 52px);
  border-bottom: 1px solid var(--gm-border);
}
.co-b-section-head .gm-eyebrow,
.co-team__head .gm-eyebrow,
.co-cta__inner .gm-eyebrow {
  margin: 0 0 var(--gm-space-4);
}
.co-b-section-head h2,
.co-team__head h2 {
  margin: 0;
  font-family: var(--gm-font-display);
  font-size: var(--gm-fs-h2);
  font-weight: 300;
  line-height: var(--gm-lh-heading);
  letter-spacing: var(--gm-ls-heading);
  text-align: left;
}
.co-b-about-grid {
  display: grid;
  grid-template-columns: minmax(260px, .72fr) minmax(0, 1.28fr);
  gap: clamp(40px, 7vw, 110px);
  padding-block: clamp(42px, 5vw, 72px);
}
.co-b-about-lead {
  position: sticky;
  top: 144px;
  align-self: start;
}
.co-b-about-lead p {
  max-width: 32ch;
  margin: 0;
  font-family: var(--gm-font-display);
  font-size: var(--gm-fs-lead);
  font-weight: 400;
  line-height: 1.45;
  letter-spacing: var(--gm-ls-tight);
  color: var(--gm-text-secondary);
}
.co-body {
  gap: 26px;
}
.co-body p {
  color: var(--gm-basalt-200);
}

/* Audit-style method accordion */
.co-b-approach-grid {
  display: grid;
  grid-template-columns: minmax(240px, .56fr) minmax(0, 1.44fr);
  gap: clamp(40px, 7vw, 110px);
  padding-top: clamp(42px, 5vw, 72px);
}
.co-approach__media {
  position: sticky;
  top: 144px;
  align-self: start;
  display: block;
  overflow: hidden;
  border: 1px solid #8A8A8A;
  border-radius: 4px;
  background: var(--gm-basalt-900);
}
.co-approach__media img {
  width: 100%;
  height: auto;
  display: block;
}
.co-b-approach-content {
  min-width: 0;
}
.co-approach__intro {
  margin: 0 0 clamp(28px, 3vw, 42px);
  max-width: 56ch;
  text-align: left;
}
.co-accordion {
  border-top: 1px solid #8A8A8A;
}
.co-accordion__item {
  border-bottom: 1px solid #8A8A8A;
}
.co-accordion__item h3 {
  margin: 0;
}
.co-accordion__button {
  width: 100%;
  min-height: 84px;
  display: grid;
  grid-template-columns: 52px 1fr auto;
  gap: 18px;
  align-items: center;
  padding: 20px 0;
  border: 0;
  background: none;
  color: var(--gm-white);
  text-align: left;
  cursor: pointer;
  font-family: var(--gm-font-display);
  font-size: clamp(1.25rem, 1rem + .75vw, 1.75rem);
  font-weight: 300;
  transition: color var(--gm-dur-micro) var(--gm-ease);
}
.co-accordion__button:hover {
  color: var(--gm-blue-300);
}
.co-accordion__button:focus-visible {
  outline: 2px solid var(--gm-focus);
  outline-offset: 4px;
}
.co-accordion__no {
  color: var(--gm-basalt-300);
  font-family: var(--gm-font-mono);
  font-size: 24px;
  line-height: 1;
}
.text-\[24px\] {
  font-size: 24px;
}
.co-accordion__button svg {
  width: 22px;
  height: 22px;
  fill: none;
  stroke: var(--gm-blue-500);
  stroke-width: 1.5;
  transition: transform var(--gm-dur-micro) var(--gm-ease);
}
.co-accordion__item[data-open="true"] .co-accordion__button svg {
  transform: rotate(45deg);
}
.co-accordion__panel {
  display: grid;
  grid-template-rows: 0fr;
  transition: grid-template-rows var(--gm-dur-enter) var(--gm-ease);
}
.co-accordion__panel > div {
  overflow: hidden;
}
.co-accordion__panel p {
  max-width: 62ch;
  margin: 0;
  padding: 0 52px 28px 70px;
  color: var(--gm-basalt-200);
}
.co-accordion__item[data-open="true"] .co-accordion__panel {
  grid-template-rows: 1fr;
}
.co-approach__close {
  margin-top: 32px;
  padding: 28px 30px;
}

/* Portrait-led team dossiers */
.co-team {
  background: var(--gm-basalt-950);
}
.co-team__head {
  display: block;
  max-width: none;
  margin-bottom: clamp(42px, 5vw, 72px);
}
.co-team__intro {
  max-width: 60ch;
  margin: 20px 0 0;
}
.co-team__grid {
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 18px;
}
.co-team__group-head {
  margin-bottom: 20px;
  padding-bottom: 14px;
  border-bottom: 1px solid #8A8A8A;
}
.co-team__group-head--advisory {
  margin-top: clamp(54px, 7vw, 92px);
}
.co-team__group-head .gm-eyebrow {
  margin-bottom: 0;
}
.co-member {
  gap: 0;
  padding: 0;
  border-color: #8A8A8A;
  background: var(--gm-basalt-900);
  overflow: hidden;
}
.co-member__portrait {
  position: relative;
  aspect-ratio: 1 / 1;
  display: grid;
  place-items: center;
  overflow: hidden;
  border-bottom: 1px solid #8A8A8A;
  background:
    radial-gradient(circle at 50% 42%, rgba(54,156,212,.1), transparent 42%),
    linear-gradient(rgba(255,255,255,.02) 1px, transparent 1px),
    linear-gradient(90deg, rgba(255,255,255,.02) 1px, transparent 1px),
    var(--gm-basalt-850);
  background-size: auto, 24px 24px, 24px 24px, auto;
  color: var(--gm-basalt-400);
  font-family: var(--gm-font-display);
  font-size: clamp(3rem, 5vw, 5rem);
  font-weight: 300;
  letter-spacing: .04em;
}
.co-member__portrait--placeholder {
  isolation: isolate;
}
.co-member__portrait--placeholder::before {
  content: "";
  position: absolute;
  inset: 12%;
  z-index: -1;
  border: 1px solid rgba(78,196,169,.22);
  border-radius: 50%;
  background: radial-gradient(circle, rgba(78,196,169,.1), transparent 66%);
}
.co-member__portrait--placeholder::after {
  content: "";
  position: absolute;
  inset: 0;
  z-index: -1;
  background:
    linear-gradient(135deg, transparent 49.8%, rgba(255,255,255,.07) 50%, transparent 50.2%),
    linear-gradient(45deg, transparent 49.8%, rgba(255,255,255,.04) 50%, transparent 50.2%);
}
.co-member__portrait--placeholder span {
  position: relative;
  z-index: 1;
  max-width: 14ch;
  color: var(--gm-basalt-200);
  font-family: var(--gm-font-mono);
  font-size: clamp(.72rem, .62rem + .3vw, .9rem);
  font-weight: 400;
  line-height: 1.45;
  letter-spacing: .12em;
  text-align: center;
  text-transform: uppercase;
  text-shadow: 0 0 32px rgba(78,196,169,.22);
}
.co-member__portrait img {
  width: 100%;
  height: 100%;
  display: block;
  object-fit: cover;
}
.co-member__portrait--mark img {
  transform: scale(1);
}
.co-member__portrait picture {
  width: 100%;
  height: 100%;
  display: block;
}
.co-member__pose {
  position: absolute;
  inset: 0;
  z-index: 1;
  opacity: 0;
  transform: scale(1.012);
  transition:
    opacity 520ms var(--gm-ease),
    transform 720ms var(--gm-ease);
}
.co-member__pose.is-active {
  z-index: 2;
  opacity: 1;
  transform: scale(1);
}
.co-member__flag {
  position: absolute;
  z-index: 3;
  top: 16px;
  left: 16px;
  padding: 4px 9px;
  border-radius: 2px;
  background: var(--gm-teal-500);
  color: var(--gm-black);
  font-family: var(--gm-font-mono);
  font-size: 10px;
  font-weight: 700;
  letter-spacing: .14em;
  text-transform: uppercase;
}
.co-member__body {
  display: flex;
  flex: 1 1 auto;
  flex-direction: column;
  padding: clamp(24px, 2.4vw, 34px);
}
.co-member.co-member--technical {
  position: relative;
  isolation: isolate;
  display: flex;
  grid-column: span 2;
  min-height: 100%;
  justify-content: stretch;
  overflow: hidden;
  background: #081114;
}
.co-member--technical::before,
.co-member--technical::after {
  position: absolute;
  inset: 0;
  content: "";
  pointer-events: none;
}
.co-member--technical::before {
  z-index: -2;
  background: url("../assets/img/team/technical-team-landscape.jpg") 48% center / cover no-repeat;
}
.co-member--technical::after {
  z-index: -1;
  background:
    linear-gradient(180deg, rgba(1, 7, 10, .06) 8%, rgba(1, 7, 10, .42) 50%, rgba(1, 7, 10, .96) 100%),
    linear-gradient(90deg, rgba(1, 7, 10, .62), transparent 82%);
}
.co-member__statement {
  display: flex;
  flex: 1 1 auto;
  flex-direction: column;
  justify-content: flex-start;
  gap: clamp(32px, 3.6vw, 52px);
  padding: clamp(30px, 3vw, 46px);
}
.co-member__statement p {
  max-width: 26ch;
  margin: 0;
  color: var(--gm-white);
  font-family: var(--gm-font-display);
  font-size: clamp(calc(1.9rem + 5px), calc(1.45rem + 1.25vw + 5px), calc(2.65rem + 5px));
  font-weight: 300;
  line-height: 1.24;
  letter-spacing: -.035em;
}
.co-member__brands {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: clamp(12px, 2vw, 30px);
  align-items: center;
  min-height: 152px;
  margin-top: auto;
  padding-top: 0;
  border-top: 1px solid rgba(255,255,255,.32);
}
.co-member__brand {
  min-width: 0;
  min-height: 44px;
  display: flex;
  align-items: center;
  justify-content: center;
  opacity: .82;
}
.co-member__brand img {
  width: auto;
  max-width: 100%;
  height: 40px;
  display: block;
  object-fit: contain;
  transform-origin: center;
}
.co-member__brand:first-child img {
  width: 37.8px;
  height: 37.8px;
}
.co-member__brand:nth-child(2) img {
  width: 88px;
  transform: scale(1.298);
}
.co-member__brand:nth-child(3) img {
  width: 94px;
  transform: scale(1.628);
}
.co-member__brand--levels {
  opacity: .88;
}
.co-member__brand--levels img {
  width: 104px;
  max-width: 100%;
  height: auto;
  filter: grayscale(1) brightness(2.4);
}
.co-team__backing {
  display: grid;
  grid-template-columns: 120px minmax(0, 1fr);
  gap: clamp(28px, 4vw, 56px);
  align-items: center;
  margin-top: clamp(54px, 7vw, 92px);
  padding: clamp(28px, 4vw, 48px);
  border: 1px solid #8A8A8A;
  background:
    radial-gradient(ellipse 44% 120% at 92% 100%, rgba(241,202,81,.11), transparent 70%),
    var(--gm-basalt-900);
}
.co-team__backing-logo {
  width: 120px;
  height: 110px;
  display: block;
  object-fit: contain;
}
.co-team__backing-content {
  min-width: 0;
}
.co-team__backing h3 {
  margin: 0;
  font-size: clamp(1.5rem, 1.15rem + 1vw, 2.15rem);
  font-weight: 300;
}
.co-team__backing .gm-secondary {
  max-width: none;
  margin: 16px 0 0;
}
.co-team__backing-link {
  width: fit-content;
  display: inline-flex;
  gap: 8px;
  align-items: center;
  margin-top: 18px;
  padding-bottom: 3px;
  border-bottom: 1px solid currentColor;
  color: var(--gm-teal-500);
  font-family: var(--gm-font-mono);
  font-size: 12px;
  letter-spacing: .08em;
  text-decoration: none;
}
.co-team__backing-link:hover {
  color: var(--gm-white);
}
.co-team__backing-link:focus-visible {
  outline: 2px solid var(--gm-teal-500);
  outline-offset: 4px;
}

/* Topographic CTA panel */
.co-cta {
  position: relative;
  isolation: isolate;
  background: var(--gm-black);
}
.co-cta::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 0;
  pointer-events: none;
  opacity: .46;
  background-image:
    radial-gradient(ellipse at center, rgba(255,255,255,.2) 0 .8px, transparent 1.15px),
    radial-gradient(ellipse at center, rgba(255,255,255,.13) 0 .65px, transparent 1px),
    radial-gradient(ellipse at center, rgba(255,255,255,.09) 0 .9px, transparent 1.3px),
    repeating-linear-gradient(117deg, transparent 0 7px, rgba(255,255,255,.025) 7px 8px);
  background-size: 7px 6px, 11px 9px, 17px 14px, 23px 23px;
  background-position: 0 0, 4px 3px, 9px 7px, 0 0;
  mix-blend-mode: screen;
}
.co-cta > .gm-container {
  position: relative;
  z-index: 1;
}
.co-cta__inner {
  position: relative;
  max-width: none;
  padding: clamp(42px, 7vw, 96px);
  overflow: hidden;
  border: 1px solid #8A8A8A;
  border-radius: 6px;
  background: var(--gm-basalt-900);
  text-align: left;
}
.co-cta__inner--topo::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 1;
  opacity: .3;
  background:
    linear-gradient(90deg, rgba(0,0,0,.94) 0%, rgba(0,0,0,.8) 44%, rgba(0,0,0,.42) 72%, rgba(0,0,0,.24) 100%),
    linear-gradient(180deg, rgba(0,0,0,.22), rgba(0,0,0,.5));
  pointer-events: none;
}
.co-cta__media {
  position: absolute;
  inset: 0;
  z-index: 0;
  display: block;
}
.co-cta__media img {
  width: 100%;
  height: 100%;
  display: block;
  object-fit: cover;
}
.co-cta__inner > :not(.co-cta__media) {
  position: relative;
  z-index: 2;
}
.co-cta__inner h2 {
  max-width: 20ch;
  margin-top: 30px;
  font-size: var(--gm-fs-h2);
  line-height: var(--gm-lh-heading);
  letter-spacing: var(--gm-ls-heading);
}
.co-cta__inner h2 .mk-dim {
  color: var(--gm-basalt-200);
}
.co-cta__body,
.co-cta__inner .gm-btn {
  margin-left: 0;
}
.co-cta__inner .gm-btn--outline {
  box-shadow: inset 0 0 0 var(--gm-btn-outline-width) var(--gm-white);
}

.co-shell > .gm-footer {
  border-top: 0;
}
.gm-footer__logo {
  width: auto;
  height: 26px !important;
  display: block;
}

@media (max-width: 900px) {
  .co-b-hero {
    --gm-company-nav-overlap: 96px;
    min-height: calc(420px + var(--gm-company-nav-overlap));
  }
  .co-b-hero__inner {
    grid-template-columns: 1fr;
    padding-block: clamp(51px, 7.5vw, 72px);
  }
  .co-b-hero__figure {
    display: none;
  }
  .co-b-hero__title {
    max-width: 22ch;
  }
  .co-b-section-head,
  .co-b-about-grid,
  .co-b-approach-grid,
  .co-team__head {
    grid-template-columns: 1fr;
  }
  .co-b-about-lead,
  .co-approach__media {
    position: static;
  }
  .co-b-about-lead p {
    max-width: 32ch;
  }
  .co-team__grid {
    grid-template-columns: 1fr;
  }
  .co-member {
    display: grid;
    grid-template-columns: minmax(220px, .72fr) minmax(0, 1.28fr);
  }
  .co-member__portrait {
    min-height: 100%;
    border-right: 1px solid #8A8A8A;
    border-bottom: 0;
  }
  .co-member.co-member--technical {
    grid-column: auto;
    min-height: clamp(380px, 56vw, 560px);
  }
  .co-member__brands {
    min-height: 120px;
  }
  .co-member__statement p {
    max-width: 27ch;
    font-size: clamp(calc(1.9rem + 5px), calc(1.45rem + 1.8vw + 5px), calc(2.5rem + 5px));
  }
}
@media (max-width: 620px) {
  .co-b-hero {
    --gm-company-nav-overlap: 84px;
    min-height: calc(390px + var(--gm-company-nav-overlap));
  }
  .co-b-hero__title {
    max-width: none;
    font-size: clamp(1.45rem, 6.25vw, 1.75rem);
  }
  .co-accordion__button {
    grid-template-columns: 44px 1fr auto;
    gap: 12px;
  }
  .co-accordion__panel p {
    padding-left: 56px;
    padding-right: 30px;
  }
  .co-member {
    display: flex;
  }
  .co-member__portrait {
    width: 100%;
    min-height: 0;
    aspect-ratio: 1 / 1;
    border-right: 0;
    border-bottom: 1px solid #8A8A8A;
  }
  .co-member.co-member--technical {
    min-height: 560px;
  }
  .co-member--technical::before {
    background-position: 44% center;
  }
  .co-member__statement {
    gap: 44px;
    padding: 32px 24px 28px;
  }
  .co-member__statement p {
    max-width: 24ch;
    font-size: clamp(calc(1.65rem + 5px), calc(6.8vw + 5px), calc(1.95rem + 5px));
    line-height: 1.24;
  }
  .co-member__brands {
    gap: 8px;
    min-height: 94px;
    padding-top: 0;
  }
  .co-member__brand img {
    height: 30px;
  }
  .co-member__brand:first-child img {
    width: 31.5px;
    height: 31.5px;
  }
  .co-member__brand:nth-child(2) img {
    width: 64px;
    transform: scale(1.232);
  }
  .co-member__brand:nth-child(3) img {
    width: 68px;
    transform: scale(1.474);
  }
  .co-member__brand--levels img {
    width: 76px;
  }
  .co-team__backing {
    grid-template-columns: 1fr;
    align-items: start;
  }
  .co-team__backing-logo {
    width: 96px;
    height: 88px;
  }
}

@media (prefers-reduced-motion: reduce) {
  .co-accordion__panel,
  .co-accordion__button svg {
    transition: none;
  }
}

/* Why this model — supplied split layout. */
#projects {
  position: relative;
  isolation: isolate;
  border-bottom: 1px solid #8A8A8A;
  background-color: var(--gm-basalt-950);
}
#projects::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 0;
  pointer-events: none;
  opacity: .46;
  background-image:
    radial-gradient(ellipse at center, rgba(255,255,255,.2) 0 .8px, transparent 1.15px),
    radial-gradient(ellipse at center, rgba(255,255,255,.13) 0 .65px, transparent 1px),
    radial-gradient(ellipse at center, rgba(255,255,255,.09) 0 .9px, transparent 1.3px),
    repeating-linear-gradient(117deg, transparent 0 7px, rgba(255,255,255,.025) 7px 8px);
  background-size: 7px 6px, 11px 9px, 17px 14px, 23px 23px;
  background-position: 0 0, 4px 3px, 9px 7px, 0 0;
  mix-blend-mode: screen;
}
#projects > .gm-container {
  position: relative;
  z-index: 1;
}
.wm-inner { padding-block: clamp(56px,6.5vw,104px); }
.wm-h2 {
  font-family: var(--gm-font-display); font-weight: 300; margin: .4rem 0 0;
  font-size: clamp(2rem,3.6vw,3.1rem); line-height: 1.06; max-width: 19ch;
}
.wm-title {
  font-family: var(--gm-font-display); font-weight: 300;
  font-size: clamp(1.3rem,1.1rem + .7vw,1.7rem); letter-spacing: .005em; margin: 0;
}
.wm-body { margin: 0; max-width: 52ch; }
.wm-tile { width: 46px; height: 46px; color: var(--gm-accent); }
.wm-cta { margin-top: clamp(34px,4vw,52px); }
.tx-topo {
  background-image: none;
}
.wm-card {
  position: relative; border: 1px solid #B4B4B4; border-radius: 6px;
  overflow: hidden; background: #0A0A0A;
}
.wm-card__bg {
  position: absolute; inset: 0;
  background-image: radial-gradient(rgba(255,255,255,.05) 1px,transparent 1.6px);
  background-size: 22px 22px;
  -webkit-mask-image: radial-gradient(120% 120% at 100% 0,#000,transparent 70%);
  mask-image: radial-gradient(120% 120% at 100% 0,#000,transparent 70%);
  opacity: .7; pointer-events: none;
}
.wm-card__in {
  position: relative; padding: clamp(22px,2vw,32px);
  display: flex; flex-direction: column; gap: 13px;
}
.wm-card__top { display: flex; align-items: center; gap: 14px; }
.v3-grid {
  display: grid; grid-template-columns: .92fr 1.08fr;
  gap: 20px; align-items: stretch;
}
.v3-left {
  position: relative; border: 1px solid #8A8A8A; border-radius: 6px;
  overflow: hidden; background-color: #090909;
}
.v3-left__unicorn {
  position: absolute;
  inset: 0;
  z-index: 0;
  overflow: hidden;
  pointer-events: none;
}
.v3-left__unicorn > [data-us-project] {
  position: absolute;
  inset: -4%;
  width: 100%;
  height: 100%;
  transform: scale(1.08);
  transform-origin: center;
}
.v3-left::after {
  content: ""; position: absolute; inset: 0; z-index: 1;
  background:
    linear-gradient(90deg,rgba(9,9,9,.78),rgba(9,9,9,.32) 58%,rgba(9,9,9,.66)),
    radial-gradient(95% 85% at 22% 18%,transparent,rgba(9,9,9,.8) 80%);
  pointer-events: none;
}
.v3-left__in {
  position: relative; z-index: 2; padding: clamp(30px,3vw,52px);
  display: flex; flex-direction: column; height: 100%; justify-content: center; gap: 6px;
}
.v3-left .wm-h2 { max-width: 15ch; font-size: clamp(1.8rem,2.7vw,2.6rem); }
.v3-sub { margin: 18px 0 0; max-width: 34ch; }
.v3-right { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }
@media (max-width:900px) {
  .v3-grid { grid-template-columns: 1fr; }
  .v3-right { grid-template-columns: 1fr; }
}

/* Client services — supplied field-verification and accordion layout. */
#services {
  position: relative;
  overflow: hidden;
  border-top: 1px solid var(--gm-border-subtle);
  border-bottom: 1px solid #8A8A8A;
  background: var(--gm-basalt-900);
}
.services-aura {
  position: absolute;
  top: 0;
  right: 0;
  width: 50%;
  height: 100%;
  pointer-events: none;
  background: radial-gradient(ellipse at 75% 50%,rgba(78,196,169,.14),transparent 60%);
}
.services-inner {
  position: relative;
  padding-block: clamp(64px,7vw,120px);
}
.services-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: clamp(32px,4vw,64px);
  align-items: center;
}
.mk4-plate {
  position: relative;
  overflow: hidden;
  aspect-ratio: 4 / 5;
  margin: 0;
  border: 1px solid var(--gm-border-subtle);
  border-radius: 4px;
  background: var(--gm-basalt-850);
}
.mk4-plate > img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  filter: grayscale(100%);
  transition: filter 500ms var(--gm-ease), transform 500ms var(--gm-ease);
}
.mk4-plate:hover > img {
  filter: grayscale(0);
  transform: scale(1.03);
}
.services-copy h2 { margin-top: 14px; font-weight: 300; }
.services-intro { margin-top: 22px; max-width: 50ch; }
.mk4-acc {
  margin-top: 34px;
  border-top: 1px solid var(--gm-border);
}
.mk4-acc__item { border-bottom: 1px solid var(--gm-border); }
.mk4-acc__btn {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 20px;
  width: 100%;
  min-height: 64px;
  padding: 18px 0;
  border: 0;
  background: none;
  color: inherit;
  font-family: var(--gm-font-body);
  font-size: 1.0625rem;
  font-weight: 700;
  text-align: left;
  cursor: pointer;
}
.mk4-acc__btn:hover { color: var(--gm-blue-300); }
.mk4-acc__btn:focus-visible { outline: 2px solid var(--gm-blue-500); outline-offset: 3px; }
.mk4-acc__btn svg {
  width: 20px;
  height: 20px;
  flex: none;
  color: var(--gm-blue-500);
  transition: transform 220ms var(--gm-ease);
}
.mk4-acc__item[data-open="true"] .mk4-acc__btn svg { transform: rotate(45deg); }
.mk4-acc__body {
  display: grid;
  grid-template-rows: 0fr;
  transition: grid-template-rows 240ms var(--gm-ease);
}
.mk4-acc__body > div { overflow: hidden; }
.mk4-acc__body p { max-width: 52ch; margin: 0; padding-bottom: 20px; }
.mk4-acc__item[data-open="true"] .mk4-acc__body { grid-template-rows: 1fr; }
@media (max-width: 760px) {
  .services-grid { grid-template-columns: 1fr; align-items: start; }
  .mk4-plate { aspect-ratio: 4 / 3; }
  .services-aura { width: 100%; }
}
@media (prefers-reduced-motion: reduce) {
  .mk4-plate > img,
  .mk4-acc__body { transition: none; }
}

/* Two lines of business — attached Option C. */
#company {
  position: relative;
  isolation: isolate;
  background-color: var(--gm-basalt-950);
}
#company::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 0;
  pointer-events: none;
  opacity: .46;
  background-image:
    radial-gradient(ellipse at center, rgba(255,255,255,.2) 0 .8px, transparent 1.15px),
    radial-gradient(ellipse at center, rgba(255,255,255,.13) 0 .65px, transparent 1px),
    radial-gradient(ellipse at center, rgba(255,255,255,.09) 0 .9px, transparent 1.3px),
    repeating-linear-gradient(117deg, transparent 0 7px, rgba(255,255,255,.025) 7px 8px);
  background-size: 7px 6px, 11px 9px, 17px 14px, 23px 23px;
  background-position: 0 0, 4px 3px, 9px 7px, 0 0;
  mix-blend-mode: screen;
}
#company::after {
  content: "";
  position: absolute;
  z-index: 2;
  right: 0;
  bottom: 0;
  left: 0;
  height: 1px;
  pointer-events: none;
  background: #8A8A8A;
}
#company > .gm-container {
  position: relative;
  z-index: 1;
}
.lb-inner { padding-block: clamp(56px, 6.5vw, 104px); }
.lb-head {
  display: grid; grid-template-columns: 1fr 1fr;
  gap: clamp(28px, 4vw, 72px); align-items: end;
  margin-bottom: clamp(34px, 4vw, 56px);
}
.lb-h2 {
  font-family: var(--gm-font-display); font-weight: 300;
  margin: 0; max-width: 18ch;
  font-size: clamp(1.9rem, 3.4vw, 3rem); line-height: 1.05;
}
.lb-h2 span { display: block; }
.lb-intro { margin: 0; max-width: 56ch; }
.lb-cards { display: grid; grid-template-columns: 1fr 1fr; gap: 20px; }
.lb-card {
  display: flex; flex-direction: column;
  border: 1px solid #8A8A8A; border-radius: 4px;
  overflow: hidden; background: var(--gm-basalt-900);
}
.lb-card__media {
  position: relative; aspect-ratio: 16 / 9;
  border-bottom: 1px solid #8A8A8A;
}
.lb-card__media picture,
.lb-card__media img { position: absolute; inset: 0; width: 100%; height: 100%; }
.lb-card__media img { object-fit: cover; }
.lb-card__media::after {
  content: ""; position: absolute; inset: 0; z-index: 1;
  background: linear-gradient(180deg, rgba(0,0,0,.18), rgba(0,0,0,.52));
}
.lb-card__idx {
  position: absolute; top: 18px; right: 20px; z-index: 2;
  font-family: var(--gm-font-mono); font-size: 33px; line-height: 1;
  color: var(--gm-blue-300);
}
.lb-card__tile {
  position: absolute; left: 24px; bottom: -26px; z-index: 3;
  width: 52px; height: 52px; border-color: #8A8A8A;
}
.lb-card__body {
  padding: clamp(30px, 2.4vw, 42px); padding-top: 46px;
  display: flex; flex: 1; flex-direction: column; gap: 18px;
}
.lb-card__body .gm-secondary { color: var(--gm-white); }
.lb-card__body .gm-link { align-self: flex-start; }
.lb-title {
  font-family: var(--gm-font-display); font-weight: 300;
  font-size: clamp(1.5rem, 1.1rem + 1vw, 2.1rem);
  letter-spacing: .01em; margin: 0 0 4px;
}
.lb-card--teal .gm-icon-tile,
.lb-card--teal .gm-link,
.lb-card--teal .lb-card__idx { color: var(--gm-teal-500); }
.lb-card--teal .gm-link:hover { color: var(--gm-teal-500); border-bottom-color: currentColor; }
@media (max-width: 860px) {
  .lb-head { grid-template-columns: 1fr; gap: 20px; align-items: start; }
  .lb-cards { grid-template-columns: 1fr; }
}


/* --------------------------------------------------------------------------
   6 · SMALL PARTS
   ----------------------------------------------------------------------- */

/* Category tag — news cards. The brand's .gm-chip is an interactive filter
   control; these are static labels, so they get their own square, quieter
   treatment rather than borrowing a control's appearance. */
.mk-tag {
  display: inline-flex; align-items: center; padding: 4px 9px; border-radius: 2px;
  font-family: var(--gm-font-mono); font-size: 10px; letter-spacing: 0.12em;
  text-transform: uppercase; border: 1px solid var(--gm-border);
  color: var(--gm-basalt-300); background: rgba(255, 255, 255, 0.03);
}
.mk-tag--blue { border-color: var(--gm-blue-500); color: #061018; background: var(--gm-blue-500); }
.mk-tag--teal { border-color: var(--gm-teal-500); color: #06130f; background: var(--gm-teal-500); }
.mk-tag--gold { border-color: var(--gm-gold-300); color: #171204; background: var(--gm-gold-300); }

/* Latest news — subtle diagonal strata pattern. */
#news {
  position: relative;
  isolation: isolate;
  overflow: hidden;
  background-color: #030708;
}
#news::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 0;
  pointer-events: none;
  background:
    linear-gradient(90deg, rgba(0,10,13,.28), transparent 42%, rgba(0,10,13,.22)),
    repeating-linear-gradient(
      135deg,
      rgba(54,156,212,.055) 0,
      rgba(54,156,212,.055) 1px,
      transparent 1px,
      transparent 15px
    );
}
#news > .gm-container {
  position: relative;
  z-index: 1;
}
.mk-bento__cell.news-card {
  --news-accent-rgb: 54, 156, 212;
  min-height: 300px;
  display: flex;
  flex-direction: column;
  border: 1px solid #fff;
  background:
    radial-gradient(
      ellipse 84% 42% at 50% 112%,
      rgba(var(--news-accent-rgb), .28) 0%,
      rgba(var(--news-accent-rgb), .11) 42%,
      transparent 74%
    ),
    #000;
}
.news-card:has(.mk-tag--blue) { --news-accent-rgb: 54, 156, 212; }
.news-card:has(.mk-tag--teal) { --news-accent-rgb: 78, 196, 169; }
.news-card:has(.mk-tag--gold) { --news-accent-rgb: 245, 217, 122; }
.news-card[hidden] { display: none; }
.news-card::before,
.news-card::after {
  display: none;
}
.news-card__inner {
  min-height: 100%;
  flex: 1;
  display: flex;
  flex-direction: column;
  gap: 12px;
  padding: 24px;
}
.news-card__meta {
  display: flex;
  align-items: center;
  gap: 14px;
}
.news-card .mk-bento__tag {
  color: #8A8A8A;
}
.news-card h3 {
  margin: 0;
  font-size: 1.35rem;
  font-weight: 300;
  line-height: 1.25;
}
.news-card p { margin: 0; }
.news-card__publication {
  display: grid;
  gap: 3px;
  padding-top: 12px;
  border-top: .5px solid rgba(var(--news-accent-rgb), .48);
  color: var(--gm-text-muted);
  font-family: var(--gm-font-mono);
  font-size: 11px;
  line-height: 1.45;
  letter-spacing: .06em;
  text-transform: uppercase;
}
.news-card__read {
  align-self: flex-start;
  margin-top: auto;
  min-height: 30px;
  padding: 5px 15px;
  display: inline-flex;
  align-items: center;
  gap: 7px;
  border: .5px solid #8A8A8A;
  border-radius: 999px;
  background: transparent;
  color: var(--gm-white);
  text-decoration: none;
  font-family: var(--gm-font-body);
  font-size: 12px;
  line-height: 1;
  cursor: pointer;
  transition:
    background-color var(--gm-dur-base) var(--gm-ease),
    color var(--gm-dur-base) var(--gm-ease),
    box-shadow var(--gm-dur-base) var(--gm-ease),
    transform var(--gm-dur-micro) var(--gm-ease);
}
.news-card__read svg {
  width: 13px;
  height: 13px;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.75;
  stroke-linecap: round;
  stroke-linejoin: round;
  transition: transform var(--gm-dur-micro) var(--gm-ease);
}
.news-card__read:hover svg {
  transform: translateX(2px);
}
.news-card__read:hover {
  background: var(--gm-lime-500);
  color: var(--gm-lime-ink);
  border-color: var(--gm-lime-500);
  box-shadow: 0 0 0 8px var(--gm-lime-halo);
}
.news-card__read:focus-visible {
  outline: 2px solid var(--gm-lime-500);
  outline-offset: 4px;
}
.news-card__read:active {
  transform: translateY(1px);
}

/* Display italic — the editorial register. The hero's second line, the
   closing CTA and the newsletter heading all use it. It is what separates
   this direction from the other three; do not flatten it to roman. */
.mk-italic { font-style: italic; }
.mk-dim { color: var(--gm-basalt-400); }
.gm-engagement-btn {
  box-shadow: inset 0 0 0 var(--gm-btn-outline-width) var(--gm-basalt-300);
}
.gm-engagement-btn:hover {
  box-shadow: 0 0 0 8px var(--gm-lime-halo);
}

/* Card shell + monospace micro-label */
.mk-bento__cell {
  background: rgba(255, 255, 255, 0.02); border-radius: 2px;
  position: relative; overflow: hidden;
}
.mk-bento__tag {
  font-family: var(--gm-font-mono); font-size: 10px; letter-spacing: 0.16em;
  text-transform: uppercase; color: var(--gm-basalt-500);
}

/* Cinematic image treatment — desaturated at rest, resolving on hover */
.mk-cine {
  filter: grayscale(28%) contrast(1.04);
  transition: filter 0.35s var(--gm-ease), transform 0.6s var(--gm-ease);
}
a:hover .mk-cine, .mk-figure:hover .mk-cine { filter: grayscale(0) contrast(1.04); transform: scale(1.03); }
.mk-figure { overflow: hidden; }

/* Footer bar legal links. brand.css styles the column links but not these, so
   without this they fall back to the browser's default blue underline. */
.gm-footer__bar a {
  color: inherit; text-decoration: none;
  transition: color 140ms var(--gm-ease);
}
.gm-footer__bar a:hover { color: #fff; text-decoration: underline; }
.gm-footer__contact a {
  color: inherit;
  font-size: inherit;
  text-decoration: none;
}
.gm-footer__contact a:hover {
  color: var(--gm-text);
  text-decoration: underline;
}
.gm-footer__col li > span {
  color: var(--gm-text-muted);
  font-size: var(--gm-fs-body-sm);
}
.gm-footer__col .gm-footer__socials {
  display: flex;
  align-items: center;
  gap: 14px;
  padding-top: 2px;
}
.gm-footer__social {
  display: inline-flex;
  width: 20px;
  height: 20px;
  color: var(--gm-text-secondary);
  transition: color 140ms var(--gm-ease), transform 140ms var(--gm-ease);
}
.gm-footer__social:hover,
.gm-footer__social:focus-visible {
  color: var(--gm-text);
  transform: translateY(-1px);
}
.gm-footer__social svg {
  width: 100%;
  height: 100%;
  fill: currentColor;
}

/* Testimonial slider at full content width. It sits on the same column as
   every other section, not inset from it. The intro copy keeps its own 46ch
   measure from brand.css, so widening the band does not produce an
   unreadable line length. */
.mk-tw { max-width: none; margin-inline: 0; }
.mk-tw .gm-tslider {
  border: 1px solid #8A8A8A;
  border-radius: 4px;
  padding: clamp(2rem, 1rem + 4vw, 4rem);
}
.mk-tw .gm-tslider__grid { gap: clamp(2rem, 1rem + 5vw, 5.5rem); }
.mk-tw .gm-tslider__card {
  box-sizing: border-box;
  display: flex;
  flex-direction: column;
  height: 440px;
}
.mk-tw .gm-tslider__logo { height: 92px; }
.mk-tw .gm-tslider__logo[src$="daura-gold-white.png"] { height: 45.1px; }
.mk-tw .gm-tslider__logo[src$="noble-plains-white.svg"] { height: 119.6px; }
.mk-tw .gm-tslider__attr {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  align-items: end;
  height: 120px;
  margin-top: auto;
}
@media (max-width: 900px) {
  .mk-tw .gm-tslider__card { height: 430px; }
  .mk-tw .gm-tslider__attr { height: 89px; }
  .mk-tw .gm-tslider__logo { height: 68px; }
  .mk-tw .gm-tslider__logo[src$="daura-gold-white.png"] { height: 33.3px; }
  .mk-tw .gm-tslider__logo[src$="noble-plains-white.svg"] { height: 88.4px; }
}
@media (max-width: 560px) {
  .mk-tw .gm-tslider__card { height: 440px; }
  .mk-tw .gm-tslider__attr { height: 73px; }
  .mk-tw .gm-tslider__logo { height: 56px; }
  .mk-tw .gm-tslider__logo[src$="daura-gold-white.png"] { height: 27.4px; }
  .mk-tw .gm-tslider__logo[src$="noble-plains-white.svg"] { height: 72.8px; }
}


/* --------------------------------------------------------------------------
   7 · WORDMARK SCALE
   The source PNG is 828px tall but its visible artwork occupies only 345px,
   beginning 264px from the top. The nav link clips that transparent canvas so
   sizing follows the mark itself. The 44.4px visible desktop mark is 25%
   larger than the preceding 35.5px treatment.
   ----------------------------------------------------------------------- */
.gm-nav { height: 112px; }
.gm-nav__logo {
  position: relative;
  width: 310.5px;
  height: 44.4px;
  overflow: hidden;
  transform: translateY(5px);
}
.gm-nav__logo img {
  position: absolute;
  top: -34px;
  left: 0;
  height: 106.5px;
  width: auto;
  max-width: none;
}
.gm-footer {
  position: relative;
  isolation: isolate;
  overflow: hidden;
  background: var(--gm-black);
  border-bottom: 1px solid #8A8A8A;
  margin-bottom: 40px;
}
.gm-footer::before {
  content: "";
  position: absolute;
  z-index: -1;
  inset: 0;
  background-color: #242424;
  opacity: .6;
  background-image:
    repeating-radial-gradient(circle at 0 0, transparent 0, #242424 10px),
    repeating-linear-gradient(#00000055, #000000);
  pointer-events: none;
}
.gm-nav__links { border-color: var(--gm-basalt-300); }
.gm-home-hero { --gm-home-nav-overlap: 112px; }

/* --------------------------------------------------------------------------
   COOKIE CONSENT
   Kept deliberately in the same component family as the site's forms and
   CTAs: basalt plate, teal signal stroke, DM Sans controls, and the
   established charcoal-to-lime interaction state.
   ----------------------------------------------------------------------- */
.gm-cookie {
  position: fixed;
  right: clamp(16px, 2.2vw, 40px);
  bottom: max(18px, env(safe-area-inset-bottom));
  left: clamp(16px, 2.2vw, 40px);
  z-index: 100;
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) auto;
  align-items: center;
  gap: var(--gm-space-4) var(--gm-space-5);
  max-width: 1160px;
  margin-inline: auto;
  padding: var(--gm-space-5) var(--gm-space-6);
  border: 1px solid var(--gm-teal-500);
  border-radius: var(--gm-radius-md);
  background: linear-gradient(
    180deg,
    var(--gm-basalt-700) 0%,
    var(--gm-basalt-850) 48%,
    var(--gm-black) 100%
  );
  box-shadow: var(--gm-shadow-lg);
  color: var(--gm-text-secondary);
  opacity: 1;
  transform: translateY(0);
  transition: opacity var(--gm-dur-micro) ease, transform var(--gm-dur-base) var(--gm-ease);
}
.gm-cookie.is-closing {
  opacity: 0;
  transform: translateY(12px);
}
.gm-cookie__mark {
  display: grid;
  place-items: center;
  width: 27px;
  height: 27px;
  color: var(--gm-signal);
}
.gm-cookie__mark svg { width: 25px; height: 25px; }
.gm-cookie__body { min-width: 0; }
.gm-cookie__eyebrow {
  margin: 0 0 var(--gm-space-2);
  color: var(--gm-text);
  font-family: var(--gm-font-display);
  font-size: var(--gm-fs-body-sm);
  font-weight: 500;
  letter-spacing: var(--gm-ls-tight);
  line-height: var(--gm-lh-snug);
}
.gm-cookie__copy {
  max-width: 68ch;
  margin: 0;
  color: var(--gm-text-secondary);
  font-family: var(--gm-font-body);
  font-size: var(--gm-fs-caption);
  line-height: var(--gm-lh-body);
}
.gm-cookie__copy a {
  color: var(--gm-text);
  text-decoration: underline;
  text-decoration-color: var(--gm-signal);
  text-underline-offset: 3px;
}
.gm-cookie__copy a:hover,
.gm-cookie__copy a:focus-visible { color: var(--gm-lime-500); }
.gm-cookie__actions {
  display: flex;
  align-items: center;
  gap: var(--gm-space-2);
  flex-shrink: 0;
}
.gm-cookie__privacy,
.gm-cookie__accept {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 43px;
  padding: var(--gm-btn-pad);
  border: 0;
  border-radius: var(--gm-btn-radius);
  font-family: var(--gm-font-body);
  font-size: var(--gm-btn-fs);
  font-weight: 400;
  line-height: 1;
  text-decoration: none;
  white-space: nowrap;
  transition:
    background-color var(--gm-btn-dur) var(--gm-ease),
    color var(--gm-btn-dur) var(--gm-ease),
    box-shadow var(--gm-btn-dur) var(--gm-ease);
}
.gm-cookie__privacy {
  background: transparent;
  box-shadow: inset 0 0 0 1px var(--gm-border);
  color: var(--gm-text-secondary);
}
.gm-cookie__privacy:hover,
.gm-cookie__privacy:focus-visible {
  background: var(--gm-lime-500);
  color: var(--gm-lime-ink);
  box-shadow: 0 0 0 8px var(--gm-lime-halo);
}
.gm-cookie__accept {
  background: var(--gm-btn-face);
  color: var(--gm-btn-ink);
  cursor: pointer;
}
.gm-cookie__accept:hover,
.gm-cookie__accept:focus-visible {
  background: var(--gm-lime-500);
  color: var(--gm-lime-ink);
  box-shadow: 0 0 0 8px var(--gm-lime-halo);
}
.gm-cookie__privacy:focus-visible,
.gm-cookie__accept:focus-visible {
  outline: 2px solid var(--gm-lime-500);
  outline-offset: 4px;
}
@media (max-width: 900px) {
  .gm-cookie {
    grid-template-columns: auto minmax(0, 1fr);
    padding: var(--gm-space-5);
  }
  .gm-cookie__actions {
    grid-column: 2;
  }
}
@media (max-width: 560px) {
  .gm-cookie {
    right: 12px;
    bottom: max(12px, env(safe-area-inset-bottom));
    left: 12px;
    grid-template-columns: 1fr;
    gap: 14px;
    padding: 20px;
  }
  .gm-cookie__mark { display: none; }
  .gm-cookie__eyebrow { margin-bottom: 9px; }
  .gm-cookie__copy { font-size: 13px; line-height: 1.55; }
  .gm-cookie__actions {
    grid-column: auto;
    display: grid;
    grid-template-columns: 1fr 1.2fr;
    gap: 8px;
  }
  .gm-cookie__privacy,
  .gm-cookie__accept {
    min-height: 42px;
    padding-inline: var(--gm-space-3);
    font-size: var(--gm-fs-caption);
  }
}
@media (prefers-reduced-motion: reduce) {
  .gm-cookie { transition: none; }
}

/* The home nav starts open to the hero scene, then becomes the brand's
   existing glass rail once content begins moving underneath it. */
.gm-home-nav {
  background: transparent;
  backdrop-filter: none;
  -webkit-backdrop-filter: none;
  border-bottom-color: transparent;
  transition:
    background-color var(--gm-dur-base) var(--gm-ease),
    border-color var(--gm-dur-base) var(--gm-ease),
    backdrop-filter var(--gm-dur-base) var(--gm-ease);
}
.gm-home-nav.is-scrolled {
  background: rgba(0,0,0,0.30);
  backdrop-filter: saturate(150%) blur(10px);
  -webkit-backdrop-filter: saturate(150%) blur(10px);
  border-bottom-color: rgba(255,255,255,0.05);
}

/* Desktop dropdowns follow the sitemap and reuse the nav's existing surfaces. */
.gm-nav__item { position: relative; }
.gm-nav__submenu {
  position: absolute;
  top: calc(100% + 12px);
  left: 50%;
  z-index: 50;
  min-width: 210px;
  padding: 8px;
  border: 1px solid var(--gm-border-subtle);
  border-radius: var(--gm-radius-sm);
  background: var(--gm-basalt-800);
  opacity: 0;
  visibility: hidden;
  transform: translate(-50%, 6px);
  transition: opacity var(--gm-dur-micro) var(--gm-ease),
              transform var(--gm-dur-micro) var(--gm-ease),
              visibility var(--gm-dur-micro) var(--gm-ease);
}
.gm-nav__submenu::before {
  content: "";
  position: absolute;
  inset: -13px 0 auto;
  height: 13px;
}
.gm-nav__submenu a {
  display: block;
  padding: 11px 14px;
  border-radius: var(--gm-radius-xs);
  color: var(--gm-text-secondary);
  font-size: var(--gm-fs-body-sm);
  text-decoration: none;
  white-space: nowrap;
}
.gm-nav__submenu a:hover,
.gm-nav__submenu a:focus-visible {
  color: var(--gm-white);
  background: var(--gm-basalt-600);
}
.gm-nav__item:hover .gm-nav__submenu,
.gm-nav__item:focus-within .gm-nav__submenu {
  opacity: 1;
  visibility: visible;
  transform: translate(-50%, 0);
}

/* brand.css drops the inline links at 980px, which was tuned for a 26px
   wordmark. At 68px the logo is ~240px wide, so five links plus the CTA stop
   fitting around 1100. */
@media (max-width: 1100px) {
  .gm-nav .gm-nav__links { display: none; }
  .gm-nav .gm-nav__burger { display: inline-flex; }
}
@media (max-width: 900px) {
  .gm-nav { height: 96px; }
  .gm-nav__logo {
    width: 260px;
    height: 37.1px;
  }
  .gm-nav__logo img {
    top: -28.4px;
    height: 89.1px;
  }
  .gm-home-hero { --gm-home-nav-overlap: 96px; }
}
@media (max-width: 620px) {
  .gm-nav { height: 84px; }
  .gm-nav__logo {
    width: 209.6px;
    height: 30px;
  }
  .gm-nav__logo img {
    top: -23px;
    height: 72px;
  }
  .gm-home-hero { --gm-home-nav-overlap: 84px; }

  /* Keep the compact logo-and-menu row after removing the mobile contact CTA. */
  .gm-nav__inner { gap: 10px; padding-left: 14px; padding-right: 14px; }
  .gm-nav__right { gap: 6px; }
  .gm-nav__cta { display: none; }
  .gm-nav__burger { width: 40px; height: 40px; }
}


/* --------------------------------------------------------------------------
   CONTACT PAGE
   Adapted from the supplied contact-page composition. The global navigation
   and footer remain shared with every public page.
   ----------------------------------------------------------------------- */
.ct-main {
  min-height: calc(100vh - 112px);
  background: var(--gm-black);
}
.ct-hero {
  --gm-contact-nav-overlap: 112px;
  position: relative;
  isolation: isolate;
  min-height: calc(clamp(420px, 54vh, 555px) + var(--gm-contact-nav-overlap));
  display: flex;
  align-items: flex-end;
  margin-top: calc(-1 * var(--gm-contact-nav-overlap));
  padding-top: var(--gm-contact-nav-overlap);
  overflow: hidden;
  border-bottom: 1px solid #8A8A8A;
  background: var(--gm-black) url("../assets/video/contact-glowing-fibers-poster.webp") center / cover no-repeat;
}
.ct-hero__video {
  position: absolute;
  inset: 0;
  z-index: -3;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
  filter: saturate(.94) contrast(1.06) brightness(.78);
}
.ct-hero__grid,
.ct-hero__glow {
  position: absolute;
  inset: 0;
  pointer-events: none;
}
.ct-hero__grid {
  z-index: -2;
  background-image:
    linear-gradient(var(--gm-veil-04) 1px, transparent 1px),
    linear-gradient(90deg, var(--gm-veil-04) 1px, transparent 1px);
  background-size: 38px 38px;
  -webkit-mask-image: radial-gradient(120% 100% at 12% 30%, #000, transparent 72%);
          mask-image: radial-gradient(120% 100% at 12% 30%, #000, transparent 72%);
}
.ct-hero__glow {
  z-index: -1;
  background:
    linear-gradient(90deg, rgba(0,0,0,.7) 0%, rgba(0,0,0,.4) 48%, rgba(0,0,0,.08) 100%),
    linear-gradient(180deg, rgba(0,0,0,.04), rgba(0,0,0,.24)),
    radial-gradient(60% 80% at 82% 30%, rgba(78,196,169,.08), transparent 60%);
}
.ct-hero__inner {
  position: relative;
  z-index: 1;
  width: 100%;
  padding-block: clamp(51px, 6vw, 90px);
}
.ct-hero__title {
  max-width: 22ch;
  margin: 0;
  font-family: var(--gm-font-display);
  font-weight: 300;
  font-size: clamp(2.6rem, 5.5vw, 4.6rem);
  line-height: var(--gm-lh-tight);
  letter-spacing: var(--gm-ls-display);
}
.ct-hero__lede {
  max-width: 60ch;
  margin: 28px 0 0;
  color: var(--gm-text-secondary);
  font-size: var(--gm-fs-lead);
  line-height: var(--gm-lh-relaxed);
}
.ct-body {
  padding-block: clamp(56px, 7vw, 104px);
  border-bottom: 1px solid var(--gm-border-subtle);
}
.ct-layout {
  display: grid;
  grid-template-columns: minmax(0, 1.25fr) minmax(280px, .75fr);
  gap: clamp(36px, 5vw, 84px);
  align-items: start;
}
.ct-form-panel,
.ct-details__card {
  border: 1px solid var(--gm-border);
  border-radius: var(--gm-radius-md);
  background: var(--gm-bg-surface);
}
.ct-form-panel {
  position: relative;
  isolation: isolate;
  overflow: hidden;
  padding: clamp(28px, 3vw, 48px);
}
.ct-form-panel::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: -1;
  pointer-events: none;
  opacity: .46;
  background-image:
    radial-gradient(ellipse at center, rgba(255,255,255,.2) 0 .8px, transparent 1.15px),
    radial-gradient(ellipse at center, rgba(255,255,255,.13) 0 .65px, transparent 1px),
    radial-gradient(ellipse at center, rgba(255,255,255,.09) 0 .9px, transparent 1.3px),
    repeating-linear-gradient(117deg, transparent 0 7px, rgba(255,255,255,.025) 7px 8px);
  background-size: 7px 6px, 11px 9px, 17px 14px, 23px 23px;
  background-position: 0 0, 4px 3px, 9px 7px, 0 0;
  mix-blend-mode: screen;
}
.ct-form {
  display: flex;
  flex-direction: column;
  gap: var(--gm-space-5);
}
.ct-form__head {
  display: grid;
  gap: var(--gm-space-3);
  margin-bottom: var(--gm-space-2);
}
.ct-form__head h2,
.ct-confirmation h2 {
  margin: 0;
  font-weight: 300;
  font-size: clamp(1.5rem, 2.2vw, 2rem);
}
.ct-row {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: var(--gm-space-5);
}
.ct-optional {
  margin-left: var(--gm-space-2);
  color: var(--gm-text-muted);
  font-family: var(--gm-font-mono);
  font-size: 10px;
  letter-spacing: .12em;
  text-transform: uppercase;
}
.ct-fieldset {
  min-width: 0;
  margin: 0;
  padding: 0;
  border: 0;
}
.ct-fieldset legend {
  margin-bottom: var(--gm-space-3);
}
.ct-segments {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: var(--gm-space-2);
}
.ct-segment {
  position: relative;
  cursor: pointer;
}
.ct-segment input {
  position: absolute;
  width: 1px;
  height: 1px;
  opacity: 0;
}
.ct-segment span {
  min-height: 48px;
  display: grid;
  place-items: center;
  padding: var(--gm-space-3);
  border: 1px solid var(--gm-border);
  border-radius: var(--gm-radius-sm);
  background: var(--gm-bg-raised);
  color: var(--gm-text-secondary);
  font-size: var(--gm-fs-body-sm);
  line-height: 1.2;
  text-align: center;
  transition:
    color var(--gm-dur-fast) var(--gm-ease),
    border-color var(--gm-dur-fast) var(--gm-ease),
    background-color var(--gm-dur-fast) var(--gm-ease);
}
.ct-segment:hover span {
  color: var(--gm-text);
  border-color: var(--gm-border-strong);
}
.ct-segment input:checked + span {
  color: var(--gm-text);
  border-color: var(--gm-teal-500);
  background: var(--gm-teal-900);
  box-shadow: inset 0 0 0 1px rgba(78,196,169,.25);
}
.ct-segment input:focus-visible + span {
  outline: 2px solid var(--gm-focus);
  outline-offset: 2px;
}
.ct-helper {
  margin: var(--gm-space-3) 0 0;
  color: var(--gm-text-muted);
  font-size: var(--gm-fs-caption);
  line-height: 1.6;
}
.ct-error {
  margin: calc(var(--gm-space-2) * -1) 0 0;
  color: var(--gm-danger);
  font-size: var(--gm-fs-body-sm);
}
.ct-trap,
.gm-newsletter__trap {
  position: absolute;
  width: 1px;
  height: 1px;
  overflow: hidden;
  opacity: 0;
  pointer-events: none;
}
.ct-submit {
  align-self: flex-start;
  margin-top: var(--gm-space-1);
}
.ct-submit[aria-busy="true"] {
  cursor: wait;
  opacity: .72;
}
.ct-confirmation {
  min-height: 520px;
  display: grid;
  place-items: center;
  align-content: center;
  gap: var(--gm-space-4);
  text-align: center;
}
.ct-confirmation[hidden] {
  display: none;
}
.ct-confirmation__mark {
  width: 56px;
  height: 56px;
  display: grid;
  place-items: center;
  border-radius: var(--gm-radius-full);
  color: var(--gm-black);
  background: var(--gm-teal-500);
}
.ct-confirmation__mark svg {
  width: 28px;
  height: 28px;
}
.ct-confirmation p:not(.gm-eyebrow) {
  max-width: 38ch;
  margin: 0;
  color: var(--gm-text-secondary);
}
.ct-details {
  display: flex;
  flex-direction: column;
  gap: var(--gm-space-5);
}
.ct-details__card {
  display: flex;
  flex-direction: column;
  gap: var(--gm-space-7);
  padding: clamp(24px, 2.4vw, 34px);
}
.ct-details__contacts {
  display: grid;
  gap: var(--gm-space-5);
}
.ct-details__contact-group {
  display: grid;
  gap: var(--gm-space-1);
}
.ct-details__key {
  margin: 0;
  color: var(--gm-text-muted);
  font-family: var(--gm-font-mono);
  font-size: 10.5px;
  letter-spacing: .16em;
  text-transform: uppercase;
}
.ct-details__email {
  display: block;
  width: fit-content;
  color: var(--gm-signal);
  font-family: var(--gm-font-display);
  font-weight: 300;
  font-size: clamp(1.15rem, 1.5vw, 1.4rem);
  text-decoration: none;
  border-bottom: 1px solid rgba(78,196,169,.3);
}
.ct-details__email:hover,
.ct-details__email:focus-visible {
  border-bottom-color: var(--gm-signal);
}
.ct-details address,
.ct-details__social {
  margin: 0;
  color: var(--gm-text-secondary);
  font-style: normal;
  line-height: 1.65;
}
.ct-details__social {
  display: flex;
  align-items: center;
  gap: var(--gm-space-4);
}
.ct-details__social a {
  width: 30px;
  height: 30px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  color: var(--gm-text-secondary);
  transition: opacity 140ms var(--gm-ease), transform 140ms var(--gm-ease);
}
.ct-details__social a:hover,
.ct-details__social a:focus-visible {
  opacity: 1;
  transform: translateY(-1px);
}
.ct-details__social img {
  width: 30px;
  height: 30px;
  object-fit: contain;
  opacity: .78;
}
.ct-details__social img.ct-details__social-x {
  width: 26px;
  height: 26px;
}
.ct-details__social img.ct-details__social-linkedin {
  width: 33px;
  height: 33px;
}
.ct-details__social-linkedin {
  filter: invert(1);
}
.ct-status {
  display: flex;
  align-items: center;
  gap: var(--gm-space-2);
  margin: 0;
  padding-left: var(--gm-space-1);
  color: var(--gm-text-muted);
  font-family: var(--gm-font-mono);
  font-size: 11.5px;
  line-height: 1.5;
}
.ct-status span {
  width: 6px;
  height: 6px;
  flex: none;
  border-radius: var(--gm-radius-full);
  background: var(--gm-teal-500);
  box-shadow: 0 0 8px var(--gm-teal-500);
}
@media (max-width: 900px) {
  .ct-main { min-height: calc(100vh - 96px); }
  .ct-hero {
    --gm-contact-nav-overlap: 96px;
    min-height: calc(420px + var(--gm-contact-nav-overlap));
  }
  .ct-hero__inner { padding-block: clamp(51px, 7.5vw, 72px); }
  .ct-layout {
    grid-template-columns: 1fr;
    gap: var(--gm-space-7);
  }
}
@media (max-width: 620px) {
  .ct-hero {
    --gm-contact-nav-overlap: 84px;
    min-height: calc(390px + var(--gm-contact-nav-overlap));
  }
  .ct-hero__video { object-position: 58% center; }
  .ct-hero__title { font-size: clamp(1.8rem, 9vw, 2.55rem); }
  .ct-row,
  .ct-segments {
    grid-template-columns: 1fr;
  }
  .ct-form-panel {
    padding-inline: var(--gm-space-5);
  }
}


/* --------------------------------------------------------------------------
   8 · RESPONSIVE COLLAPSE
   Grid templates are authored inline in index.html so each section reads as
   one self-contained block. This is the SINGLE place they are overridden,
   which is why the !important is deliberate rather than a smell. Tag any new
   inline grid with .mk-g and it collapses here for free.
   ----------------------------------------------------------------------- */
@media (max-width: 1000px) {
  .mk-g { grid-template-columns: 1fr !important; }
  .mk-g.mk-g--keep2 { grid-template-columns: 1fr 1fr !important; }
}
@media (max-width: 640px) {
  .mk-g.mk-g--keep2 { grid-template-columns: 1fr !important; }
  .mk-platform-heading h2 .mk-italic { white-space: normal; }
}

/* Very narrow phones (320px). Two long button labels — "Discuss a client
   engagement", "View available projects" — are wider than the column at this
   size, so let them wrap instead of pushing the page sideways. */
@media (max-width: 400px) {
  .gm-btn { white-space: normal; text-align: center; max-width: 100%; }
  .gm-btn--lg { font-size: 13px; padding-inline: 18px; }
}


/* --------------------------------------------------------------------------
   9 · MOBILE NAVIGATION SHEET
   Not in the approved comp — the mock-up's burger was inert because it was a
   static comparison piece. A shipping page needs it, so this is the one
   component added beyond the design. It borrows the brand's existing tokens
   and the display face at its documented weight, so nothing new is invented.
   ----------------------------------------------------------------------- */
.gm-navsheet {
  position: fixed; inset: 0; z-index: 300;
  background: var(--gm-basalt-900, #0A0A0A);
  padding: 20px clamp(16px, 4vw, 28px) 40px;
  overflow-y: auto;
}
.gm-navsheet[hidden] { display: none; }
.gm-navsheet__top {
  display: flex; align-items: center; justify-content: space-between;
  min-height: 44px;
  gap: 16px; margin-bottom: 28px;
}
.gm-navsheet__top img {
  position: fixed;
  top: 4.8px;
  left: var(--gm-gutter);
  width: auto;
  height: 106.5px;
  max-width: none;
  margin: 0;
  clip-path: inset(34px 32.5px 28.2px 0);
}
@media (max-width: 900px) {
  .gm-navsheet__top img {
    top: 6.1px;
    height: 89.1px;
    clip-path: inset(28.4px 27px 23.6px 0);
  }
}
@media (max-width: 620px) {
  .gm-navsheet__top img {
    top: 9px;
    left: 14px;
    height: 72px;
    clip-path: inset(23px 22.3px 19px 0);
  }
}
.gm-navsheet__close {
  width: 44px; height: 44px; flex: none;
  margin-left: auto;
  display: inline-flex; align-items: center; justify-content: center;
  background: none; border: 1px solid var(--gm-border); border-radius: var(--gm-btn-radius, 999px);
  color: var(--gm-basalt-200); cursor: pointer;
  transition: color 140ms var(--gm-ease), border-color 140ms var(--gm-ease);
}
.gm-navsheet__close:hover { color: #fff; border-color: var(--gm-line-strong); }
.gm-navsheet__close svg { width: 20px; height: 20px; }
.gm-navsheet nav { display: flex; flex-direction: column; }
.gm-navsheet nav a {
  display: flex; align-items: center; min-height: 64px;
  border-bottom: 1px solid var(--gm-border-subtle);
  font-family: var(--gm-font-display); font-weight: 300; font-size: 1.6rem;
  letter-spacing: -0.02em; color: #fff; text-decoration: none;
  transition: color 140ms var(--gm-ease);
}
.gm-navsheet nav a:hover { color: var(--gm-blue-300); }
.gm-navsheet nav .gm-navsheet__sub {
  min-height: 44px;
  padding-left: 24px;
  font-family: var(--gm-font-body);
  font-size: var(--gm-fs-body-sm);
  color: var(--gm-text-secondary);
}

/* Above the breakpoint the sheet can never be reachable, burger or not. */
@media (min-width: 1101px) { .gm-navsheet { display: none !important; } }

/* Major content-section headings share one exact editorial size sitewide.
   This intentionally follows component rules so local scales cannot override
   it. Hero titles, CTA headlines, card titles, forms and legal copy retain
   their distinct hierarchy. */
.lb-h2,
.pr-h2,
#projects .wm-h2,
.services-copy h2,
.logo-strip__title,
.gm-tslider__title,
#news h2,
.cs-section-head h2,
.co-b-section-head h2,
.co-team__head h2,
.nw-section-head h2,
.gm-page-anchor h2,
.gm-section-heading {
  font-size: var(--gm-section-heading-size);
}

/* --------------------------------------------------------------------------
    GLOBAL NEWSLETTER
   A landscape-led subscription panel: the field update reads as an invitation
   into the terrain rather than a utility form appended to the page.
   ----------------------------------------------------------------------- */
.gm-newsletter {
  position: relative;
  isolation: isolate;
  padding-block: clamp(48px, 6vw, 88px);
  overflow: hidden;
  border-block: 1px solid #8A8A8A;
  background-color: var(--gm-basalt-950);
}
.gm-newsletter::before,
.pj-process::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 0;
  pointer-events: none;
  opacity: .46;
  background-image:
    radial-gradient(ellipse at center, rgba(255,255,255,.2) 0 .8px, transparent 1.15px),
    radial-gradient(ellipse at center, rgba(255,255,255,.13) 0 .65px, transparent 1px),
    radial-gradient(ellipse at center, rgba(255,255,255,.09) 0 .9px, transparent 1.3px),
    repeating-linear-gradient(117deg, transparent 0 7px, rgba(255,255,255,.025) 7px 8px);
  background-size: 7px 6px, 11px 9px, 17px 14px, 23px 23px;
  background-position: 0 0, 4px 3px, 9px 7px, 0 0;
  mix-blend-mode: screen;
}
.gm-newsletter > .gm-container,
.pj-process > .gm-container {
  position: relative;
  z-index: 1;
}
.gm-newsletter__card {
  position: relative;
  isolation: isolate;
  min-height: clamp(460px, 46vw, 610px);
  display: flex;
  align-items: center;
  overflow: hidden;
  border: 1px solid #8A8A8A;
  border-radius: 6px;
  background: var(--gm-basalt-900);
}
.gm-newsletter__card::after {
  content: "";
  position: absolute;
  z-index: -1;
  inset: 0;
  background:
    linear-gradient(90deg, rgba(0,0,0,.93) 0%, rgba(0,0,0,.84) 35%, rgba(0,0,0,.42) 62%, rgba(0,0,0,.12) 100%),
    linear-gradient(180deg, rgba(0,0,0,.08), rgba(0,0,0,.46));
}
.gm-newsletter__media {
  position: absolute;
  z-index: -2;
  inset: 0;
}
.gm-newsletter__media img {
  width: 100%;
  height: 100%;
  display: block;
  object-fit: cover;
}
.gm-newsletter__content {
  width: min(100%, 820px);
  padding: clamp(38px, 6.5vw, 92px);
}
.gm-newsletter__content .gm-eyebrow {
  margin: 0 0 clamp(22px, 3vw, 38px);
  color: var(--gm-teal-400);
}
.gm-newsletter__content h2 {
  max-width: 11ch;
  margin: 0;
  font-size: clamp(46px, 5.2vw, 76px);
  font-weight: 300;
  line-height: .98;
  letter-spacing: -.045em;
}
.gm-newsletter__body {
  max-width: 46ch;
  margin: 24px 0 0;
  color: var(--gm-basalt-100);
  font-size: var(--gm-fs-body);
  line-height: 1.55;
}
.gm-newsletter__form {
  max-width: 625px;
  margin-top: clamp(32px, 4vw, 48px);
}
.gm-newsletter__form > .gm-label {
  display: block;
  margin-bottom: 10px;
}
.gm-newsletter__row {
  display: flex;
  gap: 25px;
  align-items: stretch;
}
.gm-newsletter__row .gm-input {
  min-width: 0;
  flex: 1 1 auto;
  border-color: rgba(255,255,255,.5);
  background: rgba(0,0,0,.48);
  backdrop-filter: blur(8px);
  -webkit-backdrop-filter: blur(8px);
}
.gm-newsletter__row .gm-input:focus {
  border-color: var(--gm-teal-400);
}
.gm-newsletter__row .gm-btn {
  flex: none;
}
.gm-newsletter__status {
  min-height: 20px;
  margin: 14px 0 0;
  color: var(--gm-basalt-200);
  font-size: var(--gm-fs-caption);
  line-height: 1.4;
}
.gm-newsletter__status.is-error {
  color: var(--gm-ember-300);
}
.gm-newsletter__status.is-success {
  color: var(--gm-teal-300);
}
.gm-newsletter__row .gm-btn[aria-busy="true"] {
  cursor: wait;
  opacity: .72;
}
.gm-newsletter__reassurances {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 10px 22px;
  margin: 19px 0 0;
  color: var(--gm-basalt-200);
}
.gm-newsletter__reassurance {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  white-space: nowrap;
}
.gm-newsletter__reassurance .gm-icon {
  flex: none;
  color: var(--gm-teal-400);
}
@media (max-width: 700px) {
  .gm-newsletter {
    padding-block: 24px;
  }
  .gm-newsletter__card {
    min-height: 610px;
    align-items: center;
  }
  .gm-newsletter__card::after {
    background:
      linear-gradient(180deg, rgba(0,0,0,.08) 0%, rgba(0,0,0,.54) 40%, rgba(0,0,0,.95) 72%, rgba(0,0,0,.98) 100%),
      linear-gradient(90deg, rgba(0,0,0,.36), transparent);
  }
  .gm-newsletter__media img {
    object-position: 62% center;
  }
  .gm-newsletter__content {
    padding: 32px 24px;
  }
  .gm-newsletter__content h2 {
    font-size: clamp(42px, 13vw, 58px);
  }
  .gm-newsletter__body {
    font-size: var(--gm-fs-body-sm);
  }
  .gm-newsletter__row {
    flex-direction: column;
    gap: 20px;
  }
  .gm-newsletter__row .gm-btn {
    width: 100%;
  }
}

/* --------------------------------------------------------------------------
   PROJECTS PAGE
   Video-led prospect portfolio adapted from the supplied Projects concept.
   The global shell, navigation and footer remain shared site components.
   ----------------------------------------------------------------------- */
.pj-shell {
  max-width: 1440px;
  margin-inline: auto;
  border-inline: 1px solid #8A8A8A;
}
.pj-shell .gm-container--wide { max-width: none; }
.pj-shell > .gm-footer { border-top: 0; }
.pj-page :is(#prospect-generation, #available-projects) { scroll-margin-top: 112px; }
.pj-hero {
  --gm-company-nav-overlap: 112px;
  position: relative;
  isolation: isolate;
  min-height: calc(clamp(500px, 68vh, 680px) + var(--gm-company-nav-overlap));
  display: flex;
  align-items: flex-end;
  margin-top: calc(-1 * var(--gm-company-nav-overlap));
  padding-top: var(--gm-company-nav-overlap);
  overflow: hidden;
  border-bottom: 1px solid #8A8A8A;
  background: #030506 url("/assets/video/projects-world-grid-poster.webp") center / cover no-repeat;
}
.pj-hero__video {
  position: absolute;
  inset: 0;
  z-index: -3;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center 40%;
  filter: saturate(.9) brightness(.82) contrast(1.05);
}
.pj-hero__scrim {
  position: absolute;
  inset: 0;
  z-index: -2;
  background:
    linear-gradient(90deg, rgba(0,0,0,.82) 0%, rgba(0,0,0,.62) 42%, rgba(0,0,0,.18) 78%, rgba(0,0,0,.28) 100%),
    linear-gradient(180deg, rgba(0,0,0,.1), rgba(0,0,0,.38));
}
.pj-hero__grid {
  position: absolute;
  inset: 0;
  z-index: -1;
  opacity: .3;
  background-image:
    linear-gradient(rgba(255,255,255,.04) 1px, transparent 1px),
    linear-gradient(90deg, rgba(255,255,255,.04) 1px, transparent 1px);
  background-size: 44px 44px;
  mask-image: linear-gradient(90deg, #000, transparent 80%);
}
.pj-hero__inner { width: 100%; padding-block: clamp(54px, 7vw, 94px); }
.pj-hero__copy { max-width: 940px; }
.pj-hero__title {
  max-width: 18ch;
  margin: 0;
  font-size: var(--gm-hero-heading-size);
  font-weight: 300;
  line-height: 1.02;
  letter-spacing: var(--gm-ls-heading);
}
.pj-hero__title > .mk-dim {
  color: #8a8a8a;
}
.pj-hero__lead { max-width: 59ch; margin: 24px 0 0; color: var(--gm-basalt-200); }
.pj-hero__cta { width: fit-content; margin-top: 30px; text-decoration: none; }
.pj-hero__cta svg { width: 16px; fill: none; stroke: currentColor; stroke-width: 1.8; }
.pj-process,
.pj-available { padding-block: clamp(64px, 7.5vw, 112px); border-bottom: 1px solid #8A8A8A; }
.pj-process {
  position: relative;
  isolation: isolate;
  overflow: hidden;
  background: #050505;
}
.pj-available {
  position: relative;
  background:
    linear-gradient(rgba(255,255,255,.018) 1px, transparent 1px),
    linear-gradient(90deg, rgba(255,255,255,.018) 1px, transparent 1px),
    #000;
  background-size: 38px 38px;
}
.pj-section-head {
  display: grid;
  grid-template-columns: 1.05fr .95fr;
  gap: clamp(28px, 6vw, 92px);
  align-items: end;
  padding-bottom: clamp(30px, 4vw, 48px);
  border-bottom: 1px solid #8A8A8A;
}
.pj-section-head h2 { margin: 0; font-size: var(--gm-section-heading-size); font-weight: 300; }
.pj-section-head .gm-secondary { margin: 0 0 4px; }
.pj-process .pj-section-head {
  grid-template-columns: minmax(320px, .85fr) minmax(0, 1.15fr);
  gap: clamp(32px, 5vw, 72px);
}
.pj-process .pj-section-head > .gm-secondary { padding-left: 68px; }
.pj-available .pj-section-head {
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 22px;
}
.pj-process__layout {
  display: grid;
  grid-template-columns: minmax(320px, .85fr) minmax(0, 1.15fr);
  gap: clamp(32px, 5vw, 72px);
  margin-top: clamp(40px, 5vw, 68px);
}
.pj-process__figure {
  position: relative;
  min-height: 620px;
  margin: 0;
  overflow: hidden;
  border: 1px solid #8A8A8A;
  background: var(--gm-basalt-900);
}
.pj-process__figure picture,
.pj-process__figure img { width: 100%; height: 100%; display: block; }
.pj-process__figure img { position: absolute; inset: 0; object-fit: cover; filter: saturate(.72) contrast(1.02); }
.pj-process__figure::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, transparent 44%, rgba(0,0,0,.9)); }
.pj-process__figure figcaption {
  position: absolute;
  z-index: 1;
  left: 24px;
  right: 24px;
  bottom: 22px;
  display: flex;
  align-items: center;
  gap: 12px;
  color: var(--gm-basalt-200);
  font-family: var(--gm-font-mono);
  font-size: 11px;
  letter-spacing: .06em;
  text-transform: uppercase;
}
.pj-process__figure figcaption img { position: static; width: 22px; height: 22px; filter: none; }
.pj-steps { margin: 0; padding: 0; list-style: none; }
.pj-step { display: grid; grid-template-columns: 48px 1fr; gap: 20px; padding: 23px 0; border-top: 1px solid var(--gm-border-subtle); }
.pj-step:first-child { padding-top: 0; border-top: 0; }
.pj-step__number {
  width: 44px;
  height: 44px;
  display: grid;
  place-items: center;
  border: 1px solid rgba(78,196,169,.42);
  color: var(--gm-teal-500);
  font-family: var(--gm-font-mono);
  font-size: 11px;
}
.pj-step h3 { margin: 0; font-size: 1.32rem; font-weight: 300; }
.pj-step p { max-width: 58ch; margin: 8px 0 0; color: var(--gm-basalt-300); line-height: 1.58; }
.pj-retained {
  display: grid;
  grid-template-columns: 1.08fr .92fr;
  gap: clamp(30px, 6vw, 84px);
  align-items: center;
  margin-top: clamp(44px, 6vw, 76px);
  padding: clamp(28px, 4vw, 52px);
  border: 1px solid #8A8A8A;
  background: radial-gradient(70% 140% at 100% 100%, rgba(78,196,169,.1), transparent 70%), #080808;
}
.pj-retained p:not(.gm-eyebrow) { margin: 0; color: var(--gm-basalt-200); line-height: 1.65; }
.pj-retained__cta {
  margin-top: 24px;
  box-shadow: inset 0 0 0 var(--gm-btn-outline-width) var(--gm-white);
}
.pj-retained blockquote { margin: 0 0 24px; font-family: var(--gm-font-display); font-size: clamp(1.3rem, 2vw, 1.75rem); font-style: italic; font-weight: 300; line-height: 1.34; }
.pj-filters {
  display: flex;
  flex-wrap: wrap;
  align-items: end;
  gap: 14px;
  margin: clamp(36px, 5vw, 56px) 0 28px;
  padding: 16px;
  border: 1.5px solid var(--gm-white);
  background: #1E1E1E;
}
.pj-filters label { display: flex; flex: 0 1 230px; flex-direction: column; gap: 7px; }
.pj-filters label > span { color: var(--gm-basalt-200); font-family: var(--gm-font-mono); font-size: 10px; letter-spacing: .14em; text-transform: uppercase; }
.pj-filters select {
  min-height: 44px;
  padding: 10px 38px 10px 13px;
  border: 1px solid var(--gm-border-strong);
  border-radius: 2px;
  appearance: none;
  color: var(--gm-white);
  background: #242424 url("/assets/icons/chevron-down.svg") calc(100% - 12px) center / 14px no-repeat;
  font: inherit;
  cursor: pointer;
}
.pj-filters select:focus-visible { outline: 2px solid var(--gm-teal-500); outline-offset: 3px; }
.pj-filters__clear {
  min-height: 44px;
  margin-left: auto;
  border: 0;
  color: var(--gm-blue-300);
  background: none;
  font-family: var(--gm-font-mono);
  cursor: pointer;
}
.pj-filters__clear:disabled { color: var(--gm-basalt-500); cursor: default; }
.pj-filters__count { padding: 12px 4px; color: var(--gm-basalt-200); font-family: var(--gm-font-mono); font-size: 12px; }
.pj-filters__count strong { color: var(--gm-white); font-weight: 500; }
/* Available projects list — ledger rows built to scale as the pipeline grows.
   Rows are whole-row links; the filter script toggles [hidden] on them. */
.pj-list { border: 1.5px solid var(--gm-white); background: #1E1E1E; }
.pj-list__head {
  display: grid;
  grid-template-columns: 2.1fr 1.25fr 1.5fr 1.2fr 1fr auto;
  gap: 24px;
  padding: 15px 22px;
  border-bottom: 1.5px solid var(--gm-white);
  background: #161616;
}
.pj-list__head span {
  color: var(--gm-basalt-200);
  font-family: var(--gm-font-mono);
  font-size: 10.5px;
  font-weight: 500;
  letter-spacing: .14em;
  text-transform: uppercase;
}
.pj-row {
  position: relative;
  display: grid;
  grid-template-columns: 2.1fr 1.25fr 1.5fr 1.2fr 1fr auto;
  gap: 24px;
  align-items: center;
  padding: 26px 22px;
  border-bottom: 1px solid var(--gm-line-hairline);
  color: inherit;
  text-decoration: none;
  transition: background 160ms var(--gm-ease);
}
.pj-row:nth-of-type(odd) { background: #242424; }
.pj-row:nth-of-type(even) { background: #313131; }
.pj-row:last-of-type { border-bottom: 0; }
.pj-row::before {
  content: "";
  position: absolute;
  top: 0; bottom: 0; left: 0;
  width: 2px;
  background: var(--pc, var(--gm-teal-500));
  opacity: 0;
  transition: opacity 160ms var(--gm-ease);
}
.pj-row:hover { background: #3E3E3E; }
.pj-row:hover::before { opacity: 1; }
.pj-row:focus-visible { outline: 2px solid var(--gm-blue-400); outline-offset: -2px; }
.pj-row[hidden] { display: none; }
.pj-row__name {
  color: var(--gm-white);
  font-family: var(--gm-font-display);
  font-size: 1.38rem;
  font-weight: 400;
  letter-spacing: -.01em;
  line-height: 1.15;
  transition: color 160ms var(--gm-ease);
}
.pj-row:hover .pj-row__name { color: var(--pc, var(--gm-teal-500)); }
.pj-row__name small {
  display: block;
  margin-top: 5px;
  color: var(--gm-basalt-200);
  font-family: var(--gm-font-mono);
  font-size: 10.5px;
  letter-spacing: .05em;
  text-transform: uppercase;
}
.pj-cell { color: var(--gm-basalt-100); font-size: .95rem; line-height: 1.45; }
.pj-cell__k {
  display: none;
  color: var(--gm-basalt-200);
  font-family: var(--gm-font-mono);
  font-size: 10px;
  letter-spacing: .12em;
  text-transform: uppercase;
}
.pj-cell__tbc { color: var(--gm-basalt-200); font-style: italic; }
.pj-cmd {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  color: var(--pc, var(--gm-teal-500));
  font-family: var(--gm-font-mono);
  font-size: 12.5px;
  font-weight: 500;
  letter-spacing: .04em;
}
.pj-cmd__dot { width: 8px; height: 8px; border-radius: 2px; background: var(--pc, var(--gm-teal-500)); }
.pj-status {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  padding: 5px 12px;
  border: 1px solid rgba(78,196,169,.55);
  border-radius: 999px;
  background: rgba(78,196,169,.12);
  color: var(--gm-teal-300);
  font-family: var(--gm-font-mono);
  font-size: 10.5px;
  font-weight: 500;
  letter-spacing: .08em;
  text-transform: uppercase;
}
.pj-status i { width: 6px; height: 6px; border-radius: 50%; background: currentColor; box-shadow: 0 0 8px currentColor; }
.pj-row__go {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 34px;
  height: 34px;
  border: 1px solid var(--gm-border-strong);
  border-radius: 50%;
  color: var(--gm-basalt-100);
  transition: transform 180ms var(--gm-ease), color 180ms var(--gm-ease), border-color 180ms var(--gm-ease);
}
.pj-row:hover .pj-row__go {
  color: var(--pc, var(--gm-teal-500));
  border-color: var(--pc, var(--gm-teal-500));
  transform: translateX(3px);
}
@media (max-width: 900px) {
  .pj-list__head { display: none; }
  .pj-row { grid-template-columns: 1fr auto; gap: 14px 18px; padding: 22px 10px 22px 20px; }
  .pj-row__name { grid-column: 1; grid-row: 1; }
  .pj-row__go { grid-column: 2; grid-row: 1; align-self: center; }
  .pj-cell { grid-column: 1 / -1; display: flex; align-items: baseline; gap: 12px; }
  .pj-cell__k { display: inline; flex: 0 0 108px; }
}
.pj-empty { padding: clamp(42px, 6vw, 72px); border: 1px dashed #8A8A8A; text-align: center; }
.pj-empty p { margin: 0 0 14px; }
.pj-empty button { border: 0; color: var(--gm-blue-300); background: none; font: inherit; cursor: pointer; text-decoration: underline; }
.pj-request { display: flex; align-items: center; justify-content: space-between; gap: 28px; margin-top: clamp(40px, 5vw, 64px); padding: clamp(28px, 4vw, 48px); border: 1px solid #8A8A8A; background: #080808; }
.pj-request p:not(.gm-eyebrow) { max-width: 64ch; margin: 0; color: var(--gm-basalt-200); line-height: 1.6; }
.pj-request .gm-btn { flex: none; }
@media (max-width: 900px) {
  .pj-hero { --gm-company-nav-overlap: 96px; }
  .pj-process__layout,
  .pj-section-head,
  .pj-retained { grid-template-columns: 1fr; }
  .pj-process .pj-section-head { grid-template-columns: 1fr; }
  .pj-available .pj-section-head { grid-template-columns: 1fr; }
  .pj-process .pj-section-head > .gm-secondary { padding-left: 0; }
  .pj-process__figure { min-height: 440px; }
}
@media (max-width: 720px) {
  .pj-request { align-items: flex-start; flex-direction: column; }
}
@media (max-width: 620px) {
  .pj-hero { --gm-company-nav-overlap: 84px; min-height: calc(520px + var(--gm-company-nav-overlap)); }
  .pj-hero__title { font-size: clamp(2.4rem, 12vw, 3.45rem); }
  .pj-hero__scrim { background: linear-gradient(180deg, rgba(0,0,0,.42), rgba(0,0,0,.78)); }
  .pj-process__figure { min-height: 340px; }
  .pj-step { grid-template-columns: 40px 1fr; gap: 14px; }
  .pj-step__number { width: 38px; height: 38px; }
  .pj-filters label { flex-basis: 100%; }
  .pj-filters__clear { margin-left: 0; }
  .pj-filters__count { margin-left: auto; }
}
@media (prefers-reduced-motion: reduce) {
  .pj-hero__video { display: none; }
  .pj-card,
  .pj-card__media img { transition: none; }
}

/* ==========================================================================
   PROJECT DETAIL DOSSIER
   A common static template generated from project-data.mjs. The evidence
   ledger is the signature device: every project claim carries its provenance.
   ========================================================================== */
.pd-shell {
  position: relative;
  max-width: 1440px;
  margin-inline: auto;
  border-inline: 1px solid #8A8A8A;
  background: var(--gm-black);
}
.pd-shell .gm-container--wide { max-width: none; }
.pd-shell > .gm-nav {
  position: fixed;
  top: 0;
  left: 50%;
  width: min(100%, 1440px);
  transform: translateX(-50%);
}
.pd-page { min-height: 100vh; }
.pd-hero {
  --pd-nav: 112px;
  position: relative;
  isolation: isolate;
  min-height: calc(530px + var(--pd-nav));
  display: flex;
  align-items: flex-end;
  overflow: hidden;
  padding-top: var(--pd-nav);
  border-bottom: 1px solid #8A8A8A;
  background: #050505;
}
/* Project heroes share the legal pages' header treatment: the geology photo
   with a slow zoom plus the teal/blue glow. */
.pd-hero__bg {
  position: absolute;
  z-index: -2;
  inset: 0;
  transform-origin: center;
  animation: lp-hero-zoom 14s ease-in-out infinite;
  background:
    linear-gradient(90deg, rgba(0,0,0,.86) 0%, rgba(0,0,0,.58) 42%, rgba(0,0,0,.18) 72%, rgba(0,0,0,.34) 100%),
    linear-gradient(180deg, rgba(0,0,0,.34) 0%, rgba(0,0,0,.08) 48%, rgba(0,0,0,.48) 100%),
    url("../assets/img/legal-hero-geology.jpg") center / cover no-repeat;
}
@media (prefers-reduced-motion: reduce) {
  .pd-hero__bg { animation: none; transform: none; }
}
.pd-hero__glow {
  position: absolute;
  z-index: -1;
  inset: 0;
  background:
    radial-gradient(60% 80% at 82% 30%, rgba(78,196,169,.10), transparent 60%),
    radial-gradient(50% 70% at 10% 90%, rgba(54,156,212,.08), transparent 60%);
  pointer-events: none;
}
.pd-hero__inner {
  width: 100%;
  padding-block: 42px clamp(58px, 7vw, 96px);
}
.pd-breadcrumb {
  display: flex;
  align-items: center;
  gap: 10px;
  margin-bottom: clamp(70px, 11vh, 130px);
  color: var(--gm-basalt-300);
  font-family: var(--gm-font-mono);
  font-size: 11px;
  letter-spacing: .08em;
  text-transform: uppercase;
}
.pd-breadcrumb a { color: var(--gm-basalt-100); text-decoration: none; }
.pd-breadcrumb a:hover { color: var(--gm-teal-400); }
.pd-hero__layout {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(250px, 340px);
  gap: clamp(40px, 8vw, 120px);
  align-items: end;
}
.pd-hero__aside {
  display: grid;
  gap: 16px;
  align-self: end;
}
.pd-hero__teaser {
  width: 100%;
  border: 1.5px solid var(--gm-white);
  justify-content: center;
}
.pd-hero--with-teaser .pd-hero__layout {
  grid-template-areas:
    "tags ."
    "title teaser"
    "summary location";
  align-items: start;
  row-gap: 0;
}
.pd-hero--with-teaser .pd-hero__copy,
.pd-hero--with-teaser .pd-hero__aside {
  display: contents;
}
.pd-hero--with-teaser .pd-hero__tags {
  grid-area: tags;
}
.pd-hero--with-teaser h1 {
  grid-area: title;
}
.pd-hero--with-teaser .pd-hero__copy > p {
  grid-area: summary;
}
.pd-hero--with-teaser .pd-hero__teaser {
  grid-area: teaser;
  align-self: end;
  transform: translateY(-10px);
}
.pd-hero--with-teaser .pd-hero__location {
  grid-area: location;
  align-self: start;
  margin-top: 28px;
}
.pd-hero__copy { max-width: 900px; }
.pd-hero__tags {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 9px;
  margin-bottom: 20px;
}
.pd-hero__tags > span {
  padding: 7px 11px;
  border: 1px solid var(--gm-border-strong);
  border-radius: 999px;
  background: rgba(0,0,0,.55);
  color: var(--gm-basalt-100);
  font-family: var(--gm-font-mono);
  font-size: 10px;
  letter-spacing: .11em;
  text-transform: uppercase;
}
.pd-hero__tags .pd-status {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  border-color: rgba(78,196,169,.55);
  color: var(--gm-teal-400);
}
.pd-status i { width: 6px; height: 6px; border-radius: 50%; background: currentColor; box-shadow: 0 0 9px currentColor; }
.pd-hero h1 {
  max-width: 13ch;
  margin: 0;
  font-size: clamp(3.4rem, 8vw, 7rem);
  font-weight: 300;
  line-height: .92;
  letter-spacing: -.045em;
}
.pd-hero__copy > p {
  max-width: 64ch;
  margin: 28px 0 0;
  color: var(--gm-basalt-100);
  font-family: var(--gm-font-display);
  font-size: clamp(1.08rem, 1.5vw, 1.35rem);
  line-height: 1.48;
}
.pd-hero__location {
  margin: 0;
  border-top: 1.5px solid var(--gm-white);
}
.pd-hero__location div {
  display: grid;
  grid-template-columns: 88px 1fr;
  gap: 18px;
  padding: 15px 0;
  border-bottom: 1.5px solid var(--gm-white);
}
.pd-hero__location dt,
.pd-hero__location dd { margin: 0; }
.pd-hero__location dt { color: var(--gm-basalt-300); font-family: var(--gm-font-mono); font-size: 10px; letter-spacing: .1em; text-transform: uppercase; }
.pd-hero__location dd { color: var(--gm-basalt-050); font-size: 14px; line-height: 1.45; }
.pd-jump {
  position: sticky;
  z-index: 8;
  top: 112px;
  border-bottom: 1px solid #8A8A8A;
  background: rgba(0,0,0,.9);
  backdrop-filter: blur(12px);
}
.pd-jump .gm-container {
  min-height: 52px;
  display: flex;
  align-items: center;
  gap: clamp(18px, 3vw, 42px);
  overflow-x: auto;
  scrollbar-width: none;
}
.pd-jump span,
.pd-jump a {
  flex: none;
  font-family: var(--gm-font-mono);
  font-size: 10px;
  letter-spacing: .1em;
  text-transform: uppercase;
}
.pd-jump span { margin-right: auto; color: var(--gm-teal-400); }
.pd-jump a { color: var(--gm-basalt-200); text-decoration: none; }
.pd-jump a:hover { color: var(--gm-white); }
.pd-layout {
  display: grid;
  grid-template-columns: minmax(250px, 330px) minmax(0, 1fr);
  gap: clamp(44px, 7vw, 108px);
  padding-block: clamp(72px, 9vw, 132px);
}
.pd-rail { min-width: 0; }
.pd-rail__sticky { position: sticky; top: 196px; }
.pd-rail dl { margin: 0 0 28px; border-top: 1px solid #8A8A8A; }
.pd-fact {
  display: grid;
  grid-template-columns: 42% 1fr;
  gap: 14px;
  padding: 12px 0;
  border-bottom: 1px solid var(--gm-border-subtle);
}
.pd-fact dt,
.pd-fact dd { margin: 0; line-height: 1.4; }
.pd-fact dt { color: var(--gm-basalt-300); font-family: var(--gm-font-mono); font-size: 10px; letter-spacing: .08em; text-transform: uppercase; }
.pd-fact dd { color: var(--gm-basalt-100); font-size: 13px; }
.pd-fact--pending dd { color: var(--gm-gold-400); }
.pd-rail__cta { width: 100%; white-space: normal; text-align: center; line-height: 1.25; }
.pd-text-link {
  display: block;
  width: fit-content;
  margin: 17px auto 0;
  color: var(--gm-blue-300);
  font-family: var(--gm-font-mono);
  font-size: 11px;
  text-decoration: none;
}
.pd-content { min-width: 0; }
.pd-intro {
  padding-bottom: clamp(68px, 9vw, 120px);
}
.pd-intro p {
  max-width: 41ch;
  margin: 0;
  font-family: var(--gm-font-display);
  font-size: clamp(1.75rem, 3.4vw, 3rem);
  font-weight: 300;
  line-height: 1.14;
  letter-spacing: -.025em;
}
.pd-intro p + p { margin-top: 26px; color: var(--gm-basalt-300); font-size: clamp(1.25rem, 2vw, 1.7rem); }
.pd-section {
  padding-block: clamp(64px, 8vw, 110px);
  border-top: 1px solid #8A8A8A;
  scroll-margin-top: 176px;
}
.pd-section__head {
  display: grid;
  grid-template-columns: 64px 1fr;
  gap: 20px;
  align-items: start;
  margin-bottom: clamp(40px, 6vw, 72px);
}
.pd-section__head > span {
  color: var(--gm-teal-400);
  font-family: var(--gm-font-mono);
  font-size: 12px;
  letter-spacing: .08em;
}
.pd-section__head .gm-eyebrow { margin-bottom: 10px; color: var(--gm-basalt-400); }
.pd-section__head h2 { margin: 0; font-size: clamp(2.3rem, 4vw, 3.7rem); font-weight: 300; }
.pd-evidence-list { margin: 0; padding: 0; list-style: none; border-top: 1px solid var(--gm-border); }
.pd-evidence {
  display: grid;
  grid-template-columns: 64px 1fr;
  gap: 20px;
  padding: 24px 0;
  border-bottom: 1px solid var(--gm-border-subtle);
}
.pd-evidence > span { color: var(--gm-basalt-500); font-family: var(--gm-font-mono); font-size: 11px; }
.pd-evidence p { max-width: 55ch; margin: 0; color: var(--gm-basalt-050); font-size: clamp(1.05rem, 1.6vw, 1.3rem); line-height: 1.5; }
.pd-evidence small,
.pd-work small { display: block; margin-top: 10px; color: var(--gm-teal-500); font-family: var(--gm-font-mono); font-size: 10px; letter-spacing: .05em; text-transform: uppercase; }
.pd-work { margin: 0; padding: 0; list-style: none; }
.pd-work__item {
  display: grid;
  grid-template-columns: minmax(90px, 130px) 1fr;
  gap: clamp(22px, 5vw, 64px);
  padding: 28px 0;
  border-top: 1px solid var(--gm-border-subtle);
}
.pd-work__item time { color: var(--gm-gold-400); font-family: var(--gm-font-mono); font-size: 11px; letter-spacing: .06em; text-transform: uppercase; }
.pd-work__item h3 { margin: 0 0 9px; font-size: 1.2rem; font-weight: 500; }
.pd-work__item p { margin: 0; color: var(--gm-basalt-300); }
.pd-program {
  display: grid;
  grid-template-columns: 64px 1fr;
  gap: 20px;
  padding: clamp(28px, 4vw, 48px);
  border: 1px solid var(--gm-teal-700);
  background: linear-gradient(130deg, rgba(18,53,45,.45), #050505 70%);
}
.pd-program > span { color: var(--gm-teal-400); font-size: 2rem; }
.pd-program p { max-width: 52ch; margin: 0; font-family: var(--gm-font-display); font-size: clamp(1.25rem, 2.2vw, 1.7rem); line-height: 1.5; }
.pd-table-wrap { overflow-x: auto; }
.pd-table-wrap table { width: 100%; border-collapse: collapse; text-align: left; }
.pd-table-wrap caption { padding-bottom: 18px; color: var(--gm-basalt-300); font-family: var(--gm-font-mono); font-size: 11px; text-align: left; }
.pd-table-wrap th,
.pd-table-wrap td { padding: 14px 16px; border: 1px solid var(--gm-border); }
.pd-table-wrap thead th { color: var(--gm-teal-400); background: var(--gm-basalt-900); font-family: var(--gm-font-mono); font-size: 10px; letter-spacing: .1em; text-transform: uppercase; }
.pd-table-wrap tbody th { color: var(--gm-basalt-100); font-weight: 500; }
.pd-table-wrap tbody td { color: var(--gm-basalt-200); font-variant-numeric: tabular-nums; }
.pd-data-pending {
  padding: clamp(30px, 5vw, 56px);
  border: 1px dashed var(--gm-basalt-500);
  background: var(--gm-basalt-950);
}
.pd-data-pending > span { color: var(--gm-gold-400); font-family: var(--gm-font-mono); font-size: 10px; letter-spacing: .12em; text-transform: uppercase; }
.pd-data-pending h3 { margin: 18px 0 10px; font-weight: 400; }
.pd-data-pending p { margin: 0; color: var(--gm-basalt-300); }
.pd-disclosure {
  margin-top: 28px;
  padding: 24px;
  border-left: 2px solid var(--gm-gold-500);
  background: var(--gm-basalt-950);
}
.pd-disclosure strong { font-family: var(--gm-font-mono); font-size: 11px; letter-spacing: .1em; text-transform: uppercase; }
.pd-disclosure p { margin: 12px 0; color: var(--gm-basalt-300); font-size: 13px; line-height: 1.65; }
.pd-disclosure a { color: var(--gm-blue-300); font-size: 13px; text-decoration: none; }
.pd-gallery { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 18px; }
.pd-gallery__item { position: relative; min-height: 270px; margin: 0; overflow: hidden; border: 1px solid var(--gm-border); background: #070707; }
.pd-gallery__item:first-child { grid-column: 1 / -1; min-height: 390px; }
.pd-gallery__item--image img { width: 100%; height: 100%; object-fit: cover; filter: grayscale(.35) saturate(.65) brightness(.7); }
.pd-gallery__item figcaption,
.pd-gallery__item--pending > div {
  position: absolute;
  inset: auto 0 0;
  display: flex;
  justify-content: space-between;
  gap: 16px;
  padding: 18px;
  background: linear-gradient(transparent, rgba(0,0,0,.95));
}
.pd-gallery__item strong { font-size: 14px; }
.pd-gallery__item span { color: var(--gm-basalt-300); font-family: var(--gm-font-mono); font-size: 9px; letter-spacing: .07em; text-transform: uppercase; }
.pd-gallery__item--pending { background-image: linear-gradient(var(--gm-line-hairline) 1px, transparent 1px), linear-gradient(90deg, var(--gm-line-hairline) 1px, transparent 1px); background-size: 38px 38px; }
.pd-gallery__cross::before,
.pd-gallery__cross::after { content: ""; position: absolute; top: 50%; left: 50%; width: 54px; height: 1px; background: var(--gm-basalt-500); }
.pd-gallery__cross::before { transform: translate(-50%,-50%) rotate(45deg); }
.pd-gallery__cross::after { transform: translate(-50%,-50%) rotate(-45deg); }
.pd-resources {
  display: grid;
  grid-template-columns: .75fr 1.25fr;
  gap: clamp(36px, 6vw, 82px);
  padding-block: clamp(64px, 8vw, 110px);
  border-top: 1px solid #8A8A8A;
}
.pd-resources h2 { max-width: 10ch; margin: 0; font-weight: 300; }
.pd-resource {
  display: grid;
  grid-template-columns: 1fr auto;
  align-items: center;
  gap: 5px 20px;
  padding: 20px 0;
  border-top: 1px solid var(--gm-border);
  color: var(--gm-white);
  text-decoration: none;
}
.pd-resource:last-child { border-bottom: 1px solid var(--gm-border); }
.pd-resource span { font-size: 1.05rem; }
.pd-resource small { color: var(--gm-basalt-400); font-family: var(--gm-font-mono); font-size: 10px; }
.pd-resource svg { grid-column: 2; grid-row: 1 / 3; width: 20px; fill: none; stroke: var(--gm-teal-400); stroke-width: 1.7; transition: transform 180ms var(--gm-ease); }
.pd-resource:hover svg { transform: translateX(4px); }
.pd-enquire {
  position: relative;
  isolation: isolate;
  overflow: hidden;
  padding-block: clamp(88px, 12vw, 168px);
  border-top: 1px solid #8A8A8A;
  background: radial-gradient(ellipse at 80% 120%, rgba(54,156,212,.22), transparent 54%), #050505;
}
.pd-enquire::after { content: ""; position: absolute; z-index: -1; top: -20%; right: 8%; width: 460px; aspect-ratio: 1; border: 1px solid rgba(78,196,169,.18); border-radius: 50%; box-shadow: 0 0 0 60px rgba(78,196,169,.04), 0 0 0 120px rgba(54,156,212,.025); }
.pd-enquire h2 { max-width: 15ch; margin: 0; font-size: clamp(3rem, 7vw, 6rem); font-weight: 300; line-height: .98; }
.pd-enquire h2 em { color: var(--gm-teal-400); font-weight: 300; }
.pd-enquire p { margin: 24px 0 30px; color: var(--gm-basalt-200); font-size: 1.1rem; }
.pd-enquire .gm-btn svg { width: 17px; fill: none; stroke: currentColor; stroke-width: 1.8; }
.pd-project-nav { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); border-top: 1px solid #8A8A8A; border-bottom: 1px solid #8A8A8A; }
.pd-project-nav a { display: flex; min-height: 132px; flex-direction: column; justify-content: center; padding: 26px var(--gm-gutter); color: var(--gm-basalt-100); text-decoration: none; }
.pd-project-nav a + a { align-items: flex-end; border-left: 1px solid #8A8A8A; text-align: right; }
.pd-project-nav small { margin-bottom: 9px; color: #fff; font-family: var(--gm-font-mono); font-size: 10px; letter-spacing: .1em; text-transform: uppercase; }
.pd-project-nav span { font-family: var(--gm-font-display); font-size: clamp(1.1rem, 2vw, 1.5rem); }
.pd-project-nav a:hover span { color: var(--gm-teal-400); }
@media (max-width: 900px) {
  .pd-hero { --pd-nav: 96px; min-height: calc(470px + var(--pd-nav)); }
  .pd-jump { top: 96px; }
  .pd-hero__layout { grid-template-columns: 1fr; }
  .pd-hero--with-teaser .pd-hero__layout {
    grid-template-areas:
      "tags"
      "title"
      "summary"
      "teaser"
      "location";
  }
  .pd-hero--with-teaser .pd-hero__teaser {
    margin-top: 24px;
    align-self: start;
    transform: none;
  }
  .pd-hero__location { max-width: 520px; }
  .pd-layout { grid-template-columns: 1fr; }
  .pd-rail__sticky { position: static; }
  .pd-rail { padding-bottom: 64px; border-bottom: 1px solid #8A8A8A; }
  .pd-rail dl { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .pd-fact { display: block; padding: 14px; border: 1px solid var(--gm-border-subtle); }
  .pd-fact dd { margin-top: 7px; }
}
@media (max-width: 620px) {
  .pd-hero { --pd-nav: 84px; min-height: calc(440px + var(--pd-nav)); }
  .pd-hero__bg { background:
    linear-gradient(180deg, rgba(0,0,0,.55), rgba(0,0,0,.92)),
    url("../assets/img/legal-hero-geology.jpg") center / cover no-repeat;
  }
  .pd-breadcrumb { margin-bottom: 70px; }
  .pd-hero h1 { font-size: clamp(3rem, 15vw, 4.6rem); }
  .pd-hero--compact-title h1 { font-size: clamp(2.65rem, 13vw, 4.1rem); }
  .pd-jump { top: 84px; }
  .pd-jump span { display: none; }
  .pd-jump .gm-container { gap: 24px; }
  .pd-rail dl { grid-template-columns: 1fr; }
  .pd-section__head,
  .pd-evidence { grid-template-columns: 40px 1fr; gap: 12px; }
  .pd-work__item { grid-template-columns: 1fr; gap: 10px; }
  .pd-program { grid-template-columns: 1fr; }
  .pd-program > span { display: none; }
  .pd-gallery { grid-template-columns: 1fr; }
  .pd-gallery__item:first-child { grid-column: auto; min-height: 300px; }
  .pd-gallery__item { min-height: 250px; }
  .pd-gallery__item figcaption,
  .pd-gallery__item--pending > div { flex-direction: column; }
  .pd-resources { grid-template-columns: 1fr; }
  .pd-project-nav { grid-template-columns: 1fr; }
  .pd-project-nav a + a { align-items: flex-start; border-top: 1px solid #8A8A8A; border-left: 0; text-align: left; }
}
@media (prefers-reduced-motion: reduce) {
  .pd-resource svg { transition: none; }
}

/* Page-level hero headings share one exact desktop size. Smaller viewports
   retain their component-specific responsive scales to avoid clipping long
   titles such as Company, News and Terms and Conditions. */
@media (min-width: 901px) {
  .gm-home-hero h1,
  .cs-hero__title,
  .co-b-hero__title,
  .nw-hero__title,
  .ct-hero__title,
  .gm-page-hero h1,
  .lp-title {
    font-size: var(--gm-hero-heading-size);
  }
}

/* ---- Team bio expansion — row drawer --------------------------------------
   Each group grid owns a single full-width drawer. A card's "Read bio" toggle
   opens it; the drawer moves to the end of the selected card's row. Cards keep
   their existing portraits and design — only the bio presentation changes. */
/* Small outline pill, matching the design system's .gm-btn--outline at the
   --sm size: transparent face, 1.5px inset white ring, lime hover with halo. */
.co-member__toggle {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  align-self: flex-start;
  margin-top: auto;
  /* Nudged 10px below the flex-end position at the team's request. */
  transform: translateY(10px);
  padding: 9px 16px;
  border: 0;
  border-radius: var(--gm-btn-radius);
  background: transparent;
  color: var(--gm-white);
  /* Solid white ring at rest (per team request); the lime halo takes over on hover. */
  box-shadow: inset 0 0 0 var(--gm-btn-outline-width) var(--gm-white);
  font-family: var(--gm-font-body);
  font-size: var(--gm-fs-caption);
  line-height: 1;
  cursor: pointer;
  transition:
    background-color var(--gm-btn-dur) var(--gm-ease),
    color var(--gm-btn-dur) var(--gm-ease),
    box-shadow var(--gm-btn-dur) var(--gm-ease);
}
.co-member__toggle:hover {
  background: var(--gm-lime-500);
  color: var(--gm-lime-ink);
  box-shadow: 0 0 0 8px var(--gm-lime-halo);
}
.co-member__toggle:hover .co-member__toggle-icon {
  color: var(--gm-lime-ink);
}
.co-member__toggle:focus-visible {
  outline: 2px solid var(--gm-lime-500);
  outline-offset: 4px;
}
.co-member__toggle-icon {
  display: inline-flex;
  width: 14px;
  height: 14px;
  color: var(--gm-teal-500);
  transition:
    transform var(--gm-dur-base) var(--gm-ease),
    color var(--gm-btn-dur) var(--gm-ease);
}
.co-member[data-bio-open="true"] .co-member__toggle-icon {
  transform: rotate(45deg);
}

.co-member__drawer {
  grid-column: 1 / -1;
  overflow: hidden;
  border: 1px solid rgba(78,196,169,.34);
  background:
    radial-gradient(90% 140% at 0 0, rgba(78,196,169,.07), transparent 55%),
    var(--gm-basalt-900);
  opacity: 0;
  max-height: 0;
  transition:
    max-height var(--gm-dur-enter) var(--gm-ease),
    opacity var(--gm-dur-base) var(--gm-ease);
}
.co-member__drawer[hidden] { display: none; }
.co-member[hidden] { display: none !important; }
.co-member__drawer.is-open {
  opacity: 1;
  max-height: 900px;
}
.co-member__drawer-inner {
  position: relative;
  padding: clamp(26px, 3.4vw, 48px);
}
.co-member__drawer-eyebrow {
  margin-bottom: 10px;
}
.co-member__drawer-name {
  margin: 0 0 4px;
  font-weight: 300;
  font-size: clamp(1.5rem, 2.3vw, 2.05rem);
  letter-spacing: -.01em;
}
.co-member__drawer-title {
  margin: 0 0 18px;
  color: var(--gm-teal-500);
  font-family: var(--gm-font-mono);
  font-size: 11px;
  letter-spacing: .12em;
  text-transform: uppercase;
}
.co-member__drawer-bio {
  max-width: 74ch;
  color: var(--gm-basalt-200);
  line-height: 1.62;
}
.co-member__drawer-bio p { margin: 0; }
.co-member__drawer-close {
  position: absolute;
  top: clamp(18px, 2.2vw, 28px);
  right: clamp(18px, 2.2vw, 28px);
  display: grid;
  place-items: center;
  width: 36px;
  height: 36px;
  border: 1px solid var(--gm-border);
  border-radius: 50%;
  background: none;
  color: var(--gm-basalt-200);
  cursor: pointer;
  transition:
    color var(--gm-dur-micro) var(--gm-ease),
    border-color var(--gm-dur-micro) var(--gm-ease);
}
.co-member__drawer-close svg { width: 13px; height: 13px; }
.co-member__drawer-close svg path { stroke: currentColor; stroke-width: 1.4; stroke-linecap: round; }
.co-member__drawer-close:hover {
  color: var(--gm-teal-500);
  border-color: rgba(78,196,169,.5);
}
.co-member__drawer-close:focus-visible {
  outline: 2px solid var(--gm-teal-500);
  outline-offset: 3px;
}
@media (prefers-reduced-motion: reduce) {
  .co-member__drawer,
  .co-member__toggle,
  .co-member__toggle-icon { transition: none; }
}

/* ===== News release pages ===== */
.nr-shell {
  position: relative;
  width: min(100%, var(--gm-container-wide));
  min-height: 100vh;
  margin-inline: auto;
  display: flex;
  flex-direction: column;
}
.nr-shell::before,
.nr-shell::after {
  content: "";
  position: absolute;
  z-index: 101;
  top: 0;
  bottom: 40px;
  width: 1px;
  pointer-events: none;
  background: #8A8A8A;
}
.nr-shell::before { left: 0; }
.nr-shell::after { right: 0; }
.nr-shell .gm-nav::before,
.nr-shell .gm-nav::after { content: none; }
.nr-shell > main { flex: 1; }
.nr-release { padding: 158px 0 90px; }
.nr-container { max-width: 880px; }
.nr-breadcrumb { display: flex; align-items: center; gap: 12px; margin-bottom: 46px; font-family: "DM Mono", monospace; font-size: 12px; letter-spacing: 0.14em; text-transform: uppercase; color: var(--gm-text-muted); }
.nr-breadcrumb a { color: var(--gm-text-secondary); text-decoration: none; transition: color 140ms var(--gm-ease); }
.nr-breadcrumb a:hover { color: var(--gm-text); }
.nr-head__meta { display: flex; align-items: center; gap: 16px; margin-bottom: 26px; }
.nr-head__meta time { font-family: "DM Mono", monospace; font-size: 12px; letter-spacing: 0.12em; text-transform: uppercase; color: var(--gm-text-muted); }
.nr-head h1 { font-family: "Host Grotesk", sans-serif; font-size: clamp(30px, 4.4vw, 50px); font-weight: 600; letter-spacing: -0.015em; line-height: 1.1; margin: 0 0 22px; color: var(--gm-text); }
.nr-head__excerpt { font-size: 19px; line-height: 1.55; color: var(--gm-text-secondary); margin: 0 0 46px; max-width: 62ch; }
.nr-body { border-top: 1px solid var(--gm-border-subtle); padding-top: 46px; }
.nr-body p { font-size: 17px; line-height: 1.8; color: var(--gm-text-secondary); margin: 0 0 1.5em; }
.nr-body strong { color: var(--gm-text); font-weight: 600; }
.nr-body a { color: var(--gm-accent); text-decoration: underline; text-underline-offset: 3px; transition: color 140ms var(--gm-ease); }
.nr-body a:hover { color: var(--gm-accent-hover); }
.nr-body ul, .nr-body ol { margin: 0 0 1.5em; padding-left: 22px; color: var(--gm-text-secondary); font-size: 17px; line-height: 1.8; }
.nr-body li { margin-bottom: 0.5em; }
.nr-body h2, .nr-body h3 { font-family: "Host Grotesk", sans-serif; color: var(--gm-text); margin: 1.8em 0 0.8em; letter-spacing: -0.01em; }
.nr-body .nr-media,
.nr-body p:has(> .nr-media__link > .nr-media__image) {
  margin: clamp(34px, 6vw, 58px) 0 22px;
}
.nr-body .nr-media__link:has(.nr-media__image) {
  display: block;
  color: inherit;
  text-decoration: none;
}
.nr-body .nr-media__image {
  display: block;
  width: auto;
  max-width: 100%;
  height: auto;
  margin-inline: auto;
  border: 1px solid var(--gm-border-subtle);
  border-radius: 5px;
  background: #fff;
  box-shadow: 0 18px 44px rgba(0, 0, 0, .28);
}
.nr-body .nr-media__link:hover .nr-media__image {
  border-color: var(--gm-text-muted);
}
.nr-body .nr-media__caption,
.nr-body .nr-media figcaption {
  margin-top: 14px;
  color: var(--gm-text-muted);
  font-size: 14px;
  line-height: 1.65;
}
.nr-table-wrap {
  width: 100%;
  margin: clamp(30px, 5vw, 48px) 0;
  overflow-x: auto;
  border: 1px solid var(--gm-border-subtle);
  border-radius: 5px;
  background: rgba(255, 255, 255, .025);
  -webkit-overflow-scrolling: touch;
}
.nr-table-wrap:focus-visible {
  outline: 2px solid var(--gm-accent);
  outline-offset: 3px;
}
.nr-body table {
  width: 100%;
  min-width: 660px;
  border-collapse: collapse;
  color: var(--gm-text-secondary);
  font-size: 14px;
  line-height: 1.45;
}
.nr-body caption {
  padding: 14px 16px;
  color: var(--gm-text);
  font-family: "DM Mono", monospace;
  font-size: 11px;
  font-weight: 500;
  letter-spacing: .09em;
  text-align: left;
  text-transform: uppercase;
}
.nr-body th,
.nr-body td {
  padding: 12px 14px;
  border-right: 1px solid var(--gm-border-subtle);
  border-bottom: 1px solid var(--gm-border-subtle);
  text-align: left;
  vertical-align: top;
}
.nr-body tr > :last-child { border-right: 0; }
.nr-body tbody tr:last-child > * { border-bottom: 0; }
.nr-body thead th {
  color: var(--gm-text);
  background: rgba(255, 255, 255, .07);
  font-family: "DM Mono", monospace;
  font-size: 11px;
  font-weight: 500;
  letter-spacing: .04em;
}
.nr-body tbody th {
  color: var(--gm-text);
  font-weight: 600;
}
.nr-foot { margin-top: 58px; padding-top: 28px; border-top: 1px solid var(--gm-border-subtle); display: flex; justify-content: space-between; align-items: center; gap: 18px; flex-wrap: wrap; }
.nr-back { display: inline-flex; align-items: center; gap: 10px; color: var(--gm-text); text-decoration: none; font-weight: 500; }
.nr-back svg { width: 18px; height: 18px; fill: none; stroke: currentColor; stroke-width: 2; }
.nr-back:hover { color: var(--gm-accent); }
.nr-contact { font-family: "DM Mono", monospace; font-size: 12.5px; letter-spacing: 0.06em; color: var(--gm-text-muted); text-decoration: none; transition: color 140ms var(--gm-ease); }
.nr-contact:hover { color: var(--gm-text); }
.nr-siblings { border-top: 1px solid var(--gm-border-subtle); }
.nr-siblings__inner { display: grid; grid-template-columns: 1fr 1fr; gap: 24px; padding-top: 34px; padding-bottom: 34px; }
.nr-siblings a { text-decoration: none; color: var(--gm-text-secondary); display: flex; flex-direction: column; gap: 8px; }
.nr-siblings a:last-child { text-align: right; align-items: flex-end; }
.nr-siblings small { font-family: "DM Mono", monospace; font-size: 11px; letter-spacing: 0.14em; text-transform: uppercase; color: var(--gm-text-muted); }
.nr-siblings span { font-size: 15px; font-weight: 500; line-height: 1.45; transition: color 140ms var(--gm-ease); }
.nr-siblings a:hover span { color: var(--gm-text); }
@media (max-width: 720px) {
  .nr-release { padding: 128px 0 70px; }
  .nr-body .nr-media__image { border-radius: 3px; }
  .nr-table-wrap {
    width: calc(100% + 20px);
    margin-inline: -10px;
  }
  .nr-siblings__inner { grid-template-columns: 1fr; }
  .nr-siblings a:last-child { text-align: left; align-items: flex-start; }
}

/* ===== Research report reader ===== */
.rs-note { display: inline-block; margin: 0 0 38px; padding: 13px 18px; border: 1px solid var(--gm-border-subtle); border-radius: 8px; font-family: "DM Mono", monospace; font-size: 12px; letter-spacing: 0.08em; text-transform: uppercase; color: var(--gm-text-muted); }
.rs-reader { display: flex; flex-direction: column; gap: 26px; user-select: none; -webkit-user-select: none; }
.rs-reader img { width: 100%; height: auto; display: block; background: #fff; border: 1px solid var(--gm-border-subtle); border-radius: 6px; box-shadow: 0 18px 50px rgba(0, 0, 0, 0.35); }
