/* ============================================================
   editorial.css — Pageant Pro Network
   Shared editorial identity, matched to bombyhead.com's
   editorial layout: cream / wine / gold, Fraunces + Instrument
   Sans, hairline rules, film grain, no rounded boxes.

   The palette tokens below are intentionally identical to
   ~/sites/bombyhead/app/css/editorial.css so the two properties
   read as one house. Do not drift them independently.

   How to opt in: load Fraunces + Instrument Sans in <head>,
   then this file. No framework, no JS.
   ============================================================ */

:root {
	--cream:     #fbf9f3;
	--cream-2:   #f4efe1;
	--paper:     #ffffff;
	--ink:       #1a0e1d;
	--ink-soft:  #6b5f70;
	--ink-faint: #a59aa9;
	--rule:      #d8d0bf;
	--rule-soft: #ebe4d2;
	--wine:      #5d1e3a;
	--wine-deep: #3d0d24;
	--gold:      #b48a44;
	--gold-soft: #d8b97a;
	--shadow-sm: 0 1px 3px rgba(26, 14, 29, 0.06), 0 8px 24px -12px rgba(26, 14, 29, 0.18);
	--shadow:    0 2px 6px rgba(26, 14, 29, 0.08), 0 18px 32px -16px rgba(26, 14, 29, 0.28);
	color-scheme: light only;
}

*, *::before, *::after { box-sizing: border-box; }
html, body { margin: 0; padding: 0; }

body {
	background: var(--cream);
	color: var(--ink);
	font-family: 'Instrument Sans', system-ui, sans-serif;
	font-size: 16px;
	line-height: 1.65;
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
}

/* Film grain — sits above everything, never interactive. */
body::before {
	content: "";
	position: fixed; inset: 0;
	pointer-events: none;
	z-index: 9000;
	opacity: 0.04;
	mix-blend-mode: multiply;
	background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='220' height='220'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='0.92' numOctaves='2' stitchTiles='stitch'/></filter><rect width='100%' height='100%' filter='url(%23n)'/></svg>");
}

::selection { background: var(--wine); color: var(--cream); }

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

img { max-width: 100%; height: auto; }

/* ---- Page shell ---- */
.page { max-width: 1100px; margin: 0 auto; padding: 0 32px; }
.page--narrow { max-width: 840px; }
@media (max-width: 720px) { .page { padding: 0 22px; } }

/* A full-bleed band that still centres its contents. */
.band { border-top: 1px solid var(--rule); border-bottom: 1px solid var(--rule); background: var(--cream-2); }
.band__inner { max-width: 1100px; margin: 0 auto; padding: 3.6rem 32px; }
@media (max-width: 720px) { .band__inner { padding: 2.8rem 22px; } }

/* ---- Masthead ---- */
.masthead {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 20px;
	padding: 22px 0 18px;
	border-bottom: 1px solid var(--ink);
}
.masthead__brand { display: block; line-height: 1; }
/* If a page uses the logo art instead of the wordmark: the art is black
   ink on near-white, so multiply drops the white out onto cream. */
.masthead__brand img {
	display: block;
	height: 46px;
	width: auto;
	mix-blend-mode: multiply;
}
.brand__mark {
	font-family: 'Fraunces', Georgia, serif;
	font-variation-settings: "opsz" 144, "SOFT" 100, "WONK" 1;
	font-style: italic; font-weight: 400;
	font-size: 1.5rem; letter-spacing: -0.015em;
	color: var(--ink); line-height: 1;
	display: block;
}
.brand__mark::before { content: "✦ "; color: var(--gold); font-style: normal; font-size: 0.8em; }
.brand__sub {
	display: block;
	margin-top: 4px;
	font-size: 0.62rem; letter-spacing: 0.24em; text-transform: uppercase;
	color: var(--ink-soft); font-weight: 600;
}
.masthead__nav {
	display: flex; align-items: center; gap: 26px;
	font-size: 0.76rem; letter-spacing: 0.18em; text-transform: uppercase;
	color: var(--ink-soft); font-weight: 600;
}
.masthead__nav a:hover { color: var(--ink); }
.masthead__cta {
	background: var(--wine); color: var(--cream);
	border: 0; border-radius: 999px; padding: 9px 18px;
	font-family: 'Fraunces', Georgia, serif; font-style: italic;
	font-size: 0.92rem; letter-spacing: 0; text-transform: none;
	cursor: pointer;
	transition: background 0.2s;
}
.masthead__cta:hover { background: var(--wine-deep); }
@media (max-width: 720px) {
	.masthead { padding: 16px 0 14px; }
	.masthead__brand img { height: 34px; }
	.masthead__nav .ext { display: none; }
	.masthead__nav { gap: 14px; }
}

