/* Full software/format inventories stay in normal-flow HTML. Two route grids
 * converge on a shared Studio hub; no radial labels or font shrinking. */
.ksl-linking{--ksl-link:#72e0d6;--ksl-import:#93bed8;--ksl-line:#6396a63b;--ksl-ready:1;min-width:0;container:ksl / inline-size}
.ksl-intro{color:var(--body-text);font-size:var(--type-body-size);line-height:1.8;max-width:68ch;margin:0 0 34px}
.ksl-route-controls{border:0;margin:0 0 25px;padding:0;min-width:0}
.ksl-route-controls legend{float:left;width:100%;padding:0;margin:0 0 15px;font-size:var(--type-secondary-size);font-weight:700;line-height:1.6;color:var(--ink,#073449)}
.ksl-route-controls>div{clear:both;display:flex;flex-wrap:wrap;gap:12px}
.ksl-route-controls label{position:relative;min-width:0;flex:0 1 220px;cursor:pointer}
.ksl-route-controls input{position:absolute;width:1px;height:1px;padding:0;margin:-1px;clip-path:inset(50%);overflow:hidden;white-space:nowrap}
.ksl-route-controls label>span{display:flex;align-items:center;gap:12px;min-height:54px;padding:13px 20px;border:1px solid #b5d1da;background:#f6fbfb;color:var(--body-text);font-size:var(--type-body-size);font-weight:700;line-height:1.6;overflow-wrap:anywhere;transition:background 240ms,border-color 240ms}
.ksl-route-controls i{height:9px;width:9px;border:1px solid #158d99;background:#d5f3ed;flex:none}
.ksl-route-controls label:nth-child(2) i{border-radius:50%;background:#c7deec;border-color:#598ba7}
.ksl-route-controls input:checked+span{background:#dff3f1;border-color:#32b1b6;box-shadow:inset 0 -2px 0 #32b1b6}
.ksl-route-controls input:focus-visible+span{outline:2px solid var(--cyan,#3bc5f3);outline-offset:4px}
.ksl-route-controls label:hover>span{border-color:var(--cyan,#3bc5f3)}
.ksl-network{position:relative;isolation:isolate;min-width:0;display:grid;grid-template-columns:minmax(0,1.15fr) 190px minmax(0,1fr);gap:24px;padding:34px 28px;background:radial-gradient(ellipse at center,#1c5d6b99,transparent 60%),#082b3d;border:1px solid #376273}
.ksl-network:before{content:"";position:absolute;inset:0;z-index:-1;pointer-events:none;background-image:linear-gradient(#7bb5c209 1px,transparent 1px),linear-gradient(90deg,#7bb5c209 1px,transparent 1px);background-size:42px 42px;mask-image:radial-gradient(ellipse at center,#000,transparent 80%)}
.ksl-group{min-width:0;display:flex;flex-direction:column;position:relative}
.ksl-group-heading{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:16px;min-width:0}
.ksl-network .ksl-group-heading h3{margin:0;color:#eefaf8;font:600 var(--type-subhead-size)/1.3 var(--font-display);letter-spacing:-.035em}
.ksl-route-symbol{display:flex;align-items:center;min-width:38px;height:20px;flex:none}
.ksl-route-symbol i{height:1px;width:100%;background:var(--ksl-link);position:relative}
.ksl-route-symbol i:after{content:"";height:7px;width:7px;position:absolute;right:0;top:-3px;border:1px solid var(--ksl-link);background:#082b3d}
.ksl-import-group .ksl-route-symbol i{background:none;border-top:1px dashed var(--ksl-import)}
.ksl-import-group .ksl-route-symbol i:after{border-color:var(--ksl-import);border-radius:50%}
/* Explicit surface ink beats shared .ip-section p at every breakpoint. */
.ks-page .ksl-network .ksl-group>p,.ksl-linking .ksl-network .ksl-group-copy{color:var(--body-text-on-dark,#c0dde5);font-size:var(--type-body-size);line-height:1.8;margin:0 0 25px}
.ks-page .ksl-network .ksl-group>.ksl-format-note{margin:20px 0 0}
.ksl-network ul{list-style:none;padding:0;margin:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;flex:1}
.ksl-node{min-width:0;display:flex;flex-direction:column;justify-content:center;align-items:center;gap:8px;padding:14px 10px;background:#0b3346;border:1px solid #5d939f;text-align:center;color:#ecf8f7;transition:border-color 300ms,background 300ms,box-shadow 300ms}
.ksl-node-name{font-size:var(--type-body-size);font-weight:700;line-height:1.5;overflow-wrap:anywhere}
.ksl-node-linking{border-color:#72e0d65c;background:#104252}
.ksl-node-route,.ksl-node-extension{font-size:var(--type-fine-size);line-height:1.6;font-weight:400;color:var(--body-text-on-dark,#c0dde5);overflow-wrap:anywhere}
.ksl-node-route{display:flex;gap:6px;align-items:center}
.ksl-node-route:before{content:"";height:5px;width:5px;flex:none;border:1px solid #72e0d6;background:#72e0d6}
.ksl-node-transfer .ksl-node-route:before{background:transparent;border-color:#a3c6ce}
.ksl-node-import{min-height:75px;border-color:#88b5cd66;border-radius:2px}
.ksl-software-mark{display:grid;place-items:center;align-self:stretch;background:#f5faf9;border:1px solid #e9f7f3;padding:5px;min-width:0;margin-bottom:3px}
.ksl-software-mark img{width:100%;height:auto;aspect-ratio:400/160;object-fit:contain;max-width:140px}
.ksl-hub-column{position:relative;display:flex;justify-content:center;align-items:center;min-width:0;align-self:stretch}
.ksl-network-lines{position:absolute;top:50%;left:-24px;right:-24px;width:calc(100% + 48px);height:180px;transform:translateY(-50%);z-index:-1;overflow:visible}
.ksl-trace{fill:none;stroke:var(--ksl-line);stroke-width:1.4;transition:stroke 300ms;vector-effect:non-scaling-stroke}.ksl-trace-linking{stroke:#72e0d65c}.ksl-trace-import{stroke-dasharray:3 5;stroke:#93bed84d}
.ksl-studio-hub{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:16px;width:170px;min-height:250px;padding:24px 16px;border:1px solid #8fe5df77;background:radial-gradient(ellipse at top,#27718266,transparent),#103c4e;box-shadow:0 0 0 10px #7ce3db07,0 0 60px #5ce4d616;color:#fff;text-align:center}
.ksl-hub-mark{display:grid;place-items:center;width:82px;height:82px;background:#f1faf8;border-radius:50%;flex:none}.ksl-hub-mark img{width:64px;height:64px;object-fit:contain}
.ksl-studio-hub strong{font-family:var(--font-display);font-size:var(--type-subhead-size);font-weight:600;line-height:1.25;letter-spacing:-.035em}
.ksl-studio-hub>span{font-size:var(--type-secondary-size);line-height:1.6;color:var(--body-text-on-dark,#c0dde5)}
.ksl-retained{display:grid;grid-template-columns:minmax(0,.7fr) minmax(0,2fr);gap:5%;padding-top:34px}.ksl-retained-intro .ip-label{margin-bottom:13px}.ksl-retained-intro>p{margin:0;color:var(--body-text);font-size:var(--type-body-size);line-height:1.8}
.ksl-retained-briefs{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:25px 32px}.ksl-retained-briefs article{min-width:0;border-left:1px solid #a9cfd6;padding-left:20px}.ksl-retained-name{display:block;color:#078a99;font-size:var(--type-secondary-size);font-weight:700;line-height:1.6;margin-bottom:10px}
.ksl-retained-briefs h3{font-family:var(--font-display);font-size:var(--type-subhead-size);font-weight:600;line-height:1.3;letter-spacing:-.035em;color:var(--ink,#073449);margin:0 0 11px}.ksl-retained-briefs p{font-size:var(--type-body-size);line-height:1.8;color:var(--body-text);margin:0}
.ksl-node:hover{background:#155263;border-color:var(--cyan,#3bc5f3)}
@supports selector(:has(*)){
 .ksl-linking:has(input[value="linking"]:checked) .ksl-trace-linking{stroke:#72e0d6;stroke-width:1.6}
 .ksl-linking:has(input[value="linking"]:checked) .ksl-node-linking{border-color:#8bece2;box-shadow:inset 0 -2px 0 #72e0d61a}
 .ksl-linking:has(input[value="import"]:checked) .ksl-trace-import{stroke:#a2d0e9;stroke-width:1.6}
 .ksl-linking:has(input[value="import"]:checked) .ksl-node-import{border-color:#a2d0e9;background:#163f55}
 .ksl-linking.ksl-motion-active:has(input[value="linking"]:checked) .ksl-trace-linking{stroke-dasharray:18 82;animation:ksl-converge 4s ease-in-out infinite}
 .ksl-linking.ksl-motion-active:has(input[value="import"]:checked) .ksl-trace-import{stroke-dasharray:3 6;animation:ksl-import-converge 7s linear infinite}
}
@keyframes ksl-converge{0%,15%{stroke-dashoffset:18}85%,100%{stroke-dashoffset:-100}}@keyframes ksl-import-converge{to{stroke-dashoffset:-90}}
@container ksl (max-width:72em){
 .ksl-network{grid-template-columns:minmax(0,1fr) minmax(0,1fr);padding:28px;gap:30px}.ksl-hub-column{grid-column:1/-1;grid-row:1;padding-bottom:16px;border-bottom:1px solid #83b8c744}.ksl-network-lines{display:none}.ksl-studio-hub{flex-direction:row;flex-wrap:wrap;width:auto;min-height:0;gap:18px 24px;text-align:left;padding:20px 28px}.ksl-studio-hub>span{border-left:1px solid #79aebb66;padding-left:20px}.ksl-integration-group,.ksl-import-group{padding-top:5px}.ksl-retained{grid-template-columns:1fr;gap:25px}
}
@container ksl (max-width:48em){.ksl-network{grid-template-columns:minmax(0,1fr);padding:26px 20px;gap:32px}.ksl-hub-column{grid-column:auto}.ksl-network ul{grid-template-columns:repeat(3,minmax(0,1fr))}.ksl-group+.ksl-group{padding-top:28px;border-top:1px solid #83b8c744}.ksl-retained-briefs{grid-template-columns:minmax(0,1fr)}}
@container ksl (max-width:28em){.ksl-network ul{grid-template-columns:repeat(2,minmax(0,1fr))}.ksl-studio-hub{max-width:100%;padding:18px;gap:16px}.ksl-studio-hub>span{width:100%;padding:14px 0 0;border-left:0;border-top:1px solid #79aebb66;text-align:center}.ksl-studio-hub>span br{display:none}.ksl-route-controls label{flex:1 1 170px}}
@supports not (container-type:inline-size){@media(max-width:1100px){.ksl-network{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}.ksl-hub-column{grid-column:1/-1;grid-row:1}.ksl-network-lines{display:none}.ksl-studio-hub{flex-direction:row;flex-wrap:wrap;width:auto;min-height:0}.ksl-retained{grid-template-columns:1fr;gap:25px}}@media(max-width:650px){.ksl-network{grid-template-columns:minmax(0,1fr);padding:26px 20px}.ksl-hub-column{grid-column:auto}.ksl-network ul{grid-template-columns:repeat(2,minmax(0,1fr))}.ksl-retained-briefs{grid-template-columns:minmax(0,1fr)}}}
@media(prefers-reduced-motion:reduce){.ksl-linking *{animation:none!important;transition:none!important}}
