/* Component classes. */

/* 0 base */
:root {
	--ttm-rule-1: var(--wp--custom--rule--thin);
	--ttm-rule-2: var(--wp--custom--rule--thick);
	--ttm-pin: var(--wp-admin--admin-bar--height, 0px);
}

@media (max-width: 720px) {

	/* Phone gutter <720px; root-padding alignment reads these off body. */
	body {
		--wp--style--root--padding-left: var(--wp--custom--gutter--phone);
		--wp--style--root--padding-right: var(--wp--custom--gutter--phone);
	}
}

/* 0.1 skip link */
.ttm-skip {
	position: absolute;
	width: 1px;
	height: 1px;
	overflow: hidden;
	clip-path: inset(50%);
	white-space: nowrap;
}

.ttm-skip:focus {
	position: fixed;
	top: var(--wp--preset--spacing--30);
	left: var(--wp--preset--spacing--30);
	width: auto;
	height: auto;
	overflow: visible;
	clip-path: none;
	z-index: 100;
	padding: var(--wp--preset--spacing--30) var(--wp--preset--spacing--40);
	background: var(--wp--preset--color--bg);
	color: var(--wp--preset--color--text);
	outline: 2px solid var(--wp--preset--color--accent);
}

/* 0.2 page container */

/* Rule 42: 1280px centred column; desktop gutter as inline pad. */
.wp-site-blocks {
	max-width: 1280px;
	margin-inline: auto;
	padding-inline: var(--wp--custom--gutter--desktop);
	box-sizing: border-box;
}

.wp-site-blocks .has-global-padding {
	padding-inline: 0;
}

@media (max-width: 720px) {

	.wp-site-blocks {
		padding-inline: var(--wp--custom--gutter--phone);
	}
}

/* 2.6 rules */
.is-style-rule-1,
.is-style-rule-2 {
	background: var(--wp--preset--color--divider);
	border: 0;
	opacity: 1;

	/* Rule 35: full width */
	width: 100% !important;
	max-width: none !important;
	margin-left: 0 !important;
	margin-right: 0 !important;
}

.is-style-rule-1 {
	height: 1px;
}

.is-style-rule-2 {
	height: 2px;
}

/* 3 grids */
.is-style-grid-8-4,
.is-style-grid-3-7-2,
.is-style-grid-5-7,
.is-style-grid-7-5,
.is-style-grid-3,
.is-style-grid-2,
.is-style-grid-4 {
	display: grid;
}

.is-style-grid-8-4 {
	grid-template-columns: minmax(0, 8fr) minmax(0, 4fr);
	gap: var(--wp--preset--spacing--90);
}

.is-style-grid-3-7-2 {
	grid-template-columns: minmax(0, 3fr) minmax(0, 7fr) minmax(0, 2fr);
	gap: var(--wp--preset--spacing--80);
}

.is-style-grid-5-7 {
	grid-template-columns: minmax(0, 5fr) minmax(0, 7fr);
	gap: var(--wp--preset--spacing--90);
}

.is-style-grid-7-5 {
	grid-template-columns: minmax(0, 7fr) minmax(0, 5fr);
	gap: var(--wp--preset--spacing--90);
}

.is-style-grid-3 {
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: var(--wp--preset--spacing--50);
}

.is-style-grid-2 {
	grid-template-columns: 1fr 1fr;
	gap: 0 var(--wp--preset--spacing--70);
}

.is-style-grid-4 {
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: 0 var(--wp--preset--spacing--60);
}

.is-style-span-2 {
	grid-column: span 2;
}

.is-style-sticky-aside {
	align-self: start;
}

/* Article: 8/4; >=1025. */
.ttm-article {
	column-gap: 64px;
	row-gap: 0;
	padding: 40px 0 48px;
}

.ttm-article aside {
	display: flex;
	flex-direction: column;
	row-gap: 28px;
	align-self: start;
}

@media (min-width: 1025px) {

	.ttm-article aside {
		position: sticky;
		top: calc(var(--ttm-pin) + 78px);
	}
}

.is-style-zone {
	padding: var(--wp--preset--spacing--40) 0 var(--wp--preset--spacing--50);
	border-top: var(--ttm-rule-2);
}

.is-style-cell {
	padding: 20px var(--wp--preset--spacing--60) var(--wp--preset--spacing--50) 0;
	border-right: var(--ttm-rule-1);
}

.is-style-cell:last-child {
	padding-right: 0;
	border-right: 0;
}

.is-style-surface-box {
	background: var(--wp--preset--color--surface);
	padding: var(--wp--preset--spacing--40) var(--wp--preset--spacing--50);
}

/* Callouts on older posts: note = context, update = a correction (accent rule).
   .wp-block-group outranks core's flow-layout margin reset in the editor. */
.wp-block-group.is-style-note,
.wp-block-group.is-style-update {
	background: var(--wp--preset--color--surface);
	border-left: 3px solid var(--wp--preset--color--neutral-700);
	padding: var(--wp--preset--spacing--40) var(--wp--preset--spacing--50);
	margin-bottom: var(--wp--preset--spacing--50);
	font-size: var(--wp--preset--font-size--body-s);
}

.wp-block-group.is-style-update {
	border-left-color: var(--wp--preset--color--accent-700);
}

.is-style-note > :last-child,
.is-style-update > :last-child {
	margin-bottom: 0;
}

.is-style-tile {
	background: var(--wp--preset--color--surface);
	aspect-ratio: 4 / 3;
	padding: var(--wp--preset--spacing--40);
	display: flex;
	flex-direction: column;
	justify-content: space-between;
}

