:root {
	--color-black: #1b1b1b;
	--color-grey: #757575;
	--color-light-grey: #dfdfdf;
	--color-white: #fff;
	--color-accent: var(--ghost-accent-color);
	--color-light-bg: #f9f9f9;
	--color-success: #45b345;

	/* Customise these */
	--page-bg: #fff;
	--color-headings: #1b1b1b;
	--color-default: #323232;
	--color-box-background: #f3f3f3;

	--font-default: 'Inter', 'Helvetica', sans-serif;
	--border-radius: 5px;
}

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%;
	vertical-align: baseline;
}
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;
}

* {
	box-sizing: border-box;
}

body {
	font: 16px/1.5 var(--gh-font-body, var(--font-default));
	margin: 0;
	padding: 0;
	color: var(--color-default);
	background-color: var(--page-bg);
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
}

h1 {
	font-size: 2rem;
}
h2 {
	font-size: 1.75rem;
}
h3 {
	font-size: 1.5rem;
}
h4 {
	font-size: 1.25rem;
}
h1,
h2,
h3,
h4,
h5,
h6 {
	font-family: var(--gh-font-heading, var(--font-default)) !important;
	color: var(--color-headings);
	letter-spacing: -0.025em;
}

hr {
	margin: 3rem 0;
	border: 0;
	border-top: 1px solid var(--color-light-grey);
}

a {
	color: var(--color-default);
	text-decoration: none;
}
a.nolink {
	border: none !important;
	color: currentColor !important;
}
h1,
h2,
h3,
h4,
h5,
h6,
p,
pre,
ol,
li {
	margin-bottom: 1rem;
}

img {
	width: 100%;
	border-radius: var(--border-radius);
}

/* Styling utility classes */

.relative {
	position: relative;
}
.db {
	display: block;
}
.dib {
	display: inline-block;
}

/* based off 16px */
.fs14 {
	font-size: 0.875rem;
}
.fs16 {
	font-size: 1rem;
}
.fs18 {
	font-size: 1.125rem;
}
.fs20 {
	font-size: 1.25rem;
}
.fs24 {
	font-size: 1.5rem;
}
.fs32 {
	font-size: 2rem;
}
.fs40 {
	font-size: 2.5rem;
}
.fs48 {
	font-size: 3rem;
}
.fs60 {
	font-size: 3.75rem;
}

@media (max-width: 700px) {
	/* Smaller text sizes for smaller screens */
	.fs14 {
		font-size: 0.875rem;
	}
	.fs16 {
		font-size: 1rem;
	}
	.fs18 {
		font-size: 1rem;
	}
	.fs20 {
		font-size: 1.125rem;
	}
	.fs24 {
		font-size: 1.25rem;
	}
	.fs32 {
		font-size: 1.5rem;
	}
	.fs40 {
		font-size: 2rem;
	}
	.fs48 {
		font-size: 2.5rem;
	}
	.fs60 {
		font-size: 3rem;
	}
}

.normal {
	font-weight: normal;
}
.b {
	font-weight: bold;
}

.pt2 {
	padding-top: 2rem;
}
.pt3 {
	padding-top: 3rem;
}
.pt5 {
	padding-top: 5rem;
}
.pb2 {
	padding-bottom: 2rem;
}
.pb3 {
	padding-bottom: 3rem;
}
.pb5 {
	padding-bottom: 5rem;
}
.mt0 {
	margin-top: 0;
}
.mt1 {
	margin-top: 1rem;
}
.mt2 {
	margin-top: 2rem;
}
.mt3 {
	margin-top: 3rem;
}
.mt4 {
	margin-top: 4rem;
}
.mt6 {
	margin-top: 6rem;
}
.mb0 {
	margin-bottom: 0;
}
.mb1 {
	margin-bottom: 1rem;
}
.mb1-5 {
	margin-bottom: 1.5rem;
}
.mb2 {
	margin-bottom: 2rem;
}
.mb3 {
	margin-bottom: 3rem;
}
.mb4 {
	margin-bottom: 4rem;
}
.mb6 {
	margin-bottom: 6rem;
}

.center {
	margin-left: auto;
	margin-right: auto;
}

