/*============================================================================
Basic layout and typography
============================================================================*/
body {
	background-color: #ffffff;
	margin: 0pt;
	font-family: 'Noto sans', sans-serif;
	font-weight: 400;
	font-size: 14pt;
	line-height: 1.6;
}

div, h1, h2, h4, p, img {
	position: relative;
	box-sizing: border-box;
}

div, img, h1 {
	width: 100%;
}

@media screen and (max-width: 599pt) {
	body { font-size: 12pt;	line-height: 1.5em; }
}


/*============================================================================
Headers
============================================================================*/
h1, h2, h3, h4 {
	font-family: 'Poppins', sans-serif;
	font-weight: 600;
}

h1, h1 a {
	margin-top: 0em;
	margin-bottom: 0em;
	color: #000000;
	text-decoration: none;
	font-size: 28pt;
}

h2, h2 a {
	margin-top: 3em;
	margin-bottom: 0pt;
	color: #000000;
	font-weight: 700;
	text-decoration: none;
	font-size: 18pt;
}

h2 + h3  { margin-top: 1em; }

h3, h3 a {
	margin-top: 2em;
	margin-bottom: 0em;
	color: #000000;
	font-size: 14pt;
	font-weight: 700;
	text-decoration: underline;
}

h4, h4 a {
	margin-top: 1em;
	margin-bottom: 0em;
	color: #000000;
	font-size: 14pt;
	text-decoration: none;
	text-transform: none;
}

@media screen and (max-width: 599pt) {
	h1 { font-size: 20pt; }
	h2 { margin-top: 2em; font-size: 16pt; }
}

@media screen and (max-width: 299pt) {
	h1 { font-size: 14pt; }
	h2 { font-size: 14pt; }
	h4 { font-size: 12pt; }
}


/*============================================================================
Text
============================================================================*/
p {
	margin-top: 0em;
	margin-bottom: 0em;
}

p + p {
	margin-top: 0.7em;
}

p + h4, p + h4:first-of-type {
	margin-top: 1.4em;
}

h2 + p, h4 + p {
	margin-top: 0em;
}

blockquote {
	margin-inline-start: 1.5em;
	font-style: italic;
	color: #808080;
	font-size: 0.9em;
}

/*============================================================================
Code blocks
============================================================================*/
pre {
	background-color: #f7f7f7;
	padding: 1em;
	margin: 1em 0;
	border-radius: 4pt;
	overflow-x: auto;
}

pre code {
	display: block;
	font-family: 'Poppins', sans-serif;
	font-weight: 400;
	font-size: 0.9em;
	white-space: pre-wrap;
}

pre code::first-line {
	font-weight: 600;
}

code {
	font-family: 'Poppins', sans-serif;
	font-weight: 500;
	font-size: 0.9em;
	background-color: #f7f7f7;
	padding: 0.15em 0.3em;
	border-radius: 3pt;
}

pre code {
	background-color: transparent;
	padding: 0;
}


/*============================================================================
Bullet lists
============================================================================*/
ul, li {
	margin-bottom: 0em;
	margin-top: 0em;
}

ul {
	padding-left: 2em;
}

li {
	padding-bottom: 0em;
	padding-left: 0em;
	padding-right: 2em;
}

p + ul {
	margin-top: 0em;
}

ul + p {
	margin-top: 1.4em;
}


/*============================================================================
Document structure
============================================================================*/


div.content {
	max-width: 600pt;
	min-height: 100vh;
	margin-top: 0pt;
	padding-left: 36pt;
	padding-right: 36pt;
	padding-top: 60pt;
	margin-left: auto;
	margin-right: auto;
	overflow: visible;
	background-color: white;
}

div.headerBar {
	margin-top: 20pt;
	height: 80pt;
	background-color: white;
	border-bottom: solid 2pt #000;
	overflow: hidden;
}

