@charset "UTF-8";
:root {
  --font-mono:  'IBM Plex Mono', ui-monospace, 'SF Mono', Menlo, Consolas,
                'DejaVu Sans Mono', monospace;
  --font-sans:  'IBM Plex Sans', -apple-system, BlinkMacSystemFont, 'Segoe UI',
                Roboto, Oxygen, Ubuntu, sans-serif;
  --fs-xxs: 0.6875rem;
  --fs-xs:  0.78125rem;
  --fs-sm:  0.875rem;
  --fs-md:  1.0625rem;
  --fs-lg:  1.25rem;
  --fs-xl:  1.75rem;
  --fs-2xl: 2.125rem;
  --fs-3xl: 3rem;
  --fs-4xl: 4rem;
  --lh-tight: 1.15;
  --lh-snug:  1.35;
  --lh-base:  1.58;
  --lh-loose: 1.78;
  --fw-body:   500;
  --fw-strong: 700;
  --tracking-tight:  -0.01em;
  --tracking-normal: 0;
  --tracking-wide:   0.08em;
  --tracking-wider:  0.15em;
  --tracking-widest: 0.22em;
  --space-1:  0.25rem;
  --space-2:  0.5rem;
  --space-3:  0.75rem;
  --space-4:  1rem;
  --space-5:  1.5rem;
  --space-6:  2rem;
  --space-7:  3rem;
  --space-8:  4rem;
  --space-9:  6rem;
  --space-10: 8rem;
  --content-max:  72rem;
  --sidebar-w:    11rem;
  --gutter:       2.5rem;
  --c-bg:         #f6f4ec;
  --c-bg-elev:    #efece1;
  --c-bg-code:    #ece8db;
  --c-fg:         #14130f;
  --c-fg-strong: #000000;
  --c-fg-muted:   #6f6c64;
  --c-fg-subtle:  #9b9890;
  --c-rule:       #14130f;
  --c-rule-soft:  #b9b5a8;
  --c-link:       #1a1a1a;
  --c-link-hover: #000000;
  --c-mark-bg:    #f0e6a8;
  --c-selection:  #14130f;
  --c-selection-fg: #f6f4ec;
  --c-accent:     #c4361b;
  --c-cursor:     #d97706;
  --rule-w:       1px;
  --rule-w-thick: 2px;
  --dash:         3px;
  --dash-gap:     5px;
}

html.theme-dark {
  --c-bg:         #0b0b09;
  --c-bg-elev:    #14130f;
  --c-bg-code:    #14130f;
  --c-fg:         #e8e5d8;
  --c-fg-strong:  #ffffff;
  --c-fg-muted:   #8e8b81;
  --c-fg-subtle:  #5b584f;
  --c-rule:       #e8e5d8;
  --c-rule-soft:  #36342c;
  --c-link:       #e8e5d8;
  --c-link-hover: #ffffff;
  --c-mark-bg:    #5a4914;
  --c-selection:  #e8e5d8;
  --c-selection-fg: #0b0b09;
  --c-accent:     #e8634a;
  --c-cursor:     #67e8f9;
}

@media (prefers-color-scheme: dark) {
  html:not(.theme-light):not(.theme-dark) {
    --c-bg:         #0b0b09;
    --c-bg-elev:    #14130f;
    --c-bg-code:    #14130f;
    --c-fg:         #e8e5d8;
    --c-fg-strong:  #ffffff;
    --c-fg-muted:   #8e8b81;
    --c-fg-subtle:  #5b584f;
    --c-rule:       #e8e5d8;
    --c-rule-soft:  #36342c;
    --c-link:       #e8e5d8;
    --c-link-hover: #ffffff;
    --c-mark-bg:    #5a4914;
    --c-selection:  #e8e5d8;
    --c-selection-fg: #0b0b09;
    --c-accent:     #e8634a;
    --c-cursor:     #67e8f9;
  }
}

*, *::before, *::after {
  box-sizing: border-box;
}

html {
  -webkit-text-size-adjust: 100%;
}

body, h1, h2, h3, h4, h5, h6, p, ol, ul, dl, figure, blockquote, pre {
  margin: 0;
  padding: 0;
}

ol, ul {
  list-style: none;
}

img, picture, svg, video, canvas {
  display: block;
  max-width: 100%;
  height: auto;
}

button, input, select, textarea {
  font: inherit;
  color: inherit;
}

button {
  background: none;
  border: 0;
  padding: 0;
  cursor: pointer;
}

a {
  color: inherit;
  text-decoration: none;
}

::selection {
  background: var(--c-selection);
  color: var(--c-selection-fg);
}

:focus-visible {
  outline: 2px solid var(--c-fg-strong);
  outline-offset: 3px;
}

html {
  font-family: var(--font-mono);
  font-size: 16px;
  font-feature-settings: 'tnum' on, 'liga' off, 'calt' off;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  text-rendering: optimizeLegibility;
}

body {
  font-family: var(--font-mono);
  font-size: var(--fs-md);
  line-height: var(--lh-base);
  color: var(--c-fg);
  background: var(--c-bg);
  font-weight: var(--fw-body);
  letter-spacing: var(--tracking-normal);
}

h1, h2, h3, h4, h5, h6 {
  font-family: var(--font-mono);
  font-weight: 700;
  line-height: var(--lh-tight);
  color: var(--c-fg-strong);
  text-wrap: balance;
}

