/* ───────────────────────────────────────────────────────────────
   IAMYB · Main stylesheet
   Built 1:1 from /v6/styles.css + /v6/DESIGN-SYSTEM.md.

   Structure (matches /v6/):
     1. Reset & base
     2. Shared atoms (mirror of /v6/styles.css)
     3. V2TopBand (blue, publication chrome)
     4. V2TopBand (paper-warm, /book sub-site chrome)
     5. V2Footer (ink, universal)
     6. Page: Home (HomeOperatorV2)
     7. Page: Essay (EssayTemplateV2)
     8. Page: Book (BookPageV2)
     9. Page: About (AboutPageV2)
    10. Responsive

   Status: skeleton — sections 1 and 2 mirror /v6/styles.css.
   Sections 3–10 are added incrementally as templates are built.
   ─────────────────────────────────────────────────────────────── */

/* ── 1 · Reset & base ────────────────────────────────────────── */
*,
*::before,
*::after { box-sizing: border-box; }

html { scroll-behavior: smooth; -webkit-text-size-adjust: 100%; }

body {
	margin: 0;
	font-family: var(--font-sans);
	color: var(--ink);
	background: var(--paper);
	font-feature-settings: "kern", "liga", "calt";
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
	text-rendering: optimizeLegibility;
}

a { color: inherit; text-decoration: none; }
img { max-width: 100%; height: auto; display: block; }
ul, ol { list-style: none; margin: 0; padding: 0; }
button { font: inherit; cursor: pointer; }

::selection { background: var(--ink); color: var(--paper); }

/* Visually hidden — for screen readers */
.iamyb-sr {
	position: absolute;
	width: 1px; height: 1px;
	padding: 0; margin: -1px;
	overflow: hidden;
	clip: rect(0,0,0,0);
	white-space: nowrap;
	border: 0;
}

/* ── 2 · Shared atoms (mirror of /v6/styles.css) ──────────────── */

.iamyb,
.iamyb * { box-sizing: border-box; margin: 0; padding: 0; }

.iamyb {
	font-family: var(--font-sans);
	color: var(--ink);
	background: var(--paper);
	font-feature-settings: "kern", "liga", "calt";
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
	text-rendering: optimizeLegibility;
	width: 100%;
}
.iamyb a:not(.iamyb-btn):not(.book-stores-btn):not(.iamyb-promo-cta) { color: inherit; text-decoration: none; }
.iamyb ul, .iamyb ol { list-style: none; }

/* Wordmark — IAM Inter Light (300) + YB Inter Bold (700) */
.iamyb-wordmark {
	font-family: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Helvetica, Arial, sans-serif;
	font-weight: 300;
	letter-spacing: -0.02em;
	display: inline-flex;
	align-items: baseline;
	line-height: 1;
	color: var(--ink);
}
.iamyb-wordmark b {
	font-weight: 700;
	letter-spacing: -0.03em;
}

/* Operator status dot ⦾ */
.iamyb-dot {
	display: inline-flex;
	align-items: center;
	gap: 0.45em;
	font-family: var(--font-mono);
	font-size: 11px;
	letter-spacing: 0.04em;
	text-transform: uppercase;
	color: var(--ink-60);
}
.iamyb-dot::before {
	content: "";
	width: 7px; height: 7px;
	border-radius: 50%;
	background: var(--red);
	box-shadow: 0 0 0 2px var(--paper), 0 0 0 3px var(--red);
	display: inline-block;
	flex: 0 0 auto;
}
.iamyb-dot.dot-blue::before { background: var(--blue); box-shadow: 0 0 0 2px var(--paper), 0 0 0 3px var(--blue); }
.iamyb-dot.dot-ink::before  { background: var(--ink);  box-shadow: 0 0 0 2px var(--paper), 0 0 0 3px var(--ink); }

/* Metadata strip */
.iamyb-meta {
	font-family: var(--font-mono);
	font-size: 11px;
	letter-spacing: 0.06em;
	text-transform: uppercase;
	color: var(--ink-60);
}
.iamyb-meta-strong { color: var(--ink); }

/* Rules */
.iamyb-rule-red  { background: var(--red);    height: 2px; width: 100%; }
.iamyb-rule-ink  { background: var(--ink);    height: 1px; width: 100%; }
.iamyb-rule-hair { background: var(--ink-12); height: 1px; width: 100%; }

/* Eyebrow (small-caps sans, red by default) */
.iamyb-eyebrow {
	font-family: var(--font-sans);
	font-weight: 600;
	font-size: 11px;
	letter-spacing: 0.16em;
	text-transform: uppercase;
	color: var(--ink-60);
}
.iamyb-eyebrow--red { color: var(--red); }

/* Buttons */
.iamyb-btn {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	font-family: var(--font-sans);
	font-weight: 500;
	font-size: 15px;
	padding: 16px 28px;
	border: 0;
	cursor: pointer;
	transition: background .15s ease, color .15s ease, border-color .15s ease;
}
.iamyb-btn--primary       { background: var(--ink); color: var(--paper); }
.iamyb-btn--primary-red   { background: var(--red); color: var(--paper); }
.iamyb-btn--ghost         { background: transparent; color: var(--ink); border: 1px solid var(--ink); }
.iamyb-btn--ghost-paper   { background: transparent; color: var(--paper); border: 1px solid var(--paper); }

/* Inline body links — blue underlined, red on hover */
.iamyb-body a,
.iamyb-prose a {
	color: var(--blue);
	text-decoration: underline;
	text-decoration-thickness: 1px;
	text-underline-offset: 3px;
	transition: color .15s ease, text-decoration-color .15s ease;
}
.iamyb-body a:hover,
.iamyb-prose a:hover {
	color: var(--red);
}

/* Social row — icon turns red on hover */
.iamyb-social a {
	color: inherit;
	display: inline-flex;
	align-items: center;
	transition: color .15s ease;
}
.iamyb-social a:hover { color: var(--red); }
.iamyb-social a:hover svg { color: var(--red); }

/* Text links that turn red on hover */
a.iamyb-rlink { transition: color .15s ease, border-color .15s ease; }
a.iamyb-rlink:hover { color: var(--red); border-bottom-color: var(--red); }

/* ── 3 · V2TopBand (white, IAMYB publication chrome) ─────────── */

.v2-topband {
	background: var(--paper);
	color: var(--ink);
	border-bottom: 1px solid var(--ink-12);
	padding:
		max(22px, env(safe-area-inset-top))
		max(64px, env(safe-area-inset-right))
		22px
		max(64px, env(safe-area-inset-left));
	display: flex;
	justify-content: space-between;
	align-items: center;
}

.v2-topband-mark {
	display: inline-flex;
}
.v2-topband-mark .iamyb-wordmark {
	color: var(--ink);
	font-size: 24px;
}

.v2-topband-nav {
	display: flex;
	gap: 30px;
	font-family: var(--font-sans);
	font-size: 14px;
	font-weight: 500;
}

.v2-topband-link {
	color: var(--ink-60);
	border-bottom: 1px solid transparent;
	padding-bottom: 3px;
	transition: color .15s ease, border-color .15s ease;
}
.v2-topband-link:hover {
	color: var(--ink);
}
.v2-topband-link.is-active {
	color: var(--ink);
	border-bottom-color: var(--red);
}

/* /book sub-site — paper-warm masthead in place of the white band so
   the topband visually belongs to the book page beneath it. */
body.page-template-page-book .v2-topband {
	background: var(--paper-warm);
}

/* Burger + drawer — hidden on desktop, swap-in at <=900px. */
.v2-burger {
	display: none;
	background: transparent;
	border: 0;
	padding: 12px;
	margin: -12px;
	cursor: pointer;
	color: var(--ink);
}
.v2-burger-line {
	display: block;
	width: 26px;
	height: 2px;
	background: currentColor;
	margin: 5px 0;
	transition: transform .2s ease, opacity .2s ease;
}
.v2-burger[aria-expanded="true"] .v2-burger-line:nth-child(1) { transform: translateY(7px) rotate(45deg); }
.v2-burger[aria-expanded="true"] .v2-burger-line:nth-child(2) { opacity: 0; }
.v2-burger[aria-expanded="true"] .v2-burger-line:nth-child(3) { transform: translateY(-7px) rotate(-45deg); }

.v2-drawer {
	position: fixed;
	inset: 0;
	z-index: 1000;
	background: var(--paper);
	color: var(--ink);
	padding:
		max(96px, calc(env(safe-area-inset-top) + 80px))
		max(32px, env(safe-area-inset-right))
		max(40px, env(safe-area-inset-bottom))
		max(32px, env(safe-area-inset-left));
	overflow-y: auto;
	-webkit-overflow-scrolling: touch;
}
.v2-drawer[hidden] { display: none; }

body.page-template-page-book .v2-drawer { background: var(--paper-warm); }

.v2-drawer-nav {
	display: flex;
	flex-direction: column;
	gap: 8px;
}
.v2-drawer-link {
	font-family: var(--font-display);
	font-weight: 600;
	font-size: 28px;
	letter-spacing: -0.02em;
	color: var(--ink);
	padding: 18px 0;
	border-bottom: 1px solid var(--ink-12);
}
.v2-drawer-link:hover,
.v2-drawer-link:focus-visible { color: var(--ink); }
.v2-drawer-link.is-active { color: var(--ink); }
.v2-drawer-link.is-active::before {
	content: "";
	display: inline-block;
	width: 18px;
	height: 2px;
	background: var(--red);
	margin-right: 12px;
	vertical-align: middle;
}

body.v2-drawer-open { overflow: hidden; }

@media (max-width: 900px) {
	.v2-topband { padding-left: max(24px, env(safe-area-inset-left)); padding-right: max(24px, env(safe-area-inset-right)); }
	.v2-topband-nav { display: none; }
	.v2-burger { display: inline-block; }
}

@media (min-width: 901px) {
	/* Desktop: drawer never visible, even if JS toggled it. */
	.v2-drawer { display: none !important; }
}

/* ── 5 · V2Footer (ink, universal across IAMYB pages) ────────── */
/* Translated 1:1 from /v6/v2-atoms.jsx V2Footer (lines 114-256). */

.v2-footer {
	background: var(--ink);
	color: var(--paper);
	padding: 88px 64px 0;
}

.v2-footer-grid {
	display: grid;
	grid-template-columns: 1.6fr 1fr 1fr 1.6fr;
	gap: 56px;
	padding-bottom: 56px;
	border-bottom: 1px solid rgba(255, 255, 255, .14);
}

.v2-footer-mark {
	color: var(--paper);
	font-size: 42px;
}

.v2-footer-eyebrow {
	font-family: var(--font-sans);
	font-weight: 600;
	font-size: 10px;
	letter-spacing: 0.22em;
	text-transform: uppercase;
	color: rgba(255, 255, 255, .55);
	margin-top: 24px;
}

.v2-footer-bio {
	font-family: var(--font-sans);
	font-size: 16px;
	line-height: 1.55;
	color: rgba(255, 255, 255, .85);
	margin-top: 12px;
	max-width: 360px;
}
.v2-footer-bio strong {
	font-weight: 600;
	color: var(--paper);
}

.v2-footer-social {
	margin-top: 28px;
}
.v2-footer-social .iamyb-social {
	display: flex;
	gap: 14px;
	align-items: center;
}
.v2-footer-social .iamyb-social a {
	width: 28px;
	height: 28px;
}

