/*
Theme Name: The Distributed
Theme URI: https://thedistributed.co/
Author: The Distributed
Author URI: https://thedistributed.co/
Description: A data-led financial-news block theme for The Distributed. Editorial front of house for crowd-sentiment intelligence sourced to the mention (Reddit NER + FinBERT). Serif display headlines (Fraunces), Geist body, Geist Mono apparatus, warm paper palette. Full Site Editing, server-side data blocks that talk to the Hetzner PostgREST.
Tags: news, editorial, blog, full-site-editing, block-styles, custom-colors, custom-logo, block-patterns, accessibility-ready
Version: 0.1.0
Requires at least: 6.5
Tested up to: 6.5
Requires PHP: 8.1
License: GNU General Public License v2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
Text Domain: thedistributed
*/

/*
 * Nearly everything lives in theme.json (palette, type scale, fonts, layout,
 * element styling). This stylesheet only carries the WordPress theme header
 * above plus a thin layer of design tokens and primitives that theme.json
 * cannot express: the hairline rules, the mono/tabular apparatus utilities,
 * and reduced-motion guards. Bespoke thedistributed/* blocks ship their own
 * scoped style.css. Keep this file small.
 */

:root {
	/* Palette mirror — block render.php and inline SVG read these by name. */
	--td-canvas: var(--wp--preset--color--canvas, #FBFBF9);
	--td-cream: var(--wp--preset--color--cream, #F4F1EA);
	--td-dark: var(--wp--preset--color--dark, #1C1917);
	--td-ink: var(--wp--preset--color--ink, #1A1A1B);
	--td-ink-2: var(--wp--preset--color--ink-2, #5C5C5A);
	--td-ink-3: var(--wp--preset--color--ink-3, #6E6A62); /* darkened for WCAG AA on cream/canvas */
	--td-accent: var(--wp--preset--color--accent, #BE531B); /* signature — decorative + large display use */
	/* AA-compliant accent for SMALL text: darker on light, lighter on dark. The
	   signature --td-accent stays for dots/bars/rules/large headings. */
	--td-accent-text: #A8480F;
	--td-accent-on-dark: #D2703F;
	--td-up: var(--wp--preset--color--up, #167C3C); /* darkened for WCAG AA */
	--td-down: var(--wp--preset--color--down, #C73B3B);

	/* Hairlines — derived from ink, not in the palette. */
	--td-hair: rgba(28, 25, 23, 0.12);
	--td-hair-soft: rgba(28, 25, 23, 0.07);
	--td-hair-light: rgba(255, 255, 255, 0.16);
	--td-hair-light-soft: rgba(255, 255, 255, 0.08);

	/* Font mirror. */
	--td-serif: var(--wp--preset--font-family--fraunces, "Fraunces", Georgia, serif);
	--td-sans: var(--wp--preset--font-family--geist, "Geist", system-ui, sans-serif);
	--td-mono: var(--wp--preset--font-family--geist-mono, "Geist Mono", ui-monospace, monospace);
}

/* Apparatus: kickers, labels, dateline, byline, edition. Used across blocks. */
.td-mono {
	font-family: var(--td-mono);
	font-size: 0.6875rem; /* 11px */
	letter-spacing: 0.13em;
	text-transform: uppercase;
	font-weight: 500;
}

/* Tabular figures for every market/data number. */
.td-tnum,
.td-figure {
	font-family: var(--td-mono);
	font-variant-numeric: tabular-nums;
	font-feature-settings: "tnum" 1;
}

/* Hairline rule between editorial blocks. */
.td-rule {
	border: 0;
	border-top: 1px solid var(--td-hair);
	margin: 0;
}

/* Directional sentiment colour helpers (text + arrows only). */
.td-up { color: var(--td-up); }
.td-down { color: var(--td-down); }

/* Skip link — first focusable element, off-screen until focused. */
.skip-link:not(:focus) {
	clip: rect(1px, 1px, 1px, 1px);
	clip-path: inset(50%);
	height: 1px;
	width: 1px;
	overflow: hidden;
	position: absolute !important;
	white-space: nowrap;
}

.skip-link:focus {
	position: fixed;
	top: 0.5rem;
	left: 0.5rem;
	z-index: 200;
	background: var(--td-dark);
	color: #fff;
	font-family: var(--td-mono);
	font-size: 0.75rem;
	letter-spacing: 0.04em;
	padding: 0.75rem 1.125rem;
	text-decoration: none;
}

/* Honour the user's motion preference everywhere. theme.json cannot wrap
 * arbitrary @keyframes, so the global guard lives here. Individual block
 * style.css files repeat a scoped version for their own animations. */
@media (prefers-reduced-motion: reduce) {
	*,
	*::before,
	*::after {
		animation-duration: 0.001ms !important;
		animation-iteration-count: 1 !important;
		transition-duration: 0.001ms !important;
		scroll-behavior: auto !important;
	}
}

/* Windows High Contrast / forced-colors. Translucent hairlines and box-shadow
 * separators are dropped in this mode, and focus rings can disappear; restore
 * them with system colours. Meaning never rests on colour alone here — up/down
 * readings always carry ▲/▼ glyphs, so the green/red collapsing to a system
 * colour loses no information. */
@media (forced-colors: active) {
	a:focus-visible,
	button:focus-visible,
	input:focus-visible,
	select:focus-visible,
	[tabindex]:focus-visible,
	.tape-pause-input:focus-visible ~ .tape-pause {
		outline: 2px solid Highlight;
		outline-offset: 2px;
	}
	.td-sect-grid > *,
	.td-coverage__countries > * {
		border-color: CanvasText;
	}
}

/* =========================================================================
 * SINGLE ARTICLE (templates/single.html + patterns/author-bio, related)
 * Structural layout the locked article mockup needs that theme.json and the
 * per-block style.css cannot express: the breadcrumb bar, the centred 720px
 * reading measure, the byline apparatus, the hero frame, the scatter divider,
 * the E-E-A-T author bio, and the related grid. Tokens reference the palette
 * CSS vars; body text never drops below --td-ink-2 for AA contrast; links are
 * underlined.
 * ========================================================================= */

.wrap {
	max-width: 1240px;
	margin-inline: auto;
	padding-inline: 1.5rem;
}

/* ---- Breadcrumb bar ---- */
.crumbbar {
	border-bottom: 1px solid var(--td-hair);
	background: var(--td-canvas);
}
.crumbbar .wrap { padding-block: 0.8125rem; }
.crumbs {
	gap: 0.5rem;
	font-family: var(--td-mono);
	font-size: 0.625rem;
	letter-spacing: 0.1em;
	text-transform: uppercase;
}
.crumbs a,
.crumbs .crumb-link,
.crumbs .crumb-terms a {
	color: var(--td-ink-2);
	text-decoration: none;
	border-bottom: 1px solid transparent;
	padding-bottom: 1px;
}
.crumbs a:hover,
.crumbs .crumb-link:hover,
.crumbs .crumb-terms a:hover {
	color: var(--td-accent);
	border-bottom-color: var(--td-accent);
}
.crumbs .sep { color: var(--td-ink-2); }
.crumbs .crumb-cur {
	color: var(--td-ink-2);
	margin: 0;
	font-family: var(--td-mono);
	font-size: 0.625rem;
	font-weight: 400;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	line-height: 1.4;
	max-width: 46ch;
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
}

/* ---- Article shell: centred reading column ---- */
.article-shell { padding-bottom: 1.5rem; }
.art-head { padding: 2.75rem 0 0.5rem; }
.art-head,
.art-body,
.art-hero {
	max-width: 720px;
	margin-inline: auto;
}

/* ---- Kicker / headline / dek ---- */
.art-kicker {
	gap: 0.5625rem;
	margin-bottom: 1.125rem;
	font-family: var(--td-mono);
	font-size: 0.6875rem;
	letter-spacing: 0.15em;
	text-transform: uppercase;
	font-weight: 500;
	color: var(--td-accent);
}
.art-kicker .kbar {
	width: 22px;
	height: 2px;
	background: var(--td-accent);
	flex: none;
}
.art-kicker .art-kicker-desk,
.art-kicker .art-kicker-desk a {
	color: var(--td-ink-2);
	text-decoration: none;
}
h1.art-hl {
	font-family: var(--td-serif);
	font-weight: 600;
	font-size: clamp(2.1rem, 4.4vw, 3.25rem);
	line-height: 1.04;
	letter-spacing: -0.02em;
	margin: 0 0 1.375rem;
	text-wrap: balance;
	color: var(--td-ink);
}
.art-dek {
	font-size: 1.24rem;
	line-height: 1.46;
	color: var(--td-ink-2);
	margin: 0 0 1.75rem;
	max-width: 62ch;
	font-weight: 400;
}

/* ---- Byline apparatus ---- */
.art-byline {
	gap: 0.625rem 1rem;
	padding: 1.125rem 0;
	border-top: 1px solid var(--td-hair);
	border-bottom: 1px solid var(--td-hair);
	font-family: var(--td-mono);
	font-size: 0.6875rem;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: var(--td-ink-2);
}
.art-byline .by-credit { gap: 0.35rem; }
.art-byline .by-lead { margin: 0; color: var(--td-ink-2); }
.art-byline .by-name,
.art-byline .by-name a {
	color: var(--td-ink);
	text-decoration: none;
	border-bottom: 1px solid var(--td-hair);
	padding-bottom: 1px;
}
.art-byline .by-name a:hover {
	color: var(--td-accent);
	border-bottom-color: var(--td-accent);
}
.art-byline .by-time { color: var(--td-ink-2); }
.art-byline .sep { color: var(--td-ink-2); }
.art-byline .method-chip {
	display: inline-flex;
	align-items: center;
	gap: 0.4375rem;
	margin-left: auto;
	font-family: var(--td-mono);
	font-size: 0.625rem;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	color: var(--td-ink);
	text-decoration: none;
	background: var(--td-cream);
	border: 1px solid var(--td-hair);
	padding: 0.4375rem 0.6875rem;
	transition: border-color 0.18s, color 0.18s;
}
.art-byline .method-chip:hover {
	border-color: var(--td-accent);
	color: var(--td-accent);
}
.art-byline .method-chip .mc-dot {
	width: 5px;
	height: 5px;
	border-radius: 50%;
	background: var(--td-accent);
	flex: none;
}
@media (max-width: 520px) {
	.art-byline .method-chip { margin-left: 0; }
}

/* ---- Hero ---- */
.art-hero { margin: 1.875rem 0 0.5rem; }
.art-hero .art-hero-img,
.art-hero img {
	width: 100%;
	background: var(--td-cream);
}

/* ---- Prose body (720px measure) ---- */
.prose { padding-top: 2.125rem; }
.prose p {
	font-size: 1.135rem;
	line-height: 1.72;
	color: var(--td-ink);
	margin: 0 0 1.45em;
}
.prose h2 {
	font-family: var(--td-serif);
	font-weight: 600;
	font-size: 1.62rem;
	line-height: 1.14;
	letter-spacing: -0.015em;
	margin: 1.9em 0 0.7em;
	color: var(--td-ink);
}
.prose h3 {
	font-family: var(--td-serif);
	font-weight: 600;
	font-size: 1.24rem;
	line-height: 1.2;
	letter-spacing: -0.01em;
	margin: 1.6em 0 0.5em;
	color: var(--td-ink);
}
.prose a {
	color: var(--td-ink);
	text-decoration: underline;
	text-decoration-thickness: 1px;
	text-underline-offset: 2px;
	text-decoration-color: var(--td-accent);
}
.prose a:hover { color: var(--td-accent); }

/* ---- Scatter divider ---- */
.scatter-wrap { margin: 0.625rem 0 0; }
.scatter-div {
	display: block;
	width: 100%;
	height: 30px;
	color: var(--td-hair);
}

/* ---- Author bio (E-E-A-T) ---- */
.art-apparatus { padding-top: 0.5rem; }
.authorbio {
	gap: 1.25rem;
	align-items: flex-start;
	border-top: 1px solid var(--td-hair);
	border-bottom: 1px solid var(--td-hair);
	padding: 1.75rem 0;
	margin-top: 1.125rem;
}
.authorbio .ab-av,
.authorbio .ab-av img {
	width: 64px;
	height: 64px;
	flex: none;
	background: var(--td-cream);
	border: 1px solid var(--td-hair);
}
.authorbio .ab-meta { flex: 1 1 auto; }
.authorbio .ab-lab {
	display: block;
	font-family: var(--td-mono);
	font-size: 0.5625rem;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	color: var(--td-accent);
	margin-bottom: 0.5rem;
}
.authorbio .ab-name {
	font-family: var(--td-serif);
	font-weight: 600;
	font-size: 1.2rem;
	margin: 0 0 0.25rem;
	letter-spacing: -0.01em;
	color: var(--td-ink);
}
.authorbio .ab-name a {
	text-decoration: none;
	color: var(--td-ink);
}
.authorbio .ab-name a:hover { color: var(--td-accent); }
.authorbio .ab-cred {
	font-size: 0.98rem;
	line-height: 1.55;
	color: var(--td-ink-2);
	margin: 0 0 0.75rem;
	max-width: 60ch;
}
.authorbio .ab-links { gap: 0.5rem 1rem; }
.authorbio .ab-links .ab-link,
.authorbio .ab-links .ab-link a {
	font-family: var(--td-mono);
	font-size: 0.625rem;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	color: var(--td-ink);
	text-decoration: none;
	border-bottom: 1px solid var(--td-hair);
	padding-bottom: 2px;
}
.authorbio .ab-links .ab-link:hover,
.authorbio .ab-links .ab-link a:hover {
	color: var(--td-accent);
	border-bottom-color: var(--td-accent);
}

/* ---- Related grid ---- */
.related { padding: 2.5rem 0 0.5rem; }
.related-head {
	gap: 1rem;
	border-bottom: 2px solid var(--td-ink);
	padding-bottom: 0.75rem;
	margin-bottom: 1.5rem;
}
.related-head .related-title {
	font-family: var(--td-serif);
	font-weight: 600;
	font-size: 1.5rem;
	letter-spacing: -0.015em;
	margin: 0;
	color: var(--td-ink);
}
.related-head .rh-meta {
	font-family: var(--td-mono);
	font-size: 0.625rem;
	letter-spacing: 0.13em;
	text-transform: uppercase;
	color: var(--td-ink-2);
}
.related-grid {
	gap: 1.875rem;
}
.related-grid .rel-fig,
.related-grid .rel-fig img {
	width: 100%;
	background: var(--td-cream);
	margin-bottom: 0.8125rem;
}
.related-grid .rel-meta {
	gap: 0.5625rem;
	font-family: var(--td-mono);
	font-size: 0.625rem;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	color: var(--td-accent);
	margin-bottom: 0.5625rem;
}
.related-grid .rel-meta a { color: var(--td-accent); text-decoration: none; }
.related-grid .rel-meta .rel-author,
.related-grid .rel-meta .rel-sep { color: var(--td-ink-2); }
.related-grid .rel-hl {
	font-family: var(--td-serif);
	font-weight: 500;
	font-size: 1.1rem;
	line-height: 1.18;
	letter-spacing: -0.01em;
	margin: 0;
	color: var(--td-ink);
}
.related-grid .rel-hl a {
	color: var(--td-ink);
	text-decoration: none;
	transition: color 0.18s;
}
.related-grid .rel-hl a:hover { color: var(--td-accent); }
.related-grid .rel-stat {
	font-family: var(--td-mono);
	font-size: 0.5625rem;
	letter-spacing: 0.04em;
	color: var(--td-ink-2);
	margin-top: 0.5625rem;
	font-variant-numeric: tabular-nums;
}
.related-query .rel-empty {
	font-family: var(--td-mono);
	font-size: 0.75rem;
	color: var(--td-ink-2);
}
@media (max-width: 760px) {
	.related-grid { grid-template-columns: 1fr !important; gap: 1.5rem; }
}

/* ==========================================================================
 * Masthead / footer primitives (shared by header + footer template parts).
 * These reproduce the locked homepage mockup structure. Kept here, not in a
 * block, because the header/footer parts use plain markup via wp:html.
 * ======================================================================== */
.wrap { max-width: 1240px; margin: 0 auto; padding: 0 24px; }

.mono {
	font-family: var(--td-mono);
	font-size: 0.6875rem;
	letter-spacing: 0.13em;
	text-transform: uppercase;
	font-weight: 500;
}
.tnum { font-variant-numeric: tabular-nums; font-feature-settings: "tnum" 1; }
.ul {
	text-decoration: underline;
	text-decoration-thickness: 1px;
	text-underline-offset: 2px;
	text-decoration-color: var(--td-hair);
}

/* Light single-line masthead (new Quanta direction): real logo left, nav,
 * search + The Data right, the live-tape mounted quietly beneath. */
.masthead {
	background: var(--td-canvas);
	border-bottom: 1px solid var(--td-hair);
}
.mast-row {
	display: flex; align-items: center; justify-content: space-between;
	gap: 30px; padding-top: 15px; padding-bottom: 15px;
}
.mast-logo { display: inline-flex; align-items: center; flex: none; }
.mast-logo img { height: 30px; width: auto; display: block; }
.mast-nav { display: flex; flex-wrap: wrap; align-items: center; gap: 26px; flex: 1 1 auto; }
.mast-nav a {
	font-family: var(--td-sans); font-size: 0.9rem; font-weight: 400;
	color: var(--td-ink); text-decoration: none; transition: color .18s ease;
}
.mast-nav a:hover { color: var(--td-accent); }
.mast-nav a[aria-current="page"] { color: var(--td-accent); }
.mast-right { display: flex; align-items: center; gap: 16px; flex: none; }
.data-link {
	font-family: var(--td-mono); font-size: 0.6875rem; letter-spacing: 0.13em;
	text-transform: uppercase; color: var(--td-accent); text-decoration: none;
	display: inline-flex; align-items: center; gap: 6px; white-space: nowrap;
	transition: color .18s ease;
}
.data-link:hover { color: var(--td-ink); }
.data-link .arr { color: var(--td-accent); }
.masthead .wp-block-search__inside-wrapper {
	border: 1px solid var(--td-hair); border-radius: 0; background: #fff;
}
.masthead .wp-block-search__input {
	background: transparent; border: 0; color: var(--td-ink);
	font-family: var(--td-mono); font-size: 0.75rem; padding: 7px 8px; min-width: 116px;
}
.masthead .wp-block-search__input::placeholder { color: var(--td-ink-3); }
.masthead .wp-block-search__button { background: transparent; color: var(--td-ink-2); }
/* Masthead "Markets" dropdown + data CTA + account ---------------------- */
.mast-item { position: relative; display: inline-flex; align-items: center; }
.mast-has-menu > .mast-menu-trigger {
	font-family: var(--td-sans); font-size: 0.9rem; font-weight: 400;
	color: var(--td-ink); text-decoration: none; cursor: pointer;
	display: inline-flex; align-items: center; gap: 5px; transition: color .18s ease;
}
.mast-has-menu:hover > .mast-menu-trigger,
.mast-has-menu:focus-within > .mast-menu-trigger { color: var(--td-accent); }
.mast-caret { font-size: 0.6em; transition: transform .18s ease; }
.mast-has-menu:hover .mast-caret,
.mast-has-menu:focus-within .mast-caret { transform: translateY(1px) rotate(180deg); }
.mast-menu {
	position: absolute; top: calc(100% + 10px); left: 50%; transform: translate(-50%, 6px);
	min-width: 248px; background: #fff; border: 1px solid var(--td-hair);
	box-shadow: 0 16px 40px -22px rgba(28,25,23,0.5); padding: 6px; z-index: 60;
	opacity: 0; visibility: hidden; pointer-events: none; transition: opacity .16s ease, transform .16s ease;
}
.mast-has-menu:hover .mast-menu,
.mast-has-menu:focus-within .mast-menu {
	opacity: 1; visibility: visible; pointer-events: auto; transform: translate(-50%, 0);
}
.mast-menu::before {
	content: ""; position: absolute; left: 0; right: 0; top: -10px; height: 10px;
}
.mast-menu a {
	display: flex; flex-direction: column; gap: 2px; padding: 9px 12px;
	text-decoration: none; transition: background .14s ease;
}
.mast-menu a:hover, .mast-menu a:focus-visible { background: var(--td-canvas-2, #f4f1ea); }
.mast-menu-t { font-family: var(--td-sans); font-size: 0.875rem; font-weight: 500; color: var(--td-ink); }
.mast-menu-d { font-family: var(--td-mono); font-size: 0.625rem; letter-spacing: 0.04em; color: var(--td-ink-3); }
.mast-menu a:hover .mast-menu-t { color: var(--td-accent-text); } /* AA small text on cream */
.mast-data-link { color: var(--td-accent) !important; font-weight: 500 !important; }
.mast-acct {
	display: inline-flex; align-items: center; justify-content: center; color: var(--td-ink);
	text-decoration: none; transition: color .18s ease;
}
.mast-acct:hover { color: var(--td-accent); }

@media (max-width: 760px) {
	.mast-row { flex-wrap: wrap; gap: 14px; }
	.mast-nav { order: 3; width: 100%; gap: 18px; }
	.mast-right { order: 2; }
	/* On touch the trigger navigates to /stocks/ (the index lists every section). */
	.mast-menu { display: none; }
}

/* Data section index (/stocks, /etfs, /macro, /commodities) -------------- */
.td-sect-head { max-width: 64ch; margin: 0 0 clamp(26px, 3.4vw, 40px); }
.td-sect-lede {
	font-family: var(--td-sans); font-size: 1.0625rem; line-height: 1.6;
	color: var(--td-ink-2); margin: 14px 0 0;
}
.td-sect-grid {
	display: grid; grid-template-columns: repeat(auto-fill, minmax(248px, 1fr));
	gap: 0;
	/* Cells draw their own hairlines so a partial last row blends into the page
	   instead of exposing the container fill as a misaligned grey block. */
	background: transparent; border-top: 1px solid var(--td-hair); border-left: 1px solid var(--td-hair);
}
.td-sect-card {
	display: flex; flex-direction: column; gap: 10px; background: var(--td-canvas, #fbfbf9);
	box-sizing: border-box;
	border-right: 1px solid var(--td-hair); border-bottom: 1px solid var(--td-hair);
	padding: clamp(16px, 1.6vw, 22px); text-decoration: none; transition: background .16s ease;
}
.td-sect-card:hover { background: #fff; }
.td-sect-card-top { display: flex; align-items: baseline; justify-content: space-between; gap: 12px; }
.td-sect-sym {
	font-family: var(--td-mono); font-size: 1.125rem; font-weight: 500; letter-spacing: 0.01em;
	color: var(--td-ink);
}
.td-sect-card:hover .td-sect-sym { color: var(--td-accent); }
.td-sect-sent { font-family: var(--td-mono); font-size: 0.9375rem; font-weight: 500; }
.td-sect-name {
	font-family: var(--td-sans); font-size: 0.875rem; line-height: 1.4; color: var(--td-ink-2);
	margin-top: -2px;
}
.td-sect-split { display: flex; height: 5px; width: 100%; overflow: hidden; margin-top: 2px; }
.td-sect-split-bull { background: var(--td-up, #1B8E4A); }
.td-sect-split-neu  { background: var(--td-ink-4, #cfc8ba); }
.td-sect-split-bear { background: var(--td-down, #C73B3B); }
.td-sect-foot {
	display: flex; align-items: center; justify-content: space-between; gap: 10px;
	font-family: var(--td-mono); font-size: 0.625rem; letter-spacing: 0.06em;
	text-transform: uppercase; color: var(--td-ink-3); margin-top: 2px;
}
.td-sect-sector { color: var(--td-ink-3); text-align: right; }
.td-sect-cta { color: var(--td-accent); }
.td-sect-note, .td-sect-empty {
	font-family: var(--td-sans); font-size: 0.8125rem; line-height: 1.55; color: var(--td-ink-3);
	margin: clamp(22px, 2.6vw, 32px) 0 0; max-width: 70ch;
}

/* Globe canvas — shared by the coverage block + any td_globe_mount() (e.g. the
   country-page sidebar), so the canvas is styled even where the block CSS isn't
   enqueued. (The block CSS still styles the surrounding coverage section.) */
.td-coverage__sphere {
	position: relative; width: min(100%, 480px); aspect-ratio: 1; margin: 0 auto;
	display: flex; align-items: center; justify-content: center;
}
.td-coverage__sphere::before {
	content: ""; position: absolute; inset: 6%; border-radius: 50%;
	border: 1px solid rgba(190, 83, 27, 0.16);
	background: radial-gradient(120% 120% at 38% 30%, rgba(28, 25, 23, 0.03), rgba(28, 25, 23, 0.10));
	pointer-events: none; transition: opacity 0.5s ease;
}
.td-coverage__sphere[data-td-globe-ready="1"]::before { opacity: 0; }
.td-coverage__canvas { display: block; width: 100%; height: 100%; max-width: 100%; position: relative; z-index: 1; }
/* Compact mode (td_globe_mount(..., 'compact')): the small market-switcher
   sphere — country-page header band, no chrome. */
.td-coverage__sphere--compact { width: min(100%, 200px); margin: 0; }

/* Country-page market chips + status dots (used by /countries + masthead) - */
.td-ctry-nav-dot { flex: none; width: 7px; height: 7px; border-radius: 50%; background: var(--td-ink-4, #cfc8ba); }
.td-dot--live { background: var(--td-accent); }
.td-dot--seeded { background: var(--td-ink-3); }
.td-dot--planned { background: var(--td-ink-4, #cfc8ba); }
.td-ctry-body { min-width: 0; }

/* Compact globe docked in the country mast (Plan 5 market switcher) */
.td-ctry-mast-globe { display: flex; flex-direction: column; align-items: center; gap: 8px; }
.td-ctry-mast-globe .td-coverage__sphere--compact { width: min(100%, 150px); }
.td-ctry-mast-globe-link {
	font-family: var(--td-mono); font-size: 0.625rem; letter-spacing: 0.1em;
	text-transform: uppercase; color: var(--td-ink); text-decoration: none;
	border-bottom: 1px solid var(--td-accent); padding-bottom: 2px;
}
.td-ctry-mast-globe-link:hover { color: var(--td-accent); }

/* Per-country page (/countries/{code}) ---------------------------------- */
.td-ctry-mast {
	display: flex; align-items: flex-end; justify-content: space-between; gap: 20px;
	flex-wrap: wrap; padding-bottom: 18px; border-bottom: 2px solid var(--td-ink);
	margin: 0 0 clamp(26px, 3.4vw, 44px);
}
.td-ctry-id { display: flex; align-items: center; gap: 15px; }
.td-ctry-code {
	flex: none; width: 46px; height: 46px; border-radius: 4px;
	background: var(--td-dark, #1C1917); color: var(--td-canvas, #fbfbf9);
	display: flex; align-items: center; justify-content: center;
	font-family: var(--td-mono); font-size: 0.875rem; font-weight: 500;
}
.td-ctry-meta {
	font-family: var(--td-mono); font-size: 0.6875rem; letter-spacing: 0.06em;
	text-transform: uppercase; color: var(--td-ink-3); margin-top: 7px;
}
.td-ctry-status--live { color: var(--td-accent); }
.td-ctry-status--seeded { color: var(--td-ink-2); }
.td-ctry-status--planned { color: var(--td-ink-3); }
.td-ctry-index { text-align: right; }
.td-ctry-index-name {
	font-family: var(--td-mono); font-size: 0.625rem; letter-spacing: 0.08em;
	text-transform: uppercase; color: var(--td-ink-3); margin-bottom: 5px;
}
.td-ctry-index-lvl { font-family: var(--td-mono); font-size: clamp(1.4rem, 2.6vw, 2rem); font-weight: 500; line-height: 1; color: var(--td-ink); }
.td-ctry-index-chg { font-family: var(--td-mono); font-size: 0.8125rem; margin-top: 6px; }

.td-ctry-planned {
	border: 1px dashed var(--td-hair); background: var(--td-canvas-2, #f4f1ea);
	padding: clamp(34px, 5vw, 64px); text-align: center;
}
.td-ctry-planned-k {
	font-family: var(--td-mono); font-size: 0.6875rem; letter-spacing: 0.12em;
	text-transform: uppercase; color: var(--td-ink-3); margin-bottom: 14px;
}
.td-ctry-planned-p {
	font-family: var(--td-serif, Georgia, serif); font-style: italic;
	font-size: clamp(1.25rem, 2.4vw, 1.6rem); line-height: 1.4; color: var(--td-ink);
	margin: 0 auto; max-width: 40ch;
}
.td-ctry-planned-p a { color: var(--td-accent); text-decoration: none; border-bottom: 1px solid var(--td-accent); }

.td-ctry-shead { display: flex; align-items: center; gap: 16px; margin: 0 0 12px; }
.td-ctry-shead:not(:first-child) { margin-top: clamp(30px, 4vw, 46px); }
.td-ctry-shead-t {
	font-family: var(--td-mono); font-size: 0.6875rem; font-weight: 500;
	letter-spacing: 0.16em; text-transform: uppercase; color: var(--td-ink);
}
.td-ctry-shead-rule { flex: 1; height: 1px; background: var(--td-hair); }
.td-ctry-table { width: 100%; }
.td-ctry-row {
	display: grid; grid-template-columns: 1fr auto auto; gap: 0 18px; align-items: center;
	padding: 13px 0; border-bottom: 1px solid var(--td-hair);
}
.td-ctry-row--head {
	font-family: var(--td-mono); font-size: 0.5625rem; letter-spacing: 0.1em;
	text-transform: uppercase; color: var(--td-ink-3); padding: 0 0 10px;
}
.td-ctry-r { text-align: right; }
.td-ctry-sym { font-family: var(--td-mono); font-size: 0.8125rem; font-weight: 500; color: var(--td-ink); }
.td-ctry-row .td-ctry-r { font-family: var(--td-mono); font-size: 0.8125rem; color: var(--td-ink); }
.td-ctry-note {
	margin-top: 4px; border: 1px dashed var(--td-hair); background: var(--td-canvas-2, #f4f1ea);
	padding: clamp(20px, 3vw, 30px);
}
.td-ctry-note-k {
	font-family: var(--td-mono); font-size: 0.65rem; letter-spacing: 0.1em;
	text-transform: uppercase; color: var(--td-ink-3); margin-bottom: 10px;
}
.td-ctry-note-p { font-family: var(--td-sans); font-size: 0.9375rem; line-height: 1.55; color: var(--td-ink-2); margin: 0; max-width: 56ch; }
.td-ctry-macro-row {
	display: flex; align-items: baseline; justify-content: space-between; gap: 10px;
	padding: 12px 0; border-top: 1px solid var(--td-hair);
}
.td-ctry-macro-k { font-family: var(--td-sans); font-size: 0.84rem; color: var(--td-ink-2); }
.td-ctry-macro-v { font-family: var(--td-mono); font-size: 0.84rem; color: var(--td-ink); }

/* Commodity page (/commodities/{slug}) ---------------------------------- */
.td-cmd-stats {
	display: grid; grid-template-columns: repeat(2, 1fr); gap: 1px;
	background: var(--td-hair); border: 1px solid var(--td-hair);
	margin: clamp(20px, 2.6vw, 30px) 0;
}
.td-cmd-chart { margin: clamp(20px, 2.6vw, 30px) 0; }
@media (max-width: 560px) { .td-cmd-stats { grid-template-columns: 1fr; } }
.td-cmd-stat {
	display: flex; flex-direction: column; gap: 6px;
	background: var(--td-canvas, #fbfbf9); padding: clamp(14px, 1.6vw, 20px);
}
.td-cmd-stat-k {
	font-family: var(--td-mono); font-size: 0.625rem; letter-spacing: 0.08em;
	text-transform: uppercase; color: var(--td-ink-3);
}
.td-cmd-stat-v { font-family: var(--td-mono); font-size: 1.25rem; font-weight: 500; color: var(--td-ink); }
.td-cmd-block { margin: clamp(26px, 3.2vw, 40px) 0 0; }
.td-cmd-shead {
	font-family: var(--td-mono); font-size: 0.6875rem; font-weight: 500;
	letter-spacing: 0.16em; text-transform: uppercase; color: var(--td-ink);
	padding-bottom: 12px; border-bottom: 1px solid var(--td-hair); margin-bottom: 16px;
}
.td-cmd-note { font-family: var(--td-sans); font-size: 0.9375rem; line-height: 1.55; color: var(--td-ink-2); margin: 0 0 16px; max-width: 64ch; }
.td-cmd-split { display: flex; height: 10px; width: 100%; overflow: hidden; border-radius: 2px; }
.td-cmd-split-bull { background: var(--td-up, #1B8E4A); }
.td-cmd-split-neu  { background: var(--td-ink-4, #cfc8ba); }
.td-cmd-split-bear { background: var(--td-down, #C73B3B); }
.td-cmd-split-leg {
	display: flex; gap: 22px; margin-top: 12px;
	font-family: var(--td-mono); font-size: 0.6875rem; letter-spacing: 0.04em;
	text-transform: uppercase; color: var(--td-ink-3);
}
.td-cmd-split-leg b { color: var(--td-ink); font-weight: 500; }
.td-cmd-bars { display: flex; align-items: flex-end; gap: 3px; height: 120px; }
.td-cmd-bar { flex: 1; min-width: 0; background: var(--td-accent); opacity: 0.78; border-radius: 1px 1px 0 0; }
.td-cmd-rel-type {
	font-family: var(--td-mono); font-size: 0.5625rem; letter-spacing: 0.08em;
	text-transform: uppercase; color: var(--td-ink-3);
}

/* Most-correlated table (stock/etf/macro/commodity pages) --------------- */
.td-corr { margin: clamp(28px, 3.4vw, 44px) 0 0; }
.td-corr-head { display: flex; align-items: center; gap: 14px; margin-bottom: 14px; }
.td-corr-head-t {
	font-family: var(--td-mono); font-size: 0.6875rem; font-weight: 500;
	letter-spacing: 0.16em; text-transform: uppercase; color: var(--td-ink); white-space: nowrap;
}
.td-corr-head-rule { flex: 1; height: 1px; background: var(--td-hair); }
.td-corr-head-meta {
	font-family: var(--td-mono); font-size: 0.625rem; letter-spacing: 0.06em;
	text-transform: uppercase; color: var(--td-ink-3); white-space: nowrap;
}
.td-corr-table { width: 100%; }
.td-corr-row {
	display: grid; grid-template-columns: 70px 1fr 132px 96px; gap: 0 14px; align-items: center;
	padding: 11px 4px; border-bottom: 1px solid var(--td-hair); text-decoration: none; color: inherit;
	transition: background 0.14s ease;
}
.td-corr-row--head {
	font-family: var(--td-mono); font-size: 0.5625rem; letter-spacing: 0.1em;
	text-transform: uppercase; color: var(--td-ink-3); padding: 0 4px 9px;
}
a.td-corr-row:hover { background: var(--td-canvas-2, #f4f1ea); }
a.td-corr-row:hover .td-corr-sym { color: var(--td-accent); }
.td-corr-r { text-align: right; }
.td-corr-sym { font-family: var(--td-mono); font-size: 0.8125rem; font-weight: 500; color: var(--td-ink); }
.td-corr-name { font-family: var(--td-sans); font-size: 0.84rem; color: var(--td-ink-2); min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.td-corr-coef { display: flex; align-items: center; justify-content: flex-end; gap: 8px; }
.td-corr-bar { width: 54px; height: 5px; background: var(--td-hair); overflow: hidden; border-radius: 2px; flex: none; }
.td-corr-bar-fill { display: block; height: 100%; }
.td-corr-val { font-family: var(--td-mono); font-size: 0.8125rem; min-width: 46px; text-align: right; }
.td-corr-co { font-family: var(--td-mono); font-size: 0.8125rem; color: var(--td-ink); }
.td-corr-note { font-family: var(--td-sans); font-size: 0.78rem; line-height: 1.5; color: var(--td-ink-3); margin: 14px 0 0; max-width: 64ch; }
@media (max-width: 640px) {
	.td-corr-row { grid-template-columns: 60px 1fr 120px; }
	.td-corr-co { display: none; }
}
/* Child-companies rows are non-link rows (parent pages) — no peer hover. */
.td-inst-peer--sub { cursor: default; }

/* Footer (dark band) ----------------------------------------------------- */
/* Hug the preceding section. The footer template-part wrapper is a direct child
   of .wp-site-blocks, so the root flow's blockGap adds a ~24px margin-top that
   exposes the page canvas as a white seam between the cream coverage block and
   the dark footer. Zero it on the wrapper (the dark band itself is the inner
   group below). */
footer.wp-block-template-part {
	margin-block-start: 0;
}
footer.wp-block-group {
	background: var(--td-dark); color: #C9C2B6;
	position: relative; overflow: hidden; isolation: isolate;
}
footer.wp-block-group::after {
	content: ""; position: absolute; inset: 0; z-index: -1;
	background-image: radial-gradient(rgba(255,255,255,0.5) 0.5px, transparent 0.6px);
	background-size: 4px 4px; opacity: 0.04;
}
.foot-top {
	display: grid; grid-template-columns: 1.7fr 1fr 1fr 1fr; gap: 36px;
	padding: 54px 0 42px; border-bottom: 1px solid var(--td-hair-light-soft);
}
.foot-mark { display: flex; flex-direction: column; gap: 16px; max-width: 38ch; }
.foot-logo { display: inline-block; text-decoration: none; }
.foot-logo img { width: 188px; height: auto; display: block; }
.foot-wordmark-home { display: inline-block; text-decoration: none; }
.foot-wordmark { width: 230px; height: auto; }
.foot-bottom .fb-facts { color: var(--td-accent-on-dark); } /* AA accent on the dark footer */
.foot-tag {
	font-family: var(--td-mono); font-size: 0.625rem; letter-spacing: 0.2em;
	text-transform: uppercase; color: var(--td-accent-on-dark); /* AA accent on the dark footer */
}
.foot-note { color: #9A9388; font-size: 0.8125rem; max-width: 34ch; line-height: 1.6; }
.foot-social { display: flex; align-items: center; gap: 14px; margin-top: 2px; }
.foot-social a {
	display: inline-flex; align-items: center; justify-content: center;
	width: 36px; height: 36px; border: 1px solid #3a3531; border-radius: 50%;
	color: #C9C2B6; transition: color .16s ease, border-color .16s ease;
}
.foot-social a:hover, .foot-social a:focus-visible { color: var(--td-accent); border-color: var(--td-accent); }
.foot-col h2 {
	font-family: var(--td-mono); font-size: 0.625rem; letter-spacing: 0.16em;
	text-transform: uppercase; color: #8A8378; margin: 0 0 16px; font-weight: 500;
}
.foot-col ul { list-style: none; margin: 0; padding: 0; }
.foot-col li { margin-bottom: 11px; }
.foot-col a {
	color: #D7D0C4; text-decoration: none; font-size: 0.875rem;
	border-bottom: 1px solid transparent; padding-bottom: 1px;
	transition: border-color .18s, color .18s;
}
.foot-col a:hover { color: #fff; border-bottom-color: var(--td-accent); }
.foot-bottom {
	display: flex; justify-content: space-between; align-items: center;
	gap: 16px; flex-wrap: wrap; padding: 20px 0 30px;
}
.foot-bottom .mono { color: #8A8378; font-size: 0.625rem; letter-spacing: 0.12em; }
.foot-bottom .fb-disc { color: #B8B1A6; }
.foot-bottom .fb-disc a {
	color: inherit; text-decoration: none;
	border-bottom: 1px solid transparent; padding-bottom: 1px;
	transition: border-color .18s, color .18s;
}
.foot-bottom .fb-disc a:hover { color: #fff; border-bottom-color: var(--td-accent); }
@media (max-width: 760px) {
	.foot-top { grid-template-columns: 1fr 1fr; }
	.foot-mark { grid-column: 1/-1; }
}
@media (max-width: 480px) { .foot-top { grid-template-columns: 1fr; } }

/* ==========================================================================
 * Desk masthead — shared by archive / author / search / 404 / index.
 * A "CollectionPage" header band: kicker, desk H1, standfirst, register marks.
 * ======================================================================== */
.td-main { display: block; }

.desk-masthead {
	padding: 40px 0 26px;
	border-bottom: 2px solid var(--td-ink);
	margin-bottom: 34px;
}
.desk-masthead .wrap { display: block; }
.desk-kicker {
	display: inline-flex; align-items: center; gap: 9px;
	font-family: var(--td-mono); font-size: 0.6875rem; letter-spacing: 0.15em;
	text-transform: uppercase; color: var(--td-accent); font-weight: 500;
	margin-bottom: 16px;
}
.desk-kicker .kbar { width: 22px; height: 2px; background: var(--td-accent); }
.desk-kicker .desk-of { color: var(--td-ink-2); }

h1.desk-title {
	font-family: var(--td-serif); font-weight: 600;
	font-size: clamp(2.3rem, 4.6vw, 3.4rem); line-height: 1.04;
	letter-spacing: -0.02em; margin: 0 0 16px; text-wrap: balance; color: var(--td-ink);
}
.desk-standfirst {
	font-size: 1.18rem; line-height: 1.5; color: var(--td-ink-2);
	max-width: 52ch; margin: 0 0 20px; font-weight: 400;
}
.desk-register {
	display: flex; flex-wrap: wrap; gap: 8px 18px; align-items: center;
	font-family: var(--td-mono); font-size: 0.6875rem; letter-spacing: 0.1em;
	color: var(--td-ink-2); text-transform: uppercase;
}
.desk-register .reg-mark { color: var(--td-accent); }
.desk-register .sep { color: var(--td-hair); }

/* ==========================================================================
 * Collection grid — image-led cards (archive / author / search / index).
 * ======================================================================== */
.collection { padding-bottom: 54px; }
.coll-grid {
	display: grid; grid-template-columns: repeat(3, 1fr); gap: 36px 34px;
}
@media (max-width: 900px) { .coll-grid { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 600px) { .coll-grid { grid-template-columns: 1fr; } }

.coll-grid .wp-block-post {
	border-top: 1px solid var(--td-hair); padding-top: 18px;
	display: flex; flex-direction: column;
}
.coll-grid .wp-block-post-featured-image {
	margin: 0 0 16px; overflow: hidden; background: var(--td-cream);
	aspect-ratio: 16 / 9;
}
.coll-grid .wp-block-post-featured-image img {
	width: 100%; height: 100%; object-fit: cover; display: block;
}
.coll-grid .wp-block-post-terms {
	font-family: var(--td-mono); font-size: 0.625rem; letter-spacing: 0.1em;
	text-transform: uppercase; color: var(--td-accent); margin: 0 0 9px;
}
.coll-grid .wp-block-post-terms a { color: var(--td-accent); text-decoration: none; }
.coll-grid .wp-block-post-title {
	font-family: var(--td-serif); font-weight: 600; font-size: 1.22rem;
	line-height: 1.16; letter-spacing: -0.01em; margin: 0 0 10px; color: var(--td-ink);
}
.coll-grid .wp-block-post-title a { color: inherit; text-decoration: none; }
.coll-grid .wp-block-post-title a:hover { color: var(--td-accent); }
.coll-grid .wp-block-post-excerpt {
	color: var(--td-ink-2); font-size: 0.95rem; line-height: 1.5; margin: 0 0 12px;
}
.coll-grid .wp-block-post-excerpt__excerpt { margin: 0; }
.coll-grid .wp-block-post-excerpt .wp-block-post-excerpt__more-link {
	display: none;
}
.coll-meta {
	font-family: var(--td-mono); font-size: 0.625rem; letter-spacing: 0.1em;
	text-transform: uppercase; color: var(--td-ink-2);
	margin-top: auto; padding-top: 12px;
	display: flex; flex-wrap: wrap; gap: 6px 12px; align-items: baseline;
}
.coll-meta .wp-block-post-date,
.coll-meta .wp-block-post-author { font: inherit; color: var(--td-ink-2); }
.coll-meta .wp-block-post-author a,
.coll-meta .wp-block-post-date a { color: var(--td-ink-2); text-decoration: none; }
.coll-meta .coll-sep { color: var(--td-hair); }

/* Pagination */
.coll-pagination {
	margin-top: 44px; padding-top: 22px; border-top: 1px solid var(--td-hair);
}
.coll-pagination .wp-block-query-pagination {
	font-family: var(--td-mono); font-size: 0.6875rem; letter-spacing: 0.08em;
	text-transform: uppercase; gap: 10px 18px; align-items: baseline;
}
.coll-pagination a, .coll-pagination .wp-block-query-pagination-numbers {
	color: var(--td-ink-2);
}
.coll-pagination a:hover { color: var(--td-accent); }
.coll-pagination .wp-block-query-pagination-numbers .current { color: var(--td-accent); }

/* Empty state (no results) shared by archive/search/index */
.coll-empty {
	border-top: 1px solid var(--td-hair); padding: 30px 0 10px;
	color: var(--td-ink-2); max-width: 56ch;
}
.coll-empty p { margin: 0 0 14px; color: var(--td-ink-2); }

/* ==========================================================================
 * Author identity panel.
 * ======================================================================== */
.author-id {
	display: grid; grid-template-columns: 1fr; gap: 8px; max-width: 60ch;
}
.author-creds {
	font-family: var(--td-mono); font-size: 0.6875rem; letter-spacing: 0.1em;
	text-transform: uppercase; color: var(--td-ink-2);
	display: flex; flex-wrap: wrap; gap: 6px 14px; align-items: baseline; margin: 4px 0 0;
}
.author-creds .sep { color: var(--td-hair); }
.author-method a {
	color: var(--td-accent);
	text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: 3px;
}

/* ==========================================================================
 * Search form (results page) — accessible, on-brand.
 * ======================================================================== */
.search-band { padding: 8px 0 0; }
.search-band .wp-block-search__inside-wrapper {
	max-width: 420px; border: 1px solid var(--td-hair); border-radius: 0;
	background: #fff;
}
.search-band .wp-block-search__input {
	font-family: var(--td-mono); font-size: 0.8125rem; color: var(--td-ink);
	background: transparent; border: 0; padding: 11px 12px;
}
.search-count {
	font-family: var(--td-mono); font-size: 0.6875rem; letter-spacing: 0.1em;
	text-transform: uppercase; color: var(--td-ink-2); margin: 18px 0 0;
}

/* ==========================================================================
 * 404 — desk-style "no edition found".
 * ======================================================================== */
.notfound { padding: 8px 0 60px; }
.notfound-code {
	font-family: var(--td-mono); font-size: 0.6875rem; letter-spacing: 0.16em;
	text-transform: uppercase; color: var(--td-accent); margin: 0 0 14px;
}
.notfound-links {
	margin-top: 30px; padding-top: 22px; border-top: 1px solid var(--td-hair);
}
.notfound-links h2 {
	font-family: var(--td-mono); font-size: 0.6875rem; letter-spacing: 0.16em;
	text-transform: uppercase; color: var(--td-ink-2); font-weight: 500; margin: 0 0 14px;
}
.notfound-links ul { list-style: none; margin: 0; padding: 0;
	display: flex; flex-wrap: wrap; gap: 10px 26px;
}
.notfound-links a {
	font-family: var(--td-serif); font-size: 1.1rem; color: var(--td-ink);
	text-decoration: none; border-bottom: 1px solid var(--td-hair); padding-bottom: 2px;
}
.notfound-links a:hover { color: var(--td-accent); border-bottom-color: var(--td-accent); }

/* Accessible visually-hidden utility. Core's search block (and others) emit
   labels with .screen-reader-text expecting the theme to clip them; without a
   global rule the "Search the publication" label rendered full-width and pushed
   ~1000px of horizontal overflow onto the custom PHP data templates. */
.screen-reader-text {
	border: 0;
	clip: rect(1px, 1px, 1px, 1px);
	clip-path: inset(50%);
	/* !important on the size/overflow so core's .wp-block-search__label (equal
	   specificity, later in source order) can't restore the full-width label
	   that was pushing horizontal overflow onto the data templates. */
	width: 1px !important;
	height: 1px !important;
	margin: -1px;
	padding: 0;
	overflow: hidden !important;
	position: absolute !important;
	white-space: nowrap;
	word-wrap: normal !important;
}
.screen-reader-text:focus {
	clip: auto;
	clip-path: none;
	width: auto;
	height: auto;
	margin: 0;
	padding: 16px 23px 14px;
	background: var(--td-canvas, #fbfbf9);
	color: var(--td-ink, #1a1a1b);
	z-index: 100000;
}

/* Scatter -> line divider (reused on these pages above the data rail). */
.scatter-div { display: block; width: 100%; height: 30px; margin: 0; color: var(--td-hair); }

/* A quiet data rail wrapper (places moving-now under the collection). */
.data-rail { padding: 8px 0 56px; border-top: 1px solid var(--td-hair); margin-top: 8px; }
.data-rail .data-rail-head {
	font-family: var(--td-mono); font-size: 0.625rem; letter-spacing: 0.16em;
	text-transform: uppercase; color: var(--td-ink-2); margin: 0 0 18px;
}

/* ==========================================================================
 * FRONT PAGE — reproduces editorial-home-signature.html structure with the
 * markup the front-page template + home patterns actually emit (core blocks
 * carry their own wrapper classes, so selectors target those). All colour via
 * the palette tokens; body copy never uses ink-3.
 * ======================================================================== */
main#main { display: block; }

/* ---- Lead / hero ---- */
.lead-section { padding: 0 0 54px; }
.lead-grid {
	display: grid; grid-template-columns: minmax(0, 1fr) 320px; gap: 0;
}
.lead-main {
	padding: 34px clamp(32px, 3.5vw, 52px) 44px 0;
	border-right: 1px solid var(--td-hair); position: relative;
}
.lead-main .lead-query, .lead-main .wp-block-post-template { margin: 0; padding: 0; list-style: none; }
.lead-figure { position: relative; margin: 0 0 26px; overflow: hidden; background: var(--td-cream); }
.lead-figure img { width: 100%; height: 100%; object-fit: cover; display: block; }

.kicker {
	display: inline-flex; align-items: center; gap: 9px;
	font-family: var(--td-mono); font-size: 0.6875rem; letter-spacing: 0.15em;
	text-transform: uppercase; color: var(--td-accent); font-weight: 500; margin-bottom: 16px;
}
.kicker .kbar { width: 22px; height: 2px; background: var(--td-accent); flex: none; }
.kicker .kicker-desk { color: var(--td-accent); }
.kicker .kicker-desk a { color: var(--td-accent); text-decoration: none; }

h1.lead-hl, .lead-hl {
	font-family: var(--td-serif); font-weight: 600;
	font-size: clamp(2.3rem, 4.6vw, 3.55rem); line-height: 1.02; letter-spacing: -0.02em;
	margin: 0 0 20px; text-wrap: balance; color: var(--td-ink);
}
.lead-hl a { color: inherit; text-decoration: none; transition: color .18s ease; }
.lead-hl a:hover { color: var(--td-accent); }
.lead-dek {
	font-size: 1.18rem; line-height: 1.5; color: var(--td-ink-2);
	max-width: 42ch; margin: 0 0 24px; font-weight: 400;
}
.byline {
	display: flex; flex-wrap: wrap; gap: 8px 18px; align-items: center;
	font-family: var(--td-mono); font-size: 0.6875rem; letter-spacing: 0.08em;
	color: var(--td-ink-2); text-transform: uppercase;
	padding-top: 18px; border-top: 1px solid var(--td-hair-soft);
}
.byline .by-name, .byline .wp-block-post-author { color: var(--td-ink); }
.byline .wp-block-post-author a { color: var(--td-ink); text-decoration: none; }
.byline .wp-block-post-date, .byline .wp-block-post-date a { color: var(--td-ink-2); text-decoration: none; }
.byline .sep { color: var(--td-hair); }

/* ---- Secondaries rail ---- */
.lead-rail {
	padding: 34px 0 24px clamp(32px, 3.5vw, 52px);
	display: flex; flex-direction: column;
	position: sticky; top: 18px; align-self: start;
}
.rail-head {
	font-family: var(--td-mono); font-size: 0.625rem; letter-spacing: 0.18em;
	text-transform: uppercase; color: var(--td-ink-2);
	padding-bottom: 16px; margin-bottom: 20px; border-bottom: 1px solid var(--td-hair);
	display: flex; justify-content: space-between;
}
.secondary-query, .secondary-query .wp-block-post-template { margin: 0; padding: 0; list-style: none; }
.sec {
	display: grid; grid-template-columns: 74px 1fr; gap: 16px;
	padding: 18px 0; border-bottom: 1px solid var(--td-hair-soft); margin: 0;
}
.sec:last-of-type { border-bottom: none; }
.sec .secfig { aspect-ratio: 1 / 1; overflow: hidden; background: var(--td-cream); margin: 0; }
.sec .secfig img { width: 100%; height: 100%; object-fit: cover; display: block; }
.sec .sec-meta {
	font-family: var(--td-mono); font-size: 0.625rem; letter-spacing: 0.1em;
	text-transform: uppercase; color: var(--td-accent); margin-bottom: 8px;
	display: flex; flex-wrap: wrap; gap: 8px; align-items: baseline;
}
.sec .sec-meta a { color: var(--td-accent); text-decoration: none; }
.sec .sec-meta .sm-desk { color: var(--td-ink-2); }
.sec .sec-meta .sm-desk a { color: var(--td-ink-2); }
.sec-hl {
	font-family: var(--td-serif); font-weight: 500; font-size: 1.06rem;
	line-height: 1.16; letter-spacing: -0.01em; margin: 0; color: var(--td-ink);
}
.sec-hl a { color: inherit; text-decoration: none; }
.sec-hl.ul a {
	text-decoration: underline; text-decoration-thickness: 1px;
	text-underline-offset: 2px; text-decoration-color: var(--td-hair);
}
.sec-hl a:hover { color: var(--td-accent); }
.sec-hl.ul a:hover { text-decoration-color: var(--td-accent); }

@media (max-width: 900px) {
	.lead-grid { grid-template-columns: 1fr; }
	.lead-main { border-right: none; padding: 32px 0 30px; }
	.lead-rail {
		position: static; padding: 28px 0 0;
		border-top: 1px solid var(--td-hair);
	}
}

/* ==========================================================================
 * Region classes the patterns emit that previously had NO CSS:
 *   .lead-story  — the lead/hero column   (pattern: lead-story.php → .lead-main)
 *   .the-wire    — the "The Wire" sidebar (pattern: secondary-row.php → .lead-rail)
 *   .story-card  — an image-led news/wire card (story-card.php, secondary-row.php)
 * They sit alongside the working layout classes (.lead-main/.lead-rail/.imaged/.sec)
 * and carry the mockup's region treatment so these hooks are never unstyled.
 * Colours come from the palette tokens; body copy never uses ink-3 (AA).
 * ======================================================================== */

/* Lead/hero column. The lead headline is the page's single h1. */
.lead-story { position: relative; }
.lead-story .lead-figure { margin: 0 0 26px; }
.lead-story .lead-hl { color: var(--td-ink); }
.lead-story .lead-dek { color: var(--td-ink-2); }

/* "The Wire" rail. Mirrors the mockup sidebar: a quiet column of secondaries
 * under a mono rail-head, hairline-separated, beside the lead. */
.the-wire { display: flex; flex-direction: column; }
.the-wire .rail-head {
	font-family: var(--td-mono); font-size: 0.625rem; letter-spacing: 0.18em;
	text-transform: uppercase; color: var(--td-ink-2);
}
.the-wire .wp-block-query { margin: 0; }

/* Story card — image-led card used in the news desk and the wire rail. Image
 * frame, then mono meta, then a serif headline that wraps whole words. The
 * stacked-image frame only applies to the news (.imaged) variant; the wire
 * (.sec) variant keeps its own 74px-thumb + text two-column form from .sec. */
.story-card { min-width: 0; }
.imaged.story-card .wp-block-post-featured-image,
.imaged.story-card .figbox {
	overflow: hidden; background: var(--td-cream); margin: 0 0 14px;
}
.story-card .wp-block-post-featured-image img,
.story-card .figbox img,
.story-card .secfig img {
	width: 100%; height: 100%; object-fit: cover; display: block;
}
.story-card .sec-hl {
	font-family: var(--td-serif); font-weight: 500;
	letter-spacing: -0.01em; color: var(--td-ink);
}
.story-card .sec-hl a { color: inherit; text-decoration: none; }
.story-card .sec-hl a:hover { color: var(--td-accent); }

/* ---- Desk separators / headings (shared by News + Education + Research) ---- */
.desk-sep { padding: 30px 0 12px; }
.edu-sep { padding-top: 44px; }
.desk-head {
	display: flex; align-items: baseline; justify-content: space-between;
	gap: 16px; margin-bottom: 26px; border-bottom: 2px solid var(--td-ink); padding-bottom: 12px;
}
.desk-head .desk-h, h2.desk-h {
	font-family: var(--td-serif); font-weight: 600; font-size: 1.7rem;
	letter-spacing: -0.015em; margin: 0; color: var(--td-ink);
	display: flex; align-items: center; gap: 13px;
}
.desk-glyph {
	flex: none; width: 16px; height: 16px; border-radius: 50%;
	border: 1px solid var(--td-accent); position: relative;
}
.desk-glyph::after {
	content: ""; position: absolute; inset: 0; margin: auto;
	width: 3.2px; height: 3.2px; border-radius: 50%; background: var(--td-accent);
}
.desk-head .dh-meta {
	font-family: var(--td-mono); font-size: 0.625rem; letter-spacing: 0.13em;
	text-transform: uppercase; color: var(--td-ink-2); text-align: right;
}

/* ---- News desk grid (varied card sizes via core Query Loop) ----
 * Real WP DOM is:  div.wp-block-query.news-grid  >  ul.wp-block-post-template  >  li.wp-block-post
 * The grid MUST live on the ul (the cards' direct parent), NOT on the outer
 * query div whose only child is the ul. The outer div stays a plain block so it
 * does not wrap the single ul into one narrow column. !important defeats WP's
 * inline grid-layout columns (the wp-container-* rule the grid layout emits),
 * so the varied 1.4/1/1 feature template wins. */
.news-grid { display: block; padding: 0 0 48px; }
.news-grid .wp-block-post-template {
	display: grid !important;
	grid-template-columns: 1.4fr 1fr 1fr;
	gap: 28px 34px;
	margin: 0; padding: 0; list-style: none;
}
.news-grid .wp-block-post { margin: 0; min-width: 0; }
/* first card spans large (feature), reproducing the varied-size band */
.news-grid .wp-block-post:first-child {
	grid-row: span 2; border-right: 1px solid var(--td-hair); padding-right: 34px;
}
.news-grid .wp-block-post:first-child .sec-hl {
	font-size: 1.5rem; line-height: 1.1; font-weight: 600;
}
.news-grid .imaged { display: flex; flex-direction: column; }
.news-grid .figbox, .news-grid .wp-block-post-featured-image {
	overflow: hidden; background: var(--td-cream); margin: 0 0 14px; aspect-ratio: 16 / 9;
}
.news-grid .wp-block-post:first-child .wp-block-post-featured-image { aspect-ratio: 4 / 3; margin-bottom: 18px; }
.news-grid .wp-block-post-featured-image img { width: 100%; height: 100%; object-fit: cover; display: block; }
.meta-row {
	font-family: var(--td-mono); font-size: 0.625rem; letter-spacing: 0.1em;
	text-transform: uppercase; color: var(--td-accent); margin-bottom: 9px;
	display: flex; flex-wrap: wrap; gap: 9px; align-items: center;
}
.meta-row a { color: var(--td-accent); text-decoration: none; }
.meta-row .wp-block-post-date, .meta-row .mr-desk { color: var(--td-ink-2); }
.meta-row .wp-block-post-author a, .meta-row .wp-block-post-date a { color: var(--td-ink-2); text-decoration: none; }
.news-grid .sec-hl { font-size: 1.16rem; line-height: 1.16; }

/* Cards are narrow; WP's core post-title CSS sets word-break:break-word which
 * snaps long headlines mid-word ("Watchdog s", "Commodi ties"). Force normal
 * wrapping + no hyphenation on every card title so words stay whole. */
.news-grid .sec-hl,
.sec-hl, .story-card .sec-hl, .res-item .sec-hl, .edu-card .sec-hl,
.lead-hl, .lead-story .lead-hl {
	overflow-wrap: normal;
	word-break: normal;
	hyphens: none;
}

@media (max-width: 900px) {
	.news-grid .wp-block-post-template { grid-template-columns: 1fr 1fr; }
	.news-grid .wp-block-post:first-child {
		grid-row: auto; grid-column: 1 / -1; border-right: none; padding-right: 0;
		border-bottom: 1px solid var(--td-hair); padding-bottom: 24px;
	}
}
@media (max-width: 620px) {
	.news-grid .wp-block-post-template { grid-template-columns: 1fr; }
}

/* ---- Research desk (dark inset) ---- */
.research {
	background: var(--td-dark); color: #EDE8E0;
	margin: 8px 0 0; position: relative; overflow: hidden; isolation: isolate;
}
.research::after {
	content: ""; position: absolute; inset: 0; z-index: -1;
	background-image: radial-gradient(rgba(255,255,255,0.5) 0.5px, transparent 0.6px);
	background-size: 4px 4px; opacity: 0.045;
}
.research > .wrap { padding-top: 46px; padding-bottom: 50px; }
.research .desk-head { border-bottom-color: rgba(255,255,255,0.22); }
.research .desk-head .desk-h, .research h2.desk-h { color: #F3EEE6; }
.research .desk-head .dh-meta { color: #B8B1A6; }
.desk-glyph-dark { border-color: #E8A06A; }
.desk-glyph-dark::after { background: #E8A06A; }
/* Real DOM: div.wp-block-query.res-grid > ul.wp-block-post-template > li. Grid
 * lives on the ul; outer query div is a plain block. Research items are bigger
 * and fewer than the news desk — three across, but with room to breathe. */
.res-grid { display: block; }
.res-grid .wp-block-post-template {
	display: grid !important;
	grid-template-columns: 1.3fr 1fr 1fr;
	gap: 36px;
	margin: 0; padding: 0; list-style: none;
}
.res-grid .wp-block-post { margin: 0; min-width: 0; }
.res-grid .wp-block-post:first-child { grid-row: span 1; }
.res-item {
	padding: 0 0 20px; border-bottom: 1px solid rgba(255,255,255,0.1); margin: 0;
}
.res-item:last-of-type { border-bottom: none; }
.research .meta-row { color: #E8A06A; }
.research .meta-row a { color: #E8A06A; }
.research .sec-hl { color: #EDE8E0; font-size: 1.2rem; line-height: 1.18; font-weight: 500; }
.research .sec-hl a { color: inherit; }
.research .sec-hl a:hover { color: #E8A06A; }
.research .res-note {
	font-family: var(--td-mono); font-size: 0.6875rem; letter-spacing: 0.1em;
	text-transform: uppercase; color: #B8B1A6; margin: 26px 0 0;
}
@media (max-width: 900px) {
	.res-grid .wp-block-post-template { grid-template-columns: 1fr; gap: 24px; }
}

/* ---- Education desk ----
 * Real DOM: div.wp-block-query.edu-grid > ul.wp-block-post-template > li.
 * Grid on the ul; the top hairline + bottom padding stay on the outer div. */
.edu-grid {
	display: block;
	border-top: 1px solid var(--td-hair); padding-bottom: 54px;
}
.edu-grid .wp-block-post-template {
	display: grid !important; grid-template-columns: repeat(3, 1fr); gap: 0;
	margin: 0; padding: 0; list-style: none;
}
.edu-grid .wp-block-post, .edu-card {
	padding: 28px 30px 30px; border-right: 1px solid var(--td-hair);
	position: relative; margin: 0; min-width: 0; display: flex; flex-direction: column;
}
.edu-grid .wp-block-post:last-child, .edu-card:last-child { border-right: none; }
.edu-no {
	display: flex; align-items: center; gap: 10px;
	font-family: var(--td-mono); font-size: 0.625rem; letter-spacing: 0.14em;
	text-transform: uppercase; color: var(--td-accent); margin-bottom: 20px;
}
.edu-glyph {
	flex: none; width: 13px; height: 13px; position: relative;
}
.edu-glyph::before {
	content: ""; position: absolute; top: 50%; left: 0; width: 7px; height: 1px;
	background: var(--td-accent);
}
.edu-glyph::after {
	content: ""; position: absolute; top: 3px; right: 1px; width: 2.2px; height: 2.2px;
	border-radius: 50%; background: var(--td-accent);
	box-shadow: 0 5px 0 0 var(--td-accent);
}
.edu-card .sec-hl { font-size: 1.32rem; line-height: 1.14; font-weight: 600; }
.edu-meta {
	font-family: var(--td-mono); font-size: 0.625rem; letter-spacing: 0.1em;
	text-transform: uppercase; color: var(--td-ink-2); margin-top: 18px;
	display: flex; flex-wrap: wrap; gap: 9px; align-items: baseline;
}
.edu-meta .edu-desk, .edu-meta .edu-desk a { color: var(--td-ink); text-decoration: none; }
.edu-meta .wp-block-post-date { color: var(--td-ink-2); }
@media (max-width: 760px) {
	.edu-grid .wp-block-post-template { grid-template-columns: 1fr; }
	.edu-grid .wp-block-post, .edu-card {
		border-right: none; border-bottom: 1px solid var(--td-hair);
		padding-left: 0; padding-right: 0;
	}
	.edu-grid .wp-block-post:last-child, .edu-card:last-child { border-bottom: none; }
}

/* ==========================================================================
 * NEW QUANTA HOMEPAGE — rail newsletter, desk "view all" links, light
 * image-led research cards. Appended; supersedes the dark .research band.
 * ======================================================================== */

/* Newsletter sign-up in the lead rail */
.rail-news { margin-top: 28px; padding-top: 26px; border-top: 1px solid var(--td-hair); }
.rail-news-h {
	font-family: var(--td-serif); font-weight: 600; font-size: 1.3rem;
	letter-spacing: -0.01em; line-height: 1.16; margin: 0 0 8px; color: var(--td-ink);
}
.rail-news-dek { font-size: 0.9rem; line-height: 1.5; color: var(--td-ink-2); margin: 0 0 14px; }
.rail-news-form { display: flex; gap: 8px; }
.rail-news-form input {
	flex: 1 1 auto; min-width: 0; border: 1px solid var(--td-hair); background: #fff;
	padding: 9px 11px; font-family: var(--td-mono); font-size: 0.75rem;
	color: var(--td-ink); border-radius: 0;
}
.rail-news-form input::placeholder { color: var(--td-ink-3); }
.rail-news-form button {
	flex: none; border: 0; background: var(--td-accent); color: #fff; cursor: pointer;
	font-family: var(--td-mono); font-size: 0.6875rem; letter-spacing: 0.1em;
	text-transform: uppercase; padding: 0 16px; transition: background .18s ease;
}
.rail-news-form button:hover { background: var(--td-ink); }

/* Desk header "View all ->" link */
.desk-head .dh-link {
	font-family: var(--td-mono); font-size: 0.6875rem; letter-spacing: 0.1em;
	text-transform: uppercase; color: var(--td-accent); text-decoration: none; white-space: nowrap;
}
.desk-head .dh-link:hover { color: var(--td-ink); }

/* Research desk — light, image-led, two across */
.research-light { padding-top: 42px; }
.res-grid { display: block; padding-bottom: 8px; }
.res-grid .wp-block-post-template {
	display: grid !important; grid-template-columns: 1fr 1fr; gap: 40px 44px;
	margin: 0; padding: 0; list-style: none;
}
.res-grid .wp-block-post { margin: 0; min-width: 0; }
.res-item { display: flex; flex-direction: column; }
.res-fig, .res-item .wp-block-post-featured-image {
	margin: 0 0 18px; overflow: hidden; background: var(--td-cream); aspect-ratio: 16 / 9;
}
.res-fig img, .res-item .wp-block-post-featured-image img {
	width: 100%; height: 100%; object-fit: cover; display: block;
}
.res-item .sec-hl {
	font-family: var(--td-serif); font-weight: 600; font-size: 1.5rem; line-height: 1.14;
	letter-spacing: -0.012em; margin: 0 0 12px; color: var(--td-ink);
}
.res-item .sec-hl a { color: inherit; text-decoration: none; }
.res-item .sec-hl a:hover { color: var(--td-accent); }
.res-dek { font-size: 1rem; line-height: 1.55; color: var(--td-ink-2); margin: 0 0 14px; max-width: 48ch; }
.card-byline {
	font-family: var(--td-mono); font-size: 0.625rem; letter-spacing: 0.08em;
	text-transform: uppercase; color: var(--td-ink-2);
	display: flex; flex-wrap: wrap; gap: 6px 10px; align-items: center;
}
.card-byline .by-name, .card-byline .wp-block-post-author { color: var(--td-ink); }
.card-byline .wp-block-post-author a { color: var(--td-ink); text-decoration: none; }
.card-byline .wp-block-post-date, .card-byline .wp-block-post-date a { color: var(--td-ink-2); text-decoration: none; }
.card-byline .sep { color: var(--td-hair); }
@media (max-width: 760px) {
	.res-grid .wp-block-post-template { grid-template-columns: 1fr; gap: 32px; }
}

/* ==========================================================================
 * COVERAGE / GLOBE band — the "Every signal, distributed." brand moment.
 * Cream surface, display headline, the dotted globe, a market-coverage grid
 * (Live / Seeded / Planned). Static + CWV-safe; no client JS.
 * ======================================================================== */
.coverage { background: var(--td-cream); margin-top: 10px; }
.coverage > .wrap { padding-top: 58px; padding-bottom: 60px; }
.coverage-top { display: grid; grid-template-columns: 1.15fr 0.85fr; gap: 48px; align-items: center; }
.coverage-kicker {
	font-family: var(--td-mono); font-size: 0.625rem; letter-spacing: 0.16em;
	text-transform: uppercase; color: var(--td-ink-2); margin: 0 0 18px;
}
.coverage-h {
	font-family: var(--td-serif); font-weight: 900; font-size: clamp(2.5rem, 5vw, 4.25rem);
	line-height: 0.98; letter-spacing: -0.025em; color: var(--td-ink); margin: 0 0 20px; text-wrap: balance;
}
.coverage-h em { font-style: italic; color: var(--td-accent); }
.coverage-copy { font-size: 1.02rem; line-height: 1.6; color: var(--td-ink-2); max-width: 46ch; margin: 0 0 20px; }
.coverage-legend {
	list-style: none; display: flex; flex-wrap: wrap; gap: 22px; margin: 0; padding: 0;
	font-family: var(--td-mono); font-size: 0.6875rem; letter-spacing: 0.08em;
	text-transform: uppercase; color: var(--td-ink-2);
}
.coverage-legend li { display: flex; align-items: center; gap: 7px; }
.lg-dot { width: 7px; height: 7px; border-radius: 50%; flex: none; }
.lg-dot.live { background: var(--td-up); }
.lg-dot.seeded { background: var(--td-accent); }
.lg-dot.planned { background: var(--td-ink-3); }
.coverage-globe { display: flex; justify-content: center; }
.coverage-globe img { width: 100%; max-width: 320px; height: auto; }
.coverage-grid {
	display: grid; grid-template-columns: repeat(3, 1fr); gap: 1px; margin-top: 44px;
	background: rgba(28, 25, 23, 0.10); border: 1px solid rgba(28, 25, 23, 0.10);
}
.cov-cell { background: var(--td-cream); padding: 16px 18px; display: flex; flex-direction: column; gap: 5px; }
.cov-country { font-family: var(--td-serif); font-weight: 600; font-size: 1.05rem; color: var(--td-ink); }
.cov-status {
	font-family: var(--td-mono); font-size: 0.5625rem; letter-spacing: 0.13em; text-transform: uppercase;
}
.cov-status.live { color: var(--td-up); }
.cov-status.seeded { color: var(--td-accent); }
.cov-status.planned { color: var(--td-ink-3); }
.cov-exch { font-family: var(--td-mono); font-size: 0.625rem; letter-spacing: 0.06em; color: var(--td-ink-2); }
@media (max-width: 760px) {
	.coverage-top { grid-template-columns: 1fr; gap: 28px; }
	.coverage-globe { order: -1; }
	.coverage-grid { grid-template-columns: 1fr 1fr; }
}
@media (max-width: 460px) {
	.coverage-grid { grid-template-columns: 1fr; }
}

/* ==========================================================================
 * ENTITY PAGE (entity-template.php) — dynamic /stocks/{ticker} etc.
 * A big ticker masthead, then the stacked live data blocks in a reading column.
 * ======================================================================== */
.entity-head { padding: 34px 0 26px; border-bottom: 1px solid var(--td-hair); }
.entity-head .crumbs { margin-bottom: 18px; }
.entity-kicker {
	display: inline-flex; align-items: center; gap: 9px;
	font-family: var(--td-mono); font-size: 0.6875rem; letter-spacing: 0.15em;
	text-transform: uppercase; color: var(--td-accent); font-weight: 500; margin: 0 0 12px;
}
.entity-kicker .kbar { width: 22px; height: 2px; background: var(--td-accent); flex: none; }
.entity-h1 {
	font-family: var(--td-serif); font-weight: 900; font-size: clamp(3rem, 7vw, 5.5rem);
	line-height: 0.94; letter-spacing: -0.03em; margin: 0 0 16px; color: var(--td-ink);
}
.entity-sub { font-size: 1.08rem; line-height: 1.5; color: var(--td-ink-2); max-width: 62ch; margin: 0; }
.entity-body { padding: 34px 0 64px; }
.entity-body .wrap { display: flex; flex-direction: column; gap: 26px; max-width: 880px; margin-inline: auto; }

/* ==========================================================================
 * STATIC PAGES (page.html → about / methodology / policies) + GLOSSARY.
 * ======================================================================== */
.page-shell { padding-top: 8px; }
.page-head { padding: 42px 0 0; max-width: 720px; margin-inline: auto; }
.page-kicker {
	display: inline-flex; align-items: center; gap: 9px;
	font-family: var(--td-mono); font-size: 0.6875rem; letter-spacing: 0.15em;
	text-transform: uppercase; color: var(--td-accent); font-weight: 500; margin: 0 0 14px;
}
.page-kicker .kbar { width: 22px; height: 2px; background: var(--td-accent); flex: none; }
.page-head .art-hl { margin-bottom: 0.5rem; }
.page-shell .prose { padding-top: 1.5rem; }

/* Glossary */
.glossary { padding: 8px 0 64px; }
.glossary-list { margin: 0; max-width: 860px; }
.gl-term { display: grid; grid-template-columns: 1fr; gap: 5px; padding: 20px 0; border-top: 1px solid var(--td-hair); }
.gl-term:first-child { border-top: none; padding-top: 4px; }
.gl-term dt {
	font-family: var(--td-serif); font-weight: 600; font-size: 1.32rem;
	letter-spacing: -0.01em; color: var(--td-ink);
}
.gl-term dd { margin: 0; font-size: 1.02rem; line-height: 1.55; color: var(--td-ink-2); max-width: 60ch; }
@media (min-width: 720px) {
	.gl-term { grid-template-columns: 0.85fr 1.5fr; gap: 30px; align-items: baseline; }
}

/* Worldwide page: the coverage band reused full-width (no extra top margin). */
.coverage-page { margin-top: 0; }

/* ==========================================================================
 * IMAGE PLACEHOLDER BOXES — clean framed boxes that a real featured image
 * fills once uploaded. Empty boxes show a faint image glyph so the layout
 * reads image-led before art is loaded. Apply with .imgbox + an aspect helper.
 * ======================================================================== */
.imgbox { position: relative; background: var(--td-cream); border: 1px solid var(--td-hair); overflow: hidden; }
.imgbox::after {
	content: ""; position: absolute; inset: 0; pointer-events: none; z-index: 0;
	background: center / 34px no-repeat url("data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%2024%2024'%20fill='none'%20stroke='%23b8b1a6'%20stroke-width='1.4'%20stroke-linecap='round'%20stroke-linejoin='round'%3E%3Crect%20x='3'%20y='3'%20width='18'%20height='18'%20rx='1.5'/%3E%3Ccircle%20cx='8.5'%20cy='8.5'%20r='1.6'/%3E%3Cpath%20d='M21%2015l-5-5L5%2021'/%3E%3C/svg%3E");
}
.imgbox .wp-block-post-featured-image { position: absolute; inset: 0; z-index: 1; margin: 0; }
.imgbox .wp-block-post-featured-image > a { display: block; width: 100%; height: 100%; }
.imgbox .wp-block-post-featured-image img { width: 100%; height: 100%; object-fit: cover; display: block; }
.imgbox > img { position: relative; z-index: 1; width: 100%; height: 100%; object-fit: cover; display: block; }
.ar-16x9 { aspect-ratio: 16 / 9; }
.ar-5x2 { aspect-ratio: 5 / 2; }
.ar-4x3 { aspect-ratio: 4 / 3; }
.ar-1x1 { aspect-ratio: 1 / 1; }

/* ==========================================================================
 * HOMEPAGE — mock structure: lead well (lead + news + wire) beside the rail.
 * ======================================================================== */
.lead-well { padding: 34px clamp(32px, 3.5vw, 52px) 44px 0; border-right: 1px solid var(--td-hair); min-width: 0; }
.lead-main { padding: 0; border-right: none; position: relative; }
.imgbox.lead-figure { margin: 22px 0 24px; }
@media (max-width: 900px) {
	.lead-well { border-right: none; padding: 32px 0 30px; }
}

/* Section block head (News / At a glance) */
.block-head { display: flex; align-items: center; gap: 14px; margin: 36px 0 16px; }
.block-head .bh-label { font-family: var(--td-serif); font-weight: 600; font-size: 1.5rem; letter-spacing: -0.012em; color: var(--td-ink); }
.block-head .bh-rule { flex: 1; height: 1px; background: var(--td-hair); }
.block-head .bh-link { font-family: var(--td-mono); font-size: 0.625rem; letter-spacing: 0.12em; text-transform: uppercase; color: var(--td-accent); text-decoration: none; white-space: nowrap; }
.block-head .bh-link:hover { color: var(--td-ink); }
.block-head .bh-meta { font-family: var(--td-mono); font-size: 0.625rem; letter-spacing: 0.12em; text-transform: uppercase; color: var(--td-ink-2); white-space: nowrap; }
.block-head .live-dot { width: 7px; height: 7px; border-radius: 50%; background: var(--td-accent); flex: none; }
@media (prefers-reduced-motion: no-preference) { .block-head .live-dot { animation: td-tape-pulse 2.4s ease-in-out infinite; } }

/* News list (text + square thumb) */
.news-list .wp-block-post-template { margin: 0; padding: 0; list-style: none; }
.news-item { display: grid; grid-template-columns: 1fr 110px; gap: 18px; align-items: start; padding: 18px 0; border-top: 1px solid var(--td-hair); margin: 0; }
.news-item:first-child { border-top: none; padding-top: 2px; }
.ni-body { min-width: 0; }
.ni-kicker { font-family: var(--td-mono); font-size: 0.625rem; letter-spacing: 0.14em; text-transform: uppercase; color: var(--td-accent); margin: 0 0 7px; }
.ni-kicker a { color: var(--td-accent); text-decoration: none; }
.ni-hl { font-family: var(--td-serif); font-weight: 600; font-size: 1.18rem; line-height: 1.2; letter-spacing: -0.01em; margin: 0 0 9px; color: var(--td-ink); }
.ni-hl a { color: inherit; text-decoration: none; } .ni-hl a:hover { color: var(--td-accent); }
.ni-meta { font-family: var(--td-mono); font-size: 0.625rem; letter-spacing: 0.06em; text-transform: uppercase; color: var(--td-ink-2); gap: 7px; }
.ni-meta .ni-author, .ni-meta .ni-author a { color: var(--td-ink-2); text-decoration: none; }
.ni-meta .sep { color: var(--td-hair); }
.ni-thumb { width: 110px; }

/* At a glance / wire quick-takes */
.wire-list .wp-block-post-template { display: grid !important; grid-template-columns: 1fr 1fr; gap: 0 34px; margin: 0; padding: 0; list-style: none; }
.wire-item { padding: 13px 0; border-top: 1px solid var(--td-hair-soft); margin: 0; }
.wi-cat { font-family: var(--td-mono); font-size: 0.5625rem; letter-spacing: 0.14em; text-transform: uppercase; color: var(--td-accent); margin: 0 0 5px; }
.wi-cat a { color: var(--td-accent); text-decoration: none; }
.wi-hl { font-family: var(--td-serif); font-weight: 500; font-size: 0.98rem; line-height: 1.22; letter-spacing: -0.005em; margin: 0 0 5px; color: var(--td-ink); }
.wi-hl a { color: inherit; text-decoration: none; } .wi-hl a:hover { color: var(--td-accent); }
.wi-time { font-family: var(--td-mono); font-size: 0.5625rem; letter-spacing: 0.06em; color: var(--td-ink-3); }
@media (max-width: 560px) { .wire-list .wp-block-post-template { grid-template-columns: 1fr; } }

/* Rail follow module */
.rail-follow { margin-top: 26px; padding-top: 24px; border-top: 1px solid var(--td-hair); }
.rail-h { font-family: var(--td-mono); font-size: 0.625rem; letter-spacing: 0.16em; text-transform: uppercase; color: var(--td-ink-2); margin: 0 0 12px; }
.follow-list { list-style: none; margin: 0; padding: 0; }
.follow-list li { border-top: 1px solid var(--td-hair-soft); }
.follow-list li:first-child { border-top: none; }
.follow-list a { display: flex; align-items: center; gap: 10px; padding: 10px 0; font-family: var(--td-sans); font-size: 0.9rem; color: var(--td-ink); text-decoration: none; }
.follow-list a:hover { color: var(--td-accent); }
.follow-list .fl-mark { width: 18px; text-align: center; color: var(--td-ink-2); }

/* Research / Learn image frames sit at card top */
.res-fig { margin: 0 0 18px; }
.edu-fig { margin: 0 0 16px; }
/* Learn becomes image-led, gapped (drop the old bordered columns + padding) */
.edu-grid .wp-block-post-template { grid-template-columns: repeat(3, 1fr) !important; gap: 0 34px; }
.edu-grid .wp-block-post, .edu-card { padding: 0 !important; border-right: none !important; border-bottom: none !important; }
.edu-card .edu-no { margin-bottom: 12px; }

/* Industry Headlines (sponsored lane) */
.headlines-sep { padding-top: 40px; }
.headlines-list .wp-block-post-template { display: grid !important; grid-template-columns: 1fr 1fr; gap: 0 44px; margin: 0; padding: 0; list-style: none; }
.hl-item { display: grid; grid-template-columns: 64px 1fr; gap: 14px; align-items: baseline; padding: 14px 0; border-top: 1px solid var(--td-hair); margin: 0; }
.hl-time { font-family: var(--td-mono); font-size: 0.625rem; letter-spacing: 0.04em; color: var(--td-accent); }
.hl-hl { font-family: var(--td-serif); font-weight: 500; font-size: 1.02rem; line-height: 1.2; letter-spacing: -0.005em; margin: 0; color: var(--td-ink); }
.hl-hl a { color: inherit; text-decoration: none; } .hl-hl a:hover { color: var(--td-accent); }
@media (max-width: 700px) { .headlines-list .wp-block-post-template { grid-template-columns: 1fr; } }

/* Placeholder boxes for the article hero, collection cards and related cards
 * that have no featured image yet — :has() so the templates need no change.
 * Real featured images render normally and replace the placeholder. */
.coll-grid .wp-block-post:not(:has(.wp-block-post-featured-image))::before,
.related-grid .wp-block-post:not(:has(.wp-block-post-featured-image))::before {
	content: ""; display: block; aspect-ratio: 16 / 9; margin: 0 0 16px;
	border: 1px solid var(--td-hair);
	background: var(--td-cream) center / 34px no-repeat url("data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%2024%2024'%20fill='none'%20stroke='%23b8b1a6'%20stroke-width='1.4'%20stroke-linecap='round'%20stroke-linejoin='round'%3E%3Crect%20x='3'%20y='3'%20width='18'%20height='18'%20rx='1.5'/%3E%3Ccircle%20cx='8.5'%20cy='8.5'%20r='1.6'/%3E%3Cpath%20d='M21%2015l-5-5L5%2021'/%3E%3C/svg%3E");
}
.art-hero:not(:has(.wp-block-post-featured-image))::before {
	content: ""; display: block; aspect-ratio: 16 / 9; margin: 0;
	border: 1px solid var(--td-hair);
	background: var(--td-cream) center / 46px no-repeat url("data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%2024%2024'%20fill='none'%20stroke='%23b8b1a6'%20stroke-width='1.4'%20stroke-linecap='round'%20stroke-linejoin='round'%3E%3Crect%20x='3'%20y='3'%20width='18'%20height='18'%20rx='1.5'/%3E%3Ccircle%20cx='8.5'%20cy='8.5'%20r='1.6'/%3E%3Cpath%20d='M21%2015l-5-5L5%2021'/%3E%3C/svg%3E");
}

/* ==========================================================================
 * MOCK-EXACT homepage lead well + rail + dividers (1:1 with the Claude Design
 * homepage, lines 102-204). Appended last so it overrides earlier rules.
 * ======================================================================== */
.lead-section > .wrap { padding-top: clamp(40px, 6vw, 80px); }
.lead-grid {
	display: grid; grid-template-columns: minmax(0, 1fr) 320px;
	gap: clamp(40px, 4.5vw, 72px); align-items: start; border: none;
}
.lead-well { padding: 0 !important; border-right: none !important; min-width: 0; }
.lead-main {
	padding: 0 0 clamp(28px, 3.4vw, 40px) !important;
	border-right: none !important; border-bottom: 1px solid var(--td-hair); position: relative;
}
.imgbox.lead-figure { aspect-ratio: 5 / 2; margin: 6px 0 22px; }
.lead-main .lead-hl { font-size: clamp(1.875rem, 3.4vw, 2.875rem); line-height: 1.04; letter-spacing: -0.02em; margin: 0 0 16px; }
.lead-main .lead-dek { font-size: 16.5px; line-height: 1.6; color: var(--td-ink-2); max-width: 64ch; margin: 0 0 18px; }
.lead-main .byline { border-top: none; padding-top: 0; font-size: 11px; letter-spacing: 0.05em; color: var(--td-ink-3); }
.lead-main .byline .by-name, .lead-main .byline .wp-block-post-author { color: var(--td-ink-3); }
.lead-main .byline .wp-block-post-author a { color: var(--td-ink-3); }

.home-rule { height: 1px; background: var(--td-hair); margin: clamp(52px,6vw,72px) 0 clamp(30px,4vw,40px); }

/* Rail: sticky column, 30px gaps */
.lead-rail {
	display: flex; flex-direction: column; gap: 30px;
	position: sticky; top: 64px; align-self: start;
	padding: 0 !important; border: none !important;
}
@media (max-width: 900px) {
	.lead-grid { grid-template-columns: 1fr; }
	.lead-rail { position: static; }
}

/* Follow module (mock lines 179-187) */
.rail-follow-h { font-family: var(--td-serif); font-weight: 900; font-size: 20px; letter-spacing: -0.01em; color: var(--td-ink); margin-bottom: 6px; }
.rail-follow .fl-row { display: flex; align-items: center; gap: 14px; padding: 11px 0; border-bottom: 1px dashed #d8d2c8; text-decoration: none; }
.rail-follow .fl-mark {
	flex: none; width: 34px; height: 34px; border: 1px solid var(--td-accent); border-radius: 50%;
	display: flex; align-items: center; justify-content: center; color: var(--td-accent); font-size: 14px; line-height: 1;
}
.rail-follow .fl-label { font-family: var(--td-sans); font-size: 15px; color: var(--td-ink-2); }
.rail-follow .fl-row:hover .fl-label { color: var(--td-ink); }

/* Newsletter (mock lines 189-202) — overrides earlier rail-news */
.rail-news { margin: 0; padding: 0; border: none; }
.rail-news-h { font-family: var(--td-serif); font-weight: 900; font-size: 20px; letter-spacing: -0.01em; color: var(--td-ink); margin-bottom: 16px; }
.rail-news-feature { text-decoration: none; display: block; }
.rail-news-feature h3 { font-family: var(--td-serif); font-weight: 600; font-size: 20px; line-height: 1.24; letter-spacing: -0.01em; color: var(--td-ink); margin: 0 0 12px; }
.rail-news-feature:hover h3 { color: var(--td-accent); }
.rail-news-by { display: flex; align-items: center; gap: 10px; margin-bottom: 12px; }
.rail-news-by .rn-by { font-family: var(--td-serif); font-style: italic; font-size: 13px; color: var(--td-ink-3); }
.rail-news-by .rn-name { font-family: var(--td-mono); font-size: 10.5px; letter-spacing: 0.07em; text-transform: uppercase; color: var(--td-ink-2); }
.rail-news .rail-news-dek { font-family: var(--td-sans); font-size: 14px; line-height: 1.55; color: var(--td-ink-2); margin: 0 0 18px; }
.rail-news .rail-news-form { display: flex; border: 1px solid #d8d2c8; background: #fff; gap: 0; }
.rail-news .rail-news-form input { flex: 1; min-width: 0; border: none; outline: none; background: none; font-family: var(--td-sans); font-size: 13px; color: var(--td-ink); padding: 11px 12px; border-radius: 0; }
.rail-news .rail-news-form button { flex: none; border: none; background: var(--td-accent); color: var(--td-canvas); font-family: var(--td-mono); font-size: 11px; letter-spacing: 0.08em; text-transform: uppercase; padding: 0 16px; cursor: pointer; }
.rail-news .rail-news-form button:hover { background: var(--td-ink); }
/* WCAG 2.4.7 — these borderless inputs strip outline:none; show a focus ring on
   the wrapper so keyboard focus stays visible (newsletter, search, glossary). */
.rail-news .rail-news-form:focus-within,
.mock-search .srch-field:focus-within,
.gloss-search:focus-within {
	outline: 2px solid var(--td-accent);
	outline-offset: 2px;
}
.rail-news-past { display: inline-block; margin-top: 16px; font-family: var(--td-mono); font-size: 11px; letter-spacing: 0.1em; text-transform: uppercase; color: var(--td-ink); text-decoration: none; border-bottom: 1px solid var(--td-accent); padding-bottom: 3px; }
.rail-news-past:hover { color: var(--td-accent); }


/* ============ PORTED: Single article (templates/single.html) — 1:1 port of the locked editor ============ */
/* =========================================================================
 * SINGLE ARTICLE — 1:1 PORT of TheDistributed.dc.html article block
 * (lines 303-406). Appended last so these rules win over the earlier
 * .art-* set in the theme. Literal mock hex used where it differs from a
 * token (article hairline #e7e3da, prose body ink #33312e); palette tokens
 * carry the mock hex as fallback otherwise.
 * ========================================================================= */

/* ---- Shell: mock main = 1240px, clamp padding, 80px foot ---- */
.article-shell { padding-bottom: 0; }
.article-shell > .wrap {
	max-width: 1240px;
	margin-inline: auto;
	padding: clamp(28px, 4vw, 44px) clamp(20px, 4vw, 56px) 80px;
}

/* Head + byline ride the mock's 760px measure; prose at 720px; hero full width */
.art-head {
	max-width: 760px;
	margin-inline: auto;
	padding: 0;
}
.art-body { max-width: 720px; margin-inline: auto; }
.art-hero { max-width: 1240px; margin-inline: auto; }

/* ---- Breadcrumb bar ---- */
.crumbbar {
	border-bottom: 1px solid #e7e3da;
	background: var(--td-canvas, #FBFBF9);
}
.crumbbar .wrap {
	max-width: 1240px;
	margin-inline: auto;
	padding: 0.8125rem clamp(20px, 4vw, 56px);
}
.crumbs {
	gap: 0.4rem;
	font-family: var(--td-mono, "Geist Mono", monospace);
	font-size: 10.5px;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	line-height: 1.5;
}
.crumbs a,
.crumbs .crumb-link,
.crumbs .crumb-terms a {
	color: var(--td-ink-3, #8A857C);
	text-decoration: none;
	border-bottom: 1px solid transparent;
	padding-bottom: 1px;
	transition: color 0.18s, border-color 0.18s;
}
.crumbs a:hover,
.crumbs .crumb-link:hover,
.crumbs .crumb-terms a:hover {
	color: var(--td-accent, #BE531B);
	border-bottom-color: var(--td-accent, #BE531B);
}
.crumbs .sep { color: var(--td-ink-3, #8A857C); }
.crumbs .crumb-cur {
	color: var(--td-accent, #BE531B);
	margin: 0;
	font-family: var(--td-mono, "Geist Mono", monospace);
	font-size: 10.5px;
	font-weight: 400;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	line-height: 1.5;
	max-width: 46ch;
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
}

/* ---- Kicker: desk term over a 34x2px accent bar (mock column kicker) ---- */
.art-kicker {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	gap: 8px;
	margin-bottom: 20px;
}
.art-kicker .art-kicker-desk,
.art-kicker .art-kicker-desk a {
	font-family: var(--td-mono, "Geist Mono", monospace);
	font-size: 12px;
	font-weight: 500;
	letter-spacing: 0.16em;
	text-transform: uppercase;
	color: var(--td-accent, #BE531B);
	text-decoration: none;
	margin: 0;
}
.art-kicker .kbar {
	display: block;
	width: 34px;
	height: 2px;
	background: var(--td-accent, #BE531B);
	flex: none;
}

/* ---- Headline ---- */
h1.art-hl {
	font-family: var(--td-serif, "Fraunces", serif);
	font-weight: 900;
	font-size: clamp(2rem, 4.4vw, 3.5rem);
	line-height: 1.04;
	letter-spacing: -0.022em;
	margin: 0 0 24px;
	text-wrap: balance;
	color: var(--td-ink, #1A1A1B);
}

/* ---- Dek (standfirst) ---- */
.art-dek {
	font-family: var(--td-sans, "Geist", sans-serif);
	font-size: 19px;
	line-height: 1.55;
	color: var(--td-ink-2, #5C5C5A);
	margin: 0 0 22px;
	max-width: 64ch;
	font-weight: 400;
}

/* ---- Byline apparatus (mock: italic By, mono desk, pipe bars, mono date) ---- */
.art-byline {
	gap: 14px;
	row-gap: 8px;
	padding: 0 0 26px;
	border-top: none;
	border-bottom: 1px solid #e7e3da;
	margin-bottom: 30px;
}
.art-byline .by-lead {
	font-family: var(--td-serif, "Fraunces", serif);
	font-style: italic;
	font-size: 15px;
	color: var(--td-ink-3, #8A857C);
	margin: 0;
	text-transform: none;
	letter-spacing: 0;
}
.art-byline .by-name,
.art-byline .by-name a {
	font-family: var(--td-mono, "Geist Mono", monospace);
	font-size: 12px;
	letter-spacing: 0.07em;
	text-transform: uppercase;
	color: var(--td-ink-2, #5C5C5A);
	text-decoration: none;
	border-bottom: 1px solid transparent;
	padding-bottom: 1px;
	transition: color 0.18s, border-color 0.18s;
}
.art-byline .by-name a:hover {
	color: var(--td-accent, #BE531B);
	border-bottom-color: var(--td-accent, #BE531B);
}
.art-byline .by-bar {
	display: inline-block;
	width: 1px;
	height: 14px;
	background: #d8d4cb;
	flex: none;
}
.art-byline .by-time,
.art-byline .wp-block-post-date {
	font-family: var(--td-mono, "Geist Mono", monospace);
	font-size: 12px;
	letter-spacing: 0.05em;
	text-transform: uppercase;
	color: var(--td-ink-3, #8A857C);
	margin: 0;
}

/* ---- Method chip ---- */
.art-byline .method-chip {
	display: inline-flex;
	align-items: center;
	gap: 0.4375rem;
	margin-left: auto;
	font-family: var(--td-mono, "Geist Mono", monospace);
	font-size: 11px;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: var(--td-ink, #1A1A1B);
	text-decoration: none;
	background: var(--td-cream, #F4F1EA);
	border: 1px solid #e7e3da;
	padding: 0.4375rem 0.6875rem;
	transition: border-color 0.18s, color 0.18s;
}
.art-byline .method-chip:hover {
	border-color: var(--td-accent, #BE531B);
	color: var(--td-accent, #BE531B);
}
.art-byline .method-chip .mc-dot {
	width: 5px;
	height: 5px;
	border-radius: 50%;
	background: var(--td-accent, #BE531B);
	flex: none;
}
@media (max-width: 560px) {
	.art-byline .method-chip { margin-left: 0; }
}

/* ---- Hero (full 1240px figure, imgbox placeholder, centred mono caption) ---- */
figure.art-hero { margin: 0 auto 14px; padding: 0; }
.art-hero .imgbox,
.art-hero .art-hero-img,
.art-hero img { width: 100%; }
.art-hero .imgbox { margin: 0; }
.art-hero-cap {
	font-family: var(--td-mono, "Geist Mono", monospace);
	font-size: 10.5px;
	letter-spacing: 0.05em;
	color: var(--td-ink-3, #8A857C);
	margin-top: 10px;
	text-align: center;
}

/* ---- Prose body (720px reading measure) ---- */
.prose { padding-top: 36px; }
.prose p {
	font-family: var(--td-sans, "Geist", sans-serif);
	font-size: 17px;
	line-height: 1.72;
	color: #33312e;
	margin: 0 0 22px;
}
/* Mock: the opening paragraph runs larger and in full ink. */
.prose > p:first-of-type {
	font-size: 19px;
	line-height: 1.6;
	color: var(--td-ink, #1A1A1B);
	margin: 0 0 24px;
	font-weight: 400;
}
.prose h2 {
	font-family: var(--td-serif, "Fraunces", serif);
	font-weight: 600;
	font-size: 1.62rem;
	line-height: 1.16;
	letter-spacing: -0.015em;
	margin: 1.9em 0 0.6em;
	color: var(--td-ink, #1A1A1B);
}
.prose h3 {
	font-family: var(--td-serif, "Fraunces", serif);
	font-weight: 600;
	font-size: 1.24rem;
	line-height: 1.2;
	letter-spacing: -0.01em;
	margin: 1.6em 0 0.45em;
	color: var(--td-ink, #1A1A1B);
}
.prose a:not(.method-chip):not(.wp-block-button__link) {
	color: var(--td-ink, #1A1A1B);
	text-decoration: underline;
	text-decoration-thickness: 1px;
	text-underline-offset: 2px;
	text-decoration-color: var(--td-accent, #BE531B);
}
.prose a:not(.method-chip):not(.wp-block-button__link):hover {
	color: var(--td-accent, #BE531B);
}
.prose ul,
.prose ol {
	font-family: var(--td-sans, "Geist", sans-serif);
	font-size: 17px;
	line-height: 1.72;
	color: #33312e;
	margin: 0 0 22px;
	padding-left: 1.25em;
}
.prose li { margin: 0 0 0.4em; }

/* ---- Pull-quote (editor places <blockquote> in post_content) ---- */
.prose blockquote,
.prose .wp-block-quote {
	margin: 36px 0;
	padding: 4px 0 4px 26px;
	border-left: 2px solid var(--td-accent, #BE531B);
	background: none;
	font-style: normal;
}
.prose blockquote p,
.prose .wp-block-quote p {
	font-family: var(--td-serif, "Fraunces", serif);
	font-weight: 600;
	font-size: 24px;
	line-height: 1.3;
	letter-spacing: -0.01em;
	color: var(--td-ink, #1A1A1B);
	margin: 0;
}
.prose blockquote cite,
.prose .wp-block-quote cite {
	display: block;
	margin-top: 12px;
	font-family: var(--td-mono, "Geist Mono", monospace);
	font-style: normal;
	font-size: 11px;
	letter-spacing: 0.06em;
	text-transform: uppercase;
	color: var(--td-ink-3, #8A857C);
}

/* ---- In-body data blocks (entity-card / mention-chart / sentiment-split /
 * method-box) are editor-placed in post_content. The prose container only
 * frames them: full/wide-aligned blocks break the 720px measure cleanly and
 * inherit the mock's figure rhythm; default-aligned ones stay on measure. */
.prose .wp-block-group.alignfull,
.prose figure.alignfull { margin-block: 30px; }
.prose .alignwide { margin-block: 30px; }
.prose > .td-entity-card,
.prose > .wp-block[class*="entity-card"],
.prose > .wp-block[class*="mention-chart"],
.prose > .wp-block[class*="sentiment-split"],
.prose > .wp-block[class*="method-box"] { margin-block: 30px; }
.prose figure { margin: 30px 0; }
.prose figure figcaption,
.prose .wp-block-image figcaption {
	font-family: var(--td-mono, "Geist Mono", monospace);
	font-size: 10px;
	letter-spacing: 0.04em;
	color: var(--td-ink-3, #8A857C);
	margin-top: 12px;
	text-align: left;
}

/* ---- Scatter divider ---- */
.scatter-wrap { max-width: 720px; margin: 0.625rem auto 0; }
.scatter-div {
	display: block;
	width: 100%;
	height: 30px;
	margin: 0;
	color: #e7e3da;
}

/* ---- Author bio (E-E-A-T) ---- */
.art-apparatus { max-width: 720px; margin-inline: auto; padding-top: 0.5rem; }
.authorbio {
	gap: 1.25rem;
	align-items: flex-start;
	border-top: 1px solid #e7e3da;
	border-bottom: 1px solid #e7e3da;
	padding: 1.75rem 0;
	margin-top: 1.125rem;
}
.authorbio .ab-av {
	width: 64px;
	height: 64px;
	flex: none;
	margin: 0;
}
.authorbio .ab-av.imgbox { border: 1px solid #e7e3da; }
.authorbio .ab-av img,
.authorbio .ab-av-img,
.authorbio .ab-av-img img {
	width: 64px;
	height: 64px;
	display: block;
	object-fit: cover;
}
.authorbio .ab-meta { flex: 1 1 auto; min-width: 0; }
.authorbio .ab-lab {
	display: block;
	font-family: var(--td-mono, "Geist Mono", monospace);
	font-size: 9px;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	color: var(--td-accent, #BE531B);
	margin-bottom: 0.5rem;
}
.authorbio .ab-name {
	font-family: var(--td-serif, "Fraunces", serif);
	font-weight: 600;
	font-size: 1.2rem;
	margin: 0 0 0.25rem;
	letter-spacing: -0.01em;
	color: var(--td-ink, #1A1A1B);
}
.authorbio .ab-name a { text-decoration: none; color: var(--td-ink, #1A1A1B); }
.authorbio .ab-name a:hover { color: var(--td-accent, #BE531B); }
.authorbio .ab-cred {
	font-family: var(--td-sans, "Geist", sans-serif);
	font-size: 0.98rem;
	line-height: 1.55;
	color: var(--td-ink-2, #5C5C5A);
	margin: 0 0 0.75rem;
	max-width: 60ch;
}
.authorbio .ab-links { gap: 0.5rem 0.65rem; align-items: center; }
.authorbio .ab-links .ab-link {
	font-family: var(--td-mono, "Geist Mono", monospace);
	font-size: 11px;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: var(--td-ink, #1A1A1B);
	text-decoration: none;
	border-bottom: 1px solid var(--td-accent, #BE531B);
	padding-bottom: 3px;
	transition: color 0.18s;
}
.authorbio .ab-links .ab-link:hover { color: var(--td-accent, #BE531B); }
.authorbio .ab-links .ab-dot { color: var(--td-ink-3, #8A857C); }

/* ---- Related (mock: "Related" mono label + flex hairline, 3-col grid) ---- */
.art-related-wrap {
	max-width: 1240px;
	margin: clamp(48px, 5vw, 70px) auto 0;
}
.related { padding: 0; }
.related-head {
	gap: 16px;
	border-bottom: none;
	padding-bottom: 0;
	margin: 0 0 30px;
	align-items: center;
}
.related-head .related-title {
	font-family: var(--td-mono, "Geist Mono", monospace);
	font-weight: 500;
	font-size: 12px;
	letter-spacing: 0.18em;
	text-transform: uppercase;
	margin: 0;
	color: var(--td-ink, #1A1A1B);
	flex: none;
}
.related-head .rh-rule {
	flex: 1;
	height: 1px;
	background: #e7e3da;
}
.related-grid {
	gap: clamp(24px, 2.6vw, 40px);
}
.related-grid .rel-fig {
	width: 100%;
	margin: 0 0 14px;
}
.related-grid .rel-fig.imgbox { border: 1px solid #e7e3da; }
.related-grid .rel-fig img,
.related-grid .rel-fig-img,
.related-grid .rel-fig-img img { width: 100%; display: block; }
.related-grid .rel-meta {
	gap: 0.45rem;
	font-family: var(--td-mono, "Geist Mono", monospace);
	font-size: 10px;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	color: var(--td-accent, #BE531B);
	margin-bottom: 8px;
}
.related-grid .rel-meta .rel-desk,
.related-grid .rel-meta .rel-desk a { color: var(--td-accent, #BE531B); text-decoration: none; }
.related-grid .rel-meta .rel-author,
.related-grid .rel-meta .rel-author a,
.related-grid .rel-meta .rel-sep { color: var(--td-ink-3, #8A857C); text-decoration: none; }
.related-grid .rel-hl {
	font-family: var(--td-serif, "Fraunces", serif);
	font-weight: 500;
	font-size: 1.1rem;
	line-height: 1.18;
	letter-spacing: -0.01em;
	margin: 0;
	color: var(--td-ink, #1A1A1B);
}
.related-grid .rel-hl a {
	color: var(--td-ink, #1A1A1B);
	text-decoration: none;
	transition: color 0.18s;
}
.related-grid .rel-hl a:hover { color: var(--td-accent, #BE531B); }
.related-grid .rel-stat {
	font-family: var(--td-mono, "Geist Mono", monospace);
	font-size: 10px;
	letter-spacing: 0.04em;
	color: var(--td-ink-3, #8A857C);
	margin-top: 9px;
	font-variant-numeric: tabular-nums;
}
.related-query .rel-empty {
	font-family: var(--td-mono, "Geist Mono", monospace);
	font-size: 0.75rem;
	color: var(--td-ink-2, #5C5C5A);
}
@media (max-width: 760px) {
	.related-grid { grid-template-columns: 1fr !important; gap: 1.5rem; }
}
@media (max-width: 600px) {
	.related-grid { grid-template-columns: 1fr 1fr !important; }
}

/* ============ PORTED: story-card pattern (homepage / desk / archive cards) ============ */
/* ==========================================================================
 * STORY CARD — 1:1 port of the design-lab Card component (Card.dc.html).
 * Four variants exposed as classes: .td-card--lead (isWide), .td-card--standard
 * (default, used by the news grid), .td-card--compact, .td-card--text.
 * Every font-size / colour / gap / letter-spacing / bar value below is copied
 * verbatim from the mock's inline styles (literal hex kept as token fallback).
 * Mock anatomy per card: image-top (16:10, square corners) → mono-caps kicker +
 * accent underline bar → Fraunces headline → byline row (italic "By" + mono
 * author + divider + date + comment count w/ chat-bubble svg + bookmark) → dek.
 * ======================================================================== */

/* New aspect helper for the card image-top (mock uses 16:10). */
.ar-16x10 { aspect-ratio: 16 / 10; }

/* ---- Card base (shared font + reset; Geist sans like the mock <article>) ---- */
.td-card { font-family: var(--td-sans, "Geist"), sans-serif; min-width: 0; }
.td-card .imgbox,
.td-card .td-card__figure { border-radius: 0; }  /* square corners, per mock */

/* kicker block: mono-caps desk + the 2px accent underline bar (Standard: 32px) */
.td-card__kicker {
	display: flex; flex-direction: column; gap: 6px; margin-bottom: 11px;
}
.td-card__kicker .td-card__desk,
.td-card__kicker .wp-block-post-terms {
	font-family: var(--td-mono, "Geist Mono"), monospace;
	font-size: 10.5px; font-weight: 500; letter-spacing: 0.16em;
	text-transform: uppercase; color: var(--td-accent, #BE531B); margin: 0;
}
.td-card__kicker .td-card__desk a,
.td-card__kicker .wp-block-post-terms a { color: inherit; text-decoration: none; }
.td-card__bar {
	display: block; width: 32px; height: 2px;
	background: var(--td-accent, #BE531B);
}

/* headline: Fraunces 600, Standard size clamp(20px,1.55vw,23px) */
.td-card .td-card__hl,
.td-card .sec-hl.td-card__hl {
	font-family: var(--td-serif, "Fraunces"), serif; font-weight: 600;
	font-size: clamp(20px, 1.55vw, 23px); line-height: 1.16;
	letter-spacing: -0.012em; margin: 0 0 12px; color: var(--td-ink, #1A1A1B);
	text-wrap: pretty;
}
.td-card .td-card__hl a { color: inherit; text-decoration: none; }
.td-card .td-card__hl a:hover { color: var(--td-accent, #BE531B); }

/* byline row: By + author + divider + date + comment count + bookmark.
 * Reuses .meta-row but overrides its colour/spacing to the mock's values. */
.td-card .td-card__byline {
	display: flex; align-items: center; gap: 11px; margin-bottom: 11px;
	flex-wrap: wrap; color: var(--td-ink-2, #5C5C5A); text-transform: none;
	letter-spacing: normal; font-size: inherit;
}
.td-card__by {
	font-family: var(--td-serif, "Fraunces"), serif; font-style: italic;
	font-size: 14px; color: var(--td-ink-3, #8A857C);
}
.td-card .td-card__author,
.td-card .td-card__author a {
	font-family: var(--td-mono, "Geist Mono"), monospace; font-size: 10.5px;
	letter-spacing: 0.07em; text-transform: uppercase;
	color: var(--td-ink-2, #5C5C5A); text-decoration: none; margin: 0;
}
.td-card__div { width: 1px; height: 11px; background: #d8d4cb; flex: none; }
.td-card .td-card__date {
	font-family: var(--td-mono, "Geist Mono"), monospace; font-size: 10.5px;
	letter-spacing: 0.05em; text-transform: uppercase;
	color: var(--td-ink-3, #8A857C); margin: 0;
}
.td-card__comments {
	display: inline-flex; align-items: center; gap: 4px;
	font-family: var(--td-mono, "Geist Mono"), monospace; font-size: 10.5px;
	color: var(--td-ink-3, #8A857C);
}
.td-card__comments svg { flex: none; }
.td-card__bookmark {
	display: inline-flex; align-items: center; margin-left: auto;
	color: var(--td-ink-3, #8A857C);
}
.td-card__bookmark svg { flex: none; }

/* dek: grey body copy, 14.5px / 1.55 (Standard) */
.td-card .td-card__dek,
.td-card .wp-block-post-excerpt.td-card__dek,
.td-card .td-card__dek p {
	font-family: var(--td-sans, "Geist"), sans-serif; font-size: 14.5px;
	line-height: 1.55; color: var(--td-ink-2, #5C5C5A); margin: 0;
}
.td-card .td-card__dek .wp-block-post-excerpt__more-text { display: none; }

/* ---- STANDARD variant (default markup) — vertical stack, image-top ------- */
.td-card--standard { display: flex; flex-direction: column; }
.td-card--standard .td-card__figure { margin-bottom: 16px; }

/* ---- LEAD / isWide variant — 1.05fr|1fr two-column, big Fraunces 900 ----- */
.td-card--lead {
	display: grid; grid-template-columns: 1.05fr 1fr;
	gap: clamp(20px, 3vw, 44px); align-items: center;
}
.td-card--lead .td-card__figure { margin: 0; }
.td-card--lead .td-card__kicker { gap: 7px; margin-bottom: 16px; }
.td-card--lead .td-card__kicker .td-card__desk,
.td-card--lead .td-card__kicker .wp-block-post-terms { font-size: 11.5px; }
.td-card--lead .td-card__bar { width: 34px; }
.td-card--lead .td-card__hl,
.td-card--lead .sec-hl.td-card__hl {
	font-weight: 900; font-size: clamp(30px, 3.4vw, 48px); line-height: 1.04;
	letter-spacing: -0.018em; margin: 0 0 18px; text-wrap: balance;
}
.td-card--lead .td-card__byline { gap: 13px; margin-bottom: 16px; }
.td-card--lead .td-card__author,
.td-card--lead .td-card__author a,
.td-card--lead .td-card__date,
.td-card--lead .td-card__comments { font-size: 11.5px; }
.td-card--lead .td-card__div { height: 13px; }
.td-card--lead .td-card__comments { gap: 5px; margin-left: 2px; }
.td-card--lead .td-card__bookmark { display: none; } /* lead has no bookmark in the mock */
.td-card--lead .td-card__dek,
.td-card--lead .td-card__dek p {
	font-size: clamp(15px, 1.15vw, 17px); line-height: 1.6; max-width: 52ch;
}
@media (max-width: 720px) {
	.td-card--lead { grid-template-columns: 1fr; gap: 20px; }
}

/* ---- COMPACT variant — 96px thumb | text, no byline/dek, author·date ----- */
.td-card--compact {
	display: grid; grid-template-columns: 96px 1fr; gap: 16px; align-items: start;
}
.td-card--compact .td-card__figure { margin: 0; }
.td-card--compact .td-card__kicker {
	flex-direction: row; align-items: center; gap: 8px; margin-bottom: 8px;
}
.td-card--compact .td-card__kicker .td-card__desk,
.td-card--compact .td-card__kicker .wp-block-post-terms {
	font-size: 10px; letter-spacing: 0.15em;
}
.td-card--compact .td-card__bar { width: 20px; }
.td-card--compact .td-card__hl,
.td-card--compact .sec-hl.td-card__hl {
	font-size: 17px; line-height: 1.22; letter-spacing: -0.01em; margin: 0 0 8px;
}
/* compact collapses the byline to a single author · date mono line */
.td-card--compact .td-card__byline {
	gap: 0; margin: 0;
	font-family: var(--td-mono, "Geist Mono"), monospace; font-size: 10px;
	letter-spacing: 0.06em; text-transform: uppercase; color: var(--td-ink-3, #8A857C);
}
.td-card--compact .td-card__by,
.td-card--compact .td-card__div,
.td-card--compact .td-card__comments,
.td-card--compact .td-card__bookmark,
.td-card--compact .td-card__dek { display: none; }
.td-card--compact .td-card__author,
.td-card--compact .td-card__author a,
.td-card--compact .td-card__date {
	font-size: 10px; color: var(--td-ink-3, #8A857C); letter-spacing: 0.06em;
}
.td-card--compact .td-card__author::after { content: " ·"; white-space: pre; }

/* ---- TEXT variant — 64px date | text, hairline top rule, no image -------- */
.td-card--text {
	display: grid; grid-template-columns: 64px 1fr; gap: 14px;
	align-items: baseline; padding: 14px 0;
	border-top: 1px solid var(--td-hair, #e7e3da);
}
.td-card--text .td-card__figure,
.td-card--text .td-card__kicker,
.td-card--text .td-card__dek { display: none; }
.td-card--text .td-card__date {
	font-family: var(--td-mono, "Geist Mono"), monospace; font-size: 11px;
	letter-spacing: 0.04em; color: var(--td-accent, #BE531B);
	padding-top: 2px; text-transform: none;
}
.td-card--text .td-card__hl,
.td-card--text .sec-hl.td-card__hl {
	font-size: 17px; line-height: 1.25; letter-spacing: -0.01em; margin: 0;
}
.td-card--text .td-card__byline {
	display: block; margin: 6px 0 0;
	font-family: var(--td-mono, "Geist Mono"), monospace; font-size: 10px;
	letter-spacing: 0.06em; text-transform: uppercase; color: var(--td-ink-3, #8A857C);
}
.td-card--text .td-card__by,
.td-card--text .td-card__div,
.td-card--text .td-card__comments,
.td-card--text .td-card__bookmark { display: none; }
.td-card--text .td-card__author,
.td-card--text .td-card__author a {
	font-size: 10px; color: var(--td-ink-3, #8A857C); letter-spacing: 0.06em;
}

/* ---- News-grid integration: the first card is the desk feature.
 * The pattern emits Standard markup; in the news grid the first cell is
 * stretched to feature scale. Reshape its image-top to the wider feature
 * crop and bump the headline, mirroring the mock's lead-of-section feel,
 * without disturbing the inner card anatomy. ------------------------------ */
.news-grid .wp-block-post:first-child .td-card__figure { aspect-ratio: 4 / 3; margin-bottom: 18px; }
.news-grid .wp-block-post:first-child .td-card__hl,
.news-grid .wp-block-post:first-child .sec-hl.td-card__hl {
	font-size: clamp(24px, 1.9vw, 30px); line-height: 1.1; font-weight: 600;
}
/* the new card supplies its own image frame via .imgbox; neutralise the older
 * news-grid rule that put aspect-ratio/background straight on the post image
 * (it now lives absolutely inside .imgbox and would otherwise double-frame). */
.news-grid .td-card .imgbox .wp-block-post-featured-image,
.story-card.td-card .imgbox .wp-block-post-featured-image {
	aspect-ratio: auto; background: transparent; margin: 0;
}

/* ============ PORTED: archive / author / search / 404 ============ */

/* ==========================================================================
 * MOCK-EXACT: ARCHIVE / AUTHOR / SEARCH / 404
 * 1:1 port of TheDistributed.dc.html lines 409-504. Values taken verbatim
 * from the mock's inline styles, moved into classes. Scoped under the
 * per-screen mock-* class so they never collide with the desk-* styles.
 * ========================================================================== */

/* ---- Shared mock container (mock: max-width 1240px container) ---- */
.mock-archive, .mock-author, .mock-404 {
	max-width: 1240px; margin: 0 auto;
	padding: clamp(36px, 5vw, 60px) clamp(20px, 4vw, 56px) 80px;
}
.mock-search {
	max-width: 840px; margin: 0 auto;
	padding: clamp(36px, 5vw, 60px) clamp(20px, 4vw, 56px) 80px;
}

/* ========================= ARCHIVE (mock 409-435) ========================= */
.mock-archive .arc-head {
	max-width: 760px; margin-bottom: clamp(30px, 4vw, 44px);
}
.mock-archive .arc-titlerow {
	display: flex; align-items: baseline; gap: 14px; margin-bottom: 16px; flex-wrap: wrap;
}
.mock-archive h1.arc-title, .mock-archive .arc-title {
	font-family: "Fraunces", var(--td-serif), serif; font-weight: 900;
	font-size: clamp(36px, 4.6vw, 60px); line-height: 1; letter-spacing: -0.022em;
	margin: 0; color: #1A1A1B; color: var(--td-ink, #1A1A1B);
}
.mock-archive .arc-count {
	font-family: "Geist Mono", var(--td-mono), monospace; font-size: 12px;
	letter-spacing: 0.06em; color: #8A857C; color: var(--td-ink-3, #8A857C);
	text-transform: none;
}
.mock-archive .arc-standfirst {
	font-family: "Geist", var(--td-sans), sans-serif; font-size: 16.5px;
	line-height: 1.6; color: #5C5C5A; color: var(--td-ink-2, #5C5C5A); margin: 0;
}

/* Category chip-filter row (mock 418-422; chip styles from mock JS 1422-1425) */
.mock-archive .arc-chips, .mock-archive ul.arc-chips {
	list-style: none; margin: 0 0 clamp(34px, 4vw, 44px); padding: 0;
	display: flex; gap: 9px; flex-wrap: wrap;
}
.mock-archive .arc-chips li { margin: 0; padding: 0; }
.mock-archive .td-desk-topics { display: flex; align-items: center; gap: 14px; flex-wrap: wrap; margin-top: -8px; }
.mock-archive .arc-topics-label { font-family: var(--td-mono,"Geist Mono"),monospace; font-size: 10px; letter-spacing: .1em; text-transform: uppercase; color: var(--td-ink-3,#8A857C); }
.mock-archive .td-desk-topics .arc-topics { margin: 0; }
.mock-archive .arc-topics a { font-size: 10.5px; color: var(--td-ink-3,#8A857C); }
.mock-archive .arc-topics a:hover { color: var(--td-ink,#1A1A1B); }
.mock-archive .arc-chips a, .mock-archive .arc-chips li > a {
	display: inline-block;
	font-family: "Geist Mono", var(--td-mono), monospace; font-size: 11px;
	letter-spacing: 0.06em; text-transform: uppercase; text-decoration: none;
	padding: 7px 13px; border: 1px solid #d8d2c8;
	color: #5C5C5A; color: var(--td-ink-2, #5C5C5A); background: transparent;
	transition: background .15s ease, color .15s ease, border-color .15s ease;
}
.mock-archive .arc-chips a:hover, .mock-archive .arc-chips li.current-cat > a {
	background: #1A1A1B; background: var(--td-ink, #1A1A1B);
	color: #FBFBF9; color: var(--td-canvas, #FBFBF9);
	border-color: #1A1A1B; border-color: var(--td-ink, #1A1A1B);
}
.mock-archive .arc-chips .wp-block-categories__post-count,
.mock-archive .arc-chips span { display: none; }

/* Card grid (mock 423-427) */
.mock-archive .arc-grid, .mock-author .arc-grid {
	display: grid; grid-template-columns: repeat(3, 1fr);
	gap: clamp(28px, 3vw, 44px) clamp(24px, 2.6vw, 40px);
	margin: 0; padding: 0; list-style: none;
}
@media (max-width: 900px) {
	.mock-archive .arc-grid, .mock-author .arc-grid { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 600px) {
	.mock-archive .arc-grid, .mock-author .arc-grid { grid-template-columns: 1fr; }
}
.mock-archive .arc-grid > .wp-block-post,
.mock-author .arc-grid > .wp-block-post {
	display: flex; flex-direction: column; margin: 0; padding: 0; border: 0;
}

/* Card image placeholder */
.mock-archive .arc-grid .imgbox, .mock-author .arc-grid .imgbox {
	margin: 0 0 16px;
}
.mock-archive .arc-grid .wp-block-post-featured-image,
.mock-author .arc-grid .wp-block-post-featured-image { margin: 0; }

/* Card text */
.mock-archive .arc-cat, .mock-author .arc-cat {
	font-family: "Geist Mono", var(--td-mono), monospace; font-size: 11px;
	letter-spacing: 0.1em; text-transform: uppercase;
	color: #BE531B; color: var(--td-accent, #BE531B); margin: 0 0 9px;
}
.mock-archive .arc-cat a, .mock-author .arc-cat a {
	color: #BE531B; color: var(--td-accent, #BE531B); text-decoration: none;
}
.mock-archive .arc-cardtitle, .mock-author .arc-cardtitle {
	font-family: "Fraunces", var(--td-serif), serif; font-weight: 600;
	font-size: 1.22rem; line-height: 1.16; letter-spacing: -0.01em;
	margin: 0 0 10px; color: #1A1A1B; color: var(--td-ink, #1A1A1B);
}
.mock-archive .arc-cardtitle a, .mock-author .arc-cardtitle a { color: inherit; text-decoration: none; }
.mock-archive .arc-cardtitle a:hover, .mock-author .arc-cardtitle a:hover { color: var(--td-accent, #BE531B); }
.mock-archive .arc-dek, .mock-author .arc-dek {
	font-family: "Geist", var(--td-sans), sans-serif; font-size: 0.95rem;
	line-height: 1.5; color: #5C5C5A; color: var(--td-ink-2, #5C5C5A); margin: 0 0 12px;
}
.mock-archive .arc-dek .wp-block-post-excerpt__more-link,
.mock-author .arc-dek .wp-block-post-excerpt__more-link { display: none; }
.mock-archive .arc-meta, .mock-author .arc-meta {
	font-family: "Geist Mono", var(--td-mono), monospace; font-size: 11px;
	letter-spacing: 0.08em; text-transform: uppercase;
	color: #8A857C; color: var(--td-ink-3, #8A857C);
	margin-top: auto; padding-top: 12px;
	display: flex; flex-wrap: wrap; gap: 6px 10px; align-items: baseline;
}
.mock-archive .arc-meta a, .mock-author .arc-meta a,
.mock-archive .arc-meta .wp-block-post-author, .mock-archive .arc-meta .wp-block-post-date,
.mock-author .arc-meta .wp-block-post-date {
	font: inherit; color: #8A857C; color: var(--td-ink-3, #8A857C); text-decoration: none;
}
.mock-archive .arc-meta .arc-sep, .mock-author .arc-meta .arc-sep {
	color: #d8d2c8; color: var(--td-hair, #e7e3da);
}

/* Pagination (mock 428-434) */
.mock-archive .arc-pagination, .mock-author .arc-pagination, .mock-search .arc-pagination {
	margin-top: clamp(44px, 5vw, 64px);
	font-family: "Geist Mono", var(--td-mono), monospace; font-size: 12px;
	border: 0; padding: 0;
}
.mock-archive .arc-pagination .wp-block-query-pagination,
.mock-author .arc-pagination .wp-block-query-pagination,
.mock-search .arc-pagination .wp-block-query-pagination {
	display: flex; justify-content: center; align-items: center; gap: 6px;
	font-family: inherit; font-size: inherit; letter-spacing: 0; text-transform: none;
}
.mock-archive .arc-pagination a, .mock-author .arc-pagination a, .mock-search .arc-pagination a,
.mock-archive .arc-pagination .wp-block-query-pagination-numbers a,
.mock-author .arc-pagination .wp-block-query-pagination-numbers a,
.mock-search .arc-pagination .wp-block-query-pagination-numbers a {
	padding: 8px 12px; color: #1A1A1B; color: var(--td-ink, #1A1A1B); text-decoration: none;
}
.mock-archive .arc-pagination .wp-block-query-pagination-numbers .current,
.mock-author .arc-pagination .wp-block-query-pagination-numbers .current,
.mock-search .arc-pagination .wp-block-query-pagination-numbers .current {
	padding: 8px 12px; color: #FBFBF9; color: var(--td-canvas, #FBFBF9);
	background: #1A1A1B; background: var(--td-ink, #1A1A1B);
}
.mock-archive .arc-pagination .wp-block-query-pagination-numbers .dots,
.mock-author .arc-pagination .wp-block-query-pagination-numbers .dots,
.mock-search .arc-pagination .wp-block-query-pagination-numbers .dots {
	padding: 8px 6px; color: #8A857C; color: var(--td-ink-3, #8A857C);
}
.mock-archive .arc-pagination .wp-block-query-pagination-next,
.mock-author .arc-pagination .wp-block-query-pagination-next,
.mock-search .arc-pagination .wp-block-query-pagination-next {
	color: #BE531B; color: var(--td-accent, #BE531B);
}
.mock-archive .arc-pagination a:hover, .mock-author .arc-pagination a:hover, .mock-search .arc-pagination a:hover {
	color: #BE531B; color: var(--td-accent, #BE531B);
}

/* Empty state */
.mock-archive .arc-empty, .mock-author .arc-empty, .mock-search .arc-empty {
	color: #5C5C5A; color: var(--td-ink-2, #5C5C5A); max-width: 56ch;
	font-family: "Geist", var(--td-sans), sans-serif;
}
.mock-archive .arc-empty p, .mock-author .arc-empty p, .mock-search .arc-empty p {
	margin: 0 0 14px; color: inherit; line-height: 1.6;
}
.mock-archive .arc-empty a, .mock-author .arc-empty a, .mock-search .arc-empty a {
	color: #1A1A1B; color: var(--td-ink, #1A1A1B);
	border-bottom: 1px solid #BE531B; border-bottom-color: var(--td-accent, #BE531B);
	text-decoration: none; padding-bottom: 2px;
}

/* ========================= AUTHOR (mock 440-464) ========================= */
.mock-author .auth-head {
	display: grid; grid-template-columns: 120px 1fr; gap: clamp(24px, 3vw, 40px);
	align-items: start; max-width: 880px; margin-bottom: clamp(40px, 5vw, 56px);
	padding-bottom: clamp(34px, 4vw, 44px);
	border-bottom: 1px solid #e7e3da; border-bottom-color: var(--td-hair, #e7e3da);
}
.mock-author .auth-avatar {
	width: 120px; aspect-ratio: 1 / 1; margin: 0;
	background: #F4F1EA; background: var(--td-cream, #F4F1EA);
	border: 1px solid #e7e3da; border-color: var(--td-hair, #e7e3da); overflow: hidden;
}
.mock-author .auth-avatar img { width: 100%; height: 100%; object-fit: cover; display: block; border-radius: 0; }
.mock-author .auth-bio { min-width: 0; }
.mock-author .auth-name, .mock-author h1.auth-name {
	font-family: "Fraunces", var(--td-serif), serif; font-weight: 900;
	font-size: clamp(32px, 4vw, 48px); line-height: 1.04; letter-spacing: -0.02em;
	margin: 0 0 8px; color: #1A1A1B; color: var(--td-ink, #1A1A1B);
}
.mock-author .auth-role {
	font-family: "Geist Mono", var(--td-mono), monospace; font-size: 11px;
	letter-spacing: 0.12em; text-transform: uppercase;
	color: #BE531B; color: var(--td-accent, #BE531B); margin-bottom: 18px;
}
.mock-author .auth-blurb {
	font-family: "Geist", var(--td-sans), sans-serif; font-size: 16.5px;
	line-height: 1.65; color: #5C5C5A; color: var(--td-ink-2, #5C5C5A);
	margin: 0 0 16px; max-width: 60ch;
}
.mock-author .auth-blurb:empty { display: none; }
.mock-author .auth-links {
	display: flex; gap: 18px; flex-wrap: wrap;
	font-family: "Geist Mono", var(--td-mono), monospace; font-size: 11px;
	letter-spacing: 0.08em; text-transform: uppercase;
}
.mock-author .auth-links a {
	color: #1A1A1B; color: var(--td-ink, #1A1A1B); text-decoration: none;
	border-bottom: 1px solid #BE531B; border-bottom-color: var(--td-accent, #BE531B);
	padding-bottom: 3px;
}
.mock-author .auth-links a:hover { color: #BE531B; color: var(--td-accent, #BE531B); }

/* "Latest by" rule head (mock 455-458) */
.mock-author .auth-railhead {
	display: flex; align-items: center; gap: 16px; margin: 0 0 30px;
}
.mock-author .auth-railhead-label {
	font-family: "Geist Mono", var(--td-mono), monospace; font-size: 12px;
	font-weight: 500; letter-spacing: 0.18em; text-transform: uppercase;
	color: #1A1A1B; color: var(--td-ink, #1A1A1B); white-space: nowrap;
}
.mock-author .auth-railhead-rule {
	flex: 1; height: 1px; background: #e7e3da; background: var(--td-hair, #e7e3da);
}
@media (max-width: 700px) { .mock-author .auth-head { grid-template-columns: 1fr; } }

/* ========================= SEARCH (mock 468-484) ========================= */
.mock-search .srch-band { margin-bottom: clamp(34px, 4vw, 46px); }
.mock-search .srch-label {
	font-family: "Geist Mono", var(--td-mono), monospace; font-size: 11px;
	letter-spacing: 0.12em; text-transform: uppercase;
	color: #8A857C; color: var(--td-ink-3, #8A857C); margin-bottom: 10px;
}
.mock-search .srch-field .wp-block-search__inside-wrapper {
	display: flex; align-items: center; gap: 12px;
	border: 0; border-bottom: 2px solid #1A1A1B; border-bottom-color: var(--td-ink, #1A1A1B);
	border-radius: 0; background: none; padding: 0 0 10px;
}
.mock-search .srch-field .wp-block-search__inside-wrapper::before {
	content: ""; flex: none; width: 20px; height: 20px;
	background: center / 20px no-repeat url("data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20width='24'%20height='24'%20viewBox='0%200%2024%2024'%20fill='none'%20stroke='%231A1A1B'%20stroke-width='1.6'%20stroke-linecap='round'%3E%3Ccircle%20cx='11'%20cy='11'%20r='7'/%3E%3Cpath%20d='M21%2021l-4.3-4.3'/%3E%3C/svg%3E");
}
.mock-search .srch-field .wp-block-search__input {
	flex: 1; border: 0; outline: none; background: none; box-shadow: none;
	font-family: "Fraunces", var(--td-serif), serif;
	font-size: clamp(22px, 3vw, 32px); font-weight: 600;
	color: #1A1A1B; color: var(--td-ink, #1A1A1B); letter-spacing: -0.01em;
	padding: 0; margin: 0;
}
.mock-search .srch-field .wp-block-search__input:focus { outline: none; box-shadow: none; }
.mock-search .srch-field .wp-block-search__input::placeholder { color: #8A857C; color: var(--td-ink-3, #8A857C); }

.mock-search .srch-count {
	font-family: "Geist Mono", var(--td-mono), monospace; font-size: 11px;
	letter-spacing: 0.1em; text-transform: uppercase;
	color: #8A857C; color: var(--td-ink-3, #8A857C); margin: 0 0 8px;
}
.mock-search .srch-results {
	display: flex; flex-direction: column; margin: 0; padding: 0; list-style: none;
}
.mock-search .srch-results > .wp-block-post {
	display: block; margin: 0; padding: 18px 0;
	border-top: 1px solid #e7e3da; border-top-color: var(--td-hair, #e7e3da);
}
.mock-search .srch-results > .wp-block-post:first-child { border-top: 0; padding-top: 4px; }
.mock-search .srch-cat {
	font-family: "Geist Mono", var(--td-mono), monospace; font-size: 10.5px;
	letter-spacing: 0.1em; text-transform: uppercase;
	color: #BE531B; color: var(--td-accent, #BE531B); margin: 0 0 6px;
}
.mock-search .srch-cat a { color: #BE531B; color: var(--td-accent, #BE531B); text-decoration: none; }
.mock-search .srch-title {
	font-family: "Fraunces", var(--td-serif), serif; font-weight: 600;
	font-size: clamp(18px, 2vw, 22px); line-height: 1.2; letter-spacing: -0.01em;
	margin: 0 0 6px; color: #1A1A1B; color: var(--td-ink, #1A1A1B);
}
.mock-search .srch-title a { color: inherit; text-decoration: none; }
.mock-search .srch-title a:hover { color: #BE531B; color: var(--td-accent, #BE531B); }
.mock-search .srch-meta {
	font-family: "Geist Mono", var(--td-mono), monospace; font-size: 11px;
	letter-spacing: 0.08em; text-transform: uppercase;
	color: #8A857C; color: var(--td-ink-3, #8A857C);
	display: flex; flex-wrap: wrap; gap: 6px 10px; align-items: baseline; margin: 0;
}
.mock-search .srch-meta a, .mock-search .srch-meta .wp-block-post-author,
.mock-search .srch-meta .wp-block-post-date {
	font: inherit; color: #8A857C; color: var(--td-ink-3, #8A857C); text-decoration: none;
}
.mock-search .srch-meta .srch-sep { color: #d8d2c8; color: var(--td-hair, #e7e3da); }
.mock-search .srch-foot {
	font-family: "Geist", var(--td-sans), sans-serif; font-size: 14px;
	color: #8A857C; color: var(--td-ink-3, #8A857C); margin-top: 28px;
}
.mock-search .srch-foot a {
	color: #1A1A1B; color: var(--td-ink, #1A1A1B);
	border-bottom: 1px solid #BE531B; border-bottom-color: var(--td-accent, #BE531B);
	text-decoration: none; padding-bottom: 2px;
}

/* ========================= 404 (mock 488-503) ========================= */
.mock-404 { padding: clamp(60px, 8vw, 120px) clamp(20px, 4vw, 56px); }
.mock-404 .nf-grid {
	display: grid; grid-template-columns: 1fr 1fr;
	gap: clamp(36px, 5vw, 72px); align-items: center;
}
.mock-404 .nf-text { min-width: 0; }
.mock-404 .nf-code {
	font-family: "Geist Mono", var(--td-mono), monospace; font-size: 12px;
	letter-spacing: 0.18em; text-transform: uppercase;
	color: #BE531B; color: var(--td-accent, #BE531B); margin-bottom: 18px;
}
.mock-404 .nf-title, .mock-404 h1.nf-title {
	font-family: "Fraunces", var(--td-serif), serif; font-weight: 900;
	font-size: clamp(40px, 6vw, 84px); line-height: 0.98; letter-spacing: -0.025em;
	margin: 0 0 20px; color: #1A1A1B; color: var(--td-ink, #1A1A1B);
}
.mock-404 .nf-dek {
	font-family: "Geist", var(--td-sans), sans-serif; font-size: 17px;
	line-height: 1.6; color: #5C5C5A; color: var(--td-ink-2, #5C5C5A);
	margin: 0 0 28px; max-width: 46ch;
}
.mock-404 .nf-actions { display: flex; gap: 10px; flex-wrap: wrap; }
.mock-404 .nf-btn {
	font-family: "Geist Mono", var(--td-mono), monospace; font-size: 12px;
	letter-spacing: 0.08em; text-transform: uppercase; text-decoration: none;
	padding: 12px 18px; display: inline-block;
}
.mock-404 .nf-btn-solid {
	color: #FBFBF9; color: var(--td-canvas, #FBFBF9);
	background: #1A1A1B; background: var(--td-ink, #1A1A1B);
}
.mock-404 .nf-btn-solid:hover { background: #BE531B; background: var(--td-accent, #BE531B); }
.mock-404 .nf-btn-ghost {
	color: #1A1A1B; color: var(--td-ink, #1A1A1B);
	border: 1px solid #cfc8ba; background: transparent;
}
.mock-404 .nf-btn-ghost:hover { border-color: #BE531B; border-color: var(--td-accent, #BE531B); color: #BE531B; color: var(--td-accent, #BE531B); }

/* Scatter graphic box (mock scatterStyle: square -> 4/3 placeholder) */
.mock-404 .nf-scatter {
	aspect-ratio: 4 / 3; width: 100%;
	background: #F4F1EA; background: var(--td-cream, #F4F1EA);
	border: 1px solid #e7e3da; border-color: var(--td-hair, #e7e3da);
	position: relative; overflow: hidden;
	background-image:
		radial-gradient(circle, #cfc8ba 1.4px, transparent 1.6px),
		radial-gradient(circle, #d8d2c8 1.1px, transparent 1.3px);
	background-size: 26px 26px, 19px 19px;
	background-position: 0 0, 9px 13px;
}
@media (max-width: 760px) {
	.mock-404 .nf-grid { grid-template-columns: 1fr; }
	.mock-404 .nf-scatter { display: none; }
}


/* ============ PORTED: Stock instrument page — /stocks/{ticker} (also /etfs/{ticker}, /macro/ ============ */
/* =====================================================================
 * Stock instrument page (entity-template.php) — 1:1 port of the design
 * mock's stock dashboard. Inline-rendered panels (sub-nav, masthead, grid,
 * section heads, mention bars, sentiment split, tables, sentinel, aside).
 * The price-panel / key-stats / sentiment-gauge BLOCKS carry their own CSS.
 * Values moved verbatim from the mock's inline styles into classes.
 * ===================================================================== */

/* --- Sub-nav strip ------------------------------------------------ */
.td-inst-subnav {
	border-bottom: 1px solid #ece8e0;
}
.td-inst-subnav-inner {
	max-width: 1180px;
	margin: 0 auto;
	padding: 11px clamp(24px, 5vw, 64px);
	display: flex;
	align-items: center;
	gap: clamp(14px, 2vw, 28px);
	flex-wrap: wrap;
	font-family: var(--td-mono, "Geist Mono", monospace);
	font-size: 11.5px;
	letter-spacing: 0.04em;
}
.td-inst-subnav-inner a {
	color: var(--td-ink-3, #8A857C);
	text-decoration: none;
}
.td-inst-subnav-inner a.is-on {
	color: var(--td-accent, #BE531B);
}
.td-inst-subnav-inner a:hover {
	color: var(--td-accent, #BE531B);
}

/* --- Main shell --------------------------------------------------- */
.td-inst-main {
	max-width: 1180px;
	margin: 0 auto;
	padding: clamp(30px, 4vw, 48px) clamp(24px, 5vw, 64px) 90px;
}

/* --- Breadcrumb --------------------------------------------------- */
.td-inst-crumbs {
	font-family: var(--td-mono, "Geist Mono", monospace);
	font-size: 10.5px;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	color: var(--td-ink-3, #8A857C);
	margin-bottom: clamp(18px, 2.6vw, 26px);
}
.td-inst-crumbs a {
	color: var(--td-ink-3, #8A857C);
	text-decoration: none;
}
.td-inst-crumbs a:hover {
	color: var(--td-accent, #BE531B);
}
.td-inst-crumb-cur {
	color: var(--td-accent, #BE531B);
}

/* --- Kicker (class · sector) + accent bar ------------------------- */
.td-inst-kicker {
	display: flex;
	flex-direction: column;
	gap: 7px;
	margin-bottom: 16px;
}
.td-inst-kicker-lab {
	font-family: var(--td-mono, "Geist Mono", monospace);
	font-size: 11.5px;
	font-weight: 500;
	letter-spacing: 0.16em;
	text-transform: uppercase;
	color: var(--td-accent, #BE531B);
}
.td-inst-kicker-bar {
	width: 34px;
	height: 2px;
	background: var(--td-accent, #BE531B);
}

/* --- Masthead ----------------------------------------------------- */
.td-inst-masthead {
	display: flex;
	align-items: flex-end;
	justify-content: space-between;
	gap: 24px;
	flex-wrap: wrap;
	padding-bottom: clamp(20px, 2.6vw, 28px);
	border-bottom: 2px solid var(--td-ink, #1A1A1B);
}
.td-inst-h1 {
	font-family: var(--td-serif, "Fraunces", serif);
	font-weight: 900;
	font-size: clamp(44px, 6.5vw, 78px);
	line-height: 0.9;
	letter-spacing: -0.03em;
	margin: 0;
	color: var(--td-ink, #1A1A1B);
}
.td-inst-mast-name {
	font-family: var(--td-sans, "Geist", sans-serif);
	font-size: clamp(15px, 1.5vw, 18px);
	color: var(--td-ink-2, #5C5C5A);
	margin-top: 11px;
}
.td-inst-mast-price {
	text-align: right;
}
.td-inst-price {
	font-family: var(--td-mono, "Geist Mono", monospace);
	font-size: clamp(26px, 3.4vw, 40px);
	font-weight: 500;
	line-height: 1;
	color: var(--td-ink, #1A1A1B);
}
.td-inst-chg {
	font-family: var(--td-mono, "Geist Mono", monospace);
	font-size: 14px;
	margin-top: 7px;
}
.td-inst-chg-mut {
	color: var(--td-ink-3, #8A857C);
}

/* --- Two-column grid ---------------------------------------------- */
.td-inst-grid {
	display: grid;
	grid-template-columns: 1fr 320px;
	gap: clamp(34px, 4vw, 60px);
	align-items: start;
	margin-top: clamp(30px, 3.6vw, 42px);
}
.td-inst-col {
	min-width: 0;
	display: flex;
	flex-direction: column;
	gap: clamp(34px, 4vw, 48px);
}
.td-inst-section {
	min-width: 0;
}

/* --- Section head (title · rule · meta) --------------------------- */
.td-inst-shead {
	display: flex;
	align-items: baseline;
	gap: 16px;
	margin-bottom: 18px;
}
.td-inst-shead-t {
	font-family: var(--td-mono, "Geist Mono", monospace);
	font-size: 11px;
	font-weight: 500;
	letter-spacing: 0.16em;
	text-transform: uppercase;
	color: var(--td-ink, #1A1A1B);
	white-space: nowrap;
}
.td-inst-shead-rule {
	flex: 1;
	height: 1px;
	background: var(--td-hair, #e7e3da);
}
.td-inst-shead-meta {
	font-family: var(--td-mono, "Geist Mono", monospace);
	font-size: 10px;
	letter-spacing: 0.05em;
	color: var(--td-ink-3, #8A857C);
	white-space: nowrap;
}

/* --- Mentions · 30d bar chart ------------------------------------- */
.td-inst-bars {
	width: 100%;
	height: 150px;
	display: block;
}
.td-inst-bars-x {
	display: flex;
	justify-content: space-between;
	font-family: var(--td-mono, "Geist Mono", monospace);
	font-size: 9.5px;
	letter-spacing: 0.04em;
	color: var(--td-ink-3, #8A857C);
	margin-top: 10px;
}

/* Interactive mention chart (td_render_mention_chart + mention-chart.js).
   Bars are sentiment-bucketed server-side (±0.05 — the rollup buckets);
   the peak bar renders full-strength, the rest translucent. Days with no
   classified sentiment keep the accent orange. */
.td-mchart {
	position: relative;
}
.td-mbar {
	fill: rgba(190, 83, 27, 0.30);
}
.td-mbar--bull {
	fill: rgba(27, 142, 74, 0.38);
}
.td-mbar--neu {
	fill: rgba(138, 133, 124, 0.35);
}
.td-mbar--bear {
	fill: rgba(199, 59, 59, 0.38);
}
.td-mbar--peak {
	fill: var(--td-accent, #BE531B);
}
.td-mbar--peak.td-mbar--bull {
	fill: var(--td-up, #1B8E4A);
}
.td-mbar--peak.td-mbar--neu {
	fill: var(--td-ink-3, #8A857C);
}
.td-mbar--peak.td-mbar--bear {
	fill: var(--td-down, #C73B3B);
}
.td-mbar:focus {
	outline: none;
	stroke: var(--td-ink-1, #1A1A1B);
	stroke-width: 1.5;
}
/* The shead row reserves the toggle's height up front, so JS unhiding the
   strip shifts nothing vertically (no CLS). */
.td-mchart .td-inst-shead {
	min-height: 24px;
	align-items: center;
}
.td-mchart-toggle {
	display: inline-flex;
	gap: 4px;
}
.td-mchart-toggle[hidden] {
	display: none;
}
.td-mchart-tbtn {
	font-family: var(--td-mono, "Geist Mono", monospace);
	font-size: 10px;
	letter-spacing: 0.05em;
	color: var(--td-ink-3, #8A857C);
	background: none;
	border: 1px solid var(--td-line, rgba(26, 26, 27, 0.14));
	border-radius: 3px;
	padding: 2px 8px;
	cursor: pointer;
}
.td-mchart-tbtn[aria-pressed="true"] {
	color: var(--td-paper, #FBF7F0);
	background: var(--td-ink-1, #1A1A1B);
	border-color: var(--td-ink-1, #1A1A1B);
}
.td-mchart-tip {
	position: absolute;
	z-index: 4;
	pointer-events: none;
	font-family: var(--td-mono, "Geist Mono", monospace);
	font-size: 10.5px;
	letter-spacing: 0.03em;
	white-space: nowrap;
	color: var(--td-paper, #FBF7F0);
	background: var(--td-ink-1, #1A1A1B);
	border-radius: 3px;
	padding: 4px 8px;
}
@media (prefers-reduced-motion: no-preference) {
	.td-mbar {
		transition: fill 120ms ease;
	}
}

/* --- Crowd sentiment: gauge + split ------------------------------- */
.td-inst-shead--tight {
	margin-bottom: 22px;
}
/* Section heads are a no-wrap flex row (title · rule · meta). On narrow screens
   a long mention count pushes the meta past the viewport (13px h-scroll on
   /stocks/*), so let the row wrap and drop the connecting rule on mobile. */
@media (max-width: 480px) {
	.td-inst-shead { flex-wrap: wrap; }
	.td-inst-shead-rule { display: none; }
	.td-inst-shead-meta { white-space: normal; }
}
.td-inst-sentwrap {
	display: grid;
	grid-template-columns: minmax(180px, 220px) 1fr;
	gap: clamp(26px, 4vw, 52px);
	align-items: center;
}
.td-inst-gauge {
	text-align: center;
}
.td-inst-split {
	min-width: 0;
}
.td-inst-split-row {
	margin-bottom: 15px;
}
.td-inst-split-top {
	display: flex;
	justify-content: space-between;
	align-items: baseline;
	margin-bottom: 7px;
}
.td-inst-split-k {
	font-family: var(--td-mono, "Geist Mono", monospace);
	font-size: 11px;
	letter-spacing: 0.06em;
	text-transform: uppercase;
	color: var(--td-ink, #1A1A1B);
}
.td-inst-split-pct {
	font-family: var(--td-mono, "Geist Mono", monospace);
	font-size: 13px;
	color: var(--td-ink-2, #5C5C5A);
}
.td-inst-split-track {
	position: relative;
	height: 8px;
	background: #ece8e0;
	overflow: hidden;
}
.td-inst-split-fill {
	position: absolute;
	top: 0;
	left: 0;
	height: 100%;
}
.td-inst-split-read {
	font-family: var(--td-sans, "Geist", sans-serif);
	font-size: 14px;
	line-height: 1.6;
	color: var(--td-ink-2, #5C5C5A);
	margin: 18px 0 0;
	max-width: 60ch;
}

/* ---- per-subreddit breakdown (entity pages, S1) ------------------------- */
.td-subs { display: flex; flex-direction: column; gap: 12px; }
.td-subs-row {
	display: grid;
	grid-template-columns: 148px minmax(80px, 1fr) 44px 130px 56px;
	gap: 14px;
	align-items: center;
}
.td-subs-name {
	font-family: var(--td-mono, "Geist Mono", monospace);
	font-size: 12px;
	letter-spacing: 0.02em;
	color: var(--td-ink, #1A1A1B);
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
}
.td-subs-track { position: relative; height: 8px; background: #ece8e0; overflow: hidden; }
.td-subs-fill { position: absolute; top: 0; left: 0; height: 100%; background: var(--td-accent, #BE531B); }
.td-subs-share {
	font-family: var(--td-mono, "Geist Mono", monospace);
	font-size: 12px;
	color: var(--td-ink, #1A1A1B);
	text-align: right;
}
.td-subs-m,
.td-subs-s {
	font-family: var(--td-mono, "Geist Mono", monospace);
	font-size: 12px;
	color: var(--td-ink-2, #5C5C5A);
	text-align: right;
	white-space: nowrap;
}
@media (max-width: 640px) {
	.td-subs-row { grid-template-columns: 110px 1fr 40px; }
	.td-subs-m, .td-subs-s { display: none; }
}

/* --- Tables (insiders + earnings) --------------------------------- */
.td-inst-table {
	font-family: var(--td-mono, "Geist Mono", monospace);
}
.td-inst-trow {
	display: grid;
	gap: 0 18px;
	align-items: center;
}
.td-inst-table--ins .td-inst-trow {
	grid-template-columns: auto 1fr auto auto auto;
}
.td-inst-table--earn .td-inst-trow {
	grid-template-columns: auto 1fr auto auto;
}
/* A22 — keep dense financial tables intact on phones: scroll the table
   internally rather than squish columns or push the page wider. */
@media (max-width: 560px) {
	.td-inst-table { overflow-x: auto; -webkit-overflow-scrolling: touch; }
	.td-inst-table--ins .td-inst-trow { grid-template-columns: auto minmax(110px, 1fr) auto auto auto; gap: 0 12px; min-width: 460px; }
	.td-inst-table--earn .td-inst-trow { grid-template-columns: auto minmax(110px, 1fr) auto auto; gap: 0 12px; min-width: 380px; }
	.td-inst-ins-name, .td-inst-ins-sh, .td-inst-ins-val { font-size: 12px; }
}
.td-inst-thead {
	font-size: 9px;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	color: var(--td-ink-3, #8A857C);
	padding-bottom: 10px;
	border-bottom: 1px solid var(--td-hair, #e7e3da);
}
.td-inst-table .td-r {
	text-align: right;
}
.td-inst-table--ins .td-inst-trow:not(.td-inst-thead) {
	padding: 12px 0;
	border-bottom: 1px solid #f0ece4;
}
.td-inst-ins-date {
	font-size: 12px;
	color: var(--td-ink-2, #5C5C5A);
}
.td-inst-ins-who {
	min-width: 0;
}
.td-inst-ins-name {
	display: block;
	font-family: var(--td-sans, "Geist", sans-serif);
	font-size: 14px;
	color: var(--td-ink, #1A1A1B);
}
.td-inst-ins-role {
	display: block;
	font-family: var(--td-sans, "Geist", sans-serif);
	font-size: 12px;
	color: var(--td-ink-3, #8A857C);
}
.td-inst-ins-type {
	font-size: 11.5px;
	letter-spacing: 0.06em;
}
.td-inst-ins-sh,
.td-inst-ins-val {
	font-size: 13px;
	color: var(--td-ink, #1A1A1B);
}
.td-inst-erow {
	padding: 12px 0;
	border-bottom: 1px solid #f0ece4;
	font-size: 13px;
	color: var(--td-ink, #1A1A1B);
}
.td-inst-ern-mut {
	color: var(--td-ink-2, #5C5C5A);
}
.td-inst-earn-next {
	font-family: var(--td-mono, "Geist Mono", monospace);
	font-size: 12.5px;
	color: var(--td-ink, #1A1A1B);
	margin: 14px 0 0;
}
.td-inst-earn-next-k {
	font-size: 10px;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	color: var(--td-accent, #BE531B);
	margin-right: 8px;
}

/* --- Per-entity FAQ (data-driven; backs the FAQPage JSON-LD) ------- */
.td-faq-item {
	padding: 14px 0;
	border-bottom: 1px solid #f0ece4;
}
.td-faq-q {
	font-family: var(--td-sans, "Geist", sans-serif);
	font-size: 15px;
	font-weight: 600;
	color: var(--td-ink, #1A1A1B);
	margin: 0 0 6px;
}
.td-faq-a {
	font-family: var(--td-sans, "Geist", sans-serif);
	font-size: 14.5px;
	line-height: 1.6;
	color: var(--td-ink-2, #5C5C5A);
	margin: 0;
	max-width: 70ch;
}
.td-faq-note {
	font-family: var(--td-sans, "Geist", sans-serif);
	font-size: 0.78rem;
	line-height: 1.5;
	color: var(--td-ink-3, #8A857C);
	margin: 14px 0 0;
	max-width: 64ch;
}

/* --- The Distributed Sentinel note -------------------------------- */
.td-inst-sentinel {
	background: var(--td-cream, #F4F1EA);
	padding: clamp(22px, 2.8vw, 32px);
}
.td-inst-sentinel-head {
	display: flex;
	align-items: center;
	gap: 10px;
	margin-bottom: 14px;
	flex-wrap: wrap;
}
.td-inst-sentinel-brand {
	display: inline-flex;
	align-items: center;
	gap: 7px;
	font-family: var(--td-mono, "Geist Mono", monospace);
	font-size: 10.5px;
	font-weight: 500;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	color: var(--td-accent, #BE531B);
}
.td-inst-sentinel-date {
	font-family: var(--td-mono, "Geist Mono", monospace);
	font-size: 10px;
	letter-spacing: 0.04em;
	color: var(--td-ink-3, #8A857C);
}
.td-inst-sentinel-h {
	font-family: var(--td-serif, "Fraunces", serif);
	font-weight: 600;
	font-size: clamp(21px, 2.3vw, 28px);
	line-height: 1.2;
	letter-spacing: -0.012em;
	margin: 0 0 13px;
	color: var(--td-ink, #1A1A1B);
	text-wrap: balance;
}
.td-inst-sentinel-body {
	font-family: var(--td-sans, "Geist", sans-serif);
	font-size: 15.5px;
	line-height: 1.62;
	color: var(--td-ink-2, #5C5C5A);
	margin: 0;
	max-width: 66ch;
}

/* --- Sticky aside ------------------------------------------------- */
.td-inst-aside {
	display: flex;
	flex-direction: column;
	gap: clamp(24px, 3vw, 30px);
	position: sticky;
	top: 64px;
}
.td-inst-aside-ruled {
	border-top: 1px solid var(--td-hair, #e7e3da);
	padding-top: 22px;
}
.td-inst-aside-lab {
	font-family: var(--td-mono, "Geist Mono", monospace);
	font-size: 10.5px;
	font-weight: 500;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	color: var(--td-ink, #1A1A1B);
	margin-bottom: 12px;
}
.td-inst-aside-ruled .td-inst-aside-lab {
	margin-bottom: 8px;
}
.td-inst-about {
	font-family: var(--td-sans, "Geist", sans-serif);
	font-size: 14px;
	line-height: 1.62;
	color: #33312e;
	margin: 0;
}
.td-inst-fact {
	display: flex;
	align-items: baseline;
	justify-content: space-between;
	gap: 12px;
	padding: 9px 0;
	border-top: 1px solid #f0ece4;
}
.td-inst-fact-k {
	font-family: var(--td-mono, "Geist Mono", monospace);
	font-size: 9px;
	letter-spacing: 0.06em;
	text-transform: uppercase;
	color: var(--td-ink-3, #8A857C);
}
.td-inst-fact-v {
	font-family: var(--td-mono, "Geist Mono", monospace);
	font-size: 13px;
	color: var(--td-ink, #1A1A1B);
	text-align: right;
}
.td-inst-peer {
	display: flex;
	justify-content: space-between;
	gap: 10px;
	padding: 9px 0;
	border-top: 1px solid #f0ece4;
	text-decoration: none;
}
.td-inst-peer-t {
	font-family: var(--td-mono, "Geist Mono", monospace);
	font-size: 12px;
	color: var(--td-ink, #1A1A1B);
}
.td-inst-peer-name {
	font-family: var(--td-sans, "Geist", sans-serif);
	font-size: 12px;
	color: var(--td-ink-3, #8A857C);
	text-align: right;
}
.td-inst-peer:hover .td-inst-peer-t {
	color: var(--td-accent, #BE531B);
}

/* --- Affiliate card ----------------------------------------------- */
.td-inst-affiliate {
	border: 1px solid var(--td-hair, #e7e3da);
	background: var(--td-cream, #F4F1EA);
	padding: 18px;
}
.td-inst-aff-top {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 8px;
	margin-bottom: 11px;
}
.td-inst-aff-tag {
	font-family: var(--td-mono, "Geist Mono", monospace);
	font-size: 9px;
	font-weight: 500;
	letter-spacing: 0.16em;
	text-transform: uppercase;
	color: var(--td-ink-3, #8A857C);
	border: 1px solid #d8d2c8;
	padding: 2px 7px;
}
.td-inst-aff-broker {
	font-family: var(--td-mono, "Geist Mono", monospace);
	font-size: 9px;
	letter-spacing: 0.06em;
	text-transform: uppercase;
	color: #a9a298;
}
.td-inst-aff-blurb {
	font-family: var(--td-sans, "Geist", sans-serif);
	font-size: 13.5px;
	line-height: 1.55;
	color: #33312e;
	margin: 0 0 14px;
}
.td-inst-aff-cta {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	font-family: var(--td-mono, "Geist Mono", monospace);
	font-size: 11px;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: var(--td-canvas, #FBFBF9);
	background: var(--td-ink, #1A1A1B);
	text-decoration: none;
	padding: 10px 16px;
}
.td-inst-aff-cta span {
	color: var(--td-accent, #BE531B);
}
.td-inst-aff-disc {
	font-family: var(--td-sans, "Geist", sans-serif);
	font-size: 10.5px;
	line-height: 1.5;
	color: var(--td-ink-3, #8A857C);
	margin: 13px 0 0;
}

/* --- Responsive collapse: single column on narrow viewports ------- */
@media (max-width: 880px) {
	.td-inst-grid {
		grid-template-columns: 1fr;
	}
	.td-inst-aside {
		position: static;
	}
	.td-inst-sentwrap {
		grid-template-columns: 1fr;
		gap: 28px;
	}
}
/* one placeholder per hero/related card (imgbox owns it) */
.art-hero::before, .related-grid .wp-block-post::before { content: none !important; }


/* ===== PORTED(2): entity-template.php — ETF (fund) and Macro instrument pages (stock bra ===== */
/* =====================================================================
 * ENTITY PAGE — ETF (fund) + MACRO term layouts.
 * The stock instrument styles already live in style.css; these add the two
 * type-specific layouts. Ported 1:1 from the mock's <sc-if isEtf> / <sc-if
 * isMacro> blocks (every value taken from the mock's inline styles). Tokens
 * with the mock's literal hex as fallback.
 * ===================================================================== */

/* --- Macro narrows the sub-nav to the 1100px macro measure ---------- */
.td-inst-subnav--macro .td-inst-subnav-inner { max-width: 1100px; }

/* =========================== ETF: top holdings ====================== */
.td-holds { font-family: var(--td-mono, "Geist Mono", monospace); }
.td-hold-head,
.td-hold-row {
	display: grid;
	grid-template-columns: auto 1.5fr 1fr auto auto;
	gap: 0 16px;
	align-items: center;
}
.td-hold-head {
	font-size: 9px;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	color: var(--td-ink-3, #8A857C);
	padding-bottom: 10px;
	border-bottom: 1px solid var(--td-hair, #e7e3da);
}
.td-hold-r { text-align: right; }
.td-hold-row {
	padding: 12px 0;
	border-bottom: 1px solid #f0ece4;
}
.td-hold-rank { font-size: 11px; color: #a9a298; }
.td-hold-id { min-width: 0; }
.td-hold-t {
	font-size: 13.5px;
	font-weight: 500;
	color: var(--td-ink, #1A1A1B);
}
.td-hold-name {
	font-family: var(--td-sans, "Geist", sans-serif);
	font-size: 12.5px;
	color: var(--td-ink-3, #8A857C);
}
.td-hold-bar {
	position: relative;
	height: 7px;
	background: #ece8e0;
	overflow: hidden;
	display: block;
}
.td-hold-barfill {
	position: absolute;
	left: 0;
	top: 0;
	height: 100%;
	background: var(--td-accent, #BE531B);
}
.td-hold-w { font-size: 13px; color: var(--td-ink, #1A1A1B); }
.td-hold-chg { font-size: 12.5px; }

/* ========================= ETF: sector exposure ===================== */
.td-exp-row { margin-bottom: 14px; }
.td-exp-top {
	display: flex;
	justify-content: space-between;
	align-items: baseline;
	margin-bottom: 7px;
}
.td-exp-k {
	font-family: var(--td-mono, "Geist Mono", monospace);
	font-size: 11px;
	letter-spacing: 0.04em;
	color: var(--td-ink, #1A1A1B);
}
.td-exp-pct {
	font-family: var(--td-mono, "Geist Mono", monospace);
	font-size: 13px;
	color: var(--td-ink-2, #5C5C5A);
}
.td-exp-track {
	position: relative;
	height: 8px;
	background: #ece8e0;
	overflow: hidden;
}
.td-exp-fill {
	position: absolute;
	left: 0;
	top: 0;
	height: 100%;
	background: var(--td-accent, #BE531B);
}

/* ========================= ETF: news & analysis ==================== */
.td-news-grid {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(230px, 1fr));
	gap: clamp(20px, 2.4vw, 32px);
}
.td-news-card {
	display: flex;
	flex-direction: column;
	text-decoration: none;
}
.td-news-fig {
	display: block;
	margin-bottom: 12px;
}
.td-news-kicker {
	font-family: var(--td-mono, "Geist Mono", monospace);
	font-size: 10px;
	font-weight: 500;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	color: var(--td-accent, #BE531B);
	margin-bottom: 8px;
}
.td-news-title {
	font-family: var(--td-serif, "Fraunces", serif);
	font-weight: 600;
	font-size: 17px;
	line-height: 1.25;
	letter-spacing: -0.01em;
	color: var(--td-ink, #1A1A1B);
}
.td-news-card:hover .td-news-title { color: var(--td-accent, #BE531B); }
.td-news-meta {
	font-family: var(--td-mono, "Geist Mono", monospace);
	font-size: 10px;
	letter-spacing: 0.04em;
	color: var(--td-ink-3, #8A857C);
	margin-top: 8px;
}

/* ============================ MACRO term page ====================== */
.td-macro-main {
	max-width: 1100px;
	margin: 0 auto;
	padding: clamp(32px, 4.5vw, 52px) clamp(24px, 5vw, 64px) 90px;
}
.td-macro-main .td-inst-crumbs { margin-bottom: clamp(20px, 3vw, 28px); }

.td-macro-head {
	max-width: 720px;
	margin-bottom: clamp(34px, 4vw, 48px);
}
.td-macro-title {
	font-family: var(--td-serif, "Fraunces", serif);
	font-weight: 900;
	font-size: clamp(40px, 5.4vw, 68px);
	line-height: 1;
	letter-spacing: -0.022em;
	margin: 0 0 16px;
	color: var(--td-ink, #1A1A1B);
}
.td-macro-dek {
	font-family: var(--td-sans, "Geist", sans-serif);
	font-size: 16.5px;
	line-height: 1.6;
	color: var(--td-ink-2, #5C5C5A);
	margin: 0;
}

/* section rule (title · hairline) — margins vary per section */
.td-macro-sr {
	display: flex;
	align-items: center;
	gap: 16px;
	margin: 0 0 22px;
}
.td-macro-sr--chart { margin: 0 0 8px; }
.td-macro-sr--table { margin: clamp(40px, 4.5vw, 60px) 0 8px; }
.td-macro-srt {
	font-family: var(--td-mono, "Geist Mono", monospace);
	font-size: 11px;
	font-weight: 500;
	letter-spacing: 0.16em;
	text-transform: uppercase;
	color: var(--td-ink, #1A1A1B);
}
.td-macro-srl {
	flex: 1;
	height: 1px;
	background: var(--td-hair, #e7e3da);
}
.td-macro-note {
	font-family: var(--td-sans, "Geist", sans-serif);
	font-size: 13.5px;
	color: var(--td-ink-3, #8A857C);
	margin: 0 0 18px;
}

/* latest prints */
.td-macro-prints {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: clamp(16px, 2vw, 24px);
	margin-bottom: clamp(40px, 4.5vw, 60px);
}
.td-macro-print {
	border: 1px solid var(--td-hair, #e7e3da);
	background: #fff;
	padding: 22px;
}
.td-macro-print-codewrap {
	display: flex;
	align-items: center;
	gap: 8px;
	margin-bottom: 18px;
}
.td-macro-print-code {
	font-family: var(--td-mono, "Geist Mono", monospace);
	font-size: 11px;
	letter-spacing: 0.06em;
	text-transform: uppercase;
	color: var(--td-ink, #1A1A1B);
	border: 1px solid #d8d2c8;
	padding: 4px 9px;
}
.td-macro-print-val {
	font-family: var(--td-mono, "Geist Mono", monospace);
	font-size: 38px;
	font-weight: 500;
	line-height: 1;
	color: var(--td-ink, #1A1A1B);
}
.td-macro-print-delta {
	font-family: var(--td-mono, "Geist Mono", monospace);
	font-size: 12px;
	margin-top: 9px;
}
.td-macro-print-desc {
	font-family: var(--td-sans, "Geist", sans-serif);
	font-size: 13.5px;
	line-height: 1.5;
	color: var(--td-ink-2, #5C5C5A);
	margin: 16px 0 0;
}

/* YoY chart */
.td-macro-chartbox {
	border: 1px solid var(--td-hair, #e7e3da);
	background: #fff;
	padding: clamp(20px, 2.4vw, 28px);
}
.td-macro-legend {
	display: flex;
	gap: 22px;
	flex-wrap: wrap;
	margin-bottom: 18px;
}
.td-macro-leg {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	font-family: var(--td-mono, "Geist Mono", monospace);
	font-size: 11px;
	letter-spacing: 0.04em;
	color: var(--td-ink-2, #5C5C5A);
}
.td-macro-leg-sw { width: 14px; height: 2px; }
.td-macro-svg {
	width: 100%;
	height: clamp(220px, 26vw, 320px);
	display: block;
}
.td-macro-xax {
	display: flex;
	justify-content: space-between;
	font-family: var(--td-mono, "Geist Mono", monospace);
	font-size: 9.5px;
	letter-spacing: 0.04em;
	color: var(--td-ink-3, #8A857C);
	margin-top: 12px;
}

/* recent prints table */
.td-macro-table {
	border: 1px solid var(--td-hair, #e7e3da);
	background: #fff;
}
.td-macro-thead,
.td-macro-trow {
	display: grid;
	grid-template-columns: 1.4fr 1fr 1fr 1fr;
	gap: 0 18px;
}
.td-macro-thead {
	font-family: var(--td-mono, "Geist Mono", monospace);
	font-size: 9px;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	color: var(--td-ink-3, #8A857C);
	padding: 14px 22px;
	border-bottom: 1px solid var(--td-hair, #e7e3da);
}
.td-macro-trow {
	align-items: center;
	padding: 13px 22px;
	border-bottom: 1px solid #f0ece4;
	font-family: var(--td-mono, "Geist Mono", monospace);
	font-size: 13px;
	color: var(--td-ink, #1A1A1B);
}
.td-macro-tr-r { text-align: right; }
.td-macro-mut { color: var(--td-ink-2, #5C5C5A); }

/* related macro chips + source */
.td-macro-related {
	display: flex;
	gap: 9px;
	flex-wrap: wrap;
	margin-top: clamp(36px, 4vw, 52px);
}
.td-macro-related-lab {
	font-family: var(--td-mono, "Geist Mono", monospace);
	font-size: 10px;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	color: var(--td-ink-3, #8A857C);
	align-self: center;
	margin-right: 6px;
}
.td-macro-chip {
	font-family: var(--td-mono, "Geist Mono", monospace);
	font-size: 11px;
	letter-spacing: 0.04em;
	text-decoration: none;
	padding: 7px 13px;
	border: 1px solid #d8d2c8;
	color: var(--td-ink-2, #5C5C5A);
}
.td-macro-chip:hover {
	color: var(--td-accent, #BE531B);
	border-color: var(--td-accent, #BE531B);
}
.td-macro-source {
	font-family: var(--td-sans, "Geist", sans-serif);
	font-size: 13px;
	color: var(--td-ink-3, #8A857C);
	margin: clamp(28px, 3vw, 36px) 0 0;
	border-top: 1px solid var(--td-hair, #e7e3da);
	padding-top: 20px;
}

/* macro responsive: stack the three prints on narrow viewports */
@media (max-width: 720px) {
	.td-macro-prints { grid-template-columns: 1fr; }
}
@media (max-width: 560px) {
	.td-macro-thead,
	.td-macro-trow { padding-left: 14px; padding-right: 14px; font-size: 11.5px; }
	.td-macro-print-val { font-size: 32px; }
}

/* ===== PORTED(2): Reference & editorial pages — Glossary, About, Methodology, Policies ( ===== */
/* ==========================================================================
 * REFERENCE & EDITORIAL PAGES — faithful 1:1 port of TheDistributed.dc mock.
 * Glossary (mock 818-889) · About (991-1042) · Methodology (1045-1112) ·
 * Policies (1115-1141). Classes live in templates/page-{slug}.html.
 * Tokens used with the mock's literal hex as fallback.
 * ======================================================================== */

/* ----------------------------------------------------------------- GLOSSARY */
.gloss-main {
	max-width: 980px;
	margin: 0 auto;
	padding: clamp(32px, 4.5vw, 52px) clamp(24px, 5vw, 64px) 90px;
}
.gloss-intro { max-width: 720px; margin-bottom: clamp(28px, 3.4vw, 38px); }
.gloss-title {
	font-family: var(--td-serif, "Fraunces", Georgia, serif);
	font-weight: 900; font-size: clamp(40px, 5.4vw, 68px);
	line-height: 1; letter-spacing: -0.022em;
	margin: 0 0 16px; color: var(--td-ink, #1A1A1B);
}
.gloss-lede {
	font-family: var(--td-sans, "Geist", system-ui, sans-serif);
	font-size: 16.5px; line-height: 1.6;
	color: var(--td-ink-2, #5C5C5A); margin: 0;
}
.gloss-search {
	display: flex; align-items: center; gap: 12px;
	border-bottom: 2px solid var(--td-ink, #1A1A1B);
	padding-bottom: 10px; margin-bottom: 22px;
}
.gloss-search svg { flex: none; }
.gloss-search input {
	flex: 1; border: none; outline: none; background: none; padding: 0;
	-webkit-appearance: none; appearance: none;
	font-family: var(--td-sans, "Geist", system-ui, sans-serif);
	font-size: clamp(18px, 2vw, 24px); color: var(--td-ink, #1A1A1B);
}
.gloss-search input::placeholder { color: var(--td-ink-3, #8A857C); }
.gloss-chips { display: flex; gap: 9px; flex-wrap: wrap; margin-bottom: 16px; }
.gl-chip {
	font-family: var(--td-mono, "Geist Mono", ui-monospace, monospace);
	font-size: 11px; letter-spacing: 0.06em; text-transform: uppercase;
	text-decoration: none; padding: 7px 13px; border: 1px solid #d8d2c8;
	color: var(--td-ink-2, #5C5C5A); background: transparent; cursor: pointer;
}
.gl-chip.is-on {
	background: var(--td-ink, #1A1A1B); color: var(--td-canvas, #FBFBF9);
	border-color: var(--td-ink, #1A1A1B);
}
.gloss-az {
	display: flex; flex-wrap: wrap; gap: 2px; align-items: center;
	border-top: 1px solid #e7e3da; border-bottom: 1px solid #e7e3da;
	padding: 8px 0; margin-bottom: clamp(16px, 2.2vw, 24px);
}
.gl-letter {
	font-family: var(--td-mono, "Geist Mono", ui-monospace, monospace);
	font-size: 12px; width: 27px; height: 27px;
	display: inline-flex; align-items: center; justify-content: center;
	border: none; background: transparent; padding: 0;
	color: var(--td-ink, #1A1A1B); cursor: pointer;
}
.gl-letter.gl-all {
	width: auto; padding: 0 10px; letter-spacing: 0.1em;
	text-transform: uppercase; font-size: 10.5px;
}
.gl-letter.is-on { background: var(--td-ink, #1A1A1B); color: var(--td-canvas, #FBFBF9); }
.gl-letter.is-off { color: #d2ccc1; cursor: default; }
.gloss-bar {
	display: flex; align-items: center; justify-content: space-between;
	gap: 16px; flex-wrap: wrap; margin-bottom: clamp(18px, 2.6vw, 28px);
}
.gloss-count {
	font-family: var(--td-mono, "Geist Mono", ui-monospace, monospace);
	font-size: 11px; letter-spacing: 0.08em; text-transform: uppercase;
	color: var(--td-ink-3, #8A857C);
}
.gloss-views { display: flex; gap: 6px; }
.gl-view {
	font-family: var(--td-mono, "Geist Mono", ui-monospace, monospace);
	font-size: 10.5px; letter-spacing: 0.1em; text-transform: uppercase;
	padding: 7px 14px; border: 1px solid #d8d2c8; background: transparent;
	color: var(--td-ink-2, #5C5C5A); cursor: pointer;
}
.gl-view.is-on {
	background: var(--td-ink, #1A1A1B); color: var(--td-canvas, #FBFBF9);
	border-color: var(--td-ink, #1A1A1B);
}
.gloss-empty {
	font-family: var(--td-serif, "Fraunces", Georgia, serif);
	font-style: italic; font-size: 20px; color: var(--td-ink-3, #8A857C);
	padding: 44px 0; border-top: 1px solid #e7e3da;
}
.gl-row {
	display: grid; grid-template-columns: 54px 1fr; gap: clamp(16px, 2vw, 28px);
	align-items: start; padding: clamp(18px, 2.2vw, 24px) 0;
	border-top: 1px solid #e7e3da;
}
.gl-initial {
	font-family: var(--td-serif, "Fraunces", Georgia, serif);
	font-weight: 900; font-size: 30px; line-height: 1;
	color: var(--td-accent, #BE531B);
}
.gl-def { min-width: 0; }
.gl-def-head { display: flex; align-items: baseline; gap: 12px; flex-wrap: wrap; margin-bottom: 8px; }
.gl-term-name {
	font-family: var(--td-serif, "Fraunces", Georgia, serif);
	font-weight: 600; font-size: clamp(20px, 2vw, 24px); line-height: 1.1;
	letter-spacing: -0.012em; margin: 0; color: var(--td-ink, #1A1A1B);
}
.gl-cat {
	font-family: var(--td-mono, "Geist Mono", ui-monospace, monospace);
	font-size: 9.5px; letter-spacing: 0.08em; text-transform: uppercase;
	color: var(--td-ink-3, #8A857C); border: 1px solid #e0dace; padding: 3px 8px;
}
.gl-def-body {
	font-family: var(--td-sans, "Geist", system-ui, sans-serif);
	font-size: 15.5px; line-height: 1.62; color: var(--td-ink-2, #5C5C5A);
	margin: 0; max-width: 70ch;
}

/* -------------------------------------------------------------------- ABOUT */
.about-main {
	max-width: 1100px; margin: 0 auto;
	padding: clamp(34px, 4.5vw, 56px) clamp(24px, 5vw, 64px) 90px;
}
.about-intro { max-width: 800px; margin-bottom: clamp(44px, 5.5vw, 72px); }
.about-eyebrow {
	font-family: var(--td-mono, "Geist Mono", ui-monospace, monospace);
	font-size: 11px; letter-spacing: 0.14em; text-transform: uppercase;
	color: var(--td-accent, #BE531B); margin-bottom: 16px;
}
.about-eyebrow span { color: var(--td-ink-3, #8A857C); }
.about-lede {
	font-family: var(--td-serif, "Fraunces", Georgia, serif);
	font-weight: 900; font-size: clamp(30px, 3.8vw, 52px); line-height: 1.08;
	letter-spacing: -0.02em; margin: 0; color: var(--td-ink, #1A1A1B);
	text-wrap: balance;
}
.about-mission {
	display: grid; grid-template-columns: 200px 1fr; gap: clamp(24px, 4vw, 56px);
	align-items: start; padding-top: clamp(24px, 3vw, 30px);
	border-top: 2px solid var(--td-ink, #1A1A1B); margin-bottom: clamp(48px, 6vw, 80px);
}
.about-mission-label {
	font-family: var(--td-mono, "Geist Mono", ui-monospace, monospace);
	font-size: 11px; font-weight: 500; letter-spacing: 0.16em;
	text-transform: uppercase; color: var(--td-ink, #1A1A1B);
}
.about-mission-body {
	font-family: var(--td-sans, "Geist", system-ui, sans-serif);
	font-size: clamp(18px, 1.7vw, 21px); line-height: 1.6; color: #33312e;
	margin: 0; max-width: 62ch;
}
.about-rule { display: flex; align-items: baseline; gap: 16px; margin-bottom: clamp(26px, 3vw, 36px); }
.about-rule-label {
	font-family: var(--td-mono, "Geist Mono", ui-monospace, monospace);
	font-size: 11px; font-weight: 500; letter-spacing: 0.16em;
	text-transform: uppercase; color: var(--td-ink, #1A1A1B); white-space: nowrap;
}
.about-rule-line { flex: 1; height: 1px; background: #e7e3da; }
.about-rule-note {
	font-family: var(--td-mono, "Geist Mono", ui-monospace, monospace);
	font-size: 10px; letter-spacing: 0.05em; color: var(--td-ink-3, #8A857C);
	white-space: nowrap;
}
.about-principles { margin-bottom: clamp(48px, 6vw, 82px); }
.about-prin-grid {
	display: grid; grid-template-columns: repeat(2, 1fr);
	gap: clamp(28px, 3.4vw, 48px) clamp(36px, 5vw, 72px);
}
.about-prin { padding-top: 20px; border-top: 1px solid #e7e3da; }
.about-prin-n {
	font-family: var(--td-mono, "Geist Mono", ui-monospace, monospace);
	font-size: 12px; letter-spacing: 0.08em; color: var(--td-accent, #BE531B);
	margin-bottom: 12px;
}
.about-prin-title {
	font-family: var(--td-serif, "Fraunces", Georgia, serif);
	font-weight: 600; font-size: clamp(20px, 2.1vw, 26px); line-height: 1.12;
	letter-spacing: -0.012em; margin: 0 0 12px; color: var(--td-ink, #1A1A1B);
}
.about-prin-body {
	font-family: var(--td-sans, "Geist", system-ui, sans-serif);
	font-size: 15px; line-height: 1.62; color: var(--td-ink-2, #5C5C5A);
	margin: 0; max-width: 46ch;
}
.about-team { margin-bottom: clamp(44px, 5vw, 72px); }
.about-team .about-rule { margin-bottom: clamp(26px, 3vw, 34px); }
.about-team-grid {
	display: grid; grid-template-columns: repeat(auto-fill, minmax(240px, 1fr));
	gap: clamp(28px, 3.4vw, 44px) clamp(28px, 3.4vw, 40px);
}
.about-photo { margin-bottom: 14px; }
.about-role {
	font-family: var(--td-mono, "Geist Mono", ui-monospace, monospace);
	font-size: 9.5px; letter-spacing: 0.12em; text-transform: uppercase;
	color: var(--td-accent, #BE531B); margin-bottom: 7px;
}
.about-name {
	font-family: var(--td-serif, "Fraunces", Georgia, serif);
	font-weight: 600; font-size: 19px; line-height: 1.12; letter-spacing: -0.01em;
	margin: 0 0 8px; color: var(--td-ink, #1A1A1B);
}
.about-bio {
	font-family: var(--td-sans, "Geist", system-ui, sans-serif);
	font-size: 13.5px; line-height: 1.55; color: var(--td-ink-2, #5C5C5A); margin: 0;
}
.about-cta {
	background: var(--td-dark, #1C1917); color: var(--td-canvas, #FBFBF9);
	padding: clamp(28px, 3.6vw, 44px);
	display: flex; align-items: center; justify-content: space-between;
	gap: 24px; flex-wrap: wrap;
}
.about-cta-copy { min-width: 0; }
.about-cta-eyebrow {
	font-family: var(--td-mono, "Geist Mono", ui-monospace, monospace);
	font-size: 10.5px; letter-spacing: 0.16em; text-transform: uppercase;
	color: var(--td-accent, #BE531B); margin-bottom: 10px;
}
.about-cta-title {
	font-family: var(--td-serif, "Fraunces", Georgia, serif);
	font-weight: 600; font-size: clamp(22px, 2.4vw, 30px); line-height: 1.12;
	letter-spacing: -0.012em; margin: 0; color: var(--td-canvas, #FBFBF9); max-width: 30ch;
}
.about-cta-link {
	flex: none; display: inline-flex; align-items: center; gap: 9px;
	font-family: var(--td-mono, "Geist Mono", ui-monospace, monospace);
	font-size: 11.5px; letter-spacing: 0.08em; text-transform: uppercase;
	color: var(--td-ink, #1A1A1B); background: var(--td-canvas, #FBFBF9);
	text-decoration: none; padding: 13px 22px;
}
.about-cta-link span { color: var(--td-accent, #BE531B); }

/* -------------------------------------------------------------- METHODOLOGY */
.method-main {
	max-width: 1100px; margin: 0 auto;
	padding: clamp(34px, 4.5vw, 56px) clamp(24px, 5vw, 64px) 90px;
}
.method-intro { max-width: 800px; margin-bottom: clamp(40px, 5vw, 64px); }
.method-eyebrow {
	font-family: var(--td-mono, "Geist Mono", ui-monospace, monospace);
	font-size: 11px; letter-spacing: 0.14em; text-transform: uppercase;
	color: var(--td-accent, #BE531B); margin-bottom: 16px;
}
.method-eyebrow span { color: var(--td-ink-3, #8A857C); }
.method-h1 {
	font-family: var(--td-serif, "Fraunces", Georgia, serif);
	font-weight: 900; font-size: clamp(38px, 5vw, 64px); line-height: 1.02;
	letter-spacing: -0.022em; margin: 0 0 18px; color: var(--td-ink, #1A1A1B);
}
.method-lede {
	font-family: var(--td-sans, "Geist", system-ui, sans-serif);
	font-size: clamp(16.5px, 1.6vw, 19px); line-height: 1.6;
	color: var(--td-ink-2, #5C5C5A); margin: 0; max-width: 64ch;
}
.method-rule { display: flex; align-items: baseline; gap: 16px; }
.method-pipeline .method-rule { margin-bottom: clamp(22px, 2.6vw, 30px); }
.method-sources .method-rule { margin-bottom: clamp(20px, 2.4vw, 28px); }
.method-rule-label {
	font-family: var(--td-mono, "Geist Mono", ui-monospace, monospace);
	font-size: 11px; font-weight: 500; letter-spacing: 0.16em;
	text-transform: uppercase; color: var(--td-ink, #1A1A1B); white-space: nowrap;
}
.method-rule-line { flex: 1; height: 1px; background: #e7e3da; }
.method-rule-note {
	font-family: var(--td-mono, "Geist Mono", ui-monospace, monospace);
	font-size: 10px; letter-spacing: 0.05em; color: var(--td-ink-3, #8A857C);
	white-space: nowrap;
}
.method-pipeline { margin-bottom: clamp(48px, 6vw, 80px); }
.method-step {
	display: grid; grid-template-columns: 64px 1fr; gap: clamp(18px, 2.4vw, 32px);
	align-items: start; padding: clamp(18px, 2.2vw, 24px) 0; border-top: 1px solid #e7e3da;
}
.method-step-n {
	font-family: var(--td-serif, "Fraunces", Georgia, serif);
	font-weight: 900; font-size: 32px; line-height: 1; color: var(--td-accent, #BE531B);
}
.method-step-body { min-width: 0; max-width: 62ch; }
.method-step-title {
	font-family: var(--td-serif, "Fraunces", Georgia, serif);
	font-weight: 600; font-size: clamp(19px, 2vw, 24px); line-height: 1.12;
	letter-spacing: -0.012em; margin: 0 0 8px; color: var(--td-ink, #1A1A1B);
}
.method-step-copy {
	font-family: var(--td-sans, "Geist", system-ui, sans-serif);
	font-size: 15.5px; line-height: 1.6; color: var(--td-ink-2, #5C5C5A); margin: 0;
}
.method-scale {
	background: var(--td-cream, #F4F1EA); padding: clamp(26px, 3.4vw, 40px);
	margin-bottom: clamp(48px, 6vw, 80px);
	display: grid; grid-template-columns: 1fr 1fr; gap: clamp(28px, 4vw, 56px);
	align-items: center;
}
.method-scale-eyebrow {
	font-family: var(--td-mono, "Geist Mono", ui-monospace, monospace);
	font-size: 11px; font-weight: 500; letter-spacing: 0.16em;
	text-transform: uppercase; color: var(--td-accent, #BE531B); margin-bottom: 14px;
}
.method-scale-body {
	font-family: var(--td-sans, "Geist", system-ui, sans-serif);
	font-size: 15.5px; line-height: 1.62; color: #33312e; margin: 0; max-width: 52ch;
}
.method-scale-bar { display: flex; height: 12px; overflow: hidden; margin-bottom: 8px; }
.msb-bear { flex: 35; background: var(--td-down, #C73B3B); }
.msb-neu { flex: 30; background: #C99A2E; }
.msb-bull { flex: 35; background: var(--td-up, #1B8E4A); }
.method-scale-ticks {
	display: flex; justify-content: space-between;
	font-family: var(--td-mono, "Geist Mono", ui-monospace, monospace);
	font-size: 10px; letter-spacing: 0.04em; color: var(--td-ink-3, #8A857C);
	margin-bottom: 22px;
}
.method-scale-row {
	display: flex; align-items: center; justify-content: space-between;
	gap: 12px; padding: 9px 0; border-top: 1px solid #e3ddd1;
}
.method-scale-row .msr-left { display: flex; align-items: center; gap: 10px; }
.msr-dot { width: 9px; height: 9px; border-radius: 50%; }
.msr-label {
	font-family: var(--td-mono, "Geist Mono", ui-monospace, monospace);
	font-size: 12px; letter-spacing: 0.04em; color: var(--td-ink, #1A1A1B);
}
.msr-range {
	font-family: var(--td-mono, "Geist Mono", ui-monospace, monospace);
	font-size: 12px; color: var(--td-ink-2, #5C5C5A);
}
.method-sources { margin-bottom: clamp(44px, 5vw, 72px); }
.method-src-head {
	display: grid; grid-template-columns: 140px 1fr 130px; gap: 0 clamp(16px, 2vw, 28px);
	font-family: var(--td-mono, "Geist Mono", ui-monospace, monospace);
	font-size: 9px; letter-spacing: 0.1em; text-transform: uppercase;
	color: var(--td-ink-3, #8A857C); padding-bottom: 10px; border-bottom: 1px solid #e7e3da;
}
.method-src-head .msh-right { text-align: right; }
.method-src-row {
	display: grid; grid-template-columns: 140px 1fr 130px; gap: 0 clamp(16px, 2vw, 28px);
	align-items: baseline; padding: 14px 0; border-bottom: 1px solid #f0ece4;
}
.msr-src {
	font-family: var(--td-mono, "Geist Mono", ui-monospace, monospace);
	font-size: 13.5px; color: var(--td-ink, #1A1A1B);
}
.msr-use {
	font-family: var(--td-sans, "Geist", system-ui, sans-serif);
	font-size: 14.5px; color: var(--td-ink-2, #5C5C5A);
}
.msr-cadence {
	font-family: var(--td-mono, "Geist Mono", ui-monospace, monospace);
	font-size: 12px; color: var(--td-ink-3, #8A857C); text-align: right;
}
.method-trust {
	border-top: 2px solid var(--td-ink, #1A1A1B); padding-top: clamp(26px, 3vw, 34px);
	display: flex; align-items: flex-end; justify-content: space-between;
	gap: 24px; flex-wrap: wrap;
}
.method-trust-copy { min-width: 0; }
.method-trust-h {
	font-family: var(--td-serif, "Fraunces", Georgia, serif);
	font-style: italic; font-weight: 600; font-size: clamp(22px, 2.6vw, 32px);
	line-height: 1.1; letter-spacing: -0.012em; margin: 0 0 10px; color: var(--td-ink, #1A1A1B);
}
.method-trust-body {
	font-family: var(--td-sans, "Geist", system-ui, sans-serif);
	font-size: 14.5px; line-height: 1.6; color: var(--td-ink-2, #5C5C5A); margin: 0; max-width: 56ch;
}
.method-trust-links { display: flex; gap: 10px; flex-wrap: wrap; flex: none; }
.method-trust-link {
	font-family: var(--td-mono, "Geist Mono", ui-monospace, monospace);
	font-size: 11px; letter-spacing: 0.08em; text-transform: uppercase;
	color: var(--td-ink, #1A1A1B); text-decoration: none;
	border: 1px solid #d8d2c8; padding: 11px 16px;
}

/* ----------------------------------------------------------------- POLICIES */
.policy-main {
	max-width: 1100px; margin: 0 auto;
	padding: clamp(32px, 4.5vw, 52px) clamp(24px, 5vw, 64px) 90px;
}
.policy-intro { max-width: 720px; margin-bottom: clamp(30px, 3.6vw, 42px); }
.policy-eyebrow {
	font-family: var(--td-mono, "Geist Mono", ui-monospace, monospace);
	font-size: 11px; letter-spacing: 0.14em; text-transform: uppercase;
	color: var(--td-accent, #BE531B); margin-bottom: 14px;
}
.policy-h1 {
	font-family: var(--td-serif, "Fraunces", Georgia, serif);
	font-weight: 900; font-size: clamp(38px, 5vw, 62px); line-height: 1.02;
	letter-spacing: -0.022em; margin: 0; color: var(--td-ink, #1A1A1B);
}
.policy-grid {
	display: grid; grid-template-columns: 248px 1fr; gap: clamp(28px, 4vw, 60px);
	align-items: start;
}
.policy-nav { position: sticky; top: 64px; border-top: 1px solid #e7e3da; }
.policy-nav-item {
	display: block; width: 100%; text-align: left;
	font-family: var(--td-sans, "Geist", system-ui, sans-serif);
	font-size: 14.5px; padding: 11px 14px; border: none;
	border-left: 2px solid transparent; background: transparent;
	color: var(--td-ink-2, #5C5C5A); cursor: pointer;
}
.policy-nav-item.is-on {
	border-left: 2px solid var(--td-accent, #BE531B); background: #FBF3EC;
	color: var(--td-ink, #1A1A1B);
}
.policy-article { max-width: 680px; }
.policy-updated {
	font-family: var(--td-mono, "Geist Mono", ui-monospace, monospace);
	font-size: 11px; letter-spacing: 0.08em; text-transform: uppercase;
	color: var(--td-ink-3, #8A857C); margin-bottom: 14px;
}
.policy-title {
	font-family: var(--td-serif, "Fraunces", Georgia, serif);
	font-weight: 900; font-size: clamp(28px, 3.4vw, 44px); line-height: 1.04;
	letter-spacing: -0.02em; margin: 0 0 24px; color: var(--td-ink, #1A1A1B);
}
.policy-body { border-top: 2px solid var(--td-ink, #1A1A1B); padding-top: 24px; }
.policy-para {
	font-family: var(--td-sans, "Geist", system-ui, sans-serif);
	font-size: 16.5px; line-height: 1.7; color: #33312e; margin: 0 0 20px; max-width: 64ch;
}
.policy-close {
	font-family: var(--td-serif, "Fraunces", Georgia, serif);
	font-style: italic; font-size: 14px; color: var(--td-ink-3, #8A857C);
	margin: clamp(28px, 3vw, 38px) 0 0; border-top: 1px solid #e7e3da; padding-top: 20px;
}

/* ----------------------------------------------------- responsive stacking */
@media (max-width: 720px) {
	.about-mission,
	.about-prin-grid,
	.method-scale,
	.policy-grid { grid-template-columns: 1fr; }
	.policy-nav { position: static; }
}
@media (max-width: 560px) {
	.method-src-head,
	.method-src-row { grid-template-columns: 96px 1fr 84px; gap: 0 12px; }
}

/* ===== PORTED(2): author + search + 404 (templates/author.html, templates/search.html, t ===== */
/* ============================================================
 * AUTHOR / SEARCH / 404 — 1:1 port (mock lines 440-504)
 * Self-contained, scoped to .mock-author / .mock-search / .mock-404.
 * ============================================================ */

/* ---- Page containers (mock main wrappers) ---- */
.mock-author { max-width: 1240px; margin: 0 auto; padding: clamp(36px,5vw,60px) clamp(20px,4vw,56px) 80px; }
.mock-search { max-width: 840px;  margin: 0 auto; padding: clamp(36px,5vw,60px) clamp(20px,4vw,56px) 80px; }
.mock-404    { max-width: 1240px; margin: 0 auto; padding: clamp(60px,8vw,120px) clamp(20px,4vw,56px); }

/* ========================= AUTHOR (mock 440-464) ========================= */
.mock-author .auth-head {
	display: grid; grid-template-columns: 120px 1fr; gap: clamp(24px,3vw,40px);
	align-items: start; max-width: 880px; margin-bottom: clamp(40px,5vw,56px);
	padding-bottom: clamp(34px,4vw,44px);
	border-bottom: 1px solid #e7e3da; border-bottom-color: var(--td-hair, #e7e3da);
}
.mock-author .auth-avatar {
	width: 120px; aspect-ratio: 1 / 1; margin: 0;
	background: #F4F1EA; background: var(--td-cream, #F4F1EA);
	border: 1px solid #e7e3da; border-color: var(--td-hair, #e7e3da); overflow: hidden;
}
.mock-author .auth-avatar img { width: 100%; height: 100%; object-fit: cover; display: block; border-radius: 0; }
.mock-author .auth-bio { min-width: 0; }
.mock-author .auth-name, .mock-author h1.auth-name {
	font-family: "Fraunces", var(--td-serif), serif; font-weight: 900;
	font-size: clamp(32px,4vw,48px); line-height: 1.04; letter-spacing: -0.02em;
	margin: 0 0 8px; color: #1A1A1B; color: var(--td-ink, #1A1A1B);
}
.mock-author .auth-role {
	font-family: "Geist Mono", var(--td-mono), monospace; font-size: 11px;
	letter-spacing: 0.12em; text-transform: uppercase;
	color: #BE531B; color: var(--td-accent, #BE531B); margin-bottom: 18px;
}
.mock-author .auth-blurb {
	font-family: "Geist", var(--td-sans), sans-serif; font-size: 16.5px;
	line-height: 1.65; color: #5C5C5A; color: var(--td-ink-2, #5C5C5A);
	margin: 0 0 16px; max-width: 60ch;
}
.mock-author .auth-blurb:empty { display: none; }
.mock-author .auth-links {
	display: flex; gap: 18px; flex-wrap: wrap;
	font-family: "Geist Mono", var(--td-mono), monospace; font-size: 11px;
	letter-spacing: 0.08em; text-transform: uppercase;
}
.mock-author .auth-links a {
	color: #1A1A1B; color: var(--td-ink, #1A1A1B); text-decoration: none;
	border-bottom: 1px solid #BE531B; border-bottom-color: var(--td-accent, #BE531B);
	padding-bottom: 3px;
}
.mock-author .auth-links a:hover { color: #BE531B; color: var(--td-accent, #BE531B); }

/* "Latest by" rule head (mock 455-458) */
.mock-author .auth-railhead { display: flex; align-items: center; gap: 16px; margin: 0 0 30px; }
.mock-author .auth-railhead-label {
	font-family: "Geist Mono", var(--td-mono), monospace; font-size: 12px;
	font-weight: 500; letter-spacing: 0.18em; text-transform: uppercase;
	color: #1A1A1B; color: var(--td-ink, #1A1A1B); white-space: nowrap;
}
.mock-author .auth-railhead-rule { flex: 1; height: 1px; background: #e7e3da; background: var(--td-hair, #e7e3da); }
@media (max-width: 700px) { .mock-author .auth-head { grid-template-columns: 1fr; } }

/* ---- Author article grid (mock 459, shares the archive Card) ---- */
.mock-author .arc-grid {
	display: grid; grid-template-columns: repeat(3, 1fr);
	gap: clamp(28px,3vw,44px) clamp(24px,2.6vw,40px);
	margin: 0; padding: 0; list-style: none;
}
@media (max-width: 900px) { .mock-author .arc-grid { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 600px) { .mock-author .arc-grid { grid-template-columns: 1fr; } }
.mock-author .arc-grid > .wp-block-post { display: flex; flex-direction: column; margin: 0; padding: 0; border: 0; }
.mock-author .arc-grid .imgbox { margin: 0 0 16px; }
.mock-author .arc-grid .wp-block-post-featured-image { margin: 0; }
.mock-author .arc-cat {
	font-family: "Geist Mono", var(--td-mono), monospace; font-size: 11px;
	letter-spacing: 0.1em; text-transform: uppercase;
	color: #BE531B; color: var(--td-accent, #BE531B); margin: 0 0 9px;
}
.mock-author .arc-cat a { color: #BE531B; color: var(--td-accent, #BE531B); text-decoration: none; }
.mock-author .arc-cardtitle {
	font-family: "Fraunces", var(--td-serif), serif; font-weight: 600;
	font-size: 1.22rem; line-height: 1.16; letter-spacing: -0.01em;
	margin: 0 0 10px; color: #1A1A1B; color: var(--td-ink, #1A1A1B);
}
.mock-author .arc-cardtitle a { color: inherit; text-decoration: none; }
.mock-author .arc-cardtitle a:hover { color: #BE531B; color: var(--td-accent, #BE531B); }
.mock-author .arc-dek {
	font-family: "Geist", var(--td-sans), sans-serif; font-size: 0.95rem;
	line-height: 1.5; color: #5C5C5A; color: var(--td-ink-2, #5C5C5A); margin: 0 0 12px;
}
.mock-author .arc-dek .wp-block-post-excerpt__more-link { display: none; }
.mock-author .arc-meta {
	font-family: "Geist Mono", var(--td-mono), monospace; font-size: 11px;
	letter-spacing: 0.08em; text-transform: uppercase;
	color: #8A857C; color: var(--td-ink-3, #8A857C);
	margin-top: auto; padding-top: 12px;
	display: flex; flex-wrap: wrap; gap: 6px 10px; align-items: baseline;
}
.mock-author .arc-meta a, .mock-author .arc-meta .wp-block-post-date {
	font: inherit; color: #8A857C; color: var(--td-ink-3, #8A857C); text-decoration: none;
}

/* ========================= SEARCH (mock 468-484) ========================= */
.mock-search .srch-band { margin-bottom: clamp(34px,4vw,46px); }
.mock-search .srch-label {
	font-family: "Geist Mono", var(--td-mono), monospace; font-size: 11px;
	letter-spacing: 0.12em; text-transform: uppercase;
	color: #8A857C; color: var(--td-ink-3, #8A857C); margin-bottom: 10px;
}
.mock-search .srch-field .wp-block-search__inside-wrapper {
	display: flex; align-items: center; gap: 12px;
	border: 0; border-bottom: 2px solid #1A1A1B; border-bottom-color: var(--td-ink, #1A1A1B);
	border-radius: 0; background: none; padding: 0 0 10px;
}
.mock-search .srch-field .wp-block-search__inside-wrapper::before {
	content: ""; flex: none; width: 20px; height: 20px;
	background: center / 20px no-repeat url("data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20width='24'%20height='24'%20viewBox='0%200%2024%2024'%20fill='none'%20stroke='%231A1A1B'%20stroke-width='1.6'%20stroke-linecap='round'%3E%3Ccircle%20cx='11'%20cy='11'%20r='7'/%3E%3Cpath%20d='M21%2021l-4.3-4.3'/%3E%3C/svg%3E");
}
.mock-search .srch-field .wp-block-search__input {
	flex: 1; border: 0; outline: none; background: none; box-shadow: none;
	font-family: "Fraunces", var(--td-serif), serif;
	font-size: clamp(22px,3vw,32px); font-weight: 600;
	color: #1A1A1B; color: var(--td-ink, #1A1A1B); letter-spacing: -0.01em;
	padding: 0; margin: 0;
}
.mock-search .srch-field .wp-block-search__input:focus { outline: none; box-shadow: none; }
.mock-search .srch-field .wp-block-search__input::placeholder { color: #8A857C; color: var(--td-ink-3, #8A857C); }
.mock-search .srch-count {
	font-family: "Geist Mono", var(--td-mono), monospace; font-size: 11px;
	letter-spacing: 0.1em; text-transform: uppercase;
	color: #8A857C; color: var(--td-ink-3, #8A857C); margin: 0 0 8px;
}
.mock-search .srch-results { display: flex; flex-direction: column; margin: 0; padding: 0; list-style: none; }
.mock-search .srch-results > .wp-block-post {
	display: block; margin: 0; padding: 18px 0;
	border-top: 1px solid #e7e3da; border-top-color: var(--td-hair, #e7e3da);
}
.mock-search .srch-results > .wp-block-post:first-child { border-top: 0; padding-top: 4px; }
.mock-search .srch-cat {
	font-family: "Geist Mono", var(--td-mono), monospace; font-size: 10.5px;
	letter-spacing: 0.1em; text-transform: uppercase;
	color: #BE531B; color: var(--td-accent, #BE531B); margin: 0 0 6px;
}
.mock-search .srch-cat a { color: #BE531B; color: var(--td-accent, #BE531B); text-decoration: none; }
.mock-search .srch-title {
	font-family: "Fraunces", var(--td-serif), serif; font-weight: 600;
	font-size: clamp(18px,2vw,22px); line-height: 1.2; letter-spacing: -0.01em;
	margin: 0 0 6px; color: #1A1A1B; color: var(--td-ink, #1A1A1B);
}
.mock-search .srch-title a { color: inherit; text-decoration: none; }
.mock-search .srch-title a:hover { color: #BE531B; color: var(--td-accent, #BE531B); }
.mock-search .srch-meta {
	font-family: "Geist Mono", var(--td-mono), monospace; font-size: 11px;
	letter-spacing: 0.08em; text-transform: uppercase;
	color: #8A857C; color: var(--td-ink-3, #8A857C);
	display: flex; flex-wrap: wrap; gap: 6px 10px; align-items: baseline; margin: 0;
}
.mock-search .srch-meta a, .mock-search .srch-meta .wp-block-post-author,
.mock-search .srch-meta .wp-block-post-date {
	font: inherit; color: #8A857C; color: var(--td-ink-3, #8A857C); text-decoration: none;
}
.mock-search .srch-meta .srch-sep { color: #d8d2c8; color: var(--td-hair, #e7e3da); }
.mock-search .srch-foot {
	font-family: "Geist", var(--td-sans), sans-serif; font-size: 14px;
	color: #8A857C; color: var(--td-ink-3, #8A857C); margin-top: 28px;
}
.mock-search .srch-foot a {
	color: #1A1A1B; color: var(--td-ink, #1A1A1B);
	border-bottom: 1px solid #BE531B; border-bottom-color: var(--td-accent, #BE531B);
	text-decoration: none; padding-bottom: 2px;
}

/* ---- Shared pagination + empty state (author + search; mock 428-434) ---- */
.mock-author .arc-pagination, .mock-search .arc-pagination {
	margin-top: clamp(44px,5vw,64px);
	font-family: "Geist Mono", var(--td-mono), monospace; font-size: 12px; border: 0; padding: 0;
}
.mock-author .arc-pagination .wp-block-query-pagination,
.mock-search .arc-pagination .wp-block-query-pagination {
	display: flex; justify-content: center; align-items: center; gap: 6px;
	font-family: inherit; font-size: inherit; letter-spacing: 0; text-transform: none;
}
.mock-author .arc-pagination a, .mock-search .arc-pagination a,
.mock-author .arc-pagination .wp-block-query-pagination-numbers a,
.mock-search .arc-pagination .wp-block-query-pagination-numbers a {
	padding: 8px 12px; color: #1A1A1B; color: var(--td-ink, #1A1A1B); text-decoration: none;
}
.mock-author .arc-pagination .wp-block-query-pagination-numbers .current,
.mock-search .arc-pagination .wp-block-query-pagination-numbers .current {
	padding: 8px 12px; color: #FBFBF9; color: var(--td-canvas, #FBFBF9);
	background: #1A1A1B; background: var(--td-ink, #1A1A1B);
}
.mock-author .arc-pagination .wp-block-query-pagination-numbers .dots,
.mock-search .arc-pagination .wp-block-query-pagination-numbers .dots {
	padding: 8px 6px; color: #8A857C; color: var(--td-ink-3, #8A857C);
}
.mock-author .arc-pagination .wp-block-query-pagination-next,
.mock-search .arc-pagination .wp-block-query-pagination-next { color: #BE531B; color: var(--td-accent, #BE531B); }
.mock-author .arc-pagination a:hover, .mock-search .arc-pagination a:hover { color: #BE531B; color: var(--td-accent, #BE531B); }

.mock-author .arc-empty, .mock-search .arc-empty {
	color: #5C5C5A; color: var(--td-ink-2, #5C5C5A); max-width: 56ch;
	font-family: "Geist", var(--td-sans), sans-serif;
}
.mock-author .arc-empty p, .mock-search .arc-empty p { margin: 0 0 14px; color: inherit; line-height: 1.6; }
.mock-author .arc-empty a, .mock-search .arc-empty a {
	color: #1A1A1B; color: var(--td-ink, #1A1A1B);
	border-bottom: 1px solid #BE531B; border-bottom-color: var(--td-accent, #BE531B);
	text-decoration: none; padding-bottom: 2px;
}

/* ========================= 404 (mock 488-503) ========================= */
.mock-404 .nf-grid {
	display: grid; grid-template-columns: 1fr 1fr;
	gap: clamp(36px,5vw,72px); align-items: center;
}
.mock-404 .nf-text { min-width: 0; }
.mock-404 .nf-code {
	font-family: "Geist Mono", var(--td-mono), monospace; font-size: 12px;
	letter-spacing: 0.18em; text-transform: uppercase;
	color: #BE531B; color: var(--td-accent, #BE531B); margin-bottom: 18px;
}
.mock-404 .nf-title, .mock-404 h1.nf-title {
	font-family: "Fraunces", var(--td-serif), serif; font-weight: 900;
	font-size: clamp(40px,6vw,84px); line-height: 0.98; letter-spacing: -0.025em;
	margin: 0 0 20px; color: #1A1A1B; color: var(--td-ink, #1A1A1B);
}
.mock-404 .nf-dek {
	font-family: "Geist", var(--td-sans), sans-serif; font-size: 17px;
	line-height: 1.6; color: #5C5C5A; color: var(--td-ink-2, #5C5C5A);
	margin: 0 0 28px; max-width: 46ch;
}
.mock-404 .nf-actions { display: flex; gap: 10px; flex-wrap: wrap; }
.mock-404 .nf-btn {
	font-family: "Geist Mono", var(--td-mono), monospace; font-size: 12px;
	letter-spacing: 0.08em; text-transform: uppercase; text-decoration: none;
	padding: 12px 18px; display: inline-block;
}
.mock-404 .nf-btn-solid {
	color: #FBFBF9; color: var(--td-canvas, #FBFBF9);
	background: #1A1A1B; background: var(--td-ink, #1A1A1B);
}
.mock-404 .nf-btn-solid:hover { background: #BE531B; background: var(--td-accent, #BE531B); }
.mock-404 .nf-btn-ghost { color: #1A1A1B; color: var(--td-ink, #1A1A1B); border: 1px solid #cfc8ba; background: transparent; }
.mock-404 .nf-btn-ghost:hover { border-color: #BE531B; border-color: var(--td-accent, #BE531B); color: #BE531B; color: var(--td-accent, #BE531B); }
.mock-404 .nf-scatter {
	aspect-ratio: 4 / 3; width: 100%;
	background: #F4F1EA; background: var(--td-cream, #F4F1EA);
	border: 1px solid #e7e3da; border-color: var(--td-hair, #e7e3da);
	position: relative; overflow: hidden;
	background-image:
		radial-gradient(circle, #cfc8ba 1.4px, transparent 1.6px),
		radial-gradient(circle, #d8d2c8 1.1px, transparent 1.3px);
	background-size: 26px 26px, 19px 19px;
	background-position: 0 0, 9px 13px;
}
@media (max-width: 760px) {
	.mock-404 .nf-grid { grid-template-columns: 1fr; }
	.mock-404 .nf-scatter { display: none; }
}

/* ===== PORTED2: entity-template.php: ETF and MACRO instrument layouts branched on $td_ ===== */
.td-inst-subnav--macro .td-inst-subnav-inner{max-width:1100px}.td-holds{font-family:var(--td-mono)}.td-hold-head,.td-hold-row{display:grid;grid-template-columns:auto 1.5fr 1fr auto auto;gap:0 16px}.td-hold-head{font-size:9px;letter-spacing:.1em;text-transform:uppercase;color:var(--td-ink-3);padding-bottom:10px;border-bottom:1px solid var(--td-hair)}.td-hold-row{align-items:center;padding:12px 0;border-bottom:1px solid #f0ece4}.td-hold-r{text-align:right}.td-hold-rank{font-size:11px;color:#a9a298}.td-hold-id{min-width:0}.td-hold-t{font-size:13.5px;font-weight:500;color:var(--td-ink)}.td-hold-name{font-family:var(--td-sans);font-size:12.5px;color:var(--td-ink-3)}.td-hold-bar{position:relative;display:block;height:7px;background:#ece8e0;overflow:hidden}.td-hold-barfill{position:absolute;left:0;top:0;height:100%;background:var(--td-accent)}.td-hold-w{font-size:13px;color:var(--td-ink)}.td-hold-chg{font-size:12.5px}.td-exp-row{margin-bottom:14px}.td-exp-top{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:7px}.td-exp-k{font-family:var(--td-mono);font-size:11px;letter-spacing:.04em;color:var(--td-ink)}.td-exp-pct{font-family:var(--td-mono);font-size:13px;color:var(--td-ink-2)}.td-exp-track{position:relative;height:8px;background:#ece8e0;overflow:hidden}.td-exp-fill{position:absolute;left:0;top:0;height:100%;background:var(--td-accent)}.td-news-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:clamp(20px,2.4vw,32px)}.td-news-card{display:flex;flex-direction:column;text-decoration:none}.td-news-fig{display:block;margin-bottom:13px}.td-news-kicker{font-family:var(--td-mono);font-size:10px;font-weight:500;letter-spacing:.12em;text-transform:uppercase;color:var(--td-accent);margin-bottom:8px}.td-news-title{font-family:var(--td-serif);font-weight:600;font-size:18px;line-height:1.24;letter-spacing:-.01em;color:var(--td-ink);margin-bottom:9px;text-wrap:balance}.td-news-card:hover .td-news-title{color:var(--td-accent)}.td-news-meta{font-family:var(--td-mono);font-size:10px;letter-spacing:.04em;color:var(--td-ink-3);margin-top:auto}.td-macro-main{max-width:1100px;margin:0 auto;padding:clamp(32px,4.5vw,52px) clamp(24px,5vw,64px) 90px}.td-macro-head{max-width:720px;margin-bottom:clamp(34px,4vw,48px)}.td-macro-title{font-family:var(--td-serif);font-weight:900;font-size:clamp(40px,5.4vw,68px);line-height:1;letter-spacing:-.022em;margin:0 0 16px;color:var(--td-ink)}.td-macro-dek{font-family:var(--td-sans);font-size:16.5px;line-height:1.6;color:var(--td-ink-2);margin:0}.td-macro-sr{display:flex;align-items:center;gap:16px;margin:0 0 22px}.td-macro-sr--chart{margin:0 0 8px}.td-macro-sr--table{margin:clamp(40px,4.5vw,60px) 0 8px}.td-macro-srt{font-family:var(--td-mono);font-size:11px;font-weight:500;letter-spacing:.16em;text-transform:uppercase;color:var(--td-ink)}.td-macro-srl{flex:1;height:1px;background:var(--td-hair)}.td-macro-note{font-family:var(--td-sans);font-size:13.5px;color:var(--td-ink-3);margin:0 0 18px}.td-macro-prints{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(16px,2vw,24px);margin-bottom:clamp(40px,4.5vw,60px)}.td-macro-print{border:1px solid var(--td-hair);background:#fff;padding:22px}.td-macro-print-codewrap{display:flex;align-items:center;gap:8px;margin-bottom:18px}.td-macro-print-code{font-family:var(--td-mono);font-size:11px;letter-spacing:.06em;text-transform:uppercase;color:var(--td-ink);border:1px solid #d8d2c8;padding:4px 9px}.td-macro-print-val{font-family:var(--td-mono);font-size:38px;font-weight:500;line-height:1;color:var(--td-ink)}.td-macro-print-delta{font-family:var(--td-mono);font-size:12px;margin-top:9px}.td-macro-print-desc{font-family:var(--td-sans);font-size:13.5px;line-height:1.5;color:var(--td-ink-2);margin:16px 0 0}.td-macro-chartbox{border:1px solid var(--td-hair);background:#fff;padding:clamp(20px,2.4vw,28px)}.td-macro-legend{display:flex;gap:22px;flex-wrap:wrap;margin-bottom:18px}.td-macro-leg{display:inline-flex;align-items:center;gap:8px;font-family:var(--td-mono);font-size:11px;letter-spacing:.04em;color:var(--td-ink-2)}.td-macro-leg-sw{width:14px;height:2px}.td-macro-svg{width:100%;height:clamp(220px,26vw,320px);display:block}.td-macro-xax{display:flex;justify-content:space-between;font-family:var(--td-mono);font-size:9.5px;letter-spacing:.04em;color:var(--td-ink-3);margin-top:12px}.td-macro-table{border:1px solid var(--td-hair);background:#fff}.td-macro-thead,.td-macro-trow{display:grid;grid-template-columns:1.4fr 1fr 1fr 1fr;gap:0 18px}.td-macro-thead{font-family:var(--td-mono);font-size:9px;letter-spacing:.1em;text-transform:uppercase;color:var(--td-ink-3);padding:14px 22px;border-bottom:1px solid var(--td-hair)}.td-macro-trow{align-items:center;padding:13px 22px;border-bottom:1px solid #f0ece4;font-family:var(--td-mono);font-size:13px;color:var(--td-ink)}.td-macro-tr-r{text-align:right}.td-macro-tm{color:var(--td-ink)}.td-macro-mut{color:var(--td-ink-2)}.td-macro-related{display:flex;gap:9px;flex-wrap:wrap;margin-top:clamp(36px,4vw,52px)}.td-macro-related-lab{font-family:var(--td-mono);font-size:10px;letter-spacing:.1em;text-transform:uppercase;color:var(--td-ink-3);align-self:center;margin-right:6px}.td-macro-chip{font-family:var(--td-mono);font-size:11px;letter-spacing:.04em;text-decoration:none;padding:7px 13px;border:1px solid #d8d2c8;color:var(--td-ink-2)}.td-macro-chip:hover{color:var(--td-accent);border-color:var(--td-accent)}.td-macro-source{font-family:var(--td-sans);font-size:13px;color:var(--td-ink-3);margin:clamp(28px,3vw,36px) 0 0;border-top:1px solid var(--td-hair);padding-top:20px}@media (max-width:680px){.td-macro-prints{grid-template-columns:1fr}}

/* ===== PORTED2: Reference/editorial pages (Glossary, About, Methodology, Policies) por ===== */
/* ==========================================================================
 * REFERENCE / EDITORIAL PAGES — 1:1 port of the dc-runtime mock
 * (Glossary 818–889, About 991–1042, Methodology 1045–1112, Policies 1115–1141)
 * These mains use layout:default; width is driven here, not by content-size.
 * ======================================================================== */

/* ---- GLOSSARY ---------------------------------------------------------- */
.gloss-main { max-width: 980px; margin: 0 auto; padding: clamp(32px,4.5vw,52px) clamp(24px,5vw,64px) 90px; }
.gloss-intro { max-width: 720px; margin-bottom: clamp(28px,3.4vw,38px); }
.gloss-title { font-family: var(--td-serif,"Fraunces"),serif; font-weight: 900; font-size: clamp(40px,5.4vw,68px); line-height: 1; letter-spacing: -.022em; margin: 0 0 16px; color: var(--td-ink,#1A1A1B); }
.gloss-lede { font-family: var(--td-sans,"Geist"),sans-serif; font-size: 16.5px; line-height: 1.6; color: var(--td-ink-2,#5C5C5A); margin: 0; }

.gloss-search { display: flex; align-items: center; gap: 12px; border-bottom: 2px solid var(--td-ink,#1A1A1B); padding-bottom: 10px; margin-bottom: 22px; }
.gloss-search svg { flex: none; }
.gloss-search input { flex: 1; min-width: 0; border: none; outline: none; background: none; border-radius: 0; -webkit-appearance: none; appearance: none; font-family: var(--td-sans,"Geist"),sans-serif; font-size: clamp(18px,2vw,24px); color: var(--td-ink,#1A1A1B); }
.gloss-search input::placeholder { color: var(--td-ink-3,#8A857C); }
/* Glossary "A–Z Index" compact view (the view toggle adds .gloss-defs--index)
   + the no-results state, both driven by assets/js/glossary.js. */
.gloss-defs--index .gl-def-body,
.gloss-defs--index .gl-cat { display: none; }
.gloss-defs--index .gl-row { padding-top: 8px; padding-bottom: 8px; }
.gloss-empty { color: var(--td-ink-2); font-family: var(--td-sans); font-size: 1rem; margin: 22px 0; padding: 0; }
.gloss-search input::-webkit-search-decoration,
.gloss-search input::-webkit-search-cancel-button { -webkit-appearance: none; }

.gloss-chips { display: flex; gap: 9px; flex-wrap: wrap; margin-bottom: 16px; }
.gl-chip { font-family: var(--td-mono,"Geist Mono"),monospace; font-size: 11px; letter-spacing: .04em; line-height: 1; padding: 7px 13px; border: 1px solid #d8d2c8; background: none; color: var(--td-ink-2,#5C5C5A); cursor: pointer; }
.gl-chip:hover { border-color: var(--td-ink,#1A1A1B); color: var(--td-ink,#1A1A1B); }
.gl-chip.is-on { background: var(--td-ink,#1A1A1B); border-color: var(--td-ink,#1A1A1B); color: var(--td-canvas,#FBFBF9); }

.gloss-az { display: flex; flex-wrap: wrap; gap: 2px; align-items: center; border-top: 1px solid var(--td-hair,#e7e3da); border-bottom: 1px solid var(--td-hair,#e7e3da); padding: 8px 0; margin-bottom: clamp(16px,2.2vw,24px); }
.gl-letter { font-family: var(--td-mono,"Geist Mono"),monospace; font-size: 12px; letter-spacing: .02em; line-height: 1; padding: 5px 8px; border: none; background: none; color: var(--td-ink-2,#5C5C5A); cursor: pointer; }
.gl-letter:hover:not(.is-off):not(.is-on) { color: var(--td-ink,#1A1A1B); }
.gl-letter.is-on { background: var(--td-ink,#1A1A1B); color: var(--td-canvas,#FBFBF9); }
.gl-letter.is-off { color: #c9c3b8; cursor: default; pointer-events: none; }

.gloss-bar { display: flex; align-items: center; justify-content: space-between; gap: 16px; flex-wrap: wrap; margin-bottom: clamp(18px,2.6vw,28px); }
.gloss-count { font-family: var(--td-mono,"Geist Mono"),monospace; font-size: 11px; letter-spacing: .08em; text-transform: uppercase; color: var(--td-ink-3,#8A857C); }
.gloss-views { display: flex; gap: 6px; }
.gl-view { font-family: var(--td-mono,"Geist Mono"),monospace; font-size: 11px; letter-spacing: .04em; line-height: 1; padding: 7px 13px; border: 1px solid #d8d2c8; background: none; color: var(--td-ink-2,#5C5C5A); cursor: pointer; }
.gl-view:hover { border-color: var(--td-ink,#1A1A1B); color: var(--td-ink,#1A1A1B); }
.gl-view.is-on { background: var(--td-ink,#1A1A1B); border-color: var(--td-ink,#1A1A1B); color: var(--td-canvas,#FBFBF9); }

.gl-row { display: grid; grid-template-columns: 54px 1fr; gap: clamp(16px,2vw,28px); align-items: start; padding: clamp(18px,2.2vw,24px) 0; border-top: 1px solid var(--td-hair,#e7e3da); }
.gl-initial { font-family: var(--td-serif,"Fraunces"),serif; font-weight: 900; font-size: 30px; line-height: 1; color: var(--td-accent,#BE531B); }
.gl-def { min-width: 0; }
.gl-def-head { display: flex; align-items: baseline; gap: 12px; flex-wrap: wrap; margin-bottom: 8px; }
.gl-term-name { font-family: var(--td-serif,"Fraunces"),serif; font-weight: 600; font-size: clamp(20px,2vw,24px); line-height: 1.1; letter-spacing: -.012em; margin: 0; color: var(--td-ink,#1A1A1B); }
.gl-cat { font-family: var(--td-mono,"Geist Mono"),monospace; font-size: 9.5px; letter-spacing: .08em; text-transform: uppercase; color: var(--td-ink-3,#8A857C); border: 1px solid #e0dace; padding: 3px 8px; }
.gl-def-body { font-family: var(--td-sans,"Geist"),sans-serif; font-size: 15.5px; line-height: 1.62; color: var(--td-ink-2,#5C5C5A); margin: 0; max-width: 70ch; }
.gl-more { display: inline-block; margin-top: 10px; font-family: var(--td-mono,"Geist Mono"),monospace; font-size: 11px; letter-spacing: .06em; text-transform: uppercase; color: var(--td-accent,#BE531B); text-decoration: none; }
.gl-more:hover { text-decoration: underline; text-underline-offset: 3px; }
.gloss-defs--index .gl-more { display: none; }

/* ---- ABOUT ------------------------------------------------------------- */
.about-main { max-width: 1100px; margin: 0 auto; padding: clamp(34px,4.5vw,56px) clamp(24px,5vw,64px) 90px; }
.about-intro { max-width: 800px; margin-bottom: clamp(44px,5.5vw,72px); }
.about-eyebrow { font-family: var(--td-mono,"Geist Mono"),monospace; font-size: 11px; letter-spacing: .14em; text-transform: uppercase; color: var(--td-accent,#BE531B); margin-bottom: 16px; }
.about-eyebrow span { color: var(--td-ink-3,#8A857C); }
.about-lede { font-family: var(--td-serif,"Fraunces"),serif; font-weight: 900; font-size: clamp(30px,3.8vw,52px); line-height: 1.08; letter-spacing: -.02em; margin: 0; color: var(--td-ink,#1A1A1B); text-wrap: balance; }

.about-mission { display: grid; grid-template-columns: 200px 1fr; gap: clamp(24px,4vw,56px); align-items: start; padding-top: clamp(24px,3vw,30px); border-top: 2px solid var(--td-ink,#1A1A1B); margin-bottom: clamp(48px,6vw,80px); }
.about-mission-label { font-family: var(--td-mono,"Geist Mono"),monospace; font-size: 11px; font-weight: 500; letter-spacing: .16em; text-transform: uppercase; color: var(--td-ink,#1A1A1B); }
.about-mission-body { font-family: var(--td-sans,"Geist"),sans-serif; font-size: clamp(18px,1.7vw,21px); line-height: 1.6; color: #33312e; margin: 0; max-width: 62ch; }

.about-rule { display: flex; align-items: baseline; gap: 16px; margin-bottom: clamp(26px,3vw,36px); }
.about-rule-label { font-family: var(--td-mono,"Geist Mono"),monospace; font-size: 11px; font-weight: 500; letter-spacing: .16em; text-transform: uppercase; color: var(--td-ink,#1A1A1B); white-space: nowrap; }
.about-rule-line { flex: 1; height: 1px; background: var(--td-hair,#e7e3da); }
.about-rule-note { font-family: var(--td-mono,"Geist Mono"),monospace; font-size: 10px; letter-spacing: .05em; color: var(--td-ink-3,#8A857C); white-space: nowrap; }

.about-principles { margin-bottom: clamp(48px,6vw,82px); }
.about-prin-grid { display: grid; grid-template-columns: repeat(2,1fr); gap: clamp(28px,3.4vw,48px) clamp(36px,5vw,72px); }
.about-prin { padding-top: 20px; border-top: 1px solid var(--td-hair,#e7e3da); }
.about-prin-n { font-family: var(--td-mono,"Geist Mono"),monospace; font-size: 12px; letter-spacing: .08em; color: var(--td-accent,#BE531B); margin-bottom: 12px; }
.about-prin-title { font-family: var(--td-serif,"Fraunces"),serif; font-weight: 600; font-size: clamp(20px,2.1vw,26px); line-height: 1.12; letter-spacing: -.012em; margin: 0 0 12px; color: var(--td-ink,#1A1A1B); }
.about-prin-body { font-family: var(--td-sans,"Geist"),sans-serif; font-size: 15px; line-height: 1.62; color: var(--td-ink-2,#5C5C5A); margin: 0; max-width: 46ch; }

.about-team { margin-bottom: clamp(44px,5vw,72px); }
.about-team .about-rule { margin-bottom: clamp(26px,3vw,34px); }
.about-team-grid { display: grid; grid-template-columns: repeat(auto-fill,minmax(240px,1fr)); gap: clamp(28px,3.4vw,44px) clamp(28px,3.4vw,40px); }
.about-photo { display: block; width: 100%; margin-bottom: 14px; }
.about-role { font-family: var(--td-mono,"Geist Mono"),monospace; font-size: 9.5px; letter-spacing: .12em; text-transform: uppercase; color: var(--td-accent,#BE531B); margin-bottom: 7px; }
.about-name { font-family: var(--td-serif,"Fraunces"),serif; font-weight: 600; font-size: 19px; line-height: 1.12; letter-spacing: -.01em; margin: 0 0 8px; color: var(--td-ink,#1A1A1B); }
.about-bio { font-family: var(--td-sans,"Geist"),sans-serif; font-size: 13.5px; line-height: 1.55; color: var(--td-ink-2,#5C5C5A); margin: 0; }

.about-cta { background: var(--td-dark,#1C1917); color: var(--td-canvas,#FBFBF9); padding: clamp(28px,3.6vw,44px); display: flex; align-items: center; justify-content: space-between; gap: 24px; flex-wrap: wrap; }
.about-cta-copy { min-width: 0; }
.about-cta-eyebrow { font-family: var(--td-mono,"Geist Mono"),monospace; font-size: 10.5px; letter-spacing: .16em; text-transform: uppercase; color: var(--td-accent,#BE531B); margin-bottom: 10px; }
.about-cta-title { font-family: var(--td-serif,"Fraunces"),serif; font-weight: 600; font-size: clamp(22px,2.4vw,30px); line-height: 1.12; letter-spacing: -.012em; margin: 0; color: var(--td-canvas,#FBFBF9); max-width: 30ch; }
.about-cta-link { flex: none; display: inline-flex; align-items: center; gap: 9px; font-family: var(--td-mono,"Geist Mono"),monospace; font-size: 11.5px; letter-spacing: .08em; text-transform: uppercase; color: var(--td-ink,#1A1A1B); background: var(--td-canvas,#FBFBF9); text-decoration: none; padding: 13px 22px; }
.about-cta-link span { color: var(--td-accent,#BE531B); }

/* ---- METHODOLOGY ------------------------------------------------------- */
.method-main { max-width: 1100px; margin: 0 auto; padding: clamp(34px,4.5vw,56px) clamp(24px,5vw,64px) 90px; }
.method-intro { max-width: 800px; margin-bottom: clamp(40px,5vw,64px); }
.method-eyebrow { font-family: var(--td-mono,"Geist Mono"),monospace; font-size: 11px; letter-spacing: .14em; text-transform: uppercase; color: var(--td-accent,#BE531B); margin-bottom: 16px; }
.method-eyebrow span { color: var(--td-ink-3,#8A857C); }
.method-h1 { font-family: var(--td-serif,"Fraunces"),serif; font-weight: 900; font-size: clamp(38px,5vw,64px); line-height: 1.02; letter-spacing: -.022em; margin: 0 0 18px; color: var(--td-ink,#1A1A1B); }
.method-lede { font-family: var(--td-sans,"Geist"),sans-serif; font-size: clamp(16.5px,1.6vw,19px); line-height: 1.6; color: var(--td-ink-2,#5C5C5A); margin: 0; max-width: 64ch; }

.method-rule { display: flex; align-items: baseline; gap: 16px; }
.method-rule-label { font-family: var(--td-mono,"Geist Mono"),monospace; font-size: 11px; font-weight: 500; letter-spacing: .16em; text-transform: uppercase; color: var(--td-ink,#1A1A1B); white-space: nowrap; }
.method-rule-line { flex: 1; height: 1px; background: var(--td-hair,#e7e3da); }
.method-rule-note { font-family: var(--td-mono,"Geist Mono"),monospace; font-size: 10px; letter-spacing: .05em; color: var(--td-ink-3,#8A857C); white-space: nowrap; }

.method-pipeline { margin-bottom: clamp(48px,6vw,80px); }
.method-pipeline .method-rule { margin-bottom: clamp(22px,2.6vw,30px); }
.method-step { display: grid; grid-template-columns: 64px 1fr; gap: clamp(18px,2.4vw,32px); align-items: start; padding: clamp(18px,2.2vw,24px) 0; border-top: 1px solid var(--td-hair,#e7e3da); }
.method-step-n { font-family: var(--td-serif,"Fraunces"),serif; font-weight: 900; font-size: 32px; line-height: 1; color: var(--td-accent,#BE531B); }
.method-step-body { min-width: 0; max-width: 62ch; }
.method-step-title { font-family: var(--td-serif,"Fraunces"),serif; font-weight: 600; font-size: clamp(19px,2vw,24px); line-height: 1.12; letter-spacing: -.012em; margin: 0 0 8px; color: var(--td-ink,#1A1A1B); }
.method-step-copy { font-family: var(--td-sans,"Geist"),sans-serif; font-size: 15.5px; line-height: 1.6; color: var(--td-ink-2,#5C5C5A); margin: 0; }

.method-scale { background: var(--td-cream,#F4F1EA); padding: clamp(26px,3.4vw,40px); margin-bottom: clamp(48px,6vw,80px); display: grid; grid-template-columns: 1fr 1fr; gap: clamp(28px,4vw,56px); align-items: center; }
.method-scale-eyebrow { font-family: var(--td-mono,"Geist Mono"),monospace; font-size: 11px; font-weight: 500; letter-spacing: .16em; text-transform: uppercase; color: var(--td-accent,#BE531B); margin-bottom: 14px; }
.method-scale-body { font-family: var(--td-sans,"Geist"),sans-serif; font-size: 15.5px; line-height: 1.62; color: #33312e; margin: 0; max-width: 52ch; }
.method-scale-bar { display: flex; height: 12px; overflow: hidden; margin-bottom: 8px; }
.method-scale-bar .msb-bear { flex: 35; background: var(--td-down,#C73B3B); }
.method-scale-bar .msb-neu { flex: 30; background: #C99A2E; }
.method-scale-bar .msb-bull { flex: 35; background: var(--td-up,#1B8E4A); }
.method-scale-ticks { display: flex; justify-content: space-between; font-family: var(--td-mono,"Geist Mono"),monospace; font-size: 10px; letter-spacing: .04em; color: var(--td-ink-3,#8A857C); margin-bottom: 22px; }
.method-scale-row { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 9px 0; border-top: 1px solid #e3ddd1; }
.method-scale-row .msr-left { display: flex; align-items: center; gap: 10px; }
.method-scale-row .msr-dot { width: 9px; height: 9px; border-radius: 50%; flex: none; }
.method-scale-row .msr-label { font-family: var(--td-mono,"Geist Mono"),monospace; font-size: 12px; letter-spacing: .04em; color: var(--td-ink,#1A1A1B); }
.method-scale-row .msr-range { font-family: var(--td-mono,"Geist Mono"),monospace; font-size: 12px; color: var(--td-ink-2,#5C5C5A); }

.method-sources { margin-bottom: clamp(44px,5vw,72px); }
.method-sources .method-rule { margin-bottom: clamp(20px,2.4vw,28px); }
.method-src-head { display: grid; grid-template-columns: 140px 1fr 130px; gap: 0 clamp(16px,2vw,28px); font-family: var(--td-mono,"Geist Mono"),monospace; font-size: 9px; letter-spacing: .1em; text-transform: uppercase; color: var(--td-ink-3,#8A857C); padding-bottom: 10px; border-bottom: 1px solid var(--td-hair,#e7e3da); }
.method-src-head .msh-right { text-align: right; }
.method-src-row { display: grid; grid-template-columns: 140px 1fr 130px; gap: 0 clamp(16px,2vw,28px); align-items: baseline; padding: 14px 0; border-bottom: 1px solid #f0ece4; }
.method-src-row .msr-src { font-family: var(--td-mono,"Geist Mono"),monospace; font-size: 13.5px; color: var(--td-ink,#1A1A1B); }
.method-src-row .msr-use { font-family: var(--td-sans,"Geist"),sans-serif; font-size: 14.5px; color: var(--td-ink-2,#5C5C5A); }
.method-src-row .msr-cadence { font-family: var(--td-mono,"Geist Mono"),monospace; font-size: 12px; color: var(--td-ink-3,#8A857C); text-align: right; }

.method-trust { border-top: 2px solid var(--td-ink,#1A1A1B); padding-top: clamp(26px,3vw,34px); display: flex; align-items: flex-end; justify-content: space-between; gap: 24px; flex-wrap: wrap; }
.method-trust-copy { min-width: 0; }
.method-trust-h { font-family: var(--td-serif,"Fraunces"),serif; font-style: italic; font-weight: 600; font-size: clamp(22px,2.6vw,32px); line-height: 1.1; letter-spacing: -.012em; margin: 0 0 10px; color: var(--td-ink,#1A1A1B); }
.method-trust-body { font-family: var(--td-sans,"Geist"),sans-serif; font-size: 14.5px; line-height: 1.6; color: var(--td-ink-2,#5C5C5A); margin: 0; max-width: 56ch; }
.method-trust-links { display: flex; gap: 10px; flex-wrap: wrap; flex: none; }
.method-trust-link { font-family: var(--td-mono,"Geist Mono"),monospace; font-size: 11px; letter-spacing: .08em; text-transform: uppercase; color: var(--td-ink,#1A1A1B); text-decoration: none; border: 1px solid #d8d2c8; padding: 11px 16px; }
.method-trust-link:hover { border-color: var(--td-ink,#1A1A1B); }

/* ---- POLICIES ---------------------------------------------------------- */
.policy-main { max-width: 1100px; margin: 0 auto; padding: clamp(32px,4.5vw,52px) clamp(24px,5vw,64px) 90px; }
.policy-intro { max-width: 720px; margin-bottom: clamp(30px,3.6vw,42px); }
.policy-eyebrow { font-family: var(--td-mono,"Geist Mono"),monospace; font-size: 11px; letter-spacing: .14em; text-transform: uppercase; color: var(--td-accent,#BE531B); margin-bottom: 14px; }
.policy-h1 { font-family: var(--td-serif,"Fraunces"),serif; font-weight: 900; font-size: clamp(38px,5vw,62px); line-height: 1.02; letter-spacing: -.022em; margin: 0; color: var(--td-ink,#1A1A1B); }
.policy-grid { display: grid; grid-template-columns: 248px 1fr; gap: clamp(28px,4vw,60px); align-items: start; }
.policy-nav { position: sticky; top: 64px; border-top: 1px solid var(--td-hair,#e7e3da); }
.policy-nav-item { display: block; width: 100%; text-align: left; background: none; border: none; border-bottom: 1px solid var(--td-hair,#e7e3da); padding: 13px 0 13px 12px; font-family: var(--td-sans,"Geist"),sans-serif; font-size: 14.5px; line-height: 1.3; color: var(--td-ink-2,#5C5C5A); cursor: pointer; }
.policy-nav-item:hover { color: var(--td-ink,#1A1A1B); }
.policy-nav-item.is-on { color: var(--td-ink,#1A1A1B); font-weight: 500; box-shadow: inset 2px 0 0 var(--td-accent,#BE531B); }
.policy-article { max-width: 680px; }
.policy-updated { font-family: var(--td-mono,"Geist Mono"),monospace; font-size: 11px; letter-spacing: .08em; text-transform: uppercase; color: var(--td-ink-3,#8A857C); margin-bottom: 14px; }
.policy-title { font-family: var(--td-serif,"Fraunces"),serif; font-weight: 900; font-size: clamp(28px,3.4vw,44px); line-height: 1.04; letter-spacing: -.02em; margin: 0 0 24px; color: var(--td-ink,#1A1A1B); }
.policy-body { border-top: 2px solid var(--td-ink,#1A1A1B); padding-top: 24px; }
.policy-para { font-family: var(--td-sans,"Geist"),sans-serif; font-size: 16.5px; line-height: 1.7; color: #33312e; margin: 0 0 20px; max-width: 64ch; }
.policy-close { font-family: var(--td-serif,"Fraunces"),serif; font-style: italic; font-size: 14px; color: var(--td-ink-3,#8A857C); margin: clamp(28px,3vw,38px) 0 0; border-top: 1px solid var(--td-hair,#e7e3da); padding-top: 20px; }

/* ---- editable Policies body (post-content, .policy-prose) -------------- */
.policy-prose { max-width: 720px; margin: 0; }
.policy-prose > h2 { font-family: var(--td-serif,"Fraunces"),serif; font-weight: 900; font-size: clamp(24px,2.9vw,36px); line-height: 1.06; letter-spacing: -.02em; color: var(--td-ink,#1A1A1B); margin: clamp(40px,4.4vw,56px) 0 18px; padding-top: clamp(28px,3vw,36px); border-top: 1px solid var(--td-hair,#e7e3da); }
.policy-prose > h2:first-child { margin-top: 0; padding-top: 24px; border-top: 2px solid var(--td-ink,#1A1A1B); }
.policy-prose > h3 { font-family: var(--td-serif,"Fraunces"),serif; font-weight: 700; font-size: 19px; line-height: 1.2; color: var(--td-ink,#1A1A1B); margin: 28px 0 12px; }
.policy-prose p { font-family: var(--td-sans,"Geist"),sans-serif; font-size: 16.5px; line-height: 1.7; color: #33312e; margin: 0 0 20px; max-width: 64ch; }
.policy-prose ul, .policy-prose ol { margin: 0 0 20px; padding-left: 1.25em; max-width: 64ch; }
.policy-prose li { font-family: var(--td-sans,"Geist"),sans-serif; font-size: 16.5px; line-height: 1.7; color: #33312e; margin: 0 0 8px; }
.policy-prose a { color: var(--td-accent-text,#A8480F); text-underline-offset: 2px; }
.policy-prose a:hover { color: var(--td-accent,#BE531B); }

/* ---- responsive collapses --------------------------------------------- */
@media (max-width: 860px) {
	.policy-grid { grid-template-columns: 1fr; gap: clamp(20px,4vw,32px); }
	.policy-nav { position: static; }
}
@media (max-width: 720px) {
	.about-mission { grid-template-columns: 1fr; gap: 14px; }
	.method-scale { grid-template-columns: 1fr; }
}
@media (max-width: 640px) {
	.about-prin-grid { grid-template-columns: 1fr; }
}
@media (max-width: 560px) {
	.method-src-head { display: none; }
	.method-src-row { grid-template-columns: 1fr; gap: 3px 0; padding: 12px 0; }
	.method-src-row .msr-cadence { text-align: left; }
}

/* ===== PORTED2: worldwide ===== */
/* thedistributed/market-globe — "Countries / Worldwide" navigator.
 *
 * All visual CSS for this screen is scoped under .td-world and lives in the
 * block's own stylesheet (WordPress auto-enqueues it from block.json's
 * "style": "file:./style.css"), per the "new block → CSS in its own style.css"
 * rule — same convention as coverage-globe / news-river. Nothing is appended to
 * the theme style.css here:
 *   - the Worldwide screen styles  → blocks/market-globe/style.css
 *   - the reference sub-nav        → reuses the existing .td-inst-subnav rules
 *                                    already present in style.css (a byte-for-byte
 *                                    match of the mock's sub-nav inline styles).
 */

/* ===== PORTED2: author + search + 404 ===== */
/* ===================================================================
 * AUTHOR / SEARCH / 404 — 1:1 port of TheDistributed.dc.html mock
 * (author 440-465, search 468-485, 404 488-504). Self-contained and
 * scoped to .mock-author / .mock-search / .mock-404 so it does not
 * collide with the parallel archive screen. Mock literal hex kept as a
 * fallback after each --td-* token.
 * =================================================================== */

/* ---- Page containers (mock: 1240px author/404, 840px search) ---- */
.mock-author { max-width: 1240px; margin: 0 auto; padding: clamp(36px,5vw,60px) clamp(20px,4vw,56px) 80px; }
.mock-search { max-width: 840px;  margin: 0 auto; padding: clamp(36px,5vw,60px) clamp(20px,4vw,56px) 80px; }
.mock-404    { max-width: 1240px; margin: 0 auto; padding: clamp(60px,8vw,120px) clamp(20px,4vw,56px); }

/* ========================= AUTHOR (mock 440-464) ========================= */
.mock-author .auth-head {
	display: grid; grid-template-columns: 120px 1fr; gap: clamp(24px,3vw,40px);
	align-items: start; max-width: 880px; margin-bottom: clamp(40px,5vw,56px);
	padding-bottom: clamp(34px,4vw,44px);
	border-bottom: 1px solid #e7e3da; border-bottom-color: var(--td-hair,#e7e3da);
}
.mock-author .auth-avatar {
	width: 120px; aspect-ratio: 1 / 1; margin: 0;
	background: #F4F1EA; background: var(--td-cream,#F4F1EA);
	border: 1px solid #e7e3da; border-color: var(--td-hair,#e7e3da); overflow: hidden;
}
.mock-author .auth-avatar img { width: 100%; height: 100%; object-fit: cover; display: block; border-radius: 0; }
.mock-author .auth-bio { min-width: 0; }
.mock-author .auth-name, .mock-author h1.auth-name {
	font-family: "Fraunces", var(--td-serif), serif; font-weight: 900;
	font-size: clamp(32px,4vw,48px); line-height: 1.04; letter-spacing: -0.02em;
	margin: 0 0 8px; color: #1A1A1B; color: var(--td-ink,#1A1A1B);
}
.mock-author .auth-role {
	font-family: "Geist Mono", var(--td-mono), monospace; font-size: 11px;
	letter-spacing: 0.12em; text-transform: uppercase;
	color: #BE531B; color: var(--td-accent,#BE531B); margin-bottom: 18px;
}
.mock-author .auth-blurb {
	font-family: "Geist", var(--td-sans), sans-serif; font-size: 16.5px;
	line-height: 1.65; color: #5C5C5A; color: var(--td-ink-2,#5C5C5A);
	margin: 0 0 16px; max-width: 60ch;
}
.mock-author .auth-blurb:empty { display: none; }
.mock-author .auth-links {
	display: flex; gap: 18px; flex-wrap: wrap;
	font-family: "Geist Mono", var(--td-mono), monospace; font-size: 11px;
	letter-spacing: 0.08em; text-transform: uppercase;
}
.mock-author .auth-links a {
	color: #1A1A1B; color: var(--td-ink,#1A1A1B); text-decoration: none;
	border-bottom: 1px solid #BE531B; border-bottom-color: var(--td-accent,#BE531B);
	padding-bottom: 3px;
}
.mock-author .auth-links a:hover { color: #BE531B; color: var(--td-accent,#BE531B); }

/* "Latest by" rule head (mock 455-458) */
.mock-author .auth-railhead { display: flex; align-items: center; gap: 16px; margin: 0 0 30px; }
.mock-author .auth-railhead-label {
	font-family: "Geist Mono", var(--td-mono), monospace; font-size: 12px;
	font-weight: 500; letter-spacing: 0.18em; text-transform: uppercase;
	color: #1A1A1B; color: var(--td-ink,#1A1A1B); white-space: nowrap;
}
.mock-author .auth-railhead-rule { flex: 1; height: 1px; background: #e7e3da; background: var(--td-hair,#e7e3da); }
@media (max-width: 700px) { .mock-author .auth-head { grid-template-columns: 1fr; } }

/* Author card grid (mock 459-463: 3-up standard cards) */
.mock-author .arc-grid {
	display: grid; grid-template-columns: repeat(3, 1fr);
	gap: clamp(28px,3vw,44px) clamp(24px,2.6vw,40px);
	margin: 0; padding: 0; list-style: none;
}
@media (max-width: 900px) { .mock-author .arc-grid { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 600px) { .mock-author .arc-grid { grid-template-columns: 1fr; } }
.mock-author .arc-grid > .wp-block-post { display: flex; flex-direction: column; margin: 0; padding: 0; border: 0; }
.mock-author .arc-grid .imgbox { margin: 0 0 16px; }
.mock-author .arc-grid .wp-block-post-featured-image { margin: 0; }
.mock-author .arc-cat {
	font-family: "Geist Mono", var(--td-mono), monospace; font-size: 11px;
	letter-spacing: 0.1em; text-transform: uppercase;
	color: #BE531B; color: var(--td-accent,#BE531B); margin: 0 0 9px;
}
.mock-author .arc-cat a { color: #BE531B; color: var(--td-accent,#BE531B); text-decoration: none; }
.mock-author .arc-cardtitle {
	font-family: "Fraunces", var(--td-serif), serif; font-weight: 600;
	font-size: 1.22rem; line-height: 1.16; letter-spacing: -0.01em;
	margin: 0 0 10px; color: #1A1A1B; color: var(--td-ink,#1A1A1B);
}
.mock-author .arc-cardtitle a { color: inherit; text-decoration: none; }
.mock-author .arc-cardtitle a:hover { color: var(--td-accent,#BE531B); }
.mock-author .arc-dek {
	font-family: "Geist", var(--td-sans), sans-serif; font-size: 0.95rem;
	line-height: 1.5; color: #5C5C5A; color: var(--td-ink-2,#5C5C5A); margin: 0 0 12px;
}
.mock-author .arc-dek .wp-block-post-excerpt__more-link { display: none; }
.mock-author .arc-meta {
	font-family: "Geist Mono", var(--td-mono), monospace; font-size: 11px;
	letter-spacing: 0.08em; text-transform: uppercase;
	color: #8A857C; color: var(--td-ink-3,#8A857C);
	margin-top: auto; padding-top: 12px;
	display: flex; flex-wrap: wrap; gap: 6px 10px; align-items: baseline;
}
.mock-author .arc-meta a, .mock-author .arc-meta .wp-block-post-date {
	font: inherit; color: #8A857C; color: var(--td-ink-3,#8A857C); text-decoration: none;
}
.mock-author .arc-meta .arc-sep { color: #d8d2c8; color: var(--td-hair,#e7e3da); }

/* ========================= SEARCH (mock 468-484) ========================= */
.mock-search .srch-band { margin-bottom: clamp(34px,4vw,46px); }
.mock-search .srch-label {
	font-family: "Geist Mono", var(--td-mono), monospace; font-size: 11px;
	letter-spacing: 0.12em; text-transform: uppercase;
	color: #8A857C; color: var(--td-ink-3,#8A857C); margin-bottom: 10px;
}
.mock-search .srch-field .wp-block-search__inside-wrapper {
	display: flex; align-items: center; gap: 12px;
	border: 0; border-bottom: 2px solid #1A1A1B; border-bottom-color: var(--td-ink,#1A1A1B);
	border-radius: 0; background: none; padding: 0 0 10px;
}
.mock-search .srch-field .wp-block-search__inside-wrapper::before {
	content: ""; flex: none; width: 20px; height: 20px;
	background: center / 20px no-repeat url("data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20width='24'%20height='24'%20viewBox='0%200%2024%2024'%20fill='none'%20stroke='%231A1A1B'%20stroke-width='1.6'%20stroke-linecap='round'%3E%3Ccircle%20cx='11'%20cy='11'%20r='7'/%3E%3Cpath%20d='M21%2021l-4.3-4.3'/%3E%3C/svg%3E");
}
.mock-search .srch-field .wp-block-search__input {
	flex: 1; border: 0; outline: none; background: none; box-shadow: none;
	font-family: "Fraunces", var(--td-serif), serif;
	font-size: clamp(22px,3vw,32px); font-weight: 600;
	color: #1A1A1B; color: var(--td-ink,#1A1A1B); letter-spacing: -0.01em;
	padding: 0; margin: 0;
}
.mock-search .srch-field .wp-block-search__input:focus { outline: none; box-shadow: none; }
.mock-search .srch-field .wp-block-search__input::placeholder { color: #8A857C; color: var(--td-ink-3,#8A857C); }
.mock-search .srch-count {
	font-family: "Geist Mono", var(--td-mono), monospace; font-size: 11px;
	letter-spacing: 0.1em; text-transform: uppercase;
	color: #8A857C; color: var(--td-ink-3,#8A857C); margin: 0 0 8px;
}
.mock-search .srch-results { display: flex; flex-direction: column; margin: 0; padding: 0; list-style: none; }
.mock-search .srch-results > .wp-block-post {
	display: block; margin: 0; padding: 18px 0;
	border-top: 1px solid #e7e3da; border-top-color: var(--td-hair,#e7e3da);
}
.mock-search .srch-results > .wp-block-post:first-child { border-top: 0; padding-top: 4px; }
.mock-search .srch-cat {
	font-family: "Geist Mono", var(--td-mono), monospace; font-size: 10.5px;
	letter-spacing: 0.1em; text-transform: uppercase;
	color: #BE531B; color: var(--td-accent,#BE531B); margin: 0 0 6px;
}
.mock-search .srch-cat a { color: #BE531B; color: var(--td-accent,#BE531B); text-decoration: none; }
.mock-search .srch-title {
	font-family: "Fraunces", var(--td-serif), serif; font-weight: 600;
	font-size: clamp(18px,2vw,22px); line-height: 1.2; letter-spacing: -0.01em;
	margin: 0 0 6px; color: #1A1A1B; color: var(--td-ink,#1A1A1B);
}
.mock-search .srch-title a { color: inherit; text-decoration: none; }
.mock-search .srch-title a:hover { color: #BE531B; color: var(--td-accent,#BE531B); }
.mock-search .srch-meta {
	font-family: "Geist Mono", var(--td-mono), monospace; font-size: 11px;
	letter-spacing: 0.08em; text-transform: uppercase;
	color: #8A857C; color: var(--td-ink-3,#8A857C);
	display: flex; flex-wrap: wrap; gap: 6px 10px; align-items: baseline; margin: 0;
}
.mock-search .srch-meta a, .mock-search .srch-meta .wp-block-post-author,
.mock-search .srch-meta .wp-block-post-date {
	font: inherit; color: #8A857C; color: var(--td-ink-3,#8A857C); text-decoration: none;
}
.mock-search .srch-meta .srch-sep { color: #d8d2c8; color: var(--td-hair,#e7e3da); }
.mock-search .srch-foot {
	font-family: "Geist", var(--td-sans), sans-serif; font-size: 14px;
	color: #8A857C; color: var(--td-ink-3,#8A857C); margin-top: 28px;
}
.mock-search .srch-foot a {
	color: #1A1A1B; color: var(--td-ink,#1A1A1B);
	border-bottom: 1px solid #BE531B; border-bottom-color: var(--td-accent,#BE531B);
	text-decoration: none; padding-bottom: 2px;
}

/* Pagination + empty state shared by author & search */
.mock-author .arc-pagination, .mock-search .arc-pagination {
	margin-top: clamp(44px,5vw,64px);
	font-family: "Geist Mono", var(--td-mono), monospace; font-size: 12px; border: 0; padding: 0;
}
.mock-author .arc-pagination .wp-block-query-pagination,
.mock-search .arc-pagination .wp-block-query-pagination {
	display: flex; justify-content: center; align-items: center; gap: 6px;
	font-family: inherit; font-size: inherit; letter-spacing: 0; text-transform: none;
}
.mock-author .arc-pagination a, .mock-search .arc-pagination a,
.mock-author .arc-pagination .wp-block-query-pagination-numbers a,
.mock-search .arc-pagination .wp-block-query-pagination-numbers a {
	padding: 8px 12px; color: #1A1A1B; color: var(--td-ink,#1A1A1B); text-decoration: none;
}
.mock-author .arc-pagination .wp-block-query-pagination-numbers .current,
.mock-search .arc-pagination .wp-block-query-pagination-numbers .current {
	padding: 8px 12px; color: #FBFBF9; color: var(--td-canvas,#FBFBF9);
	background: #1A1A1B; background: var(--td-ink,#1A1A1B);
}
.mock-author .arc-pagination .wp-block-query-pagination-numbers .dots,
.mock-search .arc-pagination .wp-block-query-pagination-numbers .dots {
	padding: 8px 6px; color: #8A857C; color: var(--td-ink-3,#8A857C);
}
.mock-author .arc-pagination .wp-block-query-pagination-next,
.mock-search .arc-pagination .wp-block-query-pagination-next { color: #BE531B; color: var(--td-accent,#BE531B); }
.mock-author .arc-pagination a:hover, .mock-search .arc-pagination a:hover { color: #BE531B; color: var(--td-accent,#BE531B); }
.mock-author .arc-empty, .mock-search .arc-empty {
	color: #5C5C5A; color: var(--td-ink-2,#5C5C5A); max-width: 56ch;
	font-family: "Geist", var(--td-sans), sans-serif;
}
.mock-author .arc-empty p, .mock-search .arc-empty p { margin: 0 0 14px; color: inherit; line-height: 1.6; }
.mock-author .arc-empty a, .mock-search .arc-empty a {
	color: #1A1A1B; color: var(--td-ink,#1A1A1B);
	border-bottom: 1px solid #BE531B; border-bottom-color: var(--td-accent,#BE531B);
	text-decoration: none; padding-bottom: 2px;
}

/* ========================= 404 (mock 488-503) ========================= */
.mock-404 .nf-grid { display: grid; grid-template-columns: 1fr 1fr; gap: clamp(36px,5vw,72px); align-items: center; }
.mock-404 .nf-text { min-width: 0; }
.mock-404 .nf-code {
	font-family: "Geist Mono", var(--td-mono), monospace; font-size: 12px;
	letter-spacing: 0.18em; text-transform: uppercase;
	color: #BE531B; color: var(--td-accent,#BE531B); margin-bottom: 18px;
}
.mock-404 .nf-title, .mock-404 h1.nf-title {
	font-family: "Fraunces", var(--td-serif), serif; font-weight: 900;
	font-size: clamp(40px,6vw,84px); line-height: 0.98; letter-spacing: -0.025em;
	margin: 0 0 20px; color: #1A1A1B; color: var(--td-ink,#1A1A1B);
}
.mock-404 .nf-dek {
	font-family: "Geist", var(--td-sans), sans-serif; font-size: 17px;
	line-height: 1.6; color: #5C5C5A; color: var(--td-ink-2,#5C5C5A);
	margin: 0 0 28px; max-width: 46ch;
}
.mock-404 .nf-actions { display: flex; gap: 10px; flex-wrap: wrap; }
.mock-404 .nf-btn {
	font-family: "Geist Mono", var(--td-mono), monospace; font-size: 12px;
	letter-spacing: 0.08em; text-transform: uppercase; text-decoration: none;
	padding: 12px 18px; display: inline-block;
}
.mock-404 .nf-btn-solid {
	color: #FBFBF9; color: var(--td-canvas,#FBFBF9);
	background: #1A1A1B; background: var(--td-ink,#1A1A1B);
}
.mock-404 .nf-btn-solid:hover { background: #BE531B; background: var(--td-accent,#BE531B); }
.mock-404 .nf-btn-ghost { color: #1A1A1B; color: var(--td-ink,#1A1A1B); border: 1px solid #cfc8ba; background: transparent; }
.mock-404 .nf-btn-ghost:hover { border-color: #BE531B; border-color: var(--td-accent,#BE531B); color: #BE531B; color: var(--td-accent,#BE531B); }

/* Scatter graphic (mock scatterStyle: image box -> "scattered" dot placeholder, 4/3) */
.mock-404 .nf-scatter {
	aspect-ratio: 4 / 3; width: 100%;
	background: #F4F1EA; background: var(--td-cream,#F4F1EA);
	border: 1px solid #e7e3da; border-color: var(--td-hair,#e7e3da);
	position: relative; overflow: hidden;
	background-image:
		radial-gradient(circle, #cfc8ba 1.4px, transparent 1.6px),
		radial-gradient(circle, #d8d2c8 1.1px, transparent 1.3px);
	background-size: 26px 26px, 19px 19px;
	background-position: 0 0, 9px 13px;
}
@media (max-width: 760px) {
	.mock-404 .nf-grid { grid-template-columns: 1fr; }
	.mock-404 .nf-scatter { display: none; }
}
/* ---- Article grid: author/share/latest rail + reading column (Wave 1, 2026-07-02).
 * Two columns on desktop (founder chose 2-col over 3); the 720px prose column
 * is unchanged — the grid centres the pair inside the 1240px wrap. ---- */
.art-grid {
	display: grid;
	grid-template-columns: 232px minmax(0, 720px);
	gap: clamp(28px, 4.5vw, 72px);
	justify-content: center;
	margin-top: 0.5rem;
}
.art-grid .art-body { margin-inline: 0; }
.art-rail { min-width: 0; }
.art-rail-inner {
	position: sticky;
	top: 84px;
	display: flex;
	flex-direction: column;
	gap: 1.375rem;
	padding-top: 0.375rem;
}
.rail-author { display: flex; flex-direction: column; gap: 0.4375rem; padding-bottom: 1.125rem; border-bottom: 1px solid var(--td-hair); }
.rail-author-photo { width: 84px; }
.rail-author-photo img { display: block; width: 84px; height: 84px; object-fit: cover; border-radius: 50%; background: var(--td-cream); border: 1px solid var(--td-hair); }
.rail-author-name { font-family: var(--td-serif, Fraunces, serif); font-size: 1.0625rem; font-weight: 600; color: var(--td-ink); text-decoration: none; line-height: 1.25; margin-top: 0.25rem; }
.rail-author-name:hover { color: var(--td-accent); }
.rail-author-role { font-size: 0.8125rem; color: var(--td-ink-3, #8A857C); line-height: 1.45; }
.rail-date { font-family: var(--td-mono); font-size: 0.6875rem; letter-spacing: 0.06em; text-transform: uppercase; color: var(--td-ink-3, #8A857C); margin-top: 0.125rem; }
.rail-sec { padding-bottom: 1.125rem; border-bottom: 1px solid var(--td-hair); }
.rail-sec:last-child { border-bottom: 0; }
.rail-lab { font-family: var(--td-mono); font-size: 0.6875rem; font-weight: 500; letter-spacing: 0.08em; text-transform: uppercase; color: var(--td-ink-2, #55524C); margin: 0 0 0.625rem; }
.rail-icons { display: flex; flex-wrap: wrap; gap: 0.4375rem; }
.rail-ic {
	display: inline-flex; align-items: center; justify-content: center;
	width: 32px; height: 32px; border: 1px solid var(--td-hair); border-radius: 50%;
	color: var(--td-ink-2, #55524C); background: transparent; cursor: pointer; text-decoration: none;
	transition: color 120ms ease, border-color 120ms ease;
}
.rail-ic:hover { color: var(--td-accent); border-color: var(--td-accent); }
.rail-copy.is-copied { color: var(--td-up, #1B8E4A); border-color: var(--td-up, #1B8E4A); }
.rail-latest .rail-item { display: flex; flex-direction: column; gap: 0.1875rem; padding: 0.6875rem 0; border-bottom: 1px solid var(--td-hair); }
.rail-latest .rail-item:last-child { border-bottom: 0; padding-bottom: 0; }
.rail-item-cat { font-family: var(--td-mono); font-size: 0.625rem; font-weight: 500; letter-spacing: 0.09em; text-transform: uppercase; color: var(--td-accent); text-decoration: none; }
.rail-item-title { font-family: var(--td-serif, Fraunces, serif); font-size: 0.875rem; font-weight: 600; line-height: 1.35; color: var(--td-ink); text-decoration: none; }
.rail-item-title:hover { color: var(--td-accent); }
.rail-item-date { font-family: var(--td-mono); font-size: 0.625rem; letter-spacing: 0.05em; color: var(--td-ink-3, #8A857C); }

@media (max-width: 900px) {
	.art-grid { display: block; }
	.art-rail-inner { position: static; padding-top: 0; margin-bottom: 1.5rem; }
	.rail-author { flex-direction: row; align-items: center; gap: 0.875rem; }
	.rail-author-photo, .rail-author-photo img { width: 56px; height: 56px; }
	.rail-author-name { margin-top: 0; }
	.rail-author-role { display: none; }
	.rail-date { margin-left: auto; }
	.rail-latest { display: none; } /* Latest returns below the article via Related on small screens. */
}

/* ---- Heading system (Wave 1, 2026-07-02): section labels are now real,
 * per-page-dynamic H2s ("Reddit mentions for NVDA"). These resets keep the
 * rendered look identical to the old span/div labels — the base h2 styles
 * must not leak in. ---- */
h2.td-inst-shead-t,
h2.td-inst-aside-lab,
h2.td-cmd-shead,
h2.td-ctry-shead-t,
h2.td-macro-srt,
h2.td-macro-related-lab,
h2.rail-lab {
	margin: 0;
	font-size: inherit;
	font-weight: 600;
	line-height: inherit;
	letter-spacing: inherit;
	font-family: inherit;
	display: inline;
}
.td-inst-shead-meta-link { color: inherit; text-decoration: underline; text-underline-offset: 2px; }
.td-inst-shead-meta-link:hover { color: var(--td-accent); }
h2.td-sect-shead {
	font-family: var(--td-mono);
	font-size: 0.75rem;
	font-weight: 500;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: var(--td-ink-2, #55524C);
	margin: 0 0 1rem;
}
h2.about-mission-label,
h2.about-rule-label,
h2.method-rule-label {
	margin: 0;
	font-size: inherit;
	font-weight: 600;
	line-height: inherit;
	letter-spacing: inherit;
	font-family: inherit;
	display: inline;
}

/* ---- Article data CTA (replaces the bottom Related list, 2026-07-02) ---- */
.art-data-cta { max-width: 720px; margin: 2.25rem auto 0.5rem; }
.adc-lab { font-family: var(--td-mono); font-size: 0.6875rem; font-weight: 600; letter-spacing: 0.08em; text-transform: uppercase; color: var(--td-ink-2, #55524C); margin: 0 0 0.75rem; }
.adc-chips { display: flex; flex-wrap: wrap; gap: 0.5rem; margin-bottom: 1rem; }
.adc-chip {
	display: inline-flex; align-items: baseline; gap: 0.5rem;
	padding: 0.5rem 0.8125rem; border: 1px solid var(--td-hair); background: var(--td-cream);
	text-decoration: none; transition: border-color 120ms ease;
}
.adc-chip:hover { border-color: var(--td-accent); }
.adc-chip-sym { font-family: var(--td-mono); font-size: 0.8125rem; font-weight: 600; color: var(--td-ink); }
.adc-chip-name { font-size: 0.8125rem; color: var(--td-ink-3, #8A857C); }
.adc-chip-arrow { font-size: 0.8125rem; color: var(--td-accent); }
.adc-dash {
	display: flex; align-items: center; justify-content: space-between; gap: 1rem;
	padding: 1.125rem 1.25rem; border: 1px solid var(--td-ink); background: var(--td-ink, #1A1A1B);
	text-decoration: none; transition: background 120ms ease;
}
.adc-dash:hover { background: #2A2A2B; }
.adc-dash-title { display: block; font-family: var(--td-serif, Fraunces, serif); font-size: 1.0625rem; font-weight: 600; color: var(--td-paper, #F6F4EE); }
.adc-dash-sub { display: block; font-size: 0.8125rem; color: rgba(246,244,238,0.72); margin-top: 0.1875rem; }
.adc-dash-arrow { font-size: 1.25rem; color: var(--td-accent); flex: none; }
.td-inst-fact-link { color: var(--td-ink); text-decoration: underline; text-underline-offset: 2px; }
.td-inst-fact-link:hover { color: var(--td-accent); }

/* ---- About team (founder, 2026-07-02): one row of four; transparent
 * portraits blend straight into the page — no box, no border, no wash. ---- */
.about-team-grid { grid-template-columns: repeat(4, 1fr); }
@media (max-width: 900px) { .about-team-grid { grid-template-columns: repeat(2, 1fr); } }
.about-photo.imgbox { background: transparent; border: 0; }
.about-photo.imgbox::after { display: none; }

/* ---- Market table (/stocks, /etfs + country teasers, 2026-07-02): CMC's
 * function, our face — cream ground, hairline rows, mono numerals, colour
 * only on the % column. ---- */
.mt-filters { display: flex; flex-wrap: wrap; align-items: flex-end; gap: 0.875rem; margin: 0 0 1.125rem; }
.mt-filter { display: flex; flex-direction: column; gap: 0.3125rem; }
.mt-filter-k { font-family: var(--td-mono); font-size: 0.625rem; font-weight: 500; letter-spacing: 0.08em; text-transform: uppercase; color: var(--td-ink-3, #8A857C); }
.mt-filter select {
	font: inherit; font-size: 0.8125rem; padding: 0.375rem 1.75rem 0.375rem 0.625rem;
	border: 1px solid var(--td-hair); background: var(--td-cream); color: var(--td-ink);
	border-radius: 0; appearance: none;
	background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='8' height='5'%3E%3Cpath d='M0 0l4 5 4-5z' fill='%2355524C'/%3E%3C/svg%3E");
	background-repeat: no-repeat; background-position: right 0.625rem center;
}
.mt-filter-dir { flex-direction: row; gap: 0; }
.mt-filter-dir button {
	font: inherit; font-size: 0.75rem; padding: 0.4375rem 0.8125rem; cursor: pointer;
	border: 1px solid var(--td-hair); background: transparent; color: var(--td-ink-2, #55524C);
}
.mt-filter-dir button + button { border-left: 0; }
.mt-filter-dir button.is-on { background: var(--td-ink); color: var(--td-paper, #F6F4EE); border-color: var(--td-ink); }
.mt-count { font-family: var(--td-mono); font-size: 0.6875rem; color: var(--td-ink-3, #8A857C); margin-left: auto; padding-bottom: 0.5rem; }
.mt-wrap { overflow-x: auto; }
.mt-table { width: 100%; border-collapse: collapse; font-size: 0.875rem; }
.mt-table th, .mt-table td { padding: 0.6875rem 0.75rem; border-bottom: 1px solid var(--td-hair); text-align: left; white-space: nowrap; }
.mt-table .td-r { text-align: right; }
.mt-table thead th {
	font-family: var(--td-mono); font-size: 0.625rem; font-weight: 500; letter-spacing: 0.08em;
	text-transform: uppercase; color: var(--td-ink-3, #8A857C); border-bottom-color: var(--td-ink);
}
.mt-table thead button {
	font: inherit; color: inherit; background: none; border: 0; padding: 0; cursor: pointer;
	letter-spacing: inherit; text-transform: inherit;
}
.mt-table thead button:hover, .mt-table thead button.is-on { color: var(--td-accent); }
.mt-table thead button.is-on::after { content: " ↓"; }
.mt-table thead button.is-on.is-asc::after { content: " ↑"; }
.mt-rank { color: var(--td-ink-3, #8A857C); font-size: 0.75rem; width: 2rem; }
.mt-name a { display: flex; flex-direction: column; gap: 1px; text-decoration: none; }
.mt-sym { font-family: var(--td-mono); font-size: 0.8125rem; font-weight: 600; color: var(--td-ink); }
.mt-company { font-size: 0.75rem; color: var(--td-ink-3, #8A857C); }
.mt-name a:hover .mt-sym { color: var(--td-accent); }
.mt-up { color: var(--td-up, #1B8E4A); }
.mt-down { color: var(--td-down, #C73B3B); }
.mt-sent { display: block; }
.mt-split { display: flex; width: 64px; height: 3px; margin: 4px 0 0 auto; background: var(--td-hair); }
.mt-split span:nth-child(1) { background: var(--td-up, #1B8E4A); }
.mt-split span:nth-child(2) { background: #B9B4AA; }
.mt-split span:nth-child(3) { background: var(--td-down, #C73B3B); }
.mt-chip {
	display: inline-block; font-family: var(--td-mono); font-size: 0.625rem; letter-spacing: 0.05em;
	padding: 0.125rem 0.4375rem; border: 1px solid var(--td-hair); color: var(--td-ink-2, #55524C);
}
.mt-chip--x { color: var(--td-ink-3, #8A857C); }
.mt-see-all {
	display: inline-flex; align-items: center; gap: 0.4375rem; margin-top: 0.875rem;
	font-family: var(--td-mono); font-size: 0.75rem; letter-spacing: 0.05em; text-transform: uppercase;
	color: var(--td-accent); text-decoration: none;
}
.mt-see-all:hover { text-decoration: underline; text-underline-offset: 3px; }
@media (max-width: 700px) {
	.mt-table { font-size: 0.8125rem; }
	.mt-table th, .mt-table td { padding: 0.5625rem 0.5rem; }
	.mt-company { display: none; }
}

/* ---- Country dashboard, single column (founder, 2026-07-02): chip-row
 * market switcher replaces the left rail; tables get full width. ---- */
/* /countries worldwide dashboard --------------------------------------- */
.td-ww-hero {
	display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 440px);
	gap: clamp(28px, 4vw, 64px); align-items: center;
	margin: 0 0 clamp(34px, 4.4vw, 54px);
}
.td-ww-stats { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: clamp(14px, 2vw, 26px) clamp(18px, 2.6vw, 34px); }
.td-ww-stat { border-top: 2px solid var(--td-ink); padding-top: 10px; display: flex; flex-direction: column; gap: 4px; }
.td-ww-stat-n { font-family: var(--td-mono); font-size: clamp(1.5rem, 2.6vw, 2.125rem); font-weight: 500; line-height: 1; color: var(--td-ink); font-variant-numeric: tabular-nums; }
.td-ww-stat-k { font-family: var(--td-mono); font-size: 0.625rem; letter-spacing: 0.12em; text-transform: uppercase; color: var(--td-ink-3); }
.td-ww-markets { margin: clamp(18px, 2.4vw, 28px) 0 0; }
@media (max-width: 900px) {
	.td-ww-hero { grid-template-columns: 1fr; }
	.td-ww-hero .td-coverage__sphere { order: -1; width: min(100%, 340px); }
}

/* Market-tagged news list (country pages + /countries) */
.td-ctry-news { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0 clamp(24px, 3vw, 44px); }
.td-ctry-news .rail-item { display: flex; flex-direction: column; gap: 0.1875rem; padding: 0.6875rem 0; border-bottom: 1px solid var(--td-hair); }
@media (max-width: 720px) {
	.td-ctry-news { grid-template-columns: 1fr; }
}

.td-ctry-jump { display: flex; flex-wrap: wrap; gap: 0.375rem; margin: 0.25rem 0 1.375rem; }
.td-ctry-jump-item {
	display: inline-flex; align-items: center; gap: 0.375rem;
	font-family: var(--td-mono); font-size: 0.6875rem; letter-spacing: 0.05em;
	padding: 0.3125rem 0.5625rem; border: 1px solid var(--td-hair);
	color: var(--td-ink-2, #55524C); text-decoration: none;
}
.td-ctry-jump-item:hover { border-color: var(--td-accent); color: var(--td-accent); }
.td-ctry-jump-item.is-on { background: var(--td-ink); color: var(--td-paper, #F6F4EE); border-color: var(--td-ink); }
.td-ctry-body--full { max-width: none; }
.td-ctry-macro-row { display: flex; flex-wrap: wrap; gap: 0.5rem; margin: 0.625rem 0 1.375rem; }
