.ecosystem-page{background:var(--canvas)}
.ecosystem-main{min-height:calc(100vh - var(--header-h));background:radial-gradient(circle at 88% 3%,var(--accent-soft),transparent 27%),var(--canvas)}
.ecosystem-shell{width:min(100%,1150px);margin:auto;padding:30px 30px 110px}
.ecosystem-breadcrumb{display:flex;align-items:center;gap:10px;color:var(--muted);font-size:.75rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ecosystem-breadcrumb a{color:var(--muted)}
.ecosystem-breadcrumb a:hover{color:var(--accent)}
.ecosystem-hero{max-width:800px;padding:58px 0 53px}
.ecosystem-hero .eyebrow{display:inline-block;color:var(--accent-strong);font-size:.69rem;font-weight:800;letter-spacing:.12em;text-transform:uppercase}
.ecosystem-hero h1{font-size:clamp(2.7rem,5.5vw,5rem);line-height:1.05;letter-spacing:-.065em;margin:15px 0 20px}
.ecosystem-hero p{font-size:clamp(1rem,1.5vw,1.2rem);line-height:1.7;max-width:680px;color:var(--muted);margin:0}
.ecosystem-content{display:grid;gap:30px}
.ecosystem-panel{padding:35px;border:1px solid var(--line);border-radius:var(--radius);background:var(--paper);box-shadow:0 8px 28px rgba(12,45,63,.035)}
.ecosystem-panel.ecosystem-soft{background:var(--soft)}
.ecosystem-panel>.eyebrow,.ecosystem-section-head .eyebrow{display:block;color:var(--accent-strong);font-size:.67rem;text-transform:uppercase;letter-spacing:.12em;font-weight:800}
.ecosystem-panel h2{font-size:clamp(1.4rem,2.5vw,2rem);letter-spacing:-.04em;line-height:1.2;margin:7px 0 14px}
.ecosystem-panel>p,.ecosystem-note,.ecosystem-empty p{font-size:.92rem;line-height:1.7;color:var(--muted)}
.ecosystem-panel>p{max-width:700px}
.ecosystem-section-head{display:flex;align-items:end;justify-content:space-between;gap:20px;margin-bottom:22px}
.ecosystem-section-head h2{margin-bottom:0}
.ecosystem-section-head>a,.ecosystem-inline-link{color:var(--accent-strong);font-size:.85rem;font-weight:750;white-space:nowrap}
.ecosystem-section-head>a:hover,.ecosystem-inline-link:hover{text-decoration:underline}
.ecosystem-card-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(235px,1fr));gap:14px;margin-top:24px}
.ecosystem-card{display:flex;flex-direction:column;min-height:196px;padding:22px;border:1px solid var(--line);border-radius:8px;background:var(--paper);color:var(--ink);text-decoration:none;transition:border-color .18s,transform .18s,box-shadow .18s}
.ecosystem-card:hover{color:var(--ink);border-color:var(--accent);box-shadow:0 12px 28px rgba(12,45,63,.09);transform:translateY(-2px)}
.ecosystem-card:focus-visible,.ecosystem-tabs a:focus-visible,.ecosystem-actions a:focus-visible{outline:2px solid var(--accent);outline-offset:3px}
.ecosystem-card-kicker{display:block;min-height:1.8em;color:var(--accent-strong);font-size:.65rem;font-weight:800;text-transform:uppercase;letter-spacing:.09em}
.ecosystem-card strong{display:block;margin:8px 0 7px;font-size:1.16rem;letter-spacing:-.03em}
.ecosystem-card p{font-size:.8rem;line-height:1.6;color:var(--muted);margin:0 0 23px}
.ecosystem-card small{color:var(--accent-strong);font-size:.77rem;font-weight:750;margin-top:auto}
.ecosystem-empty{padding:27px;border:1px dashed var(--line-strong);border-radius:8px;background:var(--canvas)}
.ecosystem-empty strong{font-size:1rem;color:var(--ink)}
.ecosystem-empty p{margin:8px 0 0;max-width:620px}
.ecosystem-note{padding:19px 23px;border-left:3px solid var(--accent);border-radius:0 7px 7px 0;background:var(--accent-soft)}
.ecosystem-note strong{color:var(--ink)}
.ecosystem-tabs{display:flex;flex-wrap:wrap;gap:7px;border-bottom:1px solid var(--line);padding-bottom:14px;margin-bottom:-5px}
.ecosystem-tabs a{display:inline-block;padding:9px 13px;border-radius:6px;color:var(--muted);font-size:.82rem;font-weight:700;text-decoration:none}
.ecosystem-tabs a:hover{color:var(--accent-strong);background:var(--soft)}
.ecosystem-tabs a[aria-current=page]{color:var(--accent-strong);background:var(--accent-soft)}
.ecosystem-points{display:grid;gap:12px;padding-left:21px;margin:23px 0;color:var(--ink);font-size:.89rem;line-height:1.65}
.ecosystem-points li::marker{color:var(--accent)}
.ecosystem-actions{display:flex;flex-wrap:wrap;gap:10px;margin-top:25px}
.ecosystem-actions .button{min-height:42px}
.ecosystem-release-list{list-style:none;margin:26px 0 23px;padding:0;border-top:1px solid var(--line)}
.ecosystem-release-list li{display:flex;justify-content:space-between;gap:15px;padding:15px 2px;border-bottom:1px solid var(--line)}
.ecosystem-release-list strong{font-size:.91rem}
.ecosystem-release-list time{color:var(--muted);font: .8rem ui-monospace,SFMono-Regular,Consolas,monospace}
.ecosystem-missing{padding:35px}
.ecosystem-missing strong{font-size:1.3rem}
.ecosystem-page .site-footer{flex-wrap:wrap}
.partner-intro{position:relative;overflow:hidden;padding:clamp(28px,5vw,56px);border-color:var(--line-strong);background:linear-gradient(145deg,var(--paper) 48%,var(--accent-soft))}
.partner-intro::after{content:"";position:absolute;width:260px;height:260px;right:-120px;top:-140px;border:1px solid var(--line-strong);border-radius:50%;box-shadow:0 0 0 38px var(--accent-soft),0 0 0 39px var(--line)}
.partner-intro>*{position:relative;z-index:1}
.partner-intro h2{max-width:650px;font-size:clamp(1.65rem,3vw,2.35rem)}
.partner-intro>p{max-width:680px}
.partner-context{display:flex;align-items:center;flex-wrap:wrap;gap:9px 22px;margin-top:28px;padding-top:21px;border-top:1px solid var(--line);font-size:.8rem}
.partner-context>span{color:var(--muted);font-weight:700}
.partner-context a,.partner-path a{color:var(--accent-strong);font-weight:750;text-decoration:none}
.partner-context a:hover,.partner-path a:hover{text-decoration:underline}
.partner-showcase{overflow:hidden;padding:28px 0 10px}
.partner-showcase-heading{display:flex;align-items:end;justify-content:space-between;gap:30px;margin:0 0 22px}
.partner-showcase-heading .eyebrow{color:var(--accent-strong);font-size:.68rem;font-weight:800;letter-spacing:.11em;text-transform:uppercase}
.partner-showcase-heading h2{max-width:630px;margin:8px 0 0;color:var(--ink);font-size:clamp(1.5rem,2.5vw,2rem);letter-spacing:-.045em;line-height:1.2}
.partner-showcase-heading p{max-width:320px;margin:0;color:var(--muted);font-size:.82rem;line-height:1.6}
.partner-marquee{overflow:hidden;mask-image:linear-gradient(90deg,transparent,#000 5%,#000 95%,transparent)}
.partner-marquee-track{display:flex;width:max-content;animation:partner-slide 29s linear infinite}
.partner-marquee:hover .partner-marquee-track,.partner-showcase:focus-within .partner-marquee-track{animation-play-state:paused}
.partner-marquee-set{display:flex;flex:none;gap:16px;padding-right:16px}
.partner-showcase-card{display:flex;flex-direction:column;flex:none;width:258px;min-height:174px;padding:20px;border:1px solid var(--line);border-radius:var(--radius);background:var(--paper);color:var(--ink);text-decoration:none}
.partner-showcase-featured{border-color:var(--accent);box-shadow:0 9px 24px rgba(12,45,63,.06)}
.partner-showcase-heading a{color:var(--accent-strong);font-weight:750}
.partner-showcase-heading a:hover{text-decoration:underline}
.partner-showcase-label{color:var(--accent-strong);font-size:.64rem;font-weight:800;letter-spacing:.1em;text-transform:uppercase}
.partner-showcase-logo{display:grid;place-items:center;width:185px;min-height:51px;margin:16px 0 8px;border-radius:6px;background:#fff}
.partner-showcase-logo img{display:block;max-width:100%;height:auto}
.partner-showcase-detail{margin-top:auto;color:var(--accent-strong);font-size:.78rem;font-weight:750}
.partner-showcase-placeholder{border-style:dashed;background:var(--soft)}
.partner-showcase-placeholder .partner-showcase-label{color:var(--muted)}
.partner-placeholder-monogram{display:grid;place-items:center;width:49px;height:49px;margin:14px 0 10px;border:1px solid var(--line-strong);border-radius:50%;color:var(--faint);font-size:1.4rem;font-weight:700}
.partner-showcase-placeholder strong{margin-top:auto;color:var(--muted);font-size:.86rem}
.partner-showcase-heading a:focus-visible{outline:2px solid var(--accent);outline-offset:3px}
@keyframes partner-slide{to{transform:translateX(-50%)}}
.partner-paths{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}
.partner-path{position:relative;display:flex;flex-direction:column;min-height:300px;overflow:hidden;padding:35px;border:1px solid var(--line);border-radius:var(--radius);background:var(--paper);box-shadow:0 8px 28px rgba(12,45,63,.035);transition:border-color .2s,transform .2s,box-shadow .2s}
.partner-path:hover{border-color:var(--accent);transform:translateY(-3px);box-shadow:0 18px 38px rgba(12,45,63,.09)}
.partner-path-number{position:absolute;top:22px;right:27px;color:var(--line-strong);font-size:3.2rem;font-weight:800;letter-spacing:-.09em;line-height:1}
.partner-path .eyebrow{color:var(--accent-strong);font-size:.68rem;font-weight:800;letter-spacing:.11em;text-transform:uppercase}
.partner-path h2{max-width:330px;margin:22px 0 13px;color:var(--ink);font-size:clamp(1.45rem,2.2vw,1.9rem);letter-spacing:-.045em;line-height:1.2}
.partner-path p{max-width:460px;margin:0 0 28px;color:var(--muted);font-size:.9rem;line-height:1.7}
.partner-path a{align-self:flex-start;margin-top:auto;font-size:.85rem}
.partner-contact{position:relative;display:flex;align-items:center;justify-content:space-between;gap:28px;overflow:hidden;padding:clamp(30px,5vw,55px);border-radius:var(--radius);background:linear-gradient(115deg,#102c3b,#16495d);color:#f6fbfd}
.partner-contact::after{content:"";position:absolute;right:-80px;bottom:-200px;width:420px;height:420px;border:1px solid rgba(255,255,255,.12);border-radius:50%;box-shadow:0 0 0 58px rgba(255,255,255,.035),0 0 0 59px rgba(255,255,255,.12)}
.partner-contact>*{position:relative;z-index:1}
.partner-contact .eyebrow{color:#9bdeef;font-size:.68rem;font-weight:800;letter-spacing:.11em;text-transform:uppercase}
.partner-contact h2{max-width:620px;margin:11px 0 13px;color:#fff;font-size:clamp(1.6rem,3vw,2.35rem);line-height:1.2;letter-spacing:-.05em}
.partner-contact p{max-width:600px;margin:0;color:#d6e8ef;font-size:.9rem;line-height:1.7}
.partner-contact p a{color:#fff;text-decoration:underline;text-underline-offset:3px}
.partner-contact-action{display:inline-flex;align-items:center;justify-content:center;gap:14px;flex:none;min-height:48px;padding:12px 19px;border-radius:6px;background:#f4fbfd;color:#113649;font-size:.85rem;font-weight:800;text-decoration:none;transition:transform .2s,background .2s}
.partner-contact-action:hover{color:#113649;background:#dff5fb;transform:translateY(-2px)}
.partner-context a:focus-visible,.partner-path a:focus-visible,.partner-contact a:focus-visible{outline:2px solid var(--accent);outline-offset:4px}
.partner-contact a:focus-visible{outline-color:#fff}
@media(max-width:850px){.ecosystem-shell{padding:25px 22px 80px}.ecosystem-hero{padding:45px 0 40px}}
@media(max-width:850px){.partner-contact{align-items:flex-start;flex-direction:column}.partner-contact-action{align-self:flex-start}}
@media(max-width:850px){.partner-showcase-heading{align-items:start;flex-direction:column;gap:10px}.partner-showcase-heading p{max-width:620px}}
@media(max-width:640px){.ecosystem-shell{padding:22px 18px 65px}.ecosystem-hero{padding:40px 0 32px}.ecosystem-hero h1{font-size:clamp(2.45rem,11vw,3.5rem)}.ecosystem-panel{padding:25px 20px}.ecosystem-section-head{align-items:start;flex-direction:column;gap:8px}.ecosystem-section-head>a{white-space:normal}.ecosystem-content{gap:18px}.ecosystem-card-grid{grid-template-columns:1fr}.ecosystem-card{min-height:0}}
@media(max-width:640px){.partner-intro{padding:29px 23px}.partner-paths{grid-template-columns:1fr;gap:18px}.partner-path{min-height:0;padding:28px 23px}.partner-path h2{margin-top:19px}.partner-contact{padding:32px 23px}}
@media(prefers-reduced-motion:reduce){.ecosystem-card,.partner-path,.partner-contact-action{transition:none}.ecosystem-card:hover,.partner-path:hover,.partner-contact-action:hover{transform:none}.partner-marquee-track{animation:none}}
