/* http://meyerweb.com/eric/tools/css/reset/
   v2.0 | 20110126
   License: none (public domain)
*/

html, body, div, span, applet, object, iframe,
h1, h2, h3, h4, h5, h6, p, blockquote, pre,
a, abbr, acronym, address, big, cite, code,
del, dfn, em, img, ins, kbd, q, s, samp,
small, strike, strong, sub, sup, tt, var,
b, u, i, center,
dl, dt, dd, ol, ul, li,
fieldset, form, label, legend,
table, caption, tbody, tfoot, thead, tr, th, td,
article, aside, canvas, details, embed,
figure, figcaption, footer, header, hgroup,
menu, nav, output, ruby, section, summary,
time, mark, audio, video {
	margin: 0;
	padding: 0;
	border: 0;
	font-size: 100%;
	font: inherit;
	vertical-align: baseline;
}
/* HTML5 display-role reset for older browsers */
article, aside, details, figcaption, figure,
footer, header, hgroup, menu, nav, section {
	display: block;
}
body {
	line-height: 1;
}
ol, ul {
	list-style: none;
}
blockquote, q {
	quotes: none;
}
blockquote:before, blockquote:after,
q:before, q:after {
	content: '';
	content: none;
}
table {
	border-collapse: collapse;
	border-spacing: 0;
}

/* https://www.paulirish.com/2012/box-sizing-border-box-ftw/ */
/* apply a natural box layout model to all elements, but allowing components to change */
html {
	box-sizing: border-box;
}
*, *:before, *:after {
	box-sizing: inherit;
}

/* http://markdotto.com/2018/02/07/github-system-fonts/ */
body {
	font-family: -apple-system, BlinkMacSystemFont, "Segoe UI",
 Helvetica, Arial, sans-serif,
 "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol";
	font-size: 16px;
	line-height: 28px;
	color: #333;
}

a {
	color: #0330AF;
}

a:visited {
	color: #6023DE;
}

a:hover {
	color: #4E6FFF;
}

em, i {
	font-style: italic;
}

strong, b {
	font-weight: bold;
}

p {
	margin: 20px 0;
}

h1, h2, h3 {
	font-weight: bold;
	margin: 1.5em 0 1em 0;
	line-height: 1.15em;
}

h1 a,
h2 a,
h3 a {
	color: #333;
	text-decoration: none;
}

h1 a:visited,
h2 a:visited,
h3 a:visited {
	color: #333;
	text-decoration: none;
}

h1 a:hover,
h2 a:hover,
h3 a:hover {
	text-decoration: underline;
}

h1 { font-size: 16px; }
h2 { font-size: 18px; }
h3 { font-size: 14px; }

h3 {
	text-transform: uppercase;
	letter-spacing: 1px;
	margin-top: 2.5em;
}

ol li {
	list-style: decimal;
	margin-left: 1.25em;
}

ul li {
	list-style: square;
	margin-left: 1.25em;
}

code li {
	margin-bottom: 0;
}

dt {
	font-weight: bold;
}

code {
	font-family: menlo, monospace;
	font-size: 0.9em;
	background: #f2f2f2 !important;
}

pre code {
	display: block;
	margin: 20px 0;
	padding: 0.75em 1em !important;
	color: #333;
}

p code {
	padding: 0.25em;
}

pre code.lang-shell li {
	list-style: none;
	margin-left: 0;
}

pre code.lang-shell li.prompt::before {
	content: "$ ";
}

hr {
	margin: 30px 0;
	border: 0;
	border-top: 2px dotted #8c8c8c;
}

figure {
	margin: 30px 0;
	width: 100%;
}

figure img {
	width: 100%;
	height: auto;
}

video {
	width: 100%;
	height: auto;
}

img {
	vertical-align: top;
}

figcaption {
	color: #666;
	font-style: italic;
	margin-top: 5px;
}

figcaption em,
figcaption i {
	font-style: normal;
}

blockquote {
	padding-left: 2em;
}

#main {
	width: 100%;
	padding: 0 20px;
}

.post {
	max-width: 700px;
	position: relative;
	margin: 30px auto 0 auto;
	padding-top: 30px;
}

.post > h2 {
	margin-top: 0;
}

.post:first-child {
	margin-top: 0;
}

.post::before,
.pagination::before {
	content: "";
	position: absolute;
	top: 0;
	right: -20px;
	left: -20px;
	height: 1px;
	background: #ccc;
}

.post:first-child::before {
	display: none;
}

.post > h1 {
	margin: 0 0 0.25em 0;
}

.byline {
	margin-top: 2em;
}

.category {
	display: inline;
}

.category a {
	font-weight: bold;
	text-decoration: none;
}

.meta ul {
	display: inline;
}

.meta li {
	display: inline;
	list-style: none;
	margin: 0 10px 0 0;
}

.tags .spacer {
	font-weight: 600;
	visibility: hidden;
}

td.hljs-ln-numbers {
	opacity: 0.5;
	text-align: right;
}

