:root {
  /* ============================================
     COLORS
     ============================================ */

  /* Background Colors */
  --color-bg-primary: rgb(15 23 42);
  --color-bg-secondary: rgb(30 41 59);

  /* Text Colors */
  --color-text-primary: rgb(241 245 249);
  --color-text-secondary: rgb(226 232 240);
  --color-text-muted: rgb(100 116 139);
  --color-text-muted-light: rgb(148 163 184);
  --color-text-muted-dark: rgb(71 85 105);

  /* Accent Colors */
  --color-accent-primary: rgb(99 102 241);
  --color-accent-primary-hover: rgb(55 48 163);
  --color-accent-border: rgb(79 70 229);
  --color-accent-orange: rgb(249 115 22);

  /* ============================================
     SPACING SCALE
     ============================================ */

  --space-1: 0.25rem;
  --space-2: 0.5rem;
  --space-3: 0.75rem;
  --space-4: 1rem;
  --space-6: 1.5rem;
  --space-8: 2rem;
  --space-10: 2.5rem;
  --space-12: 3rem;

  /* ============================================
     TYPOGRAPHY
     ============================================ */

  /* Font Sizes */
  --text-xs: 0.75rem;
  --text-sm: 0.875rem;
  --text-base: 1rem;
  --text-lg: 1.125rem;
  --text-xl: 1.25rem;
  --text-2xl: 1.5rem;
  --text-3xl: 1.875rem;
  --text-4xl: 2.25rem;
  --text-6xl: 3.75rem;

  /* Line Heights */
  --leading-none: 1;
  --leading-tight: 1.25;
  --leading-snug: 1.5;
  --leading-normal: 1.75rem;
  --leading-relaxed: 2;
  --leading-8: 2rem;
  --leading-loose: 2.25rem;
  --leading-xl: 2.5rem;

  /* Font Weights */
  --font-normal: 400;
  --font-semibold: 600;
  --font-bold: 700;

  /* ============================================
     BORDERS
     ============================================ */

  /* Border Radius */
  --radius-sm: 0.25rem;
  --radius-md: 0.375rem;
  --radius-lg: 0.5rem;
  --radius-full: 9999px;

  /* Border Width */
  --border-thin: 1px;
  --border-thick: 4px;

  /* ============================================
     LAYOUT
     ============================================ */

  /* Max Widths */
  --max-width-prose: 48rem;
  --max-width-narrow: 36rem;

  /* Fixed Sizes */
  --size-icon: 2rem;
  --size-avatar: 12rem;
}

*,
::before,
::after {
  box-sizing: border-box;
  border-width: 0;
  border-style: solid;
  border-color: #e5e7eb;
}

::before,
::after {
  --tw-content: '';
}

html {
  line-height: 1.5;
  -webkit-text-size-adjust: 100%;
  -moz-tab-size: 4;
  -o-tab-size: 4;
     tab-size: 4;
  font-family: ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji"; /* 4 */
}

body {
  margin: 0;
  line-height: inherit;
}

hr {
  height: 0;
  color: inherit;
  border-top-width: 1px;
}

abbr:where([title]) {
  -webkit-text-decoration: underline dotted;
          text-decoration: underline dotted;
}

h1,
h2,
h3,
h4,
h5,
h6 {
  font-size: inherit;
  font-weight: inherit;
}

a {
  color: inherit;
  text-decoration: inherit;
}

b,
strong {
  font-weight: bolder;
}

code,
kbd,
samp,
pre {
  font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;
  font-size: 1em;
}

small {
  font-size: 80%;
}

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

sub {
  bottom: -0.25em;
}

sup {
  top: -0.5em;
}

table {
  text-indent: 0;
  border-color: inherit;
  border-collapse: collapse;
}

button,
input,
optgroup,
select,
textarea {
  font-family: inherit;
  font-size: 100%;
  font-weight: inherit;
  line-height: inherit;
  color: inherit;
  margin: 0;
  padding: 0;
}

button,
select {
  text-transform: none;
}

button,
[type='button'],
[type='reset'],
[type='submit'] {
  -webkit-appearance: button;
  background-color: transparent;
  background-image: none;
}

:-moz-focusring {
  outline: auto;
}

:-moz-ui-invalid {
  box-shadow: none;
}

progress {
  vertical-align: baseline;
}

::-webkit-inner-spin-button,
::-webkit-outer-spin-button {
  height: auto;
}

