/* Shared CSS glass material for Edge, Chrome and Safari. Keep the prefixed
   and standard filters paired; SVG backdrop displacement is engine-specific. */
/* Stop elastic scrolling at page boundaries and color the root canvas as a
   fallback for browsers that still expose it during a native overscroll. */
html {
  overscroll-behavior-y: none;
  background: #fff;
}
body.site-has-header {
  overscroll-behavior-y: none;
  background: #fff;
}
body.site-has-header > .page-wrapper { padding-top: 6rem; }
body.site-has-header.ai-home-page > .page-wrapper { padding-top: 0; }
/* Keep the fixed header's reserved space on the same white surface as the hero. */
body.site-has-header:not(.ai-home-page) > .page-wrapper {
  background-color: #fff;
  background-image: none;
}
body [role="banner"].site-header.w-nav {
  inset: 0.75rem 1rem auto;
  width: calc(100% - 2rem);
  border: 1px solid rgba(255, 255, 255, .72);
  border-radius: 62.4375rem;
  background: rgba(247, 251, 255, .94);
  box-shadow: inset 0 1px 1px rgba(255, 255, 255, .95), inset 0 -1px 1px rgba(91, 113, 166, .16), 0 0.5rem 1.5rem rgba(31, 48, 89, .1);
  transition: background 220ms ease, box-shadow 220ms ease;
}
/* Bring the separate desktop groups into one glass shell on scroll. */
@media (min-width: 992px) {
  body [role="banner"].site-header.w-nav.has-scroll-collapse {
    left: 0;
    right: 0;
    transition: width 360ms cubic-bezier(.22, 1, .36, 1), background 220ms ease, box-shadow 220ms ease;
  }
  body [role="banner"].site-header.w-nav.has-scroll-collapse.is-condensed {
    width: min(calc(100% - 2rem), var(--site-header-compact-width));
  }
  body [role="banner"].site-header.has-scroll-collapse .header-logo-link {
    justify-content: flex-start;
    min-width: 0;
    transition: width 360ms cubic-bezier(.22, 1, .36, 1), opacity 180ms ease, transform 220ms ease;
  }
  body [role="banner"].site-header.has-scroll-collapse .header-logo-link::before {
    transition: left 360ms cubic-bezier(.22, 1, .36, 1), right 360ms cubic-bezier(.22, 1, .36, 1);
  }
  body [role="banner"].site-header.has-scroll-collapse .header-logo-link img {
    flex: 0 0 auto;
    left: 0;
    clip-path: inset(0);
    transition: clip-path 220ms ease, left 360ms cubic-bezier(.22, 1, .36, 1);
  }
  body [role="banner"].site-header.has-scroll-collapse.is-condensed .header-logo-link {
    flex-basis: var(--site-header-control-height);
    width: var(--site-header-control-height);
  }
  body [role="banner"].site-header.has-scroll-collapse.is-condensed .header-logo-link::before {
    left: 0;
    right: 0;
  }
  /* The brand SVG is 152 × 36 with a square 36-unit icon. Size the box to that
     ratio so object-fit adds no side padding, then crop to the icon. */
  body [role="banner"].site-header.has-scroll-collapse.is-condensed .header-logo-link img {
    width: 9.5rem;
    height: 2.25rem;
    max-height: none;
    left: calc((var(--site-header-control-height) - 2.25rem) / 2);
    clip-path: inset(0 calc(100% - 2.25rem) 0 0);
  }
}
body [role="banner"].site-header.w-nav.is-scrolled { box-shadow: inset 0 1px 1px rgba(255, 255, 255, .95), inset 0 -1px 1px rgba(91, 113, 166, .16), 0 0.5rem 1.5rem rgba(31, 48, 89, .12); }
/* Webflow uses these pseudo-elements as display:table clearfixes. Explicitly
   size the decorative layers; put the real glass material on the header itself. */
