/*! JJ CSS */ body { display: table; width: 100%; height: 100%; margin: 0; color: #000000; font-family: system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", "Roboto", "Oxygen", "Ubuntu", "Cantarell", "Fira Sans", "Droid Sans", "Helvetica Neue", sans-serif; font-weight: 200; font-size: 24px; line-height: 1.5em; } * { box-sizing: border-box; } a { background-color: transparent; text-decoration: none; border-bottom: 1px dashed transparent; transition: border-color 0.15s linear; } body#home { display: table-cell; vertical-align: middle; width: 100%; height: 100%; margin: 0 auto; padding: 6% 8%; } body#home img#me { float: right; margin: 0 0 20px 20px; padding: 4px; border: 1px solid #dddddd; 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; } /* Responsive Awesomeness */ @media screen and (max-width: 800px) { body { font-size: 16px; } 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 div#footer div#panda { display: none; } body#home div#footer div#blog, body#home div#footer div#info { width: 50% !important; line-height: 20px !important; } body#home div#footer div#info { font-size: 0.7em !important; } body#home div#footer div#blog { font-size: 0.9em !important; } body#home div#footer div#info span#copyright::after { content: "\A"; white-space: pre; } } /* Colo[u]rful Links */ body#home a#boston { color: #fb4d42; } body#home a#boston:hover { border-color: #fb4d42; } body#home a#javascript { color: #f48024; } body#home a#javascript:hover { border-color: #f48024; } body#home a#node { color: #6fbc4e; } body#home a#node:hover { border-color: #6fbc4e; } body#home a#express { color: #259dff; } body#home a#express:hover { border-color: #259dff; } body#home a#mongo { color: #13aa52; } body#home a#mongo:hover { border-color: #13aa52; } body#home a#react { color: #61dafb; } body#home a#react:hover { border-color: #61dafb; } body#home a#angular { color: #c3002f; } body#home a#angular:hover { border-color: #c3002f; } body#home a#vue { color: #486491; } body#home a#vue:hover { border-color: #486491; } body#home a#java { color: #ab6311; } body#home a#java:hover { border-color: #ab6311; } body#home a#cpp { color: #865fc5; } body#home a#cpp:hover { border-color: #865fc5; } body#home a#python { color: #f3bb12; } body#home a#python:hover { border-color: #f3bb12; } body#home a#php { color: #8892bf; } body#home a#php:hover { border-color: #8892bf; } body#home a#ruby { color: #d34135; } body#home a#ruby:hover { border-color: #d34135; } body#home a#infosec { color: #00b81a; } body#home a#infosec:hover { border-color: #00b81a; } body#home a#server { color: #0098ec; } body#home a#server:hover { border-color: #0098ec; } body#home a#server span#serverless { color: #87cef7; } body#home a#devops { color: #ff6200; } body#home a#devops:hover { border-color: #ff6200; } body#home a#containerization { color: #c48f49; } body#home a#containerization:hover { border-color: #c48f49; } body#home a#y2k { color: #ffa900; } body#home a#y2k:hover { border-color: #ffa900; } body#home a#y2k span#shh { color: #aaaaaa; } body#home span#fairy { color: #fd5da8; } body#home span#fairy:hover { cursor: url(data:image/svg+xml;utf8;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyMCIgaGVpZ2h0PSIyMiIgc3R5bGU9ImZvbnQtc2l6ZToxNnB4Ij48dGV4dCB5PSIxOCI+8J+nmjwvdGV4dD48L3N2Zz4=), default !important; } body#home a#github { color: #8d4eff; } body#home a#github:hover { border-color: #8d4eff; } body#home a#linkedin { color: #0073b1; } body#home a#linkedin:hover { border-color: #0073b1; } body#home a#facebook { color: #4267b2; } body#home a#facebook:hover { border-color: #4267b2; } body#home a.twitter { color: #00acee; } body#home a.twitter:hover { border-color: #00acee; } body#home a#instagram { color: #a37754; } body#home a#instagram:hover { border-color: #a37754; } body#home a#mastodon { color: #6d8ca7; } body#home a#mastodon:hover { border-color: #6d8ca7; } body#home a#news-1 { color: #ff1b1b; } body#home a#news-1:hover { border-color: #ff1b1b; } body#home a#news-2 { color: #f78200; } body#home a#news-2:hover { border-color: #f78200; } body#home a#news-3 { color: #ffc30c; } body#home a#news-3:hover { border-color: #ffc30c; } body#home a#news-4 { color: #5ebd3e; } body#home a#news-4:hover { border-color: #5ebd3e; } body#home a#news-5 { color: #009cdf; } body#home a#news-5:hover { border-color: #009cdf; } body#home a#news-6 { color: #3e49bb; } body#home a#news-6:hover { border-color: #3e49bb; } body#home a#news-7 { color: #973999; } body#home a#news-7:hover { border-color: #973999; } body#home a#resume { color: #d54b3d; } body#home a#resume:hover { border-color: #d54b3d; } body#home a#email { color: #de0c0c; } body#home a#email:hover { border-color: #de0c0c; } body#home a#pgp { color: #777777; margin-left: -2px; } body#home a#pgp:hover { border-color: #777777; } body#home a#sms { color: #6fcc01; } body#home a#sms:hover { border-color: #6fcc01; } /* Footer */ body#home div#footer { margin: 0; height: 40px; } body#home div#footer div { float: left; vertical-align: middle; line-height: 40px; height: 100%; } body#home div#footer div#blog { width: 40%; text-align: left; font-size: 0.75em; } body#home div#footer div#blog a { color: #0087be; } body#home div#footer div#blog a:hover { border-color: #0087be; } body#home div#footer div#panda { width: 20%; text-align: center; font-size: 1em; } body#home div#footer div#panda span { text-align: center; width: 12px; } body#home div#footer div#info { width: 40%; font-size: 0.5em; color: #777777; text-align: right; } body#home div#footer div#info a { color: #777777; } body#home div#footer div#info a#source { border-bottom: 1px solid #dddddd; } /* Fancy Waving Hand Emoji (TM) */ @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 CSS */ body#notes { font-size: 18px; margin: 0 auto; padding: 20px 0; } body#notes, body#notes div#single { width: 700px; max-width: 700px; } body#notes a { color: #0087be; background-color: transparent; text-decoration: none; border-bottom: 1px dashed transparent; transition: border-color 0.15s linear; } body#notes a:hover { border-color: #0087be; } @media screen and (max-width: 800px) { body#notes { padding: 20px; } body#notes, body#notes div#single { width: 100%; max-width: 100%; box-sizing: border-box; } body#notes div#header a#logo img { height: 75px !important; width: 50px !important; } body#notes div#footer div#panda { display: none; } body#notes div#footer div#copyright, body#notes div#footer div#poweredby { width: 50% !important; line-height: 20px !important; } body#notes div#footer div#poweredby a#hugo::after { content: "\A"; white-space: pre; } body#notes div#content code { white-space: normal; } body#notes div.year div.date { width: 25% !important; } body#notes div.year div.title { width: 75% !important; } } /* Header */ body#notes div#header { font-size: 16px; } body#notes div#header a#home { border: none; } body#notes div#header a#logo { border: none; margin: 40px auto; display: block; } body#notes div#header a#logo img { height: 150px; width: 100px; margin: 0 auto; display: block; border: none; } /* Footer */ body#notes div#footer { border-top: 1px solid #cccccc; height: 40px; font-size: 24px; padding-top: 16px; margin-top: 30px; margin-bottom: 20px; } body#notes div#footer a { color: #777777; border: none; } body#notes div#footer div { float: left; vertical-align: middle; line-height: 40px; height: 100%; } body#notes div#footer div#copyright, body#notes div#footer div#poweredby { width: 40%; font-size: 0.5em; color: #777777; } body#notes div#footer div#copyright { text-align: left; } body#notes div#footer div#poweredby { text-align: right; } body#notes div#footer div#poweredby a#source { border-bottom: 1px solid #dddddd; } body#notes div#footer div#panda { width: 20%; text-align: center; font-size: 1em; } body#notes div#footer div#panda span { text-align: center; width: 12px; } /* Posts */ body#notes div#content, body#notes div#content p { line-height: 1.7; object-fit: contain; } body#notes div#content blockquote { border-left: 6px solid #0087be; margin-left: 6px; padding-left: 15px; } body#notes div#single div#info { text-align: center; } body#notes div#single h1 { margin-top: 0; margin-bottom: 20px; color: #222; font-size: 32px; line-height: 1.4em; } body#notes div#single h1 a { color: #222; border: none; } body#notes div#single h2 { margin-top: 20px; margin-bottom: 10px; font-weight: normal; font-size: 24px; line-height: 1.5em; color: #111; } body#notes div#single h2.headline { margin: -5px 0 0 0; color: #777777; font-size: 13px; line-height: 1.5em; letter-spacing: 1px; display: inline-block; } body#notes div#single h2.headline span.tags { color: #777777; font-size: 13px; text-transform: uppercase; line-height: 1.5em; letter-spacing: 2px; margin-top: 5px; display: block; } body#notes div#single h2.headline span.tags span.tag { color: #777777; border: none; margin: 0 7px; } body#notes div#single h2.headline span.tags span.tag a { color: #777777; border: none; } body#notes div#content img { max-width: 100%; margin: 0 auto; display: block; object-fit: scale-down; } body#notes div#content img + em { display: block; text-align: center; font-size: 15px; color: #555555; } body#notes div#content code { font-family: monospace; background: #f4f4f4; padding: 1em 1.5em; font-size: 15px; 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 div#content hr { width: 60%; margin: 10px auto; border: 1px solid #ccc; } /* Post List */ body#notes div.year ul { list-style-type: none; padding-left: 0; display: block; } body#notes div.year ul li::after { content: ''; display: block; clear: both; } body#notes div.year ul li:last-child { margin-bottom: 20px; } body#notes div.year ul li+li { padding-top: 20px; } body#notes div.year div.date { float: left; color: #888888; width: 80px; font-weight: 400; } body#notes div.year div.title { float: left; width: 620px; }