/*
Theme Name: Gareth V2
Author: Gareth Evans
Description: A lightweight classic theme for gareth-evans.com.
Version: 0.1.0
Text Domain: gareth-v2
*/

@font-face {
	font-family: "Newsreader Quote";
	src: url("assets/fonts/newsreader/Newsreader_14pt-Regular.ttf") format("truetype");
	font-style: normal;
	font-weight: 400;
	font-display: swap;
}

@font-face {
	font-family: "Newsreader Quote";
	src: url("assets/fonts/newsreader/Newsreader_14pt-Italic.ttf") format("truetype");
	font-style: italic;
	font-weight: 400;
	font-display: swap;
}

@font-face {
	font-family: "Newsreader Display";
	src: url("assets/fonts/newsreader/Newsreader_60pt-Medium.ttf") format("truetype");
	font-style: normal;
	font-weight: 500;
	font-display: swap;
}

:root {
	color-scheme: dark;
	--font-sans: "Inter", -apple-system, BlinkMacSystemFont, "SF Pro Text", "Segoe UI", Helvetica, Arial, sans-serif;
	--font-editorial: "Newsreader Display", Georgia, "Times New Roman", serif;
	--font-quote: "Newsreader Quote", Georgia, "Times New Roman", serif;
	--sidebar-width: 17.5rem;
	--content-width: 36rem;
	--writing-width: 44rem;
	--page-padding: clamp(2.5rem, 4.5vw, 5rem);
	--top-spacing: clamp(5rem, 7.5vh, 6rem);
	--background: #161617;
	--sidebar: #161617;
	--surface: #242426;
	--surface-hover: #202022;
	--text: #f2f0eb;
	--body-text: #dfdcd6;
	--secondary: #a09c95;
	--secondary-strong: #aaa69f;
	--faint: #74706a;
	--caption: #827c73;
	--navigation-text: #8d8983;
	--line: #2b2b2e;
	--accent: #5e8ff8;
	--section-number: #7894c7;
	--section-number-background: rgba(94, 143, 248, 0.09);
	--section-number-edge: rgba(120, 148, 199, 0.34);
	--prose-link: #ffffff;
	--media-background: #efede8;
	--avatar-edge: rgba(255, 255, 255, 0.12);
	--interactive-wash: rgba(255, 255, 255, 0.025);
	--interactive-wash-strong: rgba(255, 255, 255, 0.045);
	--interactive-edge: rgba(255, 255, 255, 0.035);
	--divider-soft: rgba(160, 156, 149, 0.11);
	--divider-faint: rgba(160, 156, 149, 0.065);
	--divider-hover: rgba(160, 156, 149, 0.16);
	--control-edge: rgba(160, 156, 149, 0.24);
	--toc-text: #817d76;
	--toc-current: rgba(223, 220, 214, 0.72);
	--progress: rgba(242, 240, 235, 0.62);
	--highlight: rgba(104, 151, 235, 0.28);
	--prose-quiet: #cbc7c1;
	--prose-underline: rgba(160, 156, 149, 0.52);
	--prose-underline-hover: rgba(242, 240, 235, 0.9);
	--table-row-hover: rgba(255, 255, 255, 0.018);
	--inset-background: #1d1c1b;
	--inset-edge: rgba(203, 190, 171, 0.1);
	--inset-text: #d4d0c9;
	--type-display: clamp(2.25rem, 4.5vw, 3.125rem);
	--type-article-section: 1.625rem;
	--type-section: 1.5rem;
	--type-subheading: 1.25rem;
	--type-reading: 1rem;
	--type-body: 1rem;
	--type-label: 0.875rem;
	--type-metadata: 0.8125rem;
	--type-caption: 0.75rem;
	--type-micro: 0.6875rem;
	--measure-display: 22ch;
	--measure-heading: 22ch;
	--measure-lead: 48ch;
	--measure-body: 60ch;
	--measure-reading: 64ch;
	--measure-caption: 58ch;
	--measure-media-wide: 48rem;
	--media-radius: 0.22rem;
	--media-edge: rgba(203, 190, 171, 0.11);
	--leading-display: 1.02;
	--leading-section: 1.2;
	--leading-subheading: 1.5;
	--leading-reading: 1.72;
	--leading-reading-mobile: 1.68;
	--leading-body: 1.62;
	--leading-label: 1.4;
	--leading-caption: 1.45;
	--tracking-display: -0.044em;
	--tracking-section: -0.026em;
	--tracking-subheading: -0.012em;
	--tracking-reading: -0.009em;
	--tracking-body: -0.006em;
	--tracking-label: -0.003em;
	--tracking-metadata: 0.005em;
	--tracking-caption: 0.01em;
	--tracking-uppercase: 0.08em;
	--motion-fast: 140ms;
	--motion-standard: 160ms;
	--motion-ease: cubic-bezier(0.2, 0, 0, 1);
}

html[data-theme="light"] {
	color-scheme: light;
	--background: #f6f5f2;
	--sidebar: #f6f5f2;
	--surface: #ecebe7;
	--surface-hover: #e7e6e1;
	--text: #1d1d1f;
	--body-text: #373638;
	--secondary: #6e6b66;
	--secondary-strong: #5d5a55;
	--faint: #85817a;
	--caption: #77726b;
	--navigation-text: #716e68;
	--line: #dedcd6;
	--accent: #356fc5;
	--section-number: #5275a8;
	--section-number-background: rgba(53, 111, 197, 0.08);
	--section-number-edge: rgba(82, 117, 168, 0.3);
	--prose-link: #171719;
	--media-background: #efede8;
	--media-edge: rgba(67, 58, 47, 0.14);
	--avatar-edge: rgba(29, 29, 31, 0.14);
	--interactive-wash: rgba(29, 29, 31, 0.035);
	--interactive-wash-strong: rgba(29, 29, 31, 0.06);
	--interactive-edge: rgba(29, 29, 31, 0.07);
	--divider-soft: rgba(80, 74, 66, 0.15);
	--divider-faint: rgba(80, 74, 66, 0.09);
	--divider-hover: rgba(80, 74, 66, 0.23);
	--control-edge: rgba(80, 74, 66, 0.25);
	--toc-text: #77736d;
	--toc-current: rgba(29, 29, 31, 0.72);
	--progress: rgba(29, 29, 31, 0.52);
	--highlight: rgba(76, 126, 202, 0.24);
	--prose-quiet: #4e4b47;
	--prose-underline: rgba(55, 54, 56, 0.38);
	--prose-underline-hover: rgba(29, 29, 31, 0.8);
	--table-row-hover: rgba(29, 29, 31, 0.025);
	--inset-background: #eeece7;
	--inset-edge: rgba(67, 58, 47, 0.12);
	--inset-text: #444143;
}

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

html {
	scroll-behavior: smooth;
	background: var(--background);
}

html[data-theme] {
	min-height: 100%;
	background-color: var(--background) !important;
}

body {
	min-height: 100svh;
	margin: 0;
	background: var(--background) !important;
	color: var(--text);
	font-family: var(--font-sans);
	font-size: var(--type-body);
	font-synthesis: weight style;
	font-kerning: normal;
	font-variant-ligatures: common-ligatures contextual;
	letter-spacing: var(--tracking-body);
	line-height: var(--leading-body);
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
}

body::after {
	position: fixed;
	inset: 0;
	z-index: 1000;
	background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='grain'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.82' numOctaves='4' seed='7' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23grain)' fill='%23c8b9a6'/%3E%3C/svg%3E");
	background-repeat: repeat;
	background-size: 180px 180px;
	content: "";
	mix-blend-mode: soft-light;
	opacity: 0.016;
	pointer-events: none;
}

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

a {
	color: inherit;
	text-underline-offset: 0.22em;
}

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

button,
input,
textarea,
select {
	font: inherit;
}

.screen-reader-text {
	position: absolute;
	width: 1px;
	height: 1px;
	padding: 0;
	margin: -1px;
	overflow: hidden;
	clip: rect(0, 0, 0, 0);
	white-space: nowrap;
	border: 0;
}

.screen-reader-text:focus,
.skip-link:focus {
	top: 0.75rem;
	left: 0.75rem;
	z-index: 100000;
	width: auto;
	height: auto;
	padding: 0.7rem 1rem;
	clip: auto;
	border-radius: 0.5rem;
	background: var(--text);
	color: var(--background);
}

/* Fixed personal navigation */

.site-header {
	position: fixed;
	top: 0;
	left: 0;
	z-index: 10;
	width: var(--sidebar-width);
	height: 100svh;
	padding: var(--top-spacing) 2.5rem;
	background: var(--sidebar);
}

.admin-bar .site-header {
	top: 32px;
	height: calc(100svh - 32px);
}

.site-header__inner {
	display: flex;
	height: 100%;
	flex-direction: column;
}

.site-identity {
	display: grid;
	grid-template-columns: 2rem minmax(0, 1fr);
	align-items: center;
	gap: 0.8rem;
	padding-inline: 0.625rem;
	color: var(--text);
	text-decoration: none;
}

.site-avatar {
	display: block;
	width: 2rem;
	height: 2rem;
	border: 1px solid var(--avatar-edge);
	border-radius: 50%;
	object-fit: cover;
	transition: filter 160ms var(--motion-ease), transform 160ms var(--motion-ease);
}

.site-identity__text {
	display: flex;
	min-width: 0;
	flex-direction: column;
	line-height: var(--leading-label);
}

.site-identity__text strong {
	overflow: hidden;
	font-size: var(--type-label);
	font-weight: 650;
	letter-spacing: var(--tracking-section);
	text-overflow: ellipsis;
	white-space: nowrap;
}

.site-identity__text small {
	margin-top: 0.28rem;
	color: var(--secondary);
	font-size: var(--type-caption);
	font-weight: 450;
	letter-spacing: var(--tracking-caption);
	line-height: var(--leading-caption);
}

.site-identity:hover,
.site-identity:focus-visible,
.site-identity:hover small,
.site-identity:focus-visible small {
	text-decoration: none !important;
}

@media (hover: hover) and (pointer: fine) {
	.site-identity:hover .site-avatar,
	.site-identity:focus-visible .site-avatar {
		filter: brightness(1.04);
		transform: scale(1.02);
	}
}

.menu-toggle {
	display: none;
}

.site-navigation {
	margin-top: 2.35rem;
}

.site-navigation ul {
	display: flex;
	flex-direction: column;
	gap: 0.375rem;
	margin: 0;
	padding: 0;
	list-style: none;
}

.site-navigation a {
	display: flex;
	align-items: center;
	gap: 0.75rem;
	min-height: 2.5rem;
	padding: 0.55rem 0.75rem;
	border: 1px solid transparent;
	border-radius: 0.375rem;
	color: var(--navigation-text);
	font-size: var(--type-metadata);
	font-weight: 500;
	letter-spacing: var(--tracking-label);
	line-height: var(--leading-label);
	text-decoration: none;
	transition: background-color 140ms ease, border-color 140ms ease, color 140ms ease;
}

.site-navigation svg {
	width: 1rem;
	height: 1rem;
	flex: 0 0 auto;
	fill: none;
	stroke: currentColor;
	stroke-linecap: round;
	stroke-linejoin: round;
	stroke-width: 1.45;
	vector-effect: non-scaling-stroke;
}

