@charset "UTF-8";
html,
body,
button,
div,
span,
applet,
object,
iframe,
h1,
h2,
h3,
h4,
h5,
h6,
hr,
input,
p,
blockquote,
pre,
a,
abbr,
acronym,
address,
big,
cite,
code,
del,
dfn,
dialog,
em,
img,
ins,
kbd,
q,
s,
samp,
small,
strike,
strong,
sub,
sup,
tt,
var,
b,
u,
i,
center,
dl,
dt,
dd,
ol,
ul,
li,
fieldset,
form,
label,
legend,
table,
caption,
tbody,
tfoot,
thead,
tr,
th,
td,
article,
aside,
canvas,
details,
embed,
figure,
figcaption,
footer,
header,
hgroup,
menu,
nav,
output,
ruby,
section,
summary,
time,
mark,
audio,
video {
  border: 0;
  font: inherit;
  font-size: 100%;
  margin: 0;
  padding: 0;
  vertical-align: baseline;
}

/* HTML5 display-role reset for older browsers */
article,
aside,
details,
figcaption,
figure,
footer,
header,
hgroup,
menu,
nav,
section {
  display: block;
}

body {
  line-height: 1;
}

ol,
ul {
  list-style: none;
}

blockquote,
q {
  quotes: none;
}

blockquote::before,
blockquote::after,
q::before,
q::after {
  content: "";
  content: none;
}

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

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

:root {
  --color-scheme: light;
  --text-color: #1f2328;
  --secondary-text-color: #59636e;
  --background-color: #ffffff;
  --font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", "Noto Sans",
    Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji";
  --font-family-heading: "IBM Plex Sans", sans-serif;
  --font-family-code: ui-monospace, SFMono-Regular, SF Mono, Menlo, Consolas, Liberation Mono, monospace,
    Liberation Mono, monospace;
  --line-height: 1.56;
  --link-color: #1a0dab;
  --link-hover-color: #a30041;
  --border-color: #d1d9e0b3;
  --highlight-background: #fff8c5;
  --highlight-text-color: var(--text-color);
  --placeholder-color: var(--secondary-text-color);
  --pre-background-color: #f6f8fa;
  --pre-color: var(--text-color);
  --kbd-background-color: var(--pre-background-color);
  --kbd-border-color: var(--border-color);
  --hr-color: #d1d9e0;
  --blockquote-border-color: #0bc501; /* #d1d9e0; */
  --table-border-color: #e9ebef;
  --table-head-border-color: #dadfe4;
  --table-row-background: #ffffff;
  --table-row-alt-background: #ffffff;
  --code-background-color: #818b981f;
  --code-border-radius: 6px;
  --focus-outline: #1a0dab;
  --focus-box-shadow: none;
  --gutter: 1.5rem;
  --gap: 1rem;
  --subnav-link-color: #7a7a7a;
  --subnav-link-hover-color: var(--text-color);
  /* playground */
  --blue: #1a0dab;
  --pink: #e35b8f;
  --color-text-subtle: #59636e;
}

/* main light theme */
*:target {
  scroll-margin-top: 1.25rem;
}

html {
  font-size: 14px;
}

body {
  color-scheme: var(--color-scheme);
  -ms-text-size-adjust: 100%;
  -webkit-text-size-adjust: 100%;
  margin: 0;
  color: var(--text-color);
  background-color: var(--background-color);
  font-family: var(--font-family);
  word-wrap: break-word;
  line-height: var(--line-height);
  display: flex;
  flex-direction: column;
  min-height: 100vh;
  min-width: 20rem;
}

details,
figcaption,
figure {
  display: block;
}

summary {
  display: list-item;
}

[hidden] {
  display: none !important;
}

a {
  background-color: transparent;
  color: var(--link-color);
  text-decoration: none;
}

abbr[title] {
  border-bottom: none;
  -webkit-text-decoration: underline dotted;
  text-decoration: underline dotted;
}

b,
strong {
  font-weight: 600;
}

dfn,
em {
  font-style: italic;
}

