/* NexusOne approved-raster reconstruction. Reference: 1825 x 862. */
@font-face {
  font-family: "Nexus Inter";
  src: url("./fonts/InterVariable.woff2") format("woff2");
  font-style: normal;
  font-weight: 100 900;
  font-display: swap;
}
.nx-work {
  --nx-bg: #11181e;
  --nx-white: #f2f4f7;
  --nx-heading-muted: #98a9bc;
  --nx-body: #b9c8d7;
  --nx-muted: #a2b3c4;
  --nx-icon: #99abbf;
  --nx-blue: #529ff8;
  --nx-eyebrow: #61b9fd;
  --nx-rule: #56aaff;
  container-type: inline-size;
  width: 100%;
  color: var(--nx-body);
  background: var(--nx-bg) url("./background-texture.png") repeat;
  background-size: 800px 1200px;
  font-family: "Nexus Inter", Inter, Arial, sans-serif;
  font-synthesis: none;
  text-align: left;
}
.nx-work, .nx-work * { box-sizing: border-box; }
.nx-work__inner {
  /* One reference pixel, scales proportionally from 1200 through 1825. */
  --u: min(1px, calc(100cqw / 1825));
  max-width: 1825px;
  margin-inline: auto;
  padding: calc(84 * var(--u)) calc(72 * var(--u)) calc(96 * var(--u)) calc(81 * var(--u));
}
.nx-work p, .nx-work h2 { margin: 0; }
.nx-work__eyebrow {
  color: var(--nx-eyebrow);
  font-size: calc(16 * var(--u));
  line-height: calc(20 * var(--u));
  font-weight: 600;
  letter-spacing: calc(2.4 * var(--u));
}
.nx-work .nx-work__title {
  margin-top: calc(26 * var(--u));
  font-size: calc(66 * var(--u));
  line-height: calc(80 * var(--u));
  font-weight: 700;
  letter-spacing: calc(-2 * var(--u));
  color: var(--nx-white);
  font-optical-sizing: none;
}
.nx-work__title span { display: block; }
.nx-work__title span:last-child { color: var(--nx-heading-muted); }
.nx-work__copy {
  margin-top: calc(42 * var(--u));
  max-width: calc(1320 * var(--u));
  font-size: calc(30 * var(--u));
  line-height: calc(44 * var(--u));
  font-weight: 400;
  letter-spacing: calc(-0.15 * var(--u));
  font-optical-sizing: none;
}
.nx-work__copy p + p { margin-top: calc(30 * var(--u)); }
.nx-work .nx-work__prompt {
  margin-top: calc(52 * var(--u));
  color: var(--nx-white);
  font-size: calc(28 * var(--u));
  line-height: calc(36 * var(--u));
  font-weight: 700;
  letter-spacing: calc(-0.4 * var(--u));
}
.nx-work__nav {
  display: grid;
  grid-template-columns: 414fr 469fr 434fr 355fr;
  margin-top: calc(28 * var(--u));
  align-items: start;
}
.nx-work__link {
  position: relative;
  display: flex;
  align-items: center;
  width: max-content;
  height: calc(112 * var(--u));
  padding-bottom: calc(4 * var(--u));
  gap: calc(22 * var(--u));
  color: var(--nx-muted);
  text-decoration: none;
  border: 0;
  background: transparent;
  outline-offset: 8px;
}
.nx-work__icon {
  flex: 0 0 calc(96 * var(--u));
  width: calc(96 * var(--u));
  height: calc(80 * var(--u));
  display: flex;
  align-items: center;
  justify-content: flex-start;
  color: var(--nx-icon);
}
.nx-work__icon svg { display: block; overflow: visible; height: auto; color: inherit; flex-shrink: 0; }
.nx-work__link--logistics .nx-work__icon svg { width: calc(96 * var(--u)); margin-left: calc(-7 * var(--u)); }
.nx-work__link--energy .nx-work__icon svg { width: calc(93 * var(--u)); margin-left: calc(-16 * var(--u)); }
.nx-work__link--legal .nx-work__icon svg { width: calc(87 * var(--u)); margin-left: calc(-7 * var(--u)); }
.nx-work__link--data .nx-work__icon svg { width: calc(92 * var(--u)); margin-left: calc(-9 * var(--u)); }
.nx-work__link:not(:first-child) { gap: calc(16 * var(--u)); }
.nx-work__label {
  font-size: calc(24 * var(--u));
  line-height: calc(36 * var(--u));
  font-weight: 500;
  letter-spacing: calc(-0.5 * var(--u));
  white-space: nowrap;
}
.nx-work__arrow {
  flex: 0 0 calc(22 * var(--u));
  width: calc(22 * var(--u));
  height: calc(22 * var(--u));
  margin-left: calc(0 * var(--u));
  color: inherit;
}
.nx-work__link::after {
  content: "";
  position: absolute;
  left: 0; bottom: 0;
  height: calc(4 * var(--u));
  width: 100%;
  background: var(--nx-rule);
  opacity: 0;
}
.nx-work__link--logistics::after { width: calc(267 * var(--u)); }
.nx-work__link[aria-current="location"], .nx-work__link:hover { color: var(--nx-white); }
.nx-work__link[aria-current="location"] .nx-work__icon,
.nx-work__link[aria-current="location"] .nx-work__arrow,
.nx-work__link:hover .nx-work__icon,
.nx-work__link:hover .nx-work__arrow { color: var(--nx-blue); }
.nx-work__link[aria-current="location"]::after, .nx-work__link:hover::after { opacity: 1; }
.nx-work__link:focus-visible { outline: 2px solid var(--nx-rule); border-radius: 2px; }
/* Small-screen rules are implementation choices; the source contains no mobile design. */
@container (max-width: 1199px) {
  .nx-work__inner { --u: 1px; padding: 56px 32px 64px; }
  .nx-work__title { max-width: 100%; }
  .nx-work .nx-work__title { font-size: 48px; line-height: 56px; letter-spacing: -1.4px; }
  .nx-work__copy { margin-top: 32px; max-width: 900px; font-size: 22px; line-height: 33px; letter-spacing: -0.2px; }
  .nx-work__reference-break { display: none; }
  .nx-work__copy p + p { margin-top: 24px; }
  .nx-work .nx-work__prompt { margin-top: 36px; font-size: 24px; line-height: 32px; }
  .nx-work__nav { grid-template-columns: 1fr 1fr; gap: 24px 32px; margin-top: 24px; }
  .nx-work__link { height: 100px; }
  .nx-work__label { font-size: 20px; line-height: 28px; letter-spacing: -0.3px; }
  .nx-work__icon { flex-basis: 72px; width: 72px; }
  .nx-work__icon svg { transform: scale(.8); transform-origin: left center; }
  .nx-work__link--logistics::after { width: 100%; }
}
@container (max-width: 699px) {
  .nx-work__inner { padding: 40px 24px 48px; }
  .nx-work__eyebrow { font-size: 13px; line-height: 18px; letter-spacing: 2px; }
  .nx-work .nx-work__title { margin-top: 20px; font-size: 36px; line-height: 41px; letter-spacing: -1.1px; }
  .nx-work__copy { margin-top: 28px; font-size: 18px; line-height: 28px; letter-spacing: 0; }
  .nx-work .nx-work__prompt { margin-top: 32px; font-size: 22px; line-height: 30px; }
  .nx-work__nav { grid-template-columns: 1fr; gap: 12px; margin-top: 20px; }
  .nx-work__link { width: 100%; height: 88px; gap: 16px; }
  .nx-work__link:not(:first-child) { gap: 16px; }
  .nx-work__label { font-size: 18px; line-height: 26px; white-space: normal; min-width: 0; flex: 1; }
  .nx-work__arrow { margin-left: auto; }
}

