@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/multi-llm-setup/#article”,
“headline”: “Multi-LLM setup: four models with clear routing logic”,
“description”: “Claude, Codex, Gemini, Ministral 3 14B locally — routing logic from my own AI consulting practice. Architecture instead of a subscription upgrade.”,
“url”: “https://schuebeler-consulting.de/en/multi-llm-setup/”,
“inLanguage”: “en”,
“keywords”: [“multi-LLM”, “LLM routing”, “Claude”, “Gemini”, “Codex”, “Ministral”, “Ollama”, “LM Studio”, “AI architecture”, “AI consulting OWL”, “AI consulting NRW”, “AI consulting Bielefeld”, “AI consulting Detmold”],
“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/multi-llm-setup/”
},
“isPartOf”: {
“@type”: “WebPage”,
“@id”: “https://schuebeler-consulting.de/en/ai-consulting-nrw-owl/#hub”
}
}
AI consulting overview
A case from my own practice
Multi-LLM setup: four models with clear routing logic.
Claude, Codex, Gemini, Ministral 3 14B locally. Every task ends up at the right system. Including the limits of local models.
The problem
A single all-purpose model is a compromise machine.
The most powerful model for every task gets expensive — through rate limits, cost and inconsistent quality.
Relying on a single language model buys simplicity at the cost of lower quality and availability risks. Rate limits, strengths-and-weaknesses profiles and cost curves all argue for a clear separation of tasks. The logic for that is documented.
The routing rule
Four models with clear decision logic.
| Model | Routing criterion | Typical tasks |
| Claude (Sonnet/Opus) |
Feel for language, reasoning, substance |
Blog posts, editing, client communication, strategic consulting |
| Codex |
Mechanical coding tasks |
Code stubs, refactoring, test data, automated transformations |
| Gemini |
Large context window, web access |
Research-intensive analyses, document processing, web synthesis |
| Ministral 3 14B |
Local inference, data protection |
Boilerplate, simple extraction, test data |
4
Models in the stack
1
Routing logic
0
Content tasks delegated to local models
What works
Quality comes from the right routing.
4 stages
Content QA pipeline
Substance · patterns · grammar · review
RTX 5070 Ti
16 GB VRAM, local inference
Ministral 3 14B, Qwen 3.5
4
Models in the production stack
Claude · Codex · Gemini · Ministral
Local models deliver code, boilerplate, extraction. For editing, voice, reasoning and client communication, Claude is the only system in the stack. This boundary is a deliberate design decision.
Lessons Learned
Three lessons that were bought dearly.
-
Lesson 1
Local models for content tasks. Ministral 3 14B runs into the English-translation problem: idioms, feel for language and lines of argument are missing. The documented voice drift in a blog post was the proof. Since then, content generation stays with Claude.
Lesson 2
A routing pattern without explicit rules. “It depends” is not routing. The line between coding tasks (Ministral, Codex) and content tasks (Claude) belongs in explicit documentation and must be followed consistently.