h1 {
  font-size: var(--fs-3xl);
  letter-spacing: var(--tracking-tight);
}

h2 {
  font-size: var(--fs-2xl);
  letter-spacing: var(--tracking-tight);
}

h3 {
  font-size: var(--fs-xl);
  letter-spacing: 0;
}

h4 {
  font-size: var(--fs-lg);
  letter-spacing: 0;
}

h5 {
  font-size: var(--fs-md);
  text-transform: uppercase;
  letter-spacing: var(--tracking-wide);
}

h6 {
  font-size: var(--fs-sm);
  text-transform: uppercase;
  letter-spacing: var(--tracking-wide);
}

p, ul, ol, dl, blockquote, pre, figure, table {
  margin: 0 0 var(--space-5);
}

p {
  hyphens: none;
}

em, i, cite {
  font-style: italic;
}

strong, b {
  font-weight: var(--fw-strong);
  color: var(--c-fg-strong);
}

.label {
  font-family: var(--font-mono);
  font-size: var(--fs-xxs);
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: var(--tracking-widest);
  color: var(--c-fg-strong);
  line-height: 1.4;
}

.label--muted {
  color: var(--c-fg-muted);
  font-weight: 400;
}

.tnum {
  font-feature-settings: 'tnum' on;
  font-variant-numeric: tabular-nums;
}

mark {
  background: var(--c-mark-bg);
  color: var(--c-fg-strong);
  padding: 0 0.15em;
}

abbr[title] {
  text-decoration: underline dotted;
  text-decoration-thickness: 1px;
  text-underline-offset: 3px;
  cursor: help;
}

kbd {
  font-family: var(--font-mono);
  font-size: 0.85em;
  padding: 0.05em 0.4em;
  border: 1px solid var(--c-rule-soft);
  border-bottom-width: 2px;
  border-radius: 3px;
  background: var(--c-bg-elev);
}

.cursor {
  display: inline-block;
  width: 0.3em;
  height: 0.7em;
  margin-left: 0.22em;
  vertical-align: -0.02em;
  background: var(--c-cursor);
  box-shadow: 0 0 3px var(--c-cursor), 0 0 12px color-mix(in srgb, var(--c-cursor) 30%, transparent);
  animation: cursor-blink 1.06s linear infinite;
}

@keyframes cursor-blink {
  0%, 50% {
    opacity: 1;
  }
  55%, 100% {
    opacity: 0;
  }
}

@media (prefers-reduced-motion: reduce) {
  .cursor {
    animation: none;
    opacity: 1;
  }
}

.doc {
  max-width: var(--content-max);
  margin: 0 auto;
  padding: 0 var(--space-6);
  min-height: 100vh;
  display: flex;
  flex-direction: column;
}

.doc__masthead {
  display: grid;
  grid-template-columns: 1fr auto 1fr;
  align-items: stretch;
  gap: var(--space-5);
  padding: var(--space-6) 0 var(--space-4);
  border-bottom: var(--rule-w) solid var(--c-rule);
}

.doc__brand {
  display: flex;
  flex-direction: row;
  align-items: center;
  gap: var(--space-3);
  min-width: 0;
}

.doc__brand-seal {
  flex-shrink: 0;
  display: block;
  width: 34px;
  height: 34px;
  line-height: 0;
  color: var(--c-fg-strong);
}

.doc__brand-seal svg.seal {
  display: block;
  width: 100%;
  height: 100%;
}

.doc__brand-text {
  display: flex;
  flex-direction: column;
  justify-content: center;
  gap: var(--space-1);
  min-width: 0;
}

.doc__brand-name {
  font-size: var(--fs-lg);
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: var(--tracking-wider);
  color: var(--c-fg-strong);
  line-height: 1;
}

.doc__brand-tagline {
  font-size: var(--fs-xs);
  text-transform: uppercase;
  letter-spacing: var(--tracking-wide);
  color: var(--c-fg-muted);
  line-height: 1;
}

.doc__divider {
  width: 0;
  border-left: var(--rule-w) dashed var(--c-rule);
  align-self: stretch;
}

.doc__meta-top {
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: flex-end;
  gap: var(--space-2);
  text-align: right;
}

.doc__meta-top-row {
  display: flex;
  align-items: center;
  gap: var(--space-4);
}

.nav {
  display: flex;
  gap: var(--space-5);
  font-size: var(--fs-xs);
  text-transform: uppercase;
  letter-spacing: var(--tracking-wide);
  font-weight: 700;
}

.nav__item {
  position: relative;
  color: var(--c-fg-strong);
}

.nav__item:hover {
  color: var(--c-fg-strong);
}

.nav__item:hover::before {
  content: "[";
  position: absolute;
  left: -0.7em;
}

.nav__item:hover::after {
  content: "]";
  position: absolute;
  right: -0.7em;
}

.nav__item.is-current {
  color: var(--c-fg-strong);
  text-decoration: underline;
  text-decoration-thickness: 1px;
  text-underline-offset: 0.35em;
}

.doc__body {
  display: grid;
  grid-template-columns: var(--sidebar-w) 1fr;
  gap: 0;
  flex: 1;
  padding: var(--space-7) 0 var(--space-8);
  position: relative;
}

.doc__sidebar {
  position: relative;
  padding: var(--space-1) var(--gutter) 0 0;
  text-align: right;
}