@media (max-width: 1024px) {

	.is-style-grid-8-4,
	.is-style-grid-5-7,
	.is-style-grid-7-5,
	.is-style-grid-3-7-2 {
		grid-template-columns: minmax(0, 1fr);
	}

	/* §6.1.9: 2/row (grid-4). */
	.ttm-section-row.is-style-grid-4 {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	/* Right rules on left/pair */
	.ttm-section-row .ttm-cell:nth-child(even) {
		padding-right: 0;
		border-right: 0;
	}
}

@media (max-width: 720px) {

	.is-style-grid-4,
	.is-style-grid-3,
	.is-style-grid-2 {
		grid-template-columns: 1fr;
	}
}

/* 2.3 type */
.is-style-display-xl {
	font-size: var(--wp--preset--font-size--display-xl);
	font-weight: 800;
	line-height: 0.95;
	letter-spacing: -0.03em;
	margin-left: -0.058em;
}

.is-style-display-l {
	font-size: var(--wp--preset--font-size--display-l);
	font-weight: 800;
	line-height: 0.95;
	letter-spacing: -0.03em;
	margin-left: -0.058em;
}

.is-style-display-m {
	font-size: var(--wp--preset--font-size--display-m);
	font-weight: 800;
	line-height: 0.98;
	letter-spacing: -0.03em;
	margin-left: -0.058em;
}

.is-style-lead {
	font-size: var(--wp--preset--font-size--lead);
	font-weight: 800;
	line-height: 1.05;
	letter-spacing: -0.02em;
	max-width: 22ch;
}

.is-style-poster.is-style-poster,
p.is-style-poster {
	font-size: var(--wp--preset--font-size--pull);
	font-weight: 800;
	line-height: 1.05;
	letter-spacing: -0.02em;
}

.is-style-kicker {
	font-size: var(--wp--preset--font-size--caption);
	font-weight: 600;
	line-height: 1.2;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: var(--wp--preset--color--accent-700);
}

.is-style-dek {
	font-size: var(--wp--preset--font-size--dek);
	font-weight: 400;
	line-height: 1.5;
	color: var(--wp--preset--color--neutral-800);
	max-width: 60em;
}

.ttm-archive-head__summary {
	margin: 0;
}

.is-style-dek-l {
	font-size: 21px;
	font-weight: 400;
	line-height: 1.4;
	color: var(--wp--preset--color--neutral-800);
	max-width: 32em;
}

.is-style-dek-l code {
	font-size: 18px;
	background: var(--wp--preset--color--surface);
	padding: 1px 6px;
}

.is-style-meta {
	font-size: var(--wp--preset--font-size--caption);
	color: var(--wp--preset--color--neutral-700);
	font-feature-settings: "tnum";
}

.is-style-micro {
	font-size: var(--wp--preset--font-size--micro);
	color: var(--wp--preset--color--neutral-700);
}

.is-style-cell-lead {
	font-size: var(--wp--preset--font-size--cell-lead);
	font-weight: 800;
	line-height: 1.2;
}

.is-style-cell-lead-l {
	font-size: var(--wp--preset--font-size--cell-lead-l);
	font-weight: 800;
	line-height: 1.15;
}

.is-style-headline-s {
	font-size: var(--wp--preset--font-size--headline-s);
	font-weight: 800;
	line-height: 1.3;
}

.is-style-journal-title {
	font-size: var(--wp--preset--font-size--article-h-2);
	font-weight: 800;
	line-height: 1.12;
	letter-spacing: -0.015em;
}

.is-style-journal-date {
	font-size: var(--wp--preset--font-size--journal-date);
	font-weight: 800;
	line-height: 1;
	letter-spacing: -0.025em;
	font-feature-settings: "tnum";
}

.is-style-short {
	font-weight: 800;
	font-feature-settings: "tnum";
}

/* Washed, img only: captions stay ink. */
.is-style-grayscale img,
.ttm-item-featured__media img {
	filter: saturate(0.35) contrast(0.94) brightness(1.04);
}

.is-style-cover img,
.is-style-cover {
	aspect-ratio: 2 / 3;
	object-fit: cover;
}

.is-style-cover-shadow img,
.is-style-cover-shadow {
	aspect-ratio: 2 / 3;
	object-fit: cover;
	box-shadow: var(--wp--preset--shadow--cover);
}

.is-style-numbered-rows {
	list-style: none;
	margin: 0;
	padding: 0;
}

.is-style-numbered-rows li {
	display: grid;
	grid-template-columns: 24px 1fr;
	gap: var(--wp--preset--spacing--40);
	padding: var(--wp--preset--spacing--30) 0;
	border-bottom: var(--ttm-rule-1);
}

.is-style-numbered-rows li::marker {
	content: "";
}

/* a-scoped: WP body class is "tag" */
a.tag {
	display: inline-block;
	font-size: var(--wp--preset--font-size--micro);
	font-weight: 600;
	padding: 2px 8px;
	border-radius: 0;
}

.tag-neutral {
	background: var(--wp--preset--color--surface);
	color: var(--wp--preset--color--text);
}

.tag-accent {
	background: var(--wp--preset--color--accent-100);
	color: var(--wp--preset--color--accent-700);
}

.tag-outline {
	border: var(--ttm-rule-1);
	color: var(--wp--preset--color--text);
}

/* Tag: byline's right grp */
.is-style-tags {
	display: flex;
	gap: 6px;
	margin-left: auto;
}

@media (max-width: 720px) {

	.is-style-tags {
		flex-wrap: wrap;
	}

	.is-style-display-xl,
	.is-style-display-l {
		line-height: 1;
	}
}

/* 4.30 buttons */
.btn {
	box-sizing: border-box;
	display: inline-flex;
	justify-content: flex-start;
	align-items: center;
	font-size: var(--wp--preset--font-size--body-s);
	font-weight: 800;
	padding: 8px 14px;
	border-radius: 0;
	text-decoration: none;
	transition: color 120ms ease, background-color 120ms ease, border-color 120ms ease;
	cursor: pointer;
}

/* accent-on-bg fails AA; clear */
.btn-primary,
.wp-block-button__link {
	background: var(--wp--preset--color--accent-700);
	color: var(--wp--preset--color--bg);
	border: 0;
}

.btn-primary:hover,
.wp-block-button__link:hover {
	background: var(--wp--preset--color--accent-600);
}

.btn-primary:active,
.wp-block-button__link:active {
	background: var(--wp--preset--color--accent);
}

.btn-secondary,
.wp-block-button.is-style-secondary .wp-block-button__link {
	background: transparent;
	color: var(--wp--preset--color--text);
	border: var(--ttm-rule-1);
}

.btn-ghost,
.wp-block-button.is-style-ghost .wp-block-button__link {
	background: transparent;
	color: var(--wp--preset--color--accent-700);
	border: 0;
}

.wp-block-button.is-style-ghost-on-poster .wp-block-button__link {
	background: transparent;
	color: var(--wp--preset--color--bg);
	border: var(--ttm-rule-1);
	border-color: var(--wp--preset--color--bg);
}

.btn-block,
.wp-block-button.is-style-block .wp-block-button__link {
	width: 100%;
	justify-content: center;
}

.btn-secondary:hover,
.wp-block-button.is-style-secondary .wp-block-button__link:hover {
	background: color-mix(in oklch, var(--wp--preset--color--text) 7%, transparent);
}

/* 4.32 input */
.input {
	border: var(--ttm-rule-1);
	background: var(--wp--preset--color--bg);
	font-size: var(--wp--preset--font-size--body-s);
	padding: 8px 10px;
	border-radius: 0;
}

/* Honeypot tab-focus trap. */
.ttm-hp {
	position: absolute;
	width: 1px;
	height: 1px;
	overflow: hidden;
	clip-path: inset(50%);
}

/* 4.23 figure */

/* Hero colour, 16:9 */
.ttm-article .wp-block-post-featured-image {
	margin-top: 28px;
	aspect-ratio: 16 / 9;
}

/* :where() keeps specificity zero, so core's img rules still win. */
.ttm-article :where(.wp-block-post-featured-image) img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.ttm-hero__caption {
	font-size: var(--wp--preset--font-size--caption);
	color: var(--wp--preset--color--neutral-700);
	margin-top: 8px;
}

/* 4.24 body typography */
.entry-content {
	font-size: var(--wp--preset--font-size--body);
	line-height: 1.65;
	max-width: var(--wp--custom--measure--body);	overflow-wrap: break-word;
}

.entry-content p {
	margin: 0 0 22px;
}

/* F12: byline meets body */
.ttm-entry {
	padding-top: 28px;
}

.entry-content a {
	color: inherit;
	text-decoration: underline;
	text-decoration-color: var(--wp--preset--color--divider);
	text-underline-offset: 3px;
}

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

.entry-content strong {
	font-weight: 800;
}

.entry-content em {
	font-style: italic;
}

.entry-content ul,
.entry-content ol {
	padding-left: 22px;
}

.entry-content h2 {
	font-size: var(--wp--preset--font-size--article-h-2);
	line-height: 1.1;
	letter-spacing: -0.02em;
	margin: 40px 0 14px;
}

.entry-content h3 {
	font-size: 22px;
	font-weight: 800;
	line-height: 1.2;
	margin: var(--wp--preset--spacing--60) 0 var(--wp--preset--spacing--20);
}

.entry-content h4 {
	font-size: var(--wp--preset--font-size--body);
	font-weight: 800;
}

.entry-content code {
	font-size: calc(var(--wp--preset--font-size--body) - 2px);
	background: var(--wp--preset--color--surface);
	padding: 1px 6px;
	border-radius: 0;
}

.entry-content pre {
	background: var(--wp--preset--color--neutral-900);
	color: var(--wp--preset--color--neutral-100);
	font-size: 14px;
	line-height: 1.55;
	font-family: ui-monospace, Menlo, monospace;
	padding: 18px 20px;
	margin-bottom: 22px;
	border-left: 4px solid var(--wp--preset--color--accent);
	overflow-x: auto;
}

/* pre>code, not inline */
.entry-content :where(pre) code {
	background: none;
	color: inherit;
	font-size: inherit;
	padding: 0;
}

.wp-block-quote.is-style-pull,
blockquote.is-style-pull {
	font-size: var(--wp--preset--font-size--pull);
	font-weight: 800;
	line-height: 1.25;
	font-style: normal;
	border: 0;
	margin: 36px 0;
	max-width: 26ch;
	text-indent: -0.496em;
	letter-spacing: -0.015em;
}

blockquote.is-style-pull cite,
.wp-block-quote.is-style-pull cite {
	display: block;
	font-size: 13px;
	font-style: normal;
	color: var(--wp--preset--color--neutral-700);
}

.entry-content blockquote:not(.is-style-pull) {
	font-size: var(--wp--preset--font-size--body);
	border-left: 2px solid var(--wp--preset--color--text);
	padding-left: 20px;
}

.entry-content table {
	border-collapse: collapse;
	width: 100%;
}

.entry-content table th {
	border-bottom: var(--ttm-rule-2);
	text-align: left;
}

.entry-content table td {
	border-bottom: var(--ttm-rule-1);
}

.entry-content sup,
.entry-content .modern-footnotes-footnote,
.entry-content .fn,
.entry-content sup a[data-fn] {
	font-size: 12px;
	color: var(--wp--preset--color--accent-700);
}

/* 4.1 masthead front */
.ttm-masthead-front {
	padding-top: var(--wp--preset--spacing--40);
}

/* Shared masthead navs */
.ttm-nav {
	box-sizing: border-box;
}

.ttm-masthead-front__meta {
	display: flex;
	justify-content: space-between;
	align-items: center;
	font-size: var(--wp--preset--font-size--caption);
	color: var(--wp--preset--color--neutral-700);
	font-feature-settings: "tnum" 1;
	padding: 14px 0;
	border-bottom: var(--ttm-rule-1);
}

/* stylelint-disable-next-line no-descending-specificity */
.ttm-masthead-front__links a, .ttm-masthead-inner__aside a {
	margin-left: var(--wp--preset--spacing--40);
}

.ttm-masthead-front__title {
	display: grid;
	grid-template-columns: 1fr auto;
	align-items: end;
	gap: var(--wp--preset--spacing--60);
	padding: var(--wp--preset--spacing--50) 0 var(--wp--preset--spacing--40);
}

.ttm-masthead-front__byline {
	font-size: var(--wp--preset--font-size--dek);
	margin-top: var(--wp--preset--spacing--30);
}

.ttm-masthead-front__byline span {
	color: var(--wp--preset--color--neutral-700);
}

/* stylelint-disable-next-line no-descending-specificity */
.ttm-masthead-front__byline a {
	font-weight: 600;
}

.ttm-masthead-front__tagline {
	font-size: var(--wp--preset--font-size--dek);
	line-height: 1.5;
	color: var(--wp--preset--color--neutral-800);
	max-width: 32ch;
}

.ttm-masthead-front__nav {
	display: flex;
	align-items: center;
	gap: var(--wp--preset--spacing--60);
	font-size: var(--wp--preset--font-size--body-s);
	font-weight: 600;
	padding: var(--wp--preset--spacing--30) 0;
}

.ttm-masthead-front__nav ul {
	display: flex;
	align-items: center;
	gap: 28px;
}

/* Colour a11y: 700>core. */
.ttm-nav .current-menu-item > a {
	color: var(--wp--preset--color--accent-700) !important;
}

.ttm-masthead-front__nav .ttm-nav__hub {
	margin-left: auto;
}

.ttm-masthead-front__nav .ttm-nav__hub > a {
	margin-left: auto;
	font-weight: 400;
	color: var(--wp--preset--color--neutral-700) !important;
}

@media (max-width: 720px) {

	.ttm-masthead-front__byline {
		font-size: var(--wp--preset--font-size--caption);
	}

	.ttm-masthead-front__meta {
		font-size: var(--wp--preset--font-size--micro);
	}

	.ttm-masthead-front__links a:not(:first-child) {
		display: none;
	}

	.ttm-masthead-front__nav {
		overflow-x: auto;
		scrollbar-width: none;
	}

	.ttm-masthead-front__nav::-webkit-scrollbar {
		display: none;
	}

	/* nav's ul: shrink 0. */
	.ttm-masthead-front__nav ul {
		flex-wrap: nowrap;
		flex-shrink: 0;
		gap: 20px;
		font-size: var(--wp--preset--font-size--ui);
		white-space: nowrap;
	}
}

/* 4.2 masthead inner; pinned under the admin bar (gone <601px). */
@media (max-width: 600px) {

	:root {
		--ttm-pin: 0px;
	}
}

html:has(.ttm-masthead-inner) {
	scroll-padding-top: calc(var(--ttm-pin) + 72px);
}

.wp-site-blocks > :has(.ttm-masthead-inner) {
	position: sticky;
	top: var(--ttm-pin);
	z-index: 10;
	background: var(--wp--preset--color--bg);
}

.ttm-masthead-inner {
	display: grid;
	grid-template-columns: auto 1fr auto;
	align-items: center;
	gap: var(--wp--preset--spacing--60);
	padding: 14px 0 12px;
	border-bottom: var(--ttm-rule-2);
}

.ttm-masthead-inner__title {
	display: flex;
	align-items: baseline;
}

.ttm-masthead-inner .wp-block-site-title {
	font-size: 22px;
	font-weight: 800;
	letter-spacing: -0.02em;
	line-height: 1.1;
}

.ttm-masthead-inner__by {
	font-size: var(--wp--preset--font-size--caption);
	color: var(--wp--preset--color--neutral-700);
	margin-left: 10px;
}

.ttm-masthead-inner__nav {
	font-size: var(--wp--preset--font-size--ui);
}

/* Rule 43 (>=721): gap. */
.ttm-masthead-inner__nav ul {
	display: flex;
	column-gap: 22px;
}

/* Hub item lighter, wins. */
.ttm-masthead-inner__nav .ttm-nav__hub > a.wp-block-navigation-item__content {
	font-weight: 400;
	color: var(--wp--preset--color--neutral-700);
}

.ttm-masthead-inner__aside {
	font-size: var(--wp--preset--font-size--caption);
	color: var(--wp--preset--color--neutral-700);
}

@media (min-width: 721px) {

	/* Rule 43: no chrome. */
	.ttm-masthead-inner .wp-block-navigation__responsive-container-open,
	.ttm-masthead-inner .wp-block-navigation__responsive-container-close {
		display: none;
	}

	.ttm-masthead-inner .wp-block-navigation__responsive-container:not(.is-menu-open) {
		display: block;
		position: static;
		background: none;
	}
}

@media (max-width: 720px) {

	.ttm-masthead-inner {
		grid-template-columns: 1fr auto;
		padding: 12px 0 10px;
	}

	.ttm-masthead-inner .wp-block-site-title {
		font-size: 18px;
	}

	.ttm-masthead-inner__by,
	.ttm-masthead-inner__aside {
		display: none;
	}

	/* S2: re-hide core's list at 600-720px; show "Menu". */
	.ttm-masthead-inner .ttm-masthead-inner__nav .wp-block-navigation__responsive-container:not(.is-menu-open) {
		display: none;
	}

	.ttm-masthead-inner .wp-block-navigation__responsive-container-open.wp-block-navigation__responsive-container-open.wp-block-navigation__responsive-container-open {
		display: flex;
		font-size: var(--wp--preset--font-size--micro);
		color: var(--wp--preset--color--neutral-700);
		border: 0;
		background: none;
		padding: 0;
	}

	.ttm-masthead-inner .wp-block-navigation__responsive-container-close.wp-block-navigation__responsive-container-close.wp-block-navigation__responsive-container-close {
		font-size: 24px;
		font-weight: 800;
	}
}

/* 4.3 nav */
/* stylelint-disable-next-line no-descending-specificity */
.wp-block-navigation a {
	font-weight: 600;
	color: var(--wp--preset--color--text);
	text-decoration: none;
}

.wp-block-navigation a:hover,
.wp-block-navigation .current-menu-item > a {
	color: var(--wp--preset--color--accent);
}

.wp-block-navigation__responsive-container.is-menu-open {
	background: var(--wp--preset--color--bg);
}

.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item {
	font-size: 24px;
	font-weight: 800;
	border-bottom: var(--ttm-rule-1);
}

.wp-block-navigation__responsive-container-close {
	font-size: 24px;
}

/* 4.4 cell heading */
.ttm-cell-heading {
	display: flex;
	justify-content: space-between;
	align-items: baseline;
	margin-bottom: var(--wp--preset--spacing--40);
}

.ttm-hub-all .ttm-cell-heading {
	margin-bottom: 12px;
}

.ttm-cell-heading__label {
	font-size: var(--wp--preset--font-size--caption);
	font-weight: 800;
	text-transform: uppercase;
	letter-spacing: 0.08em;
	color: var(--wp--preset--color--text);
}

.ttm-cell-heading__link {
	font-size: var(--wp--preset--font-size--micro);
	color: var(--wp--preset--color--neutral-700);
	font-feature-settings: "tnum";
}

/* §6.4/§6.7: journal + hub headings: caption, not micro. */
.ttm-journal-stream .ttm-cell-heading__link,
.ttm-hub-all .ttm-cell-heading__link {
	font-size: var(--wp--preset--font-size--caption);
	color: var(--wp--preset--color--neutral-700);
}

.ttm-cell-heading.is-rail {
	padding-bottom: var(--wp--preset--spacing--20);
	border-bottom: var(--ttm-rule-2);
}

/* §6.1.5: 12px (caption), not the 11px used elsewhere on the rail. */
.ttm-cell-heading.is-rail .ttm-cell-heading__link {
	font-size: var(--wp--preset--font-size--caption);
}

/* 4.5 headline item */
.ttm-item {
	display: block;
	border-top: var(--ttm-rule-1);
	padding: var(--wp--preset--spacing--30) 0 var(--wp--preset--spacing--40);
	color: inherit;
	text-decoration: none;
}

.ttm-item h3,
.ttm-item h4 {
	margin: 0;
}

.ttm-item:hover h3,
.ttm-item:hover h4 {
	color: var(--wp--preset--color--accent);
}

/* 03 §9: clamp 3 to dek. */
.ttm-item__dek {
	display: -webkit-box;
	overflow: hidden;
	margin: 0;
	font-size: 13px;
	line-height: 1.45;
	color: var(--wp--preset--color--neutral-800);
	-webkit-line-clamp: 3;
	-webkit-box-orient: vertical;
}

.ttm-item__meta {
	margin: 6px 0 0;
	font-size: var(--wp--preset--font-size--caption);
	color: var(--wp--preset--color--neutral-700);
}

/* 4.32/33: news+poster */
.ttm-newsletter-box {
	background: var(--wp--preset--color--surface);
	padding: 16px 18px;
}

.ttm-newsletter-box__title {
	margin: 0 0 8px;
	font-size: 15px;
	font-weight: 800;
}

.ttm-newsletter-box__copy {
	margin: 0 0 12px;
	font-size: var(--wp--preset--font-size--ui);
	color: var(--wp--preset--color--neutral-800);
}

/* Box: tighter row */
.ttm-newsletter-box form {
	display: flex;
	gap: 6px;
}

/* .input/.btn* style selves */
.ttm-newsletter-form__form {
	display: flex;
	align-items: center;
	gap: 8px;
}

.ttm-newsletter-form__statement {
	font-size: var(--wp--preset--font-size--caption);
}

.ttm-newsletter-form[data-state="subscribed"] form {
	display: none;
}

.ttm-newsletter-form__done {
	display: none;
}

.ttm-newsletter-form[data-state="subscribed"] .ttm-newsletter-form__done {
	display: block;
}

@media (max-width: 720px) {

	.ttm-newsletter-form__form {
		flex-direction: column;
	}

	.ttm-newsletter-box {
		margin-bottom: 24px;
	}

	.ttm-newsletter-box .btn-primary {
		width: 100%;
		justify-content: center;
	}
}

.ttm-poster {
	background: var(--wp--preset--color--accent);
	color: var(--wp--preset--color--bg);
	padding: 36px 48px 32px;
	display: grid;
	grid-template-columns: 1fr auto;
	align-items: end;
	gap: var(--wp--preset--spacing--60);
}

/* Featured size (40px), overrides h3 default of 28px. */
/* stylelint-disable-next-line no-descending-specificity */
.ttm-poster h3.is-style-poster {
	margin: 0;
	margin-left: -0.058em;
	max-width: 20ch;
	text-align: left;
	font-size: var(--wp--preset--font-size--featured);
}

/* §2.1: bg-accent<AA, excl. */
.ttm-poster .btn-ghost {
	background: transparent;
	color: var(--wp--preset--color--bg);
	border: var(--ttm-rule-1);
	border-color: var(--wp--preset--color--bg);
}

.ttm-poster .input {
	width: 260px;
	border-color: var(--wp--preset--color--bg);
}

@media (max-width: 720px) {

	.ttm-poster {
		grid-template-columns: 1fr;
		padding: 24px 20px;
	}

	.ttm-poster h3.is-style-poster {
		font-size: var(--wp--preset--font-size--pull);
	}

	.ttm-poster .input,
	.ttm-poster .btn {
		width: 100%;
	}
}

/* 4.34 footer */

/* Full-bleed via neg margin */
.ttm-footer {
	display: flex;
	justify-content: space-between;
	margin-inline: calc(-1 * var(--wp--custom--gutter--desktop));
	padding: 14px var(--wp--custom--gutter--desktop);
	font-size: var(--wp--preset--font-size--caption);
	line-height: 1.15;
	color: var(--wp--preset--color--neutral-700);
	border-top: var(--ttm-rule-2);
}

/* template-part -> div */
.is-after-poster .ttm-footer {
	padding: 16px var(--wp--custom--gutter--desktop);
	border-top: 0;
}

.ttm-footer__left {
	display: block;
}

.ttm-footer__meta {
	margin: 0;
}

.ttm-footer__nav ul {
	display: flex;
	flex-wrap: nowrap;
	gap: 0;
}

/* stylelint-disable-next-line no-descending-specificity */
.ttm-footer__nav a {
	font-size: var(--wp--preset--font-size--caption);
	font-weight: 400;
	color: var(--wp--preset--color--neutral-700);
}

.ttm-footer__nav a:hover {
	color: var(--wp--preset--color--accent);
}

.ttm-footer .wp-block-navigation-item + .wp-block-navigation-item::before {
	content: "·";
	margin: 0 0.4em;
}

@media (max-width: 720px) {

	.ttm-footer {
		flex-direction: column;
		gap: var(--wp--preset--spacing--20);
		margin-inline: calc(-1 * var(--wp--custom--gutter--phone));
		padding-inline: var(--wp--custom--gutter--phone);
		font-size: 11px;
		line-height: 1.6;
	}

	.ttm-footer__nav ul {
		flex-wrap: wrap;
	}
}

/* 4.7 lead */
.ttm-lead-row {
	column-gap: var(--wp--preset--spacing--70);
	row-gap: 0;
	padding: 28px 0 var(--wp--preset--spacing--60);
}

.ttm-lead-row__lead {
	display: block;
}

.ttm-lead {
	display: block;
}

/* .ttm-lead__inner: plain. */
.ttm-lead__inner {
	display: block;
}

.ttm-lead__media {
	display: block;
	width: 100%;
	aspect-ratio: 16 / 9;
	margin: 0 0 var(--wp--preset--spacing--40);
	background: var(--wp--preset--color--surface);
}

.ttm-lead__media.is-ratio-4-3 {
	aspect-ratio: 4 / 3;
}

.ttm-lead__media img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
}

