/*! JJ CSS */

body {
  width: 100%;
  height: 100%;
  margin: 0;
  color: #202020;
  font-family: system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI",
    "Roboto", "Oxygen", "Ubuntu", "Cantarell", "Fira Sans",
    "Droid Sans", "Helvetica Neue", sans-serif,
    "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol";
  font-weight: 300;
  font-size: 24px;
  line-height: 1.5em;
}

* {
  box-sizing: border-box;
}

a {
  background-color: transparent;
  text-decoration: none;
  border-bottom: 1px solid transparent;
  transition: border-color 0.08s linear;
}



/*! Home Styles */

body#home {
  height: 100%;
  width: 100%;
  max-width: 1450px;
  margin: 0 auto;
  padding: 6% 8%;
}

body#home img#me {
  float: right;
  margin: 0 0 20px 20px;
  padding: 4px;
  border: 1px solid #ddd;
  width: 160px;
  height: 160px;
}

body#home h1 {
  margin: 0 0 20px 0;
  font-size: 1.5em;
  font-weight: 500;
  line-height: 1em;
}

body#home h2 {
  margin: 20px 0;
  font-size: 1.2em;
  font-weight: 400;
  line-height: 1.4em;
}

body#home p {
  margin: 20px 0;
  font-size: 1em;
}

body#home sup {
  top: -0.5em;
  font-size: 0.5em;
  line-height: 0;
  position: relative;
  vertical-align: baseline;
  vertical-align: middle;
}

body#home h1 a {
  color: inherit;
  border: none;
}


/* Colo[u]rful Links */

body#home a#boston {
  color: #fb4d42;
}
body#home a#boston:hover {
  border-color: #fb4d42;    /* First color for hex alpha (#RRGGBBAA) backwards compatibility:   */
  border-color: #fb4d4260;  /* https://meyerweb.com/eric/thoughts/2019/04/01/color-me-face1e55/ */
}

body#home a#javascript {
  color: #f48024;
}
body#home a#javascript:hover {
  border-color: #f48024;
  border-color: #f4802460;
}

body#home a#node {
  color: #6fbc4e;
}
body#home a#node:hover {
  border-color: #6fbc4e;
  border-color: #6fbc4e60;
}

body#home a#express {
  color: #259dff;
}
body#home a#express:hover {
  border-color: #259dff;
  border-color: #259dff60;
}

body#home a#mongo {
  color: #13aa52;
}
body#home a#mongo:hover {
  border-color: #13aa52;
  border-color: #13aa5260;
}

body#home a#react {
  color: #61dafb;
}
body#home a#react:hover {
  border-color: #61dafb;
  border-color: #61dafb60;
}

body#home a#angular {
  color: #c3002f;
}
body#home a#angular:hover {
  border-color: #c3002f;
  border-color: #c3002f60;
}

body#home a#vue {
  color: #486491;
}
body#home a#vue:hover {
  border-color: #486491;
  border-color: #48649160;
}

body#home a#java {
  color: #ab6311;
}
body#home a#java:hover {
  border-color: #ab6311;
  border-color: #ab631160;
}

body#home a#cpp {
  color: #865fc5;
}
body#home a#cpp:hover {
  border-color: #865fc5;
  border-color: #865fc560;
}

body#home a#python {
  color: #efb60b;
}
body#home a#python:hover {
  border-color: #efb60b;
  border-color: #efb60b60;
}

body#home a#php {
  color: #8892bf;
}
body#home a#php:hover {
  border-color: #8892bf;
  border-color: #8892bf60;
}

body#home a#ruby {
  color: #d34135;
}
body#home a#ruby:hover {
  border-color: #d34135;
  border-color: #d3413560;
}

body#home a#infosec {
  color: #00b81a;
}
body#home a#infosec:hover {
  border-color: #00b81a;
  border-color: #00b81a60;
}

body#home a#server {
  color: #0098ec;
}
body#home a#server:hover {
  border-color: #0098ec;
  border-color: #0098ec60;
}
body#home a#server span#serverless {
  color: #87cef7;
}

body#home a#devops {
  color: #ff6200;
}
body#home a#devops:hover {
  border-color: #ff6200;
  border-color: #ff620060;
}

body#home a#containerization {
  color: #c48f49;
}
body#home a#containerization:hover {
  border-color: #c48f49;
  border-color: #c48f4960;
}

body#home a#y2k {
  color: #ffa900;
}
body#home a#y2k:hover {
  border-color: #ffa900;
  border-color: #ffa90060;
}
body#home a#y2k span#shh {
  color: #9e9e9e;
}