.doc__sidebar::after {
  content: "";
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  width: 0;
  border-right: var(--rule-w) dashed var(--c-rule);
}

.doc__sidebar-block {
  margin-bottom: var(--space-5);
  display: flex;
  flex-direction: column;
  gap: var(--space-1);
}

.doc__main {
  padding: 0 0 0 var(--gutter);
  min-width: 0;
}

.doc__colophon {
  display: grid;
  grid-template-columns: 1fr auto 1fr;
  align-items: center;
  gap: var(--space-5);
  padding: var(--space-5) 0 var(--space-6);
  border-top: var(--rule-w) solid var(--c-rule-soft);
  margin-top: auto;
  font-size: var(--fs-xs);
  text-transform: uppercase;
  letter-spacing: var(--tracking-wide);
}

.doc__colophon-left,
.doc__colophon-right {
  color: var(--c-fg-muted);
}

.doc__colophon-right {
  text-align: right;
  color: var(--c-fg-strong);
  font-weight: 700;
}

@media (max-width: 860px) {
  .doc {
    padding: 0 var(--space-5);
  }
  .doc__masthead {
    grid-template-columns: 1fr;
    grid-template-rows: auto auto;
    padding: var(--space-4) 0 var(--space-3);
    gap: var(--space-3);
  }
  .doc__divider {
    display: none;
  }
  .doc__meta-top {
    align-items: flex-start;
    text-align: left;
  }
  .doc__meta-top-row {
    justify-content: flex-start;
    flex-wrap: wrap;
    gap: var(--space-3) var(--space-5);
    width: 100%;
  }
  .nav {
    gap: var(--space-4);
  }
  .doc__body {
    grid-template-columns: 1fr;
    padding: var(--space-5) 0 var(--space-6);
  }
  .doc__sidebar {
    display: none;
  }
  .doc__main {
    padding: 0;
  }
  .doc__colophon {
    grid-template-columns: 1fr auto;
    gap: var(--space-3);
    padding: var(--space-4) 0 var(--space-5);
  }
  .doc__colophon .doc__colophon-center {
    display: none;
  }
  .doc__colophon .doc__colophon-left {
    font-size: var(--fs-xxs);
  }
}

@media (max-width: 480px) {
  :root {
    --fs-3xl: 1.85rem;
    --fs-2xl: 1.45rem;
    --fs-xl:  1.15rem;
    --fs-md:  0.96rem;
    --gutter: 1.5rem;
  }
  .doc {
    padding: 0 var(--space-4);
  }
  .doc__brand-tagline {
    display: none;
  }
  .doc__brand-name {
    font-size: var(--fs-md);
    letter-spacing: var(--tracking-wide);
  }
  .doc__brand {
    gap: var(--space-2);
  }
  .doc__brand-seal {
    width: 26px;
    height: 26px;
  }
}

.prose {
  font-size: var(--fs-md);
  line-height: var(--lh-base);
  color: var(--c-fg);
  max-width: 42em;
}

.prose > * + * {
  margin-top: var(--space-5);
}

.prose > * + h2, .prose > * + h3, .prose > * + h4 {
  margin-top: var(--space-7);
}

.prose h2, .prose h3, .prose h4 {
  scroll-margin-top: var(--space-7);
}

.prose h2 {
  text-transform: uppercase;
  letter-spacing: var(--tracking-wide);
}

.prose h3 {
  text-transform: none;
}

.prose h1 a.heading-anchor,
.prose h2 a.heading-anchor,
.prose h3 a.heading-anchor,
.prose h4 a.heading-anchor,
.prose h5 a.heading-anchor,
.prose h6 a.heading-anchor {
  color: inherit;
  background: transparent;
  padding: 0;
  box-shadow: none;
  text-decoration: none;
}

.prose h1 a.heading-anchor:hover, .prose h1 a.heading-anchor:focus-visible,
.prose h2 a.heading-anchor:hover,
.prose h2 a.heading-anchor:focus-visible,
.prose h3 a.heading-anchor:hover,
.prose h3 a.heading-anchor:focus-visible,
.prose h4 a.heading-anchor:hover,
.prose h4 a.heading-anchor:focus-visible,
.prose h5 a.heading-anchor:hover,
.prose h5 a.heading-anchor:focus-visible,
.prose h6 a.heading-anchor:hover,
.prose h6 a.heading-anchor:focus-visible {
  color: var(--c-fg-strong);
  background: transparent;
  box-shadow: none;
}

.prose a {
  color: var(--c-bg);
  background: var(--c-fg-strong);
  padding: 0.05em 0.35em;
  text-decoration: none;
  box-decoration-break: clone;
  -webkit-box-decoration-break: clone;
  box-shadow: inset 0 0 0 1px var(--c-fg-strong);
  transition: background-color 80ms linear, color 80ms linear, box-shadow 80ms linear;
}

.prose a:hover, .prose a:focus-visible {
  background: transparent;
  color: var(--c-fg-strong);
  box-shadow: inset 0 0 0 1px var(--c-fg-strong);
}

.prose a code {
  background: transparent;
  border-color: transparent;
  color: inherit;
  padding: 0;
}

.prose ul, .prose ol {
  padding-left: 0;
  list-style: none;
}

.prose ul > li,
.prose ol > li {
  position: relative;
  padding-left: 2.5ch;
  margin-bottom: var(--space-2);
}