h1 {
  margin: 0.67em 0;
  font-weight: 600;
  padding-bottom: 0.3em;
  font-size: 1.8em;
  border-bottom: 1px solid rgba(209, 217, 224, 0.7019607843);
}

mark {
  background-color: var(--highlight-background);
  color: var(--highlight-text-color);
}

small {
  font-size: 85%;
}

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

sub {
  bottom: -0.25em;
}

sup {
  top: -0.5em;
}

img {
  border-style: none;
  max-width: 100%;
  box-sizing: content-box;
}

code,
kbd,
pre,
samp {
  font-family: var(--font-family-code);
  font-size: 1em;
}

figure {
  margin: 1em 2.5rem;
}

hr {
  box-sizing: content-box;
  overflow: hidden;
  background: transparent;
  border-bottom: 1px solid var(--border-color);
  height: 0.25em;
  padding: 0;
  margin: 1.5rem 0;
  background-color: var(--hr-color);
  border: 0;
}

input {
  font: inherit;
  margin: 0;
  overflow: visible;
  font-family: inherit;
  font-size: inherit;
  line-height: inherit;
}

[type=button],
[type=reset],
[type=submit] {
  -webkit-appearance: button;
  appearance: button;
}

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

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

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

::-webkit-input-placeholder {
  color: inherit;
  opacity: 0.54;
}

::-webkit-file-upload-button {
  -webkit-appearance: button;
  appearance: button;
  font: inherit;
}

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

::placeholder {
  color: var(--placeholder-color);
  opacity: 1;
}

hr::before {
  display: table;
  content: "";
}

hr::after {
  display: table;
  clear: both;
  content: "";
}

table {
  border-spacing: 0;
  border-collapse: collapse;
  display: block;
  table-layout: fixed;
  font-variant: tabular-nums;
}

td,
th {
  padding: 0;
}

thead,
tbody,
tr {
  width: 100%;
  display: table;
  table-layout: fixed;
}

details summary {
  cursor: pointer;
}

a:focus,
[role=button]:focus,
input[type=radio]:focus,
input[type=checkbox]:focus {
  outline: 2px solid var(--focus-outline);
  outline-offset: -2px;
  box-shadow: var(--focus-box-shadow);
}

a:focus:not(:focus-visible),
[role=button]:focus:not(:focus-visible),
input[type=radio]:focus:not(:focus-visible),
input[type=checkbox]:focus:not(:focus-visible) {
  outline: solid 1px transparent;
}

a:focus-visible,
[role=button]:focus-visible,
input[type=radio]:focus-visible,
input[type=checkbox]:focus-visible {
  outline: 2px solid var(--focus-outline);
  outline-offset: -2px;
  box-shadow: var(--focus-box-shadow);
}

a:not([class]):focus,
a:not([class]):focus-visible,
input[type=radio]:focus,
input[type=radio]:focus-visible,
input[type=checkbox]:focus,
input[type=checkbox]:focus-visible {
  outline-offset: 0;
}

kbd {
  display: inline-block;
  padding: 0.25rem;
  font: 0.6875rem var(--font-family-code);
  line-height: 0.625;
  color: var(--text-color);
  vertical-align: middle;
  background-color: var(--kbd-background-color);
  border: solid 1px var(--kbd-border-color);
  border-bottom-color: var(--kbd-border-color);
  border-radius: var(--code-border-radius);
  box-shadow: inset 0 -1px 0 var(--kbd-border-color);
}

h1,
h2,
h3,
h4,
h5,
h6 {
  margin-top: 1.5rem;
  margin-bottom: 1rem;
  font-weight: 600;
  line-height: 1.25;
  font-family: var(--font-family-heading);
}

h2 {
  font-weight: 600;
  padding-bottom: 0.3em;
  font-size: 1.5em;
  border-bottom: 1px solid var(--border-color);
}

h3 {
  font-weight: 600;
  font-size: 1.25em;
}

h4 {
  font-weight: 600;
  font-size: 1em;
}

h5 {
  font-weight: 600;
  /* h5 is h4 but has no bookmark icon */
  font-size: 1em;
  /* originally 0.875em */
}