body [role="banner"].site-header::before,
body [role="banner"].site-header::after { display: block; width: 100%; height: 100%; }
body [role="banner"].site-header::before {
  background: transparent;
}
body [role="banner"].site-header::after {
  background: linear-gradient(160deg, rgba(255, 255, 255, .85), rgba(255, 255, 255, .12) 28%, rgba(137, 180, 236, .32) 52%, rgba(255, 255, 255, .1) 70%, rgba(255, 255, 255, .8));
  padding: 1.5px;
  -webkit-mask: linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0);
  -webkit-mask-composite: xor;
  mask: linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0);
  mask-composite: exclude;
}
@supports ((-webkit-backdrop-filter: blur(1px)) or (backdrop-filter: blur(1px))) {
  body [role="banner"].site-header.w-nav {
    background: linear-gradient(160deg, rgba(255, 255, 255, .36), rgba(244, 250, 255, .12) 45%, rgba(225, 239, 255, .24));
    -webkit-backdrop-filter: blur(0.75rem) saturate(150%);
    backdrop-filter: blur(0.75rem) saturate(150%);
  }
  /* Keep the outer shell clear; protect only the menu's reading area below. */
  body [role="banner"].site-header.w-nav.is-scrolled {
    background: linear-gradient(160deg, rgba(255, 255, 255, .42), rgba(244, 250, 255, .14) 45%, rgba(225, 239, 255, .28));
    -webkit-backdrop-filter: blur(0.875rem) saturate(150%);
    backdrop-filter: blur(0.875rem) saturate(150%);
  }
}
body [role="banner"].site-header .header-nav-menu-wrapper-3 { position: relative; }
body [role="banner"].site-header .header-nav-menu-wrapper-3::before {
  content: ""; position: absolute; top: 50%; left: 0;
  width: 100%; height: var(--site-header-control-height); transform: translateY(-50%);
  z-index: 0; border-radius: 62.4375rem; pointer-events: none; opacity: 0;
  background: linear-gradient(165deg, rgba(255, 255, 255, .5), rgba(246, 251, 255, .32) 48%, rgba(229, 242, 255, .4));
  border: 1px solid rgba(255, 255, 255, .68);
  box-shadow: inset 0 1px 1px rgba(255, 255, 255, .9), inset 0 -1px 1px rgba(118, 151, 193, .16), 0 0.1875rem 0.75rem rgba(31, 48, 89, .06);
  -webkit-backdrop-filter: blur(1rem) saturate(145%); backdrop-filter: blur(1rem) saturate(145%);
  transition: opacity 220ms ease;
}
body [role="banner"].site-header.is-scrolled .header-nav-menu-wrapper-3::before { opacity: 1; }
body [role="banner"].site-header .header-nav-menu-list-3 { position: relative; z-index: 2; }
body [role="banner"].site-header .site-nav-lens {
  position: absolute; top: 50%; left: 0; z-index: 1; width: 4.25rem; height: 2.25rem;
  border: 1px solid rgba(255, 255, 255, .8); border-radius: 62.4375rem;
  pointer-events: none; opacity: 0;
  background: linear-gradient(145deg, rgba(255, 255, 255, .32), rgba(255, 255, 255, .025) 36%, rgba(255, 255, 255, .06) 74%, rgba(255, 255, 255, .26));
  box-shadow: inset 1px 1px 2px rgba(255, 255, 255, .9), inset -1px -1px 2px rgba(255, 255, 255, .6), 0 2px 0.3125rem rgba(37, 57, 90, .1);
  -webkit-backdrop-filter: blur(2px) saturate(135%); backdrop-filter: blur(2px) saturate(135%);
}
body [role="banner"].site-header .site-nav-lens.is-ready { transition: opacity 160ms ease; }
body [role="banner"].site-header .site-nav-lens.is-ready.is-changing-target { transition: transform 160ms cubic-bezier(.2, .8, .2, 1), width 160ms cubic-bezier(.2, .8, .2, 1), opacity 160ms ease; }
body [role="banner"].site-header .site-nav-lens::after {
  content: ""; position: absolute; inset: 0; border-radius: inherit;
  background: conic-gradient(from 120deg, rgba(110, 215, 241, .2), transparent 18%, rgba(229, 169, 217, .19) 31%, transparent 45%, rgba(255, 255, 255, .85) 65%, transparent 80%, rgba(210, 216, 140, .2));
  padding: 1px; -webkit-mask: linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0); -webkit-mask-composite: xor;
  mask: linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0); mask-composite: exclude;
}
@media (min-width: 992px) {
  /* Give the menu its own intrinsic track. Moving the lens or shrinking the
     surrounding header must never resize this capsule. */
  body [role="banner"].site-header .header-nav-menu-wrapper-3 {
    flex: 0 0 auto;
    width: max-content;
    border-radius: 62.4375rem;
  }
  body [role="banner"].site-header .header-nav-menu-list-3 {
    width: max-content;
    /* Match the vertical lens inset; include its 14px overhang and subtract
       the menu list's 1px border from the horizontal padding. */
    padding-inline: calc((var(--site-header-control-height) - 2.25rem) / 2 + 13px);
  }
  /* Paint the joined surface on a fading layer, so the wide top layout stays
     transparent instead of blurring the space between the separate groups. */
  body [role="banner"].site-header.w-nav.has-scroll-collapse {
    border-color: transparent;
    background: transparent;
    box-shadow: none;
    -webkit-backdrop-filter: none;
    backdrop-filter: none;
    pointer-events: none;
  }
  body [role="banner"].site-header.has-scroll-collapse::before {
    border: 1px solid rgba(255, 255, 255, .72);
    background: rgba(247, 251, 255, .94);
    box-shadow: inset 0 1px 1px rgba(255, 255, 255, .95), inset 0 -1px 1px rgba(91, 113, 166, .16), 0 0.5rem 1.5rem rgba(31, 48, 89, .12);
    opacity: 0;
    transition: opacity 360ms cubic-bezier(.22, 1, .36, 1);
  }
  body [role="banner"].site-header.has-scroll-collapse::after {
    opacity: 0;
    transition: opacity 360ms cubic-bezier(.22, 1, .36, 1);
  }
  body [role="banner"].site-header.has-scroll-collapse.is-condensed::before,
  body [role="banner"].site-header.has-scroll-collapse.is-condensed::after { opacity: 1; }
  body [role="banner"].site-header.has-scroll-collapse :is(.header-logo-link, .header-middle, .header-right-side, .languagedroupdowndiv) {
    pointer-events: auto;
  }
  /* Show the menu's outer capsule only after leaving the page top. */
  body [role="banner"].site-header.has-scroll-collapse.is-scrolled .header-nav-menu-wrapper-3::before { opacity: 1; }
  @supports ((-webkit-backdrop-filter: blur(1px)) or (backdrop-filter: blur(1px))) {
    body [role="banner"].site-header.has-scroll-collapse::before {
      background: linear-gradient(160deg, rgba(255, 255, 255, .42), rgba(244, 250, 255, .14) 45%, rgba(225, 239, 255, .28));
    }
    /* Filter the actual surface. A pseudo-element inside the fixed header can
       lose the page backdrop in Chromium's compositing path. */
    body [role="banner"].site-header.has-scroll-collapse.is-condensed {
      -webkit-backdrop-filter: blur(0.875rem) saturate(150%);
      backdrop-filter: blur(0.875rem) saturate(150%);
    }
    body [role="banner"].site-header.is-scrolled .header-nav-menu-wrapper-3 {
      -webkit-backdrop-filter: blur(0.75rem) saturate(145%);
      backdrop-filter: blur(0.75rem) saturate(145%);
    }
    body [role="banner"].site-header .header-nav-menu-wrapper-3::before {
      -webkit-backdrop-filter: none;
      backdrop-filter: none;
    }
  }
  body [role="banner"].site-header .header-nav-link-4 { text-shadow: 0 1px 0 rgba(255, 255, 255, .7); }
  body [role="banner"].site-header.has-liquid-glass .header-nav-link-4.w--current { color: var(--site-nav-active-color, #5248fc) !important; }
  /* Suppress the legacy underline from first paint, before the lens script
     adds has-liquid-glass, including during cross-document transitions. */
  body [role="banner"].site-header .header-nav-link-4::after { display: none; }
}
@supports not ((-webkit-backdrop-filter: blur(1px)) or (backdrop-filter: blur(1px))) {
  body [role="banner"].site-header .header-nav-menu-wrapper-3::before { background: rgba(246, 251, 255, .94); }
}
@media (max-width: 991px) {
  body.site-has-header > .page-wrapper { padding-top: 5.25rem; }
  body.site-has-header.ai-home-page > .page-wrapper { padding-top: 0; }
  body [role="banner"].site-header.w-nav { inset: 0.5rem 0.5rem auto; width: calc(100% - 1rem); }
  body [role="banner"].site-header .site-nav-lens { display: none; }
  body [role="banner"].site-header .header-nav-menu-wrapper-3::before { display: none; }
}
/* Scrolling pixels should cross one inexpensive glass surface. Restore the
   layered CSS blur after scrolling or resizing settles. */
html.site-is-scrolling body [role="banner"].site-header.w-nav,
body [role="banner"].site-header.w-nav.is-resizing,
html.site-light-effects body [role="banner"].site-header.w-nav {
  -webkit-backdrop-filter: blur(4px) !important;
  backdrop-filter: blur(4px) !important;
  transition-property: width, background, box-shadow;
}
html:is(.site-is-scrolling, .site-light-effects) body [role="banner"].site-header .header-nav-menu-wrapper-3,
body [role="banner"].site-header.is-resizing :is(.header-nav-menu-wrapper-3, .site-nav-lens),
body [role="banner"].site-header.is-resizing .header-nav-menu-wrapper-3::before,
html:is(.site-is-scrolling, .site-light-effects) body [role="banner"].site-header .header-nav-menu-wrapper-3::before,
html:is(.site-is-scrolling, .site-light-effects) body [role="banner"].site-header .site-nav-lens {
  -webkit-backdrop-filter: none !important;
  backdrop-filter: none !important;
}
html.site-light-effects body [role="banner"].site-header.w-nav {
  background: linear-gradient(160deg, rgba(255, 255, 255, .94), rgba(231, 242, 255, .9)) !important;
  -webkit-backdrop-filter: none !important;
  backdrop-filter: none !important;
}
html.site-light-effects.site-is-scrolling .ai-logo-wall__track { animation-play-state: paused !important; }

@media (prefers-reduced-motion: reduce) {
  body [role="banner"].site-header.w-nav { transition: none; }
  body [role="banner"].site-header::before,
  body [role="banner"].site-header::after,
  body [role="banner"].site-header.has-scroll-collapse::before,
  body [role="banner"].site-header.has-scroll-collapse::after,
  body [role="banner"].site-header.has-scroll-collapse .header-logo-link::before { transition: none; }
  body [role="banner"].site-header.has-scroll-collapse .header-logo-link,
  body [role="banner"].site-header.has-scroll-collapse .header-logo-link img { transition: none; }
  body [role="banner"].site-header .header-nav-menu-wrapper-3::before { transition: none; }
  body [role="banner"].site-header .site-nav-lens.is-ready,
  body [role="banner"].site-header .site-nav-lens.is-ready.is-changing-target { transition: none; }
}
