@charset "UTF-8";
/*
   generated by rouge http://rouge.jneen.net/
   original base16 by Chris Kempson (https://github.com/chriskempson/base16)
*/
/*
   original: https://github.com/pages-themes/hacker 
*/
.highlight {
  color: #d0d0d0;
}

.highlight table td {
  padding: 5px;
}

.highlight table pre {
  margin: 0;
}

.highlight .w {
  color: #d0d0d0;
}

.highlight .err {
  color: #151515;
  background-color: #ac4142;
}

.highlight .c, .highlight .cd, .highlight .cm, .highlight .c1, .highlight .cs {
  color: #888;
}

.highlight .cp {
  color: #f4bf75;
}

.highlight .o, .highlight .ow {
  color: #f4bf75;
}

.highlight .p, .highlight .pi {
  color: #d0d0d0;
}

.highlight .gi {
  color: #90a959;
}

.highlight .gd {
  color: #ac4142;
}

.highlight .gh {
  color: #6a9fb5;
  font-weight: bold;
}

.highlight .k, .highlight .kn, .highlight .kp, .highlight .kr, .highlight .kv {
  color: #aa759f;
}

.highlight .kc, .highlight .kt, .highlight .kd {
  color: #d28445;
}

.highlight .s, .highlight .sb, .highlight .sc, .highlight .sd, .highlight .s2, .highlight .sh, .highlight .sx, .highlight .s1 {
  color: #90a959;
}

.highlight .sr {
  color: #75b5aa;
}

.highlight .si, .highlight .se {
  color: #8f5536;
}

.highlight .nt, .highlight .nn, .highlight .nc, .highlight .no {
  color: #f4bf75;
}

.highlight .na {
  color: #6a9fb5;
}

.highlight .m, .highlight .mf, .highlight .mh, .highlight .mi, .highlight .il, .highlight .mo, .highlight .mb, .highlight .mx {
  color: #90a959;
}

.highlight .ss {
  color: #90a959;
}

/* ============================================================
   Digital decay / bit rot
   Driven by page-decay.js, which sets --decay (0 → 1) on the article
   and wraps corrupted characters/words in spans.
   ============================================================ */
article.page-aging {
  --rot-amber: 220 175 40;
  --rot-green: 181 232 83;
  --rot-cyan: 80 210 230;
  --rot-bg: #151515;
  --rot-ink: #d4d4d4;
  position: relative;
  overflow: hidden;
  isolation: isolate;
  color: color-mix(in srgb, var(--rot-ink), rgb(var(--rot-amber)) calc(var(--decay, 0) * 30%));
}

/* ---------- CRT scanlines ---------- */
article.page-aging::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 10;
  pointer-events: none;
  background: repeating-linear-gradient(to bottom, transparent 0 2px, rgb(var(--rot-amber)/0.035) 2px 3px);
  opacity: calc(var(--decay, 0) * 1.2);
}

/* ---------- Rolling interference band ---------- */
article.page-aging::after {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  top: -140px;
  height: 140px;
  z-index: 11;
  pointer-events: none;
  background: linear-gradient(to bottom, transparent, rgb(var(--rot-amber)/0.04) 40%, rgb(var(--rot-green)/0.08) 50%, rgb(var(--rot-amber)/0.03) 60%, transparent);
  mix-blend-mode: screen;
  opacity: calc(var(--decay, 0) * 1.4);
  animation: rot-roll 11s linear infinite;
}

@keyframes rot-roll {
  from {
    top: -140px;
  }
  to {
    top: 100%;
  }
}
/* ------------------------------------------------------------
   Flipped bits (single characters)
   The real character stays in the DOM but is painted transparent;
   the corrupted glyph is drawn on top.
   ------------------------------------------------------------ */
.page-aging .rot-bit {
  position: relative;
  -webkit-text-fill-color: transparent;
  text-shadow: none;
}

.page-aging .rot-bit::after,
.page-aging .rot-bit::before {
  position: absolute;
  left: 0;
  top: 0;
  pointer-events: none;
}

.page-aging .rot-bit::after {
  content: attr(data-g);
  content: attr(data-g)/"";
  -webkit-text-fill-color: rgb(var(--rot-amber));
  text-shadow: 0 0 3px rgb(var(--rot-amber)/0.5);
}

