/*
 * Portal v36 - single, final layout layer.
 *
 * Previous portal iterations intentionally remain available for rollback, but
 * this file is loaded last and owns all layout geometry for the five-module
 * landing page.  Keep transforms visual only: rail centring in app.js always
 * uses the cards' unscaled layout coordinates.
 */

:root {
  --portal-ink: #123f70;
  --portal-ink-soft: #46729d;
  --portal-cyan: #00accb;
  --portal-cyan-deep: #007fae;
  --portal-surface: rgba(255, 255, 255, 0.90);
  --portal-surface-alt: rgba(243, 249, 253, 0.94);
  --portal-line: rgba(22, 129, 190, 0.22);
  --portal-shadow: 0 18px 44px rgba(19, 75, 117, 0.14);
  --portal-rail-card: clamp(385px, 28vw, 468px);
  --portal-rail-height: clamp(470px, 51svh, 540px);
}

/* The portal is a normal document section: at lower heights the browser can
 * scroll it instead of clipping the rail or forcing a 100dvh canvas. */
body[data-view="platform"],
body[data-view="platform"] #appShell,
body[data-view="platform"] .workspace {
  height: auto !important;
  min-height: 100% !important;
  overflow: visible !important;
}

body[data-view="platform"] .workspace {
  display: block !important;
  background: transparent !important;
}

body[data-view="platform"] .workspace > .page-view:not(#platformView),
body[data-view="platform"] #analyticsView,
body[data-view]:not([data-view="platform"]) #platformView {
  display: none !important;
}

body[data-view="platform"] #platformView.platform-portal:not(.hidden) {
  display: block !important;
}

#platformView.platform-portal.portal-inactive {
  display: none !important;
}

#platformView.platform-portal {
  position: relative !important;
  isolation: isolate;
  width: 100% !important;
  min-height: 100% !important;
  height: auto !important;
  overflow: visible !important;
  margin: 0 !important;
  padding: clamp(18px, 2.4vw, 46px) clamp(22px, 4vw, 84px) clamp(28px, 3vw, 56px) !important;
  color: var(--portal-ink) !important;
  background-color: #eaf5fb !important;
  background-image:
    linear-gradient(112deg, rgba(247, 252, 255, 0.92) 0%, rgba(237, 248, 253, 0.90) 44%, rgba(218, 240, 250, 0.88) 100%),
    url("/figure/首页背景图.jpg") !important;
  background-repeat: no-repeat !important;
  background-position: center center !important;
  background-size: cover !important;
}

body.ui-modern #platformView.platform-portal {
  --portal-ink: #f3fbff;
  --portal-ink-soft: #b5d6e9;
  --portal-cyan: #31d5e9;
  --portal-cyan-deep: #12a9cc;
  --portal-surface: rgba(7, 47, 88, 0.76);
  --portal-surface-alt: rgba(8, 56, 98, 0.84);
  --portal-line: rgba(114, 221, 242, 0.34);
  --portal-shadow: 0 22px 54px rgba(0, 10, 29, 0.28);
  color: #f3fbff !important;
  background-color: #021b35 !important;
  background-image:
    linear-gradient(108deg, rgba(1, 23, 46, 0.90) 0%, rgba(4, 42, 78, 0.85) 50%, rgba(5, 43, 75, 0.82) 100%),
    url("/figure/首页背景图.jpg") !important;
}

/* Remove the previous portal header/summary variants: this page has one
 * transparent top bar, a hero and a rail. */
#platformView .portal-header {
  display: block !important;
  width: 100% !important;
  min-height: 0 !important;
  margin: 0 0 clamp(22px, 3vh, 42px) !important;
  padding: 0 !important;
  border: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
}

#platformView .portal-brand,
#platformView .portal-header-actions,
#platformView .portal-summary-grid,
#platformView .portal-showcase-copy > .portal-showcase-title {
  display: none !important;
}

#platformView .portal-modern-topbar {
  display: grid !important;
  grid-template-columns: minmax(250px, 1fr) minmax(500px, 1.55fr) minmax(190px, 0.7fr) !important;
  align-items: center !important;
  gap: clamp(14px, 2vw, 36px) !important;
  width: 100% !important;
  min-height: clamp(74px, 7.4vw, 104px) !important;
  padding: clamp(9px, 1.1vw, 16px) 0 !important;
  border: 0 !important;
  border-radius: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
}

#platformView .portal-modern-brand {
  display: flex !important;
  align-items: center !important;
  justify-content: flex-start !important;
  min-width: 0 !important;
  min-height: clamp(58px, 5.7vw, 82px) !important;
  padding: 0 !important;
  border: 0 !important;
  border-radius: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
}

#platformView .portal-modern-brand img {
  display: block !important;
  width: clamp(255px, 18.8vw, 370px) !important;
  max-width: 100% !important;
  height: auto !important;
  object-fit: contain !important;
  background: transparent !important;
  filter: drop-shadow(0 1px 1px rgba(255, 255, 255, 0.70)) drop-shadow(0 3px 8px rgba(1, 34, 67, 0.22)) !important;
}

body.ui-modern #platformView .portal-modern-brand img {
  /* Do not invert or place the transparent logo on a white tile. */
  filter: drop-shadow(0 1px 1px rgba(255, 255, 255, 0.72)) drop-shadow(0 3px 10px rgba(0, 0, 0, 0.42)) !important;
}

#platformView .portal-modern-module-nav {
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  gap: clamp(17px, 2.4vw, 46px) !important;
  min-width: 0 !important;
  height: 100% !important;
}

#platformView .portal-modern-module-nav button,
#platformView .portal-modern-action,
#platformView .portal-modern-actions > button {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  min-height: clamp(42px, 4.1vw, 54px) !important;
  margin: 0 !important;
  padding: 0 clamp(5px, 0.55vw, 11px) !important;
  border: 0 !important;
  border-radius: 0 !important;
  color: var(--portal-ink) !important;
  background: transparent !important;
  box-shadow: none !important;
  font-size: clamp(16px, 1.18vw, 22px) !important;
  font-weight: 800 !important;
  line-height: 1 !important;
  text-decoration: none !important;
  white-space: nowrap !important;
  cursor: pointer !important;
}

#platformView .portal-modern-module-nav button {
  position: relative !important;
}

#platformView .portal-modern-module-nav button::after {
  position: absolute;
  right: 19%;
  bottom: clamp(2px, 0.35vw, 5px);
  left: 19%;
  height: 3px;
  border-radius: 999px;
  background: var(--portal-cyan);
  content: "";
  opacity: 0;
  transform: scaleX(0.35);
  transition: opacity 180ms ease, transform 180ms ease;
}