@media (max-width: 720px) {

	.ttm-lead__media {
		aspect-ratio: 4 / 3;
	}
}

.ttm-lead__kicker {
	margin: 20px 0 10px;
	font-size: var(--wp--preset--font-size--caption);
	letter-spacing: 0.08em;
	text-transform: uppercase;
	font-weight: 600;
	color: var(--wp--preset--color--accent-700);
}

.ttm-lead__title {
	margin: 0 0 var(--wp--preset--spacing--30) -0.02em;
	font-size: var(--wp--preset--font-size--lead);
	line-height: 1.05;
	letter-spacing: -0.02em;
	font-weight: 800;
	max-width: 22ch;
}

/* stylelint-disable-next-line no-descending-specificity */
.ttm-lead__title a {
	color: var(--wp--preset--color--text);
	text-decoration: none;
}

.ttm-lead__title a:hover {
	color: var(--wp--preset--color--accent);
}

.ttm-lead__dek {
	margin: 0 0 var(--wp--preset--spacing--30);
	font-size: 17px;
	line-height: 1.5;
	color: var(--wp--preset--color--neutral-800);
	max-width: 60ch;
}

.ttm-lead__dek code {
	font-size: var(--wp--preset--font-size--body-s);
	background: var(--wp--preset--color--surface);
	padding: 1px 5px;
}