.tc {
	text-align: center;
}
.tr {
	text-align: right;
}

.ttu {
	text-transform: uppercase;
}
.lhtitle {
	line-height: 1.2;
}

.color-black {
	color: var(--color-black);
}
.color-grey {
	color: var(--color-grey);
}

.avatar {
	display: inline-block;
	width: 2rem;
	height: 2rem;
	border-radius: 1rem;
	vertical-align: middle;
	background-position: center;
	background-size: cover;
}

.avatar--large {
	width: 4rem;
	height: 4rem;
	border-radius: 2rem;
}

/* Layout */

.container {
	margin-left: auto;
	margin-right: auto;
	padding-left: 1rem;
	padding-right: 1rem;
}
.single-col .container {
	max-width: calc(65ch + 2rem);
}
.side-col .container {
	max-width: calc(75ch + 2rem);
}

/* Header / Nav */

.logo {
	width: 36px;
	height: auto;
}
@media (min-width: 701px) {
	.cols {
		display: flex;
		justify-content: space-between;
		align-items: center;
	}
	.cols .col:nth-of-type(2) {
		flex: 1 0 40%;
		padding-left: 2rem;
		text-align: right;
	}
}

@media (max-width: 700px) {
	header {
		text-align: center;
	}
}

.banner {
	padding: 0.5rem 1rem;
	background-color: var(--banner-background);
	color: var(--banner-text);
}
.banner a {
	color: var(--banner-text);
	text-decoration: underline;
}

header .nav li {
	margin-bottom: 0.125rem;
	display: inline-block;
	margin: 0 0.5rem;
}
header .nav {
	margin-right: -0.5rem;
}

@media (max-width: 700px) {
	header .nav {
		margin-top: 2rem;
		margin-right: 0;
	}
}

/* Dropdown */

.tag-color {
	display: inline-block;
	width: 16px;
	height: 16px;
	border-radius: 10px;
	margin-right: 0.25rem;
	background-color: #f8f8f8;
}

.dropdown .tag-color {
	vertical-align: text-top;
	margin-right: 0.5rem;
}

.dropdown {
	width: 100%;
	max-width: 240px;
	display: inline-block;
	transition: all 0.3s ease;
	position: relative;
	font-size: 14px;
	height: 100%;
	text-align: left;
	border-radius: var(--border-radius);
}
.dropdown:focus {
	outline: none;
}
.dropdown .select {
	cursor: pointer;
	display: block;
	padding: 0.5rem;
	background-color: var(--page-bg);
	border-radius: var(--border-radius);
	box-shadow: 0 0 2px rgba(0, 0, 0, 0.1);
	border: 1px solid var(--color-light-grey);
}
.dropdown .select > svg {
	cursor: pointer;
	transition: all 0.3s ease-in-out;
	float: right;
	margin-top: 3px;
}
.dropdown:hover {
	box-shadow: 0 1px 4px rgba(0, 0, 0, 0.1);
}
.dropdown.active .select {
	border-radius: var(--border-radius) var(--border-radius) 0 0;
}
.dropdown.active .select > svg {
	transform: rotate(-180deg);
}
.dropdown .dropdown-menu {
	position: absolute;
	background-color: var(--page-bg);
	width: 100%;
	left: 0;
	margin-top: -1px;
	box-shadow: 0 1px 4px rgba(0, 0, 0, 0.1);
	border: 1px solid var(--color-light-grey);
	border-radius: 0 0 var(--border-radius) var(--border-radius);
	overflow: hidden;
	display: none;
	max-height: 144px;
	overflow-y: auto;
	z-index: 9;
}
.dropdown .dropdown-menu.show {
	display: block;
}
.dropdown .dropdown-menu li {
	padding: 0.5rem;
	transition: all 0.2s ease-in-out;
	cursor: pointer;
	margin-bottom: 0;
}
.dropdown .dropdown-menu {
	padding: 0;
	list-style: none;
}
.dropdown .dropdown-menu li:hover,
.dropdown .dropdown-menu li:active {
	background-color: var(--color-light-bg);
}

/* Post lists */

