sc-memory-graph — knowledge graph for consultants

@import url(‘https://fonts.googleapis.com/css2?family=Instrument+Serif:ital@0;1&family=Space+Grotesk:wght@300;400;500;600;700&family=JetBrains+Mono:wght@400;500&display=swap’); :root { –kix-font-display: ‘Instrument Serif’, Georgia, serif; –kix-font-body: ‘Space Grotesk’, system-ui, sans-serif; –kix-font-mono: ‘JetBrains Mono’, ‘Courier New’, monospace; –kix-text-xs: 0.75rem; –kix-text-sm: 0.875rem; –kix-text-base: 1rem; –kix-text-lg: 1.125rem; –kix-text-xl: 1.25rem; –kix-text-2xl: 1.5rem; –kix-text-3xl: 1.875rem; –kix-text-4xl: 2.25rem; –kix-text-5xl: clamp(2.25rem, 4vw + 1rem, 3.5rem); –kix-leading-tight: 1.15; –kix-leading-snug: 1.35; –kix-leading-base: 1.65; –kix-leading-loose: 1.85; –kix-tracking-tight: -0.02em; –kix-tracking-normal: 0em; –kix-tracking-wide: 0.05em; –kix-tracking-caps: 0.12em; –kix-blue: #1e40af; –kix-blue-dark: #1e3a8a; –kix-blue-light: #3b82f6; –kix-blue-subtle: #eff6ff; –kix-blue-mid: #dbeafe; –kix-teal: #14b8a6; –kix-teal-dark: #0f9488; –kix-teal-subtle: #f0fdfa; –kix-navy: #0e1422; –kix-navy-mid: #141b2d; –kix-navy-surface: #1a2233; –kix-navy-border: rgba(255, 255, 255, 0.12); –kix-bg: #fafbfc; –kix-bg-warm: #f8f7f5; –kix-bg-section: #f1f5f9; –kix-border: #e2e8f0; –kix-border-strong: #cbd5e1; –kix-text: #1a202c; –kix-text-secondary: #4a5568; –kix-text-muted: #718096; –kix-text-on-dark: #f0f4f8; –kix-text-muted-dark: rgba(240, 244, 248, 0.65); –kix-space-1: 0.25rem; –kix-space-2: 0.5rem; –kix-space-3: 0.75rem; –kix-space-4: 1rem; –kix-space-6: 1.5rem; –kix-space-8: 2rem; –kix-space-10: 2.5rem; –kix-space-12: 3rem; –kix-space-16: 4rem; –kix-space-20: 5rem; –kix-space-24: 6rem; –kix-container: 1200px; –kix-container-text: 720px; –kix-container-wide: 1380px; –kix-gutter: clamp(1rem, 3vw, 2rem); –kix-section-y: clamp(4rem, 8vw, 7rem); –kix-section-y-sm: clamp(2.5rem, 5vw, 4rem); –kix-radius-sm: 3px; –kix-radius-md: 6px; –kix-radius-lg: 10px; –kix-transition: 180ms ease-out; –kix-transition-slow: 280ms ease-out; } .kix-page *, .kix-page *::before, .kix-page *::after { box-sizing: border-box; } .kix-section, .kix-hero, .kix-services-section, .kix-cases-section, .kix-cta-section, .kix-case-hero, .kix-case-section { font-family: var(–kix-font-body); } .kix-container { max-width: var(–kix-container); margin-left: auto; margin-right: auto; padding-left: var(–kix-gutter); padding-right: var(–kix-gutter); } .kix-container–text { max-width: var(–kix-container-text); margin-left: auto; margin-right: auto; padding-left: var(–kix-gutter); padding-right: var(–kix-gutter); } .kix-container–wide { max-width: var(–kix-container-wide); margin-left: auto; margin-right: auto; padding-left: var(–kix-gutter); padding-right: var(–kix-gutter); } .kix-overline { display: block; font-family: var(–kix-font-body); font-size: var(–kix-text-xs); font-weight: 600; letter-spacing: var(–kix-tracking-caps); text-transform: uppercase; color: var(–kix-teal); margin-bottom: var(–kix-space-3); } .kix-overline–light { color: var(–kix-teal); opacity: 0.9; } .kix-headline { font-family: var(–kix-font-display) !important; font-size: var(–kix-text-4xl) !important; font-weight: 400 !important; line-height: var(–kix-leading-tight) !important; letter-spacing: var(–kix-tracking-tight) !important; color: var(–kix-text) !important; background: none !important; -webkit-background-clip: unset !important; background-clip: unset !important; -webkit-text-fill-color: var(–kix-text) !important; margin-bottom: var(–kix-space-6) !important; } .kix-headline–hero { font-size: var(–kix-text-5xl) !important; margin-bottom: var(–kix-space-4) !important; } .kix-headline–on-dark { color: var(–kix-text-on-dark) !important; -webkit-text-fill-color: var(–kix-text-on-dark) !important; } .kix-headline–center { text-align: center; } .kix-subheadline { font-family: var(–kix-font-body) !important; font-size: var(–kix-text-xl) !important; font-weight: 600 !important; color: var(–kix-text-secondary) !important; background: none !important; -webkit-text-fill-color: var(–kix-text-secondary) !important; line-height: var(–kix-leading-base) !important; margin-bottom: var(–kix-space-8) !important; } .kix-lead { font-family: var(–kix-font-body); font-size: var(–kix-text-lg); line-height: var(–kix-leading-loose); color: var(–kix-text-secondary); margin-bottom: var(–kix-space-8); max-width: 58ch; } .kix-lead–on-dark { color: var(–kix-text-muted-dark); } .kix-text { font-family: var(–kix-font-body); font-size: var(–kix-text-base); line-height: var(–kix-leading-base); color: var(–kix-text-secondary); } .kix-text p { margin-bottom: var(–kix-space-4); } .kix-text–on-dark { color: var(–kix-text-muted-dark); } .kix-pullquote { border-left: 3px solid var(–kix-teal); padding-left: var(–kix-space-8); margin: var(–kix-space-10) 0; } .kix-pullquote__text { font-family: var(–kix-font-display); font-style: italic; font-size: var(–kix-text-2xl); line-height: var(–kix-leading-snug); color: var(–kix-text); margin-bottom: 0; } .kix-metrics-box { background: var(–kix-navy-surface); border: 1px solid var(–kix-navy-border); border-radius: var(–kix-radius-md); padding: var(–kix-space-8); display: flex; flex-direction: column; gap: 0; } .kix-metrics-box__item { padding: var(–kix-space-6) 0; border-bottom: 1px solid var(–kix-navy-border); } .kix-metrics-box__item:last-child { border-bottom: none; padding-bottom: 0; } .kix-metrics-box__item:first-child { padding-top: 0; } .kix-metrics-box__number { font-family: var(–kix-font-mono); font-size: var(–kix-text-3xl); font-weight: 500; line-height: 1; color: var(–kix-teal); margin-bottom: var(–kix-space-2); display: block; } .kix-metrics-box__number–blue { color: var(–kix-blue-light); } .kix-metrics-box__label { font-family: var(–kix-font-body); font-size: var(–kix-text-xs); font-weight: 500; letter-spacing: var(–kix-tracking-wide); text-transform: uppercase; color: var(–kix-text-muted-dark); display: block; } .kix-metric-inline { font-family: var(–kix-font-mono); font-size: var(–kix-text-3xl); font-weight: 500; color: var(–kix-blue); line-height: 1; display: block; margin-bottom: var(–kix-space-1); } .kix-metric-inline–teal { color: var(–kix-teal); } .kix-metric-inline–label { font-family: var(–kix-font-body); font-size: var(–kix-text-xs); text-transform: uppercase; letter-spacing: var(–kix-tracking-caps); color: var(–kix-text-muted); margin-bottom: 0; } .kix-metrics-row { display: grid; grid-template-columns: repeat(3, 1fr); gap: var(–kix-space-1); margin: var(–kix-space-8) 0; } .kix-metrics-row__item { background: var(–kix-bg); border: 1px solid var(–kix-border); border-top: 3px solid var(–kix-teal); padding: var(–kix-space-6); border-radius: 0 0 var(–kix-radius-sm) var(–kix-radius-sm); } .kix-metrics-row__item:nth-child(3) { border-top-color: var(–kix-blue); } .kix-metrics-row__number { font-family: var(–kix-font-mono); font-size: var(–kix-text-4xl); font-weight: 500; color: var(–kix-text); line-height: 1; margin-bottom: var(–kix-space-2); display: block; } .kix-metrics-row__label { font-family: var(–kix-font-body); font-size: var(–kix-text-sm); color: var(–kix-text-secondary); line-height: var(–kix-leading-snug); } .kix-metrics-row__sublabel { font-family: var(–kix-font-body); font-size: var(–kix-text-xs); color: var(–kix-text-muted); text-transform: uppercase; letter-spacing: var(–kix-tracking-wide); margin-top: var(–kix-space-1); } @media (max-width: 640px) { .kix-metrics-row { grid-template-columns: 1fr; gap: var(–kix-space-4); } } .kix-hero { background: var(–kix-bg); padding: var(–kix-section-y) 0; } .kix-hero__inner { display: grid; grid-template-columns: 3fr 2fr; gap: var(–kix-space-16); align-items: center; } .kix-hero__content { } .kix-hero__metrics { } @media (max-width: 900px) { .kix-hero__inner { grid-template-columns: 1fr; gap: var(–kix-space-10); } } .kix-statement-section { background: var(–kix-bg-warm); padding: var(–kix-section-y-sm) 0; } .kix-statement-section .kix-text { font-size: var(–kix-text-lg); line-height: var(–kix-leading-loose); } .kix-services-section { background: var(–kix-bg); padding: var(–kix-section-y) 0; } .kix-services-section__header { margin-bottom: var(–kix-space-12); } .kix-services-grid { display: grid; grid-template-columns: 2fr 3fr; grid-template-rows: auto auto; gap: var(–kix-space-4); } .kix-services-grid__row { display: contents; } .kix-card:nth-child(1) { grid-column: 1; } .kix-card:nth-child(2) { grid-column: 2; } .kix-card:nth-child(3) { grid-column: 1 / span 1; grid-column: auto; } .kix-card:nth-child(4) { grid-column: auto; } .kix-services-grid { grid-template-columns: 2fr 3fr; } .kix-services-grid–row2 { grid-template-columns: 11fr 9fr; } @media (max-width: 768px) { .kix-services-grid { grid-template-columns: 1fr; } } .kix-card { background: #ffffff; border: 1px solid var(–kix-border); border-radius: var(–kix-radius-sm); padding: var(–kix-space-8); transition: border-color var(–kix-transition), transform var(–kix-transition); display: flex; flex-direction: column; gap: var(–kix-space-3); } .kix-card:hover { border-color: var(–kix-blue); transform: translateY(-2px); } .kix-card__accent { display: block; width: 32px; height: 2px; background: var(–kix-teal); margin-bottom: var(–kix-space-4); } .kix-card__metric { font-family: var(–kix-font-mono); font-size: var(–kix-text-2xl); font-weight: 500; color: var(–kix-blue); line-height: 1; margin-bottom: var(–kix-space-1); } .kix-card__title { font-family: var(–kix-font-body) !important; font-size: var(–kix-text-xl) !important; font-weight: 600 !important; color: var(–kix-text) !important; background: none !important; -webkit-text-fill-color: var(–kix-text) !important; line-height: var(–kix-leading-tight) !important; margin-bottom: var(–kix-space-2) !important; } .kix-card__tag { font-family: var(–kix-font-body); font-size: var(–kix-text-xs); font-weight: 500; letter-spacing: var(–kix-tracking-wide); text-transform: uppercase; color: var(–kix-text-muted); margin-bottom: var(–kix-space-3); } .kix-card__body { font-family: var(–kix-font-body); font-size: var(–kix-text-sm); line-height: var(–kix-leading-base); color: var(–kix-text-secondary); flex: 1; } .kix-card__body p { margin-bottom: var(–kix-space-2); } .kix-card__body p:last-child { margin-bottom: 0; } .kix-cases-section { background: var(–kix-navy); padding: var(–kix-section-y) 0; } .kix-cases-section .kix-overline { color: var(–kix-teal); margin-bottom: var(–kix-space-10); } .kix-cases-section__headline { font-family: var(–kix-font-display) !important; font-size: var(–kix-text-4xl) !important; font-weight: 400 !important; color: var(–kix-text-on-dark) !important; background: none !important; -webkit-text-fill-color: var(–kix-text-on-dark) !important; margin-bottom: var(–kix-space-12) !important; letter-spacing: var(–kix-tracking-tight) !important; } .kix-case-teaser { display: grid; grid-template-columns: 1fr auto; gap: var(–kix-space-12); align-items: start; padding: var(–kix-space-10) 0; border-bottom: 1px solid var(–kix-navy-border); } .kix-case-teaser:last-child { border-bottom: none; padding-bottom: 0; } .kix-case-teaser__number { font-family: var(–kix-font-mono); font-size: var(–kix-text-xs); font-weight: 500; color: var(–kix-teal); letter-spacing: var(–kix-tracking-wide); text-transform: uppercase; margin-bottom: var(–kix-space-3); display: block; } .kix-case-teaser__title { font-family: var(–kix-font-display) !important; font-size: var(–kix-text-3xl) !important; font-weight: 400 !important; color: var(–kix-text-on-dark) !important; background: none !important; -webkit-text-fill-color: var(–kix-text-on-dark) !important; line-height: var(–kix-leading-tight) !important; margin-bottom: var(–kix-space-4) !important; } .kix-case-teaser__lead { font-family: var(–kix-font-body); font-size: var(–kix-text-base); color: var(–kix-text-muted-dark); line-height: var(–kix-leading-base); margin-bottom: var(–kix-space-6); } .kix-case-teaser__link { display: inline-flex; align-items: center; gap: var(–kix-space-2); font-family: var(–kix-font-body); font-size: var(–kix-text-sm); font-weight: 600; color: var(–kix-teal) !important; text-decoration: none !important; letter-spacing: var(–kix-tracking-wide); text-transform: uppercase; transition: gap var(–kix-transition); } .kix-case-teaser__link:hover { gap: var(–kix-space-3); color: var(–kix-teal) !important; } .kix-case-teaser__link::after { content: ‘→’; display: inline-block; transition: transform var(–kix-transition); } .kix-case-teaser__link:hover::after { transform: translateX(3px); } .kix-case-teaser__aside { text-align: right; min-width: 160px; } .kix-case-teaser__big-number { font-family: var(–kix-font-mono); font-size: var(–kix-text-4xl); font-weight: 500; color: var(–kix-teal); line-height: 1; display: block; margin-bottom: var(–kix-space-2); } .kix-case-teaser__big-label { font-family: var(–kix-font-body); font-size: var(–kix-text-xs); color: var(–kix-text-muted-dark); text-transform: uppercase; letter-spacing: var(–kix-tracking-wide); } @media (max-width: 640px) { .kix-case-teaser { grid-template-columns: 1fr; gap: var(–kix-space-6); } .kix-case-teaser__aside { text-align: left; } } .kix-cta-section { background: var(–kix-blue); padding: var(–kix-section-y-sm) 0; text-align: center; } .kix-cta-section__headline { font-family: var(–kix-font-display) !important; font-size: var(–kix-text-4xl) !important; font-weight: 400 !important; color: #ffffff !important; background: none !important; -webkit-text-fill-color: #ffffff !important; line-height: var(–kix-leading-tight) !important; margin-bottom: var(–kix-space-4) !important; } .kix-cta-section__sub { font-family: var(–kix-font-body); font-size: var(–kix-text-base); color: rgba(255, 255, 255, 0.75); margin-bottom: var(–kix-space-8); } .kix-btn { display: inline-flex; align-items: center; gap: var(–kix-space-2); font-family: var(–kix-font-body); font-size: var(–kix-text-sm); font-weight: 600; letter-spacing: var(–kix-tracking-wide); text-transform: uppercase; text-decoration: none !important; padding: var(–kix-space-4) var(–kix-space-8); border-radius: var(–kix-radius-sm); transition: background-color var(–kix-transition), transform var(–kix-transition), box-shadow var(–kix-transition); cursor: pointer; border: none; } .kix-btn–primary { background: var(–kix-blue); color: #ffffff !important; } .kix-btn–primary:hover { background: var(–kix-blue-dark); transform: translateY(-1px); box-shadow: 0 4px 16px rgba(30, 64, 175, 0.3); } .kix-btn–inverse { background: #ffffff; color: var(–kix-blue) !important; } .kix-btn–inverse:hover { background: #f8faff; transform: translateY(-1px); box-shadow: 0 4px 16px rgba(0, 0, 0, 0.15); } .kix-btn–ghost { background: transparent; color: var(–kix-text-on-dark) !important; border: 1px solid var(–kix-navy-border); } .kix-btn–ghost:hover { border-color: var(–kix-teal); color: var(–kix-teal) !important; } .kix-btn__arrow { display: inline-block; transition: transform var(–kix-transition); } .kix-btn:hover .kix-btn__arrow { transform: translateX(3px); } .kix-case-hero { background: var(–kix-navy); padding: var(–kix-section-y) 0; } .kix-case-hero__back { display: inline-flex; align-items: center; gap: var(–kix-space-2); font-family: var(–kix-font-body); font-size: var(–kix-text-sm); color: var(–kix-teal) !important; text-decoration: none !important; letter-spacing: var(–kix-tracking-wide); text-transform: uppercase; margin-bottom: var(–kix-space-10); transition: gap var(–kix-transition); } .kix-case-hero__back:hover { gap: var(–kix-space-3); } .kix-case-hero__back::before { content: ‘←’; display: inline-block; transition: transform var(–kix-transition); } .kix-case-hero__back:hover::before { transform: translateX(-3px); } .kix-case-section { padding: var(–kix-section-y-sm) 0; } .kix-case-section–warm { background: var(–kix-bg-warm); } .kix-case-section–light { background: var(–kix-bg); } .kix-case-section–subtle { background: var(–kix-bg-section); } .kix-two-col { display: grid; grid-template-columns: 1fr 1fr; gap: var(–kix-space-16); align-items: start; } .kix-two-col–60-40 { grid-template-columns: 3fr 2fr; } .kix-two-col–40-60 { grid-template-columns: 2fr 3fr; } @media (max-width: 768px) { .kix-two-col, .kix-two-col–60-40, .kix-two-col–40-60 { grid-template-columns: 1fr; gap: var(–kix-space-8); } } .kix-list { list-style: none; padding: 0; margin: 0; display: flex; flex-direction: column; gap: var(–kix-space-4); } .kix-list__item { display: flex; gap: var(–kix-space-4); align-items: flex-start; padding: var(–kix-space-4) 0; border-bottom: 1px solid var(–kix-border); } .kix-list__item:last-child { border-bottom: none; } .kix-list__marker { font-family: var(–kix-font-mono); font-size: var(–kix-text-xs); font-weight: 500; color: var(–kix-teal); text-transform: uppercase; letter-spacing: var(–kix-tracking-wide); min-width: 80px; padding-top: 2px; flex-shrink: 0; } .kix-list__content { font-family: var(–kix-font-body); font-size: var(–kix-text-base); color: var(–kix-text-secondary); line-height: var(–kix-leading-base); } .kix-list__content strong { color: var(–kix-text); font-weight: 600; } .kix-routing-table { width: 100%; border-collapse: collapse; font-family: var(–kix-font-body); font-size: var(–kix-text-sm); } .kix-routing-table th { text-align: left; padding: var(–kix-space-3) var(–kix-space-4); background: var(–kix-bg-section); font-weight: 600; font-size: var(–kix-text-xs); letter-spacing: var(–kix-tracking-caps); text-transform: uppercase; color: var(–kix-text-muted); border-bottom: 1px solid var(–kix-border); } .kix-routing-table td { padding: var(–kix-space-4); border-bottom: 1px solid var(–kix-border); color: var(–kix-text-secondary); vertical-align: top; } .kix-routing-table tr:last-child td { border-bottom: none; } .kix-routing-table .kix-model-tag { font-family: var(–kix-font-mono); font-size: var(–kix-text-xs); color: var(–kix-blue); font-weight: 500; } .kix-divider { display: flex; align-items: center; gap: var(–kix-space-4); margin: var(–kix-space-8) 0; } .kix-divider::before, .kix-divider::after { content: ”; flex: 1; height: 1px; background: var(–kix-border); } .kix-divider__label { font-family: var(–kix-font-body); font-size: var(–kix-text-xs); color: var(–kix-text-muted); letter-spacing: var(–kix-tracking-caps); text-transform: uppercase; white-space: nowrap; } @media (prefers-reduced-motion: reduce) { .kix-btn, .kix-card, .kix-case-teaser__link, .kix-btn__arrow, .kix-case-teaser__link::after, .kix-case-hero__back, .kix-case-hero__back::before { transition: none; transform: none !important; } } .kix-btn:focus-visible, .kix-case-teaser__link:focus-visible, .kix-case-hero__back:focus-visible { outline: 2px solid var(–kix-teal); outline-offset: 3px; border-radius: var(–kix-radius-sm); } @media (max-width: 480px) { .kix-pullquote { padding-left: var(–kix-space-6); } .kix-metrics-box { padding: var(–kix-space-6); } .kix-card { padding: var(–kix-space-6); } } html body article.schuebeler-article, html body[class] article[class], html body article.post, html body article.page { max-width: 100% !important; width: 100% !important; padding-left: 0 !important; padding-right: 0 !important; } .kix-hero, .kix-statement-section, .kix-services-section, .kix-cases-section, .kix-cta-section, .kix-case-hero, .kix-case-section { width: 100vw; position: relative; left: 50%; right: 50%; margin-left: -50vw; margin-right: -50vw; max-width: 100vw; } .kix-container { width: 100%; max-width: clamp(960px, 92vw, 1440px); margin-left: auto; margin-right: auto; padding-left: clamp(1rem, 4vw, 3rem); padding-right: clamp(1rem, 4vw, 3rem); box-sizing: border-box; } .kix-container–text { width: 100%; max-width: clamp(640px, 60vw, 820px); margin-left: auto; margin-right: auto; padding-left: clamp(1rem, 4vw, 3rem); padding-right: clamp(1rem, 4vw, 3rem); box-sizing: border-box; } .kix-container–wide { width: 100%; max-width: clamp(1100px, 96vw, 1620px); margin-left: auto; margin-right: auto; padding-left: clamp(1rem, 4vw, 3rem); padding-right: clamp(1rem, 4vw, 3rem); box-sizing: border-box; } section.kix-cases-section .kix-case-teaser__lead, .kix-cases-section .kix-case-teaser .kix-case-teaser__lead { color: rgba(240, 244, 248, 0.92) !important; font-size: var(–kix-text-lg); line-height: var(–kix-leading-base); font-weight: 400; } section.kix-case-hero .kix-lead–on-dark, .kix-case-hero .kix-lead.kix-lead–on-dark { color: rgba(240, 244, 248, 0.92) !important; } @media (max-width: 900px) { .kix-hero, .kix-statement-section, .kix-services-section, .kix-cases-section, .kix-cta-section, .kix-case-hero, .kix-case-section { width: 100%; left: auto; right: auto; margin-left: 0; margin-right: 0; max-width: 100%; } .kix-container, .kix-container–text, .kix-container–wide { max-width: 100%; padding-left: 1.25rem; padding-right: 1.25rem; } } html body article .kix-cases-section, html body article .kix-cases-section *, html body article .kix-case-hero, html body article .kix-case-hero *, html body article .kix-cta-section, html body article .kix-cta-section * { color: var(–kix-text-on-dark) !important; } html body article .kix-cases-section h1, html body article .kix-cases-section h2, html body article .kix-cases-section h3, html body article .kix-cases-section h4, html body article .kix-cases-section .kix-headline, html body article .kix-cases-section .kix-cases-section__headline, html body article .kix-cases-section .kix-case-teaser__title, html body article .kix-case-hero h1, html body article .kix-case-hero h2, html body article .kix-case-hero .kix-headline, html body article .kix-cta-section h1, html body article .kix-cta-section h2, html body article .kix-cta-section .kix-headline, html body article .kix-cta-section .kix-cta-section__headline { color: #f8fafc !important; -webkit-text-fill-color: #f8fafc !important; background: none !important; background-clip: unset !important; -webkit-background-clip: unset !important; background-image: none !important; } html body article .kix-cases-section p, html body article .kix-cases-section .kix-case-teaser__lead, html body article .kix-case-hero p, html body article .kix-case-hero .kix-lead, html body article .kix-case-hero .kix-lead–on-dark, html body article .kix-cta-section p, html body article .kix-cta-section .kix-cta-section__sub { color: #e2e8f0 !important; } html body article .kix-cases-section .kix-overline, html body article .kix-cases-section .kix-case-teaser__number, html body article .kix-cases-section .kix-case-teaser__link, html body article .kix-case-hero .kix-overline, html body article .kix-case-hero .kix-case-hero__back { color: var(–kix-teal) !important; } html body article .kix-cases-section .kix-case-teaser__big-number, html body article .kix-cases-section .kix-case-teaser__big-label { color: var(–kix-teal) !important; } html body article .kix-cases-section .kix-case-teaser__big-label { color: #e2e8f0 !important; } html body article .kix-statement-section, html body article .kix-services-section, html body article .kix-case-section–warm, html body article .kix-case-section–light, html body article .kix-case-section–subtle { color: var(–kix-text); } html body article .kix-statement-section p, html body article .kix-services-section p, html body article .kix-case-section–warm p, html body article .kix-case-section–light p, html body article .kix-case-section–subtle p { color: var(–kix-text-secondary) !important; } html body article .kix-services-section .kix-card__body p { color: var(–kix-text-secondary) !important; } @media (max-width: 768px) { .kix-hero__inner { grid-template-columns: 1fr !important; gap: var(–kix-space-8) !important; } .kix-hero__content { text-align: left; } .kix-hero__metrics { max-width: 100% !important; } .kix-services-grid, .kix-services-grid[style] { grid-template-columns: 1fr !important; gap: var(–kix-space-4) !important; } .kix-card { padding: var(–kix-space-6) !important; } .kix-card:hover { transform: none !important; } html body article .kix-cases-section .kix-case-teaser { grid-template-columns: 1fr !important; gap: var(–kix-space-6) !important; padding: var(–kix-space-8) 0 !important; } html body article .kix-cases-section .kix-case-teaser__aside { border-top: 1px solid rgba(255, 255, 255, 0.15); padding-top: var(–kix-space-6); text-align: left; } html body article .kix-cases-section .kix-case-teaser__big-number { font-size: 2.5rem !important; } .kix-two-col, .kix-two-col–60-40, .kix-two-col–50-50 { grid-template-columns: 1fr !important; gap: var(–kix-space-8) !important; } .kix-metrics-row { grid-template-columns: 1fr !important; gap: var(–kix-space-4) !important; } .kix-metrics-row__item { padding: var(–kix-space-6) !important; } .kix-routing-table-wrap, .kix-routing-table { display: block; overflow-x: auto; max-width: 100%; -webkit-overflow-scrolling: touch; border-collapse: collapse; } .kix-routing-table thead, .kix-routing-table tbody, .kix-routing-table tr { display: table; width: 100%; table-layout: fixed; min-width: 600px; } .kix-routing-table th, .kix-routing-table td { white-space: normal; word-break: break-word; padding: var(–kix-space-3) var(–kix-space-4); font-size: var(–kix-text-sm); } .kix-headline–hero { font-size: clamp(2rem, 7vw + 0.5rem, 2.75rem) !important; line-height: 1.1 !important; } .kix-headline { font-size: 1.875rem !important; line-height: 1.2 !important; } .kix-cases-section__headline { font-size: 2rem !important; line-height: 1.15 !important; margin-bottom: var(–kix-space-8) !important; } .kix-case-teaser__title { font-size: 1.5rem !important; line-height: 1.2 !important; } .kix-cta-section__headline { font-size: 1.875rem !important; } .kix-metrics-box { padding: var(–kix-space-6) !important; } .kix-metrics-box__number { font-size: 1.875rem !important; } html body article .kix-container, html body article .kix-container–text, html body article .kix-container–wide { padding-left: 1.25rem !important; padding-right: 1.25rem !important; } .kix-hero, .kix-statement-section, .kix-services-section, .kix-cases-section, .kix-cta-section, .kix-case-hero, .kix-case-section { padding-top: clamp(2.5rem, 8vw, 3.5rem) !important; padding-bottom: clamp(2.5rem, 8vw, 3.5rem) !important; } .kix-hero .wp-block-button, .kix-cta-section .wp-block-button { width: 100%; } .kix-hero .wp-block-button__link, .kix-cta-section .wp-block-button__link { width: 100%; text-align: center; display: block; box-sizing: border-box; } .kix-pullquote { padding-left: var(–kix-space-4) !important; } .kix-pullquote__text { font-size: 1.25rem !important; line-height: 1.4 !important; } .kix-list__item { flex-direction: column !important; gap: var(–kix-space-2) !important; } .kix-list__marker { min-width: 0 !important; width: auto !important; } } html body article .kix-cta-section .wp-block-button__link.kix-btn–inverse, html body article .kix-cta-section .wp-block-button__link { background-color: #ffffff !important; background-image: none !important; background: #ffffff !important; color: var(–kix-blue) !important; -webkit-text-fill-color: var(–kix-blue) !important; border: none !important; } html body article .kix-cta-section .wp-block-button__link:hover { background-color: #f8fafc !important; background-image: none !important; background: #f8fafc !important; color: var(–kix-blue-dark) !important; -webkit-text-fill-color: var(–kix-blue-dark) !important; } html body article .kix-cta-section .wp-block-button__link .kix-btn__arrow { color: var(–kix-blue) !important; -webkit-text-fill-color: var(–kix-blue) !important; } html body article section.kix-case-section–warm .kix-text, html body article section.kix-case-section–warm p, html body article section.kix-case-section–warm p.kix-text, html body article section.kix-statement-section .kix-text, html body article section.kix-statement-section p, html body article section.kix-services-section p, html body article section.kix-services-section .kix-card__body p, html body article section.kix-case-section–light p, html body article section.kix-case-section–subtle p, html body article section.kix-case-section–subtle .kix-text { color: #4a5568 !important; -webkit-text-fill-color: #4a5568 !important; background: none !important; background-image: none !important; background-color: transparent !important; -webkit-background-clip: unset !important; background-clip: unset !important; } html body article .kix-cta-section .kix-cta-section__sub, html body article .kix-cta-section p.has-text-align-center, html body article .kix-cta-section p { text-align: center !important; } html body article .kix-cta-section .wp-block-buttons { justify-content: center !important; display: flex !important; } { “@context”: “https://schema.org”, “@type”: “TechArticle”, “@id”: “https://schuebeler-consulting.de/en/knowledge-graph-for-consultants/#article”, “headline”: “sc-memory-graph: the knowledge graph that forgets nothing”, “description”: “Hybrid recall with BM25, 768d vectors and Personalized PageRank. 94.79% Recall@5 on LongMemEval-S. A case from my own AI consulting practice.”, “url”: “https://schuebeler-consulting.de/en/knowledge-graph-for-consultants/”, “inLanguage”: “en”, “keywords”: [“knowledge graph”, “RAG”, “GraphRAG”, “Neo4j”, “hybrid recall”, “BM25”, “Personalized PageRank”, “BGE-M3”, “AI consulting OWL”, “AI consulting NRW”, “AI consulting Höxter”, “AI consulting Paderborn”], “datePublished”: “2026-05-09”, “dateModified”: “2026-05-10”, “author”: { “@type”: “Person”, “name”: “Johann Jörgen Schübeler”, “url”: “https://schuebeler-consulting.de/en/johann-joergen-schuebeler/” }, “publisher”: { “@type”: “Organization”, “name”: “Schübeler Consulting”, “logo”: { “@type”: “ImageObject”, “url”: “https://schuebeler-consulting.de/wp-content/uploads/2024/03/sc-logo.png” } }, “mainEntityOfPage”: { “@type”: “WebPage”, “@id”: “https://schuebeler-consulting.de/en/knowledge-graph-for-consultants/” }, “isPartOf”: { “@type”: “WebPage”, “@id”: “https://schuebeler-consulting.de/en/ai-consulting-nrw-owl/#hub” } }

AI consulting overview

A case from my own practice

sc-memory-graph: the knowledge graph that forgets nothing.

512 actions, 1,799 edges, 9 functional areas. A Recall@5 of 94.79% on LongMemEval-S — comparable with published state-of-the-art systems.

The problem

Knowledge becomes a basis for consulting when it stays retrievable.

Notion, Confluence and wiki collections are graveyards.

Consultants collect knowledge over years in tools that no one searches. The result: the same problem gets solved several times, context is lost, and changing clients means rebuilding knowledge from scratch. A retrievable memory is the foundation of dependable consulting.

The architecture

Five layers for a consistent memory.

  • Data layer
    Neo4j graph — 9 functional areas, 1,799 edges, bi-temporal validity on 8 edge types. Every fact has a validity period and a recording period.
  • Recall
    Hybrid retrieval — BM25 for keyword precision combined with a 768d vector index for semantic proximity, plus a name/ID boost for direct hits.
  • Reranking
    Personalized PageRank — context weighting based on graph proximity to the entry node. More strongly connected facts are prioritised higher.
  • Consistency
    Edge invalidation resolver — contradictory facts are detected automatically and ordered in time.
  • Interface
    MCP server — six tools (recall, record_fact, query_facts, find_conflicts, consolidate, audit). Callable directly from Claude Code.
512 Actions — training corpus
1.799 Edges in the graph
9 Functional areas (clusters)
768d Vector dimensions

Measurable results

From 66.67% to 98.61% in two iterations.

66.67%
Baseline Recall@5
Iteration 0
98.61%
Internal Recall@5
Iteration 2 — 72 questions, 7 domains
94.79%
Recall@5, external
LongMemEval-S — comparable to state of the art

The improvement from 66.67% to 98.61% followed a structured iteration protocol: measure the baseline, identify the bottleneck, improve in a targeted way, then measure again.

Lessons Learned

Three dead ends from building it.

  • Dead end 1
    Flat-file memory. Markdown files are full-text searchable. With 500+ entries, full-text search delivers poor recall quality. The move to a graph became unavoidable.
  • Dead end 2
    A pure vector index. Cosine similarity fails on precise names and IDs. “Which recall system runs on server X?” is a semantically simple question with an unreliable vector answer. The BM25 hybrid was the key.
  • Dead end 3
    Contradictory facts without invalidation. A graph without an edge invalidation resolver gives a random answer to the question “Which value applies right now?” Singleton cardinality solves this.

For your practice

What a knowledge graph project with me actually involves.

If you are planning a memory or knowledge graph project, I bring the assessment: which retrieval system fits your data and use cases? What are realistic quality expectations? Which bottlenecks does the architecture have that I know from my own experience? The result is a written assessment.

Ready for an initial AI consultation?

30 minutes, free of charge, confidential.