/*
Theme Name: Karl Baz Kernel
Theme URI: https://karlbaz.com/
Description: Editorial block theme for karlbaz.com. Child of Twenty Twenty-Five. Minimal chrome, long-form reading first. Typography direction D6.
Author: Karl Baz
Author URI: https://karlbaz.com/
Template: twentytwentyfive
Version: 1.1.0
Requires at least: 6.4
Tested up to: 6.7
Requires PHP: 8.0
License: GPL-2.0-or-later
License URI: https://www.gnu.org/licenses/gpl-2.0.html
Text Domain: karlbaz
Tags: block-theme, child-theme, typography, editorial
*/

/* ---------------------------------------------------------------------------
 * Font face declarations (D6: Spectral + Inter Tight + JetBrains Mono).
 *
 * Legacy faces (Newsreader, IBM Plex Sans, IBM Plex Mono) retained so memo
 * single templates that still reference them fall back gracefully while we
 * finish the D6 migration. Remove in a later cleanup pass when all templates
 * use D6 tokens.
 *
 * Font files live in /assets/fonts/. SIL OFL, self-hosted for GDPR compliance.
 * ------------------------------------------------------------------------- */

/* --- D6 primary faces ------------------------------------------------------ */

@font-face {
	font-family: "Spectral";
	font-style: normal;
	font-weight: 400;
	font-display: swap;
	src: url("assets/fonts/Spectral-Regular.woff2") format("woff2");
}

@font-face {
	font-family: "Spectral";
	font-style: italic;
	font-weight: 400;
	font-display: swap;
	src: url("assets/fonts/Spectral-Italic.woff2") format("woff2");
}

@font-face {
	font-family: "Spectral";
	font-style: normal;
	font-weight: 800;
	font-display: swap;
	src: url("assets/fonts/Spectral-ExtraBold.woff2") format("woff2");
}

@font-face {
	font-family: "Spectral";
	font-style: italic;
	font-weight: 800;
	font-display: swap;
	src: url("assets/fonts/Spectral-ExtraBoldItalic.woff2") format("woff2");
}

@font-face {
	font-family: "Inter Tight";
	font-style: normal;
	font-weight: 100 900;
	font-display: swap;
	src: url("assets/fonts/InterTight-VariableFont_wght.woff2") format("woff2-variations"),
	     url("assets/fonts/InterTight-VariableFont_wght.woff2") format("woff2");
}

@font-face {
	font-family: "Inter Tight";
	font-style: italic;
	font-weight: 100 900;
	font-display: swap;
	src: url("assets/fonts/InterTight-Italic-VariableFont_wght.woff2") format("woff2-variations"),
	     url("assets/fonts/InterTight-Italic-VariableFont_wght.woff2") format("woff2");
}

@font-face {
	font-family: "JetBrains Mono";
	font-style: normal;
	font-weight: 100 800;
	font-display: swap;
	src: url("assets/fonts/JetBrainsMono-VariableFont_wght.woff2") format("woff2-variations"),
	     url("assets/fonts/JetBrainsMono-VariableFont_wght.woff2") format("woff2");
}

/* --- Legacy faces (fallback) ---------------------------------------------- */

@font-face {
	font-family: "Newsreader";
	font-style: normal;
	font-weight: 400 700;
	font-display: swap;
	src: url("assets/fonts/Newsreader-VariableFont_opsz,wght.woff2") format("woff2-variations"),
	     url("assets/fonts/Newsreader-VariableFont_opsz,wght.woff2") format("woff2");
}

@font-face {
	font-family: "Newsreader";
	font-style: italic;
	font-weight: 400 700;
	font-display: swap;
	src: url("assets/fonts/Newsreader-Italic-VariableFont_opsz,wght.woff2") format("woff2-variations"),
	     url("assets/fonts/Newsreader-Italic-VariableFont_opsz,wght.woff2") format("woff2");
}

@font-face {
	font-family: "IBM Plex Sans";
	font-style: normal;
	font-weight: 400;
	font-display: swap;
	src: url("assets/fonts/IBMPlexSans-Regular.woff2") format("woff2");
}

@font-face {
	font-family: "IBM Plex Sans";
	font-style: normal;
	font-weight: 500;
	font-display: swap;
	src: url("assets/fonts/IBMPlexSans-Medium.woff2") format("woff2");
}

@font-face {
	font-family: "IBM Plex Mono";
	font-style: normal;
	font-weight: 400;
	font-display: swap;
	src: url("assets/fonts/IBMPlexMono-Regular.woff2") format("woff2");
}

/* --- Arabic --------------------------------------------------------------- */

@font-face {
	font-family: "Almarai";
	font-style: normal;
	font-weight: 400;
	font-display: swap;
	src: url("assets/fonts/Almarai-Regular.woff2") format("woff2");
}

@font-face {
	font-family: "Almarai";
	font-style: normal;
	font-weight: 700;
	font-display: swap;
	src: url("assets/fonts/Almarai-Bold.woff2") format("woff2");
}

/* ---------------------------------------------------------------------------
 * Theme tokens (D6).
 * ------------------------------------------------------------------------- */

:root {
	--kb-body-max:      720px;
	--kb-break-max:     960px;
	--kb-frame-max:    1280px;
	--kb-gutter:        40px;
	--kb-gutter-mobile: 20px;

	--kb-accent:        #b01c12;
	--kb-accent-hover:  #8a1209;
	--kb-accent-ink:    #ffffff;

	--kb-ink:           #0a0a0a;
	--kb-ink-soft:      #2a2a2a;
	--kb-ink-muted:     #6b6b66;
	--kb-ink-dim:       #6e6964;
	--kb-paper:         #fafaf7;
	--kb-paper-card:    #f3f1ea;
	--kb-paper-dark:    #0e0e0c;
	--kb-row-hover:     #f2f1eb;
	--kb-hairline:      #e3e3de;
	--kb-hairline-strong: #0a0a0a;

	/* D6 fluid scale */
	--kb-fs-body:       1.0625rem;                                      /* 17 */
	--kb-fs-body-sm:    0.9688rem;                                      /* 15.5 */
	--kb-fs-lead:       clamp(1.125rem,  1.06rem + 0.4vw, 1.25rem);     /* 18 → 20 */
	--kb-fs-meta:       0.8125rem;                                      /* 13 */
	--kb-fs-chip:       0.75rem;                                        /* 12 */
	--kb-fs-micro:      0.6875rem;                                      /* 11 */
	--kb-fs-nav:        0.9062rem;                                      /* 14.5 */
	--kb-fs-pullquote:  1.5rem;                                         /* 24 */

	--kb-fs-h-memo-row: clamp(1.1875rem, 1.05rem + 0.6vw, 1.5rem);      /* 19 → 24 */
	--kb-fs-h3:         clamp(1.5rem,    1.2rem + 1.2vw, 1.875rem);     /* 24 → 30 */
	--kb-fs-dek:        clamp(1.25rem,   1.1rem + 0.6vw, 1.5625rem);    /* 20 → 25 */
	--kb-fs-h2-feat:    clamp(1.875rem,  1.4rem + 2vw, 2.75rem);        /* 30 → 44 */
	--kb-fs-h2-news:    clamp(2.25rem,   1.5rem + 3vw, 3.625rem);       /* 36 → 58 */
	--kb-fs-h1-hero:    clamp(3.75rem,   2.4rem + 5vw, 6.25rem);        /* 60 → 100 */
}

/* ---------------------------------------------------------------------------
 * Base / chrome
 * ------------------------------------------------------------------------- */

html { scroll-behavior: smooth; }

html, body { margin: 0; padding: 0; }

body {
	background: var(--kb-paper);
	color: var(--kb-ink);
	font-family: "Inter Tight", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;
	font-size: var(--kb-fs-body);
	font-weight: 450;
	line-height: 1.55;
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
}

a { color: var(--kb-ink); text-decoration: none; }
a:hover { color: var(--kb-accent); }

h1, h2, h3, h4 {
	font-family: "Spectral", Georgia, serif;
	font-weight: 800;
	letter-spacing: -0.012em;
	color: var(--kb-ink);
	margin: 0;
}

/* Skip-link */
.skip-link { position: absolute; left: -9999px; top: auto; overflow: hidden; }
.skip-link:focus {
	left: 12px; top: 12px;
	background: var(--kb-accent); color: #fff;
	padding: 8px 12px;
	font-family: "JetBrains Mono", monospace;
	font-size: var(--kb-fs-meta);
	z-index: 9999;
}

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

/* ---------------------------------------------------------------------------
 * Wayfinding / eyebrow / mono labels
 * ------------------------------------------------------------------------- */

.kb-wayfinding,
.kb-eyebrow,
.kb-label {
	font-family: "JetBrains Mono", ui-monospace, monospace;
	font-weight: 500;
	font-size: var(--kb-fs-micro);
	letter-spacing: 0.09em;
	text-transform: uppercase;
	color: var(--kb-ink-muted);
}

/* ---------------------------------------------------------------------------
 * Layout frames
 * ------------------------------------------------------------------------- */

.kb-frame {
	max-width: var(--kb-frame-max);
	margin-inline: auto;
	padding-inline: var(--kb-gutter);
}
@media (max-width: 720px) {
	.kb-frame { padding-inline: var(--kb-gutter-mobile); }
}

.kb-measure,
.kb-body--measure {
	max-width: var(--kb-body-max);
	margin-inline: auto;
	padding-inline: var(--kb-gutter-mobile);
}

.kb-breakout {
	max-width: var(--kb-break-max);
	margin-inline: auto;
	padding-inline: var(--kb-gutter-mobile);
}

/* .kb-body is applied to wp:post-content and carries long-form typography only
 * (headings, links, footnotes, pullquotes, code). Width is governed by WP's
 * constrained layout on the block itself so align:wide breakouts (960px) work. */

/* ---------------------------------------------------------------------------
 * Site header (parts/header.html) — D6 sticky
 * ------------------------------------------------------------------------- */

.kb-top {
	background: var(--kb-paper);
	border-bottom: 1px solid var(--kb-hairline-strong);
	position: sticky;
	top: 0;
	z-index: 20;
}
.kb-top__inner,
.kb-top__row {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 24px;
	padding: 14px 0;
}
.kb-brand {
	display: inline-flex;
	align-items: center;
	gap: 10px;
	font-family: "Spectral", Georgia, serif;
	font-weight: 800;
	font-size: 1.375rem; /* 22 */
	letter-spacing: -0.012em;
	color: var(--kb-ink);
}
.kb-brand__mark {
	width: 10px; height: 10px;
	background: var(--kb-accent);
	border-radius: 2px;
	display: inline-block;
}
.kb-nav {
	display: flex; gap: 0;
}
.kb-nav a {
	font-family: "JetBrains Mono", ui-monospace, monospace;
	font-size: var(--kb-fs-chip);
	font-weight: 500;
	letter-spacing: 0.06em;
	text-transform: uppercase;
	color: var(--kb-ink-soft);
	padding: 8px 14px;
	border-right: 1px solid var(--kb-hairline);
}
.kb-nav a:first-child { border-left: 1px solid var(--kb-hairline); }
.kb-nav a:hover,
.kb-nav a[aria-current="page"] { color: var(--kb-accent); background: var(--kb-row-hover); }