body#home span#fairy {
  color: #f23e93;
}
body#home span#fairy:hover {
  cursor: url(data:image/svg+xml;utf8;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIzMCIgaGVpZ2h0PSIzNiIgdmlld3BvcnQ9IjAgMCAxMDAgMTAwIiBzdHlsZT0iZm9udC1zaXplOjE4cHgiPjx0ZXh0IHk9IjUwJSI+8J+nmjwvdGV4dD48L3N2Zz4=) 5 5, auto;
}

body#home a#github {
  color: #8d4eff;
}
body#home a#github:hover {
  border-color: #8d4eff;
  border-color: #8d4eff60;
}

body#home a#linkedin {
  color: #0073b1;
}
body#home a#linkedin:hover {
  border-color: #0073b1;
  border-color: #0073b160;
}

body#home a#facebook {
  color: #4267b2;
}
body#home a#facebook:hover {
  border-color: #4267b2;
  border-color: #4267b260;
}

body#home a.twitter {
  color: #00acee;
}
body#home a.twitter:hover {
  border-color: #00acee;
  border-color: #00acee60;
}

body#home a#instagram {
  color: #a37754;
}
body#home a#instagram:hover {
  border-color: #a37754;
  border-color: #a3775460;
}

body#home a#mastodon {
  color: #6d8ca7;
}
body#home a#mastodon:hover {
  border-color: #6d8ca7;
  border-color: #6d8ca760;
}

body#home a#news-1 {
  color: #ff1b1b;
}
body#home a#news-1:hover {
  border-color: #ff1b1b;
  border-color: #ff1b1b60;
}

body#home a#news-2 {
  color: #f78200;
}
body#home a#news-2:hover {
  border-color: #f78200;
  border-color: #f7820060;
}

body#home a#news-3 {
  color: #f2b702;
}
body#home a#news-3:hover {
  border-color: #f2b702;
  border-color: #f2b70260;
}

body#home a#news-4 {
  color: #5ebd3e;
}
body#home a#news-4:hover {
  border-color: #5ebd3e;
  border-color: #5ebd3e60;
}

body#home a#news-5 {
  color: #009cdf;
}
body#home a#news-5:hover {
  border-color: #009cdf;
  border-color: #009cdf60;
}

body#home a#news-6 {
  color: #3e49bb;
}
body#home a#news-6:hover {
  border-color: #3e49bb;
  border-color: #3e49bb60;
}

body#home a#news-7 {
  color: #973999;
}
body#home a#news-7:hover {
  border-color: #973999;
  border-color: #97399960;
}

body#home a#resume {
  color: #d54b3d;
}
body#home a#resume:hover {
  border-color: #d54b3d;
  border-color: #d54b3d60;
}

body#home a#email {
  color: #de0c0c;
}
body#home a#email:hover {
  border-color: #de0c0c;
  border-color: #de0c0c60;
}

body#home a#pgp {
  color: #777777;
}
body#home a#pgp:hover {
  border-color: #777777;
  border-color: #77777760;
}

body#home a#sms {
  color: #6fcc01;
}
body#home a#sms:hover {
  border-color: #6fcc01;
  border-color: #6fcc0160;
}


/* Footer */

body#home footer {
  margin: 0;
  height: 40px;
}

body#home footer div {
  float: left;
  vertical-align: middle;
  line-height: 40px;
  height: 100%;
}

body#home footer div#blog {
  width: 40%;
  text-align: left;
  font-size: 0.9em;
}

body#home footer div#blog a {
  color: #0077a7;
}
body#home footer div#blog a:hover {
  border-color: #0077a7;
  border-color: #0077a760;
}

body#home footer div#panda {
  width: 20%;
  text-align: center;
  font-size: 1em;
}

body#home footer div#panda span {
  text-align: center;
  width: 12px;
}

body#home footer div#info {
  width: 40%;
  font-size: 0.55em;
  color: #666;
  text-align: right;
}

body#home footer div#info a {
  color: #666;
}

body#home footer div#info a#source {
  border-bottom: 1px solid #ddd;
}


/* Responsive Awesomeness */

@media screen and (max-width: 800px) {
  body#home {
    font-size: 16px;
    margin-top: 10px;
    margin-bottom: 10px;
  }

  body#home img#me {
    width: 70px;
    height: 70px;
    padding: 2px;
    margin: 0 0 10px 10px;
  }

  body#home h1 {
    margin: 0 0 12px 0;
  }

  body#home h2 {
    margin: 12px 0;
  }

  body#home p {
    font-size: 1.1em;
    line-height: 1.5em;
    margin: 12px 0;
  }

  body#home footer div#panda {
    display: none;
  }

  body#home footer div#blog, body#home footer div#info {
    width: 50%;
    line-height: 20px;
  }

  body#home footer div#info {
    font-size: 0.7em;
  }

  body#home footer div#blog {
    font-size: 1em;
  }

  body#home footer div#info span#copyright::after {
    content: "\A";
    white-space: pre;
  }
}


