/* Homepage exaggerated entrance FX — only when html.home-fx-loading.home-fx-level-heavy */
@media (prefers-reduced-motion: reduce) {
  html.home-fx-loading .home-fx-anim,
  html.home-fx-loading .jdc-first-screen .fs-slide-tit,
  html.home-fx-loading .jdc-first-screen .fs-slide-des,
  html.home-fx-loading .jdc-first-screen .jdc-btn,
  html.home-fx-loading .jdc-first-screen .banner-slide-nav,
  html.home-fx-loading .jdc-first-screen .core-item,
  html.home-fx-loading #tpmIntroduceSection .tpm-portal-section__hd,
  html.home-fx-loading #tpmIntroduceSection .tpm-portal-introduce__card--active,
  html.home-fx-loading #tpmIntroduceSection .tpm-portal-introduce__card-blank,
  html.home-fx-loading #tpmIntroduceSection .tpm-portal-introduce__cs-intro,
  html.home-fx-loading #tpmCapabilitySection .tpm-portal-section__hd,
  html.home-fx-loading #tpmCapabilitySection .tpm-portal-capability__inner,
  html.home-fx-loading .elevator-floor.home-fx-section-in,
  html.home-fx-loading .elevator-floor .tpm-portal-section__hd,
  html.home-fx-loading .elevator-floor .tpm-portal-infrastructure__item,
  html.home-fx-loading .elevator-floor .tpm-portal-infrastructure__globe-stage,
  html.home-fx-loading .elevator-floor .jdc-main-certification-title,
  html.home-fx-loading .elevator-floor .jdc-main-certification-item,
  html.home-fx-loading .elevator-floor .tpm-portal-developer__swiper,
  html.home-fx-loading .elevator-floor .tpm-portal-developer__item,
  html.home-fx-loading .elevator-floor .tpm-portal-trust,
  html.home-fx-loading .elevator-floor .jdc-cloud-road-banner-main,
  html.home-fx-loading .elevator-floor .jdc-cloud-road-banner-btn {
    opacity: 1 !important;
    transform: none !important;
    filter: none !important;
    animation: none !important;
  }
}

/* Banner: fall from the sky (text/buttons only — not the slide track) */
html.home-fx-loading.home-fx-level-heavy:not(.home-fx-played) .jdc-first-screen .fs-slide-tit,
html.home-fx-loading.home-fx-level-heavy:not(.home-fx-played) .jdc-first-screen .fs-slide-des,
html.home-fx-loading.home-fx-level-heavy:not(.home-fx-played) .jdc-first-screen .jdc-btn,
html.home-fx-loading.home-fx-level-heavy:not(.home-fx-played) .jdc-first-screen .banner-slide-nav,
html.home-fx-loading.home-fx-level-heavy:not(.home-fx-played) .jdc-first-screen .core-item {
  opacity: 0;
  transform: translate3d(0, -80vh, 0);
}

html.home-fx-loading.home-fx-level-heavy.home-fx-played .jdc-first-screen .fs-slide-tit {
  animation: home-fx-skyfall 1.05s cubic-bezier(0.16, 1.2, 0.3, 1) 0.05s both;
}
html.home-fx-loading.home-fx-level-heavy.home-fx-played .jdc-first-screen .fs-slide-des {
  animation: home-fx-skyfall 1.1s cubic-bezier(0.16, 1.2, 0.3, 1) 0.16s both;
}
html.home-fx-loading.home-fx-level-heavy.home-fx-played .jdc-first-screen .jdc-btn {
  animation: home-fx-skyfall 1.15s cubic-bezier(0.16, 1.2, 0.3, 1) 0.28s both;
}
html.home-fx-loading.home-fx-level-heavy.home-fx-played .jdc-first-screen .banner-slide-nav {
  animation: home-fx-skyfall-soft 1s cubic-bezier(0.16, 1.15, 0.3, 1) 0.4s both;
}
html.home-fx-loading.home-fx-level-heavy.home-fx-played .jdc-first-screen .core-item {
  animation: home-fx-pop-in 0.9s cubic-bezier(0.16, 1.35, 0.3, 1) both;
}
html.home-fx-loading.home-fx-level-heavy.home-fx-played .jdc-first-screen .core-item:nth-child(1) { animation-delay: 0.5s; }
html.home-fx-loading.home-fx-level-heavy.home-fx-played .jdc-first-screen .core-item:nth-child(2) { animation-delay: 0.62s; }
html.home-fx-loading.home-fx-level-heavy.home-fx-played .jdc-first-screen .core-item:nth-child(3) { animation-delay: 0.74s; }
html.home-fx-loading.home-fx-level-heavy.home-fx-played .jdc-first-screen .core-item:nth-child(4) { animation-delay: 0.86s; }
html.home-fx-loading.home-fx-level-heavy.home-fx-played .jdc-first-screen .core-item:nth-child(5) { animation-delay: 0.98s; }

/*
 * Core products (#tpmIntroduceSection):
 * NEVER transform .tpm-portal-introduce__card-wrap — carousel owns that transform.
 * Animate header + current slide's left card / right ability only.
 */
html.home-fx-loading.home-fx-level-heavy:not(.home-fx-products-in) #tpmIntroduceSection .tpm-portal-section__hd {
  opacity: 0;
  transform: translate3d(-60vw, 0, 0);
}
html.home-fx-loading.home-fx-level-heavy:not(.home-fx-products-in) #tpmIntroduceSection .tpm-portal-introduce:not(.is-carousel-ready) .tpm-portal-introduce__card-wrap:first-child .tpm-portal-introduce__card--active,
html.home-fx-loading.home-fx-level-heavy:not(.home-fx-products-in) #tpmIntroduceSection .tpm-portal-introduce.is-carousel-ready .tpm-portal-introduce__card-wrap.is-slide-current .tpm-portal-introduce__card--active {
  opacity: 0;
  transform: translate3d(-70vw, 24px, 0);
}
/* Hide blank shell too — otherwise empty white card shows before 产品能力 flies in */
html.home-fx-loading.home-fx-level-heavy:not(.home-fx-products-in) #tpmIntroduceSection .tpm-portal-introduce:not(.is-carousel-ready) .tpm-portal-introduce__card-wrap:first-child .tpm-portal-introduce__card-blank,
html.home-fx-loading.home-fx-level-heavy:not(.home-fx-products-in) #tpmIntroduceSection .tpm-portal-introduce.is-carousel-ready .tpm-portal-introduce__card-wrap.is-slide-current .tpm-portal-introduce__card-blank {
  opacity: 0;
  transform: translate3d(70vw, 24px, 0);
}

html.home-fx-loading.home-fx-level-heavy.home-fx-products-in #tpmIntroduceSection .tpm-portal-section__hd {
  animation: home-fx-from-left 0.95s cubic-bezier(0.14, 1.2, 0.28, 1) both;
}
html.home-fx-loading.home-fx-level-heavy.home-fx-products-in #tpmIntroduceSection .tpm-portal-introduce:not(.is-carousel-ready) .tpm-portal-introduce__card-wrap:first-child .tpm-portal-introduce__card--active,
html.home-fx-loading.home-fx-level-heavy.home-fx-products-in #tpmIntroduceSection .tpm-portal-introduce.is-carousel-ready .tpm-portal-introduce__card-wrap.is-slide-current .tpm-portal-introduce__card--active {
  animation: home-fx-from-left 1.05s cubic-bezier(0.14, 1.2, 0.28, 1) 0.1s both;
}
html.home-fx-loading.home-fx-level-heavy.home-fx-products-in #tpmIntroduceSection .tpm-portal-introduce:not(.is-carousel-ready) .tpm-portal-introduce__card-wrap:first-child .tpm-portal-introduce__card-blank,
html.home-fx-loading.home-fx-level-heavy.home-fx-products-in #tpmIntroduceSection .tpm-portal-introduce.is-carousel-ready .tpm-portal-introduce__card-wrap.is-slide-current .tpm-portal-introduce__card-blank {
  animation: home-fx-from-right 1.05s cubic-bezier(0.14, 1.2, 0.28, 1) 0.18s both;
}

