diff --git a/theme/static/css/pygments.css b/theme/static/css/pygments.css
new file mode 100644
index 0000000..ffc1611
--- /dev/null
+++ b/theme/static/css/pygments.css
@@ -0,0 +1,94 @@
+@charset "UTF-8";
+
+/* See available classes at https://bitbucket.org/birkenfeld/pygments-main/src/default/pygments/token.py */
+
+.hll { background-color: #ffd800; display: block;}
+.w { color: #bbbbbb; }
+/* .esc (Escape) */
+.err { color: #a61717; background-color: #e3d2d2; }
+/* .x (Other) */
+
+/* Keyword */
+.k { font-weight: bold; }
+.kc { font-weight: bold; }
+.kd { font-weight: bold; }
+.kn { font-weight: bold; }
+.kp { font-weight: bold; }
+.kr { font-weight: bold; }
+.kt { color: #445588; font-weight: bold; }
+
+/* Name */
+.n { color: #333333; }
+.na { color: teal; }
+.nb { color: #0086b3; }
+.bp { color: #1d3e81 }
+.nc { color: #445588; font-weight: bold; }
+.no { color: teal; }
+.nd { color: #3c5d5d; font-weight: bold }
+.ni { color: purple; }
+.ne { color: #990000; font-weight: bold; }
+.nf { color: #990000; font-weight: bold; }
+/* .py (Name.Property) */
+.nl { color: #990000; font-weight: bold }
+.nn { color: #555555; }
+/* .nx (Name.Other) */
+.nt { color: navy; }
+.nv { color: teal; }
+.vc { color: teal; }
+.vg { color: teal; }
+.vi { color: teal; }
+
+/* Literal */
+/* .l (Literal) */
+/* .ld (Literal.Date) */
+
+/* String */
+.s { color: #dd1144; }
+.sb { color: #dd1144; }
+.sc { color: #dd1144; }
+.sd { color: #dd1144; }
+.s2 { color: #dd1144; }
+.se { color: #dd1144; }
+.sh { color: #dd1144; }
+.si { color: #dd1144; }
+.sx { color: #dd1144; }
+.sr { color: #009926; }
+.s1 { color: #dd1144; }
+.ss { color: #990073; }
+
+/* Number */
+.m { color: #009999; }
+/* .mb (Number.Bin) */
+.mf { color: #009999; }
+.mh { color: #009999; }
+.mi { color: #009999; }
+.il { color: #009999; }
+.mo { color: #009999; }
+
+/* Operator */
+.o { font-weight: bold; }
+.ow { font-weight: bold; }
+
+/* .p (Punctuation) */
+
+/* Comment */
+.c { color: #999988; font-style: italic; }
+.cm { color: #999988; font-style: italic; }
+.cp { color: #999999; font-weight: bold; font-style: italic; }
+.c1 { color: #999988; font-style: italic; }
+.cs { color: #999999; font-weight: bold; font-style: italic; }
+
+/* Generic */
+/* .g (Generic) */
+.gd { color: #000000; background-color: #ffdddd; }
+.gd .x { color: #000000; background-color: #ffaaaa; }
+.ge { font-style: italic; }
+.gr { color: #aa0000; }
+.gh { color: #999999; }
+.gi { color: #000000; background-color: #ddffdd; }
+.gi .x { color: #000000; background-color: #aaffaa; }
+.go { color: #888888; }
+.gp { color: #555555; }
+.gs { font-weight: bold; }
+.gu { color: #800080; font-weight: bold; }
+.gt { color: #aa0000; }
diff --git a/theme/static/css/style.scss b/theme/static/css/style.scss
new file mode 100644
index 0000000..21212cb
--- /dev/null
+++ b/theme/static/css/style.scss
@@ -0,0 +1,374 @@
+@charset "UTF-8";
+
+$black: #000000;
+$white: #ffffff;
+$light-grey: #eeeeee;
+$med-grey: #5f5f5f;
+$dark-grey: #202020;
+$bg-grey: #FAFAFA;
+
+$code-border: #c7c7c7;
+$code-background: #f6f6f6;
+$code-linebg: #dddddd;
+
+$accent: #0e94ec;
+$danger: red;
+
+$sans: -apple-system, ".SFNSText-Regular", "San Francisco", "Roboto", "Segoe UI", "Helvetica Neue", "Lucida Grande", sans-serif;
+$mono: monospace;
+
+$border_color: #c2c2c2;
+$pag_label_size: 60px;
+$logo_size: 150px;
+
+$content_size: 640px;
+$horiz_pad: 40px;
+
+$main_font_size: 1rem;
+$nav_font_size: 1rem;
+$subtitle_font_size: 0.9rem;
+$code_font_size: 1rem;
+$article_meta_font_size: 0.8rem;
+$pagination_font_size: 0.9rem;
+$footer_font_size: 0.7rem;
+
+//The minimum size the screen can be without scaling the main content
+$min_screen: floor((($content_size + $horiz_pad * 2) * 1.33));
+
+body {
+  margin: 0;
+  padding: 0;
+  background-color: $bg-grey;
+  color: $dark-grey;
+  font-family: $sans;
+  font-size: $main_font_size;
+  min-width: 300px;
+}
+
+a {
+  color: $black;
+  text-decoration: none;
+}
+
+a[href]:not(.nohover) {
+  &:hover{
+    color: $accent;
+  }
+}
+
+hr {
+  background-color: $border_color;
+  height: 1px;
+  border: none;
+}
+
+img {
+  max-width: 100%;
+}
+
+aside {
+  div#user_meta {
+    padding: $horiz_pad 20px $horiz_pad 20px;
+    text-align: center;
+
+    img#logo {
+        width: $logo_size;
+        height: $logo_size;
+        border-radius: 50%;
+        border: 5px solid $black;
+        background-color: $black;
+        box-shadow: 0px 0px 1px $black;
+    }
+
+    h2 {
+      margin: 15px 0 5px 0;
+    }
+
+    p {
+      margin: 0px;
+      font-size: $subtitle_font_size;
+    }
+
+    i {
+      width: 30px;
+      text-align: center;
+      vertical-align: middle;
+    }
+
+    div.social {
+      margin-top:15px;
+
+      a {
+        display: inline-block;
+        height: 30px;
+      }
+    }
+
+    ul {
+      margin: 0px;
+      padding-left: 0px;
+      list-style-type: none;
+
+      li {
+        line-height: 2em;
+
+        a {
+          i {
+              padding-left: 5px;
+          }
+        }
+      }
+    }
+  }
+}
+
+main {
+  position: relative;
+  width: 100%;
+  margin: auto;
+
+  header {
+    padding: 0px $horiz_pad 0px $horiz_pad;
+    border-top: $border_color 1px solid;
+    border-bottom: $border_color 1px solid;
+    text-align: center;
+    color: $med-grey;
+
+    p {
+      font-weight: bold;
+      font-size: $nav_font_size;
+      text-transform: uppercase;
+    }
+
+    p#header {
+      color: $black;
+    }
+
+    p:not(#header){
+      a {
+        color: $med-grey;
+        &:hover{
+          color: $accent;
+        }
+      }
+    }
+  }
+
+  article {
+    padding: 10px $horiz_pad 10px $horiz_pad;
+    max-width: $content_size;
+    margin: auto;
+
+    div.article_title {
+    }
+
+    div.article_text {
+      line-height: 1.375em;
+      a {
+        text-decoration: underline;
+      }
+
+      @mixin codeformat {
+        color: black;
+        font-size: $code_font_size;
+        font-family: $mono;
+      }
+
+      code {
+        @include codeformat;
+        padding: 1px 3px;
+        background: $light-grey;
+      }
+
+      pre {
+        @include codeformat;
+        line-height: 1.25;
+        margin-bottom: 0px;
+        margin-top: 0px;
+        padding-top: 5px;
+        padding-bottom: 10px;
+      }
+
+      div.highlight {
+        overflow: auto;
+      }
+
+      div.highlight pre {
+        display: inline-block;
+        padding-left: 10px;
+        overflow-x: auto;
+        border: 1px solid $code-border;
+        border-left: 3px solid $accent;
+        background: $code-background;
+      }
+
+      /* Line numbers are enabled */
+      table.highlighttable {
+        table-layout: fixed;
+        width: 100%;
+        border: 1px solid $code-border;
+        border-collapse: collapse;
+
+        pre {
+          border: none;
+        }
+
+        td {
+          padding: 0px;
+        }
+
+        td.linenos {
+          width: 30px;
+          overflow: hidden;
+          text-align: right;
+          border-left: 3px solid $accent;
+          border-right: 1px solid $code-border;
+          background: $code-linebg;
+          vertical-align:top;
+
+          div.linenodiv pre {
+            padding-right: 4px;
+            float: right;
+          }
+        }
+      }
+
+      div.admonition {
+
+        border-width: 1px 1px 1px 7px;
+        border-radius: 10px;
+        border-style: solid;
+        border-color: $code-border;
+        border-left-color: $dark-grey;
+        background-color: $code-background;
+
+        &.update, &.hint, &.important, &.note, &.tip {
+          border-left-color: $accent;
+        }
+
+        &.warning, &.attention, &.caution, &.danger {
+          border-left-color: $danger;
+        }
+
+        p {
+          margin: 0px;
+          padding: 10px 15px;
+        }
+
+        p.admonition-title{
+          text-transform: uppercase;
+          font-weight: bold;
+          padding: 5px 15px;
+          border-bottom: 1px solid $code-border;
+        }
+      }
+
+      blockquote {
+        margin: 22px 2px 22px 2px;
+        padding-left: $horiz_pad;
+        color: $med-grey;
+        font-style: italic;
+      }
+    }
+
+    div.article_meta {
+      font-size: $article_meta_font_size;
+      color: $med-grey;
+    }
+
+    div#article_comments{
+      padding-top: 10px;
+      padding-bottom: 10px;
+
+      i {
+        padding-right: 10px;
+      }
+    }
+  }
+
+  footer {
+    border-top: $border_color 1px solid;
+    padding: 30px $horiz_pad 30px $horiz_pad;
+
+    div#paginator {
+      font-weight: bold;
+      font-size: $pagination_font_size;
+      text-transform: uppercase;
+      overflow: auto;
+      text-align: center;
+
+      div{
+        display: inline-block;
+      }
+
+      span {
+        width: $pag_label_size;
+      }
+
+      span#left {
+        float: left;
+        text-align: left;
+      }
+
+      span#right {
+        float: right;
+        text-align: right;
+      }
+    }
+  }
+
+  div#ending_message {
+    border-top: $border_color 1px solid;
+    padding: 0 $horiz_pad 0 $horiz_pad;
+    color: $med-grey;
+    font-size: $footer_font_size;
+  }
+}
+
+@media screen and (min-width: $min_screen) {
+  aside {
+    width: 25%;
+    height: 100%;
+    position: absolute;
+    top: 0;
+    left: 0;
+
+    h2 {
+      margin: 10px 0 0 0;
+    }
+
+    div#user_meta {
+      max-width: 192px;
+      text-align: right;
+      margin: 0 20px 0 auto;
+    }
+  }
+
+  main {
+    position: absolute;
+    top: 0;
+    left: 25%;
+    width: 75%;
+    margin-left: -1px;
+    border-left: $border_color 1px solid;
+    overflow-x: hidden;
+    overflow-y: hidden;
+
+    header {
+      padding: 10px $horiz_pad 10px $horiz_pad;
+      border-top: 0;
+      text-align: left;
+    }
+
+    article {
+      width: $content_size;
+      margin: 0;
+    }
+
+    footer{
+      div#paginator {
+        width: $content_size;
+      }
+    }
+  }
+}
diff --git a/theme/static/js/email.js b/theme/static/js/email.js
new file mode 100644
index 0000000..90b736e
--- /dev/null
+++ b/theme/static/js/email.js
@@ -0,0 +1,21 @@
+// Unmangle email addresses on page load
+
+function unmangleEmail(){
+  var e = document.querySelectorAll(".email");
+  for (var i = 0; i < e.length; i++) {
+    var email = e[i].getAttribute("data-email")
+    var title = e[i].getAttribute("data-title")
+    if (email){
+      e[i].href = email.split("").reverse().join("");
+      e[i].removeAttribute("data-email");
+      e[i].removeAttribute("data-title");
+      e[i].removeAttribute("class");
+      if (title){
+        e[i].setAttribute("title", title);
+      }
+      else{
+        e[i].removeAttribute("title");
+      }
+    }
+  }
+}
diff --git a/theme/static/js/lw-timeago/README.md b/theme/static/js/lw-timeago/README.md
new file mode 100644
index 0000000..7d9a9eb
--- /dev/null
+++ b/theme/static/js/lw-timeago/README.md
@@ -0,0 +1,60 @@
+lw-timeago
+==========
+
+A lightweight implementation of the [Timeago jQuery plugin](http://timeago.yarp.com/), allowing fuzzy timestamps to be dynamically generated and displayed.
+
+Example
+-------
+
+#### Original
+```html
+<time datetime="2012-02-11T22:05:00-05:00">Feb 11, 2012</time>
+```
+
+#### Outputs
+```html
+<time title="Feb 11, 2012" datetime="2012-02-11T22:05:00-05:00">3 years ago</time>
+<time title="2/11/2012, 10:05:00 PM" datetime="2012-02-11T22:05:00-05:00">3 years ago on Feb 11, 2012</time>
+```
+
+Configuration
+-------------
+In the `config` section of the script there are a few options that can be configured.
+- `whitelist`: Only process `<time>` tags with this attribute. Setting it to `null` disables whitelisting (all `<time>` tags are processed).
+- `keepDate`: If `true`, don't replace the date in the `<time>` tags, prepend the fuzzy time to it (see the second example above).
+
+Additionally, the text can all be customized.
+
+Usage
+-----
+Step 2 can be skipped if `whitelist` is set to `null` in the config.
+
+1. Markup times in the HTML source with `<time>` tags, making sure they have a `datetime` attribute. The datetime attribute *MUST* be ISO 8601 formatted.
+2. For all `<time>` tags that should be converted to fuzzy times, add `data-timeago` attributes to them.
+3. Include the `lw-timeago.js` file in the html head (`<script src="lw-timeago.js" type="text/javascript"></script>`).
+4. Call the `lw_timeago()` function when the page loads (`<script type="text/javascript">window.addEventListener("load", lw_timeago);</script>`).
+
+License
+-------
+```
+Copyright (c) 2008-2015, Ryan McGeary
+Copyright (c) 2015 Carey Metcalfe
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in
+all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+THE SOFTWARE.
+```
diff --git a/theme/static/js/lw-timeago/lw-timeago.js b/theme/static/js/lw-timeago/lw-timeago.js
new file mode 100644
index 0000000..04a5c12
--- /dev/null
+++ b/theme/static/js/lw-timeago/lw-timeago.js
@@ -0,0 +1,91 @@
+var lw_timeago = function() {
+
+  var config = {
+    whitelist: "data-timeago", // Set to null to disable whitelisting
+
+    keepDate: true, // If true, appends the original date after the fuzzy one
+
+    suffixAgo: "ago",
+    suffixFromNow: "from now",
+    on: "on",
+
+    seconds: "less than a minute",
+    minute: "about a minute",
+    minutes: "%d minutes",
+    hour: "about an hour",
+    hours: "%d hours",
+    day: "about a day",
+    days: "%d days",
+    month: "about a month",
+    months: "%d months",
+    year: "about a year",
+    years: "%d years",
+  }
+
+  function inWords(distanceMillis) {
+    // Produce a string representing the milliseconds in a human-readable way
+
+    var suffix = distanceMillis < 0 ? config.suffixFromNow : config.suffixAgo;
+    var seconds = Math.abs(distanceMillis) / 1000;
+    var minutes = seconds / 60;
+    var hours = minutes / 60;
+    var days = hours / 24;
+    var years = days / 365;
+
+    function substitute(string, number) {
+      return string.replace(/%d/i, number);
+    }
+
+    var words =
+      seconds < 45 && substitute(config.seconds, Math.round(seconds)) ||
+      seconds < 90 && substitute(config.minute, 1) ||
+      minutes < 45 && substitute(config.minutes, Math.round(minutes)) ||
+      minutes < 90 && substitute(config.hour, 1) ||
+      hours < 24 && substitute(config.hours, Math.round(hours)) ||
+      hours < 42 && substitute(config.day, 1) ||
+      days < 30 && substitute(config.days, Math.round(days)) ||
+      days < 45 && substitute(config.month, 1) ||
+      days < 365 && substitute(config.months, Math.round(days / 30)) ||
+      years < 1.5 && substitute(config.year, 1) ||
+      substitute(config.years, Math.round(years));
+
+    return words + " " + suffix;
+  }
+
+  function diff(timestamp) {
+    // Get the number of milliseconds distance from the current time
+    return Date.now() - timestamp;
+  }
+
+  function doReplace(){
+    // Go over all <time> elements, grab the datetime attribute, then calculate
+    // and display a fuzzy representation of it.
+
+    var times = document.getElementsByTagName("time")
+    for (var i = 0; i < times.length; i++){
+
+      if (config.whitelist && !times[i].hasAttribute(config.whitelist))
+        break;
+
+      var datetime = times[i].getAttribute("datetime");
+      if (!datetime)
+        break;
+
+      var parsed = new Date(datetime);
+      if (!parsed)
+        break;
+
+      var words = inWords(diff(parsed.getTime()));
+      var title = times[i].innerHTML;
+      if (config.keepDate){
+        words += " " + config.on + " " + times[i].innerHTML;
+        title = parsed.toLocaleString()
+      }
+
+      times[i].title = title;
+      times[i].innerHTML = words;
+    }
+  }
+
+  return doReplace;
+}();
diff --git a/theme/static/js/scroll.js b/theme/static/js/scroll.js
new file mode 100644
index 0000000..6ec5f38
--- /dev/null
+++ b/theme/static/js/scroll.js
@@ -0,0 +1,8 @@
+// Scroll past header on smaller screens
+
+function skipHeader(){
+  if (window.location.pathname != '/' && window.location.pathname != '/index.html'){
+    window.scroll(0, document.getElementById('main').offsetTop);
+  }
+}
+
