/*! sanitize.css | CC0 Public Domain | github.com/jonathantneal/sanitize.css */




/*
* Normalization
*/

:root {
	-ms-overflow-style: -ms-autohiding-scrollbar;
	overflow-y: scroll;
	text-size-adjust: 100%;
}

audio:not([controls]) {
	display: none;
}

details {
	display: block;
}

input[type="number"] {
	width: auto;
}

input[type="search"] {
	-webkit-appearance: textfield;
}

input[type="search"]::-webkit-search-cancel-button,
input[type="search"]::-webkit-search-decoration {
	-webkit-appearance: none;
}

main {
	display: block;
}

summary {
	display: block;
}

pre {
	overflow: auto;
}

progress {
	display: inline-block;
}

small {
	font-size: 75%;
}

template {
	display: none;
}

textarea {
	overflow: auto;
}

[hidden] {
	display: none;
}

[unselectable] {
	user-select: none;
}



/*
* Universal inheritance
*/

*,
*::before,
*::after {
	box-sizing: inherit;
	text-decoration: inherit;
	vertical-align: inherit;
}

* {
	color: inherit;
	font-family: inherit;
	font-size: inherit;
	font-style: inherit;
	line-height: inherit;
}



/*
* Opinionated defaults
*/



*,
*::before,
*::after {
	border-style: solid;
	border-width: 0;
}



* {
	margin: 0;
	padding: 0;
}



:root {
	box-sizing: border-box;
	cursor: default;
	font-family: sans-serif;
	line-height: 1.5;
	text-rendering: optimizeLegibility;
	vertical-align: top;
}



button,
input,
select,
textarea {
	background: transparent;
}



code,
kbd,
pre,
samp {
	font-family: monospace, monospace;
}



input {
	/* min-height: 1.5; */
}



nav ol,
nav ul {
	list-style: none;
}



select {
	-moz-appearance: none;
	-webkit-appearance: none;
}

select::-ms-expand {
	display: none;
}

select::-ms-value {
	color: currentColor;
}



table {
	border-collapse: collapse;
	border-spacing: 0;
}



textarea {
	resize: vertical;
}



::selection {
	background-color: #B3D4FC;
	text-shadow: none;
}



@media screen {
	[hidden~="screen"] {
		display: inherit;
	}

	[hidden~="screen"]:not(:active):not(:focus):not(:target) {
		clip: rect(0 0 0 0) !important;
		position: absolute !important;
	}
}/*

    Utility OpenType v0.1.2
    Simple, CSS utility classes for advanced typographic features.
    http://utility-opentype.kennethormandy.com

*/


.liga {
  -ms-font-feature-settings: "liga";
  -webkit-font-variant-ligatures: common-ligatures;
  font-variant-ligatures: common-ligatures;
}

@supports not ((-webkit-font-variant-ligatures: common-ligatures) or (font-variant-ligatures: common-ligatures)) {

  .liga {
    -webkit-font-feature-settings: "liga", "liga", "clig";
    font-feature-settings: "liga", "liga", "clig";
  }
}

.dlig {
  -ms-font-feature-settings: "dlig";
  -webkit-font-variant-ligatures: discretionary-ligatures;
  font-variant-ligatures: discretionary-ligatures;
}

@supports not ((-webkit-font-variant-ligatures: discretionary-ligatures) or (font-variant-ligatures: discretionary-ligatures)) {

  .dlig {
    -webkit-font-feature-settings: "dlig", "dlig";
    font-feature-settings: "dlig", "dlig";
  }
}

.smcp {
  text-transform: uppercase;
  -ms-font-feature-settings: "lnum", "smcp", "c2sc" 0;
}

@supports not (font-variant-caps: small-caps) {

  .smcp {
    text-transform: inherit;
    -webkit-font-feature-settings: "onum", "smcp", "c2sc" 0;
    font-feature-settings: "onum", "smcp", "c2sc" 0;
  }
}

@supports (font-variant-caps: small-caps) {

  .smcp {
    text-transform: inherit;
    -webkit-font-feature-settings: "c2sc";
    font-feature-settings: "c2sc";
    font-variant-caps: small-caps;
  }
}

.c2sc {
  text-transform: uppercase;
  font-variant-caps: all-small-caps;
  -ms-font-feature-settings: "smcp" 0, "c2sc";
}

@supports (font-variant-caps: all-small-caps) or (font-feature-settings: "c2sc") {

  .c2sc {
    text-transform: lowercase;
  }
}

@supports not (font-variant-caps: all-small-caps) {

  .c2sc {
    -webkit-font-feature-settings: "onum", "smcp" 0, "c2sc", "smcp", "c2sc";
    font-feature-settings: "onum", "smcp" 0, "c2sc", "smcp", "c2sc";
  }
}

.c2sc.smcp,
.caps {
  text-transform: uppercase;
  -ms-font-feature-settings: "smcp", "c2sc";
  font-variant-caps: all-small-caps;
}

@supports ((-webkit-font-feature-settings: "smcp", "c2sc") or (font-feature-settings: "smcp", "c2sc")) {

  @supports not (font-variant-caps: all-small-caps) {

    .c2sc.smcp,
    .caps {
      text-transform: inherit;
      -webkit-font-feature-settings: "smcp", "c2sc", "smcp", "c2sc";
      font-feature-settings: "smcp", "c2sc", "smcp", "c2sc";
    }
  }
}

@supports not (font-variant-caps: small-caps) {

  @supports not (font-variant-numeric: oldstyle-nums) {

    .smcp.onum {
      -webkit-font-feature-settings: "onum", "smcp" 1;
      font-feature-settings: "onum", "smcp" 1;
    }
  }
}

@supports not (font-variant-caps: all-small-caps) {

  @supports not (font-variant-numeric: oldstyle-nums) {

    .c2sc.onum,
    .caps.onum {
      text-transform: lowercase;
      -webkit-font-feature-settings: "onum", "smcp" 1;
      font-feature-settings: "onum", "smcp" 1;
    }
  }
}

.case {
  -webkit-font-feature-settings: "case";
  font-feature-settings: "case";
}

.titl {
  -ms-font-feature-settings: "titl";
  font-variant-caps: titling-caps;
}

@supports not (font-variant-caps: titling-caps) {

  .titl {
    -webkit-font-feature-settings: "titl", "titl";
    font-feature-settings: "titl", "titl";
  }
}

.calt {
  -ms-font-feature-settings: "calt";
  -webkit-font-variant-ligatures: contextual;
  font-variant-ligatures: contextual;
}

@supports not ((-webkit-font-variant-ligatures: contextual) or (font-variant-ligatures: contextual)) {

  .calt {
    -webkit-font-feature-settings: "calt", "calt";
    font-feature-settings: "calt", "calt";
  }
}

.hist {
  -ms-font-feature-settings: "hist";
  font-variant-alternates: historical-forms;
}

@supports not (font-variant-alternates: historical-forms) {

  .hist {
    -webkit-font-feature-settings: "hist";
    font-feature-settings: "hist";
  }
}

.swsh,
.swsh-1 {
  -webkit-font-feature-settings: "swsh";
  font-feature-settings: "swsh"
}

.swsh-2 {
  -webkit-font-feature-settings: "swsh" 2;
  font-feature-settings: "swsh" 2
}

.swsh-3 {
  -webkit-font-feature-settings: "swsh" 3;
  font-feature-settings: "swsh" 3
}

.salt,
.salt-1 {
  -webkit-font-feature-settings: "salt";
  font-feature-settings: "salt"
}

.salt-2 {
  -webkit-font-feature-settings: "salt" 2;
  font-feature-settings: "salt" 2
}

.salt-3 {
  -webkit-font-feature-settings: "salt" 3;
  font-feature-settings: "salt" 3
}

.ss01 {
  -webkit-font-feature-settings: "ss01";
  font-feature-settings: "ss01"
}

.ss02 {
  -webkit-font-feature-settings: "ss02";
  font-feature-settings: "ss02"
}

.ss03 {
  -webkit-font-feature-settings: "ss03";
  font-feature-settings: "ss03"
}

.ss04 {
  -webkit-font-feature-settings: "ss04";
  font-feature-settings: "ss04"
}

.ss05 {
  -webkit-font-feature-settings: "ss05";
  font-feature-settings: "ss05"
}

.ss06 {
  -webkit-font-feature-settings: "ss06";
  font-feature-settings: "ss06"
}

.ss07 {
  -webkit-font-feature-settings: "ss07";
  font-feature-settings: "ss07"
}

.ss08 {
  -webkit-font-feature-settings: "ss08";
  font-feature-settings: "ss08"
}