.ttm-lead__meta {
	font-size: var(--wp--preset--font-size--caption);
	color: var(--wp--preset--color--neutral-700);
	font-feature-settings: "tnum";
}

/* stylelint-disable-next-line no-descending-specificity */
.ttm-lead__meta a {
	color: var(--wp--preset--color--accent-700);
}

.ttm-lead.is-textonly .ttm-lead__title {
	font-size: var(--wp--preset--font-size--display-m);
	max-width: 18ch;
}

.ttm-lead.is-textonly .ttm-lead__dek {
	font-size: var(--wp--preset--font-size--synopsis);
}

@media (max-width: 720px) {

	.ttm-lead__kicker {
		font-size: var(--wp--preset--font-size--micro);
	}

	.ttm-lead__title {

		font-size: var(--wp--preset--font-size--article-h-2);
	}

	.ttm-lead__dek {
		font-size: var(--wp--preset--font-size--dek);
	}
}

/* 4.8 rail */
.ttm-rail {
	display: flex;
	flex-direction: column;
	gap: var(--wp--preset--spacing--60);
}

/* 02 §A: 901-1024px, minmax(0, …) tracks so neither overflows. */
@media (max-width: 1024px) and (min-width: 901px) {

	.ttm-lead-row {
		grid-template-columns: minmax(0, 8fr) minmax(0, 4fr);
	}
}

/* 4.10 journal excerpt */
.ttm-journal-excerpt__date {
	margin: 0 0 6px;
	font-feature-settings: "tnum";
}

.ttm-journal-rail .wp-block-post {
	padding: 16px 0;
	border-bottom: var(--ttm-rule-1);
}

.ttm-journal-rail .wp-block-post-title {
	margin: 0 0 6px;
	font-size: 16px;
	font-weight: 800;
	line-height: 1.25;
}

/* stylelint-disable-next-line no-descending-specificity */
.ttm-journal-rail .wp-block-post-title a {
	color: var(--wp--preset--color--text);
	text-decoration: none;
}

.ttm-journal-rail .wp-block-post-title a:hover {
	color: var(--wp--preset--color--accent);
}

.ttm-journal-rail .wp-block-post-excerpt__excerpt {
	margin: 0;
	font-size: var(--wp--preset--font-size--body-s);
	line-height: 1.5;
	color: var(--wp--preset--color--neutral-800);
}

.ttm-journal-rail .wp-block-read-more {
	display: inline-block;
	margin-top: var(--wp--preset--spacing--20);
	font-size: var(--wp--preset--font-size--caption);
	font-weight: 600;
	color: var(--wp--preset--color--accent-700);
}

@media (max-width: 720px) {

	.ttm-journal-rail .wp-block-post:nth-child(n+3) {
		display: none;
	}
}

/* 4.14 cell */
.ttm-section-row {
	grid-auto-flow: dense;
}

.ttm-section-row.is-row-1 {
	padding: 0 0 8px;
}

.ttm-section-row .wp-block-query.is-empty {
	display: none;
}

.ttm-cell .wp-block-post-excerpt:empty {
	margin: 0;
}

.ttm-cell .wp-block-post:not(:first-child) .wp-block-post-excerpt,
.ttm-cell .wp-block-post:not(:first-child) .wp-block-post-featured-image {
	display: none;
}

/* .ttm-item rule/pad -> li. */
.ttm-cell .ttm-item {
	border-top: 0;
	padding: 0;
}

.ttm-cell .wp-block-post:not(:first-child) {
	border-top: var(--ttm-rule-1);
	padding-top: 12px;
}

.ttm-cell .wp-block-post:not(:last-child) {
	margin-bottom: 12px;
}

