:root{--ent-company: var(--accent);--ent-person: var(--gold);--ent-service: var(--ink-3);--ent-title: var(--pos);--ent-term: var(--info);--ent-deal: var(--cat-regulation)}.graph-page{max-width:var(--max-w-dash, clamp(1100px, 90vw, 1480px));margin:0 auto;padding:32px 32px 80px}.graph-breadcrumb{font-family:var(--font-mono);font-size:11px;letter-spacing:.06em;color:var(--ink-3);margin-bottom:16px}.graph-breadcrumb a{color:var(--ink-2)}.graph-breadcrumb a:hover{color:var(--accent)}.graph-hero{display:grid;grid-template-columns:1fr;gap:32px;border-bottom:1px solid var(--ink-4);padding-bottom:18px;margin-bottom:20px}@media(min-width:980px){.graph-hero{grid-template-columns:1fr 300px}}.graph-hero__eyebrow{font-family:var(--font-mono);font-size:11px;letter-spacing:.1em;color:var(--accent);text-transform:uppercase;margin:0 0 8px}.graph-hero__title{font-family:var(--font-serif-jp);font-weight:700;font-size:clamp(22px,3vw,30px);margin:0 0 10px;line-height:1.2}.graph-hero__desc{color:var(--ink-2);font-size:13.5px;line-height:1.6;max-width:680px}.graph-hero__stamp{border:1px solid var(--ink-4);background:var(--bg-1);padding:14px 16px;border-radius:2px}.graph-hero__stamp .stamp-row{display:flex;justify-content:space-between;align-items:baseline;font-size:12.5px;padding:4px 0;border-bottom:1px dashed var(--ink-4)}.graph-hero__stamp .stamp-row:last-child{border-bottom:0}.graph-hero__stamp .stamp-row span{color:var(--ink-3)}.graph-hero__stamp .stamp-row b{font-family:var(--font-mono);font-weight:500;font-feature-settings:"tnum" 1;color:var(--ink-1)}.graph-filters{display:flex;gap:8px;flex-wrap:wrap;align-items:center;margin-bottom:18px}.graph-filter{background:transparent;border:1px solid var(--ink-4);padding:6px 12px;font-family:var(--font-mono);font-size:11px;letter-spacing:.06em;cursor:pointer;color:var(--ink-2);border-radius:2px;display:inline-flex;align-items:center;gap:6px;transition:border-color .12s ease,color .12s ease}.graph-filter:hover{border-color:var(--accent);color:var(--ink-1)}.graph-filter.is-on{border-color:var(--accent);background:var(--accent-soft);color:var(--accent)}.graph-filter .swatch{width:9px;height:9px;border-radius:50%}.swatch.is-company{background:var(--ent-company)}.swatch.is-person{background:var(--ent-person)}.swatch.is-service{background:var(--ent-service)}.swatch.is-title{background:var(--ent-title)}.swatch.is-term{background:var(--ent-term)}.swatch.is-deal{background:var(--ent-deal)}.graph-filters__hint{margin-left:auto;font-family:var(--font-mono);font-size:11px;color:var(--ink-3)}.graph-layout{display:grid;grid-template-columns:1fr;gap:28px}@media(min-width:980px){.graph-layout{grid-template-columns:1fr 300px}}.graph-canvas{position:relative;background:radial-gradient(circle at 50% 46%,var(--bg-1),var(--bg-0));border:1px solid var(--ink-4);border-radius:2px;padding:8px;aspect-ratio:var(--graph-vb, 920 / 760);overflow:hidden}.graph-canvas svg{width:100%;height:100%;display:block}.knode{cursor:pointer;transition:filter .18s var(--ease, ease)}.knode circle{transition:stroke .16s ease,fill .16s ease}.knode:hover{filter:drop-shadow(0 0 6px var(--accent-soft))}.knode:hover circle{stroke:var(--ink-1)}.knode text{pointer-events:none;user-select:none}.kn-name{font-family:var(--font-serif-en);font-weight:600;font-size:13px;fill:var(--ink-1);paint-order:stroke;stroke:var(--bg-0);stroke-width:3.5px;stroke-linejoin:round}.kn-name--small{font-size:11px}.kn-tag{font-family:var(--font-mono);font-size:9.5px;fill:var(--ink-3);letter-spacing:.08em;paint-order:stroke;stroke:var(--bg-0);stroke-width:3px;stroke-linejoin:round}.kn-center-count{font-family:var(--font-mono);font-size:20px;font-weight:600;font-variant-numeric:tabular-nums;fill:#fdfbf5;stroke:none}.kn-center-eyebrow{font-family:var(--font-mono);font-size:8px;letter-spacing:.18em;fill:#fdfbf5b3;stroke:none}.kn-center-name{font-family:var(--font-serif-jp);font-weight:700;font-size:15px;line-height:1.25;text-align:center;color:var(--ink-1);text-shadow:0 0 3px var(--bg-0),0 0 3px var(--bg-0),0 0 6px var(--bg-0),0 0 6px var(--bg-0);pointer-events:none;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}[data-graph-filter=company] .knode:not([data-type=company]){opacity:.18}[data-graph-filter=person] .knode:not([data-type=person]){opacity:.18}[data-graph-filter=service] .knode:not([data-type=service]){opacity:.18}[data-graph-filter=title] .knode:not([data-type=title]){opacity:.18}[data-graph-filter=term] .knode:not([data-type=term]){opacity:.18}[data-graph-filter=deal] .knode:not([data-type=deal]){opacity:.18}.graph-canvas__hint{position:absolute;left:12px;bottom:10px;margin:0;font-family:var(--font-mono);font-size:10.5px;letter-spacing:.04em;color:var(--ink-3);pointer-events:none}.graph-empty{display:flex;align-items:center;justify-content:center;height:320px;color:var(--ink-3)}.graph-side{border:1px solid var(--ink-4);padding:16px 18px;border-radius:2px;position:sticky;top:100px;align-self:start;max-height:calc(100vh - 120px);max-height:calc(100dvh - 120px);overflow-y:auto;scrollbar-width:thin;scrollbar-color:var(--ink-4) transparent;background:linear-gradient(var(--bg-1) 30%,transparent) top / 100% 26px local no-repeat,linear-gradient(transparent,var(--bg-1) 70%) bottom / 100% 26px local no-repeat,radial-gradient(farthest-side at 50% 0,rgba(0,0,0,.32),transparent) top / 100% 13px scroll no-repeat,radial-gradient(farthest-side at 50% 100%,rgba(0,0,0,.32),transparent) bottom / 100% 13px scroll no-repeat;background-color:var(--bg-1)}.graph-side::-webkit-scrollbar{width:6px}.graph-side::-webkit-scrollbar-track{background:transparent}.graph-side::-webkit-scrollbar-thumb{background:var(--ink-4);border-radius:3px}.graph-side::-webkit-scrollbar-thumb:hover{background:var(--ink-3)}.graph-side h4{font-family:var(--font-mono);font-size:11px;letter-spacing:.08em;color:var(--ink-3);margin:0 0 10px}.graph-side hr{border:0;border-top:1px dashed var(--ink-4);margin:14px 0 10px}.gn-list{list-style:none;margin:0;padding:0}.gn-row{display:grid;grid-template-columns:16px 1fr auto auto;align-items:baseline;gap:8px;padding:5px 0;border-bottom:1px dashed var(--ink-4);font-size:13px}.gn-row:last-child{border-bottom:0}.gn-row--pair{grid-template-columns:16px 1fr auto}.gn-row__x{color:var(--ink-3);font-style:normal;padding:0 1px}.gn-row__pos{font-family:var(--font-mono);font-size:10px;color:var(--ink-3);letter-spacing:.04em;font-variant-numeric:tabular-nums}.gn-row__name{color:var(--ink-1);font-weight:500;line-height:1.3;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.gn-row__name:hover{color:var(--accent)}.gn-row__type{font-size:9.5px;color:var(--ink-3);letter-spacing:.06em;text-transform:uppercase;align-self:center}.gn-row__count{font-family:var(--font-mono);font-variant-numeric:tabular-nums;font-weight:600;font-size:13.5px;min-width:2.5ch;text-align:right;color:var(--ink-1)}.gn-help{margin-top:12px;font-size:10.5px;color:var(--ink-3)}.graph-cluster{margin-top:40px;border-top:1px solid var(--ink-4);padding-top:24px}.graph-cluster h2{font-family:var(--font-mono);font-size:12px;letter-spacing:.12em;color:var(--accent);margin:0 0 18px}.graph-cluster__grid{display:grid;grid-template-columns:1fr;gap:24px}@media(min-width:980px){.graph-cluster__grid{grid-template-columns:repeat(3,1fr)}}.graph-cluster h3{border-left:2px solid var(--accent);padding-left:10px;font-family:var(--font-serif-jp);font-weight:700;font-size:15px;margin:0 0 8px}.graph-cluster p{margin:0;font-size:13px;line-height:1.65;color:var(--ink-2)}
