/* DehazeLabs — shared editorial system. Loaded after page-specific styles. */
body.redesign {
  --bg: #f6f5ef;
  --bg-elev: #eeeee6;
  --ink: #18251e;
  --ink-soft: #526157;
  --ink-mute: #617065;
  --rule-soft: #d1d7cc;
  --accent-deep: #28513c;
  --accent-soft: #e9ede4;
  --night: #101b16;
  --paper: #f6f5ef;
  --copper: #e6b994;
  --technical: ui-monospace, SFMono-Regular, Consolas, monospace;
  background: var(--paper);
  color: var(--ink);
}
body.redesign ::selection { background: #e6b994; color: #15251a; }
body.redesign :is(a,button,summary,input,textarea,select):focus-visible {
  outline: 2px solid #51745b;
  outline-offset: 5px;
}
body.redesign :is(nav.top,footer,.surface-dark,.section-dark,.chapter-hero,.engineering-hero,.robotics-hero) :is(a,button,summary):focus-visible {
  outline-color: #efc6a3;
}
body.redesign :is(.page-title,.chapter-copy h1,.engineering-hero h1,.robotics-hero h1) {
  font-weight: 400;
  text-wrap: balance;
  letter-spacing: -.05em;
  word-spacing: .015em;
}
body.redesign :is(.narrative-heading h2,.section-title,.section-heading h2,.cta-band h2) {
  text-wrap: balance;
  letter-spacing: -.045em;
  line-height: 1.12;
}
body.redesign :is(.page-lede,.section-lead,.section-sub,.prose,.editorial-card p,.card-cell p) {
  line-height: 1.8;
}
body.redesign :is(.eyebrow,.page-eyebrow,.section-num,.col-meta,.mega-label,.card-index) {
  font-family: var(--technical);
  font-size: 11px;
  font-weight: 400;
  letter-spacing: .06em;
  line-height: 1.65;
  text-transform: uppercase;
}
body.redesign :is(.page-eyebrow,.section-num,.col-meta) { color: #586d5e; }
body.redesign :is(.two-col,.two-col-asymm,.page-hero .container,.editorial-grid,.practice-grid,.studio-grid,.studio-more)>* { min-width: 0; }
body.redesign .container { max-width: 1600px; }
body.redesign .prose { max-width: 78ch; }
body.redesign :is(.prose,.fact-table,.faq-body) a { text-decoration: underline; text-underline-offset: 4px; }

/* One recognizable header and footer throughout the site. */
body.redesign nav.top,
body.redesign.home-page nav.top,
body.redesign.home-page nav.top.is-scrolled,
body.redesign.home-page nav.top.nav-open {
  position: sticky;
  background: #101b16;
  color: #f6f5ef;
  border-bottom: 1px solid #ffffff20;
  backdrop-filter: blur(16px);
}
body.redesign nav.top .brand { color: #f6f5ef; }
body.redesign .nav-inner { height: 82px; gap: 28px; }
body.redesign .nav-links { gap: 24px; }
body.redesign .nav-links>a.nav-cta,
body.redesign.home-page nav.top:not(.is-scrolled):not(.nav-open) .nav-cta {
  background: var(--copper);
  color: #17241c!important;
  border-color: var(--copper)!important;
  border-radius: 4px;
}
body.redesign .nav-links>a.nav-cta:hover { background: #f2d0b3; }
body.redesign .nav-dropdown-menu.mega-menu {
  background: #f7f7f1;
  color: #213329;
  border: 1px solid #d6ddcf;
  border-radius: 0 0 4px 4px;
  box-shadow: 0 20px 50px #07180c26;
}
body.redesign .mega-label { color: #576a5b; }
body.redesign .mega-menu a { border-radius: 2px; }
body.redesign .mega-menu a:hover { background: #e9eee3; }
body.redesign .mega-menu a small { color: #5d6a60; }
body.redesign .nav-menu-toggle { color: #f6f5ef; border-color: #809386; min-width: 44px; min-height: 44px; border-radius: 4px; }
body.redesign .mobile-nav-menu { background: #f6f5ef; color: #1d3326; }
body.redesign footer { background: #14231a; color: #f2f4ec; padding-block: 80px 25px; }
body.redesign footer .brand { color: #f2f4ec; }
body.redesign .footer-intro p { color: #c5d0bf; font-size: 23px; line-height: 1.5; }
body.redesign .footer-intro .btn { color: #14231a; background: var(--copper); border-color: var(--copper); }
body.redesign .footer-col h5 { color: #d8b28d; font: 10px/1.6 var(--technical); letter-spacing: .06em; text-transform: uppercase; }
body.redesign .footer-col a { color: #d3decc; display: inline-block; line-height: 1.6; }
body.redesign .footer-col a:hover { color: #fff; }
body.redesign .footer-bottom { color: #afbea7; border-color: #ffffff26; }
body.redesign .footer-wordmark { color: #3c5641; }

/* Shared controls and restrained surfaces. */
body.redesign .btn { border-radius: 4px; min-height: 48px; line-height: 1.5; }
body.redesign .btn-primary { background: #203d2a; border-color: #203d2a; color: #fff; }
body.redesign .btn-primary:hover { background: #31573b; border-color: #31573b; }
body.redesign .btn-light { color: #1b2e22; }
body.redesign .btn-secondary { border-color: #82967e; color: #203d2a; }
body.redesign .text-link { padding-bottom: 9px; line-height: 1.6; }
body.redesign :is(.surface-light,.practices-section) { background: #ecefe6; }
body.redesign :is(.surface-dark,.section-dark) { background: #14231c; color: #f4f5ef; }
body.redesign .surface-dark :is(.narrative-heading .eyebrow,.section-lead),
body.redesign .section-dark .col-meta { color: #c0d0b9; }
body.redesign .surface-dark .narrative-heading h2,
body.redesign .section-dark h2 { color: #f5f5ee; }
body.redesign .section-dark h2 em { color: #e6b994; }
body.redesign :is(.editorial-card,.card-cell,.metric-cell) { border-radius: 4px; }
body.redesign .editorial-card { background: #edf0e7; border: 1px solid #d9e0d0; padding: 32px; }
body.redesign .editorial-card:hover { background: #e4eadc; transform: translateY(-2px); }
body.redesign .surface-light .editorial-card { background: #f9faf5; }
body.redesign .surface-dark .editorial-card { background: #21382b; border-color: #405444; }
body.redesign .surface-dark .editorial-card:hover { background: #2a4434; }
body.redesign .card-cell { background: #edf0e7; }
body.redesign .metric-cell { background: #edf0e7; border-top: 2px solid #b2c0a5; }
body.redesign :is(.editorial-card h3,.card-cell h3,.practice-card h3) { line-height: 1.2; }
body.redesign :is(.interior-photo,.practice-photo,.feature-photo,.story-card,.editorial-figure img,.work-item .work-cover) { border-radius: 3px; }
body.redesign .editorial-figure figcaption { color: #55694f; font-size: 11px; line-height: 1.7; }
body.redesign .chapter-closing,
body.redesign .cta-band { background: #e4e9db; color: #203326; }
body.redesign .chapter-closing .eyebrow { color: #506949; }
body.redesign .cta-band p { color: #4a6143; }
body.redesign .cta-band .btn-light { background: #203d2a; color: white; border-color: #203d2a; }
body.redesign .cta-band .btn-ghost { color: #203d2a; border-color: #77916c; }

/* Give every detail page the same opening rhythm as the flagship practice. */
body.redesign.content-page .page-hero:not(.deployment-hero),
body.redesign.product-page .page-hero {
  background: #f0f1e9;
  border-bottom: 1px solid #cdd5c4;
  padding-block: 76px 84px;
}
body.redesign .page-hero .page-title { font-size: clamp(44px,5vw,78px); line-height: 1.08; }
body.redesign .page-hero .page-lede { font-size: 17px; color: #52634d; }
body.redesign .chapter-hero { background-color: #15271c; }
body.redesign .chapter-copy h1 { line-height: 1.1; }
body.redesign .chapter-copy>p { max-width: 650px; color: #e2e9dd; }
body.redesign .chapter-copy>.eyebrow { font-size: 11px; letter-spacing: .07em; color: #e7c6a9; }
body.redesign .chapter-plain { background: linear-gradient(125deg,#213d2b,#0e1b14); }
body.redesign .breadcrumb { color: #54644e; line-height: 1.8; }
body.redesign .breadcrumb a:hover { text-decoration: underline; text-underline-offset: 4px; }

/* Technical detail keeps its own hierarchy within the editorial system. */
body.redesign .fact-table { font-family: var(--sans); table-layout: fixed; margin-block: 26px; }
body.redesign .fact-table td { overflow-wrap: anywhere; padding-block: 21px; }
body.redesign .fact-table td:first-child { width: 30%; font-size: 12px; line-height: 1.7; color: #55684e; }
body.redesign .section-dark .fact-table td:first-child { color: #bdceb3; }
body.redesign .section-dark .fact-table td { color: #e4ecde; }
body.redesign :is(.system-map,.workflow-demo,.layer-explorer,.delivery-ribbon) { border-radius: 4px; }
body.redesign .system-map { border: 1px solid #cfdbc9; }
body.redesign .surface-dark .system-map { border-color: #405c43; }
body.redesign .map-label { font: 10px/1.7 var(--technical); letter-spacing: .07em; }
body.redesign .map-nodes>div { border-radius: 3px; }
body.redesign .demo-sidebar { background: #1b3324; }
body.redesign .demo-canvas [role=tabpanel] { border-radius: 3px; box-shadow: none; }
body.redesign .demo-sidebar [role=tab][aria-selected=true] { background: #e5bd9b; color: #1b3324; border-color: #e5bd9b; }
body.redesign .demo-sidebar [role=tab][aria-selected=true] span { color: #344c32; }
body.redesign .layer-explorer [role=tab][aria-selected=true] { background: #203d2a; }
body.redesign .solution-filters button { border-radius: 4px; min-height: 44px; }
body.redesign .solution-filters button[aria-pressed=true] { background: #203d2a; border-color: #203d2a; }
body.redesign .faq-item summary { min-height: 64px; line-height: 1.6; }
body.redesign .faq-item .faq-body { color: #4e6148; }
body.redesign .story-controls button { min-width: 44px; min-height: 44px; border-radius: 4px; }
body.redesign .studio-tag { line-height: 1.8; }
body.redesign .studio-tag a { text-decoration: underline; text-underline-offset: 4px; }
body.redesign .careers-image-note { max-width: 65%; line-height: 1.7; }
body.redesign .ashby-job { transition: background .2s ease; }
body.redesign .ashby-job:hover { background: #edf1e5; }

@media (max-width: 1200px) {
  body.redesign .nav-inner { gap: 22px; }
  body.redesign .nav-links { gap: 12px; }
  body.redesign .nav-links>:not(.nav-cta):not(.nav-menu-toggle) { display: none!important; }
  body.redesign .nav-menu-toggle { display: flex!important; }
  body.redesign .mobile-nav-menu { position: absolute; top: 100%; left: 0; right: 0; padding: 20px 4%; max-height: calc(100svh - 82px); overflow: auto; }
  body.redesign .nav-open .mobile-nav-menu:not([hidden]) { display: flex; flex-direction: column; }
  body.redesign .mobile-nav-menu :is(a,summary) { min-height: 44px; }
}
@media (max-width: 960px) {
  body.redesign .nav-inner { height: 74px; }
  body.redesign .mobile-nav-menu { max-height: calc(100svh - 74px); }
  body.redesign.content-page .page-hero:not(.deployment-hero),
  body.redesign.product-page .page-hero { padding-block: 55px 65px; }
  body.redesign .page-hero .page-title { font-size: clamp(43px,7vw,64px); }
  body.redesign .page-hero .page-lede { margin-top: 25px; max-width: 700px; }
  body.redesign .footer-grid { grid-template-columns: repeat(3,minmax(0,1fr)); gap: 35px; }
  body.redesign .fact-table { table-layout: auto; }
}
@media (max-width: 640px) {
  body.redesign .nav-inner { gap: 12px; }
  body.redesign .nav-links { gap: 9px; }
  body.redesign .nav-links>a.nav-cta { padding: 10px 12px; min-height: 44px; }
  body.redesign :is(.page-title,.chapter-copy h1,.robotics-hero h1) { letter-spacing: -.045em; }
  body.redesign.content-page .page-hero:not(.deployment-hero),
  body.redesign.product-page .page-hero { padding-block: 42px 50px; }
  body.redesign .page-hero .page-title { font-size: clamp(36px,9vw,51px); }
  body.redesign .page-hero .page-lede { font-size: 16px; }
  body.redesign .narrative-heading h2 { font-size: clamp(32px,8.5vw,42px); }
  body.redesign .chapter-copy h1 { font-size: clamp(38px,9.5vw,55px); }
  body.redesign .editorial-card { padding: 26px; }
  body.redesign .fact-table td:first-child { width: 29%; padding-right: 14px; font-size: 11px; }
  body.redesign .fact-table td { font-size: 13px; line-height: 1.8; }
  body.redesign .section-dark .fact-table td:first-child { width: 29%; }
  body.redesign .cta-band h2 { font-size: clamp(34px,8.5vw,46px); }
  body.redesign .footer-grid { grid-template-columns: repeat(2,minmax(0,1fr)); gap: 28px 20px; }
  body.redesign .footer-intro p { font-size: 21px; }
  body.redesign footer { padding-top: 60px; }
  body.redesign .footer-col a { font-size: 13px; line-height: 1.7; }
  body.redesign .footer-col h5 { font-size: 10px; }
  body.redesign .footer-bottom { flex-wrap: wrap; line-height: 1.8; }
  body.redesign .footer-wordmark { margin-top: 28px; }
}
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  body.redesign :is(.btn,.editorial-card,.card-cell,.story-card img,.practice-card img,.reveal-ready) { transition: none; animation: none; }
  body.redesign :is(.btn,.editorial-card):hover { transform: none; }
}

/* Older detail templates share the same outcome and evidence treatment. */
body.redesign { --accent: #416d49; }
body.redesign :is(.surface-dark,.section-dark,.dark-outcomes) { --accent: #e6b994; }
body.redesign .surface-dark .editorial-card h3 { color: #f0f4e9; }
body.redesign .surface-dark .editorial-card p,
body.redesign .surface-dark .editorial-card .card-index { color: #c5d5bb; }
body.redesign .section-dark .card-cell { color: #213724; --accent: #416d49; }
body.redesign .section-dark .card-cell h3 { color: #213724; }
body.redesign .section-dark .card-cell p { color: #4d6246; }
body.redesign .section-dark .metric-cell { background: #243c2a; border-top-color: #b89b75; color: #f2f5e9; }
body.redesign .section-dark .metric-cell .metric-num { color: #f1c59d; }
body.redesign .section-dark .metric-cell .metric-label { color: #e2ecd8!important; }
body.redesign .section-dark .metric-cell .metric-detail { color: #c3d0b9!important; }
body.redesign .section-dark [style*="color:rgba(245,242,235,0.4)"] { color: #b6c8ad!important; }
body.redesign .dark-outcomes { background: #14231c; color: #edf3e7; }
body.redesign .outcomes-header { display: grid; grid-template-columns: 1fr 2fr; gap: 50px; margin-bottom: 54px; }
body.redesign .outcomes-header .section-num { color: #c4a17f; }
body.redesign .outcomes-header h2 { font-size: clamp(35px,4.1vw,62px); line-height: 1.12; letter-spacing: -.045em; text-wrap: balance; }
body.redesign .outcomes-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 30px; }
body.redesign .outcome-item { border-top: 1px solid #61715a; padding: 28px 0 0; min-width: 0; }
body.redesign .outcome-label { color: #c4d3ba; font: 11px/1.6 var(--technical); letter-spacing: .04em; }
body.redesign .outcome-value { color: #edc59f; font-size: clamp(28px,3vw,42px); line-height: 1.2; letter-spacing: -.04em; margin: 26px 0 22px; overflow-wrap: anywhere; }
body.redesign .outcome-desc { color: #c7d6bd; font-size: 16px; line-height: 1.8; }
@media(max-width:960px) {
  body.redesign .outcomes-header { grid-template-columns: 1fr; gap: 18px; }
  body.redesign .outcomes-header .section-num { margin-bottom: 0; }
  body.redesign .outcomes-grid { gap: 24px; }
}
@media(max-width:640px) {
  body.redesign .outcomes-grid { grid-template-columns: 1fr; gap: 30px; }
  body.redesign .outcomes-header { margin-bottom: 35px; }
  body.redesign .outcomes-header h2 { font-size: 34px; }
  body.redesign .outcome-value { font-size: 31px; margin-block: 20px 16px; }
  body.redesign .outcome-desc { font-size: 15px; }
}