/* After FX finishes, drop animation so carousel transforms stay clean */
html.home-fx-loading.home-fx-level-heavy.home-fx-products-done #tpmIntroduceSection .tpm-portal-section__hd,
html.home-fx-loading.home-fx-level-heavy.home-fx-products-done #tpmIntroduceSection .tpm-portal-introduce__card--active,
html.home-fx-loading.home-fx-level-heavy.home-fx-products-done #tpmIntroduceSection .tpm-portal-introduce__card-blank,
html.home-fx-loading.home-fx-level-heavy.home-fx-products-done #tpmIntroduceSection .tpm-portal-introduce__cs-intro {
  animation: none !important;
  opacity: 1 !important;
  transform: none !important;
  filter: none !important;
}

/* Industry solutions: animate shell, not tab cards that use enter/leave transforms */
html.home-fx-loading.home-fx-level-heavy:not(.home-fx-capability-in) #tpmCapabilitySection .tpm-portal-section__hd {
  opacity: 0;
  transform: translate3d(60vw, 0, 0);
}
html.home-fx-loading.home-fx-level-heavy:not(.home-fx-capability-in) #tpmCapabilitySection .tpm-portal-capability__inner {
  opacity: 0;
  transform: translate3d(40vw, 30px, 0);
}
html.home-fx-loading.home-fx-level-heavy.home-fx-capability-in #tpmCapabilitySection .tpm-portal-section__hd {
  animation: home-fx-from-right 0.95s cubic-bezier(0.14, 1.2, 0.28, 1) both;
}
html.home-fx-loading.home-fx-level-heavy.home-fx-capability-in #tpmCapabilitySection .tpm-portal-capability__inner {
  animation: home-fx-from-right 1.05s cubic-bezier(0.14, 1.2, 0.28, 1) 0.1s both;
}
html.home-fx-loading.home-fx-level-heavy.home-fx-capability-done #tpmCapabilitySection .tpm-portal-section__hd,
html.home-fx-loading.home-fx-level-heavy.home-fx-capability-done #tpmCapabilitySection .tpm-portal-capability__inner {
  animation: none !important;
  opacity: 1 !important;
  transform: none !important;
}

/* ========== 全球基础设施起：夸张分段入场（只动内部子元素，不动整块 floor） ========== */