h6 {
  font-weight: 600;
  font-size: 0.85em;
  color: var(--secondary-text-color);
}

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

blockquote {
  margin: 0;
  padding: 0 1em;
  color: var(--secondary-text-color);
  border-left: 0.25em solid var(--blockquote-border-color);
}

ul,
ol {
  margin-top: 0;
  margin-bottom: 0;
  padding-left: 2em;
  list-style-type: disc;
}

ol ol,
ul ol {
  list-style-type: lower-roman;
}

ul ul ol,
ul ol ol,
ol ul ol,
ol ol ol {
  list-style-type: lower-alpha;
}

dd {
  margin-left: 0;
}

tt,
code,
samp {
  font-family: var(--font-family-code);
  font-size: 0.75rem;
}

pre {
  margin-top: 0;
  margin-bottom: 0;
  font-family: var(--font-family-code);
  font-size: 0.75rem;
  word-wrap: normal;
}

input::-webkit-outer-spin-button,
input::-webkit-inner-spin-button {
  margin: 0;
  appearance: none;
}

a:not([href]) {
  color: inherit;
  text-decoration: none;
}

p,
blockquote,
ul,
ol,
dl,
table,
pre,
details {
  margin-top: 0;
  margin-bottom: 1rem;
}

blockquote > :first-child {
  margin-top: 0;
}

blockquote > :last-child {
  margin-bottom: 0;
}

h1 tt,
h1 code,
h2 tt,
h2 code,
h3 tt,
h3 code,
h4 tt,
h4 code,
h5 tt,
h5 code,
h6 tt,
h6 code {
  padding: 0 0.2em;
  font-size: inherit;
}

summary h1,
summary h2,
summary h3,
summary h4,
summary h5,
summary h6 {
  display: inline-block;
}

summary h1,
summary h2 {
  padding-bottom: 0;
  border-bottom: 0;
}

ol[type="a s"] {
  list-style-type: lower-alpha;
}

ol[type="A s"] {
  list-style-type: upper-alpha;
}

ol[type="i s"] {
  list-style-type: lower-roman;
}

ol[type="I s"] {
  list-style-type: upper-roman;
}

ol[type="1"] {
  list-style-type: decimal;
}

div > ol:not([type]) {
  list-style-type: decimal;
}

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

li > p {
  margin-top: 1rem;
}

li + li {
  margin-top: 0.25em;
}

dl {
  padding: 0;
}

dl dt {
  padding: 0;
  margin-top: 1rem;
  font-size: 1em;
  font-style: italic;
  font-weight: 600;
}

dl dd {
  padding: 0 1rem;
  margin-bottom: 1rem;
}

table th {
  font-weight: 600;
  padding: 0.32rem 0;
}

table td {
  padding: 0.68rem 0;
}

table td > :last-child {
  margin-bottom: 0;
}

table tr {
  background-color: var(--table-row-background);
  border-top: 1px solid var(--table-border-color);
}

table tbody tr:first-of-type {
  border-top: 1px solid var(--table-head-border-color);
}

table tr:nth-child(2n) {
  background-color: var(--table-row-alt-background);
}

table thead tr {
  border-top: 0;
  text-align: left;
  font-size: 85%;
}

table img {
  background-color: transparent;
}

img[align=right] {
  padding-left: 1.25rem;
}

img[align=left] {
  padding-right: 1.25rem;
}

code,
tt {
  padding: 0.2em 0.4em;
  margin: 0;
  font-size: 85%;
  white-space: break-spaces;
  background-color: var(--code-background-color);
  border-radius: var(--code-border-radius);
}

code br,
tt br {
  display: none;
}

del code {
  text-decoration: inherit;
}

samp {
  font-size: 85%;
}

pre code {
  font-size: 100%;
}

pre > code {
  padding: 0;
  margin: 0;
  word-break: normal;
  white-space: pre;
  background: transparent;
  border: 0;
}

