/* /css/brand-colors.css?v=20261010-launch2 */
/* Mandatory accent: #FF5C46. Softer variants mix it with white, never grey.
   Suffix = percentage of orange; the remainder is white. */
:root {
 --brand-orange:#FF5C46;
 --brand-on-orange:#000000;
 --brand-orange-85:#FF7462;
 --brand-orange-65:#FF9587;
 --brand-orange-40:#FFBEB5;
 --brand-orange-20:#FFDEDA;
}

/* /css/tokens.css?v=20261010-launch2 */
/* ═══════════════════════════════════════════
   TOKENS — Parallel Loop design system
   Primitive tokens only; each page stylesheet sets its surface roles.
   ═══════════════════════════════════════════ */

:root {

  /* ─────────────────────────────────────────
     BRAND PALETTE — raw colour values
     "Grey builds the system.
      Orange brings it to life."
     ───────────────────────────────────────── */

  /* Greys */
  --color-charcoal:   #4E4E4E;
  --color-grey-700:   #606060;
  --color-grey-600:   #6C6C6C;
  --color-grey-500:   #8A8A8A;
  --color-grey-400:   #A2A2A2;
  --color-grey-300:   #BCBCBC;
  --color-grey-200:   #CDCDCD;
  --color-grey-100:   #E6E6E6;
  --color-grey-50:    #F6F6F6;
  --color-white:      #FFFFFF;
  --color-black:      #212121;   /* soft black */
  --color-black-deep: #171717;

  /* Orange scale */
  --color-orange-900: var(--brand-orange-65);
  --color-orange-800: var(--brand-orange-85);
  --color-orange-700: var(--brand-orange);   /* primary brand accent */
  --color-orange-500: var(--brand-orange-85);
  --color-orange-300: var(--brand-orange-40);
  --color-orange-100: var(--brand-orange-20);

  /* Legacy token aliases; every chromatic role now uses orange. */
  --color-cyan-400:   var(--brand-orange-65);
  --color-cyan-200:   var(--brand-orange-85);

  /* Accent stays constant across themes */
  --accent:           var(--color-orange-700);
  --accent-hover:     var(--color-orange-800);
  --accent-soft:      var(--color-orange-300);

  /* ─────────────────────────────────────────
     TYPOGRAPHY
     ───────────────────────────────────────── */
  --font: 'Instrument Sans', sans-serif;

  --fs-display:   clamp(2.5rem, 5.2vw, 4.5rem);   /* 40–72 */
  --fs-h1:        clamp(2rem, 4vw, 3.25rem);      /* 32–52 */
  --fs-h2:        clamp(1.75rem, 3vw, 2.5rem);    /* 28–40 */
  --fs-h3:        clamp(1.25rem, 1.8vw, 1.5rem);  /* 20–24 */
  --fs-lg:        1.125rem;                       /* 18 */
  --fs-md:        1rem;                           /* 16 */
  --fs-sm:        0.875rem;                       /* 14 */
  --fs-xs:        0.75rem;                        /* 12 */

  --lh-tight:     1.1;
  --lh-snug:      1.2;
  --lh-normal:    20px;
  --lh-relaxed:   24px;

  --fw-light:     300;
  --fw-regular:   400;
  --fw-medium:    500;
  --fw-semibold:  600;
  --fw-bold:      700;
  --fw-extrabold: 800;

  --tracking-display: -0.03em;
  --tracking-heading: -0.02em;
  --tracking-snug:    -0.01em;
  --tracking-body:     0;
  --tracking-wide:     0.10em;

  /* ─────────────────────────────────────────
     SPACING — 8pt grid
     ───────────────────────────────────────── */
  --sp-2:   2px;
  --sp-4:   4px;
  --sp-8:   8px;
  --sp-12:  12px;
  --sp-16:  16px;
  --sp-20:  20px;
  --sp-24:  24px;
  --sp-32:  32px;
  --sp-40:  40px;
  --sp-48:  48px;
  --sp-56:  56px;
  --sp-64:  64px;
  --sp-80:  80px;
  --sp-96:  96px;
  --sp-128: 128px;
  --sp-160: 160px;

  /* ─────────────────────────────────────────
     LAYOUT
     ───────────────────────────────────────── */
  --container-max: 1280px;
  --container-pad: 80px;

  /* ─────────────────────────────────────────
     BORDERS & RADII
     ───────────────────────────────────────── */
  --radius-sm:   4px;
  --radius:      8px;
  --radius-lg:  16px;
  --radius-pill: 999px;

  /* ─────────────────────────────────────────
     MOTION
     ───────────────────────────────────────── */
  --ease-out:     cubic-bezier(0.16, 1, 0.3, 1);
  --ease-smooth:  cubic-bezier(0.4, 0, 0.2, 1);
  --ease-standard: cubic-bezier(0.2, 0, 0, 1);

  --dur-fast:  150ms;
  --dur-med:   320ms;
  --dur-slow:  600ms;

  /* ─────────────────────────────────────────
     ELEVATION
     ───────────────────────────────────────── */
  --shadow-soft:   0 10px 30px rgba(78, 78, 78, 0.10);
  --shadow-lift:   0 20px 60px rgba(78, 78, 78, 0.18);
}

/* Responsive container padding */
@media (max-width: 1024px) {
  :root { --container-pad: 40px; }
}

@media (max-width: 640px) {
  :root { --container-pad: 20px; }
}

/* /css/base.css?v=20261012-review */
/* ═══════════════════════════════════════════
   BASE — reset, font, element defaults
   ═══════════════════════════════════════════ */

*, *::before, *::after {
  margin: 0;
  padding: 0;
  box-sizing: border-box;
}

html {
  scroll-behavior: smooth;
  -webkit-text-size-adjust: 100%;
}

body {
  font-family: var(--font);
  font-size: var(--fs-md);
  font-weight: var(--fw-regular);
  line-height: var(--lh-relaxed);
  background: var(--page-bg, var(--bg));
  color: var(--text);
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  overflow-x: clip;
  transition:
    background var(--dur-med) var(--ease-smooth),
    color      var(--dur-med) var(--ease-smooth);
}

/* Page frame. Its side insets follow the shared rails in site-rails.css. */
.pl-frame {
  background: var(--page-bg, transparent);
  min-height: 100vh;
  min-height: 100svh;
}
.pl-frame__inner {
  border-left:  1px solid var(--grid-line);
  border-right: 1px solid var(--grid-line);
  background: var(--bg);
  /* Horizontal overflow visible so row divider lines can extend past
     the frame's side borders into the outer page-padding area. */
  overflow: visible;
}

a {
  color: inherit;
  text-decoration: none;
  transition: color var(--dur-fast) var(--ease-smooth);
}

a:hover { color: var(--accent); }

img, svg { display: block; max-width: 100%; }

ul, ol { list-style: none; }

button {
  font-family: inherit;
  border: none;
  background: none;
  cursor: pointer;
  color: inherit;
}

/* ─────────────────────────────────────────
   ACCESSIBILITY
   ───────────────────────────────────────── */
:focus-visible {
  outline: 2px solid var(--focus-ring, #1B1B1B);
  outline-offset: 2px;
}

::selection {
  background: var(--color-orange-300);
  color: var(--brand-on-orange);
}

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after {
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
    scroll-behavior: auto !important;
  }
}

