/*
Theme Name:   Ioana Negru
Theme URI:    https://t-studio.ro/
Description:  Custom academic theme ported from the Astro site (scholarly warmth). No page builder, no framework.
Author:       T Studio
Version:      0.7.0
Requires PHP: 7.4
Requires at least: 6.0
Text Domain:  ioananegru
*/

/* ---------- Fonts (self-hosted) ---------- */
@font-face { font-family: "EB Garamond"; font-style: normal; font-weight: 400; font-display: swap; src: url("assets/fonts/eb-garamond-latin-400-normal.woff2") format("woff2"); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
@font-face { font-family: "EB Garamond"; font-style: normal; font-weight: 400; font-display: swap; src: url("assets/fonts/eb-garamond-latin-ext-400-normal.woff2") format("woff2"); unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF; }
@font-face { font-family: "EB Garamond"; font-style: italic; font-weight: 400; font-display: swap; src: url("assets/fonts/eb-garamond-latin-400-italic.woff2") format("woff2"); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
@font-face { font-family: "EB Garamond"; font-style: italic; font-weight: 400; font-display: swap; src: url("assets/fonts/eb-garamond-latin-ext-400-italic.woff2") format("woff2"); unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF; }
@font-face { font-family: "EB Garamond"; font-style: normal; font-weight: 500; font-display: swap; src: url("assets/fonts/eb-garamond-latin-500-normal.woff2") format("woff2"); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
@font-face { font-family: "EB Garamond"; font-style: normal; font-weight: 500; font-display: swap; src: url("assets/fonts/eb-garamond-latin-ext-500-normal.woff2") format("woff2"); unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF; }
@font-face { font-family: "Inter"; font-style: normal; font-weight: 400; font-display: swap; src: url("assets/fonts/inter-latin-400-normal.woff2") format("woff2"); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
@font-face { font-family: "Inter"; font-style: normal; font-weight: 400; font-display: swap; src: url("assets/fonts/inter-latin-ext-400-normal.woff2") format("woff2"); unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF; }
@font-face { font-family: "Inter"; font-style: normal; font-weight: 500; font-display: swap; src: url("assets/fonts/inter-latin-500-normal.woff2") format("woff2"); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
@font-face { font-family: "Inter"; font-style: normal; font-weight: 500; font-display: swap; src: url("assets/fonts/inter-latin-ext-500-normal.woff2") format("woff2"); unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF; }
@font-face { font-family: "Inter"; font-style: normal; font-weight: 600; font-display: swap; src: url("assets/fonts/inter-latin-600-normal.woff2") format("woff2"); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
@font-face { font-family: "Inter"; font-style: normal; font-weight: 600; font-display: swap; src: url("assets/fonts/inter-latin-ext-600-normal.woff2") format("woff2"); unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF; }

/* ---------- Design tokens ---------- */
:root {
	--color-bg: #FAF7F0;
	--color-surface: #FFFDF8;
	--color-ink: #2B2A26;
	--color-ink-muted: #6B6862;
	--color-accent: #7A2E2E;
	--color-accent-hover: #5C2020;
	--color-gold: #C9A227;
	--color-border: #E3DDD1;

	--font-display: "EB Garamond", Georgia, "Times New Roman", serif;
	--font-body: "Inter", -apple-system, BlinkMacSystemFont, sans-serif;

	--text-xs: 0.8125rem;
	--text-sm: 0.9375rem;
	--text-base: 1.0625rem;
	--text-lg: 1.25rem;
	--text-xl: 1.5rem;
	--text-2xl: 2rem;
	--text-3xl: 2.75rem;

	--space-1: 0.5rem;
	--space-2: 1rem;
	--space-3: 1.5rem;
	--space-4: 2rem;
	--space-5: 3rem;
	--space-6: 5rem;

	/* Reading width. The Astro site declares 68ch, but its fonts load without unicode-range,
	   so browsers resolve "ch" to the 0.5em fallback: the width actually shown there is 34em
	   (578px for body text). 34em reproduces that exactly. */
	--measure: 34em;
	--width-content: 1120px;
	--radius: 4px;
}

@media (max-width: 640px) {
	:root { --text-3xl: 2rem; --text-2xl: 1.625rem; --text-xl: 1.3125rem; }
}

/* ---------- Base ---------- */
*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; text-size-adjust: 100%; scroll-behavior: smooth; }
body {
	margin: 0;
	background-color: var(--color-bg);
	color: var(--color-ink);
	font-family: var(--font-body);
	font-size: var(--text-base);
	line-height: 1.7;
	-webkit-font-smoothing: antialiased;
}
h1, h2, h3, h4, h5, h6 {
	margin: 0 0 var(--space-2);
	font-family: var(--font-display);
	font-weight: 500;
	line-height: 1.2;
	text-wrap: balance;
}
h1 { font-size: var(--text-3xl); }
h2 { font-size: var(--text-2xl); }
h3 { font-size: var(--text-xl); }
h4 { font-size: var(--text-lg); }
h5, h6 { font-size: var(--text-base); }
p, ul, ol, blockquote, figure, table { margin: 0 0 var(--space-2); }
a { color: var(--color-accent); text-underline-offset: 0.2em; text-decoration-thickness: 1px; }
a:hover { color: var(--color-accent-hover); }
strong { font-weight: 600; }
small { font-size: var(--text-sm); }
blockquote {
	padding-left: var(--space-2);
	border-left: 2px solid var(--color-gold);
	color: var(--color-ink-muted);
	font-family: var(--font-display);
	font-size: var(--text-lg);
}
hr { height: 1px; margin: var(--space-4) 0; background-color: var(--color-border); border: 0; }
code, pre { font-family: ui-monospace, "SF Mono", "Cascadia Mono", Menlo, monospace; font-size: 0.9em; }
img, picture, svg, video { display: block; max-width: 100%; height: auto; }
button, input, select, textarea { font: inherit; color: inherit; }
[hidden] { display: none !important; }
:focus-visible { outline: 2px solid var(--color-accent); outline-offset: 3px; }

.container {
	width: 100%;
	max-width: var(--width-content);
	margin-inline: auto;
	padding-inline: var(--space-2);
}
@media (min-width: 768px) {
	.container { padding-inline: var(--space-4); }
}
.prose { max-width: var(--measure); }

.screen-reader-text {
	position: absolute !important;
	width: 1px; height: 1px;
	overflow: hidden;
	clip: rect(1px, 1px, 1px, 1px);
	clip-path: inset(50%);
	white-space: nowrap;
}

@media (prefers-reduced-motion: reduce) {
	html { scroll-behavior: auto; }
	*, *::before, *::after { animation-duration: 0.01ms !important; animation-iteration-count: 1 !important; transition-duration: 0.01ms !important; }
}

/* ---------- Skip link ---------- */
.skip-link {
	position: absolute;
	top: 0;
	left: var(--space-2);
	z-index: 10;
	padding: var(--space-1) var(--space-2);
	background-color: var(--color-surface);
	border: 1px solid var(--color-border);
	border-radius: var(--radius);
	font-size: var(--text-sm);
	transform: translateY(-150%);
}
.skip-link:focus { transform: translateY(var(--space-1)); }

/* ---------- Header ---------- */
.site-header {
	background-color: var(--color-bg);
	border-bottom: 1px solid var(--color-border);
}
.header-inner {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: var(--space-1);
	padding-block: var(--space-2);
	text-align: center;
}
.wordmark {
	font-family: var(--font-display);
	font-size: var(--text-xl);
	font-weight: 500;
	letter-spacing: 0.01em;
	color: var(--color-ink);
	text-decoration: none;
}
.wordmark:hover { color: var(--color-accent); }
.main-nav ul {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: var(--space-1) var(--space-2);
	margin: 0;
	padding: 0;
	list-style: none;
}
.main-nav a {
	display: inline-block;
	padding-block: 0.15rem;
	color: var(--color-ink-muted);
	font-size: var(--text-sm);
	text-decoration: none;
}
.main-nav a:hover { color: var(--color-accent); }
.main-nav a[aria-current="page"],
.main-nav .current-menu-item > a,
.main-nav .current_page_item > a,
.main-nav .current-menu-ancestor > a {
	color: var(--color-accent);
	border-bottom: 2px solid var(--color-gold);
}
.main-nav ul ul { display: none; } /* flat navigation, as in the original */

@media (min-width: 768px) {
	.header-inner {
		flex-direction: row;
		justify-content: space-between;
		gap: var(--space-3);
		padding-block: var(--space-3);
		text-align: left;
	}
	.main-nav ul { justify-content: flex-end; gap: var(--space-3); }
}

/* ---------- Fallback template (index.php) ---------- */
.index-wrap { padding-block: var(--space-5); }
.entry + .entry { margin-top: var(--space-5); padding-top: var(--space-5); border-top: 1px solid var(--color-border); }
.entry-title a { color: var(--color-ink); text-decoration: none; }
.entry-title a:hover { color: var(--color-accent); text-decoration: underline; }

/* ---------- Page heading (lists) ---------- */
.page-head {
	margin-bottom: var(--space-4);
	padding-block: var(--space-5) var(--space-4);
	border-bottom: 1px solid var(--color-border);
}
.page-head h1 { margin-bottom: var(--space-1); }
.lede { max-width: var(--measure); margin: 0; color: var(--color-ink-muted); font-size: var(--text-lg); }
.empty { color: var(--color-ink-muted); font-style: italic; }

/* ---------- Article cards ---------- */
.card-grid {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
	gap: var(--space-2);
	margin: 0;
	padding: 0;
	list-style: none;
}
.card {
	display: flex;
	flex-direction: column;
	height: 100%;
	overflow: hidden;
	background-color: var(--color-surface);
	border: 1px solid var(--color-border);
	border-radius: var(--radius);
}
.card .cover-frame {
	aspect-ratio: 16 / 9;
	background-color: var(--color-bg);
	border-bottom: 1px solid var(--color-border);
}
.card .cover { width: 100%; height: 100%; object-fit: cover; }
.card .body { display: flex; flex: 1 1 0%; flex-direction: column; padding: var(--space-3); }
.card .date {
	margin: 0 0 var(--space-1);
	color: var(--color-ink-muted);
	font-size: var(--text-xs);
	letter-spacing: 0.03em;
	text-transform: uppercase;
}
.card .title { margin: 0 0 var(--space-1); font-size: var(--text-lg); }
.card .title a { color: var(--color-ink); text-decoration: none; }
.card .title a:hover { color: var(--color-accent); text-decoration: underline; }
.card .excerpt { margin: 0; color: var(--color-ink-muted); font-size: var(--text-sm); }

/* ---------- Pagination ---------- */
.pagination {
	display: flex;
	flex-wrap: wrap;
	justify-content: space-between;
	align-items: center;
	gap: var(--space-2);
	margin-top: var(--space-4);
	padding-top: var(--space-3);
	border-top: 1px solid var(--color-border);
	font-size: var(--text-sm);
}
.page-count { color: var(--color-ink-muted); font-size: var(--text-xs); }
.disabled { color: var(--color-border); }

/* ---------- Single article ---------- */
.article-head { max-width: var(--measure); padding-block: var(--space-5) var(--space-3); }
.article-head .meta {
	margin-bottom: var(--space-1);
	color: var(--color-ink-muted);
	font-size: var(--text-xs);
	letter-spacing: 0.03em;
	text-transform: uppercase;
}
.article-head h1 { margin-bottom: var(--space-2); }
.article-head .description { margin: 0; color: var(--color-ink-muted); font-size: var(--text-lg); }
.tags { display: flex; flex-wrap: wrap; gap: var(--space-1); margin: var(--space-2) 0 0; padding: 0; list-style: none; }
.tags li {
	padding: 0.1rem var(--space-1);
	border: 1px solid var(--color-border);
	border-radius: var(--radius);
	color: var(--color-ink-muted);
	font-size: var(--text-xs);
}
.article-cover {
	width: 100%;
	height: auto;
	aspect-ratio: 16 / 9;
	object-fit: cover;
	margin-bottom: var(--space-4);
	border-radius: var(--radius);
}

/* Body: text at reading width; "wide"/"full" blocks span the whole content width. */
.article-body {
	display: grid;
	grid-template-columns: [full-start content-start] min(var(--measure), 100%) [content-end] minmax(0, 1fr) [full-end];
	padding-bottom: var(--space-4);
}
.article-body > * { grid-column: content; }
.article-body > .alignwide,
.article-body > .alignfull,
.article-body > figure.wide { grid-column: full; }
.article-body h2 { margin-top: var(--space-4); }
.article-body h3 { margin-top: var(--space-3); }
.article-body img { max-width: 100%; height: auto; border-radius: var(--radius); }
.article-body figure { margin: var(--space-3) 0; }
.article-body figcaption,
.article-body .wp-element-caption {
	margin-top: var(--space-1);
	color: var(--color-ink-muted);
	font-size: var(--text-sm);
	line-height: 1.5;
}
.article-body .alignwide figcaption,
.article-body .alignfull figcaption,
.article-body figure.wide figcaption { text-align: center; }
.article-body ul,
.article-body ol { padding-left: var(--space-3); }
.article-body li { margin-bottom: var(--space-1); }
.article-body .aligncenter { margin-inline: auto; }
.article-body .alignleft { float: left; margin: 0 var(--space-3) var(--space-2) 0; }
.article-body .alignright { float: right; margin: 0 0 var(--space-2) var(--space-3); }
.page-links { font-size: var(--text-sm); }
.article-foot {
	padding-block: var(--space-3) var(--space-5);
	border-top: 1px solid var(--color-border);
	font-size: var(--text-sm);
}

/* ---------- Home ---------- */
.hero {
	display: grid;
	align-items: center;
	gap: var(--space-3);
	padding-block: var(--space-5);
}
.portrait {
	width: 100%;
	max-width: 260px;
	aspect-ratio: 4 / 5;
	object-fit: cover;
	margin-inline: auto;
	border-radius: var(--radius);
}
.hero h1 { margin-bottom: var(--space-1); }
.role { margin-bottom: var(--space-2); color: var(--color-accent); font-family: var(--font-display); font-size: var(--text-lg); }
.statement { max-width: var(--measure); margin-bottom: var(--space-3); color: var(--color-ink-muted); }
.hero .button {
	display: inline-block;
	padding: var(--space-1) var(--space-3);
	border: 1px solid var(--color-accent);
	border-radius: var(--radius);
	color: var(--color-accent);
	font-size: var(--text-sm);
	text-decoration: none;
}
.hero .button:hover { background-color: var(--color-accent); color: var(--color-bg); }
@media (min-width: 768px) {
	.hero { grid-template-columns: 260px 1fr; gap: var(--space-5); padding-block: var(--space-6); }
	.portrait { margin-inline: 0; }
}

.section { padding-block: var(--space-4); border-top: 1px solid var(--color-border); }
.section-head {
	display: flex;
	flex-wrap: wrap;
	justify-content: space-between;
	align-items: baseline;
	gap: var(--space-1) var(--space-2);
	margin-bottom: var(--space-3);
}
.section-head h2 { margin: 0; }
.section-head a { font-size: var(--text-sm); }

.home-books {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(140px, 1fr));
	gap: var(--space-3);
	margin: 0;
	padding: 0;
	list-style: none;
}
.home-book { display: flex; flex-direction: column; gap: 0.15rem; text-decoration: none; }
.home-book .cover {
	width: 100%;
	aspect-ratio: 2 / 3;
	object-fit: cover;
	margin-bottom: var(--space-1);
	border: 1px solid var(--color-border);
	border-radius: var(--radius);
}
.home-book .book-title { color: var(--color-ink); font-family: var(--font-display); font-size: var(--text-base); line-height: 1.3; }
.home-book:hover .book-title { color: var(--color-accent); text-decoration: underline; }
.home-book .book-year { color: var(--color-ink-muted); font-size: var(--text-xs); }

/* ---------- Publications ---------- */
.page-head--plain { margin-bottom: 0; border-bottom: 0; }
.pub-section { padding-block: var(--space-4); border-top: 1px solid var(--color-border); }
.pub-section > h2 { margin-bottom: var(--space-3); }

.filters { margin-bottom: var(--space-3); }
.filter-row { display: flex; flex-wrap: wrap; gap: var(--space-1); }
.chip {
	padding: 0.25rem var(--space-2);
	background-color: var(--color-surface);
	border: 1px solid var(--color-border);
	border-radius: var(--radius);
	color: var(--color-ink-muted);
	font-size: var(--text-sm);
	cursor: pointer;
}
.chip:hover { border-color: var(--color-accent); color: var(--color-accent); }
.chip[aria-pressed="true"] { background-color: var(--color-accent); border-color: var(--color-accent); color: var(--color-bg); }
.chip .count { opacity: 0.7; font-size: var(--text-xs); font-variant-numeric: tabular-nums; }
.showing { margin: var(--space-1) 0 0; color: var(--color-ink-muted); font-size: var(--text-xs); }

.book-grid {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(200px, 1fr));
	gap: var(--space-4) var(--space-3);
	margin: 0;
	padding: 0;
	list-style: none;
}
.book { display: flex; flex-direction: column; }
.book .cover {
	width: 100%;
	aspect-ratio: 2 / 3;
	object-fit: cover;
	margin-bottom: var(--space-2);
	border: 1px solid var(--color-border);
	border-radius: var(--radius);
}
.book-body { display: flex; flex: 1 1 0%; flex-direction: column; }
.book-title { margin: 0; font-size: var(--text-base); line-height: 1.3; }
.book-year { margin: 0 0 var(--space-1); color: var(--color-ink-muted); font-size: var(--text-xs); }
.book-description { margin: 0 0 var(--space-2); color: var(--color-ink-muted); font-size: var(--text-sm); }
.book-actions {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: var(--space-1) var(--space-2);
	min-height: 2rem;
	margin: auto 0 0;
}
.book-actions .button {
	display: inline-block;
	padding: 0.2rem var(--space-2);
	border: 1px solid var(--color-accent);
	border-radius: var(--radius);
	color: var(--color-accent);
	font-size: var(--text-xs);
	text-decoration: none;
}
.book-actions .button:hover { background-color: var(--color-accent); color: var(--color-bg); }
.book-actions .publisher { font-size: var(--text-xs); }

@media (max-width: 767px) {
	.book-grid { grid-template-columns: 1fr; gap: 0; }
	.book {
		display: grid;
		grid-template-columns: 64px 1fr;
		align-items: start;
		gap: var(--space-2);
		padding-block: var(--space-2);
		border-bottom: 1px solid var(--color-border);
	}
	.book .cover { margin-bottom: 0; }
	.book-description { display: none; }
	.book-actions { margin: var(--space-1) 0 0; min-height: 0; }
}

.year-group + .year-group { margin-top: var(--space-3); }
.year {
	margin-bottom: var(--space-1);
	padding-bottom: 0.2rem;
	border-bottom: 1px solid var(--color-border);
	color: var(--color-ink-muted);
	font-size: var(--text-base);
	letter-spacing: 0.05em;
}
.pub-list { margin: 0; padding: 0; list-style: none; }
.pub {
	max-width: var(--measure);
	padding-block: var(--space-1);
	padding-left: var(--space-3);
	text-indent: calc(var(--space-3) * -1);
	font-size: var(--text-sm);
}
.pub-title { font-family: var(--font-display); font-size: var(--text-base); font-style: italic; }
.venue, .pub-year { color: var(--color-ink-muted); }
.pub-link { margin-left: 0.4em; font-size: var(--text-xs); white-space: nowrap; }

/* ---------- Teaching ---------- */
.course-list { margin: 0; padding: 0; list-style: none; }
.course { max-width: var(--measure); padding-block: var(--space-3); border-top: 1px solid var(--color-border); }
.course h2 { margin-bottom: var(--space-1); font-size: var(--text-xl); }
.course .meta,
.conf .meta { margin-bottom: var(--space-2); color: var(--color-ink-muted); font-size: var(--text-sm); }
.sep { color: var(--color-border); }
.course-body p:last-child,
.conf-body p:last-child { margin-bottom: 0; }

/* ---------- Conferences ---------- */
.conf-year { max-width: var(--measure); }
.conf-year .year {
	margin-bottom: var(--space-2);
	padding-bottom: 0.2rem;
	border-bottom: 1px solid var(--color-border);
	color: var(--color-ink-muted);
	font-size: var(--text-base);
	letter-spacing: 0.05em;
}
.conf-list { margin: 0 0 var(--space-4); padding: 0; list-style: none; }
.conf + .conf { margin-top: var(--space-3); }
.conf-title { margin-bottom: 0.15rem; font-size: var(--text-lg); }
.conf-title a { color: var(--color-ink); text-decoration-color: var(--color-border); }
.conf-title a:hover { color: var(--color-accent); text-decoration-color: currentColor; }
.conf .meta { margin-bottom: var(--space-1); }

/* ---------- Links ---------- */
.link-group { max-width: var(--measure); padding-top: var(--space-3); border-top: 1px solid var(--color-border); }
.link-group + .link-group { margin-top: var(--space-3); }
.link-group h2 { margin-bottom: var(--space-2); font-size: var(--text-xl); }
.link-list { margin: 0 0 var(--space-3); padding: 0; list-style: none; }
.link { padding-block: var(--space-1); }
.link > a { font-family: var(--font-display); font-size: var(--text-lg); text-decoration: none; }
.link > a:hover { text-decoration: underline; }
.host { margin-left: 0.5em; color: var(--color-ink-muted); font-size: var(--text-xs); overflow-wrap: anywhere; }
.link .description { margin: 0.1rem 0 0; color: var(--color-ink-muted); font-size: var(--text-sm); }

/* ---------- About ---------- */
.lede--accent { color: var(--color-accent); font-family: var(--font-display); }
.about-layout {
	display: grid;
	gap: var(--space-4);
	padding-block: var(--space-4) var(--space-5);
	border-top: 1px solid var(--color-border);
}
.about-side .portrait { margin-inline: 0; }
.contact { margin-top: var(--space-3); }
.contact h2,
.collaborators h2 { margin-bottom: var(--space-1); font-size: var(--text-base); }
.contact dl { margin: 0; }
.contact dt { color: var(--color-ink-muted); font-size: var(--text-xs); letter-spacing: 0.03em; text-transform: uppercase; }
.contact dd { margin: 0 0 var(--space-1); font-size: var(--text-sm); overflow-wrap: anywhere; }
.about-main { max-width: var(--measure); }
.about-body h2 { margin-top: var(--space-4); font-size: var(--text-xl); }
.about-body h2:first-child { margin-top: 0; }
.about-body h3 { margin-top: var(--space-3); }
.about-body img { max-width: 100%; height: auto; border-radius: var(--radius); }
.collaborators { margin-top: var(--space-4); padding-top: var(--space-3); border-top: 1px solid var(--color-border); }
.collaborators ul { margin: 0; padding: 0; list-style: none; }
.collaborators li { padding-block: 0.15rem; color: var(--color-ink-muted); font-size: var(--text-sm); }
@media (min-width: 768px) {
	.about-layout { grid-template-columns: 260px 1fr; gap: var(--space-5); }
	.about-side { position: sticky; top: var(--space-2); align-self: start; }
}

/* ---------- 404 ---------- */
.not-found { max-width: var(--measure); padding-block: var(--space-6); }
.not-found .code {
	margin-bottom: var(--space-1);
	color: var(--color-gold);
	font-family: var(--font-display);
	font-size: var(--text-2xl);
	letter-spacing: 0.1em;
}
.not-found h1 { margin-bottom: var(--space-2); }
.not-found .message { margin-bottom: var(--space-3); color: var(--color-ink-muted); }
.destinations { display: flex; flex-wrap: wrap; gap: var(--space-1) var(--space-3); margin: 0; padding: 0; list-style: none; }
.destinations a { font-size: var(--text-sm); }

/* ---------- Footer ---------- */
.site-footer {
	margin-top: var(--space-6);
	background-color: var(--color-surface);
	border-top: 1px solid var(--color-border);
}
.footer-inner {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: var(--space-2);
	padding-block: var(--space-4);
	text-align: center;
}
.footer-links {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: var(--space-1) var(--space-3);
	margin: 0;
	padding: 0;
	list-style: none;
}
.footer-links a { font-size: var(--text-sm); text-decoration: none; }
.footer-links a:hover { text-decoration: underline; }
.copyright { margin: 0; color: var(--color-ink-muted); font-size: var(--text-xs); }

@media (min-width: 768px) {
	.footer-inner { flex-direction: row; justify-content: space-between; text-align: left; }
}