pre {
  padding: 1rem;
  overflow: auto;
  font-size: 85%;
  line-height: 1.45;
  color: var(--pre-color);
  background-color: var(--pre-background-color);
  border-radius: var(--code-border-radius);
}

pre code,
pre tt {
  display: inline;
  max-width: auto;
  padding: 0;
  margin: 0;
  overflow: visible;
  line-height: inherit;
  word-wrap: normal;
  background-color: transparent;
  border: 0;
}

body:has(:modal) {
  padding-right: 0 !important;
}

[role=button]:focus:not(:focus-visible),
[role=tabpanel][tabindex="0"]:focus:not(:focus-visible),
button:focus:not(:focus-visible),
summary:focus:not(:focus-visible),
a:focus:not(:focus-visible) {
  outline: none;
  box-shadow: none;
}

[tabindex="0"]:focus:not(:focus-visible) {
  outline: none;
}

/* random utils and JS stuff */
.js-Bookmark {
  a {
    background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='rgb(31, 35, 40)' %3E%3Cpath d='m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z'/%3E%3C/svg%3E");
    width: 1rem;
    height: 1rem;
    display: none;
    margin-left: 0.375rem;
    color: var(--text-color);
    background-size: cover;
  }
  &:hover a {
    display: inline-block;
  }
}

.js-ResizableContent {
  box-sizing: border-box;
  width: 100%;
  height: 407px;
  min-height: 344px;
  padding: 12px 0;
  padding-bottom: 0;
  border-top: 1px solid orange;
  border-bottom: 1px solid orange;
  iframe {
    position: relative;
    width: 100%;
    height: 100%;
  }
}

.js-ResizableContent__handle {
  height: 0.3125rem;
  width: 3.125rem;
  background-color: orange;
  margin: 0 auto;
  margin-top: -0.0625rem;
  position: relative;
  border-bottom-left-radius: 1px;
  border-bottom-right-radius: 1px;
  pointer-events: none;
}

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

.w-60 {
  width: 60%;
}

.w-50 {
  width: 50%;
}

.w-40 {
  width: 40%;
}

.noscreen {
  display: none;
}

@media print {
  .noprint {
    display: none !important;
  }
  .noscreen {
    display: block !important;
  }
}
a.btn {
  background: var(--link-color);
  border-radius: 0.3125rem;
  color: #fff;
  display: block;
  font-size: 1rem;
  font-style: normal;
  font-weight: 400;
  line-height: 1;
  margin-top: 1rem;
  padding: 0.625rem;
  text-align: center;
  text-decoration: none;
}

blockquote.note {
  border-left: 0;
  background-color: var(--highlight-background);
  color: var(--highlight-text-color);
  padding: 0.625rem 0.75rem 0.625rem 0.875rem;
  margin: 0;
  border-radius: 6px;
}

.horizontal-list {
  list-style: none;
  padding: 0;
  margin: 0;
  li {
    display: inline;
    white-space: nowrap;
  }
  li:not(:last-child)::after {
    content: " ";
    color: var(--secondary-text-color);
    white-space: nowrap;
    margin-left: 0.35rem;
    margin-right: 0.35rem;
  }
}

.Playground-ButtonsContainer {
  align-items: center;
  display: flex;
  justify-content: flex-end;
  margin-top: 0;
}

.Playground-RunButton {
  background-color: #f6f8fa;
  color: #24292e;
  border: 1px solid rgba(27, 31, 35, 0.15);
  box-shadow: 0 1px 0 rgba(27, 31, 35, 0.04), inset 0 1px 0 rgba(255, 255, 255, 0.25);
  border-radius: 6px;
  padding: 5px 16px;
  font-size: 14px;
  font-weight: 400;
  line-height: 20px;
  text-align: center;
  white-space: nowrap;
  cursor: pointer;
  display: inline-block;
  user-select: none;
  -webkit-appearance: none;
  appearance: none;
  transition: background-color 0.12s cubic-bezier(0.3, 0, 0.5, 1);
  outline: none;
}

.Playground-RunButton:hover {
  background-color: #e6ebf1;
  border-color: rgba(27, 31, 35, 0.15);
}

