@-moz-keyframes animationFadein {
  0% {
    color: rgba(68,68,68,0.01);
  }
  100% {
    color: #444;
  }
}
@-webkit-keyframes animationFadein {
  0% {
    color: rgba(68,68,68,0.01);
  }
  100% {
    color: #444;
  }
}
@-o-keyframes animationFadein {
  0% {
    color: rgba(68,68,68,0.01);
  }
  100% {
    color: #444;
  }
}
@keyframes animationFadein {
  0% {
    color: rgba(68,68,68,0.01);
  }
  100% {
    color: #444;
  }
}
/*
Comment-A: rem for left-right, for consistent alignment.
   em for top/bottom, so the spacing is relative to font-size
Comment-B: Color is a dark, dark gray rgb (55, 55, 55).
    All grays and base line styles are multiples of this
Comment-C:
  #373737 -> base:      ->   rgb(55,55,55);
  #6e6e6e -> base * 2   ->   rgb(110,110,110)
  #a5a5a5 -> base * 3   ->   rgb(165,165,165)
  #c1c1c1 -> base * 3.5 ->   rgb(192.5,192.5,192.5)
  #dcdcdc -> base * 4   ->   rgb(220,220,220)
Comment-D:
  Set the font-size w/ calc and use rem. This way, the font-size can scale up as the browser window gets larger, but it also doesn't get ridiculously hard to read when the browser window shrinks
Comment-E:
  increases margin as screen width gets smaller
*/
html {
  color: #373737;
/*Comment-B*/
  font-size: calc(0.5vw + 0.75rem);
/*Comment-D*/
  line-height: 1.168;
}
/*=====
  #Everything
=====*/
h1,
h2,
h3,
h4,
h5,
h6,
p,
ul,
ol,
dl,
pre {
  line-height: 1.618;
  margin: 0 0.618rem 0 0.618rem;
/* Comment-A */
}
/*=====
  #Headings
=====*/
h1,
h2,
h3,
h4,
h5,
h6 {
  font-family: Helvetica, Arial, sans-serif;
  font-weight: bold;
  line-height: 1.2;
  margin-bottom: calc(1.618vmin - 1vmax + 0.35em);
/*Comment-E*/
}
h1 {
  font-size: 2.617924em;
/* (16 x 1.618) x 1.618 */
}
h2 {
  font-size: 1.618em;
}
h3 {
  font-size: 1.4em;
}
h4 {
  font-size: 1.3em;
}
h5 {
  font-size: 1.2em;
}
h6 {
  font-size: 1.1em;
}
/*=====
  #Lists
=====*/
ul,
ol,
dl {
  padding: 0.618em 0.618rem;
/* Comment-A */
}
li {
  text-indent: -0.9em;
  line-height: 1.618;
  padding: 0;
  margin: 0 0 0 0.618rem;
}
nav li {
  text-indent: 0;
  margin: 0;
}
li {
  list-style-position: inside;
}
dt {
  text-indent: -0.618rem;
}
dd {
  margin: 0;
  padding: 0 0.618rem 0 0.618rem;
}
/*=====
  #Paragraphs #Blocks
=====*/
hr {
  color: #a5a5a5;
  border-width: 0.0625em;
  border-style: solid;
  margin: 1.618em 0.618rem;
}
p,
blockquote {
  line-height: 1.618;
}
p {
  font-size: 1em;
  margin-bottom: 0.618em;
}
/*Credit where it's due:
https://css-tricks.com/snippets/css/simple-and-nice-blockquote-styling/
*/
blockquote {
  background: rgba(165,165,165,0.15);
  border-left: 10px solid #dcdcdc;
/*Comment-C*/
  margin: 1.618em 0.618rem;
/* Comment-A */
  padding: 0.618em 0.618rem;
  quotes: "\201C" "\201D" "\2018" "\2019";
}
blockquote::before {
  color: #c1c1c1;
/*Comment-C*/
  content: open-quote;
  font-size: 4em;
  line-height: 0.1em;
  margin-right: 0.25em;
  vertical-align: -0.4em;
}
/*=====
  #Content-Flow
=====*/
em,
i,
cite {
  font-style: italic;
}
strong,
b {
  font-weight: 700;
}
cite {
  display: block;
  text-align: right;
}
u {
  text-decoration: none;
  border-bottom: 1px dotted #f00;
}
small,
sub,
sup {
  font-size: 0.618em;
  line-height: 1;
}
sub {
  vertical-align: sub;
}
sup {
  vertical-align: super;
}
/*=====
  #content-flow #editorial
=====*/
s,
strike,
del,
ins {
  color: #6e6e6e;
/*Comment-C*/
}
s,
strike,
del {
  text-decoration: strikethrough;
}
ins,
del {
  background-color: rgba(220,220,220,0.25);
}
ins {
  text-decoration: none;
}
/*
mark and selection should be different, so user knows which one they've selected.

mark and selections:
  saturation: 44%
  lightness: 75%
Hue is different
*/
mark {
  background-color: rgba(165,220,165,0.9);
}
::selection {
  background-color: rgba(165,220,220,0.9);
}
/*because mark and selection have same saturation, brightenss, mark won't easily stand out if it's selected*/
mark::selection {
  background-color: rgba(165,220,110,0.9);
}
/*dfn and dt both do the same thing: denote a term to be defined */
dfn,
dt {
  font-style: oblique;
  font-weight: 700;
  text-transform: capitalize;
}
/*=====
#Content-flow #Code
=====*/
pre,
code,
var,
samp,
data {
  font-family: monospace;
}
kbd,
samp,
data {
  background-color: rgba(165,165,165,0.2);
}
kbd {
  font-size: 0.75em;
  padding: 0.25ex 0.5ex;
  border: 1px solid #c1c1c1;
  border-radius: 3px;
}
/*Treat samp like a mini blockquote. because basically you're quoting what the computer would do*/
samp,
data {
  padding: 0 10px;
}
var,
data {
  font-style: italic;
}
samp {
  border-left: 5px solid #c1c1c1;
}
data {
  padding: 0 10px;
}
pre {
  font-size: 0.75em;
  line-height: 1.2;
  padding: 0.618em 0.618rem;
  border: 1px solid #c1c1c1;
  border-radius: 2px;
  overflow: scroll;
}
/*=====
  #Ruby
=====*/
ruby {
  display: ruby;
  position: relative;
  margin: 0 0.5ex;
  -webkit-ruby-position: before;
  ruby-position: over;
  ruby-position: before;
}
rtc,
rbc {
  font-size: inherit;
  line-height: 1;
  ruby-align: start;
}
rt {
  display: ruby-text;
  font-size: 0.7em;
}
rt + rt {
  margin-left: 0.5ex;
}
rtc > bdo {
  display: -webkit-ruby-text-container;
  display: ruby-base-container;
}
/*complex ruby for chrome and Edge*/
/*only FF has "complete" ruby support*/
@supports (ruby-align: left) or (not (display: ruby-base-container)) {
  ruby {
    display: inline-flex;
    flex-direction: column;
    vertical-align: 1em;
    line-height: 1;
  }
  rtc,
  rt {
    order: -1;
    flex-grow: 1;
    flex-shrink: 0;
  }
  rtc {
    display: inline-flex;
  }
}
/*Edge fixes*/
@supports ((ruby-align: left)) {
  rtc {
    justify-content: space-between;
  }
  rt {
    display: inline-flex;
  }
}
/*==========
#Table
==========*/
table {
  font-size: 0.8em;
}
caption {
  font-size: 1em;
  text-transform: capitalize;
  font-style: italic;
}
th,
td {
  text-align: left;
  vertical-align: middle;
  line-height: 1.2;
  padding: 0.4em 0.618rem;
}
th {
  font-family: Helvetica, Arial, sans-serif;
  font-weight: bold;
  font-size: 1.3em; /*treat th in a body as h4*/
}
thead th,
tfoot th {
  font-size: 1.5em; /*treat th in header/footer as h3*/
}
figure {
  margin: 0;
}
figcaption {
  margin-bottom: 0.618em;
}