.site-navigation a:hover {
	background: var(--interactive-wash);
	color: var(--body-text);
}

.site-navigation a:focus-visible {
	background: var(--interactive-edge);
	color: var(--text);
}

.site-navigation .current-menu-item > a {
	border-color: var(--interactive-edge);
	background: var(--interactive-wash-strong);
	color: var(--body-text);
}

.site-navigation .current-menu-item svg {
	color: var(--secondary);
}

.article-toc {
	max-height: min(19rem, 36vh);
	margin-top: 2.75rem;
	padding: 0 0.75rem;
	overflow-y: auto;
	overscroll-behavior: contain;
	scroll-behavior: smooth;
	scrollbar-width: none;
}

.article-toc::-webkit-scrollbar {
	display: none;
}

.article-toc__label {
	position: sticky;
	top: 0;
	z-index: 1;
	display: block;
	margin-bottom: 0;
	padding-bottom: 0.8rem;
	background: var(--sidebar);
	color: var(--faint);
	font-size: var(--type-micro);
	font-weight: 600;
	letter-spacing: var(--tracking-uppercase);
	line-height: var(--leading-caption);
	text-transform: uppercase;
}

.article-toc__list {
	margin: 0;
	padding: 0;
	border-left: 1px solid var(--divider-soft);
	list-style: none;
}

.article-toc__item + .article-toc__item {
	margin-top: 0.5rem;
}

.article-toc a {
	position: relative;
	display: block;
	padding-left: 0.8rem;
	color: var(--toc-text);
	font-size: var(--type-caption);
	letter-spacing: var(--tracking-caption);
	line-height: 1.35;
	text-decoration: none;
	text-wrap: pretty;
	transition: color var(--motion-fast) var(--motion-ease), transform var(--motion-standard) var(--motion-ease);
}

.article-toc a::before {
	position: absolute;
	top: 0.12rem;
	bottom: 0.12rem;
	left: -1px;
	width: 1px;
	background: transparent;
	content: "";
	transition: background-color var(--motion-fast) var(--motion-ease);
}

.article-toc a:hover,
.article-toc a:focus-visible,
.article-toc a[aria-current="location"] {
	color: var(--body-text);
}

.article-toc a[aria-current="location"]::before {
	background: var(--toc-current);
}

.article-toc a:hover,
.article-toc a:focus-visible {
	transform: translateX(1px);
}

.appearance-toggle {
	display: flex;
	width: 100%;
	align-items: center;
	justify-content: space-between;
	gap: 1rem;
	margin-top: auto;
	padding: 0.6rem 0.75rem;
	border: 1px solid transparent;
	border-radius: 0.375rem;
	background: transparent;
	color: var(--faint);
	cursor: pointer;
	font-size: var(--type-micro);
	font-weight: 500;
	letter-spacing: var(--tracking-caption);
	line-height: var(--leading-label);
	transition: background-color var(--motion-fast) var(--motion-ease), border-color var(--motion-fast) var(--motion-ease), color var(--motion-fast) var(--motion-ease);
}

.appearance-toggle:hover,
.appearance-toggle:focus-visible {
	border-color: var(--interactive-edge);
	background: var(--interactive-wash);
	color: var(--secondary);
}

.appearance-toggle__label {
	display: inline-flex;
	align-items: center;
	gap: 0.6rem;
}

.appearance-toggle__label svg {
	width: 0.9rem;
	height: 0.9rem;
	fill: none;
	stroke: currentColor;
	stroke-linecap: round;
	stroke-linejoin: round;
	stroke-width: 1.45;
}

.appearance-toggle__icon--sun {
	display: none;
}

html[data-theme="light"] .appearance-toggle__icon--moon {
	display: none;
}

html[data-theme="light"] .appearance-toggle__icon--sun {
	display: block;
}

.appearance-toggle__switch {
	position: relative;
	display: block;
	width: 1.85rem;
	height: 1.05rem;
	flex: 0 0 auto;
	border: 1px solid var(--control-edge);
	border-radius: 999px;
	background: var(--interactive-edge);
}

.appearance-toggle__switch span {
	position: absolute;
	top: 0.16rem;
	right: 0.16rem;
	width: 0.62rem;
	height: 0.62rem;
	border-radius: 50%;
	background: var(--secondary);
	transition: transform var(--motion-standard) var(--motion-ease);
}

html[data-theme="light"] .appearance-toggle__switch span {
	transform: translateX(-0.8rem);
}

/* Main content area */

.site-main {
	width: auto;
	min-height: 0;
	margin-left: var(--sidebar-width);
	padding: var(--top-spacing) var(--page-padding) 2rem;
	background: var(--background);
}

/* Not found */

.error-404-main {
	display: flex;
	min-height: calc(100svh - 4rem);
	align-items: center;
	padding-top: clamp(5rem, 12vh, 8rem);
	padding-bottom: clamp(5rem, 12vh, 8rem);
}

.error-404 {
	width: min(100%, 34rem);
}

.error-404__code {
	display: flex;
	align-items: center;
	gap: 0.8rem;
	margin: 0 0 1rem;
	color: var(--faint);
	font-size: var(--type-micro);
	font-weight: 600;
	letter-spacing: var(--tracking-uppercase);
	line-height: var(--leading-caption);
	text-transform: uppercase;
}

.error-404__line {
	position: relative;
	display: block;
	width: 2.5rem;
	height: 1px;
	background: var(--line);
}

.error-404__line::after {
	position: absolute;
	top: 50%;
	left: var(--error-dot-position, 50%);
	width: 3px;
	height: 3px;
	border-radius: 50%;
	background: var(--secondary);
	content: "";
	transform: translate(-50%, -50%);
}

.error-404 h1 {
	max-width: 12ch;
	margin: 0;
	color: var(--text);
	font-size: clamp(2.5rem, 5vw, 3.5rem);
	font-weight: 500;
	letter-spacing: var(--tracking-display);
	line-height: 1.04;
	text-wrap: balance;
}

.error-404__message {
	max-width: 43ch;
	margin: 1.5rem 0 0;
	color: var(--secondary);
	font-size: var(--type-body);
	letter-spacing: var(--tracking-body);
	line-height: var(--leading-body);
	text-wrap: pretty;
}

.error-404__links {
	display: flex;
	flex-wrap: wrap;
	gap: 1.5rem;
	margin-top: 2.5rem;
}

.error-404__links a {
	display: inline-flex;
	align-items: baseline;
	gap: 0.4rem;
	color: var(--body-text);
	font-size: var(--type-metadata);
	font-weight: 520;
	letter-spacing: var(--tracking-label);
	line-height: var(--leading-label);
	text-decoration: none;
	transition: color var(--motion-fast) var(--motion-ease), transform var(--motion-standard) var(--motion-ease);
}

.error-404__links a span {
	color: var(--faint);
	transition: color var(--motion-fast) var(--motion-ease), transform var(--motion-standard) var(--motion-ease);
}

.error-404__links a:hover,
.error-404__links a:focus-visible {
	color: var(--text);
}

.error-404__links a:hover span,
.error-404__links a:focus-visible span {
	color: currentColor;
	transform: translateX(2px);
}

.home-about,
.page-header,
.entry,
.post-list,
.pagination,
.comments-area,
.no-results {
	width: min(100%, var(--content-width));
	margin: 0;
}

.writing-index {
	width: min(100%, var(--writing-width));
	margin: 0;
}

/* About-style homepage */

.home-about h1,
.writing-index h1 {
	max-width: var(--measure-heading);
	margin: 0 0 1.5rem;
	font-size: var(--type-section);
	font-weight: 600;
	letter-spacing: var(--tracking-section);
	line-height: var(--leading-section);
	text-wrap: balance;
}

.writing-index h1 {
	margin-bottom: 0;
}

.writing-index__header {
	margin-bottom: 1.85rem;
}

.writing-index__heading-row {
	display: flex;
	align-items: baseline;
	justify-content: space-between;
	gap: 1.5rem;
}

.writing-filter__toggle {
	display: inline-flex;
	padding: 0.2rem 0;
	align-items: center;
	gap: 0.45rem;
	border: 0;
	background: transparent;
	color: var(--faint);
	cursor: pointer;
	font-size: var(--type-micro);
	letter-spacing: var(--tracking-metadata);
	line-height: 1;
	transition: color var(--motion-fast) var(--motion-ease);
}

.writing-filter__toggle:hover,
.writing-filter__toggle:focus-visible,
.writing-filter__toggle[aria-expanded="true"] {
	color: var(--secondary-strong);
}

.writing-filter__toggle kbd {
	display: inline-grid;
	width: 1.35rem;
	height: 1.35rem;
	place-items: center;
	border: 1px solid var(--divider-soft);
	border-radius: 0.2rem;
	background: var(--surface);
	color: var(--secondary);
	font-family: ui-monospace, "SFMono-Regular", Menlo, Consolas, monospace;
	font-size: 0.65rem;
	font-weight: 400;
}

html[data-theme="light"] .writing-filter__toggle kbd {
	background: transparent;
	color: var(--navigation-text);
}

.writing-filter {
	width: min(100%, 22rem);
	margin-top: 1.1rem;
}

.writing-filter input {
	width: 100%;
	padding: 0.45rem 0 0.55rem;
	border: 0;
	border-bottom: 1px solid var(--divider-soft);
	border-radius: 0;
	background: transparent;
	color: var(--text);
	font-size: var(--type-label);
	letter-spacing: var(--tracking-label);
	line-height: var(--leading-label);
	outline: 0;
	transition: border-color var(--motion-fast) var(--motion-ease);
}

.writing-filter input::placeholder {
	color: var(--faint);
	opacity: 1;
}

.writing-filter input:focus {
	border-color: var(--secondary-strong);
}

.writing-filter[hidden],
.writing-filter__toggle[hidden],
.writing-filter__empty[hidden],
.writing-list > li[hidden] {
	display: none;
}

.writing-filter__empty {
	margin: 0.5rem 0 0;
	color: var(--faint);
	font-size: var(--type-label);
}

.writing-index__intro {
	max-width: 60ch;
	margin: 0.7rem 0 0;
	color: var(--secondary);
	font-size: var(--type-label);
	letter-spacing: var(--tracking-label);
	line-height: 1.55;
	text-wrap: balance;
}

.writing-index__intro a {
	color: var(--secondary-strong);
	text-decoration-color: var(--divider-soft);
	text-decoration-thickness: 1px;
	text-underline-offset: 0.2em;
	transition: color var(--motion-fast) var(--motion-ease), text-decoration-color var(--motion-fast) var(--motion-ease);
}

.writing-index__intro a:hover,
.writing-index__intro a:focus-visible {
	color: var(--text);
	text-decoration-color: currentColor;
}

.topic-index__header {
	margin-bottom: 2.5rem;
}

.writing-index .topic-index__header h1 {
	margin-bottom: 0;
}

.topic-index__label {
	margin: 0 0 0.65rem;
	color: var(--faint);
	font-size: var(--type-micro);
	font-weight: 600;
	letter-spacing: var(--tracking-uppercase);
	line-height: var(--leading-caption);
	text-transform: uppercase;
}

.topic-index__description {
	max-width: 46ch;
	margin-top: 0.85rem;
	color: var(--secondary);
	font-size: var(--type-label);
	letter-spacing: var(--tracking-label);
	line-height: 1.55;
	text-wrap: pretty;
}