/* /css/contact-modal.css?v=20261012-uniform-dialog */
/* A quiet, bounded conversation over the immersive world. */
.contact-dialog {
  width: min(680px, calc(100% - 48px)); max-width: none;
  max-height: calc(100dvh - 48px); margin: auto; padding: 0;
  border: 1px solid #D7D7D7; border-radius: 3px;
  background: #FFFFFF; color: #1B1B1B;
  box-shadow: 0 10px 30px #4E4E4E1A; overflow: auto; overscroll-behavior: contain;
  scrollbar-width: thin; scrollbar-color: #8A8A8A #FFFFFF;
}
.contact-dialog:not([open]) { display: none; }
.contact-dialog::backdrop { background: #292f2dcc; -webkit-backdrop-filter: blur(7px); backdrop-filter: blur(7px); }
.contact-panel { padding: 20px 38px 0; }
.contact-topline { position: sticky; top: 0; z-index: 1; background: #FFFFFF; display: flex; align-items: center; justify-content: space-between; gap: 20px; padding-bottom: 16px; border-bottom: 1px solid #D7D7D7; }
.contact-wordmark { display: inline-flex; align-items: center; gap: 10px; font-size: 16px; line-height: 24px; font-weight: 600; letter-spacing: -.5px; }
.contact-close { display: grid; place-items: center; flex: none; width: 44px; height: 44px; border-radius: 2px; }
.contact-close span { font-size: 30px; line-height: 1; font-weight: 300; }
.contact-close:hover { background: #F9F9F9; }
.contact-intro { padding: 26px 0; }
.contact-kicker { font: 12px/16px var(--arch-mono, var(--mono, monospace)); letter-spacing: .1em; color: #656565; margin-bottom: 10px; }
.contact-intro h2 { font-size: clamp(32px, 3.3vw, 44px); font-weight: 500; letter-spacing: -.055em; line-height: 1.12; }
/* This static heading receives entry focus for screen readers, not as a control. */
.contact-intro h2:focus { outline: none; }
.contact-intro > p:last-child { margin-top: 14px; max-width: 450px; color: #535353; font-size: 14px; line-height: 20px; }
.contact-fields { display: grid; grid-template-columns: 1fr 1fr; gap: 18px 20px; }
.contact-field { min-width: 0; }
.contact-field--wide { grid-column: 1 / -1; }
.contact-field label { display: flex; justify-content: space-between; flex-wrap: wrap; gap: 4px 12px; margin-bottom: 7px; font-size: 12px; line-height: 16px; font-weight: 500; }
.contact-field label span { color: #656565; font-size: 12px; line-height: 16px; font-weight: 400; }
.contact-field input, .contact-field textarea {
  display: block; width: 100%; min-height: 46px; padding: 11px 13px;
  border: 1px solid #8A8A8A; border-radius: 2px;
  font: inherit; font-size: 16px; line-height: 24px; color: #1B1B1B; background: #F9F9F9;
}
.contact-field textarea { min-height: 94px; max-height: 250px; resize: vertical; }
.contact-field input::placeholder, .contact-field textarea::placeholder { color: #696969; font-size: 16px; opacity: 1; }
.contact-field input:focus, .contact-field textarea:focus { outline: 2px solid #1B1B1B; outline-offset: 2px; border-color: #1B1B1B; }
.contact-field [aria-invalid="true"] { border: 2px solid var(--brand-orange); }
.contact-field-error { color: #1B1B1B; font-weight: 600; font-size: 12px; margin-top: 6px; line-height: 16px; }
.contact-submit-row { display: flex; align-items: center; justify-content: space-between; gap: 20px; padding-top: 24px; }
.contact-submit { min-height: 50px; padding-inline: 18px; gap: 28px; font-size: 14px; line-height: 20px; }
.contact-submit:disabled { cursor: wait; opacity: .7; }
.contact-status { margin-top: 14px; font-size: 12px; line-height: 16px; color: #1B1B1B; }
.contact-status:empty { display: none; }
.contact-status[data-state="error"] { color: #1B1B1B; font-weight: 600; }
.contact-hp { position: absolute; left: -10000px; width: 1px; height: 1px; overflow: hidden; }
.contact-success { padding: 8px 0 32px; }
.contact-success h3 { font-size: 24px; line-height: 32px; font-weight: 500; letter-spacing: -.02em; }
.contact-success h3:focus { outline: none; }
.contact-success p { margin-top: 8px; color: #535353; font-size: 14px; line-height: 20px; }
.contact-done { margin-top: 24px; min-height: 44px; padding-inline: 18px; }
.grecaptcha-badge { visibility: hidden; }
.contact-footnote { margin-top: 24px; padding: 16px 0 20px; border-top: 1px solid #D7D7D7; display: flex; justify-content: space-between; gap: 10px 20px; flex-wrap: wrap; font-size: 12px; line-height: 16px; color: #656565; }
.contact-recaptcha { margin-top: -8px; padding-bottom: 20px; color: #656565; font-size: 12px; line-height: 16px; }
.contact-recaptcha a { color: #363636; text-underline-offset: 2px; }
.contact-footnote a { color: #1B1B1B; display: inline-flex; align-items: center; gap: 6px; min-height: 30px; text-underline-offset: 3px; }
.contact-footnote a:hover { text-decoration: underline; }
.contact-dialog a:focus-visible, .contact-dialog button:focus-visible { outline: 2px solid #1B1B1B; outline-offset: 2px; }
.contact-sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }
@media (max-width: 600px) {
  .contact-dialog { width: calc(100% - 24px); max-height: calc(100dvh - 24px); }
  .contact-panel { padding: 12px 22px 0; }
  .contact-topline { padding-bottom: 10px; }
  .contact-intro { padding: 22px 0; }
  .contact-intro h2 { font-size: 34px; }
  .contact-fields { grid-template-columns: 1fr; gap: 16px; }
  .contact-submit-row { flex-direction: column-reverse; align-items: stretch; gap: 12px; padding-top: 22px; }
  .contact-submit { min-height: 52px; }
  .contact-footnote { margin-top: 18px; padding: 12px 0; font-size: 12px; line-height: 16px; }
  .contact-footnote a { min-height: 44px; }
}
@media (prefers-reduced-motion: no-preference) {
  .contact-dialog[open] { animation: contact-arrive 160ms ease-out; }
  @keyframes contact-arrive { from { opacity: 0; transform: translateY(8px); } to { opacity: 1; transform: translateY(0); } }
}
@media (max-width: 380px) {
  .contact-intro h2 { font-size: 30px; }
  .contact-intro h2 br { display: none; }
}
@media (max-height: 500px) {
  .contact-panel { padding-top: 8px; }
  .contact-topline { padding-bottom: 6px; }
  .contact-intro { padding: 18px 0; }
  .contact-intro h2 { font-size: 30px; }
  .contact-intro h2 br { display: none; }
  .contact-intro > p:last-child { margin-top: 8px; }
}

/* /css/home-layout.css?v=20261010-launch2 */
/* Homepage grid primitives and the header spacer's rails. */
.pl-grid { display: grid; grid-template-columns: repeat(var(--cols, 4), minmax(0, 1fr)); position: relative; }
.pl-cell { border-right: 1px solid var(--grid-line); border-bottom: 1px solid var(--grid-line); padding: var(--cell-pad, var(--sp-32)); min-height: var(--cell-min-h, auto); display: flex; flex-direction: column; gap: var(--sp-16); position: relative; }
.pl-cell:last-child { border-right-width: medium; border-right-style: none; border-right-color: currentcolor; }
.pl-header-spacer__inner { display: grid; grid-template-columns: repeat(4, 1fr); min-height: 48px; border-left: 1px solid var(--grid-line); border-right: 1px solid var(--grid-line); }
@media (max-width: 640px) {
  .pl-header-spacer__inner { grid-template-columns: repeat(2, 1fr); min-height: 56px; }
}

/* /css/site-theme.css?v=20261012-uniform-dialog */
/* Homepage surface roles: neutral paper and ink with selected white panels.
   These roles do not redefine the primitive palette; #FF5C46 is the only accent hue. */
:root {
  --site-paper: #EFEFEF;
  --site-white: var(--color-white);
  --site-ink: #2C2C2C;
  --site-muted: #646464;
  --site-tint: #E6E6E6;
  --site-line: var(--color-grey-200);
  --accent: var(--color-orange-700);
  --arch-ivory: var(--site-paper);
  --arch-ink: var(--site-ink);
  --arch-ember: var(--accent);
  --arch-mono: 'Martian Mono', monospace;
  color-scheme: light;
}

/* /css/client-logos.css?v=20261010-launch2 */
/* Clean original client marks: monochrome at rest, natural colour on hover, focus or press.
   Columns, padding, dividers and the viewport height belong to the homepage layout. */
.pl-clients { display: grid; }
.pl-client {
  appearance: none;
  position: relative;
  display: flex;
  flex-direction: column;
  width: 100%;
  min-width: 0;
  border: 0;
  border-right: 1px solid var(--site-line);
  border-bottom: 1px solid var(--site-line);
  border-radius: 0;
  background: var(--site-paper);
  color: var(--site-ink);
  font: inherit;
  text-align: left;
  cursor: pointer;
  -webkit-tap-highlight-color: transparent;
}
.pl-client:focus-visible { z-index: 1; outline: 2px solid var(--site-ink); outline-offset: -5px; }
.pl-client__viewport { position: relative; display: block; overflow: hidden; }
.pl-client__layer {
  position: absolute;
  inset: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  filter: grayscale(1);
  transition: filter 320ms ease;
}
/* Contain within the fixed-height viewport so wide two-column cells never crop a mark. */
.pl-client__layer img { display: block; width: 100%; height: 100%; max-width: 400px; object-fit: contain; }
.pl-client:is(:focus-visible,[aria-pressed="true"]) .pl-client__layer--mark { filter: grayscale(0); }
@media (hover: hover) and (pointer: fine) {
  .pl-client:hover .pl-client__layer--mark { filter: grayscale(0); }
}
@media (prefers-reduced-motion: reduce) {
  .pl-client__layer { transition: none; }
}

/* /css/people.css?v=20261013-no-team-controls */
/* Homepage people strip: real portraits, quiet at rest, colour on intent.
   Sets advance every three seconds until someone interacts with the section; no particle canvas or per-frame work. */
.people-fold { color: var(--site-ink); background: var(--site-paper); border-bottom: 1px solid var(--site-line); }
.people-heading { display: grid; grid-template-columns: minmax(0, 3fr) minmax(0, 2fr); border-bottom: 1px solid var(--site-line); }
.people-strip { display: flex; overflow-x: auto; overscroll-behavior-x: contain; scroll-snap-type: x mandatory; scrollbar-width: thin; scrollbar-color: var(--site-line) var(--site-paper); }
.people-card { min-width: 0; margin: 0; padding: 16px; background: var(--site-paper); border-right: 1px solid var(--site-line); }
.people-strip > .people-card { flex: 0 0 20%; scroll-snap-align: start; }
.people-card:last-child { border-right: 0; }
.people-photo { display: block; position: relative; width: 100%; aspect-ratio: 2 / 3; padding: 0; overflow: hidden; background: var(--site-tint); cursor: pointer; }
.people-photo img { display: block; width: 100%; height: 100%; object-fit: cover; object-position: center top; filter: grayscale(1); transition: filter 400ms var(--ease-smooth); }
.people-card[data-person-id="sanjay-malhotra"] .people-photo { background: #2A2A2A; }
.people-card[data-person-id="sanjay-malhotra"] .people-photo img { transform: translateY(4%); }
@media (hover: hover) { .people-photo:hover img { filter: grayscale(0); } }
.people-photo:focus-visible img, .people-photo[aria-pressed="true"] img { filter: grayscale(0); }
.people-card[data-person-id="aman-negi"] .people-photo { cursor: default; }
.people-card[data-person-id="aman-negi"] .people-photo img { filter: grayscale(1); }
@media (prefers-reduced-motion: reduce) {
  .people-photo img { transition: none; }
}

/* Only JS-owned, one-shot entrances use this state. No-JS remains visible. */
@media (prefers-reduced-motion: no-preference) {
  .people-portrait-pending { opacity: 0; }
}

/* /css/workshop-home.css?v=20261013-no-team-controls */
/* Homepage layout, colour roles and section styles. No shared brand tokens or other routes are replaced. */
body.workshop-home {
  --site-paper: #F9F9F9; --site-white: #fff; --site-ink: #1B1B1B;
  --site-muted: var(--site-ink); --site-tint: #EAEAEA; --site-line: #D7D7D7;
  --accent: var(--color-orange-700); --pl-paper: #F9F9F9; --pl-paper-bright: #fff;
  --pl-ink: #1B1B1B; --pl-mist: #EAEAEA; --pl-line: #D7D7D7;
  --bg: #F9F9F9; --text: #1B1B1B; --page-bg: #F9F9F9; --grid-line: #D7D7D7;
  --w-orange: var(--color-orange-700); --w-blue: var(--brand-orange-85); --w-green: var(--brand-orange-65); --w-yellow: var(--brand-orange);
  --w-pink: var(--brand-orange); --w-peach: var(--brand-orange); --w-ink: #1B1B1B; --w-line: #D7D7D7;
  /* One text inset inside the rails for every section: 40px, 24px from 800px down. */
  --home-inset: 40px;
  background: #F9F9F9; color: #1B1B1B; transition: none;
}
.workshop-home .pl-header-spacer { height: 60px; border-bottom: 0; background: var(--site-paper); }
.workshop-home .pl-header-spacer__inner { height: 60px; min-height: 60px; border-bottom: 1px solid var(--w-line); }
.workshop-home .home-section { --muted: var(--site-ink); }
.workshop-home main { overflow: clip; }
.w-skip { position: absolute; z-index: 99; top: 4px; left: 4px; transform: translateY(-150%); background: #fff; padding: 12px; }
.w-skip:focus { transform: none; }
.w-eyebrow { font: 12px/16px var(--arch-mono); text-transform: uppercase; letter-spacing: .09em; display: flex; align-items: center; gap: 12px; }
.w-eyebrow::before { content: ''; width: 7px; height: 7px; background: currentColor; flex: none; }
.w-hero { display: grid; grid-template-columns: 1.08fr 1fr; position: relative; border-bottom: 1px solid var(--w-line); }
.w-hero__copy { padding: 36px 0 30px var(--home-inset); position: relative; z-index: 2; }
.w-hero__copy .w-eyebrow { max-width: 380px; }
.w-hero h1 { font-size: clamp(62px,6.6vw,106px); line-height: .98; font-weight: 600; letter-spacing: -.04em; margin: 40px -80px 24px 0; }
.w-hero h1 > span { display: block; }
/* Each display line is pulled in by its first glyph's side bearing, so the ink starts on the eyebrow and paragraph edge.
   The first line's double-width word gap is spacing, so copied text keeps a single space. */
.w-hero h1 > span:first-child { margin-left: -.026em; word-spacing: .153em; }
.w-hero h1 .w-impossible { color: var(--w-orange); font-weight: 500; margin-left: -.063em; }
/* Measures are em equivalents of Instrument Sans ch (1ch = .666em), so text boxes keep their width while the web font loads. */
.w-hero__copy > p { font-size: 16px; line-height: 24px; max-width: 23.31em; margin: 24px 0; color: var(--w-ink); }
.w-hero__art { min-width: 0; position: relative; overflow: hidden; border-left: 1px solid var(--w-line); background: var(--site-paper); display: flex; flex-direction: column; }
.w-art-caption { display: flex; align-items: center; justify-content: space-between; padding: 16px var(--home-inset); font: 12px/16px var(--arch-mono); text-transform: uppercase; letter-spacing: .07em; z-index: 2; }
.w-art-caption > span { text-wrap: balance; }
.w-hero__foot { grid-column: 1/-1; border-top: 1px solid var(--w-line); display: grid; grid-template-columns: 1.08fr 1fr; }
.w-hero__foot > p { align-self: center; padding: 24px var(--home-inset); font-size: 14px; max-width: 31.97em; line-height: 20px; }
.w-hero__people { display: flex; gap: 0; padding-inline: var(--home-inset); align-items: center; border-left: 1px solid var(--w-line); text-decoration:none; }
.w-hero__people img { width: 48px; height: 57px; object-fit: cover; object-position: top; filter: grayscale(1); margin-right: 4px; }
.w-hero__people span { margin-left: 16px; font-size: 14px; line-height: 20px; }
.w-hero__people::after { content:''; display:block; flex:none; width:18px; height:18px; margin-left:auto; background:currentColor; -webkit-mask:url('/assets/icons/pixel-chevron-right.svg') center / contain no-repeat; mask:url('/assets/icons/pixel-chevron-right.svg') center / contain no-repeat; }
.w-hero__people:hover::after { animation:pl-button-arrow-slide .32s steps(4,end) both; }
.w-hero__people:hover { color: #1B1B1B; }
.w-hero__people:hover img { filter: grayscale(0); }
@media(max-width:420px){.w-hero__people img{width:36px;height:43px;margin-right:3px}.w-hero__people span{font-size:12px;line-height:16px;margin-left:12px}}
@media(prefers-reduced-motion:reduce){.w-hero__people:hover::after{animation:none}}
/* Bands between sections stay open: the section above closes them and the next starts without a rule, as the pinned story does. */
.w-divider { height: 60px; background: var(--site-paper); }
/* The intro shares the lab's columns; its 112px gap (1.4 × both 40px insets) starts
   the paragraph on the same edge as the step text below. */
.w-intro { padding: 56px var(--home-inset); display: grid; grid-template-columns: minmax(0,1.4fr) minmax(0,1fr); gap: 112px; border-bottom: 1px solid var(--w-line); align-items: end; }
.w-intro h2 { font-weight: 500; margin-top: 28px; }
.w-intro h2 span { color: var(--w-orange); }
.w-intro > p { max-width: 26.64em; font-size: 16px; line-height: 24px; }
.w-lab { display: grid; grid-template-columns: minmax(0,1.4fr) minmax(0,1fr); border-bottom: 1px solid var(--w-line); background: var(--site-paper); }
.w-lab__board { display: flex; flex-direction: column; min-width: 0; overflow: hidden; background: var(--site-paper); border-right: 1px solid var(--w-line); }
.w-lab__board svg { width: 100%; height: 345px; }
.w-lab__route { opacity: 0; }
.w-lab[data-mode="2"] .w-lab__route { opacity: 1; }
.w-lab__content { display: grid; padding: 0; }
.w-lab__step { display: block; text-align: left; width: 100%; padding: 24px var(--home-inset); border-bottom: 1px solid var(--w-line); }
.w-lab__step:last-child { border-bottom: 0; }
.w-lab__step > span:first-child { display: flex; align-items: center; gap: 8px; }
.w-lab__step b { font-size: 20px; font-weight: 500; letter-spacing: -.03em; }
.w-lab__step-copy { display: block; color: var(--w-ink); font-size: 14px; line-height: 20px; padding-top: 12px; text-wrap: pretty; }
.workshop-home .pl-proof { background: #F9F9F9; }
.workshop-home .pl-proof .pl-cell__title { font-weight: 500; }
.workshop-home .pl-proof > .pl-grid { grid-template-columns: 1fr; }
.workshop-home .pl-proof > .pl-grid > .pl-cell { grid-column: auto; padding: 40px var(--home-inset); background: #F9F9F9; border-right: 0; }
/* The client row keeps its five-column rhythm above the compact people strip. */
.workshop-home .pl-clients { grid-template-columns: repeat(5,minmax(0,1fr)); }
.workshop-home .pl-client { padding: 20px; }
.workshop-home .pl-client:nth-child(n) { border-right: 1px solid var(--site-line); }
.workshop-home .pl-client__viewport { height: clamp(100px,9vw,144px); }
.workshop-home .pl-clients__more { display: flex; flex-direction: column; justify-content: center; align-items: center; text-align: center; gap: 12px; padding: 24px; border-bottom: 1px solid var(--site-line); background: var(--w-yellow); color: var(--site-ink); font-size: 14px; line-height: 20px; }
.workshop-home .pl-clients__more-title { font-size: clamp(22px,2.3vw,32px); line-height: 1.1; font-weight: 500; letter-spacing: -.035em; }
/* Homepage team header: title and link on the left, carousel arrows on the right. */
.workshop-home .people-heading { --font: "Instrument Sans", sans-serif; --mono: "Martian Mono", monospace; grid-template-columns: minmax(0,1fr) auto; align-items: end; gap: 24px; padding: 40px var(--home-inset); }
.workshop-home .people-heading__title { display: flex; flex-direction: column; align-items: flex-start; gap: 16px; padding: 0; border: 0; }
.workshop-home .people-heading #people-title { width: 344px; max-width: 100%; margin: 0; font-weight: 500; color: #1B1B1B; }
.workshop-home .people-heading #people-title span { color: var(--w-orange); }
.workshop-home .people-card { padding: 6px; background: #EAEAEA; }
/* Eight portraits instead of five keeps the original crop at about 60% height.
   Card dividers are 1px gaps, so neither strip edge ever doubles a frame rail. */
.workshop-home .people-strip { gap: 1px; background: var(--site-line); }
.workshop-home .people-strip > .people-card { flex-basis: calc((100% - 7px) / 8); border-right: 0; }
@media (max-width: 880px) {
  .workshop-home .people-strip > .people-card { flex-basis: 30%; }
}
@media (max-width: 540px) {
  .workshop-home .people-strip > .people-card { flex-basis: calc((100% - 1px) / 2); }
}
/* Controls flush with the clipped frame edge draw their focus ring inside. */
.w-hero__people:focus-visible, .w-lab__step:focus-visible { outline-offset: -4px; }
/* In-page links land 16px below the header, where the pinned opportunity story also sits. */
.workshop-home section { scroll-margin-top: 16px; }
@media (max-width: 1100px) {
  .w-hero h1 { font-size: 7vw; }
}
/* Below the pinned story's 901px the intro stacks; two columns would break the heading. */
@media (max-width: 900px) {
  .w-intro { grid-template-columns: 1fr; gap: 24px; }
}
@media (max-width: 880px) {
  .workshop-home .pl-clients { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .workshop-home .pl-client:nth-child(2n) { border-right: 0; }
  .workshop-home .pl-clients__more { grid-column: 1 / -1; }
}
@media (max-width: 800px) {
  body.workshop-home { --home-inset: 24px; }
  .w-hero { grid-template-columns: 1fr; }
  .w-hero__copy { padding: 32px var(--home-inset) 80px; }
  .w-hero h1 { font-size: clamp(58px,11vw,85px); margin: 40px 0 24px; }
  .w-hero__art { border-left: 0; border-top: 1px solid var(--w-line); }
  .w-hero__foot { grid-template-columns: 1fr; }
  .w-hero__foot > p { padding: 24px var(--home-inset); }
  .w-hero__people { padding: 16px var(--home-inset); border-left: 0; border-top: 1px solid var(--w-line); }
  .w-intro { padding: 40px var(--home-inset); }
  .w-lab { grid-template-columns: 1fr; }
  .w-lab__board { border-right: 0; border-bottom: 1px solid var(--w-line); }
  .workshop-home .pl-proof > .pl-grid > .pl-cell { padding: 32px var(--home-inset); }
  .workshop-home .people-heading { padding: 32px var(--home-inset); }
  .workshop-home .people-heading__title { display: contents; }
  .workshop-home .people-heading #people-title { grid-column: 1 / -1; }
  .workshop-home .people-link { justify-self: start; }
}
@media (prefers-reduced-motion: reduce) {
  .w-lab__route { transition: none; }
}
@media (max-width: 640px) {
  body.workshop-home { --site-header-inset: 16px; }
  .w-hero h1 { font-size: clamp(38px,12vw,65px); }
  .w-art-caption { font-size: 12px; line-height: 16px; letter-spacing: .02em; }
}
/* Below this width the longer opportunity captions take two lines; reserving
   both keeps the board and cards still when a card changes the caption. */
@media (max-width: 440px) {
  .w-lab__board .w-art-caption { align-items: flex-start; min-height: 64px; }
}
/* The hero is ordinary document flow; construction never holds up scrolling. */
.w-build-story { position: relative; overflow-anchor: none; }
.w-build-story .w-hero { background: var(--site-paper); }
.w-build-track { min-width: 0; display: flex; }
.w-build-track .w-hero__art { width: 100%; background: var(--site-paper); }
@media (min-width: 801px) {
  /* The eyebrow and the art caption open the same row, so their text tops share one line. */
  .w-hero__copy { padding-top: 32px; padding-bottom: 96px; }
  .w-hero__art > .w-art-caption:first-child { padding-top: 32px; }
  .w-hero__foot > p { padding-block: 16px; }
  .w-hero__people { padding-block: 12px; }
}
@media (min-width: 801px) and (max-height: 740px) {
  .w-hero__copy, .w-hero__art > .w-art-caption:first-child { padding-top: 24px; }
  .w-hero h1 { font-size: clamp(50px,min(6.6vw,11svh),106px); margin-top: 28px; }
}

/* /css/hero-hairline.css?v=20261010-launch2 */
/* Solid hero materials are the neutral faces, outline and detail colours of
   js/illustration-palette.js; the orange anchor uses its white-mixed tints. */
.w-build-track .w-hero__art {
 --hairline-plate: #F1F3F2;
 --hairline-hi: var(--brand-orange);
 --hairline-edge: #62696B;
 --hairline-mid: #62696B;
 --hairline-lo: #9BA3A5;
 --hairline-stroke: .75;
 --hero-front: #F1F3F2;
 --hero-side: #D5DADB;
 --hero-top: #FFFFFF;
 background: var(--site-paper, #F8F8F8);
 color: #232323;
}
.w-hero__stage {
 position: relative;
 flex: 1;
 width: 100%;
 min-height: 300px;
 aspect-ratio: 5 / 4;
 touch-action: pan-y;
}
.w-build-track .w-hero__stage > .w-hero__drawing {
 position: absolute;
 inset: 0;
 width: 100%;
 height: 100%;
 min-height: 0;
 aspect-ratio: auto;
 overflow: hidden;
}
/* Static/no-JavaScript fallback uses the same kernel styling and palette. This angular
   finish outranks the kernel's zero-specificity defaults once they are injected. */
.w-hero__drawing path {
 fill: var(--hairline-plate);
 stroke: var(--hairline-mid);
 stroke-width: var(--hairline-stroke);
 vector-effect: non-scaling-stroke;
 stroke-linejoin: miter;
 stroke-linecap: butt;
}
.w-hero__drawing .nf { fill: none; }
.w-hero__drawing .sil { stroke: var(--hairline-edge); }
.w-hero__drawing .hi { stroke: var(--hairline-hi); }
.w-hero__drawing .lo { stroke: var(--hairline-lo); }
/* The ground grid matches the opportunity illustrations' grid line. */
.w-hero__stage .w-hero__drawing [data-hero-grid] { stroke: #CDD3D4; stroke-opacity: .35; stroke-width: .5; }
.w-hero__drawing .hero-accent { --hero-front: var(--brand-orange-40); --hero-side: var(--brand-orange-65); --hero-top: var(--brand-orange-20); --hairline-edge: var(--brand-orange-65); }
.w-hero__stage .w-hero__drawing .hero-face { stroke: none; }
.w-hero__stage .w-hero__drawing .hero-face--front { fill: var(--hero-front); }
.w-hero__stage .w-hero__drawing .hero-face--side { fill: var(--hero-side); }
.w-hero__stage .w-hero__drawing .hero-face--top { fill: var(--hero-top); }
.w-hero__stage .w-hero__drawing .hero-activity { fill: var(--hairline-hi); stroke: none; }
.w-hero__stage .w-hero__drawing .sil { fill: var(--hero-front); }
.w-hero__stage .w-hero__drawing [data-hero-slot] > g > .nf { stroke: var(--hairline-edge); }
/* The crease path restrokes the silhouette above the faces, so it carries the selected part's orange outline. */
.w-hero__stage .w-hero__drawing .sil.hi ~ .nf { stroke: var(--hairline-hi); }
/* The dense 364-cell calendar uses a lighter, finer detail line. */
.w-hero__stage .w-hero__drawing [data-hairline-part="commit history"] > .nf { stroke: #BBC2C3; stroke-width: .45; }
/* Automatic artwork has no toolbar. Keyboard users can still stop its motion. */
.w-hero__pause { position: absolute; width: 1px; height: 1px; padding: 0; overflow: hidden; clip-path: inset(50%); }
.w-hero__art .w-hero__pause:focus-visible { bottom: 16px; right: 16px; z-index: 2; width: auto; height: auto; min-height: 44px; padding: 8px 12px; clip-path: none; border: 1px solid var(--hairline-hi); border-radius: 0; color: var(--hairline-edge); background: var(--hairline-plate); font: 12px/18px var(--arch-mono); outline: 2px solid var(--focus-ring, #1B1B1B); outline-offset: 2px; }
.w-hero__read { position: absolute; width: 1px; height: 1px; padding: 0; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }
@media (max-width: 800px) {
 .w-hero__stage { flex: none; min-height: 0; }
}
@media (forced-colors: active) {
 .w-build-track .w-hero__art { --hairline-plate: Canvas; --hairline-edge: CanvasText; --hairline-mid: CanvasText; --hairline-lo: CanvasText; --hairline-hi: Highlight; --hero-front: Canvas; --hero-side: Canvas; --hero-top: Canvas; }
 .w-hero__drawing .hero-accent { --hero-front: Canvas; --hero-side: Canvas; --hero-top: Canvas; --hairline-edge: CanvasText; }
 .w-hero__stage .w-hero__drawing .nf, .w-hero__stage .w-hero__drawing [data-hero-grid] { stroke: CanvasText; }
}

/* /css/home-abundance-scroll.css?layout=20261013&v=20261010-launch2 */
/* Only this three-part story holds. The rest of the document scrolls normally. */
.w-abundance-stage { background:var(--site-paper); }
@media (min-width:901px) and (min-height:650px) {
 .w-abundance-pinned { --story-top:calc(var(--site-header-height) + 16px); --story-height:calc(100svh - var(--story-top) - 24px); height:calc(var(--story-height) + 220svh); position:relative; }
 /* #abundance links land with the stage at its sticky top; the html scroll padding already clears the header. */
 .workshop-home .w-abundance-pinned { scroll-margin-top:calc(var(--story-top) - var(--site-header-height)); }
 .w-abundance-pinned .w-abundance-stage { position:sticky; top:var(--story-top); height:var(--story-height); display:grid; grid-template-rows:auto minmax(0,1fr); }
 /* Text sits 40px inside the rails. The intro shares the lab's columns: its 112px gap
  * (1.4 × both 40px insets) starts the paragraph on the same edge as the step text. */
 .w-abundance-pinned .w-intro { grid-template-columns:minmax(0,1.4fr) minmax(0,1fr); padding:clamp(20px,3vh,36px) 40px; gap:112px; }
 .w-abundance-pinned .w-intro h2 { font-size:clamp(34px,3.3vw,50px); margin-top:16px; }
 .w-abundance-pinned .w-intro > p { font-size:16px; line-height:24px; }
 .w-abundance-pinned .w-lab, .w-abundance-pinned .w-lab__board { min-height:0; }
 .w-abundance-pinned .w-lab__board svg { flex:1; min-height:0; height:100%; }
 .w-abundance-pinned .w-lab__content { padding:0; display:grid; grid-template-rows:repeat(3,minmax(0,1fr)); min-height:0; }
 .w-abundance-pinned .w-art-caption { padding-inline:40px; }
 .w-abundance-pinned .w-lab__step { padding:16px 40px; }
 .w-abundance-pinned .w-lab__step b { font-size:20px; }
 .w-abundance-pinned .w-lab__step :is(p,.w-lab__step-copy) { font-size:14px; line-height:20px; padding-top:8px; }
}
/* The lab's right column starts on the header's first nav divider (left of Industries): its width is the
 * nav cells' width (--nav-cells, measured by js/home-abundance-scroll.js) less 1px, so the board's border
 * lies on the divider. Only while that column fits in half the lab (the script checks; narrower windows keep
 * the 1.4 : 1 split), and never more than half. The intro follows, so its paragraph still starts on
 * the step text's edge, 40px inside the column (50% of the lab is 50% + 40px of the padded intro). */
@media (min-width:901px) {
 [data-nav-cells] .w-lab { grid-template-columns:minmax(0,1fr) min(calc(var(--nav-cells) - 1px),50%); }
 [data-nav-cells] .w-intro { grid-template-columns:minmax(0,1fr) calc(min(calc(var(--nav-cells) - 1px),50% + 40px) - 80px); }
}
.w-lab__step { --step-color:var(--w-orange); position:relative; transition:background-color 350ms; }
/* The ember bar covers the 1px divider or rail at the step's left edge instead of sitting beside it. */
.w-lab__step::before { content:""; position:absolute; z-index:2; left:-1px; top:0; bottom:0; width:4px; background:transparent; transform:scaleY(var(--step-progress,1)); transform-origin:top; transition:background-color 350ms; }
.w-lab__step[aria-pressed="true"] { box-shadow:none; background:color-mix(in srgb,var(--step-color) 8%,var(--site-paper)); }
.w-lab__step[aria-pressed="true"]::before { background:var(--step-color); }
.w-lab__step[aria-pressed="true"] b::before { content:none; }
.w-lab[data-enhanced] .w-lab__block { transition:none; }
.w-lab__imagination { opacity:0; transition:opacity 240ms ease-out; }
.w-lab[data-mode="1"] .w-lab__imagination { opacity:1; transition-delay:180ms; }
.w-lab__intelligence { opacity:0; transition:opacity 180ms; }
.w-lab[data-mode="0"] .w-lab__intelligence { opacity:.75; transition-delay:400ms; }
/* Like the hero, outlines keep their weight at every board size. The controller sizes the
 * label so it never renders below 12px on screen. */
.w-lab__board svg path { vector-effect:non-scaling-stroke; }
.w-lab__outcome { font:500 12px/16px var(--arch-mono,monospace); letter-spacing:.1em; }
/* Connections appear after the boxes have gathered; leaving hides them first. */
.w-lab__route { transition:opacity 180ms; }
.w-lab[data-mode="2"] .w-lab__route { transition:opacity 400ms 550ms; }
/* All visual emphasis uses the same progress as the cube positions. [data-mode]
 * outranks the per-mode rules above so emphasis never pops at a mode change. */
.w-abundance-pinned .w-lab[data-mode] .w-lab__imagination { opacity:var(--beat-1,0); transition:none; }
.w-abundance-pinned .w-lab[data-mode] .w-lab__intelligence { opacity:calc(var(--beat-0,1) * .75); transition:none; }
.w-abundance-pinned .w-lab[data-mode] .w-lab__route { opacity:var(--beat-2,0); transition:none; }
.w-abundance-pinned .w-lab__step { background:color-mix(in srgb,var(--step-color) calc(var(--step-weight,0) * 8%),var(--site-paper)); transition:none; }
.w-abundance-pinned .w-lab__step::before { background:var(--step-color); opacity:var(--step-weight,0); transform:none; transition:none; }
@media(prefers-reduced-motion:reduce) { .w-lab__route, .w-lab__intelligence { transition:none !important; } }
@media(prefers-reduced-motion:reduce) { .w-lab__imagination { transition:none; } }
@media(prefers-reduced-motion:reduce) { .w-lab__step { transition:none; } }
/* Forced colours drop the tinted background, so the selected step keeps its bar in a system colour. */
@media (forced-colors:active) { .w-lab__step[aria-pressed="true"]::before { forced-color-adjust:none; background:Highlight; opacity:1; } }

/* /css/fonts.css?v=20261010-launch2 */
/* Self-hosted Google Fonts; SIL Open Font Licenses in assets/fonts and assets/press/source. */
/* Martian Mono, other scripts: the full press-kit webfont, fetched only for these characters. */
@font-face {
  font-family: 'Martian Mono';
  font-style: normal;
  font-weight: 100 800;
  font-stretch: 100%;
  font-display: swap;
  src: url('/assets/press/martian-mono.woff2') format('woff2');
  unicode-range: U+0100-0130, U+0132-0151, U+0154-02BA, U+02BD-02C5, U+02C7-02D9, U+02DB, U+02DD-0303, U+0305-0307, U+0309-0328, U+032A-036F, U+0400-052F, U+1E00-1EFF, U+2070-20AB, U+20AD-20CF, U+2116, U+2248, U+2260, U+A78B-A78C;
}
/* Martian Mono, latin: width axis fixed at 100, weight axis kept. */
@font-face {
  font-family: 'Martian Mono';
  font-style: normal;
  font-weight: 100 800;
  font-stretch: 100%;
  font-display: swap;
  src: url(/assets/fonts/martian-mono-latin.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2190-2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
/* latin-ext */
@font-face {
  font-family: 'Instrument Sans';
  font-style: normal;
  font-weight: 400 600;
  font-stretch: 100%;
  font-display: swap;
  src: url(/assets/fonts/instrument-sans-latin-ext.woff2) format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
  font-family: 'Instrument Sans';
  font-style: normal;
  font-weight: 400 600;
  font-stretch: 100%;
  font-display: swap;
  src: url(/assets/fonts/instrument-sans-latin.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

/* /css/home-sections.css?v=20261012-review */
/* Homepage capabilities, Stack, process and security. */
.home-section { --block-blue: var(--brand-orange-85); --block-green: var(--brand-orange-65); --ink: #000; --muted: #656565; --line: #d7d7d7; --surface: #f9f9f9; --surface-alt: #eaeaea; --font: 'Instrument Sans', sans-serif; --mono: 'Martian Mono', monospace; --arch-ivory: var(--surface); --arch-ink: var(--ink); --arch-mono: var(--mono); --rail-inset: 40px; --header-height: 48px; --card-padding: var(--home-inset, 40px); --section-gap: 120px; }
.home-section { margin: 0px; background: var(--surface); color: var(--ink); font: 400 16px/24px var(--font); -webkit-font-smoothing: antialiased; }
.home-section h1, .home-section h2, .home-section h3 { font-weight: 500; }
.home-section a { color: inherit; text-decoration: none; }
.home-section .feature-grid { display: grid; position: relative; }
.home-section .vertex-box { position: relative; }
.home-section .security-heading { padding: 40px var(--card-padding); }
.home-section .security-heading p { max-width: 585px; margin-top: 16px; font-size: 16px; line-height: 24px; color: var(--muted); }
.home-section .security-grid { border-block: 1px solid var(--line); }
@media (max-width: 800px) {
  .home-section .security-heading { padding-block: 32px; }
}
@media (prefers-reduced-motion: reduce) {
  .home-section * { transition: none !important; animation: auto ease 0s 1 normal none running none !important; }
}
/* All six enterprise safeguards stay visible, with no disclosure controls. */
.home-section .security-grid { grid-template-columns: minmax(0, 38fr) minmax(0, 62fr); align-items: stretch; }
.home-section .security-illustration { display: flex; align-items: center; border-right: 1px solid var(--line); }
.home-section .security-illustration img { width: 100%; height: auto; }
.home-section .security-features { min-width: 0; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); }
.home-section .security-item { min-width: 0; padding: 28px var(--card-padding); }
.home-section .security-item:nth-child(even) { border-left: 1px solid var(--line); }
.home-section .security-item:nth-child(n + 3) { border-top: 1px solid var(--line); }
.home-section .security-item h3 { font: 500 22px/1.25 var(--font); letter-spacing: -.025em; }
.home-section .security-item p { margin-top: 8px; font: 400 16px/24px var(--font); color: var(--muted); }
@media (max-width: 1000px) {
  .home-section .security-grid { grid-template-columns: 1fr; }
  .home-section .security-illustration { justify-content: center; border-right: 0; border-bottom: 1px solid var(--line); }
  .home-section .security-illustration img { width: min(100%, 360px); }
}
@media (max-width: 560px) {
  .home-section .security-features { grid-template-columns: 1fr; }
  .home-section .security-item { padding-block: 24px; }
  .home-section .security-item:nth-child(even) { border-left: 0; }
  .home-section .security-item + .security-item { border-top: 1px solid var(--line); }
}
.home-section .working-floors { position: relative; display: block; width: 100%; min-height: 0px; overflow: hidden; }
.home-section .working-floors canvas { position: absolute; inset: 0px; width: 100%; height: 100%; display: block; visibility: hidden; }
.home-section .working-floors__fallback { display: block; width: 100%; height: 100%; object-fit: contain; }
.home-section .working-floors.is-ready canvas { visibility: visible; }
.home-section .working-floors.is-ready > img { visibility: hidden; }
.home-section .stack-working-preview .working-floors:focus-visible { outline-offset: -4px; }
.home-section { min-width: 0px; }
.home-section .rails { position: relative; margin-inline: 0px; border-inline: 0px; }
.home-section .stack-working-preview { min-width: 0px; }

/* Capabilities and operating-partner process. */
.home-section .section-heading { padding: 40px var(--card-padding); }
@media (max-width: 800px) {
  .home-section .section-heading { padding-block: 32px; }
}
.home-section .editorial-heading h2 > span { color: rgb(128, 128, 128); }
.home-section .editorial-heading > p { max-width: 800px; margin-top: 8px; color: var(--muted); font: 400 16px/24px var(--font); }
.home-section .process { background: var(--surface); }
.home-section .process-grid { grid-template-columns: repeat(3, minmax(0px, 1fr)); border-block: 1px solid var(--line); }
.home-section .process-card { display: flex; flex-direction: column; align-items: flex-start; min-height: 320px; padding: var(--card-padding); border-right: 1px solid var(--line); }
.home-section .process-card:last-child { border-right: 0px; }
.home-section .step-label { display: inline-flex; padding: 4px 8px; border-radius: 0; font: 400 12px/16px var(--mono); text-transform: uppercase; background: var(--color-orange-700); color:var(--brand-on-orange); }
.home-section .process-card:nth-of-type(2) .step-label { background: var(--block-blue); }
.home-section .process-card:nth-of-type(3) .step-label { background: var(--block-green); }
.home-section .process-card h3 { font-size: 24px; line-height: 1.2; letter-spacing: -0.04em; margin-top: 16px; }
.home-section .process-card p { margin-top: auto; padding-top: 80px; font-size: 16px; line-height: 24px; color: var(--muted); }
@media (max-width: 800px) {
  .home-section .process-grid { grid-template-columns: 1fr; }
  .home-section .process-card { min-height: 240px; border-right: 0px; border-bottom: 1px solid var(--line); }
  .home-section .process-card:last-child { border-bottom: 0px; }
  .home-section .process-card p { padding-top: 48px; max-width: 560px; }
}

/* Three equal capabilities, one shared title / illustration / copy rhythm. Card padding and
   right-hand dividers match the process grid below, so text edges and rules share columns. */
.home-section .capabilities-showcase { padding: 0; min-height: 0; background: var(--surface); }
/* The introduction sits on the third card's text edge; stacked below 1200px. */
.home-section .capabilities-showcase__header { display: grid; grid-template-columns: 2fr 1fr; align-items: end; gap: 0; padding: 40px 0; }
.home-section .capabilities-showcase__header > * { padding-inline: var(--card-padding); }
.home-section .capabilities-showcase__header p { max-width: 520px; color: var(--muted); font: 400 16px/24px var(--font); }
.home-section .capabilities-showcase__grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); border-block: 1px solid var(--line); }
.home-section .capabilities-showcase__grid > article { min-width: 0; padding: var(--card-padding); display: grid; grid-template-rows: auto clamp(200px, 32svh, 300px) 1fr; gap: 24px; background: var(--surface); }
.home-section .capabilities-showcase__grid > article:not(:last-child) { border-right: 1px solid var(--line); }
/* Side by side, the cards share the grid's rows: a title that wraps at tablet widths
   keeps every illustration and paragraph on the same line as its neighbours.
   The grid's row gap matches the cards' own gap, so subgrid adds no extra spacing. */
@media (min-width: 701px) {
  .home-section .capabilities-showcase__grid { grid-template-rows: auto clamp(200px, 32svh, 300px) 1fr; row-gap: 24px; }
  .home-section .capabilities-showcase__grid > article { grid-row: span 3; grid-template-rows: subgrid; }
}
/* The number badge centres on the title's first line, so two-line titles keep it level. */
.home-section .capabilities-showcase__grid h3 { --title-size: clamp(19px, 1.65vw, 24px); display: flex; align-items: flex-start; gap: 12px; margin: 0; font-size: var(--title-size); line-height: 1.2; letter-spacing: -.035em; }
.home-section .capability-number { display: inline-grid; flex: 0 0 26px; width: 26px; height: 26px; place-items: center; margin-top: calc(var(--title-size, 24px) * .6 - 13px); background: var(--accent, var(--brand-orange)); color:var(--brand-on-orange); font: 500 12px/16px var(--font); }
.home-section .capability-feature__visual { position: relative; width: 100%; height: 100%; min-height: 0; margin: 0; aspect-ratio: auto; overflow: hidden; }
/* Bias the crop left so the people remain in view in the narrowest cards. */
.home-section .capability-feature--implementation .enablement-image img { position: static; width: 100%; height: 100%; max-width: 100%; object-fit: cover; object-position: 16% 50%; filter: grayscale(1); }
.home-section .capability-feature__copy { min-width: 0; }
.home-section .capability-feature__copy p { color: var(--muted); font-size: 16px; line-height: 24px; }
.home-section .capabilities-stack__link { position: static; width: fit-content; min-width: 0; }
.home-section .capabilities-stack__scene.stack-working-preview { position: relative; display: block; grid-area: auto; height: 100%; min-height: 0; margin: 0; padding: 0; border: 0; background: transparent; contain: none; }
.home-section .capabilities-stack__scene .working-floors { position: absolute; inset: 0; width: 100%; height: 100%; min-height: 0; cursor: default; touch-action: auto; }
.home-section .factory-preview img { display: block; width: 100%; height: 100%; object-fit: contain; }
@media (max-width: 1050px) {
  .home-section .capabilities-showcase__grid > article { gap: 20px; }
}
@media (min-width: 701px) and (max-width: 1050px) {
  .home-section .capabilities-showcase__grid { row-gap: 20px; }
}
@media (max-width: 1199px) {
  .home-section .capabilities-showcase__header { grid-template-columns: 1fr; gap: 16px; }
}
@media (max-width: 800px) {
  .home-section .capabilities-showcase__header { padding-block: 32px; }
}
@media (max-width: 700px) {
  .home-section .capabilities-showcase__grid { grid-template-columns: 1fr; }
  .home-section .capabilities-showcase__grid > article { grid-template-rows: auto 260px auto; }
  .home-section .capabilities-showcase__grid > article:not(:last-child) { border-right: 0; }
  .home-section .capabilities-showcase__grid > article + article { border-top: 1px solid var(--line); }
}

/* One editorial H2 scale for landing sections, not the footer labels inside main. */
.workshop-home main h2:not(.pl-footer h2) { letter-spacing: -.04em; }
/* Phones use the shared 32px scale in site-rails.css. */
@media (width > 600px) {
  .workshop-home main h2:not(.pl-footer h2) { font-size: 40px; line-height: 40px; }
}
/* Balanced headings and no single-word last lines; each authored heading line wraps on its own. */
.workshop-home main :is(h2, h3) { text-wrap: balance; }
.workshop-home main p { text-wrap: pretty; }
.workshop-home main .h2-line { display: block; }

/* /css/site-nav.css?v=20261013-no-nav-flash */
:root { --site-header-height: 60px; }
:where(html) { scroll-padding-top: var(--site-header-height); }
.site-nav { --header-height:60px; --header-paper:var(--site-paper, var(--surface, #F9F9F9)); --line:#d7d7d7; --ink:#000; --font:"Instrument Sans",sans-serif; --mono:"Martian Mono",monospace; font-family:var(--font); }
.site-nav { position: sticky; top: 0px; z-index: 30; background: var(--header-paper); color: var(--ink); border-bottom: 1px solid var(--line); }
/* Width and centring come from site-rails.css. */
.site-nav .header-inner { position: relative; height: var(--header-height); display: flex; align-items: center; justify-content: space-between; gap: 24px; border-inline: 1px solid var(--line); }
.site-nav .brand { display: inline-flex; align-items: center; gap: 12px; flex-shrink: 0; font-size: 16px; font-weight: 600; line-height: 24px; letter-spacing: -0.7px; color: var(--ink); height: var(--header-height); padding-inline: 16px; border-right: 1px solid var(--line); }
.site-nav .brand img { width: 140px; height: auto; }
.site-nav nav { display: flex; align-items: center; gap: 0px; }
.site-nav .about-link { display: inline-flex; align-items: center; justify-content: center; gap: 8px; min-width: 120px; height: var(--header-height); min-height: var(--header-height); padding: 0px 16px; border-inline: 1px solid var(--line); border-radius: 0px; background: var(--header-paper); color: var(--ink); font: 600 14px/20px var(--font); letter-spacing: -0.2px; text-transform: none; }
@media (max-width: 560px) {
.site-nav .brand { gap: 8px; }
}
/* Desktop navigation fits from 768px; narrower headers use the disclosure menu. */
@media (max-width: 767px) {
.site-nav.nav-ready nav { position: absolute; top: 100%; left: -1px; right: -1px; max-height: calc(100dvh - var(--header-height)); overflow-y: auto; padding: 16px 24px 24px; background: var(--header-paper); flex-direction: column; align-items: stretch; border-block: 0 1px solid var(--line); border-inline: 0; }
.site-nav:not(.nav-ready) .brand span { display: none; }
.site-nav:not(.nav-ready) .header-inner { flex-wrap: wrap; height: auto; min-height: var(--header-height); }
}
/* Adjacent navigation cells share one divider. */
@media (min-width: 768px) {
.site-nav .about-link + .about-link { border-left: 0; }
}
.site-nav .about-link:hover { background: rgb(242, 242, 242); }
@media (max-width: 767px) {
.site-nav .header-inner { padding-inline: 24px; gap: 8px; }
.site-nav .brand { padding: 0px; border: 0px; }
.site-nav .brand img { width: 140px; height: auto; }
.site-nav .about-link { border: 1px solid var(--line); }
.site-nav .about-link + .about-link { border-top: 0; }
/* Link text shares the 12px inset of the menu CTA below it. */
.site-nav.nav-ready nav .about-link { justify-content: flex-start; text-align: left; padding-inline: 12px; }
}

.site-nav [hidden] { display:none!important; }
.site-nav :focus-visible { outline:2px solid currentColor; outline-offset:-4px; }

/* Industry navigation: the same destination list on every site header. */
.site-nav .industry-menu{position:relative;align-self:stretch}
.site-nav .industry-trigger{display:flex;gap:8px;border:1px solid #e9e9e9;border-block:0;cursor:pointer;min-width:140px}
.site-nav .industry-trigger>img{width:16px;height:16px;transition:transform 180ms}
.site-nav .industry-trigger[aria-expanded=true]>img{transform:rotate(180deg)}
.site-nav .industry-dropdown{position:absolute;z-index:40;top:100%;left:0;min-width:260px;background:#fff;color:#1d1915;border:1px solid #e9e9e9;border-top:0;display:none;padding:0}
.site-nav .industry-menu.is-open .industry-dropdown{display:grid}
.site-nav .industry-dropdown{max-height:min(480px,calc(100dvh - 80px));overflow-y:auto}
.site-nav .industry-dropdown a{display:flex;align-items:center;min-height:48px;padding:16px;color:inherit;font:500 12px/16px var(--mono);text-transform:uppercase;letter-spacing:-.24px;text-decoration:none}
.site-nav .industry-dropdown>:not(:first-child){border-top:1px solid #e9e9e9}
.site-nav .industry-dropdown a:hover,.site-nav .industry-dropdown a:focus-visible{background:#f5f5f3}
.site-nav .industry-dropdown a[aria-current=page]{background:#f5f5f3}
@media(min-width:768px){
  :root{--site-header-height:48px}
  .site-nav{--header-height:48px}
  .site-nav .brand img{width:140px;height:auto}
  .site-nav nav{align-self:stretch}
  .site-nav .about-link{font:600 16px/24px var(--font);letter-spacing:-.3px}
  .site-nav .brand{border-right:1px solid var(--line)}
  .site-nav .industry-trigger{border-left:1px solid var(--line);border-right:1px solid var(--line)}
  .site-nav .industry-menu+.about-link{border-left:0}
  .site-nav nav .about-link[aria-current=page],.site-nav .industry-menu:has(.industry-dropdown a[aria-current=page]) .industry-trigger{box-shadow:inset 0 -2px var(--brand-orange)}
  body .site-nav nav>.ui-button.ui-button--filled{align-self:stretch;min-height:var(--header-height);height:var(--header-height);margin:0 0 0 auto;padding-inline:20px;border:0;border-left:1px solid var(--line);border-radius:0;font:600 16px/24px var(--font);white-space:nowrap}
  .site-nav .about-link,.site-nav .industry-trigger{transition:background-color .15s cubic-bezier(.4,0,.2,1),color .15s cubic-bezier(.4,0,.2,1)}
  .site-nav .industry-dropdown{display:grid;top:calc(100% + 1px);left:-1px;width:320px;min-width:0;max-height:min(420px,calc(100dvh - 80px));border:1px solid var(--line);box-shadow:0 16px 36px rgb(0 0 0 / .1);opacity:0;visibility:hidden;pointer-events:none;transform:translateY(-8px);transition:opacity .2s ease,transform .28s cubic-bezier(.22,1,.36,1),visibility 0s linear .28s}
  .site-nav .industry-menu.is-open .industry-dropdown{opacity:1;visibility:visible;pointer-events:auto;transform:translateY(0);transition:opacity .2s ease,transform .28s cubic-bezier(.22,1,.36,1),visibility 0s}
  .site-nav .industry-dropdown a{justify-content:space-between;gap:20px;min-height:56px;padding:16px 20px;color:var(--ink);font:500 16px/24px var(--font);letter-spacing:-.2px;text-transform:none;transition:background-color .15s cubic-bezier(.4,0,.2,1)}
  .site-nav .industry-dropdown a::after{content:'';display:block;flex:none;width:18px;height:18px;background:currentColor;-webkit-mask:url('/assets/icons/pixel-chevron-right.svg') center / contain no-repeat;mask:url('/assets/icons/pixel-chevron-right.svg') center / contain no-repeat;transition:transform .24s steps(3,end)}
  .site-nav .industry-dropdown a:hover,.site-nav .industry-dropdown a:focus-visible{background:var(--brand-orange-20)}
  .site-nav .industry-dropdown a:hover::after,.site-nav .industry-dropdown a:focus-visible::after{transform:translateX(4px)}
  .site-nav .industry-dropdown a[aria-current=page]{background:var(--brand-orange-20)}
}
@media(min-width:768px) and (max-width:800px){.site-nav .brand span{display:none}}
@media(max-width:767px){
  .site-nav .industry-menu{width:100%}
  .site-nav .industry-trigger{width:100%;justify-content:space-between;border-inline:0}
  .site-nav .industry-dropdown{position:static;min-width:0;max-height:none;overflow:visible;border-inline:0;border-top:0}
  .site-nav .industry-dropdown>a{padding-inline:24px}
}

/* Mobile navigation: full-height panel with Mistral-style horizontal submenus. */
.site-mobile-nav { display:none; }
@media(max-width:767px){
  html.site-mobile-menu-open { overflow:hidden; }
  .site-nav .header-inner { padding-inline:16px 0; }
  .site-nav .menu-toggle.ui-button { align-self:stretch; justify-content:center; width:60px; min-width:60px; height:var(--header-height); min-height:var(--header-height); margin:0; padding:0; border:0; border-left:1px solid var(--line); background:transparent; border-radius:0; }
  .site-nav .menu-toggle.ui-button:hover { background:#ececec; }
  .site-nav .site-mobile-nav__toggle-icon { display:block; flex:none; width:20px; height:20px; font-size:0; background:currentColor; -webkit-mask:url('/assets/icons/pixel-menu.svg') center / contain no-repeat; mask:url('/assets/icons/pixel-menu.svg') center / contain no-repeat; }
  .site-nav .menu-toggle[aria-expanded=true] .site-mobile-nav__toggle-icon { -webkit-mask-image:url('/assets/icons/pixel-close.svg'); mask-image:url('/assets/icons/pixel-close.svg'); }
  .site-nav.nav-ready #mobile-nav { display:none !important; }
  /* Paint the collapsed header before the deferred nav module runs, so phones never flash the wrapped desktop links. */
  @media(scripting:enabled){
    .site-nav:not(.nav-ready) .header-inner { flex-wrap:nowrap; height:var(--header-height); }
    .site-nav:not(.nav-ready) #mobile-nav { display:none !important; }
    .site-nav:not(.nav-ready) .menu-toggle.ui-button[hidden] { display:flex !important; font-size:0 !important; }
    .site-nav:not(.nav-ready) .menu-toggle.ui-button > * { display:none; }
    .site-nav:not(.nav-ready) .menu-toggle.ui-button::before { content:''; display:block; flex:none; width:20px; height:20px; background:currentColor; -webkit-mask:url('/assets/icons/pixel-menu.svg') center / contain no-repeat; mask:url('/assets/icons/pixel-menu.svg') center / contain no-repeat; }
  }
  .site-nav .site-mobile-nav { position:fixed; z-index:31; display:block; top:var(--header-height); left:0; right:0; height:calc(100dvh - var(--header-height)); overflow:hidden; background:var(--header-paper); border-top:1px solid var(--line); opacity:0; visibility:hidden; pointer-events:none; transform:translateY(-16px); clip-path:inset(0 0 100% 0); transition:clip-path .36s cubic-bezier(.4,0,.2,1),opacity .36s ease-in,transform .36s cubic-bezier(.4,0,.2,1),visibility 0s linear .36s; }
  /* Closing wipes the panel up from its bottom edge; opening keeps its drop and fade, with no wipe. */
  .site-nav .site-mobile-nav.is-open { opacity:1; visibility:visible; pointer-events:auto; transform:translateY(0); clip-path:inset(0); transition:transform .38s cubic-bezier(.22,1,.36,1),opacity .28s ease,visibility 0s; }
  .site-mobile-nav__screen { position:absolute; inset:0 0 calc(82px + env(safe-area-inset-bottom)); overflow:hidden; background:var(--header-paper); transition:transform .42s cubic-bezier(.22,1,.36,1); }
  .site-mobile-nav__screen--root { transform:translateX(0); }
  .site-mobile-nav[data-view=industries] .site-mobile-nav__screen--root { transform:translateX(-30%); }
  .site-mobile-nav__screen--sub { transform:translateX(100%); }
  .site-mobile-nav[data-view=industries] [data-mobile-screen=industries] { transform:translateX(0); }
  .site-mobile-nav__scroll { height:100%; overflow-y:auto; overscroll-behavior:contain; }
  .site-mobile-nav__subhead { display:flex; align-items:center; min-height:60px; border-bottom:1px solid var(--line); font:500 14px/20px var(--mono); text-transform:uppercase; }
  .site-mobile-nav__item { box-sizing:border-box; display:flex; align-items:center; justify-content:space-between; gap:20px; width:100%; min-height:60px; margin:0; padding:14px 16px; border:0; border-bottom:1px solid var(--line); border-radius:0; background:transparent; color:var(--ink); font:500 22px/30px var(--font); text-align:left; text-decoration:none; cursor:pointer; }
  .site-mobile-nav__item:hover,.site-mobile-nav__item:focus-visible { background:var(--brand-orange-20); }
  .site-mobile-nav__item[aria-current=page] { background:#ececec; }
  .site-mobile-nav__arrow,.site-mobile-nav__back-arrow { display:block; flex:none; width:20px; height:20px; background:currentColor; -webkit-mask:url('/assets/icons/pixel-chevron-right.svg') center / contain no-repeat; mask:url('/assets/icons/pixel-chevron-right.svg') center / contain no-repeat; }
  .site-mobile-nav__back { display:flex; align-items:center; justify-content:center; flex:none; width:60px; min-height:60px; margin-right:12px; padding:0; border:0; border-right:1px solid var(--line); background:transparent; color:var(--ink); cursor:pointer; }
  .site-mobile-nav__back:hover { background:#ececec; }
  .site-mobile-nav__back-arrow { transform:rotate(180deg); }
  .site-mobile-nav__bottom { position:absolute; bottom:0; left:0; right:0; padding:12px 16px calc(12px + env(safe-area-inset-bottom)); border-top:1px solid var(--line); background:var(--header-paper); }
  body .site-nav .site-mobile-nav__cta.ui-button.ui-button--filled { width:100%; max-width:none; min-height:56px; padding:16px; color:var(--brand-on-orange); background:var(--brand-orange); border-color:var(--brand-orange); font:600 14px/20px var(--font); }
  body .site-nav .site-mobile-nav__cta.ui-button.ui-button--filled:hover { color:var(--brand-on-orange); background:var(--brand-orange-85); border-color:var(--brand-orange-85); }
}
@media(max-width:390px){ .site-mobile-nav__item { font-size:20px; line-height:28px; } }
@media(prefers-reduced-motion:reduce){
  .site-nav .site-mobile-nav,.site-mobile-nav__screen,.site-nav .industry-dropdown,.site-nav .industry-dropdown a::after { transition:none; }
}

/* /css/fold-corners.css?v=20261010-launch2 */
/* One section, one colour, four outer corners. Internal joins are not sections. */
.fold-corners { position: relative; }
/* Content headings use the section rails without coloured corner squares. */
.fold-corners:has(h2) > .edge-markers { display: none; }
:is(.workshop-home, .about-v2, .legal-page, .stack-reader) .edge-markers {
  position: absolute;
  inset: 0;
  pointer-events: none;
  z-index: 4;
}
:is(.workshop-home, .about-v2, .legal-page, .stack-reader) .edge-markers i:nth-child(n) { position: absolute; width: 7px; height: 7px; }
:is(.workshop-home, .about-v2, .legal-page, .stack-reader) .edge-markers i:nth-child(1) { background: var(--brand-orange-85); }
:is(.workshop-home, .about-v2, .legal-page, .stack-reader) .edge-markers i:nth-child(2) { background: var(--brand-orange-65); }
:is(.workshop-home, .about-v2, .legal-page, .stack-reader) .edge-markers i:nth-child(3) { background: var(--brand-orange-65); }
:is(.workshop-home, .about-v2, .legal-page, .stack-reader) .edge-markers i:nth-child(4) { background: var(--brand-orange); }
:is(.workshop-home, .about-v2, .legal-page, .stack-reader) .edge-markers i:nth-child(1) { left: -4px; top: -4px; }
:is(.workshop-home, .about-v2, .legal-page, .stack-reader) .edge-markers i:nth-child(2) { right: -4px; top: -4px; }
:is(.workshop-home, .about-v2, .legal-page, .stack-reader) .edge-markers i:nth-child(3) { left: -4px; bottom: -4px; }
:is(.workshop-home, .about-v2, .legal-page, .stack-reader) .edge-markers i:nth-child(4) { right: -4px; bottom: -4px; }
/* Preserve the existing clip/scroll contract while allowing the full square past the rail. */
.workshop-home main { overflow-clip-margin: 4px; }
/* Remove inherited mobile/card/heading markers at seams inside a section. */
.workshop-home :is(.w-abundance-stage, .capabilities-showcase, .process, .pl-proof, .people-fold, .security) > .edge-markers > i:nth-child(-n + 2) {
  display: none;
}

/* Mobile seams have one marker owner. The preceding section keeps its bottom
   pair while the following section's top pair is suppressed across the rail gap. */
@media (max-width: 800px) {
  .workshop-home .w-divider + #abundance .w-abundance-stage > .edge-markers > i:nth-child(-n + 2),
  .workshop-home .w-divider + .home-section > .fold-corners > .edge-markers > i:nth-child(-n + 2),
  .workshop-home .w-divider + .pl-section > .edge-markers > i:nth-child(-n + 2),
  .workshop-home .w-divider + .home-section .site-footer > .fold-corners > .edge-markers > i:nth-child(-n + 2) {
    visibility: hidden;
  }
}
/* The open disclosure menu spans rail to rail; corner squares beneath it would peek out at its sides. */
body:has(.site-nav .menu-toggle[aria-expanded="true"]) .edge-markers,
body:has(.site-nav .menu-toggle[aria-expanded="true"]) .press-section::before,
body:has(.site-nav .menu-toggle[aria-expanded="true"]) .press-section::after { visibility: hidden; }

/* /css/site-rails.css?v=20261012-review */
/* One content edge for the navbar and every public page. */
:root { --site-content-max: 1440px; --site-gutter: 40px; --site-header-inset: max(var(--site-gutter), calc((100% - var(--site-content-max)) / 2)); }
.site-nav .header-inner, .stack-reader .site-nav .header-inner {
  width: min(var(--site-content-max), calc(100% - var(--site-gutter) * 2)); max-width: var(--site-content-max); margin-inline: auto;
}
.website { width: 100%; max-width: none; }
.website .rails, .reader-layout, .reader-closing, .stack-reader .j-ownership, .stack-reader .site-footer {
  width: min(var(--site-content-max), calc(100% - var(--site-gutter) * 2)); max-width: var(--site-content-max); margin-inline: auto;
}
/* Stack does not load page-shell.css; carry its rails through the footer spacer. */
.stack-reader .site-footer { border-inline: 1px solid var(--line); }
.workshop-home .pl-frame, .workshop-home .pl-header-spacer { padding-inline: max(var(--site-gutter), calc((100% - var(--site-content-max)) / 2)); }
.workshop-home .capabilities-showcase { width: auto; max-width: 100%; margin-inline: 0; }
@media (max-width: 800px) { :root { --site-gutter: 24px; } }
@media (max-width: 640px) { :root { --site-gutter: 16px; } }

/* Shared mobile H2 scale; its (0,1,2) specificity beats single-class section headings, while two-class component labels keep their own sizes. */
@media (max-width: 600px) {
  body:not([data-industry]) h2 { font-size: 32px; line-height: 32px; }
}

/* /css/site-buttons.css?v=20261012-arrow-slide */
/* Shared action buttons on every public page: filled and outline.
   Content selectors (portrait cards, chapter lists, accordions) retain their layouts. */
:root {
  --button-font: 'Instrument Sans', sans-serif;
  --button-ink: #191919;
  --button-line: #d7d7d7;
  --button-muted: #525252;
  --button-surface: #E5E5E5;
}
body .ui-button.ui-button {
  box-sizing: border-box;
  display: inline-flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  min-height: 44px;
  height: auto;
  max-width: 100%;
  padding: 11px 16px;
  border: 1px solid var(--button-line);
  border-radius: 0;
  font: 600 14px/20px var(--button-font);
  letter-spacing: -.26px;
  text-transform: none;
  text-decoration: none;
  text-align: left;
  white-space: normal;
  cursor: pointer;
  box-shadow: none;
  transition: background-color 180ms ease, border-color 180ms ease, color 180ms ease;
}
@media (min-width: 768px) {
  body .ui-button.ui-button:not(.ui-button--icon) { font-size: 16px; line-height: 24px; }
}
body .ui-button.ui-button--filled {
  color: #fff;
  background: var(--button-ink);
  border-color: var(--button-ink);
}
body .ui-button.ui-button--muted {
  min-height: 36px;
  padding: 8px 12px;
  gap: 8px;
  border: 0;
  border-radius: 0;
  color: var(--button-muted);
  background: var(--button-surface);
  letter-spacing: 0;
}
body .ui-button.ui-button--filled:hover:not(:disabled) {
  color: #fff;
  background: #353535;
  border-color: #353535;
}
body .ui-button.ui-button--outline {
  color: var(--button-ink);
  background: #fff;
  border-color: var(--button-line);
}
body .ui-button.ui-button--outline:hover:not(:disabled) {
  color: var(--button-ink);
  background: #eaeaea;
  border-color: #b8b8b8;
}
/* Ink ring by default; dark or orange containers set --focus-ring: #FFFFFF. */
body .ui-button.ui-button:focus-visible {
  outline: 2px solid var(--focus-ring, #1B1B1B);
  outline-offset: 2px;
}
body .ui-button.ui-button:disabled { opacity: .3; cursor: not-allowed; }
body .ui-button.ui-button[hidden] { display: none; }
body .ui-button.ui-button > .ui-button__icon {
  flex: 0 0 16px;
  width: 16px;
  height: 16px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  color: inherit;
  font: 400 24px/16px var(--button-font);
  letter-spacing: 0;
}
/* Keep each page's existing button colours; standard CTAs share the Figma label and pixel arrow. */
body .ui-button.ui-button:not(.ui-button--icon):not(.menu-toggle):not(.contact-done):not([data-story-back]):not(.press-download) > .ui-button__icon { display:none; }
body .ui-button.ui-button:not(.ui-button--icon):not(.menu-toggle):not(.contact-done):not([data-story-back]):not(.press-download)::after {
  content:'';
  display:block;
  flex:0 0 18px;
  width:18px;
  height:18px;
  background:currentColor;
  -webkit-mask:url('/assets/icons/pixel-chevron-right.svg') center / contain no-repeat;
  mask:url('/assets/icons/pixel-chevron-right.svg') center / contain no-repeat;
}
body .ui-button.ui-button:not(.ui-button--icon):not(.menu-toggle):not(.contact-done):not([data-story-back]):not(.press-download):hover::after {
  animation:pl-button-arrow-slide .32s steps(4,end) both;
}
@keyframes pl-button-arrow-slide { from { transform:translateX(-12px); opacity:0; } to { transform:translateX(0); opacity:1; } }
body .ui-button.ui-button[data-story-back] > .ui-button__icon { display:none; }
body .ui-button.ui-button[data-story-back]::before {
  content:'';
  display:block;
  flex:0 0 18px;
  width:18px;
  height:18px;
  background:currentColor;
  -webkit-mask:url('/assets/icons/pixel-chevron-right.svg') center / contain no-repeat;
  mask:url('/assets/icons/pixel-chevron-right.svg') center / contain no-repeat;
  transform:scaleX(-1);
}
body .ui-button.ui-button[data-story-back]:hover::before {
  animation:pl-button-arrow-slide-back .32s steps(4,end) both;
}
@keyframes pl-button-arrow-slide-back { from { transform:translateX(12px) scaleX(-1); opacity:0; } to { transform:translateX(0) scaleX(-1); opacity:1; } }
body .ui-button.ui-button--icon {
  flex: 0 0 44px;
  width: 44px;
  height: 44px;
  padding: 0;
  justify-content: center;
  font-size: 20px;
  line-height: 24px;
}
body .ui-button.ui-button--icon img { width: 18px; height: 18px; }
body .site-nav .button-primary.ui-button { align-self: center; margin-inline: 8px; }
@media (min-width: 601px) and (max-width: 900px) {
  body .site-nav .button-primary.ui-button { font-size: 14px; white-space: nowrap; padding-inline: 12px; }
  body .site-nav .about-link:not(.industry-trigger) { min-width: 104px; padding-inline: 12px; }
}
body .site-nav .menu-toggle.ui-button { display: none; }
@media (max-width: 600px) {
  body .ui-button.ui-button:not(.ui-button--icon):not(.ui-button--muted):not(.press-download):not(.pl-footer__cta):not(.button-primary) {
    min-height: 36px;
    padding: 7px 12px;
    gap: 8px;
    font-size: 14px;
    line-height: 20px;
  }
}
/* Disclosure navigation (site-nav.css): the same compact header controls from 767px down. */
@media (max-width: 767px) {
  body .site-nav .ui-button.ui-button { min-height: 36px; padding: 7px 12px; gap: 8px; }
  body .site-nav.nav-ready .menu-toggle.ui-button { display: inline-flex; }
  body .site-nav .button-primary.ui-button { align-self: stretch; min-height: var(--header-height); padding: 0 12px; margin: 8px 0 0; }
}
@media (prefers-reduced-motion: reduce) {
  body .ui-button.ui-button { transition: none; }
  body .ui-button.ui-button:hover::after,
  body .ui-button.ui-button[data-story-back]:hover::before { animation:none !important; }
}

body .ui-button.ui-button--compact {
  min-height: 36px; padding: 8px 12px; gap: 8px; border: 0; letter-spacing: 0;
}

/* /css/site-footer.css?v=20261013-framed-footer */
/* Horizon footer: logo orange and its white tints on a pixel grid. */
.brand-footer { --mono: 'Martian Mono', monospace; --footer-heading-size: 40px; --footer-ember:var(--brand-orange); --footer-tint:var(--brand-orange-65); --footer-pale:var(--brand-orange-20); --footer-cell: 32px; padding-block: 32px; font-family: 'Instrument Sans', sans-serif; }
.brand-footer__panel { --focus-ring: #FFFFFF; position: relative; background: #000; color: #fff; }
/* Corner squares centred on the rails at the panel's four corners; the bottom
   band of footer padding keeps the lower pair inside the page. */
.brand-footer__panel > .edge-markers { position: absolute; inset: 0; z-index: 4; pointer-events: none; }
body .brand-footer__panel > .edge-markers i:nth-child(n) { position: absolute; width: 7px; height: 7px; background:var(--footer-tint); }
.brand-footer__panel > .edge-markers i:nth-child(odd) { left: -4px; }
.brand-footer__panel > .edge-markers i:nth-child(even) { right: -4px; }
.brand-footer__panel > .edge-markers i:nth-child(-n + 2) { top: -4px; }
.brand-footer__panel > .edge-markers i:nth-child(n + 3) { bottom: -4px; }
.brand-footer__main { position: relative; width: 100%; min-width: 0; min-height: 320px; overflow: clip; }
.brand-footer__main::before { content: ''; position: absolute; inset: 0; background-image: linear-gradient(#ffffff1c 1px, transparent 1px), linear-gradient(270deg, #ffffff1c 1px, transparent 1px); background-size: var(--footer-cell) var(--footer-cell); background-position: right bottom; pointer-events: none; }
/* Twenty cells wide, so every pixel block fills one grid cell and the lines run through the gaps. */
.brand-footer__pattern { position: absolute; bottom: 0; right: 0; width: calc(var(--footer-cell) * 20); aspect-ratio: 1200 / 627; pointer-events: none; }
.brand-footer__pattern > i { position: absolute; display: block; left: var(--x); top: var(--y); width: var(--size); aspect-ratio: 1; background: var(--color); }
.brand-footer__pattern > .brand-footer__outline { border:2px solid var(--color); background:transparent; opacity:.78; }
.brand-footer__pattern > .brand-footer__outline + .brand-footer__outline { opacity:.62; }
.brand-footer__copy { position: relative; z-index: 1; display: flex; flex-direction: column; align-items: flex-start; padding: 32px 40px 20px; }
.brand-footer .brand-footer__headline { margin: 0; padding: 0; font: 500 var(--footer-heading-size)/1 'Instrument Sans', sans-serif; letter-spacing: -.96px; color: #fff; }
/* Match the heading's visible letter edge, not its font box. */
.brand-footer__socials { display: flex; align-items: center; gap: 24px; margin-top: 16px; padding-inline-start: calc(var(--footer-heading-size) * .07); }
/* 44px targets around the 24px icons; the negative margin keeps the visible spacing. */
.brand-footer__socials a { display: grid; place-items: center; width: 44px; height: 44px; margin: -10px; color: #fff; opacity: .7; transition: opacity 160ms ease; }
.brand-footer__socials a:hover { opacity: .5; }
.brand-footer__socials img { display: block; width: 24px; height: 24px; }
.brand-footer__socials img[src$="instagram.svg"] { transform: scale(1.15); }
.brand-footer__links { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 16px; min-height: 64px; padding: 8px 40px; border-top: 1px solid #ffffff21; font: 500 14px/20px var(--mono); text-transform: uppercase; }
.brand-footer__links > div { display: flex; flex-wrap: wrap; gap: 8px 24px; }
.brand-footer__links a { display: inline-flex; align-items: center; min-height: 44px; color: inherit; text-decoration: none; text-underline-offset: 4px; }
.brand-footer__links a:hover { text-decoration: underline; }
body .brand-footer a:focus-visible { outline: 2px solid var(--focus-ring); outline-offset: 2px; }
@media (min-width: 601px) and (max-width: 1000px) {
 .brand-footer { --footer-cell: 24px; }
}
@media (min-width: 601px) and (max-width: 800px) {
 .brand-footer__copy { padding-inline: 24px; }
 .brand-footer__links { padding-inline: 24px; }
}
@media (max-width: 600px) {
 .brand-footer { --footer-heading-size: clamp(26px, 7.2vw, 32px); --footer-cell: 24px; padding-block: 24px; }
 .brand-footer__main { min-height: 280px; }
 .brand-footer__main::before { background-position: calc(50% + var(--footer-cell) / 2) bottom; }
 .brand-footer__pattern { left:50%; right:auto; transform:translateX(-50%); }
 .brand-footer__copy { min-height: 0; justify-content: flex-start; padding: 24px; }
 .brand-footer .brand-footer__headline { letter-spacing: -.64px; }
 .brand-footer__socials { margin-top: 16px; }
 .brand-footer__links { flex-direction: column; align-items: flex-start; gap: 4px; padding: 12px 24px; font-size: 12px; }
 .brand-footer__links > div { flex-wrap: wrap; gap: 4px 12px; }
 /* The domain gets the links' 44px row, so every row sits on a 48px pitch. */
 .brand-footer__links > span { display: flex; align-items: center; min-height: 44px; }
}
/* Forced colours replace the black panel with Canvas; keep the white icons on their own black tile. */
@media (forced-colors: active) {
 .brand-footer__socials img { forced-color-adjust: none; background: #000; }
}
@media print { .brand-footer, .pl-footer { display: none; } }

/* The footer sits between the page rails, as on the homepage, and its grid runs one gutter inside them. */
.pl-footer { --footer-rule:#414141; --footer-rail-left:var(--site-header-inset); --footer-rail-middle:36.111%; --footer-rail-right:var(--site-header-inset); --pixel-count:40; background:#282828; color:#f8f8f8; border-radius:8px 8px 0 0; overflow:hidden; font-family:'Instrument Sans',sans-serif; }
body .pl-footer.site-footer.rails { width:min(var(--site-content-max),calc(100% - var(--site-gutter) * 2)); max-width:var(--site-content-max); margin-inline:auto; border-inline:1px solid var(--line,#d7d7d7); border-radius:0; box-sizing:border-box; }
/* The homepage frame already draws the rails around its footer. */
.workshop-home .pl-footer.site-footer.rails { width:100%; max-width:none; margin-inline:0; border-inline:0; }
.pl-footer__body,.pl-footer__pixel-band { background-image:linear-gradient(var(--footer-rule),var(--footer-rule)),linear-gradient(var(--footer-rule),var(--footer-rule)),linear-gradient(var(--footer-rule),var(--footer-rule)); background-size:1px 100%; background-position:var(--footer-rail-left) top,var(--footer-rail-middle) top,calc(100% - var(--footer-rail-right)) top; background-repeat:no-repeat; }
.pl-footer__body { position:relative; }
.pl-footer__intro,.pl-footer__directory,.pl-footer__meta { position:relative; }
.pl-footer__intro::after,.pl-footer__directory::after,.pl-footer__meta::after,.pl-footer__pixel-band::before,.pl-footer__pixel-band::after { content:''; position:absolute; left:var(--footer-rail-left); right:var(--footer-rail-right); height:1px; background:var(--footer-rule); pointer-events:none; }
.pl-footer__intro::after,.pl-footer__directory::after,.pl-footer__meta::after,.pl-footer__pixel-band::after { bottom:0; }
.pl-footer__pixel-band::before { top:0; }
.pl-footer__intro,.pl-footer__directory,.pl-footer__meta { display:grid; grid-template-columns:var(--footer-rail-left) calc(var(--footer-rail-middle) - var(--footer-rail-left)) minmax(0,1fr) var(--footer-rail-right); min-width:0; }
.pl-footer__intro { min-height:190px; }
.pl-footer__intro-main { grid-column:2; padding:50px 32px 24px; min-width:0; }
.pl-footer__wordmark { display:inline-block; color:#fff; font:600 23px/29px 'Instrument Sans',sans-serif; text-decoration:none; }
.pl-footer__intro-main p { max-width:368px; margin:10px 0 0; color:#a7a7a7; font:400 14px/21px 'Instrument Sans',sans-serif; }
.pl-footer__intro-side { grid-column:3; justify-self:end; margin:50px 32px 0; text-decoration:none; }
.pl-footer__brand-mark { display:block; width:36px; height:36px; }
.pl-footer__directory { min-height:0; padding-block:32px 40px; box-sizing:border-box; }
.pl-footer__contact { grid-column:2; padding-inline:32px; min-width:0; }
/* Home: the wordmark and introduction lead the first column, above its button. */
.pl-footer__contact > p { max-width:368px; margin:10px 0 0; color:#a7a7a7; font:400 14px/21px 'Instrument Sans',sans-serif; }
.pl-footer__contact > p + .pl-footer__cta.ui-button.ui-button { width:auto; min-width:164px; margin-top:24px; }
.pl-footer__nav { grid-column:3; display:grid; grid-template-columns:1.15fr 1.35fr .9fr 1fr; gap:24px; min-width:0; padding-inline:32px; }
.pl-footer__stack { display:contents; }
.pl-footer__stack:first-child > .pl-footer__column:first-child { grid-column:1; grid-row:1; }
.pl-footer__stack:nth-child(2) > .pl-footer__column:first-child { grid-column:2; grid-row:1; }
.pl-footer__stack:first-child > .pl-footer__column:nth-child(2) { grid-column:3; grid-row:1; }
.pl-footer__stack:nth-child(2) > .pl-footer__column:nth-child(2) { grid-column:4; grid-row:1; }
.pl-footer__column { min-width:0; }
.pl-footer__column h2 { margin:0 0 16px; color:#a5a5a5; font:500 12px/16px 'Martian Mono',monospace; text-transform:uppercase; letter-spacing:.01em; }
/* Two classes outrank the shared mobile H2 scale in site-rails.css, so directory labels keep the overline scale. */
.pl-footer .pl-footer__column h2 { font-size:12px; line-height:16px; letter-spacing:.01em; }
.pl-footer__column ul { list-style:none; margin:0; padding:0; }
.pl-footer__column li { margin:0 0 7px; min-height:21px; font:400 14px/21px 'Instrument Sans',sans-serif; }
.pl-footer__column a { color:#f8f8f8; text-decoration:none; text-underline-offset:3px; }
.pl-footer__contact li a:hover,.pl-footer__wordmark:hover { text-decoration:underline; }
.pl-footer__nav a:hover { color:rgb(255 255 255 / 60%); text-decoration:none; }
.pl-footer__cta.ui-button.ui-button { width:auto; min-width:164px; white-space:nowrap; min-height:44px; margin-top:10px; color:#000; background:var(--brand-orange); border-color:var(--brand-orange); }
body .pl-footer__cta.ui-button.ui-button--filled:hover:not(:disabled) { color:#000; background:var(--brand-orange-85); border-color:var(--brand-orange-85); text-decoration:none; }
.pl-footer__meta { min-height:78px; align-items:center; }
.pl-footer__meta small { grid-column:2; padding-inline:32px; color:#a7a7a7; font:400 13px/19px 'Instrument Sans',sans-serif; }
.pl-footer__socials { grid-column:3; justify-self:end; display:flex; align-items:center; gap:4px; padding-inline:22px; }
.pl-footer__socials a { display:grid; place-items:center; width:44px; height:44px; opacity:.6; transition:opacity .16s ease; }
.pl-footer__socials a:hover { opacity:1; }
.pl-footer__socials img { display:block; width:24px; height:24px; }
.pl-footer__pixel-band { position:relative; display:grid; grid-template-rows:repeat(6,auto); row-gap:12px; height:auto; padding-block:19px 23px; box-sizing:border-box; overflow:hidden; background-color:#282828; }
.pl-footer__pixel-row { --tone-1:var(--brand-orange-20); --tone-2:var(--brand-orange-40); --tone-3:var(--brand-orange-65); --tone-4:var(--brand-orange); --tone-5:var(--brand-orange-85); --tone-6:var(--brand-orange-40); display:block; height:auto; aspect-ratio:calc(var(--pixel-count) / .64); margin-left:var(--footer-rail-left); margin-right:var(--footer-rail-right); background-image:linear-gradient(90deg,var(--tone-1) 0 16.6667%,var(--tone-2) 16.6667% 33.3333%,var(--tone-3) 33.3333% 50%,var(--tone-4) 50% 66.6667%,var(--tone-5) 66.6667% 83.3333%,var(--tone-6) 83.3333% 100%); background-size:calc(600% / var(--pixel-count)) 100%; background-repeat:repeat-x; -webkit-mask-image:linear-gradient(90deg,transparent 0 18%,#000 18% 82%,transparent 82%); mask-image:linear-gradient(90deg,transparent 0 18%,#000 18% 82%,transparent 82%); -webkit-mask-size:calc(100% / var(--pixel-count)) 100%; mask-size:calc(100% / var(--pixel-count)) 100%; -webkit-mask-repeat:repeat-x; mask-repeat:repeat-x; animation:pl-footer-pulse 8s steps(2,end) infinite; }
.pl-footer__pixel-row:nth-child(2) { --tone-1:var(--brand-orange-40); --tone-2:var(--brand-orange-65); --tone-3:var(--brand-orange); --tone-4:var(--brand-orange-85); --tone-5:var(--brand-orange-20); --tone-6:var(--brand-orange-65); animation-duration:11s; animation-delay:-5s; }
.pl-footer__pixel-row:nth-child(3) { --tone-1:var(--brand-orange-20); --tone-2:var(--brand-orange-85); --tone-3:var(--brand-orange-40); --tone-4:var(--brand-orange); --tone-5:var(--brand-orange-65); --tone-6:var(--brand-orange-20); animation-duration:9s; animation-delay:-2s; }
.pl-footer__pixel-row:nth-child(4) { --tone-1:var(--brand-orange-85); --tone-2:var(--brand-orange); --tone-3:var(--brand-orange-65); --tone-4:var(--brand-orange-20); --tone-5:var(--brand-orange-40); --tone-6:var(--brand-orange); animation-duration:13s; animation-delay:-8s; }
.pl-footer__pixel-row:nth-child(5) { --tone-1:var(--brand-orange-65); --tone-2:var(--brand-orange-20); --tone-3:var(--brand-orange); --tone-4:var(--brand-orange-40); --tone-5:var(--brand-orange-85); --tone-6:var(--brand-orange-20); animation-duration:10s; animation-delay:-4s; }
.pl-footer__pixel-row:nth-child(6) { --tone-1:var(--brand-orange-40); --tone-2:var(--brand-orange-85); --tone-3:var(--brand-orange-20); --tone-4:var(--brand-orange-65); --tone-5:var(--brand-orange); --tone-6:var(--brand-orange-40); animation-duration:12s; animation-delay:-7s; }
@keyframes pl-footer-pulse { 0%,100% { opacity:1; } 50% { opacity:.9; } }
body .pl-footer a:focus-visible { outline:2px solid #fff; outline-offset:3px; }

@media (max-width:1100px) {
 .pl-footer { --pixel-count:32; }
 .pl-footer__directory { min-height:0; }
 .pl-footer__nav { grid-template-columns:repeat(2,minmax(0,1fr)); row-gap:36px; }
 .pl-footer__stack { display:flex; flex-direction:column; align-self:start; gap:36px; min-width:0; }
}
@media (max-width:800px) {
 .pl-footer { --footer-rail-middle:50%; --pixel-count:24; }
 .pl-footer__intro,.pl-footer__directory,.pl-footer__meta { grid-template-columns:var(--footer-rail-left) minmax(0,1fr) minmax(0,1fr) var(--footer-rail-right); }
 .pl-footer__intro-main,.pl-footer__contact,.pl-footer__meta small { padding-left:24px; }
 .pl-footer__intro-side,.pl-footer__nav,.pl-footer__socials { padding-right:24px; }
 .pl-footer__intro-main p { max-width:320px; }
 .pl-footer__nav { grid-template-columns:repeat(2,minmax(0,1fr)); gap:32px 20px; }
}
@media (max-width:600px) {
 .pl-footer { --pixel-count:18; }
 .pl-footer__body,.pl-footer__pixel-band { background-image:linear-gradient(var(--footer-rule),var(--footer-rule)),linear-gradient(var(--footer-rule),var(--footer-rule)); background-position:var(--footer-rail-left) top,calc(100% - var(--footer-rail-right)) top; }
 .pl-footer__intro,.pl-footer__directory,.pl-footer__meta { display:flex; flex-direction:column; }
 .pl-footer__intro { min-height:0; }
 .pl-footer__intro-main { padding:32px 32px 0; }
 .pl-footer__intro-main p { max-width:100%; }
 .pl-footer__intro { position:relative; }
 .pl-footer__intro-main { padding-right:88px; padding-bottom:32px; }
 .pl-footer__intro-side { position:absolute; top:32px; right:32px; margin:0; }
 .pl-footer__directory { padding-block:0; }
 .pl-footer__contact { position:relative; padding:32px; }
 .pl-footer__contact::after { content:''; position:absolute; left:var(--footer-rail-left); right:var(--footer-rail-right); bottom:0; height:1px; background:var(--footer-rule); pointer-events:none; }
 .pl-footer__nav { padding:32px; grid-template-columns:repeat(2,minmax(0,1fr)); gap:32px 16px; }
 .pl-footer__stack { gap:32px; }
 .pl-footer__column li { overflow-wrap:anywhere; }
 .pl-footer__meta { align-items:flex-start; gap:16px; padding:24px 32px; }
 .pl-footer__meta small,.pl-footer__socials { padding:0; text-align:left; }
 .pl-footer__socials { align-self:flex-start; }
}
@media (max-width:390px) { .pl-footer { --pixel-count:12; } .pl-footer__nav { grid-template-columns:1fr; } }
@media (prefers-reduced-motion:reduce) { .pl-footer__pixel-row { animation:none; } }

/* /css/next-ui.css */
@media (min-width: 768px) {
  .site-nav .menu-toggle { display: none; }
}
@media (scripting: none) and (max-width: 767px) {
  .site-nav.nav-ready #mobile-nav { display: flex !important; position: static; width: 100%; }
  .site-nav .header-inner { flex-wrap: wrap; height: auto; }
  .site-nav .menu-toggle { display: none; }
  .site-nav .industry-dropdown { display: grid; visibility: visible; }
}