.v2-footer-coltitle {
	font-family: var(--font-sans);
	font-weight: 600;
	font-size: 11px;
	letter-spacing: 0.18em;
	text-transform: uppercase;
	color: var(--red);
	margin-bottom: 16px;
}

.v2-footer-links {
	display: grid;
	gap: 10px;
}
.v2-footer-links a {
	font-family: var(--font-sans);
	font-size: 15px;
	font-weight: 400;
	color: rgba(255, 255, 255, .85);
	line-height: 1.4;
	transition: color .15s ease;
}
.v2-footer-links a:hover {
	color: var(--paper);
}

.v2-footer-blurb {
	font-family: var(--font-sans);
	font-weight: 400;
	font-size: 15px;
	line-height: 1.55;
	color: rgba(255, 255, 255, .85);
	margin-bottom: 18px;
}

.v2-footer-form {
	display: flex;
	gap: 8px;
	align-items: stretch;
}
.v2-footer-form input[type="email"] {
	flex: 1;
	border: 0;
	border-bottom: 1px solid rgba(255, 255, 255, .35);
	background: transparent;
	padding: 10px 0;
	font-family: var(--font-sans);
	font-size: 15px;
	color: var(--paper);
	outline: none;
}
.v2-footer-form input[type="email"]::placeholder {
	color: rgba(255, 255, 255, .5);
}
.v2-footer-form input[type="email"]:focus {
	border-bottom-color: var(--paper);
}
.v2-footer-form button {
	border: 0;
	background: var(--red);
	color: var(--paper);
	padding: 6px 14px;
	font-family: var(--font-sans);
	font-weight: 600;
	font-size: 12px;
	letter-spacing: 0.04em;
}
.v2-footer-form button:hover {
	background: var(--paper);
	color: var(--red);
}

.v2-footer-address {
	margin-top: 28px;
	font-family: var(--font-sans);
	font-size: 13px;
	line-height: 1.6;
	color: rgba(255, 255, 255, .6);
	font-style: normal;
}

.v2-footer-colophon {
	display: flex;
	justify-content: space-between;
	align-items: center;
	gap: 24px;
	flex-wrap: wrap;
	padding: 22px 0 28px;
	font-family: var(--font-sans);
	font-size: 12px;
	color: rgba(255, 255, 255, .55);
}
.v2-footer-legal {
	display: flex;
	gap: 24px;
	flex-wrap: wrap;
	align-items: center;
}
.v2-footer-legal a {
	transition: color .15s ease;
}
.v2-footer-legal a:hover {
	color: var(--paper);
}
.v2-footer-set {
	font-family: var(--font-serif);
	font-style: italic;
}
.v2-footer-heart {
	display: inline-block;
	width: 11px;
	height: 11px;
	color: var(--red);
	vertical-align: -1px;
	margin: 0 1px;
}
.v2-footer-set a {
	color: inherit;
	border-bottom: 1px solid rgba(255, 255, 255, .35);
	transition: color .15s ease, border-bottom-color .15s ease;
}
.v2-footer-set a:hover {
	color: var(--paper);
	border-bottom-color: var(--paper);
}

/* Footer · 1-col stack at <=900px. */
@media (max-width: 900px) {
	.v2-footer {
		padding:
			56px
			max(24px, env(safe-area-inset-right))
			0
			max(24px, env(safe-area-inset-left));
	}
	.v2-footer-grid {
		grid-template-columns: 1fr;
		gap: 40px;
		padding-bottom: 40px;
	}
	.v2-footer-colophon {
		flex-direction: column;
		align-items: flex-start;
		gap: 16px;
		padding-bottom: max(24px, env(safe-area-inset-bottom));
	}
}

/* ── 4 · V2TopBand for /book sub-site (paper-warm chrome) ───── */
/* Added in page-book.php iteration. */

/* ── Book lockup (used wherever the book title appears) ──────── */
/* Per /v6/DESIGN-SYSTEM.md §3 — always force Inter, do not use cascade. */
.book-lockup {
	font-family: "Inter", -apple-system, BlinkMacSystemFont, sans-serif;
	text-transform: none;
}
.book-lockup .ink { font-weight: 700; color: var(--ink); }
.book-lockup .red { font-weight: 800; color: var(--red); }

/* Book lockup on dark blue band (home About section): ink span must invert to paper */
.home-about-blue .book-lockup .ink { color: var(--paper); }

/* ── 6 · Home (HomeOperatorV2) ──────────────────────────────── */
/* Translated 1:1 from /v6/homepage-operator-v2.jsx. */

/* — Hero (2) — paper, big sans display + sans dek + 2 CTAs */
.home-hero {
	padding: 100px 64px 88px;
	background: var(--paper);
}
.home-hero-headline {
	font-family: var(--font-display);
	font-weight: 600;
	font-size: 96px;
	line-height: 0.94;
	letter-spacing: -0.038em;
	color: var(--ink);
	margin-top: 26px;
	max-width: 1180px;
	text-wrap: balance;
}
.home-hero-dek {
	font-family: var(--font-sans);
	font-weight: 400;
	font-size: 26px;
	line-height: 1.4;
	color: var(--ink-60);
	margin-top: 34px;
	max-width: 880px;
	letter-spacing: -0.005em;
}
.home-hero-ctas {
	margin-top: 44px;
	display: flex;
	gap: 22px;
	align-items: center;
	flex-wrap: wrap;
}
.home-hero-arrow {
	opacity: .55;
	padding-left: 6px;
}
.home-hero-link {
	font-family: var(--font-sans);
	font-weight: 500;
	font-size: 15px;
	color: var(--ink);
	border-bottom: 1px solid var(--ink);
	padding-bottom: 4px;
}
.home-hero-link:hover { color: var(--red); border-bottom-color: var(--red); }

/* — Writing table (3) — paper, sans, category pills */
.home-writing {
	padding: 60px 64px 96px;
	background: var(--paper);
}
.home-writing-head {
	display: flex;
	justify-content: space-between;
	align-items: baseline;
	margin-bottom: 26px;
}
.home-writing-h2 {
	font-family: var(--font-display);
	font-weight: 600;
	font-size: 80px;
	letter-spacing: -0.028em;
	color: var(--ink);
}
.home-writing-pills {
	display: flex;
	gap: 8px;
	flex-wrap: wrap;
	margin-bottom: 32px;
}
.home-writing-pill {
	font-family: var(--font-sans);
	font-size: 13px;
	font-weight: 500;
	padding: 8px 14px;
	border: 1px solid var(--ink-12);
	background: transparent;
	color: var(--ink);
	border-radius: 999px;
	cursor: pointer;
	transition: background .15s ease, color .15s ease, border-color .15s ease;
}
.home-writing-pill.is-active,
.iamyb a.home-writing-pill.is-active {
	background: var(--ink);
	color: var(--paper);
	border-color: var(--ink);
}
.home-writing-pill:hover {
	border-color: var(--ink);
}

.home-writing-thead {
	display: grid;
	grid-template-columns: 150px 200px 1fr 90px 28px;
	gap: 28px;
	padding: 16px 0;
	border-top: 2px solid var(--ink);
	border-bottom: 1px solid var(--ink-12);
	font-family: var(--font-sans);
	font-weight: 600;
	font-size: 11px;
	letter-spacing: 0.16em;
	text-transform: uppercase;
	color: var(--ink-60);
}
.home-writing-thead-right { text-align: right; }

.home-writing-row {
	display: grid;
	grid-template-columns: 150px 200px 1fr 90px 28px;
	gap: 28px;
	padding: 22px 0;
	border-bottom: 1px solid var(--ink-12);
	align-items: baseline;
	position: relative;
	color: var(--ink);
	transition: background .15s ease;
}
.home-writing-row:hover { background: var(--ink-06); }
.home-writing-row.is-latest::before {
	content: "";
	position: absolute;
	left: -16px;
	top: 16px;
	bottom: 16px;
	width: 3px;
	background: var(--red);
}
.home-writing-date {
	font-family: var(--font-sans);
	font-size: 14px;
	color: var(--ink-60);
	font-variant-numeric: tabular-nums;
}
.home-writing-title {
	font-family: var(--font-display);
	font-weight: 500;
	font-size: 19px;
	line-height: 1.3;
	letter-spacing: -0.012em;
	color: var(--ink);
}
.home-writing-read {
	font-family: var(--font-sans);
	font-size: 14px;
	color: var(--ink-42);
	text-align: right;
	font-variant-numeric: tabular-nums;
}
.home-writing-arrow {
	color: var(--ink-12);
	font-size: 16px;
	text-align: right;
	transition: color .15s ease, transform .15s ease;
}
.home-writing-row:hover .home-writing-arrow {
	color: var(--red);
	transform: translateX(3px);
}

.home-writing-foot {
	padding: 28px 0;
	text-align: center;
	font-family: var(--font-sans);
	font-size: 14px;
	color: var(--ink-60);
}
.home-writing-archive {
	color: var(--ink);
	border-bottom: 1px solid var(--ink);
	padding-bottom: 2px;
	margin-left: 4px;
}
.home-writing-archive:hover {
	color: var(--red);
	border-bottom-color: var(--red);
}

/* — Latest essay (4) — RED band, huge display, italic Caslon dek */
.home-latest-red {
	background: var(--red);
	color: var(--paper);
	padding: 104px 64px;
}
.home-latest-grid {
	display: grid;
	grid-template-columns: 1.5fr 1fr;
	gap: 80px;
	align-items: end;
}
.home-latest-eye {
	color: rgba(255, 255, 255, .7);
}
.home-latest-headline {
	font-family: var(--font-display);
	font-weight: 600;
	font-size: 96px;
	line-height: 0.94;
	letter-spacing: -0.045em;
	color: var(--paper);
	margin-top: 26px;
	text-wrap: balance;
}
.home-latest-dek {
	font-family: var(--font-serif);
	font-style: italic;
	font-size: 28px;
	line-height: 1.35;
	color: rgba(255, 255, 255, .88);
	margin-top: 32px;
	max-width: 860px;
	letter-spacing: -0.005em;
}
.home-latest-meta {
	display: flex;
	flex-direction: column;
	gap: 22px;
}
.home-latest-meta-val {
	font-family: var(--font-sans);
	font-size: 17px;
	color: var(--paper);
	margin-top: 8px;
	font-weight: 500;
}
.home-latest-cta {
	margin-top: 12px;
	align-self: flex-start;
}

