/* 合作客户：品牌滚入 3D 立方体面（自 xmachine 迁移，作用域限定在 .partners） */
.partners {
  --partners-travel: 12000px;
  --partners-face-w: 870px;
  /* 三面相位差 = 面宽，保证左/中/右拐角品牌连续 */
  --partners-phase-back: 0px;
  --partners-phase-left: var(--partners-face-w);
  --partners-phase-right: calc(-1 * var(--partners-face-w));
  --partners-max: 1200px;
  padding: 72px 0 0;
  background: #000;
  color: #fff;
  overflow: hidden;
}
.partners .partners-wrap {
  width: min(var(--partners-max), calc(100% - 44px));
  margin-left: auto;
  margin-right: auto;
  box-sizing: border-box;
  text-align: center;
}
.partners .sec-top {
  margin-bottom: 28px;
  display: flex;
  flex-direction: column;
  align-items: center;
}
.partners .sec-top h2 {
  color: #fff;
  margin: 0 0 10px;
  font-size: clamp(28px, 3.2vw, 40px);
  font-weight: 800;
  line-height: 1.2;
}
.partners .sec-top > p {
  color: #a8b3c3;
  margin: 0 auto;
  max-width: 46em;
  line-height: 1.65;
  font-size: 15px;
}
.partners-sectors {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 8px 10px;
  list-style: none;
  margin: 18px 0 0;
  padding: 0;
}
.partners-sectors li {
  margin: 0;
  padding: 5px 11px;
  border: 1px solid rgba(174, 233, 74, .22);
  background: rgba(174, 233, 74, .06);
  color: rgba(232, 244, 216, .88);
  font-size: 12px;
  letter-spacing: .04em;
  line-height: 1.3;
}
.partners-card {
  --partners-w: 100vw;
  --partners-h: calc(100vw * .26);
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100vw;
  max-width: 100%;
  min-height: var(--partners-h);
  margin: 0;
  margin-left: calc(50% - 50vw);
  overflow: hidden;
  isolation: isolate;
}
.partners-content {
  display: block;
  width: 100%;
  height: var(--partners-h);
  border-radius: 0;
  overflow: hidden;
  transform-origin: center center;
  /* brightness 不挂在 content 上：父级 filter 会压扁 retain-3d，文字面消失 */
}
.partners-full {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 1000px;
  height: 562px;
  left: 50%;
  top: 50%;
  margin: 0;
  overflow: hidden;
  transform: translate(-50%, -50%) scale(calc(var(--partners-w) / 1000px));
  transform-origin: center center;
}
.partners-bg,
.partners-fg,
.partners .backgroundImage,
.partners .boyImage {
  position: absolute;
  left: 0;
  top: 0;
  width: 1000px;
  height: auto;
  pointer-events: none;
}
.partners-bg,
.partners .backgroundImage {
  animation: partners-brightness 200s linear infinite;
  animation-play-state: paused;
}
.partners-fg,
.partners .boyImage {
  z-index: 2;
  animation: partners-blur 200s linear infinite;
  animation-play-state: paused;
}
.partners.is-live:not(.is-scrolling) .partners-bg,
.partners.is-live:not(.is-scrolling) .partners .backgroundImage,
.partners.is-live:not(.is-scrolling) .partners-fg,
.partners.is-live:not(.is-scrolling) .partners .boyImage {
  animation-play-state: running;
}
.partners-hue {
  position: absolute;
  inset: 0;
  z-index: 3;
  width: 100%;
  height: 100%;
  mix-blend-mode: overlay;
  background: radial-gradient(ellipse at center, #1e5799 0, #7db9e8 100%);
  opacity: 1;
  pointer-events: none;
}
.partners.is-live:not(.is-scrolling) .partners-hue.animated {
  animation: partners-filter 8s infinite;
}
.partners-cube-wrap {
  display: flex;
  align-items: center;
  justify-content: center;
  position: relative;
  z-index: 1;
}
.partners-cube,
.partners-face {
  width: 870px;
  height: 190px;
}
.partners-cube {
  position: relative;
  transform-style: preserve-3d;
  perspective: 480px;
  perspective-origin: 51% 70%;
}
.partners-face {
  position: absolute;
  display: flex;
  align-items: center;
  overflow: hidden;
  background: transparent;
  border: 0 solid #000;
  opacity: .72;
}
.partners-face.top,
.partners-face.bottom {
  width: 870px;
  height: 870px;
}
.partners-ticker {
  display: flex;
  align-items: center;
  gap: 44px;
  margin: 0;
  padding: 0 12px;
  white-space: nowrap;
  color: #fff;
  line-height: 1;
}
.partners-ticker-item {
  position: relative;
  display: inline-flex;
  align-items: center;
  gap: 16px;
  flex: none;
  padding-right: 44px;
}
.partners-ticker-item::after {
  content: "";
  position: absolute;
  right: 0;
  top: 18%;
  bottom: 18%;
  width: 1px;
  background: rgba(255, 255, 255, .28);
}
.partners-ticker-mark {
  display: grid;
  place-items: center;
  flex: none;
  width: 56px;
  height: 56px;
  color: rgba(174, 233, 74, .95);
}
.partners-ticker-mark img {
  width: 56px;
  height: 56px;
  display: block;
}
.partners-ticker-meta {
  display: flex;
  flex-direction: column;
  gap: 3px;
  min-width: 0;
}
.partners-ticker-en {
  font-family: "Bebas Neue", sans-serif;
  font-size: 15px;
  letter-spacing: .12em;
  text-transform: uppercase;
  color: rgba(255, 255, 255, .62);
  line-height: 1;
}
.partners-ticker-name {
  font-size: 28px;
  font-weight: 800;
  letter-spacing: .02em;
  color: #fff;
  line-height: 1.05;
  white-space: nowrap;
}
.partners-ticker-sector {
  font-size: 13px;
  color: rgba(174, 233, 74, .9);
  line-height: 1.2;
}
.partners-face.front {
  transform: translateZ(435px);
  display: none;
}
.partners-face.back {
  transform: translateZ(-435px) rotateY(180deg) scaleX(-1);
}
.partners-face.left {
  transform: translateX(-435px) rotateY(-90deg) scaleX(-1);
}
.partners-face.right {
  transform: translateX(435px) rotateY(90deg) scaleX(-1);
}
.partners-face.top {
  transform: translateY(-435px) rotateX(90deg) scaleY(-1);
}
.partners-face.bottom {
  transform: translateY(-245px) rotateX(-90deg) scaleY(-1);
}
/* margin-left 轮播（3D 面内用 transform 滚字会看不见）；三面同速、相位差一面宽 */
.partners-face.left .partners-ticker,
.partners-face.back .partners-ticker,
.partners-face.right .partners-ticker {
  animation: partners-marquee 55s linear infinite;
}
.partners-face.left .partners-ticker {
  --partners-phase: var(--partners-phase-left);
}
.partners-face.back .partners-ticker {
  --partners-phase: var(--partners-phase-back);
}
.partners-face.right .partners-ticker {
  --partners-phase: var(--partners-phase-right);
}
.partners:not(.is-live) .partners-face.left .partners-ticker,
.partners:not(.is-live) .partners-face.back .partners-ticker,
.partners:not(.is-live) .partners-face.right .partners-ticker {
  animation-play-state: paused;
}
.partners-reflect {
  position: absolute;
  display: flex;
  align-items: center;
  justify-content: center;
  margin-top: 380px;
  filter: blur(10px);
  z-index: 1;
  pointer-events: none;
}
.partners-reflect .partners-cube {
  perspective-origin: 51% -30%;
}
.partners-reflect .partners-face.back {
  transform: translateZ(-435px) rotateY(180deg) scaleX(-1) scaleY(-1);
}
.partners-reflect .partners-face.left {
  transform: translateX(-435px) rotateY(-90deg) scaleX(-1) scaleY(-1);
}
.partners-reflect .partners-face.right {
  transform: translateX(435px) rotateY(90deg) scaleX(-1) scaleY(-1);
}
.partners-reflect .partners-ticker {
  transform: scaleY(.7);
}
@keyframes partners-marquee {
  from { margin-left: var(--partners-phase, 0px); }
  to { margin-left: calc(var(--partners-phase, 0px) - var(--partners-travel, 12000px)); }
}
@keyframes partners-filter {
  0%, 100% { filter: hue-rotate(0deg); }
  50% { filter: hue-rotate(100deg); }
}
@keyframes partners-blur {
  0% { filter: blur(0); }
  100% { filter: blur(3px); }
}
@keyframes partners-brightness {
  0% { filter: brightness(1) contrast(1); }
  100% { filter: brightness(.8) contrast(1.3); }
}
@media (max-width: 720px) {
  .partners {
    padding: 56px 0 0;
  }
  .partners .partners-wrap {
    width: calc(100% - 30px);
  }
  .partners .sec-top > p {
    max-width: none;
  }
  .partners-ticker {
    gap: 32px;
  }
  .partners-ticker-item {
    gap: 12px;
    padding-right: 32px;
  }
  .partners-ticker-mark,
  .partners-ticker-mark img {
    width: 44px;
    height: 44px;
  }
  .partners-ticker-name {
    font-size: 22px;
  }
  .partners-card {
    --partners-h: calc(100vw * .32);
  }
}
@media (prefers-reduced-motion: reduce) {
  .partners-hue.animated,
  .partners-face .partners-ticker {
    animation: none !important;
  }
}
