@charset "UTF-8";
body {
  font-family: 'ff-tisa-web-pro', 'Georgia', 'Times New Roman', serif;
  color: #404040;
  font-size: 1.5em;
  line-height: 1.5em;
  /* Small devices (tablets, 768px and up) */ }
  @media (min-width: 768px) {
    body {
      font-size: 2em;
      line-height: 1.5em; } }

/* Sets up ligatures for fonts. See http://utility-opentype.kennethormandy.com for more info. */
body {
  /* Gracefully degrade to `font-feature-settings` to
  * avoid disrupting the OpenType feature cascade
  * when possible. */
  /* IE doesn’t support $supports; explicitly use
  * the prefixed version. */
  -ms-font-feature-settings: "liga";
  /* Best case scenario, just use `font-variant-*`. */
  font-variant-ligatures: common-ligatures; }
  @supports not (font-variant-ligatures: common-ligatures) {
    body {
      font-feature-settings: "liga"; } }
  body code, body pre {
    -ms-font-feature-settings: "liga" 0;
    font-variant-ligatures: no-common-ligatures; }
    @supports not (font-variant-ligatures: common-ligatures) {
      body code, body pre {
        font-feature-settings: "liga" 0; } }

p {
  margin: 1em 0;
  /* Small devices (tablets, 768px and up) */ }
  @media (min-width: 768px) {
    p {
      margin: 1.5em 0; } }
  p a {
    text-decoration: none;
    color: #398CCC; }
    p a:hover {
      text-decoration: underline; }

h1,
h2,
h3,
h4,
h5,
h6 {
  font-family: 'futura-pt', 'Futura', 'Helvetica Neue', Helvetica, Arial, sans-serif;
  font-weight: 700; }

a {
  color: #404040; }
  a:hover, a:focus {
    color: #398CCC; }

a img:hover, a img:focus {
  cursor: zoom-in; }

blockquote {
  color: gray;
  font-style: italic; }

hr.small {
  max-width: 100px;
  margin: 15px auto;
  border-width: 3px;
  border-color: white; }

.navbar-custom {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  z-index: 3;
  font-family: 'futura-pt', 'Futura', 'Helvetica Neue', Helvetica, Arial, sans-serif; }
  .navbar-custom .navbar-brand {
    font-weight: 700; }
  .navbar-custom .nav li a {
    text-transform: uppercase;
    font-size: 0.75em;
    font-weight: 700;
    letter-spacing: 1px; }
  @media only screen and (min-width: 768px) {
    .navbar-custom {
      background: transparent;
      border-bottom: 1px solid transparent; }
      .navbar-custom .navbar-brand {
        color: white;
        padding: 1.25em; }
        .navbar-custom .navbar-brand:hover, .navbar-custom .navbar-brand:focus {
          color: fade(white, 80%); }
      .navbar-custom .nav li a {
        color: white;
        padding: 1.25em; }
        .navbar-custom .nav li a:hover, .navbar-custom .nav li a:focus {
          color: fade(white, 80%); } }
  @media only screen and (min-width: 1170px) {
    .navbar-custom {
      -webkit-transition: background-color 0.3s;
      -moz-transition: background-color 0.3s;
      transition: background-color 0.3s;
      /* Force Hardware Acceleration in WebKit */
      -webkit-transform: translate3d(0, 0, 0);
      -moz-transform: translate3d(0, 0, 0);
      -ms-transform: translate3d(0, 0, 0);
      -o-transform: translate3d(0, 0, 0);
      transform: translate3d(0, 0, 0);
      -webkit-backface-visibility: hidden;
      backface-visibility: hidden; }
      .navbar-custom.is-fixed {
        /* when the user scrolls down, we hide the header right above the viewport */
        position: fixed;
        top: -61px;
        background-color: white;
        border-bottom: 1px solid #f2f2f2;
        -webkit-transition: -webkit-transform 0.3s;
        -moz-transition: -moz-transform 0.3s;
        transition: transform 0.3s; }
        .navbar-custom.is-fixed .navbar-brand {
          color: #404040; }
          .navbar-custom.is-fixed .navbar-brand:hover, .navbar-custom.is-fixed .navbar-brand:focus {
            color: #398CCC; }
        .navbar-custom.is-fixed .nav li a {
          color: #404040; }
          .navbar-custom.is-fixed .nav li a:hover, .navbar-custom.is-fixed .nav li a:focus {
            color: #398CCC; }
      .navbar-custom.is-visible {
        /* if the user changes the scrolling direction, we show the header */
        -webkit-transform: translate3d(0, 100%, 0);
        -moz-transform: translate3d(0, 100%, 0);
        -ms-transform: translate3d(0, 100%, 0);
        -o-transform: translate3d(0, 100%, 0);
        transform: translate3d(0, 100%, 0); } }

.intro-header {
  background: no-repeat center center;
  background-color: gray;
  background-attachment: scroll;
  -webkit-background-size: cover;
  -moz-background-size: cover;
  background-size: cover;
  -o-background-size: cover; }
  .intro-header .site-heading,
  .intro-header .post-heading,
  .intro-header .page-heading {
    padding: 6em 0 3em;
    color: white; }
    @media only screen and (min-width: 768px) {
      .intro-header .site-heading,
      .intro-header .post-heading,
      .intro-header .page-heading {
        padding: 7em 0; } }
  .intro-header .site-heading,
  .intro-header .page-heading {
    text-align: center; }
    .intro-header .site-heading h1,
    .intro-header .page-heading h1 {
      margin-top: 0;
      font-size: 2.5em; }
    .intro-header .site-heading .subheading,
    .intro-header .page-heading .subheading {
      font-size: 1em;
      line-height: 1.1;
      display: block;
      font-family: 'futura-pt', 'Futura', 'Helvetica Neue', Helvetica, Arial, sans-serif;
      font-weight: 400;
      margin: 10px 0 0; }
    @media only screen and (min-width: 768px) {
      .intro-header .site-heading h1,
      .intro-header .page-heading h1 {
        font-size: 4em; } }
  .intro-header .post-heading h1 {
    font-size: 2em; }
  .intro-header .post-heading .subheading,
  .intro-header .post-heading .meta {
    line-height: 1.1;
    display: block; }
  .intro-header .post-heading .subheading {
    font-family: 'futura-pt', 'Futura', 'Helvetica Neue', Helvetica, Arial, sans-serif;
    font-size: 1.5em;
    margin: 0.625em 0 2em; }
  .intro-header .post-heading .meta {
    font-family: 'ff-tisa-web-pro', 'Georgia', 'Times New Roman', serif;
    font-style: italic;
    font-size: 1.25em; }
    .intro-header .post-heading .meta a {
      color: white; }
  @media only screen and (min-width: 768px) {
    .intro-header .post-heading h1 {
      font-size: 2.5em; }
    .intro-header .post-heading .subheading {
      font-size: 1.875em; } }

.post-preview > a {
  color: #404040; }
  .post-preview > a:hover, .post-preview > a:focus {
    text-decoration: none;
    color: #398CCC; }
  .post-preview > a > .post-title {
    font-size: 1.875em;
    margin-bottom: 0.625em; }
  .post-preview > a > .post-subtitle {
    margin: 0;
    margin-bottom: 0.625em; }
.post-preview > .post-meta {
  color: gray;
  font-size: 1em;
  font-style: italic;
  margin: 0; }
@media only screen and (min-width: 768px) {
  .post-preview > a > .post-title {
    font-size: 2em; } }

.section-heading {
  font-size: 2em;
  margin-top: 3em;
  font-weight: 700; }

.caption {
  text-align: center;
  font-size: 1em;
  padding: 0.625em;
  font-style: italic;
  margin: 0;
  display: block;
  border-bottom-right-radius: 5px;
  border-bottom-left-radius: 5px; }

footer {
  padding: 3em 0 3em; }
  footer .list-inline {
    margin: 0;
    padding: 0; }
  footer .copyright {
    font-size: 0.75em;
    text-align: center;
    margin-bottom: 0; }

.btn {
  font-family: 'futura-pt', 'Futura', 'Helvetica Neue', Helvetica, Arial, sans-serif;
  font-weight: 700;
  text-transform: uppercase;
  font-size: 1em;
  letter-spacing: 1px;
  border-radius: 0;
  padding: 1em 1.5em; }

.btn-lg {
  font-size: 1em;
  padding: 1.5em 2em; }

.btn-default:hover, .btn-default:focus {
  background-color: #398CCC;
  border: 1px solid #398CCC;
  color: white; }

.pager {
  margin: 0; }
  .pager li > a,
  .pager li > span {
    font-family: 'futura-pt', 'Futura', 'Helvetica Neue', Helvetica, Arial, sans-serif;
    font-weight: 700;
    text-transform: uppercase;
    font-size: 0.75em;
    letter-spacing: 1px;
    padding: 1em 1.5em;
    background-color: white;
    border-radius: 0; }
  .pager li > a:hover,
  .pager li > a:focus {
    color: white;
    background-color: #398CCC;
    border: 1px solid #398CCC; }
  .pager .disabled > a,
  .pager .disabled > a:hover,
  .pager .disabled > a:focus,
  .pager .disabled > span {
    color: gray;
    background-color: #404040;
    cursor: not-allowed; }

::-moz-selection {
  color: white;
  text-shadow: none;
  background: #398CCC; }

::selection {
  color: white;
  text-shadow: none;
  background: #398CCC; }

img::selection {
  color: white;
  background: transparent; }

img::-moz-selection {
  color: white;
  background: transparent; }

body {
  webkit-tap-highlight-color: #398CCC; }
.post-heading h1 {
  margin-top: 0;
  /* Small devices (tablets, 768px and up) */ }
  @media (min-width: 768px) {
    .post-heading h1 {
      margin-top: 20px; } }

/* Centres Instagram embeds. */
iframe.instagram-media {
  margin: 10px auto !important; }

/* Centres tweet embeds in Chrome. */
twitterwidget {
  margin: auto; }

/* Makes the subtitle of non-post headers bigger than the template. */
.intro-header .site-heading .subheading {
  font-size: 1.5em; }

/* Makes the subtitle of post (its date) headers bigger than the template. */
.intro-header .post-heading .subheading {
  margin: 0;
  font-size: 1.5em; }
.intro-header .post-heading hr {
  margin: 15px 0; }

/* Override the default text-decoration from the template, for the typo submission links. */
article .meta a {
  text-decoration: underline; }

/* Hover state on menu links should be bluuuuue */
.navbar-custom .nav li a:hover, .navbar-custom .nav li a:focus {
  color: #398CCC; }

.navbar-custom .navbar-brand:hover, .navbar-custom .navbar-brand:focus {
  color: #398CCC; }

/* GitHub logo is slightly too low. */
.fa-github::before {
  position: relative;
  top: -1px; }

/* 'Read more' links on the main blog page. */
p.readmore {
  font-style: italic; }
  p.readmore a {
    color: #404040; }
    p.readmore a:hover {
      color: #398CCC; }

/* Make multi-parapgrah list items have a regular bottom margin. */
li p:last-child {
  margin-bottom: 0; }

/* Things specific to the landing page */
.container .recent-blog-posts ol {
  padding-left: 0; }
.container .recent-blog-posts li {
  list-style-image: none;
  list-style-position: outside;
  list-style-type: none;
  padding-top: 0;
  padding-bottom: 0.25em; }
.container .recent-blog-posts li.older-posts {
  font-style: italic; }

/* Featured blog posts */
.featured-blog-posts {
  /* Small devices (tablets, 768px and up) */ }
  @media (min-width: 768px) {
    .featured-blog-posts {
      padding-top: 1em; } }
  .featured-blog-posts a {
    color: white; }
    .featured-blog-posts a:hover {
      text-decoration: none; }
  .featured-blog-posts .embedded {
    margin-bottom: 1em;
    /* Small devices (tablets, 768px and up) */ }
    @media (min-width: 768px) {
      .featured-blog-posts .embedded {
        margin-bottom: 1.5em; } }
  .featured-blog-posts .preview {
    -webkit-background-size: cover;
    -moz-background-size: cover;
    background-size: cover;
    -o-background-size: cover;
    min-height: 6.5em;
    /* medium devices (desktops, 992px and up) */ }
    @media (min-width: 992px) {
      .featured-blog-posts .preview {
        min-height: 6.5em; } }
    .featured-blog-posts .preview h2 {
      padding: 0.5em;
      margin: 0; }
  .featured-blog-posts h2 {
    padding-bottom: 0.25em; }

/* Search. */
.row.seach {
  margin-top: 1em;
  /* Small devices (tablets, 768px and up) */ }
  @media (min-width: 768px) {
    .row.seach {
      margin-top: 2em; } }

.search-results {
  /* Gives us some nice spacing. */
  margin-top: 1.25em;
  margin-bottom: 1.25em;
  /* Links are article titles, we only underline on hover. */
  /* An individual search result. */ }
  .search-results a {
    color: #398CCC;
    text-decoration: none; }
    .search-results a:hover {
      text-decoration: underline; }
  .search-results .result {
    padding-left: 0;
    line-height: 2em;
    /* Make the date look faded and cool. */ }
    .search-results .result .post-meta {
      color: gray;
      display: inline; }

/* Need to give links the same treatment in lists as we do in paragraphs. */
article li a {
  color: #398CCC; }

/* Special styling for post previews on main blog page. */
.post-preview p {
  margin: 1.25em 0; }
.post-preview h2 {
  margin: 0; }

/* Make code look nice. */
code, pre {
  color: #398CCC;
  background-color: #eee;
  font-size: 0.75em; }

.nav .text-link {
  /* Small devices (tablets, 768px and up) */ }
  @media (min-width: 768px) {
    .nav .text-link {
      display: none; } }
.nav .icon-link {
  font-size: 1em;
  display: none;
  /* Small devices (tablets, 768px and up) */ }
  @media (min-width: 768px) {
    .nav .icon-link {
      display: inherit; } }

.container.archive ol {
  padding-left: 0;
  line-height: 2em; }
.container.archive li {
  list-style-image: none;
  list-style-position: outside;
  list-style-type: none; }
  .container.archive li a {
    text-decoration: none;
    color: #398CCC; }
    .container.archive li a:hover {
      text-decoration: underline; }
.container.archive .post-meta {
  color: gray;
  display: inline; }

.header_image_link_container {
  position: relative; }
  .header_image_link_container a {
    text-decoration: none; }
    .header_image_link_container a i {
      position: absolute;
      bottom: 0;
      right: 0;
      color: rgba(255, 255, 255, 0.5);
      padding-right: 1.25em;
      padding-bottom: 1.25em; }

.container .pager li a {
  text-decoration: none;
  overflow: hidden;
  width: 100%;
  /* Small devices (tablets, 768px and up) */ }
  @media (min-width: 768px) {
    .container .pager li a {
      width: inherit; } }
  .container .pager li a div {
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis; }

.container .article_pager li a {
  margin-top: 1em;
  /* Small devices (tablets, 768px and up) */ }
  @media (min-width: 768px) {
    .container .article_pager li a {
      margin-top: 0;
      width: 45%; } }

header {
  -webkit-box-shadow: rgba(0, 0, 0, 0.1) 0px -50px 50px 0px inset;
  position: relative; }

.header-dimmer {
  background-color: rgba(0, 0, 0, 0.2);
  position: absolute;
  left: 0;
  top: 0;
  width: 100%;
  height: 100%; }

#page_footer {
  margin-top: 1.25em; }

.container li {
  padding-top: 0.5em;
  padding-bottom: 0.5em; }

.intro-header {
  margin-bottom: 0; }

@media only screen and (max-width: 768px) {
  .intro-header .site-heading h1,
  .intro-header .page-heading h1 {
    font-size: 2.5em; }

  .intro-header .site-heading .subheading, .intro-header .page-heading .subheading {
    font-size: 1.25em; } }
.meta {
  color: #808080;
  font-size: 0.75em;
  font-style: italic;
  margin-top: 0; }

img {
  margin-left: auto;
  margin-right: auto; }

iframe.twitter-tweet {
  margin-left: auto !important;
  margin-right: auto !important; }

/* Adds top/bottom spacing to embedded videos */
.embed-responsive {
  margin: 1em 0; }
  @media only screen and (min-width: 768px) {
    .embed-responsive {
      margin: 2em 0; } }

/* This is how the blockquote is customized */
blockquote {
  padding: 0 1em;
  padding-left: 2em;
  margin: 2em 0;
  font-style: none;
  /* Makes bold text in blockquotes really pop */ }
  blockquote strong, blockquote b {
    color: #404040; }
  @media only screen and (min-width: 768px) {
    blockquote {
      padding: 0 2em;
      padding-left: 3em; }
      blockquote p {
        font-size: 1.5em; } }

blockquote > p:first-child {
  margin-top: 0; }

.image-bg-fluid-height,
.image-bg-fixed-height {
  text-align: center;
  background: no-repeat center center scroll;
  -webkit-background-size: cover;
  -moz-background-size: cover;
  background-size: cover;
  -o-background-size: cover; }

.image-bg-fixed-height {
  background-color: #808080;
  height: 250px; }

@media only screen and (min-width: 768px) {
  .image-bg-fixed-height {
    height: 450px; } }
.container img {
  display: block;
  width: 100% \9;
  max-width: 100%;
  height: auto; }

/* Let's make those little links a little prettier. */
.header-link {
  content: "#";
  color: rgba(189, 189, 189, 0.25);
  font-weight: 400; }
  .header-link:hover, .header-link:focus {
    text-decoration: none;
    color: #398CCC; }

.container {
  /* On timeline posts, we want the link to the right of the header. */ }
  .container .header-link {
    position: absolute;
    left: -0.25em;
    /* The links don't fit on spall screens, so let's high them. */ }
    @media only screen and (max-width: 768px) {
      .container .header-link {
        display: none; } }
  .container .timeline-content .header-link {
    position: relative;
    left: 0.3em;
    display: inline; }

#book-link {
  background-color: #eee;
  width: 100%;
  padding: 1.25em;
  margin-bottom: 0.625em;
  clear: both; }
  @media only screen and (min-width: 768px) {
    #book-link {
      padding: 2.5em; } }
  #book-link img {
    width: 40%;
    padding-bottom: 1.25em; }
    @media only screen and (min-width: 768px) {
      #book-link img {
        width: 20%;
        padding-bottom: 0;
        padding-right: 1.25em;
        float: left; } }
  #book-link h3 {
    font-size: 1.25em;
    margin-top: 0;
    margin-bottom: 0.625em; }
  #book-link p {
    margin: 0; }
    #book-link p:before, #book-link p:after {
      content: " ";
      display: table; }
    #book-link p:after {
      clear: both; }
  #book-link a {
    text-decoration: none; }
    #book-link a:hover, #book-link a:focus {
      text-decoration: underline;
      color: #398CCC; }
/* Generated with https://icomoon.io/ */


@font-face {
  font-family: 'icomoon';
  src:url('/fonts/icomoon.eot?-ar0ypv');
  src:url('/fonts/icomoon.eot?#iefix-ar0ypv') format('embedded-opentype'),
    url('/fonts/icomoon.ttf?-ar0ypv') format('truetype'),
    url('/fonts/icomoon.woff?-ar0ypv') format('woff'),
    url('/fonts/icomoon.svg?-ar0ypv#icomoon') format('svg');
  font-weight: normal;
  font-style: normal;
}

[class^="icon-"], [class*=" icon-"] {
  font-family: 'icomoon';
  speak: none;
  font-style: normal;
  font-weight: normal;
  font-variant: normal;
  text-transform: none;
  line-height: 1;

  /* Better Font Rendering =========== */
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

.icon-instagram:before {
  content: "\e601";
}
.icon-site-logo:before {
  content: "\e602";
}
.icon-exposure:before {
  content: "\e603";
}
.highlight table td { padding: 5px; }
.highlight table pre { margin: 0; }
.highlight .cm {
  color: #39B6CC;
  font-style: italic;
}
.highlight .cp {
  color: #808080;
  font-weight: bold;
}
.highlight .c1 {
  color: #39B6CC;
  font-style: italic;
}
.highlight .cs {
  color: #808080;
  font-weight: bold;
  font-style: italic;
}
.highlight .c, .highlight .cd {
  color: #39B6CC;
  font-style: italic;
}
.highlight .err {
  color: #39B6CC;
  font-weight: bold;
}
.highlight .gd {
  color: #404040;
  background-color: #39B6CC;
}
.highlight .ge {
  color: #404040;
  font-style: italic;
}
.highlight .gr {
  color: #39B6CC;
}
.highlight .gh {
  color: #808080;
}
.highlight .gi {
  color: #404040;
}
.highlight .go {
  color: #808080;
}
.highlight .gp {
  color: #404040;
}
.highlight .gs {
  font-weight: bold;
}
.highlight .gu {
  color: #808080;
}
.highlight .gt {
  color: #456CCC;
}
.highlight .kc {
  color: #404040;
  font-weight: bold;
}
.highlight .kd {
  color: #404040;
  font-weight: bold;
}
.highlight .kn {
  color: #404040;
  font-weight: bold;
}
.highlight .kp {
  color: #404040;
  font-weight: bold;
}
.highlight .kr {
  color: #404040;
  font-weight: bold;
}
.highlight .kt {
  color: #456CCC;
  font-weight: bold;
}
.highlight .k, .highlight .kv {
  color: #404040;
  font-weight: bold;
}
.highlight .mf {
  color: #39B6CC;
}
.highlight .mh {
  color: #39B6CC;
}
.highlight .il {
  color: #39B6CC;
}
.highlight .mi {
  color: #39B6CC;
}
.highlight .mo {
  color: #39B6CC;
}
.highlight .m, .highlight .mb, .highlight .mx {
  color: #39B6CC;
}
.highlight .sb {
  color: #39B6CC;
}
.highlight .sc {
  color: #39B6CC;
}
.highlight .sd {
  color: #39B6CC;
}
.highlight .s2 {
  color: #39B6CC;
}
.highlight .se {
  color: #39B6CC;
}
.highlight .sh {
  color: #39B6CC;
}
.highlight .si {
  color: #39B6CC;
}
.highlight .sx {
  color: #39B6CC;
}
.highlight .sr {
  color: #398CCC;
}
.highlight .s1 {
  color: #39B6CC;
}
.highlight .ss {
  color: #398CCC;
}
.highlight .s {
  color: #39B6CC;
}
.highlight .na {
  color: #398CCC;
}
.highlight .bp {
  color: #808080;
}
.highlight .nb {
  color: #456CCC;
}
.highlight .nc {
  color: #456CCC;
  font-weight: bold;
}
.highlight .no {
  color: #398CCC;
}
.highlight .nd {
  color: #808080;
  font-weight: bold;
}
.highlight .ni {
  color: #398CCC;
}
.highlight .ne {
  color: #39B6CC;
  font-weight: bold;
}
.highlight .nf {
  color: #39B6CC;
  font-weight: bold;
}
.highlight .nl {
  color: #39B6CC;
  font-weight: bold;
}
.highlight .nn {
  color: #808080;
}
.highlight .nt {
  color: #404040;
}
.highlight .vc {
  color: #398CCC;
}
.highlight .vg {
  color: #398CCC;
}
.highlight .vi {
  color: #398CCC;
}
.highlight .nv {
  color: #398CCC;
}
.highlight .ow {
  color: #404040;
  font-weight: bold;
}
.highlight .o {
  color: #404040;
  font-weight: bold;
}
.highlight .w {
  color: #808080;
}
/* Adapted from http://www.jqueryscript.net/other/Responsive-Vertical-Timeline-With-jQuery-CSS3.html */


.timeline {
  position: relative;
  width: 100%;
  overflow: hidden;
  margin-top: 30px;
}

.timeline-center {
  left:0;
    right:0;
    margin-left:auto;
    margin-right:auto;
}

.timeline-bar {
  position: absolute;
  width: 10px;
  top: 0;
  bottom: 0;
  background-color: #7E7C7D;
}

.timeline-bar-fill {
  background-color: #398CCC;
  position: absolute;
  left:0;
  right:0;
  top:0;
  height:0;

}

.timeline-state {
  position: relative;
  width: 100%;
  min-height: 200px;
  margin-bottom: 50px;
}

.timeline-state::after {
  display:block;
  content: ' ';
  clear:both;
}

.timeline-icon {
  border-radius: 50%;
  width: 80px;
  height: 80px;
  background-color: #020001;
  position: absolute;
  top: 0;
  text-align: center;
  line-height: 80px;
  font-size: 24px;
  color: #F9F9F9;
}

.timeline-content {
  width: 40%;
  padding: 2%;
  background-color: rgba(189,189,189,0.25);
  border-bottom: solid 3px #398CCC;
  float:left;
  opacity:0;
  position:relative;
  margin-left:-40%;
}

.timeline-state:nth-child(2n+2) .timeline-content {
  float:right;
  margin-right:-40%;
}

.timeline-image {
  position:relative;
  float:left;
  opacity:0;
  width: 40%;
}

.timeline-state:nth-child(2n+1) .timeline-image {
  float:right;
}

.timeline-image img {
    margin-left:auto;
    margin-right:auto;
}

.timeline-content > p, .timeline-content > h3 {
  margin: 10px 0 0 0;
  margin-top: 10px;
  line-height: 25px;
  margin-top: 25px;
}

.timeline-content > p:first-child, .timeline-content > h3:first-child {
  margin: 0;
  margin-top: 0px;
}

/*
animations
*/
.timeline-bar-fill, .timeline-content {
  -webkit-transition: all 500ms ease;
  -moz-transition: all 500ms ease;
  -o-transition: all 500ms ease;
  -ms-transition: all 500ms ease;
  transition: all 500ms ease;
}

.timeline-image {
  -webkit-transition: all 500ms 250ms ease;
  -moz-transition: all 500ms 250ms ease;
  -o-transition: all 500ms 250ms ease;
  -ms-transition: all 500ms 250ms ease;
  transition: all 500ms 250ms ease;
}

.timeline-state:nth-child(2n+2).timeline-animate .timeline-content {
  margin-right:0%;
}

.timeline-animate .timeline-content {
  opacity:1;
  margin-left:0%;
}

.timeline-animate .timeline-image {
  opacity:1;
}


/* Mobile Support */

@media (max-width: 600px) {

  .timeline-bar {
    left:auto;
    right: 37px;
  }

  .timeline-content {
    width:80%;
    float:none;
  }
  .timeline-state:nth-child(2n+2) .timeline-content {
    margin-right:0%;
    float:none;
  }

  .timeline-image {
    margin-top: 30px;
    width:80%;
  }

  .timeline-state:nth-child(2n+1) .timeline-image {
    float:none;
  }

  .animate .timeline-content {
    margin-left: 2%;
  }

  .timeline-icon {
    left: auto;
    right: 0;
  }
}
/* Portfolio */
.portfolio {
  /* Software, Education */
  /* Community */
  /* Photography */
  /* Section Headers */ }
  .portfolio h2 {
    margin-top: 0;
    color: white;
    /* Small devices (tablets, 768px and up) */
    /* Medium devices (desktops, 992px and up) */ }
    @media (min-width: 768px) {
      .portfolio h2 {
        font-size: 2.5em; } }
    @media (min-width: 992px) {
      .portfolio h2 {
        font-size: 3em; } }
    .portfolio h2 .portfolio-header-link {
      color: transparent;
      padding-left: 15px;
      font-weight: 400;
      text-decoration: none;
      display: none; }
      @media (min-width: 768px) {
        .portfolio h2 .portfolio-header-link {
          display: inline; } }
    .portfolio h2:hover .portfolio-header-link {
      color: white; }
  .portfolio h3 {
    font-family: 'ff-tisa-web-pro', 'Georgia', 'Times New Roman', serif;
    font-weight: 400;
    color: #404040;
    font-size: 1.5em;
    text-align: left;
    line-height: 1.5em; }
  .portfolio #education_list li:first-child {
    margin-top: 20px !important; }
  .portfolio #software_list li, .portfolio #education_list li {
    vertical-align: top;
    display: inline-block;
    margin-top: 30px;
    text-align: left;
    /* Small devices (tablets, 768px and up) */ }
    .portfolio #software_list li:first-child, .portfolio #education_list li:first-child {
      margin-top: 0; }
    .portfolio #software_list li h3, .portfolio #education_list li h3 {
      margin-top: 0;
      text-align: center; }
    @media (min-width: 768px) {
      .portfolio #software_list li h3, .portfolio #education_list li h3 {
        max-width: 60%;
        text-align: left;
        margin-bottom: 0; }
      .portfolio #software_list li div, .portfolio #education_list li div {
        max-width: 50%;
        margin-top: 2em; } }
    .portfolio #software_list li img, .portfolio #education_list li img {
      padding: 15px 0;
      max-width: 100%; }
      @media (min-width: 768px) {
        .portfolio #software_list li img, .portfolio #education_list li img {
          max-width: 40%;
          float: right; } }
    .portfolio #software_list li div, .portfolio #education_list li div {
      margin-top: 0.5em; }
    .portfolio #software_list li p, .portfolio #education_list li p {
      margin-top: 0.5em; }
  .portfolio #community_list {
    padding: 30px 0; }
    .portfolio #community_list li {
      margin: 0px 0.625em;
      /* Small devices (tablets, 768px and up) */
      /* Medium devices (desktops, 992px and up) */ }
      @media (min-width: 768px) {
        .portfolio #community_list li {
          margin: 0px 2em; } }
      @media (min-width: 992px) {
        .portfolio #community_list li {
          margin: 0px 3em; } }
  .portfolio #photography_list li {
    vertical-align: middle;
    position: relative;
    font-size: 48px;
    min-width: 70px;
    margin: 10px 0px;
    /* Small devices (tablets, 768px and up) */ }
    @media (min-width: 768px) {
      .portfolio #photography_list li {
        font-size: 60px;
        margin: 0.10px 40px; } }
    .portfolio #photography_list li a {
      text-decoration: none; }
  .portfolio aside {
    display: block;
    color: white;
    position: relative;
    background: no-repeat center center scroll;
    background-size: cover;
    margin-top: 5em;
    margin-bottom: 1em;
    padding-top: 3em;
    padding-bottom: 3em;
    /* Extra small devices (phones, less than 768px) */
    /* No media query since this is the default in Bootstrap */
    /* Small devices (tablets, 768px and up) */
    /* Medium devices (desktops, 992px and up) */
    /* Large devices (large desktops, 1200px and up) */ }
    .portfolio aside p {
      margin: 0px 0; }
    .portfolio aside a.attribution {
      text-decoration: none; }
      .portfolio aside a.attribution i {
        position: absolute;
        bottom: 0;
        right: 0;
        color: rgba(255, 255, 255, 0.5);
        padding-right: 1.25em;
        padding-bottom: 1.25em; }
    @media (min-width: 768px) {
      .portfolio aside {
        height: 250px;
        padding-top: auto;
        padding-bottom: auto;
        margin-top: 5em; } }
    @media (min-width: 992px) {
      .portfolio aside {
        height: 350px; } }
    @media (min-width: 1200px) {
      .portfolio aside {
        height: 450px; } }
    .portfolio aside figcaption {
      display: block;
      padding: 0;
      text-align: center;
      /* Extra small devices (phones, less than 768px) */
      /* No media query since this is the default in Bootstrap */
      width: 70%;
      margin-left: auto;
      margin-right: auto;
      /* Section Header Callouts */
      /* Extra small devices (phones, less than 768px) */
      /* No media query since this is the default in Bootstrap */
      /* Small devices (tablets, 768px and up) */
      /* Medium devices (desktops, 992px and up) */
      /* Large devices (large desktops, 1200px and up) */ }
      .portfolio aside figcaption a:hover, .portfolio aside figcaption a:focus {
        color: white; }
      @media (min-width: 768px) {
        .portfolio aside figcaption {
          position: absolute;
          text-align: left; } }
      .portfolio aside figcaption:before {
        content: "";
        color: white;
        position: relative; }
        @media (min-width: 768px) {
          .portfolio aside figcaption:before {
            position: absolute; } }
      @media (min-width: 768px) {
        .portfolio aside figcaption {
          right: 2em;
          bottom: 2em;
          width: 325px; }
          .portfolio aside figcaption:before {
            width: 205px;
            height: 94px;
            top: 0em;
            right: 105%;
            background-image: url(/img/portfolio/callout_small.svg); } }
      @media (min-width: 992px) {
        .portfolio aside figcaption {
          right: 5em; }
          .portfolio aside figcaption:before {
            width: 357px;
            height: 164px;
            top: -3.6em;
            background-image: url(/img/portfolio/callout.svg); } }
      @media (min-width: 1200px) {
        .portfolio aside figcaption {
          right: 7em;
          bottom: 5em; } }
