@charset "UTF-8";
/******************************************************************************/
/* fonts ETBook had issues with kerning and weirdly sized characters so I'm not
 * using it anymmore ... */
/* cyrillic-ext */
@import url(_docutils.css);
@font-face {
  font-family: 'EB Garamond';
  font-style: italic;
  font-weight: 400;
  font-display: swap;
  src: url("/static/fonts/ebgaramond/v14/SlGFmQSNjdsmc35JDF1K5GRwUjcdlttVFm-rI7e8QL9wU6ingQ.woff2") format("woff2");
  unicode-range: U+0460-052F, U+1C80-1C88, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F; }

/* cyrillic */
@font-face {
  font-family: 'EB Garamond';
  font-style: italic;
  font-weight: 400;
  font-display: swap;
  src: url("/static/fonts/ebgaramond/v14/SlGFmQSNjdsmc35JDF1K5GRwUjcdlttVFm-rI7e8QL95U6ingQ.woff2") format("woff2");
  unicode-range: U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116; }

/* greek-ext */
@font-face {
  font-family: 'EB Garamond';
  font-style: italic;
  font-weight: 400;
  font-display: swap;
  src: url("/static/fonts/ebgaramond/v14/SlGFmQSNjdsmc35JDF1K5GRwUjcdlttVFm-rI7e8QL9xU6ingQ.woff2") format("woff2");
  unicode-range: U+1F00-1FFF; }

/* greek */
@font-face {
  font-family: 'EB Garamond';
  font-style: italic;
  font-weight: 400;
  font-display: swap;
  src: url("/static/fonts/ebgaramond/v14/SlGFmQSNjdsmc35JDF1K5GRwUjcdlttVFm-rI7e8QL9-U6ingQ.woff2") format("woff2");
  unicode-range: U+0370-03FF; }

/* vietnamese */
@font-face {
  font-family: 'EB Garamond';
  font-style: italic;
  font-weight: 400;
  font-display: swap;
  src: url("/static/fonts/ebgaramond/v14/SlGFmQSNjdsmc35JDF1K5GRwUjcdlttVFm-rI7e8QL9yU6ingQ.woff2") format("woff2");
  unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+1EA0-1EF9, U+20AB; }

/* latin-ext */
@font-face {
  font-family: 'EB Garamond';
  font-style: italic;
  font-weight: 400;
  font-display: swap;
  src: url("/static/fonts/ebgaramond/v14/SlGFmQSNjdsmc35JDF1K5GRwUjcdlttVFm-rI7e8QL9zU6ingQ.woff2") format("woff2");
  unicode-range: U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF; }

/* latin */
@font-face {
  font-family: 'EB Garamond';
  font-style: italic;
  font-weight: 400;
  font-display: swap;
  src: url("/static/fonts/ebgaramond/v14/SlGFmQSNjdsmc35JDF1K5GRwUjcdlttVFm-rI7e8QL99U6g.woff2") format("woff2");
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }

/* cyrillic-ext */
@font-face {
  font-family: 'EB Garamond';
  font-style: italic;
  font-weight: 700;
  font-display: swap;
  src: url("/static/fonts/ebgaramond/v14/SlGFmQSNjdsmc35JDF1K5GRwUjcdlttVFm-rI7dbR79wU6ingQ.woff2") format("woff2");
  unicode-range: U+0460-052F, U+1C80-1C88, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F; }

/* cyrillic */
@font-face {
  font-family: 'EB Garamond';
  font-style: italic;
  font-weight: 700;
  font-display: swap;
  src: url("/static/fonts/ebgaramond/v14/SlGFmQSNjdsmc35JDF1K5GRwUjcdlttVFm-rI7dbR795U6ingQ.woff2") format("woff2");
  unicode-range: U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116; }

/* greek-ext */
@font-face {
  font-family: 'EB Garamond';
  font-style: italic;
  font-weight: 700;
  font-display: swap;
  src: url("/static/fonts/ebgaramond/v14/SlGFmQSNjdsmc35JDF1K5GRwUjcdlttVFm-rI7dbR79xU6ingQ.woff2") format("woff2");
  unicode-range: U+1F00-1FFF; }