/* ---- Cover ---- */
.cover { padding: 4.5rem 0 3.4rem; border-bottom: 1px solid var(--rule); }
.cover--tall { padding: 6rem 0 4rem; }
.cover--center { text-align: center; }
.cover__eyebrow {
	font-size: 0.72rem; letter-spacing: 0.28em; text-transform: uppercase;
	color: var(--ink-soft); font-weight: 700;
	display: flex; align-items: center; gap: 16px;
	margin-bottom: 2.2rem;
}
.cover__eyebrow::before { content: ""; width: 56px; height: 1px; background: var(--ink-soft); flex-shrink: 0; }
.cover--center .cover__eyebrow { justify-content: center; }
.cover--center .cover__eyebrow::before { display: none; }
.cover__title {
	font-family: 'Fraunces', Georgia, serif;
	font-variation-settings: "opsz" 144, "SOFT" 100, "WONK" 1;
	font-style: italic; font-weight: 350;
	font-size: clamp(2.6rem, 6.5vw, 5rem);
	line-height: 0.98;
	letter-spacing: -0.025em;
	color: var(--ink);
	margin: 0 0 1.5rem;
	max-width: 20ch;
}
.cover--center .cover__title { max-width: 24ch; margin-left: auto; margin-right: auto; }
.cover__title em { color: var(--wine); font-style: italic; }
.cover__lede {
	font-family: 'Fraunces', Georgia, serif;
	font-variation-settings: "opsz" 60, "SOFT" 100, "WONK" 1;
	font-weight: 380;
	font-size: 1.25rem;
	line-height: 1.45;
	color: var(--ink-soft);
	max-width: 56ch;
	margin: 0;
}
.cover--center .cover__lede { margin-left: auto; margin-right: auto; }
.cover__byline {
	margin: 1.6rem 0 0;
	font-size: 0.72rem; letter-spacing: 0.24em; text-transform: uppercase;
	color: var(--ink-soft); font-weight: 700;
}

/* ---- Buttons ---- */
.btn {
	display: inline-block;
	background: var(--ink); color: var(--cream);
	border: 0; border-radius: 999px;
	padding: 13px 26px;
	font-family: 'Fraunces', Georgia, serif; font-style: italic;
	font-size: 1.05rem; line-height: 1.2;
	cursor: pointer;
	transition: background 0.2s, transform 0.2s;
}
.btn:hover { background: var(--wine); color: var(--cream); transform: translateY(-1px); }
.btn--wine { background: var(--wine); }
.btn--wine:hover { background: var(--wine-deep); }
.btn--gold { background: var(--gold); color: var(--ink); }
.btn--gold:hover { background: var(--gold-soft); color: var(--ink); }
.btn--quiet {
	background: transparent; color: var(--ink);
	border: 1px solid var(--rule);
}
.btn--quiet:hover { background: var(--cream-2); color: var(--wine); border-color: var(--wine); }
.btn--lg { padding: 15px 32px; font-size: 1.18rem; }

.cta-stack { display: flex; flex-direction: column; align-items: flex-start; gap: 14px; margin-top: 2.2rem; }
.cover--center .cta-stack { align-items: center; }
.cta-quiet {
	font-size: 0.95rem;
	color: var(--wine);
	text-decoration: underline;
	text-decoration-color: var(--rule);
	text-underline-offset: 4px;
}
.cta-quiet:hover { text-decoration-color: var(--wine); }