#platformView .portal-modern-module-nav button:hover::after,
#platformView .portal-modern-module-nav button.active::after {
  opacity: 1;
  transform: scaleX(1);
}

#platformView .portal-modern-actions {
  display: flex !important;
  align-items: center !important;
  justify-content: flex-end !important;
  gap: clamp(8px, 1vw, 18px) !important;
  min-width: 0 !important;
  height: 100% !important;
}

#platformView .portal-modern-actions > button:hover,
#platformView .portal-modern-action:hover {
  color: var(--portal-cyan-deep) !important;
  transform: translateY(-1px);
}

body:not(.ui-modern) #platformView [data-portal-ui="classic"],
body.ui-modern #platformView [data-portal-ui="modern"] {
  display: none !important;
}

/* Main visual: exactly two aligned columns and the rail on the next row. */
#platformView .portal-module-showcase {
  display: grid !important;
  grid-template-columns: minmax(510px, 1fr) minmax(510px, 0.98fr) !important;
  grid-template-areas:
    "copy intro"
    "rail rail" !important;
  align-items: center !important;
  column-gap: clamp(68px, 8.8vw, 190px) !important;
  row-gap: clamp(24px, 3.5vh, 46px) !important;
  width: 100% !important;
  min-height: 0 !important;
  margin: 0 !important;
  padding: 0 !important;
  overflow: visible !important;
  background: transparent !important;
  border: 0 !important;
  box-shadow: none !important;
}

#platformView .portal-showcase-copy {
  grid-area: copy !important;
  display: flex !important;
  min-width: 0 !important;
  min-height: clamp(280px, 34svh, 400px) !important;
  padding: clamp(10px, 2vw, 30px) 0 !important;
  align-items: center !important;
  justify-content: center !important;
}

#platformView .portal-modern-hero-copy {
  width: 100% !important;
  max-width: clamp(520px, 42vw, 740px) !important;
  padding-left: clamp(4px, 3vw, 56px) !important;
  color: var(--portal-ink) !important;
}

#platformView .portal-modern-hero-copy > span {
  display: block !important;
  margin: 0 0 clamp(12px, 1.5vw, 22px) !important;
  color: var(--portal-cyan-deep) !important;
  font-family: KaiTi, STKaiti, "Microsoft YaHei", serif !important;
  font-size: clamp(30px, 2.8vw, 54px) !important;
  font-weight: 700 !important;
  line-height: 1.15 !important;
  letter-spacing: 0.08em !important;
  white-space: nowrap !important;
}

#platformView .portal-modern-hero-copy h3 {
  display: block !important;
  margin: 0 !important;
  color: var(--portal-ink) !important;
  font-family: "Microsoft YaHei", "PingFang SC", sans-serif !important;
  font-size: clamp(48px, 4.3vw, 80px) !important;
  font-weight: 900 !important;
  line-height: 1.05 !important;
  letter-spacing: -0.055em !important;
  text-shadow: 0 10px 24px rgba(9, 90, 142, 0.12) !important;
  white-space: nowrap !important;
}

#platformView .portal-modern-hero-copy p {
  max-width: 700px !important;
  margin: clamp(20px, 2.2vw, 34px) 0 0 !important;
  color: var(--portal-ink-soft) !important;
  font-size: clamp(15px, 1.06vw, 20px) !important;
  font-weight: 800 !important;
  line-height: 1.55 !important;
  letter-spacing: 0.15em !important;
}

#platformView .portal-intro-stage {
  grid-area: intro !important;
  position: relative !important;
  display: flex !important;
  width: 100% !important;
  min-width: 0 !important;
  min-height: clamp(280px, 34svh, 400px) !important;
  align-items: center !important;
  justify-content: center !important;
  overflow: visible !important;
}

#platformView .portal-module-intro {
  position: relative !important;
  width: min(100%, 690px) !important;
  min-width: min(100%, 480px) !important;
  min-height: clamp(270px, 30svh, 370px) !important;
  margin: 0 !important;
  padding: clamp(28px, 3vw, 52px) clamp(30px, 3.4vw, 58px) !important;
  overflow: hidden !important;
  color: var(--portal-ink) !important;
  border: 1px solid var(--portal-line) !important;
  border-radius: clamp(22px, 2vw, 34px) !important;
  background: var(--portal-surface) !important;
  box-shadow: var(--portal-shadow) !important;
  backdrop-filter: blur(10px) !important;
}

#platformView .portal-intro-heading {
  display: grid !important;
  grid-template-columns: clamp(74px, 7vw, 116px) minmax(0, 1fr) !important;
  align-items: center !important;
  gap: clamp(14px, 1.8vw, 28px) !important;
  width: 100% !important;
}

#platformView .portal-intro-index {
  display: block !important;
  color: var(--portal-cyan-deep) !important;
  font-size: clamp(70px, 7.2vw, 122px) !important;
  font-weight: 900 !important;
  line-height: 0.82 !important;
  letter-spacing: -0.08em !important;
  white-space: nowrap !important;
}

#platformView .portal-intro-title-group {
  min-width: 0 !important;
}

#platformView .portal-intro-title {
  display: block !important;
  overflow: hidden !important;
  margin: 0 !important;
  color: var(--portal-ink) !important;
  font-size: clamp(28px, 2.45vw, 45px) !important;
  font-weight: 900 !important;
  line-height: 1.14 !important;
  letter-spacing: -0.035em !important;
  text-overflow: ellipsis !important;
  white-space: nowrap !important;
  word-break: keep-all !important;
  overflow-wrap: normal !important;
}

#platformView .portal-intro-subtitle {
  display: block !important;
  overflow: hidden !important;
  margin-top: clamp(7px, 0.8vw, 12px) !important;
  color: var(--portal-cyan-deep) !important;
  font-size: clamp(16px, 1.25vw, 23px) !important;
  font-weight: 800 !important;
  line-height: 1.28 !important;
  text-overflow: ellipsis !important;
  white-space: nowrap !important;
  word-break: keep-all !important;
}

#platformView .portal-intro-description {
  display: block !important;
  min-height: 0 !important;
  margin: clamp(22px, 2.2vw, 32px) 0 clamp(20px, 2.1vw, 30px) !important;
  color: var(--portal-ink-soft) !important;
  font-size: clamp(17px, 1.25vw, 22px) !important;
  font-weight: 500 !important;
  line-height: 1.78 !important;
  word-break: normal !important;
  overflow-wrap: break-word !important;
}