.Playground-RunButton:active {
  background-color: #ebedf0;
  border-color: rgba(27, 31, 35, 0.15);
  box-shadow: inset 0 0.15em 0.3em rgba(27, 31, 35, 0.15);
  transform: translateY(1px);
}

.Playground-RunButton:focus-visible {
  box-shadow: 0 0 0 3px rgba(3, 102, 214, 0.3), inset 0 1px 0 rgba(255, 255, 255, 0.25);
}

.Playground-RunButton:disabled {
  color: #959da5;
  background-color: #f6f8fa;
  background-image: none;
  border-color: rgba(27, 31, 35, 0.15);
  cursor: default;
}

.Playground-Details {
  margin-top: 0rem;
}

.Playground-DetailsToolbar {
  position: absolute;
  top: -4px;
  right: 0;
}

.Playground-DetailsBody {
  font-size: 14px;
}

@media screen and (min-width: 65rem) {
  .Playground-DetailsBody {
    font-size: 16px;
  }
}
.Playground-DetailsBody pre {
  border-radius: 0 0 0.3rem 0.3rem !important;
  margin-bottom: 1.3rem;
  margin-top: -7px;
  font-size: auto;
}

.Playground-DetailsBody textarea {
  background-color: #fff !important;
  height: 100%;
  outline: none;
  overflow-x: auto;
  resize: none;
  white-space: pre;
  width: 100%;
  font-family: var(--font-family-code);
  font-size: 85%;
  line-height: 1.435;
}

.Playground-DetailsBody .Playground-Code {
  border-bottom-left-radius: 0 !important;
  border-bottom-right-radius: 0 !important;
  margin: 0;
  margin-top: 4px;
}

.Playground-DetailsBody .Playground-Output {
  border-top-left-radius: 0;
  border-top-right-radius: 0;
  margin: 0 0 0.5rem;
}

.Playground-DetailsHeader {
  color: var(--text-color);
  cursor: pointer;
  margin-bottom: 0.8rem;
  outline: none;
  text-decoration: none;
  position: relative;
}

.Playground-Details summary span {
  width: calc(100% - 90px);
  display: inline-block;
}

.Playground-Details:not([open]) summary {
  border-bottom: 0.0625rem solid rgba(200, 209, 218, 0.7019607843);
  padding-bottom: 0.8rem;
}

.Playground-OutputLabel {
  color: var(--color-text-subtle);
  margin-right: 0.4rem;
}

.Playground-Error {
  color: var(--pink);
  margin-right: 0.4rem;
  padding-right: 0.5rem;
  margin-bottom: 0;
}

.js-exampleContainer pre, .js-exampleContainer textarea.code {
  border: 0.0625rem solid rgba(200, 209, 218, 0.7019607843) !important;
  border: none;
  border-radius: 6px;
  color: #202224;
  overflow-x: auto;
  padding: 16px;
  tab-size: 4;
  white-space: pre;
  max-width: 100%;
  min-width: 0;
  box-sizing: border-box;
}

.js-exampleContainer pre {
  border-top: 0 !important;
}

.js-exampleContainer textarea {
  height: 15.875rem;
}

/* index page specific */
.og-WelcomeBanner {
  font-size: 120%;
  hr {
    margin: 3.175rem 0 0 0;
  }
  h1 {
    border-bottom: 0;
  }
}

/* resume page specific */
.ResumeList {
  display: flex;
  flex-flow: column;
  gap: 3.2rem;
  div {
    page-break-inside: avoid;
    break-inside: avoid;
    h2,
    h4,
    p {
      margin: 0;
      padding: 0;
    }
    h3 {
      margin-top: 0;
    }
    h2 {
      margin-bottom: 1rem;
      border-bottom: 0;
    }
    h4 {
      font-weight: normal;
      margin-bottom: 1rem;
    }
    h4 > i {
      font-style: italic;
    }
    hr {
      margin-bottom: 0;
    }
  }
}

/* code highlighting theme */
.codehilite .hll {
  background-color: #ffffcc;
}

