.article { max-width: 800px; margin: 0 auto; padding: 60px 24px 20rem; box-sizing: border-box; font-size: 1.25rem; line-height: 1.4; }
.article h1 { position: relative; font-size: 2.6rem; line-height: 1.1; margin: 0 0 0.5rem; }
.article .back-row { position: relative; margin: 0 0 1rem; min-height: 1.5em; }
/* The arrow always hangs left of the text's left edge. Wide viewports have margin for it;
   narrow ones get a gutter on the whole column so the alignment line simply moves right. */
.article .back { position: absolute; right: 100%; top: 0; margin-right: 0.45em; color: currentColor; opacity: 0.45; text-decoration: none; }
.article .back:hover { opacity: 0.9; }
@media (max-width: 960px) { .article { padding-left: 4.2rem; } }
.article .dates { font-size: 1rem; opacity: 0.6; margin: 0 0 1.5rem; }
.article h2 { font-size: 1.4rem; margin: 2.5rem 0 0.75rem; padding-bottom: 4px; border-bottom: 1px solid rgba(128, 128, 128, 0.35); }
.article p { margin: 0 0 1rem; }
.article a { color: currentColor; }
.article a.broken, .article .broken { opacity: 0.5; font-style: italic; }
.article ul { margin: 0 0 1rem; padding-left: 1.5rem; }
.article li { margin: 0 0 0.3rem; }
.article li > ul { margin: 0.3rem 0 0; }
.article pre { margin: 0 0 1rem; padding: 12px 16px; overflow-x: auto; background: rgba(128, 128, 128, 0.12); border-radius: 3px; font-size: 0.95rem; line-height: 1.4; tab-size: 3; }
.article code { font-size: 0.95em; background: rgba(128, 128, 128, 0.12); padding: 1px 5px; border-radius: 3px; }
.article figure { margin: 0 0 1.5rem; }
.article figure img { display: block; width: 100%; height: auto; border-radius: 3px; }
.article figcaption { font-size: 0.95rem; opacity: 0.7; margin-top: 0.4rem; }
.article .listing p { display: flex; flex-wrap: wrap; align-items: baseline; gap: 0 1rem; margin: 0 0 0.6rem; }
.article .listing .meta { font-size: 0.9rem; opacity: 0.55; }