#platformView .portal-intro-enter,
#platformView .module-open {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  min-height: clamp(42px, 3.4vw, 54px) !important;
  margin: 0 !important;
  padding: 0 clamp(20px, 1.7vw, 32px) !important;
  border: 1px solid rgba(255, 255, 255, 0.56) !important;
  border-radius: 12px !important;
  color: #fff !important;
  background: linear-gradient(105deg, #1689d5, #08bdd0) !important;
  box-shadow: 0 10px 22px rgba(0, 136, 191, 0.23) !important;
  font-size: clamp(16px, 1.2vw, 20px) !important;
  font-weight: 800 !important;
  line-height: 1 !important;
  text-decoration: none !important;
  white-space: nowrap !important;
  cursor: pointer !important;
}

#platformView .portal-intro-enter:hover,
#platformView .module-open:hover {
  transform: translateY(-2px) !important;
  box-shadow: 0 14px 28px rgba(0, 136, 191, 0.30) !important;
}

/* Intro arrows live in invisible edge hot zones and only reveal their chevron
 * when the operator intentionally approaches the edge. */
#platformView .portal-rail-edge {
  position: absolute !important;
  z-index: 4 !important;
  top: 0 !important;
  bottom: 0 !important;
  display: flex !important;
  width: clamp(34px, 4.5vw, 66px) !important;
  align-items: center !important;
  justify-content: center !important;
  padding: 0 !important;
  border: 0 !important;
  border-radius: 0 !important;
  color: var(--portal-cyan-deep) !important;
  background: transparent !important;
  opacity: 0 !important;
  transition: opacity 180ms ease, background 180ms ease !important;
  cursor: pointer !important;
}

#platformView .portal-rail-edge span {
  display: inline-flex !important;
  width: clamp(30px, 3.2vw, 44px) !important;
  height: clamp(30px, 3.2vw, 44px) !important;
  align-items: center !important;
  justify-content: center !important;
  border: 1px solid var(--portal-line) !important;
  border-radius: 50% !important;
  background: var(--portal-surface) !important;
  box-shadow: 0 8px 18px rgba(0, 72, 124, 0.16) !important;
  font-size: clamp(14px, 1.4vw, 19px) !important;
}

#platformView .portal-rail-edge-prev { left: calc(clamp(34px, 4.5vw, 66px) * -0.72) !important; }
#platformView .portal-rail-edge-next { right: calc(clamp(34px, 4.5vw, 66px) * -0.72) !important; }
#platformView .portal-intro-stage:hover .portal-rail-edge,
#platformView .portal-rail-edge:focus-visible { opacity: 1 !important; }

/* Arc rail.  Its scrollbars are functional but intentionally not visual. */
#platformView .portal-module-rail {
  grid-area: rail !important;
  display: flex !important;
  width: 100% !important;
  min-height: var(--portal-rail-height) !important;
  height: var(--portal-rail-height) !important;
  margin: 0 !important;
  padding-top: clamp(22px, 2.5vh, 34px) !important;
  padding-bottom: clamp(10px, 1.6vh, 20px) !important;
  align-items: flex-end !important;
  gap: clamp(20px, 2.3vw, 40px) !important;
  overflow-x: auto !important;
  overflow-y: visible !important;
  overscroll-behavior-x: contain;
  scroll-behavior: smooth;
  scrollbar-width: none !important;
  -ms-overflow-style: none !important;
  cursor: grab !important;
  background: transparent !important;
  border: 0 !important;
  box-shadow: none !important;
  touch-action: pan-x !important;
}

#platformView .portal-module-rail::-webkit-scrollbar { display: none !important; width: 0 !important; height: 0 !important; }
#platformView .portal-module-rail.is-dragging { cursor: grabbing !important; scroll-behavior: auto !important; }

#platformView .platform-module-card {
  position: relative !important;
  z-index: 1 !important;
  display: flex !important;
  flex: 0 0 var(--portal-rail-card) !important;
  width: var(--portal-rail-card) !important;
  height: clamp(410px, 45svh, 468px) !important;
  min-height: 410px !important;
  margin: 0 !important;
  padding: clamp(18px, 1.6vw, 26px) !important;
  overflow: visible !important;
  color: var(--portal-ink) !important;
  border: 1px solid var(--portal-line) !important;
  border-radius: clamp(18px, 1.65vw, 26px) !important;
  background: var(--portal-surface) !important;
  box-shadow: 0 14px 30px rgba(22, 83, 125, 0.12) !important;
  transform: translate3d(0, 30px, 0) scale(0.88) !important;
  transform-origin: center bottom !important;
  transition: transform 340ms cubic-bezier(.2,.8,.2,1), opacity 260ms ease, box-shadow 260ms ease, border-color 260ms ease !important;
  opacity: 0.78 !important;
  cursor: pointer !important;
}

#platformView .platform-module-card.portal-rail-near {
  z-index: 2 !important;
  transform: translate3d(0, 12px, 0) scale(0.94) !important;
  opacity: 0.92 !important;
}

#platformView .platform-module-card.portal-rail-active,
#platformView .platform-module-card.active {
  z-index: 4 !important;
  transform: translate3d(0, -12px, 0) scale(1.02) !important;
  border-color: var(--portal-cyan) !important;
  box-shadow: 0 20px 42px rgba(0, 139, 191, 0.24) !important;
  opacity: 1 !important;
}

#platformView .platform-module-card.portal-rail-far {
  opacity: 0.64 !important;
}

#platformView .platform-module-card:focus-visible {
  outline: 3px solid rgba(0, 184, 208, 0.42) !important;
  outline-offset: 4px !important;
}

#platformView .module-card-head {
  display: grid !important;
  grid-template-columns: auto minmax(0, 1fr) auto !important;
  align-items: center !important;
  gap: clamp(9px, 1vw, 15px) !important;
  min-height: clamp(46px, 4.3vw, 56px) !important;
  margin: 0 0 clamp(16px, 1.8vw, 24px) !important;
  padding: 0 0 clamp(12px, 1.2vw, 16px) !important;
  border-bottom: 1px solid var(--portal-line) !important;
}

#platformView .module-icon {
  display: inline-flex !important;
  width: clamp(38px, 3.3vw, 48px) !important;
  height: clamp(38px, 3.3vw, 48px) !important;
  align-items: center !important;
  justify-content: center !important;
  color: #fff !important;
  border-radius: 10px !important;
  background: linear-gradient(135deg, #1986d7, #10b7c9) !important;
  font-size: clamp(13px, 1vw, 16px) !important;
  font-weight: 800 !important;
  line-height: 1 !important;
  white-space: nowrap !important;
}

#platformView .platform-module-card.review .module-icon { background: linear-gradient(135deg, #26ad90, #20c8a5) !important; }
#platformView .platform-module-card.learning .module-icon { background: linear-gradient(135deg, #ecaa23, #ffd161) !important; }
#platformView .platform-module-card.handover .module-icon { background: linear-gradient(135deg, #f17b39, #f4a25d) !important; }
#platformView .platform-module-card.platform-data .module-icon { background: linear-gradient(135deg, #3879dd, #65a3ef) !important; }