/* greek */
@font-face {
  font-family: 'EB Garamond';
  font-style: italic;
  font-weight: 700;
  font-display: swap;
  src: url("/static/fonts/ebgaramond/v14/SlGFmQSNjdsmc35JDF1K5GRwUjcdlttVFm-rI7dbR79-U6ingQ.woff2") format("woff2");
  unicode-range: U+0370-03FF; }

/* vietnamese */
@font-face {
  font-family: 'EB Garamond';
  font-style: italic;
  font-weight: 700;
  font-display: swap;
  src: url("/static/fonts/ebgaramond/v14/SlGFmQSNjdsmc35JDF1K5GRwUjcdlttVFm-rI7dbR79yU6ingQ.woff2") format("woff2");
  unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+1EA0-1EF9, U+20AB; }

/* latin-ext */
@font-face {
  font-family: 'EB Garamond';
  font-style: italic;
  font-weight: 700;
  font-display: swap;
  src: url("/static/fonts/ebgaramond/v14/SlGFmQSNjdsmc35JDF1K5GRwUjcdlttVFm-rI7dbR79zU6ingQ.woff2") format("woff2");
  unicode-range: U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF; }

/* latin */
@font-face {
  font-family: 'EB Garamond';
  font-style: italic;
  font-weight: 700;
  font-display: swap;
  src: url("/static/fonts/ebgaramond/v14/SlGFmQSNjdsmc35JDF1K5GRwUjcdlttVFm-rI7dbR799U6g.woff2") format("woff2");
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }

/* cyrillic-ext */
@font-face {
  font-family: 'EB Garamond';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url("/static/fonts/ebgaramond/v14/SlGDmQSNjdsmc35JDF1K5E55YMjF_7DPuGi-6_RkCY9_S6w.woff2") format("woff2");
  unicode-range: U+0460-052F, U+1C80-1C88, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F; }

/* cyrillic */
@font-face {
  font-family: 'EB Garamond';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url("/static/fonts/ebgaramond/v14/SlGDmQSNjdsmc35JDF1K5E55YMjF_7DPuGi-6_RkAI9_S6w.woff2") format("woff2");
  unicode-range: U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116; }

/* greek-ext */
@font-face {
  font-family: 'EB Garamond';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url("/static/fonts/ebgaramond/v14/SlGDmQSNjdsmc35JDF1K5E55YMjF_7DPuGi-6_RkCI9_S6w.woff2") format("woff2");
  unicode-range: U+1F00-1FFF; }

/* greek */
@font-face {
  font-family: 'EB Garamond';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url("/static/fonts/ebgaramond/v14/SlGDmQSNjdsmc35JDF1K5E55YMjF_7DPuGi-6_RkB49_S6w.woff2") format("woff2");
  unicode-range: U+0370-03FF; }

/* vietnamese */
@font-face {
  font-family: 'EB Garamond';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url("/static/fonts/ebgaramond/v14/SlGDmQSNjdsmc35JDF1K5E55YMjF_7DPuGi-6_RkC49_S6w.woff2") format("woff2");
  unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+1EA0-1EF9, U+20AB; }

/* latin-ext */
@font-face {
  font-family: 'EB Garamond';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url("/static/fonts/ebgaramond/v14/SlGDmQSNjdsmc35JDF1K5E55YMjF_7DPuGi-6_RkCo9_S6w.woff2") format("woff2");
  unicode-range: U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF; }

/* latin */
@font-face {
  font-family: 'EB Garamond';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url("/static/fonts/ebgaramond/v14/SlGDmQSNjdsmc35JDF1K5E55YMjF_7DPuGi-6_RkBI9_.woff2") format("woff2");
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }

/* cyrillic-ext */
@font-face {
  font-family: 'EB Garamond';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url("/static/fonts/ebgaramond/v14/SlGDmQSNjdsmc35JDF1K5E55YMjF_7DPuGi-DPNkCY9_S6w.woff2") format("woff2");
  unicode-range: U+0460-052F, U+1C80-1C88, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F; }

