/* Minimal reset: plain CSS source, served directly; no legacy compiler needed. */
@font-face {
  font-family: "Valkyrie B"; font-style: normal; font-weight: 400; font-display: swap;
  src: url('/fonts/valkyrie_b_regular.woff2') format('woff2');
}
@font-face {
  font-family: "Valkyrie B"; font-style: italic; font-weight: 400; font-display: swap;
  src: url('/fonts/valkyrie_b_italic.woff2') format('woff2');
}
@font-face {
  font-family: "Valkyrie B"; font-style: normal; font-weight: 700; font-display: swap;
  src: url('/fonts/valkyrie_b_bold.woff2') format('woff2');
}
@font-face {
  font-family: "Valkyrie B"; font-style: italic; font-weight: 700; font-display: swap;
  src: url('/fonts/valkyrie_b_bold_italic.woff2') format('woff2');
}
:root {
  color-scheme: light dark;
  --paper: #fff;
  --ink: #333;
  --quiet-text: #606560;
  --reading-title: #222;
  --reading-link: #137547;
  --link-hover: #093822;
  --rule: #e3e5e3;
  --field-border: #858b85;
  --error: #a12e32;
  --marker: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 6' preserveAspectRatio='none'%3E%3Cpath d='M1 4 Q28 2 53 3 T99 2' fill='none' stroke='%23137547' stroke-opacity='.38' stroke-width='2'/%3E%3C/svg%3E");
}
@media (prefers-color-scheme: dark) {
  :root {
    --paper: #1a1b1a;
    --ink: #d8d8d6;
    --quiet-text: #a6aaa6;
    --reading-title: #eee;
    --reading-link: #ee82ee;
    --link-hover: #f7c1f7;
    --rule: #393d39;
    --field-border: #757b75;
    --error: #f0a3a3;
    --marker: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 6' preserveAspectRatio='none'%3E%3Cpath d='M1 4 Q28 2 53 3 T99 2' fill='none' stroke='%23ee82ee' stroke-opacity='.45' stroke-width='2'/%3E%3C/svg%3E");
  }
}
body { background: var(--paper); color: var(--ink); font-synthesis: none; }
::selection { background: #15372f; color: #fff; }
h1, h2, h3, h4, .meta, .book__rating, .secondary-nav, .section-link, .quiet-links {
  font-family: "Valkyrie B", "Hoefler Text", serif;
  font-variant: normal; text-transform: none; letter-spacing: normal;
}
h1, h2, h3, h4 {
  color: var(--reading-title); hyphens: none;
  overflow-wrap: anywhere; /* Only break a word if it cannot fit on its own. */
  text-wrap: pretty;
}
.post-title, .post-header > h1.post-title, .post-body h3 { font-style: normal; }
.page-title, .post-header > h1, .work-title, .error-status {
  font-size: 1.33333em; line-height: 1.25; font-style: normal;
}
.post-header > h1 { max-width: none; }
.weblog-header { padding-top: 2em; margin-bottom: 2em; }
.weblog-name {
  margin: 0; padding: 0;
  font: 400 1.33333em/1.25 "Valkyrie B", "Hoefler Text", serif;
}
.weblog-name a { color: inherit; text-decoration: none; }
.weblog-intro { padding: .65em 0 .25em; line-height: 1.5; }
.weblog-nav {
  display: flex; flex-wrap: wrap; align-items: baseline; gap: 0 .55em;
  font-size: .80952em; line-height: 1.8; color: var(--quiet-text);
}
.weblog-name + .weblog-nav { margin-top: .4em; }
.weblog-nav a, .secondary-nav a {
  display: inline-flex; align-items: center; min-height: 44px;
  color: var(--quiet-text); text-decoration: none;
}
.weblog-nav a[aria-current], .secondary-nav a[aria-current] { color: var(--reading-title); text-decoration: underline; }
.weblog-nav a:hover, .secondary-nav a:hover, .weblog-name a:hover {
  color: var(--link-hover); text-decoration: underline;
}

/* Reading links are marked before hover. Navigation is recognisable as a group;
   only the current destination gets a persistent underline. */
a, .post-body a, .meta a, .book__review a {
  color: var(--reading-link); text-decoration-color: currentColor;
  text-decoration-thickness: .055em; text-underline-offset: .17em;
  transition: color 100ms linear, text-decoration-color 100ms linear;
}
.meta a { text-decoration-line: underline; }
.post-body a:visited, .meta a:visited, .book__review a:visited { color: var(--reading-link); }
a:hover, .post-body a:hover, .meta a:hover, .book__review a:hover { color: var(--link-hover); }
a:active, .post-body a:active, .meta a:active, .book__body a:active,
.weblog-nav a:active, .secondary-nav a:active {
  background-color: transparent; color: var(--link-hover); text-decoration-line: underline;
}
.weblog-entry-title a, .post-overview .post-title a, .work-title a, .book__title a,
.post-body a, .book__review a, .meta a {
  display: inline; color: var(--reading-title); text-decoration: none;
  background: var(--marker) left bottom / 100% .16em no-repeat;
  -webkit-box-decoration-break: clone; box-decoration-break: clone;
  padding-bottom: .07em;
}
.post-body a, .post-body a:visited, .book__review a, .book__review a:visited,
.meta a, .meta a:visited { color: inherit; }
.post-body a:active, .book__review a:active, .meta a:active { text-decoration: none; }
.post-body a:has(img), .book__review a:has(img) { background: none; padding-bottom: 0; }
.archive-language a { color: var(--quiet-text); }
.post-body a:hover, .post-body a:focus-visible, .book__review a:hover,
.book__review a:focus-visible, .meta a:hover, .meta a:focus-visible { color: var(--link-hover); }
.weblog-entry-title a:hover, .post-overview .post-title a:hover,
.work-title a:hover, .book__title a:hover { color: var(--link-hover); }
a:focus-visible, button:focus-visible, input:focus-visible, textarea:focus-visible,
select:focus-visible, summary:focus-visible {
  outline: 2px solid var(--reading-link); outline-offset: 4px;
}
#main:focus { outline: none; }
.skip-link { position: absolute; left: -9999px; }
.skip-link:focus { left: 1em; top: .5em; padding: .25em; background: var(--paper); z-index: 1; }

.weblog-entry { padding: 0; margin-bottom: 2.5em; }
.weblog-entry-title { margin: 0; font-size: 1.33333em; line-height: 1.3; }
.weblog-date, .book__rating {
  display: block; font-size: .71429em; line-height: 1.8;
  margin-top: .4em; color: var(--quiet-text);
}
.weblog-entry .post-body { margin-top: .35em; }
.weblog-entry .post-body > p, .weblog-excerpt p { padding: .5em 0; }
.weblog-entry img { height: auto; }
.meta { color: var(--quiet-text); }
.post-overview { margin-bottom: .55em; }
.post-overview .post-title { font-weight: 400; line-height: 1.35; }
.post-body .intro { font-size: 1.14286em; line-height: 1.45833; }
.post-body li { margin-bottom: .33333em; }
.post-body ul, .post-body ol { padding-left: 0; margin: .5em 0 1em; list-style-position: outside; }
.post-body ul { list-style-type: "–  "; }
.post-body ol { list-style-type: decimal; }
.post-body ul li, .post-body ol li { padding-left: 0; text-indent: 0; }
.post-body ul li::before, .post-body ol li::before { content: none; }
.post-body li::marker { color: var(--quiet-text); }
.post-body li ul, .post-body li ol { padding-left: 1.25em; }
blockquote { color: var(--ink); border-left: 1px solid var(--rule); padding: 0 1em; }
figcaption, p.credits { color: var(--quiet-text); font-size: .80952em; line-height: 1.6; font-style: normal; }
hr, .work-entry, .post-body p.footnote, .small { border-color: var(--rule); }
hr { background: var(--rule); }
.work-entry { padding: .65em 0 1.25em; margin-bottom: .65em; border: 0; }
.work-entry:only-of-type { border: 0; padding-top: 0; }
.depth-return { margin-top: 1.5em; font-size: .80952em; }
.stream-pagination, .blogNav { display: flex; flex-wrap: wrap; gap: .5em 1.5em; font-size: .85714em; }
.stream-pagination a, .blogNav a { display: inline-flex; align-items: center; min-height: 44px; padding: 0; float: none; }
.blogNav a { color: var(--reading-link); text-decoration: underline; }
.blogNav a:active { top: 0; }
.blogNav .prev a { padding-right: 0; }
.blogNav i { top: 0; }
.site-footer { margin-top: 2.5em; padding: 0 0 2em; border: 0; clear: both; }
.secondary-nav { font-size: .7619em; gap: 0 1.25em; }

/* The Library remains reading notes with stable, unfiltered covers. */
.book { padding-bottom: 1.75em; }
.book__title { font-style: italic; font-size: 1.33333em; line-height: 1.3; }
.book__image img, .book__image--overview img {
  height: auto; transform: none; filter: none; animation: none; transition: none;
}
.book__image--overview a:hover img { transform: none; }
.book__review > a:last-child { font-size: .80952em; }

/* Native forms and exceptional states: no tab-like fills or inherited blue focus. */
input, textarea, select, button { font-family: inherit; }
input[type="text"], input[type="email"], input[type="search"], textarea, select {
  box-sizing: border-box; width: 100%; min-height: 44px;
  font: 400 1em/1.5 "Valkyrie B", "Hoefler Text", serif;
  color: var(--ink); background: var(--paper); border: 1px solid var(--field-border);
  border-radius: 2px; padding: .45em .6em; box-shadow: none;
}
input[type="text"]:focus, input[type="email"]:focus, input[type="search"]:focus,
textarea:focus, select:focus {
  color: var(--ink); border-color: var(--reading-link); box-shadow: none;
  outline: 2px solid var(--reading-link); outline-offset: 3px;
}
input::placeholder, textarea::placeholder { color: var(--quiet-text); opacity: 1; }
label { display: inline-block; font-size: .85714em; }
textarea { min-height: 10em; height: 12em; resize: vertical; }
button, input[type="submit"] {
  font: 400 .90476em/1.4 "Valkyrie B", "Hoefler Text", serif;
  min-height: 44px; border: 1px solid #137547; border-radius: 2px;
  padding: .45em 1em; color: #fff; background: #137547; box-shadow: none;
}
button:hover, input[type="submit"]:hover, button:focus, input[type="submit"]:focus {
  background: #15372f; border-color: #15372f;
}
button:active, input[type="submit"]:active { top: 0; background: #15372f; box-shadow: none; }
button:disabled, input:disabled, textarea:disabled { opacity: .65; cursor: not-allowed; }
.comError, .comThanks, .zemError, .zemThanks, .preview, ul.comments_error {
  color: var(--ink); background: transparent; border: 0;
  border-left: 2px solid var(--reading-link); border-radius: 0;
  padding: .5em .75em; margin: 1em 0; font: inherit;
}
.comError, .zemError, ul.comments_error { border-left-color: var(--error); }
form input.comments_error, form textarea.comments_error, [aria-invalid="true"] { border-color: var(--error); }
input:user-invalid, textarea:user-invalid { border-color: var(--error); }
.discussion-title { font-size: .90476em; line-height: 1.5; margin-top: 2em; }
.discussion-note { font-size: .80952em; line-height: 1.65; color: var(--quiet-text); }
p .lang { background: none; color: var(--quiet-text); font: inherit; padding: 0; }
summary { cursor: pointer; min-height: 44px; }
details[open] > summary { margin-bottom: .5em; }

@media (max-width: 30em) {
  .weblog-header { padding-top: 1.25em; margin-bottom: 1.5em; }
  .weblog-intro { font-size: 1em; }
  .book__image { width: 27%; max-width: 100px; padding-left: .75em; }
  .secondary-nav { column-gap: 1.25em; }
  .comment-content { margin-right: 0; }
}
@media (max-width: 22em) {
  .wrap { width: calc(100% - 40px); }
  .weblog-nav { column-gap: .4em; }
}

/* A single short arrival, always readable. No text sequencing or movement.
   Native document transitions are optional: ordinary links/history still work. */
@keyframes settle { from { opacity: .97; } to { opacity: 1; } }
@media (prefers-reduced-motion: no-preference) {
  body { animation: settle 120ms linear; }
  @view-transition { navigation: auto; }
  ::view-transition-group(root) { animation: none; }
  ::view-transition-image-pair(root) { isolation: auto; }
  ::view-transition-old(root) { display: none; animation: none; }
  ::view-transition-new(root) { animation: settle 120ms linear; mix-blend-mode: normal; }
  ::view-transition { pointer-events: none; }
}
@media (prefers-reduced-motion: reduce) {
  @view-transition { navigation: none; }
  *, *::before, *::after { animation: none !important; transition: none !important; scroll-behavior: auto !important; }
  ::view-transition-group(root), ::view-transition-old(root), ::view-transition-new(root) { animation: none !important; }
}
@media (forced-colors: active) {
  a { text-decoration-line: underline; }
  .weblog-entry-title a, .post-overview .post-title a, .work-title a, .book__title a,
  .post-body a, .book__review a, .meta a { background: none; text-decoration: underline; }
  a:focus-visible, input:focus-visible, textarea:focus-visible, button:focus-visible, summary:focus-visible { outline-color: Highlight; }
}
