.kg{--kg-bg:var(--ws-panel,#18161f);--kg-canvas:var(--ws-bg,#121118);--kg-raised:var(--ws-surface,#211e2b);--kg-border:var(--ws-border,#353040);--kg-text:var(--ws-text,#eeebf5);--kg-muted:var(--ws-muted,#b4adbf);--kg-accent:var(--ws-accent,#b18bf4);--kg-focus:#e2ceff;position:relative;display:flex;flex-direction:column;inline-size:100%;min-inline-size:0;overflow:hidden;isolation:isolate;border:1px solid var(--kg-border);border-radius:14px;background:var(--kg-bg);color:var(--kg-text);color-scheme:dark;font-family:inherit;text-align:start;box-shadow:0 12px 40px rgb(0 0 0/12%)}.kg,.kg *{box-sizing:border-box}.kg .kg__header{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:16px;padding:18px 20px;border-block-end:1px solid var(--kg-border)}.kg .kg__heading{display:flex;flex:1 1 200px;flex-direction:column;gap:5px;min-inline-size:0}.kg .kg__eyebrow{margin:0;color:var(--kg-accent);font-size:10px;font-weight:600;line-height:1.5;letter-spacing:.08em}.kg .kg__title{margin:0;color:var(--kg-text);font-size:16px;font-weight:600;line-height:1.45;letter-spacing:-.015em;overflow-wrap:anywhere}.kg .kg__summary{margin:0;color:var(--kg-muted);font-size:12px;line-height:1.65;overflow-wrap:anywhere}.kg .kg__controls{display:flex;align-items:center;flex:0 1 auto;flex-wrap:wrap;gap:6px}.kg .kg__control{display:inline-flex;align-items:center;justify-content:center;gap:7px;min-inline-size:38px;min-block-size:38px;margin:0;padding:8px 10px;border:1px solid var(--kg-border);border-radius:8px;background:var(--kg-raised);color:var(--kg-text);font:inherit;font-size:12px;font-weight:500;line-height:1.4;text-decoration:none;white-space:nowrap;cursor:pointer;touch-action:manipulation;transition:background-color .14s ease,border-color .14s ease,color .14s ease}.kg .kg__control svg{display:block;flex:0 0 auto;inline-size:16px;block-size:16px}.kg .kg__control:not(:disabled):hover,.kg .kg__control[aria-pressed=true]{border-color:var(--kg-accent);background:#32283f;color:var(--kg-focus)}.kg .kg__control:focus-visible{outline:2px solid var(--kg-focus);outline-offset:3px}.kg .kg__control:disabled{opacity:.45;cursor:not-allowed}.kg .kg__viewport{position:relative;flex:1 1 auto;block-size:clamp(400px,52vh,620px);min-block-size:300px;min-inline-size:0;overflow:hidden;background-color:var(--kg-canvas);background-image:radial-gradient(ellipse at 50% 44%,rgb(123 88 177/11%),transparent 66%),radial-gradient(rgb(165 150 192/13%) .75px,transparent .9px);background-size:auto,22px 22px;background-position:50%,50%;touch-action:none;overscroll-behavior:contain;cursor:grab}.kg .kg__viewport:active{cursor:grabbing}.kg .kg__canvas{display:block;inline-size:100%;block-size:100%;overflow:visible;user-select:none;-webkit-user-select:none}.kg .kg__canvas:focus-visible,.kg .kg__viewport:focus-visible{outline:2px solid var(--kg-focus);outline-offset:-5px}.kg .kg__edge{fill:none;stroke:#777080;stroke-width:1;stroke-opacity:.3;vector-effect:non-scaling-stroke;pointer-events:none;transition:stroke .16s ease,stroke-opacity .16s ease}.kg .kg__edge.is-active{stroke:var(--kg-accent);stroke-width:1.4;stroke-opacity:.78}.kg .kg__node{opacity:1;cursor:pointer;outline:none;transition:opacity .16s ease}.kg .kg__halo{fill:rgb(177 139 244/10%);stroke:var(--kg-node-color,var(--kg-accent));stroke-width:1;opacity:0;vector-effect:non-scaling-stroke;pointer-events:none;transition:opacity .16s ease,stroke .16s ease}.kg .kg__hit{fill:transparent;pointer-events:all}.kg .kg__dot{fill:var(--kg-node-color,var(--kg-accent));stroke:rgb(255 255 255/19%);stroke-width:1.2;vector-effect:non-scaling-stroke;transition:fill .16s ease,stroke .16s ease,stroke-width .16s ease}.kg .kg__node-label{fill:var(--kg-muted);stroke:var(--kg-canvas);stroke-width:3.5px;stroke-linejoin:round;paint-order:stroke fill;font-family:inherit;font-size:11px;font-weight:400;pointer-events:none;transition:fill .16s ease}.kg .kg__node.is-neighbor .kg__node-label,.kg .kg__node:hover .kg__node-label{fill:var(--kg-text)}.kg .kg__node.is-neighbor .kg__dot{stroke:rgb(226 206 255/60%)}.kg .kg__node.is-active .kg__halo,.kg .kg__node.is-focused .kg__halo,.kg .kg__node:focus-visible .kg__halo,.kg .kg__node:hover .kg__halo{opacity:1}.kg .kg__node.is-active .kg__dot{fill:var(--kg-accent);stroke:var(--kg-focus);stroke-width:1.8;filter:drop-shadow(0 0 6px rgb(177 139 244/40%))}.kg .kg__node.is-active .kg__node-label,.kg .kg__node.is-focused .kg__node-label,.kg .kg__node:focus-visible .kg__node-label{fill:var(--kg-text);font-weight:600}.kg .kg__node.is-focused .kg__halo,.kg .kg__node:focus-visible .kg__halo{stroke:var(--kg-focus);stroke-width:2.5}.kg .kg__node.is-dimmed{opacity:.22}.kg .kg__node.is-dimmed.is-active,.kg .kg__node.is-dimmed.is-focused,.kg .kg__node.is-dimmed:focus-visible,.kg .kg__node.is-dimmed:hover{opacity:1}.kg .kg__status{--kg-status-accent:var(--kg-accent);position:absolute;z-index:2;inset:0;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:10px;padding:30px 24px;background:radial-gradient(ellipse at center,rgb(18 17 24/94%),rgb(18 17 24/70%));text-align:center;cursor:default;pointer-events:none}.kg .kg__status--error{--kg-status-accent:#efba95}.kg .kg__status-icon{display:grid;place-items:center;inline-size:46px;block-size:46px;margin-block-end:3px;border:1px solid var(--kg-border);border-radius:14px;background:var(--kg-raised);color:var(--kg-status-accent)}.kg .kg__status-icon svg{inline-size:21px;block-size:21px}.kg .kg__status-title{margin:0;color:var(--kg-text);font-size:14px;font-weight:550;line-height:1.6}.kg .kg__status-text{max-inline-size:360px;margin:0;color:var(--kg-muted);font-size:12px;line-height:1.8;overflow-wrap:anywhere}.kg .kg__status .kg__control{margin-block-start:6px;pointer-events:auto}.kg .kg__footer{display:flex;justify-content:space-between;gap:9px 18px;padding:13px 20px;border-block-start:1px solid var(--kg-border)}.kg .kg__footer,.kg .kg__legend{align-items:center;flex-wrap:wrap}.kg .kg__legend{display:inline-flex;gap:7px 12px;margin:0;color:var(--kg-muted);font-size:11px;line-height:1.6}.kg .kg__legend>span{display:inline-flex;align-items:center;gap:6px}.kg .kg__legend-dot{display:inline-block;flex:0 0 auto;inline-size:7px;block-size:7px;border-radius:50%;background:var(--kg-node-color,var(--kg-accent))}.kg .kg__hint,.kg .kg__notice{margin:0;color:var(--kg-muted);font-size:11px;line-height:1.7}.kg .kg__notice{flex-basis:100%;padding-block-start:8px;border-block-start:1px solid var(--kg-border);overflow-wrap:anywhere}.kg .kg__tooltip{position:absolute;z-index:3;max-inline-size:min(280px,calc(100% - 24px));padding:10px 12px;border:1px solid #524364;border-radius:9px;background:rgb(32 27 43/97%);color:var(--kg-text);box-shadow:0 8px 26px rgb(0 0 0/28%);overflow-wrap:anywhere;pointer-events:none}.kg .kg__tooltip>strong{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:3;overflow:hidden;margin:0;font-size:12px;font-weight:600;line-height:1.5}.kg .kg__tooltip>span{display:block;margin-block-start:4px;color:#c5bad7;font-size:11px;line-height:1.6}.kg.kg--compact .kg__header{gap:10px;padding:14px 16px}.kg.kg--compact .kg__heading{flex-basis:160px}.kg.kg--compact .kg__title{font-size:14px}.kg.kg--compact .kg__viewport{block-size:250px;min-block-size:220px}.kg.kg--compact .kg__footer{padding:11px 16px}.kg.kg--fullscreen,.kg:fullscreen{position:fixed;z-index:1000;inset:0;inline-size:100%;block-size:100dvh;border:0;border-radius:0}.kg:fullscreen::backdrop{background:#121118}.kg.kg--fullscreen .kg__viewport,.kg:fullscreen .kg__viewport{flex:1 1;block-size:auto;min-block-size:0}@media (max-width:640px){.kg .kg__header{align-items:flex-start;gap:12px;padding:16px}.kg .kg__heading{flex-basis:100%}.kg .kg__controls{inline-size:100%}.kg .kg__control{min-inline-size:44px;min-block-size:44px}.kg .kg__viewport{block-size:clamp(340px,52svh,460px)}.kg .kg__footer{align-items:flex-start;flex-direction:column;gap:8px;padding:12px 16px}.kg .kg__notice{flex-basis:auto;inline-size:100%}.kg.kg--compact .kg__heading{flex-basis:100%}}@media (pointer:coarse){.kg .kg__control{min-inline-size:44px;min-block-size:44px}}@media (prefers-reduced-motion:reduce){.kg,.kg *,.kg :after,.kg :before{animation:none!important;transition:none!important;scroll-behavior:auto!important}}