.ss09 {
  -webkit-font-feature-settings: "ss09";
  font-feature-settings: "ss09"
}

.ss10 {
  -webkit-font-feature-settings: "ss10";
  font-feature-settings: "ss10"
}

.ss11 {
  -webkit-font-feature-settings: "ss11";
  font-feature-settings: "ss11"
}

.ss12 {
  -webkit-font-feature-settings: "ss12";
  font-feature-settings: "ss12"
}

.ss13 {
  -webkit-font-feature-settings: "ss13";
  font-feature-settings: "ss13"
}

.ss14 {
  -webkit-font-feature-settings: "ss14";
  font-feature-settings: "ss14"
}

.ss15 {
  -webkit-font-feature-settings: "ss15";
  font-feature-settings: "ss15"
}

.ss16 {
  -webkit-font-feature-settings: "ss16";
  font-feature-settings: "ss16"
}

.ss17 {
  -webkit-font-feature-settings: "ss17";
  font-feature-settings: "ss17"
}

.ss18 {
  -webkit-font-feature-settings: "ss18";
  font-feature-settings: "ss18"
}

.ss19 {
  -webkit-font-feature-settings: "ss19";
  font-feature-settings: "ss19"
}

.ss20 {
  -webkit-font-feature-settings: "ss20";
  font-feature-settings: "ss20"
}

.frac {
  -ms-font-feature-settings: "frac", "afrc" 0;
  font-variant-numeric: diagonal-fractions;
}

@supports not (font-variant-numeric: diagonal-fractions) {

  .frac {
    -webkit-font-feature-settings: "frac", "afrc" 0, "frac";
    font-feature-settings: "frac", "afrc" 0, "frac";
  }
}

.afrc {
  -ms-font-feature-settings: "frac", "afrc";
  font-variant-numeric: stacked-fractions;
}

@supports not (font-variant-numeric: stacked-fractions) {

  .afrc {
    -webkit-font-feature-settings: "frac", "afrc", "afrc";
    font-feature-settings: "frac", "afrc", "afrc";
  }
}

.ordn {
  -ms-font-feature-settings: "ordn";
  font-variant-numeric: ordinal;
}

@supports not (font-variant-numeric: ordinal) {

  .ordn {
    -webkit-font-feature-settings: "ordn", "ordn";
    font-feature-settings: "ordn", "ordn";
  }
}

.sups {
  font-variant-position: super;
}

@supports not (font-variant-position: super) {

  .sups {
    -webkit-font-feature-settings: "sups", "sups";
    font-feature-settings: "sups", "sups";
  }

  @supports ((-webkit-font-feature-settings: "sups") or (font-feature-settings: "sups")) {

    .sups {
      font-size: 1em;
      vertical-align: baseline;
    }
  }

  @supports (overflow: -webkit-marquee) and (justify-content: inherit) {

    .sups {
      vertical-align: super;
    }
  }
}

.subs,
.sinf {
  font-size: inherit;
  font-variant-position: sub;
}

@supports not (font-variant-position: sub) {

  .subs,
  .sinf {
    -webkit-font-feature-settings: "subs", "subs";
    font-feature-settings: "subs", "subs";
  }

  @supports ((-webkit-font-feature-settings: "subs") or (font-feature-settings: "subs")) {

    .subs,
    .sinf {
      font-size: 1em;
      vertical-align: baseline;
    }
  }

  @supports (overflow: -webkit-marquee) and (justify-content: inherit) {

    .subs,
    .sinf {
      vertical-align: sub;
      font-size: smaller;
    }
  }
}

@supports ((-webkit-font-feature-settings: "sinf") or (font-feature-settings: "sinf")) {

  .sinf {
    font-variant-position: normal;
    -webkit-font-feature-settings: "sinf", "subs" off, "sups" off;
    font-feature-settings: "sinf", "subs" off, "sups" off;
    vertical-align: baseline;
  }
}

@supports (overflow: -webkit-marquee) and (justify-content: inherit) {

  .sinf {
    vertical-align: sub;
    font-size: smaller;
  }
}

.lnum {
  font-variant-numeric: lining-nums;
}

@supports not (font-variant-numeric: lining-nums) {

  .lnum {
    -webkit-font-feature-settings: "lnum", "onum" 0, "lnum";
    font-feature-settings: "lnum", "onum" 0, "lnum";
  }
}

.onum {
  font-variant-numeric: oldstyle-nums;
}

@supports not (font-variant-numeric: oldstyle-nums) {

  .onum {
    -webkit-font-feature-settings: "lnum" 0, "onum", "onum";
    font-feature-settings: "lnum" 0, "onum", "onum";
  }
}

.pnum {
  font-variant-numeric: proportional-nums;
}

@supports not (font-variant-numeric: proportional-nums) {

  .pnum {
    -webkit-font-feature-settings: "pnum", "tnum" 0, "pnum";
    font-feature-settings: "pnum", "tnum" 0, "pnum";
  }
}

.tnum {
  font-variant-numeric: tabular-nums;
}

@supports not (font-variant-numeric: tabular-nums) {

  .tnum {
    -webkit-font-feature-settings: "pnum" 0, "tnum", "tnum";
    font-feature-settings: "pnum" 0, "tnum", "tnum";
  }
}

.lnum.pnum {
  -ms-font-feature-settings: "lnum", "onum" 0, "pnum", "tnum" 0;
}

@supports not ((-webkit-font-feature-settings: "onum" inherit) or (font-feature-settings: "onum" inherit)) {

  .lnum.pnum {
    -webkit-font-feature-settings: "lnum", "onum" 0, "pnum", "tnum" 0;
    font-feature-settings: "lnum", "onum" 0, "pnum", "tnum" 0;
  }
}

.lnum.tnum {
  -ms-font-feature-settings: "lnum", "onum" 0, "pnum" 0, "tnum";
}

@supports not ((-webkit-font-feature-settings: "onum" inherit) or (font-feature-settings: "onum" inherit)) {

  .lnum.tnum {
    -webkit-font-feature-settings: "lnum", "onum" 0, "pnum" 0, "tnum";
    font-feature-settings: "lnum", "onum" 0, "pnum" 0, "tnum";
  }
}

.onum.pnum {
  -ms-font-feature-settings: "lnum" 0, "onum", "pnum", "tnum" 0;
}

@supports not ((-webkit-font-feature-settings: "onum" inherit) or (font-feature-settings: "onum" inherit)) {

  .onum.pnum {
    -webkit-font-feature-settings: "lnum" 0, "onum", "pnum", "tnum" 0;
    font-feature-settings: "lnum" 0, "onum", "pnum", "tnum" 0;
  }
}

.onum.tnum {
  -ms-font-feature-settings: "lnum" 0, "onum", "pnum" 0, "tnum";
}

@supports not ((-webkit-font-feature-settings: "onum" inherit) or (font-feature-settings: "onum" inherit)) {

  .onum.tnum {
    -webkit-font-feature-settings: "lnum" 0, "onum", "pnum" 0, "tnum";
    font-feature-settings: "lnum" 0, "onum", "pnum" 0, "tnum";
  }
}

.onum.zero {
  -ms-font-feature-settings: "onum", "zero";
}

@supports not ((-webkit-font-feature-settings: "onum" inherit) or (font-feature-settings: "onum" inherit)) {

  .onum.zero {
    -webkit-font-feature-settings: "onum", "zero";
    font-feature-settings: "onum", "zero";
  }
}

.onum.tnum.zero {
  -ms-font-feature-settings: "onum", "zero", "tnum";
}

@supports not ((-webkit-font-feature-settings: "onum" inherit) or (font-feature-settings: "onum" inherit)) {

  .onum.tnum.zero {
    -webkit-font-feature-settings: "onum", "zero", "tnum";
    font-feature-settings: "onum", "zero", "tnum";
  }
}

.onum.pnum.zero {
  -ms-font-feature-settings: "onum", "zero", "pnum";
}

@supports not ((-webkit-font-feature-settings: "onum" inherit) or (font-feature-settings: "onum" inherit)) {

  .onum.pnum.zero {
    -webkit-font-feature-settings: "onum", "zero", "pnum";
    font-feature-settings: "onum", "zero", "pnum";
  }
}

.lnum.zero {
  -ms-font-feature-settings: "lnum", "zero";
}

@supports not ((-webkit-font-feature-settings: "onum" inherit) or (font-feature-settings: "onum" inherit)) {

  .lnum.zero {
    -webkit-font-feature-settings: "lnum", "zero";
    font-feature-settings: "lnum", "zero";
  }
}

.lnum.tnum.zero {
  -ms-font-feature-settings: "lnum", "zero", "tnum";
}

