:root {
  --journal-body: clamp(1rem, .97rem + .15vw, 1.125rem);
  --journal-small: .875rem;
  --journal-title: clamp(2.25rem, 4.5vw, 4.25rem);
  --journal-subtitle: clamp(1.5rem, 2.4vw, 2rem);
  --journal-gap: clamp(1.5rem, 4vw, 4rem);
}
.journal-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:3rem 2rem; }
.journal-card { display:block; border-bottom:1px solid #ffffff35; padding-bottom:2rem; min-width:0; }
.journal-card>img { width:100%; aspect-ratio:16/9; object-fit:cover; background:var(--paper); }
.journal-card-copy { padding-top:1.5rem; }
.journal-meta { color:var(--muted); font-size:var(--journal-small); margin-bottom:1rem; }
.journal-card h2,.journal-card h3 { font-size:var(--journal-subtitle); line-height:1.2; margin-bottom:1rem; }
.journal-card-copy>p:not(.journal-meta) { color:var(--muted); font-size:var(--journal-body); max-width:58ch; }
.journal-card:hover h2,.journal-card:hover h3 { color:var(--yellow); }
.journal-index { padding-top:1rem; }
.journal-index .journal-card:first-child { grid-column:1/-1; display:grid; grid-template-columns:1.15fr 1fr; gap:var(--journal-gap); align-items:center; }
.journal-index .journal-card:first-child .journal-card-copy { padding-top:0; }
.journal-index .journal-card:first-child h2 { font-size:clamp(2rem,3.5vw,3rem); }
.journal-index .journal-card:last-child { grid-column:1/-1; display:grid; grid-template-columns:1fr 1.15fr; gap:var(--journal-gap); align-items:center; }
.journal-heading { padding-block:3rem 2.5rem; }
.journal-heading>.journal-meta { margin-top:2rem; }
.journal-heading h1 { max-width:22ch; font-size:var(--journal-title); line-height:1.1; margin-bottom:1.5rem; }
.journal-lede { max-width:76ch; font-size:var(--journal-body); color:#deddd6; margin-bottom:0; }
.journal-layout { display:grid; grid-template-columns:15rem minmax(0,48rem); gap:var(--journal-gap); align-items:start; padding-bottom:3rem; }
.journal-contents { position:sticky; top:2rem; }
.journal-contents .eyebrow { margin-bottom:1rem; }
.journal-contents a { display:block; color:var(--muted); padding-block:.625rem; border-bottom:1px solid #ffffff24; font-size:var(--journal-small); line-height:1.5; }
.journal-contents a:hover { color:var(--yellow); }
.journal-body { min-width:0; }
.journal-photo { margin:0 0 2.5rem; }
.journal-photo img { width:100%; aspect-ratio:16/9; object-fit:cover; }
.journal-card>img.teaching-photo,.journal-photo img.teaching-photo { object-position:center top; }
.journal-body .prose { font-size:var(--journal-body); line-height:1.8; }
.journal-body .prose h2 { font-size:var(--journal-subtitle); margin-top:2.5rem; margin-bottom:1.25rem; scroll-margin-top:2rem; }
.journal-body .prose ul,.journal-body .prose ol { padding-left:1.5rem; }
.journal-body .prose li { margin-bottom:.75rem; }
.journal-body .prose table { min-width:0; font-size:var(--journal-small); line-height:1.6; }
.journal-body .prose td:first-child { width:auto; }
.journal-back { margin-top:2rem; }
.journal-related { border-top:1px solid #ffffff24; }
.journal-related>h2 { font-size:var(--journal-subtitle); margin-bottom:2rem; }
.blog-home { border-top:1px solid #ffffff24; }
.blog-home .journal-grid { grid-template-columns:repeat(3,minmax(0,1fr)); }
@media (min-width:761px) and (max-width:1100px) {
  .site-header { padding-inline:1.5rem; gap:1rem; }
  .site-header nav { gap:.75rem; font-size:.75rem; letter-spacing:0; }
  .brand,.brand img { width:90px; }
}
@media (max-width:900px) {
  .journal-layout { grid-template-columns:minmax(0,1fr); }
  .journal-contents { position:static; }
  .journal-contents nav { display:grid; grid-template-columns:1fr 1fr; gap:0 1.5rem; }
  .journal-contents .eyebrow { grid-column:1/-1; }
}
@media (max-width:760px) {
  .journal-grid,.blog-home .journal-grid { grid-template-columns:minmax(0,1fr); }
  .journal-index .journal-card:first-child,.journal-index .journal-card:last-child { display:block; }
  .journal-index .journal-card:first-child .journal-card-copy { padding-top:1.5rem; }
  .journal-heading { padding-top:2rem; }
  .journal-heading h1 { font-size:2.25rem; }
  .journal-contents nav { display:block; }
  .journal-photo { margin-bottom:2rem; }
  .journal-body .prose table { font-size:.8125rem; }
  .journal-body .prose td,.journal-body .prose th { padding:.625rem; }
}