#platformView .module-card-head h3 {
  display: block !important;
  min-width: 0 !important;
  margin: 0 !important;
  padding: 0 !important;
  color: var(--portal-ink) !important;
  font-size: clamp(19px, 1.48vw, 27px) !important;
  font-weight: 900 !important;
  line-height: 1.14 !important;
  white-space: nowrap !important;
}

#platformView .module-card-title {
  display: block !important;
  overflow: hidden !important;
  text-overflow: ellipsis !important;
  white-space: nowrap !important;
}

#platformView .module-open {
  min-height: 0 !important;
  padding: 0 !important;
  border: 0 !important;
  border-radius: 0 !important;
  color: var(--portal-cyan-deep) !important;
  background: transparent !important;
  box-shadow: none !important;
  font-size: clamp(14px, 1.05vw, 18px) !important;
  font-weight: 900 !important;
  line-height: 1 !important;
}

#platformView .module-open:hover {
  color: var(--portal-cyan) !important;
  transform: translateX(2px) !important;
  box-shadow: none !important;
}

#platformView .platform-module-card .weui-cells {
  display: flex !important;
  flex: 1 1 auto !important;
  flex-direction: column !important;
  gap: clamp(7px, 0.75vw, 11px) !important;
  min-height: 0 !important;
  margin: 0 !important;
  padding: 0 !important;
  overflow: visible !important;
  border: 0 !important;
  background: transparent !important;
}

#platformView .platform-module-card .weui-cells::before,
#platformView .platform-module-card .weui-cells::after,
#platformView .platform-module-card .weui-cell::before,
#platformView .platform-module-card .weui-cell::after {
  display: none !important;
  content: none !important;
}

#platformView .platform-module-card .weui-cell {
  position: relative !important;
  display: flex !important;
  min-height: clamp(31px, 2.55vw, 39px) !important;
  margin: 0 !important;
  padding: clamp(5px, 0.5vw, 8px) clamp(10px, 1vw, 16px) clamp(5px, 0.5vw, 8px) clamp(25px, 2.2vw, 33px) !important;
  align-items: center !important;
  color: var(--portal-ink-soft) !important;
  border: 0 !important;
  border-radius: 8px !important;
  background: rgba(93, 151, 191, 0.055) !important;
  font-size: clamp(15px, 1.08vw, 19px) !important;
  font-weight: 700 !important;
  line-height: 1.28 !important;
  list-style: none !important;
  cursor: pointer !important;
  transition: color 180ms ease, background 180ms ease, transform 180ms ease !important;
}

#platformView .platform-module-card .weui-cell:nth-child(even) {
  background: rgba(93, 151, 191, 0.11) !important;
}

#platformView .platform-module-card .weui-cell::before {
  position: absolute !important;
  top: 50% !important;
  left: clamp(11px, 1vw, 15px) !important;
  display: block !important;
  width: 6px !important;
  height: 6px !important;
  min-height: 0 !important;
  margin: 0 !important;
  padding: 0 !important;
  border: 0 !important;
  border-radius: 50% !important;
  background: rgba(42, 64, 79, 0.72) !important;
  content: "" !important;
  transform: translateY(-50%) !important;
}

#platformView .platform-module-card .weui-cell:hover,
#platformView .platform-module-card .weui-cell:focus-visible {
  color: var(--portal-cyan-deep) !important;
  background: rgba(8, 177, 202, 0.13) !important;
  outline: none !important;
  transform: translateX(3px) !important;
}

body.ui-modern #platformView .platform-module-card .weui-cell::before {
  background: rgba(236, 249, 255, 0.75) !important;
}

/* This remains the only indicator for previous/next module on the rail. */
#platformView .portal-module-showcase > .portal-rail-edge,
#platformView .portal-module-rail::before,
#platformView .portal-module-rail::after,
#platformView .portal-rail-scrollbar,
#platformView .portal-rail-hint {
  display: none !important;
}

/* It is safer to reduce movement than hide information when an operator uses
 * the operating-system motion preference. */
@media (prefers-reduced-motion: reduce) {
  #platformView .platform-module-card,
  #platformView .portal-rail-edge,
  #platformView .portal-modern-module-nav button::after,
  #platformView .platform-module-card .weui-cell {
    transition: none !important;
  }
}

@media (max-width: 1180px) {
  #platformView .portal-modern-topbar {
    grid-template-columns: minmax(220px, 0.9fr) minmax(430px, 1.5fr) minmax(160px, 0.6fr) !important;
    gap: 14px !important;
  }
  #platformView .portal-modern-brand img { width: clamp(220px, 19vw, 300px) !important; }
  #platformView .portal-module-showcase {
    grid-template-columns: minmax(460px, 1fr) minmax(460px, 0.94fr) !important;
    column-gap: clamp(44px, 5.5vw, 78px) !important;
  }
  #platformView .portal-modern-hero-copy h3 { font-size: clamp(43px, 4.1vw, 64px) !important; }
}

@media (max-width: 1020px) {
  #platformView.platform-portal { padding-inline: 24px !important; }
  #platformView .portal-modern-topbar {
    grid-template-columns: 1fr auto !important;
    grid-template-areas: "brand actions" "nav nav" !important;
    row-gap: 8px !important;
  }
  #platformView .portal-modern-brand { grid-area: brand !important; }
  #platformView .portal-modern-actions { grid-area: actions !important; }
  #platformView .portal-modern-module-nav { grid-area: nav !important; justify-content: space-between !important; }
  #platformView .portal-module-showcase {
    grid-template-columns: minmax(0, 1fr) !important;
    grid-template-areas: "copy" "intro" "rail" !important;
    row-gap: 28px !important;
  }
  #platformView .portal-showcase-copy,
  #platformView .portal-intro-stage { min-height: auto !important; }
  #platformView .portal-modern-hero-copy { max-width: 100% !important; padding-left: 0 !important; }
  #platformView .portal-module-intro { width: 100% !important; }
}

@media (max-width: 680px) {
  #platformView.platform-portal { padding-inline: 16px !important; }
  #platformView .portal-modern-brand img { width: min(72vw, 270px) !important; }
  #platformView .portal-modern-actions { gap: 4px !important; }
  #platformView .portal-modern-actions > button,
  #platformView .portal-modern-action { font-size: 14px !important; }
  #platformView .portal-modern-module-nav { gap: 8px !important; overflow-x: auto !important; justify-content: flex-start !important; }
  #platformView .portal-modern-module-nav button { font-size: 15px !important; }
  #platformView .portal-modern-hero-copy h3 { font-size: clamp(38px, 10vw, 58px) !important; white-space: normal !important; }
  #platformView .portal-modern-hero-copy > span { font-size: clamp(24px, 7vw, 38px) !important; }
  #platformView .portal-intro-heading { grid-template-columns: 72px minmax(0, 1fr) !important; }
  #platformView .portal-intro-title { font-size: 27px !important; }
  #platformView .portal-rail-edge-prev { left: -18px !important; }
  #platformView .portal-rail-edge-next { right: -18px !important; }
}