.topic-index__description > :first-child {
	margin-top: 0;
}

.topic-index__description > :last-child {
	margin-bottom: 0;
}

/* Projects */

.projects-index {
	width: min(100%, 38rem);
}

.projects-index__header {
	margin-bottom: 2.25rem;
}

.projects-index__header h1 {
	margin: 0;
	font-size: var(--type-section);
	font-weight: 600;
	letter-spacing: var(--tracking-section);
	line-height: var(--leading-section);
}

.projects-index__header p {
	max-width: 42ch;
	margin: 0.7rem 0 0;
	color: var(--secondary);
	font-size: var(--type-label);
	letter-spacing: var(--tracking-label);
	line-height: 1.55;
	text-wrap: pretty;
}

.projects-list {
	margin: 0;
	padding: 0;
	border-top: 1px solid var(--divider-soft);
	list-style: none;
}

.project-item {
	display: grid;
	grid-template-columns: 1.5rem minmax(0, 1fr);
	gap: 0.8rem;
	padding: 1.35rem 0;
	border-bottom: 1px solid var(--divider-soft);
}

.project-item__number {
	padding-top: 0.2rem;
	color: var(--faint);
	font-family: ui-monospace, "SFMono-Regular", Menlo, Consolas, monospace;
	font-size: var(--type-micro);
	font-variant-numeric: tabular-nums;
	letter-spacing: var(--tracking-metadata);
}

.project-item__heading {
	display: flex;
	align-items: baseline;
	justify-content: space-between;
	gap: 1.25rem;
}

.project-item h2 {
	margin: 0;
	color: var(--text);
	font-size: 1.0625rem;
	font-weight: 560;
	letter-spacing: -0.018em;
	line-height: 1.35;
}

.project-item h2 a {
	display: inline-flex;
	align-items: baseline;
	gap: 0.35rem;
	color: inherit;
	text-decoration: none;
	transition: color var(--motion-fast) var(--motion-ease);
}

.project-item h2 a span {
	color: var(--faint);
	font-size: 0.72em;
	font-weight: 450;
	transition: color var(--motion-fast) var(--motion-ease), transform var(--motion-standard) var(--motion-ease);
}

.project-item h2 a:hover,
.project-item h2 a:focus-visible {
	color: var(--prose-link);
}

.project-item h2 a:hover span,
.project-item h2 a:focus-visible span {
	color: currentColor;
	transform: translate(1px, -1px);
}

.project-item__status {
	display: inline-flex;
	align-items: center;
	gap: 0.4rem;
	flex: 0 0 auto;
	color: var(--faint);
	font-size: var(--type-micro);
	font-weight: 500;
	letter-spacing: var(--tracking-caption);
	line-height: var(--leading-caption);
}

.project-item__status::before {
	width: 0.25rem;
	height: 0.25rem;
	border-radius: 50%;
	background: currentColor;
	content: "";
}

.project-item__content > p {
	max-width: 48ch;
	margin: 0.55rem 0 0;
	color: var(--secondary-strong);
	font-size: 0.9375rem;
	letter-spacing: -0.004em;
	line-height: 1.56;
	text-wrap: pretty;
}

.home-about__prose {
	max-width: var(--measure-body);
	color: var(--body-text);
	font-size: var(--type-body);
	letter-spacing: var(--tracking-body);
	line-height: var(--leading-body);
}

.home-about__prose p {
	margin: 0 0 1.5rem;
	text-wrap: pretty;
}

.home-about__prose p:last-child {
	margin-bottom: 0;
}

.home-about__prose a {
	text-decoration-color: var(--secondary);
	text-decoration-thickness: 1px;
}

.home-links {
	display: flex;
	flex-wrap: wrap;
	gap: 1.35rem;
	margin-top: 2.75rem;
}

.home-links a {
	display: inline-flex;
	align-items: baseline;
	gap: 0.32rem;
	color: var(--secondary);
	font-size: var(--type-metadata);
	font-weight: 500;
	letter-spacing: var(--tracking-label);
	line-height: var(--leading-label);
	text-decoration: none;
	transition: color 140ms ease;
}

.home-links a span {
	color: var(--faint);
	font-size: 0.85em;
	transition: color 140ms ease, transform 140ms ease;
}

.home-links a:hover,
.home-links a:focus-visible {
	color: var(--text);
}

.home-links a:hover span,
.home-links a:focus-visible span {
	color: currentColor;
	transform: translate(1px, -1px);
}

/* Writing index */

.writing-list {
	display: flex;
	width: 100%;
	flex-direction: column;
	gap: 0.25rem;
	margin: 0;
	padding: 0;
	list-style: none;
}

.writing-list li {
	min-width: 0;
}

.writing-list time {
	color: var(--faint);
	font-family: ui-monospace, "SFMono-Regular", Menlo, Consolas, monospace;
	font-size: var(--type-label);
	font-variant-numeric: tabular-nums;
	letter-spacing: var(--tracking-metadata);
	line-height: var(--leading-label);
	white-space: nowrap;
}

.writing-list a {
	display: grid;
	width: calc(100% + 1.25rem);
	min-height: 2.625rem;
	margin-inline: -0.625rem;
	padding: 0.5rem 0.625rem;
	grid-template-columns: minmax(0, auto) minmax(1.5rem, 1fr) auto;
	align-items: baseline;
	gap: 0.75rem;
	border-radius: 0.3rem;
	color: var(--body-text);
	font-size: var(--type-body);
	letter-spacing: var(--tracking-body);
	line-height: var(--leading-label);
	text-decoration: none;
	text-wrap: pretty;
	transition: background-color 140ms ease;
}

.writing-list a:hover,
.writing-list a:focus-visible {
	background: var(--interactive-wash);
}

.writing-list__title {
	display: block;
	min-width: 0;
	overflow-wrap: anywhere;
	text-wrap: pretty;
	transition: color var(--motion-fast) var(--motion-ease), transform var(--motion-standard) var(--motion-ease);
}

.writing-list__leader {
	align-self: center;
	margin-inline: 0.25rem;
	border-top: 1px solid var(--divider-faint);
	transition: border-color var(--motion-fast) var(--motion-ease);
}

.writing-list a:hover .writing-list__title,
.writing-list a:focus-visible .writing-list__title {
	color: var(--text);
	transform: translateX(1px);
}

.writing-list a:hover .writing-list__leader,
.writing-list a:focus-visible .writing-list__leader {
	border-color: var(--divider-hover);
}

.writing-index__empty {
	color: var(--secondary);
}

.writing-index__topics {
	margin-top: clamp(2.75rem, 5vw, 3.5rem);
	padding-top: 1.35rem;
	border-top: 1px solid var(--divider-faint);
}

.writing-index__topics > p {
	margin: 0 0 0.75rem;
	color: var(--faint);
	font-size: var(--type-micro);
	font-weight: 600;
	letter-spacing: var(--tracking-uppercase);
	line-height: var(--leading-caption);
	text-transform: uppercase;
}

.writing-index__topics ul {
	display: flex;
	flex-wrap: wrap;
	gap: 0.35rem 0;
	margin: 0;
	padding: 0;
	list-style: none;
}

.writing-index__topics li {
	display: inline-flex;
	align-items: center;
	line-height: var(--leading-label);
}

.writing-index__topics li:not(:last-child)::after {
	margin-inline: 0.55rem;
	color: var(--divider-hover);
	content: "·";
}

.writing-index__topics a {
	display: inline-block;
	color: var(--secondary);
	font-size: var(--type-metadata);
	font-weight: 500;
	letter-spacing: var(--tracking-metadata);
	line-height: var(--leading-label);
	text-decoration: none;
	transition: color var(--motion-fast) var(--motion-ease);
}

.writing-index__topics a:hover,
.writing-index__topics a:focus-visible {
	color: var(--text);
	transform: translateY(-1px);
}

/* Posts, archives, and normal pages */

.page-header,
.entry-header {
	margin-bottom: 2.25rem;
}

.page-title,
.entry-title {
	max-width: var(--measure-heading);
	margin: 0 0 0.65rem;
	font-size: var(--type-section);
	font-weight: 620;
	letter-spacing: var(--tracking-section);
	line-height: var(--leading-section);
	text-wrap: balance;
}

.entry-title a {
	text-decoration: none;
}

.entry-meta {
	color: var(--secondary);
	font-size: var(--type-metadata);
	letter-spacing: var(--tracking-metadata);
	line-height: var(--leading-label);
}

.entry-thumbnail {
	margin: 0 0 2rem;
	border-radius: 0.65rem;
	overflow: hidden;
}

.entry-content,
.entry-summary {
	max-width: var(--measure-reading);
	color: var(--body-text);
}

.entry-summary {
	text-wrap: pretty;
}

.entry-content {
	font-size: var(--type-reading);
	letter-spacing: var(--tracking-reading);
	line-height: var(--leading-reading);
}

.entry-content a {
	text-decoration-thickness: 1px;
}

.entry-content > *:first-child,
.entry-summary > *:first-child {
	margin-top: 0;
}

.entry-content > *:last-child,
.entry-summary > *:last-child {
	margin-bottom: 0;
}

.post-list .entry {
	padding-block: 1.75rem;
	border-top: 1px solid var(--line);
}

.post-list .entry:first-child {
	padding-top: 0;
	border-top: 0;
}

.post-navigation,
.pagination {
	margin-top: 3rem;
}

.nav-links {
	display: flex;
	flex-wrap: wrap;
	justify-content: space-between;
	gap: 1rem;
}

/* Long-form reading */

.reading-progress {
	position: fixed;
	top: 0;
	right: 0;
	left: var(--sidebar-width);
	z-index: 20;
	height: 1px;
	overflow: hidden;
	opacity: 0;
	pointer-events: none;
	transition: opacity 180ms ease;
}

.reading-progress.is-active {
	opacity: 1;
}

.reading-progress span {
	display: block;
	width: 100%;
	height: 100%;
	background: var(--progress);
	transform: scaleX(0);
	transform-origin: left center;
	will-change: transform;
}

.admin-bar .reading-progress {
	top: 32px;
}

.single-main {
	padding-top: clamp(4.75rem, 7.5vh, 6rem);
}

.entry--single {
	--article-measure: 61ch;
	--article-text-size: 1rem;
	width: min(100%, var(--article-measure));
}

.entry--single .entry-header {
	margin-bottom: clamp(1.9rem, 3.5vw, 2.4rem);
}

.entry--single .entry-header::after {
	display: block;
	width: 2.75rem;
	height: 1px;
	margin-top: 1.65rem;
	background: var(--line);
	content: "";
}

.entry-kicker {
	display: flex;
	flex-wrap: wrap;
	gap: 0.45rem;
	margin-bottom: 0.95rem;
	color: var(--secondary);
	font-size: var(--type-caption);
	font-weight: 600;
	letter-spacing: var(--tracking-uppercase);
	line-height: var(--leading-caption);
	text-transform: uppercase;
}

.entry-kicker a {
	color: inherit;
	text-decoration: none;
}

.entry-kicker a:hover {
	color: var(--text);
}

.entry--single .entry-title {
	margin: 0;
	font-family: var(--font-editorial);
	font-size: var(--type-display);
	font-weight: 500;
	letter-spacing: -0.026em;
	line-height: 1.04;
	text-wrap: balance;
}