.ttm-cell .wp-block-post-title {
	margin: 0 0 8px;
	line-height: 1.15;
}

.ttm-cell .wp-block-post:not(:first-child) .wp-block-post-title {
	margin: 0 0 4px;
	font-size: 15px;
	line-height: 1.3;
}

@media (max-width: 720px) {

	.ttm-cell {
		padding: 18px 0 20px;
		border-right: 0;
		border-top: var(--ttm-rule-2);
	}
}

/* 4.6 featured item */
.ttm-cell.is-style-span-2 .wp-block-post-template {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 20px 28px;
}

/* Children are grid items. */
.ttm-cell.is-style-span-2 .ttm-item {
	display: contents;
}

.ttm-cell.is-style-span-2 .wp-block-post:first-child {
	grid-column: span 2;
	display: grid;
	grid-template-columns: 200px 1fr;
	gap: 20px;
	align-items: start;
}

.ttm-cell.is-style-span-2 .wp-block-post:first-child:not(:has(.ttm-item-featured__media img)) {
	grid-template-columns: 1fr;
}

.ttm-item-featured__media {
	grid-row: 1 / span 3;
	aspect-ratio: 3 / 2;
}

.ttm-item-featured__media img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.ttm-cell.is-style-span-2 .ttm-item__dek {
	font-size: var(--wp--preset--font-size--body-s);
}

.ttm-cell.is-style-span-2 .ttm-item__meta {
	margin-top: var(--wp--preset--spacing--20);
}

/* stylelint-disable-next-line no-descending-specificity */
.ttm-cell.is-style-span-2 .wp-block-post:not(:first-child) {
	padding-top: 14px;
}

.ttm-cell.is-style-span-2 .wp-block-post:not(:first-child) .wp-block-post-title {
	font-size: 17px;
	line-height: 1.25;
}

/* 4.16 series mark */
.ttm-series-mark {
	display: inline-block;
	width: 10px;
	height: 10px;
	margin-top: 5px;
}

.ttm-series-mark.is-in-progress {
	background: var(--wp--preset--color--accent);
}

.ttm-series-mark.is-complete {
	background: var(--wp--preset--color--neutral-900);
}

.ttm-series-mark.is-hiatus {
	background: var(--wp--preset--color--neutral-400);
}

/* 4.17 series row */
.ttm-series-strip {
	padding: 20px 0 28px;
}

/* stylelint-disable-next-line no-descending-specificity */
.ttm-series-strip .ttm-cell-heading__link {
	font-size: var(--wp--preset--font-size--caption);
}

.ttm-series-strip:not(:has(.ttm-series-list)) {
	display: none;
}

.ttm-series-strip:has(.ttm-series-list.is-complete) .ttm-series-strip__heading {
	display: none;
}

.ttm-series-strip__heading-fallback {
	display: none;
}

.ttm-series-strip:has(.ttm-series-list.is-complete) .ttm-series-strip__heading-fallback {
	display: block;
}

.ttm-series-list.is-grid-2 {
	display: grid;
	grid-template-columns: 1fr 1fr;
	column-gap: var(--wp--preset--spacing--80);
}

.ttm-series-list.is-grid-2 .ttm-series-row {
	gap: 0 14px;
	padding: 18px 0;
	align-items: start;
}

.ttm-series-list.is-grid-3,
.ttm-series-list.is-strip {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: var(--wp--preset--spacing--50);
}

.ttm-series-list.is-strip .ttm-series-row {
	grid-template-columns: 10px 1fr;
	gap: 12px;
	align-items: start;
	padding: 12px 0 0;
}

.ttm-series-row__meta {
	grid-column: 2;
	margin-top: var(--wp--preset--spacing--10);
	font-size: var(--wp--preset--font-size--caption);
	color: var(--wp--preset--color--neutral-700);
	font-feature-settings: "tnum";
}

/* stylelint-disable-next-line no-descending-specificity */
.ttm-series-row {
	display: grid;
	grid-template-columns: 10px 1fr auto;
	gap: var(--wp--preset--spacing--20);
	align-items: baseline;
	padding: var(--wp--preset--spacing--20) 0;
	border-top: var(--ttm-rule-1);
	color: inherit;
	text-decoration: none;
}

.ttm-series-row__title {
	grid-column: 2;
	font-size: 16px;
	font-weight: 800;
}

.ttm-series-list.is-list .ttm-series-row__title,
.ttm-series-list.is-grid-2 .ttm-series-row__title {
	font-size: 20px;
	line-height: 1.15;
	letter-spacing: -0.01em;
}

.ttm-series-row__dek {
	grid-column: 2;
	margin-top: 5px;
	font-size: 14px;
	line-height: 1.45;
	color: var(--wp--preset--color--neutral-800);
	max-width: 44ch;
}

.ttm-series-list.is-list .ttm-series-row {
	gap: 0 14px;
	padding: 16px 0;
	align-items: start;
	border-top: 0;
	border-bottom: var(--ttm-rule-1);
}

.ttm-series-list.is-list .ttm-series-mark {
	margin-top: 6px;
}

.ttm-series-list.is-list .ttm-series-row__meta {
	margin-top: 6px;
}

.ttm-series-list.is-list .ttm-series-row__dek {
	margin-top: 4px;
	max-width: 46ch;
}

.ttm-series-row__categories {
	grid-column: 2;
	margin-top: 8px;
	font-size: var(--wp--preset--font-size--caption);
	color: var(--wp--preset--color--neutral-700);
}

.ttm-series-row__count {
	grid-column: 3;
	grid-row: 1 / span 3;
	text-align: right;
	font-size: var(--wp--preset--font-size--caption);
	line-height: 1.5;
	color: var(--wp--preset--color--neutral-700);
	font-feature-settings: "tnum";
}

.ttm-series-row__parts {
	display: block;
	font-feature-settings: "tnum";
}

.ttm-series-row__status {
	display: block;
	font-weight: 600;
	color: var(--wp--preset--color--neutral-700);
}

.ttm-series-row:has(.is-in-progress) .ttm-series-row__status {
	color: var(--wp--preset--color--accent-700);
}

@media (max-width: 720px) {

	.ttm-series-list.is-grid-2,
	.ttm-series-list.is-grid-3,
	.ttm-series-list.is-strip {
		grid-template-columns: 1fr;
	}

	.ttm-series-list.is-strip .ttm-series-row {
		padding: 10px 0;
	}
}

/* Aside: shared kinds */
.ttm-archive-body aside {
	padding-top: 24px;
	display: flex;
	flex-direction: column;
	gap: 28px;
}

.ttm-series-list.is-rail .ttm-series-row {
	grid-template-columns: 10px 1fr;
	gap: 12px;
	padding: 12px 0;
	border-top: 0;
	border-bottom: var(--ttm-rule-1);
}

.ttm-series-list.is-rail .ttm-series-row__title {
	font-size: 15px;
	font-weight: 800;
	line-height: 1.25;
}

.ttm-series-list.is-rail .ttm-series-row__meta {
	margin-top: 3px;
	font-size: 12px;
	color: var(--wp--preset--color--neutral-700);
}

@media (max-width: 1024px) {

	.ttm-archive-body aside {
		display: grid;
		grid-template-columns: 1fr 1fr;
		gap: 0 32px;
	}
}

@media (max-width: 720px) {

	.ttm-archive-body aside {
		display: flex;
		flex-direction: column;
	}
}

.ttm-series-list.is-grid-2 .ttm-series-mark {
	margin-top: 6px;
}

/* 4.22 article head + byline */
.ttm-article-head {
	margin-bottom: 0;
}

.ttm-article-head .is-style-kicker {
	margin: 0 0 14px;
}

.ttm-article-head .is-style-kicker a[rel] {
	color: inherit;
	text-decoration: none;
}

.ttm-article-head h1 {
	font-size: var(--wp--preset--font-size--h-1);
	font-weight: 800;
	line-height: 1.02;
	letter-spacing: -0.025em;
	margin: 0 0 18px -0.03em;
	max-width: 18ch;
}

.ttm-article-head .is-style-dek-l {
	margin: 0 0 22px;
}

.ttm-byline {
	display: flex;
	align-items: center;
	gap: 18px;
	padding: 14px 0;
	border-top: var(--ttm-rule-2);
	border-bottom: var(--ttm-rule-1);
	font-size: 13px;
	color: var(--wp--preset--color--neutral-700);
	font-feature-settings: "tnum";
}

.ttm-byline .wp-block-post-author-name a.wp-block-post-author-name__link {
	font-weight: 600;
	color: var(--wp--preset--color--text);
}

/* 4.5: "More in {Cat}" */
.ttm-more-in .wp-block-query .ttm-item {
	padding: 10px 0;
	border-top: 0;
	border-bottom: var(--ttm-rule-1);
}

.ttm-more-in .ttm-item .wp-block-post-title a {
	font-size: 14px;
	font-weight: 600;
	line-height: 1.35;
	color: inherit;
	text-decoration: none;
}

.ttm-more-in:has(.is-empty) {
	display: none;
}

/* 4.11 row (link_rows). */
.ttm-journal-stream {
	padding: 24px 0 40px;
}

