@font-face { font-family: comic-mono; src: url(ComicMono.woff); } /* Defaults */ html { --font-family-monospace: comic-mono, consolas, monospace; --font-family: comic-mono, consolas, sans-serif; --syntax-tab-size: 2; --background-light: var(--xkcd-off-white); --text-light: var(--xkcd-dark-grey); --link-light: var(--xkcd-teal); --accent-light: var(--xkcd-red-orange); --background-dark: var(--xkcd-very-dark-brown); --text-dark: var(--xkcd-light-grey); --link-dark: var(--xkcd-steel-blue); --accent-dark: var(--xkcd-bronze); } html, [theme='light'] { --background-color: var(--background-light); --text-color: var(--text-light); --text-color-link: var(--link-light); --accent-color: var(--accent-light); } @media(prefers-color-scheme: dark) { html { --background-color: var(--background-dark); --text-color: var(--text-dark); --text-color-link: var(--link-dark); --accent-color: var(--accent-dark); } } [theme='dark'] { --background-color: var(--background-dark); --text-color: var(--text-dark); --text-color-link: var(--link-dark); --accent-color: var(--accent-dark); } /* Global stylesheet */ * { box-sizing: border-box; } body { overflow-y: scroll; max-width: 100ch; padding: 0 1rem; margin: 0 auto 2rem; font-family: var(--font-family); color: var(--text-color); background-color: var(--background-color); } /* https://www.a11yproject.com/posts/how-to-hide-content/ */ .visually-hidden { clip: rect(0 0 0 0); clip-path: inset(50%); height: 1px; overflow: hidden; position: absolute; white-space: nowrap; width: 1px; } p:last-child { margin-bottom: 0; } p { margin-top: 0; line-height: 1.5; } li { line-height: 1.5; } a[href] { color: var(--text-color-link); } .links-nextprev { list-style: none; padding: 0; } table { margin: 1em 0; } table td, table th { padding-right: 1em; } pre, code { /* !important so that this isn't overwritten by code highlighter */ font-family: var(--font-family-monospace) !important; } pre:not([class*="language-"]) { margin: .5em 0; line-height: 1.375; /* 22px /16 */ -moz-tab-size: var(--syntax-tab-size); -o-tab-size: var(--syntax-tab-size); tab-size: var(--syntax-tab-size); -webkit-hyphens: none; -ms-hyphens: none; hyphens: none; direction: ltr; text-align: left; white-space: pre; word-spacing: normal; word-break: normal; } code { word-break: break-all; } /* Nav */ nav ul { list-style: none; padding-left: 0; } nav li { display: inline; } nav li + li::before { content: ' | '; } /* Posts list */ .postlist { list-style: none; padding: 0; padding-left: 1.5rem; } .postlist-item { display: flex; flex-wrap: wrap; align-items: baseline; counter-increment: start-from -1; margin-bottom: 1em; } .postlist-item:before { display: inline-block; pointer-events: none; content: "" counter(start-from, decimal-leading-zero) ". "; line-height: 100%; text-align: right; margin-left: -1.5rem; } .postlist-date, .postlist-item:before { font-size: 0.8125em; /* 13px /16 */ } .postlist-date { word-spacing: -0.5px; } .postlist-link { font-size: 1.1875em; /* 19px /16 */ font-weight: 700; flex-basis: calc(100% - 1.5rem); padding-left: .25em; padding-right: .5em; text-underline-position: from-font; text-underline-offset: 0; text-decoration-thickness: 1px; } .postlist-item-active .postlist-link { font-weight: bold; } /* Tags */ .post-tag { display: inline-flex; align-items: center; justify-content: center; font-style: italic; } .postlist-item > .post-tag { align-self: center; } /* Tags list */ .post-metadata { display: inline-flex; flex-wrap: wrap; gap: .5em; list-style: none; padding: 0; margin: 0; } .post-metadata time { margin-right: 1em; } /* Direct Links / Markdown Headers */ .header-anchor { text-decoration: none; font-style: normal; font-size: 1em; margin-left: .1em; } a[href].header-anchor, a[href].header-anchor:visited { color: transparent; } a[href].header-anchor:focus, a[href].header-anchor:hover { text-decoration: underline; } a[href].header-anchor:focus, :hover > a[href].header-anchor { color: #aaa; } h1 { padding-bottom: 20px; border-bottom: 12px double var(--accent-color); } article { overflow: auto; padding-bottom: 20px; margin-bottom: 20px; border-bottom: 12px double var(--accent-color); } img { max-width: 100%; max-height: 80vh; } .gallery { display:flex; flex-wrap: wrap; justify-content: center; align-items: center; } .gallery img { border: 0.5ch solid; margin: 1ch; width: 12ch; } .web-button { image-rendering: pixelated; } .card-gallery { list-style: none; padding-left: 0; display: flex; flex-wrap: wrap; gap: 1rem; } .card img { width: 175px; height: 125px; } .card p { width: 175px; }