:root {
  --text: black;
  --meta-text: #636a66;
  --highlight: rgb(68, 121, 68);
  --link: rgb(68, 121, 68);
  --visited-link: rgb(37, 65, 37);
  --code-text: rgb(46, 82, 46);
  --code-background: rgb(224, 245, 230);
  --border: color-mix(in srgb, var(--bg) 85%, black);
  --bg: rgb(248, 251, 243);
  --image-load: rgb(239, 242, 232);
  --secondary-text: rgb(64, 64, 64);
  --header: var(--text);
  
  --container-width: 735px;
  --container-padding: 15px; /* done in bootstrap */
  --sidenote-max-width: 320px;
  --content-padding: 25px;
  --outside-padding: 25px; /* this is added to by padding-left for the even-sidenotes to give more buffer from ToC */

  --blockquote-horizontal-padding: 32px;
}
::selection {
  background: var(--highlight);
  color: #fff;
}
/* Images on iOS Safari keep showing highlight, so disable that */
@supports (-webkit-touch-callout: none) {
  a[data-fancybox="gallery"] img {
    -webkit-user-select: none;
    user-select: none;
  }
}
::-moz-selection {
  background: var(--highlight);
  color: #fff;
}
*, *:before, *:after {
  box-sizing: border-box;
  -webkit-box-sizing: border-box;
  -moz-box-sizing: border-box;
}
@font-face {
  font-family: 'Crimson Pro';
  font-stretch: normal; /* Note that font-stretch is a % of normal width */
  font-style: normal; /* See note below */
  font-weight: 340 700;
  src: url('/themes/folium/fonts/Crimson_Pro/CrimsonPro-VariableFont_wght.woff2') format('woff2');
}
@font-face {
  font-family: 'Drop Cap';
  src: url('/themes/folium/fonts/dropcap.woff2') format('woff2'), url('/themes/folium/fonts/dropcap.ttf') format('truetype');
}
body {
  margin: 0;
  font: 20px "Crimson Pro", serif;
  font-weight: 340;
  background: var(--bg);
  color: var(--text);
  font-smooth: always;
  overscroll-behavior-x: none;
  -webkit-tap-highlight-color: rgba(0, 0, 0, 0);
  -webkit-text-size-adjust: 100%;
      -ms-text-size-adjust: 100%;
}
a {
  transform: translate3d(0, 0, 0);
  -webkit-transform: translate3d(0, 0, 0);
  -moz-transform: translate3d(0, 0, 0);
  -o-transform: translate3d(0, 0, 0);
  transition: ease-in-out 0.1s;
  -webkit-transition: ease-in-out 0.1s;
  -moz-transition: ease-in-out 0.1s;
  -o-transition: ease-in-out 0.1s;
  color: var(--link);
  position: relative;
  text-decoration: none;

  text-decoration-skip: ink;

  &:hover, &:focus {
    text-decoration: underline;
  }
  &.unpublished {
    &:hover, &:focus {
      text-decoration: line-through underline;
    }
  }
}
a.inline {
  text-decoration: underline;
  text-decoration-color: var(--link);
  text-underline-offset: 0.1em;
  transition: none;
}
article[id] {
  border-bottom: 0px;
}
article[id] a.inline:visited {
  color: var(--visited-link);
  text-decoration-color: var(--visited-link);
}
article[id] a.inline:hover {
  color: var(--link);
  text-decoration-color: var(--link);
  text-decoration-thickness: 0.14em;
  text-decoration-skip-ink: none;
}
a:hover, a:focus {
  color: var(--link);
}
a:focus {
  outline: thin dotted;
  outline: 5px auto -webkit-focus-ring-color;
  outline-offset: -2px;
}
a.unpublished {
  text-decoration: line-through;
}
hr {
  margin: 30px 0;
  border: 0;
  border-top: 1px solid var(--border);

  &.fleuron {
    &:before {
      content: "❧";
      display: block;
      color: var(--link);
      text-align: center;
      position: absolute;
      left: calc(50% - 25px);
      margin-top: -13px;
      width: 50px;
      height: 40px;
      background: var(--bg);
    }
  }

  &.fleuron.alt {
    &:before {
      content: "❦";
    }
  }
}
/* Get strikethrough to render in the right place */
s {
  text-decoration: underline var(--text) .1em;
  text-underline-offset: -.25em;
  text-decoration-skip-ink: none;
}
/** Table **/
table {
  margin: 0 auto 10px auto;
  text-align: center;
  background-color: transparent;
  border-spacing: 0;
  border-collapse: collapse;
}
th {
  text-align: left;
}
td, th {
  padding: 2px;
}
/* Header linking */
article > h2,
article > h3,
article > h4,
article > h5,
article > h6,
section#comments > h2 {
  padding-top: 20px;
  margin-top: 0px;
  cursor: pointer;
  position: relative;
}
article > h2:hover:before,
article > h3:hover:before,
article > h4:hover:before,
article > h5:hover:before,
article > h6:hover:before,
section#comments > h2:hover:before {
  content: '#';
  color: #777777;
  position: absolute;
  padding-right: 7px;
  left: -20px;
}
@media (min-width: 768px) {
  .container {
    width: 750px;
  }
}
@media (min-width: 992px) {
  .container {
    width: 970px;
  }
}
@media (min-width: 1200px) {
  .container {
    width: 1170px;
  }
}
.container {
  padding-right: 15px;
  padding-left: 15px;
  margin-right: auto;
  margin-left: auto;
  width: var(--container-width);
  min-height: calc(100vh - 228px);
  container-type: inline-size;
}
.padding-container {
  /* iOS 11 */
  padding-left: constant(safe-area-inset-left);
  padding-right: constant(safe-area-inset-right);
  
  /* iOS 11.2+ */
  padding-left: env(safe-area-inset-left);
  padding-right: env(safe-area-inset-right);
}
/** Header Selection */
.trigger {
  display: flex;
  gap: 12px;
  flex-direction: column;
  position: fixed;
  border-radius: 5px;
  padding: 12px 5px;
  left: 8px;
  top: 50%;
  transform: translateY(-50%) scale(.99);
  background: none;
  border: none;
  line-height: 1em;
  font-size: 0.8em;
  outline: none;
  font-family: bold;
  cursor: pointer;
  opacity: 0.8;

  transition: 0.3s ease;
}
.trigger:hover {
  opacity: 1;
  transform: translateY(-50%) scale(1);
  background-color: color-mix(in srgb, var(--bg) 95%, black);
}
.trigger span {
  height: 1px;
  background-color: #868787;
  width: 12px;
}
.trigger span.header3 {
  width: 10px;
  margin-left: 2px;
}
.trigger span.header4 {
  width: 8px;
  margin-left: 4px;
}
.trigger span.active {
  background-color: #363737;
}
.table-of-contents {
  position: fixed;
  z-index: 2;
  display: flex;
  flex-direction: column;
  position: fixed;
  border-radius: 5px;
  left: 35px;
  top: 50%;
  transform: translateY(-50%) scale(.99);
  background: none;
  border: 1px solid #e6e6e6;
  line-height: 1.2em;
  width: 240px;
  overflow-x: clip;
  cursor: default;
  outline: none;
  font-family: bold;
  transition: 0.3s ease;
  box-shadow: 0px 10px 15px -3px rgba(0, 0, 0, .1), 0px 4px 6px -2px rgba(0, 0, 0, .05);
  padding: 8px;
  background: color-mix(in srgb, var(--bg) 98%, white);

  font-family: system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol";
}
.table-of-contents span.contents {
  text-transform: uppercase;
  font-size: 11px;
  letter-spacing: .2px;
  padding: 4px;
  font-weight: 500;
}
.table-of-contents button#top-jump {
  -moz-appearance: none;
  -webkit-appearance: none;
  appearance: none;

  border: none;
  background: none;
  
  text-transform: uppercase;
  font-size: 13px;
  letter-spacing: .2px;
  padding: 2px 8px;
  font-weight: 500;

  &:hover {
    font-weight: 600;
  }
}
.table-of-contents .link {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  color: #868787;
  font-weight: 400;
  font-size: 15px;
  padding: 4px;

  cursor: pointer;

  transition: 0.3s ease;

  text-decoration: none !important;
}
.table-of-contents .link.header3 {
  margin-left: 10px;
}
.table-of-contents .link.header4 {
  margin-left: 20px;
}
.table-of-contents .link.active, .table-of-contents .link:hover {
  color: #363737;
}
/** Sidenotes */
.sidenote-indicator {
  margin-left: -3px;
}
.sidenote {
  float: right;
  clear: right;
  text-align: left;
  --gutter-width: calc((100vw - var(--container-width) + var(--container-padding) * 2) / 2);
  --sidenote-width: calc(var(--gutter-width) - var(--content-padding) - var(--outside-padding));
  width: min(var(--sidenote-max-width), var(--sidenote-width));
  font-size: 0.9em;
  line-height: 1.3;
  --margin: max(
    calc(-1 * (var(--sidenote-max-width) + var(--content-padding))),
    calc(-1 * (var(--sidenote-width) + var(--content-padding)))
  );
  margin-right: var(--margin);
  color: var(--secondary-text);
  white-space: nowrap;
  margin-bottom: 15px;
}
.sidenote .text {
  white-space: normal;
}
.sidenote img, .sidenote video {
  margin-top: 5px;
  margin-bottom: 5px;
}
.even-sidenote {
  float: left;
  clear: left;
  margin-right: 0;
  margin-left: var(--margin);
  text-align: right;
  padding-left: 20px;
}
.sidenote::before {
  content: attr(data-footnote-index) " ";
  left: -0.2em;
  top: -0.3em;
  font-size: 0.9em;
  position: relative;
}
blockquote .sidenote-wrapper {
  font-size: 20px;
  /* In case it's inside an italicized quote */
  font-style: normal;
}
blockquote .sidenote {
  margin-right: calc(var(--margin) - var(--blockquote-horizontal-padding));
}
blockquote .even-sidenote {
  margin-left: calc(var(--margin) - var(--blockquote-horizontal-padding));
}
li .even-sidenote {
  margin-left: calc(var(--margin) - 20px - 20px); /* has to account for indent on list */
}
/* Footnotes corresponding with sidenotes */
.footnotes img {
  max-height: 200px;
  max-width: 200px;
  display: block;
  margin: 0;
}
.footnotes li > p {
  /* Makes sure the line marker works with photos and videos */
  display: inline-block;
  vertical-align: top;
}
.img-splash {
  height: 250px;
  width: 100%;
  background: no-repeat center #f0f0f0;
  background-size: cover;
}
.img-row {
  margin-bottom: 10px;
}
.img-row-text, .img-row-images {
  display: flex;
  justify-content: space-evenly;
  gap: 0.7vw;
}
.img-row-text {
  font-size: 0.9em;
}
.img-row-text span {
  flex: 1;
}
.img-row-images span {
  flex: 1;
  display: flex;
  flex-direction: column;
  justify-content: center;
}