@-moz-keyframes animationFadein {
  0% {
    color: rgba(68,68,68,0.01);
  }
  100% {
    color: #444;
  }
}
@-webkit-keyframes animationFadein {
  0% {
    color: rgba(68,68,68,0.01);
  }
  100% {
    color: #444;
  }
}
@-o-keyframes animationFadein {
  0% {
    color: rgba(68,68,68,0.01);
  }
  100% {
    color: #444;
  }
}
@keyframes animationFadein {
  0% {
    color: rgba(68,68,68,0.01);
  }
  100% {
    color: #444;
  }
}
/*===============
    #theme
===============*/
* {
  box-sizing: border-box;
}
html {
  font-family: 'Asap', sans-serif;
  min-height: 100%;
  overflow: visible;
}
body {
  display: flex;
  overflow-y: hidden;
  flex-direction: column;
  color: #646464;
  font-size: 1rem;
  min-height: 100vh;
}
h1,
h2,
h3,
h4,
h5,
h6 {
  color: #144b7e;
  letter-spacing: 0.1ch;
  font-family: 'Palanquin Dark', sans-serif;
  font-weight: bold;
  margin: 0 0 0.618rem 0.618em;
}
p {
  margin: 1.618rem 0 0.618em 0.618em;
}
a {
  text-decoration: none;
  outline: none;
}
table {
  display: flex;
  flex-direction: column;
  align-items: stretch;
}
thead {
  order: -1;
}
tbody {
  flex-grow: 1;
}
tfoot {
  order: 1;
}
thead,
tbody,
tfoot {
  display: inherit;
  flex-direction: inherit;
  justify-content: space-between;
  align-items: stretch;
}
tr {
  display: inherit;
  flex-direction: row;
  justify-content: space-between;
  align-items: stretch;
  flex-grow: 1;
}
td,
th {
  flex-basis: 15%;
  flex-grow: 2;
  text-align: left;
}
.table--reverse {
  flex-direction: row;
  min-height: 8em;
}
.table--reverse tr {
  flex-direction: column;
}

