:root {
	--fg: #DDE7EE;
	--link: #7FD3E3;
	--accent: #5CC2D6;
	--mute: #9BB0BF;
	--alt: #162633;
	--bg: #0F1B24;
	--head: #FFFFFF;
	--on-accent: #0F1B24;
	--line: #2A3D4C;
}

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

body {
	color: var(--fg);
	margin: 0;
	overflow-wrap: break-word;
	line-height: 1.55;
	background: var(--bg);
	font-size: 1.125em;
	font-family: "Source Serif 4", Georgia, serif;
}

h1, h2, h3, h4 {
	color: var(--head);
	line-height: 1.25;
	font-family: "Libre Franklin", Arial, sans-serif;
}

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

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

pre, table {
	overflow-x: auto;
	max-width: 100%;
}

table {
	border-collapse: collapse;
	display: block;
}

blockquote {
	color: var(--mute);
	margin: 1.25em 0;
	padding: 0.25em 1.25em;
	border-left: 3px solid var(--accent);
}

.srOnly {
	white-space: nowrap;
	position: absolute;
	height: 1px;
	clip: rect(0 0 0 0);
	width: 1px;
	overflow: hidden;
}

.postNav {
	justify-content: space-between;
	flex-wrap: wrap;
	margin-top: 2em;
	display: flex;
	gap: 1em;
}

.history div {
	padding: 0.35em 0;
}

.group {
	margin-top: 1.75em;
	font-size: 1.2em;
}

.topbar {
	padding-bottom: 1em;
	padding-top: 1.8em;
}

.topbar .stage {
	display: flex;
	align-items: center;
	gap: 1em;
}

.topbar .stage::before, .topbar .stage::after {
	flex: 1 1 0;
	border-top: 2px solid var(--head);
	content: "";
}

.siteName {
	color: var(--head);
	text-decoration: none;
	font-weight: 700;
	font-size: 1.9em;
	font-family: "Libre Franklin", Arial, sans-serif;
}

.siteName {
	text-align: center;
}

.topbar .ribbon {
	justify-content: center;
	flex-wrap: wrap;
	margin-top: 0.9em;
	display: flex;
	align-items: center;
	gap: 1em;
}

.navItems {
	justify-content: center;
	flex-wrap: wrap;
	margin: 0;
	padding: 0;
	display: flex;
	list-style: none;
	gap: 0.25em 1.1em;
}

.navItems a {
	color: var(--fg);
	text-decoration: none;
	font-size: 0.95em;
}

.navItems a:hover {
	color: var(--link);
	text-decoration: underline;
}

.showcase {
	overflow-wrap: break-word;
	margin-bottom: 2em;
	box-sizing: border-box;
}

.showcase .introHeading {
	margin: 0 0 0.5em;
	line-height: 1.15;
	font-size: 2em;
}

.showcase .blurb {
	margin: 0 0 1em;
	font-size: 1.08em;
	max-width: 60ch;
}

.showcase img {
	max-width: 100%;
}

.showcase-sf {
	border-bottom: 1px solid var(--line);
	background: var(--alt);
}

.showcase-sf > .pageWidth {
	grid-template-columns: minmax(0,1fr);
	padding-bottom: 2em;
	padding-top: 2em;
	display: grid;
	align-items: center;
	gap: 1.5em;
}

.showcase-sf .heroImage {
	min-height: 10em;
	background: linear-gradient(200deg, var(--accent), var(--alt));
	border-radius: 2.25em;
	overflow: hidden;
}

.showcase-sf .heroImage img {
	height: 100%;
	display: block;
	object-fit: cover;
	width: 100%;
}

.sectionTitle h1 {
	color: var(--head);
	margin: 0 0 1.25em;
	font-size: 1.5em;
}

.pageWidth {
	padding-right: 1em;
	margin: 0 auto;
	box-sizing: border-box;
	padding-left: 1em;
	max-width: 70em;
}

.row {
	padding-bottom: 2.5em;
	padding-top: 1.5em;
}

.main {
	min-width: 0;
}

.entryTitle {
	margin: 0 0 0.4em;
	line-height: 1.25;
	font-size: 1.55em;
	font-family: "Libre Franklin", Arial, sans-serif;
}