.img-row img {
  max-height: 500px;
}
/* Bootstrap inheritance */
article,
aside,
details,
figcaption,
figure,
footer,
header,
hgroup,
main,
nav,
section,
summary {
  display: block;
}
audio,
canvas,
progress,
video {
  display: inline-block;
  vertical-align: baseline;
}
audio:not([controls]) {
  display: none;
  height: 0;
}
sub,
sup {
  position: relative;
  font-size: 75%;
  line-height: 0;
  vertical-align: baseline;
}
sup {
  top: -.5em;
}
sub {
  bottom: -.25em;
}
img {
  border: 0;
}
svg:not(:root) {
  overflow: hidden;
}
hr {
  height: 0;
  -webkit-box-sizing: content-box;
     -moz-box-sizing: content-box;
          box-sizing: content-box;
}
button,
input,
textarea {
  margin: 0;
  font: inherit;
  color: inherit;
}
button {
  overflow: visible;
}
button,
select {
  text-transform: none;
}
button,
html input[type="button"],
input[type="submit"] {
  -webkit-appearance: button;
  cursor: pointer;
}
button::-moz-focus-inner,
input::-moz-focus-inner {
  padding: 0;
  border: 0;
}
h1,
h2,
h3,
h4,
h5,
h6 {
  font-family: inherit;
  font-weight: 500;
  line-height: 1.1;
  color: inherit;
}
h1,
h2,
h3 {
  margin-top: 20px;
  margin-bottom: 10px;
}
h4,
h5,
h6 {
  margin-top: 10px;
  margin-bottom: 10px;
}
h1 {
  font-size: 36px;
}
h2 {
  font-size: 30px;
}
h3 {
  font-size: 24px;
}
h4 {
  font-size: 18px;
}
h5 {
  font-size: 14px;
}
h6 {
  font-size: 12px;
}
p {
  margin: 0 0 10px;
}
ul,
ol {
  margin-top: 0;
  margin-bottom: 10px;
}
ul ul,
ol ul,
ul ol,
ol ol {
  margin-bottom: 0;
}
label {
  display: inline-block;
  max-width: 100%;
  margin-bottom: 5px;
  font-weight: bold;
}
textarea.form-control {
  height: auto;
}
@-ms-viewport {
  width: device-width;
}
.container:before,
.container:after,
.form-horizontal .form-group:before,
.form-horizontal .form-group:after {
  display: table;
  content: " ";
}
.container:after,
.form-horizontal .form-group:after {
  clear: both;
}
input,
button,
select,
textarea {
  font-family: inherit;
  font-size: inherit;
  line-height: inherit;
}
b,
strong {
  font-weight: bold;
}
img {
  vertical-align: middle;
}
textarea {
  overflow: auto;
}
/* Glyphicons */
@font-face {
  font-family: 'Glyphicons Halflings';

  src: url('../fonts/glyphicons-halflings-regular-subset.woff2') format('woff2'),
    url('../fonts/glyphicons-halflings-regular-subset.woff') format('woff');
}
.glyphicon {
  position: relative;
  top: 1px;
  display: inline-block;
  font-family: 'Glyphicons Halflings';
  font-style: normal;
  font-weight: normal;
  line-height: 1;

  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}