.page-aging .rot-bit.is-block::after {
  -webkit-text-fill-color: rgb(var(--rot-green)/0.75);
  text-shadow: 1px 0 rgb(var(--rot-amber)/0.5);
}

.page-aging .rot-bit.is-drop::after {
  content: "";
  top: 0.45em;
  bottom: 0.3em;
  right: 0;
  background: repeating-linear-gradient(90deg, rgb(var(--rot-amber)/0.35) 0 1px, transparent 1px 3px);
}

.page-aging .rot-bit.is-unstable::before {
  content: attr(data-o);
  content: attr(data-o)/"";
  -webkit-text-fill-color: currentColor;
  opacity: 0;
  animation: rot-bit-true var(--rot-dur, 6s) steps(1) var(--rot-delay, 0s) infinite;
}

.page-aging .rot-bit.is-unstable::after {
  animation: rot-bit-false var(--rot-dur, 6s) steps(1) var(--rot-delay, 0s) infinite;
}

@keyframes rot-bit-true {
  0%, 100% {
    opacity: 0;
  }
  30% {
    opacity: 1;
  }
  33% {
    opacity: 0;
  }
  62% {
    opacity: 1;
  }
  78% {
    opacity: 0;
  }
}
@keyframes rot-bit-false {
  0%, 100% {
    opacity: 1;
  }
  30% {
    opacity: 0;
  }
  33% {
    opacity: 1;
  }
  62% {
    opacity: 0;
  }
  78% {
    opacity: 1;
  }
}
/* ------------------------------------------------------------
   Distorted words
   ------------------------------------------------------------ */
.page-aging .rot-skew {
  display: inline-block;
  transform: skewX(var(--rot-skew)) translateY(var(--rot-dy));
}

.page-aging .rot-split {
  text-shadow: calc(var(--rot-dx) * -1) 0 rgb(var(--rot-amber)/0.75), var(--rot-dx) 0 rgb(var(--rot-cyan)/0.5);
}

.page-aging .rot-slice {
  position: relative;
  display: inline-block;
}

.page-aging .rot-slice::after {
  content: attr(data-t);
  content: attr(data-t)/"";
  position: absolute;
  left: 0;
  top: 0;
  white-space: nowrap;
  background: var(--rot-bg);
  -webkit-text-fill-color: currentColor;
  clip-path: inset(var(--rot-cut) -20px 0 -20px);
  transform: translateX(var(--rot-dx));
  box-shadow: 0 -1px 0 rgb(var(--rot-amber)/0.4);
  pointer-events: none;
}

.page-aging .rot-stretch {
  display: inline-block;
  transform: scaleX(var(--rot-sx));
  transform-origin: left center;
}

.page-aging .rot-smear {
  text-shadow: 3px 0 rgb(var(--rot-amber)/0.3), 6px 0 rgb(var(--rot-amber)/0.18), 10px 0 rgb(var(--rot-amber)/0.08);
}

.page-aging .rot-word.is-live {
  display: inline-block;
  animation: rot-word-jitter var(--rot-dur, 6s) steps(1) var(--rot-delay, 0s) infinite;
}

@keyframes rot-word-jitter {
  0%, 100% {
    translate: 0 0;
    filter: none;
  }
  90% {
    translate: -3px 0;
    filter: hue-rotate(40deg);
  }
  92% {
    translate: 4px -1px;
  }
  94% {
    translate: 0 0;
    filter: none;
  }
}
/* ------------------------------------------------------------
   Paragraph sync loss — briefly jumps then settles
   ------------------------------------------------------------ */
.page-aging .rot-jolt {
  animation: rot-jolt var(--rot-dur, 10s) steps(1) var(--rot-delay, 0s) infinite;
}

@keyframes rot-jolt {
  0%, 100% {
    transform: none;
  }
  96% {
    transform: translateX(-6px) skewX(-4deg);
  }
  96.6% {
    transform: translateX(4px);
  }
  97.2% {
    transform: translateX(-1px);
  }
  97.8% {
    transform: none;
  }
}
/* ------------------------------------------------------------
   Headings: stay green, but occasionally slice and desync
   ------------------------------------------------------------ */
.page-aging .rot-heading {
  position: relative;
}

