/* Outken: a viewport-sized atlas, with a separately scrollable reading pane. */
.capability-map{--midnight:#091426;--blue:#246bfe;--cyan:#3ed7f4;--violet:#7657e8;--gold:#f3bd54;--cloud:#f7faff;position:relative;margin:32px 0 0;padding:64px 0 32px;border-top:1px solid rgb(247 250 255 / .18);scroll-margin-top:24px;color:var(--cloud)}
.capability-map [hidden]{display:none!important}.sr-only{position:absolute;width:1px;height:1px;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
.map-intro{display:grid;grid-template-columns:1.5fr 1fr;gap:16px 64px;align-items:end;margin-bottom:48px}.map-intro .label{grid-column:1/-1;text-transform:uppercase;letter-spacing:.16em;font-size:11px;color:var(--cyan);margin:0 0 8px}.perspective .map-intro h2{font-size:clamp(38px,4.3vw,72px);line-height:1.05;max-width:700px;margin:0;letter-spacing:-.055em;text-wrap:balance}.map-intro>p:last-child{font-size:16px;line-height:1.7;color:rgb(247 250 255 / .75);max-width:430px;margin:0}
.network-app{position:relative;border-top:1px solid rgb(247 250 255 / .2)}
.capability-map button,.map-search{font:inherit;color:var(--cloud);background:transparent;border:1px solid rgb(247 250 255 / .2);border-radius:3px;font-size:14px;min-height:44px;padding:10px 14px;max-width:100%;overflow-wrap:anywhere}
.capability-map button{cursor:pointer;transition:background 160ms,border-color 160ms}.capability-map button:hover{border-color:var(--cyan);background:rgb(36 107 254 / .1)}.capability-map button:disabled{opacity:.38;cursor:default}.capability-map :focus-visible{outline:2px solid var(--cyan);outline-offset:3px}
.map-toolbar{display:flex;align-items:center;gap:12px;padding:16px 0}.map-history{display:flex;gap:8px}.map-search-wrap{position:relative;margin-left:auto;width:min(320px,40%);z-index:5}.map-search{width:100%;min-width:0;border-color:rgb(247 250 255 / .25)}.map-search::placeholder{color:rgb(247 250 255 / .65)}.map-results:not(:empty){position:absolute;top:calc(100% + 6px);left:0;right:0;padding:8px;background:var(--midnight);border:1px solid var(--blue);max-height:min(340px,50dvh);overflow:auto;box-shadow:0 18px 40px rgb(9 20 38 / .8)}.map-results button{width:100%;text-align:left;border:0}.map-results p{padding:10px;font-size:14px;line-height:1.6}
.map-crumbs{display:flex;flex-wrap:wrap;gap:4px 10px;align-items:center;min-height:48px;padding:0 0 10px;font-size:13px;line-height:1.5;border-bottom:1px solid rgb(247 250 255 / .14)}.map-crumbs button{border:0;padding:4px 0;min-height:32px;font-size:13px}.map-crumbs button:hover{background:none}.map-crumbs [aria-current]{color:var(--cyan);overflow-wrap:anywhere}.crumb-separator{opacity:.35}
.map-workspace{display:grid;grid-template-columns:minmax(0,1fr) minmax(320px,34%);align-items:start;gap:32px}.map-stage{min-width:0;position:sticky;top:20px}.map-visual{height:clamp(460px,64dvh,760px);width:100%;position:relative;background:var(--midnight)}.network-svg{display:block;width:100%;height:100%;overflow:hidden}.map-orbits circle{fill:none}.map-orbits .outer-ring{stroke:var(--cloud);stroke-opacity:.35;stroke-width:1.5}.map-orbits .inner-ring{stroke:var(--blue);stroke-opacity:.9;stroke-width:2}
.map-edge .edge-line{fill:none;stroke:var(--cyan);stroke-opacity:.16;stroke-width:1;transition:stroke-opacity 160ms,stroke-width 160ms,stroke 160ms;pointer-events:none}.map-edge.connection .edge-line{stroke:var(--violet);stroke-opacity:.25}.edge-hit{fill:none;stroke:transparent;stroke-width:18;cursor:pointer;pointer-events:stroke}.map-edge.lit .edge-line,.map-edge:focus-within .edge-line{stroke:var(--cyan);stroke-opacity:1;stroke-width:2}.edge-hit:focus{outline:none}.edge-hit:focus-visible{stroke:rgb(62 215 244 / .15)}
.map-node{cursor:pointer;transition:transform 480ms cubic-bezier(.22,1,.36,1),opacity 180ms;outline:none}.map-node.muted{opacity:.38}.map-node.is-center{cursor:default}.node-hit{fill:var(--midnight);fill-opacity:.01}.node-circle{fill:var(--midnight);stroke:var(--blue);stroke-width:1.5;transition:stroke 160ms}.map-node:not(.is-center) .node-circle{fill:var(--midnight)}.map-node:hover .node-circle,.map-node:focus-visible .node-circle,.map-node.lit .node-circle{stroke:var(--cyan)}.map-node:focus-visible .node-circle{stroke-width:3}.is-center .node-circle{stroke:rgb(62 215 244 / .55);fill:var(--midnight)}
.node-label-box{font-family:Inter,Arial,sans-serif;font-size:15px;line-height:1.4;color:var(--cloud);text-align:center;overflow-wrap:anywhere;text-wrap:balance;padding:0 4px;max-width:100%}.is-center .node-label-box{font-size:16px;line-height:1.2;font-weight:500;letter-spacing:-.025em}.node-number{fill:var(--cloud);font:12px Inter,Arial,sans-serif}.map-node:hover .node-label-box,.map-node:focus-visible .node-label-box{color:var(--cyan)}
.map-instruction{font-size:12px;line-height:1.6;color:rgb(247 250 255 / .65);margin:10px 0 0}.connection-detail{min-height:68px;padding:0 8px}.connection-note{font-size:14px;line-height:1.6;margin:0 0 10px;border-left:2px solid var(--cyan);padding-left:12px}.connection-actions{display:flex;gap:8px;flex-wrap:wrap}.connection-actions button{font-size:12px}.map-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;padding:20px 0;max-height:45dvh;overflow:auto}.map-list button{text-align:left;font-size:14px;line-height:1.5}
.map-details{border-left:1px solid rgb(247 250 255 / .16);padding:32px 20px 32px 28px;min-width:0;scrollbar-width:thin;scrollbar-color:rgb(62 215 244 / .5) transparent;scroll-padding-block:24px;scrollbar-gutter:stable}.map-eyebrow{text-transform:uppercase;letter-spacing:.12em;font-size:11px;color:var(--cyan);line-height:1.6;margin:0 0 18px}.topic-title{font-size:clamp(28px,2.5vw,42px);font-weight:400;line-height:1.1;letter-spacing:-.04em;margin:0 0 24px;overflow-wrap:anywhere;text-wrap:balance}.topic-summary{color:rgb(247 250 255 / .78);font-size:16px;line-height:1.7;margin:0 0 28px}.map-tabs{display:flex;border-bottom:1px solid rgb(247 250 255 / .2);gap:20px;position:sticky;top:0;background:var(--midnight);z-index:2;padding-top:8px}.map-tabs button{border:0;border-radius:0;padding:12px 0;font-size:14px;color:rgb(247 250 255 / .7);white-space:nowrap}.map-tabs button[aria-selected=true]{color:var(--cloud);box-shadow:0 2px 0 var(--cyan)}.map-tabs button:hover{background:none}
.topic-content{padding:30px 0 10px}.topic-content h3,.map-related h3{font-size:15px;font-weight:500;line-height:1.5;margin:0 0 12px}.topic-content p{font-size:16px;line-height:1.75;color:rgb(247 250 255 / .8);margin:0 0 28px}.topic-content .map-muted{font-size:14px;color:rgb(247 250 255 / .67)}.map-product+.map-product{border-top:1px solid rgb(247 250 255 / .15);padding-top:28px;margin-top:28px}.topic-content .map-product .map-eyebrow{font-size:11px;margin-bottom:12px}.map-product h3{font-size:26px;letter-spacing:-.03em;overflow-wrap:anywhere}.map-product h3 a:hover{color:var(--cyan)}.product-links{display:flex;flex-wrap:wrap;gap:4px 18px;font-size:14px}.product-links a{display:inline-flex;align-items:center;min-height:44px;color:var(--cyan);text-decoration:underline;text-underline-offset:5px}.map-related{border-top:1px solid rgb(247 250 255 / .15);padding-top:28px;margin-top:20px}.related-topics{display:flex;gap:8px;flex-wrap:wrap}.related-topics button{font-size:13px;padding:10px 12px;text-align:left}.map-noscript{font-size:16px;line-height:1.8}.map-noscript a{text-decoration:underline}
@media(min-width:1100px) and (min-height:700px){.map-details{height:calc(100dvh - 190px);max-height:900px;overflow-y:auto}.map-visual{height:clamp(360px,calc(100dvh - 310px),760px)}.map-stage{top:16px}.map-list{max-height:160px}.compact-network .map-visual{height:clamp(360px,calc(100dvh - 410px),660px)}.compact-network .map-list{max-height:140px}.map-workspace{padding-bottom:12px}}
@media(max-width:1099px),(max-height:699px){.map-workspace{grid-template-columns:1fr;gap:16px}.map-stage{position:relative;top:auto}.map-details{border-left:0;border-top:1px solid rgb(247 250 255 / .18);padding:32px 0;max-width:760px;width:100%;margin:auto;overflow:visible;height:auto}.map-visual{height:560px;max-height:75dvh;min-height:360px}.map-tabs{position:static}.map-stage{max-width:900px;width:100%;margin:auto}.map-intro{gap:24px;grid-template-columns:1fr}.map-intro>p:last-child{max-width:600px}.compact-network .map-list{max-height:none}}
@media(max-width:600px){.capability-map{margin:24px 0 0;padding:40px 0 16px}.map-intro{margin-bottom:28px}.perspective .map-intro h2{font-size:clamp(34px,9vw,48px)}.map-intro>p:last-child{font-size:15px}.map-toolbar{flex-wrap:wrap;gap:8px}.map-history{flex:1;gap:6px}.map-toolbar button{padding-inline:10px;font-size:13px}.map-search-wrap{width:100%;order:3;margin:0}.map-crumbs{font-size:12px;gap:4px 8px;padding:8px 0 12px}.map-crumbs button{font-size:12px;min-height:44px}.map-visual{height:400px;min-height:400px;max-height:none}.is-center .node-label-box{font-size:14px}.map-list{grid-template-columns:1fr;gap:0;padding:0 0 20px}.map-list button{border-width:0 0 1px;border-radius:0;min-height:48px;font-size:15px}.connection-detail{padding:0;min-height:0}.map-tabs{gap:24px}.map-details{padding-top:28px}.topic-title{font-size:34px}.map-instruction{margin-bottom:18px}.map-search{font-size:16px}}
@media(prefers-reduced-motion:reduce){.map-node,.node-circle,.map-edge .edge-line,.capability-map button{transition:none}}

/* Circular topology: the chart never stretches its rings to fill a rectangle. */
.map-node:not(.is-center) .node-circle{stroke:var(--cyan);stroke-width:1.6}
.map-node:hover .node-circle,.map-node.lit:not(.is-center) .node-circle{fill:var(--blue)}
@media(min-width:1100px) and (min-height:850px){.map-visual,.compact-network .map-visual{height:clamp(600px,calc(100dvh - 250px),820px)}}

/* All topic names belong to their nodes; list view is an explicit alternative only. */
.map-visual,.compact-network .map-visual{height:clamp(620px,70dvh,820px);min-height:620px;max-height:none;overflow:auto;overscroll-behavior-x:contain;scrollbar-width:thin;scrollbar-color:var(--blue) transparent;background:var(--midnight)}
.network-svg{width:100%;height:100%;min-width:620px;min-height:620px}
.node-label-box{display:flex;align-items:center;justify-content:center;min-height:64px;padding:0;font-size:14px;font-weight:500;line-height:1.35;letter-spacing:0;text-wrap:balance;overflow-wrap:normal;word-break:normal}
.node-label-box.label-left{text-align:right;justify-content:flex-end}.node-label-box.label-right{text-align:left;justify-content:flex-start}
.is-center .node-label-box{display:block;min-height:0;font-size:18px;font-weight:500;line-height:1.25;letter-spacing:-.02em;text-align:center}
.topic-title{font-size:clamp(28px,2.4vw,38px);line-height:1.15;letter-spacing:-.035em}.topic-summary,.topic-content p{font-size:16px;line-height:1.7}.map-eyebrow{font-size:11px;letter-spacing:.1em}.map-tabs button{font-size:14px;font-weight:500}.map-product h3{font-size:24px;line-height:1.25;letter-spacing:-.025em}
.map-instruction{font-size:13px;line-height:1.6}.node-circle{stroke-width:1.5}
@media(max-width:700px){.map-visual,.compact-network .map-visual{height:620px;min-height:620px}.topic-title{font-size:30px}.map-tabs{gap:20px}}

/* Small screens use the same topic navigation without a wheel or panning. */
@media(max-width:700px){
 .capability-map .map-visual,.capability-map .map-view{display:none!important}
 .capability-map .map-list[hidden],.capability-map .map-list{display:grid!important;max-height:none;overflow:visible;grid-template-columns:1fr;padding:12px 0}
 .map-list button{min-height:48px;text-align:left;font-size:15px}
 .connection-detail,.map-instruction{display:none}
}

/* The selected topic is the sole focal point in the centre. */
.is-center .node-label-box{display:flex;align-items:center;justify-content:center;min-height:96px}