.glyphicon-search:before {
  content: "\e003";
}
.glyphicon-lock:before {
  content: "\e033";
}
.glyphicon-list:before {
  content: "\e056";
}
/** Code (all pre's have language) */
code, kbd, pre {
  font-family: Menlo, Monaco, Consolas, "Courier New", monospace;
  font-size: 1em;
}
pre code {
  padding: 0;
  border-radius: 0;
}
kbd {
  white-space: nowrap;
  padding: 2px 4px;
  font-size: 90%;
  color: #fff;
  background-color: #333;
  border-radius: 3px;
  -webkit-box-shadow: inset 0 -1px 0 rgba(0, 0, 0, .25);
          box-shadow: inset 0 -1px 0 rgba(0, 0, 0, .25);
}
:not(pre) > code[class*="language-"],
pre[class*="language-"] {
  font-size: 75%;
}
pre[class*="language-"] {
  padding: 38.5px 18px 13.5px 18px;
  margin: 20px -10px;
  border-radius: 7px;
}
pre[data-title] {
  container-type: inline-size;
}
pre[data-title] + .toolbar .toolbar-item:first-of-type {
  background: linear-gradient(90deg, #272822 90%, transparent);
}
pre[data-title] + .toolbar .toolbar-item:last-of-type {
  background: linear-gradient(90deg, transparent, #272822 10%);
}
pre[data-title]:after {
  content: attr(data-title);
  position: absolute;
  top: 9px;
  width: 100%;
  left: 0px;
  text-align: center;
  font-size: min(3cqw, 1em);
}
:not(pre) > code {
  padding:2px 4px;
  font-size:90%;
  border-radius:4px;
  color: var(--code-text);
  background-color: var(--code-background);
  font-size: 80%;
}
/** Disable line highlight indicators */
.line-highlight:before, .line-highlight[data-end]:after {
  content: "";
}
.line-highlight {
  background: linear-gradient(to right,#0D873226 70%,#0D873200);
  border-left: 0.3em solid var(--link);
  margin-top: 38px;
}
/**
Ruby styling (the defaults are crap on Safari)
*/
rt {
  margin-top: -1em;
}
/** Position: relative doesn't work on Safari */
@supports (-webkit-backdrop-filter: blur(1px)) {
  rt {
    transform: translateY(0.7em);
  }
}
/** And transform: translateY doesn't work on Chrome */
@supports not (-webkit-backdrop-filter: blur(1px)) {
  rt {
    position: relative;
    bottom: -0.4em;
  }
}
/** And if you're on Firefox...sorry? */
/**
  Code toolbar
*/
@font-face {
  font-family: 'Font Awesome';
  src: url('/themes/folium/fonts/fa-solid-900-subset.woff2');
}
div.code-toolbar>.toolbar {
  opacity: 1;
  display: flex;
  justify-content: space-between;
  width: 100%;
  z-index: 1;
}
.toolbar .toolbar-item {
  margin-top: -2px;
}
.toolbar .toolbar-item:first-of-type {
  margin-left: 10px;
  color: #8292a2 !important;
}
.toolbar .toolbar-item:first-of-type:before {
  content: "\f121";
  font-family: 'Font Awesome';
  color: #8292a2;
  font-size: 13px;
}
div.code-toolbar>.toolbar>.toolbar-item>a, div.code-toolbar>.toolbar>.toolbar-item>button, div.code-toolbar>.toolbar>.toolbar-item>span {
  background: none;
  user-select: none;
  box-shadow: none;
  color: #8292a2;
}
div.code-toolbar>.toolbar>.toolbar-item>a:focus, div.code-toolbar>.toolbar>.toolbar-item>a:hover, div.code-toolbar>.toolbar>.toolbar-item>button:focus, div.code-toolbar>.toolbar>.toolbar-item>button:hover, div.code-toolbar>.toolbar>.toolbar-item>span:focus, div.code-toolbar>.toolbar>.toolbar-item>span:hover {
  color: #8292a2;
}
div.code-toolbar>.toolbar>.toolbar-item>button {
  padding: 3px 5px;
}
.toolbar .toolbar-item:nth-of-type(2) button:hover {
  background-color: #8292a2;
  color: #272822 !important;
}
.toolbar .toolbar-item:nth-of-type(2):hover div.code-toolbar>.toolbar>.toolbar-item>button {
  color: #272822;
}
.toolbar .toolbar-item:nth-of-type(2) button:hover:before {
  color: #272822;
}
.toolbar .toolbar-item:nth-of-type(2) button:before {
  content: "\f328";
  font-family: 'Font Awesome';
  color: #8292a2;
  font-size: 13px;
  margin-right: 5px;
}

p.del, p.break {
  display: none;
}

p.del + pre, pre.del {
  background-color: #5a0c21;
}

p.del + pre:has(> code):before, pre:has(> code).del:before {
  background-color: #f9d9db;
  border-bottom: 13px solid #f9d9db;
}

/*
 * Header Nav
 */
/* Start of bootstrap */
.nav:before,
.nav:after,
.navbar:before,
.navbar:after,
.navbar-header:before,
.navbar-header:after,
.navbar-collapse:before,
.navbar-collapse:after {
  display: table;
  content: " ";
}
.nav:after,
.navbar:after,
.navbar-header:after,
.navbar-collapse:after {
  clear: both;
}
.collapse {
  display: none;
}
.collapse.in {
  display: block;
}
.collapsing {
  position: relative;
  height: 0;
  overflow: hidden;
  -webkit-transition: height .35s ease;
       -o-transition: height .35s ease;
          transition: height .35s ease;
}
.nav {
  padding-left: 0;
  margin-bottom: 0;
  list-style: none;
}
.nav > li {
  position: relative;
  display: block;
}
.nav > li > a {
  position: relative;
  display: block;
  padding: 10px 15px;
}
.nav > li > a:hover,
.nav > li > a:focus {
  text-decoration: none;
  background-color: #eee;
}
.navbar {
  position: relative;
  min-height: 50px;
  margin-bottom: 20px;
  border: 1px solid transparent;
}
.navbar-collapse {
  padding-right: 15px;
  padding-left: 15px;
  overflow-x: visible;
  -webkit-overflow-scrolling: touch;
  border-top: 1px solid transparent;
  -webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, .1);
          box-shadow: inset 0 1px 0 rgba(255, 255, 255, .1);
}
.navbar-collapse.in {
  overflow-y: auto;
}
.navbar-brand {
  float: left;
  height: 50px;
  padding: 15px 15px;
  font-size: 18px;
  line-height: 20px;
}
.navbar-brand:hover,
.navbar-brand:focus {
  text-decoration: none;
}
.navbar-toggle {
  position: relative;
  float: right;
  padding: 9px 10px;
  margin-top: 8px;
  margin-right: 15px;
  margin-bottom: 8px;
  background-color: transparent;
  background-image: none;
  border: 1px solid transparent;
  border-radius: 4px;
}
.navbar-toggle:focus {
  outline: 0;
}
.navbar-toggle .icon-bar {
  display: block;
  width: 22px;
  height: 2px;
  border-radius: 1px;
}
.navbar-toggle .icon-bar + .icon-bar {
  margin-top: 4px;
}
.navbar-nav {
  margin: 7.5px -15px;
}
.navbar-nav > li > a {
  padding-top: 10px;
  padding-bottom: 10px;
  line-height: 20px;
}
.navbar-default {
  background-color: #f8f8f8;
  border-color: #e7e7e7;
}
.navbar-default .navbar-brand {
  color: #777;
}
.navbar-default .navbar-brand:hover,
.navbar-default .navbar-brand:focus {
  color: #5e5e5e;
  background-color: transparent;
}
.navbar-default .navbar-nav > li > a {
  color: #777;
}
.navbar-default .navbar-nav > li > a:hover,
.navbar-default .navbar-nav > li > a:focus {
  color: #333;
  background-color: transparent;
}
.navbar-default .navbar-nav > .active > a,
.navbar-default .navbar-nav > .active > a:hover,
.navbar-default .navbar-nav > .active > a:focus {
  color: #555;
  background-color: #e7e7e7;
}
.navbar-default .navbar-toggle {
  border-color: #ddd;
}
.navbar-default .navbar-toggle:hover,
.navbar-default .navbar-toggle:focus {
  background-color: #ddd;
}
.navbar-default .navbar-toggle .icon-bar {
  background-color: #888;
}
.navbar-default .navbar-collapse {
  border-color: #e7e7e7;
}
/* End of bootstrap */
.navbar-header {
  margin: auto;
  float: none;
}
header#top {
  border-bottom: 6px solid var(--link);
  margin-bottom: 0;
  box-shadow: 0 1px 10px rgba(0, 0, 0, 0.05);
}
header#top nav {
  background: color-mix(in srgb, var(--bg) 90%, white);
  border-radius: 0;
  border-width: 0 0 1px 0;
  border-bottom-color: #eee;
  margin-bottom: 0;
  min-height: 85px;
  display: flex;
}
header#top nav .navbar-brand {
  background: 10px center transparent no-repeat;
  height: 80px;
  padding: 0 15px;
  display: flex;
  align-items: center;

  font-size: 35px;
  letter-spacing: 0;
  font-weight: 500;
  text-transform: initial;
  color: var(--text);
}
#topBranch {
  overflow: hidden;
  height: 81px;
  display: flex;
  align-items: center;
  position: absolute;
  margin-top: -41px;
  z-index: 1;
}
#topBranch.fixed {
  position: fixed;
  margin-top: -137px;
}
#topBranch canvas {
  margin-left: -10px;
}
header#top nav .navbar-brand img {
  width: 37px;
  margin-right: 5px;
}
header#top img.admin {
  transform: rotate(180deg);
}
.navbar-default .navbar-collapse {
  position: absolute;
  right: 0px;
}
header#top nav ul {
  margin: 0;
}
header#top nav ul li a {
  font-weight: 600;
  color: #888888;
  padding: 30px 15px;
}
header#top nav ul li a:hover {
  color: var(--text);
}
header#top nav ul li a[href='/subscribe'] {
  color: #666;
}
header#top nav a {
  transform: translate3d(0, 0, 0);
  -webkit-transform: translate3d(0, 0, 0);
  -moz-transform: translate3d(0, 0, 0);
  -o-transform: translate3d(0, 0, 0);
  transition: ease-in-out 0.1s;
  -webkit-transition: ease-in-out 0.1s;
  -moz-transition: ease-in-out 0.1s;
  -o-transition: ease-in-out 0.1s;
  font-size: 14px;
  letter-spacing: 1px;
  text-transform: uppercase;
}
header#top nav li.active > a {
  background: color-mix(in srgb, var(--bg) 98%, black);
  color: #999999;
}
header#top nav li.active > a:hover {
  color: #999999;
}
header#top .navbar-default .navbar-toggle {
  margin-top: 18px;
  margin-bottom: 18px;
}
/** Used for rendering the inputs for commenting **/
.form-control {
  display: block;
  width: 100%;
  height: 34px;
  padding: 6px 12px;
  font-size: 14px;
  line-height: 1.42857143;
  color: #555;
  background-color: #fff;
  background-image: none;
  border: 1px solid #ccc;
  border-radius: 4px;
  -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075);
          box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075);
  -webkit-transition: border-color ease-in-out .15s, -webkit-box-shadow ease-in-out .15s;
       -o-transition: border-color ease-in-out .15s, box-shadow ease-in-out .15s;
          transition: border-color ease-in-out .15s, box-shadow ease-in-out .15s;

  &:focus {
    border-color: #66afe9;
    outline: 0;
    -webkit-box-shadow: inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px rgba(102, 175, 233, .6);
            box-shadow: inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px rgba(102, 175, 233, .6);
  }

  &::-moz-placeholder, &:-ms-input-placeholder, &::-webkit-input-placeholder {
    color: #777;
    opacity: 1;
  }
}
/**
 *  List of Posts
 */
