/* generated by papier-publish-site.py — styles for handwritten posts.
   Typesetting follows classic book conventions: justified and hyphenated
   paragraphs that flow with first-line indents instead of blank lines, on the
   site's own 16px/1.2rem Alegreya rhythm. */
:root { font-size: 26px; --line-height: 1.25rem; --font-family-code: "Google Sans Code", "Courier Prime", monospace; --code-background: #f7f7f5; --code-border: #d8d5cd; --link-color: #6b6b6b; }
:root[data-theme="dark"] { --code-background: #242424; --code-border: #484848; --link-color: #8f8b82; }
a:link, a:visited { text-decoration: none; }
body { padding-top: calc(var(--line-height) / 2); }
.site-nav { margin: calc(var(--line-height) / 2) 0 var(--line-height); }
.theme-toggle { width: 2.5rem; height: 2.5rem; padding: 0.5rem; color: var(--text-color); background: none; border: 0; border-radius: 0; opacity: 0.6; }
.theme-toggle:hover { color: var(--text-color); background: none; opacity: 1; }
.theme-toggle:active { transform: none; }
.post-list { margin: 0; padding: 0; list-style: none; }
.post-list li { display: flex; margin: 0 0 var(--line-height); flex-wrap: wrap; align-items: baseline; gap: 0.25rem 1.25rem; }
.post-list time, .post-dates { font-family: var(--font-family-display); font-variant: all-small-caps; letter-spacing: 0.05em; opacity: 0.7; }
.post-dates { margin: calc(var(--line-height) * -1.5) 0 calc(var(--line-height) * 1.5); }
.post-body { max-width: 60ch; hanging-punctuation: first last; }
.post-body > * { margin: 0; }
.post-body > * + * { margin-top: var(--line-height); }
.post-body p { text-align: left; text-wrap: pretty; overflow-wrap: break-word; -webkit-hyphens: none; hyphens: none; }
.post-body p + p, .post-body p + aside + p { margin-top: calc(var(--line-height) * 0.65); text-indent: 0; }
.post-body h2 + p, .post-body h3 + p, .post-body hr + p { text-indent: 0; }
.post-body a:link, .post-body a:visited { color: var(--link-color); text-decoration: none; }
.post-body a:hover { color: var(--text-color); }
.post-body h2, .post-body h3 { margin-top: calc(var(--line-height) * 2); font-family: var(--font-family-display); font-variant: all-small-caps; line-height: var(--line-height); }
.post-body h2 { font-size: 1.25rem; font-weight: 450; letter-spacing: 0.125em; }
.post-body h3 { font-size: 1.125rem; font-weight: 500; letter-spacing: 0.075em; }
.page-header h1, .post-body h2, .post-body h3 { text-wrap: balance; }
.post-body ul, .post-body ol { padding-left: 3ch; }
.post-body li { text-wrap: pretty; hyphens: none; }
.post-body li + li { margin-top: calc(var(--line-height) * 0.3); }
.post-body blockquote { padding: calc(var(--line-height) * 0.6) 1.5ch; background: var(--code-background); border-left: var(--border-thickness) solid var(--code-border); font-size: 0.9rem; }
.post-body blockquote p { margin: 0; text-indent: 0; }
.post-body blockquote p + p { margin-top: calc(var(--line-height) * 0.5); }
.post-body code, .post-body pre { font-family: var(--font-family-code); font-size: 0.8125rem; font-variant-ligatures: none; font-variant-numeric: lining-nums tabular-nums; }
.post-body :not(pre) > code { padding: 0.08em 0.3em; background: var(--code-background); border: 1px solid var(--code-border); border-radius: 0.2em; }
.post-body pre { margin: 0; padding: calc(var(--line-height) / 2) 1.5ch; overflow-x: auto; background: var(--code-background); border: 1px solid var(--code-border); border-radius: 0.25rem; line-height: 1.35; tab-size: 4; }
.post-body pre code { padding: 0; background: none; border: 0; font-size: inherit; }
.post-body code span.kw, .post-body code span.cf, .post-body code span.dt, .post-body code span.bu { font-weight: 600; }
.post-body code span.co { opacity: 0.65; font-style: italic; }
.post-body code span.st, .post-body code span.ss, .post-body code span.ch { opacity: 0.82; }
.post-body .sourceCode > span { display: block; }
.post-body img { display: block; max-width: 100%; height: auto; margin: var(--line-height) auto; border: var(--border-thickness) solid var(--text-color); }
:root[data-theme="dark"] .post-body img[src$=".svg"] { filter: invert(1) hue-rotate(180deg); }
.post-body figure { text-align: center; }
.post-body figcaption { font-size: 0.875rem; opacity: 0.7; }
.post-body hr { border: 0; border-top: var(--border-thickness) solid var(--text-color); }
.post-body sup, .post-body sub { line-height: 0; }
.post-body math { font-size: 1.08em; }
.post-body math[display="block"] { display: block; max-width: 100%; overflow-x: auto; overflow-y: hidden; text-align: center; }
.post-body aside { clear: both; font-size: 0.825rem; line-height: 1.3; text-align: left; opacity: 0.76; }
.post-body aside > p { margin: 0; text-indent: 0; }
.post-body aside > p:first-child { display: inline; }
.post-body aside > p + p { display: block; margin-top: 0.55rem; }
.post-body aside::before { content: "❧"; display: inline-block; margin-right: 0.5ch; font-size: 1rem; }
.nav-bottom { display: flex; gap: 1.5rem; }
@media screen and (min-width: 72rem) {
  body { overflow-x: visible; }
  .post-body { position: relative; }
  .post-body > aside { float: right; clear: right; width: 20ch; margin: 0 -24ch var(--line-height) 2ch; }
  .post-body > aside::before { display: none; }
}
@supports (anchor-name: --papier-sidenote) and (position-anchor: --papier-sidenote) {
  @media screen and (min-width: 72rem) {
    .post-body > *:has(+ aside) { anchor-name: --papier-sidenote; }
    .post-body > aside { position: absolute; position-anchor: --papier-sidenote; top: anchor(top); left: calc(100% + 2.5ch); float: none; width: 20ch; margin: 0; }
  }
}
@media screen and (max-width: 480px) {
  :root { font-size: 16px; }
}