@supports not ((-webkit-font-feature-settings: "onum" inherit) or (font-feature-settings: "onum" inherit)) {

  .lnum.tnum.zero {
    -webkit-font-feature-settings: "lnum", "zero", "tnum";
    font-feature-settings: "lnum", "zero", "tnum";
  }
}

.lnum.pnum.zero {
  -ms-font-feature-settings: "lnum", "zero", "pnum";
}

@supports not ((-webkit-font-feature-settings: "onum" inherit) or (font-feature-settings: "onum" inherit)) {

  .lnum.pnum.zero {
    -webkit-font-feature-settings: "lnum", "zero", "pnum";
    font-feature-settings: "lnum", "zero", "pnum";
  }
}

.zero {
  font-variant-numeric: slashed-zero;
}

@supports not (font-variant-numeric: slashed-zero) {

  .zero {
    -webkit-font-feature-settings: "zero", "zero";
    font-feature-settings: "zero", "zero";
  }
}

@media all and (-ms-high-contrast: none),
(-ms-high-contrast: active) {

  .smcp {
    text-transform: lowercase;
  }

  .c2sc {
    text-transform: lowercase;
  }

  .c2sc.smcp,
  .caps {
    text-transform: lowercase;
  }
}/* Typographic scale — replaces TypeGreat vendor library.
   Scale values derived from TypeGreat defaults:
   base 18px (112.5%), line-height 1.5, measure 27px */

/* Base heading styles shared by all scale classes */
.typgr8-tera,
.typgr8-giga,
.typgr8-mega,
.typgr8-alpha,
.typgr8-beta,
.typgr8-gamma,
.typgr8-delta,
.typgr8-epsilon,
.typgr8-zeta {
  text-rendering: optimizeLegibility;
  line-height: 1;
  margin-top: 0;
  color: #222;
}

/* Mobile sizes (max-width: 640px) — 80% of full scale */
@media all and (max-width: 640px) {
  .typgr8-giga  { font-size: 54.931px; font-size: 3.052rem; }
  .typgr8-alpha { font-size: 35.156px; font-size: 1.953rem; }
  .typgr8-beta  { font-size: 28.125px; font-size: 1.563rem; }
  .typgr8-gamma { font-size: 22.5px;   font-size: 1.25rem;  }
  .typgr8-delta { font-size: 18px;     font-size: 1rem;     }
  .typgr8-zeta  { font-size: 11.52px;  font-size: 0.64rem;  }
}

/* Full sizes (min-width: 640px) */
@media all and (min-width: 640px) {
  .typgr8-giga  { font-size: 68.664px; font-size: 3.815rem; }
  .typgr8-alpha { font-size: 43.945px; font-size: 2.441rem; }
  .typgr8-beta  { font-size: 35.156px; font-size: 1.953rem; }
  .typgr8-gamma { font-size: 28.125px; font-size: 1.563rem; }
  .typgr8-delta { font-size: 22.5px;   font-size: 1.25rem;  }
  .typgr8-zeta  { font-size: 14.4px;   font-size: 0.8rem;   }
}

/* h1–h6 mapped to scale sizes */
h1 { font-size: 43.945px; font-size: 2.441rem; line-height: 1; }
h2 { font-size: 35.156px; font-size: 1.953rem; line-height: 1; }
h3 { font-size: 28.125px; font-size: 1.563rem; line-height: 1; }
h4 { font-size: 22.5px;   font-size: 1.25rem;  line-height: 1; }
h5 { font-size: 18px;     font-size: 1rem;     line-height: 1; }
h6 { font-size: 14.4px;   font-size: 0.8rem;   line-height: 1; }

body {
  word-wrap: break-word;
  -webkit-hyphens: auto;
  -moz-hyphens: auto;
  -ms-hyphens: auto;
  hyphens: auto;
  color: #444;
}

p {
  margin: auto auto 1.5em;
}

small {
  font-size: 80%;
}

pre {
  white-space: pre;
}

pre code {
  word-wrap: normal;
  white-space: pre-wrap;
}

code {
  white-space: pre;
  font-family: monospace;
}

abbr {
  font-variant: small-caps;
  font-weight: 600;
  color: gray;
}

abbr[title]:hover {
  cursor: help;
}

blockquote + figcaption cite {
  display: block;
  font-size: inherit;
  text-align: right;
}
/*
 * Core styles for PriorityNav.js
 * These styles are not optional and should always be included
 *
 * Free to use under the MIT License.
 * http://twitter.com/GijsRoge
 */

.priority-nav {
  white-space: nowrap; /* prevent flash of unstyled content */
}

/* Makes sure the menus are inline-block so they don't take up
   the entire width of its parent. This will break the plugin. */
.priority-nav > ul {
  display: inline-block;
}

.priority-nav > ul > li {
  display: inline-block;
}

.priority-nav-has-dropdown .priority-nav__dropdown-toggle {
  position: relative;
}

.priority-nav__wrapper {
  position: relative;
}

.priority-nav__dropdown {
  position: absolute;
  visibility: hidden;
}

.priority-nav__dropdown.show {
  visibility: visible;
}

.priority-nav__dropdown-toggle {
  visibility: hidden;
  position: absolute;
}

.priority-nav-is-visible {
  visibility: visible;
}

.priority-nav-is-hidden {
  visibility: hidden;
}
:root {
  --serif-font-stack: 'PT Serif', "Freight Text", "Georgia", "Charter", serif;
  --sans-font-stack: 'PT Sans', "Helvetica Neue", "Helvetica", "Source Sans Pro", sans-serif;
  --mono-font-stack: 'PT Mono', "Source Code Pro", "Consolas", monospace;
}

:root {
  --text-font-stack: var(--gh-font-body, 'PT Serif', 'Georgia', 'Charter', 'Georgia', serif);
  --interface-font-stack: var(--gh-font-body, 'PT Sans', 'Source Sans Pro', 'Roboto', 'PT Sans', 'Helvetica', sans-serif);
  --header-font-stack: var(--gh-font-heading, var(--interface-font-stack));
  --mono-font-stack: var(--gh-font-body, 'PT Mono', 'Source Code Pro', monospace);

  --interactive-color: rgb(0, 89.6, 89.6);
  --active-color: teal;

  --primary-color: #01161E;
  --secondary-color: rgb(51.8, 68.6, 75);
  --tertiary-color: rgb(229.5, 242.3, 242.3);

  --butler-color: #bbb;
  --bg-color: #fdfdfd;

  --active-color-tint-20: color-mix(in srgb, white calc(20% / 2), var(--active-color));
  --butler-color-shade-70: color-mix(in srgb, black calc(70% / 2), var(--butler-color));
  --butler-color-shade-50: color-mix(in srgb, black calc(50% / 2), var(--butler-color));
  --interactive-color-tint-75: color-mix(in srgb, white calc(75% / 2), var(--interactive-color));
  --tertiary-color-mix-primary-color-90: color-mix(in srgb, var(--tertiary-color) 90%, var(--primary-color));
  --interactive-color-mix-black-75: color-mix(in srgb, black 75%, var(--interactive-color));
  --tertiary-color-darken-10: color-mix(in srgb, black calc(10% / 2), var(--tertiary-color));
  --tertiary-color-mix-secondary-color-90: color-mix(in srgb, var(--tertiary-color), var(--primary-color) 90%);
  --tertiary-color-mix-white-25: color-mix(in srgb, white calc(25% / 2), var(--tertiary-color));
  --tertiary-color-darken-5: color-mix(in srgb, black 5%, var(--tertiary-color));
  --primary-color-desaturate-25: color-mix(in srgb, gray 25%, var(--primary-color));
  --butler-color-darken-15: color-mix(in srgb, black calc(15% / 2), var(--butler-color));
  --secondary-color-mix-white-75: color-mix(in srgb, white calc(75% / 2), var(--secondary-color));

  --font-adjust-sm: 0.5;
  --font-adjust-md: 0.8;
  --font-adjust-lg: 1;

  --x-height-offset: 0.25rem;

  /* --container-width cannot be used in media queries — use 1024px directly */
  --container-width: 1024px;
  --text-container-width: 850px;
}
/**
* ◊HELPERS
* -------
* Helpful classes for quick layout tweaks and hacks
*/

.inline{
  display: inline;
}

.center-text{
  text-align: center;
}

.fl {
  float: left;
}

.fr {
  float: right;
}

.clear {
  clear: both;
}

.sc {
  -moz-font-feature-settings: "smcp=1";
  -moz-font-feature-settings: "smcp";
  -ms-font-feature-settings: "smcp";
  -webkit-font-feature-settings: "smcp";
  -o-font-feature-settings: "smcp";
  font-feature-settings: "smcp";
}