/* v38 layout correction ---------------------------------------------------
 * This is deliberately the final portal layer.  It replaces the earlier
 * tall rail geometry with a compact, document-flow layout so browser zoom
 * never cuts off either the hero or a module card. */
:root {
  --portal-rail-card: clamp(402px, 29vw, 508px);
  --portal-rail-height: clamp(382px, 42svh, 462px);
}

#platformView.platform-portal {
  min-height: min-content !important;
  padding-bottom: clamp(24px, 3.2vw, 52px) !important;
  background-image:
    linear-gradient(112deg, rgba(249, 253, 255, 0.955) 0%, rgba(240, 249, 253, 0.94) 46%, rgba(224, 243, 251, 0.925) 100%),
    url("/figure/首页背景图.jpg") !important;
}

body.ui-modern #platformView.platform-portal {
  background-image:
    linear-gradient(108deg, rgba(1, 23, 46, 0.94) 0%, rgba(4, 42, 78, 0.90) 50%, rgba(5, 43, 75, 0.875) 100%),
    url("/figure/首页背景图.jpg") !important;
}

#platformView .portal-modern-topbar {
  grid-template-columns: minmax(315px, 0.92fr) minmax(560px, 1.55fr) minmax(210px, 0.6fr) !important;
  min-height: clamp(78px, 7.4vw, 108px) !important;
}

#platformView .portal-modern-brand,
#platformView .portal-modern-brand img {
  overflow: visible !important;
}

#platformView .portal-modern-brand img {
  width: clamp(280px, 20vw, 410px) !important;
  filter: drop-shadow(0 1px 1px rgba(255, 255, 255, 0.88)) drop-shadow(0 3px 8px rgba(1, 34, 67, 0.18)) !important;
}

/* The portal uses a text-only organisation lockup. */
body.ui-modern #platformView .portal-modern-brand {
  position: relative !important;
  width: auto !important;
  aspect-ratio: auto !important;
}

body.ui-modern #platformView .portal-modern-brand::after {
  content: none !important;
  display: none !important;
}

#platformView .portal-modern-module-nav button,
#platformView .portal-modern-action,
#platformView .portal-modern-actions > button {
  min-height: clamp(48px, 4.4vw, 58px) !important;
  font-size: clamp(17px, 1.22vw, 23px) !important;
}

#platformView .portal-module-showcase {
  grid-template-columns: minmax(480px, 0.93fr) minmax(550px, 1.07fr) !important;
  column-gap: clamp(78px, 10vw, 215px) !important;
  row-gap: clamp(14px, 2.2vh, 30px) !important;
}

#platformView .portal-showcase-copy,
#platformView .portal-intro-stage {
  min-height: clamp(232px, 28svh, 310px) !important;
}

#platformView .portal-modern-hero-copy {
  max-width: clamp(540px, 39vw, 720px) !important;
  padding-left: clamp(18px, 4.2vw, 82px) !important;
}

#platformView .portal-modern-hero-copy > span {
  margin-bottom: clamp(9px, 1vw, 16px) !important;
  font-size: clamp(34px, 3vw, 56px) !important;
}

#platformView .portal-modern-hero-copy h3 {
  font-size: clamp(54px, 4.55vw, 84px) !important;
  letter-spacing: -0.065em !important;
}

#platformView .portal-modern-hero-copy p {
  margin-top: clamp(14px, 1.6vw, 24px) !important;
  font-size: clamp(16px, 1.1vw, 20px) !important;
}

#platformView .portal-module-intro {
  width: min(100%, 720px) !important;
  min-width: min(100%, 540px) !important;
  min-height: clamp(232px, 27svh, 304px) !important;
  padding: clamp(25px, 2.5vw, 42px) clamp(30px, 3vw, 52px) !important;
  overflow: visible !important;
}

#platformView .portal-intro-heading {
  grid-template-columns: clamp(70px, 5.8vw, 96px) minmax(0, 1fr) !important;
  gap: clamp(14px, 1.6vw, 24px) !important;
  writing-mode: horizontal-tb !important;
}

#platformView .portal-intro-index {
  font-size: clamp(70px, 6.2vw, 104px) !important;
  writing-mode: horizontal-tb !important;
}

#platformView .portal-intro-title-group,
#platformView .portal-intro-title,
#platformView .portal-intro-subtitle,
#platformView .portal-intro-description {
  min-width: 0 !important;
  max-width: 100% !important;
  writing-mode: horizontal-tb !important;
  text-orientation: mixed !important;
  word-break: keep-all !important;
  overflow-wrap: normal !important;
}

#platformView .portal-intro-title {
  font-size: clamp(29px, 2.3vw, 42px) !important;
  line-height: 1.15 !important;
  white-space: nowrap !important;
}

#platformView .portal-intro-subtitle {
  font-size: clamp(16px, 1.18vw, 21px) !important;
  white-space: nowrap !important;
}

#platformView .portal-intro-description {
  margin: clamp(13px, 1.4vw, 20px) 0 clamp(15px, 1.5vw, 22px) !important;
  font-size: clamp(16px, 1.08vw, 20px) !important;
  line-height: 1.62 !important;
}

#platformView .portal-module-rail {
  min-height: var(--portal-rail-height) !important;
  height: var(--portal-rail-height) !important;
  padding-top: clamp(16px, 1.9vh, 24px) !important;
  padding-bottom: clamp(8px, 1.2vh, 14px) !important;
  gap: clamp(16px, 1.8vw, 30px) !important;
}

#platformView .platform-module-card {
  height: clamp(356px, 38svh, 422px) !important;
  min-height: clamp(356px, 38svh, 422px) !important;
  padding: clamp(16px, 1.35vw, 22px) !important;
  transform: translate3d(0, 24px, 0) scale(0.88) !important;
}

#platformView .platform-module-card.portal-rail-near {
  transform: translate3d(0, 9px, 0) scale(0.945) !important;
}

#platformView .platform-module-card.portal-rail-active,
#platformView .platform-module-card.active {
  transform: translate3d(0, -7px, 0) scale(1.02) !important;
}