.entryTitle a {
	color: var(--head);
	text-decoration: none;
}

.entryTitle a:hover {
	color: var(--link);
	text-decoration: underline;
}

.postMeta {
	color: var(--mute);
	margin: 0 0 0.9em;
	font-size: 0.85em;
}

.postMeta a {
	color: var(--mute);
}

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

.entryText h2:not(.entryTitle), .standfirst h2 {
	margin: 1.25em 0 0.5em;
	font-size: 1.15em;
}

.entryText h3, .standfirst h3 {
	font-size: 1.02em;
}

.preview {
	margin: 0 0 1em;
}

.preview img {
	height: auto;
	display: block;
	width: 100%;
	border-radius: 0.75em;
}

.topStory .entryTitle {
	line-height: 1.15;
	font-size: 2.1em;
}

.topStory {
	border-bottom: 3px solid var(--head);
	margin-bottom: 2em;
	padding-bottom: 1.5em;
}

.smallPost {
	grid-template-columns: minmax(0,1fr);
	margin-bottom: 2em;
	display: grid;
	gap: 2em;
}

.archiveList-sm {
	margin: 0;
	padding: 0;
	list-style: none;
}

.archiveList-sm .post {
	border-bottom: 1px solid var(--line);
	grid-template-columns: minmax(0,1fr);
	margin-bottom: 2em;
	padding-bottom: 2em;
	display: grid;
	gap: 0.5em;
}

.archiveList-sm .postMeta {
	letter-spacing: 0.05em;
	text-transform: uppercase;
	font-size: 0.75em;
}

.module {
	margin-bottom: 1.75em;
	font-size: 0.92em;
}

.widgetTitle {
	color: var(--head);
	margin: 0 0 0.6em;
	border-bottom: 2px solid var(--accent);
	padding-bottom: 0.35em;
	text-transform: none;
	font-size: 1em;
	font-family: "Libre Franklin", Arial, sans-serif;
}

.widgetList {
	margin: 0;
	padding: 0;
	list-style: none;
}

.widgetList li, .widgetList > div {
	border-bottom: 1px solid var(--line);
	padding: 0.3em 0;
}

.module a {
	color: var(--link);
	text-decoration: none;
}

.module a:hover {
	text-decoration: underline;
}

.articleTitle {
	color: var(--head);
	margin: 0 0 0.5em;
	line-height: 1.2;
	font-size: 2.1em;
	font-family: "Libre Franklin", Arial, sans-serif;
}

.entryInfo {
	color: var(--mute);
	margin: 0 0 1.5em;
	font-size: 0.88em;
}

.entryInfo a {
	color: var(--mute);
}

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

.afterPost {
	margin-top: 2.5em;
	border-top: 1px solid var(--line);
	padding-top: 1.5em;
}

.contents {
	margin-bottom: 1.5em;
	padding: 1em 1.25em;
	background: var(--alt);
	border-radius: 0.75em;
}

.contents p {
	margin: 0 0 0.4em;
}

.introBox {
	border: 1px solid var(--line);
	margin-bottom: 1.5em;
	padding: 1.25em;
	border-radius: 0.75em;
}

.introBox p {
	margin: 0 0 0.4em;
}

.relatedPosts h2 {
	font-size: 1.15em;
}

.postNav {
	justify-content: space-between;
	flex-wrap: wrap;
	margin-top: 1.5em;
	display: flex;
	gap: 1em;
}

.trail {
	color: var(--mute);
	margin: 0 0 1em;
	font-size: 0.82em;
}

.trail a {
	color: var(--mute);
}

.bottom-ln {
	color: var(--mute);
	margin-top: 2em;
	padding: 1.5em 0;
	border-top: 1px solid var(--line);
	text-align: center;
	font-size: 0.85em;
}

.bottom-ln a {
	color: var(--mute);
}

.feedTitle, h2.feedTitle {
	margin: 0 0 1.5em;
}

.feedTitle h2, h2.feedTitle {
	margin-bottom: 0.35em;
	font-size: 1.9em;
}