td.hljs-ln-code {
	padding-left: 0.5em !important;
}

#notify {
	padding: 10px 15px;
	color: #ccc;
	background: #333;
	border-bottom: 2px solid #666;
	font-size: 16px;
}

header {
	width: 100%;
	padding: 20px;
}

header h1 a {
	margin-left: 3px;
}

header nav .selected {
	position: relative;
}

header nav .selected::before {
	content: "→";
	position: absolute;
	left: -20px;
	top: -1px;
}

header nav a {
	color: #333;
	text-decoration: none;
}

header nav a:hover {
	text-decoration: underline;
}

header nav .selected a {
	color: #000;
}

header h1 {
	margin: 0;
}

form .response {
	margin-top: 20px;
}

#login,
#join {
	max-width: 320px;
	position: absolute;
	top: 50%;
	left: 50%;
	transform: translateX(-50%) translateY(-1000%);
	opacity: 0;
	transition: 0.2s opacity ease-out;
}

#login.visible,
#join.visible {
	opacity: 1;
	transform: translateX(-50%) translateY(-50%);
}

input[type="text"],
input[type="email"],
input[type="password"] {
	border: none;
	padding: 10px 10px;
	font-family: menlo, monospace;
	font-size: 18px;
	width: 100%;
	margin: 5px 0 15px 0;
}

form .buttons {
	margin-top: 10px;
}

form .forgot {
	float: right;
}

input[type="submit"] {
	color: #fff;
	background: transparent;
	border: 2px solid #fff;
	padding: 5px 10px;
	border-radius: 4px;
	transition: 0.1s background-color ease-out;
	cursor: pointer;
	font-size: 18px;
	text-transform: uppercase;
}

input[type="submit"]:hover {
	background: #fff;
	color: #4E6FFF;
}

footer {
	background: #f2f2f2;
	margin-top: 45px;
	padding: 0 20px 45px 20px;
}

footer li {
	list-style: none;
	margin-left: 0;
}

footer .column {
	padding-top: 20px;
}

footer .about {
	position: relative;
}

footer .profile {
	position: absolute;
	left: 0;
	top: 35px;
	width: 40px;
	height: 40px;
	border-radius: 40px;
}

footer .links {
	margin-left: 50px;
}

audio {
	width: 100%;
	margin: 1em 0 0 0;
}

/* https://benmarshall.me/responsive-iframes/ */
div.embed {
	position: relative;
	height: 0;
	overflow: hidden;
	padding-bottom: 56.25%;
	background: #f2f2f2;
}

div.embed iframe {
	position: absolute;
	width: 100%;
	height: 100%;
	top: 0;
	left: 0;
}

.content {
	margin-top: 20px;
}

.content > *:first-child {
	margin-top: 0;
}

.meta {
	display: none;
}

.clear {
	clear: both;
}

.btn {
	border: 2px solid #0330AF;
	padding: 5px 10px;
	border-radius: 4px;
	text-decoration: none;
	transition: 0.1s background-color ease-out;
}

.btn:visited {
	border: 2px solid #6023DE;
}

.btn:hover {
	background: #4E6FFF;
	color: #fff;
	border-color: #4E6FFF;
	text-decoration: none;
}

.btn:visited:hover {
	border: 2px solid #6741B5;
	background: #6741B5;
}

.gallery li {
	list-style: none;
	margin-left: 0;
	margin-bottom: 0 !important;
}

.gallery li:first-child figure {
	margin-top: 0;
}

.gallery.wide {
	margin-left: -20px;
	margin-right: -20px;
}

.gallery.wide.book .half-width {
	float: left;
	width: 50%;
}

.gallery.wide.book .half-width figure {
	margin-top: 0;
	margin-bottom: 0;
}

.gallery.wide.book li {
	border-bottom: 1px solid #ccc;
}

.gallery.wide.book::after {
	clear: both;
	display: table;
	content: "";
}

.pagination {
	position: relative;
	margin: 1.5em auto 0 auto;
	padding-top: 2.5em;
	padding-bottom: 2.5em;
	font-size: 1.1em;
	max-width: 700px;
}

.pagination .btn {
	margin-right: 20px;
	padding: 10px 15px;
}

.category-photos-single p {
	max-width: 700px;
}

.permalink {
	position: relative;
	margin-left: 24px;
}

.permalink::before {
	position: absolute;
	top: 3px;
	left: -24px;
	width: 16px;
	height: 16px;
	content: "";
	border-radius: 16px;
	background: #4E6FFF;
}

.permalink:visited::before {
	background: #6023DE;
}

.tweet {
	border: 1px solid #ccc;
	padding: 20px;
}

.tweet.quote-tweet {
	margin-top: 15px;
}

.tweet-profile {
	position: relative;
	padding-left: 59px;
	line-height: 1.33em;
	margin-bottom: 15px;
}

.quote-tweet .tweet-profile {
	padding-left: 0;
}

