/* Eight solution families share the existing editorial navigation. */
.ecosystem{gap:clamp(40px,6vw,96px)}
.ecosystem .solutions-intro{position:static}
.ecosystem-network{position:relative;isolation:isolate;display:flex;align-items:center;justify-content:flex-end;flex-direction:column;gap:16px;width:100%;height:280px;padding-bottom:24px;margin-top:28px;overflow:hidden;border-radius:28px;background:radial-gradient(ellipse at 60% 15%,#235877,#102d43 75%)}
.ecosystem-network canvas{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;z-index:-1}
.ecosystem-network img{width:145px;height:auto;filter:drop-shadow(0 2px 12px #102d43);margin-bottom:7px}
.ecosystem-network span{font-size:13px;letter-spacing:.03em;color:#c1dce9}
.ecosystem-network .ecosystem-ticker{position:relative;height:22px;width:100%;text-align:center;overflow:hidden;perspective:500px}
.ecosystem-ticker span{position:absolute;inset:0;line-height:22px;font-size:15px;opacity:0;animation:ecosystem-line 10.8s infinite both;animation-play-state:paused}
.ecosystem-ticker span:nth-child(2){animation-delay:3.6s}
.ecosystem-ticker span:nth-child(3){animation-delay:7.2s}
.fingerprint-running .ecosystem-ticker span{animation-play-state:running}
@keyframes ecosystem-line{0%{opacity:0;transform:translateY(10px) rotateX(-12deg)}3%,30%{opacity:1;transform:translateY(0) rotateX(0)}33.333%,100%{opacity:0;transform:translateY(-10px) rotateX(12deg)}}
.ecosystem-network .ecosystem-accessible-copy{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}
@media(prefers-reduced-motion:reduce){.ecosystem-network .ecosystem-ticker{height:auto;overflow:visible}.ecosystem-ticker span{animation:none;position:static;display:block;opacity:1;transform:none;font-size:13px}.ecosystem-network{height:280px}}
.ecosystem .solution-explorer{min-height:500px}
.ecosystem .panel-description{margin:25px 0 20px;line-height:1.65}
.ecosystem .solution-detail{border:0;margin-bottom:10px;border-radius:22px;background:#edf4f8;transition:background-color .38s,color .38s,box-shadow .35s}
.ecosystem .solution-detail summary{padding:20px 22px;gap:14px;min-height:76px}
.ecosystem .solution-detail summary,
.ecosystem .solution-detail summary:hover{background:transparent;transition:none}
.ecosystem .solution-detail[open] summary:hover h3{color:#b6def4}
.ecosystem .solution-detail h3{font-size:clamp(18px,1.7vw,23px);line-height:1.3;color:#173c55;font-weight:400}
.ecosystem .ecosystem-node{width:6px;height:6px;flex:none;background:#83b8d4;border-radius:50%;box-shadow:0 0 0 5px #8cbcd315;transition:box-shadow .3s}
.ecosystem .solution-detail[open] .ecosystem-node{box-shadow:0 0 0 4px #96cce31a;background:#b6def4}
.ecosystem .solution-detail h3,.ecosystem .solution-detail .plus{transition:color .3s}
@media(hover:hover) and (pointer:fine){
 .ecosystem .solution-detail:not([open]):hover{background:#e5eff5;box-shadow:0 5px 16px #12364e06}
 .ecosystem .solution-detail:not([open]):hover h3,.ecosystem .solution-detail:not([open]):hover .plus{color:#173c55}
 .ecosystem .solution-detail:not([open]):hover .ecosystem-node{background:#699db9;box-shadow:none}
 .ecosystem .solution-detail summary:hover .plus{background:#cce1ec;transform:rotate(90deg)}
 .ecosystem .solution-detail[open] summary:hover .plus{background:#ffffff18;transform:none}
}
.ecosystem .solution-detail .plus{width:30px;height:30px;border-radius:50%;background:#dfeaf0;transition:background-color .35s,transform .4s}
.ecosystem .solution-detail .plus::before,.ecosystem .solution-detail .plus::after{top:14px;left:8px;width:14px}
.ecosystem .solution-detail[open] .plus{background:#ffffff0c}
.ecosystem .solution-detail .ecosystem-node{box-shadow:none}
.ecosystem .solution-detail[open]{background:#14374f;color:#d9e8ef}
.ecosystem .solution-detail[open] h3,.ecosystem .solution-detail[open] .plus{color:#b6def4}
.ecosystem .solution-detail .solution-body{padding:0 24px 24px 42px;max-width:none;color:inherit}
.ecosystem .solution-body p{font-size:15px;line-height:1.7}
.ecosystem .solution-body .ecosystem-examples{font-size:12px;line-height:1.8;margin-top:14px;color:#a7c5d6}
.ecosystem .solution-body .text-link{color:#e3f3ff;font-size:13px}
.ecosystem .solution-detail[open] .solution-body{animation:none}
.ecosystem .solution-body{opacity:1;transition:opacity .28s ease}
.ecosystem .is-collapsing .solution-body{opacity:0}
.ecosystem .is-collapsing .plus::after{transform:rotate(90deg)}
.ecosystem summary:focus-visible{outline:2px solid #72b4d5;outline-offset:3px;border-radius:22px}
@media(min-width:641px) and (max-width:960px){.ecosystem .solutions-intro{display:grid;grid-template-columns:1fr 1fr;gap:0 32px;align-items:start}.ecosystem-network{grid-column:2;grid-row:1/5;margin-top:0}.ecosystem .solutions-intro>.text-link{justify-self:start}}
@media(max-width:960px){.ecosystem .solution-explorer{min-height:0}.ecosystem .solutions-intro>p:not(.section-label){max-width:52ch}}
@media(max-width:640px){.ecosystem-network{height:260px;max-width:420px}.ecosystem .solutions-intro>.text-link{margin-top:18px}.ecosystem .solution-tabs{margin-top:0}}
@media(max-width:640px){.ecosystem .solution-detail summary{padding:19px 17px}.ecosystem .solution-detail .solution-body{padding:0 20px 22px 37px}.ecosystem .solution-detail h3{font-size:19px}}
@media(prefers-reduced-motion:reduce){.ecosystem *{transition:none!important}}