.listHeading {
  padding: 0 25px 10px 25px;
}
.listHeading h2 {
  text-transform: uppercase;
  letter-spacing: 6px;
  text-align: center;
  font-weight: 300;
  font-size: 2em;
  margin: 20px 0 5px 0;
}
.listHeading p {
  font-style: italic;
  color: var(--secondary-text);
  text-align: center;
  font-size: 0.9em;
  line-height: 1.3;
  margin-bottom: 40px;
}
#previousPosts {
  padding: 0 25px 50px 25px;
}
#previousPosts.page {
  padding: 0 0 50px 0;
}
#previousPosts .year {
  padding-left: 10px;
  font-size: 22px;
}
#previousPosts li {
  display: block;
}
.articleLink {
  display: flex;
  justify-content: space-between;
  padding: 10px 10px;
  border-radius: 3px;
  transition: 0.3s ease;
}
.articleLink .name {
  font-weight: 400;
  transition: 0.2s ease;
  padding-right: 20px;
}
.articleLink .date {
  opacity: 0;
  transition: 0.3s ease;
}
/* Only do hover animations for non-mobile */ 
@media (hover: hover) and (pointer: fine) {
  .articleLink:hover {
    background-color: var(--code-background);
    text-decoration: none;
  }
  .articleLink:hover .name {
    font-weight: 600;
    padding-right: 0px;
  }
  .articleLink:hover .date {
    opacity: 1;
  }
}
/**
 * File Objects
 */