.cf:before,
.cf:after {
  content: " ";
  display: table;
}

.cf:after {
  clear: both;
}

.cf {
  *zoom: 1;
}

.m0    { margin: 0; }
.m0a   { margin: 0 auto; }
.m1,
.m1rem { margin: 1rem; }

.mt0 { margin-top:    0 !important; }
.mr0 { margin-right:  0 !important; }
.mb0 { margin-bottom: 0 !important; }
.ml0 { margin-left:   0 !important; }

.mt1 { margin-top:    1rem !important; }
.mr1 { margin-right:  1rem !important; }
.mb1 { margin-bottom: 1rem !important; }
.ml1 { margin-left:   1rem !important; }

.p0  { padding: 0; }

.pt0 { padding-top:    0 !important; }
.pr0 { padding-right:  0 !important; }
.pb0 { padding-bottom: 0 !important; }
.pl0 { padding-left:   0 !important; }

.pt1 { padding-top:    1rem !important; }
.pr1 { padding-right:  1rem !important; }
.pb1 { padding-bottom: 1rem !important; }
.pl1 { padding-left:   1rem !important; }

.p1,
.p1rem { padding: 1rem; }

.full, .full-width {
  width: 100%;
}

.full-bleed {
  max-width: 100vw;
  width: 100vw;
  position: relative;
  left: 50%;
  right: 50%;
  margin-left: -50vw;
  margin-right: -50vw;
}

.unstyled-anchor, .unstyled-anchor:hover, .unstyled-anchor:active{
  text-decoration: inherit;
  border:inherit;
  color:inherit;
}

.hcenter {
  margin: 0 auto;
  width: 100%;
}

.hidden {
  display: none;
}

.sans-serif {
  font-family: 'PT Sans', 'Source Sans Pro', 'Roboto', 'PT Sans', 'Helvetica', sans-serif;
  font-family: var(--interface-font-stack);
}

.serif {
  font-family: 'PT Serif', 'Georgia', 'Charter', 'Georgia', serif;
  font-family: var(--text-font-stack);
}

.tertiary-bg {
  background-color: rgb(229.5, 242.3, 242.3);
  background-color: var(--tertiary-color);
}

.tertiary-color {
  color: rgb(229.5, 242.3, 242.3);
  color: var(--tertiary-color);
}

.amp {
  font-style:italic;
  font-weight:400;
  font-family: 'Libre Baskerville', Baskerville, 'Goudy Old Style', Palatino, 'Book Antiqua', serif;
}

.fancy-header-container {
  text-transform: uppercase;
  width: 100%;
  text-align: center;
}

.fancy-header-element {
  position: relative;
  background-color: #fdfdfd;
  background-color: var(--bg-color);
  padding: 0 1rem;
}

.fancy-header-element:before,
.fancy-header-element:after {
  content: "";
  position: absolute;
  border-bottom: 1px solid rgb(229.5, 242.3, 242.3);
  border-top: 1px solid rgb(229.5, 242.3, 242.3);
  border-bottom: 1px solid var(--tertiary-color);
  border-top: 1px solid var(--tertiary-color);
  letter-spacing: 0.05rem;
  height: 4px;
  width: 100%;
  top: 45%;
  z-index: -1;
}

.fancy-header-element:before {
  right: 100%;
  width: 200%;
}

.fancy-header-element:after {
  left:  100%;
  width: 200%;
}

.xho {
  margin-top: 0.25rem;
  margin-top: var(--x-height-offset);
}
.icon {
  display: inline-block;
  width: 1em;
  height: 1em;
  vertical-align: -0.125em;
}

@keyframes icon-spin {
  0% { transform: rotate(0deg); }
  100% { transform: rotate(360deg); }
}

.icon-spin {
  animation: icon-spin 2s steps(8) infinite;
}
*,
*::before,
*::after {
  box-sizing: border-box;
}

*+* {
  margin-top: 1rem;
}

::-moz-selection,
::selection {
  background: rgb(51.8, 68.6, 75);
  background: var(--secondary-color);
  color: white;
}

body {
  padding-top: 8rem;
}

/* Fix incompatibility between Sanitize.css and KaTeX */
.katex *,
.katex *::before,
.katex *::after {
  vertical-align: baseline;
}

.math *+*,
.katex *+* {
  margin-top: 0;
}

.math {
  max-width: 100%;
  overflow: auto;
}

.container {
  margin: 0 auto;
  padding: 1rem;
  max-width: 1024px;
  max-width: var(--container-width);
}

@media all and (min-width: 640px) {
  .container {
    padding: 1.5rem;
  }
}

.page-template .content,
.post-template .content {
  max-width: 850px;
  max-width: var(--text-container-width);
}

img {
  max-width: 100%;
}

img[data-jslghtbx] {
  cursor: zoom-in;
}

.jslghtbx-contentwrapper {
  max-height: 110vh !important;
}

a {
  text-decoration: none;
}

.post-teaser__title a {
  border-bottom: none;
}

em,
i,
var {
  font-style: italic;
}

del,
strike,
s {
  text-decoration: line-through;
}

pre[class*="language-"],
.token.operator {
  background: rgb(229.5, 242.3, 242.3) !important;
  background: var(--tertiary-color) !important;
}

pre[class*="language-"] {
  margin: 0 0 1.7rem 0 !important;
  padding: 0.5rem 0.8rem !important;
}

code[class*="language-"] {
  text-shadow: none !important;
  color: #444 !important;
  font-family: 'PT Mono', 'Source Code Pro', monospace !important;
  font-family: var(--mono-font-stack) !important;
}

pre {
  padding: 0.5em 0.8em;
  margin-bottom: 2rem;
}

code {
  padding: 0.15em 0.25em;
  vertical-align: baseline;
}

pre,
code {
  box-sizing: border-box;
  border: 1px solid rgb(204, 230, 230);
  border: 1px solid var(--active-color-tint-20);
  background-color: rgb(229.5, 242.3, 242.3);
  background-color: var(--tertiary-color);
  white-space: pre-wrap;
  font-size: 0.8em;
  font-family: 'PT Mono', 'Source Code Pro', monospace;
  font-family: var(--mono-font-stack);
}

pre code {
  padding: 0;
  border: none;
}

kbd {
  font-family: 'PT Sans', 'Source Sans Pro', 'Roboto', 'PT Sans', 'Helvetica', sans-serif;
  font-family: var(--interface-font-stack);
  font-size: 0.8rem;
  font-weight: 900;
  padding: 0.25rem 0.5rem 0.125rem 0.5rem;
  margin: 0.25rem;
  border: 1px solid #bbb;
  border: 1px solid var(--butler-color);
  background-color: rgb(229.5, 242.3, 242.3);
  background-color: var(--tertiary-color);
  line-height: 2.25;
  border-radius: 0.15rem;
}

sup,
sub {
  font-size: 1rem;
}

sup {
  vertical-align: super;
}

sub {
  vertical-align: sub;
}

ol,
ul {
  padding-left: 0;
  margin-left: 1rem;
  margin-top: 1em;
  margin-bottom: 1em;
}

@media all and (min-width: 640px) {
  ol,
  ul {
    margin-left: 0;
  }
}

ol ol,
ul ul,
ul ol,
ol ul {
  margin-top: 0.25rem;
  -webkit-margin-before: 1rem !important;
  margin-bottom: 1em;
  margin-left: 1em;
}

li {
  font-family: inherit;
}

li ul,
li ol {
  margin-top: 0;
}

li p:last-of-type:has(+ ol),
li p:last-of-type:has(+ ul) {
  margin-bottom: 1em;
}

mark {
  background-color: rgb(229.5, 242.3, 242.3);
  background-color: var(--tertiary-color);
}

input {
  height: 100%;
}

input,
button,
textarea {
  padding: 0.5rem 1rem;
  border: 1px solid #bbb;
  border: 1px solid var(--butler-color);
  box-shadow: none;
  font-weight: 900;
  font-family: 'PT Sans', 'Source Sans Pro', 'Roboto', 'PT Sans', 'Helvetica', sans-serif;
  font-family: var(--interface-font-stack);
}

input:focus,
input:active,
button:focus,
button:active {
  outline: none;
  border: 1px solid rgb(0, 89.6, 89.6);
  border: 1px solid var(--interactive-color);
}

hr {
  display: block;
  margin: 1.65rem auto;
  padding: 0;
  height: 1px;
  border: 0;
  border-top: rgb(229.5, 242.3, 242.3) 1px double;
  border-top: var(--tertiary-color) 1px double;
  text-align: center;
  overflow: visible;
}