.feedTitle p {
	color: var(--mute);
	margin: 0;
}

.reachUs {
	margin: 1em 0;
	box-sizing: border-box;
	max-width: 100%;
}

.reachUs .callback {
	grid-template-columns: minmax(0,1fr);
	display: grid;
	gap: 0.6em;
}

.reachUs .entryField {
	min-width: 0;
	display: grid;
	gap: 0.2em;
}

.reachUs label {
	font-weight: 600;
	font-size: 0.85em;
}

.reachUs input[type=text], .reachUs input[type=tel], .reachUs textarea {
	color: var(--fg);
	border: 1px solid var(--line);
	padding: 0.5em 0.6em;
	box-sizing: border-box;
	width: 100%;
	background: var(--bg);
	border-radius: 0.75em;
	font: inherit;
}

.reachUs button {
	color: var(--on-accent);
	border: 0;
	padding: 0.65em 1.1em;
	cursor: pointer;
	background: var(--accent);
	font-weight: 700;
	border-radius: 0.75em;
	font: inherit;
}

.reachUs .number {
	margin: 0.6em 0 0;
	font-size: 0.9em;
}

.reachUs .heroLede {
	margin: 0 0 0.6em;
}

.reachUs-boxed {
	color: var(--fg);
	border: 1px solid var(--line);
	padding: 1.25em;
	box-shadow: 0 10px 30px rgba(0,0,0,.14);
	background: var(--bg);
	border-radius: 1.5em;
}

.reachUs-inline {
	color: var(--fg);
	padding: 0.9em;
	background: var(--alt);
	border-radius: 1.5em;
}

.reachUs-tabbed {
	color: var(--fg);
	padding: 1em;
	border-top: 4px solid var(--accent);
	box-shadow: 0 6px 20px rgba(0,0,0,.1);
	background: var(--bg);
}

.reachUs .choiceRow {
	flex-wrap: wrap;
	border-bottom: 1px solid var(--line);
	display: flex;
	gap: 0;
}

.reachUs .choiceRow input {
	position: absolute;
	height: 1px;
	width: 1px;
	opacity: 0;
}

.reachUs .choiceRow label {
	color: var(--mute);
	border-bottom: 3px solid transparent;
	padding: 0.45em 0.9em;
	cursor: pointer;
}

.reachUs .choiceRow input:checked + label {
	color: var(--head);
	border-bottom-color: var(--accent);
}

.reachUs-call {
	color: var(--fg);
	padding: 1em;
	background: var(--alt);
	text-align: center;
	border-radius: 1.5em;
}

.reachUs .callButton {
	color: var(--on-accent);
	padding: 0.9em 1.6em;
	display: inline-block;
	text-decoration: none;
	background: var(--accent);
	font-weight: 700;
	font-size: 1.25em;
	border-radius: 999px;
}

.reachUs-two {
	color: var(--fg);
	border: 2px dashed var(--line);
	padding: 1.1em;
	background: var(--bg);
	border-radius: 1.5em;
}

.reachUs fieldset {
	border: 0;
	margin: 0;
	min-width: 0;
	padding: 0;
	display: grid;
	gap: 0.5em;
}

.reachUs legend {
	color: var(--mute);
	letter-spacing: 0.08em;
	font-size: 0.75em;
}

.reachUs details > summary {
	color: var(--bg);
	margin: 0.3em 0;
	padding: 0.5em 1em;
	cursor: pointer;
	display: inline-block;
	background: var(--head);
	border-radius: 0.75em;
	list-style: none;
}

.reachUs-compact {
	color: var(--fg);
	border: 1px solid var(--line);
	padding: 1em;
	background: var(--alt);
	border-radius: 1.5em;
}

.reachUs-frame {
	color: var(--fg);
	border: 2px solid var(--fg);
	padding: 1em;
	background: var(--bg);
	border-radius: 0;
}

.reachUs-frame input[type=text], .reachUs-frame input[type=tel], .reachUs-frame textarea, .reachUs-frame button {
	border-radius: 0;
}