.entry--single .entry-title--short {
	max-width: min(100%, 18ch);
}

.entry--single .entry-title--medium {
	max-width: var(--measure-display);
}

.entry--single .entry-title--long {
	max-width: 100%;
}

.entry-dek {
	max-width: 38ch;
	margin: 1.15rem 0 0;
	color: var(--secondary);
	font-size: var(--type-subheading);
	font-weight: 400;
	letter-spacing: var(--tracking-subheading);
	line-height: 1.42;
	text-wrap: pretty;
}

.entry--single .entry-meta {
	display: flex;
	align-items: center;
	gap: 0.55rem;
	margin-top: 1.4rem;
	color: var(--faint);
	font-size: var(--type-caption);
	font-variant-numeric: tabular-nums;
	letter-spacing: var(--tracking-metadata);
	line-height: var(--leading-caption);
}

.entry--single .entry-content {
	display: flow-root;
	color: var(--body-text);
	font-size: var(--article-text-size);
	font-kerning: normal;
	font-variant-ligatures: common-ligatures contextual;
	hanging-punctuation: first allow-end last;
	letter-spacing: var(--tracking-reading);
	line-height: var(--leading-reading);
}

.entry--single .entry-content q {
	quotes: "“" "”" "‘" "’";
}

.entry--single .entry-content q::before {
	content: open-quote;
}

.entry--single .entry-content q::after {
	content: close-quote;
}

.entry--single .entry-content p,
.entry--single .entry-content ul,
.entry--single .entry-content ol {
	font-size: var(--article-text-size) !important;
	letter-spacing: var(--tracking-body) !important;
	line-height: var(--leading-reading) !important;
	margin: 0 0 1.38em;
}

.entry--single .entry-content p {
	text-wrap: wrap;
}

.entry--single .entry-content h2,
.entry--single .entry-content h3,
.entry--single .entry-content h4 {
	scroll-margin-top: 2rem;
	font-weight: 620;
	letter-spacing: var(--tracking-section);
	line-height: 1.24;
	text-wrap: balance;
}

.entry--single .entry-content h2 {
	margin: clamp(3.25rem, 7vw, 4.25rem) 0 0.9rem;
	font-size: var(--type-article-section) !important;
}

.entry--single .entry-content h3 {
	margin: 2.75rem 0 0.8rem;
	font-size: var(--type-subheading) !important;
}

.entry--single .entry-content h3.entry-heading--numbered {
	display: grid;
	grid-template-columns: 1.75rem minmax(0, 1fr);
	align-items: start;
	column-gap: 0.7rem;
}

.entry-heading__number {
	display: inline-flex;
	width: 1.75rem;
	height: 1.75rem;
	align-items: center;
	justify-content: center;
	margin-top: -0.08rem;
	border: 1px solid var(--section-number-edge);
	border-radius: 50%;
	background: var(--section-number-background);
	color: var(--section-number);
	font-family: var(--font-sans);
	font-size: 0.68rem;
	font-variant-numeric: tabular-nums;
	font-weight: 600;
	letter-spacing: 0;
	line-height: 1;
}

.entry-heading__text {
	min-width: 0;
}

.entry--single .entry-content h4 {
	margin: 2.25rem 0 0.7rem;
	font-size: 1.0625rem !important;
}

/* Editorial inset blocks: use a Group block with a background colour in WordPress. */

.entry--single .entry-content .wp-block-group.has-background,
.entry--single .entry-content .wp-block-group.is-style-key-takeaway {
	margin: clamp(2rem, 4vw, 2.5rem) 0;
	padding: clamp(1.2rem, 2.5vw, 1.5rem) clamp(1.25rem, 3vw, 1.65rem) !important;
	border: 1px solid var(--inset-edge);
	border-radius: var(--media-radius);
	background-color: var(--inset-background) !important;
	color: var(--inset-text) !important;
}

.entry--single .entry-content .wp-block-group.has-background > :first-child,
.entry--single .entry-content .wp-block-group.is-style-key-takeaway > :first-child,
.entry--single .entry-content .wp-block-group.has-background > .wp-block-group__inner-container > :first-child,
.entry--single .entry-content .wp-block-group.is-style-key-takeaway > .wp-block-group__inner-container > :first-child {
	margin-top: 0 !important;
}

.entry--single .entry-content .wp-block-group.has-background > :last-child,
.entry--single .entry-content .wp-block-group.is-style-key-takeaway > :last-child,
.entry--single .entry-content .wp-block-group.has-background > .wp-block-group__inner-container > :last-child,
.entry--single .entry-content .wp-block-group.is-style-key-takeaway > .wp-block-group__inner-container > :last-child {
	margin-bottom: 0 !important;
}

.entry--single .entry-content .wp-block-group.has-background p:last-child,
.entry--single .entry-content .wp-block-group.is-style-key-takeaway p:last-child {
	margin-bottom: 0 !important;
}

.entry--single .entry-content .wp-block-group.has-background > h2:first-child,
.entry--single .entry-content .wp-block-group.has-background > h3:first-child,
.entry--single .entry-content .wp-block-group.has-background > h4:first-child,
.entry--single .entry-content .wp-block-group.is-style-key-takeaway > h2:first-child,
.entry--single .entry-content .wp-block-group.is-style-key-takeaway > h3:first-child,
.entry--single .entry-content .wp-block-group.is-style-key-takeaway > h4:first-child {
	margin-top: 0 !important;
}

.entry--single .entry-content .wp-block-group.has-background p,
.entry--single .entry-content .wp-block-group.has-background li,
.entry--single .entry-content .wp-block-group.is-style-key-takeaway p,
.entry--single .entry-content .wp-block-group.is-style-key-takeaway li {
	color: var(--inset-text) !important;
	font-size: 0.9375rem !important;
	letter-spacing: -0.004em !important;
	line-height: 1.62 !important;
}

.entry--single .entry-content .wp-block-group.has-background h2,
.entry--single .entry-content .wp-block-group.has-background h3,
.entry--single .entry-content .wp-block-group.has-background h4,
.entry--single .entry-content .wp-block-group.is-style-key-takeaway h2,
.entry--single .entry-content .wp-block-group.is-style-key-takeaway h3,
.entry--single .entry-content .wp-block-group.is-style-key-takeaway h4 {
	color: var(--text) !important;
}

body .entry--single .entry-content .wp-block-group .is-style-inset-label {
	display: block;
	margin: 0 0 0.65rem !important;
	color: var(--section-number) !important;
	font-family: var(--font-sans);
	font-size: var(--type-micro) !important;
	font-weight: 600 !important;
	letter-spacing: var(--tracking-uppercase) !important;
	line-height: var(--leading-caption) !important;
	text-transform: uppercase;
}

body .entry--single .entry-content .wp-block-group .is-style-inset-label + h2,
body .entry--single .entry-content .wp-block-group .is-style-inset-label + h3,
body .entry--single .entry-content .wp-block-group .is-style-inset-label + h4 {
	margin-top: 0.35rem !important;
}

/* Compact editorial sequences used within essays. */

.entry--single .entry-content .article-model {
	width: 100%;
	margin: clamp(2.5rem, 6vw, 3.5rem) 0;
	padding: 1rem 0 0;
	border-top: 1px solid var(--divider-soft);
	border-bottom: 1px solid var(--divider-soft);
}

.entry--single .entry-content .article-model figcaption {
	margin: 0 0 1.15rem;
	color: var(--faint) !important;
	font-family: var(--font-sans);
	font-size: var(--type-micro) !important;
	font-weight: 650;
	letter-spacing: var(--tracking-uppercase);
	line-height: var(--leading-caption);
	text-align: left;
	text-transform: uppercase;
}

.entry--single .entry-content .article-model ol {
	display: grid;
	gap: 0;
	margin: 0;
	padding: 0;
	counter-reset: article-model;
	list-style: none;
}

.entry--single .entry-content .article-model ol:not(.wp-block-footnotes) > li {
	display: grid;
	position: relative;
	min-width: 0;
	padding: 1rem 0;
	grid-template-columns: 2rem minmax(0, 1fr);
	align-items: start;
	gap: 0.85rem;
	border-top: 1px solid var(--divider-faint);
	counter-increment: none;
	margin-top: 0;
}

.entry--single .entry-content .article-model ol:not(.wp-block-footnotes) > li::before,
.entry--single .entry-content .article-model ol:not(.wp-block-footnotes) > li::after {
	display: none;
	content: none !important;
}

.entry--single .entry-content .article-model__number {
	display: inline-flex;
	width: 1.75rem;
	height: 1.75rem;
	align-items: center;
	justify-content: center;
	border: 1px solid var(--section-number-edge);
	border-radius: 50%;
	background: var(--section-number-background);
	color: var(--section-number);
	font-family: ui-monospace, "SFMono-Regular", Menlo, Consolas, monospace;
	font-size: 0.6rem;
	font-variant-numeric: tabular-nums;
	font-weight: 600;
	letter-spacing: 0.01em;
	line-height: 1;
}

body .entry--single .entry-content .article-model p {
	margin: 0 !important;
	color: var(--body-text) !important;
	font-size: var(--type-body) !important;
	font-weight: 500;
	letter-spacing: var(--tracking-body) !important;
	line-height: 1.48 !important;
}

.entry--single .entry-content .article-model__connector {
	display: none;
}

@media (min-width: 42rem) {
	.entry--single .entry-content .article-model {
		padding-top: 1.1rem;
	}

	.entry--single .entry-content .article-model ol {
		grid-template-columns: repeat(3, minmax(0, 1fr));
	}

	.entry--single .entry-content .article-model ol:not(.wp-block-footnotes) > li {
		display: block;
		padding: 0 1.5rem 1.4rem 0;
		border-top: 0;
	}

	.entry--single .entry-content .article-model ol:not(.wp-block-footnotes) > li:not(:first-child) {
		padding-left: 1.5rem;
	}

	.entry--single .entry-content .article-model__connector {
		display: block;
		position: absolute;
		top: 0.86rem;
		left: 2.25rem;
		width: calc(100% - 2.7rem);
		height: 1px;
		background: var(--divider-faint);
	}

	.entry--single .entry-content .article-model__connector::after {
		position: absolute;
		top: -0.17rem;
		right: 0;
		width: 0.35rem;
		height: 0.35rem;
		border-top: 1px solid var(--divider-hover);
		border-right: 1px solid var(--divider-hover);
		content: "";
		transform: rotate(45deg);
	}

	.entry--single .entry-content .article-model__number {
		position: relative;
		z-index: 1;
		margin-bottom: 1rem;
		background: var(--background);
	}
}

/* The Anatomy of Friction — a responsive relationship graph. */

.entry--single .entry-content .friction-model {
	width: 100%;
	margin: clamp(2.75rem, 7vw, 4rem) 0;
	padding: 0;
	border-top: 1px solid var(--divider-soft);
	border-bottom: 1px solid var(--divider-soft);
}

.friction-model__diagram {
	display: grid;
	position: relative;
}

.friction-model__orbit,
.friction-model__axis {
	display: none;
}

.friction-model__core {
	padding: 1rem 0;
	border-bottom: 1px solid var(--divider-soft);
	color: var(--text);
	font-family: var(--font-editorial);
	font-size: 1.2rem;
	font-weight: 500;
	letter-spacing: -0.018em;
}

