.ecosystem {
  position: relative;
  isolation: isolate;
  padding-top: clamp(84px, 10vw, 150px);
  padding-bottom: clamp(54px, 7vw, 100px);
  overflow: clip;
  color: #17333e;
  background: #f5f7f4;
}
#chapter-ecosystem[data-continuity]::after { display:none; }
.ecosystem::before { content:""; position:absolute; inset:0; z-index:-1; background:radial-gradient(circle at 50% 54%,rgba(49,123,139,.10),transparent 34%),linear-gradient(90deg,rgba(21,60,72,.045) 1px,transparent 1px),linear-gradient(rgba(21,60,72,.045) 1px,transparent 1px); background-size:auto,80px 80px,80px 80px; mask-image:linear-gradient(to bottom,transparent 3%,#000 20%,#000 88%,transparent); }
.partner-ecosystem__heading { display:grid; grid-template-columns:minmax(0,1.08fr) minmax(300px,.52fr); gap:clamp(40px,8vw,130px); align-items:end; }
.partner-ecosystem__heading .eyebrow { margin-bottom:20px; color:#357a86; }
.partner-ecosystem__heading h2 { margin:0; font-size:clamp(3.2rem,6.6vw,7rem); font-weight:560; letter-spacing:-.07em; line-height:.97; }
.partner-ecosystem__intro { display:grid; gap:22px; padding-bottom:8px; }
.partner-ecosystem__intro p { margin:0; color:#60747a; font-size:clamp(.98rem,1.15vw,1.16rem); line-height:1.8; }
.partner-ecosystem__intro div { display:flex; flex-wrap:wrap; gap:8px; }
.partner-ecosystem__intro span { padding:8px 12px; color:#355962; font-size:.69rem; border:1px solid rgba(23,51,62,.13); border-radius:999px; background:rgba(255,255,255,.72); }

.partner-orbit { position:relative; min-height:clamp(720px,68vw,980px); margin-top:clamp(48px,7vw,90px); }
.partner-orbit__core { position:absolute; z-index:2; top:50%; left:50%; display:grid; place-content:center; width:clamp(150px,14vw,220px); aspect-ratio:1; text-align:center; border:1px solid rgba(255,255,255,.75); border-radius:50%; background:linear-gradient(145deg,#164956,#0c303b); box-shadow:0 35px 90px rgba(14,55,65,.25),inset 0 1px rgba(255,255,255,.2); color:#fff; transform:translate(-50%,-50%); }
.partner-orbit__core i { position:absolute; inset:17%; border:1px solid rgba(102,224,203,.42); border-radius:50%; animation:partner-core-pulse 4s ease-in-out infinite; }
.partner-orbit__core span { font-size:clamp(1.1rem,1.7vw,1.5rem); font-weight:600; letter-spacing:.06em; }
.partner-orbit__core small { margin-top:7px; color:#77dac9; font-size:.52rem; letter-spacing:.16em; }
.partner-orbit__rings { position:absolute; inset:5%; pointer-events:none; }
.partner-orbit__rings i { position:absolute; inset:calc(var(--ring, 0) * 11%); border:1px solid rgba(34,91,104,.11); border-radius:50%; }
.partner-orbit__rings i:nth-child(1){--ring:0}.partner-orbit__rings i:nth-child(2){--ring:1}.partner-orbit__rings i:nth-child(3){--ring:2}
.partner-orbit__rings i::after { content:""; position:absolute; top:50%; left:-3px; width:6px; height:6px; border-radius:50%; background:#5cc9b6; box-shadow:0 0 14px rgba(92,201,182,.7); animation:partner-ring-trace calc(16s - var(--ring) * 3s) linear infinite reverse; transform-origin:calc(50% + 3px) 0; }

.partner-orbit__bubbles { position:absolute; inset:0; display:grid; grid-template-columns:repeat(6,minmax(0,1fr)); grid-auto-rows:1fr; gap:clamp(10px,1.5vw,22px); align-items:center; }
.partner-bubble { --partner-color:#17687a; position:relative; z-index:3; display:grid; place-items:center; justify-self:center; width:calc(clamp(108px,10.5vw,170px) * var(--bubble-size)); aspect-ratio:1; padding:clamp(12px,1.5vw,22px); color:#153640; text-align:center; text-decoration:none; border:1px solid rgba(24,70,81,.12); border-radius:50%; background:rgba(255,255,255,.91); box-shadow:0 22px 55px rgba(24,64,73,.10),inset 0 1px rgba(255,255,255,.9); backdrop-filter:blur(14px); transition:transform 500ms cubic-bezier(.2,.8,.2,1),border-color 300ms ease,box-shadow 400ms ease; animation:partner-bubble-float 8s ease-in-out infinite; animation-delay:var(--bubble-delay,0s); }
.partner-bubble:nth-child(4n+2){--partner-color:#2b806c}.partner-bubble:nth-child(4n+3){--partner-color:#a86635}.partner-bubble:nth-child(4n+4){--partner-color:#65529a}
.partner-bubble:nth-child(1),.partner-bubble:nth-child(7),.partner-bubble:nth-child(13){transform:translateY(28px)}.partner-bubble:nth-child(4),.partner-bubble:nth-child(10),.partner-bubble:nth-child(16){transform:translateY(-24px)}
.partner-bubble:hover,.partner-bubble:focus-visible { z-index:8; border-color:color-mix(in srgb,var(--partner-color) 55%,white); box-shadow:0 30px 80px rgba(24,64,73,.2),0 0 0 8px rgba(255,255,255,.72); transform:translateY(-12px) scale(1.08); animation-play-state:paused; }
.partner-bubble:focus-visible { outline:3px solid var(--partner-color); outline-offset:5px; }
.partner-bubble__halo { position:absolute; inset:-5px; z-index:-1; border:1px solid color-mix(in srgb,var(--partner-color) 22%,transparent); border-radius:50%; transform:scale(.9); opacity:0; transition:transform 450ms ease,opacity 350ms ease; }.partner-bubble:hover .partner-bubble__halo,.partner-bubble:focus-visible .partner-bubble__halo{transform:scale(1.12);opacity:1}
.partner-bubble__mark { display:flex; align-items:center; justify-content:center; width:82%; height:40%; }
.partner-bubble__mark img { display:block; width:100%; max-height:100%; object-fit:contain; filter:none; opacity:1; }
.partner-bubble__copy { display:grid; gap:4px; width:100%; }.partner-bubble__copy strong{font-size:clamp(.75rem,1vw,.98rem);font-weight:620}.partner-bubble__copy small{color:#74858a;font-size:.58rem}
.partner-bubble__detail { position:absolute; top:calc(100% + 10px); left:50%; display:grid; gap:5px; width:max-content; max-width:230px; padding:12px 15px; color:#fff; text-align:left; border-radius:12px; background:#123844; box-shadow:0 16px 45px rgba(11,42,51,.24); opacity:0; pointer-events:none; transform:translate(-50%,-7px); transition:opacity 260ms ease,transform 350ms cubic-bezier(.2,.8,.2,1); }
.partner-bubble__detail::before { content:""; position:absolute; bottom:100%; left:50%; border:6px solid transparent; border-bottom-color:#123844; transform:translateX(-50%); }.partner-bubble__detail em{font-size:.68rem;font-style:normal;line-height:1.4}.partner-bubble__detail b{color:#70d7c4;font-size:.58rem;font-weight:500;letter-spacing:.08em}.partner-bubble:hover .partner-bubble__detail,.partner-bubble:focus-visible .partner-bubble__detail{opacity:1;transform:translate(-50%,0)}

.partner-ecosystem__footer { display:grid; grid-template-columns:auto auto minmax(260px,1fr); gap:14px; align-items:baseline; padding-top:30px; border-top:1px solid rgba(23,51,62,.15); }.partner-ecosystem__footer>strong{color:#1e6877;font:560 clamp(2.8rem,5vw,5rem)/1 var(--font-latin,sans-serif)}.partner-ecosystem__footer>span{color:#65787d;font-size:.74rem}.partner-disclosure{max-width:650px;margin:0 0 0 auto;color:#78888c;font-size:.68rem;line-height:1.65;text-align:right}
@keyframes partner-bubble-float{0%,100%{translate:0 0}50%{translate:0 -10px}}@keyframes partner-core-pulse{0%,100%{transform:scale(.94);opacity:.35}50%{transform:scale(1.08);opacity:1}}@keyframes partner-ring-trace{to{transform:rotate(360deg)}}

@media(max-width:900px){.partner-ecosystem__heading{grid-template-columns:1fr;gap:28px}.partner-ecosystem__heading h2{font-size:clamp(3.3rem,13vw,6rem)}.partner-orbit{min-height:auto}.partner-orbit__core,.partner-orbit__rings{display:none}.partner-orbit__bubbles{position:relative;grid-template-columns:repeat(3,minmax(0,1fr));grid-auto-rows:auto}.partner-bubble{width:min(100%,150px)}.partner-bubble:nth-child(n){transform:none}.partner-ecosystem__footer{grid-template-columns:auto 1fr}.partner-disclosure{grid-column:1/-1;margin:10px 0 0;text-align:left}}
@media(max-width:560px){.partner-orbit__bubbles{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px 8px}.partner-bubble{width:min(100%,148px)}.partner-bubble__detail{display:none}}
@media(prefers-reduced-motion:reduce){.partner-orbit *{animation:none!important;transition-duration:.01ms!important}.partner-bubble{translate:0 0}}

/* Base Power-inspired logo rail and category constellation, rebuilt with Ningdian data. */
.partner-ecosystem__heading > * { min-width: 0; }
.partner-ecosystem__heading h2 { max-width: 980px; font-size: clamp(2.8rem, 5.1vw, 5.4rem); line-height: 1.12; letter-spacing: -.035em; text-wrap: balance; }
.partner-ecosystem__intro { padding-bottom: 4px; }
.partner-ecosystem__intro p { max-width: 520px; }

.partner-marquee { margin: clamp(32px, 4vw, 56px) calc(var(--gutter) * -1) 0; padding: 24px 0 26px; overflow: hidden; border-top: 1px solid rgba(23, 51, 62, .16); border-bottom: 1px solid rgba(23, 51, 62, .16); background: rgba(255, 255, 255, .54); }
.partner-marquee__top { display: flex; justify-content: space-between; gap: 24px; padding: 0 var(--gutter) 18px; color: #61767c; }
.partner-marquee__top span { color: #286f7a; font-size: .64rem; font-weight: 650; letter-spacing: .15em; }
.partner-marquee__top p { margin: 0; font-size: .66rem; }
.partner-marquee__viewport { width: 100%; overflow: hidden; }
.partner-marquee__viewport + .partner-marquee__viewport { margin-top: 10px; }
.partner-marquee__track { display: flex; width: max-content; gap: 10px; padding-right: 10px; will-change: transform; }
.partner-logo { display: grid; grid-template-columns: 92px minmax(92px, 1fr); gap: 14px; align-items: center; width: clamp(230px, 18vw, 286px); min-height: 86px; padding: 13px 18px; color: #163641; border: 1px solid rgba(23, 51, 62, .11); border-radius: 18px; background: rgba(255, 255, 255, .93); box-shadow: 0 10px 30px rgba(25, 61, 70, .055); transition: border-color 260ms ease, box-shadow 360ms ease, transform 420ms cubic-bezier(.22, 1, .36, 1); }
.partner-logo:hover,
.partner-logo:focus-visible { z-index: 2; border-color: rgba(30, 104, 119, .46); box-shadow: 0 18px 44px rgba(25, 61, 70, .14); transform: translateY(-3px); }
.partner-logo__mark { display: flex; align-items: center; justify-content: center; height: 48px; }
.partner-logo__mark img { display: block; width: 100%; height: 100%; object-fit: contain; filter: none; opacity: 1; }
.partner-logo__copy { display: grid; gap: 4px; min-width: 0; }
.partner-logo__copy strong { overflow: hidden; font-size: .84rem; font-weight: 620; text-overflow: ellipsis; white-space: nowrap; }
.partner-logo__copy small { color: #71858a; font-size: .58rem; }

.partner-relations { margin-top: 24px; }
.partner-relations__summary { padding: 14px 0; cursor: pointer; list-style: none; }
.partner-relations__summary::-webkit-details-marker { display: none; }
.partner-relations__summary h3 { display: flex; align-items: center; justify-content: space-between; gap: 24px; margin: 0; font-size: clamp(1.1rem, 1.7vw, 1.5rem); font-weight: 560; letter-spacing: -.02em; line-height: 1.45; }
.partner-relations__summary h3 > span { min-width: 0; text-wrap: balance; }
.partner-relations__summary:hover { color: #286a75; }
.partner-relations__summary:focus-visible { outline: 3px solid #286a75; outline-offset: 5px; }
.partner-relations__toggle { flex: 0 0 20px; transition: transform 220ms ease; }
.partner-relations[open] .partner-relations__toggle { transform: rotate(180deg); }
.partner-relations__description { max-width: 65ch; margin: 12px 0 0; color: #546e75; font-size: .82rem; line-height: 1.75; }
.partner-categories { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 24px; }
.partner-categories button { display: inline-flex; gap: 14px; align-items: center; min-height: 44px; padding: 10px 16px; color: #46636b; border: 1px solid rgba(23, 51, 62, .14); border-radius: 999px; background: rgba(255, 255, 255, .68); transition: color 260ms ease, background 260ms ease, transform 340ms cubic-bezier(.22, 1, .36, 1); }
.partner-categories button span { color: #788a8f; font-size: .62rem; }
.partner-categories button:hover,
.partner-categories button:focus-visible { transform: translateY(-2px); }
.partner-categories button[aria-pressed="true"] { color: #fff; background: #153f4b; }
.partner-categories button[aria-pressed="true"] span { color: #7bd8c7; }

.partner-constellation { position: relative; height: clamp(650px, 55vw, 800px); margin-top: 26px; overflow: hidden; border: 1px solid rgba(23, 51, 62, .12); border-radius: 34px; background: radial-gradient(circle at 50% 50%, rgba(73, 165, 154, .13), transparent 23%), linear-gradient(135deg, rgba(255, 255, 255, .82), rgba(231, 238, 236, .65)); box-shadow: inset 0 1px rgba(255, 255, 255, .9); }
.partner-constellation::before { content: ""; position: absolute; inset: 0; background-image: radial-gradient(circle, rgba(23, 73, 83, .13) 1px, transparent 1px); background-size: 28px 28px; mask-image: radial-gradient(circle, #000, transparent 72%); pointer-events: none; }
.partner-constellation__lines { position: absolute; inset: 0; width: 100%; height: 100%; overflow: visible; pointer-events: none; }
.partner-constellation__lines line { stroke: rgba(38, 102, 111, .15); stroke-width: 1; vector-effect: non-scaling-stroke; transition: stroke 320ms ease, stroke-width 320ms ease, opacity 320ms ease; }
.partner-constellation__lines line[data-related="false"] { opacity: .08; }
.partner-constellation__lines line.is-hovered { opacity: 1; stroke: #46aa9c; stroke-width: 2; }
.partner-constellation__core { position: absolute; z-index: 4; top: 50%; left: 50%; display: grid; place-content: center; width: clamp(132px, 12vw, 184px); aspect-ratio: 1; text-align: center; color: #fff; border: 1px solid rgba(255, 255, 255, .25); border-radius: 50%; background: linear-gradient(145deg, #174c58, #0c333e); box-shadow: 0 25px 70px rgba(13, 51, 61, .27), inset 0 1px rgba(255, 255, 255, .16); transform: translate(-50%, -50%); }
.partner-constellation__core i { position: absolute; inset: 13%; border: 1px solid rgba(100, 219, 198, .42); border-radius: 50%; }
.partner-constellation__core strong { font-size: clamp(.94rem, 1.4vw, 1.3rem); font-weight: 600; letter-spacing: .04em; }
.partner-constellation__core span { margin-top: 6px; color: #74d8c5; font-size: .56rem; }
.partner-constellation__bubbles { position: absolute; inset: 0; }
.partner-constellation .partner-bubble:nth-child(n) { position: absolute; top: var(--bubble-y); left: var(--bubble-x); width: clamp(94px, 9vw, 138px); padding: 12px; animation: none; transform: translate(-50%, -50%) scale(1); opacity: 1; transition: top 760ms cubic-bezier(.22, 1, .36, 1), left 760ms cubic-bezier(.22, 1, .36, 1), opacity 420ms ease, transform 460ms cubic-bezier(.22, 1, .36, 1), border-color 300ms ease, box-shadow 400ms ease; }
.partner-constellation .partner-bubble[data-related="false"] { z-index: 1; opacity: .2; transform: translate(-50%, -50%) scale(.78); }
.partner-constellation .partner-bubble:hover,
.partner-constellation .partner-bubble:focus-visible { z-index: 9; opacity: 1; transform: translate(-50%, -50%) scale(1.09); }
.partner-constellation .partner-bubble__mark { width: 82%; height: 38%; }
.partner-constellation .partner-bubble__mark img { filter: none; opacity: 1; }
.partner-constellation .partner-bubble__copy strong { font-size: clamp(.66rem, .86vw, .84rem); }
.partner-constellation .partner-bubble__copy small { font-size: .5rem; }
.partner-constellation .partner-bubble__detail { top: 82%; }

.partner-ecosystem__footer { grid-template-columns: auto auto minmax(260px, 1fr) auto; align-items: center; margin-top: 30px; }
.partner-ecosystem__cta { display: inline-flex; gap: 34px; align-items: center; min-height: 50px; padding: 0 18px; color: #fff; font-size: .77rem; border-radius: 999px; background: #173f4a; }
.partner-ecosystem__cta:hover,
.partner-ecosystem__cta:focus-visible { background: #286a75; }

@media (max-width: 900px) {
  .partner-ecosystem__footer { grid-template-columns: auto 1fr auto; }
  .partner-disclosure { grid-column: 1 / -1; grid-row: 2; }
}
@media (max-width: 760px) {
  .partner-ecosystem__heading h2 { font-size: clamp(2rem, 8vw, 3.4rem); line-height: 1.18; letter-spacing: -.035em; }
  .partner-marquee { overflow: visible; }
  .partner-marquee__top p { display: none; }
  .partner-marquee__viewport { padding: 0 var(--gutter); overflow-x: auto; scroll-snap-type: x proximity; scrollbar-width: thin; }
  .partner-marquee__track { transform: none !important; }
  .partner-logo { flex: 0 0 232px; scroll-snap-align: start; }
  .partner-logo.is-clone { display: none; }
  .partner-categories { flex-wrap: nowrap; margin-inline: calc(var(--gutter) * -1); padding-inline: var(--gutter); overflow-x: auto; scrollbar-width: none; }
  .partner-categories button { flex: 0 0 auto; }
  .partner-constellation { height: auto; padding: 22px 14px; overflow: visible; border-radius: 24px; }
  .partner-constellation__lines,
  .partner-constellation__core { display: none; }
  .partner-constellation__bubbles { position: relative; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
  .partner-constellation .partner-bubble:nth-child(n) { position: relative; top: auto; left: auto; width: min(100%, 150px); opacity: 1; transform: none; justify-self: center; }
  .partner-constellation .partner-bubble[data-related="false"] { opacity: .22; transform: scale(.92); }
  .partner-constellation .partner-bubble:hover,
  .partner-constellation .partner-bubble:focus-visible { transform: scale(1.04); }
  .partner-constellation .partner-bubble__detail { display: none; }
  .partner-ecosystem__footer { grid-template-columns: auto 1fr; }
  .partner-ecosystem__cta { grid-column: 1 / -1; justify-content: space-between; width: 100%; }
}
@media (prefers-reduced-motion: reduce) {
  .partner-marquee { overflow: visible; }
  .partner-marquee__viewport { overflow: visible; }
  .partner-marquee__track { width: 100%; flex-wrap: wrap; transform: none !important; will-change: auto; }
  .partner-logo { flex: 1 1 230px; }
  .partner-logo.is-clone { display: none; }
  .partner-logo,
  .partner-relations__toggle,
  .partner-categories button,
  .partner-constellation .partner-bubble:nth-child(n),
  .partner-constellation__lines line { transition: none !important; }
}
