@charset "UTF-8";
@import url("https://fonts.googleapis.com/css2?family=IBM+Plex+Sans:ital,wght@0,100..700;1,100..700&family=Newsreader:ital,opsz,wght@0,6..72,200..800;1,6..72,200..800&display=swap");
:root {
  --body-color: #515151;
  --body-background-color: white;
  --headings-color: #313131;
  --blockquote-color: #7a7a7a;
  --link-color: #0075da;
  --strong-color: #303030;
  --footer-color: #717171;
  --first-name-color: black;
  --last-name-color: #717171;
  --navbar-background-color: #f8f8f8:
    --navbar-font-color: #717171;
  --navbar-hover-color: white;
  --post-title-color: #313131;
  --post-date-color: #757575;
  --post-meta-color: #757575;
  --pre-background-color: #f9f2f4;
  --pre-inline-color: darkgreen;
  --btn-background-color: #fff;
  --btn-border-color: #ccc;
  --btn-font-color: #333; }
  @media (prefers-color-scheme: dark) {
    :root {
      --body-color: white;
      --body-background-color: #181818;
      --headings-color: rgb(216, 216, 216);
      --blockquote-color: #c4c4c4;
      --link-color: #3aa1ec;
      --strong-color: var(--headings-color);
      --footer-color: var(--headings-color);
      --first-name-color: white;
      --last-name-color: #909090;
      --navbar-background-color: #202020;
      --navbar-font-color: #909090;
      --navbar-hover-color: #303030;
      --post-title-color: #909090;
      --post-date-color: #909090;
      --post-meta-color: #909090;
      --pre-background-color: #333;
      --pre-inline-color: #ff2e88;
      --btn-background-color: #333;
      --btn-border-color: #444;
      --btn-font-color: var(--body-color); }
      :root img {
        filter: brightness(0.9) contrast(1.1); } }
  :root .dark-mode {
    --body-color: white;
    --body-background-color: #181818;
    --headings-color: rgb(216, 216, 216);
    --blockquote-color: #c4c4c4;
    --link-color: #3aa1ec;
    --strong-color: var(--headings-color);
    --footer-color: var(--headings-color);
    --first-name-color: white;
    --last-name-color: #909090;
    --navbar-background-color: #202020;
    --navbar-font-color: #909090;
    --navbar-hover-color: #303030;
    --post-title-color: #909090;
    --post-date-color: #909090;
    --post-meta-color: #909090;
    --pre-background-color: #333;
    --pre-inline-color: #ff2e88;
    --btn-background-color: #333;
    --btn-border-color: #444;
    --btn-font-color: var(--body-color); }
    :root .dark-mode img {
      filter: brightness(0.9) contrast(1.1); }

html {
  font-size: 20px; }

.post {
  font-family: "IBM Plex Sans", serif;
  font-size: 16px;
  line-height: 1.5; }

body {
  color: var(--body-color);
  background-color: var(--body-background-color);
  font-size: 0.8rem;
  font-family: "IBM Plex Sans", serif; }

a {
  color: var(--link-color);
  text-decoration: none; }
  a strong {
    color: inherit; }
  a:hover, a:focus {
    color: var(--link-color);
    text-decoration: none; }

h1,
h2,
h3,
h4,
h5,
h6 {
  margin-bottom: 0.5rem;
  font-weight: bold;
  line-height: 1.25;
  color: var(--headings-color);
  text-rendering: optimizeLegibility; }

h1 {
  font-size: 1.6rem;
  margin-top: 0rem; }

h2 {
  margin-top: 1rem;
  font-size: 1.35rem; }

h3 {
  margin-top: 1.5rem;
  font-size: 1.1rem; }

h4,
h5,
h6 {
  margin-top: 1rem;
  font-size: 0.75rem; }

p {
  margin-top: 0;
  margin-bottom: 1rem; }

strong {
  color: var(--strong-color); }

ul,
ol,
dl {
  margin-top: 0;
  margin-bottom: 1rem; }
  ul ul,
  ul ol,
  ul dl,
  ol ul,
  ol ol,
  ol dl,
  dl ul,
  dl ol,
  dl dl {
    margin-bottom: 0rem; }

dt {
  font-weight: bold; }

dd {
  margin-bottom: 0.5rem; }

li {
  margin-bottom: 0.1rem; }

code,
pre {
  font-family: monospace; }

:not(pre) code {
  padding: 0.25em 0.25em;
  font-size: 90%;
  background-color: var(--pre-background-color);
  border-radius: 5px;
  color: var(--pre-inline-color); }

pre {
  margin-top: 0;
  margin-bottom: 1rem;
  padding: 1rem;
  font-size: 0.8rem;
  line-height: 1.3;
  background-color: white;
  color: black; }
  pre code {
    padding: 0;
    font-size: 100%;
    color: inherit;
    background-color: transparent; }

blockquote {
  padding: 0.5rem 1rem;
  margin: 0.8rem 0;
  color: var(--blockquote-color);
  border-left: 0.25rem solid #e5e5e5; }
  blockquote ul:last-child,
  blockquote p:last-child {
    margin-bottom: 0; }

img,
video {
  display: block;
  max-width: 100%;
  margin: 0 0 1rem;
  border-radius: 5px; }

table {
  margin-bottom: 1rem;
  width: 100%;
  border: 1px solid #e5e5e5;
  border-collapse: collapse; }
  table td,
  table th {
    padding: 0.25rem 0.5rem;
    border: 1px solid #e5e5e5; }
  table tr:nth-child(odd) td,
  table tr:nth-child(odd) th {
    background-color: #f9f9f9; }

/*! normalize.css v3.0.3 | MIT License | github.com/necolas/normalize.css */
img,
legend {
  border: 0; }

legend,
td,
th {
  padding: 0; }

html {
  font-family: serif;
  -ms-text-size-adjust: 100%;
  -webkit-text-size-adjust: 100%; }

body {
  margin: 0; }

article,
aside,
details,
figcaption,
figure,
footer,
header,
hgroup,
main,
menu,
nav,
section,
summary {
  display: block; }

audio,
canvas,
progress,
video {
  display: inline-block;
  vertical-align: baseline; }

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

[hidden],
template {
  display: none; }

a {
  background-color: transparent; }

a:active,
a:hover {
  outline: 0; }

abbr[title] {
  border-bottom: 1px dotted; }

b,
optgroup,
strong {
  font-weight: 700; }

dfn {
  font-style: italic; }

h1 {
  font-size: 2em;
  margin: 0.67em 0; }

mark {
  background: #ff0;
  color: #000; }

small {
  font-size: 80%; }

sub,
sup {
  font-size: 75%;
  line-height: 0;
  position: relative;
  vertical-align: baseline; }

sup {
  top: -0.5em; }

sub {
  bottom: -0.25em; }

svg:not(:root) {
  overflow: hidden; }

figure {
  margin: 1em 40px; }

hr {
  box-sizing: content-box;
  height: 0; }

pre,
textarea {
  overflow: auto; }

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

button,
input,
optgroup,
select,
textarea {
  color: inherit;
  font: inherit;
  margin: 0; }

button {
  overflow: visible; }

button,
select {
  text-transform: none; }

button,
html input[type="button"],
input[type="reset"],
input[type="submit"] {
  -webkit-appearance: button;
  cursor: pointer; }

button[disabled],
html input[disabled] {
  cursor: default; }

button::-moz-focus-inner,
input::-moz-focus-inner {
  border: 0;
  padding: 0; }

input {
  line-height: normal; }

input[type="checkbox"],
input[type="radio"] {
  box-sizing: border-box;
  padding: 0; }

input[type="number"]::-webkit-inner-spin-button,
input[type="number"]::-webkit-outer-spin-button {
  height: auto; }

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

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

fieldset {
  border: 1px solid silver;
  margin: 0 2px;
  padding: 0.35em 0.625em 0.75em; }

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

/* Space out content a bit */
body {
  padding-bottom: 20px;
  line-height: 1.4;
  letter-spacing: 0.003em; }

.pure-g {
  font-family: inherit; }
  .pure-g [class*="pure-u"] {
    font-family: inherit; }

/* Everything but the jumbotron gets side spacing for mobile first views */
.header,
.footer {
  padding-right: 15px;
  padding-left: 15px; }

/* Custom page header */
.header {
  padding-bottom: 20px;
  border-bottom: 1px solid #313131;
  /* Make the masthead heading the same height as the navigation */ }
  .header h3 {
    margin-top: 0;
    margin-bottom: 0;
    line-height: 40px; }

.title h1 {
  font-size: 36px; }

/* Custom page footer */
.footer {
  padding-top: 19px;
  color: var(--footer-color); }

/* Customize container */
@media (min-width: 786px) {
  .container {
    max-width: 786px; } }

.social-media-buttons {
  padding-top: 5px; }
  .social-media-buttons button {
    font-size: 13px; }

.vert-align {
  float: none;
  display: inline-block;
  vertical-align: middle;
  margin-right: -4px; }

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

.headshot .img-profile {
  border-radius: 24px;
  max-height: 250px;
  margin-left: auto;
  margin-right: auto; }

.first-name {
  font-weight: 500;
  color: var(--first-name-color); }

.last-name {
  font-weight: 400;
  color: var(--last-name-color); }

.centered {
  text-align: center; }

.sharing-button {
  padding: 6px 0;
  padding-right: 12px;
  font-size: 14px; }
  .sharing-button i {
    color: black; }
  .sharing-button i:hover {
    color: #7f7f7f; }

/* Responsive: Portrait tablets and up */
@media screen and (min-width: 992px) {
  .header,
  .footer {
    padding-right: 0;
    padding-left: 0; }
  .header {
    margin-bottom: 30px; }
  .project-date {
    text-align: right; } }

h1,
h2,
h3,
h4,
h5,
h6,
sup {
  font-family: "Newsreader", sans-serif; }
  h1:target:before,
  h2:target:before,
  h3:target:before,
  h4:target:before,
  h5:target:before,
  h6:target:before,
  sup:target:before {
    content: "";
    display: block;
    height: 60px;
    margin-top: -60px; }

p {
  font-family: "IBM Plex Sans", serif; }

sup:target:before {
  display: inline-block; }

hr {
  border-color: #c3c3c3;
  border-width: 1px 0 0 0;
  border-style: dashed; }

hr.hard-separator {
  overflow: visible;
  padding: 0;
  border: none;
  border-top: medium double #c3c3c3;
  color: #c3c3c3;
  text-align: center; }

hr.hard-separator:after {
  content: "𐫱";
  display: inline-block;
  position: relative;
  top: -0.8em;
  font-size: 1.5em;
  padding: 0 0.25em;
  background: var(--body-background-color); }

.container {
  padding-right: 15px;
  padding-left: 15px;
  margin-right: auto;
  margin-left: auto; }

.btn {
  display: inline-block;
  padding: 6px 12px;
  margin-bottom: 0;
  font-size: 14px;
  line-height: 1.42857143;
  text-align: center;
  white-space: nowrap;
  vertical-align: middle;
  touch-action: manipulation;
  cursor: pointer;
  user-select: none;
  background-image: none;
  border: 1px solid transparent;
  border-radius: 4px;
  font-family: "Newsreader", sans-serif;
  font-weight: 500;
  color: var(--btn-font-color);
  background-color: var(--btn-background-color);
  border-color: var(--btn-border-color); }
  .btn:hover {
    color: #333;
    background-color: #e6e6e6;
    border-color: #adadad; }
  .btn:active {
    background-color: #d4d4d4; }
  .btn:focus {
    text-decoration: none;
    outline-offset: -2px; }

button[disabled] {
  opacity: 0.5; }

.label {
  display: inline;
  padding: 0.3em 0.6em 0.2em;
  font-size: 75%;
  font-weight: 700;
  line-height: 1;
  color: #fff;
  text-align: center;
  white-space: nowrap;
  vertical-align: baseline;
  border-radius: 0.25em; }
  .label.label-default {
    background-color: #777; }
  .label.label-primary {
    background-color: #337ab7; }
  .label i {
    vertical-align: text-top; }

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

pre {
  display: block;
  word-break: break-all;
  word-wrap: break-word;
  border: 1px solid #cccccc;
  border-radius: 4px; }

.navbar {
  border-bottom: 1px solid #ccc;
  border-radius: 0;
  box-shadow: none;
  margin-bottom: 1em;
  font-family: "Newsreader", sans-serif;
  background-color: var(--navbar-background-color); }

.navbar-wrapper {
  -webkit-font-smoothing: antialiased;
  height: 3em;
  overflow: hidden;
  -webkit-transition: height 0.3s;
  -moz-transition: height 0.3s;
  -ms-transition: height 0.3s;
  transition: height 0.3s; }

.navbar-wrapper.open {
  height: 12em; }

.navbar-toggle {
  width: 34px;
  height: 34px;
  position: absolute;
  top: 0;
  right: 0;
  display: none;
  margin-right: 12px; }

.navbar-toggle .bar {
  background-color: #777;
  display: block;
  width: 20px;
  height: 2px;
  border-radius: 100px;
  position: absolute;
  top: 24px;
  right: 7px;
  -webkit-transition: all 0.3s;
  -moz-transition: all 0.3s;
  -ms-transition: all 0.3s;
  transition: all 0.3s; }

.navbar-toggle .bar:first-child {
  -webkit-transform: translateY(-6px);
  -moz-transform: translateY(-6px);
  -ms-transform: translateY(-6px);
  transform: translateY(-6px); }

.navbar-toggle.x .bar {
  -webkit-transform: rotate(45deg);
  -moz-transform: rotate(45deg);
  -ms-transform: rotate(45deg);
  transform: rotate(45deg); }

.navbar-toggle.x .bar:first-child {
  -webkit-transform: rotate(-45deg);
  -moz-transform: rotate(-45deg);
  -ms-transform: rotate(-45deg);
  transform: rotate(-45deg); }

@media (max-width: 47.999em) {
  .navbar-toggle {
    display: block; } }

.navbar-link-list {
  font-size: 18px;
  float: right; }
  @media (max-width: 47.999em) {
    .navbar-link-list {
      float: none; } }
.pure-menu-heading {
  text-transform: none;
  font-size: 20px;
  padding-left: 0px;
  display: inline-block; }

.pure-menu-link {
  color: var(--navbar-font-color); }
  .pure-menu-link:hover {
    background-color: var(--navbar-hover-color); }

.youtube-player {
  position: relative;
  padding-bottom: 56.25%;
  margin: 0 1rem 1rem 1rem;
  height: 0;
  overflow: hidden; }
  @media screen and (max-width: 375px) {
    .youtube-player {
      margin: 0;
      margin-bottom: 1rem; } }
  .youtube-player iframe {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    border: 0; }