.page-aging .rot-heading::before,
.page-aging .rot-heading::after {
  content: attr(data-text);
  content: attr(data-text)/"";
  position: absolute;
  inset: 0;
  background: var(--rot-bg);
  pointer-events: none;
  opacity: 0;
}

.page-aging .rot-heading::before {
  color: rgb(var(--rot-amber));
  text-shadow: -2px 0 rgb(var(--rot-green)/0.6);
  animation: rot-head-a var(--rot-dur, 5s) steps(1) var(--rot-delay, 0s) infinite;
}

.page-aging .rot-heading::after {
  text-shadow: 2px 0 rgb(var(--rot-cyan)/0.5);
  animation: rot-head-b var(--rot-dur, 5s) steps(1) var(--rot-delay, 0s) infinite;
}

@keyframes rot-head-a {
  0% {
    opacity: 1;
    clip-path: inset(10% 0 72% 0);
    transform: translateX(-5px);
  }
  1.5% {
    clip-path: inset(58% 0 22% 0);
    transform: translateX(4px);
  }
  3% {
    clip-path: inset(30% 0 55% 0);
    transform: translateX(-2px);
  }
  4.5% {
    clip-path: inset(80% 0 4% 0);
    transform: translateX(7px);
  }
  6% {
    opacity: 0;
  }
  100% {
    opacity: 0;
  }
}
@keyframes rot-head-b {
  0% {
    opacity: 1;
    clip-path: inset(65% 0 10% 0);
    transform: translateX(6px);
  }
  2% {
    clip-path: inset(5% 0 80% 0);
    transform: translateX(-4px);
  }
  3.5% {
    clip-path: inset(42% 0 40% 0);
    transform: translateX(3px);
  }
  5% {
    opacity: 0;
  }
  100% {
    opacity: 0;
  }
}
/* ------------------------------------------------------------
   Artifact layer (tears, macroblocks, stray bytes)
   ------------------------------------------------------------ */
.page-aging .rot-layer {
  position: absolute;
  inset: 0;
  z-index: 20;
  pointer-events: none;
  overflow: hidden;
}

.page-aging .rot-tear {
  position: absolute;
  left: -2%;
  right: -2%;
  top: var(--y);
  height: var(--h);
  opacity: 0;
  background: repeating-linear-gradient(90deg, rgb(var(--rot-amber)/0.14) 0 2px, transparent 2px 7px), rgb(var(--rot-green)/0.05);
  -webkit-backdrop-filter: hue-rotate(80deg) saturate(3) brightness(1.5);
  backdrop-filter: hue-rotate(80deg) saturate(3) brightness(1.5);
  animation: rot-tear var(--dur, 6s) steps(1) var(--delay, 0s) infinite;
}

.page-aging .rot-tear.is-static {
  animation: none;
  opacity: 0.35;
}

@keyframes rot-tear {
  0%, 100% {
    opacity: 0;
    transform: none;
  }
  90% {
    opacity: 1;
    transform: translateX(-14px);
  }
  91.5% {
    opacity: 0.7;
    transform: translateX(22px) scaleY(2.5);
  }
  93% {
    opacity: 0.4;
    transform: translateX(-4px);
  }
  94% {
    opacity: 0;
    transform: none;
  }
}
.page-aging .rot-block {
  position: absolute;
  left: var(--x);
  top: var(--y);
  width: var(--w);
  height: var(--h);
  opacity: var(--o);
  mix-blend-mode: screen;
}

.page-aging .rot-block.is-solid {
  background: rgb(var(--rot-amber)/0.45);
}

.page-aging .rot-block.is-noise {
  background: repeating-conic-gradient(rgb(var(--rot-amber)/0.6) 0 25%, transparent 0 50%) 0 0/4px 4px;
}

.page-aging .rot-block.is-stripe {
  background: repeating-linear-gradient(90deg, rgb(var(--rot-green)/0.55) 0 1px, transparent 1px 3px);
}

.page-aging .rot-block.is-live {
  animation: rot-block var(--dur, 5s) steps(1) var(--delay, 0s) infinite;
}

