/* ─── dayogreats / components.css ─────────────────────
 * All component-level CSS. Loaded after tokens + animations.
 * ────────────────────────────────────────────────────── */

/* ── MASTHEAD ──────────────────────────────────────── */
.masthead {
	top: 0;
	z-index: 50;
	background: color-mix(in srgb, var(--paper) 88%, transparent);
	border-bottom: 1px solid var(--rule);
	-webkit-backdrop-filter: blur(14px) saturate(140%);
	backdrop-filter: blur(14px) saturate(140%);
	transition: box-shadow 0.3s ease-out, background 0.3s, border-color 0.3s, transform 0.35s cubic-bezier(0.65, 0, 0.35, 1);
	width: 100%;
}
/* Sticky variant — only when toggle enabled */
.masthead.is-sticky {
	position: -webkit-sticky;
	position: sticky;
}
/* Static variant — explicit class so future overrides are easy */
.masthead.is-static {
	position: relative;
}

/* Default shadow behavior */
.masthead.is-sticky.scroll-behavior-shadow.is-scrolled {
	box-shadow: 0 1px 0 0 var(--rule-soft), 0 8px 32px -16px rgba(20, 17, 14, 0.12);
	background: color-mix(in srgb, var(--paper) 94%, transparent);
}

/* Shrink behavior — compact header when scrolled */
.masthead.is-sticky.scroll-behavior-shrink.is-scrolled .masthead-inner {
	padding-top: 10px;
	padding-bottom: 10px;
}
.masthead.is-sticky.scroll-behavior-shrink.is-scrolled .monogram {
	font-size: 20px;
}
.masthead.is-sticky.scroll-behavior-shrink {
	transition: box-shadow 0.3s, background 0.3s;
}
.masthead.is-sticky.scroll-behavior-shrink .masthead-inner {
	transition: padding 0.3s cubic-bezier(0.65, 0, 0.35, 1);
}
.masthead.is-sticky.scroll-behavior-shrink .monogram {
	transition: font-size 0.3s cubic-bezier(0.65, 0, 0.35, 1);
}
.masthead.is-sticky.scroll-behavior-shrink.is-scrolled {
	box-shadow: 0 1px 0 0 var(--rule-soft), 0 4px 20px -12px rgba(20, 17, 14, 0.1);
}

/* Hide-on-scroll-down behavior — like Medium */
.masthead.is-sticky.scroll-behavior-hide-on-scroll.is-hidden {
	transform: translateY(-100%);
}
.masthead.is-sticky.scroll-behavior-hide-on-scroll.is-scrolled {
	box-shadow: 0 1px 0 0 var(--rule-soft), 0 4px 20px -12px rgba(20, 17, 14, 0.1);
}

/* No-change behavior */
.masthead.is-sticky.scroll-behavior-none.is-scrolled {
	/* deliberately no-op */
}

/* Legacy fallback — if no class set, still works (was hardcoded before v0.24) */
.masthead:not(.is-sticky):not(.is-static) {
	position: -webkit-sticky;
	position: sticky;
}
.masthead:not(.is-sticky):not(.is-static).is-scrolled {
	box-shadow: 0 1px 0 0 var(--rule-soft), 0 8px 32px -16px rgba(20, 17, 14, 0.12);
	background: color-mix(in srgb, var(--paper) 94%, transparent);
}

.masthead-inner {
	max-width: 1400px;
	margin: 0 auto;
	padding: 18px 48px;
	display: flex;
	justify-content: space-between;
	align-items: center;
	gap: 32px;
}
.monogram {
	font-family: 'Fraunces', Georgia, serif;
	font-weight: 600;
	font-size: 28px;
	letter-spacing: -0.04em;
	color: var(--ink);
	text-decoration: none;
	position: relative;
	display: inline-block;
	padding: 4px 2px 10px;
	line-height: 1;
}
.monogram::before {
	content: "";
	position: absolute;
	left: 2px;
	right: 2px;
	bottom: 4px;
	height: 2px;
	background: var(--ink);
	transition: background 0.3s cubic-bezier(0.65, 0, 0.35, 1), transform 0.3s cubic-bezier(0.65, 0, 0.35, 1);
	transform-origin: left;
}
.monogram:hover::before {
	background: var(--accent);
	transform: scaleX(0.6);
}
.breadcrumb {
	display: flex;
	align-items: center;
	gap: 14px;
	font-family: 'JetBrains Mono', monospace;
	font-size: 11px;
	text-transform: uppercase;
	letter-spacing: 0.16em;
	color: var(--ink-faint);
}
.breadcrumb a { color: var(--ink); text-decoration: none; transition: color 0.2s; }
.breadcrumb a:hover { color: var(--accent); }
.breadcrumb .sep { color: var(--rule); }
.breadcrumb .current { color: var(--accent); }

.nav { display: flex; gap: 28px; align-items: center; }
.nav a {
	font-family: 'JetBrains Mono', monospace;
	font-size: 11px;
	text-transform: uppercase;
	letter-spacing: 0.14em;
	color: var(--ink-soft);
	text-decoration: none;
	padding: 6px 0;
	position: relative;
	transition: color 0.2s;
}
.nav a:not(.nav-cta)::after {
	content: "";
	position: absolute;
	left: 0;
	bottom: 0;
	width: 100%;
	height: 1px;
	background: var(--accent);
	transform-origin: right;
	transform: scaleX(0);
	transition: transform 0.3s cubic-bezier(0.65, 0, 0.35, 1);
}
.nav a:not(.nav-cta):hover::after { transform-origin: left; transform: scaleX(1); }
.nav a:hover { color: var(--accent); }

/* Coming-soon dead links: present in nav, but visibly distinguished. */
.nav a.nav-soon,
.footer a.nav-soon {
	color: var(--ink-faint);
	position: relative;
	cursor: not-allowed;
}
.nav a.nav-soon:hover,
.footer a.nav-soon:hover { color: var(--ink-faint); }
.nav a.nav-soon::after,
.footer a.nav-soon { border-bottom-color: transparent !important; }
.nav a.nav-soon::after { display: none !important; }
.nav a.nav-soon::before,
.footer a.nav-soon::before {
	content: "Soon";
	position: absolute;
	top: -10px;
	right: -8px;
	font-family: 'JetBrains Mono', monospace;
	font-size: 8px;
	letter-spacing: 0.16em;
	color: var(--accent);
	background: color-mix(in srgb, var(--accent) 15%, transparent);
	padding: 2px 4px;
	border-radius: 2px;
	opacity: 0;
	transform: translateY(2px);
	transition: opacity 0.25s, transform 0.25s;
	pointer-events: none;
}
.nav a.nav-soon:hover::before,
.footer a.nav-soon:hover::before { opacity: 1; transform: translateY(0); }
/* In footer sublist (smaller), keep the badge positioned right */
.footer-sublist a.nav-soon::before {
	top: -8px;
	right: -6px;
	font-size: 7px;
}

.nav-cta {
	color: var(--paper) !important;
	background: var(--ink);
	padding: 9px 16px !important;
	border: 1px solid var(--ink);
	overflow: hidden;
	position: relative;
	z-index: 1;
}
.nav-cta::before {
	content: "";
	position: absolute;
	inset: 0;
	background: var(--accent);
	transform: translateY(101%);
	transition: transform 0.4s cubic-bezier(0.65, 0, 0.35, 1);
	z-index: -1;
}
.nav-cta:hover::before { transform: translateY(0); }
.nav-cta:hover { border-color: var(--accent); }

/* ── HERO (homepage) ───────────────────────────────── */
.hero {
	max-width: 1400px;
	margin: 0 auto;
	padding: 88px 48px 64px;
	position: relative;
}
.hero-eyebrow {
	font-family: 'JetBrains Mono', monospace;
	font-size: 11px;
	text-transform: uppercase;
	letter-spacing: 0.22em;
	color: var(--ink-faint);
	display: flex;
	align-items: center;
	gap: 16px;
	margin-bottom: 48px;
	opacity: 0;
	animation: fadeInUp 0.7s 0.15s forwards;
}
.hero-eyebrow::before, .hero-eyebrow::after {
	content: "";
	flex: 1;
	height: 1px;
	background: var(--rule);
}
.hero-eyebrow::before { max-width: 60px; }
.hero-name {
	font-family: 'Newsreader', serif;
	font-weight: 500;
	font-variation-settings: "opsz" 72;
	font-size: clamp(56px, 9.5vw, 156px);
	line-height: 0.98;
	letter-spacing: -0.03em;
	color: var(--ink);
	margin-bottom: 28px;
	max-width: 1200px;
}
.hero-name .credential {
	font-style: italic;
	font-weight: 400;
	color: var(--accent);
	display: inline-block;
}

.identity-line {
	display: flex;
	flex-wrap: wrap;
	gap: 18px;
	align-items: center;
	margin: 36px 0 32px;
	padding-top: 32px;
	border-top: 1px solid var(--rule);
	position: relative;
	opacity: 0;
	animation: fadeInUp 0.7s 1.2s forwards;
}
.identity-line span:not(.pipe) {
	font-family: 'DM Sans', sans-serif;
	font-size: 13px;
	font-weight: 500;
	text-transform: uppercase;
	letter-spacing: 0.16em;
	color: var(--ink);
}
.identity-line .pipe {
	color: var(--accent);
	font-family: 'Newsreader', serif;
	font-size: 20px;
	font-style: italic;
	font-weight: 300;
}

