@charset "UTF-8"; /* Import ET Book styles adapted from https://github.com/edwardtufte/et-book/blob/gh-pages/et-book.css */ @font-face { font-family: "et-book"; src: url("et-book/et-book-roman-line-figures/et-book-roman-line-figures.eot"); src: url("et-book/et-book-roman-line-figures/et-book-roman-line-figures.eot?#iefix") format("embedded-opentype"), url("et-book/et-book-roman-line-figures/et-book-roman-line-figures.woff") format("woff"), url("et-book/et-book-roman-line-figures/et-book-roman-line-figures.ttf") format("truetype"), url("et-book/et-book-roman-line-figures/et-book-roman-line-figures.svg#etbookromanosf") format("svg"); font-weight: normal; font-style: normal; font-display: swap; } @font-face { font-family: "et-book"; src: url("et-book/et-book-display-italic-old-style-figures/et-book-display-italic-old-style-figures.eot"); src: url("et-book/et-book-display-italic-old-style-figures/et-book-display-italic-old-style-figures.eot?#iefix") format("embedded-opentype"), url("et-book/et-book-display-italic-old-style-figures/et-book-display-italic-old-style-figures.woff") format("woff"), url("et-book/et-book-display-italic-old-style-figures/et-book-display-italic-old-style-figures.ttf") format("truetype"), url("et-book/et-book-display-italic-old-style-figures/et-book-display-italic-old-style-figures.svg#etbookromanosf") format("svg"); font-weight: normal; font-style: italic; font-display: swap; } @font-face { font-family: "et-book"; src: url("et-book/et-book-bold-line-figures/et-book-bold-line-figures.eot"); src: url("et-book/et-book-bold-line-figures/et-book-bold-line-figures.eot?#iefix") format("embedded-opentype"), url("et-book/et-book-bold-line-figures/et-book-bold-line-figures.woff") format("woff"), url("et-book/et-book-bold-line-figures/et-book-bold-line-figures.ttf") format("truetype"), url("et-book/et-book-bold-line-figures/et-book-bold-line-figures.svg#etbookromanosf") format("svg"); font-weight: bold; font-style: normal; font-display: swap; } @font-face { font-family: "et-book-roman-old-style"; src: url("et-book/et-book-roman-old-style-figures/et-book-roman-old-style-figures.eot"); src: url("et-book/et-book-roman-old-style-figures/et-book-roman-old-style-figures.eot?#iefix") format("embedded-opentype"), url("et-book/et-book-roman-old-style-figures/et-book-roman-old-style-figures.woff") format("woff"), url("et-book/et-book-roman-old-style-figures/et-book-roman-old-style-figures.ttf") format("truetype"), url("et-book/et-book-roman-old-style-figures/et-book-roman-old-style-figures.svg#etbookromanosf") format("svg"); font-weight: normal; font-style: normal; font-display: swap; } :root { --bg: #fafafa; --fg: #1a1a1a; --gray: #6a6a6a; --light-gray: #d5d5d5; } [data-theme="dark"] { --bg: #1a1a1a; --fg: #fafafa; --gray: #959595; --light-gray: #3a3a3a; } html { font-size: 16px; } body { font-family: et-book, Palatino, "Palatino Linotype", "Palatino LT STD", "Book Antiqua", Georgia, serif; margin-left: auto; margin-right: auto; color: var(--fg); background: var(--bg); line-height: 2rem; display: grid; grid-template-columns: 20% 80%; width: min(87.5%, 1440px); gap: 2rem; vertical-align: baseline; counter-reset: sidenote-counter; margin-inline: 3% auto; } a { color: var(--fg); opacity: 0.9; text-decoration: underline; text-decoration-thickness: 0.5px; text-underline-offset: 3px; } h1, h2, h3, h4, h5, h6 { font-weight: normal; font-style: italic; line-height: 1; } h1 { margin-top: 2rem; margin-bottom: 1.5rem; font-size: 3.2rem; } h2 { margin-top: 2.1rem; margin-bottom: 1.4rem; font-size: 2.2rem; } h3 { font-style: italic; margin-top: 2rem; margin-bottom: 1.4rem; } .outline-sidebar { display: flex; flex-direction: column; justify-content: space-between; position: sticky; top: 2.5rem; height: calc(100vh - 4rem); line-height: 1.3rem; overflow-y: auto; } .outline { display: flex; flex-direction: column; gap: 0.3rem; } .outline a { text-decoration: none; } .outline .h1 { padding-left: 0; font-size: 1.05rem; } .outline .h2 { padding-left: 1rem; font-size: 0.95rem; } .outline .h3 { padding-left: 1.5rem; font-size: 0.85rem; } .outline-sidebar .bottom-nav { display: flex; flex-direction: row; flex-wrap: wrap; align-items: baseline; gap: 0.6rem 1.2rem; margin-top: 2rem; justify-content: flex-start; padding-top: 1rem; } .outline-sidebar .bottom-nav a { text-decoration: none; font-size: 0.9rem; } .metadata { color: var(--gray); font-size: 0.9rem; } .metadata .date { margin-right: 0.3rem; } .description { line-height: 1.2; color: var(--gray); } .blog-entry .date { color: var(--gray); font-size: 0.85rem; } .blog-entry .description { margin-bottom: 0.3rem; } .blog-entry .tags { font-size: 0.85rem; color: var(--gray); } .footnote { font-size: 0.9rem; } .footnote sup { margin-right: 0.25rem; } .l1-list::before { content: "•"; color: var(--gray); margin-right: 0.3rem; font-size: 0.9em; opacity: 0.6; } .l2-list::before { content: "◦"; color: var(--gray); margin-right: 0.3rem; margin-left: 1.5rem; font-size: 0.85em; opacity: 0.5; } .l3-list::before { content: "▪"; color: var(--gray); margin-right: 0.3rem; margin-left: 3rem; font-size: 0.8em; opacity: 0.4; } blockquote.callout { padding: 0; margin-left: 1.4rem; padding-left: 0.7rem; border-left: 0.5px solid var(--light-gray); color: var(--gray); background: transparent; } .highlight { padding: 0; font-weight: bold; } .tag-cloud { display: flex; flex-wrap: wrap; gap: 1rem; margin-top: 2rem; } .tag-cloud a { text-decoration: none; } table { border-collapse: collapse; width: 100%; margin: 1rem 0; font-family: monospace; font-size: 0.85rem; } img, svg { max-width: 100%; height: auto; } .insert-container { width: 100%; margin: 1rem 0; overflow-x: auto; } code.inlinecode { font-family: monospace; font-size: 0.95rem; color: var(--gray); } pre { font-family: monospace; font-size: 0.95rem; } pre code { color: inherit; } pre.verbatim code { color: var(--fg); } pre code .keyword { color: #000000; font-weight: bold; } pre code .type { color: #303030; font-style: italic; } pre code .function { color: #101010; } pre code .string { color: #606060; } pre code .comment { color: #a0a0a0; font-style: italic; } pre code .variable { color: #404040; } pre code .property { color: #505050; } pre code .constant { color: #181818; font-weight: bold; } pre code .operator { color: #707070; } pre code .punctuation { color: #808080; } pre code .number { color: #585858; } pre code .module { color: #1a1a1a; } pre code .constructor { color: #2a2a2a; font-weight: bold; } pre code .punctuation.bracket { color: #707070; } pre code .punctuation.delimiter { color: #909090; } pre code .punctuation.special { color: #606060; } pre code .string.special { color: #505050; } pre code .tag { color: #0a0a0a; } pre code .type.builtin { color: #383838; font-style: italic; } pre code .function.builtin { color: #151515; } pre code .constant.builtin { color: #0d0d0d; font-weight: bold; } pre code .variable.builtin { color: #353535; } pre code .variable.parameter { color: #484848; } pre code .attribute { color: #656565; } [data-theme="dark"] pre code .keyword { color: #ffffff; font-weight: bold; } [data-theme="dark"] pre code .type { color: #d5d5d5; font-style: italic; } [data-theme="dark"] pre code .function { color: #f5f5f5; } [data-theme="dark"] pre code .string { color: #a0a0a0; } [data-theme="dark"] pre code .comment { color: #606060; font-style: italic; } [data-theme="dark"] pre code .variable { color: #c0c0c0; } [data-theme="dark"] pre code .property { color: #b0b0b0; } [data-theme="dark"] pre code .constant { color: #ebebeb; font-weight: bold; } [data-theme="dark"] pre code .operator { color: #858585; } [data-theme="dark"] pre code .punctuation { color: #757575; } [data-theme="dark"] pre code .number { color: #a8a8a8; } [data-theme="dark"] pre code .module { color: #e5e5e5; } [data-theme="dark"] pre code .constructor { color: #d0d0d0; font-weight: bold; } [data-theme="dark"] pre code .punctuation.bracket { color: #858585; } [data-theme="dark"] pre code .punctuation.delimiter { color: #707070; } [data-theme="dark"] pre code .punctuation.special { color: #9a9a9a; } [data-theme="dark"] pre code .string.special { color: #b0b0b0; } [data-theme="dark"] pre code .tag { color: #fafafa; } [data-theme="dark"] pre code .type.builtin { color: #c8c8c8; font-style: italic; } [data-theme="dark"] pre code .function.builtin { color: #efefef; } [data-theme="dark"] pre code .constant.builtin { color: #f2f2f2; font-weight: bold; } [data-theme="dark"] pre code .variable.builtin { color: #cacaca; } [data-theme="dark"] pre code .variable.parameter { color: #b8b8b8; } [data-theme="dark"] pre code .attribute { color: #959595; }