@keyframes rot-block {
  0%, 100% {
    visibility: visible;
    transform: none;
  }
  45% {
    visibility: hidden;
  }
  70% {
    visibility: visible;
    transform: translateX(16px);
  }
  74% {
    transform: none;
  }
}
.page-aging .rot-stray {
  position: absolute;
  left: var(--x);
  top: var(--y);
  font: 0.7rem/1 monospace;
  letter-spacing: 0.05em;
  white-space: nowrap;
  color: rgb(var(--rot-amber)/0.8);
  text-shadow: 0 0 4px rgb(var(--rot-amber)/0.35);
  opacity: var(--o);
  animation: rot-stray var(--dur, 6s) steps(1) var(--delay, 0s) infinite;
}

@keyframes rot-stray {
  0%, 100% {
    opacity: var(--o);
    transform: none;
  }
  55% {
    opacity: 0;
  }
  70% {
    opacity: var(--o);
    transform: translateX(3ch);
  }
  73% {
    opacity: 0;
  }
  76% {
    opacity: var(--o);
    transform: none;
  }
}
/* ------------------------------------------------------------
   "This article is old" notice — sits above all artifacts, never corrupted
   ------------------------------------------------------------ */
.page-aging .rot-notice {
  position: relative;
  z-index: 30;
  margin: 0 0 1.5rem;
  padding: 0.6rem 0.9rem;
  font: 0.85rem/1.5 monospace;
  color: rgb(var(--rot-amber));
  background: color-mix(in srgb, var(--rot-bg), rgb(var(--rot-amber)) 8%);
  border: 1px dashed rgb(var(--rot-amber)/0.55);
  border-left: 3px solid rgb(var(--rot-amber));
}

.page-aging .rot-notice-tag {
  font-weight: bold;
  animation: rot-notice-blink 1.2s steps(1) infinite;
}

@keyframes rot-notice-blink {
  50% {
    opacity: 0.35;
  }
}
/* ------------------------------------------------------------
   Accessibility & print
   ------------------------------------------------------------ */
@media (prefers-reduced-motion: reduce) {
  article.page-aging::after,
  .page-aging .rot-tear:not(.is-static) {
    display: none;
  }
  .page-aging *,
  .page-aging *::before,
  .page-aging *::after {
    animation: none !important;
  }
}
@media print {
  article.page-aging::before,
  article.page-aging::after,
  .page-aging .rot-layer,
  .page-aging .rot-bit::before,
  .page-aging .rot-bit::after,
  .page-aging .rot-slice::after,
  .page-aging .rot-heading::before,
  .page-aging .rot-heading::after {
    display: none;
  }
  .page-aging .rot-bit {
    -webkit-text-fill-color: currentColor;
  }
}
*,
*::before,
*::after {
  box-sizing: border-box;
}

