/* Public ecosystem presentation; reuse the original black/grey/cobalt tokens. */
.ecosystem-page,.eco-surface{color:var(--text);background:var(--bg);color-scheme:dark}
.ecosystem-page .page-hero{--text-faint:var(--text-dim)}
.eco-surface h2,.ecosystem-page .section h2{margin:16px 0 20px;max-width:25ch}
.eco-surface p{color:var(--text-dim)}
.eco-warm,.ecosystem-overview :is(#capabilities,#capability-map),.ecosystem-overview>.section:last-child{background:var(--bg-1)}
.eco-surface :is(a,button):focus-visible{outline:2px solid var(--signal-2);outline-offset:5px}
.eco-status{display:inline-block;font:500 12px/1.6 var(--font-mono);letter-spacing:.035em;color:var(--signal-2);text-transform:uppercase}
.eco-link{display:inline-flex;font-weight:600;gap:8px;border-bottom:1px solid currentColor;margin-top:24px;padding-bottom:5px;color:var(--signal-2)}
.eco-link:hover{color:var(--text)}
.domain-list{margin-top:18px;display:flex;flex-wrap:wrap;gap:8px}
.domain-list li{border-left:2px solid var(--signal);padding:4px 8px;font-size:14px;background:var(--bg-2)}
/* One fixed graph for the homepage and detailed ecosystem page. */
.capability-network{position:relative;grid-template-columns:58% 38%;gap:4%}
.capability-anchor{position:absolute;top:0;scroll-margin-top:110px}
.capability-network .network-stage{aspect-ratio:640/500}
.capability-network .net-panel{height:400px;min-height:400px}
.capability-network .net-panel-label{color:var(--text-dim)}
.capability-network .net-panel-title{font-size:1.3rem;line-height:1.35;min-height:56px}
.capability-network .net-panel-text{font-size:.92rem;min-height:94px}
.capability-network :is(.net-panel-meta,.net-panel-support){margin-top:18px;font-size:.87rem}
.capability-network :is(.net-panel-meta,.net-panel-support)>span{display:block;font:10px/1.5 var(--font-mono);letter-spacing:.08em;text-transform:uppercase;color:var(--text-dim);margin-bottom:7px}
.capability-network :is(.net-panel-meta,.net-panel-support)>strong{font-weight:500;color:var(--text)}
.capability-network .net-panel-link{margin-top:auto}
.capability-network .net-label{font-size:14px;fill:var(--text)}
.capability-network .net-number{font:11px var(--font-mono);text-anchor:middle;fill:var(--text-dim);pointer-events:none}
.capability-network .net-line{stroke:var(--text-faint);opacity:.8;transition:stroke .2s var(--ease),opacity .2s var(--ease)}
.capability-network .net-line.is-active{stroke:var(--signal);opacity:1}
.capability-network .net-node .net-dot{stroke:var(--text-dim);transition:stroke .2s var(--ease),fill .2s var(--ease)}
.capability-network .net-central .net-dot{stroke-width:1.7}
.capability-network .net-node.is-active .net-dot{stroke:var(--signal)}
.capability-network .net-node.is-active .net-number{fill:var(--signal-2)}
.capability-network .net-node .net-label{transition:fill .2s var(--ease)}
.capability-network .net-node:focus-visible .net-dot{stroke-width:3;stroke:var(--signal-2)}
.detailed-network .net-panel{height:560px;min-height:560px;background:var(--bg);border-top:2px solid var(--signal)}
.detailed-network .eco-status{margin-bottom:16px}
.cap-text-alternative{grid-column:1/-1}.cap-text-alternative details{padding:16px 0}
/* Systems keep distinct roles within a shared visual language. */
.system-panels{display:grid;grid-template-columns:1.2fr 1fr;gap:28px;margin-top:44px}
.system-panel{padding:34px;border-top:2px solid var(--signal);background:var(--bg);scroll-margin-top:120px}
.system-heading{display:flex;justify-content:space-between;align-items:start;gap:24px;margin-bottom:28px}
.system-num{font:13px var(--font-mono);color:var(--signal-2)}
.system-panel h3{font-size:32px;margin-bottom:13px}.system-label{font-size:14px;font-weight:500;margin-bottom:24px}.system-panel p{margin-bottom:18px}
.system-sustin-platform{background:var(--bg-2)}
.workspace-path{display:flex;flex-wrap:wrap;gap:8px;margin:30px 0 22px}
.workspace-path span{padding:12px 14px;border:1px solid var(--line-strong);border-bottom:3px solid var(--signal);font-size:14px}
.system-note{font-size:14px!important;line-height:1.7}
.system-availability{border-top:1px solid var(--line-strong);padding-top:24px}.system-availability p{display:grid;gap:5px;font-size:14px}.system-availability b{font:12px var(--font-mono);color:var(--signal-2)}
.cert-relationships{display:grid;grid-template-columns:1fr 1.35fr;gap:8px 18px;border-top:1px solid var(--line-strong);padding-top:20px;font-size:14px}.cert-relationships dt{font-weight:600}
.coordinate-concept{display:grid;gap:16px;margin:24px 0 22px;padding:22px 0 0 25px;border-left:1px solid var(--text-dim);border-bottom:1px solid var(--text-dim);background:repeating-linear-gradient(0deg,transparent 0 31px,var(--line) 31px 32px);font:14px var(--font-mono)}
.coordinate-concept span:nth-child(2){padding-left:20%}.coordinate-concept span:last-child{padding-left:35%;padding-bottom:15px}
.matrix-filters{display:flex;flex-wrap:wrap;gap:9px;margin:30px 0 24px}
.matrix-filters button{border:1px solid var(--text-dim);padding:10px 14px;font-size:14px;color:var(--text);min-height:44px}
.matrix-filters button[aria-pressed=true]{background:var(--signal);border-color:var(--signal);color:var(--bg)}
.matrix-key{display:flex;flex-wrap:wrap;gap:22px;margin-bottom:22px;font-size:14px}.matrix-key span{display:flex;align-items:center;gap:8px}
.role-marker{display:inline-block;width:11px;height:11px;border:1px solid var(--signal-2);flex:none}.role-marker.primary{background:var(--signal-2);border-radius:50%}.role-marker.supporting{border-radius:50%}.role-marker.input{transform:rotate(45deg);width:9px;height:9px;background:var(--signal-soft)}
.cap-matrix{border-collapse:collapse;width:100%;table-layout:fixed}.cap-matrix caption{text-align:left;font:12px var(--font-mono);margin-bottom:14px;color:var(--text-dim)}
.cap-matrix th,.cap-matrix td{border-bottom:1px solid var(--line);padding:20px 12px;font-size:14px;line-height:1.5;text-align:center;transition:background .2s var(--ease)}
.cap-matrix th:first-child{width:27%;text-align:left}.cap-matrix thead,.cap-matrix tbody tr:nth-child(even){background:var(--bg-2)}.cap-matrix td .role-marker{margin-right:7px}.role-label{font-size:12px}
.cap-matrix [data-system].is-muted{background:transparent;color:var(--text-dim)}.cap-matrix [data-system].is-highlighted{background:var(--signal-soft)}
.cap-matrix tbody tr:hover>:is(th,td),.cap-matrix tbody tr:focus-within>:is(th,td){background:var(--signal-soft)}.cap-matrix tbody tr:focus-visible{outline:2px solid var(--signal-2);outline-offset:-2px}
.matrix-mobile-system{display:none}.matrix-empty{color:var(--text-dim)}.matrix-caption{margin-top:20px;font-size:14px}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.embedded-list{margin-top:35px}.embedded-list>div{display:grid;grid-template-columns:1fr 1.8fr;gap:28px;padding:26px 0;border-top:1px solid var(--line-strong)}.embedded-list dt a{display:block;font:500 21px var(--font-display);margin-bottom:8px}.embedded-list dd{font-size:16px;color:var(--text-dim)}
.domain-roles{display:grid;grid-template-columns:1.4fr 1fr;gap:64px;border-top:1px solid var(--line-strong);padding-top:36px}.domain-roles h3{margin:12px 0 18px;font-size:29px}.domain-roles p{font-size:15px}.domain-roles .eco-status{display:block;margin-top:12px}
.legacy-context{margin-top:24px;font-size:16px;color:var(--text-dim);max-width:75ch}
.capability-scope{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:0 26px;margin-top:40px}.capability-scope li{padding:20px 0;border-top:1px solid var(--line-strong);font-size:16px}
.benchmark-areas{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:34px;margin-top:40px}.benchmark-areas h3{font-size:25px;line-height:1.2;margin:20px 0}.benchmark-areas p{font-size:16px}.domains-heading{margin:40px 0 20px;font-size:23px}
.resource-note{margin-top:18px;font-size:14px;color:var(--text-dim)}
.system-path{margin-top:36px;max-width:780px}.system-path li{position:relative;margin-left:12px;padding:0 0 36px 32px;border-left:1px solid var(--line-signal);display:grid;grid-template-columns:1fr 1.4fr;gap:24px}.system-path li:before{content:'';position:absolute;left:-6px;top:7px;width:11px;height:11px;border:1px solid var(--signal-2);border-radius:50%;background:var(--bg)}.system-path li:last-child{padding-bottom:0}.system-path a{color:var(--signal-2)}.system-path span{color:var(--text-dim)}
/* Shared navigation and footer use the same original site colours. */
.nav-item:has(.mega-grouped){position:static}.mega:has(.mega-grouped){width:min(820px,calc(100vw - 48px));left:50%;top:100%}
.mega-grouped{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));padding:28px;gap:24px;background:var(--bg-1)}
.mega-group h2{font:12px var(--font-mono);text-transform:uppercase;letter-spacing:.1em;color:var(--signal-2);margin:0 12px 14px}.mega-group a .mega-label{font-size:14px}.mega-group a .mega-desc{font-size:13px;max-width:24ch;color:var(--text-dim)}.mobile-group-label{display:block;font:12px var(--font-mono);color:var(--signal-2);padding:20px 0 6px}.mobile-nav-item.open .mobile-sub{max-height:none}
.site-footer :is(.footer-copy,.footer-legal){color:var(--text-dim)}.footer-legal span{opacity:1}
.footer-grid{grid-template-columns:minmax(260px,1.5fr) 1.25fr .9fr 1fr 1.1fr;gap:30px}.footer-col h2{font:12px var(--font-mono);letter-spacing:.1em;text-transform:uppercase;color:var(--text-dim);margin-bottom:18px}.footer-col a{font-size:14px}.footer-top.wrap,.footer-bottom.wrap{padding-left:var(--gutter);padding-right:var(--gutter)}
.header-actions .profile-cta{font-size:.72rem;padding:1.05em 1.15em}
@media(min-width:1251px) and (max-width:1480px){.site-header .wrap{gap:16px}.nav-item>a{padding:10px 10px}}
@media(min-width:960px) and (max-width:1250px){.primary-nav{display:none}.nav-toggle{display:flex}.header-actions .profile-cta{display:inline-flex}}
@media(max-width:1100px){.capability-network{grid-template-columns:1fr;gap:32px}.capability-network .net-panel{width:100%}.capability-network .network-stage{max-width:720px;margin:auto}}
@media(max-width:1040px){.footer-grid{grid-template-columns:1fr 1fr}.footer-brand{grid-column:1/-1}.system-panel{padding:26px}.domain-roles{gap:30px}}
@media(max-width:767px){
 .system-panels,.domain-roles,.capability-scope,.benchmark-areas{grid-template-columns:1fr}.system-panel h3{font-size:28px}.system-heading{gap:16px}.domain-roles{gap:35px}.embedded-list>div{grid-template-columns:1fr;gap:10px}.benchmark-areas>div{border-top:1px solid var(--line-strong);padding-top:24px}
 .cap-matrix,.cap-matrix tbody,.cap-matrix tr,.cap-matrix th,.cap-matrix td{display:block;width:100%!important}.cap-matrix thead{display:none}.cap-matrix caption{display:block;width:100%}.cap-matrix tr{padding:16px 0;border-top:1px solid var(--line-strong)}.cap-matrix th{border:0;padding:12px 0;font-size:17px}.cap-matrix td{display:flex;align-items:center;text-align:left;gap:8px;padding:12px 8px;border:0}.matrix-mobile-system{display:block;margin-right:auto;max-width:47%;font-size:14px}.role-label{font-size:12px}.cap-matrix td:has(.matrix-empty),.cap-matrix td.is-muted{display:none}.cap-matrix td.is-highlighted:has(.matrix-empty){display:flex}.matrix-filters button{flex:1 1 140px}.matrix-filters button:first-child{flex-basis:100%}
 .cert-relationships{grid-template-columns:1fr 1.2fr;gap:9px;font-size:13px}.system-path li{grid-template-columns:1fr;gap:8px}.footer-grid{gap:36px 22px}.ecosystem-page .page-hero h1{font-size:clamp(2.2rem,7vw,3.8rem)}.ecosystem-page .btn{white-space:normal;text-align:left;max-width:100%}
}
@media(max-width:640px){
 .capability-network{margin-top:40px;gap:22px}.capability-network .net-mobile-path{display:block;margin-left:34px}.capability-network .net-mobile-path button{position:relative;width:100%;min-height:78px;padding:18px 0 18px 48px;display:flex;align-items:center;border-left:1px solid var(--text-dim);text-align:left}.capability-network .net-mobile-path button.net-central{min-height:96px}.capability-network .net-mobile-path button::before{display:none}
 .capability-network .mobile-net-dot{position:absolute;left:0;top:50%;transform:translate(-50%,-50%);display:grid;place-items:center;width:var(--size);height:var(--size);border-radius:50%;border:1.4px solid var(--text-dim);background:var(--bg-1);font:12px var(--font-mono);color:var(--text-dim);transition:border-color .2s var(--ease),color .2s var(--ease)}.capability-network .mp-title{font-size:16px;font-weight:500;line-height:1.45;color:var(--text)}.capability-network .net-mobile-path .is-active .mobile-net-dot{border-color:var(--signal);background:var(--signal-soft);color:var(--signal-2)}.capability-network .net-mobile-path .is-active .mp-title{color:var(--signal-2)}.capability-network .net-mobile-path button:focus-visible{outline:2px solid var(--signal-2);outline-offset:5px}.capability-network .net-panel{height:440px;min-height:440px;padding:24px}.detailed-network .net-panel{height:600px;min-height:600px}.capability-network .net-panel-text{min-height:124px}
}
@media(prefers-reduced-motion:reduce){.capability-network :is(.net-line,.net-dot,.net-label,.mobile-net-dot),.cap-matrix :is(th,td){transition:none}}