.prose ul > li::before {
  content: "–";
  position: absolute;
  left: 0;
  color: var(--c-fg-strong);
  font-weight: 700;
}

.prose ol {
  counter-reset: olcounter;
}

.prose ol > li {
  counter-increment: olcounter;
}

.prose ol > li::before {
  content: counter(olcounter, decimal-leading-zero) ".";
  position: absolute;
  left: 0;
  color: var(--c-fg-strong);
  font-weight: 700;
  font-variant-numeric: tabular-nums;
}

.prose li > ul, .prose li > ol {
  margin-top: var(--space-2);
  margin-bottom: 0;
}

.prose blockquote {
  margin: var(--space-6) 0;
  padding: 0 0 0 var(--space-5);
  border-left: var(--rule-w-thick) solid var(--c-rule);
  font-style: italic;
  color: var(--c-fg);
}

.prose blockquote p {
  margin: 0 0 var(--space-4);
}

.prose blockquote p:last-child {
  margin-bottom: 0;
}

.prose hr {
  border: 0;
  margin: var(--space-7) 0;
  text-align: center;
  height: 1em;
  position: relative;
}

.prose hr::before {
  content: "§";
  font-weight: 700;
  color: var(--c-fg-muted);
  font-size: var(--fs-md);
}

.prose figure {
  margin: var(--space-6) 0;
}

.prose figure.figure--book-cover {
  width: 84px;
  max-width: 28vw;
  margin-left: auto;
  margin-right: auto;
}

.prose figure.figure--book-cover img {
  width: 100%;
}

.prose figure img {
  width: 100%;
}

.prose figure figcaption {
  margin-top: var(--space-3);
  font-size: var(--fs-xs);
  text-transform: uppercase;
  letter-spacing: var(--tracking-wide);
  color: var(--c-fg-muted);
  text-align: center;
}

.prose figure figcaption::before {
  content: "FIG. — ";
  color: var(--c-fg-strong);
  font-weight: 700;
}

.prose img {
  max-width: 100%;
  height: auto;
}

.prose table {
  width: 100%;
  border-collapse: collapse;
  font-size: var(--fs-sm);
  border-top: var(--rule-w) solid var(--c-rule);
  border-bottom: var(--rule-w) solid var(--c-rule);
  font-variant-numeric: tabular-nums;
}

@media (max-width: 600px) {
  .prose table {
    display: block;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
    white-space: nowrap;
    font-size: var(--fs-xs);
  }
}

.prose th, .prose td {
  padding: var(--space-3) var(--space-4);
  text-align: left;
  vertical-align: top;
  border-bottom: var(--rule-w) solid var(--c-rule-soft);
}

.prose th {
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: var(--tracking-wide);
  font-size: var(--fs-xxs);
  color: var(--c-fg-strong);
  border-bottom: var(--rule-w) solid var(--c-rule);
}

.prose tr:last-child td {
  border-bottom: 0;
}

.prose dl {
  display: grid;
  grid-template-columns: max-content 1fr;
  gap: var(--space-3) var(--space-5);
}

.prose dt {
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: var(--tracking-wide);
  font-size: var(--fs-xs);
}

.prose dd {
  margin: 0;
}

.prose > .lead,
.prose > p.lead {
  font-size: var(--fs-lg);
  line-height: var(--lh-snug);
  color: var(--c-fg-strong);
  font-weight: 400;
}

.prose code,
:not(pre) > code {
  font-family: var(--font-mono);
  font-size: 0.94em;
  padding: 0.08em 0.4em;
  background: var(--c-bg-code);
  border: 1px solid var(--c-rule-soft);
  border-radius: 2px;
  white-space: nowrap;
}

.prose pre {
  font-family: var(--font-mono);
  font-size: var(--fs-sm);
  line-height: 1.55;
  background: var(--c-bg-code);
  border: var(--rule-w) solid var(--c-rule);
  padding: var(--space-4) var(--space-5);
  overflow-x: auto;
  margin: var(--space-6) 0;
  position: relative;
  tab-size: 4;
  -moz-tab-size: 4;
  -webkit-overflow-scrolling: touch;
}

.prose pre code {
  padding: 0;
  background: transparent;
  border: 0;
  white-space: pre;
  font-size: inherit;
}

@media (max-width: 600px) {
  .prose pre {
    font-size: 0.78rem;
    padding: var(--space-3) var(--space-4);
    margin-left: calc(-1 * var(--space-4));
    margin-right: calc(-1 * var(--space-4));
    border-left: 0;
    border-right: 0;
  }
}

.prose .highlight {
  margin: var(--space-6) 0;
}

.prose .highlight pre {
  margin: 0;
}

.code-block {
  position: relative;
  margin: var(--space-6) 0;
  border: var(--rule-w) solid var(--c-rule);
  background: var(--c-bg-code);
}

.code-block__head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: var(--space-2) var(--space-4);
  border-bottom: var(--rule-w) dashed var(--c-rule);
  font-size: var(--fs-xxs);
  text-transform: uppercase;
  letter-spacing: var(--tracking-wide);
  font-weight: 700;
  color: var(--c-fg-strong);
}

.code-block__lang {
  color: var(--c-fg-muted);
  font-weight: 400;
}

.code-block pre, .code-block .highlight pre {
  margin: 0;
  border: 0;
  background: transparent;
}

.chroma {
  background: transparent;
  color: var(--c-fg);
}