[type='search'] {
  -webkit-appearance: textfield;
  outline-offset: -2px;
}

::-webkit-search-decoration {
  -webkit-appearance: none;
}

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

summary {
  display: list-item;
}

blockquote,
dl,
dd,
h1,
h2,
h3,
h4,
h5,
h6,
hr,
figure,
p,
pre {
  margin: 0;
}

fieldset {
  margin: 0;
  padding: 0;
}

legend {
  padding: 0;
}

ol,
ul,
menu {
  list-style: none;
  margin: 0;
  padding: 0;
}

textarea {
  resize: vertical;
}

input::-moz-placeholder, textarea::-moz-placeholder {
  opacity: 1;
  color: #9ca3af;
}

input::placeholder,
textarea::placeholder {
  opacity: 1;
  color: #9ca3af;
}

button,
[role="button"] {
  cursor: pointer;
}

:disabled {
  cursor: default;
}

img,
svg,
video,
canvas,
audio,
iframe,
embed,
object {
  display: block;
  vertical-align: middle;
}

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

body {
  margin-left: auto;
  margin-right: auto;
  max-width: var(--max-width-prose);
  background-color: var(--color-bg-primary);
  padding-left: var(--space-4);
  padding-right: var(--space-4);
  color: var(--color-text-primary);
}

nav.navigation {
  margin-bottom: var(--space-4);
  display: flex;
  flex-direction: row-reverse;
  justify-content: space-between;
  padding: var(--space-4);
  font-size: var(--text-lg);
  line-height: var(--leading-normal);
}

div.navigation__section_right {
  display: flex;
  align-items: center;
  gap: var(--space-4);
}

a.navigation__page-link {
  color: var(--color-accent-primary);
  text-decoration-line: underline;
}

a.navigation__page-link:hover {
  color: var(--color-accent-primary-hover);
}

a.navigation__rss-link {
  font-size: var(--text-xl);
  line-height: var(--leading-normal);
  color: var(--color-accent-orange);
}

a.navigation__back-link {
  display: flex;
  align-items: center;
  gap: var(--space-2);
  color: var(--color-accent-primary);
}

a.navigation__back-link:hover {
  color: var(--color-accent-primary-hover);
}

a.navigation__back-link {

  & i {
    font-size: var(--text-sm);
    line-height: var(--leading-tight);
  }

  & span {
    text-decoration-line: underline;
  }
}

span.blog-title {
  margin-top: var(--space-4);
  margin-bottom: var(--space-12);
  display: block;
  text-align: center;
  font-size: var(--text-6xl);
  line-height: var(--leading-none);
  font-weight: var(--font-bold);
}

div.blog-content-wrapper {
  display: block;
  padding-top: var(--space-2);
  padding-bottom: var(--space-6);
}

/* generic styles for use in pages */
section.page-content > * + * {
  margin-top: var(--space-6);
}

h2.page-content__heading {
  margin-top: var(--space-8);
  font-size: var(--text-3xl);
  line-height: var(--leading-loose);
  font-weight: var(--font-bold);
  color: var(--color-accent-primary);
}

p.page-content__text {
  font-size: var(--text-lg);
  line-height: var(--leading-normal);
  line-height: var(--leading-relaxed);
}

ul.page-content__list {
  list-style-position: inside;
  list-style-type: disc;
}

ul.page-content__list > * + * {
  margin-top: var(--space-2);
}

ul.page-content__list {
  font-size: var(--text-lg);
  line-height: var(--leading-normal);
  line-height: var(--leading-relaxed);
}

ul.page-content__list_undecorated {
  list-style-position: inside;
}

ul.page-content__list_undecorated > * + * {
  margin-top: var(--space-2);
}

ul.page-content__list_undecorated {
  font-size: var(--text-lg);
  line-height: var(--leading-normal);
  line-height: var(--leading-relaxed);
}

a.page-content__link {
  color: var(--color-accent-primary);
  text-decoration-line: underline;
}

a.page-content__link:hover {
  color: var(--color-accent-primary-hover);
}

blockquote.page-content__quote {
  border-left-width: var(--border-thick);
  border-color: var(--color-accent-border);
  background-color: var(--color-bg-secondary);
  padding: var(--space-4);
  font-size: var(--text-xl);
  line-height: var(--leading-normal);
  font-style: italic;
  line-height: var(--leading-relaxed);
}

small.page-content__ps {
  font-size: var(--text-xs);
  line-height: var(--text-base);
  font-style: italic;
  color: var(--color-text-secondary);
}