#platformView .module-card-head {
  min-height: clamp(42px, 3.5vw, 50px) !important;
  margin-bottom: clamp(10px, 1vw, 15px) !important;
  padding-bottom: clamp(9px, 0.85vw, 12px) !important;
  gap: clamp(8px, 0.8vw, 12px) !important;
}

#platformView .module-icon {
  width: clamp(34px, 2.65vw, 42px) !important;
  height: clamp(34px, 2.65vw, 42px) !important;
  border-radius: 9px !important;
  font-size: clamp(12px, 0.9vw, 15px) !important;
}

#platformView .module-card-head h3 {
  font-size: clamp(18px, 1.32vw, 24px) !important;
  line-height: 1.1 !important;
  white-space: nowrap !important;
}

#platformView .module-open {
  align-self: center !important;
  padding: 0 !important;
  font-size: clamp(14px, 1vw, 17px) !important;
  white-space: nowrap !important;
}

#platformView .platform-module-card .weui-cells {
  gap: clamp(5px, 0.55vw, 8px) !important;
}

#platformView .platform-module-card .weui-cell {
  min-height: clamp(28px, 2.15vw, 33px) !important;
  padding: clamp(4px, 0.38vw, 6px) clamp(9px, 0.85vw, 13px) clamp(4px, 0.38vw, 6px) clamp(24px, 1.8vw, 29px) !important;
  border-radius: 7px !important;
  color: var(--portal-ink-soft) !important;
  font-size: clamp(14px, 0.98vw, 17px) !important;
  font-weight: 700 !important;
  line-height: 1.34 !important;
}

#platformView .platform-module-card .weui-cell::before {
  left: clamp(10px, 0.8vw, 13px) !important;
  width: 6px !important;
  height: 6px !important;
  background: rgba(40, 55, 70, 0.82) !important;
}

body.ui-modern #platformView .platform-module-card .weui-cell::before {
  background: rgba(219, 244, 251, 0.82) !important;
}

/* Short screens should scroll the portal document rather than crop the rail. */
@media (max-height: 810px) and (min-width: 1021px) {
  #platformView .portal-module-showcase { row-gap: 18px !important; }
  #platformView .portal-showcase-copy,
  #platformView .portal-intro-stage { min-height: 255px !important; }
  #platformView .portal-module-rail { margin-top: 6px !important; }
}

@media (max-width: 1180px) {
  #platformView .portal-modern-topbar {
    grid-template-columns: minmax(260px, .9fr) minmax(445px, 1.5fr) minmax(165px, .55fr) !important;
  }
  #platformView .portal-module-showcase {
    grid-template-columns: minmax(450px, .92fr) minmax(470px, 1.08fr) !important;
    column-gap: clamp(44px, 6vw, 80px) !important;
  }
  #platformView .portal-modern-hero-copy { padding-left: clamp(8px, 2vw, 30px) !important; }
}

@media (max-width: 1020px) {
  #platformView .portal-module-intro { min-width: 0 !important; }
  #platformView .portal-module-rail { --portal-rail-card: min(78vw, 480px); }
}

/* v39 final geometry: reserve room for seven shortcuts and prevent inherited
   historic vertical-writing/narrow-column rules from resurfacing. */
:root {
  --portal-rail-card: clamp(420px, 30vw, 526px);
  --portal-rail-height: clamp(418px, 47svh, 498px);
}

#platformView .portal-module-intro,
#platformView .portal-module-intro * {
  writing-mode: horizontal-tb !important;
  text-orientation: mixed !important;
  word-break: normal !important;
  overflow-wrap: break-word !important;
}

#platformView .portal-module-showcase {
  grid-template-columns: minmax(500px, 0.92fr) minmax(580px, 1.08fr) !important;
  column-gap: clamp(96px, 9.5vw, 220px) !important;
  align-items: center !important;
}

#platformView .portal-modern-hero-copy {
  max-width: min(45vw, 760px) !important;
}

#platformView .portal-modern-hero-copy > span {
  font-size: clamp(38px, 3.35vw, 64px) !important;
}

#platformView .portal-modern-hero-copy h3 {
  font-size: clamp(62px, 5.15vw, 100px) !important;
  letter-spacing: clamp(-2px, -0.09vw, -0.5px) !important;
}

#platformView .portal-modern-hero-copy p {
  font-size: clamp(16px, 1.05vw, 22px) !important;
  line-height: 1.55 !important;
}

#platformView .portal-module-intro {
  width: min(100%, 810px) !important;
  min-width: 580px !important;
  min-height: clamp(252px, 29svh, 332px) !important;
  padding: clamp(30px, 3vw, 48px) clamp(38px, 4vw, 66px) !important;
  box-sizing: border-box !important;
}

#platformView .portal-intro-heading {
  grid-template-columns: clamp(82px, 7vw, 116px) minmax(0, 1fr) !important;
  align-items: center !important;
}

#platformView .portal-intro-index {
  font-size: clamp(62px, 6vw, 106px) !important;
}

#platformView .portal-intro-title {
  font-size: clamp(31px, 2.7vw, 48px) !important;
  white-space: nowrap !important;
}

#platformView .portal-intro-subtitle {
  font-size: clamp(17px, 1.35vw, 23px) !important;
  white-space: nowrap !important;
}

#platformView .portal-intro-description {
  max-width: 100% !important;
  margin: clamp(17px, 1.8vw, 26px) 0 0 clamp(82px, 7vw, 116px) !important;
  font-size: clamp(16px, 1.22vw, 21px) !important;
  line-height: 1.72 !important;
}

#platformView .portal-intro-enter {
  margin: clamp(22px, 2.2vw, 32px) 0 0 clamp(82px, 7vw, 116px) !important;
}

#platformView .portal-module-rail {
  min-height: var(--portal-rail-height) !important;
  height: var(--portal-rail-height) !important;
  align-items: flex-end !important;
  padding: 24px max(26px, calc((100vw - 1590px) / 2)) 10px !important;
}

#platformView .platform-module-card {
  flex: 0 0 var(--portal-rail-card) !important;
  width: var(--portal-rail-card) !important;
  min-height: clamp(392px, 43svh, 454px) !important;
  height: clamp(392px, 43svh, 454px) !important;
  padding: clamp(18px, 1.6vw, 25px) !important;
}

#platformView .platform-module-card.portal-rail-active,
#platformView .platform-module-card.active {
  transform: translate3d(0, -12px, 0) scale(1.025) !important;
}

#platformView .platform-module-card.portal-rail-near {
  transform: translate3d(0, 1px, 0) scale(.95) !important;
}

#platformView .platform-module-card.portal-rail-far {
  transform: translate3d(0, 15px, 0) scale(.885) !important;
}

#platformView .module-card-head {
  min-height: clamp(46px, 3.5vw, 58px) !important;
  gap: clamp(10px, .9vw, 15px) !important;
}