.show-excerpts .post-card + .post-card {
	margin-top: 5rem;
}
.show-fullposts .post-card + .post-card {
	margin-top: 8rem;
}

@media (min-width: 701px) {
	.side-col .post-card {
		padding-left: 180px;
		position: relative;
	}
	.side-col .post-date {
		position: absolute;
		left: 0;
		top: 0;
		width: 160px;
	}
	.side-col .post-date time {
		display: block;
	}
	.side-col .post-main {
		width: 100%;
	}
}

.tag {
	color: var(--color-white);
	border-radius: var(--border-radius);
	border: none;
	padding: 2px 6px;
	text-transform: uppercase;
	font-size: 14px;
}
.tag,
.post-date {
	display: inline-block;
}
.tag:hover {
	filter: none;
}
.post-date {
	padding: 2px 0;
}

.read-more {
	color: var(--color-accent);
}

.hidden-arrow {
	opacity: 0;
}
a:hover .hidden-arrow {
	opacity: 1;
	transition: opacity 0.3s;
}

nav.pagination a {
	margin-left: 0.5rem;
	margin-right: 0.5rem;
}

/* Posts and Pages */

.post-ani {
	transition: transform 0.5s ease-in-out, opacity 0.5s ease-in-out;
}

.loading .post-ani {
	transform: translateY(1rem);
	opacity: 0;
}

.post-content h1,
.post-content h2,
.post-content h3,
.post-content h4 {
	margin-top: 1.5em;
	margin-bottom: 1rem;
	color: var(--color-black);
}

.post-content p,
.post-content ul,
.post-content ol,
.post-content blockquote,
.post-content table {
	margin-bottom: 1em;
}

.post-content ol,
.post-content ul {
	list-style: revert;
	margin: 1.5rem;
}

.post-content ul {
	list-style: none;
}
.post-content ul li::before {
	content: '–';
	color: var(--color-accent);
	display: inline-block;
	width: 1em;
	margin-left: -1em;
}
.post-content ol li::marker {
	color: var(--color-accent);
}

.post-content li {
	margin-bottom: 0.5rem;
}

.post-content a {
	color: var(--color-accent);
	text-decoration: underline;
}

.post-content blockquote {
	margin-top: 1.5rem;
	margin-bottom: 1.5rem;
	padding: 0.25rem 1.5rem;
	border-top-right-radius: var(--border-radius);
	border-bottom-right-radius: var(--border-radius);
	border-left: 4px solid var(--color-accent);
	font-size: 1.125em;
}

.post-content blockquote.kg-blockquote-alt {
	border: none;
	line-height: 1.5;
	font-size: 2rem;
	color: var(--color-accent);
	padding: 1rem 8%;
}

.post-content img,
.post-content pre {
	max-width: 100%;
}
.post-content pre {
	overflow: auto;
	padding: 0.5rem 1rem;
	margin: 2rem 0;
}
.post-content pre,
.post-content code {
	background-color: var(--color-light-bg);
	border: 1px solid var(--color-light-grey);
	border-radius: 5px;
	font-size: 0.875rem;
}
.post-content code {
	padding: 0.125rem 0.25rem;
}
.post-content pre > code {
	padding: 0;
	background-color: transparent;
	border: none;
}

.post-content table {
	margin: 2rem 0;
	border-spacing: 0;
	border-collapse: collapse;
	width: 100%;
	font-size: 0.88em;
}
.post-content table th,
.post-content table td {
	padding: 0.5rem;
	border: 1px solid var(--color-light-grey);
}
.post-content table tr:nth-of-type(2n) {
	background-color: var(--color-light-bg);
}

.medium-zoom-image--opened {
	z-index: 100000;
	border-radius: 0;
	box-shadow: none;
}
.medium-zoom-overlay {
	z-index: 100000;
	background-color: var(--page-bg) !important;
}

.icon-lock,
.icon-unlock {
	vertical-align: middle;
}
.icon-unlock svg path {
	fill: var(--color-success);
}

/* Content CTA */

.content-cta {
	border-top: 1px solid var(--color-accent);
	padding: 2rem 1rem 1rem;
}
.gradient-pre::before {
	position: relative;
	display: block;
	background: linear-gradient(180deg, hsla(0, 0%, 100%, 0), var(--page-bg));
	content: '';
	height: 16rem;
	margin-top: -16rem;
	margin-bottom: 0;
}