/* ---- Article body ---- */
.articleBody { padding: 3.2rem 0 1rem; max-width: 68ch; margin: 0; }
.articleBody > *:first-child { margin-top: 0; }
/* Opening paragraph reads as the lede. */
.articleBody > p:first-of-type {
	font-family: 'Fraunces', Georgia, serif;
	font-variation-settings: "opsz" 60, "SOFT" 100, "WONK" 1;
	font-weight: 380;
	font-size: 1.22rem;
	line-height: 1.5;
	color: var(--ink-soft);
	margin-bottom: 1.6rem;
}
.articleBody > h1 {
	font-family: 'Fraunces', Georgia, serif;
	font-variation-settings: "opsz" 144, "SOFT" 100, "WONK" 1;
	font-style: italic; font-weight: 350;
	font-size: clamp(2.3rem, 5.4vw, 3.6rem);
	line-height: 1.02;
	letter-spacing: -0.025em;
	margin: 0 0 0.9rem;
}
.byline {
	font-size: 0.72rem; letter-spacing: 0.24em; text-transform: uppercase;
	color: var(--ink-soft); font-weight: 700;
	margin: 0 0 2.6rem;
}
.articleBody h2 {
	font-family: 'Fraunces', Georgia, serif;
	font-variation-settings: "opsz" 144, "SOFT" 100, "WONK" 1;
	font-style: italic; font-weight: 400;
	font-size: clamp(1.55rem, 3vw, 2.05rem);
	line-height: 1.1;
	letter-spacing: -0.015em;
	color: var(--ink);
	margin: 3rem 0 1.1rem;
	padding-top: 2.2rem;
	border-top: 1px solid var(--rule);
}
.articleBody h2 em { color: var(--wine); font-style: italic; }
.articleBody h3 {
	font-family: 'Fraunces', Georgia, serif;
	font-style: italic; font-weight: 500;
	font-size: 1.2rem;
	margin: 2rem 0 0.6rem;
}
.articleBody p { font-size: 1.05rem; line-height: 1.72; margin: 0 0 1.15rem; }
.articleBody strong, .articleBody b { font-weight: 600; color: var(--ink); }
.articleBody a {
	color: var(--wine);
	text-decoration: underline;
	text-decoration-color: var(--rule);
	text-underline-offset: 3px;
}
.articleBody a:hover { text-decoration-color: var(--wine); }

.articleBody ul { margin: 0 0 1.4rem; padding: 0; list-style: none; }
.articleBody ul li {
	position: relative;
	padding-left: 26px;
	margin-bottom: 11px;
	line-height: 1.68;
}
.articleBody ul li::before {
	content: "✦";
	position: absolute; left: 0; top: 0;
	color: var(--gold);
	font-size: 0.85rem;
}
.articleBody ol { margin: 0 0 1.4rem; padding: 0; list-style: none; counter-reset: step; }
.articleBody ol > li {
	counter-increment: step;
	position: relative;
	padding-left: 52px;
	margin-bottom: 1.15rem;
	line-height: 1.68;
	min-height: 34px;
}
.articleBody ol > li::before {
	content: counter(step, decimal-leading-zero);
	position: absolute; left: 0; top: 1px;
	font-family: 'Fraunces', Georgia, serif;
	font-variation-settings: "opsz" 144, "SOFT" 100, "WONK" 1;
	font-style: italic; font-weight: 400;
	font-size: 1.5rem;
	line-height: 1;
	color: var(--gold);
	letter-spacing: -0.02em;
}

/* Callouts. */
.note { margin: 1.6rem 0; padding: 16px 22px; font-size: 0.98rem; line-height: 1.62; background: var(--cream-2); }
.note--rule { border-left: 3px solid var(--wine); }
.note--rule strong, .note--rule b { color: var(--wine); }
.note--tip { border-left: 3px solid var(--gold-soft); }
.note--tip strong, .note--tip b { color: var(--gold); }
.note p:last-child { margin-bottom: 0; }

/* Inline data callout (parity with bombyhead's research pieces). */
.fig {
	display: flex; align-items: baseline; gap: 18px;
	padding: 16px 22px; margin: 1.4rem 0;
	background: var(--cream-2); border-left: 3px solid var(--gold);
}
.fig__num {
	font-family: 'Fraunces', Georgia, serif;
	font-variation-settings: "opsz" 144, "SOFT" 100, "WONK" 1;
	font-style: italic; font-weight: 400;
	font-size: 2.2rem; line-height: 1;
	color: var(--wine); letter-spacing: -0.02em; flex-shrink: 0;
}
.fig__text { color: var(--ink); font-size: 0.96rem; line-height: 1.55; }
@media (max-width: 720px) {
	.fig { flex-direction: column; gap: 6px; padding: 14px 18px; }
	.fig__num { font-size: 1.8rem; }
}