/* about.html styles */
section.about-header {
  margin-left: auto;
  margin-right: auto;
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: left;
}

img.about-header__headshot {
  height: var(--size-avatar);
  width: var(--size-avatar);
  border-radius: var(--radius-full);
  border-width: var(--border-thick);
  border-color: var(--color-accent-primary);
  object-fit: cover;
}

p.about-header__name {
  margin-top: var(--space-2);
  margin-bottom: var(--space-2);
  font-size: var(--text-4xl);
  line-height: var(--leading-xl);
  font-weight: var(--font-semibold);
  color: var(--color-accent-primary);
}

p.about-header__tagline {
  text-align: center;
  font-size: var(--text-lg);
  line-height: var(--leading-normal);
  font-style: italic;
}

ul.about-header__links-container {
  margin-top: var(--space-4);
  margin-bottom: var(--space-4);
  display: flex;
  flex-direction: row;
  flex-wrap: wrap;
  gap: 0.4rem;
  font-size: var(--text-lg);
  line-height: var(--leading-normal);
}

@media (min-width: 640px) {

  ul.about-header__links-container {
    gap: var(--space-4);
  }
}

li.about-header__link-item {
  margin-bottom: var(--space-2);
  display: flex;
  align-items: center;
}

div.about-header__link-icon-wrapper {
  width: var(--size-icon);
  text-align: center;
}

a.about-header__link {
  color: var(--color-accent-primary);
  text-decoration-line: underline;
}

a.about-header__link:hover {
  color: var(--color-accent-primary-hover);
}

small.about-page__key-fingerprint {
  display: block;
  word-break: break-all;
  font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;
  font-size: var(--text-sm);
  line-height: var(--leading-tight);
}

section.about-page__wishlist-section {
  margin-top: var(--space-6);
  margin-bottom: var(--space-6);
}

/* index.html styles */
article.article-preview {
  margin-top: var(--space-10);
  margin-bottom: var(--space-10);
}

article.article-preview > * + * {
  margin-top: var(--space-2);
}

h3.article-preview__title {
  font-size: var(--text-2xl);
  line-height: var(--leading-8);
  font-weight: var(--font-bold);

  & a {
    color: var(--color-accent-primary);
  }

  & a {
    text-decoration-line: underline;
  }

  & a:hover {
    color: var(--color-accent-primary-hover);
  }
}

time.article-preview__publication-time {
  color: var(--color-text-muted);
}

p.article-preview__excerpt {
  font-size: var(--text-xl);
  line-height: var(--leading-normal);
  font-weight: var(--font-semibold);
  line-height: var(--leading-relaxed);
}

article.post {
}

span.post__publication-date {
  margin-bottom: var(--space-4);
  display: block;
  color: var(--color-text-muted);
}

h1.post__title {
  margin-bottom: var(--space-4);
  font-size: var(--text-4xl);
  line-height: var(--leading-xl);
  font-weight: var(--font-bold);
  color: var(--color-accent-primary);
}

article.post section.post__content h2 {
  margin-top: var(--space-8);
  margin-bottom: var(--space-4);
  font-size: var(--text-3xl);
  line-height: var(--leading-loose);
  font-weight: var(--font-bold);
  color: var(--color-accent-primary);
}

article.post section.post__content h3 {
  margin-top: var(--space-8);
  margin-bottom: var(--space-4);
  font-size: var(--text-2xl);
  line-height: var(--leading-8);
  font-weight: var(--font-bold);
  color: var(--color-accent-primary);
}

article.post section.post__content p {
  margin-bottom: var(--space-6);
  font-size: var(--text-lg);
  line-height: var(--leading-normal);
  line-height: var(--leading-relaxed);
}

article.post section.post__content blockquote {
  margin-bottom: var(--space-6);
  border-left-width: var(--border-thick);
  border-color: var(--color-accent-border);
  background-color: var(--color-bg-secondary);
  padding: var(--space-4);
  font-size: var(--text-xl);
  line-height: var(--leading-normal);
  font-style: italic;
  line-height: var(--leading-relaxed);
}

article.post section.post__content ul {
  padding-left: var(--space-4);
  line-height: var(--leading-relaxed);
}

article.post section.post__content ul:not(ul ul) {
  margin-bottom: var(--space-6);
}

article.post section.post__content ul li {
  margin-top: var(--space-2);
  margin-bottom: var(--space-2);
  list-style-type: disc;
}

