:root { --muted:#66645e; --rule:#d2d0c8; }
* { box-sizing:border-box; }
html { font-size:17px; }
body { font-family:Georgia,"Times New Roman",serif; line-height:1.6; margin:0 auto; max-width:48rem; padding:0 1rem; }
article,aside,figure,footer,header,main,nav,section { display:block; }
img,video { height:auto; max-width:100%; }
h1,h2,h3,h4 { line-height:1.2; }
pre { overflow-x:auto; }
code,pre { font-family:ui-monospace,SFMono-Regular,Consolas,monospace; }

.site-header { border-bottom:1px solid var(--rule); padding:1.25rem 0 .75rem; }
.site-nav { display:block; }
.site-brand { font-weight:bold; text-decoration:none; }
.site-nav-links { display:flex; flex-wrap:wrap; gap:.2rem .85rem; margin-top:.35rem; }
.site-nav-links a { font-size:.9rem; }
.site-site-main { padding-top:1.75rem; }
.site-footer { border-top:1px solid var(--rule); color:var(--muted); font-size:.8rem; margin-top:3rem; padding:1rem 0 2.5rem; }
.site-footer-links { display:flex; flex-wrap:wrap; gap:.2rem .85rem; margin:.35rem 0; }

/* Homepage */
.site-hero { align-items:start; display:grid; gap:1.5rem; grid-template-columns:minmax(0,1fr) 13rem; }
.site-hero-copy { margin-bottom:0; }
.site-hero h1 { font-size:1.4rem; margin:0 0 .4rem; }
.site-intro { margin:0; max-width:38rem; }
.site-hero-photo { display:block; margin:0; }
.site-hero-photo img { aspect-ratio:4 / 3; display:block; object-fit:cover; width:100%; }
.site-hero-photo span { color:var(--muted); display:block; font-size:.78rem; margin-top:.25rem; }
.site-arrow { font-size:.8rem; }
.site-section-heading { align-items:baseline; display:flex; justify-content:space-between; margin-top:2rem; }
.site-section-heading h2 { font-size:1.4rem; margin:0; }
.site-section-heading a { font-size:.85rem; }
.site-recent-row { display:grid; gap:.5rem; grid-template-columns:7rem 1fr auto; padding:.45rem 0; text-decoration:none; }
.site-recent-row time,.site-recent-row span { color:var(--muted); font-size:.78rem; }
.site-recent-row strong { font-size:.95rem; font-weight:normal; text-decoration:underline; }

/* Lists and indexes */
.site-page-header { border-bottom:1px solid var(--rule); margin-bottom:1.5rem; padding-bottom:1rem; }
.site-page-header h1 { font-size:2.25rem; margin:.25rem 0 0; }
.site-blog-entry { padding:1rem 0; }
.site-blog-entry-meta { color:var(--muted); display:flex; font-size:.78rem; gap:.75rem; }
.site-blog-entry-main h2 { font-size:1.25rem; margin:.15rem 0 .35rem; }
.site-blog-summary { font-size:.92rem; }
.site-blog-summary>:first-child { margin-top:0; }
.site-blog-summary>:last-child { margin-bottom:0; }
.site-blog-summary img,.site-blog-summary figure,.site-blog-summary iframe,.site-blog-summary pre,.site-blog-summary table { display:none; }
.site-blog-entry-arrow { font-size:.8rem; }
.site-pagination { display:flex; font-size:.85rem; justify-content:space-between; padding:1rem 0; }
.site-pagination>div { display:flex; gap:.75rem; }
.site-index-row { display:grid; gap:.75rem; padding:.5rem 0; text-decoration:none; }
.site-archive-row { grid-template-columns:7rem 1fr auto; }
.site-taxonomy-row { grid-template-columns:1fr auto; }
.site-index-row time,.site-index-row span,.site-index-row i { color:var(--muted); font-size:.78rem; font-style:normal; }
.site-index-row strong { font-weight:normal; text-decoration:underline; }

/* Software, resources and galleries */
.site-special-intro { margin-bottom:2rem; }
.site-special-section { border-top:1px solid var(--rule); padding:1rem 0; }
.site-special-section-heading { display:flex; gap:1rem; }
.site-special-section-heading h2 { margin:0; }
.site-special-feature { display:flex; gap:1rem; padding:.5rem 0; }
.site-project { display:grid; gap:1rem; grid-template-columns:2rem 12rem 1fr; padding:1rem 0; }
.site-project h2 { font-size:1.25rem; margin:0; }
.site-project-label,.site-project-number { color:var(--muted); font-size:.78rem; margin:0; }
.site-project-detail p { margin-top:0; }
.site-project-links { display:flex; font-size:.85rem; gap:.75rem; }
.site-resource-grid { display:grid; grid-template-columns:1fr 1fr; }
.site-resource-grid a { padding:.5rem 0; }
.site-gallery-grid { columns:3; column-gap:.75rem; }
.site-gallery-item { break-inside:avoid; margin:0 0 .75rem; }
.site-gallery-item figure { margin:0; }

/* Articles */
.site-article-header { border-bottom:1px solid var(--rule); padding-bottom:1rem; }
.site-article-meta { color:var(--muted); display:flex; font-size:.8rem; gap:.75rem; }
.site-article-header h1 { font-size:2.25rem; margin:.4rem 0; }
.site-article-header h1 a { text-decoration:none; }
.site-article-modified { color:var(--muted); font-size:.8rem; margin:0; }
.site-article-rail { color:var(--muted); font-size:.78rem; margin:1rem 0; }
.site-article-rail>p { display:none; }
.site-article-rail dl { display:flex; flex-wrap:wrap; gap:.25rem .75rem; margin:0; }
.site-article-rail dt { font-weight:bold; }
.site-article-rail dd { margin:0; }
.site-rail-tags { display:flex; flex-wrap:wrap; gap:.5rem; margin-top:.25rem; }
.site-reading-content { margin-top:2rem; }
.site-reading-content h2 { font-size:1.5rem; margin-top:2.2rem; }
.site-reading-content h3 { font-size:1.25rem; margin-top:2rem; }
.site-reading-content blockquote { border-left:3px solid var(--rule); margin-left:0; padding-left:1rem; }
.site-reading-content img { display:block; margin:1.5rem auto; }
.site-reading-content figcaption { color:var(--muted); font-size:.8rem; }
.site-reading-content pre { border:1px solid var(--rule); padding:.75rem; }
.site-reading-content table { display:block; max-width:100%; overflow-x:auto; }
.site-reading-content iframe { max-width:100%; }
.site-article-footer { border-top:1px solid var(--rule); display:flex; font-size:.85rem; justify-content:space-between; margin-top:2rem; padding-top:.75rem; }

@media (max-width:42rem) {
  html { font-size:16px; }
  .site-hero { display:block; }
  .site-hero-photo { margin:1.25rem 0; max-width:18rem; }
  .site-recent-row { grid-template-columns:5.5rem 1fr; }
  .site-recent-row span { display:none; }
  .site-project { grid-template-columns:2rem 1fr; }
  .site-project-detail { grid-column:2; }
  .site-gallery-grid { columns:2; }
  .site-blog-summary { font-size:.88rem; }
  .site-archive-row { grid-template-columns:5.5rem 1fr; }
  .site-archive-row span { display:none; }
}