/* ---- Section headings outside articles ---- */
.section { padding: 4rem 0; }
.section__eyebrow {
	font-size: 0.72rem; letter-spacing: 0.28em; text-transform: uppercase;
	color: var(--ink-soft); font-weight: 700; margin: 0 0 1rem;
}
.section__title {
	font-family: 'Fraunces', Georgia, serif;
	font-variation-settings: "opsz" 144, "SOFT" 100, "WONK" 1;
	font-style: italic; font-weight: 350;
	font-size: clamp(1.9rem, 4vw, 2.8rem);
	line-height: 1.06;
	letter-spacing: -0.02em;
	color: var(--ink);
	margin: 0 0 1.1rem;
	max-width: 24ch;
}
.section__title em { color: var(--wine); font-style: italic; }
.section__lede {
	font-size: 1.05rem; line-height: 1.7; color: var(--ink-soft);
	max-width: 60ch; margin: 0 0 2.4rem;
}

.groupHeading {
	font-family: 'Fraunces', Georgia, serif;
	font-variation-settings: "opsz" 144, "SOFT" 100, "WONK" 1;
	font-style: italic; font-weight: 400;
	font-size: 1.7rem;
	letter-spacing: -0.015em;
	color: var(--ink);
	margin: 3.4rem 0 1.4rem;
	padding-top: 1.4rem;
	border-top: 1px solid var(--ink);
	display: flex; align-items: baseline; justify-content: space-between; gap: 16px;
}
.groupHeading .count {
	font-family: 'Instrument Sans', sans-serif;
	font-style: normal;
	font-size: 0.68rem; letter-spacing: 0.24em; text-transform: uppercase;
	color: var(--ink-soft); font-weight: 700;
}