article.post section.post__content a {
  color: var(--color-accent-primary);
  text-decoration-line: underline;
}

article.post section.post__content a:hover {
  color: var(--color-accent-primary-hover);
}

article.post section.post__content .toc-container {
  border-radius: var(--radius-sm);
  border-width: var(--border-thin);
  border-color: var(--color-accent-border);
  background-color: var(--color-bg-secondary);
}

article.post section.post__content .toc-container {
  padding: var(--space-4);
}

article.post section.post__content .toc-container li {
  list-style-type: none;
}

article.post section.post__license {
  margin-top: var(--space-10);
  margin-bottom: var(--space-6);
  text-align: center;

  & img {
    margin-left: auto;
    margin-right: auto;
  }

  & img {
    display: block;
  }

  & img {
    border-width: 0px;
  }

  & p {
    margin-top: var(--space-4);
    margin-bottom: var(--space-4);
  }

  & p {
    text-align: center;
  }

  & p {
    font-size: var(--text-sm);
    line-height: var(--leading-tight);
  }

  & p {
    line-height: var(--leading-tight);
  }

  & p {

    & a {
      color: var(--color-accent-primary);
    }

    & a {
      text-decoration-line: underline;
    }

    & a:hover {
      color: var(--color-accent-primary-hover);
    }
  }
}

footer.post__footer {
  margin-top: var(--space-4);
  margin-bottom: var(--space-4);
  margin-left: auto;
  margin-right: auto;
  max-width: var(--max-width-narrow);
  border-radius: var(--radius-sm);
  border-width: var(--border-thin);
  border-color: var(--color-accent-border);
  background-color: var(--color-bg-secondary);
  padding: var(--space-2);
  text-align: center;
  font-size: var(--text-lg);
  line-height: var(--leading-normal);

  & a {
    color: var(--color-accent-primary);
  }

  & a {
    text-decoration-line: underline;
  }

  & a:hover {
    color: var(--color-accent-primary-hover);
  }
}

/* Tag badge component - used in posts and article previews */
a.tag-badge {
  display: inline-block;
  margin-right: var(--space-2);
  margin-bottom: var(--space-1);
  padding: var(--space-1) var(--space-3);
  border-radius: var(--radius-full);
  background-color: var(--color-bg-secondary);
  font-size: var(--text-sm);
  line-height: var(--leading-tight);
  color: var(--color-accent-primary);
  text-decoration: none;
  transition: all 0.2s;
}

a.tag-badge:hover {
  background-color: var(--color-accent-border);
  color: var(--color-text-primary);
  transform: translateY(-1px);
}

/* Tag cloud component */
div.tag-cloud {
  margin-top: var(--space-8);
  margin-bottom: var(--space-6);
  padding: var(--space-6);
  border-radius: var(--radius-lg);
  background-color: var(--color-bg-secondary);
  border-width: var(--border-thin);
  border-color: var(--color-accent-border);
  display: flex;
  flex-wrap: wrap;
  row-gap: var(--space-1);
  column-gap: var(--space-3);
  align-items: baseline;
  justify-content: center;
}

a.tag-cloud__tag {
  color: var(--color-accent-primary);
  text-decoration: none;
  transition: all 0.2s;
  line-height: 1.2;
}

a.tag-cloud__tag:hover {
  color: var(--color-accent-primary-hover);
  transform: scale(1.1);
}

/* Tag filter notice on tag pages */
p.tag-filter-notice {
  margin-top: var(--space-6);
  margin-bottom: var(--space-2);
  text-align: center;
  font-size: var(--text-base);
  color: var(--color-text-muted);
}

p.tag-filter-notice strong {
  display: inline-block;
  margin: 0 var(--space-1);
  padding: var(--space-1) var(--space-3);
  border-radius: var(--radius-full);
  background-color: var(--color-bg-secondary);
  font-size: var(--text-sm);
  color: var(--color-accent-primary);
  font-weight: normal;
}

/* View all posts link on tag pages */
p.tag-view-all {
  margin-top: var(--space-2);
  margin-bottom: var(--space-8);
  text-align: center;
  font-size: var(--text-sm);
}

p.tag-view-all a {
  color: var(--color-accent-primary);
  text-decoration: underline;
}

p.tag-view-all a:hover {
  color: var(--color-accent-primary-hover);
}