@-moz-keyframes animationFadein {
  0% {
    color: rgba(68,68,68,0.01);
  }
  100% {
    color: #444;
  }
}
@-webkit-keyframes animationFadein {
  0% {
    color: rgba(68,68,68,0.01);
  }
  100% {
    color: #444;
  }
}
@-o-keyframes animationFadein {
  0% {
    color: rgba(68,68,68,0.01);
  }
  100% {
    color: #444;
  }
}
@keyframes animationFadein {
  0% {
    color: rgba(68,68,68,0.01);
  }
  100% {
    color: #444;
  }
}
/*===============
    #Transition effects
===============*/
@-moz-keyframes slideUpToHidden {
  from {
    transform: translateY(0);
  }
  to {
    transform: translateY(-130vh);
  }
}
@-webkit-keyframes slideUpToHidden {
  from {
    transform: translateY(0);
  }
  to {
    transform: translateY(-130vh);
  }
}
@-o-keyframes slideUpToHidden {
  from {
    transform: translateY(0);
  }
  to {
    transform: translateY(-130vh);
  }
}
@keyframes slideUpToHidden {
  from {
    transform: translateY(0);
  }
  to {
    transform: translateY(-130vh);
  }
}
@-moz-keyframes slideUpToVisible {
  from {
    transform: translateY(130vh);
  }
  to {
    transform: translateY(0);
  }
}
@-webkit-keyframes slideUpToVisible {
  from {
    transform: translateY(130vh);
  }
  to {
    transform: translateY(0);
  }
}
@-o-keyframes slideUpToVisible {
  from {
    transform: translateY(130vh);
  }
  to {
    transform: translateY(0);
  }
}
@keyframes slideUpToVisible {
  from {
    transform: translateY(130vh);
  }
  to {
    transform: translateY(0);
  }
}
@-moz-keyframes slideDownToVisible {
  from {
    transform: translateY(-100vh);
  }
  to {
    transform: translateY(0);
  }
}
@-webkit-keyframes slideDownToVisible {
  from {
    transform: translateY(-100vh);
  }
  to {
    transform: translateY(0);
  }
}
@-o-keyframes slideDownToVisible {
  from {
    transform: translateY(-100vh);
  }
  to {
    transform: translateY(0);
  }
}
@keyframes slideDownToVisible {
  from {
    transform: translateY(-100vh);
  }
  to {
    transform: translateY(0);
  }
}