.friction-model__spoke {
	display: grid;
	position: relative;
	min-height: 4.25rem;
	padding: 0.9rem 0;
	grid-template-columns: minmax(0, 1fr) minmax(4.75rem, auto);
	align-items: center;
	gap: 0.85rem;
	border-bottom: 1px solid var(--divider-faint);
	outline: 0;
}

.friction-model__line {
	display: none;
}

.friction-model__relation {
	display: grid;
	min-width: 0;
	grid-template-columns: 1.25rem auto 0.75rem minmax(0, 1fr);
	align-items: baseline;
	gap: 0.2rem;
	color: var(--body-text);
	font-size: var(--type-label);
	letter-spacing: var(--tracking-label);
	line-height: var(--leading-label);
}

.friction-model__relation em {
	color: var(--text);
	font-family: var(--font-quote);
	font-size: 1.05em;
	font-weight: 400;
}

.friction-model__index {
	color: var(--faint);
	font-family: ui-monospace, "SFMono-Regular", Menlo, Consolas, monospace;
	font-size: 0.62rem;
	font-variant-numeric: tabular-nums;
}

.friction-model__arrow {
	color: var(--faint);
}

.friction-model__substitute {
	display: block;
	max-width: 5.75rem;
	align-items: baseline;
	color: var(--faint);
	font-size: 0.625rem;
	font-weight: 600;
	letter-spacing: 0.05em;
	line-height: 1.35;
	text-align: right;
	text-transform: uppercase;
	overflow-wrap: anywhere;
}

.friction-model__substitute span {
	display: none;
}

@media (min-width: 48rem) {
	.entry--single .entry-content .friction-model {
		width: min(calc(100% + 8rem), var(--measure-media-wide));
	}

	.friction-model__diagram {
		display: block;
		width: 100%;
		aspect-ratio: 1.65;
		border-top: 0;
		isolation: isolate;
	}

	.friction-model__orbit,
	.friction-model__axis {
		display: block;
		position: absolute;
		pointer-events: none;
	}

	.friction-model__orbit {
		top: 50%;
		left: 50%;
		border: 1px solid var(--divider-faint);
		border-radius: 50%;
		transform: translate(-50%, -50%);
	}

	.friction-model__orbit--outer {
		width: 52%;
		aspect-ratio: 1;
	}

	.friction-model__orbit--inner {
		width: 28%;
		aspect-ratio: 1;
		border-style: dashed;
	}

	.friction-model__axis {
		inset: 13% 12%;
		background: linear-gradient(transparent calc(50% - 0.5px), var(--divider-faint) 50%, transparent calc(50% + 0.5px));
		z-index: -1;
	}

	.friction-model__axis::after {
		display: block;
		width: 100%;
		height: 100%;
		background: linear-gradient(90deg, transparent calc(50% - 0.5px), var(--divider-faint) 50%, transparent calc(50% + 0.5px));
		content: "";
	}

	.friction-model__core {
		display: grid;
		position: absolute;
		top: 50%;
		left: 50%;
		z-index: 3;
		width: 6.25rem;
		aspect-ratio: 1;
		padding: 0;
		place-items: center;
		border: 1px solid var(--divider-hover);
		border-radius: 50%;
		background: var(--background);
		font-size: 1.05rem;
		transform: translate(-50%, -50%);
	}

	.friction-model__spoke {
		--friction-angle: 0deg;
		--friction-x: 50%;
		--friction-y: 16%;
		--friction-outer-x: 50%;
		--friction-outer-y: 4%;
		display: block;
		position: absolute;
		inset: 0;
		min-height: 0;
		padding: 0;
		border: 0;
	}

	.friction-model__spoke[data-angle="-90"] { --friction-angle: -90deg; --friction-x: 50%; --friction-y: 19%; --friction-outer-x: 50%; --friction-outer-y: 4%; }
	.friction-model__spoke[data-angle="-30"] { --friction-angle: -30deg; --friction-x: 70%; --friction-y: 34%; --friction-outer-x: 88%; --friction-outer-y: 20%; }
	.friction-model__spoke[data-angle="30"] { --friction-angle: 30deg; --friction-x: 70%; --friction-y: 66%; --friction-outer-x: 88%; --friction-outer-y: 80%; }
	.friction-model__spoke[data-angle="90"] { --friction-angle: 90deg; --friction-x: 50%; --friction-y: 81%; --friction-outer-x: 50%; --friction-outer-y: 96%; }
	.friction-model__spoke[data-angle="150"] { --friction-angle: 150deg; --friction-x: 30%; --friction-y: 66%; --friction-outer-x: 12%; --friction-outer-y: 80%; }
	.friction-model__spoke[data-angle="210"] { --friction-angle: 210deg; --friction-x: 30%; --friction-y: 34%; --friction-outer-x: 12%; --friction-outer-y: 20%; }

	.friction-model__line {
		display: block;
		position: absolute;
		top: 50%;
		left: 50%;
		width: 21%;
		height: 1px;
		background: var(--divider-soft);
		transform: rotate(var(--friction-angle));
		transform-origin: 0 50%;
		transition: background-color var(--motion-standard) var(--motion-ease);
	}

	.friction-model__line::after {
		position: absolute;
		top: -0.18rem;
		right: -0.2rem;
		width: 0.4rem;
		height: 0.4rem;
		border: 1px solid var(--divider-hover);
		border-radius: 50%;
		background: var(--background);
		content: "";
	}

	.friction-model__relation {
		display: block;
		position: absolute;
		top: var(--friction-y);
		left: var(--friction-x);
		z-index: 2;
		width: 10rem;
		padding: 0.55rem 0.4rem;
		background: var(--background);
		font-size: 0.78rem;
		text-align: center;
		transform: translate(-50%, -50%);
		transition: color var(--motion-standard) var(--motion-ease);
	}

	.friction-model__index {
		display: block;
		margin-bottom: 0.25rem;
	}

	.friction-model__substitute {
		display: block;
		position: absolute;
		top: var(--friction-outer-y);
		left: var(--friction-outer-x);
		width: 7.5rem;
		color: var(--faint);
		font-size: 0.55rem;
		letter-spacing: var(--tracking-uppercase);
		text-align: center;
		transform: translate(-50%, -50%);
		opacity: 0.34;
		transition: color var(--motion-standard) var(--motion-ease), opacity var(--motion-standard) var(--motion-ease);
	}

	.friction-model__substitute span {
		display: block;
		margin-bottom: 0.12rem;
		font-size: 0.72em;
		letter-spacing: 0.05em;
	}

	.friction-model__spoke:hover .friction-model__line,
	.friction-model__spoke:focus .friction-model__line {
		background: var(--section-number);
	}

	.friction-model__spoke:hover .friction-model__substitute,
	.friction-model__spoke:focus .friction-model__substitute {
		color: var(--secondary-strong);
		opacity: 1;
	}

	.friction-model__spoke:focus .friction-model__relation {
		outline: 1px solid var(--section-number-edge);
		outline-offset: 0.15rem;
	}

}

.entry--single .entry-content p.is-style-sidenote {
	margin: 1.8rem 0 !important;
	padding: 0.8rem 0 0 0.9rem;
	border-top: 1px solid var(--divider-soft);
	border-left: 1px solid var(--divider-soft);
	color: var(--secondary) !important;
	font-size: var(--type-metadata) !important;
	letter-spacing: var(--tracking-metadata) !important;
	line-height: 1.6 !important;
}

.entry--single .entry-content p.is-style-sidenote::before {
	display: block;
	margin-bottom: 0.45rem;
	color: var(--faint);
	content: "Note";
	font-size: var(--type-micro);
	font-weight: 650;
	letter-spacing: var(--tracking-uppercase);
	line-height: var(--leading-caption);
	text-transform: uppercase;
}

.entry--single .entry-content > h2:first-child,
.entry--single .entry-content > h3:first-child,
.entry--single .entry-content > h4:first-child {
	margin-top: 0;
}

.entry--single .entry-content ul,
.entry--single .entry-content ol {
	padding-left: 0;
}

.entry--single .entry-content li {
	position: relative;
}

.entry--single .entry-content li + li {
	margin-top: 0.72em;
}

.entry--single .entry-content ul {
	list-style: none;
}

.entry--single .entry-content ul > li {
	padding-left: 1.45em;
}

.entry--single .entry-content ul > li::before {
	position: absolute;
	top: 0.77em;
	left: 0.15em;
	width: 0.25rem;
	height: 0.25rem;
	border-radius: 50%;
	background: var(--faint);
	content: "";
}

.entry--single .entry-content li > ul,
.entry--single .entry-content li > ol:not(.wp-block-footnotes) {
	margin: 0.45em 0 0.1em;
	padding-left: 0.2em;
}

.entry--single .entry-content li > ul > li {
	padding-left: 1.05em;
	color: var(--prose-quiet) !important;
	font-size: 0.9375rem !important;
	letter-spacing: -0.004em !important;
	line-height: 1.68 !important;
}

.entry--single .entry-content li > ul > li > p {
	color: inherit !important;
	font-size: inherit !important;
	letter-spacing: inherit !important;
	line-height: inherit !important;
}

.entry--single .entry-content li > ul > li::before {
	top: 0.76em;
	left: 0.05em;
	width: 0.24rem;
	height: 0.24rem;
	border: 1px solid var(--faint);
	border-radius: 50%;
	background: transparent;
}

.entry--single .entry-content li > ul > li + li {
	margin-top: 0.5em;
}

.entry--single .entry-content li > ul > li > p:last-child {
	margin-bottom: 0;
}

.entry--single .entry-content ol:not(.wp-block-footnotes) {
	counter-reset: article-list;
	font-size: var(--article-text-size) !important;
	letter-spacing: var(--tracking-body) !important;
	line-height: var(--leading-reading) !important;
	list-style: none;
}

.entry--single .entry-content ol:not(.wp-block-footnotes) > li {
	counter-increment: article-list;
	font-size: var(--article-text-size) !important;
	letter-spacing: var(--tracking-body) !important;
	line-height: var(--leading-reading) !important;
	padding-left: 2.15em;
	text-wrap: wrap;
}

.entry--single .entry-content ol:not(.wp-block-footnotes) > li:has(> ul, > ol) + li {
	margin-top: 1.55em;
}

.entry--single .entry-content ol:not(.wp-block-footnotes) > li > *,
.entry--single .entry-content ol:not(.wp-block-footnotes) > li > p > *:not(sup):not(code) {
	font-size: inherit !important;
	letter-spacing: inherit !important;
	line-height: var(--leading-reading) !important;
}

.entry--single .entry-content ol:not(.wp-block-footnotes) > li::before {
	position: absolute;
	top: 0.1em;
	left: 0;
	min-width: 1.35em;
	color: var(--faint);
	content: counter(article-list, decimal-leading-zero);
	font-size: 0.72em;
	font-variant-numeric: tabular-nums;
	font-weight: 500;
	letter-spacing: 0.035em;
	line-height: 2;
	text-align: right;
}

.entry--single .entry-content li > ol:not(.wp-block-footnotes) > li {
	padding-left: 1.85em;
	color: var(--prose-quiet) !important;
	font-size: 0.9375rem !important;
	letter-spacing: -0.004em !important;
	line-height: 1.68 !important;
}