.positioning {
	font-family: 'Newsreader', serif;
	font-weight: 350;
	font-style: normal;
	font-variation-settings: "opsz" 60;
	font-size: clamp(22px, 2.4vw, 30px);
	line-height: 1.35;
	color: var(--ink-soft);
	max-width: 880px;
	margin-bottom: 56px;
	letter-spacing: -0.01em;
	opacity: 0;
	animation: fadeInUp 0.7s 1.95s forwards;
}
.positioning em { color: var(--ink); font-style: italic; }

.hero-cta-row {
	display: flex;
	gap: 20px;
	align-items: center;
	flex-wrap: wrap;
	opacity: 0;
	animation: fadeInUp 0.7s 2.15s forwards;
}
.btn-primary {
	background: var(--ink);
	color: var(--paper);
	padding: 16px 28px;
	border: 1px solid var(--ink);
	display: inline-flex;
	align-items: center;
	gap: 12px;
	overflow: hidden;
	z-index: 1;
	isolation: isolate;
	font-family: 'JetBrains Mono', monospace;
	font-size: 12px;
	text-transform: uppercase;
	letter-spacing: 0.16em;
	text-decoration: none;
	position: relative;
}
.btn-primary::before {
	content: "";
	position: absolute;
	inset: 0;
	background: var(--accent);
	transform: translateY(101%);
	transition: transform 0.45s cubic-bezier(0.65, 0, 0.35, 1);
	z-index: -1;
}
.btn-primary:hover { border-color: var(--accent); }
.btn-primary:hover::before { transform: translateY(0); }
.btn-primary .arrow { transition: transform 0.3s cubic-bezier(0.65, 0, 0.35, 1); }
.btn-primary:hover .arrow { transform: translateX(6px); }
.btn-link {
	color: var(--ink);
	padding-bottom: 4px;
	position: relative;
	font-family: 'JetBrains Mono', monospace;
	font-size: 12px;
	text-transform: uppercase;
	letter-spacing: 0.16em;
	text-decoration: none;
}
.btn-link::after {
	content: "";
	position: absolute;
	left: 0;
	right: 0;
	bottom: 0;
	height: 1px;
	background: var(--ink);
	transform-origin: right;
	transition: transform 0.4s cubic-bezier(0.65, 0, 0.35, 1), background 0.2s;
}
.btn-link:hover { color: var(--accent); }
.btn-link:hover::after { background: var(--accent); transform-origin: left; transform: scaleX(1); }

.hero-meta {
	margin-top: 88px;
	padding-top: 24px;
	border-top: 1px solid var(--rule);
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: 32px;
	opacity: 0;
	animation: fadeInUp 0.7s 2.35s forwards;
}
.hero-meta-item { display: flex; flex-direction: column; gap: 6px; }
.hero-meta-label {
	font-family: 'JetBrains Mono', monospace;
	font-size: 10px;
	text-transform: uppercase;
	letter-spacing: 0.2em;
	color: var(--ink-faint);
}
.hero-meta-value {
	font-family: 'Newsreader', serif;
	font-weight: 450;
	font-variation-settings: "opsz" 14;
	font-size: 17px;
	color: var(--ink);
	line-height: 1.3;
}
.hero-meta-value .mono { font-size: 14px; color: var(--ink-soft); }

/* ── FROM THEORY TO FIELD ──────────────────────────── */
.ttf {
	background: var(--ink);
	color: var(--paper);
	position: relative;
	overflow: hidden;
	padding: 120px 0 140px;
	margin-top: 80px;
}
.ttf::before {
	content: "";
	position: absolute;
	inset: 0;
	background-image: radial-gradient(rgba(242, 235, 221, 0.05) 1px, transparent 1px);
	background-size: 28px 28px;
	pointer-events: none;
}
.ttf::after {
	content: "";
	position: absolute;
	width: 700px;
	height: 700px;
	border-radius: 50%;
	background: radial-gradient(circle, rgba(122, 31, 31, 0.35) 0%, transparent 65%);
	top: 20%;
	right: -200px;
	filter: blur(40px);
	animation: drift 18s ease-in-out infinite alternate;
	pointer-events: none;
}
.ttf-inner {
	max-width: 1400px;
	margin: 0 auto;
	padding: 0 48px;
	position: relative;
}
.ttf-eyebrow {
	font-family: 'JetBrains Mono', monospace;
	font-size: 11px;
	text-transform: uppercase;
	letter-spacing: 0.24em;
	color: var(--gilt);
	margin-bottom: 28px;
	display: flex;
	align-items: center;
	gap: 12px;
}
.ttf-eyebrow::before {
	content: "§";
	font-family: 'Newsreader', serif;
	font-style: italic;
	color: var(--gilt);
	font-size: 18px;
}
.ttf-title {
	font-family: 'Newsreader', serif;
	font-weight: 500;
	font-variation-settings: "opsz" 72;
	font-size: clamp(48px, 7vw, 96px);
	line-height: 0.98;
	letter-spacing: -0.025em;
	margin-bottom: 24px;
	max-width: 1100px;
	color: var(--paper);
}
.ttf-title em {
	font-style: italic;
	color: var(--gilt);
	font-variation-settings: "opsz" 72;
}
.ttf-subtitle {
	font-family: 'Newsreader', serif;
	font-weight: 300;
	font-variation-settings: "opsz" 30;
	font-style: italic;
	font-size: 22px;
	color: rgba(242, 235, 221, 0.6);
	margin-bottom: 88px;
	max-width: 640px;
}

.ttf-map {
	position: relative;
	padding-left: 48px;
}
.ttf-spine {
	position: absolute;
	left: 12px;
	top: 0;
	bottom: 0;
	width: 1px;
	background: rgba(242, 235, 221, 0.15);
}
.ttf-spine-fill {
	position: absolute;
	inset: 0;
	background: linear-gradient(to bottom, var(--gilt) 0%, var(--accent) 50%, var(--gilt) 100%);
	transform-origin: top;
	transform: scaleY(0);
	transition: transform 0.18s linear;
}
.ttf-spine-pulse {
	position: absolute;
	left: -3px;
	width: 7px;
	height: 7px;
	border-radius: 50%;
	background: var(--gilt);
	box-shadow: 0 0 0 4px rgba(176, 133, 64, 0.2);
	transform: translateY(-50%);
	top: 0;
	transition: top 0.3s cubic-bezier(0.65, 0, 0.35, 1);
}
.ttf-spine-pulse::after {
	content: "";
	position: absolute;
	inset: -4px;
	border-radius: 50%;
	border: 1px solid var(--gilt);
	animation: ripple 1.8s ease-out infinite;
}

.ttf-row {
	display: grid;
	grid-template-columns: 60px 1fr 140px 1fr 130px;
	gap: 28px;
	padding: 44px 0;
	border-bottom: 1px solid rgba(242, 235, 221, 0.12);
	align-items: center;
	transition: padding-left 0.4s cubic-bezier(0.65, 0, 0.35, 1);
	opacity: 0.35;
	transform: translateY(20px);
}
.ttf-row.is-revealed {
	opacity: 1;
	transform: translateY(0);
	transition: opacity 0.7s cubic-bezier(0.65, 0, 0.35, 1), transform 0.7s cubic-bezier(0.65, 0, 0.35, 1);
}
.ttf-row.is-active { padding-left: 16px; }
.ttf-row.is-active .ttf-connector { opacity: 1; }
.ttf-row.is-active .connector-particle { animation-duration: 1.6s; }
.ttf-num {
	font-family: 'JetBrains Mono', monospace;
	font-size: 12px;
	color: var(--gilt);
	letter-spacing: 0.1em;
	position: relative;
}
.ttf-num::before {
	content: "";
	position: absolute;
	left: -36px;
	top: 50%;
	width: 24px;
	height: 1px;
	background: var(--gilt);
	transform: translateY(-50%) scaleX(0);
	transform-origin: right;
	transition: transform 0.6s cubic-bezier(0.65, 0, 0.35, 1) 0.2s;
}
.ttf-row.is-revealed .ttf-num::before { transform: translateY(-50%) scaleX(1); }
.ttf-cell-label {
	font-family: 'JetBrains Mono', monospace;
	font-size: 10px;
	text-transform: uppercase;
	letter-spacing: 0.22em;
	color: rgba(242, 235, 221, 0.4);
	margin-bottom: 10px;
}
.ttf-cell-title {
	font-family: 'Newsreader', serif;
	font-weight: 450;
	font-variation-settings: "opsz" 36;
	font-size: 26px;
	line-height: 1.2;
	letter-spacing: -0.01em;
	color: var(--paper);
	margin-bottom: 6px;
	transition: color 0.3s;
}
.ttf-row.is-active .ttf-cell-title { color: var(--gilt); }
.ttf-cell-desc {
	font-family: 'DM Sans', sans-serif;
	font-size: 14px;
	line-height: 1.5;
	color: rgba(242, 235, 221, 0.62);
	max-width: 360px;
}
.ttf-connector {
	width: 140px;
	height: 60px;
	position: relative;
	opacity: 0.4;
	transition: opacity 0.4s;
}
.ttf-connector svg { width: 100%; height: 100%; overflow: visible; }
.connector-line {
	stroke: var(--gilt);
	stroke-width: 1;
	fill: none;
	stroke-dasharray: 200;
	stroke-dashoffset: 200;
	transition: stroke-dashoffset 1.2s cubic-bezier(0.65, 0, 0.35, 1);
}
.ttf-row.is-revealed .connector-line { stroke-dashoffset: 0; }
.connector-arrowhead {
	fill: var(--gilt);
	opacity: 0;
	transition: opacity 0.3s 1.2s;
}
.ttf-row.is-revealed .connector-arrowhead { opacity: 1; }
.connector-node {
	fill: var(--ink);
	stroke: var(--gilt);
	stroke-width: 1;
}
.connector-particle {
	fill: var(--gilt);
	filter: drop-shadow(0 0 4px rgba(176, 133, 64, 0.7));
	animation: travel 3s cubic-bezier(0.55, 0, 0.45, 1) infinite;
}
.connector-particle-2 { animation-delay: 1s; opacity: 0.6; }
.connector-particle-3 { animation-delay: 2s; opacity: 0.35; }