@-moz-keyframes animationFadein {
  0% {
    color: rgba(68,68,68,0.01);
  }
  100% {
    color: #444;
  }
}
@-webkit-keyframes animationFadein {
  0% {
    color: rgba(68,68,68,0.01);
  }
  100% {
    color: #444;
  }
}
@-o-keyframes animationFadein {
  0% {
    color: rgba(68,68,68,0.01);
  }
  100% {
    color: #444;
  }
}
@keyframes animationFadein {
  0% {
    color: rgba(68,68,68,0.01);
  }
  100% {
    color: #444;
  }
}
/*===============
    #Layout
===============*/
@media screen {
  .ge-header,
  .ge-footer {
    display: flex;
    flex-grow: 0;
    flex-shrink: 1;
    padding: 0.618rem;
  }
  .ge-header {
    flex-direction: row;
    min-height: 6vh;
    flex-wrap: wrap;
    order: -1;
  }
  .ge-header__title,
  .ge-header__subtitle {
    margin: 0;
  }
  .ge-header__title {
    font-size: 1.45rem;
    margin: 0 0 0 6rem;
  }
  .ge-header__subtitle {
    font-size: 2.25vw;
    flex-grow: 1;
  }
  .ge-header__logo {
    width: 6vw;
    position: absolute;
    z-index: -1;
  }
  .ge-footer {
    display: flex;
    flex-grow: 0;
    flex-shrink: 1;
    width: 100%;
    order: 10;
    flex-direction: row;
    justify-content: flex-start;
    align-items: center;
  }
  .ge-footer__legalese {
    color: #ebebeb;
  }
  .main {
    display: flex;
    flex-grow: 1;
    padding: 0.618rem;
    flex-basis: 75vh;
    height: calc(100vh - 8vh - 35px);
    overflow: hidden;
  }
}
body:before {
  content: "smartphone";
  display: none; /* Prevent from displaying. */
}
@media (min-width: 700px) {
  body:before {
    content: "tablet";
  }
}
@media (min-width: 1100px) {
  body:before {
    content: "desktop";
  }
}
/*Flex shenanigans*/
[class*="flex"] {
  display: flex;
}
[class*="flex"][class*="column"] {
  flex-direction: column;
}
[class*="flex"][class*="row"] {
  flex-direction: row;
}
[class*="flex"][class*="justify-space-between"] {
  justify-content: space-between;
}
[class*="flex"][class*="justify-space-around"] {
  justify-content: space-around;
}
[class*="flex"][class*="justify-center"] {
  justify-content: center;
}
[class*="flex"][class*="justify-flex-start"] {
  justify-content: flex-start;
}
[class*="flex"][class*="justify-flex-end"] {
  justify-content: flex-end;
}
[class*="flex"][class*="align-items-baseline"] {
  align-items: baseline;
}
[class*="flex"][class*="align-items-center"] {
  align-items: center;
}
[class*="flex"][class*="align-items-flex-start"] {
  align-items: flex-start;
}
[class*="flex"][class*="align-items-flex-end"] {
  align-items: flex-end;
}
[class*="flex"][class*="align-items-stretch"] {
  align-items: stretch;
}
[class*="flex"][class*="align-content-baseline"] {
  align-content: baseline;
}
[class*="flex"][class*="align-content-center"] {
  align-content: center;
}
[class*="flex"][class*="align-content-flex-start"] {
  align-content: flex-start;
}
[class*="flex"][class*="align-content-flex-end"] {
  align-content: flex-end;
}
[class*="flex"][class*="align-content-stretch"] {
  align-content: stretch;
}
[class*="flex"][class*="direction-row"] {
  flex-direction: row;
}
[class*="flex"][class*="direction-column"] {
  flex-direction: column;
}
[class*="flex"][class*="direction-row-reverse"] {
  flex-direction: row-reverse;
}
[class*="flex"][class*="direction-column-reverse"] {
  flex-direction: column-reverse;
}
[class*="flex"][class*="wrap-nowrap"] {
  flex-wrap: nowrap;
}
[class*="flex"][class*="wrap-wrap"] {
  flex-wrap: wrap;
}
[class*="flex"][class*="wrap-wrap-reverse"] {
  flex-wrap: wrap-reverse;
}
[class*="flex"][class*="grow-n-1"] {
  flex-grow: -1;
}
[class*="flex"][class*="shrink-n-1"] {
  flex-shrink: -1;
}
[class*="flex"][class*="order-n-1"] {
  order: -1;
}
[class*="flex"][class*="grow-n0"] {
  flex-grow: 0;
}
[class*="flex"][class*="shrink-n0"] {
  flex-shrink: 0;
}
[class*="flex"][class*="order-n0"] {
  order: 0;
}
[class*="flex"][class*="grow-n1"] {
  flex-grow: 1;
}
[class*="flex"][class*="shrink-n1"] {
  flex-shrink: 1;
}
[class*="flex"][class*="order-n1"] {
  order: 1;
}
[class*="flex"][class*="grow-n2"] {
  flex-grow: 2;
}
[class*="flex"][class*="shrink-n2"] {
  flex-shrink: 2;
}
[class*="flex"][class*="order-n2"] {
  order: 2;
}
[class*="flex"][class*="grow-n3"] {
  flex-grow: 3;
}
[class*="flex"][class*="shrink-n3"] {
  flex-shrink: 3;
}
[class*="flex"][class*="order-n3"] {
  order: 3;
}
[class*="flex"][class*="grow-n4"] {
  flex-grow: 4;
}
[class*="flex"][class*="shrink-n4"] {
  flex-shrink: 4;
}
[class*="flex"][class*="order-n4"] {
  order: 4;
}
[class*="flex"][class*="grow-n5"] {
  flex-grow: 5;
}
[class*="flex"][class*="shrink-n5"] {
  flex-shrink: 5;
}
[class*="flex"][class*="order-n5"] {
  order: 5;
}
[class*="flex"][class*="grow-n6"] {
  flex-grow: 6;
}
[class*="flex"][class*="shrink-n6"] {
  flex-shrink: 6;
}
[class*="flex"][class*="order-n6"] {
  order: 6;
}
[class*="flex"][class*="grow-n7"] {
  flex-grow: 7;
}
[class*="flex"][class*="shrink-n7"] {
  flex-shrink: 7;
}
[class*="flex"][class*="order-n7"] {
  order: 7;
}
[class*="flex"][class*="grow-n8"] {
  flex-grow: 8;
}
[class*="flex"][class*="shrink-n8"] {
  flex-shrink: 8;
}
[class*="flex"][class*="order-n8"] {
  order: 8;
}
[class*="flex"][class*="grow-n9"] {
  flex-grow: 9;
}
[class*="flex"][class*="shrink-n9"] {
  flex-shrink: 9;
}
[class*="flex"][class*="order-n9"] {
  order: 9;
}
[class*="flex"][class*="grow-n10"] {
  flex-grow: 10;
}
[class*="flex"][class*="shrink-n10"] {
  flex-shrink: 10;
}
[class*="flex"][class*="order-n10"] {
  order: 10;
}
[class*="flex"][class*="basis-full"] {
  flex-basis: 100%;
}