/* ---- Grid ---- */
.grid { display: grid; gap: 0; }
.grid--3 { grid-template-columns: repeat(3, 1fr); }
.grid--4 { grid-template-columns: repeat(4, 1fr); }
@media (max-width: 900px) { .grid--3, .grid--4 { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 620px) { .grid--3, .grid--4 { grid-template-columns: 1fr; } }

/* ---- Article cards — hairline cells, not floating boxes ---- */
.cardGrid { display: grid; grid-template-columns: repeat(3, 1fr); border-top: 1px solid var(--rule); }
@media (max-width: 900px) { .cardGrid { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 620px) { .cardGrid { grid-template-columns: 1fr; } }
.articleCard {
	display: block;
	padding: 1.7rem 1.6rem 1.9rem;
	border-bottom: 1px solid var(--rule);
	border-right: 1px solid var(--rule);
	color: var(--ink);
	transition: background 0.2s;
}
.articleCard:last-child { border-right: 1px solid var(--rule); }
.cardGrid .articleCard:nth-child(3n) { border-right: 0; }
@media (max-width: 900px) {
	.cardGrid .articleCard { border-right: 1px solid var(--rule); }
	.cardGrid .articleCard:nth-child(3n) { border-right: 1px solid var(--rule); }
	.cardGrid .articleCard:nth-child(2n) { border-right: 0; }
}
@media (max-width: 620px) {
	.cardGrid .articleCard,
	.cardGrid .articleCard:nth-child(3n),
	.cardGrid .articleCard:nth-child(2n) { border-right: 0; }
}
.articleCard:hover { background: var(--cream-2); color: var(--ink); }
.articleCard h3 {
	font-family: 'Fraunces', Georgia, serif;
	font-variation-settings: "opsz" 60, "SOFT" 100, "WONK" 1;
	font-style: italic; font-weight: 400;
	font-size: 1.22rem;
	line-height: 1.15;
	letter-spacing: -0.012em;
	color: var(--ink);
	margin: 0 0 0.6rem;
}
.articleCard:hover h3 { color: var(--wine); }
.articleCard p { font-size: 0.94rem; line-height: 1.6; color: var(--ink-soft); margin: 0; }
.articleCard .kicker {
	display: block;
	font-size: 0.64rem; letter-spacing: 0.26em; text-transform: uppercase;
	color: var(--gold); font-weight: 700; margin-bottom: 0.8rem;
}

/* ---- Numbered feature entries (replaces icon tiles) ---- */
.featureGrid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 0; border-top: 1px solid var(--rule); }
@media (max-width: 900px) { .featureGrid { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 620px) { .featureGrid { grid-template-columns: 1fr; } }
.featureBlock { padding: 1.9rem 1.5rem 2rem; border-right: 1px solid var(--rule); }
.featureGrid .featureBlock:last-child { border-right: 0; }
@media (max-width: 900px) {
	.featureGrid .featureBlock { border-right: 1px solid var(--rule); border-bottom: 1px solid var(--rule); }
	.featureGrid .featureBlock:nth-child(2n) { border-right: 0; }
}
@media (max-width: 620px) {
	.featureGrid .featureBlock,
	.featureGrid .featureBlock:nth-child(2n) { border-right: 0; }
}
.featureNum {
	font-family: 'Fraunces', Georgia, serif;
	font-variation-settings: "opsz" 144, "SOFT" 100, "WONK" 1;
	font-style: italic; font-weight: 350;
	font-size: 2.6rem; line-height: 0.9;
	color: var(--gold); letter-spacing: -0.03em;
	display: block; margin-bottom: 1rem;
}
.featureTitle {
	font-family: 'Fraunces', Georgia, serif;
	font-style: italic; font-weight: 500;
	font-size: 1.12rem; line-height: 1.2;
	color: var(--ink); margin: 0 0 0.55rem;
}
.featureDetail { font-size: 0.94rem; line-height: 1.62; color: var(--ink-soft); margin: 0; }

/* ---- Founder pull-quote ---- */
.founderQuote {
	font-family: 'Fraunces', Georgia, serif;
	font-variation-settings: "opsz" 72, "SOFT" 100, "WONK" 1;
	font-style: italic; font-weight: 380;
	font-size: clamp(1.35rem, 2.6vw, 1.8rem);
	line-height: 1.38;
	color: var(--ink);
	max-width: 44ch;
	margin: 0;
	border-left: 3px solid var(--gold);
	padding-left: 1.6rem;
}
.founderAttribution {
	margin: 1.2rem 0 0 calc(1.6rem + 3px);
	font-size: 0.72rem; letter-spacing: 0.24em; text-transform: uppercase;
	color: var(--ink-soft); font-weight: 700;
}

/* ---- Dark bottom-line CTA ---- */
.bottom-line {
	margin: 4rem 0 4.5rem;
	padding: 3.2rem 2.4rem;
	background: var(--ink);
	color: var(--cream);
	text-align: center;
	position: relative;
	overflow: hidden;
}
.bottom-line::before {
	content: "";
	position: absolute; inset: 0;
	background:
		radial-gradient(circle at 18% 30%, rgba(180, 138, 68, 0.18), transparent 45%),
		radial-gradient(circle at 84% 70%, rgba(93, 30, 58, 0.32), transparent 50%);
	pointer-events: none;
}
.bottom-line p.bottom-line__eyebrow {
	position: relative;
	font-size: 0.72rem; letter-spacing: 0.28em; text-transform: uppercase;
	color: var(--gold-soft); font-weight: 700;
	margin: 0 0 1.2rem;
}
.bottom-line__title {
	position: relative;
	font-family: 'Fraunces', Georgia, serif;
	font-variation-settings: "opsz" 144, "SOFT" 100, "WONK" 1;
	font-style: italic; font-weight: 350;
	font-size: clamp(1.8rem, 4vw, 2.6rem);
	line-height: 1.15;
	color: var(--cream);
	margin: 0 auto 1.3rem;
	max-width: 28ch;
}
.bottom-line__title em { color: var(--gold-soft); font-style: italic; }
.bottom-line p {
	position: relative;
	max-width: 58ch;
	margin: 0 auto 1.6rem;
	color: rgba(251, 249, 243, 0.78);
	font-size: 1rem;
	line-height: 1.65;
}
.bottom-line__cta {
	position: relative;
	display: inline-block;
	background: var(--gold); color: var(--ink);
	border: 0; border-radius: 999px;
	padding: 12px 26px;
	font-family: 'Fraunces', Georgia, serif; font-style: italic;
	font-size: 1.02rem;
	cursor: pointer;
	transition: background 0.2s;
}
.bottom-line__cta:hover { background: var(--gold-soft); color: var(--ink); }
.bottom-line p.bottom-line__note {
	position: relative;
	font-size: 0.84rem;
	line-height: 1.6;
	color: rgba(251, 249, 243, 0.58);
	max-width: 52ch;
	margin: 1.4rem auto 0;
}

/* ---- Forms ---- */
.leadForm { display: flex; flex-direction: column; gap: 12px; max-width: 440px; }
.leadForm--center { margin-left: auto; margin-right: auto; }
.leadForm input[type="text"],
.leadForm input[type="email"] {
	font-family: 'Instrument Sans', system-ui, sans-serif;
	font-size: 1.02rem;
	padding: 14px 16px;
	background: var(--paper);
	color: var(--ink);
	border: 1px solid var(--rule);
	border-radius: 0;
	outline: none;
	transition: border-color 0.15s, box-shadow 0.15s;
}
.leadForm input::placeholder { color: var(--ink-faint); }
.leadForm input:focus {
	border-color: var(--ink);
	box-shadow: 0 0 0 3px rgba(93, 30, 58, 0.10);
}
.leadForm button {
	font-family: 'Fraunces', Georgia, serif; font-style: italic;
	font-size: 1.12rem;
	padding: 14px 24px;
	border: 0; border-radius: 999px;
	background: var(--wine); color: var(--cream);
	cursor: pointer;
	transition: background 0.2s;
}
.leadForm button:hover { background: var(--wine-deep); }
.leadForm .honeypot { position: absolute; left: -5000px; }
.formNote { font-size: 0.86rem; color: var(--ink-soft); margin: 1rem 0 0; max-width: 46ch; }
.formNote--center { margin-left: auto; margin-right: auto; text-align: center; }

/* ---- Numbered manifest (what's in the download) ---- */
.manifest { max-width: 68ch; margin: 0; padding: 0; list-style: none; counter-reset: item; border-top: 1px solid var(--rule); }
.manifest li {
	counter-increment: item;
	position: relative;
	padding: 1rem 0 1rem 56px;
	border-bottom: 1px solid var(--rule-soft);
	font-size: 1rem;
	line-height: 1.6;
}
.manifest li::before {
	content: counter(item, decimal-leading-zero);
	position: absolute; left: 0; top: 0.95rem;
	font-family: 'Fraunces', Georgia, serif;
	font-variation-settings: "opsz" 144, "SOFT" 100, "WONK" 1;
	font-style: italic; font-weight: 400;
	font-size: 1.4rem; line-height: 1;
	color: var(--gold);
}
.manifest li b, .manifest li strong { font-weight: 600; }

/* ---- Footer ---- */
.foot {
	border-top: 1px solid var(--rule);
	padding: 2.2rem 0 3.6rem;
	font-size: 0.82rem;
	line-height: 1.7;
	color: var(--ink-soft);
	display: flex;
	justify-content: space-between;
	align-items: baseline;
	flex-wrap: wrap;
	gap: 12px;
}
.foot p { margin: 0; }
.foot a { color: var(--ink-soft); text-decoration: underline; text-decoration-color: var(--rule); text-underline-offset: 3px; }
.foot a:hover { color: var(--wine); }
.foot__mark {
	font-family: 'Fraunces', Georgia, serif;
	font-style: italic; font-weight: 400;
	font-size: 1rem;
	color: var(--ink);
}
.foot__mark::before { content: "✦ "; color: var(--gold); font-style: normal; }

hr { border: 0; border-top: 1px solid var(--rule); margin: 2.4rem 0; }

/* ---- Motion / theme guards ---- */
@media (prefers-reduced-motion: reduce) {
	*, *::before, *::after {
		transition-duration: 0.01ms !important;
		animation-duration: 0.01ms !important;
	}
}

/* The editorial palette is light by design. Re-assert it so an
   OS-level dark preference can't repaint text on cream paper. */
@media (prefers-color-scheme: dark) {
	:root { color-scheme: light only; }
	html, body { background: var(--cream); color: var(--ink); }
}

/* ---- Home-page nameplate: same masthead, larger mark ---- */
.masthead--home .brand__mark { font-size: 1.95rem; }
.masthead--home .brand__sub { letter-spacing: 0.3em; }
@media (max-width: 720px) { .masthead--home .brand__mark { font-size: 1.4rem; } }

/* ---- Home problems band: the setup line and the punch ---- */
.problemsLede {
	font-family: 'Fraunces', Georgia, serif;
	font-variation-settings: "opsz" 60, "SOFT" 100, "WONK" 1;
	font-weight: 380;
	font-size: clamp(1.2rem, 2.4vw, 1.55rem);
	line-height: 1.48;
	color: var(--ink);
	max-width: 62ch;
	margin: 0 0 1.6rem;
}
.problemsPunch {
	font-family: 'Fraunces', Georgia, serif;
	font-variation-settings: "opsz" 144, "SOFT" 100, "WONK" 1;
	font-style: italic; font-weight: 400;
	font-size: clamp(1.3rem, 2.8vw, 1.9rem);
	line-height: 1.25;
	color: var(--wine);
	max-width: 40ch;
	margin: 0;
	padding-top: 1.6rem;
	border-top: 1px solid var(--rule);
}

/* ---- Lead-magnet band: dark, the one high-contrast moment on the page ---- */
.leadBand {
	background: var(--ink);
	color: var(--cream);
	position: relative;
	overflow: hidden;
	margin: 0 0 0;
}
.leadBand::before {
	content: "";
	position: absolute; inset: 0;
	background:
		radial-gradient(circle at 15% 25%, rgba(180, 138, 68, 0.20), transparent 48%),
		radial-gradient(circle at 88% 75%, rgba(93, 30, 58, 0.34), transparent 52%);
	pointer-events: none;
}
.leadBand__inner { position: relative; max-width: 1100px; margin: 0 auto; padding: 4rem 32px; }
@media (max-width: 720px) { .leadBand__inner { padding: 3rem 22px; } }
.leadBand p.leadBand__eyebrow {
	font-size: 0.72rem; letter-spacing: 0.28em; text-transform: uppercase;
	color: var(--gold-soft); font-weight: 700; margin: 0 0 1rem;
}
.leadBand__title {
	font-family: 'Fraunces', Georgia, serif;
	font-variation-settings: "opsz" 144, "SOFT" 100, "WONK" 1;
	font-style: italic; font-weight: 350;
	font-size: clamp(1.9rem, 4.2vw, 2.9rem);
	line-height: 1.1;
	color: var(--cream);
	margin: 0 0 1.1rem;
	max-width: 22ch;
}
.leadBand__title em { color: var(--gold-soft); font-style: italic; }
.leadBand p { color: rgba(251, 249, 243, 0.78); max-width: 58ch; margin: 0 0 1.8rem; line-height: 1.68; }

/* ---- Trust line under the hero ---- */
.trustLine {
	font-size: 0.78rem; letter-spacing: 0.16em; text-transform: uppercase;
	color: var(--ink-faint); font-weight: 600;
	margin: 1.8rem 0 0;
}

/* A cover that hands off directly to a full-bleed band supplies no
   rule of its own — the band's top border is the only line needed. */
.cover--flush { border-bottom: 0; }

/* Align the first column of every grid flush with the section heading
   above it — otherwise the cell padding kicks the left edge in and the
   page loses its spine. */
.cardGrid .articleCard:nth-child(3n + 1),
.featureGrid .featureBlock:nth-child(4n + 1) { padding-left: 0; }
@media (max-width: 900px) {
	.cardGrid .articleCard:nth-child(3n + 1) { padding-left: 1.6rem; }
	.cardGrid .articleCard:nth-child(2n + 1) { padding-left: 0; }
	.featureGrid .featureBlock:nth-child(4n + 1) { padding-left: 1.5rem; }
	.featureGrid .featureBlock:nth-child(2n + 1) { padding-left: 0; }
}
@media (max-width: 620px) {
	.cardGrid .articleCard { padding-left: 0; }
	.featureGrid .featureBlock { padding-left: 0; }
}

/* ---- Inline code ---- */
code {
	font-family: ui-monospace, SFMono-Regular, Menlo, monospace;
	font-size: 0.88em;
	background: var(--cream-2);
	border: 1px solid var(--rule-soft);
	padding: 1px 5px;
}

/* Most ppn traffic arrives from Facebook on a phone, so the section
   links wrap under the mark rather than disappearing the way they do
   on a desktop-first masthead. */
@media (max-width: 720px) {
	.masthead { flex-wrap: wrap; row-gap: 12px; }
	.masthead__nav .ext { display: inline; }
	.masthead__nav { width: 100%; gap: 18px; font-size: 0.68rem; letter-spacing: 0.14em; }
	.masthead__brand { flex: 1 1 auto; }
}