hr::after {
  position: relative;
  top: 0.28rem;
  display: inline;
  padding: 0 1rem;
  content: '* * *';
  font-size: 1.954rem;
  line-height: 0;
}

hr[data-content]::after {
  font-size: 0.7rem !important;
  content: attr(data-content);
  font-size: var(--font-size);
  top: var(--xho);
}

@media all and (min-width: 640px) {
  hr[data-content]::after {
    font-size: 1rem !important;
  }
}

hr.plain:after,
hr.plain-hr:after {
  display: none;
}

li.plain {
  list-style-type: none;
}

.meta-spacer::after {
  color: rgb(229.5, 242.3, 242.3);
  color: var(--tertiary-color);
  content: ' • ';
  font-weight: 900;
  font-family: 'PT Sans', 'Source Sans Pro', 'Roboto', 'PT Sans', 'Helvetica', sans-serif;
  font-family: var(--interface-font-stack);
}

.meta-spacer[spacer]::after {
  content: attr(spacer);
}

@-moz-document url-prefix() {
  /* FF only */
  .dropcap::first-letter {
    margin-top: 0.25rem;
  }
}

.site-footer__navigation .fa-rss,
.pagination .fa {
  margin-top: 0.25rem;
  margin-top: var(--x-height-offset);
}

.site-footer__attribution--ghost img {
  margin-top: 0.375rem;
  margin-top: calc(var(--x-height-offset) * 1.5);
}
body {
  font-family: 'PT Sans', 'Source Sans Pro', 'Roboto', 'PT Sans', 'Helvetica', sans-serif;
  font-family: var(--interface-font-stack);
}

@media all and (min-width: 1024px) {
  body {
    font-size: 21px;
  }
}

h1,
h2,
h3,
h4,
h5,
h6 {
  font-family: 'PT Sans', 'Source Sans Pro', 'Roboto', 'PT Sans', 'Helvetica', sans-serif;
  font-family: var(--header-font-stack);
  font-weight: 900;
  margin-top: 4rem;
  margin-bottom: 1.5rem;
  color: rgb(51.8, 68.6, 75);
  color: var(--secondary-color);
}

.post__title,
.post-teaser__title a {
  color: #01161E;
  color: var(--primary-color);
}

.post-teaser__title a:hover {
  color: rgb(0, 89.6, 89.6);
  color: var(--interactive-color);
}

.post__subtitle {
  font-weight: 400;
  margin-bottom: 1.628rem;
  padding-bottom: 1.5em;
}

p,
.content {
  font-family: 'PT Serif', 'Georgia', 'Charter', 'Georgia', serif;
  font-family: var(--text-font-stack);
}

.has-serif-text {
  --text-font-stack: var(--gh-font-body, var(--serif-font-stack));
}

.has-sans-text {
  --text-font-stack: var(--gh-font-body, var(--sans-font-stack));
}

.has-mono-text {
  --text-font-stack: var(--gh-font-body, var(--mono-font-stack));
}

.has-serif-header {
  --header-font-stack: var(--gh-font-heading, var(--serif-font-stack));
}

.has-sans-header {
  --header-font-stack: var(--gh-font-heading, var(--sans-font-stack));
}

.has-mono-header {
  --header-font-stack: var(--gh-font-heading, var(--mono-font-stack));
}

.has-serif-ui {
  --interface-font-stack: var(--gh-font-body, var(--serif-font-stack));
}

.has-sans-ui {
  --interface-font-stack: var(--gh-font-body, var(--sans-font-stack));
}

.has-mono-ui {
  --interface-font-stack: var(--gh-font-body, var(--mono-font-stack));
}

a {
  color: rgb(0, 89.6, 89.6);
  color: var(--interactive-color);
  border-bottom: 1px solid rgb(229.5, 242.3, 242.3);
  border-bottom: 1px solid var(--tertiary-color);
  transition: color, .2s;
}

a:hover,
a.active {
  color: teal;
  color: var(--active-color);
  border-bottom: 2px solid rgb(229.5, 242.3, 242.3);
  border-bottom: 2px solid var(--tertiary-color);
}

[disabled] {
  color: #bbb;
  color: var(--butler-color);
}

/* Fallback for Ghost 1.x in Webkit browsers */
.post__content:not(*:root)>p:first-of-type::first-line {
  text-transform: none;
}

footer,
aside {
  font-family: 'PT Sans', 'Source Sans Pro', 'Roboto', 'PT Sans', 'Helvetica', sans-serif;
  font-family: var(--interface-font-stack);
}

.read-more,
hr:after,
.post-teaser__meta,
.site-footer__attribution,
.post__meta,
.butler-color {
  color: rgb(130.9, 130.9, 130.9);
  color: var(--butler-color-shade-70);
}

body,
hr:after {
  background-color: #fdfdfd;
  background-color: var(--bg-color);
}

.post-teaser__meta,
.site-footer__attribution,
.post__meta {
  font-family: 'PT Sans', 'Source Sans Pro', 'Roboto', 'PT Sans', 'Helvetica', sans-serif;
  font-family: var(--interface-font-stack);
  font-weight: 400;
  transition: color, .5s;
  font-size: 0.8rem;
}

.post-teaser__meta:hover,
.site-footer__attribution:hover,
.post__meta:hover {
  color: rgb(93.5, 93.5, 93.5);
  color: var(--butler-color-shade-50);
  transition: color, .5s;
}

.post-teaser__meta a,
.site-footer__attribution a,
.post__meta a {
  color: rgb(63.75, 130.95, 130.95);
  color: var(--interactive-color-tint-75);
  border-bottom: none;
}

.post-teaser__meta a:hover,
.site-footer__attribution a:hover,
.post__meta a:hover {
  color: teal;
  color: var(--active-color);
}

.dropcap:not(.tag-hash-no-dropcap .dropcap):first-letter {
  float: left;
  margin: -0.8rem 0 0 -1rem;
  padding: 0 0.6rem;
  font-size: 6rem;
  font-family: inherit;
  line-height: 1;
  text-indent: 0;
  background: transparent;
  color: inherit;
}

.dropcap:not(.tag-hash-no-dropcap .dropcap)::first-letter {
  font-weight: 900;
  color: var(--dropcap-color);
  color: rgb(140.25, 140.25, 140.25);
}

.dropcap:not(.tag-hash-no-dropcap .dropcap)::first-line {
  text-transform: uppercase;
  -moz-font-feature-settings: "smcp=1";
  -moz-font-feature-settings: "smcp";
  -ms-font-feature-settings: "smcp";
  -webkit-font-feature-settings: "smcp";
  -o-font-feature-settings: "smcp";
  font-feature-settings: "smcp";
}

/* Override tag: display dropcap regardless of global setting */
.tag-hash-dropcap .post__content p:first-of-type:first-letter {
  float: left;
  margin: -0.8rem 0 0 -1rem;
  padding: 0 0.6rem;
  font-size: 6rem;
  font-family: inherit;
  line-height: 1;
  text-indent: 0;
  background: transparent;
  color: inherit;
}

.tag-hash-dropcap .post__content p:first-of-type::first-letter {
  font-weight: 900;
  color: var(--dropcap-color);
  color: rgb(140.25, 140.25, 140.25);
}

.tag-hash-dropcap .post__content p:first-of-type::first-line {
  text-transform: uppercase;
  -moz-font-feature-settings: "smcp=1";
  -moz-font-feature-settings: "smcp";
  -ms-font-feature-settings: "smcp";
  -webkit-font-feature-settings: "smcp";
  -o-font-feature-settings: "smcp";
  font-feature-settings: "smcp";
}

.subtle-display-text {
  font-variant-numeric: lining-nums;
  text-rendering: optimizeLegibility;
  font-size: 1rem;
  font-family: 'PT Sans', 'Source Sans Pro', 'Roboto', 'PT Sans', 'Helvetica', sans-serif;
  font-family: var(--interface-font-stack);
  text-transform: uppercase;
  font-weight: 400;
}

@supports not (font-variant-numeric: lining-nums) {
  .subtle-display-text {
    -webkit-font-feature-settings: "lnum", "onum" 0, "lnum";
    font-feature-settings: "lnum", "onum" 0, "lnum";
  }
}

.post__meta {
  font-size: 1rem;
  margin-bottom: 4rem;
  margin-top: -0.5rem;
}

.site-footer__attribution {
  font-size: 0.8rem;
}

@media all and (min-width: 640px) {
  .site-footer__attribution {
    font-size: 1rem;
  }
}
.membership-widget {
  width: 100%;
  font-size: 1rem;
}