@-moz-keyframes animationFadein {
  0% {
    color: rgba(68,68,68,0.01);
  }
  100% {
    color: #444;
  }
}
@-webkit-keyframes animationFadein {
  0% {
    color: rgba(68,68,68,0.01);
  }
  100% {
    color: #444;
  }
}
@-o-keyframes animationFadein {
  0% {
    color: rgba(68,68,68,0.01);
  }
  100% {
    color: #444;
  }
}
@keyframes animationFadein {
  0% {
    color: rgba(68,68,68,0.01);
  }
  100% {
    color: #444;
  }
}
/*===============
    #Slide Navigation
===============*/
.slideNav {
  display: flex;
  flex-direction: column;
  align-items: center;
  overflow-y: auto;
  overflow-x: hidden;
  border-right: 12px solid #646464;
  height: 80vh;
  width: 300px;
  margin: 0 1.618em 0 0;
  flex-shrink: 0;
  flex-grow: 1;
  transition: all 0.3s ease-in-out;
}
.slideNav .list {
  box-sizing: border-box;
  font-weight: bold;
  font-size: 1em;
  list-style-type: none;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  align-items: flex-start;
  height: 90%;
  max-width: 300px;
  margin: 0;
}
.slideNav .list__item {
  display: block;
}
.slideNav .list__item__link {
  display: block;
  color: #9fca7f;
  transition: all 0.3s ease-in-out;
}
.slideNav .list__item__link:hover,
.slideNav .list__item__link:focus {
  color: #b8d098;
}
.slideNav .list__item__link.visited {
  color: #19503d;
}
.slideNav .list__item__link.ui-active {
  background: #9fca7f;
  color: #646464;
}
.slideNav .list .list {
  font-size: 0.75em;
  font-weight: normal;
  align-items: stretch;
}
.slideNav.ui-expandedfull + .slides {
  width: 0%;
}
.slideNav.ui-collapsed {
  width: 0%;
}
.slideNav.ui-collapsed + .slides {
  width: 100%;
}
.slideNav.ui-collapsed + .slides .slide {
  width: 100%;
}

@-moz-keyframes animationFadein {
  0% {
    color: rgba(68,68,68,0.01);
  }
  100% {
    color: #444;
  }
}
@-webkit-keyframes animationFadein {
  0% {
    color: rgba(68,68,68,0.01);
  }
  100% {
    color: #444;
  }
}
@-o-keyframes animationFadein {
  0% {
    color: rgba(68,68,68,0.01);
  }
  100% {
    color: #444;
  }
}
@keyframes animationFadein {
  0% {
    color: rgba(68,68,68,0.01);
  }
  100% {
    color: #444;
  }
}
/*===============
    #Slides fool
===============*/
@media screen {
  .slides {
    position: relative;
    display: flex;
    height: 80vh;
    overflow: hidden;
    width: calc(100vw -  350px );
    transition: all 0.3s ease-in-out;
    background-color: #dae4ec;
  }
  .slide {
    flex-shrink: 0;
    flex-grow: 0;
    position: relative;
    float: left;
    display: inline-flex;
    flex-direction: column;
    padding: 0;
    height: 100%;
    width: calc(100vw -  350px );
    margin: 0 0vw 0 0;
    transition: 0.25s all ease-in-out;
    justify-content: flex-start;
    transition: all 0.3s ease-in-out;
  }
  .slide [contenteditable] {
    display: none;
  }
  .slide__footer {
    font-size: 0.85em;
    position: absolute;
    bottom: 20px;
  }
  .slide.ui-prev {
    margin-left: -100vw;
  }
  .slide__content + .slide__content:before {
    content: '\21A8';
    position: absolute;
    display: block;
    top: -26px;
    font-size: 1.45em;
    height: 1.5em;
    width: 1em;
    left: 97%;
  }
  .slide__content {
    position: relative;
    flex-grow: 1;
    flex-shrink: 0;
    font-size: 1.1rem;
    padding: 0 1.618em;
    height: 0%;
    overflow-y: visible;
    transition: all 0.5s ease-in-out;
  }
  .slide__content.ui-visible {
    height: 94%;
    overflow-y: scroll;
    visibility: visible;
  }
  .slide__content.ui-visible [class*="demo"] {
    visibility: visible;
  }
  .slide__content.ui-visible [contenteditable] {
    display: block;
  }
  .slide__content.ui-hiddenTop {
    flex-grow: 0;
    flex-shrink: 1;
    height: 0%;
    overflow: hidden;
  }
  .slide__content.ui-hiddenTop [class*="demo"] {
    visibility: hidden;
  }
  .slide__content.ui-hiddenTop [contenteditable] {
    display: none;
  }
  .slide__content [contenteditable] {
    display: none;
  }
  .slide__content [class*="demo"] {
    visibility: hidden;
  }
}
.slide__content [class*="demo"],
.slide__content [id*="demo"] {
  font-family: Helvetica, arial;
  font-size: 0.8rem;
  border: 2px solid #545456;
}
.slide__content--hasMedia {
  display: flex;
  flex-direction: column;
  align-items: center;
  padding: 0;
  background: #fff;
}
.slide__content--hasMedia .slide__media {
  width: 45vh;
}
.slide__content--hasMedia.ui-visible {
  overflow-y: hidden;
}
.slide__header__title {
  font-size: 1.2em;
}
.flex-two-col {
  display: flex;
  flex-direction: row;
  align-items: center;
}