f {
  border: 1px solid var(--code-text);
  background-color: #f9f9f9;
  padding: 1px 5px;
  text-wrap: nowrap;
  font-size: 0.93em;
  border-radius: 5px;
  background: transparent;
}
/*
 *  Article
 */
.mainWrapper {
  width: calc(100% - 390px);
  padding-left: 10px;

  /* iOS 11 */
  padding-left: constant(safe-area-inset-left);
  padding-right: constant(safe-area-inset-right);
  
  /* iOS 11.2+ */
  padding-left: env(safe-area-inset-left);
  padding-right: env(safe-area-inset-right);
}
main {
  margin-top: 20px;
}
main article {
  padding-bottom: 25px;
  margin-bottom: 5px;
  border-bottom: 2px solid var(--border);
  word-break: break-word;
  font-family: "Crimson Pro", serif;

  font-size: 20px;
  line-height: 28px;
  padding-bottom: 25px;
  color: var(--text);
}
main article:last-of-type {
  border-bottom: none;
}
main article[id] > p:nth-of-type(1)::first-letter {
  font-family: "Drop Cap", serif;
  font-size: 4em;
  float: left;
  line-height: 1em;
  margin-right: 0.05em;
  margin-top: 0.05em;
  color: var(--link);
}
main article header {
  margin-bottom: 15px;
}
main article[id] header {
  margin-top: -15px;
}
main article header h1 {
  font-size: 42px;
  line-height: 48px;
  color: var(--header);
}
main article[id] header h1 {
  color: var(--link);
  font-size: 60px;
  line-height: 0.95;
}
main article header h1 a {
  color: var(--header);
}
main article header h1 a:hover {
  color: var(--header);
}
main article header .meta,
main .search-results li .meta {
  font-size: 18px;
  color: var(--meta-text);
}
main article header .meta {
  margin: 4px 0 8px;
  margin-top: 15px;
  display: flex;
  align-items: center;
  gap: 0.3em;
  flex-wrap: wrap;
}
.meta time {
  font-style: italic;
}
/* Tags */
.meta .delimiter {
  margin: -2px 4px 0 6px;
  unicode-bidi: bidi-override;
}
.meta .tag {
  color: var(--meta-text);
  font-variant: small-caps;
  letter-spacing: 1px;

  font-size: 1.1em;
  margin-top: -2px;

  text-decoration: underline;
  text-decoration-color: var(--meta-text);
  text-underline-offset: 0.1em;
  transition: none;
}
.meta .tag:hover {
  color: var(--link);
  text-decoration-color: var(--link);
  text-decoration-thickness: 0.14em;
  text-decoration-skip-ink: none;
}
article[id] a.inline:visited {
  color: var(--visited-link);
  text-decoration-color: var(--visited-link);
}
/* Used while loading in */
main a[data-fancybox="gallery"] > img:not([data-loaded]) {
  background-color: var(--image-load);
}
/* Used while loading in */
main a[data-fancybox="gallery"] > img[data-loaded] {
  width: auto;
  height: auto;
}
/* When it loads, ignore the width/height */
main img {
  max-width: 100%;
  max-height: 500px;
  margin: 0 auto;
  display: block;
  object-fit: contain;
}
main img.post-preview {
  width: 50px;
}

