@font-face {
  font-family: "JBMono";
  src: url("../webfonts/JetBrainsMono-Regular.woff2");
}

/* Base */
body {
    margin: 0;
    padding: 0;
    background: #323437;
    color: #d1d0c5;
    /* font-family: "Courier New", Courier, monospace; */
    font-family: "JBMono", "Courier New", Courier, Monaco, monospace;
    font-size: 14px;
    line-height: 1.55;
}

a { color: #e2b714; text-decoration: none; }     /* cactus green */
a:hover { text-decoration: underline; }

#wrap { width: 1024px; margin: 0 auto; }

/* Header */
#header { padding: 24px 8px 8px 8px; }
#header h1 {
  margin: 0;
  font-size: 28px;
  color: #e2b714;    /* brand title in green */
}
#header .tagline {
    margin: 4px 0 0 0;
    color: #d1d0c5;
    font-size: 12px;
}

/* Content wrapper */
#content {
  padding: 16px 8px;
  word-wrap: break-word;      /* IE 5.5+ and old browsers */
  overflow-wrap: break-word;  /* modern browsers */
}

/* Cards / panels */
.panel {
    padding: 10px 0;
    margin: 8px 0 14px 0;
}

/* Footer */
#footer {
    padding: 14px 8px 40px 8px;   /* extra bottom space like Cactus */
    color: #9aa0a6;
    font-size: 12px;
}

#footer a { color: #e2b714; }


/* ===== Cactus-style header + nav (retro-safe CSS) ===== */
#site-header {
    margin: 20px 0 10px 0;
    padding: 0 8px;
    background: #323437;
    zoom: 1; /* IE6/7 clearfix */
}

.logo-block {
    float: left;
    margin-right: 10px;
    padding: 0px 10px 0 0;
}

#logo {
    display: block;
    border: none;
}

.title-block {
    overflow: hidden;
    margin-top: 10px;
    padding-top: 10px;
}

/* site title + tagline */
#site-title {
    font-size: 22px;
    color: #d1d0c5;
    margin: 0;
    font-weight: bold;
}

#tagline {
    margin: 2px 0 6px 0;
    font-size: 13px;
    color: #b0b3b8;
}

/* nav bar under tagline */
#nav {
    margin-top: 4px;
}

#nav a {
    color: #e2b714;           /* bright mint green */
    text-decoration: none;
    font-weight: bold;
    font-size: 13px;
    /* padding: 0 10px 0 12px; */
    padding: 0px;
}

/* vertical dividers between links */
#nav a + a {
    border-left: 1px solid #e2b714;
    margin-left: 10px;
    padding-left: 15px;
}

/* hover underline and active highlight */
#nav a:hover {
    text-decoration: underline;
}

#nav a.active {
    color: #e2b714;
}

/* clear floats after header */
#site-header:after {
    content: "";
    display: block;
    clear: both;
}

h2.section {
    margin: 18px 0 8px 0;
    font-size: 20px;
    letter-spacing: 0.5px;
}


/***************************************************
 * Pinned Posts
 ***************************************************/
.pinned {
    padding: 10px 0;
}

.pinned > ul.post-list { 
    list-style: none;
    margin: 0;
    padding: 0;
}

.pinned > ul.post-list li {
    padding: 6px 0;
    zoom: 1;
}

.pinned > ul.post-list .date {
    float: left;
    width: 120px;             /* narrow date column */
    color: #9aa0a6;
    font-weight: bold;
}

.pinned > ul.post-list .title {
    margin-left: 20px;      /* make room for date */
}

.pinned > ul.post-list .title a {
    color: #d1d0c5;
    text-decoration: none;
    border-bottom: 1px solid #d1d0c5;
}

.pinned > ul.post-list .title a:hover {
    text-decoration: none;
    border-bottom: 2px solid #e2b714;
}


/***************************************************
 * Posts
 ***************************************************/
.posts {
    padding: 10px 0;
}

.posts > h2.section {
    color: #e2b714;
}

 /* Post list (date column + title) — old-school floats */
.posts > ul.post-list { 
    list-style: none;
    margin: 0;
    padding: 0;
}

.posts > ul.post-list li {
    padding: 6px 0;
    zoom: 1;
}

.posts > ul.post-list .date {
    float: left;
    width: 120px;             /* narrow date column */
    color: #9aa0a6;
    font-weight: bold;
}

.posts > ul.post-list .title {
    margin-left: 20px;      /* make room for date */
}

.posts > ul.post-list .title a {
    color: #d1d0c5;
    text-decoration: none;
    border-bottom: 1px solid #d1d0c5;
}

.posts > ul.post-list .title a:hover {
    text-decoration: none;
    border-bottom: 2px solid #e2b714;
}

/***************************************************
 * Notes
 ***************************************************/
.notes {
    padding: 10px 0;
}

.notes > h2.section {
    color: #e2b714;
}

.notes > .notes-list.panel {
    background: #2c2e31;
    padding: 10px;
    border-radius: 2px;
}

.notes > .notes-list.panel .note .note-header a {
    color: #d1d0c5;
    text-decoration: none;
    font-weight: bold;
    border-bottom: 2px solid #d1d0c5;
}
.notes > .notes-list.panel .note .note-header a:hover {
    border-bottom: 2px solid #e2b714;
}

/***************************************************
 * Single Post View
 ***************************************************/
#post-wrap {
    margin-top: 10px;
}

/* Left column */
#post-main {
  float: left;
  width: 720px;               /* content column */
}

