.graph-map{position:relative;border:1px solid var(--color-faint);border-radius:8px;background:radial-gradient(ellipse at center,rgb(255 255 255 / .65),transparent 70%),var(--color-paper);overflow:hidden}.graph-scroll{overflow-x:auto;-webkit-overflow-scrolling:touch}.graph-scroll svg{display:block;width:100%;min-width:720px;height:auto}.graph-full .graph-scroll svg{max-height:76vh}.graph-embed .graph-scroll svg{max-height:540px}.graph-legend{display:flex;flex-wrap:wrap;gap:.4rem;padding:.75rem .9rem 0;position:relative;z-index:2}.legend-chip{display:inline-flex;align-items:center;gap:.4rem;font-family:var(--font-mono);font-size:.68rem;letter-spacing:.02em;color:var(--color-muted);background:var(--color-surface);border:1px solid var(--color-faint);border-radius:999px;padding:.28rem .65rem;cursor:pointer;transition:color .15s ease,border-color .15s ease,opacity .15s ease}.legend-chip:hover{color:var(--color-ink)}.legend-chip[aria-pressed=true]{color:var(--color-ink);border-color:currentColor}.graph-map.has-kind-filter .legend-chip[aria-pressed=false]{opacity:.45}.legend-dot{width:.55rem;height:.55rem;border-radius:999px;flex:none}.legend-count{opacity:.6}.graph-key{margin:0;padding:0 .9rem .7rem;font-family:var(--font-mono);font-size:.62rem;letter-spacing:.04em;color:var(--color-muted)}.edge{stroke:#d8d2c4;stroke-width:1;transition:opacity .2s ease}.edge-shaped{stroke-dasharray:5 4}.edge-led_to{stroke-dasharray:1.5 3.5;stroke-linecap:round}.edge-related{stroke-dasharray:9 5}.edge-part_of{stroke-width:1.7}.edge.is-lit{stroke:#8f887a}.node{cursor:pointer;outline:none}.node .node-dot{transition:r .15s ease,opacity .2s ease}.node:hover .node-dot,.node.is-selected .node-dot{r:calc(var(--r, 6px) + 2px)}.node:focus-visible .node-dot{stroke:var(--color-accent);stroke-width:2.5px;stroke-opacity:.9}.node.is-shelved .node-dot{fill:var(--color-paper);stroke:var(--node-color);stroke-width:1.8;stroke-dasharray:2.5 2}.node-ring{fill:none;stroke:var(--color-accent);stroke-width:1;opacity:.5}@media(prefers-reduced-motion:no-preference){.node-ring{animation:ring-pulse 2.6s ease-in-out infinite}}@keyframes ring-pulse{0%,to{opacity:.55;transform:scale(1)}50%{opacity:.15;transform:scale(1.28)}}.node-label{font-family:var(--font-mono);font-size:10.5px;fill:var(--color-muted);text-anchor:middle;paint-order:stroke;stroke:var(--color-paper);stroke-width:3px;stroke-linejoin:round;pointer-events:none;transition:opacity .2s ease}.node-person .node-label{font-family:var(--font-display);font-size:15px;font-weight:600;fill:var(--color-ink)}.node:hover .node-label,.node.is-selected .node-label{fill:var(--color-ink)}.graph-map.has-focus .node:not(.is-lit) .node-dot,.graph-map.has-focus .node:not(.is-lit) .node-ring{opacity:.18}.graph-map.has-focus .node:not(.is-lit) .node-label{opacity:.25}.graph-map.has-focus .edge:not(.is-lit){opacity:.15}.graph-panel{position:absolute;left:.9rem;bottom:.9rem;z-index:3;width:min(21rem,calc(100% - 1.8rem));background:var(--color-surface);border:1px solid var(--color-faint);border-radius:8px;padding:.9rem 1rem 1rem;box-shadow:0 6px 24px #1b1a1717}@media(prefers-reduced-motion:no-preference){.graph-panel{transition:opacity .25s ease,translate .25s ease;@starting-style{opacity:0;translate:0 8px}}}.panel-close{position:absolute;top:.35rem;right:.55rem;border:0;background:none;font-size:1.1rem;line-height:1;color:var(--color-muted);cursor:pointer;padding:.25rem}.panel-close:hover{color:var(--color-ink)}.panel-kind{margin:0;font-family:var(--font-mono);font-size:.62rem;letter-spacing:.14em;text-transform:uppercase;color:var(--panel-color, var(--color-muted))}.panel-title{margin:.2rem 0 0;font-family:var(--font-display);font-optical-sizing:auto;font-variation-settings:"SOFT" 0,"WONK" 1;font-size:1.25rem;font-weight:600;letter-spacing:-.01em;color:var(--color-ink)}.panel-summary{margin:.4rem 0 0;font-size:.85rem;line-height:1.5;color:var(--color-muted)}.panel-connections{margin:.6rem 0 0;padding:0;list-style:none;display:flex;flex-wrap:wrap;gap:.3rem;max-height:7.5rem;overflow-y:auto}.panel-connections button{font-family:var(--font-mono);font-size:.66rem;color:var(--color-ink);background:var(--color-paper);border:1px solid var(--color-faint);border-radius:999px;padding:.22rem .55rem;cursor:pointer}.panel-connections button:hover{border-color:var(--color-accent);color:var(--color-accent)}.panel-connections .rel-word{color:var(--color-muted)}.panel-link{display:inline-block;margin-top:.65rem;font-size:.82rem;color:var(--color-accent);text-decoration:underline;text-underline-offset:.18em}.panel-link:hover{color:var(--color-accent-strong)}