/* 默认：后续楼层子元素先藏住 */
html.home-fx-loading.home-fx-level-heavy .elevator-floor:not(.jdc-first-screen):not(#tpmIntroduceSection):not(#tpmCapabilitySection):not(.home-fx-section-in) .tpm-portal-section__hd,
html.home-fx-loading.home-fx-level-heavy .elevator-floor:not(.jdc-first-screen):not(#tpmIntroduceSection):not(#tpmCapabilitySection):not(.home-fx-section-in) .tpm-portal-infrastructure__item,
html.home-fx-loading.home-fx-level-heavy .elevator-floor:not(.jdc-first-screen):not(#tpmIntroduceSection):not(#tpmCapabilitySection):not(.home-fx-section-in) .tpm-portal-infrastructure__globe-stage,
html.home-fx-loading.home-fx-level-heavy .elevator-floor:not(.jdc-first-screen):not(#tpmIntroduceSection):not(#tpmCapabilitySection):not(.home-fx-section-in) .jdc-main-certification-title,
html.home-fx-loading.home-fx-level-heavy .elevator-floor:not(.jdc-first-screen):not(#tpmIntroduceSection):not(#tpmCapabilitySection):not(.home-fx-section-in) .jdc-main-certification-item,
html.home-fx-loading.home-fx-level-heavy .elevator-floor:not(.jdc-first-screen):not(#tpmIntroduceSection):not(#tpmCapabilitySection):not(.home-fx-section-in) .tpm-portal-developer__swiper,
html.home-fx-loading.home-fx-level-heavy .elevator-floor:not(.jdc-first-screen):not(#tpmIntroduceSection):not(#tpmCapabilitySection):not(.home-fx-section-in) .tpm-portal-developer__item,
html.home-fx-loading.home-fx-level-heavy .elevator-floor:not(.jdc-first-screen):not(#tpmIntroduceSection):not(#tpmCapabilitySection):not(.home-fx-section-in) .tpm-portal-trust,
html.home-fx-loading.home-fx-level-heavy .elevator-floor:not(.jdc-first-screen):not(#tpmIntroduceSection):not(#tpmCapabilitySection):not(.home-fx-section-in) .jdc-cloud-road-banner-main,
html.home-fx-loading.home-fx-level-heavy .elevator-floor:not(.jdc-first-screen):not(#tpmIntroduceSection):not(#tpmCapabilitySection):not(.home-fx-section-in) .jdc-cloud-road-banner-btn {
  opacity: 0;
}

/* —— 全球基础设施 —— */
html.home-fx-loading.home-fx-level-heavy .jdc-globe-section:not(.home-fx-section-in) .tpm-portal-section__hd {
  transform: translate3d(0, -70vh, 0) scale(1.15);
}
html.home-fx-loading.home-fx-level-heavy .jdc-globe-section:not(.home-fx-section-in) .tpm-portal-infrastructure__items > div:first-child .tpm-portal-infrastructure__item {
  transform: translate3d(-80vw, 40px, 0) rotate(-10deg);
}
html.home-fx-loading.home-fx-level-heavy .jdc-globe-section:not(.home-fx-section-in) .tpm-portal-infrastructure__items > div:last-child .tpm-portal-infrastructure__item {
  transform: translate3d(80vw, 40px, 0) rotate(10deg);
}
html.home-fx-loading.home-fx-level-heavy .jdc-globe-section:not(.home-fx-section-in) .tpm-portal-infrastructure__globe-stage {
  transform: translate3d(0, 80vh, 0) scale(0.35) rotate(-25deg);
}
html.home-fx-loading.home-fx-level-heavy .jdc-globe-section.home-fx-section-in .tpm-portal-section__hd {
  animation: home-fx-skyfall 1.15s cubic-bezier(0.14, 1.25, 0.28, 1) both;
}
html.home-fx-loading.home-fx-level-heavy .jdc-globe-section.home-fx-section-in .tpm-portal-infrastructure__items > div:first-child .tpm-portal-infrastructure__item {
  animation: home-fx-from-left 1.1s cubic-bezier(0.14, 1.3, 0.28, 1) both;
}
html.home-fx-loading.home-fx-level-heavy .jdc-globe-section.home-fx-section-in .tpm-portal-infrastructure__items > div:last-child .tpm-portal-infrastructure__item {
  animation: home-fx-from-right 1.1s cubic-bezier(0.14, 1.3, 0.28, 1) both;
}
html.home-fx-loading.home-fx-level-heavy .jdc-globe-section.home-fx-section-in .tpm-portal-infrastructure__items > div:first-child .tpm-portal-infrastructure__item:nth-child(1) { animation-delay: 0.08s; }
html.home-fx-loading.home-fx-level-heavy .jdc-globe-section.home-fx-section-in .tpm-portal-infrastructure__items > div:first-child .tpm-portal-infrastructure__item:nth-child(2) { animation-delay: 0.2s; }
html.home-fx-loading.home-fx-level-heavy .jdc-globe-section.home-fx-section-in .tpm-portal-infrastructure__items > div:first-child .tpm-portal-infrastructure__item:nth-child(3) { animation-delay: 0.32s; }
html.home-fx-loading.home-fx-level-heavy .jdc-globe-section.home-fx-section-in .tpm-portal-infrastructure__items > div:last-child .tpm-portal-infrastructure__item:nth-child(1) { animation-delay: 0.14s; }
html.home-fx-loading.home-fx-level-heavy .jdc-globe-section.home-fx-section-in .tpm-portal-infrastructure__items > div:last-child .tpm-portal-infrastructure__item:nth-child(2) { animation-delay: 0.26s; }
html.home-fx-loading.home-fx-level-heavy .jdc-globe-section.home-fx-section-in .tpm-portal-infrastructure__items > div:last-child .tpm-portal-infrastructure__item:nth-child(3) { animation-delay: 0.38s; }
html.home-fx-loading.home-fx-level-heavy .jdc-globe-section.home-fx-section-in .tpm-portal-infrastructure__globe-stage {
  animation: home-fx-globe-slam 1.35s cubic-bezier(0.12, 1.35, 0.28, 1) 0.22s both;
}

/* —— 资质认证 —— */
html.home-fx-loading.home-fx-level-heavy .jdc-cloud-road-cert-wrap:not(.home-fx-section-in) .jdc-main-certification-title {
  transform: translate3d(-70vw, 0, 0) rotate(-8deg);
}
html.home-fx-loading.home-fx-level-heavy .jdc-cloud-road-cert-wrap:not(.home-fx-section-in) .jdc-main-certification-item {
  transform: translate3d(0, 120vh, 0) scale(0.5) rotate(12deg);
}
html.home-fx-loading.home-fx-level-heavy .jdc-cloud-road-cert-wrap.home-fx-section-in .jdc-main-certification-title {
  animation: home-fx-from-left 1s cubic-bezier(0.14, 1.25, 0.28, 1) both;
}
html.home-fx-loading.home-fx-level-heavy .jdc-cloud-road-cert-wrap.home-fx-section-in .jdc-main-certification-item {
  animation: home-fx-flip-up 1.05s cubic-bezier(0.14, 1.4, 0.28, 1) both;
}
html.home-fx-loading.home-fx-level-heavy .jdc-cloud-road-cert-wrap.home-fx-section-in .jdc-main-certification-item:nth-child(1) { animation-delay: 0.08s; }
html.home-fx-loading.home-fx-level-heavy .jdc-cloud-road-cert-wrap.home-fx-section-in .jdc-main-certification-item:nth-child(2) { animation-delay: 0.18s; }
html.home-fx-loading.home-fx-level-heavy .jdc-cloud-road-cert-wrap.home-fx-section-in .jdc-main-certification-item:nth-child(3) { animation-delay: 0.28s; }
html.home-fx-loading.home-fx-level-heavy .jdc-cloud-road-cert-wrap.home-fx-section-in .jdc-main-certification-item:nth-child(4) { animation-delay: 0.38s; }
html.home-fx-loading.home-fx-level-heavy .jdc-cloud-road-cert-wrap.home-fx-section-in .jdc-main-certification-item:nth-child(5) { animation-delay: 0.48s; }
html.home-fx-loading.home-fx-level-heavy .jdc-cloud-road-cert-wrap.home-fx-section-in .jdc-main-certification-item:nth-child(n+6) { animation-delay: 0.58s; }

/* —— 帮助与支持 —— */
html.home-fx-loading.home-fx-level-heavy .tpm-portal-developer__section:not(.home-fx-section-in) .tpm-portal-section__hd {
  transform: translate3d(70vw, -20px, 0) rotate(8deg);
}
html.home-fx-loading.home-fx-level-heavy .tpm-portal-developer__section:not(.home-fx-section-in) .tpm-portal-developer__swiper {
  transform: translate3d(-90vw, 60px, 0) rotate(-14deg) scale(0.85);
}
html.home-fx-loading.home-fx-level-heavy .tpm-portal-developer__section:not(.home-fx-section-in) .tpm-portal-developer__item {
  transform: translate3d(90vw, 40px, 0) rotate(10deg) scale(0.9);
}
html.home-fx-loading.home-fx-level-heavy .tpm-portal-developer__section.home-fx-section-in .tpm-portal-section__hd {
  animation: home-fx-from-right 1s cubic-bezier(0.14, 1.25, 0.28, 1) both;
}
html.home-fx-loading.home-fx-level-heavy .tpm-portal-developer__section.home-fx-section-in .tpm-portal-developer__swiper {
  animation: home-fx-from-left 1.15s cubic-bezier(0.14, 1.3, 0.28, 1) 0.08s both;
}
html.home-fx-loading.home-fx-level-heavy .tpm-portal-developer__section.home-fx-section-in .tpm-portal-developer__item {
  animation: home-fx-from-right 1.05s cubic-bezier(0.14, 1.35, 0.28, 1) both;
}
html.home-fx-loading.home-fx-level-heavy .tpm-portal-developer__section.home-fx-section-in .tpm-portal-developer__item:nth-child(1) { animation-delay: 0.16s; }
html.home-fx-loading.home-fx-level-heavy .tpm-portal-developer__section.home-fx-section-in .tpm-portal-developer__item:nth-child(2) { animation-delay: 0.28s; }
html.home-fx-loading.home-fx-level-heavy .tpm-portal-developer__section.home-fx-section-in .tpm-portal-developer__item:nth-child(3) { animation-delay: 0.4s; }
html.home-fx-loading.home-fx-level-heavy .tpm-portal-developer__section.home-fx-section-in .tpm-portal-developer__item:nth-child(4) { animation-delay: 0.52s; }
html.home-fx-loading.home-fx-level-heavy .tpm-portal-developer__section.home-fx-section-in .tpm-portal-developer__item:nth-child(n+5) { animation-delay: 0.64s; }

/* —— 品牌信任（不动滚动 track，避免打断跑马灯） —— */
html.home-fx-loading.home-fx-level-heavy .tpm-portal-trust__section:not(.home-fx-section-in) .tpm-portal-section__hd {
  transform: translate3d(0, -60vh, 0) scale(1.2);
}
html.home-fx-loading.home-fx-level-heavy .tpm-portal-trust__section:not(.home-fx-section-in) .tpm-portal-trust {
  transform: scale(0.2) rotate(-18deg);
  transform-origin: center center;
}
html.home-fx-loading.home-fx-level-heavy .tpm-portal-trust__section.home-fx-section-in .tpm-portal-section__hd {
  animation: home-fx-skyfall 1.1s cubic-bezier(0.14, 1.25, 0.28, 1) both;
}
html.home-fx-loading.home-fx-level-heavy .tpm-portal-trust__section.home-fx-section-in .tpm-portal-trust {
  animation: home-fx-zoom-spin 1.25s cubic-bezier(0.12, 1.4, 0.28, 1) 0.12s both;
}

/* —— 底部推广横幅 —— */
html.home-fx-loading.home-fx-level-heavy .jdc-cloud-road-banner:not(.home-fx-section-in) .jdc-cloud-road-banner-main {
  transform: translate3d(-100vw, 0, 0) rotate(-12deg) scale(0.8);
}
html.home-fx-loading.home-fx-level-heavy .jdc-cloud-road-banner:not(.home-fx-section-in) .jdc-cloud-road-banner-btn {
  transform: translate3d(100vw, 0, 0) rotate(16deg) scale(0.6);
}
html.home-fx-loading.home-fx-level-heavy .jdc-cloud-road-banner.home-fx-section-in .jdc-cloud-road-banner-main {
  animation: home-fx-from-left 1.15s cubic-bezier(0.12, 1.35, 0.28, 1) both;
}
html.home-fx-loading.home-fx-level-heavy .jdc-cloud-road-banner.home-fx-section-in .jdc-cloud-road-banner-btn {
  animation: home-fx-from-right 1.15s cubic-bezier(0.12, 1.45, 0.28, 1) 0.12s both;
}

/* 动画结束后清残留，避免影响后续交互 */
html.home-fx-loading.home-fx-level-heavy .elevator-floor.home-fx-section-done .tpm-portal-section__hd,
html.home-fx-loading.home-fx-level-heavy .elevator-floor.home-fx-section-done .tpm-portal-infrastructure__item,
html.home-fx-loading.home-fx-level-heavy .elevator-floor.home-fx-section-done .tpm-portal-infrastructure__globe-stage,
html.home-fx-loading.home-fx-level-heavy .elevator-floor.home-fx-section-done .jdc-main-certification-title,
html.home-fx-loading.home-fx-level-heavy .elevator-floor.home-fx-section-done .jdc-main-certification-item,
html.home-fx-loading.home-fx-level-heavy .elevator-floor.home-fx-section-done .tpm-portal-developer__swiper,
html.home-fx-loading.home-fx-level-heavy .elevator-floor.home-fx-section-done .tpm-portal-developer__item,
html.home-fx-loading.home-fx-level-heavy .elevator-floor.home-fx-section-done .tpm-portal-trust,
html.home-fx-loading.home-fx-level-heavy .elevator-floor.home-fx-section-done .jdc-cloud-road-banner-main,
html.home-fx-loading.home-fx-level-heavy .elevator-floor.home-fx-section-done .jdc-cloud-road-banner-btn {
  animation: none !important;
  opacity: 1 !important;
  transform: none !important;
}

@keyframes home-fx-skyfall {
  0% {
    opacity: 0;
    transform: translate3d(0, -80vh, 0);
  }
  70% {
    opacity: 1;
    transform: translate3d(0, 18px, 0);
  }
  100% {
    opacity: 1;
    transform: translate3d(0, 0, 0);
  }
}

@keyframes home-fx-skyfall-soft {
  0% {
    opacity: 0;
    transform: translate3d(0, -48vh, 0);
  }
  100% {
    opacity: 1;
    transform: translate3d(0, 0, 0);
  }
}

@keyframes home-fx-from-left {
  0% {
    opacity: 0;
    transform: translate3d(-70vw, 28px, 0);
  }
  70% {
    opacity: 1;
    transform: translate3d(18px, 0, 0);
  }
  100% {
    opacity: 1;
    transform: translate3d(0, 0, 0);
  }
}

@keyframes home-fx-from-right {
  0% {
    opacity: 0;
    transform: translate3d(70vw, 28px, 0);
  }
  70% {
    opacity: 1;
    transform: translate3d(-18px, 0, 0);
  }
  100% {
    opacity: 1;
    transform: translate3d(0, 0, 0);
  }
}

@keyframes home-fx-pop-in {
  0% {
    opacity: 0;
    transform: translate3d(0, 48px, 0) scale(0.92);
  }
  70% {
    opacity: 1;
    transform: translate3d(0, -8px, 0) scale(1.02);
  }
  100% {
    opacity: 1;
    transform: translate3d(0, 0, 0) scale(1);
  }
}

@keyframes home-fx-globe-slam {
  0% {
    opacity: 0;
    transform: translate3d(0, 80vh, 0) scale(0.3) rotate(-28deg);
  }
  55% {
    opacity: 1;
    transform: translate3d(0, -28px, 0) scale(1.12) rotate(6deg);
  }
  78% {
    transform: translate3d(0, 14px, 0) scale(0.96) rotate(-3deg);
  }
  100% {
    opacity: 1;
    transform: translate3d(0, 0, 0) scale(1) rotate(0);
  }
}

@keyframes home-fx-flip-up {
  0% {
    opacity: 0;
    transform: translate3d(0, 110vh, 0) scale(0.45) rotate(16deg);
  }
  62% {
    opacity: 1;
    transform: translate3d(0, -22px, 0) scale(1.08) rotate(-4deg);
  }
  82% {
    transform: translate3d(0, 10px, 0) scale(0.98) rotate(2deg);
  }
  100% {
    opacity: 1;
    transform: translate3d(0, 0, 0) scale(1) rotate(0);
  }
}

@keyframes home-fx-zoom-spin {
  0% {
    opacity: 0;
    transform: scale(0.15) rotate(-22deg);
  }
  65% {
    opacity: 1;
    transform: scale(1.12) rotate(6deg);
  }
  100% {
    opacity: 1;
    transform: scale(1) rotate(0);
  }
}

/* ========== 轻微 light：淡入上浮，无大位移 ========== */
html.home-fx-loading.home-fx-level-light:not(.home-fx-played) .jdc-first-screen .fs-slide-tit,
html.home-fx-loading.home-fx-level-light:not(.home-fx-played) .jdc-first-screen .fs-slide-des,
html.home-fx-loading.home-fx-level-light:not(.home-fx-played) .jdc-first-screen .jdc-btn,
html.home-fx-loading.home-fx-level-light:not(.home-fx-played) .jdc-first-screen .banner-slide-nav,
html.home-fx-loading.home-fx-level-light:not(.home-fx-played) .jdc-first-screen .core-item {
  opacity: 0;
  transform: translate3d(0, 20px, 0);
}
html.home-fx-loading.home-fx-level-light.home-fx-played .jdc-first-screen .fs-slide-tit,
html.home-fx-loading.home-fx-level-light.home-fx-played .jdc-first-screen .fs-slide-des,
html.home-fx-loading.home-fx-level-light.home-fx-played .jdc-first-screen .jdc-btn,
html.home-fx-loading.home-fx-level-light.home-fx-played .jdc-first-screen .banner-slide-nav,
html.home-fx-loading.home-fx-level-light.home-fx-played .jdc-first-screen .core-item {
  animation: home-fx-light-fade 0.55s ease both;
}
html.home-fx-loading.home-fx-level-light.home-fx-played .jdc-first-screen .fs-slide-tit { animation-delay: 0.04s; }
html.home-fx-loading.home-fx-level-light.home-fx-played .jdc-first-screen .fs-slide-des { animation-delay: 0.1s; }
html.home-fx-loading.home-fx-level-light.home-fx-played .jdc-first-screen .jdc-btn { animation-delay: 0.16s; }
html.home-fx-loading.home-fx-level-light.home-fx-played .jdc-first-screen .banner-slide-nav { animation-delay: 0.22s; }
html.home-fx-loading.home-fx-level-light.home-fx-played .jdc-first-screen .core-item:nth-child(1) { animation-delay: 0.24s; }
html.home-fx-loading.home-fx-level-light.home-fx-played .jdc-first-screen .core-item:nth-child(2) { animation-delay: 0.3s; }
html.home-fx-loading.home-fx-level-light.home-fx-played .jdc-first-screen .core-item:nth-child(3) { animation-delay: 0.36s; }
html.home-fx-loading.home-fx-level-light.home-fx-played .jdc-first-screen .core-item:nth-child(4) { animation-delay: 0.42s; }
html.home-fx-loading.home-fx-level-light.home-fx-played .jdc-first-screen .core-item:nth-child(5) { animation-delay: 0.48s; }

html.home-fx-loading.home-fx-level-light:not(.home-fx-products-in) #tpmIntroduceSection .tpm-portal-section__hd,
html.home-fx-loading.home-fx-level-light:not(.home-fx-products-in) #tpmIntroduceSection .tpm-portal-introduce:not(.is-carousel-ready) .tpm-portal-introduce__card-wrap:first-child .tpm-portal-introduce__card--active,
html.home-fx-loading.home-fx-level-light:not(.home-fx-products-in) #tpmIntroduceSection .tpm-portal-introduce.is-carousel-ready .tpm-portal-introduce__card-wrap.is-slide-current .tpm-portal-introduce__card--active,
html.home-fx-loading.home-fx-level-light:not(.home-fx-products-in) #tpmIntroduceSection .tpm-portal-introduce:not(.is-carousel-ready) .tpm-portal-introduce__card-wrap:first-child .tpm-portal-introduce__card-blank,
html.home-fx-loading.home-fx-level-light:not(.home-fx-products-in) #tpmIntroduceSection .tpm-portal-introduce.is-carousel-ready .tpm-portal-introduce__card-wrap.is-slide-current .tpm-portal-introduce__card-blank {
  opacity: 0;
  transform: translate3d(0, 18px, 0);
}
html.home-fx-loading.home-fx-level-light.home-fx-products-in #tpmIntroduceSection .tpm-portal-section__hd,
html.home-fx-loading.home-fx-level-light.home-fx-products-in #tpmIntroduceSection .tpm-portal-introduce:not(.is-carousel-ready) .tpm-portal-introduce__card-wrap:first-child .tpm-portal-introduce__card--active,
html.home-fx-loading.home-fx-level-light.home-fx-products-in #tpmIntroduceSection .tpm-portal-introduce.is-carousel-ready .tpm-portal-introduce__card-wrap.is-slide-current .tpm-portal-introduce__card--active,
html.home-fx-loading.home-fx-level-light.home-fx-products-in #tpmIntroduceSection .tpm-portal-introduce:not(.is-carousel-ready) .tpm-portal-introduce__card-wrap:first-child .tpm-portal-introduce__card-blank,
html.home-fx-loading.home-fx-level-light.home-fx-products-in #tpmIntroduceSection .tpm-portal-introduce.is-carousel-ready .tpm-portal-introduce__card-wrap.is-slide-current .tpm-portal-introduce__card-blank {
  animation: home-fx-light-fade 0.6s ease both;
}
html.home-fx-loading.home-fx-level-light.home-fx-products-in #tpmIntroduceSection .tpm-portal-introduce__card--active { animation-delay: 0.08s; }
html.home-fx-loading.home-fx-level-light.home-fx-products-in #tpmIntroduceSection .tpm-portal-introduce__card-blank { animation-delay: 0.14s; }
html.home-fx-loading.home-fx-level-light.home-fx-products-done #tpmIntroduceSection .tpm-portal-section__hd,
html.home-fx-loading.home-fx-level-light.home-fx-products-done #tpmIntroduceSection .tpm-portal-introduce__card--active,
html.home-fx-loading.home-fx-level-light.home-fx-products-done #tpmIntroduceSection .tpm-portal-introduce__card-blank {
  animation: none !important; opacity: 1 !important; transform: none !important;
}

html.home-fx-loading.home-fx-level-light:not(.home-fx-capability-in) #tpmCapabilitySection .tpm-portal-section__hd,
html.home-fx-loading.home-fx-level-light:not(.home-fx-capability-in) #tpmCapabilitySection .tpm-portal-capability__inner {
  opacity: 0; transform: translate3d(0, 16px, 0);
}
html.home-fx-loading.home-fx-level-light.home-fx-capability-in #tpmCapabilitySection .tpm-portal-section__hd,
html.home-fx-loading.home-fx-level-light.home-fx-capability-in #tpmCapabilitySection .tpm-portal-capability__inner {
  animation: home-fx-light-fade 0.6s ease both;
}
html.home-fx-loading.home-fx-level-light.home-fx-capability-in #tpmCapabilitySection .tpm-portal-capability__inner { animation-delay: 0.08s; }
html.home-fx-loading.home-fx-level-light.home-fx-capability-done #tpmCapabilitySection .tpm-portal-section__hd,
html.home-fx-loading.home-fx-level-light.home-fx-capability-done #tpmCapabilitySection .tpm-portal-capability__inner {
  animation: none !important; opacity: 1 !important; transform: none !important;
}

html.home-fx-loading.home-fx-level-light .elevator-floor:not(.jdc-first-screen):not(#tpmIntroduceSection):not(#tpmCapabilitySection):not(.home-fx-section-in) .tpm-portal-section__hd,
html.home-fx-loading.home-fx-level-light .elevator-floor:not(.jdc-first-screen):not(#tpmIntroduceSection):not(#tpmCapabilitySection):not(.home-fx-section-in) .tpm-portal-infrastructure__item,
html.home-fx-loading.home-fx-level-light .elevator-floor:not(.jdc-first-screen):not(#tpmIntroduceSection):not(#tpmCapabilitySection):not(.home-fx-section-in) .tpm-portal-infrastructure__globe-stage,
html.home-fx-loading.home-fx-level-light .elevator-floor:not(.jdc-first-screen):not(#tpmIntroduceSection):not(#tpmCapabilitySection):not(.home-fx-section-in) .jdc-main-certification-title,
html.home-fx-loading.home-fx-level-light .elevator-floor:not(.jdc-first-screen):not(#tpmIntroduceSection):not(#tpmCapabilitySection):not(.home-fx-section-in) .jdc-main-certification-item,
html.home-fx-loading.home-fx-level-light .elevator-floor:not(.jdc-first-screen):not(#tpmIntroduceSection):not(#tpmCapabilitySection):not(.home-fx-section-in) .tpm-portal-developer__swiper,
html.home-fx-loading.home-fx-level-light .elevator-floor:not(.jdc-first-screen):not(#tpmIntroduceSection):not(#tpmCapabilitySection):not(.home-fx-section-in) .tpm-portal-developer__item,
html.home-fx-loading.home-fx-level-light .elevator-floor:not(.jdc-first-screen):not(#tpmIntroduceSection):not(#tpmCapabilitySection):not(.home-fx-section-in) .tpm-portal-trust,
html.home-fx-loading.home-fx-level-light .elevator-floor:not(.jdc-first-screen):not(#tpmIntroduceSection):not(#tpmCapabilitySection):not(.home-fx-section-in) .jdc-cloud-road-banner-main,
html.home-fx-loading.home-fx-level-light .elevator-floor:not(.jdc-first-screen):not(#tpmIntroduceSection):not(#tpmCapabilitySection):not(.home-fx-section-in) .jdc-cloud-road-banner-btn {
  opacity: 0; transform: translate3d(0, 20px, 0);
}
html.home-fx-loading.home-fx-level-light .elevator-floor.home-fx-section-in .tpm-portal-section__hd,
html.home-fx-loading.home-fx-level-light .elevator-floor.home-fx-section-in .tpm-portal-infrastructure__item,
html.home-fx-loading.home-fx-level-light .elevator-floor.home-fx-section-in .tpm-portal-infrastructure__globe-stage,
html.home-fx-loading.home-fx-level-light .elevator-floor.home-fx-section-in .jdc-main-certification-title,
html.home-fx-loading.home-fx-level-light .elevator-floor.home-fx-section-in .jdc-main-certification-item,
html.home-fx-loading.home-fx-level-light .elevator-floor.home-fx-section-in .tpm-portal-developer__swiper,
html.home-fx-loading.home-fx-level-light .elevator-floor.home-fx-section-in .tpm-portal-developer__item,
html.home-fx-loading.home-fx-level-light .elevator-floor.home-fx-section-in .tpm-portal-trust,
html.home-fx-loading.home-fx-level-light .elevator-floor.home-fx-section-in .jdc-cloud-road-banner-main,
html.home-fx-loading.home-fx-level-light .elevator-floor.home-fx-section-in .jdc-cloud-road-banner-btn {
  animation: home-fx-light-fade 0.55s ease both;
}
html.home-fx-loading.home-fx-level-light .elevator-floor.home-fx-section-in .tpm-portal-infrastructure__item:nth-child(1) { animation-delay: 0.05s; }
html.home-fx-loading.home-fx-level-light .elevator-floor.home-fx-section-in .tpm-portal-infrastructure__item:nth-child(2) { animation-delay: 0.1s; }
html.home-fx-loading.home-fx-level-light .elevator-floor.home-fx-section-in .tpm-portal-infrastructure__item:nth-child(3) { animation-delay: 0.15s; }
html.home-fx-loading.home-fx-level-light .elevator-floor.home-fx-section-in .tpm-portal-infrastructure__globe-stage { animation-delay: 0.12s; }
html.home-fx-loading.home-fx-level-light .elevator-floor.home-fx-section-in .jdc-main-certification-item:nth-child(1) { animation-delay: 0.06s; }
html.home-fx-loading.home-fx-level-light .elevator-floor.home-fx-section-in .jdc-main-certification-item:nth-child(2) { animation-delay: 0.12s; }
html.home-fx-loading.home-fx-level-light .elevator-floor.home-fx-section-in .jdc-main-certification-item:nth-child(3) { animation-delay: 0.18s; }
html.home-fx-loading.home-fx-level-light .elevator-floor.home-fx-section-in .jdc-main-certification-item:nth-child(n+4) { animation-delay: 0.24s; }
html.home-fx-loading.home-fx-level-light .elevator-floor.home-fx-section-in .tpm-portal-developer__item:nth-child(1) { animation-delay: 0.08s; }
html.home-fx-loading.home-fx-level-light .elevator-floor.home-fx-section-in .tpm-portal-developer__item:nth-child(2) { animation-delay: 0.14s; }
html.home-fx-loading.home-fx-level-light .elevator-floor.home-fx-section-in .tpm-portal-developer__item:nth-child(n+3) { animation-delay: 0.2s; }
html.home-fx-loading.home-fx-level-light .elevator-floor.home-fx-section-done .tpm-portal-section__hd,
html.home-fx-loading.home-fx-level-light .elevator-floor.home-fx-section-done .tpm-portal-infrastructure__item,
html.home-fx-loading.home-fx-level-light .elevator-floor.home-fx-section-done .tpm-portal-infrastructure__globe-stage,
html.home-fx-loading.home-fx-level-light .elevator-floor.home-fx-section-done .jdc-main-certification-title,
html.home-fx-loading.home-fx-level-light .elevator-floor.home-fx-section-done .jdc-main-certification-item,
html.home-fx-loading.home-fx-level-light .elevator-floor.home-fx-section-done .tpm-portal-developer__swiper,
html.home-fx-loading.home-fx-level-light .elevator-floor.home-fx-section-done .tpm-portal-developer__item,
html.home-fx-loading.home-fx-level-light .elevator-floor.home-fx-section-done .tpm-portal-trust,
html.home-fx-loading.home-fx-level-light .elevator-floor.home-fx-section-done .jdc-cloud-road-banner-main,
html.home-fx-loading.home-fx-level-light .elevator-floor.home-fx-section-done .jdc-cloud-road-banner-btn {
  animation: none !important; opacity: 1 !important; transform: none !important;
}

/* ========== 正常 normal：中等侧入 + 轻弹 ========== */
html.home-fx-loading.home-fx-level-normal:not(.home-fx-played) .jdc-first-screen .fs-slide-tit,
html.home-fx-loading.home-fx-level-normal:not(.home-fx-played) .jdc-first-screen .fs-slide-des,
html.home-fx-loading.home-fx-level-normal:not(.home-fx-played) .jdc-first-screen .jdc-btn,
html.home-fx-loading.home-fx-level-normal:not(.home-fx-played) .jdc-first-screen .banner-slide-nav,
html.home-fx-loading.home-fx-level-normal:not(.home-fx-played) .jdc-first-screen .core-item {
  opacity: 0;
  transform: translate3d(0, -28vh, 0);
}
html.home-fx-loading.home-fx-level-normal.home-fx-played .jdc-first-screen .fs-slide-tit { animation: home-fx-normal-down 0.85s cubic-bezier(0.2, 1.1, 0.3, 1) 0.04s both; }
html.home-fx-loading.home-fx-level-normal.home-fx-played .jdc-first-screen .fs-slide-des { animation: home-fx-normal-down 0.9s cubic-bezier(0.2, 1.1, 0.3, 1) 0.12s both; }
html.home-fx-loading.home-fx-level-normal.home-fx-played .jdc-first-screen .jdc-btn { animation: home-fx-normal-down 0.9s cubic-bezier(0.2, 1.1, 0.3, 1) 0.2s both; }
html.home-fx-loading.home-fx-level-normal.home-fx-played .jdc-first-screen .banner-slide-nav { animation: home-fx-normal-down 0.85s cubic-bezier(0.2, 1.1, 0.3, 1) 0.28s both; }
html.home-fx-loading.home-fx-level-normal.home-fx-played .jdc-first-screen .core-item { animation: home-fx-normal-up 0.75s cubic-bezier(0.2, 1.15, 0.3, 1) both; }
html.home-fx-loading.home-fx-level-normal.home-fx-played .jdc-first-screen .core-item:nth-child(1) { animation-delay: 0.32s; }
html.home-fx-loading.home-fx-level-normal.home-fx-played .jdc-first-screen .core-item:nth-child(2) { animation-delay: 0.4s; }
html.home-fx-loading.home-fx-level-normal.home-fx-played .jdc-first-screen .core-item:nth-child(3) { animation-delay: 0.48s; }
html.home-fx-loading.home-fx-level-normal.home-fx-played .jdc-first-screen .core-item:nth-child(4) { animation-delay: 0.56s; }
html.home-fx-loading.home-fx-level-normal.home-fx-played .jdc-first-screen .core-item:nth-child(5) { animation-delay: 0.64s; }

html.home-fx-loading.home-fx-level-normal:not(.home-fx-products-in) #tpmIntroduceSection .tpm-portal-section__hd { opacity: 0; transform: translate3d(-28vw, 0, 0); }
html.home-fx-loading.home-fx-level-normal:not(.home-fx-products-in) #tpmIntroduceSection .tpm-portal-introduce:not(.is-carousel-ready) .tpm-portal-introduce__card-wrap:first-child .tpm-portal-introduce__card--active,
html.home-fx-loading.home-fx-level-normal:not(.home-fx-products-in) #tpmIntroduceSection .tpm-portal-introduce.is-carousel-ready .tpm-portal-introduce__card-wrap.is-slide-current .tpm-portal-introduce__card--active {
  opacity: 0; transform: translate3d(-32vw, 12px, 0);
}
html.home-fx-loading.home-fx-level-normal:not(.home-fx-products-in) #tpmIntroduceSection .tpm-portal-introduce:not(.is-carousel-ready) .tpm-portal-introduce__card-wrap:first-child .tpm-portal-introduce__card-blank,
html.home-fx-loading.home-fx-level-normal:not(.home-fx-products-in) #tpmIntroduceSection .tpm-portal-introduce.is-carousel-ready .tpm-portal-introduce__card-wrap.is-slide-current .tpm-portal-introduce__card-blank {
  opacity: 0; transform: translate3d(32vw, 12px, 0);
}
html.home-fx-loading.home-fx-level-normal.home-fx-products-in #tpmIntroduceSection .tpm-portal-section__hd { animation: home-fx-normal-left 0.85s cubic-bezier(0.2, 1.15, 0.3, 1) both; }
html.home-fx-loading.home-fx-level-normal.home-fx-products-in #tpmIntroduceSection .tpm-portal-introduce:not(.is-carousel-ready) .tpm-portal-introduce__card-wrap:first-child .tpm-portal-introduce__card--active,
html.home-fx-loading.home-fx-level-normal.home-fx-products-in #tpmIntroduceSection .tpm-portal-introduce.is-carousel-ready .tpm-portal-introduce__card-wrap.is-slide-current .tpm-portal-introduce__card--active {
  animation: home-fx-normal-left 0.9s cubic-bezier(0.2, 1.15, 0.3, 1) 0.08s both;
}
html.home-fx-loading.home-fx-level-normal.home-fx-products-in #tpmIntroduceSection .tpm-portal-introduce:not(.is-carousel-ready) .tpm-portal-introduce__card-wrap:first-child .tpm-portal-introduce__card-blank,
html.home-fx-loading.home-fx-level-normal.home-fx-products-in #tpmIntroduceSection .tpm-portal-introduce.is-carousel-ready .tpm-portal-introduce__card-wrap.is-slide-current .tpm-portal-introduce__card-blank {
  animation: home-fx-normal-right 0.9s cubic-bezier(0.2, 1.15, 0.3, 1) 0.14s both;
}
html.home-fx-loading.home-fx-level-normal.home-fx-products-done #tpmIntroduceSection .tpm-portal-section__hd,
html.home-fx-loading.home-fx-level-normal.home-fx-products-done #tpmIntroduceSection .tpm-portal-introduce__card--active,
html.home-fx-loading.home-fx-level-normal.home-fx-products-done #tpmIntroduceSection .tpm-portal-introduce__card-blank {
  animation: none !important; opacity: 1 !important; transform: none !important;
}

html.home-fx-loading.home-fx-level-normal:not(.home-fx-capability-in) #tpmCapabilitySection .tpm-portal-section__hd,
html.home-fx-loading.home-fx-level-normal:not(.home-fx-capability-in) #tpmCapabilitySection .tpm-portal-capability__inner {
  opacity: 0; transform: translate3d(28vw, 16px, 0);
}
html.home-fx-loading.home-fx-level-normal.home-fx-capability-in #tpmCapabilitySection .tpm-portal-section__hd { animation: home-fx-normal-right 0.85s cubic-bezier(0.2, 1.15, 0.3, 1) both; }
html.home-fx-loading.home-fx-level-normal.home-fx-capability-in #tpmCapabilitySection .tpm-portal-capability__inner { animation: home-fx-normal-right 0.9s cubic-bezier(0.2, 1.15, 0.3, 1) 0.08s both; }
html.home-fx-loading.home-fx-level-normal.home-fx-capability-done #tpmCapabilitySection .tpm-portal-section__hd,
html.home-fx-loading.home-fx-level-normal.home-fx-capability-done #tpmCapabilitySection .tpm-portal-capability__inner {
  animation: none !important; opacity: 1 !important; transform: none !important;
}

html.home-fx-loading.home-fx-level-normal .elevator-floor:not(.jdc-first-screen):not(#tpmIntroduceSection):not(#tpmCapabilitySection):not(.home-fx-section-in) .tpm-portal-section__hd { opacity: 0; transform: translate3d(0, -24vh, 0); }
html.home-fx-loading.home-fx-level-normal .elevator-floor:not(.jdc-first-screen):not(#tpmIntroduceSection):not(#tpmCapabilitySection):not(.home-fx-section-in) .tpm-portal-infrastructure__items > div:first-child .tpm-portal-infrastructure__item { opacity: 0; transform: translate3d(-36vw, 16px, 0); }
html.home-fx-loading.home-fx-level-normal .elevator-floor:not(.jdc-first-screen):not(#tpmIntroduceSection):not(#tpmCapabilitySection):not(.home-fx-section-in) .tpm-portal-infrastructure__items > div:last-child .tpm-portal-infrastructure__item { opacity: 0; transform: translate3d(36vw, 16px, 0); }
html.home-fx-loading.home-fx-level-normal .elevator-floor:not(.jdc-first-screen):not(#tpmIntroduceSection):not(#tpmCapabilitySection):not(.home-fx-section-in) .tpm-portal-infrastructure__globe-stage { opacity: 0; transform: translate3d(0, 40vh, 0) scale(0.85); }
html.home-fx-loading.home-fx-level-normal .elevator-floor:not(.jdc-first-screen):not(#tpmIntroduceSection):not(#tpmCapabilitySection):not(.home-fx-section-in) .jdc-main-certification-title { opacity: 0; transform: translate3d(-30vw, 0, 0); }
html.home-fx-loading.home-fx-level-normal .elevator-floor:not(.jdc-first-screen):not(#tpmIntroduceSection):not(#tpmCapabilitySection):not(.home-fx-section-in) .jdc-main-certification-item { opacity: 0; transform: translate3d(0, 40vh, 0); }
html.home-fx-loading.home-fx-level-normal .elevator-floor:not(.jdc-first-screen):not(#tpmIntroduceSection):not(#tpmCapabilitySection):not(.home-fx-section-in) .tpm-portal-developer__swiper { opacity: 0; transform: translate3d(-36vw, 20px, 0); }
html.home-fx-loading.home-fx-level-normal .elevator-floor:not(.jdc-first-screen):not(#tpmIntroduceSection):not(#tpmCapabilitySection):not(.home-fx-section-in) .tpm-portal-developer__item { opacity: 0; transform: translate3d(36vw, 16px, 0); }
html.home-fx-loading.home-fx-level-normal .elevator-floor:not(.jdc-first-screen):not(#tpmIntroduceSection):not(#tpmCapabilitySection):not(.home-fx-section-in) .tpm-portal-trust { opacity: 0; transform: scale(0.88); }
html.home-fx-loading.home-fx-level-normal .elevator-floor:not(.jdc-first-screen):not(#tpmIntroduceSection):not(#tpmCapabilitySection):not(.home-fx-section-in) .jdc-cloud-road-banner-main { opacity: 0; transform: translate3d(-40vw, 0, 0); }
html.home-fx-loading.home-fx-level-normal .elevator-floor:not(.jdc-first-screen):not(#tpmIntroduceSection):not(#tpmCapabilitySection):not(.home-fx-section-in) .jdc-cloud-road-banner-btn { opacity: 0; transform: translate3d(40vw, 0, 0); }

html.home-fx-loading.home-fx-level-normal .jdc-globe-section.home-fx-section-in .tpm-portal-section__hd { animation: home-fx-normal-down 0.9s cubic-bezier(0.2, 1.15, 0.3, 1) both; }
html.home-fx-loading.home-fx-level-normal .jdc-globe-section.home-fx-section-in .tpm-portal-infrastructure__items > div:first-child .tpm-portal-infrastructure__item { animation: home-fx-normal-left 0.9s cubic-bezier(0.2, 1.15, 0.3, 1) both; }
html.home-fx-loading.home-fx-level-normal .jdc-globe-section.home-fx-section-in .tpm-portal-infrastructure__items > div:last-child .tpm-portal-infrastructure__item { animation: home-fx-normal-right 0.9s cubic-bezier(0.2, 1.15, 0.3, 1) both; }
html.home-fx-loading.home-fx-level-normal .jdc-globe-section.home-fx-section-in .tpm-portal-infrastructure__items > div:first-child .tpm-portal-infrastructure__item:nth-child(1) { animation-delay: 0.06s; }
html.home-fx-loading.home-fx-level-normal .jdc-globe-section.home-fx-section-in .tpm-portal-infrastructure__items > div:first-child .tpm-portal-infrastructure__item:nth-child(2) { animation-delay: 0.14s; }
html.home-fx-loading.home-fx-level-normal .jdc-globe-section.home-fx-section-in .tpm-portal-infrastructure__items > div:first-child .tpm-portal-infrastructure__item:nth-child(3) { animation-delay: 0.22s; }
html.home-fx-loading.home-fx-level-normal .jdc-globe-section.home-fx-section-in .tpm-portal-infrastructure__items > div:last-child .tpm-portal-infrastructure__item:nth-child(1) { animation-delay: 0.1s; }
html.home-fx-loading.home-fx-level-normal .jdc-globe-section.home-fx-section-in .tpm-portal-infrastructure__items > div:last-child .tpm-portal-infrastructure__item:nth-child(2) { animation-delay: 0.18s; }
html.home-fx-loading.home-fx-level-normal .jdc-globe-section.home-fx-section-in .tpm-portal-infrastructure__items > div:last-child .tpm-portal-infrastructure__item:nth-child(3) { animation-delay: 0.26s; }
html.home-fx-loading.home-fx-level-normal .jdc-globe-section.home-fx-section-in .tpm-portal-infrastructure__globe-stage { animation: home-fx-normal-up 1s cubic-bezier(0.2, 1.2, 0.3, 1) 0.16s both; }

html.home-fx-loading.home-fx-level-normal .jdc-cloud-road-cert-wrap.home-fx-section-in .jdc-main-certification-title { animation: home-fx-normal-left 0.85s cubic-bezier(0.2, 1.15, 0.3, 1) both; }
html.home-fx-loading.home-fx-level-normal .jdc-cloud-road-cert-wrap.home-fx-section-in .jdc-main-certification-item { animation: home-fx-normal-up 0.85s cubic-bezier(0.2, 1.2, 0.3, 1) both; }
html.home-fx-loading.home-fx-level-normal .jdc-cloud-road-cert-wrap.home-fx-section-in .jdc-main-certification-item:nth-child(1) { animation-delay: 0.06s; }
html.home-fx-loading.home-fx-level-normal .jdc-cloud-road-cert-wrap.home-fx-section-in .jdc-main-certification-item:nth-child(2) { animation-delay: 0.12s; }
html.home-fx-loading.home-fx-level-normal .jdc-cloud-road-cert-wrap.home-fx-section-in .jdc-main-certification-item:nth-child(3) { animation-delay: 0.18s; }
html.home-fx-loading.home-fx-level-normal .jdc-cloud-road-cert-wrap.home-fx-section-in .jdc-main-certification-item:nth-child(4) { animation-delay: 0.24s; }
html.home-fx-loading.home-fx-level-normal .jdc-cloud-road-cert-wrap.home-fx-section-in .jdc-main-certification-item:nth-child(n+5) { animation-delay: 0.3s; }

html.home-fx-loading.home-fx-level-normal .tpm-portal-developer__section.home-fx-section-in .tpm-portal-section__hd { animation: home-fx-normal-right 0.85s cubic-bezier(0.2, 1.15, 0.3, 1) both; }
html.home-fx-loading.home-fx-level-normal .tpm-portal-developer__section.home-fx-section-in .tpm-portal-developer__swiper { animation: home-fx-normal-left 0.95s cubic-bezier(0.2, 1.15, 0.3, 1) 0.06s both; }
html.home-fx-loading.home-fx-level-normal .tpm-portal-developer__section.home-fx-section-in .tpm-portal-developer__item { animation: home-fx-normal-right 0.85s cubic-bezier(0.2, 1.15, 0.3, 1) both; }
html.home-fx-loading.home-fx-level-normal .tpm-portal-developer__section.home-fx-section-in .tpm-portal-developer__item:nth-child(1) { animation-delay: 0.12s; }
html.home-fx-loading.home-fx-level-normal .tpm-portal-developer__section.home-fx-section-in .tpm-portal-developer__item:nth-child(2) { animation-delay: 0.2s; }
html.home-fx-loading.home-fx-level-normal .tpm-portal-developer__section.home-fx-section-in .tpm-portal-developer__item:nth-child(3) { animation-delay: 0.28s; }
html.home-fx-loading.home-fx-level-normal .tpm-portal-developer__section.home-fx-section-in .tpm-portal-developer__item:nth-child(n+4) { animation-delay: 0.36s; }

html.home-fx-loading.home-fx-level-normal .tpm-portal-trust__section.home-fx-section-in .tpm-portal-section__hd { animation: home-fx-normal-down 0.9s cubic-bezier(0.2, 1.15, 0.3, 1) both; }
html.home-fx-loading.home-fx-level-normal .tpm-portal-trust__section.home-fx-section-in .tpm-portal-trust { animation: home-fx-normal-zoom 0.95s cubic-bezier(0.2, 1.2, 0.3, 1) 0.08s both; }

html.home-fx-loading.home-fx-level-normal .jdc-cloud-road-banner.home-fx-section-in .jdc-cloud-road-banner-main { animation: home-fx-normal-left 0.95s cubic-bezier(0.2, 1.15, 0.3, 1) both; }
html.home-fx-loading.home-fx-level-normal .jdc-cloud-road-banner.home-fx-section-in .jdc-cloud-road-banner-btn { animation: home-fx-normal-right 0.95s cubic-bezier(0.2, 1.2, 0.3, 1) 0.1s both; }

html.home-fx-loading.home-fx-level-normal .elevator-floor.home-fx-section-done .tpm-portal-section__hd,
html.home-fx-loading.home-fx-level-normal .elevator-floor.home-fx-section-done .tpm-portal-infrastructure__item,
html.home-fx-loading.home-fx-level-normal .elevator-floor.home-fx-section-done .tpm-portal-infrastructure__globe-stage,
html.home-fx-loading.home-fx-level-normal .elevator-floor.home-fx-section-done .jdc-main-certification-title,
html.home-fx-loading.home-fx-level-normal .elevator-floor.home-fx-section-done .jdc-main-certification-item,
html.home-fx-loading.home-fx-level-normal .elevator-floor.home-fx-section-done .tpm-portal-developer__swiper,
html.home-fx-loading.home-fx-level-normal .elevator-floor.home-fx-section-done .tpm-portal-developer__item,
html.home-fx-loading.home-fx-level-normal .elevator-floor.home-fx-section-done .tpm-portal-trust,
html.home-fx-loading.home-fx-level-normal .elevator-floor.home-fx-section-done .jdc-cloud-road-banner-main,
html.home-fx-loading.home-fx-level-normal .elevator-floor.home-fx-section-done .jdc-cloud-road-banner-btn {
  animation: none !important; opacity: 1 !important; transform: none !important;
}

@keyframes home-fx-light-fade {
  0% { opacity: 0; transform: translate3d(0, 20px, 0); }
  100% { opacity: 1; transform: translate3d(0, 0, 0); }
}
@keyframes home-fx-normal-down {
  0% { opacity: 0; transform: translate3d(0, -28vh, 0); }
  100% { opacity: 1; transform: translate3d(0, 0, 0); }
}
@keyframes home-fx-normal-up {
  0% { opacity: 0; transform: translate3d(0, 36px, 0) scale(0.96); }
  100% { opacity: 1; transform: translate3d(0, 0, 0) scale(1); }
}
@keyframes home-fx-normal-left {
  0% { opacity: 0; transform: translate3d(-32vw, 12px, 0); }
  100% { opacity: 1; transform: translate3d(0, 0, 0); }
}
@keyframes home-fx-normal-right {
  0% { opacity: 0; transform: translate3d(32vw, 12px, 0); }
  100% { opacity: 1; transform: translate3d(0, 0, 0); }
}
@keyframes home-fx-normal-zoom {
  0% { opacity: 0; transform: scale(0.88); }
  100% { opacity: 1; transform: scale(1); }
}
