@font-face {
  font-family:Manrope;
  src:url('./fonts/manrope.ttf') format('truetype');
  font-weight:200 800;
  font-style:normal;
  font-display:swap;
}
@font-face {
  font-family:Geist;
  src:url('./fonts/geist.ttf') format('truetype');
  font-weight:100 900;
  font-style:normal;
  font-display:swap;
}
:root {
  --blue:#025ebc;
  --ink:#071728;
  --text:#212934;
  --muted:#606873;
  --paper:#f9f9fb;
  --line:#dce1e6;
  --optical:#9bdeff;
  --radius:20px;
  --nav-height:82px;
}
* {
  box-sizing:border-box;
}
html {
  scroll-behavior:smooth;
  scroll-padding-top:calc(var(--nav-height) + 28px);
}
body.tf-site {
  margin:0;
  background:var(--paper);
  color:var(--text);
  font-family:Geist,system-ui,-apple-system,sans-serif;
  font-size:16px;
  line-height:1.6;
  -webkit-font-smoothing:antialiased;
}
h1,h2,h3,p,figure {
  margin:0;
}
h1,h2,h3 {
  color:inherit;
  font-family:inherit;
  font-weight:600;
  line-height:1.15;
  letter-spacing:-.025em;
  text-wrap:balance;
}
h1 {
  font-size:clamp(36px,5vw,60px);
}
h2 {
  font-size:clamp(30px,3.65vw,44px);
}
h3 {
  font-size:24px;
  letter-spacing:-.015em;
}
a {
  color:inherit;
  text-decoration:none;
}
button,input,textarea,select {
  font:inherit;
}
button,a,input,textarea {
  touch-action:manipulation;
}
button {
  cursor:pointer;
}
img {
  max-width:100%;
  display:block;
  height:auto;
}
a,button {
  -webkit-tap-highlight-color:transparent;
}
:focus-visible {
  outline:3px solid var(--blue);
  outline-offset:5px;
}
::selection {
  background:#c2e1ff;
  color:var(--ink);
}
.container {
  width:min(100% - 128px,1072px);
  margin-inline:auto;
  padding-inline:0;
  overflow:visible;
}
.section {
  padding-block:104px;
}
.eyebrow {
  font-size:13px;
  font-weight:500;
  letter-spacing:.07em;
  text-transform:uppercase;
  line-height:1.4;
  color:var(--blue);
  margin-bottom:24px;
}
.section-intro {
  font-size:18px;
  line-height:1.6;
  color:var(--muted);
  max-width:800px;
  margin-top:24px;
}
.button {
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:8px;
  border:0;
  border-radius:12px;
  background:var(--blue);
  color:white;
  padding:16px 24px;
  font-family:Manrope,Geist,sans-serif;
  font-weight:600;
  font-size:16px;
  line-height:1.2;
  transition:background-color .18s ease,opacity .18s ease;
  white-space:nowrap;
}
.button:hover,.button:focus-visible {
  background:#1a6ec4;
  opacity:.85;
}
.text-action {
  font-size:15px;
  font-weight:600;
  color:var(--blue);
  display:inline-flex;
  gap:10px;
  align-items:center;
}
.text-action:hover {
  text-decoration:underline;
  text-underline-offset:5px;
}
.screen-reader-text,.skip-link:not(:focus) {
  position:absolute;
  width:1px;
  height:1px;
  padding:0;
  margin:-1px;
  overflow:hidden;
  clip-path:inset(50%);
  white-space:nowrap;
  border:0;
}
.skip-link:focus {
  position:fixed;
  z-index:1000;
  top:12px;
  left:12px;
  padding:12px 24px;
  background:#fff;
  color:var(--blue);
}
.site-header {
  position:fixed;
  inset:0 0 auto;
  z-index:100;
  transition:background-color .2s,box-shadow .2s;
}
.site-header.is-scrolled,.tf-interior .site-header {
  background:#fff;
  box-shadow:0 4px 20px #2129341a;
}
.nav-inner {
  width:min(100% - 160px,1248px);
  margin:auto;
  min-height:var(--nav-height);
  display:flex;
  align-items:center;
  gap:24px;
  padding-block:12px;
}
.brand {
  display:flex;
  align-items:center;
  gap:10px;
  flex-shrink:0;
}
.brand-mark {
  position:relative;
  display:block;
  width:40px;
  height:40px;
  overflow:hidden;
  filter:drop-shadow(0 1px 3px #025ebc45);
}
.brand-mark::before {
  content:'';
  display:block;
  width:166px;
  height:40px;
  background:var(--blue);
  mask:url('./images/brand.webp') 0 0/166px 40px no-repeat;
  -webkit-mask:url('./images/brand.webp') 0 0/166px 40px no-repeat;
}
.brand-copy {
  display:flex;
  flex-direction:column;
}
.brand-name {
  font-size:23px;
  line-height:1.1;
  font-weight:650;
  letter-spacing:-.04em;
  color:#111;
}
.brand-name>span {
  color:var(--blue);
}
.brand-descriptor {
  font-size:9px;
  line-height:1.5;
  letter-spacing:.01em;
  margin-top:5px;
  color:var(--text);
}
.site-header nav {
  margin-left:auto;
}
.nav-links {
  list-style:none;
  display:flex;
  align-items:center;
  gap:2px;
  margin:0;
  padding:0;
}
.nav-links a {
  display:block;
  padding:10px 14px;
  font-size:14px;
  font-weight:500;
  border-radius:10px;
  transition:color .18s,background-color .18s;
  white-space:nowrap;
}
.nav-links a:hover,.nav-links a:focus-visible,.nav-links .current-menu-item>a {
  color:#fff;
  background:var(--blue);
}
.nav-links li {
  position:relative;
}
.nav-links .sub-menu {
  display:none;
  position:absolute;
  top:100%;
  left:0;
  background:white;
  list-style:none;
  min-width:220px;
  padding:8px;
  border-radius:8px;
  box-shadow:0 15px 40px #07172820;
}
.nav-links li:hover>.sub-menu,.nav-links li:focus-within>.sub-menu {
  display:block;
}
.nav-contact {
  font-size:16px;
}
.admin-bar .site-header {
  top:32px;
}
.hero {
  position:relative;
  isolation:isolate;
  min-height:100svh;
  padding:168px 48px 56px;
  display:flex;
  flex-direction:column;
  justify-content:center;
  align-items:center;
  gap:48px;
  overflow:hidden;
}
.hero-backdrop,.hero-overlay {
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  z-index:-2;
  object-fit:cover;
}
.hero-overlay {
  z-index:-1;
  background:linear-gradient(180deg,rgba(249,249,251,.62) 0%,rgba(249,249,251,.40) 26%,rgba(7,23,40,.30) 50%,rgba(7,23,40,.70) 74%,rgba(7,23,40,.90) 90%,rgba(7,23,40,.94) 100%);
}
.hero-statement {
  max-width:1060px;
  text-align:center;
}
.hero h1 {
  line-height:1.05;
  letter-spacing:-.03em;
}
.hero h1 span {
  color:var(--blue);
}
.hero-statement>p {
  font-size:22px;
  line-height:1.5;
  letter-spacing:-.01em;
  margin-top:20px;
  color:var(--text);
}
.division-grid {
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:40px;
  width:100%;
  max-width:1080px;
}
.division-card {
  position:relative;
  isolation:isolate;
  overflow:hidden;
  min-height:340px;
  border-radius:20px;
  padding:28px;
  display:flex;
  align-items:end;
  background:var(--ink);
  color:white;
  box-shadow:0 18px 36px -12px #08182859;
  transition:transform .35s cubic-bezier(.2,.75,.3,1),box-shadow .35s;
}
.division-card:hover,.division-card:focus-visible {
  transform:translateY(-10px) scale(1.02);
  box-shadow:0 0 22px 2px #025ebc8c;
}
.division-photo {
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  object-fit:cover;
  z-index:-3;
  filter:saturate(.7) brightness(.82);
}
.division-card:first-child .division-photo {
  object-position:center 35%;
}
.division-card::after {
  content:'';
  position:absolute;
  inset:0;
  z-index:-1;
  background:linear-gradient(180deg,#07172814 0%,#07172899 50%,#071728e0 100%);
}
.division-content {
  display:flex;
  flex-direction:column;
  gap:10px;
}
.division-content .eyebrow {
  color:#e5edf4;
  margin:0;
}
.division-content h2 {
  color:#fff;
  font-size:24px;
  letter-spacing:-.015em;
  line-height:1.25;
}
.division-content>p:not(.eyebrow) {
  color:#e2e7ed;
  font-size:15px;
}
.division-content .text-action {
  color:#fff;
}
.hero-proof {
  font-size:13px;
  line-height:1.4;
  letter-spacing:.04em;
  text-transform:uppercase;
  color:white;
  text-align:center;
}
.news-band {
  background:var(--ink);
  color:#fff;
}
.news-band>a {
  display:flex;
  align-items:center;
  justify-content:center;
  gap:18px;
  padding-block:22px;
  font-size:14px;
}
.news-label {
  border:1px solid #9bdeff55;
  border-radius:999px;
  padding:4px 12px;
  color:var(--optical);
  white-space:nowrap;
  font-size:12px;
}
.news-cta {
  white-space:nowrap;
  color:var(--optical);
}
.news-band a:hover .news-cta {
  text-decoration:underline;
  text-underline-offset:4px;
}
.figures {
  padding-bottom:96px;
}
.figures h2 {
  max-width:760px;
}
.figures-grid {
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:32px;
  margin-top:40px;
}
.figure {
  padding-top:26px;
  border-top:1px solid var(--line);
}
.statistic {
  font-size:80px;
  letter-spacing:-.03em;
  line-height:1;
  color:var(--blue);
  font-weight:600;
  margin-bottom:14px;
}
.figure h3 {
  margin-bottom:8px;
}
.figure>p:last-child {
  font-size:15px;
  color:var(--muted);
}
.clients {
  padding-bottom:88px;
}
.client-logos {
  display:flex;
  gap:18px 36px;
  flex-wrap:wrap;
  align-items:center;
  justify-content:space-between;
}
.client-logos img {
  width:calc((100% - 180px)/6);
  height:62px;
  object-fit:contain;
}
.industries {
  display:grid;
  grid-template-columns:1fr 1.25fr;
  gap:88px;
  padding-top:16px;
  padding-bottom:120px;
}
.industry-list>div {
  padding:24px 0;
  border-top:1px solid var(--line);
}
.industry-list h3 {
  margin-bottom:6px;
}
.industry-list p {
  font-size:15px;
  color:var(--muted);
}
.approach {
  background:var(--ink);
  color:#fff;
  padding-block:128px;
}
.approach .eyebrow {
  color:var(--optical);
}
.approach h2 {
  max-width:850px;
}
.stages {
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:40px;
  margin-top:48px;
}
.stages>div {
  border-top:1px solid #ffffff26;
  padding-top:24px;
}
.stage-number {
  color:var(--optical);
  font-size:16px;
}
.stages h3 {
  font-size:19px;
  margin:10px 0;
}
.stages p {
  font-size:16px;
  color:#d5dce3;
}
.testimonials {
  padding-block:112px;
}
.quote-panel {
  margin:0 0 40px;
}
.quote-panel blockquote {
  margin:0;
  font-size:clamp(22px,2.8vw,32px);
  line-height:1.5;
  letter-spacing:-.01em;
  max-width:1000px;
}
.quote-panel figcaption {
  display:flex;
  align-items:center;
  flex-wrap:wrap;
  gap:12px 20px;
  border-top:1px solid var(--line);
  padding-top:26px;
  margin-top:34px;
  font-size:15px;
}
.quote-panel figcaption img {
  width:132px;
  height:50px;
  object-fit:contain;
}
.quote-sector {
  font-size:12px;
  letter-spacing:.04em;
  text-transform:uppercase;
  color:var(--muted);
}
.quote-project {
  font-size:12px;
  letter-spacing:.04em;
  text-transform:uppercase;
  color:var(--blue);
}
.quote-tabs {
  display:none;
  gap:12px;
}
.is-enhanced .quote-tabs {
  display:flex;
}
.quote-tabs button {
  width:110px;
  height:52px;
  padding:6px;
  border:1px solid transparent;
  border-radius:8px;
  background:transparent;
  opacity:.45;
  transition:opacity .2s,background-color .2s;
}
.quote-tabs button img {
  width:100%;
  height:100%;
  object-fit:contain;
}
.quote-tabs button[aria-pressed=true] {
  opacity:1;
  background:#fff;
  border-color:var(--line);
}
.quote-tabs button:hover {
  opacity:1;
}
.quote-panel[hidden] {
  display:none;
}
.technology {
  padding-block:64px;
}
.logo-window {
  margin:38px 0;
  overflow:hidden;
  mask-image:linear-gradient(90deg,transparent,#000 5%,#000 95%,transparent);
}
.logo-track {
  display:flex;
  width:max-content;
  animation:logos 28s linear infinite;
}
.logo-group {
  display:flex;
  flex-shrink:0;
  gap:20px;
  padding-right:20px;
}
.logo-group>div {
  width:230px;
  height:138px;
  padding:24px;
  display:flex;
  align-items:center;
  justify-content:center;
}
.logo-group img {
  max-width:182px;
  max-height:90px;
  object-fit:contain;
}
.logo-window:hover .logo-track,.logo-window:focus-within .logo-track {
  animation-play-state:paused;
}
.section-heading {
  display:flex;
  align-items:end;
  justify-content:space-between;
  gap:32px;
  margin-bottom:40px;
}
.section-heading .text-action {
  white-space:nowrap;
}
.article-grid {
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:24px;
}
.article-card {
  border-radius:16px;
  overflow:hidden;
  background:white;
  box-shadow:0 3px 16px #07172805;
  transition:transform .25s,box-shadow .25s;
  min-width:0;
}
.article-card:hover {
  transform:translateY(-5px);
  box-shadow:0 16px 32px #07172812;
}
.article-card>a {
  height:100%;
  display:flex;
  flex-direction:column;
}
.article-cover {
  aspect-ratio:3/2;
  background:linear-gradient(135deg,#071728,#0c4e80);
  overflow:hidden;
  position:relative;
}
.article-cover img {
  height:100%;
  width:100%;
  object-fit:cover;
  transition:transform .5s;
}
.article-card:hover .article-cover img {
  transform:scale(1.04);
}
.cover-monogram {
  position:absolute;
  inset:20px 28px;
  font-weight:600;
  color:#ffffff25;
  font-size:clamp(70px,10vw,140px);
  letter-spacing:-.1em;
  line-height:1;
}
.cover-monogram>span {
  position:absolute;
  bottom:0;
  right:0;
  font-size:50px;
  color:#9bdeff;
}
.article-card-body {
  padding:24px;
  display:flex;
  flex-direction:column;
  flex:1;
  gap:16px;
}
.article-card .eyebrow {
  font-size:11px;
  margin:0;
}
.article-card h3 {
  font-size:23px;
  line-height:1.25;
}
.article-excerpt {
  font-size:15px;
  color:var(--muted);
  line-height:1.55;
}
.article-card-meta {
  font-size:12px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  margin-top:auto;
  padding-top:12px;
  color:var(--muted);
}
.article-card-meta>span {
  color:var(--blue);
  font-weight:500;
}
.insights {
  padding-block:88px;
}
.site-footer {
  background:var(--ink);
  color:#fff;
  padding:48px 0 40px;
}
.footer-cta {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:40px;
  padding-bottom:48px;
  border-bottom:1px solid #ffffff26;
}
.footer-cta .eyebrow {
  color:var(--optical);
  margin-bottom:14px;
}
.footer-cta h2 {
  font-size:36px;
  margin-bottom:16px;
}
.footer-cta p:not(.eyebrow) {
  color:#d3dbe4;
  font-size:18px;
}
.footer-grid {
  display:grid;
  grid-template-columns:1.6fr 1fr 1fr 1fr;
  gap:38px;
  padding-block:48px;
}
.footer-grid h3 {
  font-size:16px;
  letter-spacing:0;
  margin-bottom:18px;
}
.footer-brand h3 {
  font-size:28px;
  letter-spacing:-.04em;
}
.footer-brand p {
  font-size:15px;
  color:#b7c2ce;
  max-width:300px;
}
.footer-grid ul {
  list-style:none;
  padding:0;
  margin:0;
  display:grid;
  gap:12px;
}
.footer-grid li {
  font-size:14px;
  color:#c4ced8;
}
.footer-grid a:hover,.legal a:hover {
  color:var(--optical);
  text-decoration:underline;
  text-underline-offset:4px;
}
.footer-grid .socials {
  display:flex;
  flex-wrap:wrap;
  gap:20px;
  margin-top:24px;
}
.socials small {
  display:block;
  font-size:10px;
  color:#9facbc;
}
.footer-subheading {
  margin-top:32px;
}
.legal {
  border-top:1px solid #ffffff26;
  padding-top:24px;
  display:flex;
  justify-content:space-between;
  gap:16px;
  color:#a5b2c0;
  font-size:13px;
}
.blog-index,.single-main,.page-main {
  padding-top:calc(var(--nav-height) + 76px);
  padding-bottom:96px;
}
.blog-heading {
  max-width:850px;
  margin-bottom:60px;
}
.blog-heading h1 {
  font-size:clamp(42px,5vw,64px);
  line-height:1.06;
  max-width:840px;
}
.blog-heading>p:not(.eyebrow) {
  font-size:20px;
  color:var(--muted);
  margin-top:22px;
  max-width:650px;
}
.blog-tools {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:24px;
  border-block:1px solid var(--line);
  padding:20px 0;
  margin-bottom:40px;
}
.category-tabs {
  display:flex;
  gap:8px;
  flex-wrap:wrap;
}
.category-tabs a {
  padding:8px 14px;
  font-size:13px;
  border-radius:999px;
  transition:background-color .18s,color .18s;
}
.category-tabs a:hover {
  background:#e8eff7;
}
.category-tabs a[aria-current=page] {
  background:var(--ink);
  color:#fff;
}
.blog-search {
  display:flex;
  align-items:center;
  min-width:210px;
  border-bottom:1px solid #a9b3be;
}
.blog-search input {
  width:100%;
  min-width:0;
  border:0;
  padding:8px 2px;
  background:transparent;
  font-size:14px;
  color:var(--text);
}
.blog-search button {
  border:0;
  background:none;
  color:var(--blue);
  padding:8px 12px;
  font-size:22px;
}
.blog-grid .article-card:first-child {
  grid-column:span 2;
}
.blog-grid .article-card:first-child .article-cover {
  aspect-ratio:2.6/1;
}
.blog-grid .article-card:first-child h3 {
  font-size:30px;
  max-width:660px;
}
.blog-grid .article-card:first-child .article-card-body {
  padding:28px;
}
.pagination,.nav-links.pagination,.navigation.pagination .nav-links {
  display:flex;
  justify-content:center;
  flex-wrap:wrap;
  gap:8px;
  margin-top:48px;
}
.page-numbers {
  padding:8px 14px;
  border-radius:6px;
  background:#fff;
  font-size:14px;
}
.page-numbers.current {
  background:var(--blue);
  color:white;
}
.empty-state {
  padding:60px 0;
  grid-column:1/-1;
}
.empty-state p {
  margin:18px 0 24px;
}
.page-main.empty-state {
  padding-top:180px;
}
.article-heading {
  max-width:900px;
  margin:0 auto 48px;
  text-align:center;
}
.back-link {
  margin-bottom:32px;
}
.article-categories {
  font-size:13px;
  letter-spacing:.04em;
  text-transform:uppercase;
  color:var(--blue);
  margin-bottom:18px;
}
.article-heading h1 {
  font-size:clamp(34px,4.7vw,56px);
  line-height:1.1;
}
.article-byline {
  display:flex;
  justify-content:center;
  flex-wrap:wrap;
  gap:10px 24px;
  font-size:13px;
  color:var(--muted);
  margin-top:28px;
}
.article-hero-image {
  border-radius:20px;
  overflow:hidden;
  max-height:600px;
  margin-bottom:64px;
}
.article-hero-image img {
  width:100%;
  height:auto;
  max-height:600px;
  object-fit:cover;
}
.reading-layout {
  display:grid;
  grid-template-columns:210px minmax(0,1fr);
  gap:72px;
  align-items:start;
}
.article-sidebar {
  position:sticky;
  top:calc(var(--nav-height) + 35px);
  font-size:14px;
  max-height:calc(100vh - 150px);
  overflow:auto;
}
.article-sidebar .eyebrow {
  font-size:11px;
  margin-bottom:14px;
}
.article-sidebar ol {
  list-style:none;
  margin:0;
  padding:0;
  display:grid;
  gap:12px;
}
.article-sidebar li a {
  display:block;
  color:var(--muted);
  line-height:1.45;
}
.article-sidebar li a:hover {
  color:var(--blue);
}
.share-links {
  border-top:1px solid var(--line);
  padding-top:24px;
  margin-top:32px;
  display:grid;
  gap:10px;
}
.share-links a,.share-links button {
  color:var(--blue);
  text-align:left;
  font-size:13px;
}
.share-links button {
  padding:0;
  background:none;
  border:0;
}
.share-links .eyebrow {
  margin:0 0 6px;
}
.article-prose {
  font-size:18px;
  line-height:1.85;
  max-width:760px;
  min-width:0;
  color:#394552;
  overflow-wrap:break-word;
}
.article-prose>*+* {
  margin-top:24px;
}
.article-prose h2 {
  font-size:32px;
  margin-top:48px;
  color:var(--text);
  scroll-margin-top:120px;
}
.article-prose h3 {
  font-size:25px;
  margin-top:32px;
  color:var(--text);
}
.article-prose h4 {
  font-size:20px;
}
.article-prose a {
  color:var(--blue);
  text-decoration:underline;
  text-underline-offset:3px;
}
.article-prose blockquote {
  border-left:3px solid var(--blue);
  padding:8px 0 8px 28px;
  margin-inline:0;
  color:var(--ink);
  font-size:24px;
  line-height:1.5;
}
.article-prose pre {
  overflow:auto;
  padding:24px;
  background:var(--ink);
  color:#edf5ff;
  border-radius:12px;
  font-size:14px;
  max-width:100%;
}
.article-prose code {
  font-size:.88em;
}
.article-prose figure {
  max-width:100%;
}
.article-prose img {
  height:auto;
  border-radius:10px;
}
.article-prose iframe {
  max-width:100%;
}
.article-prose table {
  border-collapse:collapse;
  width:100%;
  font-size:15px;
}
.article-prose td,.article-prose th {
  border:1px solid var(--line);
  padding:12px;
  text-align:left;
}
.article-prose .wp-block-table {
  overflow:auto;
}
.article-prose ul,.article-prose ol {
  padding-left:24px;
}
.article-prose li+li {
  margin-top:8px;
}
.article-prose .alignwide {
  width:100%;
}
.article-prose .aligncenter {
  margin-inline:auto;
}
.article-tags {
  display:flex;
  gap:10px;
  flex-wrap:wrap;
  justify-content:center;
  margin-top:48px;
}
.article-tags a {
  background:#e9eef5;
  border-radius:999px;
  padding:5px 14px;
  font-size:13px;
  color:var(--blue);
}
.page-prose {
  margin-inline:auto;
}
.related h2 {
  margin-bottom:36px;
}
.reading-progress {
  position:fixed;
  top:var(--nav-height);
  left:0;
  height:2px;
  width:100%;
  transform:scaleX(0);
  transform-origin:left;
  background:var(--blue);
  z-index:101;
}
.comments-area {
  margin:64px auto;
}
.comments-area textarea,.comments-area input:not([type=checkbox]) {
  border:1px solid var(--line);
  padding:12px;
  max-width:100%;
  background:white;
}
.comments-area textarea {
  width:100%;
}
.comments-area label {
  display:block;
}
.comments-area .submit {
  background:var(--blue)!important;
  color:white;
  border-radius:6px;
}
.comments-area .comment-list {
  list-style:none;
  padding:0;
}
.comment-body {
  border-bottom:1px solid var(--line);
  padding-block:24px;
}
.comment-author {
  display:flex;
  align-items:center;
  gap:12px;
}
.comment-meta {
  font-size:13px;
}
.comments-area form p {
  margin-bottom:18px;
}
[data-reveal].reveal-ready {
  opacity:0;
  transform:translateY(18px);
  transition:opacity .6s,transform .6s;
}
[data-reveal].reveal-ready.is-visible {
  opacity:1;
  transform:none;
}
@keyframes logos {
  to {
    transform:translateX(-50%);
  }
}
@media(min-width:1600px) {
  .container {
    width:min(100% - 160px,1280px);
  }
  .hero-statement {
    max-width:1200px;
  }
  .division-grid {
    max-width:1120px;
  }
}
@media(max-width:1199px) {
  .nav-inner {
    width:calc(100% - 80px);
    gap:16px;
  }
  .nav-links a {
    padding:10px 9px;
    font-size:13px;
  }
  .nav-contact {
    display:none;
  }
  .hero h1 {
    font-size:48px;
  }
  .container {
    width:calc(100% - 80px);
  }
  .client-logos {
    justify-content:center;
  }
  .client-logos img {
    width:calc((100% - 72px)/3);
  }
  .footer-grid {
    grid-template-columns:1.4fr 1fr;
    gap:40px;
  }
  .industries {
    gap:48px;
  }
  .reading-layout {
    gap:40px;
    grid-template-columns:170px minmax(0,1fr);
  }
}
@media(max-width:809px) {
  :root {
    --nav-height:116px;
  }
  .container {
    width:calc(100% - 48px);
  }
  .nav-inner {
    width:100%;
    padding:12px 24px;
    flex-wrap:wrap;
    gap:8px;
    min-height:116px;
  }
  .brand-mark {
    height:36px;
    width:36px;
  }
  .brand-mark::before {
    transform:scale(.9);
    transform-origin:top left;
  }
  .brand-name {
    font-size:22px;
  }
  .brand-descriptor {
    font-size:8px;
  }
  .site-header nav {
    width:100%;
    margin:0;
  }
  .nav-links {
    justify-content:flex-start;
    gap:0;
  }
  .nav-links a {
    font-size:12px;
    padding:8px;
  }
  .hero {
    padding:164px 24px 40px;
    gap:32px;
    min-height:100svh;
  }
  .hero h1 {
    font-size:36px;
    line-height:1.08;
    letter-spacing:-.025em;
  }
  .hero-statement>p {
    font-size:18px;
    line-height:1.55;
    margin-top:20px;
  }
  .division-grid {
    gap:20px;
    grid-template-columns:1fr;
  }
  .division-card {
    min-height:260px;
    padding:24px;
  }
  .division-content h2 {
    font-size:22px;
  }
  .division-content>p:not(.eyebrow) {
    font-size:14px;
  }
  .hero-proof {
    font-size:11px;
    max-width:350px;
  }
  .news-band>a {
    flex-direction:column;
    text-align:center;
    gap:12px;
    padding-block:24px;
  }
  .section {
    padding-block:64px;
  }
  .figures-grid {
    gap:24px;
  }
  .statistic {
    font-size:52px;
  }
  .figure h3 {
    font-size:20px;
  }
  .figure>p:last-child {
    font-size:14px;
  }
  .clients {
    padding-bottom:64px;
  }
  .client-logos {
    gap:14px 20px;
  }
  .client-logos img {
    width:calc((100% - 40px)/3);
    height:52px;
  }
  .industries {
    grid-template-columns:1fr;
    gap:32px;
    padding-top:0;
  }
  .section-intro {
    font-size:16px;
  }
  .stages {
    grid-template-columns:1fr;
    gap:28px;
    margin-top:32px;
  }
  .stages h3 {
    font-size:20px;
  }
  .approach h2 {
    max-width:550px;
  }
  .quote-panel blockquote {
    font-size:22px;
  }
  .quote-panel figcaption {
    gap:12px;
    font-size:14px;
  }
  .quote-panel figcaption img {
    width:104px;
    height:42px;
  }
  .quote-project {
    width:100%;
  }
  .logo-group>div {
    width:180px;
    height:110px;
    padding:20px;
  }
  .logo-group img {
    max-width:140px;
    max-height:70px;
  }
  .section-heading {
    align-items:start;
    flex-direction:column;
    gap:20px;
    margin-bottom:28px;
  }
  .article-grid {
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:20px;
  }
  .insights .article-grid {
    grid-template-columns:1fr;
  }
  .article-card h3 {
    font-size:23px;
  }
  .footer-cta {
    flex-direction:column;
    align-items:start;
    gap:28px;
  }
  .footer-cta h2 {
    font-size:30px;
  }
  .footer-cta p:not(.eyebrow) {
    font-size:16px;
  }
  .footer-grid {
    grid-template-columns:1fr 1fr;
    gap:32px 24px;
  }
  .footer-brand {
    grid-column:1/-1;
  }
  .footer-brand p {
    max-width:430px;
  }
  .legal {
    flex-direction:column;
    font-size:12px;
  }
  .blog-index,.single-main,.page-main {
    padding-top:164px;
    padding-bottom:64px;
  }
  .blog-heading {
    margin-bottom:36px;
  }
  .blog-heading h1 {
    font-size:42px;
  }
  .blog-heading>p:not(.eyebrow) {
    font-size:18px;
  }
  .blog-tools {
    align-items:stretch;
    flex-direction:column;
    gap:18px;
  }
  .blog-grid .article-card:first-child {
    grid-column:1/-1;
  }
  .blog-grid .article-card:first-child .article-cover {
    aspect-ratio:2/1;
  }
  .blog-grid .article-card:first-child h3 {
    font-size:27px;
  }
  .article-card-body {
    padding:20px;
  }
  .article-heading h1 {
    font-size:36px;
  }
  .article-heading {
    text-align:left;
    margin-bottom:32px;
  }
  .article-byline {
    justify-content:flex-start;
    gap:10px 16px;
  }
  .article-hero-image {
    border-radius:12px;
    margin-bottom:36px;
  }
  .reading-layout {
    grid-template-columns:1fr;
    gap:32px;
  }
  .article-sidebar {
    position:static;
    max-height:none;
    border-block:1px solid var(--line);
    padding-block:20px;
  }
  .share-links {
    margin-top:20px;
    padding-top:16px;
    display:flex;
    flex-wrap:wrap;
    gap:16px;
  }
  .share-links .eyebrow {
    width:100%;
  }
  .article-prose {
    font-size:17px;
    line-height:1.8;
  }
  .article-prose h2 {
    font-size:28px;
  }
  .article-prose blockquote {
    font-size:21px;
  }
  .admin-bar .site-header {
    top:46px;
  }
}
@media(max-width:480px) {
  .article-grid {
    grid-template-columns:1fr;
  }
  .figures-grid {
    grid-template-columns:1fr;
    gap:28px;
  }
  .figure {
    padding-top:20px;
  }
  .hero h1 {
    font-size:34px;
  }
  .blog-grid .article-card:first-child h3 {
    font-size:25px;
  }
  .blog-grid .article-card:first-child .article-cover {
    aspect-ratio:3/2;
  }
  .blog-grid .article-card:first-child .article-card-body {
    padding:20px;
  }
  .article-heading h1 {
    font-size:32px;
  }
  .footer-grid {
    font-size:14px;
  }
}
@media(prefers-reduced-motion:reduce) {
  html {
    scroll-behavior:auto;
  }
  *,*::before,*::after {
    animation:none!important;
    transition:none!important;
  }
  [data-reveal].reveal-ready {
    opacity:1;
    transform:none;
  }
  .division-card:hover,.article-card:hover {
    transform:none;
  }
  .logo-track {
    width:100%;
  }
  .logo-group {
    width:100%;
    flex-wrap:wrap;
    justify-content:center;
    gap:10px;
    padding:0;
  }
  .logo-group>div {
    width:calc(50% - 10px);
  }
  .logo-group[aria-hidden=true] {
    display:none;
  }
}
.admin-bar .site-header {
  top:var(--admin-offset,32px);
}
.admin-bar .reading-progress {
  top:calc(var(--nav-height) + var(--admin-offset,32px));
}
.division-scene {
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  z-index:-3;
  overflow:hidden;
}
.division-scene image {
  filter:saturate(.7) brightness(.82);
}
.scene-pulse {
  fill:none;
  stroke:#c8f4ff;
  stroke-width:3;
  stroke-linecap:round;
  stroke-dasharray:5 95;
  animation:traced-pulse 3.6s linear infinite;
  filter:drop-shadow(0 0 4px #59cfff);
  opacity:.8;
}
.scene-optics .scene-pulse {
  stroke-width:4;
  stroke-dasharray:3 97;
  animation-duration:6s;
  opacity:.7;
}
.is-offscreen .scene-pulse {
  animation-play-state:paused;
}
@keyframes traced-pulse {
  from {
    stroke-dashoffset:100;
  }
  to {
    stroke-dashoffset:0;
  }
}
@media(prefers-reduced-motion:reduce) {
  .scene-pulses {
    display:none;
  }
}

/* Native form previews use the site's typography and spacing, with no builder CSS. */
.tf-form-preview { margin-block:32px; padding:clamp(24px,4vw,44px); border-radius:24px; background:#fff; }
.tf-form-preview fieldset { border:0; padding:0; margin:0; min-width:0; }
.tf-form-preview .form-notice { color:var(--muted); font-size:15px; margin-bottom:24px; }
.tf-form-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:22px; margin-bottom:24px; }
.tf-form-grid label { display:grid; gap:8px; font-size:15px; color:var(--ink); }
.tf-form-grid input,.tf-form-grid select,.tf-form-grid textarea { width:100%; min-width:0; padding:12px 14px; color:var(--text); background:var(--paper); border:1px solid var(--line); border-radius:10px; opacity:1; }
.tf-form-wide { grid-column:1/-1; }
.tf-form-preview button:disabled { opacity:.6; cursor:default; }
.page-prose img { max-height:480px; object-fit:contain; margin:24px auto; }
.page-prose .migrated-action { display:inline-flex; color:#fff; text-decoration:none; }
@media(max-width:600px) { .tf-form-grid { grid-template-columns:1fr; } }

.article-engagement { display:flex; flex-wrap:wrap; align-items:center; gap:16px 24px; margin:48px 0 24px; padding-block:24px; border-block:1px solid var(--line); font-size:15px; }
.article-like { display:inline-flex; align-items:center; gap:10px; padding:12px 18px; border:1px solid var(--line); border-radius:999px; color:var(--ink); background:#fff; transition:background .18s,color .18s,border-color .18s; }
.article-like svg { fill:none; stroke:currentColor; stroke-width:1.7; }
.article-like:hover:not(:disabled),.article-like[aria-pressed=true] { color:var(--blue); background:#e7f2ff; border-color:#b5d7fa; }
.article-like[aria-pressed=true] svg { fill:currentColor; }
.article-like:disabled { cursor:default; opacity:.65; }
[data-like-count] { font-variant-numeric:tabular-nums; min-width:1ch; }
.article-reply-link { color:var(--blue); }
.engagement-status { flex-basis:100%; color:var(--muted); font-size:14px; }
.engagement-status:empty { display:none; }
.article-cta { display:flex; align-items:center; justify-content:space-between; gap:32px; padding:clamp(28px,4vw,48px); margin:40px 0; border-radius:24px; background:var(--ink); color:#fff; }
.article-cta .eyebrow { color:var(--optical); margin-bottom:12px; }
.article-cta h2 { font-size:clamp(28px,3vw,38px); margin-bottom:16px; }
.article-cta p:not(.eyebrow) { color:#d8e3ee; max-width:620px; }
.article-cta .action { flex-shrink:0; white-space:nowrap; }
.comment-list .children { margin:20px 0 0; padding-left:24px; list-style:none; border-left:2px solid var(--line); }
.comment-reply-link,#cancel-comment-reply-link { display:inline-block; color:var(--blue); font-weight:500; margin-top:12px; }
.comment-awaiting-moderation { color:var(--muted); }
@media(max-width:700px) { .article-cta { align-items:flex-start; flex-direction:column; } .article-engagement { align-items:flex-start; flex-direction:column; } .comment-list .children { padding-left:14px; } }