body {
  display: flex;
  flex-direction: column;
  min-height: 100vh;
  margin: 0;
  padding: 0;
  background: #151515 url("../assets/bkg.png") 0 0;
  color: #d4d4d4;
  font-family: Charter, "Bitstream Charter", "Iowan Old Style", "Sitka Text", "Palatino Linotype", Palatino, Georgia, Cambria, serif;
  font-size: 1.125rem;
  line-height: 1.65;
  font-kerning: normal;
  text-rendering: optimizeLegibility;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

.container {
  width: 90%;
  max-width: 42rem;
  margin: 0 auto;
}

section {
  margin: 0 0 1.25rem;
}

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

h1, h2, h3, h4, h5, h6 {
  margin: 2em 0 0.75em;
  font-family: ui-monospace, "JetBrains Mono", "SF Mono", Menlo, Monaco, Consolas, "Liberation Mono", "Bitstream Vera Sans Mono", monospace;
  font-weight: normal;
  line-height: 1.3;
  color: #b5e853;
  letter-spacing: -0.03em;
}
h1:first-child, h2:first-child, h3:first-child, h4:first-child, h5:first-child, h6:first-child {
  margin-top: 0;
}

header {
  margin: 0 0 2rem;
  padding: 1.5rem 1rem 1rem;
  background: rgba(0, 0, 0, 0.1);
  border-bottom: 1px dashed #b5e853;
}
header a {
  text-decoration: none;
}
header h1 {
  margin: 0;
  font-size: 1.5rem;
  font-weight: bold;
  line-height: 1.5;
  text-align: center;
  letter-spacing: -1px;
}
header h2 {
  margin: 0.25rem 0 0;
  font-size: 1.125rem;
  text-align: center;
  color: #9a9a9a;
}

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

.masthead {
  text-align: center;
}
.masthead h1 a {
  color: #b5e853;
}
.masthead h1 a::after {
  content: "_";
  margin-left: 0.1em;
  animation: blink 1.1s steps(1) infinite;
}

@keyframes blink {
  50% {
    opacity: 0;
  }
}
@media (prefers-reduced-motion: reduce) {
  .masthead h1 a::after {
    animation: none;
  }
}
.masthead-role {
  margin: 0.25rem 0 1rem;
  font-size: 1.05rem;
  color: #d4d4d4;
}

.masthead-nav {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  align-items: center;
  gap: 0.4rem 1.4rem;
  font-family: ui-monospace, "JetBrains Mono", "SF Mono", Menlo, Monaco, Consolas, "Liberation Mono", "Bitstream Vera Sans Mono", monospace;
  font-size: 0.85rem;
}
.masthead-nav > a,
.masthead-nav > a:visited {
  color: #63c0f5;
}
.masthead-nav > a:hover {
  color: #9dd8fa;
}
.masthead-nav > a[aria-current=page] {
  color: #b5e853;
}
.masthead-nav .hire {
  padding: 0.15rem 0.7rem;
  border: 1px solid #b5e853;
  border-radius: 999px;
  color: #b5e853;
}
.masthead-nav .hire::before {
  content: "●";
  margin-right: 0.4em;
  font-size: 0.7em;
  vertical-align: 0.15em;
}
.masthead-nav .hire:hover {
  background: #b5e853;
  color: #151515;
}
.masthead-nav .icons {
  display: inline-flex;
  gap: 0.9rem;
}
.masthead-nav .icons img {
  display: block;
  width: 1.1rem;
  height: 1.1rem;
  opacity: 0.75;
  transition: opacity 0.15s ease;
}
.masthead-nav .icons a:hover img {
  opacity: 1;
}

#wrapper {
  flex: 1;
}

#main_content {
  width: 100%;
}
#main_content h1 {
  font-size: 1.875rem;
}
#main_content h2 {
  font-size: 1.5rem;
}
#main_content h3 {
  font-size: 1.25rem;
}
#main_content h4 {
  font-size: 1.125rem;
}
#main_content h5,
#main_content h6 {
  margin-bottom: 0.5em;
  font-size: 0.875rem;
  text-transform: uppercase;
  letter-spacing: 0.05em;
}
#main_content h6 {
  color: #9a9a9a;
}
#main_content .tags {
  display: flex;
  flex-wrap: wrap;
  gap: 0 0.8em;
  margin-bottom: 0.5rem;
  font-family: ui-monospace, "JetBrains Mono", "SF Mono", Menlo, Monaco, Consolas, "Liberation Mono", "Bitstream Vera Sans Mono", monospace;
  font-size: 0.8rem;
  line-height: 1.8;
}
#main_content .tags a,
#main_content .tags a:visited {
  color: #63c0f5;
  text-decoration: none;
}
#main_content .tags a:hover {
  color: #9dd8fa;
  text-decoration: underline;
  text-decoration-color: rgba(157, 216, 250, 0.5);
}
#main_content article > h2:first-child {
  margin: 0 0 0.35rem;
  font-size: 2.25rem;
  line-height: 1.2;
  letter-spacing: -0.04em;
}
@media (max-width: 600px) {
  #main_content article > h2:first-child {
    font-size: 1.6rem;
  }
}
#main_content .comments,
#main_content .comment-form {
  margin-top: 3rem;
  padding-top: 2rem;
  border-top: 1px dashed #666;
}

#main_content .post-list {
  margin: 0;
  padding-left: 0;
}
@media (max-width: 600px) {
  #main_content .post-list {
    padding-left: 1.75rem;
  }
}
#main_content .post-list > li {
  margin: 0 0 2.75rem;
}
#main_content .post-list h2 {
  margin: 0 0 0.25rem;
  font-size: 1.5rem;
  line-height: 1.3;
}
@media (max-width: 600px) {
  #main_content .post-list h2 {
    font-size: 1.25rem;
  }
}
#main_content .post-list h2 a,
#main_content .post-list h2 a:visited {
  color: #b5e853;
  text-decoration: none;
}
#main_content .post-list h2 a:hover {
  text-decoration: underline;
  text-decoration-thickness: 1px;
  text-decoration-color: rgba(181, 232, 83, 0.5);
}
#main_content .post-list time {
  display: block;
  margin-bottom: 0.5rem;
  font-family: ui-monospace, "JetBrains Mono", "SF Mono", Menlo, Monaco, Consolas, "Liberation Mono", "Bitstream Vera Sans Mono", monospace;
  font-size: 0.85rem;
  color: #9a9a9a;
}
#main_content .post-list p {
  margin: 0;
  color: rgba(212, 212, 212, 0.85);
}