.chroma .lnt, .chroma .ln {
  color: var(--c-fg-subtle);
  margin-right: var(--space-3);
  padding-right: var(--space-3);
  border-right: 1px solid var(--c-rule-soft);
  user-select: none;
}

.chroma .hl {
  background: var(--c-bg-elev);
  display: block;
  margin: 0 calc(-1 * var(--space-5));
  padding: 0 var(--space-5);
}

.chroma .err {
  color: var(--c-accent);
}

.chroma .c, .chroma .ch, .chroma .cm, .chroma .c1, .chroma .cs, .chroma .cp, .chroma .cpf {
  color: #7a766b;
  font-style: italic;
}

.chroma .k, .chroma .kc, .chroma .kd, .chroma .kn, .chroma .kp, .chroma .kr, .chroma .kt {
  color: #14130f;
  font-weight: 700;
}

.chroma .n {
  color: var(--c-fg);
}

.chroma .na {
  color: #8a4d35;
}

.chroma .nb, .chroma .bp {
  color: #2c5544;
  font-weight: 700;
}

.chroma .nc, .chroma .nn, .chroma .ne {
  color: #14130f;
  font-weight: 700;
}

.chroma .nf, .chroma .fm {
  color: #14130f;
  font-weight: 700;
}

.chroma .nd {
  color: #8a4d35;
}

.chroma .ni {
  color: var(--c-fg);
}

.chroma .nl {
  color: var(--c-fg);
}

.chroma .no {
  color: #2c5544;
  font-weight: 700;
}

.chroma .nt {
  color: #8a4d35;
  font-weight: 700;
}

.chroma .nv, .chroma .vc, .chroma .vg, .chroma .vi {
  color: var(--c-fg);
}

.chroma .nx {
  color: var(--c-fg);
}

.chroma .s, .chroma .sa, .chroma .sb, .chroma .sc, .chroma .dl, .chroma .sd, .chroma .s2, .chroma .se, .chroma .sh, .chroma .si, .chroma .sx, .chroma .sr, .chroma .s1, .chroma .ss {
  color: #7d4e3a;
}

.chroma .se {
  color: #b2553d;
}

.chroma .m, .chroma .mb, .chroma .mf, .chroma .mh, .chroma .mi, .chroma .mo, .chroma .il {
  color: #2c5544;
}

.chroma .o, .chroma .ow, .chroma .p {
  color: var(--c-fg);
}

.chroma .g {
  color: var(--c-fg);
}

.chroma .gd {
  color: var(--c-accent);
}

.chroma .gi {
  color: #2c5544;
}

.chroma .gh, .chroma .gu {
  color: var(--c-fg-strong);
  font-weight: 700;
}

.chroma .ge {
  font-style: italic;
}

.chroma .gs {
  font-weight: 700;
}

html.theme-dark .chroma .c, html.theme-dark .chroma .ch, html.theme-dark .chroma .cm, html.theme-dark .chroma .c1, html.theme-dark .chroma .cs, html.theme-dark .chroma .cp, html.theme-dark .chroma .cpf {
  color: #6f6b5d;
  font-style: italic;
}

html.theme-dark .chroma .k, html.theme-dark .chroma .kc, html.theme-dark .chroma .kd, html.theme-dark .chroma .kn, html.theme-dark .chroma .kp, html.theme-dark .chroma .kr, html.theme-dark .chroma .kt {
  color: #ffffff;
}

html.theme-dark .chroma .na {
  color: #e0a075;
}

html.theme-dark .chroma .nb, html.theme-dark .chroma .bp {
  color: #8fc3a6;
}

html.theme-dark .chroma .nc, html.theme-dark .chroma .nn, html.theme-dark .chroma .ne {
  color: #ffffff;
  font-weight: 700;
}

html.theme-dark .chroma .nf, html.theme-dark .chroma .fm {
  color: #ffffff;
  font-weight: 700;
}

html.theme-dark .chroma .nd {
  color: #e0a075;
}

html.theme-dark .chroma .no {
  color: #8fc3a6;
  font-weight: 700;
}

html.theme-dark .chroma .nt {
  color: #e0a075;
}

html.theme-dark .chroma .s, html.theme-dark .chroma .sa, html.theme-dark .chroma .sb, html.theme-dark .chroma .sc, html.theme-dark .chroma .dl, html.theme-dark .chroma .sd, html.theme-dark .chroma .s2, html.theme-dark .chroma .se, html.theme-dark .chroma .sh, html.theme-dark .chroma .si, html.theme-dark .chroma .sx, html.theme-dark .chroma .sr, html.theme-dark .chroma .s1, html.theme-dark .chroma .ss {
  color: #d49e7d;
}

html.theme-dark .chroma .se {
  color: #e8634a;
}

html.theme-dark .chroma .m, html.theme-dark .chroma .mb, html.theme-dark .chroma .mf, html.theme-dark .chroma .mh, html.theme-dark .chroma .mi, html.theme-dark .chroma .mo, html.theme-dark .chroma .il {
  color: #8fc3a6;
}

html.theme-dark .chroma .gh, html.theme-dark .chroma .gu {
  color: #ffffff;
}

html.theme-dark .chroma .lnt, html.theme-dark .chroma .ln {
  color: var(--c-fg-subtle);
}

html.theme-dark .chroma .hl {
  background: var(--c-bg-elev);
}