/* Post tags container */
div.post__tags {
  margin-bottom: var(--space-4);
  display: flex;
  flex-wrap: wrap;
  gap: var(--space-1);
}

/* Article preview tags container */
div.article-preview__tags {
  display: flex;
  flex-wrap: wrap;
  gap: var(--space-1);
}

/* Add extra spacing above excerpt when it follows tags */
div.article-preview__tags + p.article-preview__excerpt {
  margin-top: var(--space-4) !important;
}

table.CodeRay {
  margin-bottom: var(--space-6);
  display: block;
  width: 100%;
  overflow-x: scroll;
  border-radius: var(--radius-lg);
  background-color: var(--color-bg-secondary);
  color: #f8f8f2;
}

code {
  border-radius: var(--radius-md);
  background-color: var(--color-bg-secondary);
  padding-left: var(--space-2);
  padding-right: var(--space-2);
  padding-top: 0px;
  padding-bottom: 0px;
  color: var(--color-text-secondary);
}

table.CodeRay tbody {
  font-size: var(--text-base);
  line-height: var(--leading-snug);
}

table.CodeRay tbody tr td.line-numbers {
}

div.CodeRay {
}

span.CodeRay {
  white-space: pre;
  border: 0px;
  padding: 2px;
}

table.CodeRay {
  border-collapse: collapse;
  width: 100%;
}

table.CodeRay td {
  padding: 1em 0.5em;
  vertical-align: top;
}

.CodeRay .line-numbers,  .CodeRay .no {
  width: var(--size-icon);
  background-color: var(--color-bg-secondary);
  padding-left: var(--space-2);
  padding-right: var(--space-2);
  padding-top: var(--space-4);
  padding-bottom: var(--space-4);
  text-align: right;
  color: var(--color-text-muted);
}

.CodeRay .line-numbers a {
  color: var(--color-text-muted-light);
}

.CodeRay .line-numbers a:hover {
  color: var(--color-text-muted-dark);
}

.CodeRay .line-numbers tt {
  font-weight: bold;
}

.CodeRay .line-numbers .highlighted {
  color: red;
}

.CodeRay .line {
  display: block;
  float: left;
  width: 100%;
}

.CodeRay span.line-numbers {
  padding: 0px 4px;
}

.CodeRay .code {
  width: 100%;
}

ol.CodeRay {
  font-size: 10pt;
}

ol.CodeRay li {
  white-space: pre;
}

.CodeRay .code pre {
  overflow: auto;
}

.CodeRay .debug {
  color:white ! important;
  background:blue ! important;
}

/* Dracula Theme Color Palette:
   Background: #282a36, Foreground: #f8f8f2
   Comment: #6272a4, Cyan: #8be9fd, Green: #50fa7b
   Orange: #ffb86c, Pink: #ff79c6, Purple: #bd93f9
   Red: #ff5555, Yellow: #f1fa8c */
.CodeRay .annotation {
  color:#f1fa8c;
}

.CodeRay .attribute-name {
  color:#50fa7b;
}

.CodeRay .attribute-value {
  color:#f1fa8c;
}

.CodeRay .binary {
  color:#bd93f9;
  font-weight:bold;
}

.CodeRay .comment {
  color:#6272a4;
  font-style: italic;
}

.CodeRay .char {
  color:#f1fa8c;
}

.CodeRay .char .content {
  color:#f1fa8c;
}

.CodeRay .char .delimiter {
  color:#f1fa8c;
}

.CodeRay .class {
  color:#8be9fd;
  font-weight:bold;
}

.CodeRay .complex {
  color:#bd93f9;
  font-weight:bold;
}

.CodeRay .constant {
  color:#bd93f9;
}

.CodeRay .color {
  color:#50fa7b;
}

.CodeRay .class-variable {
  color:#8be9fd;
}

.CodeRay .decorator {
  color:#50fa7b;
}

.CodeRay .definition {
  color:#50fa7b;
  font-weight:bold;
}

.CodeRay .directive {
  color:#ff79c6;
  font-weight:bold;
}

.CodeRay .delimiter {
  color:#f8f8f2;
}

.CodeRay .doc {
  color:#f1fa8c;
}

.CodeRay .doctype {
  color:#ff79c6;
}

.CodeRay .doc-string {
  color:#f1fa8c;
  font-weight:bold;
}

.CodeRay .escape {
  color:#ff79c6;
  font-weight:bold;
}

.CodeRay .entity {
  color:#50fa7b;
  font-weight:bold;
}