#platformView .module-card-head h3 {
  min-width: 0 !important;
  font-size: clamp(20px, 1.62vw, 29px) !important;
  line-height: 1.22 !important;
}

#platformView .module-card-title { white-space: nowrap !important; }

#platformView .module-open {
  flex: 0 0 auto !important;
  margin-left: auto !important;
  padding: 7px 0 7px 10px !important;
  white-space: nowrap !important;
  font-size: clamp(14px, 1.02vw, 18px) !important;
}

#platformView .platform-module-card .weui-cells {
  gap: clamp(8px, .75vw, 11px) !important;
  margin-top: clamp(16px, 1.5vw, 22px) !important;
}

#platformView .platform-module-card .weui-cell {
  min-height: clamp(29px, 2.35vw, 38px) !important;
  padding: 0 clamp(12px, 1vw, 17px) 0 clamp(23px, 1.9vw, 30px) !important;
  font-size: clamp(15px, 1.22vw, 20px) !important;
  line-height: 1.3 !important;
}

/* A real, quiet dot - never the old long dash. */
#platformView .platform-module-card .weui-cell::before {
  display: block !important;
  left: clamp(11px, .9vw, 15px) !important;
  top: 50% !important;
  width: 6px !important;
  height: 6px !important;
  border-radius: 50% !important;
  transform: translateY(-50%) !important;
  background: #67798a !important;
  box-shadow: none !important;
}

body.ui-modern #platformView .platform-module-card .weui-cell::before {
  background: rgba(208, 239, 255, .78) !important;
}

@media (max-width: 1360px) {
  #platformView .portal-module-showcase {
    grid-template-columns: minmax(445px, .91fr) minmax(520px, 1.09fr) !important;
    column-gap: clamp(52px, 6vw, 88px) !important;
  }
  #platformView .portal-modern-hero-copy h3 {
    font-size: clamp(54px, 5.1vw, 78px) !important;
  }
  #platformView .portal-module-intro { min-width: 520px !important; }
}

@media (max-height: 820px) and (min-width: 1021px) {
  #platformView .portal-module-showcase {
    row-gap: 12px !important;
    padding-top: 8px !important;
  }
  #platformView .portal-showcase-copy,
  #platformView .portal-intro-stage { min-height: 232px !important; }
  #platformView .portal-modern-hero-copy h3 {
    font-size: clamp(50px, 4.6vw, 72px) !important;
  }
  #platformView .portal-module-rail { --portal-rail-height: 424px; }
  #platformView .platform-module-card {
    min-height: 394px !important;
    height: 394px !important;
  }
}

/* v40 — single portal geometry.  This intentionally resets the earlier
   portal grids: several historical rules created implicit 0px columns, which
   made the module introduction read vertically and clipped the rail. */
#platformView {
  --portal-rail-card: clamp(390px, 31vw, 508px);
  --portal-rail-height: clamp(382px, 43svh, 474px);
  --portal-hero-height: clamp(322px, 39svh, 492px);
  height: auto !important;
  min-height: 100svh !important;
  overflow: visible !important;
}

#platformView .portal-module-showcase {
  display: grid !important;
  grid-template-areas: "hero intro" "rail rail" !important;
  grid-template-columns: minmax(0, .92fr) minmax(0, 1.08fr) !important;
  grid-template-rows: minmax(var(--portal-hero-height), auto) var(--portal-rail-height) !important;
  grid-auto-columns: auto !important;
  grid-auto-flow: row !important;
  align-items: center !important;
  align-content: start !important;
  column-gap: clamp(46px, 6.4vw, 104px) !important;
  row-gap: clamp(10px, 1.35vw, 22px) !important;
  width: min(100% - clamp(34px, 8vw, 152px), 1740px) !important;
  min-width: 0 !important;
  height: auto !important;
  min-height: calc(var(--portal-hero-height) + var(--portal-rail-height)) !important;
  padding: clamp(14px, 2.1svh, 32px) 0 clamp(12px, 2.2svh, 34px) !important;
  margin: 0 auto !important;
  overflow: visible !important;
}

#platformView .portal-showcase-copy,
#platformView .portal-intro-stage,
#platformView .portal-module-rail {
  grid-column: auto !important;
  grid-row: auto !important;
  min-width: 0 !important;
  min-inline-size: 0 !important;
}

#platformView .portal-showcase-copy {
  grid-area: hero !important;
  width: 100% !important;
  align-self: center !important;
  justify-self: stretch !important;
}

#platformView .portal-modern-hero-copy {
  width: 100% !important;
  max-width: none !important;
  margin: 0 !important;
  padding-left: clamp(12px, 2.4vw, 46px) !important;
}

#platformView .portal-modern-hero-copy .portal-modern-kicker {
  font-size: clamp(30px, 2.45vw, 48px) !important;
  letter-spacing: .13em !important;
  white-space: nowrap !important;
}

#platformView .portal-modern-hero-copy h3 {
  max-width: none !important;
  font-size: clamp(58px, 5.25vw, 100px) !important;
  line-height: 1.06 !important;
  letter-spacing: -.06em !important;
  white-space: nowrap !important;
  word-break: keep-all !important;
}

#platformView .portal-modern-hero-copy p {
  max-width: min(100%, 700px) !important;
  margin-top: clamp(22px, 2.4vw, 38px) !important;
  font-size: clamp(15px, 1.1vw, 20px) !important;
  line-height: 1.55 !important;
}

#platformView .portal-intro-stage {
  grid-area: intro !important;
  position: relative !important;
  display: block !important;
  width: 100% !important;
  height: auto !important;
  align-self: center !important;
  justify-self: stretch !important;
  overflow: visible !important;
}

#platformView .portal-module-intro {
  display: block !important;
  grid-template-columns: none !important;
  grid-template-rows: none !important;
  grid-auto-columns: auto !important;
  grid-auto-flow: row !important;
  width: 100% !important;
  min-width: 0 !important;
  max-width: none !important;
  min-height: clamp(268px, 30svh, 376px) !important;
  height: auto !important;
  padding: clamp(28px, 3vw, 52px) clamp(32px, 3.7vw, 62px) !important;
  box-sizing: border-box !important;
  overflow: visible !important;
}

#platformView .portal-intro-heading {
  display: flex !important;
  grid-template-columns: none !important;
  grid-template-rows: none !important;
  align-items: center !important;
  column-gap: clamp(18px, 2.1vw, 34px) !important;
  width: 100% !important;
  min-width: 0 !important;
}

#platformView .portal-intro-index {
  display: block !important;
  flex: 0 0 auto !important;
  font-size: clamp(64px, 6.6vw, 112px) !important;
  line-height: .82 !important;
}

