:root {
  --kb-accent: #fbbf24;
  --kb-accent-strong: #fcd34d;
  --kb-panel: rgba(12, 22, 38, 0.86);
  --kb-panel-solid: #0c1626;
  --kb-line: rgba(255, 255, 255, 0.1);
  --kb-line-strong: rgba(255, 255, 255, 0.18);
  --kb-title: #f8fafc;
  --kb-text: #e2e8f0;
  --kb-muted: #a9b6c8;
  --kb-chip: rgba(255, 255, 255, 0.06);
  --kb-measure: 42.5rem;
  --kb-header: var(--header-h-mobile, 64px);
}

html[data-theme="light"] {
  --kb-accent: #a64b06;
  --kb-accent-strong: #92400e;
  --kb-panel: rgba(255, 255, 255, 0.9);
  --kb-panel-solid: #ffffff;
  --kb-line: rgba(15, 23, 42, 0.1);
  --kb-line-strong: rgba(15, 23, 42, 0.18);
  --kb-title: #0b1220;
  --kb-text: #1e293b;
  --kb-muted: #4a5a70;
  --kb-chip: rgba(15, 23, 42, 0.05);
}

@media (min-width: 768px) {
  :root { --kb-header: var(--header-h-desktop, 72px); }
}

html, body {
  margin: 0;
  min-height: 100%;
  font-family: var(--font-sans, "Manrope", system-ui, sans-serif);
  color: var(--public-text);
  background: var(--public-bg);
  overflow-x: hidden;
  overflow-x: clip;
}

html { scroll-padding-top: calc(var(--kb-header) + 1rem); }
.blog-bg,
.post-bg {
  position: fixed;
  inset: 0;
  z-index: 0;
  pointer-events: none;
}

.blog-bg::before,
.post-bg::before {
  content: "";
  position: absolute;
  inset: 0;
  background: url("4c.webp") center / cover no-repeat;
  transform: scale(1.03);
  opacity: 0.22;
}

.blog-bg::after,
.post-bg::after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, rgba(8, 15, 29, 0.9), rgba(8, 15, 29, 0.82) 40%, rgba(8, 15, 29, 0.97));
}

html[data-theme="light"] .blog-bg::before,
html[data-theme="light"] .post-bg::before { opacity: 0.12; }

html[data-theme="light"] .blog-bg::after,
html[data-theme="light"] .post-bg::after {
  background: linear-gradient(180deg, rgba(248, 250, 252, 0.93), rgba(239, 246, 255, 0.86) 44%, rgba(241, 245, 249, 0.97));
}

body #footer-placeholder,
body .footer-modern {
  position: relative;
  z-index: 2;
}
.kb-main {
  position: relative;
  z-index: 1;
  padding: calc(var(--kb-header) + 1.25rem) var(--container-gutter, 1rem) 3rem;
}

.kb-shell {
  max-width: calc(var(--container-max, 1280px) - 2 * var(--container-gutter, 1rem));
  margin: 0 auto;
}
.kb-kicker {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  margin: 0;
  color: var(--kb-accent);
  font-size: 0.8125rem;
  font-weight: 800;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  text-decoration: none;
}

a.kb-kicker {
  min-height: 2.75rem;
  margin: -0.6rem 0;
}

a.kb-kicker:hover { text-decoration: underline; text-underline-offset: 0.2em; }

.kb-meta {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.25rem 0;
  margin: 0;
  color: var(--kb-muted);
  font-size: 0.8125rem;
  font-weight: 600;
  line-height: 1.5;
}
.kb-meta > * + *::before {
  content: "";
  display: inline-block;
  width: 1px;
  height: 0.9em;
  margin: 0 0.65rem;
  background: currentColor;
  opacity: 0.45;
  vertical-align: -0.1em;
}

.kb-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.55rem;
  min-height: 2.875rem;
  padding: 0.7rem 1.25rem;
  border: 1px solid transparent;
  border-radius: var(--r-pill, 999px);
  font-size: 0.9375rem;
  font-weight: 800;
  line-height: 1.2;
  text-decoration: none;
  transition: background-color 160ms ease, border-color 160ms ease, transform 160ms ease;
}