.form-group {
  width: 100%;
}

.membership-widget form {
  margin-top: 0;
  text-align: center;
}

@media all and (min-width: 640px) {
  .membership-widget form {
    display: flex;
  }
}

.membership-widget:not(.membership-widget--scrollbox) input[type='email'] {
  width: 100%;
}

@media all and (min-width: 640px) {
  .membership-widget:not(.membership-widget--scrollbox) input[type='email'] {
    flex: 10;
    border-right: none !important;
  }
}

.membership-widget button[type='submit'] {
  margin-top: 0;
  width: 100%;
  line-height: 1;
}

@media all and (min-width: 640px) {
  .membership-widget button[type='submit'] {
    flex: 2.5;
    max-width: 10rem;
    min-width: 10rem;
  }
}

.membership-widget input[type='email'] {
  border: 2px solid rgb(229.5, 242.3, 242.3);
  border: 2px solid var(--tertiary-color-darken-10);
}

.membership-widget input[type='email']:focus {
  border-left: 2px solid rgb(0, 89.6, 89.6);
  border-left: 2px solid var(--interactive-color);
}

.membership-widget--box .fa-envelope {
  color: rgb(229.5, 242.3, 242.3);
  float: right;
  opacity: 1;
}

.membership-widget .button-loader,
.membership-widget .message-success,
.membership-widget .message-error,
.membership-widget .loader {
  display: none;
}

.membership-widget .loading .button-content {
  visibility: hidden;
}

.message-error,
[data-members-error] {
  color: red;
  font-style: italic;
}

.loading .button-text {
  display: none;
}

.success~.message-success,
.invalid~.message-error,
.error~.message-error,
.loading .loader {
  display: block;
}

.membership-upgrade-prompt,
.gh-post-upgrade-cta {
  display: block;
  width: 100%;
  margin: 0 !important;
  text-align: center;
  left: 0;
  background: repeating-linear-gradient(45deg,
      rgb(229.5, 242.3, 242.3),
      rgb(229.5, 242.3, 242.3) 10px,
      #fdfdfd 10px,
      #fdfdfd 20px);
  background: repeating-linear-gradient(45deg,
      var(--tertiary-color),
      var(--tertiary-color) 10px,
      var(--bg-color) 10px,
      var(--bg-color) 20px);
}

.membership-widget--welcome-mat {
  height: 100vh;
  width: 100vw;
  display: flex;
  align-items: center;
  justify-content: center;
  max-width: 100%;
  background-color: rgb(229.5, 242.3, 242.3);
  background-color: var(--tertiary-color);
}

.membership-widget--welcome-mat h4 {
  text-transform: uppercase;
  font-weight: 400;
}

.membership-widget--welcome-mat .welcome-mat-optin-cta {
  line-height: 1.618;
}

body:has(.membership-widget--welcome-mat) {
  padding: 0 !important;
  margin-top: 0 !important;
}

.membership-widget--welcome-mat+.main-header {
  top: 100vh;
}

.membership-widget--scrollbox {
  margin: 1rem;
  padding: 1.5rem;
  background: var(--tertiary-color);
  border: 3px double var(--primary-color);
  border-radius: 0.25rem;
  text-align: left;
  position: fixed;
  box-shadow: 0.25rem 0.25rem 0.75rem -0.25rem var(--secondary-color);
}

.membership-widget--scrollbox:not(.visible) {
  opacity: 0;
  visibility: hidden;
  transition: 0.5s all ease-in-out;
}

.membership-widget--scrollbox.visible {
  visibility: visible;
  transition: 0.5s all ease-in-out;
  width: 95%;
  width: calc(100% - 2rem);
  opacity: 1;
  right: 0;
  bottom: 2rem;
}

@media all and (min-width: 1024px) {
  .membership-widget--scrollbox.visible {
    min-width: 350px;
    width: 33%;
  }
}

.membership-widget--scrollbox h4 {
  margin: 0;
  margin-bottom: 0.5rem;
  text-align: left;
  text-transform: uppercase;
}

.membership-widget--scrollbox input {
  margin: 1rem 0 0.5rem 0;
  min-width: 100%;
  padding: 0.5rem;
  font-family: 'PT Sans', 'Source Sans Pro', 'Roboto', 'PT Sans', 'Helvetica', sans-serif;
  font-family: var(--interface-font-stack);
}

@media all and (min-width: 1024px) {
  .membership-widget--scrollbox__button-group {
    display: inline;
  }
}

.membership-widget--scrollbox__button-group button {
  width: auto;
  text-transform: uppercase;
  font-family: 'PT Sans', 'Source Sans Pro', 'Roboto', 'PT Sans', 'Helvetica', sans-serif;
  font-family: var(--interface-font-stack);
  font-weight: 700;
  margin-top: 1rem;
}

.membership-widget--scrollbox__button-group a {
  float: right;
  text-transform: uppercase;
  color: grey;
  font-family: 'PT Sans', 'Source Sans Pro', 'Roboto', 'PT Sans', 'Helvetica', sans-serif;
  font-family: var(--interface-font-stack);
  border: 2px solid lightgrey;
  padding: 0.25rem 0.5rem;
  border-radius: 0.25rem;
}
p > img,
.content > img {
  margin: 1.5rem 0;
}

figure:not(.plain-figure) {
  margin: 1.5rem auto;
}

figure:not(.plain-figure) figcaption {
  font-family: 'PT Sans', 'Source Sans Pro', 'Roboto', 'PT Sans', 'Helvetica', sans-serif;
  font-family: var(--interface-font-stack);
  font-size: 0.8rem;
  line-height: 1rem;
  padding: 0.25rem 0;
  margin-top: 0;
  text-align: center;
}

figcaption p {
  margin: 0;
  font-family: var(--sans-font-stack);
}

figure img,
.thumb img {
  margin-top: 0;
}

.gh-article-image img {
  width: 100%;
  height: auto;
}

.kg-image-card img {
  height: auto;
}

.post .kg-image {
  max-width: 100%;
}

body {
  overflow-x: hidden;
}

/* kg-width-wide: full-bleed by default, constrained at lg breakpoint */
.post figure.kg-width-wide {
  max-width: 100vw;
  width: 100vw;
  position: relative;
  left: 50%;
  right: 50%;
  margin-left: -50vw;
  margin-right: -50vw;
}

@media all and (min-width: 1024px) {
  .post figure.kg-width-wide {
    width: 1024px;
    width: var(--container-width);
    margin-left: calc(-1 * 1024px / 2);
    margin-right: calc(-1 * 1024px / 2);
    margin-left: calc((-1 * var(--container-width)) / 2);
    margin-right: calc((-1 * var(--container-width)) / 2);
  }
}

.post figure.kg-width-wide .kg-image {
  width: 100vw;
}

@media all and (min-width: 1024px) {
  .post figure.kg-width-wide .kg-image {
    max-width: 1024px;
    max-width: var(--container-width);
    width: 1024px;
    width: var(--container-width);
  }
}

.post figure.kg-width-full {
  max-width: 100vw;
  width: 100vw;
  position: relative;
  left: 50%;
  right: 50%;
  margin-left: -50vw;
  margin-right: -50vw;
}

.post figure.kg-width-full .kg-image {
  max-width: 100vw;
  width: 100vw;
}

.thumb,
figure.thumb {
  width: 100%;
  margin: 1rem auto;
  line-height: 1;
}

@media all and (min-width: 640px) {
  .thumb,
  figure.thumb {
    float: right;
    max-width: 225px;
    margin: 0.5rem 0 0.5rem 1rem;
  }
}

.thumb img.full-img {
  margin: 0 auto;
  width: 100%;
}

/* Float image: sandwich image card between HTML cards: <span class="float-right"> ... </span> */
.post__content span.float-right,
.post__content span.float-left {
  display: block;
  max-width: 40%;
  margin-bottom: 1rem;
}

@media all and (min-width: 640px) {
  .post__content span.float-right {
    float: right;
    margin: 0.25rem 0 1rem 1.5rem;
  }
  .post__content span.float-left {
    float: left;
    margin: 0.25rem 1.5rem 1rem 0;
  }
}

.post__content span.float-right figure,
.post__content span.float-left figure {
  margin: 0;
}

/* Clear floats at headings and dividers so floated images don't bleed into next sections */
.post__content h1,
.post__content h2,
.post__content h3,
.post__content h4,
.post__content hr {
  clear: both;
}

figure.kg-embed-card {
  border: none;
}

figure iframe {
  margin: 0 auto;
}
button,
.btn,
input[type=submit] {
  background-color: rgb(229.5, 242.3, 242.3);
  background-color: var(--tertiary-color);
  padding: 0.5rem 0.8rem;
  color: #01161E;
  color: var(--primary-color);
  font-weight: 700;
  text-transform: uppercase;
  cursor: pointer;
  border: 2px solid rgb(0, 89.6, 89.6);
  border: 2px solid var(--interactive-color);
  border-radius: 0.15rem;
  transition: 0.3s;
}

button:hover,
.btn:hover,
input[type=submit]:hover {
  border: 2px solid teal;
  border: 2px solid var(--active-color);
  background-color: rgb(0, 35.84, 89.6);
  background-color: var(--interactive-color-hue-36, rgb(0, 35.84, 89.6));
  box-shadow: 0 0 0.5rem -0.15rem #01161E inset;
  box-shadow: 0 0 0.5rem -0.15rem var(--primary-color) inset;
  color: #fdfdfd !important;
  color: var(--bg-color);
  transition: 0.3s;
}

.btn--cta {
  background: rgb(0, 89.6, 89.6);
  background: var(--interactive-color);
  background-image: linear-gradient(to bottom right, var(--interactive-color), color-mix(in srgb, var(--interactive-color) 100%, black calc(75% / 2)));
  background-image: -webkit-gradient(linear, 0% 0%, 0% 100%, from(var(--interactive-color)), to(color-mix(in srgb, var(--interactive-color) 100%, black calc(75% / 2))));
  background-image: -webkit-linear-gradient(var(--interactive-color), color-mix(in srgb, var(--interactive-color) 100%, black calc(75% / 2)));
  background-image: -o-linear-gradient(var(--interactive-color), color-mix(in srgb, var(--interactive-color) 100%, black calc(75% / 2)));
  background-image: -moz-linear-gradient(to bottom right, var(--interactive-color), color-mix(in srgb, var(--interactive-color) 100%, black calc(75% / 2)));
  color: #fdfdfd;
  color: var(--bg-color);
  border: 2px solid teal;
  border: 2px solid var(--active-color);
}

.btn--cta:hover {
  background: teal;
  background: var(--active-color);
  background-image: linear-gradient(to bottom right, var(--active-color), color-mix(in srgb, black calc(75% / 2), var(--active-color)));
  border: 2px solid rgb(0, 89.6, 89.6);
  border: 2px solid var(--interactive-color);
  box-shadow: 0 0 0.5rem -0.15rem #01161E inset;
}
.kg-image-card,
.kg-gallery-card {
  margin: 0 0 1.5rem;
}

.kg-image-card figcaption,
.kg-gallery-card figcaption {
  margin: -1.0rem 0 1.5rem;
}

.kg-gallery-container {
  display: flex;
  flex-direction: column;
  margin: 0.25rem auto;
  width: 100vw;
  max-width: 100%;
}

.kg-width-wide .kg-gallery-container {
  max-width: 1024px;
  max-width: var(--container-width);
}

.kg-width-full .kg-gallery-container {
  max-width: 100vw;
}

.kg-gallery-row {
  display: flex;
  flex-direction: row;
  justify-content: center;
}

.kg-gallery-image img {
  display: block;
  margin: 0;
  width: 100%;
  height: 100%;
  cursor: -webkit-zoom-in;
}

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

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

/* The rest of the lightbox code is deferred, but this is needed to prevent
   the close button from ghosting while defer.css is loading. */
.jslghtbx {
  visibility: hidden;
}

/* FALLBACKS FOR OLD LAMINIM GALLERY COMPONENT */
.gallery {
  display: flex;
  flex-wrap: wrap;
}

.gallery div {
  margin: 0;
  margin: 0.5rem auto;
}

.gallery img {
  width: auto;
  height: auto;
  max-width: 100%;
  max-height: 130px;
  cursor: -webkit-zoom-in;
}
.main-header {
  background-color: #fff;
  border-bottom: 1px solid rgb(229.5, 242.3, 242.3);
  border-bottom: 1px solid var(--tertiary-color);
  padding: 1rem;
  width: 100%;
  position: absolute;
  margin: 0 auto;
  z-index: 1000;
  top: 0;
  left: 0;
  transition-duration: 0.5s;
  transition-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);
  transition-property: transform;
}

