/* /css/brand-colors.css?v=20261010-white-tints */
/* 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/fonts.css?v=20261010-white-tints */
/* 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/page-shell.css?v=20261010-cleanup */
/* Shared About, legal and press-kit foundations and rails. */
:root { --block-blue: var(--brand-orange-85); --block-yellow: var(--brand-orange); --block-pink: var(--brand-orange-65); --block-green: var(--brand-orange-65); --block-teal: #656565; --block-orange: var(--brand-orange); --block-blue-50: var(--brand-orange-85); --block-yellow-50: var(--brand-orange); --block-pink-75: 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); --header-height: 48px; }
* { box-sizing: border-box; }
html { scroll-behavior: smooth; scroll-padding-top: calc(var(--header-height) + 24px); }
body { margin: 0px; background: var(--surface); color: var(--ink); font: 400 16px/24px var(--font); -webkit-font-smoothing: antialiased; }
h1, h2, h3, p { margin: 0px; }
h1, h2, h3 { font-weight: 500; }
a { color: inherit; text-decoration: none; }
button, input, textarea { font: inherit; }
button { color: inherit; cursor: pointer; }
button { border: 0px; background: none; }
img { display: block; max-width: 100%; }
[hidden] { display: none !important; }
a:focus-visible, button:focus-visible, summary:focus-visible { outline: 2px solid var(--focus-ring, #1B1B1B); outline-offset: 2px; }
.sr-only { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }
.skip-link { position: fixed; top: 10px; left: 10px; padding: 12px 18px; background: white; border: 2px solid var(--ink); z-index: 100; transform: translateY(-160%); }
.skip-link:focus { transform: none; }
.rails { position: relative; border-inline: 1px solid var(--line); }
h1 { font-size: clamp(38px, 3.89vw, 56px); line-height: 1.03; letter-spacing: -0.055em; }
h2 { font-size: clamp(32px, 3.34vw, 48px); line-height: 1.04; letter-spacing: -0.05em; }
.vertex-box { position: relative; }
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, ::before, ::after { transition: none !important; animation: auto ease 0s 1 normal none running none !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/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-white-tints */
/* 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/newsroom.css?v=20261013-hero-full */
/* Newsroom article, Figma Website V1 node 1886:66. Shared site chrome remains the authority. */
.news-page {
  --surface: #fff; --line: #D7D7D7;
  --news-ink: #292929; --news-body: #4B4B4B; --news-muted: #595959; --news-meta: #756F66;
  --news-panel: #F5F4EF; --news-panel-line: #E4E3DE;
}
.news-main { background: #fff; }
.news-hero { padding: 96px 56px 24px; }
.news-hero__panel { display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 20px; min-height: 400px; padding: 108px 24px 84px; border-bottom: 1px solid var(--news-panel-line); background: var(--news-panel); text-align: center; }
.news-label { padding: 4px 8px; border-radius: 4px; background: rgb(7 7 11 / 5%); color: var(--brand-orange); font: 500 12px/18px var(--mono); letter-spacing: .08em; text-transform: uppercase; }
.news-hero h1 { max-width: 100%; color: var(--news-ink); font: 600 clamp(34px, 4.2vw, 56px)/1.08 var(--font); letter-spacing: -.02em; text-wrap: balance; }
.news-standfirst { max-width: 800px; color: var(--news-muted); font-size: 21px; line-height: 31px; text-wrap: pretty; }
.news-byline { display: flex; flex-wrap: wrap; justify-content: center; gap: 4px 24px; color: var(--news-ink); font-size: 14px; line-height: 20px; }
.news-actions { display: flex; justify-content: space-between; gap: 16px; margin-top: 24px; }
body .ui-button.news-copy svg { flex: 0 0 18px; }
/* The ID-weight :not() outranks the shared CTA chevron rule, so the copy icon stands alone. */
body .ui-button.news-copy:not(#news-copy-reset)::after { content: none; }
.news-body { display: flex; flex-direction: column; max-width: 888px; margin-inline: auto; padding: 88px 40px 140px; }
.news-cover { width: 100%; height: auto; margin-bottom: 60px; }
.news-section { padding-top: 76px; }
.news-cover + .news-section { padding-top: 0; }
.news-page .news-section h2 { color: var(--news-ink); font: 600 36px/43px var(--font); letter-spacing: -.01em; text-wrap: balance; }
.news-section p { color: var(--news-body); font-size: 18px; line-height: 30px; text-wrap: pretty; }
.news-section > * + * { margin-top: 22px; }
.news-section .news-lead { color: var(--news-ink); font-size: 24px; line-height: 35px; font-weight: 500; }
.news-section .news-lead strong { font-weight: 600; }
.news-capabilities { display: grid; gap: 20px; margin-bottom: 0; }
.news-capabilities > div { padding-left: 20px; border-left: 1px solid var(--line); }
.news-capabilities dt { color: var(--news-ink); font-size: 18px; font-weight: 600; line-height: 28px; }
.news-capabilities dd { margin: 4px 0 0; color: var(--news-body); font-size: 18px; line-height: 30px; }
.news-list { display: grid; gap: 16px; margin-bottom: 0; padding-left: 20px; color: var(--news-body); font-size: 18px; line-height: 30px; }
.news-list li::marker { color: var(--brand-orange); }
.news-list strong { color: var(--news-ink); font-weight: 600; }
.news-quote { margin: 62px 0 18px; padding-left: 28px; border-left: 4px solid var(--brand-orange); }
.news-quote blockquote { display: grid; gap: 16px; margin: 0; }
.news-quote blockquote p { color: var(--news-ink); font-size: 24px; font-weight: 500; line-height: 34px; }
.news-quote figcaption { margin-top: 18px; color: var(--news-meta); font-size: 14px; line-height: 20px; }
.news-about { display: grid; gap: 18px; margin-top: 82px; padding-top: 18px; border-top: 1px solid #D8D8D8; }
.news-page .news-about h2 { color: var(--news-ink); font: 500 16px/24px var(--font); letter-spacing: 0; }
.news-about > p:not(.sr-only) { color: var(--news-body); font-size: 18px; line-height: 30px; }
.news-about > p a { color: var(--news-ink); text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: 4px; }
.news-contacts { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px 32px; }
.news-contacts h3 { grid-column: 1 / -1; color: var(--news-meta); font-size: 14px; font-weight: 500; line-height: 20px; }
.news-contact { display: grid; gap: 8px; margin: 0; font-size: 14px; font-weight: 500; line-height: 20px; }
.news-contact dt { color: #000; }
.news-contact dd { margin: 0; color: #000; font-weight: 400; }
.news-contact dd a:hover { text-decoration: underline; text-underline-offset: 4px; }
.news-contact__email { display: flex; align-items: center; gap: 4px; }
.news-contact__email a { text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: 4px; }
.news-contact__email a:hover { text-decoration-thickness: 2px; }
.news-contact__copy { display: grid; place-items: center; width: 32px; height: 32px; margin-block: -6px; color: var(--news-ink); }
.news-contact__copy:hover { background: #E5E5E5; }
@media (max-width: 1100px) {
  .news-hero { padding: 64px 40px 24px; }
  .news-hero__panel { padding: 72px 24px 56px; }
}
@media (max-width: 800px) {
  .news-hero { padding: 40px 24px 24px; }
  .news-standfirst { font-size: 18px; line-height: 28px; }
  .news-body { padding: 56px 24px 96px; }
  .news-section { padding-top: 56px; }
  .news-section .news-lead { font-size: 21px; line-height: 31px; }
}
@media (max-width: 560px) {
  .news-hero { padding: 24px 16px; }
  .news-hero__panel { min-height: 0; padding: 48px 16px 40px; }
  .news-hero h1 { font-size: 28px; line-height: 32px; }
  .news-body { padding: 40px 16px 80px; }
  .news-cover { margin-bottom: 40px; }
  .news-section { padding-top: 48px; }
  .news-page .news-section h2 { font-size: 28px; line-height: 34px; }
  .news-section p { font-size: 16px; line-height: 26px; }
  .news-section .news-lead { font-size: 19px; line-height: 28px; }
  .news-quote { margin: 48px 0 8px; padding-left: 20px; }
  .news-quote blockquote p { font-size: 19px; line-height: 28px; }
  .news-about { margin-top: 64px; }
  .news-contacts { grid-template-columns: minmax(0, 1fr); }
  .news-capabilities dt, .news-capabilities dd, .news-list { font-size: 16px; line-height: 26px; }
  .news-about > p:not(.sr-only) { font-size: 16px; line-height: 26px; }
}
@media print {
  .news-page .site-nav, .news-actions, .news-contact__copy { display: none !important; }
  .news-page .rails { width: 100%; border: 0; }
  .news-hero { padding: 0; }
}

/* /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; }
}