main img.pixelated {
  image-rendering: optimizeSpeed;             /* STOP SMOOTHING, GIVE ME SPEED  */
  image-rendering: -moz-crisp-edges;          /* Firefox                        */
  image-rendering: -o-crisp-edges;            /* Opera                          */
  image-rendering: -webkit-optimize-contrast; /* Chrome (and eventually Safari) */
  image-rendering: pixelated; /* Chrome */
  image-rendering: optimize-contrast;         /* CSS3 Proposed                  */
  -ms-interpolation-mode: nearest-neighbor;   /* IE8+                           */
}
.pdf-embed {
  margin-bottom: 10px;
}
.post-comment {
  display: inline-block;
  padding: 6px 12px;
  margin-bottom: 0;
  font-size: 14px;
  color: #333;
  background-color: #fff;
  border: 1px solid #ccc;

  font-weight: normal;
  line-height: 1.42857143;
  text-align: center;
  white-space: nowrap;
  vertical-align: middle;
  cursor: pointer;
  -webkit-user-select: none;
     -moz-user-select: none;
      -ms-user-select: none;
          user-select: none;
  background-image: none;
  border-radius: 4px;

  &:focus, &:active {
    outline: thin dotted;
    outline: 5px auto -webkit-focus-ring-color;
    outline-offset: -2px;
  }
  &:hover, &:focus {
    color: #333;
    text-decoration: none;
  }
  &:hover, &:focus, &:active {
    background-color: #e6e6e6;
    border-color: #adadad;
  }
  &:active {
    background-image: none;
    outline: 0;
    -webkit-box-shadow: inset 0 3px 5px rgba(0, 0, 0, .125);
            box-shadow: inset 0 3px 5px rgba(0, 0, 0, .125);
  }
}

blockquote {
  margin: 10px 0;
  font-size: 0.96em;
  background: #eaf3de;
  padding: 24px var(--blockquote-horizontal-padding);
  position: relative;
  /* background: rgb(217 235 217); */
}
blockquote .corner {
  position: absolute;
  height: min(30px, 20%);
  aspect-ratio: 1;

  --offset: 10px;
  --thickness: 2px;

  &.top-left {
    top: var(--offset);
    left: var(--offset);
    border-top: var(--thickness) solid var(--link);
    border-left: var(--thickness) solid var(--link);
  }

  &.top-right {
    top: var(--offset);
    right: var(--offset);
    border-top: var(--thickness) solid var(--link);
    border-right: var(--thickness) solid var(--link);
  }

  &.bottom-left {
    bottom: var(--offset);
    left: var(--offset);
    border-bottom: var(--thickness) solid var(--link);
    border-left: var(--thickness) solid var(--link);
  }

  &.bottom-right {
    bottom: var(--offset);
    right: var(--offset);
    border-bottom: var(--thickness) solid var(--link);
    border-right: var(--thickness) solid var(--link);
  }
}

blockquote p:last-of-type {
  margin-bottom: 0px;
}

main video {
  width: 100%;
  max-width: 400px;
  margin: 0 auto;
  display: block;
}
main article h1,
main article h2,
main article h3,
main article h4 {
  font-weight: 400;
}
main article h2 {
  padding-top: 15px;
}
main article h3 {
  padding-top: 10px;
}
main article h4 {
  font-size: 22px;
  padding-top: 5px;
}
main .pager {
  padding-left: 0;
  margin: 20px 0;
  text-align: center;
  list-style: none;

  margin-bottom: 50px;

  &:before, &:after {
    display: table;
    content: " ";
  }
  &:after {
    clear: both;
  }
}
.pagination {
  display: flex;
  align-items: center;
  position: relative;
  padding: 20px 10px;
  margin: 20px 0;
}
.count {
  flex: 1;
  font-size: 0.9em;
  text-align: center;
}
.count .num {
  padding: 0 10px;
}
.pagination .newer {
  position: absolute;
  left: 15px;

  a {
    padding-left: 15px;
  }

  &:before {
    content: "‹ ";
    color: var(--link);
    position: absolute;
    left: 0px;
    z-index: -1;
  }
}
.pagination .older {
  position: absolute;
  right: 15px;

  a {
    padding-right: 15px;
  }

  &:after {
    content: " ›";
    color: var(--link);
    position: absolute;
    right: 0px;
    z-index: -1;
  }
}