/* Post content cards */

.kg-card {
	margin: 2rem 0;
}

.kg-card img {
	height: auto;
}

.kg-width-wide,
.kg-width-full {
	position: relative;
	width: 60vw;
	min-width: 100%;
	margin-left: calc(50% - 50vw);
	margin-right: calc(50% - 50vw);
	transform: translateX(calc(50vw - 50%));
}

.toc-content .kg-width-wide,
.toc-content .kg-width-full {
	width: auto;
	margin-left: 0;
	margin-right: 0;
	transform: initial;
}

.kg-width-full {
	width: 74vw;
}
.post-template .kg-width-full,
.page-template .kg-width-full,
.single-col .kg-width-full {
	width: 100vw;
}
.post-template .kg-width-full img,
.page-template .kg-width-full img,
.single-col .kg-width-full img {
	border-radius: 0;
}

.kg-bookmark-card {
	width: 100%;
	margin: 3rem 0;
	position: relative;
}

a.kg-bookmark-container {
	display: flex;
	flex-wrap: wrap;
	flex-direction: row-reverse;
	color: currentColor;
	text-decoration: none;
	color: var(--color-default);
	border-bottom: 0;
	filter: none;
	font-size: 0.875em;
	background-color: var(--color-light-bg);
	border-radius: var(--border-radius);
}

a.kg-bookmark-container:hover {
	text-decoration: none;
}

.kg-bookmark-content {
	width: 100%;
	padding: 1rem;
	order: 1;
	color: var(--dark-grey);
}

.kg-bookmark-title {
	font-weight: 600;
}

.kg-bookmark-metadata,
.kg-bookmark-description {
	margin-top: 0.5em;
}

.kg-bookmark-metadata {
	align-items: center;
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
}

.kg-bookmark-description {
	display: -webkit-box;
	-webkit-box-orient: vertical;
	-webkit-line-clamp: 2;
	overflow: hidden;
}

img.kg-bookmark-icon {
	display: inline-block;
	width: 1em;
	height: 1em;
	vertical-align: text-bottom;
	margin-right: 0.5em;
	margin-bottom: 0.05em;
	box-shadow: none;
	border: none;
}

.kg-bookmark-thumbnail {
	display: flex;
	width: 100%;
	padding: 0.5rem;
	border-radius: var(--border-radius);
}

.kg-bookmark-thumbnail img {
	max-width: 100%;
	height: auto;
	max-height: 370px; /* Fix weird heights mobile */
	vertical-align: bottom;
	object-fit: contain;
	box-shadow: none;
	border-radius: var(--border-radius);
	border: 0;
}

@media (min-width: 601px) {
	.kg-bookmark-thumbnail {
		width: 40%;
	}
	.kg-bookmark-content {
		width: 60%;
	}
}

.kg-bookmark-author {
	white-space: nowrap;
	text-overflow: ellipsis;
	overflow: hidden;
}

.kg-bookmark-publisher::before {
	content: '•';
	margin: 0 0.5em;
}

.kg-card figcaption {
	margin: 1em 0 1.5em;
	font-size: 0.88em;
	text-align: center;
	color: var(--color-grey);
}

.kg-embed-card iframe {
	border-radius: var(--border-radius);
}

.kg-gallery-container {
	display: flex;
	flex-direction: column;
	margin: 1.5em auto;
	width: 100%;
}

.kg-gallery-row {
	display: flex;
	flex-direction: row;
	justify-content: center;
}
.kg-gallery-image img {
	display: block;
	margin: 0;
	width: 100%;
	height: 100%;
}

.kg-gallery-row:not(:first-of-type) {
	margin: 0.75em 0 0 0;
}

.kg-gallery-image:not(:first-of-type) {
	margin: 0 0 0 0.75em;
}

.post-content .kg-toggle-card {
	padding: 0;
}
.kg-toggle-heading {
	padding: 1rem;
}
.kg-toggle-card[data-kg-toggle-state='open'] .kg-toggle-content {
	padding: 1rem;
	margin-top: -1rem;
}
.post-content .kg-toggle-content p:first-of-type {
	margin-top: 0;
}

