
:root {
	--dim-line-length: 70ch;
	--dim-font-smaller: .8em;
	--dim-body-padding: max(1rem, 10vw);

	--font-sans: -apple-system, system-ui, sans-serif;
	--font-serif: 'Source Serif 4', serif;
	--font-mono: Consolas, Menlo, Source Code Pro, monospace, monospace;
	--font-main: var(--font-serif);

	--color-background: ghostwhite;
	--color-block-background: #e6e6ff;
	--color-block-background-hover: #c8c8e1;
	--color-foreground: black;
	--color-muted-foreground: #595454;

	--line-height: 1.4rem;

	scrollbar-color: var(--color-foreground) var(--color-block-background-hover);
	font-size: 100%;
}

@media screen and (prefers-color-scheme: dark) {
	:root {
		--color-background: black;
		--color-block-background: #30303f;
		--color-block-background-hover: #727279;
		--color-foreground: white;
		--color-muted-foreground: #88888f;
	}
}

body {
	padding: 0 var(--dim-body-padding);
	margin: 0;

	font-family: var(--font-main);
	font-weight: 400;
	line-height: var(--line-height);
	letter-spacing: 0.02em;
	tab-size: 4ch;

	background: var(--color-background);
	color: var(--color-foreground);
}

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

:focus {
	outline: 2px dashed;
}

:focus:not(:focus-visible) {
	outline: none;
}

a {
	color: currentColor;
}

a:hover {
	background: var(--color-block-background-hover);
}

sup {
	vertical-align: top;
	font-size: .8em;
}

time {
	font-variant-numeric: tabular-nums;
}

p,
ul, ol, dl,
details, figure, table, blockquote, pre,
article, section, header, main, footer,
address,
h1, h2, h3, h4, h5, h6 {
	margin: var(--line-height) 0;
}

h1, h2 {
	font-weight: normal;
}

h1 {
	margin-bottom: 0;
	font-size: 1.6em;
	line-height: calc(1.5 * var(--line-height));
}

h2 {
	font-size: 1.3em;
	margin-top: calc(2 * var(--line-height));
	line-height: var(--line-height);
}

h3 {
	font-size: 1em;
	margin-top: calc(2 * var(--line-height));
	line-height: var(--line-height);
}

p, li, dt {
	max-width: var(--dim-line-length);
}

ul, ol, dd {
	padding-inline: 0;
}

blockquote, figure, ul, ol, dd {
	margin-inline: clamp(1em, 3vw, 2em) 0;
}

	figure blockquote {
		margin-inline: 0;
	}

	blockquote + figcaption {
  	background: var(--color-block-background);
  	margin-top: calc(-1 * var(--line-height));
  	padding: 0 1rem calc(var(--line-height) / 2) 1rem;
  	text-align: end;
	}

blockquote {
	padding-inline: calc(.6 * var(--line-height));
	border-left: 2px solid var(--color-muted-foreground);
	background: var(--color-block-background);
	width: max-content;
	max-width: 100%;
	box-shadow:
		0 calc(-.5 * var(--line-height)) var(--color-block-background),
		0 calc( .5 * var(--line-height)) var(--color-block-background);
}

aside {
	padding: 0 1em;
	max-width: var(--dim-line-length);

	font-size: var(--dim-font-smaller);
	font-style: italic;

	background: var(--color-block-background);
}

ul[role=list] {
	padding-left: 0;
	margin-left: 0;
	list-style: none;
}

th {
	text-align: start;
}

thead tr > *, tr:not(:last-child) > * {
	padding-block-end: calc(.5 * var(--line-height));
}

td:not(:last-child) {
	padding-inline-end: 2em;
}

figcaption {
	font-size: var(--dim-font-smaller);
}

	figcaption a {
		background: none;
	}

pre {
	overflow-x: auto;
	scrollbar-width: thin;
	-moz-tab-size: 4ch;
	-o-tab-size: 4ch;
	tab-size: 4ch;
	margin-inline-end: calc(-1 * var(--dim-body-padding));
	letter-spacing: 0;
}

code {
	letter-spacing: 0;
}

img {
	display: block;
	max-width: min(var(--dim-line-length), 100%);
	height: auto;
}

hr {
	border: none;
}

hr:after {
	content: '\2766';
	font-size: var(--line-height);
	line-height: 1em;
}

.footnote-backref {
    width: 0;
    display: inline-block;
}

[data-sidenote] {
	font-size: .88em;
	opacity: .7;
}

[data-sidenote]:before { content: '(' }
[data-sidenote]:after  { content: ')' }