.entry--single .entry-content li > ol:not(.wp-block-footnotes) > li > p {
	color: inherit !important;
	font-size: inherit !important;
	letter-spacing: inherit !important;
	line-height: inherit !important;
}

.entry--single .entry-content li > ol:not(.wp-block-footnotes) > li + li {
	margin-top: 0.5em;
}

.entry--single .entry-content li > ol:not(.wp-block-footnotes) > li > p:last-child {
	margin-bottom: 0;
}

.entry--single .entry-content strong {
	color: var(--text);
	font-weight: 600;
}

.entry--single .entry-content em,
.entry--single .entry-content i {
	font-style: italic !important;
}

.entry--single .entry-content a {
	color: var(--prose-link);
	text-decoration-color: var(--faint);
	text-decoration-thickness: 1px;
	transition: color 150ms ease, text-decoration-color 150ms ease;
}

.entry--single .entry-content a:hover {
	color: var(--accent);
	text-decoration-color: currentColor;
}

.entry--single .entry-content blockquote {
	position: relative;
	margin: clamp(2.75rem, 6vw, 3.5rem) 0;
	padding: 0.2rem 0 0.2rem 2.15rem;
	border: 0;
	color: var(--text);
	font-family: var(--font-quote);
	font-size: var(--type-subheading);
	font-weight: 400;
	hanging-punctuation: first allow-end last;
	letter-spacing: -0.01em;
	line-height: 1.55;
}

.entry--single .entry-content > .wp-block-spacer {
	height: clamp(1.75rem, 4vw, 2.75rem) !important;
}

.entry--single .entry-content blockquote::before {
	position: absolute;
	top: -0.1em;
	left: 0;
	color: var(--faint);
	content: "“";
	font-size: 2.75rem;
	font-weight: 500;
	letter-spacing: -0.08em;
	line-height: 1;
}

.entry--single .entry-content blockquote p:last-child {
	margin-bottom: 0;
}

.entry--single .entry-content blockquote p {
	font-size: inherit !important;
	letter-spacing: inherit !important;
	line-height: inherit !important;
}

.entry--single .entry-content blockquote cite {
	display: block;
	margin-top: 1rem;
	color: var(--secondary);
	font-family: var(--font-sans);
	font-size: var(--type-metadata);
	font-style: normal;
	letter-spacing: var(--tracking-label);
}

.entry--single .entry-content .wp-block-quote.is-style-pull-quote {
	width: 100%;
	max-width: none;
	margin-top: clamp(3rem, 7vw, 4rem);
	margin-bottom: clamp(3rem, 7vw, 4rem);
	font-size: clamp(1.4rem, 2.4vw, 1.75rem);
	letter-spacing: -0.018em;
	line-height: 1.42;
}

@media (min-width: 75rem) {
	.entry--single .entry-content .wp-block-quote.is-style-pull-quote {
		width: min(calc(100% + 6rem), var(--measure-media-wide));
	}

	.entry--single .entry-content p.is-style-sidenote {
		float: right;
		clear: right;
		width: 13rem;
		margin: 0.3rem -15rem 1.5rem 2rem !important;
	}
}

.entry--single .entry-content mark {
	-webkit-box-decoration-break: clone;
	box-decoration-break: clone;
	padding-inline: 0.03em;
	background-color: transparent !important;
	background-image: linear-gradient(
		to bottom,
		transparent 66%,
		var(--highlight) 66%,
		var(--highlight) 94%,
		transparent 94%
	) !important;
	box-shadow: none;
	color: inherit !important;
}

.entry--single .entry-content sup {
	position: static;
	margin-left: 0.1em;
	font-size: 0.62em;
	font-variant-numeric: tabular-nums;
	line-height: 0;
	vertical-align: super;
}

.entry--single .entry-content sup a {
	display: inline-block;
	color: var(--secondary);
	font-weight: 650;
	letter-spacing: 0.01em;
	text-decoration: none;
}

/* Keep note references typographically subordinate inside custom list layouts. */
body .entry--single .entry-content ol:not(.wp-block-footnotes) > li sup,
body .entry--single .entry-content ul > li sup {
	margin-left: 0.1em;
	font-size: 0.62em !important;
	letter-spacing: 0 !important;
	line-height: 0 !important;
	vertical-align: super;
}

body .entry--single .entry-content ol:not(.wp-block-footnotes) > li sup a,
body .entry--single .entry-content ul > li sup a {
	font-size: inherit !important;
	letter-spacing: inherit !important;
	line-height: inherit !important;
}

.entry--single .entry-content sup a:hover,
.entry--single .entry-content sup a:focus-visible {
	color: var(--text);
}

.entry--single .entry-content sup.article-sidenote__marker {
	margin-left: 0.14em;
	color: var(--section-number);
	font-size: 0.62em;
	font-weight: 650;
	letter-spacing: 0;
}

.entry--single .entry-content .article-sidenote__anchor {
	display: inline;
	padding: 0;
	border: 0;
	background: transparent;
	color: inherit;
	cursor: pointer;
	font: inherit;
	letter-spacing: inherit;
	line-height: inherit;
	text-align: inherit;
}

.entry--single .entry-content .article-sidenote__phrase {
	text-decoration-line: underline;
	text-decoration-style: dotted;
	text-decoration-color: var(--prose-underline);
	text-decoration-thickness: 1px;
	text-underline-offset: 0.22em;
	transition: color var(--motion-fast) var(--motion-ease), text-decoration-color var(--motion-fast) var(--motion-ease);
}

.entry--single .entry-content .article-sidenote__anchor:hover .article-sidenote__phrase,
.entry--single .entry-content .article-sidenote__anchor:focus-visible .article-sidenote__phrase,
.entry--single .entry-content .article-sidenote__anchor[aria-expanded="true"] .article-sidenote__phrase {
	color: var(--text);
	text-decoration-color: var(--section-number);
}

.entry--single .entry-content .article-sidenote__anchor sup {
	margin-left: 0.16em;
	color: var(--section-number);
	font-size: 0.62em;
	font-weight: 650;
}

.entry--single .entry-content .article-sidenote {
	display: block;
	margin: 1rem 0 1.6rem;
	padding: 0.75rem 0 0 0.85rem;
	border-top: 1px solid var(--divider-soft);
	border-left: 1px solid var(--divider-soft);
	color: var(--secondary);
	font-size: var(--type-metadata);
	letter-spacing: var(--tracking-metadata);
	line-height: 1.6;
}

.entry--single .entry-content .article-sidenote__label {
	display: flex;
	margin-bottom: 0.4rem;
	align-items: baseline;
	gap: 0.45rem;
	color: var(--faint);
	font-size: var(--type-micro);
	font-weight: 650;
	letter-spacing: var(--tracking-uppercase);
	line-height: var(--leading-caption);
	text-transform: uppercase;
}

.entry--single .entry-content .article-sidenote__reference {
	color: var(--section-number);
	font-variant-numeric: tabular-nums;
}

.entry--single .entry-content .article-sidenote__reference::before {
	margin-right: 0.45rem;
	color: var(--divider-hover);
	content: "·";
}

.entry--single .entry-content .article-sidenote--anchored[hidden] {
	display: none;
}

@media (min-width: 75rem) {
	.entry--single .entry-content .article-sidenote {
		float: right;
		clear: right;
		width: 13rem;
		margin: 0.15rem -15rem 1.5rem 2rem;
	}

	.entry--single .entry-content .article-sidenote--anchored[hidden] {
		display: block;
	}
}

.entry--single .entry-content .wp-block-footnotes {
	counter-reset: article-footnote;
	margin: clamp(3.5rem, 8vw, 5rem) 0 0;
	padding: 1.35rem 0 0;
	border-top: 1px solid var(--line);
	color: var(--secondary);
	font-size: var(--type-metadata) !important;
	letter-spacing: var(--tracking-label);
	line-height: 1.65;
	list-style: none;
}

.entry--single .entry-content .wp-block-footnotes::before {
	display: block;
	margin-bottom: 1.15rem;
	color: var(--faint);
	content: "Notes";
	font-size: var(--type-caption);
	font-weight: 600;
	letter-spacing: var(--tracking-uppercase);
	line-height: var(--leading-caption);
	text-transform: uppercase;
}

.entry--single .entry-content .wp-block-footnotes > li {
	counter-increment: article-footnote;
	font-size: inherit !important;
	line-height: inherit !important;
	padding-left: 1.75rem;
}

.entry--single .entry-content .wp-block-footnotes > li::before {
	position: absolute;
	top: 0;
	left: 0;
	color: var(--faint);
	content: counter(article-footnote);
	font-variant-numeric: tabular-nums;
}

.entry--single .entry-content .wp-block-footnotes p {
	display: inline;
	font-size: inherit !important;
	line-height: inherit !important;
	margin: 0;
}

.entry--single .entry-content .wp-block-footnotes li + li {
	margin-top: 0.8rem;
}

.entry--single .entry-content .wp-block-footnotes a {
	color: var(--body-text);
	text-decoration-color: var(--faint);
}

.entry--single .entry-content .wp-block-footnotes .wp-block-footnotes__back-link {
	margin-left: 0.25em;
	color: var(--faint);
	font-size: 0.85em;
	text-decoration: none;
}

.entry--single .entry-content > figure,
.entry--single .entry-content .wp-block-image {
	margin: clamp(2.25rem, 4.5vw, 3rem) 0;
}

.entry--single .entry-content p + figure,
.entry--single .entry-content p + .wp-block-image {
	margin-top: clamp(2rem, 4vw, 2.25rem);
}

.entry--single .entry-content figure + h2,
.entry--single .entry-content figure + h3,
.entry--single .entry-content .wp-block-image + h2,
.entry--single .entry-content .wp-block-image + h3 {
	margin-top: clamp(2.75rem, 5vw, 3.25rem);
}

.entry--single .entry-content .wp-block-image {
	max-width: 100%;
}

.entry--single .entry-content .wp-block-video,
.entry--single .entry-content .wp-block-embed,
.entry--single .entry-content .wp-block-gallery {
	max-width: 100%;
}

.entry--single .entry-content .wp-block-image a {
	display: block;
}

.entry--single .entry-content .wp-block-image img {
	border: 1px solid var(--media-edge);
	border-radius: var(--media-radius);
	background: var(--media-background);
	box-shadow: none;
}

.entry--single .entry-content .wp-block-video video,
.entry--single .entry-content .wp-block-gallery img,
.entry--single .entry-content > iframe {
	display: block;
	max-width: 100%;
	border: 1px solid var(--media-edge);
	border-radius: var(--media-radius);
	background: var(--media-background);
	box-shadow: none;
}

.entry--single .entry-content .wp-block-embed__wrapper {
	overflow: hidden;
	border: 1px solid var(--media-edge);
	border-radius: var(--media-radius);
	background: var(--media-background);
	line-height: 0;
}

.entry--single .entry-content .wp-block-embed__wrapper iframe {
	display: block;
	width: 100%;
	max-width: 100%;
	border: 0;
	border-radius: 0;
}

.entry--single .entry-content .wp-block-image:not(.alignleft):not(.alignright) img {
	margin-inline: auto;
}

.entry--single .entry-content .wp-block-image.aligncenter {
	display: flex;
	align-items: center;
	flex-direction: column;
}