main .pager li {
  display: inline;
}
main .pager a {
  display: inline-block;
  padding: 5px 14px;
  background-color: #fff;
  border: 1px solid #ddd;
  border-radius: 15px;
  font-size: 13px;
  color: #848484;

  &:hover, &:focus {
    text-decoration: none;
    background-color: #eee;
  }
}
.pager .previous > a{
  float: left;
}
main .pager .next > a {
  float: right;
}
main .pager a:hover {
  color: var(--text);
}
/* Search results */
main .search-results {
  padding-left: 0;
  list-style: none;
}
main .search-results li {
  border-bottom: 2px solid var(--border);
  margin-bottom: 15px;
  padding: 10px 0 20px 0;
}
main .search-results li:last-of-type {
  border-bottom: none;
}
main .search-results li h2 {
  padding: 0;
  margin: 0;
}
main .search-results li h2 a {
  font-size: 0.85em;
  color: var(--text);
}
main .search-results li .snippet {
  margin: 0;
  color: var(--text);
}
main .search-results li mark {
  background: var(--code-background);
  color: var(--code-text);
  padding: 0 2px;
  border-radius: 2px;
}
main a[href*='/admin/posts'] {
  display: inline-block;
  padding: 5px 14px;
  background-color: #fff;
  border: 1px solid #ddd;
  border-radius: 15px;
  font-size: 13px;
  color: #848484;
  float: right;
  margin-bottom: 10px;
}
main a[href*='/admin/posts']:hover, 
main a[href*='/admin/posts']:focus {
  text-decoration: none;
  background-color: #eee;
}
section#comments h2 {
  font-weight: 300;
  color: #777777;
  margin-bottom: 20px;
}
section#comments .commentlist {
  padding: 0;
  margin-bottom: 40px;
}
section#comments .commentlist li {
  list-style: none;
  padding: 10px;
  margin-bottom: 10px;
}
section#comments .commentlist li:hover {
  background: rgba(0, 0, 0, 0.03);
}
section#comments .commentlist li header {
  margin-bottom: 10px;
  padding-left: 50px;
  padding-top: 5px;
  background: url('../img/person.png') 5px center no-repeat transparent;
}
section#comments .commentlist li header h2 {
  font-weight: 600;
  margin: 0;
  padding: 0;
}
section#comments .commentlist li header h2,
section#comments .commentlist li header time {
  font-size: 15px;
  color: #919191;
}
section#comments .commentlist li header time {
  color: #c3c3c3;
}
section#comments .commentlist li p {
  color: #919191;
  font-size: 17px;
  line-height: 26px;
  padding-left: 50px;
  word-break: break-word;
}
section#comments .notification .success {
  padding: 5px;
  color: var(--text);
  background: #2ecc71;
}
form#comment {
  margin-bottom: 20px;
}
form#comment input,
form#comment button {
  margin: 10px 0;
}
/*
 *  Footer
 */
footer {
  background: color-mix(in srgb, var(--bg) 98%, black);
  border-top: 4px solid var(--link);
  color: var(--meta-text);
  padding: 50px 0;
  font-size: 16px;
  position: relative;
}
footer .wrapper {
  max-width: 900px;
  margin: 0 auto;
  display: flex;
}
footer p {
  float: left;
  margin: 0;
  line-height: 20px;
}
footer .wrapper a {
  padding: 0 5px;
  color: #777777;
  transform: translate3d(0, 0, 0);
  -webkit-transform: translate3d(0, 0, 0);
  -moz-transform: translate3d(0, 0, 0);
  -o-transform: translate3d(0, 0, 0);
  transition: ease-in-out 0.1s;
  -webkit-transition: ease-in-out 0.1s;
  -moz-transition: ease-in-out 0.1s;
  -o-transition: ease-in-out 0.1s;
}
footer .wrapper a:hover {
  background: none;
  color: var(--text);
  text-decoration: none;
}
/*
 *  Search
 */
