/* - - - - - - - - - - Variables */

:root {
	--overwhite: rgba(255, 255, 255, .5);
	--overblack: rgb(79 56 56 / 49%);
	--accent: #f20088;
	--pink: #ffe0f1;
	--links: #cd006d;
	--hover: #c0c3c3;
	--white: #ffffff;
	--black: #333333;
	--light: #dfdfdf;
	--highlight: #ffe1f8;
	--yellow: #ffeea6;
	--pale: #ececec;
	--whisper: #f7f6f7;
	--medium: #717676;
	--border: 1px solid var(--light);
}

/* - - - - - - - - - - Fonts

Petrona, Petrona Italic (variable)
Fontawesome 

*/

/* - - - - - - - - - - Basics */

html {
	font-size: min(max(20px, calc(1.25rem + (22 - 20) * ((100vw - 320px) / (1280 - 320)))), 22px);
	min-height: 0;
	width: 100%;
	height: 100%;
	padding: env(safe-area-inset-top) env(safe-area-inset-right) env(safe-area-inset-bottom) env(safe-area-inset-left);
}

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

body {
	font-family: 'Petrona', serif;
	font-weight: 300;
	padding: 0;
	text-align: left;
	word-wrap: break-word;
	overflow-wrap: break-word;
	color: var(--black);
	line-height: 1.4;
	overflow-x: hidden;
	overflow-y: auto;
	width: 100%;
	min-height: 100vh;
	margin: 0 auto;
	display: -webkit-box;
	display: -ms-flexbox;
	display: flex;
	-webkit-box-orient: vertical;
	-webkit-box-direction: normal;
	-ms-flex-direction: column;
	flex-direction: column;
}

strong {
	font-weight: 650;
}

em {
	font-weight: 300;
	font-family: 'Petrona Italic';
}

a {
	color: var(--links);
	text-decoration: none;
}

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

p {
	margin-bottom: 1em;
}

textarea {
	width: 100%;
	font-size: 16px;
}

input {
	font-size: 16px;
}

button,
.button {
	font-family: sans-serif;
}

table {
	width: 100%;
}

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

code {
	padding: 2px 8px 4px 8px;
	background-color: var(--pale);
	border-radius: 3px;
	font-size: 0.9em;
}

pre {
	padding: 1.5em;
	border-radius: 6px;
}

pre>code {
	all: unset;
}

blockquote {
	border-left: 4px solid var(--accent);
	padding: 0 1rem;
	margin: 2rem 0;
	font-size: 1.5em;
	font-weight: 200;
	line-height: 1.1;
	text-align: justify;
}

hr {
	border: none;
	border-top: 1px solid var(--light);
}

ul {
	margin: 1rem 0 1rem 1rem;
	padding-left: 1rem;
}

ul li {
	margin: 0 0 0.2rem 0;
}

@media (max-width: 720px) {
	body {
		font-size: 18px;
	}

	main {
		padding: 2em;
	}
}

/* Screen reader */

.hidden,
.sr-only {
	border: 0;
	padding: 0;
	margin: 0;
	position: absolute !important;
	height: 1px;
	width: 1px;
	overflow: hidden;
	clip: rect(1px 1px 1px 1px);
	-webkit-clip-path: inset(50%);
	clip-path: inset(50%);
	white-space: nowrap;
}

/* - - - - - - - - - - Header */

header {
	position: relative;
}

header.with-hero {
	height: 100vh;
}

.scrolled header.with-hero {
	height: 50vh;
}

.template-page header.with-hero,
.template-post header.with-hero {
	height: 50vh;
}

header .hero-image {
	position: fixed;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	z-index: 0;
	overflow: hidden;
	pointer-events: none;
}

.template-page header .hero-image {
	position: absolute;
}

header .hero-image img {
	width: 100%;
	height: 100%;
	-o-object-fit: cover;
	object-fit: cover;
}

.template-page header .hero-image,
.template-post header .hero-image {
	height: 50vh;
}

/* - - - - - - - - - - Navigation */