/* cyrillic */
@font-face {
  font-family: 'EB Garamond';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url("/static/fonts/ebgaramond/v14/SlGDmQSNjdsmc35JDF1K5E55YMjF_7DPuGi-DPNkAI9_S6w.woff2") format("woff2");
  unicode-range: U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116; }

/* greek-ext */
@font-face {
  font-family: 'EB Garamond';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url("/static/fonts/ebgaramond/v14/SlGDmQSNjdsmc35JDF1K5E55YMjF_7DPuGi-DPNkCI9_S6w.woff2") format("woff2");
  unicode-range: U+1F00-1FFF; }

/* greek */
@font-face {
  font-family: 'EB Garamond';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url("/static/fonts/ebgaramond/v14/SlGDmQSNjdsmc35JDF1K5E55YMjF_7DPuGi-DPNkB49_S6w.woff2") format("woff2");
  unicode-range: U+0370-03FF; }

/* vietnamese */
@font-face {
  font-family: 'EB Garamond';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url("/static/fonts/ebgaramond/v14/SlGDmQSNjdsmc35JDF1K5E55YMjF_7DPuGi-DPNkC49_S6w.woff2") format("woff2");
  unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+1EA0-1EF9, U+20AB; }

/* latin-ext */
@font-face {
  font-family: 'EB Garamond';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url("/static/fonts/ebgaramond/v14/SlGDmQSNjdsmc35JDF1K5E55YMjF_7DPuGi-DPNkCo9_S6w.woff2") format("woff2");
  unicode-range: U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF; }

/* latin */
@font-face {
  font-family: 'EB Garamond';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url("/static/fonts/ebgaramond/v14/SlGDmQSNjdsmc35JDF1K5E55YMjF_7DPuGi-DPNkBI9_.woff2") format("woff2");
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }

/**********************************************************************/
/* eyecandy ... */
/**********************************************************************/
/* actually interesting stuff presumably */
.post-index {
  padding: 0; }
  .post-index li {
    list-style: none;
    padding: .5rem 0;
    display: flex;
    grid-gap: 1rem; }
  .post-index li.delimiter {
    align-items: center; }
    .post-index li.delimiter hr {
      flex-grow: 1; }
    .post-index li.delimiter .year {
      font-size: 1.7rem;
      width: 4.5rem;
      text-align: right; }
  @media screen and (min-width: 832px) {
    .post-index .item {
      max-width: 40rem; } }
  .post-index a.title {
    font-size: 1.7rem;
    text-decoration: none; }
  .post-index .date {
    flex-shrink: 0;
    width: 4.5rem;
    white-space: nowrap;
    text-align: right; }
  .post-index .tag {
    font-style: italic; }
  .post-index .article-text p {
    margin: 0;
    font-size: 1.1rem;
    line-height: 1.6rem; }