.ttm-journal-archive {
	padding: 0 0 48px;
}

.ttm-journal-stream:not(:has(.wp-block-post)) {
	display: none;
}

.ttm-journal-stream .ttm-cell-heading {
	margin-bottom: 8px;
}

:is(.ttm-journal-stream, .ttm-journal-archive) .wp-block-query .wp-block-post-template {
	list-style: none;
	margin: 0;
	padding: 0;
}

.ttm-journal-row {
	display: grid;
	grid-template-columns: minmax(0, 3fr) minmax(0, 7fr) minmax(0, 2fr);
	grid-template-rows: auto auto;
	gap: 0 48px;
	align-items: baseline;
	padding: 18px 0;
	border-top: var(--ttm-rule-1);
	color: inherit;
	text-decoration: none;
}

.is-style-journal-stream-date {
	grid-column: 1;
	grid-row: 1;
	margin: 0;
	font-size: 20px;
	font-weight: 800;
	letter-spacing: -0.015em;
	font-feature-settings: "tnum";
}

:is(.ttm-journal-stream, .ttm-journal-archive) .wp-block-query .wp-block-post .ttm-journal-row .wp-block-post-title {
	grid-column: 2;
	grid-row: 1;
	margin: 0;
	font-size: 18px;
	font-weight: 800;
	line-height: 1.25;
}

:is(.ttm-journal-stream, .ttm-journal-archive) .wp-block-query .wp-block-post .ttm-journal-row:hover .wp-block-post-title {
	color: var(--wp--preset--color--accent);
}

:is(.ttm-journal-stream, .ttm-journal-archive) .wp-block-post .ttm-journal-row .wp-block-post-excerpt {
	grid-column: 2;
	grid-row: 2;
}

.ttm-journal-row .wp-block-post-excerpt__excerpt {
	margin: 4px 0 0;
	font-size: 15px;
	line-height: 1.5;
	color: var(--wp--preset--color--neutral-800);
	max-width: 40em;
}

.ttm-journal-row__words {
	grid-column: 3;
	grid-row: 1;
	justify-self: end;
	margin: 0;
	font-size: 12px;
	color: var(--wp--preset--color--neutral-700);
	font-feature-settings: "tnum";
}

/* 4.12 journal header */
.ttm-journal-head {
	gap: 0 48px;
	padding: 40px 0 48px;
}

.ttm-journal-head .is-style-kicker {
	margin: 0 0 6px;
}

.ttm-journal-head .is-style-journal-date {
	margin: 0 0 0 -0.03em;
}

.ttm-journal-head__subline {
	margin: 6px 0 0;
	font-size: 14px;
	color: var(--wp--preset--color--neutral-700);
}

.ttm-journal-head main {
	max-width: 36em;
}

.ttm-journal-head h1 {
	margin: 0 0 18px;
}

/* R2-04: h1 margin gives the 18px gap; F12's pad would double it. */
.ttm-journal-head .ttm-entry {
	padding-top: 0;
}

.ttm-journal-head main .entry-content p {
	margin: 0 0 18px;
}

.ttm-journal-head main .entry-content p:last-child {
	margin-bottom: 0;
}

.ttm-journal-head__aside {
	font-size: 12px;
	line-height: 1.5;
	color: var(--wp--preset--color--neutral-700);
}

.ttm-journal-head__note {
	margin: 0 0 8px;
	font-size: 12px;
	line-height: 1.5;
	color: var(--wp--preset--color--neutral-700);
}

.ttm-journal-head__rss {
	margin: 0;
	font-size: 12px;
}

.ttm-journal-head .ttm-journal-head__aside .ttm-journal-head__rss a {
	color: var(--wp--preset--color--accent-700);
	text-decoration: none;
}

.ttm-journal-head__count {
	margin: 8px 0 0;
	font-size: 12px;
	color: var(--wp--preset--color--neutral-700);
}

/* 4.12a journal hero (Recede): the featured photograph runs full-bleed under the masthead and
   fades into the ground; the entry is an opaque sheet that slides over it as the photograph
   recedes to a grey wash. A long or photo-heavy entry (ttm-journal-long) gets the tall, pinned
   hero. Articles can pick the same hero (single-feature.html). Without scroll timelines, or with reduced motion, it is a still photograph. */
body:has(.ttm-journal-hero) {
	overflow-x: clip;
}

.wp-site-blocks:has(.ttm-journal-hero) > :has(.ttm-masthead-inner),
.ttm-journal-sheet {
	border-image: conic-gradient(var(--wp--preset--color--bg) 0 0) fill 0 / 0 / 0 100vmax;
}

.ttm-journal-sheet {
	position: relative;
	z-index: 1;
	background: var(--wp--preset--color--bg);
}

.ttm-journal-recede .ttm-journal-hero {
	position: relative;
	width: 100vw;
	max-width: none;
	height: min(44svh, 420px);
	margin: 0 calc(50% - 50vw);
	overflow: hidden;
}

.ttm-journal-long .ttm-journal-recede .ttm-journal-hero {
	height: min(72svh, 720px);
}

.ttm-journal-hero img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.ttm-journal-hero::after {
	content: "";
	position: absolute;
	inset: auto 0 0;
	height: 22%;
	background: linear-gradient(transparent, var(--wp--preset--color--bg));
	pointer-events: none;
}

/* The photo credit sits on ground at the hero's foot, over the date column. */
.ttm-journal-hero .ttm-hero__caption {
	position: absolute;
	z-index: 1;
	bottom: 0;
	left: max(var(--wp--custom--gutter--desktop), 50vw - 640px + var(--wp--custom--gutter--desktop));
	max-width: 40ch;
	margin: 0;
	padding: 4px 8px 0 0;
	background: var(--wp--preset--color--bg);
}

.ttm-journal-recede:has(.ttm-journal-hero) .ttm-journal-head {
	padding-top: 32px;
}

/* The same hero over an article ("Article with photo hero", single-feature.html). */
.ttm-feature:has(.ttm-journal-hero) .ttm-journal-sheet {
	padding-top: 16px;
}

@supports (animation-timeline: scroll()) {

	@media (prefers-reduced-motion: no-preference) {

		.ttm-journal-long .ttm-journal-recede .ttm-journal-hero {
			position: sticky;
			top: var(--ttm-pin);
		}

		.ttm-journal-hero img {
			animation: ttm-recede linear both;
			animation-timeline: scroll(root);
			animation-range: 0 min(44svh, 420px);
		}

		.ttm-journal-long .ttm-journal-hero img {
			animation-range: 0 min(72svh, 720px);
		}
	}
}

@keyframes ttm-recede {

	to {
		opacity: 0.2;
		filter: grayscale(1) contrast(1.08);
		transform: scale(1.04);
	}
}

@media (max-width: 720px) {

	.ttm-journal-recede .ttm-journal-hero {
		height: auto;
		aspect-ratio: 3 / 2;
	}

	.ttm-journal-long .ttm-journal-recede .ttm-journal-hero {
		height: auto;
		aspect-ratio: 4 / 5;
	}

	.ttm-journal-hero .ttm-hero__caption {
		left: var(--wp--custom--gutter--phone);
	}
}

/* 4.13 syndication line */
.ttm-syndication {
	display: flex;
	gap: 20px;
	align-items: center;
	border-top: var(--ttm-rule-1);
	padding-top: 14px;
	margin-top: 28px;
	font-size: var(--wp--preset--font-size--ui);
	color: var(--wp--preset--color--neutral-700);
}

.ttm-syndication__text {
	display: inline;
}

/* Underlined: not grey. */
/* stylelint-disable-next-line no-descending-specificity */
.ttm-syndication a {
	color: var(--wp--preset--color--accent-700);
	text-decoration: underline;
	text-underline-offset: 3px;
}

.ttm-syndication__words {
	margin-left: auto;
	font-feature-settings: "tnum";
}

/* Q-M1/Q-M2 footnotes */
/* stylelint-disable-next-line no-descending-specificity */
.entry-content sup.modern-footnotes-footnote a {
	text-decoration: none;
}

.modern-footnotes-footnote__note {
	font-size: 13px;
	color: var(--wp--preset--color--neutral-700);
}

.modern-footnotes-footnote__note::before {
	content: "[";
}

.modern-footnotes-footnote__note::after {
	content: "]";
}

ul.modern-footnotes-list,
.wp-block-footnotes {
	font-size: 12px;
	border-top: var(--ttm-rule-1);
	padding-top: 10px;
	margin-top: 20px;
}

@media (max-width: 1024px) {

	.ttm-article,
	.ttm-journal-head {
		grid-template-columns: minmax(0, 1fr);
	}

	/* §6.4: 1px footnote. */
	.ttm-journal-head__aside {
		margin-top: 28px;
		padding-top: 14px;
		border-top: var(--ttm-rule-1);
	}

	.ttm-journal-row {
		grid-template-columns: auto 1fr;
	}

	.is-style-journal-stream-date {
		font-size: 16px;
	}

	.ttm-journal-row__words {
		display: none;
	}
}