/* Speaking Page */
.speaking .row {
  padding-bottom: 0; }
.speaking h3 {
  margin-top: 2em;
  text-decoration: none;
  font-weight: 600;
  font-size: 1em;
  /* Small devices (tablets, 768px and up) */ }
  @media (min-width: 768px) {
    .speaking h3 {
      font-size: 1.5em; } }
.speaking ul {
  padding: 0; }
  .speaking ul li {
    width: 100%;
    display: inline-block;
    vertical-align: top;
    margin-top: 2em;
    text-align: left;
    /* Links here are different from in articles. */
    /* Small devices (tablets, 768px and up) */ }
    .speaking ul li i {
      width: 1.5em;
      text-align: center;
      position: relative;
      left: 0.625em; }
    .speaking ul li h3 {
      margin: 0; }
    .speaking ul li p, .speaking ul li div {
      margin: 0; }
    .speaking ul li p {
      padding-left: 2em;
      text-indent: -2em; }
    .speaking ul li a {
      text-decoration: none;
      color: #404040; }
      .speaking ul li a:hover {
        text-decoration: underline;
        color: #398CCC; }
    .speaking ul li .details {
      float: right;
      width: 70%;
      padding-left: 1em; }
    .speaking ul li img {
      width: 100%; }
    @media (min-width: 768px) {
      .speaking ul li {
        margin-top: 2em; }
        .speaking ul li .details {
          padding-left: 1.5em;
          padding-bottom: 0.625em; } }
    .speaking ul li .image-container {
      position: relative;
      float: left;
      padding: 0;
      height: 100%;
      width: 30%; }
      .speaking ul li .image-container a.mouseover-link {
        display: none; }
        .speaking ul li .image-container a.mouseover-link i {
          position: absolute;
          bottom: 0;
          right: 0;
          color: white;
          padding-bottom: 10px;
          padding-right: 40px;
          color: white; }
      .speaking ul li .image-container:hover a.mouseover-link {
        display: inline; }
.speaking aside {
  background: no-repeat center center;
  background-attachment: scroll;
  -webkit-background-size: cover;
  -moz-background-size: cover;
  background-size: cover;
  -o-background-size: cover;
  color: white;
  font-weight: 800;
  padding: 5em 0;
  margin-bottom: 1.5em;
  margin-top: 5em;
  text-align: center;
  /* TODO: Cusotmize heights for different devices. */
  /* Extra small devices (phones, less than 768px) */
  /* No media query since this is the default in Bootstrap */
  /* Small devices (tablets, 768px and up) */
  /* Medium devices (desktops, 992px and up) */
  /* Large devices (large desktops, 1200px and up) */ }
  @media only screen and (min-width: 768px) {
    .speaking aside {
      padding: 7em 0;
      margin-bottom: 30px;
      margin-top: 7em; } }
  .speaking aside h2 {
    font-size: 2em;
    font-weight: 800;
    margin: 0; }
    @media only screen and (min-width: 768px) {
      .speaking aside h2 {
        font-size: 2.5em; } }
  @media (min-width: 768px) {
    .speaking aside {
      padding-top: auto;
      padding-bottom: auto; } }
  @media (min-width: 992px) {
    .speaking aside {
      padding-top: auto;
      padding-bottom: auto; } }
  @media (min-width: 1200px) {
    .speaking aside {
      padding-top: auto;
      padding-bottom: auto; } }
.books #books_list li {
  vertical-align: top;
  display: inline-block;
  text-align: left;
  /* Small devices (tablets, 768px and up) */ }
  .books #books_list li h2 {
    font-family: 'ff-tisa-web-pro', 'Georgia', 'Times New Roman', serif;
    font-weight: 400;
    text-align: left;
    font-size: 25px;
    line-height: 25px; }
    @media (min-width: 768px) {
      .books #books_list li h2 {
        font-size: 35px;
        line-height: 35px; } }
  .books #books_list li a.title-link {
    color: #404040;
    text-decoration: none; }
    .books #books_list li a.title-link:hover {
      color: #398CCC;
      text-decoration: underline; }
  .books #books_list li .title {
    display: block; }
    .books #books_list li .title h2 {
      display: inline; }
  @media (min-width: 768px) {
    .books #books_list li div {
      max-width: 50%;
      margin-top: 30px; } }
  .books #books_list li img {
    padding: 15px 0px;
    max-width: 100%;
    max-height: 200px; }
    @media (min-width: 768px) {
      .books #books_list li img {
        max-width: 40%;
        max-height: inherit;
        float: right; } }
  .books #books_list li div {
    margin-top: 15px; }
  .books #books_list li p {
    margin-top: 15px; }
/*








 */