.tweet-profile img {
	position: absolute;
	top: 0;
	left: 0;
	width: 49px;
	height: 49px;
	border-radius: 49px;
}

.quote-tweet .tweet-profile img {
	position: static;
	width: 20px;
	height: 20px;
	margin-right: 5px;
}

.tweet-profile a,
.tweet-permalink {
	text-decoration: none;
}

.tweet-name {
	color: #000;
}

.tweet-content > img,
.tweet-content > video {
	margin-top: 10px;
	width: 100%;
}

.tweet-content {
	margin-bottom: 10px;
}

.tweet-stats {
	color: #808080;
}

.tweet-profile a:hover .tweet-name,
a.tweet-permalink:hover {
	color: #4E6FFF;
	text-decoration: underline;
}

.tweet-screen-name {
	display: block;
	color: #808080;
}

.quote-tweet .tweet-screen-name {
	display: inline;
	margin-left: 5px;
}

.tweet + .tweet {
	border-top: none;
}

a.tweet-permalink {
	color: #808080;
}

body.embed {
	color: #fff;
	background-color: #333;
	padding: 30px;
	line-height: 1.5em;
}

body.embed * {
	visibility: hidden;
}

body.embed.ready * {
	visibility: visible;
}

body.embed h3 {
	margin: 0;
}

body.embed .link {
	color: #ccc;
}

body.embed .controls {
	position: absolute;
	bottom: 25px;
}

body.embed .controls label {
	display: block;
	margin-top: 15px;
}

body.embed a {
	color: #fff;
}

body.embed .btn,
body.embed .btn:visited {
	border-color: #fff;
	padding: 10px 15px;
}

body.embed .btn:hover {
	color: #333;
	background-color: #fff;
}

body.embed .about {
	position: absolute;
	bottom: 10px;
	color: #ccc;
	padding-right: 30px;
	display: none;
}

body.embed .about em {
	font-style: normal;
	color: #fff;
}

#customizations {
	max-width: 1065px;
	margin: 15px auto;
}

#customizations h3 {
	margin-top: 0;
}

@media screen and (min-height: 313px) {

	body.embed .about {
		display: block;
	}

	body.embed .controls {
		top: 50%;
		transform: translateY(-50%);
		bottom: auto;
	}
}

@media screen and (min-width: 481px) {

	.post {
		margin-top: 45px;
		padding-top: 45px;
	}

}

@media screen and (min-width: 760px) {

	h1 { font-size: 18px; }
	h2 { font-size: 22px; }
	h3 { font-size: 16px; }

	.post > h2 {
		margin-top: 30px;
	}

	.post:first-child > h2 {
		margin-top: 0;
	}

	.meta {
		display: block;
		text-transform: lowercase;
	}

	.post::before,
	.pagination::before {
		right: 0;
		left: calc(-50vw + 350px);
	}

	.gallery .half-width {
		float: left;
		width: calc(50% - 15px);
	}

	.gallery .half-width figure {
		margin-top: 0;
	}

	.gallery .second-half {
		margin-left: 30px;
	}

	.gallery.wide {
		width: 100vw;
		margin-left: calc(-50vw + 350px);
	}

	.gallery.wide .half-width {
		width: 50%;
		margin-left: 0;
	}

	footer {
		margin-top: 60px;
		padding-top: 20px;
	}

	footer .grid {
		display: grid;
		width: 100%;
		max-width: 700px;
		margin: 0 auto;
		grid-template-columns: 66% 33%;
		grid-gap: 30px;
	}

	footer .column {
		padding-top: 0;
	}

	footer .profile {
		top: 20px;
	}

	footer .links {
		margin-left: 0;
		margin-top: 20px;
	}

}

@media screen and (min-width: 1125px) {

	#main {
		width: 1065px;
		padding: 0;
		margin: 0 auto;
	}

	.post {
		max-width: none;
		margin-top: 45px;
	}

	.post .content {
		margin-top: 30px;
	}

	.post::before,
	.pagination::before {
		left: calc(-50vw + 532px);
		right: 0;
		width: calc(700px + 50vw - 532px);
	}

	.post:not(.category-photos-single) .content {
		float: left;
		width: 700px;
	}

	.post:not(.category-photos-single) .meta {
		float: right;
		width: 365px;
		padding: 30px 0 0 30px;
	}

	.post:not(.category-photos-single)::after {
		display: block;
		content: "";
		clear: both;
	}

	.post:not(.category-photos-single) .meta .category {
		display: block;
	}

	.post:not(.category-photos-single) .meta ul {
		display: block;
	}

	.post:not(.category-photos-single) .meta li {
		display: list-item;
		margin-left: 0;
	}

	.gallery.wide {
		margin-left: calc(-50vw + 532.5px);
	}

	.pagination {
		margin: 1.5em 0 0 0;
	}

	footer {
		margin-top: 60px;
	}

	footer .grid {
		max-width: 1065px;
		grid-template-columns: 700px 1fr;
		grid-gap: 30px;
	}

}