/* Fancy Waving Hand Emoji (TM) - https://jarv.is/notes/css-waving-hand-emoji/ */

@keyframes wave {
    0% { transform: rotate(  0.0deg); }
   10% { transform: rotate(-10.0deg); }
   20% { transform: rotate( 12.0deg); }
   30% { transform: rotate(-10.0deg); }
   40% { transform: rotate(  9.0deg); }
   50% { transform: rotate(  0.0deg); }
  100% { transform: rotate(  0.0deg); }
}

body#home h1 span#wave {
  display: inline-block;
  animation-name: wave;
  animation-duration: 2.5s;
  animation-iteration-count: infinite;
  transform-origin: 70% 70%;
}



/*! Blog Styles */

body#notes {
  font-size: 18px;
  font-weight: 400;
  margin: 0 auto;
  padding: 20px 10%;
  max-width: 1150px;
}

body#notes a {
  color: #036e9b;
}
body#notes a:hover {
  border-color: #036e9b;
  border-color: #036e9b60;
}


/* Header */

body#notes header {
  font-size: 16px;
  margin-top: 20px;
  margin-bottom: 40px;
}

body#notes header a#more {
  border: none;
  font-size: 18px;
  font-weight: 400;
}

body#notes header a#logo {
  border: none;
  margin: 20px auto;
  display: block;
}

body#notes header a#logo img, body#notes header a#logo svg {
  height: 150px;
  width: 100px;
  margin: 0 auto;
  display: block;
  border: none;
}


/* Footer */

body#notes footer {
  border-top: 1px solid #ccc;
  height: 40px;
  font-size: 24px;
  padding-top: 16px;
  margin-top: 30px;
  margin-bottom: 20px;
}

body#notes footer a {
  color: #666;
  border: none;
}

body#notes footer div {
  float: left;
  vertical-align: middle;
  line-height: 40px;
  height: 100%;
}

body#notes footer div#copyright, body#notes footer div#poweredby {
  width: 40%;
  font-size: 0.55em;
  color: #666;
}

body#notes footer div#copyright {
  text-align: left;
}

body#notes footer div#poweredby {
  text-align: right;
}

body#notes footer div#poweredby a#source {
  border-bottom: 1px solid #ddd;
}

body#notes footer div#panda {
  width: 20%;
  text-align: center;
  font-size: 1em;
}

body#notes footer div#panda span {
  text-align: center;
  width: 12px;
}


/* Single Post */

body#notes main#single article div#content, body#notes main#single article div#content p {
  line-height: 1.7;
  object-fit: contain;
}

body#notes main#single article div#info {
  text-align: center;
}

body#notes main#single article div#info h1 {
  margin-top: 0;
  margin-bottom: 20px;
  color: #222;
  font-size: 32px;
  line-height: 1.4em;
}

body#notes main#single article div#info h1 a {
  color: #222;
  border: none;
}

body#notes main#single article div#content h1, body#notes main#single article div#content h2, body#notes main#single article div#content h3 {
  margin-top: 20px;
  margin-bottom: 10px;
  font-weight: 500;
  line-height: 1.5em;
}

body#notes main#single article div.meta {
  margin: -5px 0 0 0;
  color: #666;
  font-size: 13px;
  line-height: 1.5em;
  letter-spacing: 1px;
}

body#notes main#single article div.meta a {
  color: #666;
  border: none;
}

body#notes main#single article div.meta div.tags {
  text-transform: uppercase;
  line-height: 1.5em;
  letter-spacing: 2px;
  margin-top: 5px;
}
body#notes main#single article div.meta div.tags span.tag {
  color: #666;
  border: none;
  margin: 0 7px;
}
body#notes main#single article div.meta div.tags span.tag a {
  color: #666;
  border: none;
}

body#notes main#single article div#content img {
  max-width: 100%;
  margin: 0 auto;
  display: block;
  object-fit: scale-down;
}
body#notes main#single article div#content img + em {
  display: block;
  text-align: center;
  font-size: 15px;
  color: #555;
  margin-top: 5px;
}

body#notes main#single article div#content blockquote {
  border-left: 6px solid #0087be;
  margin-left: 6px;
  padding-left: 15px;
}

body#notes main#single article div#content ul {
  list-style-position: inside;
  list-style-type: square;
  margin-left: 12px;
  padding-left: 0;
}

body#notes main#single article div#content code {
  font-family: monospace;
  background: #f4f4f4;
  padding: 0.2em;
  border: 1px solid #ccc;
  font-size: 16px;
}