@-moz-keyframes animationFadein {
  0% {
    color: rgba(68,68,68,0.01);
  }
  100% {
    color: #444;
  }
}
@-webkit-keyframes animationFadein {
  0% {
    color: rgba(68,68,68,0.01);
  }
  100% {
    color: #444;
  }
}
@-o-keyframes animationFadein {
  0% {
    color: rgba(68,68,68,0.01);
  }
  100% {
    color: #444;
  }
}
@keyframes animationFadein {
  0% {
    color: rgba(68,68,68,0.01);
  }
  100% {
    color: #444;
  }
}
/*===============
    #Code edit
===============*/
.highlight-code slide.current pre > * {
  opacity: 0.25;
  transition: all 0.3s ease-in-out;
}
.highlight-code slide.current b {
  opacity: 1;
}
[contenteditable="true"],
[contenteditable] {
  display: block;
  resize: both;
  min-height: 12em;
  border: 1px dashed transparent;
}
[contenteditable="true"]:focus,
[contenteditable]:focus,
[contenteditable="true"]:active,
[contenteditable]:active {
  outline: none;
  border: 1px dashed colorNeturalLightest;
}
pre,
[contenteditable] {
  min-height: 8ch;
  overflow: scroll;
}
pre,
[contenteditable="true"],
[contenteditable],
style,
script {
  font-family: 'Source Code Pro', 'Courier New', monospace;
  font-size: 0.8em;
  line-height: 1.4;
  padding: 10px 0 10px 1ch;
  letter-spacing: -1px;
  margin-bottom: 1em;
  width: 90%;
  background-color: #dbdbdb;
  position: relative;
  overflow: scroll;
/*overflow: hidden;*/
}
pre[data-lang]:after,
[contenteditable="true"][data-lang]:after,
[contenteditable][data-lang]:after,
style[data-lang]:after,
script[data-lang]:after {
  content: attr(data-lang);
  right: 8px;
  top: 0;
  position: absolute;
  color: #fff;
  padding: 2px 0.618em;
  text-transform: uppercase;
  border-radius: 0 0 3px 3px;
  background-color: #646464;
}
pre[data-lang="go"] {
  color: #333;
}
[data-lang="html"]:after {
  color: #92278f;
}
[data-lang="js"]:after {
  color: #144b7e;
}
[contenteditable] {
  white-space: pre;
}
[contenteditable]:before {
  content: 'editable';
  right: 65px;
  top: 1em;
  position: absolute;
  color: #fff;
  padding: 2px 0.618em;
  text-transform: uppercase;
  border-radius: 0 0 3px 3px;
  background-color: #646464;
}
style[contenteditable]:after {
  content: 'CSS';
  top: 1em;
  right: 8px;
  position: absolute;
  color: #fff;
  padding: 2px 0.618em;
  text-transform: uppercase;
  border-radius: 0 0 3px 3px;
  background-color: #646464;
}
code {
  font-size: 95%;
  font-family: 'Source Code Pro', 'Courier New', monospace;
  color: #000;
}
figure pre {
  flex-basis: 17.5em;
  height: 100%;
  overflow-y: scroll;
  overflow-x: hidden;
}
/* Pretty print */
.prettyprint .str,
.prettyprint .atv {
/* a markup attribute value */
  color: #009f5d;
}
.prettyprint .kwd,
.prettyprint .tag {
/* a markup tag name */
  color: #06c;
}
.prettyprint .com {
/* a comment */
  color: #646464;
  font-style: italic;
}
.prettyprint .lit {
/* a literal value */
  color: #7f0000;
}
.prettyprint .pun,
.prettyprint .opn,
.prettyprint .clo {
  color: #515151;
}
.prettyprint .typ,
.prettyprint .atn,
.prettyprint .dec,
.prettyprint .var {
/* a declaration; a variable name */
  color: #d94d3a;
}
.prettyprint .pln {
  color: #646464;
}