/* Hidden by default */
.main-nav {
	position: fixed;
	top: 0;
	left: 0;
	width: 100%;
	height: 100vh;
	background: var(--accent);
	opacity: 0;
	visibility: hidden;
	z-index: 999;
	display: -webkit-box;
	display: -ms-flexbox;
	display: flex;
	-webkit-box-orient: vertical;
	-webkit-box-direction: normal;
	-ms-flex-direction: column;
	flex-direction: column;
	-webkit-box-pack: center;
	-ms-flex-pack: center;
	justify-content: center;
	-webkit-box-align: center;
	-ms-flex-align: center;
	align-items: center;
	text-align: center;
	-webkit-transition: opacity 0.3s ease, visibility 0.3s ease;
	-o-transition: opacity 0.3s ease, visibility 0.3s ease;
	transition: opacity 0.3s ease, visibility 0.3s ease;
}

/* When clicked */
.main-nav.active {
	opacity: 1;
	visibility: visible;
}

.logo {
	position: fixed;
	top: 0;
	left: 0;
	padding: 17px;
	z-index: 1001;
	/* Higher than the nav to stay on top */
}

.logo img {
	height: 80px;
	width: auto;
}

.logo-link {
	cursor: pointer;
	display: block;
}

/* Navigation links */
.internal-links {
	display: -webkit-box;
	display: -ms-flexbox;
	display: flex;
	-webkit-box-orient: vertical;
	-webkit-box-direction: normal;
	-ms-flex-direction: column;
	flex-direction: column;
	-webkit-box-pack: center;
	-ms-flex-pack: center;
	justify-content: center;
	gap: 1rem;
	margin: 2rem;
}

.main-nav a {
	color: var(--white);
	font-size: 1.4rem;
	letter-spacing: 1px;
	font-weight: 400;
	display: inline-block;
	text-transform: uppercase;
}

.main-nav a:hover,
.main-nav a.active {
	font-weight: 700;
	-webkit-transition: all 0.5s ease;
	-o-transition: all 0.5s ease;
	transition: all 0.5s ease;
	color: var(--yellow);
}

.template-tag .logo,
.scrolled .logo {
	padding: 20px 20px 10px 20px;
	background: var(--accent);
	-webkit-transition: all 0.7s ease;
	-o-transition: all 0.7s ease;
	transition: all 0.7s ease;
}

.template-tag .logo img,
.scrolled .logo img {
	height: 60px;
}

/* - - - - - - - - - - Social links */

.social-links {
	display: -webkit-box;
	display: -ms-flexbox;
	display: flex;
	-webkit-box-pack: center;
	-ms-flex-pack: center;
	justify-content: center;
	-ms-flex-line-pack: center;
	align-content: center;
	-webkit-box-align: center;
	-ms-flex-align: center;
	align-items: center;
	gap: 1em;
	padding: 0 20px;
}

.social-links a svg {
	width: 20px;
	height: auto;
}

.social-links a {
	color: var(--accent);
	padding: 0;
	margin: 0;
}

.social-links a:hover {
	color: var(--gray);
	padding: 0;
	border: 0;
}

/* - - - - - - - - - - Structure */

.wrapper {
	max-width: 80%;
	margin: 0 auto;
	height: 100%;
}

main {
	display: -webkit-box;
	display: -ms-flexbox;
	display: flex;
	-webkit-box-orient: vertical;
	-webkit-box-direction: normal;
	-ms-flex-flow: column;
	flex-flow: column;
	-webkit-box-flex: 1;
	-ms-flex: 1 0 auto;
	flex: 1 0 auto;
}

/* - - - - - - - - - - Tags */

.template-tag .tags {
	padding-top: 12vh;
}

.tags {
	display: -webkit-box;
	display: -ms-flexbox;
	display: flex;
	-ms-flex-wrap: wrap;
	flex-wrap: wrap;
	-webkit-box-pack: start;
	-ms-flex-pack: start;
	justify-content: flex-start;
	-webkit-box-align: center;
	-ms-flex-align: center;
	align-items: center;
	gap: .8em;
	padding: 2rem 0;
	margin: 0 auto;
}