.main-header .container {
  display: flex;
  align-items: center;
  padding: 0;
}

@media all and (min-width: 640px) {
  .main-header .container {
    padding: 0 0.5rem;
  }
}

@media all and (min-width: 1024px) {
  .main-header .container {
    padding: 0 1.5rem;
  }
}

.main-header__logo {
  flex: 0 0 auto;
  padding-right: 1rem;
}

@media all and (min-width: 1024px) {
  .main-header__logo {
    padding-right: 1.65rem;
  }
}

.main-header__logo img {
  max-height: 3.5rem;
}

@media all and (max-width: 640px) {
  .main-header__logo img {
    max-height: 2.5rem;
  }
}

.main-header__text-container {
  margin-top: 0.8rem;
  padding-right: 1rem;
  flex: 0 0 auto;
  align-items: center;
}

@media all and (min-width: 640px) {
  .main-header__text-container {
    margin-top: 0;
  }
}

.main-header__blog-title {
  border-bottom: none;
  margin-bottom: 0.5rem;
  color: rgb(4.875, 20.2629310345, 26.125);
  color: var(--primary-color-desaturate-25);
  font-family: 'PT Serif', 'Georgia', 'Charter', 'Georgia', serif;
  font-family: var(--text-font-stack);
  font-weight: 400;
}

.main-header__blog-description {
  font-family: 'PT Sans', 'Source Sans Pro', 'Roboto', 'PT Sans', 'Helvetica', sans-serif;
  font-family: var(--header-font-stack);
  font-weight: 400;
  margin-bottom: 0;
  color: rgb(148.75, 148.75, 148.75);
  color: var(--butler-color-darken-15);
  text-transform: uppercase;
  display: none;
}

@media all and (min-width: 640px) {
  .main-header__blog-description {
    display: block;
  }
}

.main-header nav {
  min-width: 4rem;
  margin-top: 0.5rem;
  display: inline-block;
  text-align: right;
  flex: 100 100 auto;
}

@media all and (min-width: 1024px) {
  .menu {
    padding-top: 0.25rem;
  }
}

.menu li {
  display: inline !important;
}

.menu a,
.more-toggle {
  font-size: 1rem;
  border-bottom: 0;
  letter-spacing: 0.05rem;
  font-family: 'PT Sans', 'Source Sans Pro', 'Roboto', 'PT Sans', 'Helvetica', sans-serif;
  font-family: var(--interface-font-stack);
  text-transform: uppercase;
  font-weight: 700;
}

.menu a:hover,
.more-toggle:hover {
  border-bottom: 2px solid rgb(229.5, 242.3, 242.3);
  border-bottom: 2px solid var(--tertiary-color);
}

.more-dropdown-wrapper {
  margin-top: 0;
  height: 0;
}

.more-toggle {
  margin-top: 1rem;
  padding: 0;
  padding-left: 0.25rem;
  border: none;
  outline: none;
  color: rgb(51.8, 68.6, 75);
  color: var(--primary-color);
  cursor: pointer;
  border-radius: 0;
  background: none;
}

.more-toggle:hover {
  color: teal !important;
  color: var(--active-color) !important;
  background: none;
  border: none;
  box-shadow: none;
}

nav.is-empty .more-toggle {
  margin-top: 0.25rem;
}

.more-toggle:active,
.more-toggle:focus {
  outline: none;
  border: none;
}

.more-dropdown {
  border: 1px solid rgb(229.5, 242.3, 242.3);
  border: 1px solid var(--tertiary-color-darken-10);
  background-color: rgb(229.5, 242.3, 242.3);
  background-color: var(--tertiary-color);
  right: 0;
  top: 2rem;
  display: none;
}

.more-dropdown .meta-spacer {
  display: none;
}

.more-dropdown.show {
  display: inline-block;
}

.more-dropdown.show .menu-icon-helper-text.hidden {
  display: initial;
}

.more-dropdown::after,
.arrow_box::before {
  bottom: 100%;
  right: 1.5rem;
  border: solid transparent;
  content: " ";
  height: 0;
  width: 0;
  position: absolute;
  pointer-events: none;
}

.more-dropdown::after {
  border-color: rgba(136, 183, 213, 0);
  border-bottom-color: rgb(229.5, 242.3, 242.3);
  border-bottom-color: var(--tertiary-color);
  border-width: 0.5rem;
  margin-left: 0.5rem;
  margin-top: 0;
  margin-bottom: 0;
}

