:root  {
	color-scheme: light dark;
	--fontSans: "Segoe UI", system-ui, -apple-system, sans-serif;
	--fontSerif: Georgia, "Times New Roman", serif;
	--textXs: 0.75rem;
	--textSm: 0.875rem;
	--textBase: 1rem;
	--textLg: 1.125rem;
	--textXl: 1.25rem;
	--text2xl: 1.5rem;
	--text3xl: 2rem;
	--text4xl: 2.75rem;
	--leadingTight: 1.25;
	--leadingNormal: 1.6;
	--space1: 0.25rem;
	--space2: 0.5rem;
	--space3: 0.75rem;
	--space4: 1rem;
	--space6: 1.5rem;
	--space8: 2rem;
	--space12: 3rem;
	--space16: 4rem;
	--space20: 5rem;
	--space24: 6rem;
	--contentWidth: 72rem;
	--contentNarrow: 48rem;
	--radiusSm: 0.25rem;
	--radiusMd: 0.5rem;
	--radiusLg: 1rem;
	--transitionFast: 150ms ease;
	--transitionBase: 250ms ease;
	--colorBg: #f6f4ef;
	--colorBgAlt: #ece8df;
	--colorSurface: #fffdf9;
	--colorSurfaceStrong: #f7f2e8;
	--colorBorder: #b8b0a3;
	--colorText: #1f2328;
	--colorTextMuted: #4d5561;
	--colorHeading: #111418;
	--colorLink: #0f5ea8;
	--colorLinkHover: #0a477d;
	--colorAccent: #0f5ea8;
	--colorAccentHover: #0a477d;
	--colorAccentSoft: #dbeafb;
	--colorButtonText: #ffffff;
	--colorFooterBg: #1b2028;
	--colorFooterText: #f5f7fa;
	--colorFooterMuted: #c7d0db;
	--focusRingColor: #7a4cff;
	--focusRingInnerColor: #ffffff;
	--focusRing: 3px solid var(--focusRingColor);
	--focusOffset: 3px;
	--shadowCard: 0 0.125rem 0.5rem rgba(17, 20, 24, 0.08);
	--shadowCardHover: 0 0.375rem 1rem rgba(17, 20, 24, 0.14);
}

@media (prefers-color-scheme: dark)  {
	:root  {
		--colorBg: #101418;
		--colorBgAlt: #182028;
		--colorSurface: #161b22;
		--colorSurfaceStrong: #1d2630;
		--colorBorder: #435264;
		--colorText: #edf2f7;
		--colorTextMuted: #c5d0dc;
		--colorHeading: #ffffff;
		--colorLink: #8cc7ff;
		--colorLinkHover: #b3dbff;
		--colorAccent: #5eb0ff;
		--colorAccentHover: #8cc7ff;
		--colorAccentSoft: #1a3550;
		--colorButtonText: #08131f;
		--colorFooterBg: #0a0e13;
		--colorFooterText: #f3f7fb;
		--colorFooterMuted: #d0d8e2;
		--focusRingColor: #c6a6ff;
		--focusRingInnerColor: #000000;
		--shadowCard: none;
		--shadowCardHover: none;
	}
}

*, *::before, *::after  {
	box-sizing: border-box;
}

html  {
	scroll-behavior: smooth;
}

body  {
	margin: 0;
	font-family: var(--fontSans);
	font-size: var(--textBase);
	line-height: var(--leadingNormal);
	background: var(--colorBg);
	color: var(--colorText);
}

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

a  {
	color: var(--colorLink);
	text-underline-offset: 0.18em;
	text-decoration-thickness: 0.08em;
	transition: color var(--transitionFast), background-color var(--transitionFast), border-color var(--transitionFast);
}

a:hover  {
	color: var(--colorLinkHover);
}

a:focus-visible,button:focus-visible,summary:focus-visible  {
	outline: var(--focusRing);
	outline-offset: var(--focusOffset);
	box-shadow: 0 0 0 2px var(--focusRingInnerColor);
}

h1, h2, h3  {
	margin: 0;
	line-height: var(--leadingTight);
	color: var(--colorHeading);
}

p,ul  {
	margin: 0;
}

ul  {
	padding: 0;
	list-style: none;
}

.container  {
	width: min(100% - 2rem, var(--contentWidth));
	margin-inline: auto;
}

.containerNarrow  {
	max-width: var(--contentNarrow);
}

.skipLink  {
	position: absolute;
	left: 1rem;
	top: -9999px;
	z-index: 1000;
	padding: 0.875rem 1.25rem;
	background: var(--colorSurface);
	color: var(--colorLink);
	border: 2px solid currentColor;
	border-radius: var(--radiusMd);
	text-decoration: none;
}

.skipLink:focus  {
	top: 1rem;
}