/* — Book promo (5) — CREAM band, cover + lockup + 3 bullets + buy */
.home-book-cream {
	background: var(--paper-warm);
	color: var(--ink);
	padding: 120px 64px;
}
.home-book-grid {
	display: grid;
	grid-template-columns: 380px 1fr;
	gap: 96px;
	align-items: start;
}
.home-book-cover {
	width: 100%;
	display: block;
	aspect-ratio: 1600 / 2560;
	object-fit: cover;
	box-shadow:
		0 28px 56px -24px rgba(0, 0, 0, .30),
		0 10px 18px -8px rgba(0, 0, 0, .10);
}
.home-book-lockup {
	font-family: var(--font-display);
	font-weight: 700;
	font-size: 82px;
	line-height: 0.95;
	letter-spacing: -0.035em;
	color: var(--ink);
	margin-top: 16px;
	text-transform: lowercase;
}
.home-book-red { color: var(--red); }
.home-book-sub {
	font-family: var(--font-sans);
	font-weight: 500;
	font-size: 22px;
	line-height: 1.35;
	color: var(--ink);
	margin-top: 22px;
	max-width: 640px;
}
.home-book-body {
	font-family: var(--font-sans);
	font-weight: 400;
	font-size: 22px;
	line-height: 1.45;
	color: var(--ink-60);
	margin-top: 22px;
	letter-spacing: -0.005em;
	max-width: 720px;
}
.home-book-bullets {
	margin-top: 36px;
	display: flex;
	flex-direction: column;
	gap: 16px;
	max-width: 720px;
}
.home-book-bullets li {
	display: grid;
	grid-template-columns: 32px 1fr;
	gap: 12px;
	align-items: baseline;
	font-family: var(--font-sans);
	font-size: 17px;
	line-height: 1.45;
	color: var(--ink);
}
.home-book-num {
	color: var(--red);
	font-weight: 700;
	font-size: 13px;
	font-variant-numeric: tabular-nums;
	letter-spacing: 0.05em;
}
.home-book-ctas {
	margin-top: 44px;
	display: flex;
	gap: 14px;
	align-items: center;
	flex-wrap: wrap;
}
.home-book-jump {
	margin-top: 32px;
}
.home-book-jump a {
	font-family: var(--font-sans);
	font-weight: 500;
	font-size: 15px;
	color: var(--red);
	border-bottom: 1px solid var(--red);
	padding-bottom: 3px;
}
.home-book-jump a:hover { color: var(--ink); border-bottom-color: var(--ink); }

/* — Stages (6) — paper table, italic topics, book lockup match */
.home-stages {
	padding: 100px 64px 80px;
	background: var(--paper);
}
.home-stages-head {
	display: flex;
	justify-content: space-between;
	align-items: baseline;
	margin-bottom: 30px;
}
.home-stages-h2 {
	font-family: var(--font-display);
	font-weight: 600;
	font-size: 56px;
	letter-spacing: -0.028em;
	color: var(--ink);
	margin-top: 14px;
}
.home-stages-dek {
	font-family: var(--font-sans);
	font-weight: 400;
	font-size: 20px;
	line-height: 1.4;
	color: var(--ink-60);
	margin-top: 18px;
	max-width: 700px;
	letter-spacing: -0.005em;
}

.home-stages-thead,
.home-stages-row {
	display: grid;
	grid-template-columns: 90px 1.2fr 1.4fr 120px;
	gap: 28px;
	padding: 16px 0;
	align-items: baseline;
}
.home-stages-thead {
	border-top: 2px solid var(--ink);
	border-bottom: 1px solid var(--ink-12);
	font-family: var(--font-sans);
	font-weight: 600;
	font-size: 11px;
	letter-spacing: 0.16em;
	text-transform: uppercase;
	color: var(--ink-60);
}
.home-stages-thead-right { text-align: right; }
.home-stages-row {
	padding: 22px 0;
	border-bottom: 1px solid var(--ink-12);
}
.home-stages-year {
	font-family: var(--font-sans);
	font-size: 15px;
	font-weight: 500;
	color: var(--ink);
	font-variant-numeric: tabular-nums;
}
.home-stages-event {
	font-family: var(--font-display);
	font-weight: 600;
	font-size: 21px;
	letter-spacing: -0.014em;
	color: var(--ink);
}
.home-stage-topic-q {
	font-family: var(--font-sans);
	font-style: italic;
	font-size: 18px;
	font-weight: 400;
	color: var(--ink-60);
	letter-spacing: -0.005em;
}
.home-stages-format { text-align: right; }

.home-stages-foot {
	padding: 28px 0 0;
	display: flex;
	justify-content: flex-end;
	align-items: baseline;
	font-family: var(--font-sans);
	font-size: 14px;
	color: var(--ink-60);
}
.home-stages-all {
	color: var(--ink);
	border-bottom: 1px solid var(--ink);
	padding-bottom: 2px;
	font-weight: 500;
}
.home-stages-all:hover { color: var(--red); border-bottom-color: var(--red); }

/* — About (7) — BLUE band, portrait placeholder, bio, 5 stats, links */
.home-about-blue {
	background: var(--blue);
	color: var(--paper);
	padding: 104px 64px;
}
.home-about-grid {
	display: grid;
	grid-template-columns: 300px 1fr;
	gap: 80px;
	align-items: start;
}
.home-about-portrait {
	aspect-ratio: 4 / 5;
	background: linear-gradient(135deg, #16284f 0%, #0b1c3a 100%);
	position: relative;
	overflow: hidden;
	padding: 16px;
}
.home-about-portrait::after {
	content: "";
	position: absolute;
	inset: 0;
	background:
		radial-gradient(ellipse 40% 28% at 50% 38%, rgba(230, 54, 31, .25) 0%, transparent 60%),
		radial-gradient(ellipse 55% 40% at 50% 80%, rgba(255, 255, 255, .06) 0%, transparent 70%);
}
.home-about-portrait-label {
	position: absolute;
	top: 16px;
	left: 16px;
	font-family: var(--font-sans);
	font-size: 11px;
	font-weight: 600;
	letter-spacing: 0.16em;
	text-transform: uppercase;
	color: rgba(255, 255, 255, .45);
	z-index: 1;
}

/* When a real portrait image is loaded, suppress the gradient + label.
   Chained class selectors raise specificity above the base portrait rules so
   the override wins regardless of where it sits in the stylesheet. */
.home-about-portrait.home-about-portrait--real,
.about-portrait.about-portrait--real,
.book-author-portrait.book-author-portrait--real {
	background: transparent;
	padding: 0;
}
.home-about-portrait.home-about-portrait--real::after,
.about-portrait.about-portrait--real::after,
.book-author-portrait.book-author-portrait--real::after { content: none; }
.home-about-portrait.home-about-portrait--real img,
.about-portrait.about-portrait--real img,
.book-author-portrait.book-author-portrait--real img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
}

.home-about-name {
	font-family: var(--font-display);
	font-weight: 600;
	font-size: 64px;
	line-height: 1.0;
	letter-spacing: -0.028em;
	color: var(--paper);
	margin-top: 16px;
}
.home-about-role {
	font-family: var(--font-sans);
	font-weight: 400;
	font-size: 24px;
	line-height: 1.3;
	color: rgba(255, 255, 255, .7);
	margin-top: 12px;
	letter-spacing: -0.005em;
}
.home-about-bio {
	font-family: var(--font-sans);
	font-size: 18px;
	line-height: 1.6;
	color: rgba(255, 255, 255, .88);
	margin-top: 30px;
	max-width: 780px;
}

.home-about-stats {
	margin-top: 40px;
	display: grid;
	grid-template-columns: repeat(5, auto);
	gap: 52px;
	justify-content: start;
	border-top: 1px solid rgba(255, 255, 255, .18);
	border-bottom: 1px solid rgba(255, 255, 255, .18);
	padding: 22px 0;
	max-width: 780px;
}
.home-about-stat-n {
	font-family: var(--font-display);
	font-weight: 600;
	font-size: 32px;
	color: var(--paper);
	letter-spacing: -0.02em;
	line-height: 1;
	font-variant-numeric: tabular-nums;
}
.home-about-stat-l {
	font-family: var(--font-sans);
	font-size: 13px;
	color: rgba(255, 255, 255, .6);
	margin-top: 6px;
}

.home-about-links {
	margin-top: 30px;
	display: flex;
	gap: 28px;
	flex-wrap: wrap;
}
.home-about-links a {
	font-family: var(--font-sans);
	font-size: 15px;
	font-weight: 500;
	color: var(--paper);
	border-bottom: 1px solid rgba(255, 255, 255, .4);
	padding-bottom: 3px;
	transition: border-color .15s ease, color .15s ease;
}
.home-about-links a:hover {
	color: var(--red);
	border-bottom-color: var(--red);
}

/* — Subscribe (8) — paper, quiet, red button */
.home-subscribe {
	padding: 80px 64px;
	background: var(--paper);
	border-bottom: 1px solid var(--ink-12);
}
.home-subscribe-grid {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 60px;
	align-items: center;
}
.home-subscribe-headline {
	font-family: var(--font-sans);
	font-weight: 500;
	font-size: 30px;
	line-height: 1.3;
	color: var(--ink);
	letter-spacing: -0.01em;
}
.home-subscribe-blurb {
	font-family: var(--font-sans);
	font-size: 14px;
	color: var(--ink-60);
	margin-top: 10px;
}
.home-subscribe-form {
	display: flex;
	gap: 12px;
	align-items: stretch;
}
.home-subscribe-form input {
	flex: 1;
	border: 0;
	border-bottom: 1px solid var(--ink);
	background: transparent;
	padding: 12px 0;
	font-family: var(--font-sans);
	font-size: 17px;
	outline: none;
	color: var(--ink);
}
.home-subscribe-form input::placeholder {
	color: var(--ink-42);
}
.home-subscribe-form button {
	border: 0;
	background: var(--red);
	color: var(--paper);
	padding: 14px 26px;
	font-family: var(--font-sans);
	font-weight: 600;
	font-size: 14px;
	letter-spacing: 0.02em;
	transition: background .15s ease, color .15s ease;
}
.home-subscribe-form button:hover {
	background: var(--ink);
}

/* — Responsive (collapse to single column at <=900) — */
@media (max-width: 900px) {
	.home-hero { padding: 64px 24px 56px; }
	.home-hero-headline { font-size: 44px; }
	.home-hero-dek { font-size: 18px; }

	.home-writing,
	.home-stages,
	.home-subscribe { padding-left: 24px; padding-right: 24px; }
	.home-writing-head {
		flex-direction: column;
		align-items: flex-start;
		gap: 10px;
	}
	.home-writing-h2 { font-size: 36px; }
	.home-writing-thead,
	.home-writing-row { grid-template-columns: 1fr; gap: 8px; }
	.home-writing-thead { display: none; }
	.home-writing-arrow { display: none; }
	.home-writing-read { text-align: left; }

	.home-latest-red { padding: 56px 24px; }
	.home-latest-grid { grid-template-columns: 1fr; gap: 40px; }
	.home-latest-headline { font-size: 44px; }
	.home-latest-dek { font-size: 20px; }

	.home-book-cream { padding: 56px 24px; }
	.home-book-grid { grid-template-columns: 1fr; gap: 40px; }
	.home-book-cover { max-width: 280px; }
	.home-book-lockup { font-size: clamp(40px, 10vw, 64px); }

	.home-stages-thead,
	.home-stages-row { grid-template-columns: 60px 1fr; row-gap: 4px; }
	.home-stages-topic { grid-column: 1 / -1; }
	.home-stages-format { grid-column: 1 / -1; text-align: left; }
	.home-stages-foot { flex-direction: column; gap: 16px; align-items: flex-start; }

	.home-about-blue { padding: 56px 24px; }
	.home-about-grid { grid-template-columns: 1fr; gap: 40px; }
	.home-about-portrait { max-width: 280px; }
	.home-about-name { font-size: clamp(40px, 10vw, 56px); }
	.home-about-stats { grid-template-columns: repeat(3, auto); gap: 32px; }

	.home-subscribe-grid { grid-template-columns: 1fr; gap: 24px; }
}

/* ── Helpers used across templates ────────────────────────── */
.iamyb-ink-60   { color: var(--ink-60); }
.iamyb-red      { color: var(--red); }