.entry--single .entry-content .wp-block-image.alignwide,
.entry--single .entry-content .wp-block-video.alignwide,
.entry--single .entry-content .wp-block-embed.alignwide,
.entry--single .entry-content .wp-block-gallery.alignwide {
	width: min(var(--measure-media-wide), calc(100vw - var(--sidebar-width) - var(--page-padding) - var(--page-padding)));
	max-width: none;
}

.entry--single .entry-content .wp-block-image.alignfull,
.entry--single .entry-content .wp-block-video.alignfull,
.entry--single .entry-content .wp-block-embed.alignfull,
.entry--single .entry-content .wp-block-gallery.alignfull {
	width: calc(100vw - var(--sidebar-width) - var(--page-padding) - var(--page-padding));
	max-width: none;
}

.entry--single .entry-content .wp-block-image.alignwide img,
.entry--single .entry-content .wp-block-image.alignfull img {
	width: 100%;
	height: auto;
}

.entry--single .entry-content .alignleft,
.entry--single .entry-content .alignright {
	max-width: min(45%, 18rem);
	margin-top: 0.4rem;
	margin-bottom: 1.5rem;
}

.entry--single .entry-content .alignleft {
	float: left;
	margin-right: 1.5rem;
}

.entry--single .entry-content .alignright {
	float: right;
	margin-left: 1.5rem;
}

.entry--single .entry-content figcaption,
.entry--single .entry-content .wp-element-caption,
.entry--single .entry-content .wp-caption-text,
.entry--single .entry-content .gallery-caption,
.entry--single .entry-content .blocks-gallery-item__caption {
	width: 100%;
	max-width: calc(100% - 0.5rem);
	margin: 0.7rem auto 0;
	padding-inline: 0.1rem;
	color: var(--caption);
	font-size: var(--type-micro);
	letter-spacing: 0.018em;
	line-height: 1.5;
	text-align: center;
	text-wrap: pretty;
}

.entry--single .entry-content .wp-block-table {
	width: 100%;
	margin: clamp(2.5rem, 5vw, 3.25rem) 0;
	overflow-x: auto;
	-webkit-overflow-scrolling: touch;
}

.entry--single .entry-content table {
	width: 100%;
	border: 0;
	border-collapse: collapse;
	color: var(--body-text);
	font-size: 0.9375rem;
	font-variant-numeric: tabular-nums;
	letter-spacing: -0.004em;
	line-height: 1.55;
}

.entry--single .entry-content th,
.entry--single .entry-content td {
	padding: 0.85rem 0.25rem;
	border: 0 !important;
	border-bottom: 1px solid var(--line) !important;
	text-align: left;
	vertical-align: top;
}

.entry--single .entry-content th + th,
.entry--single .entry-content td + td {
	padding-left: 1.25rem;
}

.entry--single .entry-content thead th {
	padding-top: 0.65rem;
	color: var(--secondary);
	font-size: var(--type-caption);
	font-weight: 600;
	letter-spacing: var(--tracking-uppercase);
	text-transform: uppercase;
}

.entry--single .entry-content tbody tr {
	transition: background-color var(--motion-fast) var(--motion-ease);
}

.entry--single .entry-content tbody tr:hover {
	background: var(--table-row-hover);
}

.entry--single .entry-content details,
.entry--single .entry-content .wp-block-details {
	margin: 1.5rem 0;
	border-top: 1px solid var(--line);
	border-bottom: 1px solid var(--line);
}

.entry--single .entry-content details + details,
.entry--single .entry-content .wp-block-details + .wp-block-details {
	margin-top: -1.5rem;
	border-top: 0;
}

.entry--single .entry-content summary,
.entry--single .entry-content .wp-block-details > summary {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 1.5rem;
	padding: 1rem 0.15rem;
	color: var(--text);
	cursor: pointer;
	font-size: 0.9375rem;
	font-weight: 520;
	letter-spacing: -0.008em;
	line-height: 1.45;
	list-style: none;
	transition: color var(--motion-fast) var(--motion-ease);
}

.entry--single .entry-content summary::-webkit-details-marker {
	display: none;
}

.entry--single .entry-content summary::after {
	flex: 0 0 auto;
	color: var(--faint);
	content: "+";
	font-size: 1.05rem;
	font-weight: 400;
	line-height: 1;
	transition: color var(--motion-fast) var(--motion-ease);
}

.entry--single .entry-content details[open] > summary::after {
	content: "−";
}

.entry--single .entry-content summary:hover,
.entry--single .entry-content summary:focus-visible,
.entry--single .entry-content summary:hover::after,
.entry--single .entry-content summary:focus-visible::after {
	color: var(--text);
}

.entry--single .entry-content details > :not(summary) {
	margin-right: 0.15rem;
	margin-left: 0.15rem;
}

.entry--single .entry-content details > :last-child {
	margin-bottom: 1.15rem;
}

.entry--single .entry-content .wp-block-accordion {
	margin: clamp(2rem, 5vw, 3rem) 0;
	border-top: 1px solid var(--line);
}

.entry--single .entry-content .wp-block-accordion-item {
	border-bottom: 1px solid var(--line);
}

.entry--single .entry-content .wp-block-accordion-heading {
	margin: 0 !important;
	font-size: inherit !important;
}

.entry--single .entry-content .wp-block-accordion-heading__toggle {
	display: flex;
	align-items: center;
	justify-content: space-between;
	width: 100%;
	gap: 1.5rem;
	padding: 1rem 0.15rem;
	border: 0;
	background: transparent;
	color: var(--text);
	cursor: pointer;
	font-size: 0.9375rem;
	font-weight: 520;
	letter-spacing: -0.008em;
	line-height: 1.45;
	text-align: left;
}

.entry--single .entry-content .wp-block-accordion-heading__toggle-icon {
	color: var(--faint);
	font-weight: 400;
}

.entry--single .entry-content .wp-block-accordion-panel {
	padding: 0 0.15rem 1.15rem;
}

.entry--single .entry-content .wp-block-accordion-panel > :last-child {
	margin-bottom: 0;
}

.entry--single .entry-content hr {
	width: 100%;
	height: 0.35rem;
	margin: clamp(2.75rem, 6vw, 3.75rem) auto;
	border: 0;
	background:
		radial-gradient(circle at center, var(--secondary) 0 1px, transparent 1.4px),
		linear-gradient(
			to right,
			var(--line) 0,
			var(--line) calc(50% - 0.7rem),
			transparent calc(50% - 0.7rem),
			transparent calc(50% + 0.7rem),
			var(--line) calc(50% + 0.7rem),
			var(--line) 100%
		);
	background-position: center;
	background-repeat: no-repeat;
	background-size: 100% 100%, 100% 1px;
}

.entry--single .entry-content code {
	padding: 0.12em 0.3em;
	border-radius: 0.2rem;
	background: var(--surface);
	font-family: ui-monospace, "SFMono-Regular", Menlo, Consolas, monospace;
	font-size: 0.86em;
}

.entry--single .entry-content pre {
	overflow-x: auto;
	margin: 2rem 0;
	padding: 1.25rem;
	border: 1px solid var(--line);
	border-radius: 0.4rem;
	background: var(--media-background);
	line-height: var(--leading-body);
}

.entry--single .entry-content pre code {
	padding: 0;
	background: transparent;
}

.article-endmatter {
	width: min(100%, 61ch);
	margin-top: clamp(4rem, 8vw, 5rem);
	padding-top: 1.35rem;
	border-top: 1px solid var(--line);
}

.article-endmatter__back {
	display: inline-flex;
	align-items: baseline;
	gap: 0.35rem;
	color: var(--secondary);
	font-size: var(--type-metadata);
	font-weight: 500;
	letter-spacing: var(--tracking-label);
	line-height: var(--leading-label);
	text-decoration: none;
	transition: color 140ms ease;
}

.article-endmatter__back span {
	display: inline-block;
	transition: transform var(--motion-standard) var(--motion-ease);
}

.article-endmatter__back:hover,
.article-endmatter__back:focus-visible {
	color: var(--text);
}

.article-endmatter__back:hover span,
.article-endmatter__back:focus-visible span {
	transform: translateX(-1px);
}

.related-writing {
	margin-top: clamp(1.6rem, 3vw, 2rem);
}

.related-writing h2 {
	margin: 0 0 1rem;
	color: var(--faint);
	font-family: inherit;
	font-size: var(--type-caption);
	font-weight: 600;
	letter-spacing: var(--tracking-uppercase);
	line-height: var(--leading-caption);
	text-transform: uppercase;
}

.related-writing ul {
	margin: 0;
	padding: 0;
	border-top: 1px solid var(--line);
	list-style: none;
}

.related-writing li {
	border-bottom: 1px solid var(--line);
}

.related-writing a {
	display: grid;
	grid-template-columns: minmax(0, 1fr) auto;
	align-items: baseline;
	gap: 2rem;
	margin-inline: -0.625rem;
	padding: 0.68rem 0.625rem;
	border-radius: 0.3rem;
	color: var(--body-text);
	font-size: var(--type-metadata);
	letter-spacing: var(--tracking-metadata);
	line-height: var(--leading-label);
	text-decoration: none;
	transition: background-color 140ms ease, color 140ms ease;
}

.related-writing a:hover,
.related-writing a:focus-visible {
	background: var(--interactive-wash);
	color: var(--text);
}

.related-writing a > span {
	min-width: 0;
	overflow-wrap: anywhere;
	text-wrap: pretty;
	transition: transform var(--motion-standard) var(--motion-ease);
}

.related-writing a:hover > span,
.related-writing a:focus-visible > span {
	transform: translateX(1px);
}

.related-writing time {
	color: var(--faint);
	font-size: var(--type-caption);
	font-variant-numeric: tabular-nums;
	letter-spacing: var(--tracking-metadata);
	white-space: nowrap;
}

/* Optional newsletter */

.newsletter,
.site-footer {
	margin-left: var(--sidebar-width);
	padding-inline: var(--page-padding);
	background: var(--background);
}

.newsletter {
	padding-bottom: 4rem;
}

.newsletter__inner,
.site-footer__inner {
	width: min(100%, var(--content-width));
	margin: 0;
}

.newsletter__inner {
	display: grid;
	grid-template-columns: minmax(0, 1.1fr) minmax(15rem, 0.9fr);
	align-items: end;
	gap: 4rem;
	padding-top: 3rem;
	border-top: 1px solid var(--line);
}

.section-label {
	margin: 0 0 0.85rem;
	color: var(--secondary);
	font-size: var(--type-caption);
	font-weight: 600;
	letter-spacing: var(--tracking-uppercase);
	line-height: var(--leading-caption);
	text-transform: uppercase;
}

.newsletter__copy h2 {
	max-width: var(--measure-heading);
	margin: 0 0 0.75rem;
	font-size: var(--type-section);
	font-weight: 600;
	letter-spacing: var(--tracking-section);
	line-height: var(--leading-section);
	text-wrap: balance;
}

.newsletter__copy > p:last-child {
	max-width: var(--measure-lead);
	margin: 0;
	color: var(--secondary);
	font-size: var(--type-metadata);
	letter-spacing: var(--tracking-metadata);
	line-height: var(--leading-label);
	text-wrap: pretty;
}

.newsletter .widget,
.newsletter .widget > *:first-child,
.newsletter form p {
	margin-top: 0;
}

