
.partners-page{--eco-blue:#006197;--eco-cyan:#54c6e7;--eco-ink:#123043;--eco-muted:#6b8490;background:#fff}
.partners-viewport{min-height:calc(100vh - 81px);display:grid;place-items:center;position:relative;overflow:hidden;background:radial-gradient(circle at 50% 46%,rgba(84,198,231,.14),transparent 30%),linear-gradient(135deg,#fff 0%,#f7fcfe 54%,#eef8fb 100%)}
.partners-viewport:before{content:"";position:absolute;inset:0;background-image:linear-gradient(rgba(0,97,151,.035) 1px,transparent 1px),linear-gradient(90deg,rgba(0,97,151,.035) 1px,transparent 1px);background-size:48px 48px;mask-image:radial-gradient(circle at center,#000 0,rgba(0,0,0,.72) 44%,transparent 80%);pointer-events:none}
.eco-orbit-stage{--size:min(82vw,860px);width:var(--size);height:var(--size);position:relative;display:grid;place-items:center;isolation:isolate;padding:50px 0;box-sizing:content-box}
.eco-orbit-stage:before{content:"";position:absolute;width:74%;height:74%;border-radius:50%;background:radial-gradient(circle,rgba(84,198,231,.16),rgba(84,198,231,0) 68%);filter:blur(8px);animation:ecoPulse 5.5s ease-in-out infinite}
.eco-orbit-stage:after{content:"";position:absolute;width:58%;height:58%;border-radius:50%;border:1px solid rgba(0,97,151,.09);box-shadow:0 0 0 28px rgba(0,97,151,.018),0 0 0 58px rgba(0,97,151,.012);pointer-events:none}
.eco-orbit-lines{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;overflow:visible}
.eco-orbit-lines ellipse{fill:none;stroke:rgba(0,97,151,.13);stroke-width:1.3;stroke-dasharray:4 10;transform-origin:50% 50%;animation:ecoDash 18s linear infinite}
.eco-orbit-lines .line-2{transform:rotate(60deg);animation-duration:23s;animation-direction:reverse}
.eco-orbit-lines .line-3{transform:rotate(120deg);animation-duration:28s}
.eco-orbit-lines .ring{fill:none;stroke:rgba(84,198,231,.22);stroke-width:2;stroke-dasharray:2 13;animation:ecoSpin 15s linear infinite}
.eco-orbit{position:absolute;left:50%;top:50%;width:1px;height:1px;animation:ecoOrbit 28s linear infinite;will-change:transform}
.eco-orbit-stage:hover .eco-orbit{animation-play-state:paused}
.eco-node{position:absolute;left:50%;top:50%;width:258px;height:258px;transform:translate(-50%,-50%) translate(var(--x),var(--y));display:grid;place-items:center;text-align:center;text-decoration:none;color:var(--eco-ink)}
.eco-node .node-inner{width:228px;height:228px;border-radius:50%;background:rgba(255,255,255,.96);border:1px solid rgba(202,225,232,.95);box-shadow:0 22px 60px rgba(8,55,74,.13);backdrop-filter:blur(12px);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;box-sizing:border-box;padding:22px;animation:ecoCounter 28s linear infinite;transition:transform .35s,box-shadow .35s,border-color .35s}
.eco-orbit-stage:hover .eco-node .node-inner{animation-play-state:paused}
.eco-node:hover .node-inner{transform:scale(1.045);border-color:rgba(0,97,151,.5);box-shadow:0 30px 78px rgba(8,55,74,.2)}
.eco-node img{width:64px;height:64px;object-fit:contain;display:block}
.eco-node .code{font-size:9px;line-height:1.1;letter-spacing:.14em;text-transform:uppercase;font-weight:800;color:var(--eco-blue)}
.eco-node .name{font-size:15px;line-height:1.14;font-weight:800;color:#123043;max-width:188px}
.eco-node .desc{font-size:9.6px;line-height:1.32;color:#6d8490;max-width:184px}
.eco-node .visit{font-size:9.5px;line-height:1.2;font-weight:800;color:var(--eco-blue);margin-top:1px}
.node-k{--x:-300px;--y:-180px}.node-m{--x:300px;--y:-180px}.node-a{--x:300px;--y:180px}.node-r{--x:-300px;--y:180px}
.eco-core{position:relative;z-index:3;width:190px;height:190px;border-radius:50%;display:grid;place-items:center;text-align:center;background:linear-gradient(145deg,#082a3b,#0b5873);box-shadow:0 28px 72px rgba(7,47,63,.24),0 0 0 12px rgba(255,255,255,.9);color:#fff}
.eco-core:before{content:"";position:absolute;inset:-24px;border-radius:50%;border:1px solid rgba(84,198,231,.3);animation:ecoSpin 11s linear infinite}
.eco-core:after{content:"";position:absolute;inset:-46px;border-radius:50%;border:1px dashed rgba(0,97,151,.18);animation:ecoSpin 18s linear infinite reverse}
.eco-core > div{position:relative;z-index:2}
.eco-core small{display:block;font-size:9px;letter-spacing:.16em;opacity:.62;text-transform:uppercase}
.eco-core b{display:block;font-size:21px;letter-spacing:.08em;margin-top:5px}
.eco-core span{display:block;font-size:10px;color:#b8d7e2;margin-top:7px}
.eco-center-mark{width:42px;height:42px;border-radius:13px;object-fit:contain;opacity:.95;margin-bottom:3px}

.eco-caption strong{color:var(--eco-blue)}
@keyframes ecoOrbit{from{transform:translate(-50%,-50%) rotate(0deg)}to{transform:translate(-50%,-50%) rotate(360deg)}}
@keyframes ecoCounter{from{transform:rotate(0deg)}to{transform:rotate(-360deg)}}
@keyframes ecoSpin{to{transform:rotate(360deg)}}
@keyframes ecoDash{to{stroke-dashoffset:-240}}
@keyframes ecoPulse{0%,100%{transform:scale(.96);opacity:.8}50%{transform:scale(1.04);opacity:1}}
@media(max-width:900px){.eco-orbit-stage{--size:min(90vw,650px)}.eco-node{width:200px;height:200px}.eco-node .node-inner{width:178px;height:178px;padding:17px}.eco-node img{width:50px;height:50px}.eco-node .name{font-size:13px;max-width:150px}.eco-node .desc{font-size:8.6px;max-width:145px}.eco-node .visit{font-size:8.7px}.node-k{--x:-220px;--y:-132px}.node-m{--x:220px;--y:-132px}.node-a{--x:220px;--y:132px}.node-r{--x:-220px;--y:132px}.eco-core{width:166px;height:166px}.eco-caption{display:none!important}}
@media(max-width:640px){
.partners-viewport{min-height:auto;display:block;padding:24px 16px 42px;background:radial-gradient(circle at 50% 0%,rgba(84,198,231,.12),transparent 38%),linear-gradient(135deg,#fff 0%,#f7fcfe 100%)}
.partners-viewport:before{background-size:36px 36px;opacity:.55;mask-image:linear-gradient(to bottom,#000,transparent 88%)}
.eco-orbit-stage{width:100%;height:auto;padding:24px 0 16px;display:block}
.eco-orbit-lines,.eco-orbit-stage:before,.eco-orbit-stage:after,.eco-core{display:none}
.eco-orbit{position:static;width:100%;height:auto;display:grid;gap:14px;animation:none}
.eco-node{position:relative;left:auto;top:auto;width:100%;height:auto;transform:none!important;display:block;text-align:left}
.eco-node .node-inner{width:100%;height:auto;min-height:112px;border-radius:24px;padding:18px 20px;display:grid;grid-template-columns:56px 1fr auto;grid-template-rows:auto auto auto;column-gap:14px;row-gap:3px;animation:none!important;box-shadow:0 14px 36px rgba(8,55,74,.09)}
.eco-node img{width:50px;height:50px;grid-column:1;grid-row:1 / span 3;align-self:center}
.eco-node .code{font-size:8px;grid-column:2;grid-row:1;align-self:end}
.eco-node .name{font-size:16px;line-height:1.18;max-width:none;grid-column:2;grid-row:2}
.eco-node .desc{display:block;font-size:10px;line-height:1.35;max-width:none;grid-column:2;grid-row:3;color:#6d8490;margin-top:5px}
.eco-node .visit{grid-column:3;grid-row:1 / span 3;align-self:center;font-size:10px;white-space:nowrap}
.node-k,.node-m,.node-a,.node-r{--x:0;--y:0}
.eco-caption{display:none!important}
}
@media(prefers-reduced-motion:reduce){.eco-orbit,.eco-node .node-inner,.eco-orbit-lines ellipse,.eco-orbit-lines .ring,.eco-core:before,.eco-core:after,.eco-orbit-stage:before{animation:none!important}}