.siteHeader  {
	z-index: 100;
	background: color-mix(in srgb, var(--colorSurface) 92%, transparent);
	backdrop-filter: blur(0.5rem);
	border-bottom: 1px solid var(--colorBorder);
}

.siteHeaderInner  {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: var(--space6);
	min-height: 4.5rem;
	position: relative;
}

.siteLogo  {
	color: var(--colorHeading);
	text-decoration: none;
	font-size: var(--textXl);
	font-weight: 700;
	letter-spacing: -0.01em;
}

.siteLogo:hover  {
	color: var(--colorLink);
}

.menuToggle  {
	display: none;
	align-items: center;
	justify-content: center;
	min-height: 44px;
	min-width: 44px;
	padding: 0.625rem 1rem;
	background: var(--colorAccent);
	color: var(--colorButtonText);
	border: 2px solid var(--colorAccent);
	border-radius: var(--radiusMd);
	font: inherit;
	font-weight: 700;
}

.menuToggle:hover  {
	background: var(--colorAccentHover);
	border-color: var(--colorAccentHover);
}

.siteNav ul,
.footerNav ul {
	display: flex;
	flex-wrap: wrap;
	gap: 1rem;
	margin: 0;
	padding: 0;
	list-style: none;
}

.siteNav li,
.footerNav li {
	margin: 0;
	padding: 0;
}
.siteNav a,.footerNav a  {
	display: inline-flex;
	align-items: center;
	min-height: 44px;
	padding-block: 0.25rem;
	color: var(--colorHeading);
	text-decoration: none;
	font-size: var(--textSm);
	font-weight: 600;
	letter-spacing: 0.01em;
	border-bottom: 2px solid transparent;
}

.socialLinks {
	display: flex;
	flex-wrap: wrap;
	gap: var(--space4);
	justify-content: center;
}

.siteNav a:hover,.siteNav a:focus-visible,.footerNav a:hover,.footerNav a:focus-visible  {
	color: var(--colorLink);
	border-bottom-color: currentColor;
}

.hero  {
	background: var(--colorSurface);
	border-bottom: 1px solid var(--colorBorder);
}

.heroLayout  {
	display: grid;
	grid-template-columns: minmax(0, 1.2fr) minmax(16rem, 0.8fr);
	align-items: center;
	gap: var(--space16);
	padding-block: var(--space20);
}

.heroText h1  {
	font-size: clamp(2.25rem, 4vw, var(--text4xl));
	margin-bottom: var(--space4);
}

.heroText h1 a  {
	color: inherit;
	text-decoration: none;
}

.heroText h1 a:hover,.heroText h1 a:focus-visible  {
	color: var(--colorLink);
	text-decoration: underline;
	text-decoration-thickness: 0.08em;
	text-underline-offset: 0.18em;
}

.tagline  {
	font-size: var(--textXl);
	color: var(--colorTextMuted);
	margin-bottom: var(--space6);
}

.heroText > p:last-of-type  {
	max-width: 42rem;
}

.heroImage  {
	display: flex;
	justify-content: flex-end;
}

.headshotFrame  {
	width: min(100%, 21rem);
	aspect-ratio: 17 / 20;
	border: 2px solid var(--colorBorder);
	border-radius: var(--radiusLg);
	background: linear-gradient(180deg, var(--colorAccentSoft), var(--colorSurfaceStrong));
	display: flex;
	align-items: center;
	justify-content: center;
	overflow: hidden;
}

.headshotFrame img  {
	width: 100%;
	height: 100%;
	object-fit: cover;
	border-radius: inherit;
}

.headshotPlaceholder  {
	padding: var(--space4);
	text-align: center;
	color: var(--colorTextMuted);
	font-size: var(--textSm);
}

.contentBand  {
	padding-block: var(--space24);
}

.contentBandAlt  {
	background: var(--colorBgAlt);
}

.sectionHeader  {
	margin-bottom: var(--space12);
}

.sectionHeader h2  {
	font-size: clamp(1.75rem, 3vw, var(--text3xl));
}

.sectionHeader h2 a  {
	color: inherit;
	text-decoration: none;
}

.sectionHeader h2 a:hover,.sectionHeader h2 a:focus-visible  {
	color: var(--colorLink);
	text-decoration: underline;
	text-decoration-thickness: 0.08em;
	text-underline-offset: 0.18em;
}

.sectionHeader p  {
	margin-top: var(--space4);
	font-size: var(--textLg);
	color: var(--colorTextMuted);
	max-width: 42rem;
}

.sectionHeaderCentered,.contactBand  {
	text-align: center;
}

.sectionHeaderCentered .sectionDivider  {
	margin-inline: auto;
}

.sectionDivider  {
	width: 3rem;
	height: 0.2rem;
	margin-top: var(--space4);
	background: var(--colorAccent);
	border-radius: 999px;
}

.aboutBody  {
	font-size: var(--textLg);
}

.aboutBody p + p  {
	margin-top: var(--space4);
}