.kb-cta {
	font-family: "JetBrains Mono", ui-monospace, monospace;
	font-size: var(--kb-fs-micro);
	font-weight: 600;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	background: var(--kb-ink);
	color: var(--kb-paper);
	padding: 10px 16px;
	border-radius: 2px;
	display: inline-block;
}
.kb-cta:hover { background: var(--kb-accent); color: #fff; }

@media (max-width: 820px) {
	.kb-nav { display: none; }
}

/* ---------------------------------------------------------------------------
 * Home hero — two-column (identity + featured-memo card)
 * ------------------------------------------------------------------------- */

.kb-hero {
	padding: 80px 0 72px;
	border-bottom: 1px solid var(--kb-hairline);
}
.kb-hero__grid {
	display: grid;
	grid-template-columns: 1.15fr 1fr;
	gap: 72px;
	align-items: flex-start;
}
.kb-hero__id .kb-eyebrow { margin-bottom: 26px; }
.kb-hero__id h1 {
	font-size: clamp(2.75rem, 1.9rem + 2.8vw, 4.5rem);
	line-height: 1;
	font-weight: 800;
	letter-spacing: -0.018em;
	max-width: 22ch;
	margin: 0 0 26px;
}
.kb-hero__stance {
	font-family: "Spectral", Georgia, serif;
	font-size: var(--kb-fs-dek);
	line-height: 1.3;
	font-weight: 400;
	font-style: italic;
	color: var(--kb-ink-soft);
	max-width: 44ch;
	margin: 0 0 30px;
	letter-spacing: -0.004em;
}
.kb-hero__tags {
	display: flex;
	gap: 18px;
	flex-wrap: wrap;
	list-style: none;
	padding: 0;
	margin: 0;
}
.kb-hero__tags li {
	list-style: none;
	margin: 0;
	padding: 0;
}
.kb-hero__tags li a,
.kb-hero__tag {
	display: inline-block;
	font-family: "JetBrains Mono", ui-monospace, monospace;
	font-size: var(--kb-fs-micro);
	letter-spacing: 0.1em;
	text-transform: uppercase;
	color: var(--kb-accent);
	font-weight: 600;
	border-left: 2px solid var(--kb-accent);
	padding-left: 10px;
	line-height: 1.1;
}
.kb-hero__tags li a:hover { color: var(--kb-accent-hover); }

.kb-hero__feat {
	background: var(--kb-paper-card);
	border: 1px solid var(--kb-hairline-strong);
	padding: 38px 34px;
	position: relative;
}
.kb-hero__feat::before {
	content: "";
	position: absolute;
	top: -1px; left: -1px;
	width: 54px; height: 5px;
	background: var(--kb-accent);
}
.kb-hero__feat .kb-eyebrow,
.kb-hero__feat-badge {
	font-family: "JetBrains Mono", ui-monospace, monospace;
	font-size: var(--kb-fs-micro);
	color: var(--kb-accent);
	letter-spacing: 0.13em;
	text-transform: uppercase;
	font-weight: 600;
	margin: 0 0 20px;
	display: block;
}
.kb-hero__feat h2,
.kb-hero__feat-title {
	font-family: "Spectral", Georgia, serif;
	font-size: var(--kb-fs-h2-feat);
	line-height: 1.02;
	letter-spacing: -0.018em;
	margin: 0 0 20px;
	font-weight: 800;
	color: var(--kb-ink);
}
.kb-hero__feat .kb-dek,
.kb-hero__feat-dek {
	font-family: "Spectral", Georgia, serif;
	font-size: 1.25rem; /* 20 */
	line-height: 1.4;
	font-weight: 400;
	font-style: italic;
	color: var(--kb-ink-soft);
	margin: 0 0 26px;
	letter-spacing: -0.004em;
}
.kb-hero__feat .kb-meta,
.kb-hero__feat-meta {
	display: flex;
	gap: 0;
	align-items: center;
	font-family: "JetBrains Mono", ui-monospace, monospace;
	font-size: 0.7188rem; /* 11.5 */
	letter-spacing: 0.06em;
	text-transform: uppercase;
	color: var(--kb-ink-muted);
	padding-top: 18px;
	border-top: 1px solid var(--kb-hairline);
}
.kb-hero__feat-meta > span {
	display: inline-flex;
	align-items: center;
}
.kb-hero__feat-meta > span + span:not(.kb-hero__feat-cta)::before {
	content: "·";
	margin: 0 10px;
	color: var(--kb-ink-dim);
	font-weight: 700;
}
.kb-hero__feat-cta {
	margin-left: auto;
	color: var(--kb-accent);
	font-weight: 700;
	border-bottom: 1px solid var(--kb-accent);
	padding-bottom: 2px;
}
.kb-hero__feat:hover .kb-hero__feat-title { color: var(--kb-accent); }
.kb-hero__feat .kb-meta a {
	color: var(--kb-accent);
	font-weight: 700;
	border-bottom: 1px solid var(--kb-accent);
	padding-bottom: 2px;
}

/* Two stacked feature cards in the right column of the home hero —
 * latest memo on top, currently-running series below. The series card
 * hides itself in the pattern PHP when no series exists or the most
 * recent series is older than 60 days, so the stack collapses to one
 * card cleanly. Added 2026-05-03. */
.kb-hero__feat-stack {
	display: flex;
	flex-direction: column;
	gap: 24px;
}

/* Home — pinned memos row (3-card grid, mirrors topic-card shape).
 * Inherits .kb-pillar-card and .kb-pillars__grid from the topics styling
 * above. Section padding pulls it close to the dark newsletter band so the
 * dark/light boundary reads as one unit. Added 2026-05-03. */
.kb-pinned {
	padding: 64px 0 24px;
}
.kb-pinned__grid {
	/* Hook for any pinned-only tweaks; layout inherits from .kb-pillars__grid. */
}
.kb-pinned-card {
	display: flex;
	flex-direction: column;
}
.kb-pinned-card__foot {
	margin-top: auto;
}

/* Home — archive strip rule lives further down the file, just after
 * .kb-feed, so the cascade resolves correctly. See "kb-feed--archive"
 * below near .kb-feed { padding: 0 0 88px; }. */

@media (max-width: 960px) {
	.kb-hero { padding: 56px 0 48px; }
	.kb-hero__grid { grid-template-columns: 1fr; gap: 48px; }
}

/* ---------------------------------------------------------------------------
 * Section heads shared across home
 * ------------------------------------------------------------------------- */

.kb-sec-head {
	display: flex;
	align-items: baseline;
	justify-content: space-between;
	padding-bottom: 14px;
	border-bottom: 1px solid var(--kb-hairline-strong);
	margin-bottom: 28px;
}
.kb-sec-head h2,
.kb-sec-head__title {
	font-family: "JetBrains Mono", ui-monospace, monospace;
	font-size: var(--kb-fs-chip);
	font-weight: 600;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	color: var(--kb-ink);
	margin: 0;
}
.kb-sec-head .kb-more,
.kb-sec-head__more {
	font-family: "JetBrains Mono", ui-monospace, monospace;
	font-size: 0.7188rem;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: var(--kb-accent);
	font-weight: 600;
}

/* ---------------------------------------------------------------------------
 * Pillars grid (home)
 * ------------------------------------------------------------------------- */

.kb-pillars { padding: 64px 0 72px; }
.kb-pillars__grid {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 24px;
}
.kb-pillar-card {
	padding: 32px;
	background: #ffffff;
	border: 1px solid var(--kb-hairline);
	border-radius: 6px;
	transition: border-color 0.12s ease-in-out;
}
.kb-pillar-card:hover { border-color: var(--kb-ink); }
.kb-pillar-card__no {
	font-family: "JetBrains Mono", ui-monospace, monospace;
	font-size: var(--kb-fs-micro);
	letter-spacing: 0.12em;
	text-transform: uppercase;
	color: var(--kb-accent);
	font-weight: 600;
	margin-bottom: 14px;
	display: block;
}
.kb-pillar-card h3 {
	font-size: var(--kb-fs-h3);
	line-height: 1.04;
	letter-spacing: -0.016em;
	margin: 0 0 14px;
	font-weight: 800;
}
.kb-pillar-card p {
	font-family: "Inter Tight", sans-serif;
	color: var(--kb-ink-soft);
	font-size: var(--kb-fs-body-sm);
	font-weight: 450;
	line-height: 1.55;
	margin: 0 0 22px;
}
.kb-pillar-card__link {
	font-family: "Inter Tight", sans-serif;
	font-size: var(--kb-fs-meta);
	font-weight: 600;
	color: var(--kb-ink);
	border-bottom: 1px solid var(--kb-ink);
	padding-bottom: 2px;
}
.kb-pillar-card:hover .kb-pillar-card__link {
	color: var(--kb-accent);
	border-color: var(--kb-accent);
}

@media (max-width: 900px) {
	.kb-pillars__grid { grid-template-columns: 1fr; }
}

/* ---------------------------------------------------------------------------
 * Recent memos — tabular feed (home)
 * ------------------------------------------------------------------------- */

.kb-feed { padding: 0; }

/* Archive strip variant — sits below the dark newsletter band. The band
 * is meant to interrupt one continuous feed at its midpoint, so the strip
 * sits flush against the band on top with no padding and no heading. */
.kb-feed--archive { padding-top: 0; }

.kb-memo-tbl {
	display: grid;
	grid-template-columns: 120px 1fr 200px 70px;
}
.kb-m-tag__chip {
	font-family: "JetBrains Mono", ui-monospace, monospace;
	font-size: 0.6562rem;
	color: var(--kb-accent);
	letter-spacing: 0.08em;
	text-transform: uppercase;
	font-weight: 600;
}
.kb-memo-row { display: contents; }
.kb-memo-row > * {
	padding: 20px 14px;
	border-bottom: 1px solid var(--kb-hairline);
	display: flex;
	align-items: center;
}
.kb-memo-row:last-child > * { border-bottom: none; }
.kb-memo-row:hover > * { background: var(--kb-row-hover); }

.kb-m-date,
.kb-m-read {
	font-family: "JetBrains Mono", ui-monospace, monospace;
	font-size: 0.7188rem; /* 11.5 */
	color: var(--kb-ink-muted);
	letter-spacing: 0.04em;
	white-space: nowrap;
}
.kb-m-title {
	font-family: "Spectral", Georgia, serif;
	font-weight: 700;
	font-size: var(--kb-fs-h-memo-row);
	letter-spacing: -0.012em;
	color: var(--kb-ink);
	line-height: 1.14;
}
.kb-m-title a { color: var(--kb-ink); }
.kb-m-title a:hover { color: var(--kb-accent); }

/* SERIES tag inline next to the title — marks a row as the landing piece
 * of a multi-part run. Uses the accent color and mono treatment of the
 * existing topic chip but sits inside the title cell so the relationship
 * to the title is visually unambiguous. Added 2026-05-03. */
.kb-m-series-tag {
	display: inline-block;
	font-family: "JetBrains Mono", ui-monospace, monospace;
	font-size: 0.6562rem; /* matches kb-m-tag__chip */
	font-weight: 600;
	color: var(--kb-accent);
	letter-spacing: 0.08em;
	text-transform: uppercase;
	border: 1px solid var(--kb-accent);
	padding: 2px 6px;
	margin-right: 10px;
	vertical-align: middle;
	line-height: 1;
}
.kb-m-tag {
	font-family: "JetBrains Mono", ui-monospace, monospace;
	font-size: 0.6562rem; /* 10.5 */
	color: var(--kb-accent);
	letter-spacing: 0.08em;
	text-transform: uppercase;
	font-weight: 600;
}
.kb-m-read { justify-content: flex-end; }

@media (max-width: 900px) {
	.kb-memo-tbl { grid-template-columns: 1fr 80px; }
	.kb-memo-row .kb-m-date,
	.kb-memo-row .kb-m-tag { display: none; }
}

/* ---------------------------------------------------------------------------
 * Dispatch feed — variant of .kb-memo-tbl with a dek column instead of
 * tag + read-time. Monthly dispatches span topics and are uniformly short,
 * so the useful companion to the title is the dek, not a topic chip.
 * ------------------------------------------------------------------------- */

.kb-dispatch-tbl { grid-template-columns: 120px 1fr 2fr; }
.kb-dispatch-row .kb-m-dek {
	font-family: "Spectral", Georgia, serif;
	font-style: italic;
	font-weight: 400;
	font-size: 0.95rem;
	color: var(--kb-ink-muted);
	line-height: 1.4;
}

@media (max-width: 900px) {
	.kb-dispatch-tbl { grid-template-columns: 1fr; }
	.kb-dispatch-row .kb-m-date,
	.kb-dispatch-row .kb-m-dek { display: none; }
}

/* ---------------------------------------------------------------------------
 * Newsletter — dark hero (home + potentially end-of-essay)
 * ------------------------------------------------------------------------- */

.kb-news {
	background: var(--kb-paper-dark);
	color: #f2f1ec;
	padding: 80px 0;
}
.kb-news__inner,
.kb-news__grid {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 56px;
	align-items: center;
}
.kb-news p.kb-news__eyebrow,
.kb-news__eyebrow {
	color: var(--kb-accent) !important;
	font-family: "JetBrains Mono", ui-monospace, monospace !important;
	font-size: var(--kb-fs-micro) !important;
	letter-spacing: 0.18em !important;
	text-transform: uppercase !important;
	font-style: normal !important;
	font-weight: 600 !important;
	margin: 0 0 18px !important;
	display: block;
	max-width: none !important;
	line-height: 1.2 !important;
}
.kb-news h2,
.kb-news__h2 {
	font-family: "Spectral", Georgia, serif;
	color: #fafafa;
	font-size: clamp(2.25rem, 1.5rem + 2.8vw, 4rem);
	line-height: 0.98;
	font-weight: 800;
	letter-spacing: -0.018em;
	margin: 0 0 18px;
}
.kb-news p.kb-news__stance,
.kb-news__stance {
	font-family: "Inter Tight", -apple-system, BlinkMacSystemFont, sans-serif;
	font-style: normal;
	color: #c8c5bc;
	font-size: clamp(1.1875rem, 1.1rem + 0.4vw, 1.375rem);
	line-height: 1.42;
	margin: 0;
	font-weight: 400;
	max-width: 44ch;
}
.kb-news p.kb-news__trust,
.kb-news__trust,
.kb-news__fine {
	font-family: "Inter Tight", -apple-system, BlinkMacSystemFont, sans-serif !important;
	font-style: normal !important;
	font-size: 0.8125rem !important;
	color: #8f8c82 !important;
	letter-spacing: 0 !important;
	text-transform: none !important;
	line-height: 1.5 !important;
	margin: 14px 0 0 !important;
	max-width: none !important;
}

/* Jetpack Subscribe block styling on dark bg */
.kb-news .wp-block-jetpack-subscriptions form,
.kb-news .jetpack_subscription_widget form { display: block; }
.kb-news .wp-block-jetpack-subscriptions__form-elements { display: flex; gap: 10px; margin-bottom: 14px; }
.kb-news .wp-block-jetpack-subscriptions input[type="email"],
.kb-news .subscribe-field {
	flex: 1;
	min-height: 56px !important;
	padding: 0 18px !important;
	border: 1px solid #2a2a26 !important;
	background: #18181a !important;
	color: #f2f1ec !important;
	font-family: "Inter Tight", sans-serif !important;
	font-size: 0.9375rem !important;
	border-radius: 4px !important;
	outline: none !important;
}
.kb-news .wp-block-jetpack-subscriptions input::placeholder { color: #6c6a64; }
.kb-news .wp-block-jetpack-subscriptions button,
.kb-news .subscribe-submit button {
	min-height: 56px !important;
	padding: 0 28px !important;
	background: var(--kb-accent) !important;
	color: #fff !important;
	border: none !important;
	font-family: "Inter Tight", sans-serif !important;
	font-size: 0.9375rem !important;
	letter-spacing: 0 !important;
	text-transform: none !important;
	font-weight: 600 !important;
	border-radius: 4px !important;
	cursor: pointer !important;
}
.kb-news .wp-block-jetpack-subscriptions button:hover { background: var(--kb-accent-hover) !important; }

@media (max-width: 820px) {
	.kb-news { padding: 64px 0; }
	.kb-news__inner,
	.kb-news__grid { grid-template-columns: 1fr; gap: 32px; }
}

/* ---------------------------------------------------------------------------
 * Footer (parts/footer.html) — D6 column layout
 * ------------------------------------------------------------------------- */

.kb-footer {
	border-top: 1px solid var(--kb-hairline);
	padding: 64px 0 40px;
	background: var(--kb-paper);
	color: var(--kb-ink-soft);
}
.kb-footer__row {
	display: grid;
	grid-template-columns: minmax(200px, 1fr) 3.4fr;
	gap: 56px;
	align-items: start;
}
.kb-footer .kb-brand { color: var(--kb-ink); }
.kb-footer .kb-brand .kb-brand__word { font-size: 1.35rem; }

.kb-footer__cols {
	display: grid;
	grid-template-columns: repeat(5, 1fr);
	gap: 32px;
}
.kb-footer__col { min-width: 0; }

.kb-footer__col a.kb-footer__dest {
	display: block;
	font-family: "Inter Tight", sans-serif;
	font-size: 1.0625rem;
	font-weight: 600;
	letter-spacing: -0.005em;
	color: var(--kb-ink);
	text-decoration: none;
	margin: 0 0 6px;
}
.kb-footer__col a.kb-footer__dest:hover { color: var(--kb-accent); }

.kb-footer__col p.kb-footer__note {
	margin: 0;
	font-family: "Inter Tight", sans-serif;
	font-size: 0.8125rem;
	line-height: 1.4;
	color: var(--kb-ink-muted);
}

.kb-footer__legal {
	font-family: "JetBrains Mono", ui-monospace, monospace;
	font-size: var(--kb-fs-micro);
	color: var(--kb-ink-muted);
	letter-spacing: 0.04em;
	text-transform: uppercase;
	text-align: center;
}
.kb-footer__legal p { margin: 0; }

@media (max-width: 1100px) {
	.kb-footer__cols { grid-template-columns: repeat(3, 1fr); row-gap: 36px; }
}
@media (max-width: 820px) {
	.kb-footer__row { grid-template-columns: 1fr; gap: 32px; }
	.kb-footer__cols { grid-template-columns: repeat(2, 1fr); gap: 28px; }
}
@media (max-width: 520px) {
	.kb-footer__cols { grid-template-columns: 1fr; gap: 24px; }
}

/* ---------------------------------------------------------------------------
 * Memo body (single-memo.html) — long-form reading
 *
 * D6 primary: Inter Tight body. Spectral for display / pullquote / italics.
 * Existing kb-body prose rules preserved and retuned to D6 tokens.
 * ------------------------------------------------------------------------- */

.kb-body > p + p { margin-top: 1.2em; }
.kb-body > p { font-size: var(--kb-fs-body); line-height: 1.6; font-weight: 450; }

.kb-body h2 {
	font-family: "Spectral", Georgia, serif;
	font-weight: 800;
	font-size: var(--kb-fs-h3);
	line-height: 1.1;
	letter-spacing: -0.016em;
	margin-top: 2.5em;
	margin-bottom: 0.5em;
}
.kb-body h3 {
	font-family: "Spectral", Georgia, serif;
	font-weight: 700;
	font-size: var(--kb-fs-h-memo-row);
	line-height: 1.15;
	letter-spacing: -0.012em;
	margin-top: 2em;
	margin-bottom: 0.4em;
}

.kb-body a {
	color: var(--kb-accent);
	text-decoration: underline;
	text-decoration-thickness: 1px;
	text-underline-offset: 3px;
}
.kb-body a:hover { text-decoration-thickness: 2px; }

.wp-block-footnotes {
	font-family: "Inter Tight", sans-serif;
	font-size: var(--kb-fs-nav);
	margin-top: 3em;
	padding-top: 1em;
	border-top: 1px solid var(--kb-hairline);
}

.wp-block-pullquote {
	font-family: "Spectral", Georgia, serif;
	font-style: italic;
	font-size: var(--kb-fs-pullquote);
	line-height: 1.45;
	max-width: var(--kb-break-max);
	margin-inline: auto;
	padding: 1em 0 1em 1.5em;
	border-left: 2px solid var(--kb-accent);
}
[dir="rtl"] .wp-block-pullquote {
	padding: 1em 1.5em 1em 0;
	border-left: 0;
	border-right: 2px solid var(--kb-accent);
}
.wp-block-pullquote p { font-size: var(--kb-fs-pullquote); margin: 0; }

.kb-body code, .kb-body kbd, .kb-body samp {
	font-family: "JetBrains Mono", ui-monospace, monospace;
	font-size: 0.95em;
	background: transparent;
}
.wp-block-code {
	max-width: var(--kb-break-max);
	margin-inline: auto;
	padding: 1.25em;
	border-left: 3px solid var(--kb-hairline);
	background: var(--kb-paper-card);
	font-family: "JetBrains Mono", ui-monospace, monospace;
	font-size: 0.9375rem;
	line-height: 1.5;
	overflow-x: auto;
}

.wp-element-caption {
	font-family: "Spectral", Georgia, serif;
	font-style: italic;
	font-size: var(--kb-fs-meta);
	color: var(--kb-ink-muted);
	margin-top: 0.5em;
}

/* ---------------------------------------------------------------------------
 * Topic chips (end-of-essay + pillar sub-threads)
 * ------------------------------------------------------------------------- */

.kb-chip {
	display: inline-block;
	font-family: "JetBrains Mono", ui-monospace, monospace;
	font-size: var(--kb-fs-chip);
	font-weight: 500;
	letter-spacing: 0.06em;
	text-transform: uppercase;
	text-decoration: none;
	padding: 0.4em 0.85em;
	border: 1px solid var(--kb-hairline);
	border-radius: 999px;
	color: var(--kb-ink);
	margin-right: 0.5em;
	margin-bottom: 0.5em;
}
.kb-chip--pillar {
	background: var(--kb-accent);
	color: #fff;
	border-color: var(--kb-accent);
}

/* Pillar sub-thread filter states (Zone C, 2026-04-21). */
.kb-chip.is-active {
	background: var(--kb-ink);
	color: var(--kb-paper);
	border-color: var(--kb-ink);
}
.kb-chip.is-empty {
	color: var(--kb-ink-muted);
	border-color: var(--kb-hairline);
	opacity: 0.55;
}
.kb-chip.is-empty:hover {
	opacity: 0.75;
}
.kb-chip.is-empty.is-active {
	opacity: 1;
}

/* ---------------------------------------------------------------------------
 * Appearance / Elsewhere row (archive-appearance.html + /about/ rail)
 * ------------------------------------------------------------------------- */

.kb-appearance { display: flex; flex-direction: column; align-items: flex-start; gap: 4px; }
.kb-appearance__date {
	font-family: "JetBrains Mono", ui-monospace, monospace;
	font-size: var(--kb-fs-chip);
	color: var(--kb-ink-muted);
	letter-spacing: 0.04em;
	margin: 0;
}
.kb-appearance__venue {
	font-family: "Spectral", Georgia, serif;
	font-weight: 700;
	font-size: var(--kb-fs-h-memo-row);
	letter-spacing: -0.012em;
	line-height: 1.2;
	margin: 0;
}
.kb-appearance__title {
	font-family: "Spectral", Georgia, serif;
	font-style: italic;
	font-weight: 400;
	font-size: var(--kb-fs-body);
	color: var(--kb-ink-soft);
	margin: 0;
}
.kb-appearance__type {
	background: transparent;
	color: var(--kb-accent);
	border-color: var(--kb-accent);
}
.kb-appearance__cta {
	font-family: "JetBrains Mono", ui-monospace, monospace;
	font-size: var(--kb-fs-chip);
	color: var(--kb-accent);
	font-weight: 600;
	letter-spacing: 0.06em;
	text-transform: uppercase;
	border-bottom: 1px solid var(--kb-accent);
	padding-bottom: 1px;
}

/* ---------------------------------------------------------------------------
 * Newsletter (inline, quiet) — end-of-essay + /about/ variant
 * ------------------------------------------------------------------------- */

.kb-newsletter {
	margin: 2.5rem 0;
	padding: 0;
}
.kb-newsletter__heading {
	font-family: "Spectral", Georgia, serif;
	font-weight: 800;
	font-size: var(--kb-fs-h3);
	letter-spacing: -0.016em;
	line-height: 1.1;
	margin: 0 0 0.5rem;
}
.kb-newsletter__supporting {
	font-family: "Spectral", Georgia, serif;
	font-style: italic;
	color: var(--kb-ink-muted);
	font-size: 1.125rem;
	line-height: 1.4;
	margin: 0 0 1.25rem;
}
.kb-newsletter__form { margin: 0 0 0.75rem; max-width: 520px; }
.kb-newsletter p.kb-newsletter__trust,
p.kb-newsletter__trust,
.kb-newsletter__trust {
	font-family: "JetBrains Mono", ui-monospace, monospace;
	font-style: normal;
	font-size: var(--kb-fs-micro);
	color: var(--kb-ink-muted);
	letter-spacing: 0;
	text-transform: none;
	line-height: 1.5;
	margin: 0;
}

/* Jetpack Subscribe block — inline (light) variant */
.kb-newsletter .wp-block-jetpack-subscriptions__form-elements { display: flex; gap: 8px; }
.kb-newsletter .wp-block-jetpack-subscriptions input[type="email"],
.kb-newsletter .subscribe-field {
	flex: 1;
	padding: 12px 14px !important;
	border: 1px solid var(--kb-hairline-strong) !important;
	background: #ffffff !important;
	color: var(--kb-ink) !important;
	font-family: "Inter Tight", sans-serif !important;
	font-size: 0.9375rem !important;
	border-radius: 4px !important;
	outline: none !important;
	min-height: auto !important;
}
.kb-newsletter .wp-block-jetpack-subscriptions input::placeholder { color: var(--kb-ink-dim); }
.kb-newsletter .wp-block-jetpack-subscriptions button,
.kb-newsletter .subscribe-submit button {
	padding: 12px 18px !important;
	background: var(--kb-accent) !important;
	color: #ffffff !important;
	border: none !important;
	font-family: "JetBrains Mono", ui-monospace, monospace !important;
	font-size: var(--kb-fs-chip) !important;
	letter-spacing: 0.08em !important;
	text-transform: uppercase !important;
	font-weight: 600 !important;
	border-radius: 4px !important;
	cursor: pointer !important;
}
.kb-newsletter .wp-block-jetpack-subscriptions button:hover { background: var(--kb-accent-hover) !important; }

/* ---------------------------------------------------------------------------
 * Essay header (single-memo.html > essay-header pattern) — D6
 * ------------------------------------------------------------------------- */

.kb-essay-header {
	padding: 64px 0 28px;
}
.kb-essay-header__way {
	display: flex;
	align-items: center;
	gap: 10px;
	margin: 0 0 32px;
}
.kb-essay-header__way a {
	color: var(--kb-ink-muted);
}
.kb-essay-header__way a:hover { color: var(--kb-accent); }
.kb-essay-header__slash {
	color: var(--kb-ink-dim);
	font-weight: 400;
}
.kb-essay-header__title {
	font-family: "Spectral", Georgia, serif;
	font-weight: 800;
	font-size: var(--kb-fs-h2-news);
	line-height: 1.02;
	letter-spacing: -0.022em;
	color: var(--kb-ink);
	margin: 0 0 22px;
	max-width: 20ch;
}
.kb-essay-header__dek {
	font-family: "Spectral", Georgia, serif;
	font-style: italic;
	font-weight: 400;
	font-size: var(--kb-fs-dek);
	line-height: 1.35;
	color: var(--kb-ink-soft);
	margin: 0 0 28px;
	max-width: 48ch;
	letter-spacing: -0.004em;
}
.kb-essay-header__meta {
	display: flex;
	align-items: center;
	flex-wrap: wrap;
	font-family: "JetBrains Mono", ui-monospace, monospace;
	font-size: var(--kb-fs-micro);
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: var(--kb-ink-muted);
	font-weight: 500;
}
.kb-essay-header__meta > span + span::before {
	content: "·";
	margin: 0 10px;
	color: var(--kb-ink-dim);
}

/* ---------------------------------------------------------------------------
 * Essay end rail — hairline + topics + newsletter + related
 * ------------------------------------------------------------------------- */

.kb-essay-end {
	padding-top: 60px;
}
.kb-essay-end__rule {
	border: 0;
	border-top: 1px solid var(--kb-hairline);
	margin: 0 0 32px;
}
.kb-topics-row {
	display: flex;
	align-items: center;
	flex-wrap: wrap;
	gap: 14px 16px;
	margin: 0 0 48px;
}
.kb-topics-row__label {
	font-family: "JetBrains Mono", ui-monospace, monospace;
	font-size: var(--kb-fs-chip);
	color: var(--kb-ink-muted);
	letter-spacing: 0.04em;
	text-transform: lowercase;
	font-weight: 500;
}
.kb-topics-row__list {
	list-style: none;
	padding: 0;
	margin: 0;
	display: flex;
	gap: 8px;
	flex-wrap: wrap;
}
.kb-topics-row__list li { list-style: none; margin: 0; padding: 0; }

/* Related rail */
.kb-related {
	padding: 48px 0 0;
}
.kb-related__head {
	margin-bottom: 0;
}
.kb-related__list {
	list-style: none;
	padding: 0;
	margin: 0;
}
.kb-related__list li {
	list-style: none;
	margin: 0;
	padding: 0;
}
.kb-related__row,
.kb-row {
	display: block;
	padding: 22px 0;
	border-bottom: 1px solid var(--kb-hairline);
	color: var(--kb-ink);
}
/* First-row top hairline removed — the preceding .kb-sec-head already
 * supplies a border-bottom, so re-adding it here produced a visible
 * double line under START HERE / ALL MEMOS / RELATED. 2026-04-20. */
.kb-related__row:hover,
.kb-row:hover { background: var(--kb-row-hover); }
.kb-related__row:hover .kb-related__title,
.kb-row:hover .kb-row__title { color: var(--kb-accent); }
.kb-related__title,
.kb-row__title {
	font-family: "Spectral", Georgia, serif;
	font-weight: 800;
	font-size: var(--kb-fs-h-memo-row);
	line-height: 1.14;
	letter-spacing: -0.012em;
	margin: 0 0 6px;
	color: var(--kb-ink);
	transition: color 0.12s ease-in-out;
}
.kb-related__dek,
.kb-row__dek {
	font-family: "Spectral", Georgia, serif;
	font-style: italic;
	font-weight: 400;
	font-size: var(--kb-fs-body);
	line-height: 1.4;
	color: var(--kb-ink-soft);
	margin: 0 0 8px;
	max-width: 62ch;
}
.kb-related__meta,
.kb-row__meta {
	font-family: "JetBrains Mono", ui-monospace, monospace;
	font-size: var(--kb-fs-micro);
	color: var(--kb-ink-muted);
	letter-spacing: 0.06em;
	text-transform: uppercase;
	font-weight: 500;
	margin: 0;
	display: flex;
	align-items: center;
}
.kb-related__meta > span + span::before,
.kb-row__meta > span + span::before {
	content: "·";
	margin: 0 10px;
	color: var(--kb-ink-dim);
}
.kb-related__empty {
	font-family: "JetBrains Mono", ui-monospace, monospace;
	font-size: var(--kb-fs-chip);
	color: var(--kb-ink-muted);
	letter-spacing: 0.04em;
	margin: 0;
}

/* ---------------------------------------------------------------------------
 * Topic pillar page — masthead / canon / sub-threads / rail / adjacent
 * Zones A–E from the locked /topics/{pillar}/ spec. Rows share treatment
 * with .kb-related__row via grouped selectors above.
 * ------------------------------------------------------------------------- */

/* Zone A — masthead */
.kb-pillar-masthead {
	padding: 72px 0 40px;
}
.kb-pillar-masthead__way {
	margin: 0 0 24px;
}
.kb-pillar-masthead__title {
	font-family: "Spectral", Georgia, serif;
	font-weight: 800;
	font-size: var(--kb-fs-h2-news);
	line-height: 1.02;
	letter-spacing: -0.02em;
	color: var(--kb-ink);
	margin: 0 0 18px;
	max-width: 22ch;
}
.kb-pillar-masthead__thesis {
	font-family: "Spectral", Georgia, serif;
	font-style: italic;
	font-weight: 400;
	font-size: var(--kb-fs-dek);
	line-height: 1.4;
	color: var(--kb-ink-soft);
	margin: 0 0 22px;
	max-width: 50ch;
}
.kb-pillar-masthead__meta {
	font-family: "JetBrains Mono", ui-monospace, monospace;
	font-size: var(--kb-fs-micro);
	color: var(--kb-ink-muted);
	letter-spacing: 0.06em;
	text-transform: uppercase;
	font-weight: 500;
	margin: 0;
	display: flex;
	align-items: center;
	gap: 0;
}
.kb-pillar-masthead__dot {
	margin: 0 10px;
	color: var(--kb-ink-dim);
}

/* Zone B — Start here canon */
.kb-pillar-canon {
	padding: 32px 0 16px;
}
.kb-pillar-canon__list,
.kb-pillar-rail__list {
	list-style: none;
	padding: 0;
	margin: 0;
}
.kb-pillar-canon__list > li,
.kb-pillar-rail__list > li {
	list-style: none;
	margin: 0;
	padding: 0;
}

/* Zone C — sub-threads */
.kb-pillar-subthreads {
	padding: 24px 0 16px;
}
.kb-pillar-subthreads__list {
	margin: 0;
}

/* Zone D — chronological rail */
.kb-pillar-rail {
	padding: 24px 0 16px;
}
.kb-pillar-rail__empty {
	font-family: "JetBrains Mono", ui-monospace, monospace;
	font-size: var(--kb-fs-chip);
	color: var(--kb-ink-muted);
	letter-spacing: 0.04em;
	margin: 16px 0 0;
}
.kb-pillar-rail__pagination {
	display: flex;
	justify-content: space-between;
	align-items: center;
	margin-top: 32px;
	padding-top: 22px;
	border-top: 1px solid var(--kb-hairline);
	font-family: "JetBrains Mono", ui-monospace, monospace;
	font-size: var(--kb-fs-chip);
	letter-spacing: 0.04em;
	font-weight: 500;
}
.kb-pillar-rail__pagination-prev,
.kb-pillar-rail__pagination-next {
	min-height: 1em;
}
.kb-pillar-rail__pagination a {
	color: var(--kb-ink);
	border-bottom: 1px solid transparent;
	padding-bottom: 2px;
	transition: color 0.12s, border-color 0.12s;
}
.kb-pillar-rail__pagination a:hover {
	color: var(--kb-accent);
	border-bottom-color: var(--kb-accent);
}

/* Zone E — adjacent topics */
.kb-pillar-adjacent {
	padding: 24px 0 16px;
}
.kb-pillar-adjacent__list {
	margin: 0;
}

/* Shared chip row — used by sub-threads and adjacent-topics lists */
.kb-chip-row {
	list-style: none;
	padding: 0;
	margin: 0;
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
}
.kb-chip-row > li {
	list-style: none;
	margin: 0;
	padding: 0;
}

/* ---------------------------------------------------------------------------
 * Arabic — RTL + Almarai
 * ------------------------------------------------------------------------- */

[dir="rtl"], [lang="ar"] {
	font-family: "Almarai", Tahoma, sans-serif;
	line-height: 1.75;
}
[lang="ar"] h1, [lang="ar"] h2, [lang="ar"] h3 { font-weight: 700; }

/* ---------------------------------------------------------------------------
 * /about/ page — Direction A (locked 2026-04-20)
 * Landmark treatment: single-block masthead + body grid (prose + sticky mono
 * colophon rail) + compressed elsewhere + shared newsletter. Borrows home's
 * type vocabulary without reusing home's zones. The prior six-zone layout
 * (identity/writes/arabic/credibility/elsewhere/contact) is retired — those
 * patterns are not wired from templates/page-about.html anymore.
 * See: project_karlbaz_about_page.md, design-previews/about-directions.html
 * ------------------------------------------------------------------------- */

/* -------- Masthead (full-width single block, no right card) -------- */
.kb-about-hero {
	padding: 96px 0 72px;
	border-bottom: 1px solid var(--kb-hairline-strong);
}
.kb-about-hero__eyebrow {
	display: block;
	margin: 0 0 28px;
}
.kb-about-hero__title {
	font-family: "Spectral", Georgia, serif;
	font-weight: 800;
	font-size: clamp(3rem, 7vw, 5.5rem);
	line-height: 0.98;
	letter-spacing: -0.022em;
	margin: 0 0 28px;
	max-width: 1100px;
	color: var(--kb-ink);
}
.kb-about-hero__title em {
	color: var(--kb-accent);
	font-style: normal;
}
.kb-about-hero__stance {
	font-family: "Spectral", Georgia, serif;
	font-style: italic;
	font-weight: 400;
	font-size: 1.375rem;
	line-height: 1.4;
	color: var(--kb-ink-muted);
	max-width: 780px;
	margin: 0;
}

/* -------- Body grid: prose + sticky mono colophon rail -------- */
.kb-about-body {
	padding: 80px 0 96px;
}
.kb-about-body__grid {
	display: grid;
	grid-template-columns: 1fr 300px;
	gap: 80px;
	align-items: start;
}
.kb-about-body__prose {
	min-width: 0;
	max-width: 640px;
}
.kb-about-body__prose p {
	font-family: "Spectral", Georgia, serif;
	font-weight: 400;
	font-size: 1.1875rem;
	line-height: 1.62;
	color: var(--kb-ink);
	margin: 0 0 1.15em;
}
.kb-about-body__prose p:last-child { margin: 0; }

/* Arabic paragraph inlines into the prose column — hairline top+bottom, no
 * separate zone. RTL + Almarai are set here explicitly (not via dir=rtl on
 * a whole section) so the rest of the prose column stays LTR. */
.kb-about-body__prose .kb-arabic {
	direction: rtl;
	text-align: right;
	padding: 24px 0;
	border-top: 1px solid var(--kb-hairline);
	border-bottom: 1px solid var(--kb-hairline);
	margin: 28px 0 1.15em;
}
.kb-about-body__prose .kb-arabic p {
	font-family: "Almarai", Tahoma, sans-serif;
	font-size: 1.125rem;
	line-height: 1.9;
	margin: 0 0 1.25em;
}
.kb-about-body__prose .kb-arabic p:last-child {
	margin-bottom: 0;
}

/* Sticky mono colophon — the "ledger" on the right. */
.kb-about-colophon {
	position: sticky;
	top: 88px;
	font-family: "JetBrains Mono", ui-monospace, monospace;
	font-size: 12px;
	line-height: 1.7;
	color: var(--kb-ink-muted);
}

/* -------- Portrait figure (top of the sticky rail) --------
 * Renders at full-rail width with a 1:1 aspect ratio. When
 * karlbaz_about_portrait_url is unset, we emit a neutral muted
 * block with a tiny mono "PORTRAIT" label — clearly intentional
 * placeholder, not a broken image. Swap by setting the option. */
.kb-about-portrait {
	margin: 0 0 28px;
	width: 100%;
	aspect-ratio: 1 / 1;
	background: transparent;
	overflow: hidden;
	border: 1px solid var(--kb-hairline);
}
.kb-about-portrait img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
}
.kb-about-portrait__block {
	width: 100%;
	height: 100%;
	background: var(--kb-row-hover, #f1eee4);
	display: flex;
	align-items: flex-end;
	justify-content: flex-start;
	padding: 14px;
	box-sizing: border-box;
}
.kb-about-portrait__tag {
	font-family: "JetBrains Mono", ui-monospace, monospace;
	font-size: 10px;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	color: var(--kb-ink-dim);
	font-weight: 500;
}
.kb-about-colophon__label {
	font-size: 11px;
	font-weight: 500;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	color: var(--kb-ink-dim);
	margin: 0 0 10px;
}
.kb-about-colophon__value {
	margin: 0;
	color: var(--kb-ink);
	letter-spacing: 0.02em;
}
.kb-about-colophon dl {
	margin: 0;
	display: grid;
	grid-template-columns: auto 1fr;
	column-gap: 20px;
	row-gap: 10px;
}
.kb-about-colophon dt {
	font-size: 11px;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	color: var(--kb-ink-dim);
	padding-top: 2px;
	margin: 0;
}
.kb-about-colophon dd {
	margin: 0;
	color: var(--kb-ink);
	letter-spacing: 0.02em;
}
.kb-about-colophon dd a {
	color: inherit;
	border-bottom: 1px solid var(--kb-hairline);
	padding-bottom: 1px;
}
.kb-about-colophon dd a:hover {
	color: var(--kb-accent);
	border-bottom-color: var(--kb-accent);
}
.kb-about-colophon hr {
	border: 0;
	border-top: 1px solid var(--kb-hairline);
	margin: 20px 0;
}
.kb-about-colophon__list {
	list-style: none;
	margin: 0 0 20px;
	padding: 0;
}
.kb-about-colophon__list li {
	color: var(--kb-ink);
	padding: 4px 0;
	border-bottom: 1px dotted var(--kb-hairline);
}
.kb-about-colophon__list li:last-child { border-bottom: 0; }
.kb-about-colophon__list li em {
	color: var(--kb-ink-muted);
	font-style: italic;
	font-family: "Spectral", Georgia, serif;
	font-size: 13px;
}

/* -------- About — Inline contact card (D6 v2, 2026-04-26).
   Sits inside the body prose column, after the Arabic block. Light card
   treatment on kb-paper-card with hairline border. Replaces the prior
   full-width dark "black box" version. ----------------------------- */
.kb-about-contact-card {
	margin: 32px 0 0;
	padding: 28px 32px;
	background: var(--kb-paper-card);
	border: 1px solid var(--kb-hairline);
	max-width: 100%;
	box-sizing: border-box;
}
.kb-about-contact-card__eyebrow {
	color: var(--kb-ink-muted);
	margin: 0 0 20px;
}
.kb-about-contact-card__title {
	font-family: "Spectral", Georgia, serif;
	font-weight: 800;
	font-size: 1.375rem;
	color: var(--kb-ink);
	letter-spacing: -0.01em;
	margin: 0 0 8px;
}
.kb-about-contact-card__lede {
	font-family: "Spectral", Georgia, serif;
	font-style: italic;
	font-size: 1rem;
	color: var(--kb-ink-soft);
	margin: 0 0 24px;
}
.kb-about-contact-card .wp-block-jetpack-contact-form,
.kb-about-contact-card .kb-contact-form {
	margin: 0;
	padding: 0;
}
.kb-about-contact-card .grunion-field-wrap {
	margin-bottom: 14px;
}
.kb-about-contact-card label,
.kb-about-contact-card .grunion-field-label {
	display: block;
	color: var(--kb-ink-muted);
	font-family: "JetBrains Mono", ui-monospace, monospace;
	font-size: 11px;
	font-weight: 500;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	margin-bottom: 6px;
}
.kb-about-contact-card input[type="text"],
.kb-about-contact-card input[type="email"],
.kb-about-contact-card textarea {
	background: var(--kb-paper);
	border: 1px solid var(--kb-hairline);
	color: var(--kb-ink);
	padding: 10px 12px;
	width: 100%;
	font-family: "Inter Tight", system-ui, sans-serif;
	font-size: 15px;
	line-height: 1.4;
	border-radius: 0;
	box-sizing: border-box;
	transition: border-color 0.15s;
}
.kb-about-contact-card input[type="text"]:focus,
.kb-about-contact-card input[type="email"]:focus,
.kb-about-contact-card textarea:focus {
	outline: 2px solid var(--kb-accent);
	outline-offset: 2px;
	border-color: var(--kb-ink-soft);
}
.kb-about-contact-card textarea {
	min-height: 120px;
	resize: vertical;
}
.kb-about-contact-card .wp-block-button__link,
.kb-about-contact-card button[type="submit"],
.kb-about-contact-card .wp-block-jetpack-button button {
	background: var(--kb-accent);
	color: var(--kb-paper);
	border: 0;
	padding: 11px 22px;
	font-family: "Inter Tight", system-ui, sans-serif;
	font-weight: 500;
	font-size: 14px;
	letter-spacing: 0.02em;
	cursor: pointer;
	border-radius: 3px;
	transition: background 0.15s;
}
.kb-about-contact-card .wp-block-button__link:hover,
.kb-about-contact-card button[type="submit"]:hover,
.kb-about-contact-card .wp-block-jetpack-button button:hover {
	background: var(--kb-accent-hover);
}
.kb-about-contact-card .grunion-field-required-text {
	font-family: "JetBrains Mono", ui-monospace, monospace;
	font-size: 10px;
	letter-spacing: 0.04em;
	color: var(--kb-ink-dim);
	margin-left: 6px;
	text-transform: lowercase;
}
@media (max-width: 640px) {
	.kb-about-contact-card { padding: 22px 20px; }
}

/* -------- Elsewhere — compressed 2-col italic list with mono year gutter -------- */
.kb-about-elsewhere {
	padding: 56px 0 72px;
}
.kb-about-elsewhere__head {
	display: flex;
	align-items: baseline;
	justify-content: space-between;
	margin-bottom: 24px;
	flex-wrap: wrap;
	gap: 12px;
}
.kb-about-elsewhere__head h2 {
	font-family: "Spectral", Georgia, serif;
	font-weight: 800;
	font-size: 1.625rem;
	letter-spacing: -0.01em;
	margin: 0;
	color: var(--kb-ink);
}
.kb-about-elsewhere__head .kb-eyebrow {
	color: var(--kb-ink-muted);
}
.kb-about-elsewhere__list {
	list-style: none;
	margin: 0;
	padding: 0;
	columns: 2;
	column-gap: 64px;
}
.kb-about-elsewhere__list li {
	padding: 14px 0;
	font-size: 15px;
	color: var(--kb-ink);
	border-bottom: 1px solid var(--kb-hairline);
	break-inside: avoid;
	line-height: 1.45;
	list-style: none;
	margin: 0;
	/* Same row height regardless of title length so the two columns
	 * stay vertically aligned. Min-height matches a 2-line item plus
	 * padding; longer items push past it but still wrap cleanly. */
	min-height: 78px;
	display: flex;
	flex-direction: column;
	justify-content: center;
}
.kb-about-elsewhere__list li a {
	color: inherit;
	text-decoration: none;
}
.kb-about-elsewhere__list li a:hover {
	color: var(--kb-accent);
}
.kb-about-elsewhere__list em {
	font-family: "Spectral", Georgia, serif;
	font-style: italic;
	color: var(--kb-ink-muted);
}
.kb-about-elsewhere__year {
	font-family: "JetBrains Mono", ui-monospace, monospace;
	font-size: 12px;
	color: var(--kb-ink-dim);
	float: right;
	letter-spacing: 0.02em;
	margin-left: 16px;
}
.kb-about-elsewhere__more {
	margin: 28px 0 0;
	font-family: "JetBrains Mono", ui-monospace, monospace;
	font-size: 12px;
	letter-spacing: 0.08em;
}
.kb-about-elsewhere__more a {
	color: var(--kb-ink);
	text-decoration: none;
	border-bottom: 1px solid var(--kb-hairline);
	padding-bottom: 1px;
}
.kb-about-elsewhere__more a:hover {
	color: var(--kb-accent);
	border-bottom-color: var(--kb-accent);
}
.kb-about-elsewhere__empty {
	font-family: "Inter Tight", system-ui, sans-serif;
	font-size: 15px;
	color: var(--kb-ink-muted);
	margin: 0;
}

/* -------- Mobile: stack colophon below prose, 1-col elsewhere -------- */
@media (max-width: 900px) {
	.kb-about-body__grid {
		grid-template-columns: 1fr;
		gap: 56px;
	}
	.kb-about-colophon {
		position: static;
	}
	.kb-about-elsewhere__list {
		columns: 1;
	}
}
@media (max-width: 640px) {
	.kb-about-hero { padding: 64px 0 48px; }
	.kb-about-body { padding: 56px 0 72px; }
	.kb-about-hero__title { font-size: clamp(2.25rem, 9vw, 3.25rem); }
}

/* ---------------------------------------------------------------------------
 * /writing/ master memo archive (D6, locked 2026-04-20)
 * Masthead + year-grouped tabular feed + pagination.
 * Reuses .kb-memo-tbl row vocabulary from the home feed.
 * ------------------------------------------------------------------------- */

.kb-writing-masthead {
	padding: 72px 0 40px;
}
.kb-writing-masthead__way {
	margin: 0 0 24px;
}
.kb-writing-masthead__title {
	font-family: "Spectral", Georgia, serif;
	font-weight: 800;
	font-size: var(--kb-fs-h2-news);
	line-height: 1.02;
	letter-spacing: -0.02em;
	color: var(--kb-ink);
	margin: 0 0 18px;
}
.kb-writing-masthead__dek {
	font-family: "Spectral", Georgia, serif;
	font-style: italic;
	font-weight: 400;
	font-size: var(--kb-fs-dek);
	line-height: 1.4;
	color: var(--kb-ink-soft);
	margin: 0 0 22px;
	max-width: 52ch;
}
.kb-writing-masthead__dek a {
	color: var(--kb-ink);
	border-bottom: 1px solid var(--kb-hairline-strong);
}
.kb-writing-masthead__dek a:hover { color: var(--kb-accent); border-bottom-color: var(--kb-accent); }
.kb-writing-masthead__meta {
	font-family: "JetBrains Mono", ui-monospace, monospace;
	font-size: var(--kb-fs-micro);
	color: var(--kb-ink-muted);
	letter-spacing: 0.06em;
	text-transform: uppercase;
	font-weight: 500;
	margin: 0;
	display: flex;
	align-items: center;
	gap: 0;
}
.kb-writing-masthead__dot {
	margin: 0 10px;
	color: var(--kb-ink-dim);
}

.kb-writing-archive { padding: 24px 0 56px; }

.kb-writing-year {
	font-family: "JetBrains Mono", ui-monospace, monospace;
	font-size: 0.75rem; /* 12 */
	letter-spacing: 0.12em;
	text-transform: uppercase;
	font-weight: 600;
	color: var(--kb-ink-muted);
	padding: 28px 0 12px;
	margin: 0;
	border-top: 1px solid var(--kb-hairline-strong);
	display: flex;
	align-items: baseline;
	justify-content: space-between;
}
.kb-writing-year:first-of-type {
	border-top: none;
	padding-top: 8px;
}
.kb-writing-year__count {
	color: var(--kb-ink-dim);
	font-weight: 500;
	letter-spacing: 0.08em;
}

.kb-writing-pagination {
	display: flex;
	justify-content: space-between;
	align-items: center;
	/* No border-top — the .kb-memo-tbl above already closes the
	   last year block with its own border-bottom. Stacking both
	   produced a visible double rule (fix 2026-04-27). */
	padding: 24px 0 0;
	margin-top: 32px;
	font-family: "JetBrains Mono", ui-monospace, monospace;
	font-size: var(--kb-fs-micro);
	letter-spacing: 0.06em;
	text-transform: uppercase;
	font-weight: 500;
}
.kb-writing-pagination a { color: var(--kb-ink); }
.kb-writing-pagination a:hover { color: var(--kb-accent); }
.kb-writing-pagination__spacer { color: var(--kb-ink-dim); }
.kb-writing-pagination__page { color: var(--kb-ink-muted); }
.kb-writing-pagination__empty {
	flex: 0 0 auto;
	color: var(--kb-ink-dim);
	min-width: 80px;
}
.kb-writing-pagination__empty--left { text-align: left; }
.kb-writing-pagination__empty--right { text-align: right; }

@media (max-width: 640px) {
	.kb-writing-masthead { padding: 56px 0 32px; }
	.kb-writing-archive { padding: 16px 0 48px; }
}

/* =============================================================
   /elsewhere/ — awards, talks, interviews, features (D6, locked 2026-04-20).
   Thin composition: masthead + year-grouped tabular list. No pagination.
   Mirrors the /writing/ idiom with event-type columns instead of memo columns.
   ============================================================= */

.kb-elsewhere-masthead { padding: 72px 0 40px; }
.kb-elsewhere-masthead__way { margin: 0 0 24px; }
.kb-elsewhere-masthead__title {
	font-family: "Spectral", Georgia, serif;
	font-weight: 800;
	font-size: var(--kb-fs-h2-news);
	line-height: 1.02;
	letter-spacing: -0.02em;
	color: var(--kb-ink);
	margin: 0 0 18px;
}
.kb-elsewhere-masthead__dek {
	font-family: "Spectral", Georgia, serif;
	font-style: italic;
	font-weight: 400;
	font-size: var(--kb-fs-dek);
	line-height: 1.4;
	color: var(--kb-ink-soft);
	margin: 0 0 22px;
	max-width: 52ch;
}
.kb-elsewhere-masthead__meta {
	font-family: "JetBrains Mono", ui-monospace, monospace;
	font-size: var(--kb-fs-micro);
	color: var(--kb-ink-muted);
	letter-spacing: 0.06em;
	text-transform: uppercase;
	font-weight: 500;
	margin: 0;
	display: flex;
	align-items: center;
	gap: 0;
}
.kb-elsewhere-masthead__dot { margin: 0 10px; color: var(--kb-ink-dim); }

.kb-elsewhere-archive { padding: 24px 0 56px; }
.kb-elsewhere-year {
	font-family: "JetBrains Mono", ui-monospace, monospace;
	font-size: 0.75rem;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	font-weight: 600;
	color: var(--kb-ink-muted);
	padding: 28px 0 12px;
	margin: 0;
	border-top: 1px solid var(--kb-hairline-strong);
	display: flex;
	align-items: baseline;
	justify-content: space-between;
}
.kb-elsewhere-year:first-of-type { border-top: none; padding-top: 8px; }
.kb-elsewhere-year__count {
	color: var(--kb-ink-dim);
	font-weight: 500;
	letter-spacing: 0.08em;
}

.kb-elsewhere-tbl {
	display: grid;
	grid-template-columns: 100px 1fr 130px 90px;
	border-bottom: 1px solid var(--kb-hairline-strong);
}
.kb-elsewhere-row {
	display: contents;
	color: inherit;
	text-decoration: none;
}
.kb-elsewhere-row > * {
	padding: 14px;
	align-self: center;
}
.kb-elsewhere-row > .kb-e-body { border-top: 1px solid var(--kb-hairline); }
.kb-elsewhere-row:first-child > .kb-e-body { border-top: none; }
.kb-elsewhere-row:hover > * { background: var(--kb-row-hover); }

.kb-e-date {
	font-family: "JetBrains Mono", ui-monospace, monospace;
	font-size: 0.7188rem;
	color: var(--kb-ink-muted);
	letter-spacing: 0.04em;
	white-space: nowrap;
}
.kb-e-body {
	display: flex;
	flex-direction: column;
	gap: 4px;
	min-width: 0;
}
.kb-e-venue {
	font-family: "Inter Tight", system-ui, sans-serif;
	font-weight: 500;
	font-size: 1.0625rem;
	line-height: 1.25;
	color: var(--kb-ink);
	letter-spacing: -0.005em;
}
.kb-e-title {
	font-family: "Spectral", Georgia, serif;
	font-style: italic;
	font-weight: 400;
	font-size: 0.9375rem;
	line-height: 1.35;
	color: var(--kb-ink-soft);
	margin: 0;
}
.kb-e-type {
	font-family: "JetBrains Mono", ui-monospace, monospace;
	font-size: 0.6875rem;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: var(--kb-ink-muted);
	font-weight: 500;
	white-space: nowrap;
}
.kb-e-type__chip {
	display: inline-block;
	padding: 4px 8px;
	border: 1px solid var(--kb-hairline-strong);
	border-radius: 2px;
	background: var(--kb-paper);
}
.kb-e-cta {
	font-family: "JetBrains Mono", ui-monospace, monospace;
	font-size: 0.7188rem;
	color: var(--kb-ink);
	letter-spacing: 0.04em;
	white-space: nowrap;
	text-align: right;
}
.kb-elsewhere-row:hover .kb-e-cta { color: var(--kb-accent); }
.kb-elsewhere-row:hover .kb-e-venue { color: var(--kb-accent); }

.kb-elsewhere-archive__empty {
	font-family: "Spectral", Georgia, serif;
	font-style: italic;
	color: var(--kb-ink-muted);
	padding: 32px 0;
	margin: 0;
}

@media (max-width: 640px) {
	.kb-elsewhere-masthead { padding: 56px 0 32px; }
	.kb-elsewhere-archive { padding: 16px 0 48px; }
	.kb-elsewhere-tbl { grid-template-columns: 1fr; }
	.kb-elsewhere-row > * { padding: 8px 0; }
	.kb-elsewhere-row > *:first-child { padding-top: 16px; }
	.kb-elsewhere-row > *:last-child { padding-bottom: 16px; }
	.kb-elsewhere-row > * + * { border-top: none; }
	.kb-elsewhere-row > .kb-e-body { border-top: none; }
	.kb-elsewhere-row + .kb-elsewhere-row > *:first-child {
		border-top: 1px solid var(--kb-hairline);
	}
	.kb-e-cta { text-align: left; }
}

/* =============================================================
   /topics/ hub — six-thread index (D6, locked 2026-04-20).
   Reuses .kb-pillars__grid + .kb-pillar-card from the home-page
   pillar section. Only additions are: the masthead vocabulary
   (mirrors writing/elsewhere mastheads), the hub container
   padding, and a small footer row on each card that puts the
   "Read the thread →" link and the memo count on the same line.
   ============================================================= */

.kb-topics-masthead { padding: 72px 0 40px; }
.kb-topics-masthead__way { margin: 0 0 24px; }
.kb-topics-masthead__title {
	font-family: "Spectral", Georgia, serif;
	font-weight: 800;
	font-size: var(--kb-fs-h2-news);
	line-height: 1.02;
	letter-spacing: -0.02em;
	color: var(--kb-ink);
	margin: 0 0 18px;
}
.kb-topics-masthead__dek {
	font-family: "Spectral", Georgia, serif;
	font-style: italic;
	font-weight: 400;
	font-size: var(--kb-fs-dek);
	line-height: 1.4;
	color: var(--kb-ink-soft);
	margin: 0 0 22px;
	max-width: 52ch;
}
.kb-topics-masthead__meta {
	font-family: "JetBrains Mono", ui-monospace, monospace;
	font-size: var(--kb-fs-micro);
	color: var(--kb-ink-muted);
	letter-spacing: 0.06em;
	text-transform: uppercase;
	font-weight: 500;
	margin: 0;
	display: flex;
	align-items: center;
	gap: 0;
}
.kb-topics-masthead__dot { margin: 0 10px; color: var(--kb-ink-dim); }

.kb-topics-index { padding: 24px 0 72px; }
.kb-topics-index__grid {
	/* Keeps the home .kb-pillars__grid 3-col layout; this class is a hook
	   for hub-specific tweaks if needed later. */
}
.kb-topic-card {
	color: inherit;
	text-decoration: none;
	display: flex;
	flex-direction: column;
}
.kb-topic-card h3 {
	font-family: "Spectral", Georgia, serif;
}
.kb-topic-card__foot {
	margin-top: auto;
	display: flex;
	align-items: baseline;
	justify-content: space-between;
	gap: 16px;
}
.kb-topic-card__count {
	font-family: "JetBrains Mono", ui-monospace, monospace;
	font-size: var(--kb-fs-micro);
	color: var(--kb-ink-muted);
	letter-spacing: 0.06em;
	text-transform: uppercase;
	font-weight: 500;
	white-space: nowrap;
}
.kb-topics-index__empty {
	font-family: "Spectral", Georgia, serif;
	font-style: italic;
	color: var(--kb-ink-muted);
	padding: 32px 0;
	margin: 0;
}

@media (max-width: 640px) {
	.kb-topics-masthead { padding: 56px 0 32px; }
	.kb-topics-index { padding: 16px 0 56px; }
}

/* =========================================================================
   /artifacts/ hub (archive-artifact) + single-artifact (D6 — locked 2026-04-20)
   ========================================================================= */

/* ---- Archive masthead ---- */
.kb-artifacts-masthead { padding: 72px 0 40px; }
.kb-artifacts-masthead__way { margin: 0 0 24px; }
.kb-artifacts-masthead__title {
	font-family: "Spectral", Georgia, serif;
	font-weight: 800;
	font-size: var(--kb-fs-h2-news);
	line-height: 1.02;
	letter-spacing: -0.02em;
	color: var(--kb-ink);
	margin: 0 0 18px;
}
.kb-artifacts-masthead__dek {
	font-family: "Spectral", Georgia, serif;
	font-style: italic;
	font-weight: 400;
	font-size: var(--kb-fs-dek);
	line-height: 1.4;
	color: var(--kb-ink-soft);
	margin: 0 0 22px;
	max-width: 52ch;
}
.kb-artifacts-masthead__meta {
	font-family: "JetBrains Mono", ui-monospace, monospace;
	font-size: var(--kb-fs-micro);
	color: var(--kb-ink-muted);
	letter-spacing: 0.06em;
	text-transform: uppercase;
	font-weight: 500;
	margin: 0;
	display: flex;
	align-items: center;
	gap: 0;
}
.kb-artifacts-masthead__dot { margin: 0 10px; color: var(--kb-ink-dim); }

/* ---- Archive kind-grouped feed ---- */
.kb-artifacts-archive { padding: 24px 0 72px; }

.kb-artifacts-kind {
	padding: 28px 0 12px;
	margin: 0;
	border-top: 1px solid var(--kb-hairline-strong);
	display: flex;
	align-items: baseline;
	justify-content: space-between;
	gap: 16px;
}
.kb-artifacts-kind:first-of-type {
	border-top: none;
	padding-top: 8px;
}
.kb-artifacts-kind__label {
	font-family: "JetBrains Mono", ui-monospace, monospace;
	font-size: 0.75rem;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	font-weight: 600;
	color: var(--kb-ink-muted);
	white-space: nowrap;
}
.kb-artifacts-kind__blurb {
	font-family: "Spectral", Georgia, serif;
	font-style: italic;
	font-weight: 400;
	font-size: 0.9375rem;
	color: var(--kb-ink-soft);
	flex: 1;
	text-align: left;
	margin-left: 16px;
	line-height: 1.4;
}
.kb-artifacts-kind__count {
	font-family: "JetBrains Mono", ui-monospace, monospace;
	font-size: 0.75rem;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: var(--kb-ink-dim);
	font-weight: 500;
	white-space: nowrap;
}

/* Row table — identical column shape to .kb-elsewhere-tbl. */
.kb-artifacts-tbl {
	display: grid;
	grid-template-columns: 100px 1fr 130px 90px;
	border-bottom: 1px solid var(--kb-hairline-strong);
}
.kb-artifact-row {
	display: contents;
	color: inherit;
	text-decoration: none;
}
.kb-artifact-row > * {
	padding: 14px;
	align-self: center;
}
.kb-artifact-row > .kb-a-body { border-top: 1px solid var(--kb-hairline); }
.kb-artifact-row:first-child > .kb-a-body { border-top: none; }
.kb-artifact-row:hover > * { background: var(--kb-row-hover); }
.kb-a-date {
	font-family: "JetBrains Mono", ui-monospace, monospace;
	font-size: 0.7188rem;
	color: var(--kb-ink-muted);
	letter-spacing: 0.04em;
	white-space: nowrap;
}
.kb-a-body {
	display: flex;
	flex-direction: column;
	gap: 4px;
	min-width: 0;
}
.kb-a-title {
	font-family: "Inter Tight", system-ui, sans-serif;
	font-weight: 500;
	font-size: 1.0625rem;
	line-height: 1.25;
	color: var(--kb-ink);
	letter-spacing: -0.005em;
}
.kb-a-dek {
	font-family: "Spectral", Georgia, serif;
	font-style: italic;
	font-weight: 400;
	font-size: 0.9375rem;
	line-height: 1.35;
	color: var(--kb-ink-soft);
	margin: 0;
}
.kb-a-format {
	font-family: "JetBrains Mono", ui-monospace, monospace;
	font-size: 0.6875rem;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: var(--kb-ink-muted);
	font-weight: 500;
	white-space: nowrap;
}
.kb-a-format__chip {
	display: inline-block;
	padding: 4px 8px;
	border: 1px solid var(--kb-hairline-strong);
	border-radius: 2px;
	background: var(--kb-paper);
}
.kb-a-cta {
	font-family: "JetBrains Mono", ui-monospace, monospace;
	font-size: 0.7188rem;
	color: var(--kb-ink);
	letter-spacing: 0.04em;
	white-space: nowrap;
	text-align: right;
}
.kb-artifact-row:hover .kb-a-cta { color: var(--kb-accent); }
.kb-artifact-row:hover .kb-a-title { color: var(--kb-accent); }

/* ---- Single-artifact header + download CTA ---- */
.kb-artifact-header { padding: 56px 0 32px; }
.kb-artifact-header__way { margin: 0 0 20px; }
.kb-artifact-header__way a { color: inherit; text-decoration: none; }
.kb-artifact-header__way a:hover { color: var(--kb-accent); }
.kb-artifact-header__slash { margin: 0 6px; color: var(--kb-ink-dim); }
.kb-artifact-header__title {
	font-family: "Spectral", Georgia, serif;
	font-weight: 800;
	font-size: var(--kb-fs-h2-news);
	line-height: 1.03;
	letter-spacing: -0.02em;
	color: var(--kb-ink);
	margin: 0 0 16px;
}
.kb-artifact-header__dek {
	font-family: "Spectral", Georgia, serif;
	font-style: italic;
	font-weight: 400;
	font-size: var(--kb-fs-dek);
	line-height: 1.4;
	color: var(--kb-ink-soft);
	margin: 0 0 22px;
	max-width: 52ch;
}
.kb-artifact-header__meta {
	font-family: "JetBrains Mono", ui-monospace, monospace;
	font-size: var(--kb-fs-micro);
	color: var(--kb-ink-muted);
	letter-spacing: 0.06em;
	text-transform: uppercase;
	font-weight: 500;
	margin: 0 0 28px;
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 0;
}
.kb-artifact-header__dot { margin: 0 10px; color: var(--kb-ink-dim); }

.kb-artifact-download {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 20px;
	padding: 18px 22px;
	border: 1px solid var(--kb-hairline-strong);
	border-radius: 3px;
	background: var(--kb-paper);
	text-decoration: none;
	color: inherit;
	transition: border-color 120ms, background 120ms;
}
.kb-artifact-download:hover {
	border-color: var(--kb-accent);
	background: var(--kb-row-hover);
}
.kb-artifact-download__body {
	display: flex;
	flex-direction: column;
	gap: 4px;
	min-width: 0;
}
.kb-artifact-download__label {
	font-family: "Inter Tight", system-ui, sans-serif;
	font-weight: 500;
	font-size: 1.0625rem;
	color: var(--kb-ink);
	letter-spacing: -0.005em;
}
.kb-artifact-download__detail {
	font-family: "JetBrains Mono", ui-monospace, monospace;
	font-size: var(--kb-fs-micro);
	letter-spacing: 0.06em;
	text-transform: uppercase;
	color: var(--kb-ink-muted);
}
.kb-artifact-download__arrow {
	font-family: "JetBrains Mono", ui-monospace, monospace;
	font-size: 0.875rem;
	color: var(--kb-ink);
	letter-spacing: 0.04em;
	white-space: nowrap;
}
.kb-artifact-download:hover .kb-artifact-download__arrow,
.kb-artifact-download:hover .kb-artifact-download__label {
	color: var(--kb-accent);
}

/* Body sub-sections — mono labels above each What/How/Why block. */
.kb-artifact-body h2 {
	font-family: "JetBrains Mono", ui-monospace, monospace;
	font-size: 0.75rem;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	font-weight: 600;
	color: var(--kb-ink-muted);
	margin: 40px 0 12px;
	padding-top: 20px;
	border-top: 1px solid var(--kb-hairline);
}
.kb-artifact-body h2:first-of-type {
	margin-top: 36px;
	padding-top: 0;
	border-top: none;
}
.kb-artifact-body p {
	font-family: "Inter Tight", system-ui, sans-serif;
	font-weight: 450;
	font-size: var(--kb-fs-body-sm);
	line-height: 1.6;
	color: var(--kb-ink);
	margin: 0 0 14px;
}

/* "Use it" mono checklist, anchored below the prose. */
.kb-artifact-usage {
	margin-top: 44px;
	padding: 22px 24px;
	border-top: 1px solid var(--kb-hairline-strong);
	border-bottom: 1px solid var(--kb-hairline-strong);
	background: var(--kb-paper);
}
.kb-artifact-usage__label {
	font-family: "JetBrains Mono", ui-monospace, monospace;
	font-size: 0.75rem;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	font-weight: 600;
	color: var(--kb-ink-muted);
	margin: 0 0 10px;
}
.kb-artifact-usage__list {
	list-style: none;
	margin: 0;
	padding: 0;
	font-family: "JetBrains Mono", ui-monospace, monospace;
	font-size: 0.8125rem;
	line-height: 1.55;
	color: var(--kb-ink-soft);
}
.kb-artifact-usage__list li {
	padding: 4px 0 4px 18px;
	position: relative;
}
.kb-artifact-usage__list li::before {
	content: "→";
	position: absolute;
	left: 0;
	color: var(--kb-ink-dim);
}

/* Related memos at the end of an artifact — reuses essay-end-rail vocabulary
   but self-scoped so the single template can invoke it directly. */
.kb-artifact-related { margin-top: 48px; }
.kb-artifact-related__label {
	font-family: "JetBrains Mono", ui-monospace, monospace;
	font-size: 0.75rem;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	font-weight: 600;
	color: var(--kb-ink-muted);
	margin: 0 0 12px;
}
.kb-artifact-related__list {
	border-top: 1px solid var(--kb-hairline-strong);
	border-bottom: 1px solid var(--kb-hairline-strong);
}
.kb-artifact-related__row {
	display: grid;
	grid-template-columns: 100px 1fr 90px;
	gap: 14px;
	align-items: baseline;
	padding: 14px 0;
	border-top: 1px solid var(--kb-hairline);
	color: inherit;
	text-decoration: none;
}
.kb-artifact-related__row:first-child { border-top: none; }
.kb-artifact-related__row:hover { background: var(--kb-row-hover); }
.kb-ar-date {
	font-family: "JetBrains Mono", ui-monospace, monospace;
	font-size: 0.7188rem;
	color: var(--kb-ink-muted);
	letter-spacing: 0.04em;
	white-space: nowrap;
	padding-left: 8px;
}
.kb-ar-body {
	display: flex;
	flex-direction: column;
	gap: 4px;
	min-width: 0;
}
.kb-ar-title {
	font-family: "Inter Tight", system-ui, sans-serif;
	font-weight: 500;
	font-size: 1.0625rem;
	line-height: 1.25;
	color: var(--kb-ink);
	letter-spacing: -0.005em;
}
.kb-ar-dek {
	font-family: "Spectral", Georgia, serif;
	font-style: italic;
	font-weight: 400;
	font-size: 0.9375rem;
	line-height: 1.35;
	color: var(--kb-ink-soft);
}
.kb-ar-cta {
	font-family: "JetBrains Mono", ui-monospace, monospace;
	font-size: 0.7188rem;
	color: var(--kb-ink);
	letter-spacing: 0.04em;
	white-space: nowrap;
	text-align: right;
	padding-right: 8px;
}
.kb-artifact-related__row:hover .kb-ar-title,
.kb-artifact-related__row:hover .kb-ar-cta { color: var(--kb-accent); }

/* Mobile collapse. */
@media (max-width: 640px) {
	.kb-artifacts-kind {
		flex-direction: column;
		align-items: flex-start;
		gap: 6px;
	}
	.kb-artifacts-kind__blurb { margin-left: 0; }
	.kb-artifacts-tbl { grid-template-columns: 1fr; }
	.kb-artifact-row > * { padding: 8px 0; }
	.kb-artifact-row > *:first-child { padding-top: 16px; }
	.kb-artifact-row > *:last-child { padding-bottom: 16px; }
	.kb-artifact-row > * + * { border-top: none; }
	.kb-artifact-row > .kb-a-body { border-top: none; }
	.kb-artifact-row + .kb-artifact-row > *:first-child { border-top: 1px solid var(--kb-hairline); }
	.kb-a-cta { text-align: left; }

	.kb-artifact-download {
		flex-direction: column;
		align-items: flex-start;
		gap: 10px;
	}
	.kb-artifact-related__row {
		grid-template-columns: 1fr;
		gap: 4px;
	}
	.kb-ar-date, .kb-ar-cta { padding: 0; text-align: left; }
}

/* =============================================================
   /now/ living page (D6, locked 2026-04-20).
   Thin composition: kb-now-header pattern + wp:post-content .kb-body.
   No newsletter, no related rail, no other chrome — the quiet page.
   Prose inherits long-form typography from .kb-body in style.css above.
   ============================================================= */

.kb-now-header {
	padding: 72px 0 28px;
}
.kb-now-header__way {
	margin: 0 0 24px;
}
.kb-now-header__title {
	font-family: "Spectral", Georgia, serif;
	font-weight: 800;
	font-size: var(--kb-fs-h2-news);
	line-height: 1.02;
	letter-spacing: -0.02em;
	color: var(--kb-ink);
	margin: 0 0 18px;
}
.kb-now-header__stamp {
	font-family: "JetBrains Mono", ui-monospace, monospace;
	font-size: var(--kb-fs-micro);
	color: var(--kb-ink-muted);
	letter-spacing: 0.06em;
	text-transform: uppercase;
	font-weight: 500;
	margin: 0;
}

.kb-now-body { padding: 8px 0 72px; }

/* The /now/ body renders post_content which is just wp:paragraph blocks.
 * .kb-body provides the Spectral long-form idiom already; the only thing we
 * re-assert here is the paragraph rhythm so the page doesn't crowd itself
 * when the content is terse (4-ish short paragraphs is typical). */
.kb-now-body .kb-body p {
	font-family: "Spectral", Georgia, serif;
	font-size: 1.1875rem;  /* ~19 */
	line-height: 1.6;
	color: var(--kb-ink);
	margin: 0 0 1.2em;
	letter-spacing: -0.002em;
}
.kb-now-body .kb-body p:last-child { margin-bottom: 0; }

@media (max-width: 640px) {
	.kb-now-header { padding: 56px 0 24px; }
	.kb-now-body { padding: 4px 0 56px; }
}

/* --------------------------------------------------------------------------
 * /contact/ standalone form (kb-contact-form, not wrapped in
 * .kb-about-contact-card). Mirrors the typographic treatment used on the
 * About contact card so input fields, labels, and the submit button match
 * the rest of the site (Inter Tight body, JetBrains Mono mono labels)
 * instead of falling back to the browser default sans.
 * Added 2026-04-27 — see editorial/audits/2026-04-27 contact polish.
 * ------------------------------------------------------------------------ */
.kb-contact-form { margin: 24px 0 0; }
.kb-contact-form .grunion-field-wrap { margin-bottom: 14px; }
.kb-contact-form label,
.kb-contact-form .grunion-field-label {
	display: block;
	color: var(--kb-ink-muted);
	font-family: "JetBrains Mono", ui-monospace, monospace;
	font-size: 11px;
	font-weight: 500;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	margin-bottom: 6px;
}
.kb-contact-form input[type="text"],
.kb-contact-form input[type="email"],
.kb-contact-form textarea {
	background: var(--kb-paper);
	border: 1px solid var(--kb-hairline);
	color: var(--kb-ink);
	padding: 10px 12px;
	width: 100%;
	font-family: "Inter Tight", system-ui, sans-serif;
	font-size: 15px;
	line-height: 1.4;
	border-radius: 0;
	box-sizing: border-box;
	transition: border-color 0.15s;
}
.kb-contact-form input[type="text"]:focus,
.kb-contact-form input[type="email"]:focus,
.kb-contact-form textarea:focus {
	outline: 2px solid var(--kb-accent);
	outline-offset: 2px;
	border-color: var(--kb-ink-soft);
}
.kb-contact-form textarea { min-height: 160px; resize: vertical; }
.kb-contact-form .wp-block-button__link,
.kb-contact-form button[type="submit"],
.kb-contact-form .wp-block-jetpack-button button {
	background: var(--kb-accent);
	color: var(--kb-paper);
	border: 0;
	padding: 11px 22px;
	font-family: "Inter Tight", system-ui, sans-serif;
	font-weight: 500;
	font-size: 14px;
	letter-spacing: 0.02em;
	cursor: pointer;
	border-radius: 3px;
	transition: background 0.15s;
}
.kb-contact-form .wp-block-button__link:hover,
.kb-contact-form button[type="submit"]:hover,
.kb-contact-form .wp-block-jetpack-button button:hover {
	background: var(--kb-accent-hover);
}
.kb-contact-form .grunion-field-required-text {
	font-family: "JetBrains Mono", ui-monospace, monospace;
	font-size: 10px;
	letter-spacing: 0.04em;
	text-transform: uppercase;
	color: var(--kb-ink-muted);
	font-weight: 400;
}

/* ---------------------------------------------------------------------------
 * Series — archive page (taxonomy-series.html → karlbaz/series-archive)
 * and the in-memo series rail (karlbaz/essay-series-rail). Visual language
 * stays consistent with .kb-related and .kb-pillar-canon. Added 2026-05-03.
 * ------------------------------------------------------------------------- */

/* Series archive masthead */
.kb-series {
	padding: 72px 0 40px;
}
.kb-series__masthead {
	padding: 0 0 32px;
	border-bottom: 1px solid var(--kb-hairline);
	margin: 0 0 24px;
}
.kb-series__eyebrow {
	font-family: "JetBrains Mono", ui-monospace, monospace;
	font-size: var(--kb-fs-micro);
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: var(--kb-ink-muted);
	font-weight: 500;
	margin: 0 0 12px;
}
.kb-series__title {
	font-family: "Spectral", Georgia, serif;
	font-weight: 800;
	letter-spacing: -0.012em;
	line-height: 1.08;
	margin: 0 0 16px;
	color: var(--kb-ink);
}
.kb-series__thesis {
	font-family: "Spectral", Georgia, serif;
	font-style: italic;
	font-weight: 400;
	font-size: var(--kb-fs-body);
	line-height: 1.5;
	color: var(--kb-ink-soft);
	max-width: 62ch;
	margin: 0 0 16px;
}
.kb-series__meta {
	font-family: "JetBrains Mono", ui-monospace, monospace;
	font-size: var(--kb-fs-micro);
	letter-spacing: 0.06em;
	text-transform: uppercase;
	color: var(--kb-ink-muted);
	margin: 0;
}

/* Series ordered list — same row treatment as .kb-related, plus a position
 * gutter on the left. */
.kb-series__list {
	list-style: none;
	padding: 0;
	margin: 0;
	counter-reset: kb-series-counter;
}
.kb-series__item {
	list-style: none;
	margin: 0;
	padding: 0;
}
.kb-series__row {
	display: grid;
	grid-template-columns: 56px 1fr;
	gap: 16px;
	padding: 22px 0;
	border-bottom: 1px solid var(--kb-hairline);
	color: var(--kb-ink);
}
.kb-series__row:hover {
	background: var(--kb-row-hover);
}
.kb-series__row:hover .kb-series__row-title {
	color: var(--kb-accent);
}
.kb-series__pos {
	font-family: "JetBrains Mono", ui-monospace, monospace;
	font-size: var(--kb-fs-h-memo-row);
	font-weight: 500;
	color: var(--kb-ink-muted);
	letter-spacing: -0.01em;
	line-height: 1.14;
	padding-top: 4px;
	text-align: right;
}
.kb-series__body {
	display: block;
	min-width: 0;
}
.kb-series__row-title {
	font-family: "Spectral", Georgia, serif;
	font-weight: 800;
	font-size: var(--kb-fs-h-memo-row);
	line-height: 1.14;
	letter-spacing: -0.012em;
	margin: 0 0 6px;
	color: var(--kb-ink);
	transition: color 0.12s ease-in-out;
}
.kb-series__row-dek {
	font-family: "Spectral", Georgia, serif;
	font-style: italic;
	font-weight: 400;
	font-size: var(--kb-fs-body);
	line-height: 1.4;
	color: var(--kb-ink-soft);
	margin: 0 0 8px;
	max-width: 62ch;
}
.kb-series__row-meta {
	font-family: "JetBrains Mono", ui-monospace, monospace;
	font-size: var(--kb-fs-micro);
	color: var(--kb-ink-muted);
	letter-spacing: 0.06em;
	text-transform: uppercase;
	font-weight: 500;
	margin: 0;
	display: flex;
	align-items: center;
}
.kb-series__row-meta > span + span::before {
	content: "·";
	margin: 0 10px;
	color: var(--kb-ink-dim);
}
.kb-series__empty {
	font-family: "JetBrains Mono", ui-monospace, monospace;
	font-size: var(--kb-fs-chip);
	color: var(--kb-ink-muted);
	letter-spacing: 0.04em;
	margin: 0;
}

/* In-memo series wayfinding line (essay-series-rail.php) — single quiet
 * row above the topics chip. Mono lead-in for the wayfinding noun, italic
 * serif for the series name, ink-colored serif title for the next/prev
 * memos. No internal hairlines, no two-block grid — the eye reads it as
 * one breath. Rebuilt 2026-05-03. */
.kb-series-line {
	padding: 32px 0 0;
}
.kb-series-line__row {
	font-family: "JetBrains Mono", ui-monospace, monospace;
	font-size: var(--kb-fs-micro);
	letter-spacing: 0.06em;
	text-transform: uppercase;
	color: var(--kb-ink-muted);
	font-weight: 500;
	margin: 0;
	line-height: 1.5;
}
.kb-series-line__series {
	font-family: "Spectral", Georgia, serif;
	font-style: italic;
	font-weight: 400;
	font-size: var(--kb-fs-body);
	letter-spacing: 0;
	text-transform: none;
	color: var(--kb-ink);
	text-decoration: none;
	border-bottom: 1px solid var(--kb-hairline);
	padding-bottom: 1px;
}
.kb-series-line__series:hover {
	color: var(--kb-accent);
	border-bottom-color: var(--kb-accent);
}
.kb-series-line__title {
	font-family: "Spectral", Georgia, serif;
	font-weight: 700;
	font-size: var(--kb-fs-body);
	letter-spacing: -0.01em;
	text-transform: none;
	color: var(--kb-ink);
	text-decoration: none;
	border-bottom: 1px solid var(--kb-hairline);
	padding-bottom: 1px;
	transition: color 0.12s ease-in-out, border-bottom-color 0.12s ease-in-out;
}
.kb-series-line__title:hover {
	color: var(--kb-accent);
	border-bottom-color: var(--kb-accent);
}
.kb-series-line__arrow {
	display: inline-block;
	margin-left: 4px;
	font-family: "JetBrains Mono", ui-monospace, monospace;
	font-style: normal;
	font-weight: 600;
}

@media (max-width: 480px) {
	.kb-series__row {
		grid-template-columns: 40px 1fr;
		gap: 12px;
	}
}

/* ---------------------------------------------------------------------------
 * /series/ hub (page-series.html → karlbaz/series-index) and the home
 * "Currently running" feature (front-page.html → karlbaz/home-series-feature).
 * Hub cards inherit kb-pillar-card + kb-pillars__grid from the home pillars.
 * Home feature is a single-card surface above recent-writing. Added 2026-05-03.
 * ------------------------------------------------------------------------- */

/* Hub page wrapper */
.kb-series-hub { }
.kb-series-hub__body { }

/* Hub: index of all series cards. Mirrors .kb-topics-index. */
.kb-series-index { padding: 24px 0 72px; }
.kb-series-index__grid {
	/* Hook for series-specific tweaks; layout inherited from .kb-pillars__grid. */
}
.kb-series-card {
	color: inherit;
	text-decoration: none;
	display: flex;
	flex-direction: column;
}
.kb-series-card h3 {
	font-family: "Spectral", Georgia, serif;
}
.kb-series-card__foot {
	margin-top: auto;
	display: flex;
	align-items: baseline;
	justify-content: space-between;
	gap: 16px;
	flex-wrap: wrap;
}
.kb-series-card__meta {
	display: flex;
	gap: 12px;
	align-items: baseline;
	flex-wrap: wrap;
}
.kb-series-card__count,
.kb-series-card__date {
	font-family: "JetBrains Mono", ui-monospace, monospace;
	font-size: var(--kb-fs-micro);
	color: var(--kb-ink-muted);
	letter-spacing: 0.06em;
	text-transform: uppercase;
	font-weight: 500;
	white-space: nowrap;
}
.kb-series-index__empty {
	font-family: "Spectral", Georgia, serif;
	font-style: italic;
	color: var(--kb-ink-muted);
	padding: 32px 0;
	margin: 0;
}

@media (max-width: 640px) {
	.kb-series-index { padding: 16px 0 56px; }
}

/* Home page: "Currently running" series feature.
 * Single feature card with a 3-memo preview. Sits above recent-writing
 * so a returning visitor sees what's in motion before the chronological feed. */
.kb-home-series {
	padding: 32px 0 16px;
}
.kb-home-series__card {
	border-top: 1px solid var(--kb-hairline);
	border-bottom: 1px solid var(--kb-hairline);
	padding: 24px 0;
}
.kb-home-series__head {
	margin: 0 0 16px;
}
.kb-home-series__eyebrow {
	font-family: "JetBrains Mono", ui-monospace, monospace;
	font-size: var(--kb-fs-micro);
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: var(--kb-ink-muted);
	font-weight: 500;
	margin: 0 0 8px;
}
.kb-home-series__title {
	font-family: "Spectral", Georgia, serif;
	font-weight: 800;
	letter-spacing: -0.012em;
	line-height: 1.12;
	margin: 0 0 12px;
	color: var(--kb-ink);
}
.kb-home-series__title a {
	color: inherit;
	text-decoration: none;
}
.kb-home-series__title a:hover {
	color: var(--kb-accent);
}
.kb-home-series__thesis {
	font-family: "Spectral", Georgia, serif;
	font-style: italic;
	font-weight: 400;
	font-size: var(--kb-fs-body);
	line-height: 1.5;
	color: var(--kb-ink-soft);
	max-width: 62ch;
	margin: 0 0 12px;
}
.kb-home-series__meta {
	font-family: "JetBrains Mono", ui-monospace, monospace;
	font-size: var(--kb-fs-micro);
	letter-spacing: 0.06em;
	text-transform: uppercase;
	color: var(--kb-ink-muted);
	font-weight: 500;
	margin: 0;
}
.kb-home-series__list {
	list-style: none;
	padding: 0;
	margin: 16px 0 0;
}
.kb-home-series__item {
	list-style: none;
	margin: 0;
	padding: 0;
}
.kb-home-series__row {
	display: grid;
	grid-template-columns: 40px 1fr;
	gap: 16px;
	align-items: baseline;
	padding: 12px 0;
	border-top: 1px solid var(--kb-hairline);
	color: var(--kb-ink);
	text-decoration: none;
}
.kb-home-series__row:hover {
	background: var(--kb-row-hover);
}
.kb-home-series__row:hover .kb-home-series__row-title {
	color: var(--kb-accent);
}
.kb-home-series__pos {
	font-family: "JetBrains Mono", ui-monospace, monospace;
	font-size: var(--kb-fs-micro);
	font-weight: 500;
	color: var(--kb-ink-muted);
	letter-spacing: 0.06em;
	text-align: right;
}
.kb-home-series__row-title {
	font-family: "Spectral", Georgia, serif;
	font-weight: 800;
	font-size: var(--kb-fs-body);
	line-height: 1.2;
	letter-spacing: -0.01em;
	color: var(--kb-ink);
	transition: color 0.12s ease-in-out;
}
.kb-home-series__more {
	margin: 16px 0 0;
}
.kb-home-series__more a {
	font-family: "JetBrains Mono", ui-monospace, monospace;
	font-size: var(--kb-fs-micro);
	letter-spacing: 0.06em;
	text-transform: uppercase;
	color: var(--kb-ink);
	text-decoration: none;
	font-weight: 500;
	border-bottom: 1px solid var(--kb-hairline);
	padding-bottom: 2px;
}
.kb-home-series__more a:hover {
	color: var(--kb-accent);
	border-bottom-color: var(--kb-accent);
}

@media (max-width: 480px) {
	.kb-home-series__row {
		grid-template-columns: 32px 1fr;
		gap: 12px;
	}
}