.ttf-status { text-align: right; }
.status-badge {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	font-family: 'JetBrains Mono', monospace;
	font-size: 10px;
	text-transform: uppercase;
	letter-spacing: 0.18em;
	padding: 6px 10px;
	border: 1px solid;
}
.status-badge .pulse-dot {
	width: 6px;
	height: 6px;
	border-radius: 50%;
	background: currentColor;
	position: relative;
}
.status-badge .pulse-dot::after {
	content: "";
	position: absolute;
	inset: -3px;
	border-radius: 50%;
	border: 1px solid currentColor;
	animation: ripple 1.6s ease-out infinite;
}
.status-alpha { color: var(--gilt); border-color: var(--gilt); }
.status-building { color: #9CB8A0; border-color: #9CB8A0; }
.status-ip { color: rgba(242, 235, 221, 0.85); border-color: rgba(242, 235, 221, 0.5); }
.status-defended { color: var(--paper); border-color: var(--paper); background: rgba(242, 235, 221, 0.05); }

.ttf-coda {
	margin-top: 80px;
	text-align: center;
	font-family: 'Newsreader', serif;
	font-style: italic;
	font-weight: 300;
	font-size: 32px;
	color: var(--gilt);
	letter-spacing: -0.01em;
}
.ttf-coda::before, .ttf-coda::after {
	content: " — ";
	color: rgba(242, 235, 221, 0.3);
}

/* ── CASE STUDY & ESSAY LAYOUT ─────────────────────── */
.case, .essay-page {
	max-width: 1400px;
	margin: 0 auto;
	padding: 96px 48px 64px;
}
.case-meta-bar {
	display: flex;
	gap: 12px;
	margin-bottom: 32px;
	flex-wrap: wrap;
}
.case-pill {
	font-family: 'JetBrains Mono', monospace;
	font-size: 10px;
	text-transform: uppercase;
	letter-spacing: 0.18em;
	padding: 6px 10px;
	border: 1px solid var(--ink);
	color: var(--ink);
}
.case-pill.accent { background: var(--ink); color: var(--paper); }
.case-pill:hover { background: var(--accent); color: var(--paper); border-color: var(--accent); }

.case-eyebrow {
	font-family: 'JetBrains Mono', monospace;
	font-size: 11px;
	text-transform: uppercase;
	letter-spacing: 0.2em;
	color: var(--accent);
	margin-bottom: 16px;
}
.case-title {
	font-family: 'Newsreader', serif;
	font-weight: 500;
	font-variation-settings: "opsz" 60;
	font-size: clamp(38px, 5vw, 64px);
	line-height: 1.05;
	letter-spacing: -0.02em;
	color: var(--ink);
	margin-bottom: 28px;
	max-width: 1000px;
}
.case-title em { font-style: italic; color: var(--accent); }
.case-deck {
	font-family: 'Newsreader', serif;
	font-weight: 350;
	font-variation-settings: "opsz" 30;
	font-style: italic;
	font-size: 22px;
	line-height: 1.4;
	color: var(--ink-soft);
	max-width: 720px;
	margin-bottom: 56px;
	border-left: 2px solid var(--accent);
	padding-left: 20px;
}
.case-body {
	display: grid;
	grid-template-columns: 1fr 280px;
	gap: 80px;
	align-items: start;
}
.case-main { max-width: 680px; }
.case-sidebar {
	position: sticky;
	top: 110px;
	border-top: 1px solid var(--ink);
	padding-top: 24px;
}
.sidebar-block { margin-bottom: 28px; }
.sidebar-label {
	font-family: 'JetBrains Mono', monospace;
	font-size: 10px;
	text-transform: uppercase;
	letter-spacing: 0.22em;
	color: var(--ink-faint);
	margin-bottom: 8px;
}
.sidebar-value {
	font-family: 'Newsreader', serif;
	font-weight: 450;
	font-variation-settings: "opsz" 14;
	font-size: 15px;
	color: var(--ink);
	line-height: 1.4;
}
.sidebar-value.mono-val {
	font-family: 'JetBrains Mono', monospace;
	font-size: 12px;
	color: var(--ink-soft);
}
.sidebar-block a {
	color: var(--accent);
	text-decoration: none;
	border-bottom: 1px solid transparent;
	transition: border-color 0.2s;
}
.sidebar-block a:hover { border-color: var(--accent); }

/* ── FIELD LOG (writing index) ─────────────────────── */
.field-log {
	background: var(--paper-soft);
	border-top: 1px solid var(--rule);
	border-bottom: 1px solid var(--rule);
	padding: 96px 0;
	position: relative;
	transition: background 0.6s, border-color 0.6s;
}
.field-log::before {
	content: "";
	position: absolute;
	inset: 0;
	background-image: linear-gradient(to bottom, var(--rule-soft) 1px, transparent 1px);
	background-size: 100% 32px;
	pointer-events: none;
	opacity: 0.6;
}
.field-inner {
	max-width: 1400px;
	margin: 0 auto;
	padding: 0 48px;
	position: relative;
}
.section-eyebrow {
	font-family: 'JetBrains Mono', monospace;
	font-size: 11px;
	text-transform: uppercase;
	letter-spacing: 0.24em;
	color: var(--accent);
	margin-bottom: 20px;
	display: flex;
	align-items: center;
	gap: 12px;
}
.section-eyebrow::before {
	content: "§";
	font-family: 'Newsreader', serif;
	font-style: italic;
	font-size: 18px;
}
.section-title {
	font-family: 'Newsreader', serif;
	font-weight: 500;
	font-variation-settings: "opsz" 72;
	font-size: clamp(36px, 5vw, 64px);
	line-height: 1.0;
	letter-spacing: -0.025em;
	color: var(--ink);
	margin-bottom: 18px;
	max-width: 900px;
}
.section-title em { font-style: italic; color: var(--accent); font-variation-settings: "opsz" 72; }
.section-deck {
	font-family: 'Newsreader', serif;
	font-weight: 350;
	font-variation-settings: "opsz" 30;
	font-style: italic;
	font-size: 20px;
	color: var(--ink-soft);
	margin-bottom: 56px;
	max-width: 660px;
}

.log-grid {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 1px;
	background: var(--rule);
	border: 1px solid var(--rule);
}
.log-card {
	background: var(--paper);
	padding: 28px;
	display: flex;
	flex-direction: column;
	gap: 14px;
	min-height: 240px;
	position: relative;
	cursor: pointer;
	transition: background 0.3s;
	text-decoration: none;
	color: inherit;
}
.log-card:hover { background: var(--paper-deep); }
.log-card-meta {
	display: flex;
	justify-content: space-between;
	align-items: center;
	font-family: 'JetBrains Mono', monospace;
	font-size: 9px;
	text-transform: uppercase;
	letter-spacing: 0.2em;
	color: var(--ink-faint);
}
.log-card-meta .date { color: var(--ink-soft); }
.log-card-meta .tag { padding: 3px 7px; border: 1px solid var(--accent); color: var(--accent); }
.log-card-title {
	font-family: 'Newsreader', serif;
	font-weight: 500;
	font-variation-settings: "opsz" 24;
	font-size: 22px;
	line-height: 1.15;
	color: var(--ink);
	letter-spacing: -0.01em;
}
.log-card-title em { font-style: italic; color: var(--accent); }
.log-card-excerpt {
	font-family: 'DM Sans', sans-serif;
	font-size: 14px;
	line-height: 1.55;
	color: var(--ink-soft);
	flex: 1;
}
.log-card-footer {
	display: flex;
	justify-content: space-between;
	align-items: center;
	padding-top: 14px;
	border-top: 1px solid var(--rule-soft);
	font-family: 'JetBrains Mono', monospace;
	font-size: 9px;
	letter-spacing: 0.18em;
	color: var(--ink-faint);
	text-transform: uppercase;
}
.log-card.in-progress::after {
	content: "Draft";
	position: absolute;
	top: 12px;
	right: 12px;
	font-family: 'JetBrains Mono', monospace;
	font-size: 8px;
	text-transform: uppercase;
	letter-spacing: 0.2em;
	color: var(--gilt);
	background: color-mix(in srgb, var(--gilt) 15%, transparent);
	padding: 3px 6px;
}

/* ── ARCHIVE ───────────────────────────────────────── */
.archive {
	max-width: 1400px;
	margin: 0 auto;
	padding: 96px 48px;
}
.archive-grid {
	display: grid;
	grid-template-columns: 220px 1fr;
	gap: 64px;
	margin-top: 56px;
}
.archive-rail { position: sticky; top: 110px; }
.archive-year {
	border-bottom: 1px solid var(--rule);
	padding: 12px 0;
	cursor: pointer;
	transition: padding 0.3s, color 0.2s;
}
.archive-year .yr {
	font-family: 'Newsreader', serif;
	font-weight: 500;
	font-size: 22px;
	color: var(--ink);
	letter-spacing: -0.01em;
}
.archive-year .ct {
	font-family: 'JetBrains Mono', monospace;
	font-size: 10px;
	color: var(--ink-faint);
	margin-left: 8px;
}
.archive-year.is-active .yr { color: var(--accent); font-style: italic; }
.archive-list { display: flex; flex-direction: column; }
.archive-row {
	display: grid;
	grid-template-columns: 80px 1fr 120px 80px;
	gap: 24px;
	align-items: baseline;
	padding: 28px 0;
	border-bottom: 1px solid var(--rule-soft);
	transition: padding-left 0.3s, background 0.3s;
	cursor: pointer;
	text-decoration: none;
	color: inherit;
	position: relative;
}
.archive-row:hover { padding-left: 16px; background: var(--paper-soft); }
.archive-row::before {
	content: "";
	position: absolute;
	left: 0;
	top: 0;
	bottom: 0;
	width: 2px;
	background: var(--accent);
	transform-origin: top;
	transform: scaleY(0);
	transition: transform 0.3s cubic-bezier(0.65, 0, 0.35, 1);
}
.archive-row:hover::before { transform: scaleY(1); }
.archive-row .ar-num {
	font-family: 'Newsreader', serif;
	font-style: italic;
	font-weight: 300;
	color: var(--ink-faint);
	font-size: 18px;
}
.archive-row:hover .ar-num { color: var(--accent); }
.archive-row .ar-title {
	font-family: 'Newsreader', serif;
	font-weight: 450;
	font-variation-settings: "opsz" 24;
	font-size: 22px;
	line-height: 1.2;
	color: var(--ink);
	letter-spacing: -0.01em;
	margin-bottom: 4px;
}
.archive-row .ar-title em { font-style: italic; color: var(--accent); }
.archive-row .ar-excerpt {
	font-family: 'DM Sans', sans-serif;
	font-size: 14px;
	color: var(--ink-soft);
	line-height: 1.5;
	max-width: 520px;
}
.archive-row .ar-tag, .archive-row .ar-date {
	font-family: 'JetBrains Mono', monospace;
	font-size: 11px;
	color: var(--ink-faint);
	text-align: right;
}

/* ── FOOTER ────────────────────────────────────────── */
.footer {
	background: var(--paper-deep);
	border-top: 1px solid var(--rule);
	padding: 72px 48px 32px;
	transition: background 0.6s, border-color 0.6s;
}
.footer-inner { max-width: 1400px; margin: 0 auto; }
.footer-grid {
	display: grid;
	grid-template-columns: 2fr 1fr 1fr 1fr;
	gap: 56px;
	margin-bottom: 56px;
}
.footer h4 {
	font-family: 'JetBrains Mono', monospace;
	font-size: 10px;
	text-transform: uppercase;
	letter-spacing: 0.22em;
	color: var(--ink-faint);
	margin-bottom: 16px;
	font-weight: 500;
}
.footer ul { list-style: none; padding: 0; }
.footer li { margin-bottom: 8px; }
.footer-sublist {
	list-style: none;
	padding: 6px 0 4px 14px;
	margin: 6px 0 0 0;
	border-left: 1px solid var(--rule);
}
.footer-sublist li { margin-bottom: 4px; }
.footer-sublist a {
	font-family: 'JetBrains Mono', monospace;
	font-size: 11px;
	letter-spacing: 0.08em;
	color: var(--ink-soft);
	text-transform: uppercase;
}
.footer-sublist a:hover { color: var(--accent); border-bottom-color: var(--accent); }
.footer a {
	font-family: 'DM Sans', sans-serif;
	font-size: 14px;
	color: var(--ink);
	text-decoration: none;
	border-bottom: 1px solid transparent;
	transition: border-color 0.2s, color 0.2s;
}
.footer a:hover { border-color: var(--accent); color: var(--accent); }
.footer-brand {
	font-family: 'Newsreader', serif;
	font-weight: 500;
	font-variation-settings: "opsz" 36;
	font-size: 36px;
	line-height: 1.1;
	margin-bottom: 16px;
	letter-spacing: -0.015em;
}
.footer-brand em { color: var(--accent); font-style: italic; }
.footer-tagline {
	font-family: 'DM Sans', sans-serif;
	font-size: 14px;
	color: var(--ink-soft);
	line-height: 1.5;
	max-width: 320px;
}
.footer-mark {
	display: flex;
	justify-content: space-between;
	align-items: flex-end;
	padding-top: 24px;
	border-top: 1px solid var(--rule);
	flex-wrap: wrap;
	gap: 24px;
}
.footer-meta {
	font-family: 'JetBrains Mono', monospace;
	font-size: 11px;
	color: var(--ink-faint);
	letter-spacing: 0.08em;
}
.footer-sigil {
	font-family: 'Fraunces', Georgia, serif;
	font-weight: 600;
	font-size: 56px;
	color: var(--accent);
	letter-spacing: -0.04em;
	line-height: 0.8;
	transition: transform 0.4s cubic-bezier(0.65, 0, 0.35, 1);
}
.footer-sigil:hover { transform: rotate(-6deg) scale(1.05); }

/* ── RESPONSIVE ────────────────────────────────────── */
@media (max-width: 1100px) {
	.case-body { grid-template-columns: 1fr; gap: 48px; }
	.case-sidebar { position: static; border-top: 1px solid var(--ink); }
	.log-grid { grid-template-columns: repeat(2, 1fr); }
	.archive-grid { grid-template-columns: 1fr; gap: 32px; }
	.archive-rail { position: static; display: flex; flex-wrap: wrap; gap: 16px; }
	.archive-row { grid-template-columns: 40px 1fr; gap: 16px; padding: 20px 0; }
	.archive-row .ar-tag, .archive-row .ar-date { grid-column: 2; font-size: 9px; text-align: left; padding-top: 4px; }
	.footer-grid { grid-template-columns: 1fr 1fr; gap: 40px; }
}

@media (max-width: 900px) {
	.masthead-inner { padding: 16px 24px; }
	.nav { gap: 16px; }
	.nav a:not(.nav-cta) { display: none; }
	.hero { padding: 56px 24px 40px; }
	.hero-name { font-size: clamp(44px, 13vw, 80px); }
	.hero-meta { grid-template-columns: 1fr 1fr; gap: 24px; }
	.ttf { padding: 80px 0 90px; }
	.ttf-inner { padding: 0 24px; }
	.ttf-map { padding-left: 32px; }
	.ttf-row { grid-template-columns: 40px 1fr; gap: 14px; padding: 28px 0; }
	.ttf-connector, .ttf-status { grid-column: 2; }
	.ttf-connector { width: 100%; height: 32px; margin: 8px 0; }
	.ttf-status { text-align: left; margin-top: 8px; }
	.ttf-row > div:nth-child(4) { grid-column: 2; padding-top: 16px; border-top: 1px solid rgba(242, 235, 221, 0.12); }
	.ttf-num::before { display: none; }
	.case, .essay-page, .archive, .field-inner { padding-left: 24px; padding-right: 24px; }
	.field-log { padding: 64px 0; }
	.log-grid { grid-template-columns: 1fr; }
	.footer { padding: 56px 24px 24px; }
	.footer-grid { grid-template-columns: 1fr; gap: 32px; }
	.footer-brand { font-size: 28px; }
}

/* ════════════════════════════════════════════════════════
 * MOBILE RESPONSIVENESS — comprehensive breakpoints
 * Tested mental model: 375px (iPhone SE), 414px (iPhone 14 Pro),
 * 768px (iPad portrait), 1024px (iPad landscape)
 * ════════════════════════════════════════════════════════ */

@media (max-width: 1024px) {
	.case-body { grid-template-columns: 1fr; }
	.case-sidebar { margin-top: 48px; }
	.hero-meta { grid-template-columns: repeat(2, 1fr); }
}

@media (max-width: 760px) {
	/* Reset cursor — no custom cursor on touch */
	body { cursor: auto; }
	.cursor-dot, .cursor-ring { display: none !important; }

	/* Masthead — collapse to hamburger area, drop CTA into nav */
	.masthead-inner {
		padding: 16px 20px;
		flex-wrap: wrap;
	}
	.monogram { font-size: 22px; padding: 2px 0 6px; }
	.nav {
		flex-wrap: wrap;
		gap: 14px;
		font-size: 11px;
		justify-content: flex-end;
	}
	.nav a { padding: 4px 0; }
	.nav-cta {
		padding: 8px 14px;
		font-size: 10px;
	}

	/* Hero */
	.hero {
		padding: 48px 20px 48px;
	}
	.hero-name {
		font-size: clamp(36px, 9vw, 56px) !important;
		line-height: 1.05;
	}
	.identity-line {
		font-size: 11px;
		flex-wrap: wrap;
		gap: 6px;
	}
	.positioning {
		font-size: 17px;
		line-height: 1.5;
	}
	.hero-cta-row {
		flex-direction: column;
		align-items: flex-start;
		gap: 16px;
	}
	.btn-primary, .btn-link { width: 100%; text-align: center; box-sizing: border-box; }
	.hero-meta {
		grid-template-columns: 1fr;
		gap: 24px;
		margin-top: 48px;
	}
	.hero-meta-item {
		padding-top: 20px;
	}

	/* Sections — kill horizontal padding overflow */
	section,
	.section-eyebrow,
	.section-title,
	.section-deck {
		padding-left: 20px !important;
		padding-right: 20px !important;
	}
	.section-title { font-size: clamp(28px, 7vw, 40px) !important; }
	.section-deck { font-size: 16px; }

	/* From Theory to Field — collapse to single column */
	.ttf-row, .ttf-grid {
		grid-template-columns: 1fr !important;
		gap: 16px !important;
	}
	.ttf-title { font-size: clamp(32px, 8vw, 48px) !important; }

	/* Cards / grids — single column */
	.product-family-grid,
	.adoption-grid,
	.log-card-grid,
	[style*="grid-template-columns:repeat(3,1fr)"],
	[style*="grid-template-columns:repeat(4,1fr)"] {
		grid-template-columns: 1fr !important;
	}

	/* Case study layouts */
	.case {
		padding: 56px 20px 32px !important;
	}
	.case-title {
		font-size: clamp(32px, 8vw, 48px) !important;
	}
	.case-deck { font-size: 17px !important; }
	.case-meta-bar { flex-wrap: wrap; gap: 8px; }

	/* Footer */
	.footer { padding: 48px 20px; }
	.footer-grid {
		grid-template-columns: 1fr;
		gap: 32px;
	}
	.footer-mark {
		flex-direction: column;
		gap: 16px;
		text-align: center;
		align-items: center;
	}

	/* Reader Settings — keep but reposition smaller */
	.reader-settings {
		bottom: 12px;
		left: 12px;
	}
	.reader-settings-toggle {
		padding: 6px 10px;
		font-size: 9px;
	}
	.reader-settings-panel {
		width: 200px;
		padding: 14px;
	}

	/* Reading progress — keep visible but slimmer */
	.reading-progress { height: 2px; }
	.reading-progress-rail { display: none; }

	/* Sticky masthead — reduce blur cost */
	.masthead { backdrop-filter: blur(8px) saturate(120%); }

	/* Tables — horizontal scroll fallback */
	.prose table, .case-main table {
		display: block;
		overflow-x: auto;
		white-space: nowrap;
	}

	/* Pricing grid — single column on mobile */
	[id="pricing"] [style*="grid-template-columns"],
	[style*="grid-template-columns:repeat(3,1fr);gap:24px"] {
		grid-template-columns: 1fr !important;
	}
}

@media (max-width: 414px) {
	.hero-name {
		font-size: clamp(32px, 10vw, 42px) !important;
	}
	.case-title {
		font-size: clamp(28px, 9vw, 36px) !important;
	}
	.section-title {
		font-size: clamp(24px, 8vw, 32px) !important;
	}
}

/* Reduce all motion if user prefers */
@media (prefers-reduced-motion: reduce) {
	*, *::before, *::after {
		animation-duration: 0.01ms !important;
		animation-iteration-count: 1 !important;
		transition-duration: 0.01ms !important;
		scroll-behavior: auto !important;
	}
	.reveal-word span { animation: none !important; opacity: 1 !important; transform: none !important; }
}

/* Focus indicators — make them visible across all interactive elements */
a:focus-visible,
button:focus-visible,
input:focus-visible,
textarea:focus-visible,
select:focus-visible,
summary:focus-visible {
	outline: 2px solid var(--accent);
	outline-offset: 3px;
	border-radius: 2px;
}
.nav a:focus-visible { outline-offset: 6px; }
.btn-primary:focus-visible, .nav-cta:focus-visible { outline-offset: 4px; }

/* Skip-link for keyboard users — visible only when focused */
.skip-link {
	position: absolute;
	left: -9999px;
	top: 8px;
	background: var(--ink);
	color: var(--paper);
	padding: 10px 16px;
	z-index: 9999;
	font-family: 'JetBrains Mono', monospace;
	font-size: 12px;
	text-decoration: none;
	border: 2px solid var(--accent);
}
.skip-link:focus { left: 8px; }

/* ════════════════════════════════════════════════════════
 * BLOCK STYLE VARIATIONS
 * Author-selectable variations from the Styles panel.
 * ════════════════════════════════════════════════════════ */

/* Paragraph · Drop Cap */
.wp-block-paragraph.is-style-dg-drop-cap:first-letter {
	float: left;
	font-family: 'Fraunces', Georgia, serif;
	font-weight: 600;
	font-size: 4.5em;
	line-height: 0.85;
	color: var(--accent);
	margin: 0.08em 0.12em 0 -0.05em;
	font-feature-settings: "lnum";
}

/* Heading · Numbered (§ prefix in accent) */
.wp-block-heading.is-style-dg-numbered::before {
	content: "§ ";
	color: var(--accent);
	font-weight: 300;
	margin-right: 0.15em;
	font-style: italic;
}

/* Image · Framed (gilt border + matted feel) */
.wp-block-image.is-style-dg-framed {
	padding: 12px;
	background: var(--paper);
	border: 1px solid var(--rule);
	box-shadow:
		inset 0 0 0 1px var(--paper-soft),
		0 1px 2px rgba(20, 17, 14, 0.06);
}
.wp-block-image.is-style-dg-framed img {
	border: 1px solid var(--gilt);
	display: block;
}
.wp-block-image.is-style-dg-framed figcaption {
	text-align: center;
	font-family: 'Newsreader', serif;
	font-style: italic;
	font-weight: 350;
	color: var(--ink-soft);
	font-size: 14px;
	margin-top: 14px;
	padding: 0;
	border: 0;
	text-transform: none;
	letter-spacing: 0;
}

/* Image · Polaroid (off-white shadow, hand-tossed feel) */
.wp-block-image.is-style-dg-polaroid {
	padding: 12px 12px 24px;
	background: #FAF5E8;
	box-shadow: 0 8px 24px rgba(20, 17, 14, 0.12);
	transform: rotate(-0.6deg);
	transition: transform 0.4s cubic-bezier(0.65, 0, 0.35, 1);
	max-width: 540px;
}
.wp-block-image.is-style-dg-polaroid:hover {
	transform: rotate(0) scale(1.02);
}
.wp-block-image.is-style-dg-polaroid:nth-of-type(even) {
	transform: rotate(0.8deg);
}
.wp-block-image.is-style-dg-polaroid img {
	display: block;
	width: 100%;
}
.wp-block-image.is-style-dg-polaroid figcaption {
	text-align: center;
	font-family: 'Newsreader', serif;
	font-style: italic;
	font-size: 14px;
	color: var(--ink-soft);
	margin-top: 14px;
	padding: 0;
	border: 0;
	text-transform: none;
	letter-spacing: 0;
}

/* Quote · Editorial (no border, full italic, large size) */
.wp-block-quote.is-style-dg-editorial {
	border: 0;
	padding: 32px 0;
	margin: 32px 0;
	font-family: 'Newsreader', serif;
	font-style: italic;
	font-weight: 350;
	font-size: clamp(22px, 3vw, 28px);
	line-height: 1.4;
	letter-spacing: -0.01em;
	color: var(--ink);
}
.wp-block-quote.is-style-dg-editorial p {
	margin-bottom: 18px;
	font-style: italic;
}
.wp-block-quote.is-style-dg-editorial cite {
	font-family: 'JetBrains Mono', monospace;
	font-style: normal;
	font-size: 11px;
	letter-spacing: 0.18em;
	text-transform: uppercase;
	color: var(--ink-faint);
	display: block;
}

/* Group · Dark Section (full-bleed ink) */
.wp-block-group.is-style-dg-dark-section {
	background: var(--ink);
	color: var(--paper);
	padding: 80px 32px;
	margin: 48px 0;
}
.wp-block-group.is-style-dg-dark-section h1,
.wp-block-group.is-style-dg-dark-section h2,
.wp-block-group.is-style-dg-dark-section h3,
.wp-block-group.is-style-dg-dark-section h4 {
	color: var(--paper);
}
.wp-block-group.is-style-dg-dark-section p {
	color: rgba(242, 235, 221, 0.85);
}
.wp-block-group.is-style-dg-dark-section em {
	color: var(--gilt);
}
.wp-block-group.is-style-dg-dark-section a {
	color: var(--gilt);
}

/* Group · Paper Soft (subtle background contrast) */
.wp-block-group.is-style-dg-paper-soft {
	background: var(--paper-soft);
	border-top: 1px solid var(--rule);
	border-bottom: 1px solid var(--rule);
	padding: 64px 32px;
	margin: 48px 0;
}

/* List · Editorial Check */
.wp-block-list.is-style-dg-editorial-check {
	list-style: none;
	padding-left: 0;
}
.wp-block-list.is-style-dg-editorial-check li {
	padding-left: 28px;
	position: relative;
	margin-bottom: 10px;
	line-height: 1.55;
}
.wp-block-list.is-style-dg-editorial-check li::before {
	content: "✓";
	position: absolute;
	left: 0;
	top: 0;
	color: var(--accent);
	font-family: 'Newsreader', serif;
	font-style: italic;
	font-weight: 500;
	font-size: 1.1em;
}

/* Separator · Section Mark (§ in accent color, centered) */
.wp-block-separator.is-style-dg-section-mark {
	border: 0;
	height: auto;
	margin: 64px auto;
	text-align: center;
	max-width: 200px;
	background: transparent;
	position: relative;
	display: flex;
	align-items: center;
	justify-content: center;
}
.wp-block-separator.is-style-dg-section-mark::before {
	content: "§";
	font-family: 'Fraunces', Georgia, serif;
	font-style: italic;
	font-weight: 400;
	font-size: 28px;
	color: var(--accent);
	background: var(--paper);
	padding: 0 16px;
	position: relative;
	z-index: 1;
}
.wp-block-separator.is-style-dg-section-mark::after {
	content: "";
	position: absolute;
	left: 0;
	right: 0;
	top: 50%;
	height: 1px;
	background: var(--rule);
	z-index: 0;
}

/* Button · Gilt variant */
.wp-block-button.is-style-dg-gilt .wp-block-button__link {
	background: var(--gilt);
	color: var(--ink);
	border: 2px solid var(--gilt);
	font-family: 'JetBrains Mono', monospace;
	font-size: 11px;
	letter-spacing: 0.18em;
	text-transform: uppercase;
	padding: 14px 28px;
	border-radius: 0;
	transition: background 0.2s, color 0.2s;
}
.wp-block-button.is-style-dg-gilt .wp-block-button__link:hover {
	background: var(--ink);
	color: var(--gilt);
}

/* ════════════════════════════════════════════════════════
 * EMPTY STATES
 * What visitors see when sections are unpopulated.
 * Currently scattered as inline styles in patterns — now unified.
 * ════════════════════════════════════════════════════════ */

.empty-state {
	background: var(--paper-soft);
	border: 1px dashed var(--rule);
	padding: 64px 32px;
	text-align: center;
	margin: 32px 0;
	max-width: 680px;
	margin-left: auto;
	margin-right: auto;
}

.empty-state::before {
	content: "§";
	display: block;
	font-family: 'Fraunces', Georgia, serif;
	font-style: italic;
	font-weight: 300;
	font-size: 32px;
	color: var(--accent);
	margin-bottom: 14px;
}

.empty-state-title {
	font-family: 'Newsreader', serif;
	font-weight: 500;
	font-size: 24px;
	letter-spacing: -0.01em;
	margin: 0 0 12px;
	color: var(--ink);
}

.empty-state-desc {
	font-family: 'Newsreader', serif;
	font-style: italic;
	font-weight: 300;
	font-size: 17px;
	line-height: 1.55;
	color: var(--ink-soft);
	max-width: 480px;
	margin: 0 auto 24px;
}

.empty-state-actions {
	display: flex;
	gap: 14px;
	justify-content: center;
	flex-wrap: wrap;
	margin-top: 24px;
}

/* Admin-only inline notice (visible only to editors) */
.admin-notice-inline {
	background: rgba(176, 133, 64, 0.08);
	border-left: 3px solid var(--gilt);
	padding: 14px 20px;
	margin: 20px 0;
	font-family: 'JetBrains Mono', ui-monospace, monospace;
	font-size: 11px;
	letter-spacing: 0.08em;
	color: var(--ink-soft);
	line-height: 1.55;
}
.admin-notice-inline strong {
	color: var(--gilt);
	font-weight: 500;
	display: block;
	margin-bottom: 4px;
	font-size: 10px;
	letter-spacing: 0.18em;
	text-transform: uppercase;
}

/* ════════════════════════════════════════════════════════
 * MOBILE NAVIGATION — hamburger + full-screen overlay
 * v0.24 hotfix: mobile nav was disappearing because
 * flex-wrap couldn't accommodate all items.
 * ════════════════════════════════════════════════════════ */

/* Hide mobile actions on desktop */
.masthead-mobile-actions { display: none; }

/* Mobile breakpoint */
@media (max-width: 760px) {
	/* Hide the desktop nav entirely */
	.nav-desktop { display: none !important; }

	/* Show the mobile action group */
	.masthead-mobile-actions {
		display: flex;
		align-items: center;
		gap: 8px;
	}

	/* Tighten masthead padding */
	.masthead-inner {
		padding: 14px 18px;
	}

	/* Smaller, tighter CTA on mobile so it doesn't dominate */
	.masthead-mobile-actions .nav-cta {
		padding: 8px 12px;
		font-size: 10px;
		letter-spacing: 0.16em;
	}
}

/* Hamburger button — visible only on mobile */
.nav-toggle {
	display: none;
	background: transparent;
	border: 1px solid var(--rule);
	border-radius: 2px;
	width: 40px;
	height: 40px;
	padding: 0;
	cursor: pointer;
	position: relative;
	transition: border-color 0.2s, background 0.2s;
	flex-direction: column;
	justify-content: center;
	align-items: center;
	gap: 4px;
}
.nav-toggle:hover { border-color: var(--ink); background: var(--paper-soft); }
.nav-toggle:focus-visible { outline: 2px solid var(--accent); outline-offset: 2px; }

.nav-toggle-bar {
	display: block;
	width: 18px;
	height: 1.5px;
	background: var(--ink);
	transition: transform 0.25s, opacity 0.2s;
	transform-origin: center;
}

/* When menu is open, hamburger becomes an X (handled via aria-expanded attr) */
.nav-toggle[aria-expanded="true"] .nav-toggle-bar:nth-child(1) {
	transform: translateY(5.5px) rotate(45deg);
}
.nav-toggle[aria-expanded="true"] .nav-toggle-bar:nth-child(2) {
	opacity: 0;
}
.nav-toggle[aria-expanded="true"] .nav-toggle-bar:nth-child(3) {
	transform: translateY(-5.5px) rotate(-45deg);
}

@media (max-width: 760px) {
	.nav-toggle { display: flex; }
}

/* Full-screen overlay menu */
.mobile-nav-overlay {
	position: fixed;
	inset: 0;
	z-index: 1000;
	background: var(--paper);
	overflow-y: auto;
	overscroll-behavior: contain;
	opacity: 0;
	visibility: hidden;
	transition: opacity 0.3s, visibility 0.3s;
}
.mobile-nav-overlay[data-open="true"] {
	opacity: 1;
	visibility: visible;
}
.mobile-nav-overlay[hidden] { display: block !important; } /* override [hidden] for transition */

.mobile-nav-overlay-inner {
	min-height: 100%;
	display: flex;
	flex-direction: column;
	padding: 20px 24px 32px;
}

.mobile-nav-header {
	display: flex;
	justify-content: space-between;
	align-items: center;
	padding-bottom: 20px;
	border-bottom: 1px solid var(--rule);
}

.mobile-nav-monogram {
	font-family: 'Fraunces', Georgia, serif;
	font-weight: 600;
	font-size: 24px;
	color: var(--ink);
	letter-spacing: -0.03em;
	text-decoration: none;
	padding: 2px 0 6px;
	border-bottom: 2px solid var(--ink);
	line-height: 1;
	display: inline-block;
}

.nav-close {
	background: transparent;
	border: 1px solid var(--rule);
	border-radius: 2px;
	width: 40px;
	height: 40px;
	font-family: 'Newsreader', Georgia, serif;
	font-size: 28px;
	line-height: 1;
	color: var(--ink);
	cursor: pointer;
	padding: 0;
	display: flex;
	align-items: center;
	justify-content: center;
	transition: border-color 0.2s, background 0.2s;
}
.nav-close:hover { border-color: var(--accent); color: var(--accent); background: var(--paper-soft); }
.nav-close:focus-visible { outline: 2px solid var(--accent); outline-offset: 2px; }

.mobile-nav-eyebrow {
	font-family: 'JetBrains Mono', ui-monospace, monospace;
	font-size: 11px;
	letter-spacing: 0.22em;
	text-transform: uppercase;
	color: var(--accent);
	margin: 40px 0 20px;
}

.mobile-nav-links {
	display: flex;
	flex-direction: column;
	gap: 0;
	flex: 1;
}

.mobile-nav-links a {
	display: block;
	padding: 18px 0;
	border-bottom: 1px solid var(--rule-soft);
	font-family: 'Newsreader', Georgia, serif;
	font-weight: 500;
	font-size: 28px;
	line-height: 1.15;
	letter-spacing: -0.02em;
	color: var(--ink);
	text-decoration: none;
	transition: color 0.2s, padding-left 0.2s;
}
.mobile-nav-links a:hover,
.mobile-nav-links a:focus {
	color: var(--accent);
	padding-left: 8px;
}

/* "Soon" items styled muted in mobile menu */
.mobile-nav-links a.nav-soon {
	color: var(--ink-faint);
	cursor: not-allowed;
	font-style: italic;
}
.mobile-nav-links a.nav-soon::after {
	content: " · soon";
	font-family: 'JetBrains Mono', monospace;
	font-size: 11px;
	font-style: normal;
	letter-spacing: 0.18em;
	text-transform: uppercase;
	color: var(--ink-faint);
	margin-left: 6px;
	vertical-align: middle;
}

/* CTA inside mobile menu — render as full-width primary button */
.mobile-nav-links a.nav-cta {
	background: var(--ink);
	color: var(--paper) !important;
	margin-top: 24px;
	padding: 18px 24px;
	text-align: center;
	border: 0;
	font-family: 'JetBrains Mono', monospace;
	font-size: 13px;
	font-weight: 500;
	letter-spacing: 0.18em;
	text-transform: uppercase;
	line-height: 1.2;
}
.mobile-nav-links a.nav-cta:hover,
.mobile-nav-links a.nav-cta:focus {
	background: var(--accent);
	padding-left: 24px;
	color: var(--paper) !important;
}

.mobile-nav-footer {
	margin-top: 48px;
	padding-top: 24px;
	border-top: 1px solid var(--rule);
	text-align: center;
}
.mobile-nav-footer p {
	font-family: 'Newsreader', serif;
	font-style: italic;
	font-weight: 300;
	font-size: 15px;
	color: var(--ink-faint);
	margin: 0;
}
.mobile-nav-footer em {
	color: var(--accent);
}

/* Lock body scroll when overlay is open */
body.dg-menu-open {
	overflow: hidden;
	position: fixed;
	width: 100%;
}

/* ════════════════════════════════════════════════════════
 * v0.27 — Page-level UX for Ventures / Research / About
 * Builds the four refactored page patterns into proper layouts.
 * ════════════════════════════════════════════════════════ */

/* ── shared page-band container ─────────────────────── */
.ventures-page-inner,
.research-page-inner,
.about-bio-inner,
.about-credentials-inner,
.about-talks-inner,
.about-elsewhere-inner {
	max-width: 1200px;
	margin: 0 auto;
	padding-left: 32px;
	padding-right: 32px;
}

/* shared header band */
.ventures-header,
.research-header,
.about-bio-header {
	padding: 96px 0 56px;
	max-width: 760px;
}
.ventures-header .case-deck,
.research-header .case-deck,
.about-bio-header .case-deck {
	max-width: 620px;
}

/* ════════════════════════════════════════════════════════
 * VENTURES PAGE
 * ════════════════════════════════════════════════════════ */

.ventures-tier {
	margin: 56px 0;
}
.ventures-tier-label {
	display: flex;
	align-items: baseline;
	gap: 18px;
	padding-bottom: 18px;
	margin-bottom: 32px;
	border-bottom: 1px solid var(--rule);
}
.ventures-tier-label .tier-mark {
	font-family: 'Fraunces', Georgia, serif;
	font-weight: 600;
	font-size: 32px;
	color: var(--accent);
	letter-spacing: -0.04em;
	line-height: 1;
}
.ventures-tier-label .tier-text {
	font-family: 'JetBrains Mono', monospace;
	font-size: 11px;
	letter-spacing: 0.2em;
	text-transform: uppercase;
	color: var(--ink-soft);
}

/* Tier-1 — single full-width card */
.ventures-tier-1-grid {
	display: grid;
	grid-template-columns: 1fr;
	gap: 24px;
}
/* Tier-2 — three cards */
.ventures-tier-2-grid {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 1px;
	background: var(--rule);
	border: 1px solid var(--rule);
}
/* Tier-3 — four small cards */
.ventures-tier-3-grid {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: 1px;
	background: var(--rule);
	border: 1px solid var(--rule);
}

/* Cards */
.venture-card {
	display: block;
	background: var(--paper);
	padding: 28px;
	text-decoration: none;
	color: inherit;
	position: relative;
	transition: background 0.25s, transform 0.25s;
}
.venture-card.is-linked:hover {
	background: var(--paper-soft);
}
.venture-card.is-linked:hover .venture-card-arrow {
	transform: translateX(6px);
	color: var(--accent);
}
.venture-card-head {
	display: flex;
	justify-content: space-between;
	align-items: flex-start;
	gap: 16px;
	margin-bottom: 14px;
}
.venture-card-name {
	font-family: 'Newsreader', serif;
	font-weight: 500;
	font-size: 26px;
	letter-spacing: -0.02em;
	line-height: 1.15;
	margin: 0;
	color: var(--ink);
}
.venture-card--small .venture-card-name {
	font-size: 19px;
}
.venture-card--medium .venture-card-name {
	font-size: 22px;
}
.venture-card--large .venture-card-name {
	font-size: 36px;
	letter-spacing: -0.025em;
}
.venture-card-positioning {
	font-family: 'Newsreader', serif;
	font-style: italic;
	font-weight: 350;
	font-size: 17px;
	line-height: 1.5;
	color: var(--ink-soft);
	margin: 0 0 18px;
	max-width: 60ch;
}
.venture-card--small .venture-card-positioning {
	font-size: 14px;
	margin-bottom: 0;
}
.venture-card--large .venture-card-positioning {
	font-size: 19px;
	max-width: 65ch;
}
.venture-card-meta {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 24px;
	margin: 24px 0 0;
	padding-top: 18px;
	border-top: 1px solid var(--rule-soft);
}
.venture-card-meta > div { display: block; }
.venture-card-meta dt {
	font-family: 'JetBrains Mono', monospace;
	font-size: 9px;
	letter-spacing: 0.18em;
	text-transform: uppercase;
	color: var(--ink-faint);
	margin: 0 0 4px;
}
.venture-card-meta dd {
	font-family: 'Newsreader', serif;
	font-size: 15px;
	color: var(--ink);
	margin: 0;
}
.venture-card-arrow {
	position: absolute;
	bottom: 28px;
	right: 28px;
	font-family: 'Newsreader', serif;
	font-style: italic;
	font-size: 24px;
	color: var(--ink-faint);
	transition: transform 0.25s, color 0.25s;
}
.venture-card--small .venture-card-arrow {
	font-size: 16px;
	bottom: 16px;
	right: 16px;
}
.venture-card--small {
	padding: 18px;
}
.venture-card.no-link .venture-card-arrow { display: none; }

/* Throughline — dark coda between tiers and TTF */
.ventures-throughline {
	background: var(--ink);
	color: var(--paper);
	margin: 80px -32px 64px;
	padding: 80px 32px;
	text-align: center;
}
.ventures-throughline blockquote {
	max-width: 780px;
	margin: 0 auto;
	border: 0;
	padding: 0;
}
.ventures-throughline blockquote p {
	font-family: 'Newsreader', serif;
	font-size: clamp(22px, 3.2vw, 32px);
	line-height: 1.4;
	letter-spacing: -0.015em;
	color: var(--gilt);
	margin: 0;
	font-weight: 350;
}

/* From Theory to Field block */
.ventures-ttf {
	margin: 64px 0;
}
.ventures-ttf .ttf-rows {
	margin-top: 32px;
}

/* Ventures CTA */
.ventures-cta {
	background: var(--ink);
	color: var(--paper);
	margin: 80px -32px 0;
	padding: 96px 32px;
}
.ventures-cta-inner {
	max-width: 760px;
	margin: 0 auto;
	text-align: center;
}
.ventures-cta-title {
	font-family: 'Newsreader', serif;
	font-weight: 500;
	font-size: clamp(40px, 5vw, 64px);
	letter-spacing: -0.025em;
	line-height: 1.05;
	color: var(--paper);
	margin: 16px 0 18px;
}
.ventures-cta-title em {
	font-style: italic;
	font-weight: 300;
	color: var(--gilt);
}
.ventures-cta-deck {
	font-family: 'Newsreader', serif;
	font-style: italic;
	font-weight: 350;
	font-size: 20px;
	color: rgba(242, 235, 221, 0.85);
	margin: 0 auto 32px;
	max-width: 540px;
}
.ventures-cta-actions {
	display: flex;
	gap: 18px;
	justify-content: center;
	flex-wrap: wrap;
}
.ventures-cta-actions .btn-primary {
	background: var(--gilt);
	color: var(--ink);
	border-color: var(--gilt);
}
.ventures-cta-actions .btn-link { color: rgba(242, 235, 221, 0.7); }

/* ════════════════════════════════════════════════════════
 * RESEARCH PAGE
 * ════════════════════════════════════════════════════════ */

.research-thesis {
	background: var(--paper-soft);
	border-top: 1px solid var(--rule);
	border-bottom: 1px solid var(--rule);
	margin: 48px -32px;
	padding: 80px 32px;
}
.research-thesis-inner {
	max-width: 760px;
	margin: 0 auto;
}
.research-thesis-quote {
	border: 0;
	padding: 24px 0 0;
	margin: 0;
}
.research-thesis-quote p {
	font-family: 'Newsreader', serif;
	font-style: italic;
	font-weight: 350;
	font-size: clamp(22px, 3.2vw, 30px);
	line-height: 1.4;
	letter-spacing: -0.015em;
	color: var(--ink);
	margin: 0;
}
.research-thesis-attribution {
	font-family: 'JetBrains Mono', monospace;
	font-size: 11px;
	letter-spacing: 0.18em;
	text-transform: uppercase;
	color: var(--ink-faint);
	margin: 24px 0 0;
}

/* Dissertation hero card */
.research-dissertation {
	margin: 64px 0;
}
.dissertation-card {
	background: var(--paper);
	border: 1px solid var(--rule);
	padding: 40px;
	margin-top: 24px;
	position: relative;
}
.dissertation-card-head { margin-bottom: 18px; }
.dissertation-title {
	font-family: 'Newsreader', serif;
	font-weight: 500;
	font-size: clamp(24px, 3vw, 32px);
	line-height: 1.2;
	letter-spacing: -0.02em;
	color: var(--ink);
	margin: 0 0 18px;
}
.dissertation-abstract {
	font-family: 'Newsreader', serif;
	font-size: 17px;
	line-height: 1.6;
	color: var(--ink-soft);
	margin: 0 0 24px;
	max-width: 70ch;
}
.dissertation-meta {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: 24px;
	padding-top: 24px;
	border-top: 1px solid var(--rule-soft);
}
.dissertation-meta dt {
	font-family: 'JetBrains Mono', monospace;
	font-size: 10px;
	letter-spacing: 0.18em;
	text-transform: uppercase;
	color: var(--ink-faint);
	margin: 0 0 4px;
}
.dissertation-meta dd {
	font-family: 'Newsreader', serif;
	font-size: 15px;
	margin: 0;
}

/* Working papers */
.research-papers {
	margin: 80px 0;
}
.papers-list {
	list-style: none;
	padding: 0;
	margin: 32px 0 0;
}
.paper-row {
	display: grid;
	grid-template-columns: 140px 1fr;
	gap: 28px;
	padding: 28px 0;
	border-bottom: 1px solid var(--rule);
	align-items: flex-start;
}
.paper-row:first-child { border-top: 1px solid var(--rule); }
.paper-status { padding-top: 4px; }
.paper-title {
	font-family: 'Newsreader', serif;
	font-weight: 500;
	font-size: 22px;
	letter-spacing: -0.015em;
	line-height: 1.25;
	color: var(--ink);
	margin: 0 0 8px;
}
.paper-arg {
	font-family: 'Newsreader', serif;
	font-style: italic;
	font-weight: 350;
	font-size: 16px;
	line-height: 1.5;
	color: var(--ink-soft);
	margin: 0 0 14px;
	max-width: 60ch;
}
.paper-meta {
	display: flex;
	gap: 32px;
	margin: 0;
}
.paper-meta > div { display: block; }
.paper-meta dt {
	font-family: 'JetBrains Mono', monospace;
	font-size: 9px;
	letter-spacing: 0.18em;
	text-transform: uppercase;
	color: var(--ink-faint);
	margin: 0 0 2px;
}
.paper-meta dd {
	font-family: 'Newsreader', serif;
	font-size: 13px;
	color: var(--ink);
	margin: 0;
}

/* Scholarly identifiers strip */
.research-identifiers {
	margin: 64px 0;
}
.identifiers-strip {
	list-style: none;
	padding: 0;
	margin: 24px 0 0;
	display: flex;
	gap: 12px;
	flex-wrap: wrap;
}
.identifiers-strip a {
	display: inline-flex;
	align-items: baseline;
	gap: 10px;
	padding: 12px 18px;
	background: var(--paper-soft);
	border: 1px solid var(--rule);
	font-family: 'JetBrains Mono', monospace;
	color: var(--ink);
	text-decoration: none;
	font-size: 12px;
	transition: background 0.2s, color 0.2s, border-color 0.2s;
}
.identifiers-strip a:hover {
	background: var(--ink);
	color: var(--paper);
	border-color: var(--ink);
}
.identifiers-strip a:hover .id-label { color: var(--gilt); }
.identifiers-strip .id-label {
	letter-spacing: 0.16em;
	text-transform: uppercase;
	color: var(--accent);
	transition: color 0.2s;
}
.identifiers-strip .id-value {
	letter-spacing: 0.08em;
	font-size: 11px;
}
.identifiers-strip .id-ext { color: var(--ink-faint); }

/* Quiet research closing */
.research-closing {
	margin: 80px 0 96px;
	padding: 32px 0 0;
	border-top: 1px solid var(--rule);
	font-family: 'Newsreader', serif;
	font-style: italic;
	font-size: 17px;
	line-height: 1.55;
	color: var(--ink-soft);
	max-width: 680px;
}
.research-closing a {
	color: var(--accent);
	text-decoration: underline;
	text-decoration-thickness: 1px;
	text-underline-offset: 0.18em;
	font-style: normal;
	font-weight: 500;
	margin-left: 4px;
}

/* ════════════════════════════════════════════════════════
 * ABOUT PAGE
 * ════════════════════════════════════════════════════════ */

.about-bio { padding-bottom: 32px; }
.about-bio-grid {
	display: grid;
	grid-template-columns: 1.6fr 1fr;
	gap: 56px;
	padding-top: 32px;
	border-top: 1px solid var(--rule);
}
.about-bio-prose p {
	font-family: 'Newsreader', serif;
	font-size: 18px;
	line-height: 1.65;
	color: var(--ink);
	margin: 0 0 20px;
	max-width: 60ch;
}
.about-now {
	background: var(--paper-soft);
	border-left: 2px solid var(--accent);
	padding: 28px 28px 24px;
	align-self: flex-start;
	position: sticky;
	top: 88px;
}
.about-now-heading {
	font-family: 'JetBrains Mono', monospace;
	font-size: 11px;
	letter-spacing: 0.22em;
	text-transform: uppercase;
	color: var(--accent);
	margin: 0 0 18px;
	font-weight: 500;
}
.about-now-list {
	margin: 0;
	display: block;
}
.about-now-row {
	display: block;
	padding: 12px 0;
	border-bottom: 1px solid var(--rule-soft);
}
.about-now-row:last-of-type { border-bottom: 0; }
.about-now-row dt {
	font-family: 'JetBrains Mono', monospace;
	font-size: 9px;
	letter-spacing: 0.18em;
	text-transform: uppercase;
	color: var(--ink-faint);
	margin: 0 0 4px;
}
.about-now-row dd {
	font-family: 'Newsreader', serif;
	font-size: 16px;
	line-height: 1.4;
	color: var(--ink);
	margin: 0;
}
.about-now-footer {
	font-family: 'Newsreader', serif;
	font-style: italic;
	font-size: 12px;
	color: var(--ink-faint);
	margin: 18px 0 0;
	text-align: right;
}

/* About — credentials */
.about-credentials {
	margin: 64px 0;
}
.credentials-row {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: 32px;
	padding: 24px 0;
	border-bottom: 1px solid var(--rule);
	margin: 0;
}
.credentials-row:first-of-type { border-top: 1px solid var(--rule); margin-top: 18px; }
.credentials-cell { display: block; }
.credentials-cell dt {
	font-family: 'JetBrains Mono', monospace;
	font-size: 10px;
	letter-spacing: 0.18em;
	text-transform: uppercase;
	color: var(--ink-faint);
	margin: 0 0 6px;
}
.credentials-cell dd {
	font-family: 'Newsreader', serif;
	font-size: 16px;
	line-height: 1.35;
	color: var(--ink);
	margin: 0;
}

/* About — talks */
.about-talks { margin: 64px 0; }
.about-talks-header { margin-bottom: 32px; }
.talks-list {
	list-style: none;
	padding: 0;
	margin: 0;
}
.talks-row {
	display: grid;
	grid-template-columns: 140px 1fr;
	gap: 24px;
	padding: 22px 0;
	border-bottom: 1px solid var(--rule-soft);
	align-items: flex-start;
}
.talks-row:first-child { border-top: 1px solid var(--rule); }
.talks-date {
	font-family: 'JetBrains Mono', monospace;
	font-size: 11px;
	letter-spacing: 0.16em;
	text-transform: uppercase;
	color: var(--ink-faint);
	padding-top: 4px;
}
.talks-date .status-badge { margin-top: 8px; display: inline-flex; }
.talks-title {
	font-family: 'Newsreader', serif;
	font-weight: 500;
	font-size: 21px;
	letter-spacing: -0.015em;
	line-height: 1.3;
	color: var(--ink);
	margin: 0 0 6px;
}
.talks-title a {
	color: var(--ink);
	text-decoration: none;
	border-bottom: 1px solid transparent;
	transition: color 0.2s, border-color 0.2s;
}
.talks-title a:hover { color: var(--accent); border-color: var(--accent); }
.talks-title .ext-arrow {
	font-family: 'JetBrains Mono', monospace;
	font-size: 14px;
	color: var(--ink-faint);
	font-weight: 400;
	margin-left: 4px;
}
.talks-venue {
	font-family: 'Newsreader', serif;
	font-size: 14px;
	line-height: 1.45;
	color: var(--ink-soft);
	margin: 0;
}
.talks-venue em { font-style: italic; color: var(--ink-faint); }
.talks-view-all {
	margin: 24px 0 0;
	font-family: 'JetBrains Mono', monospace;
	font-size: 11px;
	letter-spacing: 0.16em;
	text-transform: uppercase;
}
.talks-view-all a { color: var(--accent); }

/* About — elsewhere */
.about-elsewhere {
	margin: 64px 0 96px;
	padding: 48px 0;
	border-top: 1px solid var(--rule);
	border-bottom: 1px solid var(--rule);
}
.elsewhere-grid {
	list-style: none;
	padding: 0;
	margin: 24px 0 32px;
	display: flex;
	gap: 12px;
	flex-wrap: wrap;
}
.elsewhere-badge {
	display: inline-flex;
	align-items: baseline;
	gap: 10px;
	padding: 10px 16px;
	background: var(--paper-soft);
	border: 1px solid var(--rule);
	font-family: 'JetBrains Mono', monospace;
	font-size: 12px;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	color: var(--ink);
	text-decoration: none;
	transition: background 0.2s, color 0.2s, border-color 0.2s;
}
.elsewhere-badge:hover {
	background: var(--ink);
	color: var(--paper);
	border-color: var(--ink);
}
.elsewhere-badge:hover .elsewhere-label { color: var(--gilt); }
.elsewhere-label { color: var(--accent); transition: color 0.2s; }
.elsewhere-handle { color: var(--ink-faint); }
.about-elsewhere-empty {
	font-family: 'Newsreader', serif;
	font-style: italic;
	color: var(--ink-faint);
	margin: 16px 0;
}
.about-elsewhere-foot {
	font-family: 'Newsreader', serif;
	font-style: italic;
	font-size: 15px;
	color: var(--ink-soft);
	text-align: center;
	margin: 24px 0 0;
}

/* ════════════════════════════════════════════════════════
 * Mobile responsive — collapse multi-column to single
 * ════════════════════════════════════════════════════════ */
@media (max-width: 900px) {
	.about-bio-grid {
		grid-template-columns: 1fr;
		gap: 32px;
	}
	.about-now { position: static; }
	.ventures-tier-2-grid { grid-template-columns: 1fr; }
	.ventures-tier-3-grid { grid-template-columns: 1fr 1fr; }
	.dissertation-meta { grid-template-columns: repeat(2, 1fr); }
	.credentials-row { grid-template-columns: repeat(2, 1fr); }
	.paper-row, .talks-row {
		grid-template-columns: 1fr;
		gap: 12px;
	}
	.paper-status { padding-top: 0; }
}
@media (max-width: 600px) {
	.ventures-page-inner, .research-page-inner,
	.about-bio-inner, .about-credentials-inner,
	.about-talks-inner, .about-elsewhere-inner {
		padding-left: 20px;
		padding-right: 20px;
	}
	.ventures-throughline, .ventures-cta { margin-left: -20px; margin-right: -20px; padding-left: 20px; padding-right: 20px; }
	.research-thesis { margin-left: -20px; margin-right: -20px; padding-left: 20px; padding-right: 20px; }
	.ventures-tier-3-grid { grid-template-columns: 1fr; }
	.dissertation-meta, .credentials-row { grid-template-columns: 1fr; gap: 16px; }
	.dissertation-card { padding: 24px; }
}