#search {
  width: 100%;
  height: 100%;
  position: fixed;
  top: 0;
  left: 0;
  background: color-mix(in srgb, var(--bg) 93%, transparent);
  display: none;
}
#search .cell {
  display: table-cell;
  vertical-align: middle;
}
#search .cell .cell-inner {
  width: 60%;
  margin: 0 auto;
}
#search .cell .cell-inner input[type="text"] {
  border: 1px solid #cccccc;
  border-radius: 50px;
  outline: none;
  width: 100%;

  height: 46px;
  padding: 10px 16px;
  font-size: 18px;
  line-height: 1.33;
}
#search .cell .cell-inner input[type="text"]:focus {
  border-color: #999999;
}
#search button.close {
  position: fixed;
  top: 10px;
  right: 20px;
  
  padding: 3px 8px;
  background: none;
  font-size: 30px;
  cursor: pointer;
  border: 0;
  color: #333;
  font-weight: normal;
  line-height: 1.42857143;

  display: inline-block;

  text-align: center;
  user-select: none;
  text-shadow: 0 1px 0 #fff;
  opacity: 0.2;

  &:focus, &:hover {
    color: #000;
    text-decoration: none;
    opacity: .5;
  }
}
/** Retina screens */
@media (min-resolution: 192dpi) {
  a.inline {
    text-decoration-thickness: 0.07em;
  }
  .trigger span {
    height: 1.5px;
  }
}
@media only screen and (max-width: 845px) {
  aside {
    display: none;
  }
  .mainWrapper {
    width: 100%;
  }
}
/* Calculated as --sidenote-max-width * 2 + --content-padding * 2 + --container-width + 55 for ToC */
@media only screen and (min-width: 1480px) {
  .even-sidenote {
    padding-left: 0px;
  }
}
@media only screen and (max-width: 1200px) {
  .container {
    width: 58.3%;
  }
  .sidenote {
    width: 33%;
    margin-right: -37%;
  }
  blockquote .sidenote {
    margin-right: calc(-37% - var(--blockquote-horizontal-padding));
  }
  .even-sidenote {
    margin-left: -37%;
    margin-right: 0;
  }
  blockquote .even-sidenote {
    margin-left: calc(-37% - var(--blockquote-horizontal-padding) - 3px); /* not sure why 3px, but levels out */
  }
}
@media only screen and (max-width: 950px) {
  footer .wrapper {
    flex-direction: column;
    align-items: center;
    gap: 10px;
    margin: -10px auto;
  }
}
@media only screen and (min-width: 791px) {
  .navbar {
    border-radius: 4px;
  }
  .navbar-header {
    float: left;
  }
  .navbar-collapse {
    width: auto;
    border-top: 0;
    -webkit-box-shadow: none;
            box-shadow: none;
  }
  .navbar-collapse.collapse {
    display: block !important;
    height: auto !important;
    padding-bottom: 0;
    overflow: visible !important;
  }
  .navbar-collapse.in {
    overflow-y: visible;
  }
  .navbar-toggle {
    display: none;
  }
  .navbar-nav {
    float: left;
    margin: 0;
  }
  .navbar-nav > li {
    float: left;
  }
  .navbar-nav > li > a {
    padding-top: 15px;
    padding-bottom: 15px;
  }
  .navbar-nav.navbar-right:last-child {
    margin-right: -15px;
  }
  .navbar-right {
    float: right !important;
  }
  .sidenote[data-footnote-name^="clip"] {
    --maxClipHeight: 300px;
    display: block;
    max-height: var(--maxClipHeight);
    overflow-y: clip;
    position: relative;
    transition: 0.2s ease;
  }
  .sidenote[data-footnote-name^="clip"]:hover {
    max-height: 50em;
  }
  .sidenote[data-footnote-name^="clip"]::after {
    content: "";
    position: absolute;
    left: 0;
    right: 0;
    bottom: 0;
    height: 48px;
    pointer-events: none;
    background: linear-gradient(to bottom, transparent, var(--bg));
    transition: 0.2s ease;
    transition-delay: 0.1s;
  }
  .sidenote[data-footnote-name^="clip"]:hover:after {
    height: 0px;
    transition-delay: 0s;
  }
}
@media only screen and (max-width: 790px) {
  .navbar-nav>li {
    float: none;
  }
  .navbar-right {
    float: none !important;
  }
  article > h2:hover:before,
  article > h3:hover:before,
  article > h4:hover:before,
  article > h5:hover:before,
  article > h6:hover:before,
  section#comments > h2:hover:before {
    content: '';
  }
  article > h2:hover:after,
  article > h3:hover:after,
  article > h4:hover:after,
  article > h5:hover:after,
  article > h6:hover:after,
  section#comments > h2:hover:after {
    content: '#';
    color: #777777;
    padding-left: 5px;
  }
  .table-of-contents {
    right: 43px;
    left: auto;
    top: 55px;
    transform: initial; 
  }
  .trigger {
    display: none;
    position: fixed;
    z-index: 2;
    top: 1em;
    right: 1em;
    left: auto;
    opacity: 1;
    transform: initial;
    background-color: color-mix(in srgb, var(--bg) 95%, white);
    border: 1px solid #ddd;

    width: 36px;
    height: 36px;
    border-radius: 18px;

    float: right;
  }
  .trigger.mobile-show {
    display: flex;
    align-items: center;
    justify-content: center;
  }
  .trigger:before {
    content: "\e056";
    font-family: 'Glyphicons Halflings';
    font-style: normal;
    font-weight: 400;
  }
  .trigger:hover {
    transform: initial;
    background-color: color-mix(in srgb, var(--bg) 96%, black);
  }
  .trigger span {
    display: none;
  }
  /* Swap the order when sidenotes autocollapse so that they appear below. */
  .img-row {
    display: flex;
    flex-direction: column;
  }
  .img-row-footnotes {
    order: 2;
  }
  .sidenote {
    display: none;
    float: none;
    clear: both;
    width: calc(100vw - 2 * var(--container-padding) - 2em);
    margin: 0;
    padding: 1em;
    box-sizing: content-box;
    text-align: left;
  }
  blockquote .sidenote, blockquote .even-sidenote {
    margin: 0;
    width: calc(100vw - 2 * var(--container-padding) - 2 * var(--blockquote-horizontal-padding) - 2em);
  }
  li .sidenote, li .even-sidenote {
    /* offset the 40px ul indent + 1em margin */
    margin-left: calc(-40px + 1em);
  }
  .sidenote.visible {
    display: block;
  }
  .sidenote-indicator {
    color: var(--link);
    cursor: pointer;
    padding-bottom: 4px;
    border-bottom: 1px solid var(--link);
    margin-left: -1px;
  }
  .articleLink .date {
    display: none;
  }
  footer {
    padding: 25px;
  }
  pre[class*="language-"] {
    margin: 15px -5px;
  }
  header#top .navbar-toggle:hover,
  header#top .navbar-toggle:focus {
    background: #f8f8f8;
  }
  header#top nav .navbar-collapse {
    padding: 0;
    position: initial;
  }
  header#top nav {
    display: block;
  }
  header#top .navbar-default .navbar-toggle {
    position: absolute;
    right: 0px;
    top: 4px;
  }
  header#top .navbar-brand {
    padding-top: 5px;
  }
  header#top .navbar-brand strong {
    display: block;
  }
  .container {
    width: 100%;
  }
}

@media print {
  aside {
    display: none;
  }

  .mainWrapper {
    width: 100%;
  }

  form {
    display: none;
  }

  a[data-fancybox="gallery"]:after {
    display: none !important;
  }
}