/* Compact desktop logo catalogue and visible source acknowledgements. */
.ecosystem-section .scene-inner{background:radial-gradient(ellipse at 76% 20%,#2631393b,transparent 61%),#0b121a;padding:98px 0 70px}
.eco-layout{display:block}
.eco-copy{display:flex;justify-content:space-between;align-items:end;gap:32px;margin-bottom:17px}
.eco-copy .eyebrow{font-size:11px;line-height:1.6;letter-spacing:.12em;color:#d1b296}
.eco-copy .eyebrow:before{content:'';display:inline-block;width:24px;height:1px;background:#c4a080;margin:0 13px 4px 0}
.eco-copy h2{font-size:clamp(29px,2.6vw,42px);line-height:1.25;font-weight:500;letter-spacing:-.035em;margin:10px 0 0;color:#f0f1ef}
.eco-copy h2>span{display:inline;white-space:normal}
.eco-copy h2>span+span{margin-left:.15em;color:#cbb59f}
.eco-lead{font-size:13px;line-height:1.8;color:#94a5b4;max-width:315px;margin:0}
.eco-platforms{min-width:0}
.eco-filterbar{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:9px}
.eco-filters{display:flex;gap:6px;align-items:center;min-width:0}
.eco-filters button{display:flex;align-items:center;gap:8px;min-height:33px;padding:7px 11px;border:1px solid #9faebd20;border-radius:5px;background:#16212b;color:#a7b5c1;font-size:12px;line-height:1.4;white-space:nowrap;cursor:pointer;transition:background .18s,color .18s,border-color .18s}
.eco-filters button[aria-selected=true]{background:#e4b48d;color:#272522;border-color:#e4b48d}
.eco-count{font-size:10px;opacity:.65;font-variant-numeric:tabular-nums}
.eco-assessment{font-size:11px;line-height:1.5;color:#bda78f;white-space:nowrap}
.eco-reference-panel{height:156px;outline-offset:5px}
.eco-catalog{list-style:none;margin:0;padding:0;height:100%;display:grid;grid-template-columns:repeat(8,minmax(0,1fr));grid-auto-rows:48px;gap:6px;align-content:center}
.eco-catalog>li{min-width:0;min-height:0}.eco-catalog>li[hidden]{display:none}
.eco-logo{display:flex;align-items:center;justify-content:center;min-width:0}
.eco-catalog .eco-logo{height:100%;padding:7px 8px;border:1px solid #9faebd17;border-radius:5px;background:#15202a9c;overflow:hidden;transition:background .18s,border-color .18s}
.eco-catalog .eco-logo:hover{border-color:#d2ad866f;background:#202b35}
.eco-catalog .eco-logo img{display:block;width:88px;height:24px;max-width:100%;object-fit:contain}
.eco-catalog .eco-openai img{width:100px;height:auto;max-height:48px}
.eco-catalog .eco-gemini img{width:91px}
.eco-catalog .eco-symbol{gap:6px}.eco-catalog .eco-symbol img{width:21px;height:21px;flex:none}
.eco-catalog .eco-symbol>span{font-size:12px;line-height:1.25;font-weight:500;letter-spacing:-.025em;color:#dce2e7}
.eco-catalog .eco-deepseek img{width:23px;height:19px}
.eco-catalog .eco-google-workspace>span,.eco-catalog .eco-microsoft365>span,.eco-catalog .eco-huggingface>span{font-size:11px}
.eco-catalog .eco-n8n img{width:100px;height:25px}.eco-catalog .eco-zapier img{border-radius:3px}
.eco-catalog:not([data-filter=all]){grid-template-columns:repeat(6,minmax(0,1fr));grid-auto-rows:48px;gap:7px}
.eco-catalog:not([data-filter=all]) .eco-logo{padding:7px 12px}
.eco-infra-compact{display:grid;grid-template-columns:109px 1fr;gap:16px;align-items:center;margin-top:13px;padding:10px 0;border-bottom:1px solid #a8b5c31c}
.eco-infra-label h3{font-size:12px;line-height:1.5;font-weight:500;color:#bac8d2}
.eco-infra-label p{font-size:10px;line-height:1.5;color:#94a995;margin-top:3px}
.eco-infrastructure{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;margin:0;padding:0;list-style:none}
.eco-infrastructure li{min-width:0}.eco-infrastructure a{display:flex;align-items:center;gap:13px;min-height:30px}
.eco-infrastructure .eco-logo{height:24px;justify-content:flex-start;flex:none}
.eco-infrastructure .eco-logo img{width:100px;height:22px;object-fit:contain;object-position:left center}
.eco-infrastructure .eco-vercel img{width:76px}.eco-infrastructure .eco-cloudflare img{width:96px}
.eco-role{font-size:10px;line-height:1.6;color:#8297a8}
.eco-credits-inline{margin-top:15px}
.eco-credits-heading{display:flex;align-items:baseline;justify-content:space-between;gap:22px;margin-bottom:7px}
.eco-credits-heading h3{font-size:17px;line-height:1.5;font-weight:500;color:#d9c4af;letter-spacing:.02em}
.eco-credits-heading>p{font-size:11px;line-height:1.7;color:#879bab}
.eco-source-row{display:grid;grid-template-columns:109px 1fr;align-items:center;gap:16px;min-height:43px}
.eco-source-row+.eco-source-row{border-top:1px solid #9aaebe0d}
.eco-source-label h4{font-size:11px;font-weight:400;line-height:1.5;color:#aab9c6}
.eco-source-label p{font-size:9px;line-height:1.5;margin-top:3px;color:#788f9f}
.eco-source-logos{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));align-items:center;gap:13px;margin:0;padding:0;list-style:none}
.eco-source-logos>li{min-width:0}
.eco-source-logo{display:flex;align-items:center;justify-content:center;gap:7px;min-width:0;min-height:38px;border-radius:4px;transition:background .18s}
.eco-source-logo:hover{background:#ffffff09}
.eco-source-logo img{display:block;width:95px;height:25px;max-width:100%;object-fit:contain}
.eco-source-symbol img{width:25px;height:25px;flex:none}
.eco-source-symbol>span{font-size:11px;font-weight:400;line-height:1.3;color:#c0cbd3;letter-spacing:-.01em}
.eco-source-light img{background:#f4f4f0;border-radius:3px;padding:4px;box-sizing:content-box;width:86px;height:23px}
.eco-source-light.eco-source-symbol img{width:22px;height:22px}
.eco-relationship{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-top:8px}
.eco-relationship p{font-size:10px;line-height:1.6;color:#748b9d;margin:0}
.eco-relationship button{display:flex;align-items:center;gap:9px;margin-left:auto;background:transparent;border:0;padding:0;color:#b7a18c;font-size:10px;line-height:1.8;white-space:nowrap;cursor:pointer}
.eco-relationship button span{font-size:13px}
.eco-info-dialog{width:min(600px,calc(100vw - 48px));max-height:75vh;overflow:auto;border:1px solid #8b9bad40;border-radius:14px;padding:32px;background:#141e29;color:#c5ced5}
.eco-info-dialog::backdrop{background:#04080dc9;backdrop-filter:blur(6px)}
.eco-info-heading{display:flex;justify-content:space-between;align-items:center;gap:24px;margin-bottom:26px}
.eco-info-heading h2{font-size:25px;font-weight:500;color:#e8e7e3;line-height:1.5}
.eco-info-heading button{flex:none;width:42px;height:42px;border:1px solid #a4b3c33a;background:transparent;color:#c6b09a;font-size:27px;border-radius:50%;cursor:pointer}
.eco-info-dialog p{font-size:15px;line-height:1.9;color:#a9b7c3}.eco-info-dialog p+p{margin-top:20px}
.eco-sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap;margin:-1px;padding:0;border:0}
[data-desktop-ecosystem] .service-header nav{gap:clamp(15px,1.8vw,30px);margin-right:12px}
[data-desktop-ecosystem] .service-header{gap:26px}
[data-desktop-ecosystem] .service-header nav a{white-space:nowrap}
html[lang=en] .eco-copy h2{font-size:clamp(28px,2.3vw,39px)}
html[lang=en] .eco-lead{max-width:330px}
html[lang=en] .eco-catalog .eco-volcengine>span{font-size:11px;max-width:72px}
html[lang=en] .eco-source-label h4{font-size:10px;max-width:110px}
@media(min-width:1650px) and (min-height:1080px){.eco-copy{margin-bottom:24px}.eco-copy h2{font-size:44px}.eco-lead{font-size:15px;max-width:365px}.eco-reference-panel{height:180px}.eco-catalog{grid-auto-rows:56px;gap:6px}.eco-catalog:not([data-filter=all]){grid-auto-rows:56px}.eco-catalog .eco-logo img{width:101px;height:27px}.eco-catalog .eco-openai img{width:146px;height:auto;max-height:64px}.eco-catalog .eco-symbol img{width:23px;height:23px}.eco-catalog .eco-symbol>span{font-size:13px}.eco-catalog .eco-google-workspace>span,.eco-catalog .eco-microsoft365>span,.eco-catalog .eco-huggingface>span{font-size:12px}.eco-infra-compact{padding:13px 0;margin-top:17px}.eco-credits-inline{margin-top:20px}.eco-source-row{min-height:49px}.eco-source-logo img{width:108px;height:28px}.eco-source-symbol img{width:28px;height:28px}.eco-source-symbol>span{font-size:12px}.eco-source-light img{width:94px;height:25px}.eco-source-light.eco-source-symbol img{width:25px;height:25px}}
@media(max-height:780px) and (min-width:981px){.ecosystem-section .scene-inner{padding:87px 0 62px}.eco-copy{margin-bottom:12px}.eco-copy h2{font-size:31px;margin-top:8px}.eco-copy .eyebrow{font-size:10px}.eco-lead{font-size:12px}.eco-reference-panel{height:144px}.eco-catalog{grid-auto-rows:44px;gap:6px}.eco-catalog:not([data-filter=all]){grid-auto-rows:44px}.eco-infra-compact{margin-top:9px;padding:8px 0}.eco-credits-inline{margin-top:11px}.eco-source-row{min-height:40px}.eco-source-logo{min-height:35px}.eco-credits-heading{margin-bottom:4px}.eco-relationship{margin-top:5px}.eco-credits-heading h3{font-size:16px}html[lang=en] .eco-copy h2{font-size:29px}}
@media(max-width:1200px){.eco-role{display:none}.eco-infrastructure a{justify-content:flex-start}.eco-catalog .eco-logo{padding-inline:6px}.eco-catalog .eco-symbol{gap:5px}.eco-catalog .eco-symbol>span{font-size:11px}.eco-catalog .eco-google-workspace>span{font-size:10px}.eco-catalog .eco-symbol img{width:19px;height:19px}.eco-source-logos{gap:9px}.eco-source-logo img{width:85px;height:24px}.eco-source-symbol img{width:23px;height:23px}.eco-source-symbol>span{font-size:10px}.eco-source-light img{width:76px;height:21px}.eco-source-light.eco-source-symbol img{width:20px;height:20px}}
@media(max-width:980px){.ecosystem-section .scene-inner{padding:94px 0 74px}.eco-copy .eco-lead{display:none}.eco-copy h2{font-size:29px}.eco-reference-panel{height:178px}.eco-catalog{grid-template-columns:repeat(6,minmax(0,1fr));grid-auto-rows:40px;gap:6px}.eco-catalog:not([data-filter=all]){grid-template-columns:repeat(5,minmax(0,1fr));grid-auto-rows:40px;gap:6px}.eco-infra-compact,.eco-source-row{grid-template-columns:125px 1fr;gap:10px}.eco-source-logos{grid-template-columns:repeat(6,minmax(0,1fr));gap:8px}.eco-source-row{min-height:47px}.eco-source-label h4{font-size:11px}.eco-source-logo img{width:74px;height:22px}.eco-source-symbol{gap:4px}.eco-source-symbol img{width:21px;height:21px}.eco-source-symbol>span{font-size:10px}.eco-source-light img{width:65px;height:18px}.eco-source-light.eco-source-symbol img{width:18px;height:18px}.eco-credits-heading>p{font-size:10px;max-width:380px}.eco-assessment{display:none}.eco-relationship{margin-left:150px}.eco-source-label p{font-size:8px}}
@media(max-width:700px){.ecosystem-section .scene-inner{padding:90px 0 80px;justify-content:flex-start;overflow:auto}.eco-copy h2{font-size:25px}.eco-filters{gap:5px;flex-wrap:wrap}.eco-filters button{font-size:11px;padding:6px 8px;min-height:30px}.eco-count{font-size:9px}.eco-reference-panel{height:222px}.eco-catalog{grid-template-columns:repeat(4,minmax(0,1fr));grid-auto-rows:32px;gap:6px}.eco-catalog:not([data-filter=all]){grid-template-columns:repeat(3,minmax(0,1fr));grid-auto-rows:40px}.eco-catalog .eco-symbol>span{font-size:10px}.eco-catalog .eco-symbol img{width:17px;height:17px}.eco-catalog .eco-logo{padding:4px}.eco-infra-compact{grid-template-columns:1fr;gap:6px}.eco-infra-label{display:flex;align-items:center;gap:10px}.eco-infra-label p{margin:0}.eco-infrastructure .eco-logo img{width:80px}.eco-infrastructure .eco-vercel img{width:65px}.eco-infrastructure .eco-cloudflare img{width:77px}.eco-credits-heading{display:block}.eco-credits-heading>p{margin-top:5px}.eco-source-row{display:block;padding:8px 0}.eco-source-label{display:flex;align-items:center;gap:12px;margin-bottom:5px}.eco-source-label p{margin:0}.eco-source-logos{grid-template-columns:repeat(3,minmax(0,1fr));gap:6px}.eco-source-logo img{width:81px}.eco-source-symbol img{width:22px}.eco-source-light img{width:73px}.eco-source-light.eco-source-symbol img{width:20px}.eco-relationship{margin-left:0;align-items:flex-start}.eco-relationship p{max-width:70%}html[lang=en] .eco-copy h2{font-size:25px}}
@media(prefers-reduced-motion:reduce){.eco-filters button,.eco-catalog .eco-logo,.eco-source-logo{transition:none}}
/* Each source group has its own even rhythm; marks never grow on filtering. */
.eco-source-row[data-source-group=universities] .eco-source-logos{grid-template-columns:repeat(4,minmax(0,1fr))}
.eco-source-row[data-source-group=research] .eco-source-logos{grid-template-columns:repeat(4,minmax(0,1fr))}
.eco-source-row[data-source-group=industry] .eco-source-logos{grid-template-columns:repeat(6,minmax(0,1fr));row-gap:4px}
.eco-source-row[data-source-group=universities] .eco-source-logo{min-height:35px}
.eco-source-mckinsey img{border-radius:3px}
.eco-source-stanford img{min-width:85px}
@media(max-width:980px) and (min-width:701px){.eco-credits-inline{margin-left:150px}.eco-credits-heading>p{display:none}.eco-source-row{grid-template-columns:95px 1fr;gap:10px;min-height:43px}.eco-source-label h4{font-size:10px}.eco-source-logo{min-height:34px}.eco-source-logos{gap:7px}.eco-source-row[data-source-group=universities]{padding:4px 0}.eco-source-row[data-source-group=universities] .eco-source-logos{row-gap:5px}}
@media(max-width:700px){.eco-source-row[data-source-group=universities] .eco-source-logos{grid-template-columns:repeat(4,minmax(0,1fr))}.eco-source-row[data-source-group=research] .eco-source-logos,.eco-source-row[data-source-group=industry] .eco-source-logos{grid-template-columns:repeat(3,minmax(0,1fr))}}
/* Fixed, smaller mark sizes: available space changes the grid, never the brand proportions. */
.ecosystem-section .eco-catalog .eco-logo img{width:70px;height:20px;max-width:none;object-fit:contain;flex-shrink:0}
.ecosystem-section .eco-catalog .eco-openai img{width:85px;height:auto;max-height:38px}
.ecosystem-section .eco-catalog .eco-gemini img{width:73px}
.ecosystem-section .eco-catalog .eco-symbol{gap:5px}
.ecosystem-section .eco-catalog .eco-symbol img{width:17px;height:17px}
.ecosystem-section .eco-catalog .eco-symbol>span{font-size:11px;line-height:1.3;max-width:74px;white-space:normal}
.ecosystem-section .eco-catalog .eco-google-workspace>span,.ecosystem-section .eco-catalog .eco-microsoft365>span,.ecosystem-section .eco-catalog .eco-huggingface>span{font-size:10px;max-width:67px}
.ecosystem-section .eco-catalog .eco-deepseek img{width:19px;height:16px}
.ecosystem-section .eco-catalog .eco-n8n img{width:80px;height:21px}
.ecosystem-section .eco-infrastructure .eco-logo img{width:79px;height:18px;max-width:none}
.ecosystem-section .eco-infrastructure .eco-vercel img{width:62px}
.ecosystem-section .eco-infrastructure .eco-cloudflare img{width:76px}
.ecosystem-section .eco-source-logo img{width:74px;height:21px;max-width:none;object-fit:contain;flex-shrink:0}
.ecosystem-section .eco-source-symbol img{width:20px;height:20px}
.ecosystem-section .eco-source-symbol>span{font-size:11px;line-height:1.35}
.ecosystem-section .eco-source-light img{width:67px;height:19px;padding:3px}
.ecosystem-section .eco-source-light.eco-source-symbol img{width:18px;height:18px}
.ecosystem-section .eco-source-stanford img{min-width:0;width:74px}
body.is-desktop-flow .eco-copy{align-items:flex-start;gap:24px}
body.is-desktop-flow .eco-copy h2{font-size:clamp(28px,4vw,40px);line-height:1.3}
body.is-desktop-flow .eco-copy .eco-lead{display:block;font-size:14px;line-height:1.8;max-width:340px}
body.is-desktop-flow .eco-copy .eyebrow{font-size:12px}
body.is-desktop-flow .eco-filterbar{align-items:center;margin:25px 0 14px}
body.is-desktop-flow .eco-filters{flex-wrap:wrap;gap:8px}
body.is-desktop-flow .eco-filters button{font-size:12px;min-height:36px;padding:8px 12px}
body.is-desktop-flow .eco-assessment{display:none}
body.is-desktop-flow .eco-reference-panel{height:auto;min-height:0}
body.is-desktop-flow .eco-catalog,body.is-desktop-flow .eco-catalog:not([data-filter=all]){height:auto;grid-template-columns:repeat(auto-fit,minmax(min(100%,118px),1fr));grid-auto-rows:46px;gap:8px;align-content:start}
body.is-desktop-flow .eco-catalog .eco-logo,body.is-desktop-flow .eco-catalog:not([data-filter=all]) .eco-logo{padding:8px}
body.is-desktop-flow .eco-infra-compact{margin:24px 0 0;padding:20px 0;grid-template-columns:110px 1fr;gap:20px}
body.is-desktop-flow .eco-infra-label h3{font-size:13px}
body.is-desktop-flow .eco-infra-label p{font-size:11px}
body.is-desktop-flow .eco-infrastructure{gap:20px}
body.is-desktop-flow .eco-infrastructure a{flex-direction:column;align-items:flex-start;gap:9px}
body.is-desktop-flow .eco-role{display:block;font-size:11px}
body.is-desktop-flow .eco-credits-inline{margin:28px 0 0}
body.is-desktop-flow .eco-credits-heading{align-items:start;gap:20px;margin-bottom:14px}
body.is-desktop-flow .eco-credits-heading h3{font-size:20px}
body.is-desktop-flow .eco-credits-heading>p{display:block;font-size:12px;line-height:1.8;max-width:350px}
body.is-desktop-flow .eco-source-row{grid-template-columns:110px 1fr;gap:20px;min-height:0;padding:14px 0}
body.is-desktop-flow .eco-source-label h4{font-size:12px;max-width:none}
body.is-desktop-flow .eco-source-label p{font-size:10px;line-height:1.6}
body.is-desktop-flow .eco-source-logo{min-height:37px}
body.is-desktop-flow .eco-source-row[data-source-group=universities] .eco-source-logos,body.is-desktop-flow .eco-source-row[data-source-group=research] .eco-source-logos{grid-template-columns:repeat(4,minmax(104px,1fr));gap:12px}
body.is-desktop-flow .eco-source-row[data-source-group=industry] .eco-source-logos{grid-template-columns:repeat(auto-fit,minmax(104px,1fr));gap:12px}
body.is-desktop-flow .eco-relationship{margin:14px 0 0;align-items:flex-start;gap:20px}
body.is-desktop-flow .eco-relationship p,body.is-desktop-flow .eco-relationship button{font-size:11px;line-height:1.8}
@media(max-width:900px){body.is-desktop-flow .eco-copy{display:block}body.is-desktop-flow .eco-copy .eco-lead{margin-top:17px;max-width:46ch}body.is-desktop-flow .eco-source-row{display:block;padding:16px 0}body.is-desktop-flow .eco-source-label{display:flex;align-items:baseline;gap:16px;margin-bottom:10px}body.is-desktop-flow .eco-source-label p{margin:0}}
@media(max-width:650px){body.is-desktop-flow .eco-infra-compact{display:block}body.is-desktop-flow .eco-infra-label{display:flex;align-items:baseline;gap:12px;margin-bottom:16px}body.is-desktop-flow .eco-infra-label p{margin:0}body.is-desktop-flow .eco-infrastructure{gap:12px}body.is-desktop-flow .eco-credits-heading{display:block}body.is-desktop-flow .eco-credits-heading>p{margin-top:7px}body.is-desktop-flow .eco-source-row[data-source-group=universities] .eco-source-logos,body.is-desktop-flow .eco-source-row[data-source-group=research] .eco-source-logos,body.is-desktop-flow .eco-source-row[data-source-group=industry] .eco-source-logos{grid-template-columns:repeat(3,minmax(88px,1fr));gap:12px}}
@media(max-width:440px){body.is-desktop-flow .eco-source-row[data-source-group=universities] .eco-source-logos,body.is-desktop-flow .eco-source-row[data-source-group=research] .eco-source-logos,body.is-desktop-flow .eco-source-row[data-source-group=industry] .eco-source-logos{grid-template-columns:repeat(2,minmax(104px,1fr))}body.is-desktop-flow .eco-infrastructure{grid-template-columns:repeat(2,minmax(104px,1fr));row-gap:18px}}
.ecosystem-section :is(.eco-infra-label h3,.eco-credits-heading h3,.eco-source-label h4){margin:0}
/* Optical sizing preserves each original mark, including its clear space. */
.ecosystem-section .eco-catalog .eco-anthropic img{width:78px;height:18px}
.ecosystem-section .eco-source-logo{min-height:40px;gap:7px;border:1px solid transparent;transition:background .18s,border-color .18s}
.ecosystem-section .eco-source-logo:hover{background:#ffffff06;border-color:#bda78f28}
.ecosystem-section .eco-source-mark{display:flex;align-items:center;justify-content:center;width:96px;height:34px;flex:none}
.ecosystem-section .eco-source-mark img{width:78px;height:24px;max-width:100%;min-width:0;padding:0;background:none;border-radius:0;box-sizing:border-box;object-fit:contain}
.ecosystem-section .eco-source-light .eco-source-mark{width:88px;height:30px;background:#f4f4f0;border-radius:3px}
.ecosystem-section .eco-source-light .eco-source-mark img{width:78px;height:26px}
.ecosystem-section .eco-source-symbol .eco-source-mark{width:20px;height:22px}
.ecosystem-section .eco-source-symbol .eco-source-mark img{width:20px;height:20px}
.ecosystem-section .eco-source-jaist .eco-source-mark img{width:84px;height:34px;transform:translateY(3px)}
.ecosystem-section .eco-source-mit .eco-source-mark img{width:82px}
.ecosystem-section .eco-source-stanford .eco-source-mark img{width:74px}
.ecosystem-section .eco-source-harvard .eco-source-mark img{width:82px}
.ecosystem-section .eco-source-pwc .eco-source-mark{width:38px;height:30px}
.ecosystem-section .eco-source-pwc .eco-source-mark img{width:28px;height:24px}
.ecosystem-section .eco-source-nist .eco-source-mark img{width:86px}
.ecosystem-section .eco-source-swire .eco-source-mark{width:100px;height:32px}
.ecosystem-section .eco-source-swire .eco-source-mark img{width:96px;height:31px}
.ecosystem-section .eco-source-hanglung .eco-source-mark img{width:94px}
.ecosystem-section .eco-source-simon .eco-source-mark{width:88px;height:36px;background:#fff}
.ecosystem-section .eco-source-simon .eco-source-mark img{width:86px;height:36px}
.ecosystem-section .eco-source-yintai .eco-source-mark img{width:50px;height:30px}
.ecosystem-section .eco-source-urw .eco-source-mark img{width:84px;height:28px}
.ecosystem-section .eco-source-mitsubishi-estate .eco-source-mark{width:102px}
.ecosystem-section .eco-source-mitsubishi-estate .eco-source-mark img{width:94px}
.ecosystem-section :is(.eco-logo,.eco-infrastructure a,.eco-source-logo,.eco-filters button,.eco-relationship button):focus-visible{outline:2px solid #deb58e;outline-offset:3px}
.ecosystem-section .eco-catalog .eco-logo:hover{background:#1d2933;border-color:#bda78f66}
body.is-desktop-flow .eco-source-row[data-source-group=industry] .eco-source-logos{grid-template-columns:repeat(6,minmax(0,1fr));column-gap:10px;row-gap:6px}
body.is-desktop-flow .eco-source-row[data-source-group=universities] .eco-source-logos,body.is-desktop-flow .eco-source-row[data-source-group=research] .eco-source-logos{grid-template-columns:repeat(4,minmax(0,1fr))}
@media(max-width:1100px){body.is-desktop-flow .eco-source-row[data-source-group=industry] .eco-source-logos{grid-template-columns:repeat(4,minmax(0,1fr))}}
@media(max-width:650px){body.is-desktop-flow .eco-source-row[data-source-group] .eco-source-logos{grid-template-columns:repeat(3,minmax(0,1fr))}.ecosystem-section .eco-source-symbol>span{font-size:10px;max-width:85px}}
@media(max-width:440px){body.is-desktop-flow .eco-source-row[data-source-group] .eco-source-logos{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(prefers-reduced-motion:reduce){.ecosystem-section .eco-source-logo{transition:none}}
/* Industry references remain visible as separate, named rows. */
.ecosystem-section .eco-source-jll .eco-source-mark{width:72px}
.ecosystem-section .eco-source-jll .eco-source-mark img{width:56px;height:26px}
.eco-source-row:is([data-source-group=architecture],[data-source-group=consulting]) .eco-source-logos{grid-template-columns:repeat(5,minmax(0,1fr));gap:6px 12px}
.ecosystem-section .eco-source-mark{max-width:100%}
body:not(.is-desktop-flow) .eco-source-row[data-source-group=universities] .eco-source-logos{grid-template-columns:repeat(8,minmax(0,1fr));gap:8px}
body:not(.is-desktop-flow) .eco-source-row[data-source-group=universities] .eco-source-logo{min-height:40px}
body:not(.is-desktop-flow) .eco-relationship{padding-right:112px}
body.is-desktop-flow .eco-source-row:is([data-source-group=architecture],[data-source-group=consulting]) .eco-source-logos{grid-template-columns:repeat(5,minmax(0,1fr));gap:12px}
@media(max-width:650px){body.is-desktop-flow .eco-source-row:is([data-source-group=architecture],[data-source-group=consulting]) .eco-source-logos{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:440px){body.is-desktop-flow .eco-source-row:is([data-source-group=architecture],[data-source-group=consulting]) .eco-source-logos{grid-template-columns:repeat(2,minmax(0,1fr))}}
/* Small marks keep enough width for their original architectural wordmarks. */
.eco-source-row[data-source-group=research] .eco-source-logos,body.is-desktop-flow .eco-source-row[data-source-group=research] .eco-source-logos{grid-template-columns:repeat(3,minmax(0,1fr))}
.ecosystem-section .eco-source-logo:is(.eco-source-shigeru-ban,.eco-source-kisho-kurokawa) .eco-source-mark{width:116px}
.ecosystem-section .eco-source-logo:is(.eco-source-shigeru-ban,.eco-source-kisho-kurokawa) .eco-source-mark img{width:106px;height:27px}
.ecosystem-section .eco-source-gehry .eco-source-mark{width:118px;background:#fff}
.ecosystem-section .eco-source-gehry .eco-source-mark img{width:110px;height:25px}
.ecosystem-section .eco-source-kpf .eco-source-mark{width:66px}
.ecosystem-section .eco-source-kpf .eco-source-mark img{width:54px;height:26px}
.ecosystem-section .eco-source-perkinswill>span:not(.eco-source-mark),.ecosystem-section .eco-source-mckinsey>span:not(.eco-source-mark){max-width:110px}
.ecosystem-section .eco-source-dsr .eco-source-mark{background:#f4f4f0}
.ecosystem-section .eco-source-dsr .eco-source-mark img{width:18px;height:18px}
.ecosystem-section .eco-source-logo:is(.eco-source-mri,.eco-source-jri,.eco-source-funai-soken,.eco-source-bain) .eco-source-mark{width:116px}
.ecosystem-section .eco-source-logo:is(.eco-source-mri,.eco-source-jri,.eco-source-funai-soken,.eco-source-bain) .eco-source-mark img{width:106px;height:26px}
.ecosystem-section .eco-source-murc .eco-source-mark{width:142px;background:#fff}
.ecosystem-section .eco-source-murc .eco-source-mark img{width:134px;height:26px}
.ecosystem-section .eco-source-nri .eco-source-mark img{width:43px;height:22px}
.ecosystem-section .eco-source-bain .eco-source-mark{background:#f4f4f0;border-radius:3px}

/* A complete catalogue fits below the header at ordinary desktop heights. */
@media (min-height:900px) and (max-height:999px) {
  body:not(.is-desktop-flow) #ecosystem .scene-inner { padding:108px 0 60px; }
  body:not(.is-desktop-flow) .eco-copy { margin-bottom:12px; }
  body:not(.is-desktop-flow) .eco-copy h2 { font-size:clamp(29px,2.4vw,38px); }
  body:not(.is-desktop-flow) .eco-reference-panel { height:138px; }
  body:not(.is-desktop-flow) .eco-catalog,
  body:not(.is-desktop-flow) .eco-catalog:not([data-filter=all]) { grid-auto-rows:42px; }
  body:not(.is-desktop-flow) .eco-infra-compact { margin-top:10px;padding:8px 0; }
  body:not(.is-desktop-flow) .eco-credits-inline { margin-top:12px; }
  body:not(.is-desktop-flow) .eco-credits-heading { margin-bottom:4px; }
  body:not(.is-desktop-flow) .eco-source-row { min-height:40px; }
  body:not(.is-desktop-flow) .eco-source-row .eco-source-logo { min-height:38px; }
}
/* Long institutional marks retain their original image, with a readable short name. */
.ecosystem-section .eco-source-murc { flex-direction:column;gap:1px; }
.ecosystem-section .eco-source-murc .eco-source-mark { height:19px; }
.ecosystem-section .eco-source-murc .eco-source-mark img { height:17px; }
.ecosystem-section .eco-source-caption { font-size:10px;line-height:1.3;letter-spacing:.08em;color:#c0cbd3; }
.ecosystem-section .eco-source-logo { position:relative; }
.ecosystem-section .eco-source-logo:focus-visible::after {
  content:attr(title);position:absolute;z-index:20;bottom:calc(100% + 6px);
  left:50%;transform:translateX(-50%);width:max-content;max-width:240px;
  padding:7px 10px;border:1px solid #d8b08b55;border-radius:5px;
  background:#1b2530;color:#ede3d9;font-size:12px;line-height:1.5;text-align:center;
  pointer-events:none;box-shadow:0 5px 18px #0004;
}

/* The catalogue can scroll within its chapter; the original deck and rail stay fixed. */
body:not(.is-desktop-flow) #ecosystem .eco-layout {
  flex:0 1 auto;min-height:0;max-height:100%;overflow-y:auto;overflow-x:clip;
  overscroll-behavior-y:contain;scrollbar-width:thin;scrollbar-color:#7c685655 transparent;
  scrollbar-gutter:stable;padding-right:12px;
}