.template-post .tags {
	background: var(--overwhite);
	padding: 3rem 0;
}

.tag {
	font-size: 1.3em;
	font-weight: 400;
	line-height: 1;
	padding: 0;
	color: var(--black);
	display: inline-block;
	/* Ensure proper box model */
	position: relative;
	/* Ensure positioning context */
	z-index: 5;
	/* Higher than parent */
}

.tag:hover,
.tag.active {
	font-size: 1.3em;
	font-weight: 700;
	color: var(--accent);
	line-height: .5;
	letter-spacing: -0.02rem;
}

/* - - - - - - - - - - Headers */

h1,
h2,
h3,
h4,
h5,
h6 {
	margin: 0 0 0.5rem 0;
	color: var(--black);
	line-height: 1em;
}

h1 {
	font-size: 4em;
	letter-spacing: -0.02em;
	font-weight: 400;
	line-height: 0.9em;
	margin: 2rem 0;
}

h2 {
	font-size: 1.7em;
	font-weight: 700;
	margin: 2rem 0 1rem 0;
}

.post-card h2 {
	font-size: 2em;
	font-weight: 400;
}


h3 {
	font-size: 1.5em;
	margin: 1.5rem 0 0.7rem 0;
}

h3+p {
	margin-top: 0;
}

h4 {
	font-size: 1.2em;
	font-weight: 500;
	line-height: 1.3;
}

h5 {
	font-size: 1em;
}

/* - - - - - - - - - - Posts, Post, Page */

.posts-container {
	padding: 1rem 0;
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	grid-gap: 2em;
}

.post-card {
	display: grid;
	overflow: hidden;
	background: var(--whisper);
	border-radius: 4px;
	border-bottom: 1px solid var(--light);
	text-align: center;
}

.post-card .post-content {
	padding: 1rem 3rem 3rem 3rem;
}

.post-image-container {
	position: relative;
	height: 100%;
}

.post-image {
	width: 100%;
	height: 100%;
	-o-object-fit: cover;
	object-fit: cover;
}

.post-card h2.post-title {
	font-size: 2.3em;
	line-height: .9em;
	margin-top: 0.5rem;
}

.post-excerpt {
	font-family: "Petrona Italic";
	font-size: 1.2em;
	font-weight: 300;
	line-height: 1.2;
	margin: 0 0 1rem 0;
}

.post-meta {
	display: block;
	font-size: 0.9rem;
	font-weight: 650;
	text-transform: uppercase;
	letter-spacing: 2px;
	color: var(--medium);
	padding: 0.5rem 0;
	border-top: var(--border);
	border-bottom: var(--border);
}

.post-meta .draft {
	color: var(--accent);
	margin-left: 10px;
	font-weight: 800;
}

.post-card .post-meta {
	border: 0;
}

.image-credit {
	font-size: 0.7rem;
	letter-spacing: 0.05em;
	text-transform: uppercase;
	font-weight: 500;
}

.page .image-credit {
	display: block;
	padding: 2em 0;
}

.post .image-credit {
	margin-left: 1em;
}

.post h2.post-title {
	font-size: 2.3em;
	line-height: .9em;
	margin-bottom: 0.5rem;
}

.post .post-excerpt {
	font-size: 1.5em;
}

.post .post-meta {
	display: inline-block;
	padding-right: 1em;
}

.story {
	padding: 0.5rem 2rem;
	background: var(--whisper);
}

.button,
button {
	display: inline-block;
	font-family: Petrona, serif;
	font-size: .8rem;
	font-weight: 500;
	text-transform: uppercase;
	-webkit-transition: color 0.2s ease;
	-o-transition: color 0.2s ease;
	transition: color 0.2s ease;
	color: var(--white);
	background: var(--accent);
	padding: 10px 20px;
	border: 0;
	border-radius: 4px;
}

.button:hover,
button:hover {
	color: var(--white);
	background: var(--hover);
}

