@import url('https://unpkg.com/@catppuccin/palette/css/catppuccin.css');
@import url(https://fonts.bunny.net/css?family=inter:400);
@import url(https://fonts.bunny.net/css?family=jetbrains-mono:400);
:root {
	--text-color: var(--ctp-frappe-base);
	--heading-color: var(--ctp-frappe-surface0);
	--accent-color: var(--ctp-latte-lavender);
	--accent-color-dark: color-mix(in srgb, var(--accent-color), black);
	--base-color: var(--ctp-latte-base);
	--font-sans-serif: "Inter";
	--font-monospace: "JetBrains Mono";

	--step--2: clamp(0.7813rem, 0.7769rem + 0.0192vw, 0.8rem);
	--step--1: clamp(0.9375rem, 0.9231rem + 0.0641vw, 1rem);
	--step-0: clamp(1.125rem, 1.0962rem + 0.1282vw, 1.25rem);
	--step-1: clamp(1.35rem, 1.301rem + 0.2179vw, 1.5625rem);
	--step-2: clamp(1.62rem, 1.5431rem + 0.3417vw, 1.9531rem);
	--step-3: clamp(1.944rem, 1.8292rem + 0.5102vw, 2.4414rem);
	--step-4: clamp(2.3328rem, 2.1669rem + 0.7374vw, 3.0518rem);
	--step-5: clamp(2.7994rem, 2.5651rem + 1.0414vw, 3.8147rem);
}

@media (max-width: 600px) {
	body {
		font-size: 0.9em;
		padding: 12px;
		max-width: 100%;
	}
	h1 {
		font-size: 1.8em;
	}
}

@media print {
	html {
		background-color: var(--base-color);
	}
	body {
		background-color: transparent;
		color: var(--text-color);
		font-size: 12pt;
	}
	p, h2, h3 {
		orphans: 3;
		widows: 3;
	}
	h2, h3, h4 {
		page-break-after: avoid;
	}
}

html {
	color: var(--text-color);
	background-color: var(--base-color);
}
   
body {
	margin-block: 0;
	margin-inline: 0;
	min-height: 100vh;
	line-height: 1.7;
	font-family: var(--font-sans-serif), sans-serif;
	hyphens: auto;
	overflow-wrap: break-word;
	text-rendering: optimizeLegibility;
	font-kerning: normal;
}
   
p {
	margin-block-start: 1.4em;
	margin-block-end: 0;
}

a, a:link, a:visited, a:link:visited {
	color: var(--accent-color);
	text-underline-offset: .3rem;
}
   
a:hover {
	text-decoration-color: color-mix(in srgb, currentColor, transparent 50%);
	color: var(--accent-color-dark);
}

img {
	max-width: 100%;
	display: block;
}

svg {
	height: auto;
	max-width: 100%;
}

h1, h2, h3, h4, h5, h6 {
	margin-block: 1.4em;
	margin-inline: 0;
	color: var(--heading-color);
	line-height: 1.1;
	text-wrap: balance;
	max-width: 50ch;
}

h1 {
	margin-block-start: 1.4em;
	margin-block-end: auto;
	text-align: center;
	font-size: var(--step-3);
}

h2 {
	font-size: var(--step-2);
}

h3 {
	font-size: var(--step-1);
}

h4 {
	font-size: var(--step-0);
}

h5 {
	font-size: var(--step--1);
}

h6 {
	font-size: var(--step--2);
}

ol, ul {
	padding-left: 1.7em;
	margin-top: 1em;
}

li > ol, li > ul {
	margin-top: 0;
}

blockquote {
	margin-block: 1em;
	padding-inline-start: 1em;
	border-left: 2px solid #e6e6e6;
	color: #606060;
}

code {
	font-family: var(--font-monospace), monospace;
	font-size: 85%;
	margin-block: 0;
	margin-inline: 0;
	hyphens: manual;
}

pre {
	margin-block-start: 1em;
	margin-block-end: 0;
	padding-block: 1em;
	padding-inline: 1em;
	overflow: auto;
	background: #303446;
}

pre code {
	padding-block: 0;
	padding-inline: 0;
	overflow: visible;
	overflow-wrap: normal;
}

.sourceCode {
	background-color: transparent;
	overflow: visible;
}

hr {
	background-color: var(--accent-color);
	border: none;
	height: 1px;
	margin-block: 1.4em;
	max-width: 1200px;
	width: 45ch;
}

table {
	margin-block-start: 1.4em;
	margin-block-end: 0;
	border-collapse: collapse;
	width: 100%;
	overflow-x: auto;
	display: block;
	font-variant-numeric: lining-nums tabular-nums;
}

table caption {
	margin-block-end: 0.75em;
}

tbody {
	margin-block-start: 0.5em;
	border-block-start: 1px solid #1a1a1a;
	border-block-end: 1px solid #1a1a1a;
}

th {
	border-block-start: 1px solid #1a1a1a;
	padding-block-start: 0.25em;
	padding-block-end: 0.25em;
	padding-inline-end: 0.5em;
	padding-inline-start: 0.5em;
}

td {
	padding-block-start: 0.125em;
	padding-block-end: 0.25em;
	padding-inline-start: 0.5em;
	padding-inline-end: 0.5em;
}

header {
	margin-block-end: 4em;
	margin-inline: auto;
	max-width: 90ch;
}

.metadata > p time {
	color: var(--accent-color);
}

#TOC li {
	list-style: none;
}

#TOC ul {
	padding-inline-start: 1.3em;
}

#TOC > ul {
	padding-inline-start: 0;
}

#TOC a:not(:hover) {
	text-decoration: none;
}

code {
	white-space: pre-wrap;
}

span.smallcaps {
	font-variant: small-caps;
}

div.columns {
	display: flex;
	gap: min(4vw, 1.5em);
}

div.column {
	flex: auto;
	overflow-x: auto;
}

div.hanging-indent {
	margin-inline-start: 1.5em;
	text-indent: -1.5em;
}

ul.task-list[class] {
	list-style: none;
}

ul.task-list li input[type="checkbox"] {
	font-size: inherit;
	width: 0.8em;
	margin-block-start: 0;
	margin-block-end: 0.2em;
	margin-inline-start: -1.6em;
	margin-inline-end: 0.8em;
	vertical-align: middle;
}

.display.math {
  	display: block;
  	text-align: center;
  	margin-block-start: 0.5rem;
  	margin-block-end: auto;
}
   
::selection {
	color: var(--base-color);
	background: var(--text-color);
}

.hljs::selection, .hljs > span::selection, .hljs > span span::selection {
	background-color: var(--accent-color-dark);
}

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

:is(h1, h2, h3, blockquote) {
	--flow-space: 1.5em;
}

:is(h1, h2, h3) + * {
	--flow-space: 0.5em;
}

article {
	max-width: 90ch;
	margin-inline: auto;
}

main {
	margin-block-end: 3em;
}

blockquote {
	max-width: 50ch;
}

.e-content {
	--flow-space: 2.5rem;
}

.e-content :is(h2 + *, h3 + *, h4 + *) {
	--flow-space: 1rem
}
