.sxgc-marquee {
  --sxgc-marquee-accent: #ff2c35;
  --sxgc-marquee-gap: 20px;
  --sxgc-marquee-half-gap: 10px;
  position: relative;
  isolation: isolate;
  display: grid;
  place-items: start center;
  height: clamp(680px, 86svh, 760px);
  min-height: 680px;
  overflow: hidden;
  color: #121317;
  background:
    radial-gradient(circle at 50% -12%, rgba(195, 203, 184, .55), transparent 38%),
    radial-gradient(circle at 8% 88%, rgba(210, 220, 224, .42), transparent 40%),
    linear-gradient(180deg, #fff 0%, #f7f7f4 78%);
}

.sxgc-marquee::before {
  content: "";
  position: absolute;
  z-index: 1;
  inset: 0;
  pointer-events: none;
  opacity: .22;
  background-image:
    linear-gradient(rgba(18, 19, 23, .035) 1px, transparent 1px),
    linear-gradient(90deg, rgba(18, 19, 23, .035) 1px, transparent 1px);
  background-size: 90px 90px;
  -webkit-mask-image: linear-gradient(#000, transparent 70%);
  mask-image: linear-gradient(#000, transparent 70%);
}

.sxgc-marquee__background,
.sxgc-marquee__background picture,
.sxgc-marquee__background img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
}

.sxgc-marquee__background {
  z-index: 0;
  opacity: var(--sxgc-marquee-bg-opacity, .3);
  overflow: hidden;
}

.sxgc-marquee__background picture {
  display: block;
}

.sxgc-marquee__background img {
  object-fit: cover;
  object-position: var(--sxgc-marquee-focal-x, 50%) var(--sxgc-marquee-focal-y, 50%);
  filter: saturate(.88) contrast(.94);
}

.sxgc-marquee__glow {
  position: absolute;
  z-index: 2;
  top: -32%;
  left: 50%;
  width: 70vw;
  height: 62%;
  pointer-events: none;
  background: radial-gradient(ellipse, rgba(173, 187, 152, .22), transparent 68%);
  filter: blur(30px);
  transform: translateX(-50%);
}

.sxgc-marquee__copy {
  position: relative;
  z-index: 4;
  width: min(92vw, 840px);
  padding-top: clamp(46px, 7vh, 66px);
  text-align: center;
}

.sxgc-marquee.has-background .sxgc-marquee__copy {
  text-shadow: 0 1px 18px rgba(255, 255, 255, .95);
}

.sxgc-marquee__tagline {
  display: inline-block;
  margin: 0 0 12px;
  padding: 7px 12px;
  color: rgba(18, 19, 23, .68);
  background: rgba(255, 255, 255, .58);
  border: 1px solid rgba(18, 19, 23, .35);
  border-radius: 999px;
  font-size: .72rem;
  font-weight: 720;
  letter-spacing: .12em;
  line-height: 1.2;
  -webkit-backdrop-filter: blur(8px);
  backdrop-filter: blur(8px);
  animation: sxgc-marquee-copy-in .65s cubic-bezier(.22, 1, .36, 1) both;
}

.sxgc-marquee h1 {
  max-width: 840px;
  margin: 0 auto;
  color: #121317 !important;
  font-size: clamp(2.65rem, 5vw, 4.8rem) !important;
  font-weight: 780;
  line-height: .96 !important;
  letter-spacing: -.055em;
  text-wrap: balance;
  animation: sxgc-marquee-copy-in .7s .08s cubic-bezier(.22, 1, .36, 1) both;
}

.sxgc-marquee__description {
  max-width: 650px;
  margin: 14px auto 0;
  color: rgba(18, 19, 23, .66);
  font-size: 1rem;
  line-height: 1.55;
  text-wrap: balance;
  animation: sxgc-marquee-copy-in .7s .18s cubic-bezier(.22, 1, .36, 1) both;
}

.sxgc-marquee__button {
  display: inline-flex;
  min-height: 46px;
  align-items: center;
  justify-content: center;
  gap: 9px;
  margin-top: 16px;
  padding: 0 23px;
  color: #fff;
  background: var(--sxgc-marquee-accent);
  border-radius: 999px;
  box-shadow: 0 12px 35px rgba(255, 44, 53, .22);
  font-size: .87rem;
  font-weight: 730;
  text-decoration: none;
  transition: transform .2s ease, box-shadow .2s ease;
  animation: sxgc-marquee-copy-in .7s .28s cubic-bezier(.22, 1, .36, 1) both;
}

.sxgc-marquee__button:hover {
  color: #fff;
  transform: translateY(-2px) scale(1.025);
  box-shadow: 0 16px 42px rgba(255, 44, 53, .3);
}

.sxgc-marquee__button:active {
  transform: scale(.97);
}

.sxgc-marquee__button:focus-visible {
  outline: 3px solid #121317;
  outline-offset: 4px;
}

.sxgc-marquee__viewport {
  position: absolute;
  z-index: 3;
  top: 335px;
  right: 0;
  bottom: 0;
  left: 0;
  overflow: hidden;
  padding-top: 24px;
  -webkit-mask-image: linear-gradient(to right, transparent, #000 5%, #000 95%, transparent);
  mask-image: linear-gradient(to right, transparent, #000 5%, #000 95%, transparent);
}

.sxgc-marquee__track {
  position: absolute;
  top: auto;
  bottom: 18px;
  left: -80px;
  display: flex;
  align-items: flex-end;
  width: max-content;
  gap: var(--sxgc-marquee-gap);
  will-change: transform;
  animation: sxgc-marquee-scroll 38s linear infinite;
}

.sxgc-marquee__group {
  display: flex;
  align-items: flex-end;
  gap: var(--sxgc-marquee-gap);
  flex: 0 0 auto;
}

.sxgc-marquee__viewport:hover .sxgc-marquee__track,
.sxgc-marquee__viewport:focus-within .sxgc-marquee__track {
  animation-play-state: paused;
}

.sxgc-marquee__card-wrap {
  width: clamp(174px, 17vw, 250px);
  aspect-ratio: 4 / 5;
  flex: 0 0 auto;
  transform-origin: center bottom;
  transform: none;
}

.sxgc-marquee__card {
  position: relative;
  display: block;
  width: 100%;
  height: 100%;
  overflow: hidden;
  color: #fff;
  background: #191c24;
  border: 1px solid rgba(255, 255, 255, .18);
  border-radius: 10px;
  box-shadow: 0 24px 52px rgba(31, 34, 39, .2);
  transition: transform .25s ease, box-shadow .25s ease;
}

a.sxgc-marquee__card:hover,
a.sxgc-marquee__card:focus-visible {
  color: #fff;
  transform: translateY(-5px);
  box-shadow: 0 30px 62px rgba(31, 34, 39, .28);
}

a.sxgc-marquee__card:focus-visible {
  outline: 3px solid #fff;
  outline-offset: -6px;
}

.sxgc-marquee__card::after {
  content: "";
  position: absolute;
  inset: 0;
  pointer-events: none;
  background: linear-gradient(135deg, rgba(255, 255, 255, .14), transparent 30%, transparent 70%, rgba(0, 0, 0, .18));
}

.sxgc-marquee__card img {
  width: 100%;
  height: 100%;
  display: block;
  object-fit: cover;
}

.sxgc-marquee__placeholder {
  position: relative;
  display: grid;
  width: 100%;
  height: 100%;
  place-content: center;
  gap: 8px;
  padding: 24px;
  text-align: center;
  background: linear-gradient(145deg, #ef4b25, #6b1c4c);
}

.sxgc-marquee__placeholder::before {
  content: "";
  position: absolute;
  inset: 12%;
  border: 1px solid rgba(255, 255, 255, .32);
}

.sxgc-marquee__placeholder strong,
.sxgc-marquee__placeholder small {
  position: relative;
  z-index: 1;
}

.sxgc-marquee__placeholder strong {
  overflow-wrap: anywhere;
  font-size: clamp(.88rem, 1.35vw, 1.25rem);
  font-weight: 780;
  letter-spacing: .06em;
  line-height: 1.16;
}

.sxgc-marquee__placeholder small {
  opacity: .68;
  font-size: .56rem;
  font-weight: 700;
  letter-spacing: .14em;
}

.sxgc-marquee__placeholder--2 { background: linear-gradient(145deg, #192453, #20a9ae); }
.sxgc-marquee__placeholder--3 { background: linear-gradient(145deg, #28205f, #dd3c91); }
.sxgc-marquee__placeholder--4 { background: linear-gradient(145deg, #173e42, #a0bc65); }
.sxgc-marquee__placeholder--5 { background: linear-gradient(145deg, #631d2c, #e9912f); }
.sxgc-marquee__placeholder--6 { background: linear-gradient(145deg, #1a222b, #8299a9); }

@keyframes sxgc-marquee-copy-in {
  from { opacity: 0; transform: translateY(10px); }
  to { opacity: 1; transform: translateY(0); }
}

@keyframes sxgc-marquee-scroll {
  to { transform: translate3d(calc(-50% - var(--sxgc-marquee-half-gap)), 0, 0); }
}

@media (max-width: 760px) {
  .sxgc-marquee {
    --sxgc-marquee-gap: 16px;
    --sxgc-marquee-half-gap: 8px;
    height: max(100svh, 650px);
    min-height: 650px;
  }

  .sxgc-marquee__background img {
    object-position: var(--sxgc-marquee-mobile-focal-x, 50%) var(--sxgc-marquee-mobile-focal-y, 50%);
  }

  .sxgc-marquee__copy {
    width: calc(100vw - 34px);
    padding-top: 42px;
  }

  .sxgc-marquee h1 {
    max-width: 680px;
    font-size: clamp(2.25rem, 11.5vw, 3.7rem) !important;
  }

  .sxgc-marquee__description {
    max-width: 520px;
    font-size: .94rem;
  }

  .sxgc-marquee__viewport {
    top: 345px;
  }

  .sxgc-marquee__track {
    bottom: 14px;
    left: -48px;
  }

  .sxgc-marquee__card-wrap {
    width: 158px;
  }
}

@media (max-width: 420px) {
  .sxgc-marquee__copy { padding-top: 34px; }
  .sxgc-marquee__tagline { margin-bottom: 10px; font-size: .63rem; }
  .sxgc-marquee h1 { font-size: clamp(2.15rem, 11vw, 2.8rem) !important; }
  .sxgc-marquee__description { margin-top: 11px; font-size: .88rem; line-height: 1.45; }
  .sxgc-marquee__button { min-height: 42px; margin-top: 13px; padding: 0 19px; }
  .sxgc-marquee__viewport { top: 330px; }
}

@media (prefers-reduced-motion: reduce) {
  .sxgc-marquee__copy > *,
  .sxgc-marquee__track {
    animation: none !important;
  }

  .sxgc-marquee__viewport {
    overflow-x: auto;
    -webkit-mask-image: none;
    mask-image: none;
  }

  .sxgc-marquee__track {
    position: relative;
    bottom: auto;
    left: 0;
    transform: none !important;
  }

  .sxgc-marquee__group[aria-hidden="true"] {
    display: none;
  }
}