button a,
button a:hover {
	color: var(--white);
}

.load-more {
	display: inline-block;
	margin: 2rem auto;
	font-family: Helvetica, sans-serif;
	font-size: 0.9rem;
	letter-spacing: 0.03em;
	text-transform: uppercase;
	color: var(--links);
	-webkit-transition: background 0.5s ease;
	-o-transition: background 0.5s ease;
	transition: background 0.5s ease;
	z-index: 3;
}

.load-more:hover {
	color: var(--hover);
	cursor: pointer;
}

@media (max-width: 768px) {
	body {
		display: block;
	}

	main {
		padding: 0;
	}

	.posts-container {
		padding: 0;
		grid-template-columns: 1fr;
	}

	.post-meta {
		padding: 1rem 0 0.5rem 0;
	}

	.post-card .post-content {
		padding: 0 1.5rem 1.5rem 1.5rem;
	}

	.post h1 {
		font-size: 2.5rem;
	}

	.tags {
		padding: 2rem 0;
	}

	footer {
		padding-bottom: 2rem;
	}
}

/* - - - - - - - - - - Media */

figure {
	margin: 1em 0;
	text-align: center;
}

.alignnone {
	margin: 1em 0;
}

.alignleft.small {
	float: left;
	margin: 0.5em 2em 0 0;
	max-width: 20%;
	-webkit-transform: rotate(-1.5deg);
	-ms-transform: rotate(-1.5deg);
	transform: rotate(-1.5deg);
}

.alignleft.large {
	float: left;
	margin: 0.5em 2em 1em 0;
	max-width: 40%;
	-webkit-transform: rotate(-1.5deg);
	-ms-transform: rotate(-1.5deg);
	transform: rotate(-1.5deg);
}

.alignright.small {
	float: right;
	margin: 0.5em 0 1em 2em;
	max-width: 20%;
	-webkit-transform: rotate(1.5deg);
	-ms-transform: rotate(1.5deg);
	transform: rotate(1.5deg);
}

.alignright.large {
	float: right;
	margin: 0.5em 0 1em 2em;
	max-width: 40%;
	-webkit-transform: rotate(1.5deg);
	-ms-transform: rotate(1.5deg);
	transform: rotate(1.5deg);
}

figcaption {
	font-size: 0.7em;
	font-style: italic;
	text-align: center;
	padding-top: 10px;
}

.audio-media {
	font-weight: 600;
	font-size: 0.7em;
	letter-spacing: 0.2em;
	text-transform: uppercase;
	display: -webkit-box;
	display: -ms-flexbox;
	display: flex;
	-webkit-box-pack: start;
	-ms-flex-pack: start;
	justify-content: flex-start;
	-webkit-box-align: center;
	-ms-flex-align: center;
	align-items: center;
}

audio {
	margin: 1em;
	max-width: 100%;
}

.substack-post-embed {
	float: left;
	width: 320px;
	margin: 0 1.5em 0 0 !important;
}

.audio-cover {
	width: 80px;
	height: 80px;
	-o-object-fit: cover;
	object-fit: cover;
}

audio::-webkit-media-controls-panel {
	background-color: var(--pink);
}

@media (max-width: 768px) {
	.substack-post-embed {
		float: none !important;
		margin: 0 !important;
		max-width: 100% !important;
	}
}

/* - - - - - - - - - - Footer */

footer {
	margin: 2rem auto 3rem auto;
	text-align: center;
	-ms-flex-negative: 0;
	flex-shrink: 0;
}

.legal {
	font-family: 'Petrona';
	font-size: 0.7em;
	font-weight: 500;
	font-variant: small-caps;
	letter-spacing: 0.05em;
}

/* - - - - - - - - - - Print */

@media print and (orientation: portrait) {
	html {
		font-size: 18px;
	}

	header,
	.logo,
	nav,
	.hero-image,
	.image-credit,
	.tags.cloud,
	img,
	.audio-media {
		display: none;
		height: 0px;
	}

	footer {
		text-align: left;
	}
}