div.headerContent {
	max-width: 600pt;
	padding-left: 36pt;
	padding-right: 36pt;
	margin-left: auto;
	margin-right: auto;
	display: flex;
}

a.headerTitle {
	margin-right: auto;
	color: #000000;
	text-decoration: none;
	font-size: 40pt;
	font-family: 'Poppins', sans-serif;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: .016em;
	line-height: 80pt;
}

img.header {
	top: 1pt;
	width: 78pt;
	height: 78pt;
}

div.navBar {
	max-width: 600pt;
	padding-left: 36pt;
	padding-right: 36pt;
	margin-left: auto;
	margin-right: auto;
	margin-top: 5pt;
	font-family: 'Popppins', sans-serif;
	color: #808080;
	font-weight: 400;
	font-size: 12pt;
}

div.navBar a {
	padding-right: 15pt;
	color: #808080;
	text-decoration: none;
}

div.footer {
	height: 160pt;
}

div.h1Spacer { height: 3em; }
div.h3Spacer { height: 0.5em; }

@media screen and (max-width: 599pt) {
	div.content { padding-left: 12pt; padding-right: 12pt; padding-top: 2em; }
	div.headerContent { padding-left: 12pt; padding-right: 12pt; }
	div.headerBar { height: 60pt; }
	img.header { width: 58pt; height: 58pt; }
	a.headerTitle { font-size: 18pt; line-height: 60pt; }
	div.navBar { padding-left: 12pt; padding-right: 12pt; font-size: 10pt; }
	div.h1Spacer { height: 2em; }
}



/*============================================================================
Misc
============================================================================*/
div.date {
	font-family: 'Poppins', sans-serif;
	color: #808080;
	font-weight: 400;
	font-size: 0.9em;
}

p.sectionSubtitle {
	color: #808080;
	font-size: 0.9em;
}

img.bug {
	margin-top: 24pt;
	margin-bottom: 24pt;
	width: 36pt;
	height: 36pt;
}

figure.post-image {
	display: table;
	margin: 1.5em auto;
	padding: 0;
}

figure.post-image img {
	display: block;
	max-width: 100%;
	max-height: 300pt;
	width: auto;
	height: auto;
}

figure.post-image figcaption {
	display: table-caption;
	caption-side: bottom;
	margin-top: 0.5em;
	font-size: 0.85em;
	color: #808080;
	font-style: italic;
	text-align: left;
}

@media screen and (max-width: 599pt) {
	figure.post-image img {
		width: 100%;
		max-height: none;
	}
}

a.subscribe {
	display: inline-block;
	margin-top: 1em;
	padding: 8pt 12pt;
	background-color: #ff6719;
	color: white;
	font-family: 'Poppins', sans-serif;
	font-weight: 600;
	font-size: 11pt;
	text-decoration: none;
	border-radius: 4pt;
}

a.subscribe:hover {
	background-color: #e55a14;
}

a.subscribe.rss {
	background-color: #1a8cff;
	margin-left: 0.5em;
}

a.subscribe.rss:hover {
	background-color: #0077e6;
}

a.subscribe.alt {
	background-color: #6b7280;
	margin-left: 0.5em;
}

a.subscribe.alt:hover {
	background-color: #4b5563;
}

a.subscribe svg {
	width: 1em;
	height: 1em;
	margin-right: 0.4em;
	vertical-align: -0.1em;
}

@media screen and (max-width: 599pt) {
	a.subscribe {
		display: block;
		margin-left: 0;
		margin-right: 0;
		text-align: center;
	}
	a.subscribe.rss,
	a.subscribe.alt {
		margin-left: 0;
		margin-top: 0.5em;
	}
}


/*============================================================================
Section divider (decorative hr)
============================================================================*/
div.section-divider {
	display: flex;
	align-items: center;
	margin: 2.5em 0;
	gap: 12pt;
}

div.divider-line {
	flex: 1;
	height: 1pt;
	background-color: #000;
}

img.divider-logo {
	width: 24pt;
	height: 24pt;
}