.wow-much-social {
  display: inline-flex;
  flex-wrap: wrap;
  grid-gap: 1rem; }
  .wow-much-social a {
    display: flex;
    grid-gap: 2px;
    font-size: 1.2rem;
    align-items: center;
    text-decoration: none;
    position: relative;
    padding: 0;
    background: none;
    white-space: nowrap; }
    .wow-much-social a::after {
      content: "";
      position: absolute;
      height: 2px;
      bottom: 0;
      left: 0;
      right: 0;
      background-color: #1d2021;
      visibility: hidden;
      transform: scaleX(0);
      transition: all 0.3s cubic-bezier(0.175, 0.885, 0.32, 1.275); }
      @media (prefers-color-scheme: dark) {
        .wow-much-social a::after {
          background-color: #f9f5d7; } }
    .wow-much-social a:hover {
      text-decoration: none; }
    .wow-much-social a:hover::after {
      visibility: visible;
      transform: scaleX(1); }
  .wow-much-social .gitlab {
    color: #af3a03; }
    @media (prefers-color-scheme: dark) {
      .wow-much-social .gitlab {
        color: #fe8019; } }
  .wow-much-social .github {
    color: #282828; }
    @media (prefers-color-scheme: dark) {
      .wow-much-social .github {
        color: #fbf1c7; } }
  .wow-much-social .bitbucket {
    color: #076678; }
    @media (prefers-color-scheme: dark) {
      .wow-much-social .bitbucket {
        color: #458588; } }
  .wow-much-social .srht {
    color: #282828; }
    @media (prefers-color-scheme: dark) {
      .wow-much-social .srht {
        color: #fbf1c7; } }
.numeral, article a.footnote-reference, article a[role=doc-backlink], .article-text a.footnote-reference, .article-text a[role=doc-backlink] {
  font-family: "EB Garamond", serif; }

.tepid, .post-index .tepid.article-text a {
  color: #665c54; }
  @media (prefers-color-scheme: dark) {
    .tepid, .post-index .tepid.article-text a {
      color: #bdae93; } }
.newthought {
  font-variant: small-caps;
  font-size: 1.2em; }

.smolcaps {
  font-variant-caps: all-small-caps; }

.nowrap {
  white-space: nowrap; }

.hl-yellow {
  background: rgba(215, 153, 33, 0.25); }

.hl-purple {
  background: rgba(177, 98, 134, 0.25); }

.hl-purple,
.hl-yellow,
p > code {
  padding: 1px; }

p > code {
  background-color: #fcfaec; }
  @media (prefers-color-scheme: dark) {
    p > code {
      background-color: #282828; } }
.maths {
  transform: translate(0, 0); }

a:hover {
  text-decoration: underline; }

.footnote-reference.superscript {
  line-height: 100%;
  vertical-align: super; }

.fn-bracket {
  display: none; }

p {
  overflow-wrap: anywhere; }

.footnote-reference {
  white-space: nowrap; }

.footnote > .label {
  float: left; }

@media screen and (min-width: 832px) {
  aside.aside .footnote {
    padding-left: 0; } }

main {
  margin: auto;
  padding: 0 1rem;
  /* wide displays & show narrow aside column */
  /* else ... narrow display & one column (or print?)
   * ideally we would write `not (...)` or `<=` but sass
   * is a buggy over-complicated piece of shit
   * https: */ }
  @media (min-width: 832px) {
    main {
      max-width: 60rem; }
      main article {
        display: flow-root; }
      main article,
      main figure.full-width > figcaption {
        margin-right: 20rem; }
      main article {
        /* automatically aside figcaption? */ }
        main article .full-width {
          margin-right: -20rem;
          display: block; }
        main article > figure:not(.full-width):not(.full-bleed) > figcaption,
        main article *:not(aside) > figure:not(.full-width):not(.full-bleed) > figcaption,
        main article header,
        main article aside.aside {
          width: 18rem;
          margin-right: -20rem;
          float: right;
          clear: right; }
        main article aside.aside > *:first-child:not(header) {
          /* try to keep aside content reasonably inline with the main whatever */
          margin-top: 0; }
        main article header {
          margin-bottom: 2rem; }
          main article header h1 {
            overflow-wrap: anywhere;
            /* align a bit more nicely with the main content? */
            margin-top: 2rem;
            /* cute line cause practicaltypography.com looks nice and I wanna too */
            padding-top: 1rem;
            border-top: 3px solid;
            border-color: #1d2021; } }
        @media (min-width: 832px) and (prefers-color-scheme: dark) {
          main article header h1 {
            border-color: #f9f5d7; } }
  @media (max-width: 831px) {
    main {
      max-width: 40rem; }
      main header {
        text-align: right;
        border-bottom: 1px solid;
        margin-bottom: 2rem; }
        main header h1 {
          margin-top: 2rem; } }
  main .full-bleed img,
  main .full-bleed video {
    width: 100vw;
    max-width: 100vw; }
  main .full-bleed img,
  main .full-bleed video {
    /* -1rem for article padding */
    /* MIN to get around sass trying to evaluate the min function lmao
     * https: */
    margin-left: MIN(calc((-100vw + 60rem) / 2), -1rem); }
  @media (max-width: 831px) {
    main .full-bleed img,
    main .full-bleed video {
      margin-left: MIN(calc((-100vw + 40rem) / 2), -1rem); } }
  main article > header > p {
    font-size: inherit; }

main > footer {
  margin-top: 3rem;
  display: flex;
  justify-content: space-between; }
  @media (min-width: 832px) {
    main > footer {
      max-width: 40rem; } }
  main > footer p {
    font-size: 1.2rem; }
  main > footer a {
    text-decoration: none; }

aside.aside p,
aside.aside dl,
.footnote p,
figure > figcaption {
  margin-top: 0;
  font-size: 1.2rem;
  line-height: 1.4; }

/* support the logo in the h1? and social links below? */
main article header h1 {
  justify-content: space-between; }
  main article header h1 img {
    float: right;
    max-width: 96px; }

@media (max-width: 831px) {
  main article header h1 img {
    float: left;
    max-height: 3rem; } }

img.logo, svg.logo {
  margin: 0;
  border-radius: 8px; }

/* link styling */
a {
  color: inherit; }
  article a:not(.footnote-reference):not(.image-reference):not(.self-link):not([role=doc-backlink]), .article-text a:not(.footnote-reference):not(.image-reference):not(.self-link):not([role=doc-backlink]) {
    text-decoration: none; }
    article a:not(.footnote-reference):not(.image-reference):not(.self-link):not([role=doc-backlink])[href^="#"]:after, .article-text a:not(.footnote-reference):not(.image-reference):not(.self-link):not([role=doc-backlink])[href^="#"]:after {
      color: #d65d0e; }
    article a:not(.footnote-reference):not(.image-reference):not(.self-link):not([role=doc-backlink]):after, .article-text a:not(.footnote-reference):not(.image-reference):not(.self-link):not([role=doc-backlink]):after {
      content: "➭";
      font-size: 85%;
      vertical-align: super;
      line-height: 0; }
    article a:not(.footnote-reference):not(.image-reference):not(.self-link):not([role=doc-backlink]):hover, .article-text a:not(.footnote-reference):not(.image-reference):not(.self-link):not([role=doc-backlink]):hover {
      background-color: rgba(7, 102, 120, 0.1); }
      @media (prefers-color-scheme: dark) {
        article a:not(.footnote-reference):not(.image-reference):not(.self-link):not([role=doc-backlink]):hover, .article-text a:not(.footnote-reference):not(.image-reference):not(.self-link):not([role=doc-backlink]):hover {
          background-color: rgba(131, 165, 152, 0.1); } }
  article a.footnote-reference, article a[role=doc-backlink], .article-text a.footnote-reference, .article-text a[role=doc-backlink] {
    font-size: 1rem;
    color: #d65d0e; }

/******************************************************************************/
/* tufte-like stuff, see https://edwardtufte.github.io/tufte-css/             */
html {
  font-size: 15px; }

body {
  padding: 0;
  margin: auto;
  background-color: #fffff8;
  color: #1d2021;
  font-size: inherit;
  font-family: "EB Garamond", serif; }
  @media (prefers-color-scheme: dark) {
    body {
      background-color: #1d2021;
      color: #f9f5d7; } }
p.subtitle {
  font-style: italic;
  margin-top: 1rem;
  margin-bottom: 1rem;
  font-size: 1.8rem;
  display: block;
  line-height: 1; }

p {
  margin: 1.4rem 0; }

table {
  margin: 1.8rem 0; }

p, table {
  padding-right: 0;
  vertical-align: baseline; }

table {
  width: 100%;
  border-top: 2px solid;
  border-bottom: 2px solid;
  border-color: #1d2021; }
  table th {
    border-bottom: 1px solid; }
  @media (prefers-color-scheme: dark) {
    table {
      border-color: #f9f5d7; } }
th {
  text-align: left; }

p, ol, ul {
  font-size: 1.4rem;
  line-height: 2.4rem; }

th p, th .line-block, td p, td .line-block {
  margin: 0;
  font-size: 1.3rem;
  line-height: 1.6rem; }

li:not(:first-child) {
  margin-top: 0.25rem; }

article img, article video, article .iframe-jail-cell {
  max-width: 100%; }

article video, article .iframe-jail-cell {
  margin-bottom: 1.4rem; }

figcaption {
  margin-bottom: 2rem; }

/* iframes are proper fucked */
.iframe-jail-cell {
  margin-top: 2rem;
  position: relative;
  padding-top: 56.25%;
  overflow: hidden; }
  .iframe-jail-cell > iframe {
    height: 100%;
    width: 100%;
    position: absolute;
    left: 0;
    top: 0; }

/* some sizing and stuff ripped from tufte-css */
article {
  padding: 1rem 0rem; }

section {
  padding-top: 1rem;
  padding-bottom: 1rem; }
  section a.self-link {
    visibility: hidden;
    text-decoration: none;
    margin-left: 0.5rem;
    float: right;
    position: absolute; }
    section a.self-link::after {
      content: "※";
      color: #d65d0e;
      font-style: unset;
      font-size: smaller; }
  section h1:hover a.self-link, section h2:hover a.self-link, section h3:hover a.self-link, section h4:hover a.self-link, section h5:hover a.self-link, section h6:hover a.self-link {
    visibility: visible; }
  @media (hover: none) {
    section a.self-link {
      visibility: visible; } }
h1, h2, h3 {
  font-weight: 400;
  line-height: 1; }

h1 {
  margin-top: 4rem;
  margin-bottom: 1.5rem;
  font-size: 3.2rem; }

h2 {
  font-style: italic;
  margin-top: 2.1rem;
  margin-bottom: 1.4rem;
  font-size: 2.2rem; }

h3 {
  font-style: italic;
  font-size: 1.7rem;
  margin-top: 2rem;
  margin-bottom: 1.4rem; }

hr {
  display: block;
  height: 1px;
  border: 0;
  border-top: 1px solid #928374;
  margin: 1em 0;
  padding: 0; }
  hr.docutils {
    border-top: 0;
    text-align: center;
    height: auto; }
    hr.docutils::after {
      content: "§";
      font-size: 1.7em; }

@media (prefers-color-scheme: dark) {
  *::selection,
  *::-moz-selection {
    background: #076678; } }

/* figures */
figure {
  margin: 1rem 0; }

/* blockquotes */
blockquote {
  font-size: 1.4rem;
  margin-right: 0; }

blockquote footer {
  font-size: 1.1rem;
  text-align: right; }

/* epigraphs */
.epigraph {
  margin-top: 3em;
  margin-bottom: 3em; }

.epigraph,
.epigraph > p {
  font-style: italic; }

.epigraph > .attribution {
  font-style: normal; }

.epigraph > .attribution > cite {
  font-style: italic; }

/* codes */
pre, code, .code {
  font-family: monospace; }

code, .code {
  font-size: 1.0rem;
  line-height: 1.42; }

pre.code {
  font-size: 0.9rem;
  overflow-x: auto; }

pre.code.reflow {
  white-space: pre-wrap; }

h1 > code,
h2 > code,
h3 > code {
  font-size: 0.80em; }

.sans {
  font-family: system-ui, sans-serif;
  letter-spacing: .03em; }

.sans > code {
  font-size: 1.2rem; }

/* printy time */
@media print {
  * {
    background: #fff; }
  main > article {
    padding-top: 0; }
  main {
    width: 100%;
    padding: 0; }
  #asidebar {
    display: none; }
  img {
    break-inside: avoid; }
  p, table, pre {
    /* firefox is yelling at me about this being an `unknown property`,
     * but I'm pretty sure it's a real thing */
    widows: 3;
    orphans: 3; }
  h1, h2, h3, h4, h5, h6 {
    break-after: avoid; } }