#platformView .portal-intro-title-group {
  display: block !important;
  min-width: 0 !important;
}

#platformView .portal-intro-title {
  display: block !important;
  width: auto !important;
  max-width: 100% !important;
  margin: 0 !important;
  font-size: clamp(30px, 2.6vw, 48px) !important;
  line-height: 1.12 !important;
  white-space: nowrap !important;
  word-break: keep-all !important;
  overflow-wrap: normal !important;
}

#platformView .portal-intro-subtitle {
  display: block !important;
  margin-top: 8px !important;
  font-size: clamp(16px, 1.2vw, 22px) !important;
  line-height: 1.35 !important;
  white-space: nowrap !important;
  word-break: keep-all !important;
}

#platformView .portal-intro-description {
  display: block !important;
  width: auto !important;
  max-width: none !important;
  min-width: 0 !important;
  margin: clamp(20px, 2.15vw, 32px) 0 0 clamp(84px, 8vw, 142px) !important;
  font-size: clamp(16px, 1.18vw, 21px) !important;
  line-height: 1.72 !important;
  white-space: normal !important;
  word-break: normal !important;
  overflow-wrap: break-word !important;
}

#platformView .portal-intro-enter {
  position: static !important;
  display: inline-flex !important;
  width: auto !important;
  min-width: 0 !important;
  margin: clamp(22px, 2.3vw, 34px) 0 0 clamp(84px, 8vw, 142px) !important;
}

#platformView .portal-module-rail {
  grid-area: rail !important;
  display: flex !important;
  width: 100% !important;
  min-width: 0 !important;
  height: var(--portal-rail-height) !important;
  min-height: var(--portal-rail-height) !important;
  align-items: flex-end !important;
  align-content: flex-end !important;
  gap: clamp(20px, 2.5vw, 42px) !important;
  padding: clamp(24px, 3svh, 42px) max(20px, calc((100% - 1540px) / 2)) clamp(8px, 1.2svh, 18px) !important;
  box-sizing: border-box !important;
  overflow-x: auto !important;
  overflow-y: visible !important;
  scrollbar-width: none !important;
  -ms-overflow-style: none !important;
  scroll-snap-type: x proximity !important;
}

#platformView .portal-module-rail::-webkit-scrollbar { display: none !important; width: 0 !important; height: 0 !important; }

#platformView .platform-module-card {
  flex: 0 0 var(--portal-rail-card) !important;
  width: var(--portal-rail-card) !important;
  min-width: var(--portal-rail-card) !important;
  height: clamp(360px, 39svh, 452px) !important;
  min-height: clamp(360px, 39svh, 452px) !important;
  max-height: none !important;
  padding: clamp(20px, 1.65vw, 28px) !important;
  box-sizing: border-box !important;
  overflow: hidden !important;
  scroll-snap-align: center !important;
  transform-origin: 50% 100% !important;
  will-change: transform, opacity !important;
}

#platformView .platform-module-card.portal-rail-active,
#platformView .platform-module-card.active { transform: translate3d(0, -24px, 0) scale(1.055) !important; }
#platformView .platform-module-card.portal-rail-near { transform: translate3d(0, 2px, 0) scale(.94) !important; }
#platformView .platform-module-card.portal-rail-far { transform: translate3d(0, 26px, 0) scale(.86) !important; }

#platformView .module-card-head {
  display: grid !important;
  grid-template-columns: auto minmax(0, 1fr) auto !important;
  min-height: 52px !important;
  align-items: center !important;
  column-gap: clamp(10px, .95vw, 16px) !important;
}

#platformView .module-card-head h3 {
  min-width: 0 !important;
  margin: 0 !important;
  font-size: clamp(21px, 1.58vw, 28px) !important;
  line-height: 1.22 !important;
  white-space: nowrap !important;
  overflow: visible !important;
}

#platformView .module-card-title { white-space: nowrap !important; word-break: keep-all !important; }

#platformView .module-open {
  justify-self: end !important;
  margin-left: 0 !important;
  padding: 7px 0 7px 10px !important;
  font-size: clamp(15px, 1.1vw, 19px) !important;
  line-height: 1.2 !important;
  white-space: nowrap !important;
}

#platformView .platform-module-card .weui-cells {
  display: flex !important;
  flex-direction: column !important;
  gap: clamp(8px, .85vw, 13px) !important;
  margin: clamp(18px, 1.55vw, 25px) 0 0 !important;
}

#platformView .platform-module-card .weui-cell {
  display: flex !important;
  align-items: center !important;
  min-height: clamp(31px, 2.45vw, 40px) !important;
  padding: 0 clamp(13px, 1.05vw, 18px) 0 clamp(26px, 2vw, 32px) !important;
  font-size: clamp(16px, 1.18vw, 20px) !important;
  line-height: 1.32 !important;
  border-radius: 8px !important;
  white-space: nowrap !important;
}

#platformView .platform-module-card .weui-cell::before {
  display: block !important;
  left: clamp(12px, .95vw, 16px) !important;
  top: 50% !important;
  width: 6px !important;
  height: 6px !important;
  border-radius: 50% !important;
  transform: translateY(-50%) !important;
  background: #687787 !important;
  box-shadow: none !important;
}

#platformView .portal-rail-edge {
  z-index: 5 !important;
  opacity: 0 !important;
  pointer-events: none !important;
  transition: opacity .18s ease !important;
}
#platformView .portal-intro-stage:hover .portal-rail-edge,
#platformView .portal-rail-edge:focus-visible { opacity: 1 !important; pointer-events: auto !important; }

body.ui-modern #platformView .platform-module-card .weui-cell::before { background: rgba(213, 241, 255, .86) !important; }

@media (max-width: 1100px) {
  #platformView .portal-module-showcase {
    grid-template-columns: minmax(0, 1fr) !important;
    grid-template-rows: auto auto var(--portal-rail-height) !important;
    grid-template-areas: "hero" "intro" "rail" !important;
    row-gap: 22px !important;
  }
  #platformView .portal-modern-hero-copy { padding-left: 0 !important; }
  #platformView .portal-modern-hero-copy h3 { font-size: clamp(48px, 8.2vw, 78px) !important; }
  #platformView .portal-module-intro { max-width: 760px !important; margin: 0 auto !important; }
}

@media (max-height: 760px) and (min-width: 1101px) {
  #platformView { --portal-rail-height: 394px; --portal-hero-height: 286px; }
  #platformView .portal-module-showcase { row-gap: 4px !important; }
  #platformView .platform-module-card { height: 366px !important; min-height: 366px !important; }
  #platformView .portal-module-intro { min-height: 256px !important; padding-top: 25px !important; padding-bottom: 25px !important; }
}
