body {
  margin: 0;
  background: var(--color-gray-0);
  font-family: var(--font-family-base);
  color: var(--color-gray-900);
  font-optical-sizing: none;
}

.page {
  position: relative;
  overflow-x: hidden;
}

.page *,
.page *::before,
.page *::after { box-sizing: border-box; }

.page p { margin: 0; }

.fl-top {
  position: relative;
  z-index: 2;
  background: var(--color-accent-300);
}

.fl-top__inner {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: var(--spacing-4);
  min-height: 36px;
  padding-block: var(--spacing-8);
}

.fl-top__icon {
  flex: none;
  width: 16px;
  height: 16px;
}

.fl-top__text {
  color: var(--color-gray-0);
  text-align: center;
}

.fl-hero {
  position: relative;
  isolation: isolate;
}

.fl-hero__art {
  --fl-art-height: calc(
    (1 - var(--bp-tlandscape)) * (320px + var(--bp-mlandscape) * 40px)
    + var(--bp-tlandscape) * 816px
  );
  position: absolute;
  top: 0;
  left: 0;
  z-index: -1;
  width: 100%;
  height: var(--fl-art-height);
  overflow: hidden;
  -webkit-mask-image: linear-gradient(to bottom, #000 calc(100% - 72px), transparent 100%);
  mask-image: linear-gradient(to bottom, #000 calc(100% - 72px), transparent 100%);
  pointer-events: none;
}

.fl-hero__bg {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center center;
}

.fl-hero__stage {
  position: absolute;
  inset-block: 0;
  left: 50%;
  width: 100%;
  max-width: 1440px;
  transform: translateX(-50%);
}

.fl-hero__figure {
  position: absolute;
  right: 0;
  -webkit-mask-image: linear-gradient(to right, #000 calc(100% - 32px), transparent 100%);
  mask-image: linear-gradient(to right, #000 calc(100% - 32px), transparent 100%);
  top: calc(var(--fl-art-height) * 0.136);
  width: auto;
  height: calc(var(--fl-art-height) * 0.864);
  aspect-ratio: 815 / 705;
}

.fl-header { box-shadow: inset 0 -1px 0 var(--color-alpha-dark-12); }

.fl-header__inner {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--spacing-16);
  min-height: 80px;
}

.fl-header__logo {
  display: flex;
  flex: none;
  width: 212px;
  height: 32px;
}

.fl-header__logo svg { display: block; width: 100%; height: 100%; }

.fl-header__nav {
  display: var(--from-tlandscape);
  position: absolute;
  left: 50%;
  transform: translateX(-50%);
  align-items: center;
}

.fl-header__cta { display: var(--from-mlandscape); }

.fl-header__burger { display: var(--below-tlandscape); }

.fl-header__menu {
  display: none;
  flex-direction: column;
  gap: var(--spacing-4);
  padding-bottom: var(--spacing-16);
}

.fl-header__menu--open { display: flex; }

.fl-header__menu .btn { justify-content: flex-start; }

.fl-banner__inner {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  padding-top: calc(
    var(--spacing-40)
    + (1 - var(--bp-tlandscape)) * (240px + var(--bp-mlandscape) * 40px)
  );
}

.fl-banner__badge { margin-bottom: var(--spacing-40); }

.fl-banner__badge .badge-int__label { line-height: var(--text-display-12c-line-height); }

.fl-banner__title {
  margin: 0;
  max-width: 640px;
  color: var(--color-gray-900);
  font-size: calc(
    var(--text-display-32-size)
    + var(--bp-mlandscape) * (var(--text-display-40-size) - var(--text-display-32-size))
    + var(--bp-tlandscape) * (var(--text-display-48-size) - var(--text-display-40-size))
  );
  line-height: calc(
    var(--text-display-32-line-height)
    + var(--bp-mlandscape) * (var(--text-display-40-line-height) - var(--text-display-32-line-height))
    + var(--bp-tlandscape) * (var(--text-display-48-size) - var(--text-display-40-line-height))
  );
  font-weight: var(--text-display-48-weight);
}

.fl-banner__lead {
  max-width: 520px;
  padding-top: var(--spacing-32);
  color: var(--color-gray-700);
}

.fl-banner__clock-label {
  padding-top: var(--spacing-40);
  color: var(--color-gray-900);
}

.fl-clock {
  display: flex;
  align-items: flex-start;
  gap: var(--spacing-4);
  padding-top: var(--spacing-12);
}

.fl-clock__group {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: var(--spacing-4);
}

.fl-clock__digits {
  display: flex;
  gap: var(--spacing-2);
}

.fl-clock__tile {
  display: flex;
  align-items: center;
  justify-content: center;
  width: calc(32px + var(--bp-mlandscape) * 8px);
  height: calc(44px + var(--bp-mlandscape) * 12px);
  border-radius: var(--radius-12);
  background: var(--color-gray-0);
  box-shadow: var(--shadow-4);
  color: var(--color-gray-900);
  font-family: var(--font-family-base);
  font-size: calc(
    var(--text-display-18-size)
    + var(--bp-mlandscape) * (var(--text-display-22-size) - var(--text-display-18-size))
  );
  line-height: calc(
    var(--text-display-18-line-height)
    + var(--bp-mlandscape) * (var(--text-display-22-line-height) - var(--text-display-18-line-height))
  );
  font-weight: var(--text-display-22-weight);
}

.fl-clock__label {
  color: var(--color-gray-500);
  text-align: center;
}

.fl-clock__sep {
  display: flex;
  align-items: center;
  height: calc(44px + var(--bp-mlandscape) * 12px);
  color: var(--color-gray-200);
  font-size: var(--text-display-22-size);
  line-height: var(--text-display-22-line-height);
  font-weight: var(--text-display-22-weight);
}

.fl-banner__actions {
  display: flex;
  flex-wrap: wrap;
  gap: var(--spacing-8);
  padding-top: var(--spacing-40);
}

.fl-ratings {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: var(--spacing-32);
  padding-top: var(--spacing-40);
}

.fl-rating {
  display: flex;
  align-items: center;
  gap: var(--spacing-20);
  height: 64px;
}

.fl-rating__value {
  color: var(--color-gray-900);
  font-size: var(--text-display-22-size);
  line-height: var(--text-display-22-line-height);
  font-weight: var(--text-display-22-weight);
}

.fl-rating__group {
  display: flex;
  flex-direction: column;
  gap: var(--spacing-2);
}

.fl-rating__source { color: var(--color-gray-900); }

.fl-ratings__divider {
  display: var(--from-tablet);
  width: 1px;
  height: 64px;
  background: var(--color-gray-100);
}

.fl-timeline {
  display: flex;
  flex-direction: column;
  gap: var(--spacing-24);
  padding-top: calc(2 * var(--spacing-60));
  padding-bottom: calc(var(--spacing-60) + var(--spacing-80));
}

.fl-timeline__marks {
  display: var(--from-tablet-flex);
  gap: 0;
}

.fl-timeline__mark {
  display: flex;
  align-items: center;
  gap: var(--spacing-2);
  flex: 1 1 0;
  min-width: 0;
  color: var(--color-gray-400);
}

.fl-timeline__mark--now { color: var(--color-positive-500); }

.fl-timeline__dot {
  flex: none;
  color: var(--color-gray-400);
}

.fl-timeline__mark--now .fl-timeline__dot { color: var(--color-positive-400); }

.fl-timeline__mark > span:last-child { line-height: var(--text-display-12c-line-height); }

.fl-timeline__mark--inline {
  display: var(--below-tablet-flex);
  padding-bottom: var(--spacing-4);
}

.fl-timeline__bar {
  width: 100%;
  margin-top: var(--spacing-12);
}

.fl-timeline__bar .progress-bar__track {
  height: var(--spacing-4);
  border-radius: var(--radius-4);
}

.fl-timeline__cols {
  display: flex;
  flex-wrap: wrap;
  gap: var(--spacing-16);
}

.fl-timeline__col {
  display: flex;
  flex-direction: column;
  gap: var(--spacing-4);
  flex: 1 1 calc((100% - (var(--fl-cols) - 1) * var(--spacing-16)) / var(--fl-cols));
  min-width: 0;
  --fl-cols: calc(1 + var(--bp-mlandscape) + 2 * var(--bp-tablet));
}

.fl-timeline__name { color: var(--color-gray-900); }

.fl-timeline__date { color: var(--color-gray-500); }

.fl-section { padding-bottom: var(--spacing-80); }

.fl-section__inner {
  display: flex;
  flex-direction: column;
  align-items: stretch;
}

.fl-head {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: var(--spacing-16);
  width: 100%;
  max-width: 640px;
  margin-inline: auto;
  padding-bottom: var(--spacing-40);
  text-align: center;
}

.fl-head--wide {
  max-width: none;
  gap: var(--spacing-12);
}

.fl-eyebrow { color: var(--color-accent-400); }

.fl-title {
  margin: 0;
  color: var(--color-gray-900);
  font-size: calc(
    var(--text-display-24-size)
    + var(--bp-tablet) * (var(--text-display-32-size) - var(--text-display-24-size))
  );
  line-height: calc(
    var(--text-display-24-line-height)
    + var(--bp-tablet) * (var(--text-display-32-line-height) - var(--text-display-24-line-height))
  );
  font-weight: var(--text-display-32-weight);
}

.fl-title--sm {
  font-size: calc(
    var(--text-display-22-size)
    + var(--bp-tablet) * (var(--text-display-28-size) - var(--text-display-22-size))
  );
  line-height: calc(
    var(--text-display-22-line-height)
    + var(--bp-tablet) * (var(--text-display-28-line-height) - var(--text-display-22-line-height))
  );
}

.fl-lead { color: var(--color-gray-700); }

.fl-facts {
  display: flex;
  flex-wrap: wrap;
  gap: 0;
  width: 100%;
}

.fl-fact {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: var(--spacing-20);
  flex: 1 1 calc((100% - (var(--fl-cols) - 1) * (49px)) / var(--fl-cols));
  min-width: 0;
  padding-block: var(--spacing-40);
  text-align: center;
  --fl-cols: calc(1 + var(--bp-mlandscape) + var(--bp-tablet));
}

.fl-fact__icon {
  flex: none;
  width: 24px;
  height: 24px;
  color: var(--color-information-500);
}

.fl-fact__icon svg { display: block; width: 100%; height: 100%; }

.fl-fact__text {
  display: flex;
  flex-direction: column;
  gap: var(--spacing-8);
  width: 100%;
  max-width: 304px;
}

.fl-fact__title { color: var(--color-gray-900); }

.fl-fact__desc { color: var(--color-gray-600); }

.fl-facts__vdiv {
  display: var(--from-tablet);
  flex: none;
  width: 1px;
  margin-inline: var(--spacing-24);
  background: var(--color-gray-100);
}

.fl-facts__hdiv {
  display: var(--from-tablet);
  flex: 1 0 100%;
  height: 1px;
  background: var(--color-gray-100);
}

.fl-strip {
  width: 100%;
  height: 160px;
  margin-top: var(--spacing-40);
  border-radius: var(--radius-16);
  overflow: hidden;
  background: var(--color-accent-600);
}

.fl-strip__pattern {
  display: block;
  width: 100%;
  height: 100%;
}

.fl-strip__pattern path {
  fill: none;
  stroke: var(--color-accent-400);
  stroke-width: 249.44;
  stroke-linejoin: round;
}

.fl-cards {
  display: flex;
  flex-wrap: wrap;
  gap: var(--spacing-24);
  width: 100%;
}

.fl-card {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  flex: 1 1 calc((100% - (var(--fl-cols) - 1) * var(--spacing-24)) / var(--fl-cols));
  min-width: 0;
  padding: var(--spacing-32);
  border-radius: var(--radius-16);
  background: var(--color-gray-0);
  box-shadow: inset 0 0 0 1px var(--color-gray-50), var(--shadow-4);
  --fl-cols: calc(1 + var(--bp-mlandscape) + var(--bp-tablet));
}

.fl-card__icon {
  display: flex;
  align-items: center;
  justify-content: center;
  flex: none;
  width: 48px;
  height: 48px;
  border-radius: var(--radius-12);
  background: var(--color-accent-25);
  color: var(--color-information-500);
}

.fl-card__icon svg { display: block; width: 24px; height: 24px; }

.fl-card__text {
  display: flex;
  flex-direction: column;
  gap: var(--spacing-8);
  padding-top: var(--spacing-20);
}

.fl-card__title { color: var(--color-gray-900); }

.fl-card__desc {
  min-height: calc(3 * var(--text-body-16-line-height));
  color: var(--color-gray-600);
}

.fl-card__badge {
  display: flex;
  padding-top: var(--spacing-20);
  margin-top: auto;
}

.fl-cards__cta { width: 100%; }

.fl-perks {
  display: flex;
  flex-wrap: wrap;
  column-gap: 0;
  row-gap: calc((1 - var(--bp-tablet)) * var(--spacing-40));
  width: 100%;
  padding-top: var(--spacing-20);
}

.fl-perk {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: var(--spacing-24);
  flex: 1 1 calc((100% - (var(--fl-cols) - 1) * 65px) / var(--fl-cols));
  min-width: 0;
  text-align: center;
  --fl-cols: calc(1 + 2 * var(--bp-tablet));
}

.fl-perk__icon {
  display: flex;
  align-items: center;
  justify-content: center;
  flex: none;
  width: 48px;
  height: 48px;
  border-radius: var(--radius-12);
  background: var(--color-positive-25);
  color: var(--color-positive-400);
}

.fl-perk__icon svg { display: block; width: 24px; height: 24px; }

.fl-perk__text {
  display: flex;
  flex-direction: column;
  gap: var(--spacing-8);
  width: 100%;
}

.fl-perk__title { color: var(--color-gray-900); }

.fl-perk__desc { color: var(--color-gray-500); }

.fl-perks__vdiv {
  display: var(--from-tablet);
  flex: none;
  width: 1px;
  margin-inline: var(--spacing-32);
  background: var(--color-gray-100);
}

.fl-signup__panel {
  position: relative;
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: calc((1 - var(--bp-tablet)) * var(--spacing-32));
  width: 100%;
  padding: calc(
    var(--spacing-20)
    + var(--bp-mlandscape) * var(--spacing-12)
    + var(--bp-tablet) * var(--spacing-28)
  );
  border-radius: var(--radius-16);
  overflow: hidden;
  background: var(--color-navy-900);
  isolation: isolate;
}

.fl-signup__pattern {
  position: absolute;
  inset: 0;
  z-index: -1;
  width: 100%;
  height: 100%;
}

.fl-signup__pattern path {
  fill: none;
  stroke: var(--color-accent-400);
  stroke-width: 175;
  stroke-linejoin: round;
}

.fl-signup__col {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  flex: 1 1 calc(50% + (1 - var(--bp-tablet)) * 50%);
  min-width: 0;
  padding-block: var(--spacing-12);
  padding-right: calc(var(--bp-tablet) * var(--spacing-60));
}

.fl-signup__title {
  margin: 0;
  padding-top: var(--spacing-12);
  color: var(--color-gray-0);
  font-size: calc(
    var(--text-display-24-size)
    + var(--bp-tablet) * (var(--text-display-32-size) - var(--text-display-24-size))
  );
  line-height: calc(
    var(--text-display-24-line-height)
    + var(--bp-tablet) * (var(--text-display-32-line-height) - var(--text-display-24-line-height))
  );
  font-weight: var(--text-display-32-weight);
}

.fl-signup__eyebrow { color: var(--color-accent-100); }

.fl-signup__lead {
  padding-top: var(--spacing-12);
  color: var(--color-accent-100);
}

.fl-signup__list {
  display: flex;
  flex-direction: column;
  gap: var(--spacing-8);
  width: 100%;
  margin-top: var(--spacing-40);
  padding-top: var(--spacing-24);
  padding-bottom: var(--spacing-16);
  border-top: 1px solid var(--color-alpha-light-12);
}

.fl-signup__item {
  display: flex;
  align-items: center;
  gap: var(--spacing-8);
  color: var(--color-gray-0);
}

.fl-signup__check {
  flex: none;
  width: 16px;
  height: 16px;
  color: var(--color-positive-400);
}

.fl-signup__check svg { display: block; width: 100%; height: 100%; }

.fl-signup__card {
  display: flex;
  flex-direction: column;
  align-items: stretch;
  flex: 1 1 calc(50% + (1 - var(--bp-tablet)) * 50%);
  min-width: 0;
  padding: calc(var(--spacing-20) + var(--bp-mlandscape) * var(--spacing-12));
  border-radius: var(--radius-16);
  background: var(--color-gray-0);
}

.fl-signup__card-title {
  color: var(--color-gray-900);
  font-size: var(--text-display-20-size);
  line-height: var(--text-display-20-line-height);
  font-weight: var(--text-display-20-weight);
}

.fl-signup__count {
  display: flex;
  align-items: center;
  gap: var(--spacing-8);
  padding-top: var(--spacing-8);
  color: var(--color-positive-500);
}

.fl-signup__count .indicator { flex: none; }

.fl-signup__field {
  width: 100%;
  padding-top: var(--spacing-24);
}

.fl-signup__submit { margin-top: var(--spacing-24); }

.fl-signup__consent { margin-top: var(--spacing-16); }

.fl-signup__consent-input {
  position: absolute;
  width: 1px;
  height: 1px;
  opacity: 0;
  pointer-events: none;
}

.fl-signup__status {
  padding-top: var(--spacing-12);
  color: var(--color-gray-500);
}

.fl-signup__status--error { color: var(--color-negative-500); }

.page .fl-signup__divider {
  display: flex;
  align-items: center;
  gap: var(--spacing-12);
  margin-top: var(--spacing-24);
  color: var(--color-gray-400);
}

.page .fl-signup__divider::before,
.page .fl-signup__divider::after {
  content: "";
  flex: 1 1 auto;
  height: 1px;
  background: var(--color-gray-100);
}

.fl-signup__social { margin-top: var(--spacing-24); }

.fl-steps {
  display: flex;
  flex-wrap: wrap;
  gap: var(--spacing-8);
  width: 100%;
}

.fl-step {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  flex: 1 1 calc((100% - (var(--fl-cols) - 1) * var(--spacing-8)) / var(--fl-cols));
  min-width: 0;
  padding: var(--spacing-24);
  border-radius: var(--radius-16);
  background: var(--color-information-25);
  --fl-cols: calc(1 + var(--bp-mlandscape) + 2 * var(--bp-desktop));
}

.fl-step__num {
  display: flex;
  align-items: center;
  justify-content: center;
  flex: none;
  width: 32px;
  height: 32px;
  border-radius: var(--radius-8);
  background: var(--color-gray-0);
  color: var(--color-gray-800);
}

.fl-step__text {
  display: flex;
  flex-direction: column;
  gap: var(--spacing-12);
  padding-top: var(--spacing-20);
}

.fl-step__title { color: var(--color-gray-800); }

.fl-step__desc { color: var(--color-gray-800); }

.fl-reviews .fl-head { padding-bottom: var(--spacing-20); }

.fl-reviews.fl-section { padding-bottom: var(--spacing-24); }

.fl-reviews__pill {
  display: flex;
  margin-top: var(--spacing-8);
  align-items: center;
  gap: var(--spacing-16);
  margin-inline: auto;
  padding: var(--spacing-8) var(--spacing-16);
  border-radius: var(--radius-32);
  background: var(--color-positive-25);
  box-shadow: inset 0 0 0 1px var(--color-positive-100);
}

.fl-reviews__pill-text { color: var(--color-gray-900); }

.fl-reviews__pill-divider {
  flex: none;
  width: 1px;
  height: 24px;
  background: var(--color-positive-100);
}

.fl-reviews__row {
  display: flex;
  flex-wrap: wrap;
  gap: var(--spacing-24);
  width: 100%;
}

.fl-reviews__row .rcard {
  flex: 1 1 calc((100% - (var(--fl-cols) - 1) * var(--spacing-24)) / var(--fl-cols));
  min-width: 0;
  --fl-cols: calc(1 + var(--bp-mlandscape) + 2 * var(--bp-tablet));
}

.fl-cta {
  position: relative;
  overflow: hidden;
  background: var(--color-navy-900);
  isolation: isolate;
}

.fl-cta__pattern {
  position: absolute;
  inset: 0;
  z-index: -1;
  width: 100%;
  height: 100%;
}

.fl-cta__pattern path {
  fill: none;
  stroke: var(--color-accent-400);
  stroke-width: 220;
  stroke-linejoin: round;
}

.fl-cta__inner {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: var(--spacing-16);
  padding-top: var(--spacing-80);
  padding-bottom: calc(var(--spacing-80) + var(--spacing-24));
  text-align: center;
}

.fl-cta__title {
  margin: 0;
  color: var(--color-gray-0);
  font-size: calc(
    var(--text-display-24-size)
    + var(--bp-tablet) * (var(--text-display-32-size) - var(--text-display-24-size))
  );
  line-height: calc(
    var(--text-display-24-line-height)
    + var(--bp-tablet) * (var(--text-display-32-line-height) - var(--text-display-24-line-height))
  );
  font-weight: var(--text-display-32-weight);
}

.fl-cta__lead {
  max-width: 600px;
  padding-top: var(--spacing-4);
  color: var(--color-alpha-light-76);
}

.fl-cta__clock { padding-top: var(--spacing-24); }

.fl-cta__clock .fl-clock__tile {
  background: var(--color-alpha-light-12);
  color: var(--color-gray-0);
}

.fl-cta__clock .fl-clock__label { color: var(--color-alpha-light-76); }

.fl-cta__clock .fl-clock__sep { color: var(--color-alpha-light-44); }

.fl-cta__action { padding-top: var(--spacing-24); }

.fl-about .bau__inner { padding-bottom: var(--spacing-80); }

.fl-about .bau__content { background: var(--color-accent-50); }

.fl-about .bau__pattern {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  pointer-events: none;
}

.fl-about .bau__pattern path {
  fill: none;
  stroke: var(--color-information-50);
  stroke-width: 154.721;
  stroke-linejoin: round;
}

.fl-about .bau__art {
  inset: auto;
  top: var(--spacing-24);
  left: -33px;
  width: 644px;
  height: 644px;
  border-radius: 0;
  object-fit: contain;
  opacity: 1;
}

.fl-about .bau__text { color: var(--color-gray-900); }

.fl-about .bau__subtitle { color: var(--color-gray-700); }

.fl-about .bau__item { color: var(--color-gray-900); }

.fl-about .bau__list {
  gap: var(--spacing-8);
  padding-top: var(--spacing-24);
  padding-bottom: var(--spacing-16);
  box-shadow: inset 0 1px 0 var(--color-gray-100);
}

.fl-why .vprop__inner { --vprop-head-gap: var(--spacing-40); }

.fl-why .vprop__title {
  font-size: calc(
    var(--text-display-24-size)
    + var(--bp-tablet) * (var(--text-display-32-size) - var(--text-display-24-size))
  );
  line-height: calc(
    var(--text-display-24-line-height)
    + var(--bp-tablet) * (var(--text-display-32-line-height) - var(--text-display-24-line-height))
  );
}

.fl-why .vprop__container { padding-bottom: var(--spacing-40); }