@-moz-keyframes animationFadein {
  0% {
    color: rgba(68,68,68,0.01);
  }
  100% {
    color: #444;
  }
}
@-webkit-keyframes animationFadein {
  0% {
    color: rgba(68,68,68,0.01);
  }
  100% {
    color: #444;
  }
}
@-o-keyframes animationFadein {
  0% {
    color: rgba(68,68,68,0.01);
  }
  100% {
    color: #444;
  }
}
@keyframes animationFadein {
  0% {
    color: rgba(68,68,68,0.01);
  }
  100% {
    color: #444;
  }
}
/*===============
    #slide-effects
===============*/
@media screen {
  [class*="fx"],
  [data-fx] {
    transition: 0.4s all ease-in-out;
  }
  [data-fx*="slidefromleft"] {
    transform: translateX(-100vw);
  }
  [data-fx*="slidefromright"] {
    transform: translateX(100vw);
  }
  [data-fx*="fadein"] {
    opacity: 0;
  }
  [data-fx*="fadeout"] {
    opacity: 1;
  }
  [data-fx*="shrink"] {
    transform: scale(1);
  }
  [data-fx*="underline"] {
    border-bottom: 1px solid transparent;
  }
  .fx-fadein {
    opacity: 1;
  }
  .fx-fadeout {
    opacity: 0;
  }
  .fx-callout,
  .fx-highlight {
    background: rgba(63,192,214,0.6);
  }
  .fx-grow {
    transform: scale(1.3);
  }
  .fx-shrink {
    transform: scale(0.1);
  }
  .fx-sizebounce {
    animation-name: sizeBounce;
    animation-iteration-count: 2;
    animation-duration: 1.5s;
  }
  .fx-underline {
    border-bottom: 1px solid #ffde66;
  }
}
@-moz-keyframes fadeIn {
  from {
    opacity: 0;
  }
  to {
    opacity: 1;
  }
}
@-webkit-keyframes fadeIn {
  from {
    opacity: 0;
  }
  to {
    opacity: 1;
  }
}
@-o-keyframes fadeIn {
  from {
    opacity: 0;
  }
  to {
    opacity: 1;
  }
}
@keyframes fadeIn {
  from {
    opacity: 0;
  }
  to {
    opacity: 1;
  }
}
@-moz-keyframes sizeBounce {
  33% {
    transform: scale(1.5);
  }
  50% {
    transform: scale(0.5);
  }
  66% {
    transform: scale(1.2);
  }
}
@-webkit-keyframes sizeBounce {
  33% {
    transform: scale(1.5);
  }
  50% {
    transform: scale(0.5);
  }
  66% {
    transform: scale(1.2);
  }
}
@-o-keyframes sizeBounce {
  33% {
    transform: scale(1.5);
  }
  50% {
    transform: scale(0.5);
  }
  66% {
    transform: scale(1.2);
  }
}
@keyframes sizeBounce {
  33% {
    transform: scale(1.5);
  }
  50% {
    transform: scale(0.5);
  }
  66% {
    transform: scale(1.2);
  }
}