/* [red]…[/red] shortcode output */
.iamyb-red-accent { color: var(--red); }

/* Inline `red` modifier (used inside book-lockup spans and similar) */
.red { color: var(--red); }
.ink { color: var(--ink); }

/* ── 4 · BookTopBand (paper-warm sub-site chrome) ───────────── */
/* Translated 1:1 from /v6/page-book-v2.jsx BookTopBand (lines 29-60). */

.book-topband {
	background: var(--paper-warm);
	color: var(--ink);
	padding:
		max(26px, env(safe-area-inset-top))
		max(80px, env(safe-area-inset-right))
		26px
		max(80px, env(safe-area-inset-left));
	display: flex;
	justify-content: space-between;
	align-items: center;
	border-bottom: 1px solid var(--ink-12);
}
.book-topband-mark .book-lockup {
	font-size: 22px;
	letter-spacing: -0.025em;
	text-transform: lowercase;
}
.book-topband-nav {
	display: flex;
	gap: 32px;
	font-family: var(--font-sans);
	font-weight: 500;
	font-size: 15px;
}
.book-topband-nav a {
	color: var(--ink);
	transition: color .15s ease;
}
.book-topband-nav a:hover { color: var(--red); }

/* ── 7 · Single Essay (EssayTemplateV2) ────────────────────── */
/* Translated 1:1 from /v6/page-essay-v2.jsx. */

.essay-article { background: var(--paper); }

.essay-head {
	padding: 80px 64px 60px;
	max-width: 1180px;
	margin: 0 auto;
}
.essay-head-meta {
	display: flex;
	gap: 18px;
	align-items: center;
}
.essay-head-sep { color: var(--ink-12); }

.essay-headline {
	font-family: var(--font-display);
	font-weight: 600;
	font-size: 96px;
	line-height: 0.95;
	letter-spacing: -0.038em;
	margin-top: 28px;
	color: var(--ink);
	text-wrap: balance;
	max-width: 1080px;
}

.essay-dek {
	font-family: var(--font-serif);
	font-style: italic;
	font-size: 28px;
	line-height: 1.35;
	letter-spacing: -0.005em;
	color: var(--ink-60);
	margin-top: 28px;
	max-width: 880px;
}

.essay-head-strip {
	margin-top: 44px;
	padding-top: 22px;
	border-top: 1px solid var(--ink-12);
	display: flex;
	justify-content: space-between;
	align-items: center;
}
.essay-head-byline {
	display: flex;
	gap: 36px;
	align-items: baseline;
}
.essay-head-author {
	font-family: var(--font-sans);
	font-size: 14px;
	font-weight: 500;
	color: var(--ink);
}
.essay-head-actions {
	display: flex;
	gap: 24px;
	align-items: center;
}
.essay-head-link {
	font-family: var(--font-sans);
	font-size: 14px;
	font-weight: 500;
	color: var(--ink);
	background: transparent;
	border: 0;
	border-bottom: 1px solid var(--ink-42);
	border-radius: 0;
	padding: 0 0 2px;
	margin: 0;
	cursor: pointer;
	line-height: inherit;
	appearance: none;
	-webkit-appearance: none;
	transition: border-color .15s ease, color .15s ease;
}
.essay-head-link:hover { color: var(--red); border-bottom-color: var(--red); }
.essay-head-link:focus-visible { outline: 2px solid var(--red); outline-offset: 4px; }
.essay-head-link[data-copied="true"] { color: var(--red); border-bottom-color: var(--red); }

.essay-body-wrap {
	padding: 0 64px 100px;
	max-width: 1180px;
	margin: 0 auto;
	display: grid;
	grid-template-columns: 1fr 220px;
	gap: 64px;
}

.essay-body {
	font-family: var(--font-sans);
	font-weight: 400;
	font-size: 19px;
	line-height: 1.65;
	color: var(--ink);
}
.essay-body p { margin: 0 0 22px; }
.essay-body p:last-child { margin-bottom: 0; }
.essay-body h2 {
	font-family: var(--font-display);
	font-weight: 600;
	font-size: 32px;
	letter-spacing: -0.025em;
	margin: 56px 0 20px;
	line-height: 1.1;
	color: var(--ink);
}
.essay-body h3 {
	font-family: var(--font-display);
	font-weight: 500;
	font-size: 24px;
	letter-spacing: -0.02em;
	margin: 44px 0 18px;
	line-height: 1.15;
	color: var(--ink);
}
.essay-body blockquote,
.essay-body .wp-block-quote {
	margin: 44px 0;
	padding-left: 28px;
	border-left: 3px solid var(--red);
	font-family: var(--font-serif);
	font-style: italic;
	font-size: 30px;
	line-height: 1.3;
	color: var(--ink);
	letter-spacing: -0.008em;
}
.essay-body blockquote p,
.essay-body .wp-block-quote p { margin: 0; }
.essay-body strong { font-weight: 600; }
.essay-body em { font-style: italic; }

.essay-margin {
	position: sticky;
	top: 40px;
	align-self: start;
}
.essay-margin-bar {
	height: 3px;
	background: var(--ink-12);
	margin-top: 10px;
	position: relative;
}
.essay-margin-bar-fill {
	height: 100%;
	background: var(--red);
}
.essay-margin-bar-label {
	font-family: var(--font-sans);
	font-size: 13px;
	color: var(--ink-60);
	margin-top: 6px;
	font-variant-numeric: tabular-nums;
}
.essay-margin-block { margin-top: 40px; }
.essay-margin-footnote {
	margin-top: 10px;
	font-family: var(--font-serif);
	font-style: italic;
	font-size: 13px;
	line-height: 1.55;
	color: var(--ink-60);
}

.essay-readnext {
	padding: 80px 64px;
	background: var(--blue);
	color: var(--paper);
}
.essay-readnext-grid {
	max-width: 1180px;
	margin: 0 auto;
	display: grid;
	grid-template-columns: 1fr 1.2fr;
	gap: 80px;
}
.essay-readnext-eye {
	color: rgba(255, 255, 255, .6);
}
.essay-readnext-headline {
	font-family: var(--font-display);
	font-weight: 600;
	font-size: 44px;
	line-height: 1.05;
	letter-spacing: -0.025em;
	margin-top: 14px;
	color: var(--paper);
	text-wrap: balance;
}
.essay-readnext-headline a { color: inherit; transition: color .15s ease; }
.essay-readnext-headline a:hover { color: var(--red); }
.essay-readnext-dek {
	font-family: var(--font-serif);
	font-style: italic;
	font-size: 19px;
	line-height: 1.4;
	color: rgba(255, 255, 255, .7);
	margin-top: 14px;
	max-width: 460px;
}
.essay-readnext-meta {
	font-family: var(--font-sans);
	font-size: 13px;
	color: rgba(255, 255, 255, .55);
	margin-top: 18px;
}

/* Palatino subscribe paragraph — the single warm-serif moment per DESIGN-SYSTEM.md §3 */
.essay-readnext-palatino {
	font-family: "Palatino LT Std", "Book Antiqua", Palatino, "Palatino Linotype", "URW Palladio L", serif;
	font-size: 24px;
	line-height: 1.4;
	color: var(--paper);
	margin-top: 14px;
	max-width: 540px;
}
.essay-readnext-form {
	display: flex;
	gap: 10px;
	margin-top: 24px;
	max-width: 520px;
}
.essay-readnext-form input {
	flex: 1;
	background: transparent;
	border: 0;
	border-bottom: 1px solid rgba(255, 255, 255, .4);
	color: var(--paper);
	padding: 12px 0;
	font-family: var(--font-sans);
	font-size: 16px;
	outline: none;
}
.essay-readnext-form input::placeholder { color: rgba(255, 255, 255, .5); }
.essay-readnext-form button {
	border: 0;
	background: var(--red);
	color: var(--paper);
	padding: 13px 22px;
	font-family: var(--font-sans);
	font-weight: 600;
	font-size: 14px;
	letter-spacing: 0.02em;
}
.essay-readnext-form button:hover { background: var(--paper); color: var(--red); }

/* ── 8 · About page (AboutPageV2) ──────────────────────────── */
/* Translated 1:1 from /v6/page-about-v2.jsx. */

.about-hero {
	padding: 100px 64px 88px;
	display: grid;
	grid-template-columns: 1.3fr 1fr;
	gap: 80px;
	align-items: start;
	background: var(--paper);
}
.about-headline {
	font-family: var(--font-display);
	font-weight: 600;
	font-size: 96px;
	line-height: 0.96;
	letter-spacing: -0.038em;
	margin-top: 22px;
	color: var(--ink);
	text-wrap: balance;
}
.about-lede {
	font-family: var(--font-sans);
	font-weight: 400;
	font-size: 26px;
	line-height: 1.4;
	letter-spacing: -0.005em;
	color: var(--ink-60);
	margin-top: 32px;
	max-width: 760px;
}
.about-bio {
	font-family: var(--font-sans);
	font-size: 18px;
	line-height: 1.65;
	color: var(--ink);
	margin-top: 36px;
	max-width: 760px;
}
.about-bio p + p { margin-top: 18px; }