.kb-btn--primary {
  color: var(--brand-ink, #221302);
  background: linear-gradient(180deg, #fcd34d, #f59e0b);
  box-shadow: 0 8px 20px rgba(245, 158, 11, 0.22);
}

.kb-btn--primary:hover { transform: translateY(-1px); background: linear-gradient(180deg, #fde68a, #fbbf24); }

.kb-btn--ghost {
  color: var(--kb-title);
  border-color: var(--kb-line-strong);
  background: var(--kb-chip);
}

.kb-btn--ghost:hover { border-color: var(--kb-accent); }

.kb-main :is(a, button):focus-visible {
  outline: 3px solid var(--kb-accent);
  outline-offset: 3px;
  border-radius: 6px;
}
.kb-head {
  display: grid;
  gap: 0.35rem;
  margin: 0 0 1.1rem;
}

.kb-head h1 {
  margin: 0;
  color: var(--kb-title);
  font-family: var(--font-display, "Inter Tight", sans-serif);
  font-size: clamp(1.9rem, 4vw, 2.5rem);
  font-weight: 800;
  line-height: 1.05;
  letter-spacing: -0.02em;
}

.kb-head p {
  max-width: 60ch;
  margin: 0;
  color: var(--kb-muted);
  font-size: 0.975rem;
  line-height: 1.55;
}
@media (min-width: 900px) {
  .kb-head {
    grid-template-columns: auto minmax(0, 1fr);
    align-items: end;
    column-gap: 3rem;
    margin-bottom: 1.25rem;
  }

  .kb-head .kb-kicker { grid-column: 1 / -1; }
  .kb-head > p:not(.kb-kicker) { justify-self: end; max-width: 56ch; padding-bottom: 0.2rem; }
}

.kb-list {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: 1rem;
  margin: 0;
  padding: 0;
  list-style: none;
}

.kb-card {
  position: relative;
  display: grid;
  grid-template-rows: auto 1fr;
  min-width: 0;
  overflow: hidden;
  border: 1px solid var(--kb-line);
  border-radius: var(--r-md, 1rem);
  background: var(--kb-panel);
  box-shadow: var(--e1);
  transition: border-color 180ms ease, box-shadow 180ms ease, transform 180ms var(--premium-ease, ease);
}

.kb-card:hover {
  border-color: rgba(245, 158, 11, 0.45);
  box-shadow: var(--e2);
}

.kb-card:has(.kb-card__link:focus-visible) {
  outline: 3px solid var(--kb-accent);
  outline-offset: 2px;
}

.kb-card__media {
  position: relative;
  aspect-ratio: 16 / 9;
  overflow: hidden;
  background: rgba(15, 23, 42, 0.4);
}

.kb-card__media img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 450ms var(--premium-ease, ease);
}

.kb-card:hover .kb-card__media img { transform: scale(1.03); }

.kb-card__body {
  display: flex;
  flex-direction: column;
  gap: 0.6rem;
  min-width: 0;
  padding: 1.1rem 1.15rem 1.2rem;
}

.kb-card__title {
  margin: 0;
  color: var(--kb-title);
  font-family: var(--font-display, "Inter Tight", sans-serif);
  font-size: 1.1875rem;
  font-weight: 700;
  line-height: 1.28;
  letter-spacing: -0.01em;
  text-wrap: pretty;
}

.kb-card__link {
  color: inherit;
  text-decoration: none;
}

.kb-main .kb-card__link:focus-visible { outline: none; }
.kb-card__link::after {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 1;
}

.kb-card:hover .kb-card__link {
  text-decoration: underline;
  text-decoration-thickness: 1px;
  text-underline-offset: 0.18em;
}

.kb-card__excerpt {
  display: -webkit-box;
  margin: 0;
  overflow: hidden;
  color: var(--kb-muted);
  font-size: 0.9375rem;
  line-height: 1.6;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 3;
}

.kb-card__cta {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  margin-top: auto;
  padding-top: 0.35rem;
  color: var(--kb-accent);
  font-size: 0.9375rem;
  font-weight: 800;
}

.kb-card__cta i { transition: transform 180ms ease; }
.kb-card:hover .kb-card__cta i { transform: translateX(3px); }
.kb-card--lead .kb-card__title {
  font-size: clamp(1.45rem, 3.2vw, 2.05rem);
  line-height: 1.16;
  letter-spacing: -0.02em;
  text-wrap: balance;
}

.kb-card--lead .kb-card__excerpt {
  font-size: 1rem;
  -webkit-line-clamp: 4;
}

.kb-card--lead .kb-card__body {
  gap: 0.75rem;
  padding: 1.25rem 1.25rem 1.4rem;
}
@media (max-width: 639px) {
  .kb-head { margin-bottom: 0.9rem; }
  .kb-head .kb-kicker { display: none; }
  .kb-head p { font-size: 0.9375rem; }
  .kb-card--lead .kb-card__media { aspect-ratio: 2 / 1; }
  .kb-card--lead .kb-card__body { gap: 0.5rem; padding: 1rem 1.1rem 1.1rem; }
  .kb-card--lead .kb-card__title { font-size: 1.3rem; }
  .kb-card--lead .kb-card__excerpt { font-size: 0.9375rem; -webkit-line-clamp: 2; }
  .kb-card--lead .kb-card__cta { display: none; }

  .kb-card:not(.kb-card--lead) {
    grid-template-columns: 8.5rem minmax(0, 1fr);
    grid-template-rows: none;
    align-items: center;
  }

  .kb-card:not(.kb-card--lead) .kb-card__media {
    aspect-ratio: 16 / 9;
    margin: 0.6rem 0 0.6rem 0.6rem;
    border-radius: 0.5rem;
  }

  .kb-card:not(.kb-card--lead) .kb-card__body {
    gap: 0.3rem;
    padding: 0.6rem 0.8rem;
    justify-content: center;
  }

  .kb-card:not(.kb-card--lead) .kb-card__title {
    font-size: 1rem;
    line-height: 1.3;
  }

  .kb-card:not(.kb-card--lead) .kb-card__excerpt,
  .kb-card:not(.kb-card--lead) .kb-card__cta { display: none; }

  .kb-card:not(.kb-card--lead) .kb-meta { font-size: 0.75rem; flex-wrap: nowrap; white-space: nowrap; }
}

@media (max-width: 389px) {
  .kb-card:not(.kb-card--lead) { grid-template-columns: 7rem minmax(0, 1fr); }
  .kb-card:not(.kb-card--lead) .kb-meta { font-size: 0.6875rem; }
  .kb-card:not(.kb-card--lead) .kb-meta > * + *::before { margin: 0 0.45rem; }
  .kb-card:not(.kb-card--lead) .kb-card__title { font-size: 0.9375rem; }
  .kb-card--lead .kb-card__body { padding: 0.9rem 1rem 1rem; }
  .kb-card--lead .kb-card__title { font-size: 1.2rem; }
}
@media (min-width: 640px) {
  .kb-list {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 1.25rem;
  }

  .kb-card--lead {
    grid-column: 1 / -1;
    grid-template-columns: minmax(0, 1.15fr) minmax(0, 1fr);
    grid-template-rows: none;
  }

  .kb-card--lead .kb-card__media { aspect-ratio: auto; min-height: 15rem; }
  .kb-card--lead .kb-card__body { justify-content: center; padding: 1.5rem 1.6rem; }
  .kb-card--lead ~ .kb-card:nth-child(-n + 3) {
    grid-template-columns: minmax(0, 0.9fr) minmax(0, 1fr);
    grid-template-rows: none;
    align-items: center;
    gap: 0.9rem;
    padding: 0.75rem;
  }

  .kb-card--lead ~ .kb-card:nth-child(-n + 3) .kb-card__media { aspect-ratio: 16 / 9; border-radius: 0.6rem; }
  .kb-card--lead ~ .kb-card:nth-child(-n + 3) .kb-card__body { gap: 0.35rem; padding: 0 0.25rem 0 0; }
  .kb-card--lead ~ .kb-card:nth-child(-n + 3) .kb-card__title {
    display: -webkit-box;
    overflow: hidden;
    font-size: 1rem;
    line-height: 1.3;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 3;
  }
  .kb-card--lead ~ .kb-card:nth-child(-n + 3) .kb-card__excerpt { display: none; }
  .kb-card--lead ~ .kb-card:nth-child(-n + 3) .kb-meta { font-size: 0.75rem; }
  .kb-card:not(.kb-card--lead):last-child:nth-child(even) {
    grid-column: 1 / -1;
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
    grid-template-rows: none;
  }

  .kb-card:not(.kb-card--lead):last-child:nth-child(even) .kb-card__media { aspect-ratio: auto; min-height: 14rem; }
  .kb-card:not(.kb-card--lead):last-child:nth-child(even) .kb-card__body { justify-content: center; padding: 1.5rem; }
}
@media (min-width: 1080px) {
  .kb-list {
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 1.25rem;
  }
  .kb-card--lead {
    grid-column: 1 / span 2;
    grid-row: span 2;
    grid-template-columns: minmax(0, 1.15fr) minmax(0, 1fr);
    grid-template-rows: none;
  }

  .kb-card--lead .kb-card__media { aspect-ratio: auto; min-height: 16rem; }
  .kb-card--lead .kb-card__body { justify-content: center; gap: 0.6rem; padding: 1.35rem 1.5rem; }
  .kb-card--lead .kb-card__title { font-size: clamp(1.3rem, 1.75vw, 1.6rem); }
  .kb-card--lead .kb-card__excerpt { font-size: 0.9375rem; -webkit-line-clamp: 3; }
  .kb-card:not(.kb-card--lead):last-child:nth-child(even) {
    grid-column: auto;
    grid-template-columns: minmax(0, 1fr);
    grid-template-rows: auto 1fr;
  }

  .kb-card:not(.kb-card--lead):last-child:nth-child(even) .kb-card__media { aspect-ratio: 16 / 9; min-height: 0; }
  .kb-card:not(.kb-card--lead):last-child:nth-child(even) .kb-card__body { justify-content: flex-start; padding: 1.1rem 1.15rem 1.2rem; }
  .kb-card:not(:nth-child(-n + 3)):last-child:nth-child(3n + 1) {
    grid-column: 1 / -1;
    grid-template-columns: minmax(0, 1fr) minmax(0, 2fr);
    grid-template-rows: none;
  }

  .kb-card:not(:nth-child(-n + 3)):last-child:nth-child(3n + 1) .kb-card__media { aspect-ratio: auto; min-height: 13rem; }
  .kb-card:not(:nth-child(-n + 3)):last-child:nth-child(3n + 1) .kb-card__body { justify-content: center; padding: 1.5rem 1.75rem; }
}
.kb-empty {
  display: grid;
  gap: 0.5rem;
  padding: 1.5rem;
  border: 1px solid var(--kb-line);
  border-radius: var(--r-md, 1rem);
  background: var(--kb-panel);
  color: var(--kb-muted);
}

.kb-empty strong { color: var(--kb-title); font-size: 1.0625rem; }
.kb-empty p { margin: 0; }

.kb-link {
  color: var(--kb-accent);
  font-weight: 800;
  text-decoration: underline;
  text-decoration-thickness: 1px;
  text-underline-offset: 0.2em;
}
.kb-cta {
  position: relative;
  display: grid;
  gap: 1.25rem;
  margin-top: 2.5rem;
  padding: clamp(1.4rem, 3.5vw, 2.25rem);
  overflow: hidden;
  border: 1px solid rgba(245, 158, 11, 0.32);
  border-radius: var(--r-lg, 1.4rem);
  background:
    radial-gradient(120% 140% at 100% 0%, rgba(245, 158, 11, 0.16), transparent 55%),
    var(--kb-panel);
  box-shadow: var(--e2);
}

.kb-cta h2 {
  margin: 0.35rem 0 0;
  color: var(--kb-title);
  font-family: var(--font-display, "Inter Tight", sans-serif);
  font-size: clamp(1.4rem, 3vw, 1.9rem);
  font-weight: 800;
  line-height: 1.15;
  letter-spacing: -0.015em;
}

.kb-cta p {
  max-width: 56ch;
  margin: 0.5rem 0 0;
  color: var(--kb-muted);
  line-height: 1.6;
}

.kb-cta__actions {
  display: flex;
  flex-wrap: wrap;
  gap: 0.75rem;
}

.kb-cta__links {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem 1.25rem;
  margin: 0;
  padding: 1rem 0 0;
  border-top: 1px solid var(--kb-line);
  list-style: none;
  font-size: 0.9375rem;
}

.kb-cta__links a {
  display: inline-flex;
  align-items: center;
  gap: 0.45rem;
  min-height: 1.75rem;
  color: var(--kb-text);
  font-weight: 700;
  text-decoration: none;
}

.kb-cta__links a:hover { color: var(--kb-accent); text-decoration: underline; text-underline-offset: 0.2em; }
.kb-cta__links i { color: var(--kb-accent); font-size: 0.85em; }

@media (min-width: 900px) {
  .kb-cta {
    grid-template-columns: minmax(0, 1fr) auto;
    align-items: center;
    column-gap: 2.5rem;
  }

  .kb-cta__links { grid-column: 1 / -1; }
}

@media (max-width: 639px) {
  .kb-cta__actions .kb-btn { flex: 1 1 100%; }
}
.kb-article__head {
  display: grid;
  justify-items: start;
  gap: 0.9rem;
  max-width: 68rem;
  margin: 0 auto;
  padding: 0.5rem 0 0;
}

.kb-article__head > * { max-width: 52rem; }

.kb-article__head h1 {
  margin: 0;
  color: var(--kb-title);
  font-family: var(--font-display, "Inter Tight", sans-serif);
  font-size: clamp(2rem, 5.2vw, 3.25rem);
  font-weight: 800;
  line-height: 1.08;
  letter-spacing: -0.022em;
  text-wrap: balance;
}

.kb-article__lede {
  margin: 0;
  color: var(--kb-muted);
  font-size: clamp(1.0625rem, 1.6vw, 1.25rem);
  line-height: 1.6;
}

.kb-byline {
  width: 100%;
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.75rem 1rem;
  margin-top: 0.35rem;
  padding-top: 1rem;
  border-top: 1px solid var(--kb-line);
}

.kb-byline .kb-meta { gap: 0.35rem 1.1rem; }
.kb-byline .kb-meta > * + *::before { content: none; }
.kb-byline .kb-meta i { margin-right: 0.4rem; color: var(--kb-accent); opacity: 0.9; }

.kb-byline__who {
  display: inline-flex;
  align-items: center;
  gap: 0.6rem;
  color: var(--kb-title);
  font-size: 0.9375rem;
  font-weight: 800;
}

.kb-byline__who img {
  width: 2.25rem;
  height: 2.25rem;
  padding: 0.35rem;
  border: 1px solid var(--kb-line-strong);
  border-radius: 50%;
  background: var(--kb-panel-solid);
}

.kb-article__hero {
  max-width: 68rem;
  margin: 1.75rem auto 0;
  overflow: hidden;
  border: 1px solid var(--kb-line);
  border-radius: var(--r-lg, 1.4rem);
  background: rgba(15, 23, 42, 0.4);
  box-shadow: var(--e2);
}

.kb-article__hero img {
  display: block;
  width: 100%;
  height: auto;
  aspect-ratio: 16 / 9;
  object-fit: cover;
}

.kb-article__layout {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: 1.5rem;
  max-width: 68rem;
  margin: 1.75rem auto 0;
}

@media (max-width: 639px) {
  .kb-article__head { gap: 0.7rem; }
  .kb-article__head h1 { font-size: 1.9rem; }
  .kb-article__lede { font-size: 1rem; line-height: 1.55; }
  .kb-byline { gap: 0.5rem 1rem; padding-top: 0.75rem; }
  .kb-byline .kb-meta__upd { display: none; }
  .kb-byline__who img { width: 2rem; height: 2rem; }
  .kb-article__hero { margin-top: 1.1rem; border-radius: var(--r-md, 1rem); }
  .kb-article__layout { margin-top: 1.25rem; }
}

.kb-aside--cta { display: none; }
@media (min-width: 1024px) {
  .kb-article {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(0, 26rem);
    align-items: center;
    column-gap: 2.5rem;
  }
  .kb-main--post .kb-related { max-width: none; }
  .kb-main .kb-article--single .kb-article__layout { max-width: none; margin-left: 0; }
  .kb-main .kb-article--single .kb-inline-cta { display: none; }
  .kb-aside--cta { display: block; }

  .kb-side-cta {
    position: sticky;
    top: calc(var(--kb-header) + 1.25rem);
    display: grid;
    gap: 0.75rem;
    padding: 1.25rem;
    border: 1px solid rgba(245, 158, 11, 0.32);
    border-radius: var(--r-md, 1rem);
    background:
      radial-gradient(140% 120% at 100% 0%, rgba(245, 158, 11, 0.14), transparent 60%),
      var(--kb-panel);
  }

  .kb-side-cta p { margin: 0; color: var(--kb-muted); font-size: 0.9375rem; line-height: 1.55; }

  .kb-side-cta .kb-side-cta__title {
    color: var(--kb-title);
    font-family: var(--font-display, "Inter Tight", sans-serif);
    font-size: 1.25rem;
    font-weight: 800;
    line-height: 1.2;
  }

  .kb-side-cta .kb-btn { width: 100%; }
  .kb-side-cta__more { justify-self: center; display: inline-flex; align-items: center; min-height: 2.75rem; font-size: 0.9375rem; }

  .kb-article__head,
  .kb-article--single .kb-article__head {
    grid-column: 1;
    grid-row: 1;
    max-width: none;
    margin: 0;
    padding: 0;
  }

  .kb-article__head > *,
  .kb-article--single .kb-article__head > * { max-width: none; }

  .kb-article__head h1 { font-size: clamp(2rem, 3.1vw, 2.75rem); }
  .kb-article__lede { font-size: 1.0625rem; }

  .kb-article__hero {
    grid-column: 2;
    grid-row: 1;
    max-width: none;
    margin: 0;
  }

  .kb-article__layout {
    grid-column: 1 / -1;
    width: 100%;
    max-width: none;
    margin-top: 2.25rem;
  }
}

@media (min-width: 1200px) {
  .kb-article { grid-template-columns: minmax(0, 1fr) minmax(0, 32rem); column-gap: 3rem; }
  .kb-card--lead .kb-card__excerpt { -webkit-line-clamp: 4; }
}
.kb-toc {
  border: 1px solid var(--kb-line);
  border-radius: var(--r-md, 1rem);
  background: var(--kb-panel);
}

.kb-toc__toggle {
  display: flex;
  width: 100%;
  border: 0;
  background: none;
  font-family: inherit;
  text-align: left;
  align-items: center;
  justify-content: space-between;
  gap: 0.75rem;
  min-height: 3rem;
  padding: 0.75rem 1rem;
  color: var(--kb-title);
  font-size: 0.9375rem;
  font-weight: 800;
  cursor: pointer;
}

.kb-toc__title {
  display: none;
  margin: 0;
  padding: 0.85rem 1rem 0.6rem;
  color: var(--kb-title);
  font-size: 0.8125rem;
  font-weight: 800;
  letter-spacing: 0.06em;
  text-transform: uppercase;
}

.kb-toc__count {
  margin-left: 0.4rem;
  color: var(--kb-muted);
  font-weight: 600;
}

.kb-toc__toggle i {
  color: var(--kb-accent);
  transition: transform 180ms ease;
}

.kb-toc.is-open .kb-toc__toggle i { transform: rotate(180deg); }

.kb-toc ol {
  display: none;
  gap: 0.1rem;
  margin: 0;
  padding: 0 0.5rem 0.75rem;
  list-style: none;
  counter-reset: kbtoc;
}

.kb-toc.is-open ol { display: grid; }

.kb-toc li { counter-increment: kbtoc; }

.kb-toc a {
  display: grid;
  grid-template-columns: 1.6rem minmax(0, 1fr);
  gap: 0.2rem;
  padding: 0.38rem 0.5rem;
  border-radius: 0.55rem;
  color: var(--kb-muted);
  font-size: 0.84375rem;
  font-weight: 600;
  line-height: 1.4;
  text-decoration: none;
}

.kb-toc a::before {
  content: counter(kbtoc, decimal-leading-zero);
  color: var(--kb-accent);
  font-variant-numeric: tabular-nums;
  font-weight: 800;
  font-size: 0.75rem;
  padding-top: 0.12rem;
}

.kb-toc a:hover { color: var(--kb-title); background: var(--kb-chip); }

.kb-toc a[aria-current] {
  color: var(--kb-title);
  background: var(--kb-chip);
  box-shadow: inset 2px 0 0 var(--kb-accent);
}
.kb-inline-cta {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 0.9rem 1.25rem;
  margin: 2.25em 0;
  padding: 1.1rem 1.25rem;
  border: 1px solid rgba(245, 158, 11, 0.32);
  border-radius: var(--r-md, 1rem);
  background:
    radial-gradient(140% 120% at 100% 0%, rgba(245, 158, 11, 0.12), transparent 60%),
    var(--kb-panel);
}

.kb-prose .kb-inline-cta p {
  flex: 1 1 18rem;
  margin: 0;
  color: var(--kb-muted);
  font-size: 0.9375rem;
  line-height: 1.55;
}

.kb-prose .kb-inline-cta strong { display: block; margin-bottom: 0.15rem; font-size: 1.0625rem; }

.kb-prose .kb-inline-cta a.kb-btn {
  color: var(--brand-ink, #221302);
  font-weight: 800;
  text-decoration: none;
}
.kb-article--single .kb-article__head,
.kb-article--single .kb-article__layout {
  max-width: var(--kb-measure);
}

.kb-article--single .kb-article__head > * { max-width: none; }
.kb-prose {
  min-width: 0;
  max-width: var(--kb-measure);
  color: var(--kb-text);
  font-size: 1.0625rem;
  line-height: 1.75;
  overflow-wrap: break-word;
}

.kb-prose > :first-child { margin-top: 0; }

.kb-prose p,
.kb-prose ul,
.kb-prose ol,
.kb-prose blockquote,
.kb-prose table,
.kb-prose figure {
  margin: 0 0 1.15em;
}

.kb-prose :is(h2, h3, h4) {
  color: var(--kb-title);
  font-family: var(--font-display, "Inter Tight", sans-serif);
  font-weight: 700;
  letter-spacing: -0.012em;
  text-wrap: balance;
  scroll-margin-top: calc(var(--kb-header) + 1rem);
}

.kb-prose h2 {
  margin: 2.4em 0 0.7em;
  font-size: clamp(1.45rem, 2.6vw, 1.75rem);
  line-height: 1.22;
}

.kb-prose h3 {
  margin: 1.9em 0 0.55em;
  font-size: clamp(1.2rem, 2vw, 1.3rem);
  line-height: 1.3;
}

.kb-prose h4 {
  margin: 1.6em 0 0.5em;
  font-size: 1.0625rem;
  line-height: 1.35;
}

.kb-prose strong { color: var(--kb-title); font-weight: 700; }

.kb-prose a {
  color: var(--kb-accent);
  font-weight: 700;
  text-decoration: underline;
  text-decoration-thickness: 1px;
  text-underline-offset: 0.2em;
}

.kb-prose a:hover { color: var(--kb-accent-strong); text-decoration-thickness: 2px; }

.kb-prose ul,
.kb-prose ol { padding-left: 1.35em; }

.kb-prose ul { list-style: disc; }
.kb-prose ol { list-style: decimal; }
.kb-prose ul ul { list-style: circle; }

.kb-prose li { margin: 0.35em 0; padding-left: 0.2em; }
.kb-prose li::marker { color: var(--kb-accent); font-weight: 700; }

.kb-prose blockquote {
  padding: 1rem 1.15rem;
  border-left: 3px solid var(--brand, #f59e0b);
  border-radius: 0 var(--r-sm, 0.65rem) var(--r-sm, 0.65rem) 0;
  background: rgba(245, 158, 11, 0.08);
  color: var(--kb-text);
}

.kb-prose blockquote > :last-child { margin-bottom: 0; }

.kb-prose hr {
  height: 1px;
  margin: 2.25em 0;
  border: 0;
  background: var(--kb-line-strong);
}

.kb-prose img,
.kb-prose figure { max-width: 100%; height: auto; border-radius: var(--r-sm, 0.65rem); }

.kb-prose figcaption {
  margin-top: 0.5rem;
  color: var(--kb-muted);
  font-size: 0.875rem;
}
.kb-prose table {
  display: block;
  max-width: 100%;
  overflow-x: auto;
  border-collapse: collapse;
  font-size: 0.9375rem;
  line-height: 1.5;
}

.kb-prose th,
.kb-prose td {
  padding: 0.6rem 0.8rem;
  border-bottom: 1px solid var(--kb-line-strong);
  text-align: left;
  vertical-align: top;
}

.kb-prose th { color: var(--kb-title); font-weight: 800; white-space: nowrap; background: var(--kb-chip); }

@media (max-width: 640px) {
  .kb-prose table { font-size: 0.85rem; }
  .kb-prose th, .kb-prose td { padding: 0.5rem 0.45rem; }
  .kb-prose th { white-space: normal; }
}
.kb-article__foot {
  display: grid;
  gap: 1rem;
  max-width: var(--kb-measure);
  margin-top: 2.5rem;
  padding-top: 1.25rem;
  border-top: 1px solid var(--kb-line);
}

.kb-share {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.5rem;
  margin: 0;
  color: var(--kb-muted);
  font-size: 0.875rem;
  font-weight: 700;
}

.kb-share__label { margin-right: 0.25rem; }

.kb-share a,
.kb-share button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.45rem;
  min-width: 2.75rem;
  min-height: 2.75rem;
  padding: 0 0.85rem;
  border: 1px solid var(--kb-line-strong);
  border-radius: var(--r-pill, 999px);
  background: var(--kb-chip);
  color: var(--kb-title);
  font: inherit;
  font-weight: 700;
  text-decoration: none;
  cursor: pointer;
}

.kb-share a:hover,
.kb-share button:hover { border-color: var(--kb-accent); }

.kb-share [data-kb-native] { display: none; }
.kb-share.has-native [data-kb-native] { display: inline-flex; }

.kb-share__status {
  min-height: 1.25rem;
  color: var(--kb-accent);
  font-size: 0.8125rem;
}

.kb-langs {
  margin: 0;
  color: var(--kb-muted);
  font-size: 0.9375rem;
}

.kb-langs a {
  color: var(--kb-accent);
  font-weight: 700;
  text-decoration: underline;
  text-underline-offset: 0.2em;
}

.kb-back {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  min-height: 2.75rem;
  color: var(--kb-accent);
  font-weight: 800;
  text-decoration: none;
}

.kb-back:hover { text-decoration: underline; text-underline-offset: 0.2em; }
.kb-related {
  max-width: 68rem;
  margin: 3rem auto 0;
}

.kb-related__head {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  justify-content: space-between;
  gap: 0.5rem 1rem;
  margin-bottom: 1rem;
}

.kb-related__head h2 {
  margin: 0;
  color: var(--kb-title);
  font-family: var(--font-display, "Inter Tight", sans-serif);
  font-size: clamp(1.35rem, 2.6vw, 1.65rem);
  font-weight: 800;
  letter-spacing: -0.015em;
}

.kb-related .kb-list { gap: 1rem; }

@media (min-width: 640px) {
  .kb-related .kb-list { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (min-width: 1080px) {
  .kb-related .kb-list { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1.25rem; }
}
.kb-related .kb-card,
.kb-related .kb-card:last-child:nth-child(even),
.kb-related .kb-card:last-child:nth-child(3n + 1) {
  grid-column: auto;
  grid-template-columns: minmax(0, 1fr);
  grid-template-rows: auto 1fr;
}

.kb-related .kb-card .kb-card__media,
.kb-related .kb-card:last-child:nth-child(even) .kb-card__media,
.kb-related .kb-card:last-child:nth-child(3n + 1) .kb-card__media { aspect-ratio: 16 / 9; min-height: 0; }

.kb-related .kb-card .kb-card__body { justify-content: flex-start; padding: 1rem 1.1rem 1.15rem; }

@media (max-width: 639px) {
  .kb-related .kb-card {
    grid-template-columns: 7.25rem minmax(0, 1fr);
    grid-template-rows: none;
  }

  .kb-related .kb-card .kb-card__media { aspect-ratio: auto; min-height: 100%; }
}

.kb-related .kb-card__title { font-size: 1.0625rem; }
@media (min-width: 768px) and (max-width: 1023px) {
  .kb-article__head,
  .kb-article__layout { max-width: var(--kb-measure); }
}
@media (min-width: 1024px) and (max-width: 1199px) {
  :root { --kb-measure: 40rem; }
}
@media (min-width: 1024px) {
  .kb-article__layout {
    grid-template-columns: minmax(0, var(--kb-measure)) minmax(14rem, 18.5rem);
    justify-content: space-between;
    gap: 2.5rem;
  }

  .kb-aside {
    grid-column: 2;
    grid-row: 1 / span 2;
  }

  .kb-toc {
    position: sticky;
    top: calc(var(--kb-header) + 1.25rem);
    max-height: calc(100vh - var(--kb-header) - 2.5rem);
    overflow-y: auto;
    overscroll-behavior: contain;
    scrollbar-width: thin;
  }

  .kb-prose,
  .kb-article__foot { grid-column: 1; grid-row: 1; }

  .kb-article__foot { grid-row: 2; }

  .kb-toc ol { display: grid; }
  .kb-toc__title { display: block; }
  .kb-toc__toggle { display: none; }
}

@media (min-width: 1200px) {
  .kb-article__layout { gap: 3.5rem; }
  .kb-prose { font-size: 1.125rem; line-height: 1.75; }
}
@media print {
  :root,
  html[data-theme] {
    --kb-title: #000;
    --kb-text: #111;
    --kb-muted: #333;
    --kb-accent: #000;
    --kb-accent-strong: #000;
    --kb-line: #ccc;
    --kb-line-strong: #999;
    --kb-panel: #fff;
  }

  html, body { background: #fff !important; color: #111; }

  .blog-bg, .post-bg, #header-placeholder, #footer-placeholder, #main-header, .footer-modern, .skip-to-content,
  .kb-aside, .kb-article__foot, .kb-inline-cta, a.kb-kicker, .kb-related, .kb-cta, .kb-back, .kb-byline__who img { display: none !important; }

  .kb-main { padding: 0; }
  .kb-article__hero { max-width: 60%; margin: 1rem 0; box-shadow: none; }
  .kb-article__layout { display: block; max-width: none; }
  .kb-prose { max-width: none; font-size: 11.5pt; line-height: 1.55; }
  .kb-prose a[href^="http"]::after { content: " (" attr(href) ")"; font-weight: 400; font-size: 0.85em; word-break: break-all; }
  .kb-prose :is(h2, h3) { break-after: avoid; }
  .kb-prose :is(p, li, blockquote, table) { break-inside: avoid; }
}

@media (prefers-reduced-motion: reduce) {
  .kb-card, .kb-card__media img, .kb-card__cta i, .kb-btn, .kb-toc__toggle i { transition: none !important; }
  .kb-card:hover .kb-card__media img { transform: none; }
}
