.kg{--bg:var(--color-background);--s1:var(--color-surface-1);--s2:var(--color-surface-2);--line:var(--color-line);--t1:var(--color-text-primary);--t2:var(--color-text-secondary);--t3:#7d8492;--signal:var(--color-signal);--gold:var(--color-accent);--mono:var(--font-mono),ui-monospace,monospace;--sans:var(--font-sans),system-ui,sans-serif;--nav:44px;min-height:100dvh;color:var(--t1);font:15px/1.55 var(--sans);background-image:linear-gradient(#ffffff0a 1px,#0000 1px),linear-gradient(90deg,#ffffff0a 1px,#0000 1px);background-size:48px 48px}.kg a{color:inherit}.kg button{font:inherit;color:inherit}.kg :focus-visible{outline:2px solid var(--signal);outline-offset:2px}.kg .kg-sr{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.kg .kg-top{z-index:30;height:var(--nav);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-bottom:1px solid var(--line);background:#08090ce6;align-items:center;gap:18px;padding:0 24px;display:flex;position:sticky;top:0}.kg .kg-logo{font:600 15px var(--mono);text-decoration:none}.kg .kg-logo em{color:var(--signal);font-style:normal}.kg .kg-top h1{font:500 12px var(--mono);letter-spacing:.08em;text-transform:uppercase;color:var(--t2);margin:0}.kg .kg-count{font:11.5px var(--mono);color:var(--t3)}.kg .kg-back{font:12px var(--mono);color:var(--t2);margin-left:auto;text-decoration:none}.kg .kg-back:hover{color:var(--signal)}.kg .kg-crumbs{font:12px var(--mono);color:var(--t3);gap:8px;min-width:0;margin:0;padding:0;list-style:none;display:flex}.kg .kg-crumbs li{white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.kg .kg-crumbs li+li:before{content:"/";margin-right:8px}.kg .kg-crumbs a{color:var(--t2);text-decoration:none}.kg .kg-crumbs a:hover{color:var(--signal)}.kg .kg-main{height:calc(100dvh - var(--nav))}.kg .kg-stage{flex-direction:column;height:100%;display:flex;position:relative}.kg .kg-tools{border-bottom:1px solid var(--line);background:#0b0d12cc;flex-wrap:wrap;align-items:center;gap:10px;padding:10px 24px;display:flex}.kg .kg-search{position:relative}.kg .kg-search input{border:1px solid var(--line);background:var(--s2);width:190px;height:30px;color:var(--t1);font:12px var(--mono);border-radius:4px;padding:0 10px}.kg .kg-search input:focus{border-color:var(--signal);outline:none}.kg .kg-results{z-index:20;background:var(--s1);border:1px solid var(--line);border-radius:4px;width:320px;margin:0;padding:4px;list-style:none;position:absolute;top:34px;left:0;box-shadow:0 12px 30px -10px #000}.kg .kg-results button{text-align:left;cursor:pointer;background:0 0;border:0;border-radius:3px;align-items:center;gap:8px;width:100%;padding:6px 8px;font-size:13px;display:flex}.kg .kg-results button:hover,.kg .kg-results button:focus-visible{background:var(--s2)}.kg .kg-results span{font:10px var(--mono);color:var(--t3);text-transform:uppercase;margin-left:auto}.kg i{border-radius:50%;flex:none;width:8px;height:8px;display:inline-block}.kg .kg-filters{flex-wrap:wrap;gap:6px;display:flex}.kg .kg-cluster{border:1px solid var(--line);background:var(--s2);font:10.5px var(--mono);color:var(--t2);border-radius:999px;align-items:center;display:inline-flex;overflow:hidden}.kg .kg-cluster.off{opacity:.45}.kg .kg-cluster button{cursor:pointer;font:inherit;color:inherit;background:0 0;border:0}.kg .kg-cluster-toggle{padding:4px 3px 4px 8px;display:inline-flex}.kg .kg-cluster.off i{box-shadow:inset 0 0 0 1px var(--t3);background:0 0!important}.kg .kg-cluster-zoom{padding:3px 8px 3px 3px}.kg .kg-cluster-zoom:hover{color:var(--t1)}.kg .kg-filter{border:1px solid var(--line);background:var(--s2);font:11px var(--mono);color:var(--t2);cursor:pointer;border-radius:999px;align-items:center;gap:6px;padding:3px 9px;display:inline-flex}.kg .kg-filter[aria-pressed=false]{opacity:.4}.kg .kg-actions{gap:6px;margin-left:auto;display:flex}.kg .kg-btn{border:1px solid var(--line);background:var(--s2);height:28px;font:11.5px var(--mono);color:var(--t2);cursor:pointer;border-radius:4px;padding:0 10px}.kg .kg-btn:hover,.kg .kg-btn[aria-pressed=true]{color:var(--signal);border-color:var(--signal)}.kg .kg-canvas-wrap{flex:1;min-height:0;position:relative}.kg .kg-canvas-wrap[hidden]{display:none}.kg .kg-canvas-wrap canvas{touch-action:none;cursor:grab;display:block}.kg .kg-empty{font:12px var(--mono);color:var(--t3);place-items:center;margin:0;display:grid;position:absolute;inset:0}.kg .kg-legend{font:10.5px var(--mono);color:var(--t3);pointer-events:none;flex-wrap:wrap;align-items:center;gap:12px;display:flex;position:absolute;bottom:14px;left:24px}.kg .kg-legend span{align-items:center;gap:6px;display:inline-flex}.kg .kg-hint{opacity:.8}.kg .kg-shape{background:var(--t2);flex:none;width:9px;height:9px;display:inline-block}.kg .kg-shape.s-person{width:11px;height:11px;box-shadow:0 0 0 2px var(--gold);background:var(--t1);border-radius:50%}.kg .kg-shape.s-role{transform:rotate(45deg)scale(.85)}.kg .kg-shape.s-work{border-radius:3px}.kg .kg-shape.s-project{border-radius:1px}.kg .kg-shape.s-skill{border-radius:50%}.kg .kg-shape.s-concept{clip-path:polygon(50% 0,100% 90%,0 90%)}.kg .kg-shape.s-credential{clip-path:polygon(25% 4%,75% 4%,100% 50%,75% 96%,25% 96%,0 50%);width:10px}.kg .kg-shape.s-course{border-radius:50%;width:5px;height:5px}.kg .kg-shape.s-post{border:1.5px solid var(--t2);background:0 0;width:8px;height:8px}.kg .kg-panel{border:1px solid var(--line);background:#0b0d12f2;border-radius:4px;flex-direction:column;gap:8px;width:320px;max-height:calc(100% - 90px);padding:16px;display:flex;position:absolute;top:64px;right:16px;overflow:auto;box-shadow:0 20px 40px -20px #000}.kg .kg-panel h2{font:600 19px/1.25 var(--sans);letter-spacing:-.015em;margin:0}.kg .kg-panel p{color:var(--t2);margin:0;font-size:13.5px}.kg .kg-panel h3{font:500 10.5px var(--mono);letter-spacing:.08em;text-transform:uppercase;color:var(--t3);margin:8px 0 0}.kg .kg-panel ul{flex-direction:column;gap:2px;margin:0;padding:0;list-style:none;display:flex}.kg .kg-panel li button{text-align:left;width:100%;color:var(--t2);cursor:pointer;background:0 0;border:0;border-radius:3px;align-items:center;gap:8px;padding:4px 6px;font-size:13px;display:flex}.kg .kg-panel li button:hover{background:var(--s2);color:var(--t1)}.kg .kg-close{color:var(--t3);cursor:pointer;background:0 0;border:0;font-size:13px;position:absolute;top:8px;right:8px}.kg .kg-chip{width:fit-content;font:10.5px var(--mono);letter-spacing:.06em;text-transform:uppercase;border:1px solid;border-radius:3px;padding:3px 7px}.kg .kg-open{font:12px var(--mono);color:var(--signal);width:fit-content;text-decoration:none}.kg .kg-open:hover{text-decoration:underline}.kg .kg-list{columns:2 420px;flex:1;column-gap:40px;padding:18px 24px 40px;overflow:auto}.kg .kg-list section{break-inside:avoid;margin-bottom:22px}.kg .kg-list h2{font:500 11px var(--mono);letter-spacing:.08em;text-transform:uppercase;color:var(--t3);margin:0 0 8px}.kg .kg-list ul{flex-direction:column;gap:5px;margin:0;padding:0;list-style:none;display:flex}.kg .kg-list li{color:var(--t3);font-size:13.5px}.kg .kg-list a{color:var(--t1);border-bottom:1px solid var(--line);text-decoration:none}.kg .kg-list a:hover{color:var(--signal);border-color:var(--signal)}.kg .kg-note{grid-template-columns:minmax(0,1fr) 300px;gap:40px;max-width:1180px;margin:0 auto;padding:32px 24px 64px;display:grid}.kg .kg-note header{flex-direction:column;gap:10px;margin-bottom:24px;display:flex}.kg .kg-note h1{font:650 clamp(28px,3.4vw,40px)/1.1 var(--sans);letter-spacing:-.025em;margin:0}.kg .kg-summary{color:var(--t2);margin:0;font-size:16.5px}.kg .kg-tags{flex-wrap:wrap;gap:6px;margin:0;padding:0;list-style:none;display:flex}.kg .kg-tags li{font:11px var(--mono);color:var(--t3)}.kg .kg-body{max-width:72ch}.kg .kg-side{top:calc(var(--nav) + 20px);flex-direction:column;align-self:start;gap:22px;display:flex;position:sticky}.kg .kg-side section{border:1px solid var(--line);background:var(--s1);border-radius:4px;padding:12px 14px}.kg .kg-side h2{font:500 10.5px var(--mono);letter-spacing:.08em;text-transform:uppercase;color:var(--t3);margin:0 0 8px}.kg .kg-local-fig{margin:0 0 8px}.kg .kg-local{width:100%;max-width:320px;height:auto;margin:0 auto;display:block;overflow:visible}.kg .kg-local .ln{cursor:pointer;transition:opacity .15s}.kg .kg-local .ln:focus{outline:none}.kg .kg-local .ll{stroke-opacity:.35;stroke-width:1px;transition:stroke-opacity .15s,stroke-width .15s}.kg .kg-local .hit{fill:#0000}.kg .kg-local .ls{transition:transform .15s}.kg .kg-local .lbl{font:10px var(--mono);fill:var(--t2);pointer-events:none}.kg .kg-local:has(.ln:hover,.ln:focus-visible) .ln:not(:hover):not(:focus-visible){opacity:.25}.kg .kg-local .ln:hover .ll,.kg .kg-local .ln:focus-visible .ll{stroke-opacity:1;stroke-width:1.8px}.kg .kg-local .ln:hover .ls,.kg .kg-local .ln:focus-visible .ls{transform:scale(1.5)}.kg .kg-local .ln:hover .lbl,.kg .kg-local .ln:focus-visible .lbl{fill:var(--t1)}.kg .kg-local .ln:focus-visible .hit{stroke:var(--signal);stroke-width:1.5px}.kg .kg-local .lt{opacity:0;pointer-events:none;transition:opacity .12s}.kg .kg-local .lt rect{fill:#0b0d12;stroke:var(--line)}.kg .kg-local .lt text{font:10px var(--mono);fill:var(--t1)}.kg .kg-local-legend{font:10.5px var(--mono);color:var(--t3);flex-wrap:wrap;justify-content:center;gap:6px 12px;margin-top:6px;display:flex}.kg .kg-local-legend span{align-items:center;gap:5px;display:inline-flex}@media (prefers-reduced-motion:reduce){.kg .kg-local *,.kg .kg-local{transition:none!important}}.kg .kg-links{flex-direction:column;gap:5px;margin:0;padding:0;list-style:none;display:flex}.kg .kg-links li{align-items:center;gap:8px;font-size:13px;display:flex}.kg .kg-links a{color:var(--t1);text-decoration:none}.kg .kg-links a:hover{color:var(--signal)}.kg .kg-links span{font:10px var(--mono);color:var(--t3);text-transform:uppercase;white-space:nowrap;margin-left:auto}@media (max-width:760px){.kg .kg-top{gap:12px;padding:0 14px}.kg .kg-count{display:none}.kg .kg-tools{padding:8px 14px}.kg .kg-search,.kg .kg-search input,.kg .kg-results{width:100%}.kg .kg-actions{margin-left:0}.kg .kg-legend{display:none}.kg .kg-panel{border-bottom:0;border-radius:10px 10px 0 0;width:auto;max-height:55%;inset:auto 0 0}.kg .kg-note{grid-template-columns:minmax(0,1fr);gap:28px;padding:22px 16px 48px}.kg .kg-side{position:static}}