html.theme-dark .chroma .o,
html.theme-dark .chroma .ow,
html.theme-dark .chroma .p,
html.theme-dark .chroma .n,
html.theme-dark .chroma .nx {
  color: var(--c-fg);
}

@media (prefers-color-scheme: dark) {
  html:not(.theme-light):not(.theme-dark) .chroma .c, html:not(.theme-light):not(.theme-dark) .chroma .ch, html:not(.theme-light):not(.theme-dark) .chroma .cm, html:not(.theme-light):not(.theme-dark) .chroma .c1, html:not(.theme-light):not(.theme-dark) .chroma .cs, html:not(.theme-light):not(.theme-dark) .chroma .cp, html:not(.theme-light):not(.theme-dark) .chroma .cpf {
    color: #6f6b5d;
    font-style: italic;
  }
  html:not(.theme-light):not(.theme-dark) .chroma .k, html:not(.theme-light):not(.theme-dark) .chroma .kc, html:not(.theme-light):not(.theme-dark) .chroma .kd, html:not(.theme-light):not(.theme-dark) .chroma .kn, html:not(.theme-light):not(.theme-dark) .chroma .kp, html:not(.theme-light):not(.theme-dark) .chroma .kr, html:not(.theme-light):not(.theme-dark) .chroma .kt {
    color: #ffffff;
  }
  html:not(.theme-light):not(.theme-dark) .chroma .na {
    color: #e0a075;
  }
  html:not(.theme-light):not(.theme-dark) .chroma .nb, html:not(.theme-light):not(.theme-dark) .chroma .bp {
    color: #8fc3a6;
  }
  html:not(.theme-light):not(.theme-dark) .chroma .nc, html:not(.theme-light):not(.theme-dark) .chroma .nn, html:not(.theme-light):not(.theme-dark) .chroma .ne {
    color: #ffffff;
    font-weight: 700;
  }
  html:not(.theme-light):not(.theme-dark) .chroma .nf, html:not(.theme-light):not(.theme-dark) .chroma .fm {
    color: #ffffff;
    font-weight: 700;
  }
  html:not(.theme-light):not(.theme-dark) .chroma .nd {
    color: #e0a075;
  }
  html:not(.theme-light):not(.theme-dark) .chroma .no {
    color: #8fc3a6;
    font-weight: 700;
  }
  html:not(.theme-light):not(.theme-dark) .chroma .nt {
    color: #e0a075;
  }
  html:not(.theme-light):not(.theme-dark) .chroma .s, html:not(.theme-light):not(.theme-dark) .chroma .sa, html:not(.theme-light):not(.theme-dark) .chroma .sb, html:not(.theme-light):not(.theme-dark) .chroma .sc, html:not(.theme-light):not(.theme-dark) .chroma .dl, html:not(.theme-light):not(.theme-dark) .chroma .sd, html:not(.theme-light):not(.theme-dark) .chroma .s2, html:not(.theme-light):not(.theme-dark) .chroma .se, html:not(.theme-light):not(.theme-dark) .chroma .sh, html:not(.theme-light):not(.theme-dark) .chroma .si, html:not(.theme-light):not(.theme-dark) .chroma .sx, html:not(.theme-light):not(.theme-dark) .chroma .sr, html:not(.theme-light):not(.theme-dark) .chroma .s1, html:not(.theme-light):not(.theme-dark) .chroma .ss {
    color: #d49e7d;
  }
  html:not(.theme-light):not(.theme-dark) .chroma .se {
    color: #e8634a;
  }
  html:not(.theme-light):not(.theme-dark) .chroma .m, html:not(.theme-light):not(.theme-dark) .chroma .mb, html:not(.theme-light):not(.theme-dark) .chroma .mf, html:not(.theme-light):not(.theme-dark) .chroma .mh, html:not(.theme-light):not(.theme-dark) .chroma .mi, html:not(.theme-light):not(.theme-dark) .chroma .mo, html:not(.theme-light):not(.theme-dark) .chroma .il {
    color: #8fc3a6;
  }
  html:not(.theme-light):not(.theme-dark) .chroma .gh, html:not(.theme-light):not(.theme-dark) .chroma .gu {
    color: #ffffff;
  }
  html:not(.theme-light):not(.theme-dark) .chroma .o, html:not(.theme-light):not(.theme-dark) .chroma .ow, html:not(.theme-light):not(.theme-dark) .chroma .p, html:not(.theme-light):not(.theme-dark) .chroma .n, html:not(.theme-light):not(.theme-dark) .chroma .nx {
    color: var(--c-fg);
  }
}

.home-masthead {
  padding: 0;
}

.home-masthead__sigil {
  font-size: var(--fs-xxs);
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: var(--tracking-widest);
  color: var(--c-fg-muted);
  margin-bottom: var(--space-3);
}

.home-masthead__title {
  font-size: var(--fs-4xl);
  line-height: 1;
  font-weight: 700;
  color: var(--c-fg-strong);
  letter-spacing: -0.02em;
  text-transform: lowercase;
}

@media (max-width: 860px) {
  .home-masthead__title {
    font-size: 3rem;
  }
}

@media (max-width: 480px) {
  .home-masthead__title {
    font-size: 2.4rem;
  }
}

.home-masthead__lede {
  margin-top: var(--space-5);
  max-width: 38em;
  font-size: var(--fs-lg);
  line-height: var(--lh-snug);
  color: var(--c-fg);
}

