/* Preserve the original Alegreya, magenta links, and 930px layout. */
:root {
  --font-body: "Alegreya", serif;
  --color-text: #000;
  --color-link: #d946ef;
  --color-link-hover: #a21caf;
  --color-muted: #6b7280;
  --page-width: 930px;
  --page-inset: 2rem;
}
*, *::before, *::after { box-sizing: border-box; }
html { line-height: 1.5; -webkit-text-size-adjust: 100%; tab-size: 4; }
body {
  width: 100%; max-width: var(--page-width); margin: 5rem auto 0;
  background: #fff; color: var(--color-text); font-family: var(--font-body);
  font-size: 1rem; line-height: 1.5;
}
h1, h2, h3, p, ul, ol, figure { margin: 0; }
h1, h2, h3 { font-size: inherit; font-weight: inherit; }
img { display: block; max-width: 100%; }
a { color: var(--color-link); text-decoration: none; }
a:hover { color: var(--color-link-hover); }
a:focus-visible, summary:focus-visible { outline: 2px solid var(--color-link-hover); outline-offset: 4px; }
strong { font-weight: 700; }
nav ul { display: flex; gap: 1.5rem; margin-left: .5rem; padding: 0; list-style: none; }
nav a { color: inherit; }
main { margin-top: 4rem; padding: 0 var(--page-inset); }
.about-layout { display: flex; flex-wrap: wrap; justify-content: center; }
.profile { flex-shrink: 0; }
.profile-photo { width: 11rem; height: 11rem; object-fit: cover; margin-bottom: .5rem; }
.social-links { display: flex; align-items: center; gap: .5rem; margin: 1rem 0 .25rem; }
.social-links img { width: 1.25rem; height: 1.25rem; }
.introduction { min-width: 0; }
.introduction h1 { margin: 2rem 0 1rem; font-size: 2.25rem; font-weight: 700; letter-spacing: .025em; line-height: 2.5rem; }
.prose p { margin-bottom: 1.5rem; text-align: justify; }
.prose ul, .prose ol { padding-left: 1.5rem; margin-bottom: 1.5rem; }
.prose h2, .prose h3 { font-weight: 700; margin: 1.5rem 0 .75rem; }
.prose pre { overflow-x: auto; padding: 1rem; background: #f5f5f5; margin: 1.5rem 0; }
.prose code { font-family: ui-monospace, monospace; font-size: .875em; }
.prose blockquote { margin: 1.5rem 0; padding-left: 1rem; border-left: 2px solid #ddd; }
.section-title { font-size: 1.5rem; font-weight: 700; line-height: 2rem; }
.publication { margin: 1rem 0; line-height: 1.5rem; overflow-wrap: anywhere; }
.publication-title { color: var(--color-link); }
.publication-description, .post-date { color: var(--color-muted); }
.post-date { margin: .5rem 0 1.5rem; }
summary { cursor: pointer; }
.photo-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1rem; max-width: 27rem; }
/* Balanced portrait frames: a light crop for cover, the full image for contain. */
.misc-photo { width: 100%; height: auto; aspect-ratio: 4 / 5; }
.misc-copy { margin-top: 1.5rem; }
.skip-link { position: absolute; left: -10000px; }
.skip-link:focus { left: 1rem; top: 1rem; }
@media (min-width: 640px) {
  nav ul { margin-left: 0; }
  .about-layout { flex-wrap: nowrap; justify-content: space-between; }
  .introduction { margin-left: 3rem; flex-grow: 1; }
}