.more-dropdown::before {
  border-color: rgba(194, 225, 245, 0);
  border-bottom-color: rgb(229.5, 242.3, 242.3);
  border-bottom-color: var(--tertiary-color);
  border-width: 0.5rem;
  margin-left: 0.5rem;
}

.more-dropdown a {
  display: block;
  margin-bottom: 0;
  text-decoration: inherit;
  border: inherit;
  color: rgb(0, 89.6, 89.6);
  color: var(--interactive-color);
  padding: 0.5rem 1rem;
}

.more-dropdown a:hover {
  background-color: rgb(229.5, 242.3, 242.3);
  background-color: var(--tertiary-color-darken-10);
  border-bottom: none;
}

.meta-spacer--nav::after {
  content: " //";
  width: 1rem;
  font-size: 1rem;
  letter-spacing: 0.05rem;
}

.main-header .icon {
  margin-top: 0.25rem;
  margin-top: var(--x-height-offset);
}

.nav-x .icon {
  color: #4099ff;
}

.nav-x .icon:hover {
  color: teal;
  color: var(--active-color);
}

.nav-facebook .icon {
  color: #3a5795;
}

.nav-facebook .icon:hover {
  color: teal;
  color: var(--active-color);
}

.nav-mastodon .icon {
  color: #6364ff;
}

.nav-mastodon .icon:hover {
  color: teal;
  color: var(--active-color);
}

.nav-email .icon {
  color: #888;
}

.nav-email .icon:hover {
  color: teal;
  color: var(--active-color);
}

/* Increase tap target size for accessibility */
.nav-social a,
.nav-email a,
.nav-rss a,
.nav-search a {
  padding: 0 0.15rem;
}

.nav-social a:hover,
.nav-email a:hover,
.nav-rss a:hover,
.nav-search a:hover {
  border-bottom: none;
}

.main-header--hidden {
  transform: translateY(-100%);
}

.main-header--narrow {
  padding: 0.25rem 1rem;
}

.main-header--narrow .container {
  padding: 0;
}

.main-header--narrow .main-header__logo {
  display: none;
}

@media all and (min-width: 1024px) {
  .main-header--narrow .main-header__logo {
    display: block;
  }

  .main-header--narrow .main-header__logo img {
    height: 2rem !important;
    margin-top: 0.25rem;
  }
}

.main-header--narrow .main-header__blog-description {
  display: none;
}

.main-header--narrow .main-header__blog-title {
  padding-top: 0rem;
  font-size: 1.25rem;
  text-transform: uppercase;
  font-weight: 400;
  letter-spacing: 0.05rem;
}

@media all and (min-width: 640px) {
  .main-header--narrow .main-header__blog-title {
    padding-top: 0.4rem;
  }
}

@media all and (min-width: 1024px) {
  .main-header--narrow .main-header__blog-title {
    padding-top: 0.8rem;
  }
}

/* Hack: nav creeping outside container at narrow widths */
@media all and (max-width: 400px) {
  .main-header {
    padding-bottom: 0.5rem;
  }

  .main-header .container {
    display: block;
    text-align: center;
  }

  .main-header__text-container,
  .main-header__logo {
    padding-right: 0;
  }

  .more-dropdown.show {
    right: -60%;
    text-align: center;
    margin-left: auto;
    margin-right: auto;
    width: 100vw;
    left: -50vw;
    right: -50vw;
    overflow: auto;
  }

  .nav-ul {
    margin-left: 0;
  }

  .more-dropdown::after,
  .more-dropdown::before {
    left: 0;
    right: 0;
    margin: auto;
  }

  .menu {
    text-align: center;
    margin: 0 !important;
  }
}
@media all and (min-width: 1024px) {
  main.post-list {
    max-width: 2000px;
    margin: 0 auto;
  }
}

.post-teaser {
  display: flex;
  justify-content: flex-start;
}

.post-teaser__thumbnail {
  display: none;
  flex: 0 0 240px;
  order: 2;
  justify-content: flex-end;
  margin-top: 0.25rem;
}

@media all and (min-width: 640px) {
  .post-teaser__thumbnail {
    display: flex;
  }
}

@media all and (min-width: 1024px) {
  .post-teaser__thumbnail {
    flex: 0 0 300px;
  }
}

.post-teaser__thumbnail img {
  width: 240px;
  height: 135px;
  object-fit: cover;
  object-position: center;
}

@media all and (min-width: 1024px) {
  .post-teaser__thumbnail img {
    width: 300px;
    height: 169px;
  }
}

.post-teaser__text-container {
  margin-top: 0;
  flex: 3;
  order: 1;
}

@media all and (min-width: 640px) {
  .post-teaser__text-container {
    padding: 0 1rem 0 0;
  }
}

.post-teaser p {
  margin-bottom: 0;
  font-size: 1rem;
}

.teaser-meta__tags {
  display: block;
  margin-top: 0.25rem;
}

.teaser-meta__tags .meta-spacer:after {
  content: "";
  color: #bbb;
  color: var(--butler-color);
}

@media all and (min-width: 640px) {
  .teaser-meta__tags {
    display: inline;
  }

  .teaser-meta__tags .meta-spacer:after {
    content: " • ";
    color: rgb(229.5, 242.3, 242.3);
    color: var(--tertiary-color);
  }
}

.read-more__link {
  font-weight: 900;
  font-style: italic;
}

.read-more span::before {
  content: "read more ";
  text-decoration: none;
}

.read-more span[data-content]::before {
  content: attr(data-content);
}

.special-section__postlist {
}
.tag-info {
}

.tag-info__intro {
  padding-bottom: 1rem;
  display: inline-block;
}

.tag-info__image {
  float: left;
  margin: 1.25rem 2rem 1rem 0;
}

.tag-info__image img {
  max-height: 9rem;
}

.tag-info__name{
}

@media all and (max-width: 640px) {
  .tag-info__image,
  .tag-info__intro,
  .tag-info__name {
    width: 100%;
    text-align: center;
    display: block;
  }
}
.author-profile {
  font-weight: 400;
}

.author-profile__name {
  margin-top: 1rem;
}

@media all and (min-width: 640px) {
  .author-profile__image {
    float: left;
    margin: 1rem 2rem 0.5rem 0;
  }
}

.author-profile__image img {
  max-height: 9rem;
}

@media all and (max-width: 640px) {
  .author-profile__image,
  .author-profile__intro,
  .author-profile__name {
    text-align: center;
    display: block;
  }
}

.author-profile .fa,
.author-profile__stats {
  color: rgb(51.8, 68.6, 75);
  color: var(--secondary-color-mix-white-75);
}

.author-profile__meta a:hover {
  color: teal;
  color: var(--active-color);
}

.author-profile__meta {
  line-height: 2;
}

.author-profile__meta > * {
  line-height: 1.5;
}

.author-profile__meta span {
  display: block;
  margin: 0;
  font-size: 0.8rem;
}

@media all and (min-width: 640px) {
  .author-profile__meta span {
    display: inline;
    font-size: 1rem;
  }
}

.author-profile__stats {
  white-space: nowrap;
}
.posts-list {
  list-style: none;
  padding: 0;
  margin: 0;
}

.posts-list li {
  display: flex;
  align-items: baseline;
  gap: 0.5em;
  margin-bottom: 0.4em;
}

.posts-list a {
  padding-bottom: 1px;
}

.posts-list .posts-list__date {
  color: var(--mid-gray, #999);
  font-size: 0.75em;
  white-space: nowrap;
}

.cta-links {
  font-size: 0.85rem;
  color: var(--mid-gray, #999);
}

.cta-links a {
  color: var(--mid-gray, #999);
}

.post-nav {
  display: flex;
  justify-content: space-between;
  gap: 1rem;
  font-size: 0.95rem;
}

.post-nav__next {
  text-align: right;
}

.post-nav a {
  font-style: italic;
  font-weight: normal;
}

.comments-wrapper {
  margin-top: 2rem;
  text-align: center;
}

button.comments-toggle {
  background: none;
  background-color: transparent;
  border: 1px solid var(--tertiary-color);
  border-radius: 3px;
  padding: 0.5rem 1.25rem;
  font-family: var(--interface-font-stack);
  font-size: 0.9rem;
  font-weight: normal;
  text-transform: none;
  color: var(--secondary-color);
  cursor: pointer;
  box-shadow: none;
}

button.comments-toggle:hover {
  background: none;
  background-color: transparent;
  border: 1px solid var(--secondary-color);
  color: var(--primary-color) !important;
  box-shadow: none;
}

.comments-wrapper .comments-content {
  display: none;
}

.comments-wrapper--open .comments-content {
  display: block;
  text-align: left;
  margin-top: 1rem;
}