.post-content .kg-button-card a.kg-btn {
	font-size: 1.125rem;
	font-family: inherit;
	padding: 1rem;
	border-radius: var(--border-radius);
}

.twitter-tweet {
	margin: auto;
}

.kg-audio-volume-slider,
.kg-video-volume-slider {
	margin-bottom: 0;
}

.post-content .kg-audio-pause-icon svg,
.post-content .kg-audio-play-icon svg,
.post-content .kg-audio-mute-icon svg,
.post-content .kg-audio-unmute-icon svg {
	fill: var(--color-default);
}
.post-content .kg-audio-playback-rate {
	color: var(--color-default);
}

.kg-video-card video,
.kg-video-player-container,
.kg-video-overlay,
.post-content .kg-audio-card,
.kg-embed-card,
.kg-bookmark-card,
.post-content .kg-header-card a.kg-header-card-button,
.post-content .kg-nft-card a.kg-nft-card-container,
.post-content .kg-toggle-card,
.post-content .kg-product-card-container {
	border-radius: var(--border-radius);
}

.post-content .kg-nft-image {
	border-radius: var(--border-radius) var(--border-radius) 0 0;
}

/* Forms */

.button {
	border-bottom: none;
	text-decoration: none !important;
}
input,
select,
form button,
textarea,
.button {
	display: inline-block;
	margin-bottom: 0.5rem;
	appearance: none;
	-webkit-appearance: none;
	-moz-appearance: none;
	border-radius: var(--border-radius);
	line-height: 2em;
	padding: 0.25rem 1rem;
	box-shadow: 0px 2px 10px rgba(0, 0, 0, 0.06);
	border: 1px solid var(--color-light-grey);
	background-color: var(--color-white);
	color: var(--color-default);
}
input,
select,
button,
textarea {
	font-size: inherit;
	font-family: inherit;
}
input:focus,
select:focus,
form button:focus,
textarea:focus {
	outline: none;
	border-color: var(--color-brand);
}
form button,
.button,
a.button {
	cursor: pointer;
	white-space: nowrap;
	font-weight: bold;
	border-color: var(--ghost-accent-color) !important;
	background-color: var(--ghost-accent-color);
	color: #fff;
}
button:not([disabled]):hover,
.button:not([disabled]):hover {
	border-color: var(--color-grey);
	transition: background-color 0.3s, border-color 0.3s;
}

form label,
form input,
form select,
form textarea {
	display: block;
	max-width: 400px;
	width: 100%;
}

form label {
	font-weight: bold;
	margin: 1rem 0 0.5rem;
}
form textarea {
	min-height: 100px;
}

/* Comments */

.cove-button {
	background-color: var(--color-accent) !important;
	border-color: var(--color-accent) !important;
}

/* Authors */

.author-links a {
	padding: 0.25rem;
}

/* Footer */

footer .logo {
	max-width: 120px;
	max-height: 32px;
}

.footer-subscribe {
	padding: 3rem 2rem;
	border-radius: var(--border-radius);
	background-color: var(--color-box-background);
}

.footer-links .nav li {
	display: inline-block;
	margin: 0.25rem 0.5rem;
}

.form-flex {
	display: flex;
}
.form-flex input {
	border-radius: var(--border-radius) 0 0 var(--border-radius);
}
.form-flex button {
	width: auto;
	position: relative;
	border-radius: 0 var(--border-radius) var(--border-radius) 0;
}

.form-stacked {
	flex-direction: column;
}

form .button-loader,
.button .button-loader {
	display: none;
	position: absolute;
	left: calc(50% - 16px);
	top: 6px;
}

form.loading .button-loader,
.button.loading .button-loader {
	display: inline-block;
}
form.loading .button-content,
.button.loading .button-content {
	visibility: hidden;
}

.button {
	border-bottom: none;
}

form .success-message {
	display: none;
	background-color: var(--color-success);
	color: #fff;
	padding: 1rem;
	border-radius: var(--border-radius);
}
form.success .success-message {
	display: block;
}
form.success .form-body {
	display: none;
}