.pager {
  display: grid;
  grid-template-columns: 1fr auto 1fr;
  align-items: center;
}
.pager > :last-child {
  text-align: right;
}
.pager {
  margin: 1rem 0 2rem;
  padding-top: 1.5rem;
  border-top: 1px dashed #666;
  font-family: ui-monospace, "JetBrains Mono", "SF Mono", Menlo, Monaco, Consolas, "Liberation Mono", "Bitstream Vera Sans Mono", monospace;
  font-size: 0.85rem;
}
.pager a,
.pager a:visited {
  color: #b5e853;
  text-decoration: none;
}
.pager a:hover {
  text-decoration: underline;
}

.pager-count {
  color: #9a9a9a;
}

.comment {
  margin-bottom: 1.25rem;
  padding: 0.25rem 0 0.25rem 1rem;
  border-left: 2px solid #666;
}
.comment > :last-child {
  margin-bottom: 0;
}

.comment-meta {
  display: flex;
  gap: 0.75em;
  margin-bottom: 0.35rem;
  font-family: ui-monospace, "JetBrains Mono", "SF Mono", Menlo, Monaco, Consolas, "Liberation Mono", "Bitstream Vera Sans Mono", monospace;
  font-size: 0.8rem;
  color: #9a9a9a;
}

.comment-name {
  color: #b5e853;
}

time.by-line {
  display: block;
  margin-bottom: 2rem;
  font-family: ui-monospace, "JetBrains Mono", "SF Mono", Menlo, Monaco, Consolas, "Liberation Mono", "Bitstream Vera Sans Mono", monospace;
  font-size: 0.85rem;
  color: #9a9a9a;
}

p,
ul,
ol,
dl {
  margin: 0 0 1.25rem;
}

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

ul li {
  list-style-image: url("../assets/bullet.png");
}

dt {
  font-style: italic;
  font-weight: bold;
}

blockquote {
  margin: 0 0 1.25rem;
  padding: 0.25em 0 0.25em 1em;
  border-left: 3px solid #666;
  color: #aaa;
  font-style: italic;
}
blockquote > :last-child {
  margin-bottom: 0;
}

hr {
  height: 0;
  margin: 2rem 0;
  border: 0;
  border-bottom: 1px dashed #b5e853;
}

pre,
code,
kbd,
samp {
  font-family: ui-monospace, "JetBrains Mono", "SF Mono", Menlo, Monaco, Consolas, "Liberation Mono", "Bitstream Vera Sans Mono", monospace;
}

pre {
  margin: 0 0 1.25rem;
  padding: 1rem;
  overflow-x: auto;
  background: rgba(0, 0, 0, 0.9);
  border: 1px solid rgba(255, 255, 255, 0.15);
  border-radius: 4px;
  color: #b5e853;
  font-size: 0.875rem;
  line-height: 1.5;
  white-space: pre;
  tab-size: 2;
}

code.highlighter-rouge {
  padding: 0.1em 0.3em;
  background: rgba(255, 255, 255, 0.07);
  border-radius: 3px;
  color: #c792c0;
  font-size: 0.85em;
}

table {
  width: 100%;
  margin: 0 0 1.25rem;
  border-collapse: collapse;
}

th,
td {
  padding: 0.35rem 0.65rem;
  text-align: left;
  vertical-align: top;
}

th {
  border-bottom: 1px dashed #b5e853;
}

tbody tr:nth-child(even) {
  background: rgba(255, 255, 255, 0.03);
}