.bookFeature  {
	display: grid;
	grid-template-columns: auto 1fr;
	gap: var(--space8);
	align-items: start;
	padding: var(--space8);
	background: var(--colorSurfaceStrong);
	border: 1px solid var(--colorBorder);
	border-left: 0.375rem solid var(--colorAccent);
	border-radius: var(--radiusLg);
}

.bookCoverFrame  {
	width: 10rem;
	min-height: 13.75rem;
	padding: var(--space3);
	background: var(--colorAccent);
	color: var(--colorButtonText);
	border-radius: var(--radiusSm);
	display: flex;
	align-items: center;
	justify-content: center;
	text-align: center;
	font-size: var(--textXs);
}

.bookInfo h3  {
	font-size: var(--text2xl);
	margin-bottom: var(--space2);
}

.bookMeta  {
	color: var(--colorTextMuted);
	font-size: var(--textSm);
	margin-bottom: var(--space4);
}
.bookList {
	margin-top: var(--space8);
}
.cardGrid  {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(17rem, 1fr));
	gap: var(--space6);
}

.card  {
	display: flex;
	flex-direction: column;
	gap: var(--space3);
	padding: var(--space6);
	background: var(--colorSurface);
	border: 1px solid var(--colorBorder);
	border-radius: var(--radiusLg);
	box-shadow: var(--shadowCard);
	transition: border-color var(--transitionBase), box-shadow var(--transitionBase), transform var(--transitionBase);
}

.card:hover,.card:focus-within  {
	border-color: var(--colorAccent);
	box-shadow: var(--shadowCardHover);
	transform: translateY(-0.125rem);
}

.card h3  {
	font-size: var(--textLg);
}

.card p:last-of-type  {
	flex-grow: 1;
}

.card p,.contactIntro,.bookMeta  {
	color: var(--colorTextMuted);
}

.editorialList  {
	display: grid;
	gap: 0;
	border-top: 1px solid var(--colorBorder);
}

.editorialItem  {
	padding-block: var(--space6);
	border-bottom: 1px solid var(--colorBorder);
}

.editorialItem h3  {
	font-size: var(--textXl);
}

.editorialItem p  {
	max-width: 48rem;
	color: var(--colorTextMuted);
}

.editorialItem h3 + p  {
	margin-top: var(--space2);
	font-size: var(--textSm);
	font-weight: 700;
}

.editorialItem p + p  {
	margin-top: var(--space3);
}

.editorialListCompact .editorialItem  {
	padding-block: var(--space4);
}

.editorialListCompact .editorialItem h3  {
	font-size: var(--textLg);
}

.titleLink  {
	color: var(--colorHeading);
	text-decoration: underline;
	text-decoration-color: color-mix(in srgb, var(--colorLink) 55%, transparent);
	text-decoration-thickness: 0.08em;
}

.titleLink:hover  {
	color: var(--colorLink);
	text-decoration-color: currentColor;
}

.btn  {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 44px;
	min-width: 44px;
	padding: 0.75rem 1.25rem;
	border: 2px solid transparent;
	border-radius: var(--radiusMd);
	font: inherit;
	font-weight: 600;
	text-decoration: none;
}

.btnSecondary  {
	background: transparent;
	border-color: var(--colorAccent);
	color: var(--colorAccent);
}

.btnSecondary:hover  {
	background: var(--colorAccentSoft);
	color: var(--colorAccentHover);
}

.contactIntro  {
	max-width: 40rem;
	margin: 0 auto var(--space8);
	font-size: var(--textLg);
}


.siteFooter  {
	background: var(--colorFooterBg);
	color: var(--colorFooterText);
	padding-block: var(--space12);
}

.siteFooterInner  {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: var(--space4);
	text-align: center;
}

.siteFooter a  {
	color: var(--colorFooterText);
}

.footerCopy  {
	font-size: var(--textSm);
	color: var(--colorFooterMuted);
}

@media (max-width: 60rem)  {
	.heroLayout,.bookFeature  {
		grid-template-columns: 1fr;
	}

	.heroImage  {
		justify-content: flex-start;
	}
}

@media (max-width: 48rem)  {
	.siteHeaderInner  {
		align-items: flex-start;
		flex-direction: column;
		flex-wrap: wrap;
		gap: var(--space3);
		padding-block: var(--space3);
	}

	.menuToggle  {
		display: inline-flex;
	}

	.siteNav  {
		width: 100%;
	}

	.siteNav[hidden]  {
		display: none;
	}

	.siteNav ul  {
		display: grid;
		gap: 0;
		padding-block: var(--space2);
		border-top: 1px solid var(--colorBorder);
	}

	.siteNav a  {
		display: flex;
		min-height: 48px;
		padding-block: var(--space3);
		border-bottom: 1px solid var(--colorBorder);
		font-size: var(--textBase);
	}
}

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

	html  {
		scroll-behavior: auto;
	}
}