@-moz-keyframes animationFadein {
  0% {
    color: rgba(68,68,68,0.01);
  }
  100% {
    color: #444;
  }
}
@-webkit-keyframes animationFadein {
  0% {
    color: rgba(68,68,68,0.01);
  }
  100% {
    color: #444;
  }
}
@-o-keyframes animationFadein {
  0% {
    color: rgba(68,68,68,0.01);
  }
  100% {
    color: #444;
  }
}
@keyframes animationFadein {
  0% {
    color: rgba(68,68,68,0.01);
  }
  100% {
    color: #444;
  }
}
main[class*="demo"]::after {
  visibility: hidden;
  display: block;
  font-size: 0;
  content: " ";
  clear: both;
  height: 0;
}
[class*="demo"] .product::after {
  visibility: hidden;
  display: block;
  font-size: 0;
  content: " ";
  clear: both;
  height: 0;
}
[class*="demo"] .product__cost {
  display: inline-block;
  float: left;
}
[class*="demo"] .product__title {
  margin: 0.618em;
  border-bottom: 2px solid #d9d9d9;
}
[class*="demo"] .product__img {
  display: inline-block;
  height: 45px;
  width: 45px;
  padding: 2px;
  border: 1px solid #dedede;
}
[class*="demo"] .product p {
  margin: 0.618em;
}
main.demo2 {
  width: 600px;
  margin: 0 auto;
}
main.demo2::after {
  content: ' ';
  display: block;
  clear: both;
}
.demo2 .sidebar {
  display: block;
  float: left;
  width: 25%;
  height: 100%;
  background: #efefef;
}
.demo2 .content {
  display: block;
  width: 100%;
  height: 100%;
  outline: 2px solid #f00;
}
.demo2 .sidebar + .content {
  width: 75%;
  float: left;
}
.demo2 .sidebar ~ .product,
.demo2 .sidebar ~ .header {
  width: 75%;
  float: left;
}
.demo4 {
  font-family: arial, sans-serif;
  width: 40em;
  margin: 0 auto;
}
.demo4 .ge-header,
.demo4 .ge-footer {
  width: 100%;
  min-height: 80px;
}
.demo4 .ge-header {
  border-bottom: 2px solid #808080;
}
.demo4 .ge-header_hgroup {
  float: left;
}
.demo4 .nav .list {
  list-style-type: none;
  width: inherit;
}
.demo4 .nav .list_item {
  margin: 2.5%;
}
.demo4 .nav .list-horizontal .list_item {
  float: left;
  display: inline-block;
}
.demo4 .nav-aux {
  float: right;
  width: 45%;
}
.demo4 .nav-aux .list {
  float: right;
}
.demo4 .nav-primary {
  width: 100%;
  clear: both;
}
.demo4 .sidebar {
  float: left;
  width: 25%;
  height: 100%;
}
.demo4 .main > .sidebar {
  border-right: 1px solid #808080;
}
.demo4 .main::after,
.demo4 .main::before {
  content: '';
  display: table;
}
.demo4 .main::after {
  clear: both;
}
.demo4 .main: {
  zoom: 1;
}
.demo4 article {
  padding: 2.5%;
  margin: 2.5%;
}
.demo4 .content .sidebar {
  float: right;
  border-left: 1px solid #808080;
}
.demo4 .content .sidebar + * {
  float: left;
}
.demo4 .featured_product {
  float: left;
}
.demo4 .featured_product:nth-last-of-type(2):first-of-type,
.demo4 .featured_product:nth-last-of-type(2):first-of-type ~.product {
  width: 50%;
}
.demo4 .featured_product:nth-last-of-type(3):first-of-type,
.demo4 .featured_product:nth-last-of-type(3):first-of-type ~.product {
  width: 33%;
}
.demo4 .featured_product:nth-last-of-type(4):first-of-type,
.demo4 .featured_product:nth-last-of-type(4):first-of-type ~.product {
  width: 25%;
}
.demo5 {
  display: flex;
  flex-direction: row;
  flex-wrap: wrap;
  justify-content: space-around;
}
.demo5 .figure {
  position: relative;
  height: 200px;
  width: 200px;
}
.demo5 .figure__caption {
  color: inherit;
  position: absolute;
  top: 15%;
  font-size: 2em;
  padding: 0.5em;
}
.demo5 .imgDetect--bluer {
  color: #992700;
}
.demo5 .imgDetect--bluer .figure__caption {
  background: rgba(41,55,127,0.3);
}
.demo5 .imgDetect--redder {
  color: #5769cc;
}
.demo5 .imgDetect--redder .figure__caption {
  background: rgba(153,39,0,0.3);
}
.demo5 .imgDetect--lighter {
  text-shadow: 0px 1px 1px #333;
}

@-moz-keyframes animationFadein {
  0% {
    color: rgba(68,68,68,0.01);
  }
  100% {
    color: #444;
  }
}
@-webkit-keyframes animationFadein {
  0% {
    color: rgba(68,68,68,0.01);
  }
  100% {
    color: #444;
  }
}
@-o-keyframes animationFadein {
  0% {
    color: rgba(68,68,68,0.01);
  }
  100% {
    color: #444;
  }
}
@keyframes animationFadein {
  0% {
    color: rgba(68,68,68,0.01);
  }
  100% {
    color: #444;
  }
}
@media print {
  html {
    font-size: 18pt;
  }
  .slideNav {
    display: none;
  }
  .ge-header {
    width: 100%;
    height: 6pt;
  }
  .ge-header__title {
    font-size: 2em;
    margin: 0em 0 0 0em;
  }
  .ge-header__subtitle {
    font-size: 2.25em;
  }
  .ge-header__logo {
    width: 18em;
    height: 6em;
    position: static;
  }
  .ge-footer {
    display: none;
  }
  .slide__header {
    page-break-before: always;
    running-head: chapter;
  }
  .slide__content {
    page-break-after: always;
    page-break-inside: avoid;
    border: 2px solid #dae4ec;
    padding: 2cm;
    running-head: section;
  }
  .slide__footer {
    display: none;
  }
  .slide a[href^=http]:after {
    content: " <" attr(href) "> ";
  }
  @page {
    margin: 1cm;
    size: portrait;
  }
}