a {
  color: #63c0f5;
  text-decoration-thickness: 1px;
  text-decoration-color: rgba(99, 192, 245, 0.4);
  text-underline-offset: 0.2em;
  transition: color 0.15s ease, text-decoration-color 0.15s ease;
}
a:visited {
  color: #4a9fd1;
  text-decoration-color: rgba(74, 159, 209, 0.4);
}
a:hover {
  color: #9dd8fa;
  text-decoration-color: currentColor;
}
a:focus-visible {
  outline: 2px dashed #b5e853;
  outline-offset: 2px;
}

.btn {
  display: inline-block;
  padding: 8px 18px;
  background: linear-gradient(to bottom, rgba(40, 40, 40, 0.3), rgba(35, 35, 35, 0.3) 50%, rgba(10, 10, 10, 0.3) 50%, rgba(0, 0, 0, 0.3));
  border: 2px solid rgba(0, 0, 0, 0.7);
  border-top-color: rgb(0, 0, 0);
  border-radius: 50px;
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.05);
  color: rgba(255, 255, 255, 0.8);
  font-family: system-ui, -apple-system, "Segoe UI", Helvetica, Arial, sans-serif;
  font-size: 0.8125rem;
  font-weight: bold;
  text-decoration: none;
}
.btn:hover {
  background: linear-gradient(to bottom, rgba(40, 40, 40, 0.6), rgba(35, 35, 35, 0.6) 50%, rgba(10, 10, 10, 0.8) 50%, rgba(0, 0, 0, 0.8));
}
.btn .icon {
  display: inline-block;
  float: left;
  width: 16px;
  height: 16px;
  margin: 1px 8px 0 0;
}

.btn-github .icon {
  opacity: 0.6;
  background: url("../images/blacktocat.png") 0 0 no-repeat;
}

.cf {
  display: flow-root;
}

form {
  font-size: 0.95rem;
}
form .form-note {
  margin-bottom: 1rem;
  color: #9a9a9a;
  font-size: 0.85rem;
  font-style: italic;
}
form label {
  display: block;
  font-family: ui-monospace, "JetBrains Mono", "SF Mono", Menlo, Monaco, Consolas, "Liberation Mono", "Bitstream Vera Sans Mono", monospace;
  font-size: 0.8rem;
  color: #9a9a9a;
}
form input[type=text],
form input[type=email],
form textarea {
  display: block;
  width: 100%;
  margin: 0.3rem 0 1rem;
  padding: 0.5rem 0.65rem;
  background: rgba(0, 0, 0, 0.5);
  border: 1px solid rgba(255, 255, 255, 0.15);
  border-radius: 4px;
  color: #d4d4d4;
  font-family: Charter, "Bitstream Charter", "Iowan Old Style", "Sitka Text", "Palatino Linotype", Palatino, Georgia, Cambria, serif;
  font-size: 1rem;
}
form input[type=text]:focus,
form input[type=email]:focus,
form textarea:focus {
  outline: none;
  border-color: #b5e853;
}
form textarea {
  height: 12rem;
  resize: vertical;
  font-family: ui-monospace, "JetBrains Mono", "SF Mono", Menlo, Monaco, Consolas, "Liberation Mono", "Bitstream Vera Sans Mono", monospace;
  font-size: 0.9rem;
  line-height: 1.5;
}
form button {
  padding: 0.5rem 1.5rem;
  background: transparent;
  border: 1px solid #b5e853;
  border-radius: 4px;
  color: #b5e853;
  font-family: ui-monospace, "JetBrains Mono", "SF Mono", Menlo, Monaco, Consolas, "Liberation Mono", "Bitstream Vera Sans Mono", monospace;
  font-size: 0.9rem;
  cursor: pointer;
  transition: background 0.15s ease, color 0.15s ease;
}
form button:hover {
  background: #b5e853;
  color: #151515;
}

.pagination,
footer {
  height: 50px;
  line-height: 50px;
  text-align: center;
}

footer {
  font-family: ui-monospace, "JetBrains Mono", "SF Mono", Menlo, Monaco, Consolas, "Liberation Mono", "Bitstream Vera Sans Mono", monospace;
  font-size: 0.8rem;
}
footer a {
  color: #9a9a9a;
  text-decoration: none;
}

.typo {
  text-decoration: underline wavy #ff5f56;
  text-decoration-thickness: 1px;
  text-underline-offset: 0.2em;
  text-decoration-skip-ink: none;
}

/*# sourceMappingURL=main.css.map */