.CodeRay .error {
  color:#ff5555;
  background-color:#44475a;
}

.CodeRay .exception {
  color:#ff5555;
  font-weight:bold;
}

.CodeRay .filename {
  color:#f1fa8c;
}

.CodeRay .function {
  color:#50fa7b;
  font-weight:bold;
}

.CodeRay .global-variable {
  color:#bd93f9;
  font-weight:bold;
}

.CodeRay .hex {
  color:#bd93f9;
  font-weight:bold;
}

.CodeRay .integer {
  color:#bd93f9;
}

.CodeRay .include {
  color:#ff79c6;
  font-weight:bold;
}

.CodeRay .inline {
  color:#f8f8f2;
}

.CodeRay .inline .inline {
  background: #44475a;
}

.CodeRay .inline .inline .inline {
  background: #44475a;
}

.CodeRay .inline .inline-delimiter {
  color: #f1fa8c;
}

.CodeRay .inline-delimiter {
  color: #f1fa8c;
}

.CodeRay .important {
  color:#ff5555;
}

.CodeRay .interpreted {
  color:#50fa7b;
  font-weight:bold;
}

.CodeRay .instance-variable {
  color:#bd93f9;
}

.CodeRay .label {
  color:#8be9fd;
  font-weight:bold;
}

.CodeRay .local-variable {
  color:#ffb86c;
}

.CodeRay .octal {
  color:#bd93f9;
  font-weight:bold;
}

.CodeRay .operator {
  color:#ff79c6;
}

.CodeRay .predefined-constant {
  color:#bd93f9;
  font-weight:bold;
}

.CodeRay .predefined {
  color:#8be9fd;
  font-weight:bold;
}

.CodeRay .preprocessor {
  color:#ff79c6;
}

.CodeRay .pseudo-class {
  color:#50fa7b;
  font-weight:bold;
}

.CodeRay .predefined-type {
  color:#8be9fd;
  font-weight:bold;
}

.CodeRay .reserved, .keyword {
  color:#ff79c6;
  font-weight:bold;
}

.CodeRay .key {
  color: #ff79c6;
}

.CodeRay .key .delimiter {
  color: #f8f8f2;
}

.CodeRay .key .char {
  color: #f1fa8c;
}

.CodeRay .value {
  color: #f1fa8c;
}

.CodeRay .regexp {
  background-color:#44475a;
}

.CodeRay .regexp .content {
  color:#f1fa8c;
}

.CodeRay .regexp .delimiter {
  color:#ff79c6;
}

.CodeRay .regexp .modifier {
  color:#ff79c6;
}

.CodeRay .regexp .function {
  color:#50fa7b;
  font-weight: bold;
}

.CodeRay .string {
  color: #f1fa8c;
}

.CodeRay .string .string {
}

.CodeRay .string .string .string {
  background-color:#44475a;
}

.CodeRay .string .content {
  color: #f1fa8c;
}

.CodeRay .string .char {
  color: #f1fa8c;
}

.CodeRay .string .delimiter {
  color: #f1fa8c;
}

.CodeRay .shell {
  color:#f1fa8c;
}

.CodeRay .shell .content {
}

.CodeRay .shell .delimiter {
  color:#f1fa8c;
}

.CodeRay .symbol {
  color:#bd93f9;
}

.CodeRay .symbol .content {
  color:#ffb86c;
}

.CodeRay .symbol .delimiter {
  color:#f8f8f2;
}

.CodeRay .tag {
  color:#ff79c6;
}

.CodeRay .tag-special {
  color:#ff79c6;
  font-weight:bold;
}

.CodeRay .type {
  color:#8be9fd;
  font-weight:bold;
}

.CodeRay .variable {
  color:#f8f8f2;
}

.CodeRay .insert {
  background: #50fa7b33;
  color: #50fa7b;
}

.CodeRay .delete {
  background: #ff555533;
  color: #ff5555;
}

.CodeRay .change {
  color: #8be9fd;
  background: #44475a;
}

.CodeRay .head {
  color: #bd93f9;
  background: #44475a;
}

.CodeRay .insert .insert {
  color: #50fa7b;
  font-weight:bold;
}

.CodeRay .delete .delete {
  color: #ff5555;
  font-weight:bold;
}

.CodeRay .change .change {
  color: #8be9fd;
}

.CodeRay .head .head {
  color: #bd93f9;
}

.mermaid {
  color: rgb(15 23 42);
}