.codehilite .c {
  color: #8f5902;
  font-style: italic;
}

.codehilite .err {
  color: #a40000;
  border: 1px solid #ef2929;
}

.codehilite .g {
  color: #000000;
}

.codehilite .k {
  color: #013f9d;
}

.codehilite .l {
  color: #000000;
}

.codehilite .n {
  color: #000000;
}

.codehilite .o {
  color: #d44003;
}

.codehilite .x {
  color: #000000;
}

.codehilite .p {
  color: #000000;
}

.codehilite .ch {
  color: #8f5902;
  font-style: italic;
}

.codehilite .cm {
  color: #8f5902;
  font-style: italic;
}

.codehilite .cp {
  color: #8f5902;
  font-style: italic;
}

.codehilite .cpf {
  color: #8f5902;
  font-style: italic;
}

.codehilite .c1 {
  color: #7c7c7c;
  font-style: italic;
}

.codehilite .cs {
  color: #8f5902;
  font-style: italic;
}

.codehilite .gd {
  color: #a40000;
}

.codehilite .ge {
  color: #000000;
  font-style: italic;
}

.codehilite .gr {
  color: #ef2929;
}

.codehilite .gh {
  color: #000080;
}

.codehilite .gi {
  color: #00A000;
}

.codehilite .go {
  color: #000000;
  font-style: italic;
}

.codehilite .gp {
  color: #8f5902;
}

.codehilite .gs {
  color: #000000;
}

.codehilite .gu {
  color: #800080;
}

.codehilite .gt {
  color: #a40000;
}

.codehilite .kc {
  color: #013f9d;
}

.codehilite .kd {
  color: #013f9d;
}

.codehilite .kn {
  color: #013f9d;
}

.codehilite .kp {
  color: #013f9d;
}

.codehilite .kr {
  color: #013f9d;
}

.codehilite .kt {
  color: #013f9d;
}

.codehilite .ld {
  color: #000000;
}

.codehilite .m {
  color: #0000cf;
}

.codehilite .s {
  color: #1f883d;
}

.codehilite .na {
  color: #c4a000;
}

.codehilite .nb {
  color: #013f9d;
}

.codehilite .nc {
  color: #000000;
}

.codehilite .no {
  color: #000000;
}

.codehilite .nd {
  color: #5c35cc;
}

.codehilite .ni {
  color: #d44003;
}

.codehilite .ne {
  color: #cc0000;
}

.codehilite .nf {
  color: #000000;
}

.codehilite .nl {
  color: #f57900;
}

.codehilite .nn {
  color: #000000;
}

.codehilite .nx {
  color: #000000;
}

.codehilite .py {
  color: #000000;
}

.codehilite .nt {
  color: #013f9d;
}

.codehilite .nv {
  color: #000000;
}

.codehilite .ow {
  color: #013f9d;
}

.codehilite .w {
  color: transparent;
  text-decoration: underline;
}

.codehilite .mb {
  color: #0000cf;
}

.codehilite .mf {
  color: #0000cf;
}

.codehilite .mh {
  color: #0000cf;
}

.codehilite .mi {
  color: #0000cf;
}

.codehilite .mo {
  color: #0000cf;
}

.codehilite .sa {
  color: #1f883d;
}

.codehilite .sb {
  color: #1f883d;
}

.codehilite .sc {
  color: #1f883d;
}

.codehilite .dl {
  color: #1f883d;
}

.codehilite .sd {
  color: #8f5902;
  font-style: italic;
}

.codehilite .s2 {
  color: #1f883d;
}

.codehilite .se {
  color: #1f883d;
}

.codehilite .sh {
  color: #1f883d;
}

.codehilite .si {
  color: #1f883d;
}

.codehilite .sx {
  color: #1f883d;
}

.codehilite .sr {
  color: #1f883d;
}

.codehilite .s1 {
  color: #1f883d;
}

.codehilite .ss {
  color: #1f883d;
}

.codehilite .bp {
  color: #3465a4;
}

.codehilite .fm {
  color: #000000;
}