body#notes main#single article div#content pre code {
  padding: 1em 1.5em;
  line-height: 1.6;
  page-break-inside: avoid;
  border: 1px solid #ddd;
  border-left: 3px solid #0087be;
  overflow-x: scroll;
  display: block;
  max-width: 100%;
  object-fit: scale-down;
}

body#notes main#single article div#content hr {
  width: 60%;
  margin: 10px auto;
  border: 1px solid #ccc;
}

body#notes main#single article div#content div.embed.video-player {
  position: relative;
  padding-bottom: 56.25%;
  height: 0;
  overflow: hidden;
}

body#notes main#single article div#content div.embed.video-player iframe.youtube-player {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  border: none;
  margin-bottom: 10px;
  display: inline-block;
}

body#notes main#single article div#commento {
  border-top: 1px solid #ccc;
  padding-top: 20px;
  margin-top: 20px;
}

body#notes main#single article div#commento a.commento-name {
  max-width: none !important;
  border: none;
}

body#notes main#single article div#commento div.commento-logged-container {
  display: block !important;
}

body#notes main#single article div#commento div#commento-footer {
  display: none;
}



/* Archive List */

body#notes main#archive section.year ul {
  list-style-type: none;
  padding-left: 0;
  display: block;
}

body#notes main#archive section.year li::after {
  content: '';
  display: block;
  clear: both;
}

body#notes main#archive section.year li:last-child {
  margin-bottom: 20px;
}

body#notes main#archive section.year li+li {
  padding-top: 20px;
}

body#notes main#archive section.year div.date {
  float: left;
  color: #666;
  width: 100px;
  font-weight: 400;
}

body#notes main#archive section.year div.title {
  float: left;
  width: calc(100% - 100px);
}


/* Responsiveness */

@media screen and (max-width: 800px) {
  body#notes {
    padding: 20px;
  }

  body#notes, body#notes main#single article {
    width: 100%;
    max-width: 100%;
    box-sizing: border-box;
  }

  body#notes header {
    margin-top: 0;
    margin-bottom: 20px;
  }

  body#notes header a#logo img, body#notes header a#logo svg {
    height: 75px;
    width: 50px;
  }

  body#notes footer {
    margin-bottom: 30px;
  }

  body#notes footer div#panda {
    display: none;
  }

  body#notes footer div#copyright, body#notes footer div#poweredby {
    width: 50%;
    line-height: 20px;
    font-size: 14px;
    line-height: 1.8em;
  }

  body#notes footer div#poweredby a#hugo::after {
    content: "\A";
    white-space: pre;
  }

  body#notes main#single article div.meta {
    font-size: 14px;
  }
}


/*! Syntax Highlighting - modified from Monokai Light https://github.com/mlgill/pygments-style-monokailight */

div.highlight span.k,
div.highlight span.kc,
div.highlight span.kd,
div.highlight span.kp,
div.highlight span.kr,
div.highlight span.kt,
div.highlight span.no {
  color: #03748a;
}
div.highlight span.n,
div.highlight span.bp,
div.highlight span.nb,
div.highlight span.ni,
div.highlight span.fm,
div.highlight span.nl,
div.highlight span.nn,
div.highlight span.py,
div.highlight span.nv,
div.highlight span.vc,
div.highlight span.vg,
div.highlight span.vi,
div.highlight span.vm,
div.highlight span.p {
  color: #111111;
}
div.highlight span.na,
div.highlight span.nc,
div.highlight span.nd,
div.highlight span.ne,
div.highlight span.nf,
div.highlight span.nx {
  color: #489c44;
}
div.highlight span.err,
div.highlight span.nt,
div.highlight span.o,
div.highlight span.ow,
div.highlight span.kn {
  color: #e8003d;
}
div.highlight span.l,
div.highlight span.se,
div.highlight span.m,
div.highlight span.mb,
div.highlight span.mf,
div.highlight span.mh,
div.highlight span.mi,
div.highlight span.il,
div.highlight span.mo {
  color: #8145ec;
}
div.highlight span.ld,
div.highlight span.s,
div.highlight span.sa,
div.highlight span.sb,
div.highlight span.sc,
div.highlight span.dl,
div.highlight span.sd,
div.highlight span.s2,
div.highlight span.sh,
div.highlight span.si,
div.highlight span.sx,
div.highlight span.sr,
div.highlight span.s1,
div.highlight span.ss {
  color: #c17005;
}
div.highlight span.c,
div.highlight span.ch,
div.highlight span.cm,
div.highlight span.c1,
div.highlight span.cs,
div.highlight span.cp,
div.highlight span.cpf {
  color: #6b6859;
}
div.highlight span.ge {
  font-style: italic;
}
div.highlight span.gs {
  font-weight: bold;
}