@media (max-width: 480px) {
  .home-masthead__lede {
    font-size: var(--fs-md);
  }
}

.home-masthead__byline {
  margin-top: var(--space-6);
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: var(--space-3) var(--space-5);
  font-size: var(--fs-xs);
  text-transform: uppercase;
  letter-spacing: var(--tracking-wide);
  color: var(--c-fg-muted);
}

.home-masthead__byline-key {
  font-weight: 700;
  color: var(--c-fg-strong);
  margin-right: var(--space-2);
}

.index {
  border-top: var(--rule-w) solid var(--c-rule);
  margin-top: var(--space-7);
}

.index__head {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  padding: var(--space-3) 0 var(--space-5);
  font-size: var(--fs-xs);
  text-transform: uppercase;
  letter-spacing: var(--tracking-wide);
  font-weight: 700;
  color: var(--c-fg-strong);
}

.index__count {
  color: var(--c-fg-muted);
  font-weight: 400;
}

.entry {
  display: grid;
  grid-template-columns: 7rem 1fr;
  gap: var(--space-5);
  padding: var(--space-5) 0;
  transition: background 80ms linear;
}

.entry:hover .entry__title-link {
  text-decoration-color: var(--c-fg-strong);
}

.entry:hover .entry__more::after {
  transform: translateX(0.3em);
}

@media (max-width: 600px) {
  .entry {
    grid-template-columns: 1fr;
    gap: var(--space-2);
    padding: var(--space-4) 0;
  }
}

.entry__stamp {
  display: flex;
  flex-direction: column;
  gap: var(--space-1);
  padding-top: 0.55em;
  font-variant-numeric: tabular-nums;
  line-height: 1;
  color: var(--c-fg-strong);
}

@media (max-width: 600px) {
  .entry__stamp {
    flex-direction: row;
    gap: var(--space-3);
    padding-top: 0;
    align-items: baseline;
  }
}

.entry__stamp-year {
  font-size: var(--fs-md);
  font-weight: 700;
  letter-spacing: var(--tracking-tight);
}

.entry__stamp-day {
  font-size: var(--fs-xxs);
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: var(--tracking-wider);
  color: var(--c-fg-muted);
}

.entry__body {
  min-width: 0;
}

.entry__title {
  font-size: var(--fs-2xl);
  font-weight: 700;
  line-height: var(--lh-tight);
  margin: 0;
  color: var(--c-fg-strong);
}

@media (max-width: 480px) {
  .entry__title {
    font-size: 1.5rem;
  }
}

.entry__title-link {
  color: inherit;
  text-decoration: underline;
  text-decoration-thickness: 1px;
  text-underline-offset: 0.18em;
  text-decoration-color: transparent;
  transition: text-decoration-color 80ms linear;
}

.entry__desc {
  margin: var(--space-3) 0 0;
  font-size: var(--fs-md);
  line-height: var(--lh-snug);
  color: var(--c-fg);
  max-width: 42em;
}

.entry__more {
  display: inline-block;
  margin-top: var(--space-4);
  font-size: var(--fs-xxs);
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: var(--tracking-wider);
  color: var(--c-fg-muted);
}

.entry__more::after {
  content: " →";
  display: inline-block;
  transition: transform 120ms ease;
}

.pagination {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--space-4);
  margin: var(--space-6) 0 0;
  padding: var(--space-4) 0;
  border-top: var(--rule-w) solid var(--c-rule);
  font-size: var(--fs-xs);
  text-transform: uppercase;
  letter-spacing: var(--tracking-wide);
  font-weight: 700;
  color: var(--c-fg-strong);
}

.pagination ul {
  display: flex;
  gap: var(--space-3);
  list-style: none;
  padding: 0;
  margin: 0;
}

.pagination li {
  padding: 0;
  margin: 0;
}

.pagination li::before {
  display: none !important;
}

.pagination .page-item a {
  padding: var(--space-1) var(--space-3);
  color: var(--c-fg-strong);
}

.pagination .page-item a:hover {
  background: var(--c-bg-elev);
}

.pagination .page-item.active a {
  background: var(--c-fg-strong);
  color: var(--c-bg);
}

.pagination .page-item.disabled a {
  color: var(--c-fg-subtle);
  pointer-events: none;
}

.post-head {
  margin-bottom: var(--space-7);
}

@media (max-width: 600px) {
  .post-head {
    margin-bottom: var(--space-5);
  }
}

.post-head__kicker {
  font-size: var(--fs-xxs);
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: var(--tracking-widest);
  color: var(--c-fg-muted);
  margin-bottom: var(--space-4);
}

.post-head__kicker .post-head__kicker-strong {
  color: var(--c-fg-strong);
}

.post-head__title {
  font-size: var(--fs-3xl);
  line-height: 1.05;
  letter-spacing: -0.015em;
  color: var(--c-fg-strong);
  text-wrap: balance;
  margin-bottom: var(--space-5);
}

@media (max-width: 860px) {
  .post-head__title {
    font-size: 2.4rem;
  }
}

@media (max-width: 480px) {
  .post-head__title {
    font-size: 1.85rem;
  }
}

.post-head__description {
  font-size: var(--fs-lg);
  line-height: var(--lh-snug);
  color: var(--c-fg);
  max-width: 38em;
  margin: 0 0 var(--space-5);
  font-style: italic;
}