.about-portrait {
	width: 100%;
	aspect-ratio: 4 / 5;
	background: linear-gradient(135deg, var(--ink) 0%, #2c323d 100%);
	position: relative;
	overflow: hidden;
	padding: 14px;
}
.about-portrait::after {
	content: "";
	position: absolute;
	inset: 0;
	background:
		radial-gradient(ellipse 38% 30% at 50% 38%, rgba(230, 54, 31, .18) 0%, transparent 60%),
		radial-gradient(ellipse 55% 40% at 50% 80%, rgba(255, 255, 255, .06) 0%, transparent 70%);
}
.about-portrait-label {
	position: absolute;
	top: 14px;
	left: 14px;
	font-family: var(--font-sans);
	font-size: 10px;
	font-weight: 600;
	letter-spacing: 0.16em;
	text-transform: uppercase;
	color: rgba(255, 255, 255, .45);
	z-index: 1;
}

.about-coords {
	padding: 32px 64px;
	border-top: 1px solid var(--ink-12);
	border-bottom: 1px solid var(--ink-12);
	background: var(--paper-warm);
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: 32px;
}
.about-coord-val {
	font-family: var(--font-display);
	font-weight: 500;
	font-size: 17px;
	line-height: 1.3;
	margin-top: 10px;
	letter-spacing: -0.005em;
	color: var(--ink);
}

.about-stages {
	padding: 80px 64px;
	background: var(--paper);
}
.about-stages-head {
	display: flex;
	justify-content: space-between;
	align-items: baseline;
	margin-bottom: 22px;
}
.about-stages-h2 {
	font-family: var(--font-display);
	font-weight: 600;
	font-size: 56px;
	letter-spacing: -0.028em;
	color: var(--ink);
}
.about-stages-thead,
.about-stages-row {
	display: grid;
	grid-template-columns: 80px 1.2fr 1.4fr 120px;
	gap: 28px;
	align-items: baseline;
}
.about-stages-thead {
	padding: 16px 0;
	border-top: 2px solid var(--ink);
	border-bottom: 1px solid var(--ink-12);
	font-family: var(--font-sans);
	font-weight: 600;
	font-size: 11px;
	letter-spacing: 0.16em;
	text-transform: uppercase;
	color: var(--ink-60);
}
.about-stages-thead-right { text-align: right; }
.about-stages-row {
	padding: 22px 0;
	border-bottom: 1px solid var(--ink-12);
}
.about-stages-year {
	font-family: var(--font-sans);
	font-size: 16px;
	color: var(--ink);
	font-weight: 500;
	font-variant-numeric: tabular-nums;
}
.about-stages-event {
	font-family: var(--font-display);
	font-weight: 600;
	font-size: 22px;
	letter-spacing: -0.014em;
	color: var(--ink);
}
.about-stages-format {
	text-align: right;
}

.about-organizers {
	background: var(--blue);
	color: var(--paper);
	padding: 100px 64px;
}
.about-organizers-grid {
	display: grid;
	grid-template-columns: 1.4fr 1fr;
	gap: 80px;
	align-items: end;
}
.about-organizers-eye { color: rgba(255, 255, 255, .7); }
.about-organizers-h2 {
	font-family: var(--font-display);
	font-weight: 600;
	font-size: 80px;
	line-height: 0.98;
	letter-spacing: -0.035em;
	color: var(--paper);
	margin-top: 22px;
	text-wrap: balance;
}
.about-organizers-dek {
	font-family: var(--font-serif);
	font-style: italic;
	font-size: 24px;
	line-height: 1.4;
	color: rgba(255, 255, 255, .85);
	margin-top: 26px;
	max-width: 640px;
	letter-spacing: -0.005em;
}
.about-organizers-cta {
	display: flex;
	flex-direction: column;
	gap: 18px;
	align-items: flex-start;
}
.about-organizers-postal {
	margin-top: 8px;
	font-family: var(--font-sans);
	font-size: 13px;
	color: rgba(255, 255, 255, .55);
	line-height: 1.6;
}

/* V2Subscribe quiet variant — used on About page.
   Per /v6/v2-atoms.jsx V2Subscribe (lines 84-88): Caslon italic 32px.
   Doc deprecates italic Caslon in §3.2 but code keeps it — we honour the
   code (do-not-litigate per CLAUDE.md §5). */
.v2-subscribe-quiet .v2-subscribe-quiet-headline {
	font-family: var(--font-serif);
	font-style: italic;
	font-weight: 400;
	font-size: 32px;
	line-height: 1.25;
	color: var(--ink);
	letter-spacing: -0.005em;
}

/* Essay pull-quote at the top of the body (essay_pull_quote meta-field) */
.essay-pull-lede {
	margin-top: 0;
	margin-bottom: clamp(32px, 4vw, 56px);
}

/* Generic page (page.php) & generic post (single.php) shared styling */
.page-article {
	max-width: 880px;
	margin: 0 auto;
	padding: 80px 64px 120px;
}
.page-head {
	margin-bottom: clamp(40px, 5vw, 64px);
	padding-bottom: 28px;
	border-bottom: 1px solid var(--ink-12);
}
.page-headline {
	font-family: var(--font-display);
	font-weight: 600;
	font-size: clamp(40px, 5.5vw, 72px);
	line-height: 1.02;
	letter-spacing: -0.032em;
	color: var(--ink);
	margin-top: 18px;
	text-wrap: balance;
}
.page-body {
	font-family: var(--font-sans);
	font-size: 18px;
	line-height: 1.65;
	color: var(--ink);
}
.page-body h2 {
	font-family: var(--font-display);
	font-weight: 600;
	font-size: 32px;
	letter-spacing: -0.022em;
	margin: 48px 0 16px;
	color: var(--ink);
}
.page-body h3 {
	font-family: var(--font-display);
	font-weight: 600;
	font-size: 22px;
	letter-spacing: -0.018em;
	margin: 32px 0 12px;
	color: var(--ink);
}
.page-body p { margin: 0 0 18px; }
.page-body ul, .page-body ol { margin: 0 0 24px 22px; }
.page-body li { margin-bottom: 8px; }

@media (max-width: 700px) {
	.page-article { padding: 56px 24px 80px; }
}

/* Archive hero (used by archive-essay.php and archive-stage.php) */
.archive-hero {
	padding: 80px 64px 56px;
}
.archive-headline {
	font-family: var(--font-display);
	font-weight: 600;
	font-size: clamp(48px, 7vw, 96px);
	line-height: 0.96;
	letter-spacing: -0.038em;
	color: var(--ink);
	margin-top: 22px;
	text-wrap: balance;
}
.archive-dek {
	font-family: var(--font-sans);
	font-weight: 400;
	font-size: clamp(18px, 1.5vw, 24px);
	line-height: 1.4;
	color: var(--ink-60);
	margin-top: 24px;
	max-width: 760px;
	letter-spacing: -0.005em;
}
.archive-pagination {
	padding-top: 32px;
	margin-top: 32px;
	border-top: 1px solid var(--ink-12);
	display: flex;
	justify-content: space-between;
	font-family: var(--font-sans);
	font-weight: 600;
	font-size: 14px;
}
.archive-empty {
	padding: 48px 0;
	text-align: center;
	font-family: var(--font-serif);
	font-style: italic;
	font-size: 20px;
	color: var(--ink-60);
}

@media (max-width: 700px) {
	.archive-hero { padding: 56px 24px 40px; }
}

/* ── 9 · Book sub-site (BookPageV2) ────────────────────────── */
/* Translated 1:1 from /v6/page-book-v2.jsx. */

.iamyb-book {
	background: var(--paper-warm);
	color: var(--ink);
}

/* Section eyebrow with running number */
.book-sec-eye {
	display: flex;
	gap: 14px;
	align-items: baseline;
	font-family: var(--font-sans);
	font-weight: 600;
	font-size: 11px;
	letter-spacing: 0.18em;
	text-transform: uppercase;
	color: var(--red);
	margin-bottom: 14px;
}
.book-sec-num {
	font-variant-numeric: tabular-nums;
}
.book-sec-rule {
	width: 14px;
	height: 1px;
	background: var(--red);
	align-self: center;
}
.book-sec-h2 {
	font-family: var(--font-display);
	font-weight: 600;
	font-size: 72px;
	line-height: 0.98;
	letter-spacing: -0.035em;
	color: var(--ink);
	max-width: 900px;
}

/* Hero (§top) */
.book-hero {
	background: var(--paper-warm);
	padding: 100px 80px 110px;
	display: grid;
	grid-template-columns: 440px 1fr;
	gap: 96px;
	align-items: start;
}
.book-hero-cover {
	width: 100%;
	display: block;
	aspect-ratio: 1600 / 2560;
	object-fit: cover;
	box-shadow:
		0 30px 60px -24px rgba(0, 0, 0, .30),
		0 12px 22px -10px rgba(0, 0, 0, .12);
}
.book-hero-eye {
	font-size: 12px;
}
.book-hero-lockup {
	font-family: "Inter", -apple-system, BlinkMacSystemFont, sans-serif;
	font-weight: 700;
	font-size: 124px;
	line-height: 0.94;
	letter-spacing: -0.045em;
	color: var(--ink);
	margin-top: 26px;
	text-transform: lowercase;
}
.book-hero-lock-ink {
	display: block;
	font-size: 88px;
	font-weight: 800;
	letter-spacing: -0.04em;
}
.book-hero-lock-red {
	display: block;
	color: var(--red);
	font-weight: 850;
	margin-top: 6px;
}
.book-hero-sub {
	font-family: var(--font-sans);
	font-weight: 400;
	font-size: 30px;
	line-height: 1.3;
	color: var(--ink-60);
	margin-top: 36px;
	max-width: 700px;
}
.book-hero-byline {
	font-family: var(--font-sans);
	font-weight: 600;
	font-size: 11px;
	letter-spacing: 0.18em;
	text-transform: uppercase;
	color: var(--ink-60);
	margin-top: 36px;
}
.book-hero-lead {
	font-family: var(--font-sans);
	font-size: 19px;
	line-height: 1.55;
	color: var(--ink);
	margin-top: 28px;
	max-width: 720px;
}
.book-hero-lead strong { font-weight: 700; }
.book-hero-ctas {
	margin-top: 40px;
	display: flex;
	gap: 14px;
	align-items: center;
	flex-wrap: wrap;
}

/* Buttons specific to /book — primary ink on paper-warm */
.book-btn-ink {
	background: var(--ink);
	color: var(--paper);
	padding: 16px 28px;
}
.book-btn-ink:hover {
	background: var(--red);
	color: var(--paper);
}

/* §01 Indictment */
.book-indictment {
	background: var(--paper-warm);
	color: var(--ink);
	padding: 100px 80px 120px;
	border-top: 1px solid var(--ink-12);
}
.book-indictment-grid {
	display: grid;
	grid-template-columns: 260px 1fr;
	gap: 80px;
	margin-top: 56px;
}
.book-indictment-spec {
	margin-top: 24px;
	font-family: var(--font-sans);
	font-size: 13px;
	line-height: 1.7;
	color: var(--ink-60);
}
.book-indictment-body {
	font-family: var(--font-sans);
	font-size: 19px;
	line-height: 1.65;
	color: var(--ink);
	max-width: 740px;
}
.book-indictment-body p + p { margin-top: 18px; }
.book-indictment-pull {
	margin: 36px 0;
	padding-left: 24px;
	border-left: 3px solid var(--red);
	font-family: var(--font-sans);
	font-weight: 500;
	font-size: 26px;
	line-height: 1.35;
	color: var(--ink);
	letter-spacing: -0.01em;
}
.book-indictment-nots {
	margin-top: 36px;
	display: flex;
	flex-direction: column;
	gap: 8px;
	font-family: var(--font-sans);
	font-weight: 600;
	font-size: 11px;
	letter-spacing: 0.18em;
	text-transform: uppercase;
	color: var(--ink-60);
	list-style: none;
}

/* §02 Convictions */
.book-convictions {
	background: var(--paper-warm);
	color: var(--ink);
	padding: 100px 80px 120px;
	border-top: 1px solid var(--ink-12);
}
.book-convictions-head {
	display: grid;
	grid-template-columns: 1fr;
	gap: 24px;
	margin-bottom: 56px;
}
.book-convictions-head .book-sec-h2 {
	font-size: 72px;
	max-width: 600px;
}
.book-convictions-dek {
	font-family: var(--font-sans);
	font-size: 17px;
	line-height: 1.55;
	color: var(--ink-80);
	max-width: 720px;
}

.book-conv-row {
	display: grid;
	grid-template-columns: 60px 1.2fr 1fr;
	gap: 40px;
	padding: 32px 0;
	border-bottom: 1px solid var(--ink-12);
	align-items: baseline;
}
.book-conv-row.is-last { border-bottom: 0; }
.book-conv-num {
	font-family: var(--font-sans);
	font-weight: 600;
	font-size: 11px;
	letter-spacing: 0.18em;
	color: var(--ink-60);
	font-variant-numeric: tabular-nums;
}
.book-conv-claim {
	font-family: var(--font-sans);
	font-weight: 700;
	font-size: 22px;
	line-height: 1.35;
	color: var(--ink);
	letter-spacing: -0.01em;
}
.book-conv-body {
	font-family: var(--font-sans);
	font-size: 16px;
	line-height: 1.55;
	color: var(--ink-60);
}

/* §03 Lines that travel */
.book-lines {
	background: var(--paper-warm);
	color: var(--ink);
	padding: 100px 80px 120px;
	border-top: 1px solid var(--ink-12);
}
.book-lines-head {
	display: grid;
	grid-template-columns: 1fr;
	gap: 24px;
	margin-bottom: 56px;
}
.book-lines-dek {
	font-family: var(--font-sans);
	font-size: 17px;
	line-height: 1.55;
	color: var(--ink-80);
	max-width: 720px;
}
.book-lines-grid {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: 24px;
}
.book-lines-card {
	background: var(--paper);
	border: 1px solid var(--ink-12);
	padding: 28px 26px 32px;
	display: flex;
	flex-direction: column;
	gap: 18px;
	min-height: 220px;
}
.book-lines-num { font-size: 10px; color: var(--ink-60); }
.book-lines-q {
	font-family: var(--font-sans);
	font-weight: 500;
	font-size: 22px;
	line-height: 1.35;
	letter-spacing: -0.01em;
	color: var(--ink);
}

/* §04 Audience */
.book-audience {
	background: var(--paper-warm);
	color: var(--ink);
	padding: 100px 80px 120px;
	border-top: 1px solid var(--ink-12);
}
.book-audience-h2 {
	font-size: 64px;
	letter-spacing: -0.032em;
	margin-bottom: 56px;
}
.book-audience-grid {
	display: grid;
	grid-template-columns: 1.3fr 1fr;
	gap: 80px;
	align-items: start;
}
.book-audience-roles {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
}
.book-audience-role {
	font-family: var(--font-sans);
	font-weight: 500;
	font-size: 13px;
	padding: 10px 16px;
	border: 1px solid var(--ink);
	color: var(--ink);
	transition: background .15s ease, color .15s ease;
}
.book-audience-role:hover {
	background: var(--ink);
	color: var(--paper-warm);
}
.book-audience-body {
	margin-top: 36px;
	font-family: var(--font-sans);
	font-size: 17px;
	line-height: 1.55;
	color: var(--ink);
	max-width: 620px;
}
.book-audience-scope {
	margin-top: 18px;
	font-family: var(--font-sans);
	font-size: 16px;
	line-height: 1.6;
	color: var(--ink-60);
	max-width: 480px;
}

/* §05 About author */
.book-author {
	background: var(--paper-warm);
	color: var(--ink);
	padding: 100px 80px 120px;
	border-top: 1px solid var(--ink-12);
}
.book-author .book-sec-h2 {
	font-size: 64px;
	letter-spacing: -0.032em;
	margin-bottom: 56px;
}
.book-author-grid {
	display: grid;
	grid-template-columns: 280px 1fr;
	gap: 80px;
	align-items: start;
}
.book-author-portrait {
	width: 100%;
	aspect-ratio: 4 / 5;
	background: linear-gradient(135deg, var(--ink) 0%, #2c323d 100%);
	position: relative;
	overflow: hidden;
	padding: 14px;
}
.book-author-portrait::after {
	content: "";
	position: absolute;
	inset: 0;
	background:
		radial-gradient(ellipse 38% 30% at 50% 38%, rgba(230, 54, 31, .18) 0%, transparent 60%),
		radial-gradient(ellipse 55% 40% at 50% 80%, rgba(255, 255, 255, .06) 0%, transparent 70%);
}
.book-author-portrait-label {
	position: absolute;
	top: 14px;
	left: 14px;
	font-family: var(--font-sans);
	font-size: 10px;
	font-weight: 600;
	letter-spacing: 0.16em;
	text-transform: uppercase;
	color: rgba(255, 255, 255, .45);
	z-index: 1;
}
.book-author-sub {
	margin-top: 14px;
	font-family: var(--font-sans);
	font-size: 14px;
	color: var(--ink-60);
}
.book-author-bio {
	margin-top: 32px;
	font-family: var(--font-sans);
	font-size: 17px;
	line-height: 1.6;
	color: var(--ink);
	max-width: 680px;
}
.book-author-bio strong { font-weight: 600; }
.book-author-bio p + p { margin-top: 18px; }
.book-author-touch {
	margin-top: 36px;
	display: flex;
	gap: 22px;
	flex-wrap: wrap;
	align-items: center;
}
.book-author-link {
	font-family: var(--font-sans);
	font-size: 14px;
	font-weight: 500;
	color: var(--ink);
	border-bottom: 1px solid var(--ink);
	padding-bottom: 2px;
}
.book-author-touch .iamyb-social {
	margin-left: 4px;
	display: inline-flex;
	gap: 10px;
	align-items: center;
}
.book-author-touch .iamyb-social a { width: 24px; height: 24px; }

/* §06 Stores */
.book-stores {
	background: var(--paper-warm);
	color: var(--ink);
	padding: 100px 80px 120px;
	border-top: 1px solid var(--ink-12);
}
.book-stores-head {
	display: grid;
	grid-template-columns: 1fr;
	gap: 24px;
	margin-bottom: 48px;
}
.book-stores-head .book-sec-h2 {
	font-size: 64px;
	letter-spacing: -0.032em;
	max-width: 600px;
}
.book-stores-dek {
	font-family: var(--font-sans);
	font-size: 17px;
	line-height: 1.55;
	color: var(--ink-80);
	max-width: 720px;
}
.book-stores-grid {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 24px;
}
.book-stores-card {
	background: var(--paper);
	border: 1px solid var(--ink-12);
	padding: 28px 30px 30px;
}
.book-stores-name {
	font-family: var(--font-display);
	font-weight: 600;
	font-size: 24px;
	letter-spacing: -0.018em;
	color: var(--ink);
}
.book-stores-format {
	margin-top: 6px;
	font-family: var(--font-sans);
	font-size: 13px;
	color: var(--ink-60);
}
.book-stores-rows {
	margin-top: 22px;
	display: grid;
	grid-template-columns: auto 1fr;
	gap: 8px 28px;
	font-family: var(--font-sans);
	font-size: 12px;
}
.book-stores-rows dt {
	font-weight: 600;
	font-size: 10px;
	letter-spacing: 0.18em;
	text-transform: uppercase;
	color: var(--ink-60);
}
.book-stores-rows dd {
	color: var(--ink);
	font-variant-numeric: tabular-nums;
	margin: 0;
}
.book-stores-btns {
	margin-top: 26px;
	display: flex;
	gap: 10px;
	flex-wrap: wrap;
}
.book-stores-btn {
	background: transparent;
	border: 1px solid var(--ink);
	color: var(--ink);
	padding: 11px 18px;
	font-family: var(--font-sans);
	font-weight: 500;
	font-size: 13px;
	transition: background .15s ease, color .15s ease;
}
.book-stores-btn.is-primary {
	background: var(--ink);
	border-color: var(--ink);
	color: var(--paper);
}
.book-stores-btn:hover { background: var(--red); border-color: var(--red); color: var(--paper); }

/* Closer */
.book-closer {
	background: var(--paper-warm);
	color: var(--ink);
	padding: 120px 80px 0;
	border-top: 1px solid var(--ink-12);
}
.book-closer-quote {
	font-family: var(--font-display);
	font-weight: 700;
	font-size: 64px;
	line-height: 1.1;
	letter-spacing: -0.025em;
	color: var(--ink);
	margin-top: 22px;
	max-width: 1080px;
	text-wrap: balance;
}
.book-closer-ctas {
	margin-top: 50px;
	display: flex;
	gap: 14px;
	flex-wrap: wrap;
}
.book-closer-foot {
	margin-top: 110px;
	padding: 28px 0 30px;
	border-top: 1px solid var(--ink-12);
	display: flex;
	justify-content: space-between;
	align-items: baseline;
}
.book-closer-mark .book-lockup {
	font-size: 17px;
	letter-spacing: -0.022em;
	text-transform: lowercase;
}
.book-closer-top {
	color: var(--ink-60);
	transition: color .15s ease;
}
.book-closer-top:hover { color: var(--ink); }

/* ── 10 · Press Kit · 404 · Search · Editor patterns ──────── */

/* Press Kit */
.press-hero {
	padding: 80px 64px 56px;
	max-width: 1180px;
	margin: 0 auto;
}
.press-headline {
	font-family: var(--font-display);
	font-weight: 600;
	font-size: clamp(40px, 6vw, 80px);
	line-height: 0.98;
	letter-spacing: -0.035em;
	color: var(--ink);
	margin-top: 22px;
	text-wrap: balance;
}
.press-lede {
	font-family: var(--font-sans);
	font-size: clamp(17px, 1.5vw, 21px);
	line-height: 1.5;
	color: var(--ink-60);
	margin-top: 24px;
	max-width: 720px;
}
.press-lede a {
	color: var(--blue);
	border-bottom: 1px solid var(--blue);
	padding-bottom: 1px;
	transition: color .15s ease, border-color .15s ease;
}
.press-lede a:hover { color: var(--red); border-bottom-color: var(--red); }

/* Hero CTA — single primary button to fetch the full media-kit ZIP. */
.press-mediakit-cta {
	margin-top: 32px;
}

.press-bios,
.press-downloads,
.press-inquiry {
	padding: 56px 64px;
	max-width: 1180px;
	margin: 0 auto;
}
.press-block-head {
	margin-bottom: 32px;
	padding-bottom: 16px;
	border-bottom: 2px solid var(--ink);
}

.press-bio {
	padding: 28px 0;
	border-bottom: 1px solid var(--ink-12);
}
.press-bio:first-of-type {
	border-top: 0;
	padding-top: 0;
}
.press-bio-head {
	display: flex;
	justify-content: space-between;
	align-items: center;
	gap: 16px;
	margin-bottom: 14px;
	flex-wrap: wrap;
}
.press-bio h3 {
	font-family: var(--font-display);
	font-weight: 600;
	font-size: clamp(18px, 1.6vw, 22px);
	letter-spacing: -0.018em;
	color: var(--ink);
	margin: 0;
}
.press-copy {
	font-family: var(--font-sans);
	font-weight: 600;
	font-size: 13px;
	background: transparent;
	border: 1px solid var(--ink);
	color: var(--ink);
	padding: 8px 16px;
	border-radius: 999px;
	display: inline-flex;
	align-items: center;
	gap: 6px;
	transition: background .15s ease, color .15s ease;
}
.press-copy:hover { background: var(--ink); color: var(--paper); }
.press-copy.is-copied { background: var(--red); color: var(--paper); border-color: var(--red); }
.press-bio-body {
	font-family: var(--font-sans);
	font-weight: 400;
	font-size: clamp(15.5px, 1.3vw, 17px);
	line-height: 1.65;
	color: var(--ink);
	max-width: 720px;
}

.press-downloads-grid {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
	gap: 14px;
}
.press-download {
	display: flex;
	justify-content: space-between;
	align-items: center;
	gap: 12px;
	padding: 16px 22px;
	background: var(--paper-warm);
	border: 1px solid var(--ink-12);
	color: var(--ink);
	transition: border-color .15s ease, transform .15s ease;
}
.press-download:hover { border-color: var(--ink); transform: translateY(-1px); }
.press-download-label {
	font-family: var(--font-sans);
	font-weight: 600;
	font-size: 14.5px;
}
.press-download-dim {
	font-family: var(--font-sans);
	font-weight: 500;
	font-size: 12px;
	color: var(--ink-60);
	font-variant-numeric: tabular-nums;
}

.press-inquiry {
	padding: 48px 64px 80px;
	text-align: center;
}
.press-inquiry p {
	font-family: var(--font-sans);
	font-weight: 500;
	font-size: clamp(15px, 1.3vw, 17px);
	color: var(--ink);
	margin: 0;
}
.press-inquiry a {
	border-bottom: 1px solid var(--blue);
	padding-bottom: 2px;
	color: var(--blue);
	transition: color .15s ease, border-color .15s ease;
}
.press-inquiry a:hover { color: var(--red); border-bottom-color: var(--red); }

/* 404 */
.not-found {
	padding: 120px 64px 160px;
	max-width: 880px;
	margin: 0 auto;
	background: var(--paper);
}
.not-found-num {
	font-family: var(--font-display);
	font-weight: 700;
	font-size: clamp(120px, 18vw, 220px);
	line-height: 0.9;
	letter-spacing: -0.05em;
	color: var(--ink);
	margin-top: 22px;
}
.not-found-lede {
	font-family: var(--font-serif);
	font-style: italic;
	font-size: clamp(22px, 2vw, 28px);
	line-height: 1.4;
	color: var(--ink-60);
	margin-top: 32px;
	max-width: 640px;
}
.not-found-links {
	margin-top: 44px;
	display: flex;
	flex-direction: column;
	gap: 14px;
}
.not-found-link {
	font-family: var(--font-sans);
	font-weight: 600;
	font-size: 17px;
	color: var(--ink);
	border-bottom: 1px solid var(--ink);
	padding-bottom: 4px;
	align-self: flex-start;
	transition: color .15s ease, border-color .15s ease;
}
.not-found-link:hover { color: var(--red); border-bottom-color: var(--red); }
.not-found-foot {
	margin-top: 60px;
	font-family: var(--font-sans);
	font-size: 14px;
	color: var(--ink-60);
}
.not-found-foot a {
	color: var(--blue);
	border-bottom: 1px solid var(--blue);
	padding-bottom: 1px;
}
.not-found-foot a:hover { color: var(--red); border-bottom-color: var(--red); }

/* Search */
.search-head {
	padding: 80px 64px 40px;
	max-width: 1180px;
	margin: 0 auto;
}
.search-headline {
	font-family: var(--font-display);
	font-weight: 600;
	font-size: clamp(36px, 5vw, 64px);
	line-height: 1.02;
	letter-spacing: -0.03em;
	color: var(--ink);
	margin-top: 22px;
	text-wrap: balance;
}
.search-form {
	margin-top: 32px;
	display: flex;
	gap: 12px;
	max-width: 720px;
	border-bottom: 1px solid var(--ink);
	padding-bottom: 8px;
}
.search-form input[type="search"] {
	flex: 1;
	border: 0;
	background: transparent;
	font-family: var(--font-sans);
	font-size: 22px;
	color: var(--ink);
	outline: none;
}
.search-form input[type="search"]::placeholder { color: var(--ink-42); }
.search-form button {
	border: 0;
	background: var(--red);
	color: var(--paper);
	padding: 10px 18px;
	font-family: var(--font-sans);
	font-weight: 600;
	font-size: 14px;
}
.search-form button:hover { background: var(--ink); }

.search-results {
	padding: 40px 64px 120px;
	max-width: 1180px;
	margin: 0 auto;
}
.search-row {
	display: grid;
	grid-template-columns: 130px 180px 1fr 28px;
	gap: 28px;
	align-items: baseline;
	padding: 22px 0;
	border-top: 1px solid var(--ink-12);
	color: var(--ink);
	transition: background .15s ease;
}
.search-row:first-of-type { border-top: 2px solid var(--ink); }
.search-row:hover { background: var(--ink-06); }
.search-row:hover .search-arrow { color: var(--red); transform: translateX(3px); }
.search-date {
	font-family: var(--font-sans);
	font-size: 14px;
	color: var(--ink-60);
	font-variant-numeric: tabular-nums;
}
.search-title {
	font-family: var(--font-display);
	font-weight: 600;
	font-size: 22px;
	line-height: 1.25;
	letter-spacing: -0.014em;
	color: var(--ink);
	margin: 0 0 8px;
	grid-column: 3 / 4;
}
.search-excerpt {
	font-family: var(--font-sans);
	font-size: 15px;
	line-height: 1.55;
	color: var(--ink-60);
	margin: 0;
	grid-column: 3 / 4;
}
.search-arrow {
	font-family: var(--font-sans);
	font-size: 18px;
	color: var(--ink-42);
	text-align: right;
	transition: color .15s ease, transform .15s ease;
}
.search-empty {
	padding: 40px 0;
	text-align: center;
}
.search-empty p {
	font-family: var(--font-serif);
	font-style: italic;
	font-size: 20px;
	color: var(--ink-60);
	margin-bottom: 32px;
}
.search-empty .not-found-links { align-items: center; }
.search-paging {
	margin-top: 56px;
	padding-top: 32px;
	border-top: 1px solid var(--ink-12);
	display: flex;
	justify-content: space-between;
	font-family: var(--font-sans);
	font-weight: 600;
	font-size: 14px;
}

/* Inline search form (sidebar / generic) */
.search-form-inline {
	display: flex;
	gap: 8px;
	max-width: 360px;
	border-bottom: 1px solid var(--ink);
	padding-bottom: 6px;
}
.search-form-inline input[type="search"] {
	flex: 1;
	border: 0;
	background: transparent;
	font-family: var(--font-sans);
	font-size: 15px;
	color: var(--ink);
	outline: none;
}
.search-form-inline button {
	border: 0;
	background: transparent;
	color: var(--ink);
	font-family: var(--font-sans);
	font-weight: 600;
	font-size: 13px;
	padding: 0 4px;
}

/* Editor block-pattern styles (also used in rendered content) */
.wp-block-quote.iamyb-pull-quote,
.iamyb-pull-quote {
	margin: 44px 0;
	padding-left: 28px;
	border-left: 3px solid var(--red);
	font-family: var(--font-sans);
	font-weight: 500;
	font-size: 26px;
	line-height: 1.35;
	color: var(--ink);
	letter-spacing: -0.01em;
}
.iamyb-section-break { margin: 56px 0; }
.iamyb-section-label {
	font-family: var(--font-sans);
	font-weight: 600;
	font-size: 11px;
	letter-spacing: 0.18em;
	text-transform: uppercase;
	color: var(--ink-60);
	margin-top: -12px;
}
.iamyb-meta-strip {
	padding: 18px 0;
	border-top: 1px solid var(--ink-12);
	border-bottom: 1px solid var(--ink-12);
	font-family: var(--font-sans);
	font-size: 14px;
	color: var(--ink);
}

/* ── Keynotes page ─────────────────────────────────────────────
   page-templates/page-keynotes.php. Three (or more) keynote topics
   rendered as stacked full-width blocks: image + body, alternating
   sides on every other block. Mobile collapses to single column. */

.keynotes-hero {
	padding: 100px 64px 56px;
	background: var(--paper);
	max-width: 1320px;
}
.keynotes-headline {
	font-family: var(--font-display);
	font-weight: 600;
	font-size: clamp(48px, 7vw, 96px);
	line-height: 0.96;
	letter-spacing: -0.038em;
	margin-top: 22px;
	color: var(--ink);
	text-wrap: balance;
	max-width: 1100px;
}
.keynotes-lede {
	font-family: var(--font-sans);
	font-weight: 400;
	font-size: clamp(18px, 1.5vw, 26px);
	line-height: 1.45;
	letter-spacing: -0.005em;
	color: var(--ink-60);
	margin-top: 32px;
	max-width: 760px;
}
.keynotes-lede a {
	color: var(--blue);
	text-decoration: underline;
	text-decoration-thickness: 1px;
	text-underline-offset: 3px;
	transition: color .15s ease;
}
.keynotes-lede a:hover { color: var(--red); }

.keynote-block {
	padding: 80px 64px;
	display: grid;
	grid-template-columns: 1fr 1.05fr;
	gap: 64px;
	align-items: center;
	background: var(--paper);
	border-top: 1px solid var(--ink-12);
}
.keynote-block--flip { background: var(--paper-warm); }
.keynote-block--flip .keynote-block-image { order: 2; }
.keynote-block--flip .keynote-block-body  { order: 1; }

.keynote-block-image {
	margin: 0;
	aspect-ratio: 4 / 3;
	background: var(--ink-06);
	overflow: hidden;
}
.keynote-block-image img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
}
.keynote-block-image--placeholder {
	background:
		repeating-linear-gradient( 45deg,
			rgba(27, 30, 36, .04) 0,
			rgba(27, 30, 36, .04) 12px,
			rgba(27, 30, 36, .08) 12px,
			rgba(27, 30, 36, .08) 24px
		);
}

.keynote-block-body { max-width: 620px; }
.keynote-block-title {
	font-family: var(--font-display);
	font-weight: 600;
	font-size: clamp(36px, 4.4vw, 60px);
	line-height: 1.02;
	letter-spacing: -0.028em;
	color: var(--ink);
	margin-top: 14px;
	text-wrap: balance;
}
.keynote-block-title .book-lockup {
	font-size: inherit;
	line-height: 1.02;
}
.keynote-block-subtitle {
	font-family: var(--font-sans);
	font-weight: 400;
	font-size: clamp(18px, 1.6vw, 24px);
	line-height: 1.4;
	letter-spacing: -0.005em;
	color: var(--ink-60);
	margin-top: 22px;
	max-width: 560px;
}
.keynote-block-about {
	font-family: var(--font-sans);
	font-size: 17px;
	line-height: 1.6;
	color: var(--ink);
	margin-top: 28px;
}
.keynote-block-about p + p { margin-top: 14px; }

.keynote-block-takeaways { margin-top: 32px; }
.keynote-block-takeaways .iamyb-eyebrow {
	color: var(--ink-60);
	display: block;
	margin-bottom: 14px;
}
.keynote-block-takeaways ul {
	list-style: none;
	margin: 0;
	padding: 0;
}
.keynote-block-takeaways li {
	font-family: var(--font-sans);
	font-size: 16px;
	line-height: 1.5;
	color: var(--ink);
	padding: 10px 0 10px 26px;
	border-top: 1px solid var(--ink-12);
	position: relative;
}
.keynote-block-takeaways li:last-child { border-bottom: 1px solid var(--ink-12); }
.keynote-block-takeaways li::before {
	content: "";
	position: absolute;
	left: 0;
	top: 18px;
	width: 14px;
	height: 1px;
	background: var(--red);
}

.keynote-block--empty {
	display: block;
	padding: 80px 64px;
	text-align: center;
	font-family: var(--font-serif);
	font-style: italic;
	color: var(--ink-60);
}

/* ── Responsive (collapse to single column at <=900px) ──────── */
@media (max-width: 900px) {
	/* Press kit */
	.press-hero,
	.press-bios,
	.press-downloads,
	.press-inquiry { padding-left: 24px; padding-right: 24px; }
	.press-headline { font-size: clamp(32px, 9vw, 48px); }

	/* 404 */
	.not-found { padding: 64px 24px 96px; }
	.not-found-num { font-size: clamp(96px, 24vw, 160px); }

	/* Search */
	.search-head { padding: 56px 24px 32px; }
	.search-results { padding: 32px 24px 80px; }
	.search-row { grid-template-columns: 1fr; gap: 8px; }
	.search-arrow { display: none; }

	/* About */
	.about-hero { grid-template-columns: 1fr; gap: 40px; padding: 56px 24px; }
	.about-headline { font-size: clamp(40px, 10vw, 72px); }
	.about-portrait { max-width: 280px; }
	.about-coords { grid-template-columns: 1fr 1fr; gap: 24px; padding: 24px; }
	.about-stages { padding: 56px 24px; }
	.about-stages-thead { grid-template-columns: 60px 1fr; }
	.about-stages-thead > :nth-child(3),
	.about-stages-thead > :nth-child(4) { display: none; }
	.about-stages-row {
		grid-template-columns: 60px 1fr;
		grid-template-areas:
			"year  event"
			".     topic"
			".     format";
		row-gap: 4px;
		column-gap: 16px;
	}
	.about-stages-row .about-stages-year   { grid-area: year; }
	.about-stages-row .about-stages-event  { grid-area: event; }
	.about-stages-row .about-stages-topic  { grid-area: topic; font-size: 14px; font-weight: 400; color: var(--ink-60); line-height: 1.4; }
	.about-stages-row .about-stages-format { grid-area: format; text-align: left; }
	.about-organizers { padding: 56px 24px; }
	.about-organizers-grid { grid-template-columns: 1fr; gap: 32px; }
	.about-organizers-h2 { font-size: clamp(36px, 9vw, 64px); }

	/* Keynotes */
	.keynotes-hero { padding: 56px 24px 32px; }
	.keynote-block {
		grid-template-columns: 1fr;
		gap: 28px;
		padding: 48px 24px 56px;
	}
	.keynote-block--flip .keynote-block-image { order: 0; }
	.keynote-block--flip .keynote-block-body  { order: 0; }
	.keynote-block-title { font-size: clamp(32px, 8vw, 48px); }

	/* Essay */
	.essay-head { padding: 56px 24px 40px; }
	.essay-headline { font-size: 44px; }
	.essay-body-wrap { padding: 0 24px 56px; grid-template-columns: 1fr; gap: 40px; }
	.essay-body { font-size: 17px; }
	.essay-body h2 { font-size: 24px; margin: 40px 0 16px; }
	.essay-body h3 { font-size: 22px; margin: 32px 0 14px; }
	.essay-body blockquote { font-size: 22px; padding-left: 20px; }
	.essay-margin { position: static; }
	.essay-readnext { padding: 56px 24px; }
	.essay-readnext-grid { grid-template-columns: 1fr; gap: 40px; }
	.essay-readnext-headline { font-size: clamp(28px, 8vw, 44px); }

	/* Book */
	.book-topband {
		padding:
			max(18px, env(safe-area-inset-top))
			max(24px, env(safe-area-inset-right))
			18px
			max(24px, env(safe-area-inset-left));
		flex-direction: column; gap: 14px; align-items: flex-start;
	}
	.book-topband-nav { gap: 20px; flex-wrap: wrap; }
	.book-hero { padding: 56px 24px 64px; grid-template-columns: 1fr; gap: 40px; }
	.book-hero-cover { max-width: 280px; }
	.book-hero-lockup { font-size: clamp(56px, 14vw, 96px); }
	.book-hero-lock-ink { font-size: clamp(44px, 11vw, 80px); }
	.book-indictment,
	.book-convictions,
	.book-lines,
	.book-audience,
	.book-author,
	.book-stores,
	.book-closer { padding: 64px 24px 80px; }
	.book-sec-h2 { font-size: clamp(36px, 9vw, 64px); }
	.book-indictment-grid { grid-template-columns: 1fr; gap: 32px; }
	.book-convictions-head { grid-template-columns: 1fr; gap: 24px; }
	.book-conv-row { grid-template-columns: 40px 1fr; row-gap: 12px; }
	.book-conv-body { grid-column: 1 / -1; }
	.book-lines-head { grid-template-columns: 1fr; gap: 24px; }
	.book-lines-grid { grid-template-columns: 1fr; gap: 20px; }
	.book-audience-grid { grid-template-columns: 1fr; gap: 32px; }
	.book-author-grid { grid-template-columns: 1fr; gap: 32px; }
	.book-author-portrait { max-width: 280px; }
	.book-stores-head { grid-template-columns: 1fr; gap: 24px; }
	.book-stores-grid { grid-template-columns: 1fr; }
	.book-closer-quote { font-size: clamp(32px, 8vw, 48px); }
}

/* ============================================================
   Print — clean single-column essay, no chrome.
   Hides top band, footer, marginalia, read-next, and any
   element flagged .no-print. Drops site backgrounds so the
   page prints as black ink on white paper.
   ============================================================ */
@media print {
	@page { margin: 18mm 16mm; }

	html, body {
		background: #fff !important;
		color: #000 !important;
		font-size: 11pt;
		line-height: 1.5;
	}

	/* Site chrome — hide everything that's not the article. */
	.iamyb-topband,
	.v2-topband,
	.book-topband,
	.iamyb-footer,
	.v2-footer,
	.book-footer,
	.essay-readnext,
	.essay-margin,
	.essay-head-actions,
	.no-print {
		display: none !important;
	}

	/* Body wrap → single column, full width. */
	.essay-body-wrap {
		display: block !important;
		grid-template-columns: none !important;
		padding: 0 !important;
		gap: 0 !important;
	}
	.essay-body {
		max-width: none !important;
		width: 100% !important;
		font-size: 11pt !important;
		color: #000 !important;
	}
	.essay-head {
		padding: 0 0 16pt !important;
		border-bottom: 1pt solid #000;
		margin-bottom: 16pt;
	}
	.essay-headline {
		font-size: 28pt !important;
		line-height: 1.1 !important;
		color: #000 !important;
	}
	.essay-dek {
		font-size: 13pt !important;
		color: #000 !important;
	}

	/* Links — show URL after, so print readers get the reference. */
	.essay-body a[href]:after {
		content: " (" attr(href) ")";
		font-size: 9pt;
		color: #555;
		word-break: break-all;
	}
	.essay-body a[href^="#"]:after,
	.essay-body a[href^="javascript:"]:after { content: ""; }

	/* Don't break inside blockquotes / figures. */
	blockquote, figure, .iamyb-pull-quote { page-break-inside: avoid; }
	h2, h3 { page-break-after: avoid; }
}

/* ── §X · Promo section (CPT `promo`) ───────────────────────── */
/* Reusable CTA block rendered above the footer on single essays.
 * Five background variants. Variants override only the six
 * --promo-* custom properties; layout + atoms reference the props
 * so no per-atom selector duplication. */

.iamyb-promo {
	/* default tokens (paper variant) — variants below override */
	--promo-bg:            var(--paper);
	--promo-fg:            var(--ink);
	--promo-btn-bg:        var(--ink);
	--promo-btn-fg:        var(--paper);
	--promo-btn-bg-hover:  var(--red);
	--promo-btn-fg-hover:  var(--paper);

	background: var(--promo-bg);
	color: var(--promo-fg);
	padding: clamp(48px, 5vw, 72px) max(24px, env(safe-area-inset-right)) clamp(48px, 5vw, 72px) max(24px, env(safe-area-inset-left));
}
.iamyb-promo-grid {
	max-width: 880px;
	margin: 0 auto;
	display: grid;
	grid-template-columns: minmax(0, 140px) 1fr;
	gap: 32px;
	align-items: center;
}
.iamyb-promo-image {
	margin: 0;
}
.iamyb-promo-image img {
	display: block;
	width: 100%;
	height: auto;
	max-width: 140px;
	box-shadow: 0 8px 24px rgba(0, 0, 0, .14);
}
.iamyb-promo-body {
	max-width: 560px;
}
.iamyb-promo-title {
	font-family: var(--font-display);
	font-weight: 600;
	font-size: clamp(24px, 2.4vw, 32px);
	line-height: 1.1;
	letter-spacing: -0.02em;
	color: var(--promo-fg);
	margin: 0;
	text-wrap: balance;
}
.iamyb-promo-title .book-lockup { font-size: inherit; line-height: 1.1; }
/* Lockup ink/red spans must follow the variant fg, not the global ink token,
 * so the lockup reads correctly on dark/blue/red backgrounds.            */
.iamyb-promo-title .book-lockup .ink { color: var(--promo-fg); }
.iamyb-promo-text {
	margin-top: 14px;
	font-family: var(--font-sans);
	font-size: clamp(15px, 1.2vw, 17px);
	line-height: 1.55;
	color: var(--promo-fg);
	opacity: .82;
	max-width: 520px;
}
.iamyb-promo-text p { margin: 0; }
.iamyb-promo-text p + p { margin-top: 10px; }
.iamyb-promo-cta-wrap { margin: 20px 0 0; }
.iamyb-promo-cta {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	padding: 11px 18px;
	font-family: var(--font-sans);
	font-weight: 600;
	font-size: 14px;
	letter-spacing: .01em;
	text-decoration: none;
	background: var(--promo-btn-bg);
	color: var(--promo-btn-fg);
	border: 1px solid var(--promo-btn-bg);
	transition: background .15s ease, color .15s ease, border-color .15s ease;
}
.iamyb-promo-cta:hover,
.iamyb-promo-cta:focus-visible {
	background: var(--promo-btn-bg-hover);
	color: var(--promo-btn-fg-hover);
	border-color: var(--promo-btn-bg-hover);
}

/* ── Variants ──────────────────────────────────────────────── */

.iamyb-promo--paper {
	--promo-bg:            var(--paper);
	--promo-fg:            var(--ink);
	--promo-btn-bg:        var(--ink);
	--promo-btn-fg:        var(--paper);
	--promo-btn-bg-hover:  var(--red);
	--promo-btn-fg-hover:  var(--paper);
}
.iamyb-promo--paper-warm {
	--promo-bg:            var(--paper-warm);
	--promo-fg:            var(--ink);
	--promo-btn-bg:        var(--red);
	--promo-btn-fg:        var(--paper);
	--promo-btn-bg-hover:  var(--ink);
	--promo-btn-fg-hover:  var(--paper);
}
.iamyb-promo--blue {
	--promo-bg:            var(--blue);
	--promo-fg:            var(--paper);
	--promo-btn-bg:        var(--red);
	--promo-btn-fg:        var(--paper);
	--promo-btn-bg-hover:  var(--paper);
	--promo-btn-fg-hover:  var(--ink);
}
.iamyb-promo--dark {
	--promo-bg:            var(--ink);
	--promo-fg:            var(--paper);
	--promo-btn-bg:        var(--paper);
	--promo-btn-fg:        var(--ink);
	--promo-btn-bg-hover:  var(--red);
	--promo-btn-fg-hover:  var(--paper);
}
.iamyb-promo--red {
	--promo-bg:            var(--red);
	--promo-fg:            var(--paper);
	--promo-btn-bg:        var(--ink);
	--promo-btn-fg:        var(--paper);
	--promo-btn-bg-hover:  var(--paper);
	--promo-btn-fg-hover:  var(--ink);
}

/* Light variants get a hairline top rule as section break. The colored
 * variants (dark / blue / red) have their own bg contrast and don't
 * need it. */
.iamyb-promo--paper,
.iamyb-promo--paper-warm {
	border-top: 1px solid var(--ink-12);
}

/* Stack at <=900px — image on top, body below. Image stays small. */
@media (max-width: 900px) {
	.iamyb-promo-grid {
		grid-template-columns: 1fr;
		gap: 20px;
	}
	.iamyb-promo-image img {
		max-width: 100px;
	}
}
