/* LightSpring — CSS complementaire du site Webflow.
   Genere par sources/webflow-prepare.py : ne pas editer a la main.
   Contient tout ce que le Designer ne sait pas porter — selecteurs
   descendants, :not(), @keyframes, prefers-reduced-motion, styles de
   balises — et redeclare tous les tokens sous leur nom d'origine,
   dont les deux que lit hero-animation.js. */
:root {
  --ls-black:       #000000;
  --ls-neutral-900: #151a1c;
  --ls-neutral-800: #343739;
  --ls-neutral-700: #454e55;
  --ls-neutral-600: #5c6870;
  --ls-neutral-500: #818282;
  --ls-neutral-400: #8f9ba3;
  --ls-neutral-200: #c7cdd0;
  --ls-neutral-100: #e4e6e8;
  --ls-neutral-50:  #f2f3f3;
  --ls-white:       #ffffff;
  --ls-orange:     #ff6200;
  --ls-orange-cta: #ff571a;
  --ls-plum: #530624;
  --ls-color-ink:        var(--ls-neutral-900);
  --ls-color-ink-strong: var(--ls-black);
  --ls-color-ink-muted:  var(--ls-neutral-700);
  --ls-color-surface:    var(--ls-white);
  --ls-color-accent:     var(--ls-orange);
  --ls-color-on-accent:  var(--ls-neutral-900);
  --ls-color-focus:      var(--ls-orange);
  --ls-color-cta-hover:  color-mix(in srgb, var(--ls-orange-cta) 88%, var(--ls-black));
  --ls-color-nav-hover:  color-mix(in srgb, var(--ls-orange) 88%, var(--ls-black));
  --ls-color-on-dark-muted: rgb(255 255 255 / 0.5);
  --ls-color-on-dark-faint: rgb(255 255 255 / 0.3);
  --ls-surface-hero:      #2e3437;
  --ls-surface-vision:    var(--ls-neutral-50);
  --ls-surface-vision-dark: var(--ls-black);
  --ls-surface-tech:      var(--ls-black);
  --ls-surface-cta:       var(--ls-plum);
  --ls-surface-proof:     var(--ls-neutral-100);
  --ls-surface-contact:   var(--ls-neutral-50);
  --ls-surface-ecosystem: var(--ls-neutral-100);
  --ls-surface-team:      var(--ls-neutral-200);
  --ls-surface-footer:    var(--ls-neutral-900);
  --ls-surface-header:    rgb(0 0 0 / 0.25);
  --ls-surface-header-panel: var(--ls-neutral-900);
  --ls-header-ink-on-dark:  var(--ls-neutral-100);
  --ls-header-ink-on-light: var(--ls-neutral-900);
  --ls-overlay-hero:  rgb(0 0 0 / 0.5);
  --ls-scrim-proof:
  linear-gradient(to bottom right, rgb(0 0 0 / 0.62), rgb(0 0 0 / 0) 45%),
  linear-gradient(to top left,     rgb(0 0 0 / 0.62), rgb(0 0 0 / 0) 45%);
  --ls-veil-tech:     linear-gradient(180deg, rgb(0 0 0 / 0.2) 0%, rgb(46 52 55 / 0.2) 99.45%);
  --ls-rule-light:    var(--ls-black);
  --ls-rule-dark:     var(--ls-neutral-500);
  --ls-rule-on-image: var(--ls-white);
  --ls-hero-bg:   transparent;
  --ls-hero-line: var(--ls-white);
  --ls-font-display: "Denim WD", "Inter", system-ui, -apple-system, "Segoe UI", Arial, sans-serif;
  --ls-font-sans:    "Inter", system-ui, -apple-system, "Segoe UI", Roboto, Arial, sans-serif;
  --ls-text-h1: clamp(2.25rem, 1.755rem + 2.111vw, 3.75rem);
  --ls-text-h2: clamp(1.75rem, 1.502rem + 1.055vw, 2.5rem);
  --ls-text-h3: clamp(1.5rem,  1.335rem + 0.704vw, 2rem);
  --ls-text-h4: clamp(1.1875rem, 1.126rem + 0.264vw, 1.375rem);
  --ls-text-lead: clamp(1.25rem, 1.168rem + 0.352vw, 1.5rem);
  --ls-text-counter: clamp(3rem, 2.031rem + 4.134vw, 5.9375rem);
  --ls-text-base: 1rem;
  --ls-text-sm:   0.9375rem;
  --ls-text-xs:   0.875rem;
  --ls-leading-h1:   1;
  --ls-leading-h2:   1.2;
  --ls-leading-h3:   1.4;
  --ls-leading-snug: 1.18;
  --ls-leading-tight: 1.2;
  --ls-leading-normal: 1.25;
  --ls-leading-relaxed: 1.6;
  --ls-leading-contact: 1.25;
  --ls-leading-footer: 1.4286;
  --ls-leading-loose: 1.8;
  --ls-tracking-h1:  -0.01em;
  --ls-tracking-cta: -0.011em;
  --ls-tracking-field: -0.02em;
  --ls-weight-regular: 400;
  --ls-weight-medium:  500;
  --ls-weight-semibold: 600;
  --ls-space-1:  0.25rem;
  --ls-space-2:  0.5rem;
  --ls-space-3:  0.625rem;
  --ls-space-4:  1rem;
  --ls-space-5:  1.25rem;
  --ls-space-6:  1.4375rem;
  --ls-space-7:  1.875rem;
  --ls-space-8:  2.5rem;
  --ls-space-9:  3rem;
  --ls-space-10: 3.5rem;
  --ls-space-12: 4.75rem;
  --ls-space-13: 3.6875rem;
  --ls-space-14: 4.8125rem;
  --ls-space-16: 7.875rem;
  --ls-space-nav: 5.9375rem;
  --ls-section-y: clamp(2rem, 1.7rem + 0.66vw, 2.5rem);
  --ls-section-y-lead: calc(var(--ls-section-y) * 2);
  --ls-section-y-vision: clamp(4.5rem, 3.717rem + 3.342vw, 6.875rem);
  --ls-header-y:       calc(var(--ls-section-y) * 0.8);
  --ls-header-y-solid: calc(var(--ls-section-y) * 0.4);
  --ls-header-h: 5rem;
  --ls-header-blur: 0.05rem;
  --ls-container-max: 1432px;
  --ls-gutter: clamp(1.25rem, 0.6rem + 1.7vw, 2.5rem);
  --ls-gutter-footer: clamp(1.25rem, 0.35rem + 3.34vw, 3.5rem);
  --ls-ratio-hero:    1512 / 975;
  --ls-ratio-vision:  987 / 506;
  --ls-ratio-tech:    754 / 952;
  --ls-ratio-proof:   1512 / 982;
  --ls-ratio-portrait: 444 / 631;
  --ls-radius: 0;
  --ls-border-thin: 1px;
  --ls-border-thick: 2px;
  --ls-ease: cubic-bezier(0.22, 0.61, 0.36, 1);
  --ls-duration: 240ms;
  --ls-dim-inactive: 0.4;
  --ls-dim-logos: 0.6;
  --ls-ease-out:    cubic-bezier(0.16, 1, 0.3, 1);
  --ls-ease-in-out: cubic-bezier(0.65, 0, 0.35, 1);
  --ls-duration-fast:   160ms;
  --ls-duration-wipe:   360ms;
  --ls-duration-roll:   480ms;
  --ls-duration-slide:  600ms;
  --ls-duration-fade:   700ms;
  --ls-duration-reveal: 640ms;
  --ls-duration-rule:   800ms;
  --ls-duration-header: 320ms;
  --ls-duration-carousel: 3500ms;
  --ls-marquee-speed: 40px;
  --ls-interval-proof:    5000ms;
  --ls-delay-header-idle: 3000ms;
  --ls-stagger-step:   70ms;
  --ls-reveal-y:       1.25rem;
  --ls-hero-word-y:    0.6em;
  --ls-parallax-range: 2.5rem;
  --ls-zoom-range:     0.12;
  --ls-parallax-range-cta: 16rem;
  --ls-zoom-range-cta:     0.04;
  --ls-pin-viewport: 100vh;
  --ls-placeholder-bg:        var(--ls-neutral-100);
  --ls-placeholder-line:      var(--ls-neutral-200);
  --ls-placeholder-ink:       var(--ls-neutral-700);
  --ls-placeholder-bg-dark:   var(--ls-neutral-900);
  --ls-placeholder-line-dark: var(--ls-neutral-700);
  --ls-placeholder-ink-dark:  var(--ls-neutral-400);
  --ls-placeholder-cell:      2.5rem;
  --ls-placeholder-mark:      0.75rem;
}
* {
  box-sizing: border-box;
}
*::before {
  box-sizing: border-box;
}
*::after {
  box-sizing: border-box;
}
html {
  -webkit-text-size-adjust: 100%;
  scroll-behavior: smooth;
  scroll-padding-top: var(--ls-header-h);
}
body {
  margin: 0;
}
h1 {
  margin: 0;
}
h2 {
  margin: 0;
}
h3 {
  margin: 0;
}
h4 {
  margin: 0;
}
p {
  margin: 0;
}
figure {
  margin: 0;
}
blockquote {
  margin: 0;
}
dl {
  margin: 0;
}
dd {
  margin: 0;
}
ul {
  margin: 0;
}
ol {
  margin: 0;
}
ul[class] {
  list-style: none; padding: 0;
}
ol[class] {
  list-style: none; padding: 0;
}
body {
  min-height: 100vh;
  font-family: var(--ls-font-sans);
  font-size: var(--ls-text-base);
  line-height: var(--ls-leading-normal);
  color: var(--ls-color-ink);
  background: var(--ls-color-surface);
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
}
img {
  display: block; max-width: 100%;
}
picture {
  display: block; max-width: 100%;
}
svg {
  display: block; max-width: 100%;
}
video {
  display: block; max-width: 100%;
}
img {
  height: auto;
}
video {
  height: auto;
}
input {
  font: inherit; color: inherit;
}
button {
  font: inherit; color: inherit;
}
textarea {
  font: inherit; color: inherit;
}
select {
  font: inherit; color: inherit;
}
a {
  color: inherit; text-decoration-thickness: 1px; text-underline-offset: 0.2em;
}
h1 {
  font-family: var(--ls-font-display);
  font-weight: var(--ls-weight-medium);
  text-wrap: pretty;
}
h2 {
  font-family: var(--ls-font-display);
  font-weight: var(--ls-weight-medium);
  text-wrap: pretty;
}
h3 {
  font-family: var(--ls-font-display);
  font-weight: var(--ls-weight-medium);
  text-wrap: pretty;
}
h4 {
  font-family: var(--ls-font-display);
  font-weight: var(--ls-weight-medium);
  text-wrap: pretty;
}
h1 {
  text-wrap: balance;
}
h1 {
  font-size: var(--ls-text-h1);
  line-height: var(--ls-leading-h1);
  letter-spacing: var(--ls-tracking-h1);
}
h2 {
  font-size: var(--ls-text-h2);
  line-height: var(--ls-leading-h2);
}
h3 {
  font-size: var(--ls-text-h3);
  line-height: var(--ls-leading-h3);
}
h4 {
  font-size: var(--ls-text-h4);
  line-height: var(--ls-leading-tight);
}
p {
  text-wrap: pretty;
}
:focus-visible {
  outline: var(--ls-border-thick) solid var(--ls-color-focus);
  outline-offset: 3px;
}
.ls-hero :focus-visible {
  outline-color: var(--ls-white);
}
.ls-technology :focus-visible {
  outline-color: var(--ls-white);
}
.ls-cta :focus-visible {
  outline-color: var(--ls-white);
}
.ls-proof :focus-visible {
  outline-color: var(--ls-white);
}
.ls-footer :focus-visible {
  outline-color: var(--ls-white);
}
@media (prefers-reduced-motion: reduce) {
  html {
    scroll-behavior: auto;
  }
  * {
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
  }
  *::before {
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
  }
  *::after {
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
  }
}
.ls-stack > * + * {
  margin-top: var(--ls-stack-gap, var(--ls-space-4));
}
.ls-cluster {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: var(--ls-cluster-gap, var(--ls-space-4));
}
@media (prefers-reduced-motion: no-preference) {
  .ls-reveal {
    transition:
    opacity   var(--ls-duration-reveal) var(--ls-ease-out),
    transform var(--ls-duration-reveal) var(--ls-ease-out);
    transition-delay: calc(var(--ls-stagger, 0) * var(--ls-stagger-step));
  }
  .ls-js .ls-reveal {
    opacity: 0;
    transform: translateY(var(--ls-reveal-y));
  }
  .ls-js .ls-reveal.is-inview {
    opacity: 1;
    transform: none;
  }
  .ls-rule::after {
    transition: transform var(--ls-duration-rule) var(--ls-ease-out);
    transition-delay: calc(var(--ls-stagger, 0) * var(--ls-stagger-step));
    transform-origin: left center;
  }
  .ls-js .ls-reveal .ls-rule::after {
    transform: scaleX(0);
  }
  .ls-js .ls-rule.ls-reveal::after {
    transform: scaleX(0);
  }
  .ls-js .ls-reveal.is-inview .ls-rule::after {
    transform: scaleX(1);
  }
  .ls-js .ls-rule.ls-reveal.is-inview::after {
    transform: scaleX(1);
  }
  .ls-word {
    display: inline-block;
    animation: ls-word-in var(--ls-duration-reveal) var(--ls-ease-out) both;
    animation-delay: calc(var(--ls-stagger, 0) * var(--ls-stagger-step));
  }
}
@keyframes ls-word-in {
  from { opacity: 0; transform: translateY(var(--ls-hero-word-y)); }
  to   { opacity: 1; transform: none; }
}
@keyframes ls-vision-fill {
  from { transform: scaleX(0); }
  to   { transform: scaleX(1); }
}
@keyframes ls-marquee {
  from { transform: translateX(0); }
  to   { transform: translateX(var(--ls-marquee-shift, -50%)); }
}
@keyframes ls-roll-in {
  from { opacity: 0; transform: translateY(100%); }
  to   { opacity: 1; transform: none; }
}
@keyframes ls-roll-out {
  from { opacity: 1; transform: none; }
  to   { opacity: 0; transform: translateY(-100%); }
}
@keyframes ls-roll-in-rev {
  from { opacity: 0; transform: translateY(-100%); }
  to   { opacity: 1; transform: none; }
}
@keyframes ls-roll-out-rev {
  from { opacity: 1; transform: none; }
  to   { opacity: 0; transform: translateY(100%); }
}
.ls-placeholder {
  position: relative;
  display: grid;
  place-items: center;
  padding: var(--ls-space-8);
  background-color: var(--ls-placeholder-bg);
  background-image:
  linear-gradient(to right,  var(--ls-placeholder-line) var(--ls-border-thin), transparent var(--ls-border-thin)),
  linear-gradient(to bottom, var(--ls-placeholder-line) var(--ls-border-thin), transparent var(--ls-border-thin));
  background-size: var(--ls-placeholder-cell) var(--ls-placeholder-cell);
  color: var(--ls-placeholder-ink);
}
.ls-placeholder__label {
  margin: 0;
  font-family: var(--ls-font-sans);
  font-size: var(--ls-text-base);
  font-weight: var(--ls-weight-semibold);
  line-height: 1;
  text-align: center;
  text-transform: uppercase;
  color: var(--ls-placeholder-ink);
}
.ls-placeholder::before {
  content: "";
  position: absolute;
  width: var(--ls-placeholder-mark);
  height: var(--ls-placeholder-mark);
  background:
  linear-gradient(var(--ls-placeholder-ink) 0 0) center / 100% var(--ls-border-thin) no-repeat,
  linear-gradient(var(--ls-placeholder-ink) 0 0) center / var(--ls-border-thin) 100% no-repeat;
}
.ls-placeholder::after {
  content: "";
  position: absolute;
  width: var(--ls-placeholder-mark);
  height: var(--ls-placeholder-mark);
  background:
  linear-gradient(var(--ls-placeholder-ink) 0 0) center / 100% var(--ls-border-thin) no-repeat,
  linear-gradient(var(--ls-placeholder-ink) 0 0) center / var(--ls-border-thin) 100% no-repeat;
}
.ls-placeholder::before {
  top: var(--ls-space-4); left: var(--ls-space-4);
}
.ls-placeholder::after {
  bottom: var(--ls-space-4); right: var(--ls-space-4);
}
.ls-placeholder--dark {
  --ls-placeholder-bg: var(--ls-placeholder-bg-dark);
  --ls-placeholder-line: var(--ls-placeholder-line-dark);
  --ls-placeholder-ink: var(--ls-placeholder-ink-dark);
}
.ls-btn::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: -1;
  background: var(--ls-btn-hover, var(--ls-color-cta-hover));
  transform: translateX(-101%);
  transition: transform var(--ls-duration-wipe) var(--ls-ease-out);
}
.ls-btn:hover::before {
  transform: translateX(0);
}
.ls-btn:focus-visible::before {
  transform: translateX(0);
}
.ls-btn--nav {
  background: var(--ls-orange);
  color: var(--ls-neutral-100);
  font-family: var(--ls-font-display);
  font-size: var(--ls-text-base);
  font-weight: var(--ls-weight-medium);
  letter-spacing: normal;
  text-transform: none;
  min-width: 11.9375rem;
  min-height: 3.1875rem;
  --ls-btn-hover: var(--ls-color-nav-hover);
}
header.ls-site-header {
  --ls-header-ink: var(--ls-header-ink-on-dark);
}
.ls-site-header--hidden {
  transform: translateY(-100%);
}
header.ls-site-header--on-light {
  --ls-header-ink: var(--ls-header-ink-on-light);
}
.ls-site-header--solid {
  padding-block: var(--ls-header-y-solid);
  background-color: var(--ls-surface-header);
  -webkit-backdrop-filter: blur(var(--ls-header-blur));
  backdrop-filter: blur(var(--ls-header-blur));
}
.ls-site-nav__link::after {
  content: "";
  position: absolute;
  inset: auto 0 calc(var(--ls-space-1) * -1);
  height: var(--ls-border-thin);
  background: currentColor;
  transform: scaleX(0);
  transform-origin: left center;
  transition: transform var(--ls-duration-fast) var(--ls-ease-out);
}
.ls-site-nav__link:hover::after {
  transform: scaleX(1);
}
.ls-site-nav__link:focus-visible::after {
  transform: scaleX(1);
}
.ls-site-nav__bars::before {
  display: block;
  width: 1.5rem;
  height: var(--ls-border-thick);
  background: currentColor;
  transition:
  transform var(--ls-duration-fast) var(--ls-ease-out),
  opacity var(--ls-duration-fast) var(--ls-ease-out);
}
.ls-site-nav__bars::after {
  display: block;
  width: 1.5rem;
  height: var(--ls-border-thick);
  background: currentColor;
  transition:
  transform var(--ls-duration-fast) var(--ls-ease-out),
  opacity var(--ls-duration-fast) var(--ls-ease-out);
}
.ls-site-nav__bars::before {
  content: "";
  position: absolute;
  left: 0;
}
.ls-site-nav__bars::after {
  content: "";
  position: absolute;
  left: 0;
}
.ls-site-nav__bars::before {
  top: calc(var(--ls-space-2) * -1);
}
.ls-site-nav__bars::after {
  top: var(--ls-space-2);
}
.ls-site-header--open .ls-site-nav__bars {
  background: transparent;
}
.ls-site-header--open .ls-site-nav__bars::before {
  transform: translateY(var(--ls-space-2)) rotate(45deg);
}
.ls-site-header--open .ls-site-nav__bars::after {
  transform: translateY(calc(var(--ls-space-2) * -1)) rotate(-45deg);
}
@media (max-width: 48rem) {
  .ls-js .ls-site-nav__toggle {
    display: inline-flex;
  }
  .ls-js .ls-site-nav {
    position: absolute;
    inset: 100% 0 auto;
    display: none;
    flex-direction: column;
    align-items: stretch;
    gap: var(--ls-space-4);
    padding: var(--ls-space-6) var(--ls-gutter) var(--ls-space-8);
    background: var(--ls-surface-header-panel);
    --ls-header-ink: var(--ls-header-ink-on-dark);
  }
  .ls-js .ls-site-header--open .ls-site-nav {
    display: flex;
  }
  .ls-site-nav .ls-btn--nav {
    width: 100%;
  }
}
.ls-hero__anim {
  position: absolute;
  inset: 14.14% 0 0;
  z-index: 0;
  overflow: hidden;
  mix-blend-mode: plus-lighter;
}
.ls-hero__anim svg {
  width: 100%;
  height: 100%;
  display: block;
}
@media (max-width: 48rem) {
  .ls-hero__anim {
    inset: 20% 0 0;
  }
}
.ls-vision--light {
  background-color: var(--ls-surface-vision);
  color: var(--ls-color-ink-strong);
}
.ls-vision--dark {
  background-color: var(--ls-surface-vision-dark);
  color: var(--ls-neutral-200);
}
.ls-vision__head {
  --ls-section-head-max: 62rem;
}
.ls-vision--light .ls-vision__eyebrow {
  color: var(--ls-color-ink-strong);
}
.ls-vision--dark .ls-vision__eyebrow {
  color: var(--ls-neutral-200);
}
.ls-vision--light .ls-vision__video {
  mix-blend-mode: multiply;
}
.ls-vision--dark .ls-vision__video {
  mix-blend-mode: screen;
}
.ls-vision--seeking .ls-vision__video {
  opacity: 0;
}
.ls-vision--switching .ls-vision__video {
  opacity: 0;
  transition-duration: var(--ls-duration-fast);
}
.ls-vision__pillars {
  --ls-grid-gap: var(--ls-space-5);
  --ls-grid-min: 15rem;
}
.ls-vision__pillar-head::before {
  content: "";
  position: absolute;
  inset: auto 0 0;
  background: var(--ls-rule-dark);
  transition: background-color var(--ls-duration-fade) var(--ls-ease);
}
.ls-vision__pillar-head::after {
  content: "";
  position: absolute;
  inset: auto 0 0;
  background: var(--ls-rule-dark);
  transition: background-color var(--ls-duration-fade) var(--ls-ease);
}
.ls-vision__pillar-head::before {
  height: var(--ls-border-thin);
}
.ls-vision__pillar-head::after {
  height: 0;
}
.ls-vision--light .ls-vision__pillar-head::before {
  background-color: var(--ls-rule-light);
}
.ls-vision--light .ls-vision__pillar-head::after {
  background-color: var(--ls-rule-light);
}
.ls-vision--dark .ls-vision__pillar-head::before {
  background-color: var(--ls-rule-dark);
}
.ls-vision--dark .ls-vision__pillar-head::after {
  background-color: var(--ls-rule-dark);
}
.ls-vision__pillar-btn {
  display: block;
  width: 100%;
  padding: 0;
  background: none;
  border: 0;
  font: inherit;
  color: inherit;
  text-align: left;
  cursor: pointer;
}
.ls-vision__pillar-next {
  display: none;
  padding: 0;
  background: none;
  border: 0;
  font-family: var(--ls-font-sans);
  font-size: var(--ls-text-xs);
  line-height: var(--ls-leading-normal);
  color: var(--ls-color-on-dark-muted);
  cursor: pointer;
  transition: color var(--ls-duration-fast) var(--ls-ease);
}
.ls-vision__pillar-next:hover {
  color: var(--ls-neutral-200);
  text-decoration: underline;
}
.ls-vision__pillar-next:focus-visible {
  color: var(--ls-neutral-200);
  text-decoration: underline;
}
.ls-vision--light .ls-vision__pillar-next {
  color: var(--ls-color-ink-muted);
}
.ls-vision--light .ls-vision__pillar-next:hover {
  color: var(--ls-color-ink-strong);
}
.ls-vision--light .ls-vision__pillar-next:focus-visible {
  color: var(--ls-color-ink-strong);
}
.ls-vision--dark .ls-vision__pillar-next {
  color: var(--ls-color-on-dark-muted);
}
.ls-vision--dark .ls-vision__pillar-next:hover {
  color: var(--ls-neutral-200);
}
.ls-vision--dark .ls-vision__pillar-next:focus-visible {
  color: var(--ls-neutral-200);
}
.ls-vision--timed .ls-vision__pillar--active .ls-vision__pillar-head::after {
  height: var(--ls-border-thick);
  transform-origin: left center;
  animation: ls-vision-fill var(--ls-fill-duration, 4s) linear both;
}
.ls-vision--paused .ls-vision__pillar--active .ls-vision__pillar-head::after {
  animation-play-state: paused;
}
.ls-vision--timed .ls-vision__pillar:not(.ls-vision__pillar--active) {
  opacity: var(--ls-dim-inactive);
}
.ls-vision--timed .ls-vision__pillar:not(.ls-vision__pillar--active):hover {
  opacity: 1;
}
.ls-vision--timed .ls-vision__pillar:not(.ls-vision__pillar--active):focus-within {
  opacity: 1;
}
@media (max-width: 48rem) {
  .ls-js .ls-vision__pillar {
    display: none;
  }
  .ls-js .ls-vision__pillar--active {
    display: flex;
  }
  .ls-vision__pillar-next {
    display: block; flex-shrink: 0;
  }
}
@media (min-height: 600px) {
  section.ls-technology {
    min-height: var(--ls-pin-viewport);
    max-height: var(--ls-pin-viewport);
  }
}
.ls-technology__head {
  --ls-section-head-max: 42.25rem;
}
.ls-technology__note::after {
  content: "";
  position: absolute;
  inset: 0 0 auto;
  height: var(--ls-border-thin);
  background: var(--ls-rule-dark);
}
.ls-technology--seeking .ls-technology__video {
  opacity: 0;
}
.ls-technology__next {
  margin-top: var(--ls-space-1);
  padding: 0;
  background: none;
  border: 0;
  font-family: var(--ls-font-sans);
  font-size: var(--ls-text-xs);
  line-height: var(--ls-leading-normal);
  color: var(--ls-color-on-dark-muted);
  cursor: pointer;
  transition: color var(--ls-duration-fast) var(--ls-ease);
}
.ls-technology__next:hover {
  color: var(--ls-neutral-200);
  text-decoration: underline;
}
.ls-technology__next:focus-visible {
  color: var(--ls-neutral-200);
  text-decoration: underline;
}
@media (max-width: 60rem) {
  .ls-technology__next {
    flex-shrink: 0; margin-top: 0;
  }
  section.ls-technology {
    min-height: 0; max-height: none;
  }
}
.ls-proof__slide--leaving {
  z-index: 1;
  opacity: 1;
  visibility: visible;
  transition: none;
}
.ls-proof::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 1;
  background: var(--ls-scrim-proof);
  pointer-events: none;
}
.ls-proof__head {
  --ls-section-head-max: 29.4375rem;
}
.ls-proof__digits--in {
  animation: ls-roll-in  var(--ls-duration-roll) var(--ls-ease-out);
}
.ls-proof__digits--out {
  animation: ls-roll-out var(--ls-duration-roll) var(--ls-ease-out) forwards;
}
.ls-proof__count-current[data-dir="prev"] .ls-proof__digits--in {
  animation-name: ls-roll-in-rev;
}
.ls-proof__count-current[data-dir="prev"] .ls-proof__digits--out {
  animation-name: ls-roll-out-rev;
}
.ls-proof__caption::after {
  content: "";
  position: absolute;
  inset: auto 0 0;
  height: var(--ls-border-thick);
  background: var(--ls-rule-on-image);
}
.ls-proof__btn::after {
  content: "";
  position: absolute;
  inset: auto 0 0;
  height: var(--ls-border-thick);
  background: var(--ls-rule-on-image);
}
.ls-form__row > * {
  flex: 1 1 0; min-width: 0;
}
.ls-form__check::before {
  content: none;
}
.ls-form__check::after {
  content: none;
}
.ls-ecosystem__list > *:hover .ls-ecosystem__logo {
  filter: grayscale(0);
  opacity: 1;
}
.ls-ecosystem__list > *:focus-within .ls-ecosystem__logo {
  filter: grayscale(0);
  opacity: 1;
}
.ls-ecosystem--marquee .ls-ecosystem__viewport {
  -webkit-mask-image: linear-gradient(90deg, transparent, #000 8%, #000 92%, transparent);
  mask-image: linear-gradient(90deg, transparent, #000 8%, #000 92%, transparent);
}
.ls-ecosystem--marquee .ls-ecosystem__list {
  flex-wrap: nowrap;
  justify-content: flex-start;
  width: max-content;
  animation: ls-marquee var(--ls-marquee-duration, 60s) linear infinite;
}
.ls-ecosystem--marquee .ls-ecosystem__list:hover {
  animation-play-state: paused;
}
.ls-team__grid {
  --ls-grid-gap: var(--ls-space-9);
  --ls-grid-min: 17rem;
  margin-top: var(--ls-space-8);
  padding: 0;
  list-style: none;
}
.ls-member:hover .ls-member__name {
  color: var(--ls-black);
}
.ls-member:focus-within .ls-member__name {
  color: var(--ls-black);
}
.ls-member__link::after {
  content: "";
  position: absolute;
  inset: auto 0 calc(var(--ls-space-1) * -1);
  height: var(--ls-border-thin);
  background: currentColor;
  transform: scaleX(0);
  transform-origin: left center;
  transition: transform var(--ls-duration-fast) var(--ls-ease-out);
}
.ls-member__link:hover::after {
  transform: scaleX(1);
}
.ls-member__link:focus-visible::after {
  transform: scaleX(1);
}
@media (max-width: 56.25rem) {
  .ls-team__grid {
    display: flex;
    gap: var(--ls-space-6);
    overflow-x: auto;
    scroll-snap-type: x mandatory;
    scrollbar-width: none;
    -ms-overflow-style: none;
  }
  .ls-team__grid::-webkit-scrollbar {
    display: none;
  }
}
footer.ls-footer {
  --ls-gutter: var(--ls-gutter-footer);
}
.ls-footer__heading + .ls-footer__muted {
  margin-top: calc(var(--ls-space-3) * -1);
}
.ls-footer__heading + address.ls-footer__muted {
  margin-top: var(--ls-space-3);
}
.ls-footer__legal .ls-footer__link {
  color: var(--ls-color-on-dark-muted);
}
.ls-footer__legal .ls-footer__link[aria-current="page"] {
  color: var(--ls-neutral-100);
  text-decoration: underline;
}
.ls-page {
  display: flex;
  flex-direction: column;
  min-height: 100vh;
}
.ls-page > main {
  flex: 1 0 auto;
}
.ls-legal__body > * + * {
  margin-top: var(--ls-space-5);
}
.ls-legal__body h2 {
  margin-top: var(--ls-space-12);
  font-size: var(--ls-text-h4);
  line-height: var(--ls-leading-tight);
  color: var(--ls-color-ink-strong);
}
.ls-legal__body > h2:first-child {
  margin-top: 0;
}
.ls-legal__body ul {
  margin-inline: 0;
  padding-left: var(--ls-space-5);
  list-style: disc;
}
.ls-legal__body li + li {
  margin-top: var(--ls-space-2);
}
.ls-legal__body a {
  color: inherit;
  text-decoration-color: var(--ls-neutral-400);
}
.ls-legal__body a:hover {
  text-decoration-color: currentColor;
}

/* Les `style="--ls-stagger: n"` du HTML : Webflow refuse l'attribut style et
   supprime les custom properties dans une classe. Sans ces regles, toutes les
   apparitions au defilement partiraient ensemble. */
.ls-technology__figure.ls-reveal { --ls-stagger: 1; }
.ls-technology__note.ls-rule.ls-reveal { --ls-stagger: 2; }
.ls-proof__counter.ls-reveal { --ls-stagger: 1; }
.ls-form.ls-reveal { --ls-stagger: 1; }
.ls-team__grid.ls-grid .ls-member.ls-reveal:nth-child(1) { --ls-stagger: 0; }
.ls-team__grid.ls-grid .ls-member.ls-reveal:nth-child(2) { --ls-stagger: 1; }
.ls-team__grid.ls-grid .ls-member.ls-reveal:nth-child(3) { --ls-stagger: 2; }
.ls-footer__cols .ls-footer__col.ls-reveal:nth-child(1) { --ls-stagger: 0; }
.ls-footer__cols .ls-footer__col.ls-reveal:nth-child(2) { --ls-stagger: 1; }
.ls-footer__logo.ls-reveal { --ls-stagger: 2; }

/* Les surcharges de variable par section, que le natif ne peut pas porter : une
   section redefinit un token, une classe partagee le lit. Le selecteur
   descendant redit ici ce que l'heritage disait. */
footer.ls-footer .ls-container { max-width: calc(1432px + 2 * clamp(1.25rem, 0.35rem + 3.34vw, 3.5rem)); }
footer.ls-footer .ls-container { padding-left: clamp(1.25rem, 0.35rem + 3.34vw, 3.5rem); }
footer.ls-footer .ls-container { padding-right: clamp(1.25rem, 0.35rem + 3.34vw, 3.5rem); }