.firstReads {
	border: 1px solid var(--line);
	margin: 0 0 2em;
	overflow-wrap: anywhere;
	padding: 1em 1.15em;
	border-left: 3px solid var(--accent);
	background: var(--alt);
	border-radius: 1.5em;
}

.firstReads p {
	margin: 0 0 0.5em;
}

.firstReads ul, .firstReads ol {
	margin: 0;
	padding-left: 1.25em;
}

.firstReads li {
	margin: 0 0 0.35em;
}

.firstReads li span {
	color: var(--mute);
	display: block;
	font-size: 0.82em;
}

.articleHead .entryInfo {
	margin: 0 0 1.25em;
}

.postFull-mg .articleHead {
	border-bottom: 3px double var(--line);
	margin-bottom: 1.5em;
	padding-bottom: 0.5em;
}

.postFull-mg .eyebrow {
	margin: 0 0 0.5em;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	font-size: 0.78em;
}

.postFull-mg .eyebrow a {
	color: var(--accent);
	text-decoration: none;
	font-weight: 700;
}

.postFull-mg > .preview img {
	aspect-ratio: 3 / 2;
	display: block;
	object-fit: cover;
	width: 100%;
}

.postFull-mg .prose > p:first-of-type {
	font-size: 1.12em;
}

.postFull-mg .prose > p:first-of-type::first-letter {
	float: left;
	color: var(--head);
	padding: 0.25em 0.5em 0 0;
	line-height: 0.85;
	font-weight: 700;
	font-size: 3.6em;
	font-family: "Libre Franklin", Arial, sans-serif;
}

.siteName {
	border: 2px solid currentColor;
	padding: 0.1em 0.5em;
}

.action, .callButton, .reachUs button, .query button {
	text-underline-offset: 3px;
	text-decoration: underline;
}

.entryText a, .prose a {
	text-decoration-thickness: 2px;
	text-underline-offset: 3px;
}

.preview img, .prose img, .entryText img {
	border-radius: 0.5em;
}

.entryText, .prose {
	text-align: justify;
	hyphens: auto;
}

body {
	line-height: 1.5;
}

.trail {
	letter-spacing: 0.08em;
	text-transform: uppercase;
	font-size: 0.72em;
}

.contents li {
	list-style: decimal inside;
}

.entryText blockquote, .prose blockquote {
	border: 1px solid var(--line);
	padding: 1em;
	background: var(--alt);
	border-radius: 1.5em;
}

.popularTopics a {
	border-radius: 0;
}

.nowReading-outlineTop {
	text-overflow: ellipsis;
	white-space: nowrap;
	padding: 0.35em 0;
	text-align: center;
	font-size: 0.82em;
	overflow: hidden;
}

.nowReading-outlineTop {
	border-bottom: 1px solid var(--line);
	background: var(--bg);
}

.postNav-top {
	margin: 0.5em 0;
	text-align: right;
}

.postFull-pg-centered {
	margin: 0 auto;
	text-align: center;
	max-width: 60ch;
}

table.history td {
	border-bottom: 1px solid var(--line);
	padding: 0.4em 0.75em;
}

.postNav-more a {
	padding: 0.8em;
	display: block;
	width: 100%;
	background: var(--alt);
	text-align: center;
	font-weight: 700;
	border-radius: 1.5em;
}

@media (min-width: 700px) {
	.showcase .introHeading {
		font-size: 2.6em;
	}
	.showcase-sf > .pageWidth {
		grid-template-columns: minmax(0,6fr) minmax(0,5fr);
	}
	.smallPost {
		grid-template-columns: repeat(2, minmax(0,1fr));
	}
	.archiveList-sm .post {
		grid-template-columns: 9em minmax(0,1fr);
		gap: 1.5em;
	}
	.reachUs-inline .callback {
		grid-template-columns: minmax(0,1fr) minmax(0,1fr) auto;
		align-items: end;
	}
	.reachUs-frame .entryField {
		grid-template-columns: minmax(0,1fr) minmax(0,3fr);
		align-items: center;
		gap: 0.6em;
	}
	.reachUs-frame button {
		justify-self: end;
	}
	.postFull-mg .articleTitle {
		line-height: 1.08;
		font-size: 2.9em;
	}
}