@media (max-width: 720px) {

	.ttm-journal-head .is-style-journal-date {
		font-size: 36px;
	}

	.ttm-journal-head h1 {
		font-size: 26px;
	}

	.ttm-journal-head main .entry-content {
		font-size: 17px;
		line-height: 1.6;
	}

	/* Mock 3b phone: kicker 11px, h1 34px, dek 17px, byline 12px. */
	.ttm-article-head .is-style-kicker {
		font-size: var(--wp--preset--font-size--micro);
	}

	.ttm-article-head h1 {
		font-size: 34px;
	}

	.ttm-article-head .is-style-dek-l {
		font-size: 17px;
	}

	.ttm-byline {
		flex-wrap: wrap;
		gap: 6px 14px;
		font-size: var(--wp--preset--font-size--caption);
	}

	/* 3b: hero/code, rule 42. */
	.ttm-article .wp-block-post-featured-image {
		margin: 20px -20px 0;
		width: calc(100% + 40px);
		aspect-ratio: 4 / 3;
	}

	.entry-content pre {
		margin-left: -20px;
		margin-right: -20px;
		width: calc(100% + 40px);
		padding-left: 20px;
		padding-right: 20px;
	}

	/* stylelint-disable-next-line no-descending-specificity */
	.entry-content {
		font-size: 17px;
		line-height: 1.6;
	}

	.entry-content h2 {
		font-size: 24px;
	}

	.wp-block-quote.is-style-pull,
	blockquote.is-style-pull {
		font-size: 22px;
	}
}

/* 4.25 archive head (§6.6) */
.ttm-archive-head {
	column-gap: 64px;
	padding: 40px 0 28px;
	align-items: end;
}

.ttm-archive-head .is-style-kicker {
	margin: 0 0 10px;
}

.ttm-archive-head h1 {
	margin: 0 0 14px -0.058em;
	font-size: var(--wp--preset--font-size--display-xl);
	font-weight: 800;
	line-height: 0.95;
	letter-spacing: -0.03em;
}

.ttm-archive-head.is-style-grid-8-4 .wp-block-group .wp-block-term-description p {
	margin: 0;
	font-size: 17px;
	line-height: 1.5;
	color: var(--wp--preset--color--neutral-800);
	max-width: 52ch;
}

.ttm-category-stats {
	font-size: 13px;
	line-height: 1.6;
	color: var(--wp--preset--color--neutral-700);
	font-feature-settings: "tnum";
}

.ttm-archive-head.is-style-grid-8-4 .wp-block-ttm-category-stats.ttm-category-stats p {
	margin: 0;
}

.ttm-archive-head .wp-block-ttm-category-stats.ttm-category-stats a {
	color: var(--wp--preset--color--accent-700);
}

@media (max-width: 720px) {

	.ttm-archive-head {
		grid-template-columns: 1fr;
	}

	.ttm-archive-head h1 {
		font-size: 44px;
	}
}

/* 4.26 filter under header. */
.ttm-filter-row {
	display: flex;
	align-items: center;
	gap: 6px;
	padding: 12px 0;
	border-top: var(--ttm-rule-2);
	border-bottom: var(--ttm-rule-1);
	font-size: 12px;
}

.ttm-archive-body {
	column-gap: 64px;
	padding: 8px 0 48px;
	border-top: var(--ttm-rule-2);
}

/* S6: filter owns this rule */
.ttm-filter-row + .ttm-archive-body {
	border-top: 0;
}

.ttm-filter-row__label {
	margin-right: 8px;
	color: var(--wp--preset--color--neutral-700);
}

.ttm-filter-row__sort {
	margin-left: auto;
	color: var(--wp--preset--color--neutral-700);
	font-size: var(--wp--preset--font-size--caption);
}

@media (max-width: 720px) {

	.ttm-filter-row {
		overflow-x: auto;
		white-space: nowrap;
		scrollbar-width: none;
	}
}

/* 4.27 year group (§6.6) */
.ttm-archive-year {
	display: grid;
	grid-template-columns: 120px 1fr;
	column-gap: 24px;
	padding: 24px 0 8px;
	border-top: var(--ttm-rule-2);
}

.ttm-archive-year__label {
	margin: 0;
	font-size: 32px;
	font-weight: 800;
	line-height: 1;
	letter-spacing: -0.02em;
	font-feature-settings: "tnum";
}

.ttm-archive-year__rows {
	list-style: none;
	margin: 0;
	padding: 0;
}

/* Rows anchors (link_rows). */
.ttm-archive-row {
	display: grid;
	grid-template-columns: 72px 1fr;
	grid-template-rows: auto auto auto auto;
	column-gap: 20px;
	padding: 14px 0;
	border-bottom: var(--ttm-rule-1);
	color: inherit;
	text-decoration: none;
}

/* Search: kicker>title. */
.ttm-archive-row .is-style-kicker {
	grid-column: 2;
	grid-row: 1;
	margin: 0;
	font-size: 12px;
	color: var(--wp--preset--color--accent-700);
}

.ttm-archive-row__date {
	grid-column: 1;
	grid-row: 2;
	margin: 0;
	padding-top: 4px;
	font-size: 12px;
	color: var(--wp--preset--color--neutral-700);
	font-feature-settings: "tnum";
}

.ttm-archive-row__title {
	grid-column: 2;
	grid-row: 2;
	margin: 0;
	font-size: 20px;
	font-weight: 800;
	line-height: 1.2;
}

.ttm-archive-row:hover .ttm-archive-row__title {
	color: var(--wp--preset--color--accent);
}

.ttm-archive-row__dek {
	grid-column: 2;
	grid-row: 3;
	margin: 5px 0 0;
	font-size: 14px;
	line-height: 1.45;
	color: var(--wp--preset--color--neutral-800);
	max-width: 56ch;
}

.ttm-archive-row__meta {
	grid-column: 2;
	grid-row: 4;
	margin: 6px 0 0;
	font-size: 12px;
	color: var(--wp--preset--color--neutral-700);
}

/* 4.28 pagination */
.wp-block-query-pagination {
	display: flex;
	justify-content: space-between;
	padding: 20px 0;
	margin: 0;
	border-top: 0;
	font-size: 13px;
	font-weight: 600;
}

.wp-block-query-pagination .is-disabled {
	color: var(--wp--preset--color--neutral-700);
}

@media (max-width: 720px) {

	.ttm-archive-year {
		grid-template-columns: 1fr;
	}

	.ttm-archive-year__label {
		font-size: 24px;
		border-bottom: var(--ttm-rule-2);
		padding-bottom: 8px;
	}

	.ttm-archive-row {
		grid-template-columns: auto 1fr;
	}
}

/* 4.29 numbered rows */
.ttm-numbered {
	list-style: none;
	margin: 0;
	padding: 0;
}

.ttm-numbered__row {
	display: grid;
	grid-template-columns: 24px 1fr;
	gap: 8px;
	padding: 10px 0;
	border-bottom: var(--ttm-rule-1);
	font-size: 14px;
	font-weight: 600;
	line-height: 1.35;
}

.ttm-numbered__num,
.ttm-series-featured__num {
	font-weight: 800;
	color: var(--wp--preset--color--neutral-700);
	font-feature-settings: "tnum";
}

/* 404: CSS counter. */
.ttm-latest .wp-block-query .wp-block-post-template {
	list-style: none;
	margin: 0;
	padding: 0;
	counter-reset: ttm-latest;
}

.ttm-latest .ttm-numbered__row {
	grid-template-columns: 24px 1fr auto;
	counter-increment: ttm-latest;
}

.ttm-latest .ttm-numbered__row::before {
	content: counter(ttm-latest, decimal-leading-zero);
	font-weight: 800;
	color: var(--wp--preset--color--neutral-700);
	font-feature-settings: "tnum";
}

/* stylelint-disable-next-line no-descending-specificity */
.ttm-latest .wp-block-post-title {
	grid-column: 2;
	margin: 0;
	font-size: 17px;
	font-weight: 800;
}

.ttm-latest .ttm-numbered__date {
	grid-column: 3;
	margin: 0;
	font-size: 12px;
	color: var(--wp--preset--color--neutral-700);
	text-align: right;
}

.ttm-search .wp-block-search__inside-wrapper {
	display: flex;
	gap: 6px;
}

.ttm-search .wp-block-search__input,
.ttm-search .wp-block-search__button {
	border: var(--ttm-rule-1);
	font-size: var(--wp--preset--font-size--body-s);
	border-radius: 0;
}

.ttm-search .wp-block-search__input {
	flex-grow: 0;
	width: 320px;
}

@media (max-width: 720px) {

	.ttm-search .wp-block-search__input {
		flex-grow: 1;
		width: auto;
	}
}

.ttm-search .wp-block-search__button {
	background: transparent;
	color: var(--wp--preset--color--text);
	padding: 8px 14px;
	font-weight: 800;
	cursor: pointer;
}

/* 4.24 static page */
.ttm-page__portrait {
	aspect-ratio: 3 / 4;
	max-width: 320px;
}

main.is-style-grid-8-4 {
	padding: 40px 0 48px;
}

main.is-style-grid-8-4 h1 {
	margin: 0 0 18px;
	font-size: 56px;
}