@media (min-width: calc(70ch + max(1rem, 10vw) + 21ch)) {
	p {
		position: relative;
	}
	[data-sidenote] {
		display: block;
		width: 19ch;
		float: right;
		clear: right;
		margin-right: -21ch;
		margin-top: calc(-1 * var(--line-height));
		margin-bottom: calc(2 * var(--line-height));
	}

	[data-sidenote]:before { content: none }
	[data-sidenote]:after  { content: none }
}

/* Semantics */

article {
	margin-block: var(--line-height);
}
	article > footer:first-of-type:before {
		content: '';
		display: block;
		width: 20ch;
		border-top: 3px double var(--color-foreground);
	}

body > footer {
	font-size: .8em;
}


.entry-list a {
	text-decoration: none;
}

.entry-list .p-summary {
	font-style: italic;
}

.entry-list h3 {
	margin: var(--line-height) 0;
}

.entry-list .h-entry time.dt-published {
	display: inline-block;
	font-size: .8em;
}



.entry-page-header h1 {
	margin-bottom: var(--line-height);
}

.entry-page-header p {
	color: var(--color-muted-foreground);
	font-size: var(--dim-font-smaller);
	margin: 0;
	font-weight: italic;
}



.me h1 {
	margin-top: 0;
	line-height: 1em;
	font-size: clamp(3em, 3.5vw, 3em);
	margin-left: -.06em;
	font-style: italic;
}

.me img {
	margin-bottom: 1em;
}

.me h1 a {
	text-decoration: none;
}

.me .btn {
	background: #ffef33;
	border: 1px solid #ceb707;
	font-size: .8em;
	vertical-align: text-top;
	padding: .1em .3em;
	text-decoration: none;
	border-radius: .2em;
	text-transform: none;
	font-weight: bold;
}


.-center {
	display: flex;
	justify-content: center;
	align-items: center;
}

.-indent {
	padding-left: 1.2em;
}

.-unlink {
	background: none;
	border: none;
}

.-big-margin {
	margin-block: 5em;
}

.-h-scroll {
	overflow-x: auto;
	max-width: 100%;
}

.-full-bleed {
	width: calc(100% + (2 * var(--dim-body-padding)));
	max-width: none;
	margin-left: calc(-1 * var(--dim-body-padding));
}

.-full-bleed-scroll {
	overflow-x: auto;
	padding-inline: var(--dim-body-padding);
	width: calc(100% + (2 * var(--dim-body-padding)));
	max-width: none;
	margin-left: calc(-1 * var(--dim-body-padding));
}

.-truncate {
	max-width: 100%;

	white-space: nowrap;
	overflow: hidden;

	text-overflow: ellipsis;
}

.-flow-space > * + * {
	margin-top: var(--dim-flow-space, 1em);
}

.-inline-list {
	display: flex;
	flex-flow: row wrap;
	gap: 1ch var(--inline-list-gap, 2ch);
}

.-lowercase {
	text-transform: lowercase;
}

.-wide-para {
	max-width: none;
}

/**
* Biluminal theme by Deniz Akşimşek <https://denizaksimsek.com>
*/

code,
pre[class*="language-"] {
    word-spacing: normal;
    word-break: normal;

    font-family: 'Source Code Pro', 'Ubuntu Mono', 'Consolas', monospace;
    font-size: .9rem;
    font-weight: 500;

    -moz-tab-size: 2;
    -o-tab-size: 2;
    tab-size: 2;

    -webkit-hyphens: none;
    -moz-hyphens: none;
    -ms-hyphens: none;
    hyphens: none;
}

code {
    color: #595959;
    filter: brightness(0.8);
}

@media (prefers-color-scheme: dark) {
    code {
        filter: brightness(1.96);
    }
}

.token.comment,
.token.prolog,
.token.doctype,
.token.cdata {
    color: #058800;
    font-style: italic;
}

.token.namespace {
    opacity: .7;
}

.token.string,
.token.attr-value {
    color: #f13285;
}

.token.punctuation,
.token.operator {
    color: #73766E;
}

.token.entity,
.token.url,
.token.symbol,
.token.number,
.token.boolean,
.token.variable,
.token.constant,
.token.property,
.token.regex,
.token.inserted {
    color: #36acaa;
}

.token.atrule,
.token.keyword,
.token.attr-name {
    font-style: italic;
    color: #0F76DC;
}

.token.function,
.token.deleted {
    color: #ec341f;
}

.token.tag,
.token.selector {
    color: #c15f07;
}

.token.important,
.token.bold {
    font-weight: bold;
}

.token.italic {
    font-style: italic;
}

.token.hyperscript {
    color: var(--color-foreground);
}

.token.comment {
    font-family: var(--font-main);
    letter-spacing: .04em;
}