/* --- integration shim (site globals would otherwise leak in) --- */
.nx-work p { max-width: none; }
.nx-work h2 { text-wrap: initial; margin-bottom: 0; font-family: inherit; }

/* --- site-scale harmonisation: same composition at ~0.72x so the section matches
   the rest of the page (heading ~48px, body ~21px) and aligns with the content column --- */
.nx-work__inner { max-width: 1390px; --u: min(0.72px, calc(100cqw / 1930)); }
@container (max-width: 1199px) {
  /* the site-scale --u above would otherwise keep shrinking on phones (icons ~10px) */
  .nx-work__inner { --u: 1px; }
  .nx-work .nx-work__title { font-size: 38px; line-height: 46px; letter-spacing: -1px; }
  .nx-work__copy { font-size: 19px; line-height: 29px; max-width: 760px; margin-top: 26px; }
  .nx-work__copy p + p { margin-top: 20px; }
  .nx-work .nx-work__prompt { font-size: 21px; line-height: 28px; margin-top: 30px; }
  .nx-work__label { font-size: 18px; line-height: 26px; }
  .nx-work__link { height: 84px; }
  .nx-work__icon { flex-basis: 60px; width: 60px; }
  .nx-work__icon svg { transform: scale(.66); transform-origin: left center; }
  .nx-work__inner { padding: 48px 32px 56px; }
}
@container (max-width: 699px) {
  .nx-work .nx-work__title { font-size: 31px; line-height: 37px; letter-spacing: -0.8px; }
  .nx-work__copy { font-size: 17px; line-height: 26px; margin-top: 22px; }
  .nx-work .nx-work__prompt { font-size: 19px; line-height: 26px; margin-top: 26px; }
  .nx-work__label { font-size: 17px; line-height: 24px; }
  .nx-work__link { height: 68px; }
  .nx-work__icon { flex-basis: 52px; width: 52px; }
  .nx-work__icon svg { transform: scale(.55); transform-origin: left center; }
  .nx-work__inner { padding: 80px 22px 80px; }   /* phone rhythm: 160px between blocks */
}

/* --- hover underline removed (operator 2026-09-10): the 4px rule read as a stray bar,
   and on touch screens a tap leaves :hover stuck so it never went away --- */
.nx-work__link::after { display: none; }

/* --- site body-text match (operator 2026-09-09): the component uses the SITE font
   and body scale, not the reconstruction's Inter/30px --- */
.nx-work { font-family: Roboto, 'Segoe UI', sans-serif; }
.nx-work__copy { font-size: 17px; line-height: 1.8; letter-spacing: 0; max-width: none; color: #BCC7D2; }
.nx-work__copy p + p { margin-top: 18px; }
.nx-work__label { letter-spacing: 0; }

/* --- seamless section join: the component's own #11181E + texture differed from the
   page's #10171D and drew a visible full-width boundary line. Page bg runs through. --- */
.nx-work { background: transparent; }
