:root { --color-fg: #171D1A; --color-bg: #F3F5F3; --color-2nd-fg: #4A5651; --color-2nd-bg: #E9EDEA; --color-3rd-fg: #6F7B76; --color-line: #CBD3CE; --color-line-soft: #DDE3DF; --color-accent: #1F6F5B; --color-accent-soft: #D8E9E2; --color-ochre: #9A6B1F; --color-code-bg: #E6EBE8; --color-pre-border: #CBD3CE; --font-body: sans-serif; --font-display: serif; --font-mono: monospace; color: var(--color-fg); background-color: var(--color-bg); } @media (prefers-color-scheme: dark) { :root { --color-fg: #E4EAE7; --color-bg: #121716; --color-2nd-fg: #A7B3AE; --color-2nd-bg: #19201E; --color-3rd-fg: #7E8A85; --color-line: #2C3733; --color-line-soft: #222B28; --color-accent: #5CC2A2; --color-accent-soft: #1B3A31; --color-ochre: #D9A85A; --color-code-bg: #1C2522; --color-pre-border: #2C3733; } } a { color: var(--color-accent); } a:visited { color: var(--color-accent); } /* General declarations */ body { margin: 0px auto; padding: 1%; max-width: 68ch; font-family: var(--font-body); font-size: 17px; line-height: 1.6; } h1, h2, h3, h4, h5, h6 { font-family: var(--font-display); font-weight: 500; line-height: 1.2; text-wrap: balance; } h1 { font-size: 39px; } h2 { font-size: 31px; } h3 { font-size: 25px; } h4, h5, h6 { font-size: 20px; } code, pre, .mono { font-family: var(--font-mono); } code { background-color: var(--color-code-bg); } .icon { width: 22px; height: 22px; vertical-align: middle; } /* Navigation header */ header { margin-bottom: 30px; padding: 12px 0px 12px 0px; } nav, nav ol { display: flex; flex-direction: row; flex-wrap: wrap; align-items: center; } nav ol { list-style: none; margin: 0px; padding: 0px; } nav a { font-size: 18px; margin: 12px; text-decoration: none; } nav a img { width: 32px; height: 32px; } nav ol.languages { margin-left: auto; } nav ol.languages a, nav ol.languages li { font-family: var(--font-mono); font-size: 14px; margin: 6px; } nav ol.languages li { color: var(--color-fg); } nav ol.languages a, nav ol.languages a:visited { color: var(--color-2nd-fg); } nav ol.languages a:hover { color: var(--color-fg); } #tagline { margin: 0px 12px 6px 12px; font-size: 14px; color: var(--color-2nd-fg); } /* A published recording */ #media video, #media audio { width: 100%; max-width: 100%; } #media-links { font-family: var(--font-mono); font-size: 14px; color: var(--color-2nd-fg); } /* Article bodies */ #published-at, #updated-at { color: var(--color-2nd-fg); font-size: 14px; font-style: italic; } blockquote { font-style: italic; color: var(--color-2nd-fg); padding-left: 10px; border-left: 3px solid var(--color-2nd-fg); } .collection-list { list-style-type: none; } .collection-list li { margin: 20px 0px; } /* Footer */ body > footer { font-size: 14px; padding: 12px 0px 12px 0px; } body > footer li { list-style-type: none; margin-top: 10px; } body > footer li a { margin-left: 5px; } .content-footer, .page-footer, #footnotes { border-top: 0.5px solid var(--color-2nd-fg); } table.tableblock { border-collapse: collapse; margin: 16px 0px; } table.tableblock td, table.tableblock th { text-align: left; vertical-align: top; padding: 6px 24px 6px 0px; border-bottom: 1px solid var(--color-line-soft); } table.tableblock th { color: var(--color-2nd-fg); font-size: 14px; } table.tableblock p { margin: 0px; } /* Code blocks */ /* The "lineno" class is the default generated by Rouge for table-row in code blocks, see: https://github.com/rouge-ruby/rouge */ pre.lineno { margin-right: 3px; padding-right: 3px; border-right: 1px solid; border-color: var(--color-pre-border); text-align: right; user-select: none; } .highlight, .listingblock .content { border: 1px solid; border-color: var(--color-pre-border); border-radius: 10px; background-color: var(--color-code-bg); } pre { overflow: auto; } /* Code block anchors */ a.code-line-anchor { color: var(--color-fg); user-select: none; text-decoration: none; } a.code-line-anchor:hover { text-decoration: underline; } /* Header anchor */ div.header-anchor { color: var(--color-fg); text-decoration: none; display: block; margin-bottom: 15px; } div.header-anchor h1, div.header-anchor h2, div.header-anchor h3, div.header-anchor h4, div.header-anchor h5, div.header-anchor h6 { display: inline; } div.header-anchor img { visibility: hidden; } div.header-anchor:hover img { visibility: visible; } /* Plaintext code block links */ .plaintext { margin: auto auto 0 auto; text-align: right; font-family: var(--font-mono); } a.anchor { background: transparent url(img/link.svg) center right no-repeat; padding-right: 22px; margin-left: 10px; visibility: hidden; } h2:hover a.anchor { visibility: visible; } /* Fix asciidoc shortcoming */ .line-through { text-decoration: line-through; } #comments .message { background-color: var(--color-2nd-bg); border: 1px solid; border-color: var(--color-pre-border); border-radius: 10px; padding: 0.5rem 1rem; margin-bottom: 1rem; margin-left: 9rem; } #comments .message[data-depth="0"] { margin-left: 0; } #comments .message[data-depth="1"] { margin-left: 1rem; } #comments .message[data-depth="2"] { margin-left: 2rem; } #comments .message[data-depth="3"] { margin-left: 3rem; } #comments .message[data-depth="4"] { margin-left: 4rem; } #comments .message[data-depth="5"] { margin-left: 5rem; } #comments .message[data-depth="6"] { margin-left: 6rem; } #comments .message[data-depth="7"] { margin-left: 7rem; } #comments .message[data-depth="8"] { margin-left: 8rem; } #comments .message-header { display: flex; flex-wrap: wrap; align-items: baseline; gap: 0 1rem; font-size: 0.9em; } #comments .from { font-weight: bold; } #comments .date, #comments .reply, #comments .handle { color: var(--color-2nd-fg); } #comments .handle { font-weight: normal; } #comments .message-body { background-color: transparent; border: none; overflow-wrap: anywhere; font-size: 0.9em; } #comments pre.message-body { white-space: pre-wrap; } #comments div.message-body p { margin: 0.5em 0; } #comments div.message-body p:first-child { margin-top: 0; } #comments div.message-body p:last-child { margin-bottom: 0; } @media (max-width: 40rem) { #comments .message[data-depth] { margin-left: 0; } }