/* Constellation of products (widgets/constellation/constellation.js) */
.cn { display: flex; flex-direction: column; padding: 16px 18px 10px; background: var(--tile-bg); }
.cn__cap { display: flex; flex-wrap: wrap; align-items: baseline; gap: 4px 14px; min-height: 44px; }
.cn__eyebrow { width: 100%; font-size: 12px; letter-spacing: .05em; text-transform: uppercase; color: var(--muted); }
.cn__path { font-size: clamp(15px, 1.9cqw, 22px); font-weight: 600; letter-spacing: -.01em; color: var(--ink); }
.cn__path i { font-style: normal; color: var(--mark); padding: 0 2px; }
.cn__meta { font-size: 12.5px; color: var(--muted); }
.cn__svg { flex: 1; min-height: 0; width: 100%; overflow: visible; }
.cn__link { fill: none; stroke: var(--line); stroke-width: 1.2; transition: stroke .25s ease; }
.cn__node circle { fill: var(--ink-2); transition: fill .25s ease, r .25s ease; }
.cn__node text { font: 600 13.5px var(--font); paint-order: stroke; stroke: var(--tile-bg); stroke-width: 4px; stroke-linejoin: round; fill: var(--ink-2); transition: fill .25s ease, opacity .25s ease; text-transform: uppercase; letter-spacing: .03em; }
.cn__node--leaf text { font-weight: 500; font-size: 12.5px; stroke: none; }
.cn__node rect { fill: transparent; }
.cn__node:focus { outline: none; }
.cn__node--model circle { fill: var(--mark); }
.cn__svg.is-lit .cn__node text { opacity: .4; }
.cn__svg.is-lit .cn__node.is-on text { opacity: 1; fill: var(--ink); }
.cn__node.is-on circle { fill: var(--mark); }
.cn__link.is-on { stroke: var(--mark); stroke-width: 1.6; }
@media (prefers-reduced-motion: reduce) { .cn__link, .cn__node circle, .cn__node text { transition: none; } }
/* Stacked page: the tree runs down the page (one row per point), as tall as it needs. */
.is-vertical .cn__svg { flex: none; height: auto; }
.is-vertical .cn__svg--v { width: 100%; }
.cn__svg--v .cn__node text { font-size: 14px; font-weight: 400; text-transform: none; letter-spacing: 0; }
.cn__svg--v .cn__node:not(.cn__node--leaf) text { font-weight: 600; }
.cn__svg--v .cn__node--leaf text { stroke: none; }