/* Right column */
#post-toc {
  float: right;
  width: 200px;               /* sidebar */
}

.post-date {
  font-weight: bold;
}

/* Title & meta */
.post-title {
  font-size: 22px;
  color: #dfe7e6;
  margin: 0 0;
}

.post-meta {
  margin: 0 0;
  color: #9aa0a6;
  font-size: 12px;
}

.post-header {
  padding: 10px 0;
}

.updated {
  color: #2c2e31;
  background: #e2b714;
  /* color: #e2b714; */
  padding: 2px 6px;
  border-radius: 2px; /* harmless in old browsers */
}

/* Tags */
.tags > a.tag {
  color: #d1d0c5;
  text-decoration: none;
  display: inline-block;
  font-size: 12px;
  line-height: 10px;
  border-bottom: 1px solid #d1d0c5;
}

.tags > a.tag:hover {
  text-decoration: none;
  border-bottom: 2px solid #e2b714;
}

/* Body */
.post-body {
  word-wrap: break-word;      /* IE 5.5+ and old browsers */
  overflow-wrap: break-word;  /* modern browsers */
}

/* Prevent horizontal scrolling in blockquotes */
.post-body blockquote {
  word-wrap: break-word;      /* IE 5.5+ and old browsers */
  overflow-wrap: break-word;  /* modern browsers */
  margin: 0 0 0 20px;
  padding: 0 0 0 10px;
  border-left: 3px solid #445057;
}

/* Code blocks */
.post-body pre {
  word-wrap: break-word;      /* IE 5.5+ and old browsers */
  overflow-wrap: break-word;  /* modern browsers */
  white-space: pre-wrap;      /* preserve formatting but wrap long lines */
  overflow-x: auto;           /* fallback scrollbar if needed */
  background: #2c2e31;
  padding: 10px;
  border-radius: 2px;
}

/* Inline code */
.post-body code {
  word-wrap: break-word;      /* IE 5.5+ and old browsers */
  overflow-wrap: break-word;  /* modern browsers */
  background: #2c2e31;
  padding: 2px 4px;
  border-radius: 2px;
}

.post-body hr {
  border: none;
  border-top: 1px dotted #445057;
  height: 1px;
  margin: 14px 0;
}

/* TOC box */
.toc-card {
  padding: 10px;
  font-size: 12px;
  color: #d1d0c5;
  background-color: #2c2e31;
  border-radius: 2px;;
}

.toc-title {
  font-size: 16px;
  font-weight: bold;
  margin-bottom: 6px;
}

.toc-list { list-style: none; margin: 0; padding: 0; }
.toc-list li { margin: 4px 0; }
.toc-list li.lvl2 { padding-left: 0; }
.toc-list li.lvl3 { padding-left: 12px; }

.toc-list a { text-decoration: none; color: #d1d0c5}
.toc-list a:hover { text-decoration: none; color:#e2b714 }

/* syntax highlighting */
/**
 * atom-dark theme for `prism.js`
 * Based on Atom's `atom-dark` theme: https://github.com/atom/atom-dark-syntax
 * @author Joe Gibson (@gibsjose)
 */

code[class*="language-"],
pre[class*="language-"] {
	color: #c5c8c6;
	text-shadow: 0 1px rgba(0, 0, 0, 0.3);
	font-family: Inconsolata, Monaco, Consolas, 'Courier New', Courier, monospace;
	direction: ltr;
	text-align: left;
	white-space: pre;
	word-spacing: normal;
	word-break: normal;
	line-height: 1.5;

	-moz-tab-size: 4;
	-o-tab-size: 4;
	tab-size: 4;

	-webkit-hyphens: none;
	-moz-hyphens: none;
	-ms-hyphens: none;
	hyphens: none;
}

/* Code blocks */
pre[class*="language-"] {
	padding: 1em;
	margin: .5em 0;
	overflow: auto;
	border-radius: 0.3em;
}

:not(pre) > code[class*="language-"],
pre[class*="language-"] {
	/* background: #1d1f21; */
}

/* Inline code */
:not(pre) > code[class*="language-"] {
	padding: .1em;
	border-radius: .3em;
}

.token.comment,
.token.prolog,
.token.doctype,
.token.cdata {
	color: #7C7C7C;
}

.token.punctuation {
	color: #c5c8c6;
}

.namespace {
	opacity: .7;
}

.token.property,
.token.keyword,
.token.tag {
	color: #96CBFE;
}

.token.class-name {
	color: #FFFFB6;
	text-decoration: underline;
}

.token.boolean,
.token.constant {
	color: #99CC99;
}

.token.symbol,
.token.deleted {
	color: #f92672;
}

.token.number {
	color: #FF73FD;
}

.token.selector,
.token.attr-name,
.token.string,
.token.char,
.token.builtin,
.token.inserted {
	color: #A8FF60;
}

.token.variable {
	color: #C6C5FE;
}

.token.operator {
	color: #EDEDED;
}

.token.entity {
	color: #FFFFB6;
	cursor: help;
}

.token.url {
	color: #96CBFE;
}

.language-css .token.string,
.style .token.string {
	color: #87C38A;
}

.token.atrule,
.token.attr-value {
	color: #F9EE98;
}

.token.function {
	color: #DAD085;
}

.token.regex {
	color: #E9C062;
}

.token.important {
	color: #fd971f;
}

.token.important,
.token.bold {
	font-weight: bold;
}

.token.italic {
	font-style: italic;
}
