/* Original ABDS identity, with one consistent lockup across breakpoints. */
@font-face {
  font-family: Inter;
  font-style: normal;
  font-weight: 400 800;
  font-display: swap;
  src: url('/assets/fonts/inter-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;
}
@font-face {
  font-family: Inter;
  font-style: normal;
  font-weight: 400 800;
  font-display: swap;
  src: url('/assets/fonts/inter-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;
}
:root { --header: 82px; }
.header-inner {
  grid-template-columns: auto minmax(0,1fr) auto;
  gap: 32px;
}
.site-header { background: rgba(8,10,15,.97); }
.site-header .brand { justify-self: start; }
.brand {
  width: max-content;
  max-width: 100%;
  gap: 12px;
  font-family: Inter,Arial,sans-serif;
  font-size: 21px;
  font-weight: 800;
  letter-spacing: -.025em;
}
.brand-symbol {
  width: 44px;
  height: 44px;
  padding: 3px;
  background: #fff;
  border: 1px solid #dce2e8;
  border-radius: 11px;
  object-fit: contain;
  flex: 0 0 44px;
  box-shadow: 0 2px 5px #0002;
}
.brand-lockup { gap: 5px; line-height: 1.05; }
.brand small {
  display: block;
  font-size: 9px;
  line-height: 1.25;
  font-weight: 650;
  letter-spacing: .13em;
  text-transform: uppercase;
  color: #a9b4c4;
  white-space: nowrap;
}
.primary-nav { justify-self: end; gap: 6px; }
.primary-nav a { font-size: 14px; font-weight: 550; padding-inline: 12px; }
@media (min-width:981px) {
  .primary-nav a { color: #b8c0cc; border-radius: 4px; transition: color .2s ease; }
  .primary-nav a:hover, .primary-nav a[aria-current="page"] { color: #fff; }
  .primary-nav a:focus-visible { outline: 2px solid #cbd3ff; outline-offset: 2px; }
}
.header-cta {
  justify-self: end;
  min-height: 44px;
  padding: 11px 20px;
  gap: 14px;
  font-size: 14px;
  font-weight: 650;
  line-height: 1.5;
}
.header-cta > span:last-child { font-size: 18px; }
.hero h1 { font-weight: 750; letter-spacing: -.055em; }
.hero-services { font-weight: 550; }
.hero-copy { max-width: 640px; }
.hero-aside {
  border: 1px solid #ffffff26;
  border-radius: 18px;
  overflow: hidden;
  background: rgba(10,13,19,.82);
  backdrop-filter: blur(14px);
  -webkit-backdrop-filter: blur(14px);
}
.signal-card { border-color: #ffffff26; padding: 22px; }
.signal-card:last-child { border-bottom: 0; }
.section-title { font-weight: 650; letter-spacing: -.045em; }
.service-card h3 { font-weight: 650; }
.site-footer .brand { font-size: 25px; gap: 14px; }
.site-footer .brand-symbol { width: 50px; height: 50px; flex-basis: 50px; padding: 4px; border-radius: 12px; }
.site-footer .brand small { font-size: 9px; }
.footer-brand p { margin-top: 24px; max-width: 300px; }
@media (max-width:1100px) {
  .header-inner { gap: 18px; }
  .primary-nav a { padding-inline: 11px; }
}
@media (max-width:980px) {
  :root { --header: 76px; }
  .header-inner { grid-template-columns: minmax(0,1fr) auto auto; gap: 16px; }
  .primary-nav { justify-self: stretch; }
  .nav-ready .primary-nav { flex-wrap: nowrap; justify-content: flex-start; }
  .nav-ready .primary-nav a { flex-shrink: 0; }
  .primary-nav a { padding-inline: 16px; }
  .header-cta { grid-column: 2; grid-row: 1; }
  .menu-toggle { grid-column: 3; grid-row: 1; width: 44px; height: 44px; }
}
/* Drift reverses at its endpoints so differently sized tiles never jump. */
.drift-column { animation-direction: alternate; animation-timing-function: ease-in-out; }
@media (max-width:680px) {
  :root { --header: 72px; }
  .header-inner { width: calc(100% - 32px); gap: 10px; }
  .brand { font-size: 20px; gap: 9px; }
  .brand-symbol { width: 42px; height: 42px; flex-basis: 42px; padding: 3px; border-radius: 10px; }
  .site-header .brand small { display: none; }
  .header-cta { font-size: 13px; padding: 10px 14px; gap: 8px; min-height: 44px; }
  .header-cta > span:last-child { font-size: 16px; }
  .menu-toggle { border-color: #ffffff30; }
  .hero .eyebrow { font-size: 11px; font-weight: 550; letter-spacing: .11em; }
  .hero h1 { font-size: clamp(42px,10.8vw,68px); }
  .hero-copy { font-size: 16px; line-height: 1.75; }
  .hero-services { font-size: 14px; }
  .signal-card { padding: 16px; gap: 16px; }
  .signal-card span { max-width: 42%; line-height: 1.5; }
  .signal-card strong { max-width: 58%; line-height: 1.5; }
  .site-footer .brand small { display: block; }
}
@media (max-width:360px) {
  .header-inner { width: calc(100% - 24px); gap: 8px; }
  .brand { gap: 8px; font-size: 18px; }
  .brand-symbol { width: 40px; height: 40px; flex-basis: 40px; }
  .header-cta { padding-inline: 11px; gap: 6px; }
}
@media (max-width:319px) {
  .header-cta > span:last-child { display: none; }
  .header-cta { padding-inline: 10px; }
}
/* A desktop-sized touch/hybrid surface still gets the expanding gallery. */
@media (min-width:981px) {
  .accordion-gallery { display: flex; container-type: inline-size; min-height: 540px; }
  .accordion-gallery .accordion-panel,
  .accordion-gallery .accordion-panel:nth-child(3) { min-height: 540px; flex: 1 1 0; }
  .accordion-gallery .accordion-panel.is-active { flex: 2.8 1 0; }
  .accordion-gallery .accordion-panel > div:last-child {
    width: calc(58.333cqw - 115px);
    max-width: none;
    opacity: 0;
    transform: translateY(14px);
    pointer-events: none;
  }
  .accordion-gallery .accordion-panel.is-active > div:last-child {
    opacity: 1;
    transform: none;
    pointer-events: auto;
  }
}