.codehilite .vc {
  color: #000000;
}

.codehilite .vg {
  color: #000000;
}

.codehilite .vi {
  color: #000000;
}

.codehilite .vm {
  color: #000000;
}

.codehilite .il {
  color: #0000cf;
}

/* entry page specific widgets */
.og-Entry__title {
  margin-bottom: 0;
  border-bottom: 0;
  margin-top: 0;
}

.og-Entry__metadata li {
  white-space: normal;
  overflow-wrap: break-word;
  word-break: break-word;
  hyphens: auto;
}

.og-Entry__metadata,
.og-Entry__metadata a {
  color: var(--secondary-text-color);
}

.og-Entry__body {
  margin-top: 0.8rem;
  blockquote:first-of-type {
    margin-top: 1.6rem;
    margin-bottom: 1.6rem;
    p {
      font-size: 1.2em;
      a {
        white-space: nowrap;
      }
    }
  }
}

.og-Entry__metadata.horizontal-list {
  li:not(:last-child)::after {
    content: " · ";
    margin-left: 0.2rem;
    margin-right: 0.2rem;
  }
}

.og-EntryList {
  display: flex;
  flex-flow: column;
  gap: 1.8rem;
}

/* the navbar on the left */
.navbar-Wrapper {
  display: grid;
  gap: var(--gap);
  grid-template-areas: "content";
  margin: 0 auto 0;
  padding: 0 var(--gutter);
  max-width: 110rem;
}

.LeftNav-columns {
  display: flex;
}

.LeftNav-sidebar {
  display: none;
  grid-area: LeftNav-sidebar;
  height: 100vh;
  overflow: auto;
  padding: 0;
  position: sticky;
  top: 0;
}

.LeftNav {
  display: flex;
  flex-direction: column;
  margin-bottom: 5rem;
}

.LeftNav a {
  align-items: center;
  display: flex;
  padding-bottom: 0.475rem;
  padding-top: 0.475rem;
  text-decoration: none;
  color: var(--subnav-link-color);
}

.LeftNav a span {
  flex: 30;
  line-height: 1.5;
}

.LeftNav ul li a span {
  margin: 0 0.75rem;
}

.LeftNav .LeftSubnav a span {
  font-size: 0.875em;
  font-weight: 400;
}

.LeftSubnav a {
  padding-left: 1rem;
  color: var(--subnav-link-color);
}

/* .LeftNav a.active,
.LeftNav a:hover,
.LeftNav a:active,
.LeftNav a:focus {
  background: var(--kbd-background-color);
} */
.LeftNav a.active span,
.LeftNav a:hover span,
.LeftNav a:active span,
.LeftNav a:focus span {
  color: var(--subnav-link-hover-color);
}

/* .LeftNav ul.LeftSubnav li a.active,
.LeftNav ul.LeftSubnav li a:hover,
.LeftNav ul.LeftSubnav li a:active,
.LeftNav ul.LeftSubnav li a:focus {
  background: var(--kbd-background-color);
} */
.LeftNavHeader {
  overflow: hidden;
  width: 100%;
  padding: 1.5rem 0;
  margin: 0;
  margin-top: 0.5rem;
  margin-bottom: 1.5rem;
  background-color: transparent;
}

.LeftSubnav {
  list-style: none;
  margin-bottom: unset;
  margin-top: unset;
  padding: unset;
}

.LeftSubnav img {
  flex: 1;
  visibility: hidden;
}

.LeftSubnav a.active img,
.LeftSubnav a:hover img,
.LeftSubnav a:focus img,
.LeftSubnav a:active img {
  visibility: visible;
}

ul.LeftSubnav {
  padding-left: unset;
}

.LeftSubnav li {
  list-style: none;
  margin: unset;
}

.og-Icon {
  width: 2.655rem;
  height: 2.655rem;
  overflow: hidden;
  background-image: url(/assets/og-circle.svg);
  background-size: contain;
  display: inline-block;
  a,
  img {
    width: 100%;
    height: 100%;
    display: inline-block;
  }
}