/* 4.38 hub header (§6.7) */
.ttm-hub-head {
	column-gap: 64px;
	padding: 40px 0 28px;
	align-items: end;
}

.ttm-hub-head.is-style-grid-8-4 h1 {
	margin: 0 0 14px -0.058em;
	font-size: var(--wp--preset--font-size--display-xl);
}

.ttm-hub-head .is-style-dek {
	margin: 0;
	font-size: 17px;
	max-width: 52ch;
}

.ttm-series-stats {
	font-size: 13px;
	line-height: 1.6;
	color: var(--wp--preset--color--neutral-700);
	font-feature-settings: "tnum";
}

/* stylelint-disable-next-line no-descending-specificity */
.ttm-series-stats p {
	margin: 0;
}

/* 4.35 story tile */
.ttm-story-tiles {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: var(--wp--preset--spacing--40);
	padding-top: 16px;
}

.ttm-tile {
	display: flex;
	flex-direction: column;
	justify-content: space-between;
	aspect-ratio: 4 / 3;
	background: var(--wp--preset--color--surface);
	padding: var(--wp--preset--spacing--40);
	color: inherit;
	text-decoration: none;
	overflow: hidden;
}

.ttm-tile img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.ttm-tile__title {
	font-size: 19px;
	font-weight: 800;
	line-height: 1.1;
	letter-spacing: -0.015em;
}

.ttm-tile__meta {
	font-size: 12px;
	color: var(--wp--preset--color--neutral-700);
}

.ttm-tile:hover .ttm-tile__title {
	color: var(--wp--preset--color--accent-700);
}

.ttm-story-tiles__note {
	margin: 10px 0 0;
	font-size: 12px;
	color: var(--wp--preset--color--neutral-700);
}

/* 4.36 book cover */
.ttm-cover {
	aspect-ratio: 2 / 3;
}

.ttm-cover img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.ttm-serial-hero .ttm-cover {
	box-shadow: var(--wp--preset--shadow--cover);
}

.ttm-book-grid {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 20px;
	padding-top: 16px;
}

/* Covers keep their own shape and stand on one baseline (subgrid rows), so titles align. */
.ttm-book {
	display: grid;
	grid-row: span 4;
	grid-template-rows: subgrid;
	row-gap: 0;
	min-width: 0;
}

.ttm-book .ttm-cover {
	align-self: end;
	aspect-ratio: auto;
}

.ttm-book .ttm-cover img {
	height: auto;
}

.ttm-book__title {
	margin-top: 10px;
	font-size: 14px;
	font-weight: 800;
	line-height: 1.25;
}

.ttm-book__meta {
	margin-top: 2px;
	font-size: 12px;
	color: var(--wp--preset--color--neutral-700);
}

.ttm-book__links {
	margin-top: 8px;
}

/* 4.37 stat row */
.ttm-stats {
	display: grid;
	grid-template-columns: repeat(3, auto);
	gap: 0 40px;
	justify-content: start;
	border-top: var(--ttm-rule-2);
	padding-top: 14px;
}

.ttm-stats__value {
	display: block;
	font-size: 20px;
	font-weight: 800;
	letter-spacing: -0.01em;
}

.ttm-stats__label {
	display: block;
	font-size: 13px;
	color: var(--wp--preset--color--neutral-700);
}

/* 4.38 featured/hub/hero */
.ttm-series-featured {
	padding: 28px 0 36px;
}

.ttm-series-single .ttm-series-featured {
	padding: 40px 0 36px;
}

.ttm-series-single__other {
	padding: 24px 0 48px;
}

.ttm-series-featured__main {
	display: block;
}

.ttm-series-featured__kicker {
	margin: 0 0 10px;
}

.ttm-series-featured__title {
	margin: 0 0 12px;
	font-size: 40px;
	font-weight: 800;
	line-height: 1.02;
	letter-spacing: -0.02em;
}

.ttm-series-single .ttm-series-featured__title {
	max-width: 16ch;
	margin-bottom: 14px;
	font-size: 80px;
	line-height: 0.95;
	letter-spacing: -0.03em;
}

@media (max-width: 720px) {

	.ttm-series-single .ttm-series-featured__title {
		font-size: 44px;
	}
}

.ttm-series-featured__dek {
	margin: 0 0 16px;
	font-size: 16px;
	line-height: 1.5;
	color: var(--wp--preset--color--neutral-800);
}

.ttm-series-featured__buttons {
	display: flex;
	gap: 10px;
	margin: var(--wp--preset--spacing--30) 0;
}

.ttm-series-featured__parts {
	list-style: none;
	margin: 0;
	padding: 0;
	border-top: var(--ttm-rule-2);
}

.ttm-series-featured__part {
	display: grid;
	grid-template-columns: 40px 1fr auto;
	gap: 16px;
	align-items: baseline;
	padding: 12px 0;
	border-bottom: var(--ttm-rule-1);
	font-size: 16px;
	line-height: 1.3;
}

.ttm-series-single .ttm-series-featured__part {
	font-size: 18px;
}

.is-published .ttm-series-featured__part-title {
	font-weight: 800;
	color: var(--wp--preset--color--text);
}

.is-scheduled .ttm-series-featured__part-title {
	font-weight: 400;
	color: var(--wp--preset--color--neutral-700);
}

.ttm-series-featured__part-dek {
	grid-column: 2;
	margin: 4px 0 0;
	font-size: 13px;
	color: var(--wp--preset--color--neutral-800);
}

.ttm-series-single .ttm-series-featured__part-dek {
	font-size: 14px;
}

.ttm-series-featured__date {
	font-size: 12px;
	color: var(--wp--preset--color--neutral-700);
}

@media (max-width: 720px) {

	.ttm-hub-head {
		grid-template-columns: 1fr;
	}

	.ttm-hub-head.is-style-grid-8-4 h1 {
		font-size: 44px;
	}

	.ttm-series-featured__part {
		grid-template-columns: 28px 1fr;
	}

	.ttm-series-featured__date {
		grid-column: 2;
	}
}

.ttm-series-featured__all {
	margin: 12px 0 0;
	font-size: 13px;
	color: var(--wp--preset--color--accent-700);
}

.ttm-serial-hero {
	display: grid;
	grid-template-columns: 280px minmax(0, 1fr);
	gap: 64px;
	align-items: end;
	padding: 40px 0;
}

.ttm-serial-hero__kicker {
	margin: 0 0 12px;
}

.ttm-serial-hero__title {
	margin: 0 0 16px -0.04em;
	max-width: 14ch;
}

.ttm-serial-hero__synopsis {
	font-size: 19px;
	line-height: 1.45;
	margin: 0 0 20px;
	color: var(--wp--preset--color--neutral-800);
	max-width: 48ch;
}

.ttm-serial-hero.is-nocover {
	grid-template-columns: 1fr;
}

.ttm-serial-hero__buttons {
	display: flex;
	gap: 10px;
	margin: 0 0 22px;
}

@media (min-width: 1200px) {

	.ttm-serial-hero:not(.is-nocover) {
		grid-template-columns: 320px 1fr;
	}
}

/* 02 §D writing body */
.ttm-writing-body {
	padding: 28px 0 48px;
}

.ttm-writing-body > main {
	display: flex;
	flex-direction: column;
	gap: 36px;
}

.ttm-writing-body > aside {
	display: flex;
	flex-direction: column;
	gap: 32px;
}

.ttm-writing-body:not(:has(.ttm-story-tiles)) .ttm-writing-body__stories {
	display: none;
}

.ttm-writing-body:not(:has(.ttm-book-grid)) .ttm-writing-body__books {
	display: none;
}

.ttm-writing-body:not(:has(.ttm-story-tiles, .ttm-book-grid)) {
	grid-template-columns: 1fr;
}

@media (max-width: 1024px) {

	.ttm-serial-hero {
		grid-template-columns: 200px 1fr;
	}

	/* <=1024: fold grid. */
	.ttm-writing-body > main,
	.ttm-writing-body > aside {
		display: contents;
	}

	.ttm-writing-body__serials,
	.ttm-writing-body__stories,
	.ttm-writing-body__chapters,
	.ttm-writing-body__books {
		min-width: 0;
	}

	.ttm-writing-body__serials {
		order: 1;
	}

	.ttm-writing-body__stories {
		order: 2;
	}

	.ttm-writing-body__chapters {
		order: 3;
	}

	.ttm-writing-body__books {
		order: 4;
	}
}

@media (max-width: 720px) {

	.ttm-serial-hero {
		grid-template-columns: 1fr;
	}

	.ttm-serial-hero__body {
		min-width: 0;
	}

	.ttm-serial-hero .ttm-cover {
		width: 160px;
	}

	.ttm-serial-hero__title {
		font-size: 40px;
	}

	.ttm-serial-hero__buttons {
		flex-direction: column;
	}

	.ttm-serial-hero__buttons .btn {
		width: 100%;
		justify-content: center;
	}

	.ttm-story-tiles {
		grid-template-columns: repeat(auto-fill, minmax(148px, 1fr));
	}

	.ttm-stats__value {
		font-size: 16px;
	}
}