@media (max-width: 480px) {
  .post-head__description {
    font-size: var(--fs-md);
  }
}

.post-head__meta {
  display: flex;
  flex-wrap: wrap;
  gap: var(--space-2) var(--space-5);
  align-items: center;
  padding: var(--space-3) 0 0;
  font-size: var(--fs-xxs);
  text-transform: uppercase;
  letter-spacing: var(--tracking-wider);
  font-weight: 700;
  color: var(--c-fg-muted);
}

@media (max-width: 600px) {
  .post-head__meta {
    gap: var(--space-2) var(--space-4);
    letter-spacing: var(--tracking-wide);
  }
}

.post-head__meta-item {
  display: flex;
  gap: var(--space-2);
  align-items: baseline;
}

.post-head__meta-item-key {
  color: var(--c-fg-subtle);
  font-weight: 400;
}

.post-head__hero {
  margin: var(--space-6) 0;
}

.runner {
  display: grid;
  grid-template-columns: 1fr;
  row-gap: var(--space-5);
  font-size: var(--fs-xxs);
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: var(--tracking-wider);
  color: var(--c-fg-strong);
  line-height: 1.45;
}

.runner__field {
  display: flex;
  flex-direction: column;
  gap: var(--space-1);
}

.runner__key {
  color: var(--c-fg-muted);
  font-weight: 400;
}

.post-foot {
  margin-top: var(--space-8);
  padding-top: var(--space-5);
  border-top: var(--rule-w) solid var(--c-rule);
}

.post-nav {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: var(--space-5);
  margin-top: var(--space-5);
}

@media (max-width: 600px) {
  .post-nav {
    grid-template-columns: 1fr;
  }
}

.post-nav__item {
  display: flex;
  flex-direction: column;
  gap: var(--space-2);
  padding: 0;
  text-decoration: none;
  color: var(--c-fg-strong);
}

.post-nav__item:hover .post-nav__title {
  text-decoration-color: var(--c-fg-strong);
}

.post-nav__item--next {
  text-align: right;
}

.post-nav__label {
  font-size: var(--fs-xxs);
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: var(--tracking-wider);
  color: var(--c-fg-muted);
}

.post-nav__title {
  font-size: var(--fs-md);
  font-weight: 700;
  color: var(--c-fg-strong);
  text-decoration: underline;
  text-decoration-thickness: 1px;
  text-underline-offset: 0.22em;
  text-decoration-color: transparent;
  transition: text-decoration-color 80ms linear;
}

.toggle {
  display: inline-flex;
  align-items: center;
  font-size: var(--fs-xxs);
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: var(--tracking-wider);
  user-select: none;
  background: transparent;
}

.toggle__btn {
  appearance: none;
  background: transparent;
  border: 0;
  padding: var(--space-2) var(--space-2);
  font: inherit;
  color: var(--c-fg-muted);
  cursor: pointer;
  position: relative;
  line-height: 1;
}

.toggle__btn + .toggle__btn {
  margin-left: var(--space-1);
}

.toggle__btn:hover {
  color: var(--c-fg-strong);
}

.toggle__btn.is-active {
  color: var(--c-fg-strong);
  text-decoration: underline;
  text-decoration-thickness: 1px;
  text-underline-offset: 0.4em;
}

.toggle__btn:focus-visible {
  outline-offset: 2px;
  outline: 1px solid var(--c-fg-strong);
}

@media (max-width: 600px) {
  .toggle__btn-label {
    display: none;
  }
}

.sr-only {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}

.imgrow {
  --imgrow-cols: 2;
  display: grid;
  grid-template-columns: repeat(var(--imgrow-cols), 1fr);
  gap: var(--space-3);
  margin: var(--space-6) 0;
}

.imgrow img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.imgrow a {
  display: block;
  line-height: 0;
}

@media (max-width: 600px) {
  .imgrow {
    grid-template-columns: 1fr 1fr;
  }
}

.note {
  margin: var(--space-6) 0;
  padding: var(--space-1) 0 var(--space-1) var(--space-5);
  border-left: var(--rule-w-thick) solid var(--c-rule);
  position: relative;
}

.note__head {
  display: flex;
  align-items: center;
  gap: var(--space-3);
  margin-bottom: var(--space-3);
  font-size: var(--fs-xxs);
  text-transform: uppercase;
  letter-spacing: var(--tracking-wider);
  font-weight: 700;
  color: var(--c-fg-strong);
}

.note__rule {
  flex: 1;
  height: 0;
  border-top: var(--rule-w) dashed var(--c-rule);
}

.note__body > *:first-child {
  margin-top: 0;
}

.note__body > *:last-child {
  margin-bottom: 0;
}

@media print {
  :root {
    --c-bg: #fff;
    --c-fg: #000;
    --c-fg-strong: #000;
  }
  .doc__masthead, .doc__colophon, .toggle, .nav, .post-foot {
    display: none !important;
  }
  .doc__body {
    grid-template-columns: 1fr;
  }
  .doc__sidebar {
    display: none;
  }
  .doc__main {
    padding: 0;
  }
  a {
    color: #000;
    text-decoration: none;
  }
  a[href^="http"]::after {
    content: " (" attr(href) ")";
    font-size: 0.85em;
    color: #666;
  }
}

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after {
    transition-duration: 0.001ms !important;
    animation-duration: 0.001ms !important;
  }
}

/*# sourceMappingURL=unixy.css.map */