.newsletter label {
	display: block;
	margin-bottom: 0.35rem;
	color: var(--secondary);
	font-size: var(--type-caption);
	letter-spacing: var(--tracking-caption);
	line-height: var(--leading-caption);
}

.newsletter input[type="email"],
.newsletter input[type="text"] {
	width: 100%;
	min-height: 2.75rem;
	padding: 0.65rem 0.8rem;
	border: 1px solid var(--line);
	border-radius: 0.5rem;
	background: var(--surface);
	color: var(--text);
	outline: 0;
}

.newsletter input:focus {
	border-color: var(--accent);
}

.newsletter button,
.newsletter input[type="submit"] {
	min-height: 2.6rem;
	margin-top: 0.75rem;
	padding: 0.55rem 1rem;
	border: 0;
	border-radius: 0.5rem;
	background: var(--text);
	color: var(--background);
	font-size: var(--type-metadata);
	font-weight: 600;
	letter-spacing: var(--tracking-label);
	line-height: var(--leading-label);
	cursor: pointer;
}

.site-footer {
	padding-top: 0;
	padding-bottom: clamp(3rem, 8vh, 6rem);
	color: var(--faint);
	font-size: var(--type-micro);
	font-variant-numeric: tabular-nums;
	letter-spacing: 0.015em;
	line-height: 1.35;
}

.site-footer__inner {
	display: flex;
	align-items: flex-start;
	flex-direction: column;
}

.site-footer p {
	margin: 0;
}

.site-footer a {
	color: inherit;
	text-decoration: none;
	transition: color 140ms ease;
}

.site-footer a:hover,
.site-footer a:focus-visible {
	color: var(--secondary);
}

@media (max-width: 782px) {
	.admin-bar .site-header {
		top: 46px;
		height: auto;
	}

	.admin-bar .reading-progress {
		top: 46px;
	}
}

@media (max-width: 52rem) {
	.writing-filter__toggle,
	.writing-filter {
		display: none;
	}

	:root {
		--page-padding: clamp(1.25rem, 6vw, 2.5rem);
		--top-spacing: 4rem;
	}

	.site-header,
	.admin-bar .site-header {
		position: sticky;
		top: 0;
		z-index: 30;
		width: 100%;
		height: auto;
		padding: 1rem var(--page-padding);
		border-bottom: 1px solid var(--interactive-edge);
	}

	.admin-bar .site-header {
		top: 46px;
	}

	.reading-progress {
		position: absolute;
		top: auto;
		right: 0;
		bottom: -1px;
		left: 0;
		z-index: 1;
	}

	.admin-bar .reading-progress {
		top: auto;
	}

	.site-header__inner {
		display: grid;
		height: auto;
		grid-template-columns: minmax(0, 1fr) auto;
		align-items: center;
	}

	.article-toc {
		display: none;
	}

	.appearance-toggle {
		display: none;
	}

	.menu-open .appearance-toggle {
		display: flex;
		grid-column: 1 / -1;
		margin-top: 0.5rem;
	}

	.site-identity {
		padding-inline: 0;
	}

	.has-js .menu-toggle {
		position: relative;
		display: flex;
		width: 2.5rem;
		height: 2.5rem;
		align-items: center;
		justify-content: center;
		border: 1px solid transparent;
		border-radius: 0.375rem;
		background: transparent;
		color: var(--secondary);
		cursor: pointer;
	}

	.menu-toggle:hover {
		background: var(--interactive-wash);
		color: var(--text);
	}

	.menu-toggle span {
		position: absolute;
		width: 1rem;
		height: 1px;
		background: currentColor;
		transition: transform 160ms ease;
	}

	.menu-toggle span:first-child {
		transform: translateY(-0.22rem);
	}

	.menu-toggle span:last-child {
		transform: translateY(0.22rem);
	}

	.menu-open .menu-toggle span:first-child {
		transform: rotate(45deg);
	}

	.menu-open .menu-toggle span:last-child {
		transform: rotate(-45deg);
	}

	.site-navigation {
		grid-column: 1 / -1;
		margin-top: 0.85rem;
	}

	.site-navigation ul {
		flex-direction: column;
	}

	.has-js .site-navigation {
		max-height: 0;
		overflow: hidden;
		margin-top: 0;
		opacity: 0;
		pointer-events: none;
		transition: max-height 180ms ease, margin-top 180ms ease, opacity 140ms ease;
	}

	.has-js .menu-open .site-navigation {
		max-height: 10rem;
		margin-top: 0.85rem;
		opacity: 1;
		pointer-events: auto;
	}

	.site-navigation a {
		min-height: 2.6rem;
		padding: 0.55rem 0.8rem;
	}

	.site-main,
	.newsletter,
	.site-footer {
		margin-left: 0;
	}

	.site-main {
		min-height: 0;
		padding-top: 3.25rem;
	}

	.error-404-main {
		min-height: calc(100svh - 4rem);
		padding-top: clamp(4rem, 12vh, 6rem);
		padding-bottom: clamp(4rem, 12vh, 6rem);
	}

	.single-main {
		padding-top: 3.75rem;
	}

	.newsletter__inner {
		grid-template-columns: 1fr;
		gap: 2rem;
	}

		.entry--single .entry-content .wp-block-image.alignwide,
		.entry--single .entry-content .wp-block-image.alignfull,
		.entry--single .entry-content .wp-block-video.alignwide,
		.entry--single .entry-content .wp-block-video.alignfull,
		.entry--single .entry-content .wp-block-embed.alignwide,
		.entry--single .entry-content .wp-block-embed.alignfull,
		.entry--single .entry-content .wp-block-gallery.alignwide,
		.entry--single .entry-content .wp-block-gallery.alignfull {
			width: calc(100vw - var(--page-padding) - var(--page-padding));
		}
}

@media (max-width: 37.5rem) {
	.admin-bar .site-header {
		top: 0;
	}

	.admin-bar .reading-progress {
		top: auto;
	}
}

@media (max-width: 36rem) {
	.site-identity {
		grid-template-columns: 2rem minmax(0, 1fr);
	}

	.site-avatar {
		width: 2rem;
		height: 2rem;
	}

	.writing-list a {
		grid-template-columns: 1fr;
		gap: 0.3rem;
		padding-block: 0.9rem;
	}

	.writing-list__leader {
		display: none;
	}

	.project-item {
		grid-template-columns: 1.5rem minmax(0, 1fr);
		gap: 0.75rem;
	}

	.project-item__heading {
		align-items: flex-start;
		flex-direction: column;
		gap: 0.35rem;
	}

	.entry--single .entry-content .alignleft,
	.entry--single .entry-content .alignright {
		float: none;
		max-width: 100%;
		margin-right: 0;
		margin-left: 0;
	}

	.entry--single .entry-header {
		margin-bottom: 2.25rem;
	}

	.entry--single .entry-content {
		line-height: var(--leading-reading-mobile);
	}

	.related-writing a {
		grid-template-columns: 1fr;
		gap: 0.25rem;
	}
}

@media (prefers-reduced-motion: reduce) {
	html {
		scroll-behavior: auto;
	}

	*,
	*::before,
	*::after {
		transition-duration: 0.01ms !important;
	}
}

/*
 * WordPress may print Global Styles after the theme stylesheet. Keep the
 * frontend palette authoritative so imported block-theme colours cannot leak
 * into this classic theme.
 */
html[data-theme] body,
html[data-theme] body .site-main,
html[data-theme] body .newsletter,
html[data-theme] body .site-footer {
	background-color: var(--background) !important;
}

body,
body .site-main {
	color: var(--body-text) !important;
}

body,
body button,
body input,
body textarea,
body select,
body .site-identity,
body .site-navigation,
body .home-about,
body .writing-index,
body .entry,
body .entry-summary,
body .entry-content,
body .entry-content p,
body .entry-content li,
body .entry-content h2,
body .entry-content h3,
body .entry-content h4,
body .article-endmatter,
body .site-footer {
	font-family: var(--font-sans) !important;
}

body .site-header {
	background-color: var(--sidebar) !important;
}

body h1,
body h2,
body h3,
body h4,
body h5,
body h6,
body .site-identity,
body .site-identity__text strong {
	color: var(--text) !important;
}

body .home-about__prose,
body .home-about__prose p,
body .entry-content,
body .entry-content p,
body .entry-summary {
	color: var(--body-text) !important;
}

body .entry-dek {
	color: var(--secondary-strong) !important;
}

body .topic-index__description,
body .topic-index__description p {
	color: var(--secondary) !important;
}

body .entry-kicker,
body .entry-kicker a,
body .entry--single .entry-meta,
body .entry--single figcaption,
body .related-writing h2,
body .related-writing time {
	color: var(--faint) !important;
}

body .entry--single .entry-content figcaption,
body .entry--single .entry-content .wp-element-caption,
body .entry--single .entry-content .wp-caption-text,
body .entry--single .entry-content .gallery-caption,
body .entry--single .entry-content .blocks-gallery-item__caption {
	color: var(--caption) !important;
}

body .entry--single .entry-content blockquote,
body .entry--single .entry-content blockquote p,
body .entry--single .entry-content .wp-block-pullquote,
body .entry--single .entry-content .wp-block-pullquote p {
	font-family: var(--font-quote) !important;
}

body .entry--single .entry-content blockquote cite,
body .entry--single .entry-content .wp-block-pullquote cite {
	font-family: var(--font-sans) !important;
}

body .home-about__prose a,
body .entry-content a,
body .entry-summary a {
	color: var(--prose-link) !important;
	text-decoration-color: var(--prose-underline) !important;
	text-decoration-line: underline;
	text-decoration-skip-ink: auto;
	text-decoration-thickness: 1px;
	text-underline-offset: 0.22em;
	transition: color var(--motion-fast) var(--motion-ease), text-decoration-color var(--motion-fast) var(--motion-ease);
}

body .home-about__prose a:hover,
body .home-about__prose a:focus-visible,
body .entry-content a:hover,
body .entry-content a:focus-visible,
body .entry-summary a:hover,
body .entry-summary a:focus-visible {
	text-decoration-color: var(--prose-underline-hover) !important;
}

body .entry-content sup a,
body .entry-content .wp-block-footnotes__back-link,
body .entry-content .wp-block-image a {
	text-decoration: none !important;
}

body .writing-list a {
	color: var(--body-text) !important;
	text-decoration: none !important;
}

body .writing-list a:hover,
body .writing-list a:focus-visible {
	color: var(--text) !important;
}

body .writing-list time,
body .entry-meta,
body .site-footer,
body .site-footer p,
body .site-footer a {
	color: var(--faint) !important;
	font-size: var(--type-micro) !important;
	letter-spacing: 0.015em !important;
	line-height: 1.35 !important;
}

body .site-footer a:hover,
body .site-footer a:focus-visible {
	color: var(--secondary) !important;
}

body .site-identity__text small,
body .site-navigation a,
body .newsletter__copy > p:last-child,
body .newsletter label {
	color: var(--secondary) !important;
}

body .site-navigation a {
	color: var(--navigation-text) !important;
}

body .site-navigation a:hover {
	color: var(--body-text) !important;
}

body .site-navigation a:focus-visible {
	color: var(--text) !important;
}

body .site-navigation .current-menu-item > a {
	border-color: var(--interactive-edge) !important;
	background-color: var(--interactive-wash-strong) !important;
	color: var(--body-text) !important;
}