.og-Container {
  display: flex;
  flex-direction: column;
  flex-grow: 1;
  height: 100%;
}

.og-Content,
.og-Footer {
  display: flex;
  flex-flow: column;
  gap: 1rem;
  margin: 0 auto;
  min-width: 0;
  max-width: 54rem;
  padding: 2rem var(--gutter);
  width: 100%;
}

.og-Content {
  min-height: 32rem;
}

.og-Footer {
  padding-top: 0;
  margin-bottom: 2.5rem;
  font-size: 0.875rem;
  gap: 0.5rem;
}

.resume-Content,
.index-Content {
  gap: 2.5rem;
}
.resume-Content .og-Entry,
.index-Content .og-Entry {
  page-break-inside: avoid;
  break-inside: avoid;
}
.resume-Content .og-Entry .og-Entry__title,
.index-Content .og-Entry .og-Entry__title {
  font-size: 1.2em;
}

@media print {
  .resume-Content .og-WelcomeBanner ul li:not(:last-child)::after {
    content: " ";
    margin-left: 0.5rem;
    margin-right: 0.5rem;
  }
}
@media screen and (max-width: 30rem) {
  .resume-Content .og-WelcomeBanner ul li {
    display: block;
  }
  .resume-Content .og-WelcomeBanner ul li:not(:last-child)::after {
    content: none;
  }
}
.tag-Content {
  gap: 2.675rem;
}

.tag-Content__title {
  margin-top: 0.8rem;
}

.tag-Content__divider {
  margin: 1.42rem 0 0 0;
}

.entry-Content {
  grid-area: content;
  gap: 4rem;
}

.entry-Content ul {
  overflow-wrap: break-word;
}

.navbar-Wrapper {
  padding: 0;
  margin: 0;
  grid-template-columns: 100%;
}
.navbar-Wrapper .og-Content {
  max-width: 100%;
}

@media screen and (min-width: 48rem) {
  .navbar-Wrapper {
    margin: 0 auto;
    grid-template-areas: "LeftNav-sidebar content";
    grid-template-columns: 16rem 1fr;
  }
  .navbar-Wrapper .LeftNav-sidebar {
    display: block;
    padding-left: var(--gutter);
    padding-right: 0.25rem;
  }
  .navbar-Wrapper .og-Content {
    padding: 2rem 0;
    padding-right: var(--gutter);
  }
  .navbar-Wrapper .og-Content .og-Icon,
  .navbar-Wrapper .og-Content .og-HomeLink {
    display: none;
  }
}
@media screen and (min-width: 65rem) {
  html {
    font-size: 16px;
  }
  .LeftNav a {
    padding-bottom: 0.525rem;
    padding-top: 0.525rem;
  }
  .navbar-Wrapper {
    grid-template-columns: 16rem 1fr;
  }
}
@media screen and (min-width: 71rem) {
  .navbar-Wrapper {
    grid-template-columns: 16rem 54rem;
  }
}
.og-HomeLink {
  margin-top: 1rem;
  text-transform: lowercase;
  font-weight: 600;
}
.og-HomeLink a {
  color: var(--color-text-subtle);
}
.og-HomeLink a:hover {
  color: var(--link-hover-color);
}

.og-Content h1, .og-Content h2, .og-Content h3, .og-Content h4, .og-Content h5, .og-Content h6 {
  text-transform: lowercase;
}

.tag-Content__title,
.LeftNav {
  text-transform: lowercase;
}

.og-Entry__metadata li {
  text-transform: lowercase;
  font-size: 0.9375rem;
}

.og-Header {
  background: #e3fffd;
  border-bottom: 1px solid #88fef5;
  padding: 0.25rem;
  padding-left: 1.5rem;
  font-size: 0.6875rem;
  font-weight: bold;
  border-top: 1px solid #515151;
  font-family: var(--font-family-code);
}
.og-Header a {
  color: var(--text-color);
  text-decoration: underline;
}
.og-Header a:hover {
  text-decoration: none;
}

.entry-Content {
  margin-bottom: 2rem;
}
