@charset "UTF-8";
/* Reader styles */
.clearfix:after {
  content: ".";
  display: block;
  height: 0;
  clear: both;
  visibility: hidden;
}
html,
body {
  height: 100%;
}
* {
  -webkit-tap-highlight-color: rgba(0, 0, 0, 0);
  -webkit-tap-highlight-color: transparent;
}
#bookstrap-viewport-container {
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  overflow-x: hidden;
}
#bookstrap-viewport {
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  overflow: hidden;
  z-index: 2;
  /*
  Prevents flicker
  See: http://stackoverflow.com/questions/2946748/iphone-webkit-css-animations-cause-flicker
  */
  -webkit-backface-visibility: hidden;
  -webkit-perspective: 1000;
}
.column {
  width: 100%;
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  overflow-x: hidden;
  overflow-y: scroll;
  -webkit-overflow-scrolling: touch;
  display: block;
  z-index: 0;
}
.book-nav .book-active {
  font-weight: bold;
}
book-top-nav {
  background: white;
  height: 50px;
  width: 100%;
  display: -webkit-box;
  display: -moz-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  position: fixed;
  top: 0;
  left: 0;
  z-index: 100;
  border-bottom: 1px solid #F0F0F0;
  font-size: 1.5em;
  -webkit-transition: transform linear 0.3s;
}
book-top-nav > * {
  padding: 14px 15px;
}
book-top-nav > *:nth-child(2) {
  -webkit-box-flex: 1;
  -moz-box-flex: 1;
  -webkit-flex: 1;
  -ms-flex: 1;
  flex: 1;
}
book-top-nav > *:last-child(2) {
  widht: 30px;
}
.book-has-top-nav {
  margin-top: 51px;
}
path {
  fill: #ACACAC;
  opacity: 0.8;
}
@-webkit-keyframes loading {
  0% {
    background-position: 200% 100%;
  }
  100% {
    background-position: -100% 0;
  }
}
.loading {
  -webkit-animation: loading 5s linear infinite normal;
}
book-top-nav h2 {
  text-align: center;
  margin-top: 0;
  padding: 4px;
  color: #444;
}
.book-hamburger {
  background-image: linear-gradient(to left, rgba(255, 61, 0, 0.62) 50%, rgba(0, 0, 0, 0.71) 50%);
  height: 5px;
  width: 30px;
  display: block;
  background-size: 200% 100%;
  margin-bottom: 4px;
  border-radius: 3px;
}
.book-hamburger:last-child {
  margin-bottom: 0;
}
/* ************************
          Icon font
************************** */
@font-face {
  font-family: 'book-icons';
  src: url('../fonts/book-icons.eot');
  src: url('../fonts/book-icons.eot?#iefix') format('embedded-opentype'), url('../fonts/book-icons.woff') format('woff'), url('../fonts/book-icons.ttf') format('truetype'), url('../fonts/book-icons.svg#book-icons') format('svg');
  font-weight: normal;
  font-style: normal;
}
/* ************************
          Reset
************************** */
body {
  margin: 0;
  padding: 0;
  /* Use responsive pixels */
  font-size: 1px;
  /* For mobile */
  -webkit-text-size-adjust: 100%;
}
h1,
h2,
h3,
h4,
h5,
h6 {
  margin: 0;
  font-weight: normal;
  text-rendering: optimizelegibility;
  page-break-after: avoid;
  page-break-inside: avoid;
  -webkit-hyphens: none;
}
h1 {
  font-size: 30px;
  line-height: 36px;
}
h2 {
  font-size: 24px;
  line-height: 36px;
}
h3 {
  font-size: 18px;
  line-height: 27px;
}
sub,
sup {
  position: relative;
  font-size: 75%;
  line-height: 0;
  vertical-align: baseline;
}
sup {
  top: -0.5em;
}
sub {
  bottom: -0.25em;
}
ul,
ol {
  padding: 0;
  margin: 0 0 9px 25px;
}
img {
  max-width: 100%;
  vertical-align: middle;
  border: 0;
  -ms-interpolation-mode: bicubic;
  -moz-user-select: none;
  -webkit-user-select: none;
}
article,
section,
header,
hgroup,
aside,
footer,
figure,
figcaption,
.book-section,
.book-row,
.book-frame,
.book-card {
  border: 0;
  position: relative;
  /* Reset positioning */
  margin: 0;
  padding: 0;
  box-sizing: border-box;
  -moz-box-sizing: border-box;
}
.book-frame {
  max-width: 100%;
  margin: 10px 0;
  padding: 8px;
}
.book-frame:first-child {
  margin-top: 0;
}
nav {
  position: relative;
}
nav li,
.book-nav li {
  list-style: none;
  margin: 0;
  padding: 0;
  font-size: 21px;
}
blockquote {
  border: 0;
  line-height: inherit;
}
p,
li {
  margin: 0;
  padding: 0;
  min-width: 5px;
  min-height: 18px;
  /* for backwards compability - should remove this asap */
  font-size: 16px;
}
a {
  color: inherit;
  text-decoration: none;
}
p a {
  text-decoration: underline;
}
hr {
  border: none;
  border-color: black;
  border-top-width: 1px;
  border-top-style: solid;
}
input,
select,
button {
  font-size: inherit;
}
button {
  -webkit-appearance: none;
  -moz-appearance: none;
  appearance: none;
  box-shadow: none;
  border: none;
}
p.book-first {
  text-indent: 0;
}
.book-noindent {
  text-indent: 0 ! important;
}
.book-indent {
  text-indent: 18px ! important;
  /* kind of arbitrary */
}
.book-col h1 + p,
.book-col h2 + p,
.book-col h3 + p,
.book-col h4 + p,
.book-col figure + p,
.book-col p:first-child,
.book-frame p:first-child {
  text-indent: 0;
}
/* ************************
      Pages
************************** */
body {
  position: relative;
}
article {
  margin: 0 auto;
  max-width: 1024px;
  min-height: 100%;
  padding: 0;
  z-index: 0;
  background-color: white;
  box-sizing: border-box;
  -moz-box-sizing: border-box;
  position: relative;
}
/* ************************
      Text columns
************************** */
@media (min-width: 481px) {
  .book-text-columns-2 {
    -webkit-column-count: 2;
    -webkit-column-gap: 40px;
  }
  .book-text-columns-3 {
    -webkit-column-count: 3;
    -webkit-column-gap: 40px;
  }
}
/* ************************
          Generic rules
************************** */
.book-disable-transitions * {
  -webkit-transition: none !important;
  -moz-transition: none !important;
  -ms-transition: none !important;
  -o-transition: none !important;
}
/* ************************
          Generic rules
************************** */
.book-align-left {
  text-align: left;
}
.book-align-center {
  text-align: center;
}
.book-align-right {
  text-align: right;
}
.book-align-justify {
  text-align: justify;
}
.book-align-hanging {
  text-align: left;
  text-indent: -18px;
  padding-left: 18px;
}
.book-caps-all {
  text-transform: uppercase;
}
.book-caps-small {
  font-variant: small-caps;
}
/* Old dropcaps */
.book-dropcap:first-letter {
  float: left;
  font-size: 310%;
  line-height: 1.1;
  margin-right: .1em;
  margin-bottom: -0.25em;
}
.book-dropcap {
  text-indent: 0 ! important;
}
/* New dropcaps */
.book-cap {
  float: left;
  font-size: 300%;
  line-height: 1;
  margin-right: .1em;
  margin-bottom: -0.25em;
}
.book-white,
.book-white p,
.book-white a {
  color: white ! important;
}
blockquote {
  font-size: 200%;
  position: relative;
  margin: 25px 30px;
  padding: 10px 5px;
}
/* ************************
          Figures
************************** */
figure {
  display: inline-block;
  max-width: 100%;
  page-break-inside: avoid;
  margin: 20px 0;
}
figure:first-child {
  margin-top: 0;
}
figure img {
  max-width: 100%;
  /* this will be removed if user manually resizes */
  border-radius: inherit;
}
figure > a {
  display: block;
}
figure > figure,
figure > a > figure,
figure > .book-button {
  position: absolute;
  margin: 0;
}
figcaption {
  position: relative;
}
figure.book-revealcaption figcaption {
  opacity: 1;
  transition: opacity 1s;
  -moz-transition: opacity 1s;
  -webkit-transition: opacity 1s;
}
figure.book-revealcaption figcaption.book-hide-caption {
  opacity: 0;
}
.book-image-crop img {
  max-width: none;
}
.book-fullbleed {
  display: block;
  max-width: none;
  margin: 0;
}
section .book-fullbleed {
  margin-left: -30px;
  /* ie. match the section margins */
  margin-right: -30px;
}
.book-row .book-fullbleed {
  margin-left: -30px;
  /* ie. match the page margins */
  margin-right: -30px;
}
.book-row .book-fullbleed:first-child {
  margin-top: -30px;
}
.book-float-left,
figure.book-align-left,
.book-frame.book-align-left {
  float: left;
  margin-top: 0;
  margin-right: 20px;
  text-align: inherit;
}
.book-float-right,
figure.book-align-right,
.book-frame.book-align-right {
  float: right;
  margin-top: 0;
  margin-left: 20px;
  text-align: inherit;
}
.book-float-center,
.book-frame.book-align-center {
  margin-left: auto;
  margin-right: auto;
  float: none;
  width: 100%;
  text-align: inherit;
}
figure.book-align-center {
  float: none;
  text-align: inherit;
  width: 100%;
}
figure.book-align-center img {
  display: block;
  margin-left: auto;
  margin-right: auto;
}
figure.book-nowrap,
.book-frame.book-nowrap {
  clear: both;
  display: block;
}
figure.book-nowrap {
  width: 100%;
}
figure.book-nowrap.book-align-right img {
  float: right;
}
figure.book-nowrap.book-align-left img {
  float: left;
}
.book-frame.book-nowrap.book-align-left {
  margin-right: 100%;
}
.book-frame.book-nowrap.book-align-right {
  margin-left: 100%;
}
.book-frame.book-nowrap.book-align-center {
  clear: both;
}
/* Overlaid captions only apply on tablets */
@media (min-width: 481px) {
  .book-caption-inside figcaption {
    position: absolute;
    margin: 0;
    top: 10px;
    left: 10px;
  }
}
@media (min-width: 481px) and (max-width: 768px) {
  .book-fixed-layout > *,
  .book-caption-inside figcaption > * {
    zoom: 0.75;
  }
}
@media (max-width: 480px) {
  .book-caption-inside figcaption {
    width: auto ! important;
    top: 0 ! important;
    left: 0 ! important;
    margin: 4px 0;
  }
  .book-caption-inside .book-white {
    color: inherit ! important;
  }
}
.book-caption-none figcaption,
.book-caption-none .book-frame {
  display: none;
}
.book-caption-outside figcaption,
.book-caption-outside .book-frame {
  display: block;
  clear: left;
  margin-top: 10px;
}
figure .book-frame figcaption {
  width: 100%;
  position: relative;
  margin: 0;
  top: 0;
  left: 0;
}
.book-background-image {
  position: absolute;
  top: 0;
  left: 0;
  z-index: -1;
}
/*
An absolutely positioned BG image does not inherit the padding from the .book-col, so
only add a margin to compensate for the book-page padding.
*/
.book-fullbleed.book-background-image:first-child {
  margin-top: -15px;
  margin-left: -15px;
  margin-right: -15px;
}
figure.book-aspect-screen,
figure.book-fit-to-screen {
  margin-left: 0 !important;
  margin-right: 0 !important;
  text-align: center;
  width: 100%;
}
figure.book-aspect-screen img,
figure.book-fit-to-screen img {
  max-height: 100%;
}
.book-frame figure,
.book-frame .book-figure {
  margin: 0;
}
.book-hotspot {
  display: block;
  width: 40px;
  height: 40px;
  position: absolute;
  top: 20%;
  left: 20%;
  border-radius: 50%;
}
/* ******************************
  Video
********************************* */
.book-video {
  position: relative;
  padding-bottom: 56.25%;
  /* 16:9 */
}
.book-video iframe,
.book-video object,
.book-video embed,
video {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
}
/* ******************************
   Cards
********************************* */
.book-toc,
.book-toc ol {
  margin: 0;
  padding: 0;
}
.book-toc li {
  padding: 10px 0;
}
.book-card figure {
  display: inline-block;
  float: left;
  width: 32%;
  height: 100%;
  margin: 0 20px 0 0;
  z-index: 1;
}
.book-card h2 {
  clear: none;
}
.book-card:after {
  content: "";
  display: table;
  clear: both;
}
.book-hide-thumbnails .book-thumbnail {
  display: none;
}
.book-hide-descriptions p {
  display: none;
}
/* ******************************
  Fluid grids
********************************* */
section,
.book-grid {
  padding: 0 15px;
  border-width: 0;
}
section,
header,
footer,
.book-grid {
  width: 100%;
  display: table;
  table-layout: fixed;
}
header,
footer {
  max-width: 100%;
  padding: 15px;
}
section:first-child,
.book-grid:first-child {
  padding-top: 15px;
}
section:last-child,
.book-grid:last-child {
  padding-bottom: 15px;
}
.book-col {
  padding: 10px 15px;
  box-sizing: border-box;
  display: table-cell;
  table-layout: fixed;
  vertical-align: top;
}
.book-span12 {
  width: 100%;
}
.book-span11 {
  width: 91.6665%;
}
.book-span10 {
  width: 83.33332%;
}
.book-span9 {
  width: 75%;
}
.book-span8 {
  width: 66.66667%;
}
.book-span7 {
  width: 58.33332%;
}
.book-span6 {
  width: 50%;
}
.book-span5 {
  width: 41.66667%;
}
.book-span4 {
  width: 33.33332%;
}
.book-span3 {
  width: 25%;
}
.book-span2 {
  width: 16.66667%;
}
.book-span1 {
  width: 8.33332%;
}
.book-scroll-vertical {
  overflow-y: auto;
  -webkit-overflow-scrolling: touch;
}
.book-keylines .book-col {
  border-right: 1px solid rgba(120, 120, 120, 0.7);
}
.book-keylines .book-col:last-child {
  border-right: none;
}
/* Folding */
@media (width: 768px) {
  section.book-folded,
  header.book-folded,
  footer.book-folded {
    display: -webkit-flex;
    display: flex;
    -webkit-flex-flow: row wrap;
    flex-flow: row wrap;
  }
  .book-span1.book-fold2 {
    -webkit-flex: 1 0 50%;
    flex: 1 0 50%;
  }
  .book-span2.book-fold2 {
    -webkit-flex: 1 0 100%;
    flex: 1 0 100%;
  }
  .book-span1.book-fold3 {
    -webkit-flex: 1 0 33.33332%;
    flex: 1 0 33.33332%;
  }
  .book-span2.book-fold3 {
    -webkit-flex: 1 0 66.66667%;
    flex: 1 0 66.66667%;
  }
  .book-span3.book-fold3 {
    -webkit-flex: 1 0 100%;
    flex: 1 0 100%;
  }
  .book-span1.book-fold4 {
    -webkit-flex: 1 0 25%;
    flex: 1 0 25%;
  }
  .book-span2.book-fold4 {
    -webkit-flex: 1 0 50%;
    flex: 1 0 50%;
  }
  .book-span3.book-fold4 {
    -webkit-flex: 1 0 75%;
    flex: 1 0 75%;
  }
  .book-span4.book-fold4 {
    -webkit-flex: 1 0 100%;
    flex: 1 0 100%;
  }
  .book-span1.book-fold5 {
    -webkit-flex: 1 0 20%;
    flex: 1 0 20%;
  }
  .book-span2.book-fold5 {
    -webkit-flex: 1 0 40%;
    flex: 1 0 40%;
  }
  .book-span3.book-fold5 {
    -webkit-flex: 1 0 60%;
    flex: 1 0 60%;
  }
  .book-span4.book-fold5 {
    -webkit-flex: 1 0 80%;
    flex: 1 0 80%;
  }
  .book-span5.book-fold5 {
    -webkit-flex: 1 0 100%;
    flex: 1 0 100%;
  }
  .book-span1.book-fold6 {
    -webkit-flex: 1 0 16.66667%;
    flex: 1 0 16.66667%;
  }
  .book-span2.book-fold6 {
    -webkit-flex: 1 0 33.33332%;
    flex: 1 0 33.33332%;
  }
  .book-span3.book-fold6 {
    -webkit-flex: 1 0 50%;
    flex: 1 0 50%;
  }
  .book-span4.book-fold6 {
    -webkit-flex: 1 0 66.66667%;
    flex: 1 0 66.66667%;
  }
  .book-span5.book-fold6 {
    -webkit-flex: 1 0 83.33332%;
    flex: 1 0 83.33332%;
  }
  .book-span6.book-fold6 {
    -webkit-flex: 1 0 100%;
    flex: 1 0 100%;
  }
  .book-span1.book-fold7 {
    -webkit-flex: 1 0 14.28571%;
    flex: 1 0 14.28571%;
  }
  .book-span2.book-fold7 {
    -webkit-flex: 1 0 28.57143%;
    flex: 1 0 28.57143%;
  }
  .book-span3.book-fold7 {
    -webkit-flex: 1 0 42.85714%;
    flex: 1 0 42.85714%;
  }
  .book-span4.book-fold7 {
    -webkit-flex: 1 0 57.14286%;
    flex: 1 0 57.14286%;
  }
  .book-span5.book-fold7 {
    -webkit-flex: 1 0 71.42857%;
    flex: 1 0 71.42857%;
  }
  .book-span6.book-fold7 {
    -webkit-flex: 1 0 85.71428%;
    flex: 1 0 85.71428%;
  }
  .book-span7.book-fold7 {
    -webkit-flex: 1 0 100%;
    flex: 1 0 100%;
  }
  .book-span1.book-fold8 {
    -webkit-flex: 1 0 12.5%;
    flex: 1 0 12.5%;
  }
  .book-span2.book-fold8 {
    -webkit-flex: 1 0 25%;
    flex: 1 0 25%;
  }
  .book-span3.book-fold8 {
    -webkit-flex: 1 0 37.5%;
    flex: 1 0 37.5%;
  }
  .book-span4.book-fold8 {
    -webkit-flex: 1 0 50%;
    flex: 1 0 50%;
  }
  .book-span5.book-fold8 {
    -webkit-flex: 1 0 62.5%;
    flex: 1 0 62.5%;
  }
  .book-span6.book-fold8 {
    -webkit-flex: 1 0 75%;
    flex: 1 0 75%;
  }
  .book-span7.book-fold8 {
    -webkit-flex: 1 0 87.5%;
    flex: 1 0 87.5%;
  }
  .book-span8.book-fold8 {
    -webkit-flex: 1 0 100%;
    flex: 1 0 100%;
  }
  .book-span1.book-fold9 {
    -webkit-flex: 1 0 11.11111%;
    flex: 1 0 11.11111%;
  }
  .book-span2.book-fold9 {
    -webkit-flex: 1 0 22.22222%;
    flex: 1 0 22.22222%;
  }
  .book-span3.book-fold9 {
    -webkit-flex: 1 0 33.33332%;
    flex: 1 0 33.33332%;
  }
  .book-span4.book-fold9 {
    -webkit-flex: 1 0 44.44443%;
    flex: 1 0 44.44443%;
  }
  .book-span5.book-fold9 {
    -webkit-flex: 1 0 55.55554%;
    flex: 1 0 55.55554%;
  }
  .book-span6.book-fold9 {
    -webkit-flex: 1 0 66.66665%;
    flex: 1 0 66.66665%;
  }
  .book-span7.book-fold9 {
    -webkit-flex: 1 0 77.77776%;
    flex: 1 0 77.77776%;
  }
  .book-span8.book-fold9 {
    -webkit-flex: 1 0 88.88887%;
    flex: 1 0 88.88887%;
  }
  .book-span9.book-fold9 {
    -webkit-flex: 1 0 100%;
    flex: 1 0 100%;
  }
  .book-span1.book-fold10 {
    -webkit-flex: 1 0 10%;
    flex: 1 0 10%;
  }
  .book-span2.book-fold10 {
    -webkit-flex: 1 0 20%;
    flex: 1 0 20%;
  }
  .book-span3.book-fold10 {
    -webkit-flex: 1 0 30%;
    flex: 1 0 30%;
  }
  .book-span4.book-fold10 {
    -webkit-flex: 1 0 40%;
    flex: 1 0 40%;
  }
  .book-span5.book-fold10 {
    -webkit-flex: 1 0 50%;
    flex: 1 0 50%;
  }
  .book-span6.book-fold10 {
    -webkit-flex: 1 0 60%;
    flex: 1 0 60%;
  }
  .book-span7.book-fold10 {
    -webkit-flex: 1 0 70%;
    flex: 1 0 70%;
  }
  .book-span8.book-fold10 {
    -webkit-flex: 1 0 80%;
    flex: 1 0 80%;
  }
  .book-span9.book-fold10 {
    -webkit-flex: 1 0 90%;
    flex: 1 0 90%;
  }
  .book-span10.book-fold10 {
    -webkit-flex: 1 0 100%;
    flex: 1 0 100%;
  }
  .book-span1.book-fold11 {
    -webkit-flex: 1 0 9.0909%;
    flex: 1 0 9.0909%;
  }
  .book-span2.book-fold11 {
    -webkit-flex: 1 0 18.18181%;
    flex: 1 0 18.18181%;
  }
  .book-span3.book-fold11 {
    -webkit-flex: 1 0 27.27272%;
    flex: 1 0 27.27272%;
  }
  .book-span4.book-fold11 {
    -webkit-flex: 1 0 36.36363%;
    flex: 1 0 36.36363%;
  }
  .book-span5.book-fold11 {
    -webkit-flex: 1 0 45.45454%;
    flex: 1 0 45.45454%;
  }
  .book-span6.book-fold11 {
    -webkit-flex: 1 0 54.54544%;
    flex: 1 0 54.54544%;
  }
  .book-span7.book-fold11 {
    -webkit-flex: 1 0 63.63635%;
    flex: 1 0 63.63635%;
  }
  .book-span8.book-fold11 {
    -webkit-flex: 1 0 72.72726%;
    flex: 1 0 72.72726%;
  }
  .book-span9.book-fold11 {
    -webkit-flex: 1 0 81.81817%;
    flex: 1 0 81.81817%;
  }
  .book-span10.book-fold11 {
    -webkit-flex: 1 0 90.90908%;
    flex: 1 0 90.90908%;
  }
  .book-span11.book-fold11 {
    -webkit-flex: 1 0 100%;
    flex: 1 0 100%;
  }
  .book-collapse {
    display: none;
    width: 0;
  }
}
/* Collapse to single column on smaller screens */
@media (max-width: 480px) {
  section,
  header,
  footer {
    display: -webkit-flex;
    display: flex;
    -webkit-flex-flow: column;
    flex-flow: column;
    width: 100%;
    table-layout: auto;
  }
  .book-col {
    width: 100%;
    display: block;
    -webkit-flex: 1;
    flex: 1;
    table-layout: auto;
    min-height: 0;
    /* Omit grid column gutters */
    padding: 0 0 8px 0;
  }
  /* Collapse empty paragraphs */
  .book-empty,
  p:empty,
  p > br:first-child:last-child {
    display: none;
  }
  p {
    min-height: 0;
  }
  .book-keylines .book-col {
    border-right: none ! important;
  }
  /* set default ordering */
  .book-col:nth-child(1) {
    -webkit-order: 1;
    order: 1;
  }
  .book-col:nth-child(2) {
    -webkit-order: 2;
    order: 2;
  }
  .book-col:nth-child(3) {
    -webkit-order: 3;
    order: 3;
  }
  .book-col:nth-child(4) {
    -webkit-order: 4;
    order: 4;
  }
  /* overrrides for ordering */
  .book-order-1 {
    -webkit-order: 1 ! important;
    order: 1 ! important;
  }
  .book-order-2 {
    -webkit-order: 2 ! important;
    order: 2 ! important;
  }
  .book-order-3 {
    -webkit-order: 3 ! important;
    order: 3 ! important;
  }
  .book-order-4 {
    -webkit-order: 4 ! important;
    order: 4 ! important;
  }
  .book-collapse,
  .book-hide-on-phone {
    display: none;
    width: 0;
  }
}
.book-aspect-screen {
  overflow: hidden;
  height: 100vh;
}
.book-aspect-screen > section,
.book-aspect-screen > header,
figure.book-aspect-screen > img {
  height: 100vh;
  /* 100% will not work on mobile safari if display is table */
  padding: 0;
}
section.book-aspect-screen .book-col {
  display: block;
  float: left;
}
/* Tablet only rules */
/* Fit to screen */
@media (min-width: 481px) {
  .book-fit-to-screen {
    overflow: hidden;
    height: 100vh;
  }
  .book-fit-to-screen > section,
  .book-fit-to-screen > header,
  figure.book-fit-to-screen > img {
    height: 100vh;
    /* 100% will not work on mobile safari if display is table */
    padding: 0;
  }
  section.book-fit-to-screen .book-col {
    display: block;
    float: left;
  }
}
@media (min-width: 481px) and (orientation: portrait) {
  .book-landscape-only {
    display: none;
  }
}
@media (min-width: 481px) and (orientation: landscape) {
  .book-portrait-only {
    display: none;
  }
}
/* ***************************************
  Interactivity
****************************************** */
/* Overlays */
.book-popover {
  position: absolute;
  z-index: 9999;
  background: white;
  top: 20px;
  left: 20px;
  min-width: 50px;
  min-height: 40px;
  max-width: 100%;
  box-sizing: border-box;
  display: none;
  width: 259px;
  height: 333px;
  border: 1px solid rgba(170, 170, 170, 0.5);
}
.book-popover.book-frame {
  display: none;
}
.brook-popover.book-visible {
  visibility: visible;
}
.book-popover .popover-close,
.book-popover .book-popover-close {
  font-family: Helvetica, sans-serif;
  font-size: 16px;
  text-decoration: none;
  color: rgba(0, 0, 0, 0.75);
  text-align: center;
  display: block;
  position: absolute;
  width: 22px;
  height: 22px;
  right: 0;
  top: 0;
  cursor: pointer;
  padding: 5px 0;
  box-sizing: border-box;
  vertical-align: top;
  line-height: 1;
  border: none;
}
.book-popover-content {
  padding: 10px;
  height: 100%;
  overflow: auto;
  box-sizing: border-box;
  -webkit-overflow-scrolling: touch;
}
/* ************************
    Default table styling
************************** */
table {
  border-collapse: collapse;
  padding: 0;
  width: 100%;
  margin: 10px 0;
}
th,
td {
  border: 1px solid rgba(0, 0, 0, 0.5);
  padding: 2px 3px;
  vertical-align: top;
  text-align: left;
}
/* default zebra striping - will typically be overridden */
.book-zebra-stripes tr:nth-child(2n) {
  background-color: #eee;
}
/* Book popovers */
.book-overlay-mask {
  position: absolute;
  top: 0;
  left: 0;
  bottom: 0;
  right: 0;
  z-index: 99;
}
/* ************************
    Placement
************************** */
.book-inline {
  display: inline-block;
}
.book-floating {
  position: absolute;
}
.book-fixed {
  position: fixed;
}
header.book-fixed,
footer.book-fixed {
  z-index: 9;
  width: 100%;
}
header.book-fixed {
  top: 0;
}
footer.book-fixed {
  bottom: 0;
}
/* ************************
    Vertical alignment
************************** */
.book-valign-top,
.book-valign-top .book-col {
  vertical-align: top;
}
.book-valign-middle,
.book-valign-middle .book-col {
  vertical-align: middle;
}
.book-valign-bottom,
.book-valign-bottom .book-col {
  vertical-align: bottom;
}
/* ************************
    Text effects
************************** */
.book-cutout {
  color: transparent;
  background-size: cover;
  -webkit-background-clip: text;
  -moz-background-clip: text;
  background-clip: text;
}
.book-blur {
  -webkit-filter: blur(3px);
  -moz-filter: blur(3px);
  filter: blur(3px);
}
/* ***************************
    Image Zoom
***************************** */
.book-image-zoom-mask img {
  position: absolute;
  z-index: 100;
}
#bookstrap-viewport img.book-image-zoomed {
  opacity: .2;
  -webkit-transition: opacity 1s ease-in-out;
  -moz-transition: opacity 1s ease-in-out;
  transition: opacity 1s ease-in-out;
}
/* ***************************
    Buttons
***************************** */
.book-button {
  width: 32px;
  height: 32px;
  font-size: 32px;
  display: inline-block;
  position: relative;
  text-align: center;
  color: black;
  font-family: "book-icons";
  -webkit-font-smoothing: antialiased;
  text-indent: -999px;
  overflow: hidden;
  /* override any styles possibly set on <a> tags in general */
  text-transform: none;
  text-decoration: none;
  text-shadow: none;
  box-shadow: none;
  border: none;
  line-height: 1;
}
figure .book-button {
  position: absolute;
  left: 5%;
  top: 5%;
}
.book-round {
  border-radius: 50%;
}
.book-square {
  border-radius: 0;
}
.book-roundrect {
  border-radius: 6px;
}
/* Button icons */
.book-button:after {
  font-family: "book-icons";
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  text-indent: 0;
}
[class*="book-icon-"] {
  font-family: 'book-icons';
  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;
}
.book-button-plus:after,
.book-icon-plus:after {
  content: "+";
}
.book-button-times:after,
.book-icon-times:after {
  content: "x";
}
.book-button-minus:after,
.book-icon-minus:after {
  content: "-";
}
.book-button-doubleleft:after,
.book-icon-doubleleft:after {
  content: "\f100";
}
.book-button-doubleright:after,
.book-icon-doubleright:after {
  content: "\f101";
}
.book-button-doubleup:after,
.book-icon-doubleup:after {
  content: "\f102";
}
.book-button-doubledown:after,
.book-icon-doubledown:after {
  content: "\f103";
}
.book-button-action:after,
.book-icon-action:after {
  content: "\e015";
}
.book-button-left:after,
.book-icon-left:after {
  content: "\e000";
}
.book-button-down:after,
.book-icon-down:after {
  content: "\e001";
}
.book-button-up:after,
.book-icon-up:after {
  content: "\e002";
}
.book-button-right:after,
.book-icon-right:after {
  content: "\e003";
}
.book-button-leftarrowhead:after,
.book-icon-leftarrowhead:after {
  content: "\e004";
}
.book-button-downarrowhead:after,
.book-icon-downarrowhead:after {
  content: "\e005";
}
.book-button-uparrowhead:after,
.book-icon-uparrowhead:after {
  content: "\e006";
}
.book-button-rightarrowhead:after,
.book-icon-rightarrowhead:after {
  content: "\e007";
}
.book-button-bigleftarrow:after,
.book-icon-bigleftarrow:after {
  content: "\e008";
}
.book-button-bigdownarrow:after,
.book-icon-bigdownarrow:after {
  content: "\e009";
}
.book-button-biguparrow:after,
.book-icon-biguparrow:after {
  content: "\e00a";
}
.book-button-bigrightarrow:after,
.book-icon-bigrightarrow:after {
  content: "\e00b";
}
.book-button-jumpright:after,
.book-icon-jumpright:after {
  content: "\e013";
}
.book-button-jumpleft:after,
.book-icon-jumpleft:after {
  content: "\e014";
}
.book-button-heart:after,
.book-icon-heart:after {
  content: "\e016";
}
.book-button-star:after,
.book-icon-star:after {
  content: "\e017";
}
.book-button-info:after,
.book-icon-info:after {
  content: "\e018";
}
.book-button-question:after,
.book-icon-question:after {
  content: "\e019";
}
.book-button-leftarrow:after,
.book-icon-leftarrow:after {
  content: "\e01a";
}
.book-button-downarrow:after,
.book-icon-downarrow:after {
  content: "\e01b";
}
.book-button-uparrow:after,
.book-icon-uparrow:after {
  content: "\e01c";
}
.book-button-rightarrow:after,
.book-icon-rightarrow:after {
  content: "\e01d";
}
.book-button-bubble:after,
.book-icon-bubble:after {
  content: "\e01e";
}
.book-button-search:after,
.book-icon-search:after {
  content: "\e01f";
}
.book-button-zoom:after,
.book-icon-zoom:after {
  content: "\f00e";
}
.book-button-fastforward:after,
.book-icon-fastforward:after {
  content: "\e00c";
}
.book-button-fastrewind:after,
.book-icon-fastrewind:after {
  content: "\e00d";
}
.book-button-home:after,
.book-icon-home:after {
  content: "!";
}
.book-button-house:after,
.book-icon-house:after {
  content: "&";
}
.book-button-lifebelt:after,
.book-icon-lifebelt:after {
  content: "%";
}
.book-button-trolley1:after,
.book-icon-trolley1:after {
  content: '"';
}
.book-button-trolley2:after,
.book-icon-trolley2:after {
  content: "$";
}
.book-button-grid:after,
.book-icon-grid:after {
  content: "\e00f";
}
.book-button-hamburger:after,
.book-icon-hamburger:after {
  content: "\e010";
}
.book-button-dots:after,
.book-icon-dots:after {
  content: "'";
}
.book-button-mail:after,
.book-icon-mail:after {
  content: "(";
}
.book-button-link:after,
.book-icon-link:after {
  content: ")";
}
.book-button-cog:after,
.book-icon-cog:after {
  content: "#";
}
/* ************************
    Layers
************************** */
.book-layers {
  overflow: hidden;
}
/* ************************
    Flex collections
************************** */
.book-collection {
  clear: both;
  position: relative;
}
@media (min-width: 481px) {
  .book-collection {
    display: -webkit-flex;
    display: flex;
    -webkit-flex-wrap: wrap;
    flex-wrap: wrap;
    -webkit-align-items: center;
    align-items: center;
    -webkit-justify-content: space-around;
    justify-content: space-around;
  }
  .book-collection.book-fit-edges {
    -webkit-justify-content: space-between;
    justify-content: space-between;
  }
  .book-collection > .book-frame {
    display: inline-block;
  }
  .book-collection > figure {
    margin: 0;
  }
  .book-collection.book-valign-top {
    -webkit-align-items: flex-start;
    align-items: flex-start;
  }
  .book-collection.book-valign-middle {
    -webkit-align-items: center;
    align-items: center;
  }
  .book-collection.book-valign-bottom {
    -webkit-align-items: flex-end;
    align-items: flex-end;
  }
}
/* Landscape tablet */
@media (min-width: 800px) {
  .book-collection > *,
  .book-collection.book-size-4 > * {
    -webkit-flex-basis: 33%;
    flex-basis: 33%;
  }
  .book-collection.book-size-5 > * {
    -webkit-flex-basis: 50%;
    flex-basis: 50%;
  }
  .book-collection.book-size-3 > * {
    -webit-flex-basis: 25%;
    flex-basis: 25%;
  }
  .book-collection.book-size-2 > * {
    -webkit-flex-basis: 20%;
    flex-basis: 20%;
  }
  .book-collection.book-size-1 > * {
    -webkit-flex-basis: 16.66%;
    flex-basis: 16.66%;
  }
}
/* Portrait tablet - one column less */
@media (min-width: 481px) and (max-width: 799px) {
  .book-collection > *,
  .book-collection.book-size-5 {
    -webkit-flex-basis: 50%;
    flex-basis: 50%;
  }
  .book-collection.book-size-3 > * {
    -webkit-flex-basis: 33%;
    flex-basis: 33%;
  }
  .book-collection.book-size-2 > * {
    -webkit-flex-basis: 25%;
    flex-basis: 25%;
  }
  .book-collection.book-size-1 > * {
    -webkit-flex-basis: 20%;
    flex-basis: 20%;
  }
}
/* ************************
    HTML containers
************************** */
.book-html {
  position: relative;
  box-sizing: border-box;
}
.book-html iframe {
  width: 100%;
  height: 100%;
  border: none;
  background: transparent;
}
.book-aspect-screen .book-html {
  height: 100vh;
  width: 100%;
}
/* ************************
    Circles
************************** */
.book-circle {
  border-radius: 50%;
  position: relative;
}
.book-circle:before {
  content: "";
  display: block;
  padding-top: 100%;
}
.book-circle .book-circle-inner {
  display: -webkit-flex;
  display: flex;
  -webkit-flex-flow: column;
  flex-flow: column;
  -webkit-justify-content: center;
  justify-content: center;
  text-align: center;
  left: 15%;
  overflow-y: auto;
  position: absolute;
  top: 15%;
  width: 70%;
  height: 70%;
}
figure.book-circle {
  width: 100%;
  overflow: hidden;
}
figure.book-circle .book-circle-inner {
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
}
figure.book-circle .book-circle-inner img {
  min-width: 100%;
  min-height: 100%;
}
/* ************************
   Two column frames
************************** */
.book-cols {
  display: table;
  table-layout: fixed;
  width: 100%;
  box-sizing: border-box;
  border-collapse: collapse;
}
.book-cols .book-frame-col {
  display: table-cell;
  vertical-align: top;
  height: 100%;
  width: 50%;
  /* initial value */
  padding-left: 5%;
  float: none;
  box-sizing: border-box;
}
.book-cols .book-frame-col:first-child {
  padding-left: 0;
}
.book-cols-left .book-frame-col {
  width: 67%;
}
.book-cols-left .book-frame-col:first-child {
  width: 33%;
}
.book-cols-right .book-frame-col {
  width: 33%;
}
.book-cols-right .book-frame-col:first-child {
  width: 67%;
}
.book-frame-col figure.book-placeholder {
  min-width: 70px;
}
/* Order is significant here */
.book-valign-top .book-frame-col {
  vertical-align: top;
}
.book-valign-middle .book-frame-col {
  vertical-align: middle;
}
.book-valign-bottom .book-frame-col {
  vertical-align: bottom;
}
.book-frame-col.book-valign-top {
  vertical-align: top;
}
.book-frame-col.book-valign-middle {
  vertical-align: middle;
}
.book-frame-col.book-valign-bottom {
  vertical-align: bottom;
}
.book-frame.book-align-center {
  text-align: center;
}
/* ************************
   Aspect ratio
************************** */
.book-aspect-1x1,
.book-aspect-1x2,
.book-aspect-2x1,
.book-aspect-3x4,
.book-aspect-4x3,
.book-aspect-16x9 {
  position: relative;
  width: 100%;
}
.book-aspect-1x1:before,
.book-aspect-1x2:before,
.book-aspect-2x1:before,
.book-aspect-3x4:before,
.book-aspect-4x3:before,
.book-aspect-16x9:before {
  content: "";
  display: block;
}
.book-aspect-1x1:before {
  padding-top: 100%;
}
.book-aspect-1x2:before {
  padding-top: 200%;
}
.book-aspect-2x1:before {
  padding-top: 50%;
}
.book-aspect-3x4:before {
  padding-top: 133.332%;
}
.book-aspect-4x3:before {
  padding-top: 75%;
}
.book-aspect-16x9:before {
  padding-top: 56.25%;
}
.book-aspect-1x1 > img:first-child,
.book-aspect-1x2 > img:first-child,
.book-aspect-2x1 > img:first-child,
.book-aspect-3x4 > img:first-child,
.book-aspect-4x3 > img:first-child,
.book-aspect-16x9 > img:first-child {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
}
section.book-aspect-1x1:before,
section.book-aspect-1x2:before,
section.book-aspect-2x1:before,
section.book-aspect-3x4:before,
section.book-aspect-4x3:before,
section.book-aspect-16x9:before {
  content: none;
}
/* ************************
   Convenience classes
************************** */
.book-wob {
  background: #000000;
  color: #ffffff;
}
.book-wob > p {
  color: white;
}
.book-top-left,
figure .book-top-left {
  top: 5%;
  left: 5%;
  right: auto;
}
.book-top-right,
figure .book-top-right {
  top: 5%;
  right: 5%;
  left: auto;
}
figure .book-top-center {
  top: 5%;
  left: 5%;
  margin-left: -50%;
  max-width: 80%;
}
.book-border-top {
  border-top: 1px solid rgba(0, 0, 0, 0.6);
  padding-top: 10px;
}
.book-border-bottom {
  border-bottom: 1px solid rgba(0, 0, 0, 0.6);
  padding-bottom: 10px;
}
nav.book-border-top {
  border-top: none;
  padding-top: 0;
}
nav.book-border-top li {
  border-top: 1px solid rgba(0, 0, 0, 0.6);
  padding-top: 10px;
}
.book-slide-from-right {
  -webkit-animation-duration: 2s;
  -webkit-animation-fill-mode: both;
  -webkit-animation-name: book-slideright;
}
.book-slide-from-left {
  -webkit-animation-duration: 2s;
  -webkit-animation-fill-mode: both;
  -webkit-animation-name: book-slideleft;
}
.book-pad-0,
section.book-pad-0:first-child,
section.book-pad-0 .book-col {
  padding: 0;
}
.book-pad-10,
section.book-pad-10:first-child,
section.book-pad-10 .book-col {
  padding: 10px;
}
.book-padv-10 {
  padding: 10px 0;
}
.book-mgn-10 {
  margin: 10px;
}
.book-mgnv-10 {
  margin: 10px 0;
}
.book-mgnv-20 {
  margin: 20px 0;
}
.app-nav__home-btn {
  margin: 15px 20px 15px;
  font-size: 18px;
  display: block;
}
/*!
Animate.css - http://daneden.me/animate
Licensed under the MIT license

Copyright (c) 2013 Daniel Eden

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.
*/
.animated {
  -webkit-animation-duration: 1s;
  animation-duration: 1s;
  -webkit-animation-fill-mode: both;
  animation-fill-mode: both;
}
.animated.infinite {
  -webkit-animation-iteration-count: infinite;
  animation-iteration-count: infinite;
}
.animated.hinge {
  -webkit-animation-duration: 2s;
  animation-duration: 2s;
}
@-webkit-keyframes bounce {
  0%,
  100%,
  20%,
  50%,
  80% {
    -webkit-transform: translateY(0);
    transform: translateY(0);
  }
  40% {
    -webkit-transform: translateY(-30px);
    transform: translateY(-30px);
  }
  60% {
    -webkit-transform: translateY(-15px);
    transform: translateY(-15px);
  }
}
@keyframes bounce {
  0%,
  100%,
  20%,
  50%,
  80% {
    -webkit-transform: translateY(0);
    -ms-transform: translateY(0);
    transform: translateY(0);
  }
  40% {
    -webkit-transform: translateY(-30px);
    -ms-transform: translateY(-30px);
    transform: translateY(-30px);
  }
  60% {
    -webkit-transform: translateY(-15px);
    -ms-transform: translateY(-15px);
    transform: translateY(-15px);
  }
}
.bounce {
  -webkit-animation-name: bounce;
  animation-name: bounce;
}
@-webkit-keyframes flash {
  0%,
  100%,
  50% {
    opacity: 1;
  }
  25%,
  75% {
    opacity: 0;
  }
}
@keyframes flash {
  0%,
  100%,
  50% {
    opacity: 1;
  }
  25%,
  75% {
    opacity: 0;
  }
}
.flash {
  -webkit-animation-name: flash;
  animation-name: flash;
}
@-webkit-keyframes pulse {
  0% {
    -webkit-transform: scale(1);
    transform: scale(1);
  }
  50% {
    -webkit-transform: scale(1.1);
    transform: scale(1.1);
  }
  100% {
    -webkit-transform: scale(1);
    transform: scale(1);
  }
}
@keyframes pulse {
  0% {
    -webkit-transform: scale(1);
    -ms-transform: scale(1);
    transform: scale(1);
  }
  50% {
    -webkit-transform: scale(1.1);
    -ms-transform: scale(1.1);
    transform: scale(1.1);
  }
  100% {
    -webkit-transform: scale(1);
    -ms-transform: scale(1);
    transform: scale(1);
  }
}
.pulse {
  -webkit-animation-name: pulse;
  animation-name: pulse;
}
@-webkit-keyframes rubberBand {
  0% {
    -webkit-transform: scale(1);
    transform: scale(1);
  }
  30% {
    -webkit-transform: scaleX(1.25) scaleY(0.75);
    transform: scaleX(1.25) scaleY(0.75);
  }
  40% {
    -webkit-transform: scaleX(0.75) scaleY(1.25);
    transform: scaleX(0.75) scaleY(1.25);
  }
  60% {
    -webkit-transform: scaleX(1.15) scaleY(0.85);
    transform: scaleX(1.15) scaleY(0.85);
  }
  100% {
    -webkit-transform: scale(1);
    transform: scale(1);
  }
}
@keyframes rubberBand {
  0% {
    -webkit-transform: scale(1);
    -ms-transform: scale(1);
    transform: scale(1);
  }
  30% {
    -webkit-transform: scaleX(1.25) scaleY(0.75);
    -ms-transform: scaleX(1.25) scaleY(0.75);
    transform: scaleX(1.25) scaleY(0.75);
  }
  40% {
    -webkit-transform: scaleX(0.75) scaleY(1.25);
    -ms-transform: scaleX(0.75) scaleY(1.25);
    transform: scaleX(0.75) scaleY(1.25);
  }
  60% {
    -webkit-transform: scaleX(1.15) scaleY(0.85);
    -ms-transform: scaleX(1.15) scaleY(0.85);
    transform: scaleX(1.15) scaleY(0.85);
  }
  100% {
    -webkit-transform: scale(1);
    -ms-transform: scale(1);
    transform: scale(1);
  }
}
.rubberBand {
  -webkit-animation-name: rubberBand;
  animation-name: rubberBand;
}
@-webkit-keyframes shake {
  0%,
  100% {
    -webkit-transform: translateX(0);
    transform: translateX(0);
  }
  10%,
  30%,
  50%,
  70%,
  90% {
    -webkit-transform: translateX(-10px);
    transform: translateX(-10px);
  }
  20%,
  40%,
  60%,
  80% {
    -webkit-transform: translateX(10px);
    transform: translateX(10px);
  }
}
@keyframes shake {
  0%,
  100% {
    -webkit-transform: translateX(0);
    -ms-transform: translateX(0);
    transform: translateX(0);
  }
  10%,
  30%,
  50%,
  70%,
  90% {
    -webkit-transform: translateX(-10px);
    -ms-transform: translateX(-10px);
    transform: translateX(-10px);
  }
  20%,
  40%,
  60%,
  80% {
    -webkit-transform: translateX(10px);
    -ms-transform: translateX(10px);
    transform: translateX(10px);
  }
}
.shake {
  -webkit-animation-name: shake;
  animation-name: shake;
}
@-webkit-keyframes swing {
  20% {
    -webkit-transform: rotate(15deg);
    transform: rotate(15deg);
  }
  40% {
    -webkit-transform: rotate(-10deg);
    transform: rotate(-10deg);
  }
  60% {
    -webkit-transform: rotate(5deg);
    transform: rotate(5deg);
  }
  80% {
    -webkit-transform: rotate(-5deg);
    transform: rotate(-5deg);
  }
  100% {
    -webkit-transform: rotate(0deg);
    transform: rotate(0deg);
  }
}
@keyframes swing {
  20% {
    -webkit-transform: rotate(15deg);
    -ms-transform: rotate(15deg);
    transform: rotate(15deg);
  }
  40% {
    -webkit-transform: rotate(-10deg);
    -ms-transform: rotate(-10deg);
    transform: rotate(-10deg);
  }
  60% {
    -webkit-transform: rotate(5deg);
    -ms-transform: rotate(5deg);
    transform: rotate(5deg);
  }
  80% {
    -webkit-transform: rotate(-5deg);
    -ms-transform: rotate(-5deg);
    transform: rotate(-5deg);
  }
  100% {
    -webkit-transform: rotate(0deg);
    -ms-transform: rotate(0deg);
    transform: rotate(0deg);
  }
}
.swing {
  -webkit-transform-origin: top center;
  -ms-transform-origin: top center;
  transform-origin: top center;
  -webkit-animation-name: swing;
  animation-name: swing;
}
@-webkit-keyframes tada {
  0% {
    -webkit-transform: scale(1);
    transform: scale(1);
  }
  10%,
  20% {
    -webkit-transform: scale(0.9) rotate(-3deg);
    transform: scale(0.9) rotate(-3deg);
  }
  30%,
  50%,
  70%,
  90% {
    -webkit-transform: scale(1.1) rotate(3deg);
    transform: scale(1.1) rotate(3deg);
  }
  40%,
  60%,
  80% {
    -webkit-transform: scale(1.1) rotate(-3deg);
    transform: scale(1.1) rotate(-3deg);
  }
  100% {
    -webkit-transform: scale(1) rotate(0);
    transform: scale(1) rotate(0);
  }
}
@keyframes tada {
  0% {
    -webkit-transform: scale(1);
    -ms-transform: scale(1);
    transform: scale(1);
  }
  10%,
  20% {
    -webkit-transform: scale(0.9) rotate(-3deg);
    -ms-transform: scale(0.9) rotate(-3deg);
    transform: scale(0.9) rotate(-3deg);
  }
  30%,
  50%,
  70%,
  90% {
    -webkit-transform: scale(1.1) rotate(3deg);
    -ms-transform: scale(1.1) rotate(3deg);
    transform: scale(1.1) rotate(3deg);
  }
  40%,
  60%,
  80% {
    -webkit-transform: scale(1.1) rotate(-3deg);
    -ms-transform: scale(1.1) rotate(-3deg);
    transform: scale(1.1) rotate(-3deg);
  }
  100% {
    -webkit-transform: scale(1) rotate(0);
    -ms-transform: scale(1) rotate(0);
    transform: scale(1) rotate(0);
  }
}
.tada {
  -webkit-animation-name: tada;
  animation-name: tada;
}
@-webkit-keyframes wobble {
  0% {
    -webkit-transform: translateX(0%);
    transform: translateX(0%);
  }
  15% {
    -webkit-transform: translateX(-25%) rotate(-5deg);
    transform: translateX(-25%) rotate(-5deg);
  }
  30% {
    -webkit-transform: translateX(20%) rotate(3deg);
    transform: translateX(20%) rotate(3deg);
  }
  45% {
    -webkit-transform: translateX(-15%) rotate(-3deg);
    transform: translateX(-15%) rotate(-3deg);
  }
  60% {
    -webkit-transform: translateX(10%) rotate(2deg);
    transform: translateX(10%) rotate(2deg);
  }
  75% {
    -webkit-transform: translateX(-5%) rotate(-1deg);
    transform: translateX(-5%) rotate(-1deg);
  }
  100% {
    -webkit-transform: translateX(0%);
    transform: translateX(0%);
  }
}
@keyframes wobble {
  0% {
    -webkit-transform: translateX(0%);
    -ms-transform: translateX(0%);
    transform: translateX(0%);
  }
  15% {
    -webkit-transform: translateX(-25%) rotate(-5deg);
    -ms-transform: translateX(-25%) rotate(-5deg);
    transform: translateX(-25%) rotate(-5deg);
  }
  30% {
    -webkit-transform: translateX(20%) rotate(3deg);
    -ms-transform: translateX(20%) rotate(3deg);
    transform: translateX(20%) rotate(3deg);
  }
  45% {
    -webkit-transform: translateX(-15%) rotate(-3deg);
    -ms-transform: translateX(-15%) rotate(-3deg);
    transform: translateX(-15%) rotate(-3deg);
  }
  60% {
    -webkit-transform: translateX(10%) rotate(2deg);
    -ms-transform: translateX(10%) rotate(2deg);
    transform: translateX(10%) rotate(2deg);
  }
  75% {
    -webkit-transform: translateX(-5%) rotate(-1deg);
    -ms-transform: translateX(-5%) rotate(-1deg);
    transform: translateX(-5%) rotate(-1deg);
  }
  100% {
    -webkit-transform: translateX(0%);
    -ms-transform: translateX(0%);
    transform: translateX(0%);
  }
}
.wobble {
  -webkit-animation-name: wobble;
  animation-name: wobble;
}
@-webkit-keyframes bounceIn {
  0% {
    opacity: 0;
    -webkit-transform: scale(0.3);
    transform: scale(0.3);
  }
  50% {
    opacity: 1;
    -webkit-transform: scale(1.05);
    transform: scale(1.05);
  }
  70% {
    -webkit-transform: scale(0.9);
    transform: scale(0.9);
  }
  100% {
    opacity: 1;
    -webkit-transform: scale(1);
    transform: scale(1);
  }
}
@keyframes bounceIn {
  0% {
    opacity: 0;
    -webkit-transform: scale(0.3);
    -ms-transform: scale(0.3);
    transform: scale(0.3);
  }
  50% {
    opacity: 1;
    -webkit-transform: scale(1.05);
    -ms-transform: scale(1.05);
    transform: scale(1.05);
  }
  70% {
    -webkit-transform: scale(0.9);
    -ms-transform: scale(0.9);
    transform: scale(0.9);
  }
  100% {
    opacity: 1;
    -webkit-transform: scale(1);
    -ms-transform: scale(1);
    transform: scale(1);
  }
}
.bounceIn {
  -webkit-animation-name: bounceIn;
  animation-name: bounceIn;
}
@-webkit-keyframes bounceInDown {
  0% {
    opacity: 0;
    -webkit-transform: translateY(-2000px);
    transform: translateY(-2000px);
  }
  60% {
    opacity: 1;
    -webkit-transform: translateY(30px);
    transform: translateY(30px);
  }
  80% {
    -webkit-transform: translateY(-10px);
    transform: translateY(-10px);
  }
  100% {
    -webkit-transform: translateY(0);
    transform: translateY(0);
  }
}
@keyframes bounceInDown {
  0% {
    opacity: 0;
    -webkit-transform: translateY(-2000px);
    -ms-transform: translateY(-2000px);
    transform: translateY(-2000px);
  }
  60% {
    opacity: 1;
    -webkit-transform: translateY(30px);
    -ms-transform: translateY(30px);
    transform: translateY(30px);
  }
  80% {
    -webkit-transform: translateY(-10px);
    -ms-transform: translateY(-10px);
    transform: translateY(-10px);
  }
  100% {
    -webkit-transform: translateY(0);
    -ms-transform: translateY(0);
    transform: translateY(0);
  }
}
.bounceInDown {
  -webkit-animation-name: bounceInDown;
  animation-name: bounceInDown;
}
@-webkit-keyframes bounceInLeft {
  0% {
    opacity: 0;
    -webkit-transform: translateX(-2000px);
    transform: translateX(-2000px);
  }
  60% {
    opacity: 1;
    -webkit-transform: translateX(30px);
    transform: translateX(30px);
  }
  80% {
    -webkit-transform: translateX(-10px);
    transform: translateX(-10px);
  }
  100% {
    -webkit-transform: translateX(0);
    transform: translateX(0);
  }
}
@keyframes bounceInLeft {
  0% {
    opacity: 0;
    -webkit-transform: translateX(-2000px);
    -ms-transform: translateX(-2000px);
    transform: translateX(-2000px);
  }
  60% {
    opacity: 1;
    -webkit-transform: translateX(30px);
    -ms-transform: translateX(30px);
    transform: translateX(30px);
  }
  80% {
    -webkit-transform: translateX(-10px);
    -ms-transform: translateX(-10px);
    transform: translateX(-10px);
  }
  100% {
    -webkit-transform: translateX(0);
    -ms-transform: translateX(0);
    transform: translateX(0);
  }
}
.bounceInLeft {
  -webkit-animation-name: bounceInLeft;
  animation-name: bounceInLeft;
}
@-webkit-keyframes bounceInRight {
  0% {
    opacity: 0;
    -webkit-transform: translateX(2000px);
    transform: translateX(2000px);
  }
  60% {
    opacity: 1;
    -webkit-transform: translateX(-30px);
    transform: translateX(-30px);
  }
  80% {
    -webkit-transform: translateX(10px);
    transform: translateX(10px);
  }
  100% {
    -webkit-transform: translateX(0);
    transform: translateX(0);
  }
}
@keyframes bounceInRight {
  0% {
    opacity: 0;
    -webkit-transform: translateX(2000px);
    -ms-transform: translateX(2000px);
    transform: translateX(2000px);
  }
  60% {
    opacity: 1;
    -webkit-transform: translateX(-30px);
    -ms-transform: translateX(-30px);
    transform: translateX(-30px);
  }
  80% {
    -webkit-transform: translateX(10px);
    -ms-transform: translateX(10px);
    transform: translateX(10px);
  }
  100% {
    -webkit-transform: translateX(0);
    -ms-transform: translateX(0);
    transform: translateX(0);
  }
}
.bounceInRight {
  -webkit-animation-name: bounceInRight;
  animation-name: bounceInRight;
}
@-webkit-keyframes bounceInUp {
  0% {
    opacity: 0;
    -webkit-transform: translateY(2000px);
    transform: translateY(2000px);
  }
  60% {
    opacity: 1;
    -webkit-transform: translateY(-30px);
    transform: translateY(-30px);
  }
  80% {
    -webkit-transform: translateY(10px);
    transform: translateY(10px);
  }
  100% {
    -webkit-transform: translateY(0);
    transform: translateY(0);
  }
}
@keyframes bounceInUp {
  0% {
    opacity: 0;
    -webkit-transform: translateY(2000px);
    -ms-transform: translateY(2000px);
    transform: translateY(2000px);
  }
  60% {
    opacity: 1;
    -webkit-transform: translateY(-30px);
    -ms-transform: translateY(-30px);
    transform: translateY(-30px);
  }
  80% {
    -webkit-transform: translateY(10px);
    -ms-transform: translateY(10px);
    transform: translateY(10px);
  }
  100% {
    -webkit-transform: translateY(0);
    -ms-transform: translateY(0);
    transform: translateY(0);
  }
}
.bounceInUp {
  -webkit-animation-name: bounceInUp;
  animation-name: bounceInUp;
}
@-webkit-keyframes bounceOut {
  0% {
    -webkit-transform: scale(1);
    transform: scale(1);
  }
  25% {
    -webkit-transform: scale(0.95);
    transform: scale(0.95);
  }
  50% {
    opacity: 1;
    -webkit-transform: scale(1.1);
    transform: scale(1.1);
  }
  100% {
    opacity: 0;
    -webkit-transform: scale(0.3);
    transform: scale(0.3);
  }
}
@keyframes bounceOut {
  0% {
    -webkit-transform: scale(1);
    -ms-transform: scale(1);
    transform: scale(1);
  }
  25% {
    -webkit-transform: scale(0.95);
    -ms-transform: scale(0.95);
    transform: scale(0.95);
  }
  50% {
    opacity: 1;
    -webkit-transform: scale(1.1);
    -ms-transform: scale(1.1);
    transform: scale(1.1);
  }
  100% {
    opacity: 0;
    -webkit-transform: scale(0.3);
    -ms-transform: scale(0.3);
    transform: scale(0.3);
  }
}
.bounceOut {
  -webkit-animation-name: bounceOut;
  animation-name: bounceOut;
}
@-webkit-keyframes bounceOutDown {
  0% {
    -webkit-transform: translateY(0);
    transform: translateY(0);
  }
  20% {
    opacity: 1;
    -webkit-transform: translateY(-20px);
    transform: translateY(-20px);
  }
  100% {
    opacity: 0;
    -webkit-transform: translateY(2000px);
    transform: translateY(2000px);
  }
}
@keyframes bounceOutDown {
  0% {
    -webkit-transform: translateY(0);
    -ms-transform: translateY(0);
    transform: translateY(0);
  }
  20% {
    opacity: 1;
    -webkit-transform: translateY(-20px);
    -ms-transform: translateY(-20px);
    transform: translateY(-20px);
  }
  100% {
    opacity: 0;
    -webkit-transform: translateY(2000px);
    -ms-transform: translateY(2000px);
    transform: translateY(2000px);
  }
}
.bounceOutDown {
  -webkit-animation-name: bounceOutDown;
  animation-name: bounceOutDown;
}
@-webkit-keyframes bounceOutLeft {
  0% {
    -webkit-transform: translateX(0);
    transform: translateX(0);
  }
  20% {
    opacity: 1;
    -webkit-transform: translateX(20px);
    transform: translateX(20px);
  }
  100% {
    opacity: 0;
    -webkit-transform: translateX(-2000px);
    transform: translateX(-2000px);
  }
}
@keyframes bounceOutLeft {
  0% {
    -webkit-transform: translateX(0);
    -ms-transform: translateX(0);
    transform: translateX(0);
  }
  20% {
    opacity: 1;
    -webkit-transform: translateX(20px);
    -ms-transform: translateX(20px);
    transform: translateX(20px);
  }
  100% {
    opacity: 0;
    -webkit-transform: translateX(-2000px);
    -ms-transform: translateX(-2000px);
    transform: translateX(-2000px);
  }
}
.bounceOutLeft {
  -webkit-animation-name: bounceOutLeft;
  animation-name: bounceOutLeft;
}
@-webkit-keyframes bounceOutRight {
  0% {
    -webkit-transform: translateX(0);
    transform: translateX(0);
  }
  20% {
    opacity: 1;
    -webkit-transform: translateX(-20px);
    transform: translateX(-20px);
  }
  100% {
    opacity: 0;
    -webkit-transform: translateX(2000px);
    transform: translateX(2000px);
  }
}
@keyframes bounceOutRight {
  0% {
    -webkit-transform: translateX(0);
    -ms-transform: translateX(0);
    transform: translateX(0);
  }
  20% {
    opacity: 1;
    -webkit-transform: translateX(-20px);
    -ms-transform: translateX(-20px);
    transform: translateX(-20px);
  }
  100% {
    opacity: 0;
    -webkit-transform: translateX(2000px);
    -ms-transform: translateX(2000px);
    transform: translateX(2000px);
  }
}
.bounceOutRight {
  -webkit-animation-name: bounceOutRight;
  animation-name: bounceOutRight;
}
@-webkit-keyframes bounceOutUp {
  0% {
    -webkit-transform: translateY(0);
    transform: translateY(0);
  }
  20% {
    opacity: 1;
    -webkit-transform: translateY(20px);
    transform: translateY(20px);
  }
  100% {
    opacity: 0;
    -webkit-transform: translateY(-2000px);
    transform: translateY(-2000px);
  }
}
@keyframes bounceOutUp {
  0% {
    -webkit-transform: translateY(0);
    -ms-transform: translateY(0);
    transform: translateY(0);
  }
  20% {
    opacity: 1;
    -webkit-transform: translateY(20px);
    -ms-transform: translateY(20px);
    transform: translateY(20px);
  }
  100% {
    opacity: 0;
    -webkit-transform: translateY(-2000px);
    -ms-transform: translateY(-2000px);
    transform: translateY(-2000px);
  }
}
.bounceOutUp {
  -webkit-animation-name: bounceOutUp;
  animation-name: bounceOutUp;
}
@-webkit-keyframes fadeIn {
  0% {
    opacity: 0;
  }
  100% {
    opacity: 1;
  }
}
@keyframes fadeIn {
  0% {
    opacity: 0;
  }
  100% {
    opacity: 1;
  }
}
.fadeIn {
  -webkit-animation-name: fadeIn;
  animation-name: fadeIn;
}
@-webkit-keyframes fadeInDown {
  0% {
    opacity: 0;
    -webkit-transform: translateY(-20px);
    transform: translateY(-20px);
  }
  100% {
    opacity: 1;
    -webkit-transform: translateY(0);
    transform: translateY(0);
  }
}
@keyframes fadeInDown {
  0% {
    opacity: 0;
    -webkit-transform: translateY(-20px);
    -ms-transform: translateY(-20px);
    transform: translateY(-20px);
  }
  100% {
    opacity: 1;
    -webkit-transform: translateY(0);
    -ms-transform: translateY(0);
    transform: translateY(0);
  }
}
.fadeInDown {
  -webkit-animation-name: fadeInDown;
  animation-name: fadeInDown;
}
@-webkit-keyframes fadeInDownBig {
  0% {
    opacity: 0;
    -webkit-transform: translateY(-2000px);
    transform: translateY(-2000px);
  }
  100% {
    opacity: 1;
    -webkit-transform: translateY(0);
    transform: translateY(0);
  }
}
@keyframes fadeInDownBig {
  0% {
    opacity: 0;
    -webkit-transform: translateY(-2000px);
    -ms-transform: translateY(-2000px);
    transform: translateY(-2000px);
  }
  100% {
    opacity: 1;
    -webkit-transform: translateY(0);
    -ms-transform: translateY(0);
    transform: translateY(0);
  }
}
.fadeInDownBig {
  -webkit-animation-name: fadeInDownBig;
  animation-name: fadeInDownBig;
}
@-webkit-keyframes fadeInLeft {
  0% {
    opacity: 0;
    -webkit-transform: translateX(-20px);
    transform: translateX(-20px);
  }
  100% {
    opacity: 1;
    -webkit-transform: translateX(0);
    transform: translateX(0);
  }
}
@keyframes fadeInLeft {
  0% {
    opacity: 0;
    -webkit-transform: translateX(-20px);
    -ms-transform: translateX(-20px);
    transform: translateX(-20px);
  }
  100% {
    opacity: 1;
    -webkit-transform: translateX(0);
    -ms-transform: translateX(0);
    transform: translateX(0);
  }
}
.fadeInLeft {
  -webkit-animation-name: fadeInLeft;
  animation-name: fadeInLeft;
}
@-webkit-keyframes fadeInLeftBig {
  0% {
    opacity: 0;
    -webkit-transform: translateX(-2000px);
    transform: translateX(-2000px);
  }
  100% {
    opacity: 1;
    -webkit-transform: translateX(0);
    transform: translateX(0);
  }
}
@keyframes fadeInLeftBig {
  0% {
    opacity: 0;
    -webkit-transform: translateX(-2000px);
    -ms-transform: translateX(-2000px);
    transform: translateX(-2000px);
  }
  100% {
    opacity: 1;
    -webkit-transform: translateX(0);
    -ms-transform: translateX(0);
    transform: translateX(0);
  }
}
.fadeInLeftBig {
  -webkit-animation-name: fadeInLeftBig;
  animation-name: fadeInLeftBig;
}
@-webkit-keyframes fadeInRight {
  0% {
    opacity: 0;
    -webkit-transform: translateX(20px);
    transform: translateX(20px);
  }
  100% {
    opacity: 1;
    -webkit-transform: translateX(0);
    transform: translateX(0);
  }
}
@keyframes fadeInRight {
  0% {
    opacity: 0;
    -webkit-transform: translateX(20px);
    -ms-transform: translateX(20px);
    transform: translateX(20px);
  }
  100% {
    opacity: 1;
    -webkit-transform: translateX(0);
    -ms-transform: translateX(0);
    transform: translateX(0);
  }
}
.fadeInRight {
  -webkit-animation-name: fadeInRight;
  animation-name: fadeInRight;
}
@-webkit-keyframes fadeInRightBig {
  0% {
    opacity: 0;
    -webkit-transform: translateX(2000px);
    transform: translateX(2000px);
  }
  100% {
    opacity: 1;
    -webkit-transform: translateX(0);
    transform: translateX(0);
  }
}
@keyframes fadeInRightBig {
  0% {
    opacity: 0;
    -webkit-transform: translateX(2000px);
    -ms-transform: translateX(2000px);
    transform: translateX(2000px);
  }
  100% {
    opacity: 1;
    -webkit-transform: translateX(0);
    -ms-transform: translateX(0);
    transform: translateX(0);
  }
}
.fadeInRightBig {
  -webkit-animation-name: fadeInRightBig;
  animation-name: fadeInRightBig;
}
@-webkit-keyframes fadeInUp {
  0% {
    opacity: 0;
    -webkit-transform: translateY(20px);
    transform: translateY(20px);
  }
  100% {
    opacity: 1;
    -webkit-transform: translateY(0);
    transform: translateY(0);
  }
}
@keyframes fadeInUp {
  0% {
    opacity: 0;
    -webkit-transform: translateY(20px);
    -ms-transform: translateY(20px);
    transform: translateY(20px);
  }
  100% {
    opacity: 1;
    -webkit-transform: translateY(0);
    -ms-transform: translateY(0);
    transform: translateY(0);
  }
}
.fadeInUp {
  -webkit-animation-name: fadeInUp;
  animation-name: fadeInUp;
}
@-webkit-keyframes fadeInUpBig {
  0% {
    opacity: 0;
    -webkit-transform: translateY(2000px);
    transform: translateY(2000px);
  }
  100% {
    opacity: 1;
    -webkit-transform: translateY(0);
    transform: translateY(0);
  }
}
@keyframes fadeInUpBig {
  0% {
    opacity: 0;
    -webkit-transform: translateY(2000px);
    -ms-transform: translateY(2000px);
    transform: translateY(2000px);
  }
  100% {
    opacity: 1;
    -webkit-transform: translateY(0);
    -ms-transform: translateY(0);
    transform: translateY(0);
  }
}
.fadeInUpBig {
  -webkit-animation-name: fadeInUpBig;
  animation-name: fadeInUpBig;
}
@-webkit-keyframes fadeOut {
  0% {
    opacity: 1;
  }
  100% {
    opacity: 0;
  }
}
@keyframes fadeOut {
  0% {
    opacity: 1;
  }
  100% {
    opacity: 0;
  }
}
.fadeOut {
  -webkit-animation-name: fadeOut;
  animation-name: fadeOut;
}
@-webkit-keyframes fadeOutDown {
  0% {
    opacity: 1;
    -webkit-transform: translateY(0);
    transform: translateY(0);
  }
  100% {
    opacity: 0;
    -webkit-transform: translateY(20px);
    transform: translateY(20px);
  }
}
@keyframes fadeOutDown {
  0% {
    opacity: 1;
    -webkit-transform: translateY(0);
    -ms-transform: translateY(0);
    transform: translateY(0);
  }
  100% {
    opacity: 0;
    -webkit-transform: translateY(20px);
    -ms-transform: translateY(20px);
    transform: translateY(20px);
  }
}
.fadeOutDown {
  -webkit-animation-name: fadeOutDown;
  animation-name: fadeOutDown;
}
@-webkit-keyframes fadeOutDownBig {
  0% {
    opacity: 1;
    -webkit-transform: translateY(0);
    transform: translateY(0);
  }
  100% {
    opacity: 0;
    -webkit-transform: translateY(2000px);
    transform: translateY(2000px);
  }
}
@keyframes fadeOutDownBig {
  0% {
    opacity: 1;
    -webkit-transform: translateY(0);
    -ms-transform: translateY(0);
    transform: translateY(0);
  }
  100% {
    opacity: 0;
    -webkit-transform: translateY(2000px);
    -ms-transform: translateY(2000px);
    transform: translateY(2000px);
  }
}
.fadeOutDownBig {
  -webkit-animation-name: fadeOutDownBig;
  animation-name: fadeOutDownBig;
}
@-webkit-keyframes fadeOutLeft {
  0% {
    opacity: 1;
    -webkit-transform: translateX(0);
    transform: translateX(0);
  }
  100% {
    opacity: 0;
    -webkit-transform: translateX(-20px);
    transform: translateX(-20px);
  }
}
@keyframes fadeOutLeft {
  0% {
    opacity: 1;
    -webkit-transform: translateX(0);
    -ms-transform: translateX(0);
    transform: translateX(0);
  }
  100% {
    opacity: 0;
    -webkit-transform: translateX(-20px);
    -ms-transform: translateX(-20px);
    transform: translateX(-20px);
  }
}
.fadeOutLeft {
  -webkit-animation-name: fadeOutLeft;
  animation-name: fadeOutLeft;
}
@-webkit-keyframes fadeOutLeftBig {
  0% {
    opacity: 1;
    -webkit-transform: translateX(0);
    transform: translateX(0);
  }
  100% {
    opacity: 0;
    -webkit-transform: translateX(-2000px);
    transform: translateX(-2000px);
  }
}
@keyframes fadeOutLeftBig {
  0% {
    opacity: 1;
    -webkit-transform: translateX(0);
    -ms-transform: translateX(0);
    transform: translateX(0);
  }
  100% {
    opacity: 0;
    -webkit-transform: translateX(-2000px);
    -ms-transform: translateX(-2000px);
    transform: translateX(-2000px);
  }
}
.fadeOutLeftBig {
  -webkit-animation-name: fadeOutLeftBig;
  animation-name: fadeOutLeftBig;
}
@-webkit-keyframes fadeOutRight {
  0% {
    opacity: 1;
    -webkit-transform: translateX(0);
    transform: translateX(0);
  }
  100% {
    opacity: 0;
    -webkit-transform: translateX(20px);
    transform: translateX(20px);
  }
}
@keyframes fadeOutRight {
  0% {
    opacity: 1;
    -webkit-transform: translateX(0);
    -ms-transform: translateX(0);
    transform: translateX(0);
  }
  100% {
    opacity: 0;
    -webkit-transform: translateX(20px);
    -ms-transform: translateX(20px);
    transform: translateX(20px);
  }
}
.fadeOutRight {
  -webkit-animation-name: fadeOutRight;
  animation-name: fadeOutRight;
}
@-webkit-keyframes fadeOutRightBig {
  0% {
    opacity: 1;
    -webkit-transform: translateX(0);
    transform: translateX(0);
  }
  100% {
    opacity: 0;
    -webkit-transform: translateX(2000px);
    transform: translateX(2000px);
  }
}
@keyframes fadeOutRightBig {
  0% {
    opacity: 1;
    -webkit-transform: translateX(0);
    -ms-transform: translateX(0);
    transform: translateX(0);
  }
  100% {
    opacity: 0;
    -webkit-transform: translateX(2000px);
    -ms-transform: translateX(2000px);
    transform: translateX(2000px);
  }
}
.fadeOutRightBig {
  -webkit-animation-name: fadeOutRightBig;
  animation-name: fadeOutRightBig;
}
@-webkit-keyframes fadeOutUp {
  0% {
    opacity: 1;
    -webkit-transform: translateY(0);
    transform: translateY(0);
  }
  100% {
    opacity: 0;
    -webkit-transform: translateY(-20px);
    transform: translateY(-20px);
  }
}
@keyframes fadeOutUp {
  0% {
    opacity: 1;
    -webkit-transform: translateY(0);
    -ms-transform: translateY(0);
    transform: translateY(0);
  }
  100% {
    opacity: 0;
    -webkit-transform: translateY(-20px);
    -ms-transform: translateY(-20px);
    transform: translateY(-20px);
  }
}
.fadeOutUp {
  -webkit-animation-name: fadeOutUp;
  animation-name: fadeOutUp;
}
@-webkit-keyframes fadeOutUpBig {
  0% {
    opacity: 1;
    -webkit-transform: translateY(0);
    transform: translateY(0);
  }
  100% {
    opacity: 0;
    -webkit-transform: translateY(-2000px);
    transform: translateY(-2000px);
  }
}
@keyframes fadeOutUpBig {
  0% {
    opacity: 1;
    -webkit-transform: translateY(0);
    -ms-transform: translateY(0);
    transform: translateY(0);
  }
  100% {
    opacity: 0;
    -webkit-transform: translateY(-2000px);
    -ms-transform: translateY(-2000px);
    transform: translateY(-2000px);
  }
}
.fadeOutUpBig {
  -webkit-animation-name: fadeOutUpBig;
  animation-name: fadeOutUpBig;
}
@-webkit-keyframes flip {
  0% {
    -webkit-transform: perspective(400px) translateZ(0) rotateY(0) scale(1);
    transform: perspective(400px) translateZ(0) rotateY(0) scale(1);
    -webkit-animation-timing-function: ease-out;
    animation-timing-function: ease-out;
  }
  40% {
    -webkit-transform: perspective(400px) translateZ(150px) rotateY(170deg) scale(1);
    transform: perspective(400px) translateZ(150px) rotateY(170deg) scale(1);
    -webkit-animation-timing-function: ease-out;
    animation-timing-function: ease-out;
  }
  50% {
    -webkit-transform: perspective(400px) translateZ(150px) rotateY(190deg) scale(1);
    transform: perspective(400px) translateZ(150px) rotateY(190deg) scale(1);
    -webkit-animation-timing-function: ease-in;
    animation-timing-function: ease-in;
  }
  80% {
    -webkit-transform: perspective(400px) translateZ(0) rotateY(360deg) scale(0.95);
    transform: perspective(400px) translateZ(0) rotateY(360deg) scale(0.95);
    -webkit-animation-timing-function: ease-in;
    animation-timing-function: ease-in;
  }
  100% {
    -webkit-transform: perspective(400px) translateZ(0) rotateY(360deg) scale(1);
    transform: perspective(400px) translateZ(0) rotateY(360deg) scale(1);
    -webkit-animation-timing-function: ease-in;
    animation-timing-function: ease-in;
  }
}
@keyframes flip {
  0% {
    -webkit-transform: perspective(400px) translateZ(0) rotateY(0) scale(1);
    -ms-transform: perspective(400px) translateZ(0) rotateY(0) scale(1);
    transform: perspective(400px) translateZ(0) rotateY(0) scale(1);
    -webkit-animation-timing-function: ease-out;
    animation-timing-function: ease-out;
  }
  40% {
    -webkit-transform: perspective(400px) translateZ(150px) rotateY(170deg) scale(1);
    -ms-transform: perspective(400px) translateZ(150px) rotateY(170deg) scale(1);
    transform: perspective(400px) translateZ(150px) rotateY(170deg) scale(1);
    -webkit-animation-timing-function: ease-out;
    animation-timing-function: ease-out;
  }
  50% {
    -webkit-transform: perspective(400px) translateZ(150px) rotateY(190deg) scale(1);
    -ms-transform: perspective(400px) translateZ(150px) rotateY(190deg) scale(1);
    transform: perspective(400px) translateZ(150px) rotateY(190deg) scale(1);
    -webkit-animation-timing-function: ease-in;
    animation-timing-function: ease-in;
  }
  80% {
    -webkit-transform: perspective(400px) translateZ(0) rotateY(360deg) scale(0.95);
    -ms-transform: perspective(400px) translateZ(0) rotateY(360deg) scale(0.95);
    transform: perspective(400px) translateZ(0) rotateY(360deg) scale(0.95);
    -webkit-animation-timing-function: ease-in;
    animation-timing-function: ease-in;
  }
  100% {
    -webkit-transform: perspective(400px) translateZ(0) rotateY(360deg) scale(1);
    -ms-transform: perspective(400px) translateZ(0) rotateY(360deg) scale(1);
    transform: perspective(400px) translateZ(0) rotateY(360deg) scale(1);
    -webkit-animation-timing-function: ease-in;
    animation-timing-function: ease-in;
  }
}
.animated.flip {
  -webkit-backface-visibility: visible;
  -ms-backface-visibility: visible;
  backface-visibility: visible;
  -webkit-animation-name: flip;
  animation-name: flip;
}
@-webkit-keyframes flipInX {
  0% {
    -webkit-transform: perspective(400px) rotateX(90deg);
    transform: perspective(400px) rotateX(90deg);
    opacity: 0;
  }
  40% {
    -webkit-transform: perspective(400px) rotateX(-10deg);
    transform: perspective(400px) rotateX(-10deg);
  }
  70% {
    -webkit-transform: perspective(400px) rotateX(10deg);
    transform: perspective(400px) rotateX(10deg);
  }
  100% {
    -webkit-transform: perspective(400px) rotateX(0deg);
    transform: perspective(400px) rotateX(0deg);
    opacity: 1;
  }
}
@keyframes flipInX {
  0% {
    -webkit-transform: perspective(400px) rotateX(90deg);
    -ms-transform: perspective(400px) rotateX(90deg);
    transform: perspective(400px) rotateX(90deg);
    opacity: 0;
  }
  40% {
    -webkit-transform: perspective(400px) rotateX(-10deg);
    -ms-transform: perspective(400px) rotateX(-10deg);
    transform: perspective(400px) rotateX(-10deg);
  }
  70% {
    -webkit-transform: perspective(400px) rotateX(10deg);
    -ms-transform: perspective(400px) rotateX(10deg);
    transform: perspective(400px) rotateX(10deg);
  }
  100% {
    -webkit-transform: perspective(400px) rotateX(0deg);
    -ms-transform: perspective(400px) rotateX(0deg);
    transform: perspective(400px) rotateX(0deg);
    opacity: 1;
  }
}
.flipInX {
  -webkit-backface-visibility: visible!important;
  -ms-backface-visibility: visible!important;
  backface-visibility: visible!important;
  -webkit-animation-name: flipInX;
  animation-name: flipInX;
}
@-webkit-keyframes flipInY {
  0% {
    -webkit-transform: perspective(400px) rotateY(90deg);
    transform: perspective(400px) rotateY(90deg);
    opacity: 0;
  }
  40% {
    -webkit-transform: perspective(400px) rotateY(-10deg);
    transform: perspective(400px) rotateY(-10deg);
  }
  70% {
    -webkit-transform: perspective(400px) rotateY(10deg);
    transform: perspective(400px) rotateY(10deg);
  }
  100% {
    -webkit-transform: perspective(400px) rotateY(0deg);
    transform: perspective(400px) rotateY(0deg);
    opacity: 1;
  }
}
@keyframes flipInY {
  0% {
    -webkit-transform: perspective(400px) rotateY(90deg);
    -ms-transform: perspective(400px) rotateY(90deg);
    transform: perspective(400px) rotateY(90deg);
    opacity: 0;
  }
  40% {
    -webkit-transform: perspective(400px) rotateY(-10deg);
    -ms-transform: perspective(400px) rotateY(-10deg);
    transform: perspective(400px) rotateY(-10deg);
  }
  70% {
    -webkit-transform: perspective(400px) rotateY(10deg);
    -ms-transform: perspective(400px) rotateY(10deg);
    transform: perspective(400px) rotateY(10deg);
  }
  100% {
    -webkit-transform: perspective(400px) rotateY(0deg);
    -ms-transform: perspective(400px) rotateY(0deg);
    transform: perspective(400px) rotateY(0deg);
    opacity: 1;
  }
}
.flipInY {
  -webkit-backface-visibility: visible!important;
  -ms-backface-visibility: visible!important;
  backface-visibility: visible!important;
  -webkit-animation-name: flipInY;
  animation-name: flipInY;
}
@-webkit-keyframes flipOutX {
  0% {
    -webkit-transform: perspective(400px) rotateX(0deg);
    transform: perspective(400px) rotateX(0deg);
    opacity: 1;
  }
  100% {
    -webkit-transform: perspective(400px) rotateX(90deg);
    transform: perspective(400px) rotateX(90deg);
    opacity: 0;
  }
}
@keyframes flipOutX {
  0% {
    -webkit-transform: perspective(400px) rotateX(0deg);
    -ms-transform: perspective(400px) rotateX(0deg);
    transform: perspective(400px) rotateX(0deg);
    opacity: 1;
  }
  100% {
    -webkit-transform: perspective(400px) rotateX(90deg);
    -ms-transform: perspective(400px) rotateX(90deg);
    transform: perspective(400px) rotateX(90deg);
    opacity: 0;
  }
}
.flipOutX {
  -webkit-animation-name: flipOutX;
  animation-name: flipOutX;
  -webkit-backface-visibility: visible!important;
  -ms-backface-visibility: visible!important;
  backface-visibility: visible !important;
}
@-webkit-keyframes flipOutY {
  0% {
    -webkit-transform: perspective(400px) rotateY(0deg);
    transform: perspective(400px) rotateY(0deg);
    opacity: 1;
  }
  100% {
    -webkit-transform: perspective(400px) rotateY(90deg);
    transform: perspective(400px) rotateY(90deg);
    opacity: 0;
  }
}
@keyframes flipOutY {
  0% {
    -webkit-transform: perspective(400px) rotateY(0deg);
    -ms-transform: perspective(400px) rotateY(0deg);
    transform: perspective(400px) rotateY(0deg);
    opacity: 1;
  }
  100% {
    -webkit-transform: perspective(400px) rotateY(90deg);
    -ms-transform: perspective(400px) rotateY(90deg);
    transform: perspective(400px) rotateY(90deg);
    opacity: 0;
  }
}
.flipOutY {
  -webkit-backface-visibility: visible!important;
  -ms-backface-visibility: visible!important;
  backface-visibility: visible!important;
  -webkit-animation-name: flipOutY;
  animation-name: flipOutY;
}
@-webkit-keyframes lightSpeedIn {
  0% {
    -webkit-transform: translateX(100%) skewX(-30deg);
    transform: translateX(100%) skewX(-30deg);
    opacity: 0;
  }
  60% {
    -webkit-transform: translateX(-20%) skewX(30deg);
    transform: translateX(-20%) skewX(30deg);
    opacity: 1;
  }
  80% {
    -webkit-transform: translateX(0%) skewX(-15deg);
    transform: translateX(0%) skewX(-15deg);
    opacity: 1;
  }
  100% {
    -webkit-transform: translateX(0%) skewX(0deg);
    transform: translateX(0%) skewX(0deg);
    opacity: 1;
  }
}
@keyframes lightSpeedIn {
  0% {
    -webkit-transform: translateX(100%) skewX(-30deg);
    -ms-transform: translateX(100%) skewX(-30deg);
    transform: translateX(100%) skewX(-30deg);
    opacity: 0;
  }
  60% {
    -webkit-transform: translateX(-20%) skewX(30deg);
    -ms-transform: translateX(-20%) skewX(30deg);
    transform: translateX(-20%) skewX(30deg);
    opacity: 1;
  }
  80% {
    -webkit-transform: translateX(0%) skewX(-15deg);
    -ms-transform: translateX(0%) skewX(-15deg);
    transform: translateX(0%) skewX(-15deg);
    opacity: 1;
  }
  100% {
    -webkit-transform: translateX(0%) skewX(0deg);
    -ms-transform: translateX(0%) skewX(0deg);
    transform: translateX(0%) skewX(0deg);
    opacity: 1;
  }
}
.lightSpeedIn {
  -webkit-animation-name: lightSpeedIn;
  animation-name: lightSpeedIn;
  -webkit-animation-timing-function: ease-out;
  animation-timing-function: ease-out;
}
@-webkit-keyframes lightSpeedOut {
  0% {
    -webkit-transform: translateX(0%) skewX(0deg);
    transform: translateX(0%) skewX(0deg);
    opacity: 1;
  }
  100% {
    -webkit-transform: translateX(100%) skewX(-30deg);
    transform: translateX(100%) skewX(-30deg);
    opacity: 0;
  }
}
@keyframes lightSpeedOut {
  0% {
    -webkit-transform: translateX(0%) skewX(0deg);
    -ms-transform: translateX(0%) skewX(0deg);
    transform: translateX(0%) skewX(0deg);
    opacity: 1;
  }
  100% {
    -webkit-transform: translateX(100%) skewX(-30deg);
    -ms-transform: translateX(100%) skewX(-30deg);
    transform: translateX(100%) skewX(-30deg);
    opacity: 0;
  }
}
.lightSpeedOut {
  -webkit-animation-name: lightSpeedOut;
  animation-name: lightSpeedOut;
  -webkit-animation-timing-function: ease-in;
  animation-timing-function: ease-in;
}
@-webkit-keyframes rotateIn {
  0% {
    -webkit-transform-origin: center center;
    transform-origin: center center;
    -webkit-transform: rotate(-200deg);
    transform: rotate(-200deg);
    opacity: 0;
  }
  100% {
    -webkit-transform-origin: center center;
    transform-origin: center center;
    -webkit-transform: rotate(0);
    transform: rotate(0);
    opacity: 1;
  }
}
@keyframes rotateIn {
  0% {
    -webkit-transform-origin: center center;
    -ms-transform-origin: center center;
    transform-origin: center center;
    -webkit-transform: rotate(-200deg);
    -ms-transform: rotate(-200deg);
    transform: rotate(-200deg);
    opacity: 0;
  }
  100% {
    -webkit-transform-origin: center center;
    -ms-transform-origin: center center;
    transform-origin: center center;
    -webkit-transform: rotate(0);
    -ms-transform: rotate(0);
    transform: rotate(0);
    opacity: 1;
  }
}
.rotateIn {
  -webkit-animation-name: rotateIn;
  animation-name: rotateIn;
}
@-webkit-keyframes rotateInDownLeft {
  0% {
    -webkit-transform-origin: left bottom;
    transform-origin: left bottom;
    -webkit-transform: rotate(-90deg);
    transform: rotate(-90deg);
    opacity: 0;
  }
  100% {
    -webkit-transform-origin: left bottom;
    transform-origin: left bottom;
    -webkit-transform: rotate(0);
    transform: rotate(0);
    opacity: 1;
  }
}
@keyframes rotateInDownLeft {
  0% {
    -webkit-transform-origin: left bottom;
    -ms-transform-origin: left bottom;
    transform-origin: left bottom;
    -webkit-transform: rotate(-90deg);
    -ms-transform: rotate(-90deg);
    transform: rotate(-90deg);
    opacity: 0;
  }
  100% {
    -webkit-transform-origin: left bottom;
    -ms-transform-origin: left bottom;
    transform-origin: left bottom;
    -webkit-transform: rotate(0);
    -ms-transform: rotate(0);
    transform: rotate(0);
    opacity: 1;
  }
}
.rotateInDownLeft {
  -webkit-animation-name: rotateInDownLeft;
  animation-name: rotateInDownLeft;
}
@-webkit-keyframes rotateInDownRight {
  0% {
    -webkit-transform-origin: right bottom;
    transform-origin: right bottom;
    -webkit-transform: rotate(90deg);
    transform: rotate(90deg);
    opacity: 0;
  }
  100% {
    -webkit-transform-origin: right bottom;
    transform-origin: right bottom;
    -webkit-transform: rotate(0);
    transform: rotate(0);
    opacity: 1;
  }
}
@keyframes rotateInDownRight {
  0% {
    -webkit-transform-origin: right bottom;
    -ms-transform-origin: right bottom;
    transform-origin: right bottom;
    -webkit-transform: rotate(90deg);
    -ms-transform: rotate(90deg);
    transform: rotate(90deg);
    opacity: 0;
  }
  100% {
    -webkit-transform-origin: right bottom;
    -ms-transform-origin: right bottom;
    transform-origin: right bottom;
    -webkit-transform: rotate(0);
    -ms-transform: rotate(0);
    transform: rotate(0);
    opacity: 1;
  }
}
.rotateInDownRight {
  -webkit-animation-name: rotateInDownRight;
  animation-name: rotateInDownRight;
}
@-webkit-keyframes rotateInUpLeft {
  0% {
    -webkit-transform-origin: left bottom;
    transform-origin: left bottom;
    -webkit-transform: rotate(90deg);
    transform: rotate(90deg);
    opacity: 0;
  }
  100% {
    -webkit-transform-origin: left bottom;
    transform-origin: left bottom;
    -webkit-transform: rotate(0);
    transform: rotate(0);
    opacity: 1;
  }
}
@keyframes rotateInUpLeft {
  0% {
    -webkit-transform-origin: left bottom;
    -ms-transform-origin: left bottom;
    transform-origin: left bottom;
    -webkit-transform: rotate(90deg);
    -ms-transform: rotate(90deg);
    transform: rotate(90deg);
    opacity: 0;
  }
  100% {
    -webkit-transform-origin: left bottom;
    -ms-transform-origin: left bottom;
    transform-origin: left bottom;
    -webkit-transform: rotate(0);
    -ms-transform: rotate(0);
    transform: rotate(0);
    opacity: 1;
  }
}
.rotateInUpLeft {
  -webkit-animation-name: rotateInUpLeft;
  animation-name: rotateInUpLeft;
}
@-webkit-keyframes rotateInUpRight {
  0% {
    -webkit-transform-origin: right bottom;
    transform-origin: right bottom;
    -webkit-transform: rotate(-90deg);
    transform: rotate(-90deg);
    opacity: 0;
  }
  100% {
    -webkit-transform-origin: right bottom;
    transform-origin: right bottom;
    -webkit-transform: rotate(0);
    transform: rotate(0);
    opacity: 1;
  }
}
@keyframes rotateInUpRight {
  0% {
    -webkit-transform-origin: right bottom;
    -ms-transform-origin: right bottom;
    transform-origin: right bottom;
    -webkit-transform: rotate(-90deg);
    -ms-transform: rotate(-90deg);
    transform: rotate(-90deg);
    opacity: 0;
  }
  100% {
    -webkit-transform-origin: right bottom;
    -ms-transform-origin: right bottom;
    transform-origin: right bottom;
    -webkit-transform: rotate(0);
    -ms-transform: rotate(0);
    transform: rotate(0);
    opacity: 1;
  }
}
.rotateInUpRight {
  -webkit-animation-name: rotateInUpRight;
  animation-name: rotateInUpRight;
}
@-webkit-keyframes rotateOut {
  0% {
    -webkit-transform-origin: center center;
    transform-origin: center center;
    -webkit-transform: rotate(0);
    transform: rotate(0);
    opacity: 1;
  }
  100% {
    -webkit-transform-origin: center center;
    transform-origin: center center;
    -webkit-transform: rotate(200deg);
    transform: rotate(200deg);
    opacity: 0;
  }
}
@keyframes rotateOut {
  0% {
    -webkit-transform-origin: center center;
    -ms-transform-origin: center center;
    transform-origin: center center;
    -webkit-transform: rotate(0);
    -ms-transform: rotate(0);
    transform: rotate(0);
    opacity: 1;
  }
  100% {
    -webkit-transform-origin: center center;
    -ms-transform-origin: center center;
    transform-origin: center center;
    -webkit-transform: rotate(200deg);
    -ms-transform: rotate(200deg);
    transform: rotate(200deg);
    opacity: 0;
  }
}
.rotateOut {
  -webkit-animation-name: rotateOut;
  animation-name: rotateOut;
}
@-webkit-keyframes rotateOutDownLeft {
  0% {
    -webkit-transform-origin: left bottom;
    transform-origin: left bottom;
    -webkit-transform: rotate(0);
    transform: rotate(0);
    opacity: 1;
  }
  100% {
    -webkit-transform-origin: left bottom;
    transform-origin: left bottom;
    -webkit-transform: rotate(90deg);
    transform: rotate(90deg);
    opacity: 0;
  }
}
@keyframes rotateOutDownLeft {
  0% {
    -webkit-transform-origin: left bottom;
    -ms-transform-origin: left bottom;
    transform-origin: left bottom;
    -webkit-transform: rotate(0);
    -ms-transform: rotate(0);
    transform: rotate(0);
    opacity: 1;
  }
  100% {
    -webkit-transform-origin: left bottom;
    -ms-transform-origin: left bottom;
    transform-origin: left bottom;
    -webkit-transform: rotate(90deg);
    -ms-transform: rotate(90deg);
    transform: rotate(90deg);
    opacity: 0;
  }
}
.rotateOutDownLeft {
  -webkit-animation-name: rotateOutDownLeft;
  animation-name: rotateOutDownLeft;
}
@-webkit-keyframes rotateOutDownRight {
  0% {
    -webkit-transform-origin: right bottom;
    transform-origin: right bottom;
    -webkit-transform: rotate(0);
    transform: rotate(0);
    opacity: 1;
  }
  100% {
    -webkit-transform-origin: right bottom;
    transform-origin: right bottom;
    -webkit-transform: rotate(-90deg);
    transform: rotate(-90deg);
    opacity: 0;
  }
}
@keyframes rotateOutDownRight {
  0% {
    -webkit-transform-origin: right bottom;
    -ms-transform-origin: right bottom;
    transform-origin: right bottom;
    -webkit-transform: rotate(0);
    -ms-transform: rotate(0);
    transform: rotate(0);
    opacity: 1;
  }
  100% {
    -webkit-transform-origin: right bottom;
    -ms-transform-origin: right bottom;
    transform-origin: right bottom;
    -webkit-transform: rotate(-90deg);
    -ms-transform: rotate(-90deg);
    transform: rotate(-90deg);
    opacity: 0;
  }
}
.rotateOutDownRight {
  -webkit-animation-name: rotateOutDownRight;
  animation-name: rotateOutDownRight;
}
@-webkit-keyframes rotateOutUpLeft {
  0% {
    -webkit-transform-origin: left bottom;
    transform-origin: left bottom;
    -webkit-transform: rotate(0);
    transform: rotate(0);
    opacity: 1;
  }
  100% {
    -webkit-transform-origin: left bottom;
    transform-origin: left bottom;
    -webkit-transform: rotate(-90deg);
    transform: rotate(-90deg);
    opacity: 0;
  }
}
@keyframes rotateOutUpLeft {
  0% {
    -webkit-transform-origin: left bottom;
    -ms-transform-origin: left bottom;
    transform-origin: left bottom;
    -webkit-transform: rotate(0);
    -ms-transform: rotate(0);
    transform: rotate(0);
    opacity: 1;
  }
  100% {
    -webkit-transform-origin: left bottom;
    -ms-transform-origin: left bottom;
    transform-origin: left bottom;
    -webkit-transform: rotate(-90deg);
    -ms-transform: rotate(-90deg);
    transform: rotate(-90deg);
    opacity: 0;
  }
}
.rotateOutUpLeft {
  -webkit-animation-name: rotateOutUpLeft;
  animation-name: rotateOutUpLeft;
}
@-webkit-keyframes rotateOutUpRight {
  0% {
    -webkit-transform-origin: right bottom;
    transform-origin: right bottom;
    -webkit-transform: rotate(0);
    transform: rotate(0);
    opacity: 1;
  }
  100% {
    -webkit-transform-origin: right bottom;
    transform-origin: right bottom;
    -webkit-transform: rotate(90deg);
    transform: rotate(90deg);
    opacity: 0;
  }
}
@keyframes rotateOutUpRight {
  0% {
    -webkit-transform-origin: right bottom;
    -ms-transform-origin: right bottom;
    transform-origin: right bottom;
    -webkit-transform: rotate(0);
    -ms-transform: rotate(0);
    transform: rotate(0);
    opacity: 1;
  }
  100% {
    -webkit-transform-origin: right bottom;
    -ms-transform-origin: right bottom;
    transform-origin: right bottom;
    -webkit-transform: rotate(90deg);
    -ms-transform: rotate(90deg);
    transform: rotate(90deg);
    opacity: 0;
  }
}
.rotateOutUpRight {
  -webkit-animation-name: rotateOutUpRight;
  animation-name: rotateOutUpRight;
}
@-webkit-keyframes slideInDown {
  0% {
    opacity: 0;
    -webkit-transform: translateY(-2000px);
    transform: translateY(-2000px);
  }
  100% {
    -webkit-transform: translateY(0);
    transform: translateY(0);
  }
}
@keyframes slideInDown {
  0% {
    opacity: 0;
    -webkit-transform: translateY(-2000px);
    -ms-transform: translateY(-2000px);
    transform: translateY(-2000px);
  }
  100% {
    -webkit-transform: translateY(0);
    -ms-transform: translateY(0);
    transform: translateY(0);
  }
}
.slideInDown {
  -webkit-animation-name: slideInDown;
  animation-name: slideInDown;
}
@-webkit-keyframes slideInLeft {
  0% {
    opacity: 0;
    -webkit-transform: translateX(-2000px);
    transform: translateX(-2000px);
  }
  100% {
    -webkit-transform: translateX(0);
    transform: translateX(0);
  }
}
@keyframes slideInLeft {
  0% {
    opacity: 0;
    -webkit-transform: translateX(-2000px);
    -ms-transform: translateX(-2000px);
    transform: translateX(-2000px);
  }
  100% {
    -webkit-transform: translateX(0);
    -ms-transform: translateX(0);
    transform: translateX(0);
  }
}
.slideInLeft {
  -webkit-animation-name: slideInLeft;
  animation-name: slideInLeft;
}
@-webkit-keyframes slideInRight {
  0% {
    opacity: 0;
    -webkit-transform: translateX(2000px);
    transform: translateX(2000px);
  }
  100% {
    -webkit-transform: translateX(0);
    transform: translateX(0);
  }
}
@keyframes slideInRight {
  0% {
    opacity: 0;
    -webkit-transform: translateX(2000px);
    -ms-transform: translateX(2000px);
    transform: translateX(2000px);
  }
  100% {
    -webkit-transform: translateX(0);
    -ms-transform: translateX(0);
    transform: translateX(0);
  }
}
.slideInRight {
  -webkit-animation-name: slideInRight;
  animation-name: slideInRight;
}
@-webkit-keyframes slideOutLeft {
  0% {
    -webkit-transform: translateX(0);
    transform: translateX(0);
  }
  100% {
    opacity: 0;
    -webkit-transform: translateX(-2000px);
    transform: translateX(-2000px);
  }
}
@keyframes slideOutLeft {
  0% {
    -webkit-transform: translateX(0);
    -ms-transform: translateX(0);
    transform: translateX(0);
  }
  100% {
    opacity: 0;
    -webkit-transform: translateX(-2000px);
    -ms-transform: translateX(-2000px);
    transform: translateX(-2000px);
  }
}
.slideOutLeft {
  -webkit-animation-name: slideOutLeft;
  animation-name: slideOutLeft;
}
@-webkit-keyframes slideOutRight {
  0% {
    -webkit-transform: translateX(0);
    transform: translateX(0);
  }
  100% {
    opacity: 0;
    -webkit-transform: translateX(2000px);
    transform: translateX(2000px);
  }
}
@keyframes slideOutRight {
  0% {
    -webkit-transform: translateX(0);
    -ms-transform: translateX(0);
    transform: translateX(0);
  }
  100% {
    opacity: 0;
    -webkit-transform: translateX(2000px);
    -ms-transform: translateX(2000px);
    transform: translateX(2000px);
  }
}
.slideOutRight {
  -webkit-animation-name: slideOutRight;
  animation-name: slideOutRight;
}
@-webkit-keyframes slideOutUp {
  0% {
    -webkit-transform: translateY(0);
    transform: translateY(0);
  }
  100% {
    opacity: 0;
    -webkit-transform: translateY(-2000px);
    transform: translateY(-2000px);
  }
}
@keyframes slideOutUp {
  0% {
    -webkit-transform: translateY(0);
    -ms-transform: translateY(0);
    transform: translateY(0);
  }
  100% {
    opacity: 0;
    -webkit-transform: translateY(-2000px);
    -ms-transform: translateY(-2000px);
    transform: translateY(-2000px);
  }
}
.slideOutUp {
  -webkit-animation-name: slideOutUp;
  animation-name: slideOutUp;
}
@-webkit-keyframes slideInUp {
  0% {
    -webkit-transform: translateY(2000px);
    transform: translateY(2000px);
  }
  100% {
    opacity: 0;
    -webkit-transform: translateY(0);
    transform: translateY(0);
  }
}
@keyframes slideInUp {
  0% {
    -webkit-transform: translateY(2000px);
    -ms-transform: translateY(2000px);
    transform: translateY(2000px);
  }
  100% {
    opacity: 0;
    -webkit-transform: translateY(0);
    -ms-transform: translateY(0);
    transform: translateY(0);
  }
}
.slideInUp {
  -webkit-animation-name: slideInUp;
  animation-name: slideInUp;
}
@-webkit-keyframes slideOutDown {
  0% {
    -webkit-transform: translateY(0);
    transform: translateY(0);
  }
  100% {
    opacity: 0;
    -webkit-transform: translateY(2000px);
    transform: translateY(2000px);
  }
}
@keyframes slideOutDown {
  0% {
    -webkit-transform: translateY(0);
    -ms-transform: translateY(0);
    transform: translateY(0);
  }
  100% {
    opacity: 0;
    -webkit-transform: translateY(2000px);
    -ms-transform: translateY(2000px);
    transform: translateY(2000px);
  }
}
.slideOutDown {
  -webkit-animation-name: slideOutDown;
  animation-name: slideOutDown;
}
@-webkit-keyframes hinge {
  0% {
    -webkit-transform: rotate(0);
    transform: rotate(0);
    -webkit-transform-origin: top left;
    transform-origin: top left;
    -webkit-animation-timing-function: ease-in-out;
    animation-timing-function: ease-in-out;
  }
  20%,
  60% {
    -webkit-transform: rotate(80deg);
    transform: rotate(80deg);
    -webkit-transform-origin: top left;
    transform-origin: top left;
    -webkit-animation-timing-function: ease-in-out;
    animation-timing-function: ease-in-out;
  }
  40% {
    -webkit-transform: rotate(60deg);
    transform: rotate(60deg);
    -webkit-transform-origin: top left;
    transform-origin: top left;
    -webkit-animation-timing-function: ease-in-out;
    animation-timing-function: ease-in-out;
  }
  80% {
    -webkit-transform: rotate(60deg) translateY(0);
    transform: rotate(60deg) translateY(0);
    -webkit-transform-origin: top left;
    transform-origin: top left;
    -webkit-animation-timing-function: ease-in-out;
    animation-timing-function: ease-in-out;
    opacity: 1;
  }
  100% {
    -webkit-transform: translateY(700px);
    transform: translateY(700px);
    opacity: 0;
  }
}
@keyframes hinge {
  0% {
    -webkit-transform: rotate(0);
    -ms-transform: rotate(0);
    transform: rotate(0);
    -webkit-transform-origin: top left;
    -ms-transform-origin: top left;
    transform-origin: top left;
    -webkit-animation-timing-function: ease-in-out;
    animation-timing-function: ease-in-out;
  }
  20%,
  60% {
    -webkit-transform: rotate(80deg);
    -ms-transform: rotate(80deg);
    transform: rotate(80deg);
    -webkit-transform-origin: top left;
    -ms-transform-origin: top left;
    transform-origin: top left;
    -webkit-animation-timing-function: ease-in-out;
    animation-timing-function: ease-in-out;
  }
  40% {
    -webkit-transform: rotate(60deg);
    -ms-transform: rotate(60deg);
    transform: rotate(60deg);
    -webkit-transform-origin: top left;
    -ms-transform-origin: top left;
    transform-origin: top left;
    -webkit-animation-timing-function: ease-in-out;
    animation-timing-function: ease-in-out;
  }
  80% {
    -webkit-transform: rotate(60deg) translateY(0);
    -ms-transform: rotate(60deg) translateY(0);
    transform: rotate(60deg) translateY(0);
    -webkit-transform-origin: top left;
    -ms-transform-origin: top left;
    transform-origin: top left;
    -webkit-animation-timing-function: ease-in-out;
    animation-timing-function: ease-in-out;
    opacity: 1;
  }
  100% {
    -webkit-transform: translateY(700px);
    -ms-transform: translateY(700px);
    transform: translateY(700px);
    opacity: 0;
  }
}
.hinge {
  -webkit-animation-name: hinge;
  animation-name: hinge;
}
@-webkit-keyframes rollIn {
  0% {
    opacity: 0;
    -webkit-transform: translateX(-100%) rotate(-120deg);
    transform: translateX(-100%) rotate(-120deg);
  }
  100% {
    opacity: 1;
    -webkit-transform: translateX(0px) rotate(0deg);
    transform: translateX(0px) rotate(0deg);
  }
}
@keyframes rollIn {
  0% {
    opacity: 0;
    -webkit-transform: translateX(-100%) rotate(-120deg);
    -ms-transform: translateX(-100%) rotate(-120deg);
    transform: translateX(-100%) rotate(-120deg);
  }
  100% {
    opacity: 1;
    -webkit-transform: translateX(0px) rotate(0deg);
    -ms-transform: translateX(0px) rotate(0deg);
    transform: translateX(0px) rotate(0deg);
  }
}
.rollIn {
  -webkit-animation-name: rollIn;
  animation-name: rollIn;
}
@-webkit-keyframes rollOut {
  0% {
    opacity: 1;
    -webkit-transform: translateX(0px) rotate(0deg);
    transform: translateX(0px) rotate(0deg);
  }
  100% {
    opacity: 0;
    -webkit-transform: translateX(100%) rotate(120deg);
    transform: translateX(100%) rotate(120deg);
  }
}
@keyframes rollOut {
  0% {
    opacity: 1;
    -webkit-transform: translateX(0px) rotate(0deg);
    -ms-transform: translateX(0px) rotate(0deg);
    transform: translateX(0px) rotate(0deg);
  }
  100% {
    opacity: 0;
    -webkit-transform: translateX(100%) rotate(120deg);
    -ms-transform: translateX(100%) rotate(120deg);
    transform: translateX(100%) rotate(120deg);
  }
}
.rollOut {
  -webkit-animation-name: rollOut;
  animation-name: rollOut;
}
book-hamburger {
  display: block;
  position: relative;
}
book-hamburger span {
  height: 5px;
  width: 100%;
  border-radius: 2px;
  background: #333;
  display: inline-block;
  margin-bottom: 3px;
  transition: all 500ms ease-in-out;
  -webkit-transition: all 500ms ease-in-out;
  content: '';
}
book-hamburger[open] span:first-child {
  top: 8px;
  -webkit-transform: rotate(45deg);
  transform: rotate(45deg);
  position: absolute;
}
book-hamburger[open] span:nth-child(2) {
  opacity: 0;
}
book-hamburger[open] span:last-child {
  top: 0;
  transform: rotate(-45deg);
  -webkit-transform: rotate(-45deg);
}
book-hamburger div.close {
  font-size: 16px;
  flex: 1;
}
book-hamburger div.hamburger {
  width: 30px;
}
book-nav-bar {
  width: 100%;
  position: fixed;
  transition: 0.3s ease-out;
  -webkit-transition: 0.3s ease-out;
  -moz-transition: 0.3s ease-out;
}
book-nav-bar[stick-to="top"] {
  top: 0;
}
book-nav-bar[stick-to="bottom"] {
  bottom: 0;
}
book-nav-bar[stick-to="left"] {
  left: 0;
  top: 0;
  background: none;
  height: calc(-10%);
  margin-top: 110px;
  width: 300px;
  padding: 0;
}
book-toggle-type {
  display: block;
}
book-webview {
  height: 100%;
  width: 100%;
  z-index: 9999;
  top: 0px;
  left: 0px;
  font-size: 23px;
  position: fixed;
  background: white;
  display: none;
}
book-webview iframe {
  border: none;
  width: 100%;
  height: calc(100% - 50px);
  display: block;
}
book-webview div {
  height: 50px;
  border-bottom: 1px solid #CCC;
}
book-webview button {
  background: white;
  border-radius: 3px;
  border: 1px solid #CCC;
  font-size: 16px;
  color: #525252;
  -webkit-appearance: none;
  float: right;
  padding: 10px 20px;
  margin: 5px;
}
book-overlay {
  position: fixed;
  display: none;
}
book-overlay[full] {
  top: 0;
  left: 0;
  height: 100%;
  width: 100%;
}
book-overlay[active] {
  display: block;
  z-index: 10000;
}
book-popover {
  display: none;
  position: fixed;
  height: 100%;
  width: 100%;
  top: 0;
  left: 0;
}
book-popover[open] {
  display: flex;
  flex-direction: column;
}
book-popover[open] > .flex-spacer:last-child {
  flex: 1;
}
book-popover > div.popover-container {
  position: relative;
  transform: translateY(-50%);
  top: 50%;
  margin: auto 5%;
}
book-popover div.popover-close,
book-notification div.close-notification {
  background: #373737;
  height: 30px;
  width: 30px;
  border-radius: 50%;
  text-align: center;
  color: #FFF;
  font-family: verdana;
  position: absolute;
  right: -17px;
  top: -17px;
  font-size: 25px;
  padding: 4px;
  border: solid;
  z-index: 10;
}
book-popover video {
  width: 100%;
  height: auto;
  position: relative;
}
book-notification {
  display: none;
}
book-notification[open] {
  display: block;
  position: fixed;
  z-index: 100;
  height: 100%;
}
book-notification > div.container-notificaiton {
  display: block;
  position: fixed;
  width: 300px;
  z-index: 100000;
  font-size: 45px;
  top: 40%;
  background: #3fba8e;
  margin: 0 auto;
  text-align: center;
  padding: 8px;
  margin: 0 25%;
  color: #FFF;
}
.book-layers-wrap {
  overflow-x: hidden;
  position: relative;
}
.book-layers[data-transition="slide"] .book-layers-slider {
  backface-visibility: hidden;
  -webkit-backface-visibility: hidden;
  -webkit-perspective: 1000;
  -moz-backface-visibility: hidden;
}
.book-layers-slider:before,
.book-layers-slider:after {
  display: table;
  content: "";
}
.book-layers-slider:after {
  clear: both;
}
.book-layer {
  overflow: auto;
  width: 100%;
  position: absolute;
  top: 0;
  left: 0;
  z-index: 1;
  display: none;
}
.book-layer.book-layer-active {
  z-index: 2;
  display: block;
  position: relative;
}
.book-layer.book-layer-while-animating {
  display: block;
}
.book-layers[data-transition="slide"] .book-layer {
  position: relative;
  z-index: auto;
  float: left;
  margin-left: 0 !important;
  margin-right: 0 !important;
  -webkit-box-sizing: border-box;
  -moz-box-sizing: border-box;
  box-sizing: border-box;
}
.book-layers-ready.book-layers[data-transition="slide"] .book-layer {
  display: block;
}
.book-layers img.book-image-placeholder {
  height: 0;
  width: 100%;
}
.book-nav {
  position: relative;
  z-index: 9;
  box-sizing: border-box;
}
.book-nav ul {
  list-style: none;
  margin: 0;
}
.book-nav li {
  list-style: none;
  display: inline-block;
}
.book-nav-none {
  display: none;
}
.book-nav-dots,
.book-nav-squares,
.book-nav-numbers {
  width: 100%;
  text-align: center;
  clear: both;
  margin: 10px 0;
}
.book-nav-dots a,
.book-nav-squares a {
  display: inline-block;
  width: 16px;
  height: 16px;
  background: #999;
  overflow: hidden;
  text-indent: -100px;
  margin: 0 10px;
}
.book-nav-dots a {
  border-radius: 50%;
}
.book-nav-numbers a {
  font-family: Helvetica, Arial, sans-serif;
  text-decoration: none;
  display: inline-block;
  margin: 0 1em;
  width: 1.3em;
  background-color: #333;
  color: white;
  border: none;
  text-indent: none;
  padding: 3px;
  line-height: 1.2;
}
.book-nav .book-active a {
  background-color: #09c;
}
.book-nav-thumbnails img {
  display: inline-block;
  max-width: 100px;
  max-height: 100px;
  margin: 0 10px;
}
.book-layer > figure:last-child {
  margin-bottom: 0;
}
.bookstrap-webview {
  position: absolute;
  bottom: 0;
  left: 0;
  width: 100%;
  height: 30%;
  z-index: 999;
}
.bookstrap-webview button {
  width: 25px;
  height: 25px;
  position: absolute;
  top: -25px;
  right: 0;
  border: 1px solid #aaa;
  background: white;
}
.bookstrap-webview button:after {
  content: 'x';
  color: #333;
}
.bookstrap-webview iframe {
  border: 1px solid white;
  width: 100%;
  height: 100%;
}
/* ************************
    Flipcard
************************** */
.book-flipcard {
  width: 100%;
  height: 100%;
  position: relative;
  perspective: 600px;
  -moz-perspective: 600px;
  -webkit-perspective: 600px;
}
.book-flipcard .book-flipcard-front,
.book-flipcard .book-flipcard-back {
  float: none;
  position: absolute;
  top: 0;
  left: 0;
  width: inherit;
  height: inherit;
  background: #fff;
  -moz-transform-style: preserve-3d;
  -webkit-transform-style: preserve-3d;
  -moz-backface-visibility: hidden;
  -webkit-backface-visibility: hidden;
  -o-transition: all 1s ease-in-out;
  -ms-transition: all 1s ease-in-out;
  -moz-transition: all 1s ease-in-out;
  -webkit-transition: all 1s ease-in-out;
  transition: all 1s ease-in-out;
}
.book-flipcard .book-flipcard-front figure > img,
.book-flipcard .book-flipcard-back figure > img {
  -moz-backface-visibility: hidden;
  -webkit-backface-visibility: hidden;
}
.book-flipcard .book-flipcard-front {
  z-index: 900;
  -moz-transform: rotateX(0deg) rotateY(0deg);
  -webkit-transform: rotateX(0deg) rotateY(0deg);
}
.book-flipcard.book-flipped .book-flipcard-front {
  z-index: 900;
  -moz-transform: rotateY(180deg);
  -webkit-transform: rotateY(180deg);
}
.book-flipcard .book-flipcard-back {
  z-index: 800;
  -moz-transform: rotateY(-180deg);
  -webkit-transform: rotateY(-180deg);
}
.book-flipcard.book-flipped .book-flipcard-back {
  z-index: 1000;
  -moz-transform: rotateX(0deg) rotateY(0deg);
  -webkit-transform: rotateX(0deg) rotateY(0deg);
}
/* ***************************************
  Simple animations - webkit-specific ftm
****************************************** */
/*
Fix animation flicker issue
See: http://stackoverflow.com/questions/3461441/prevent-flicker-on-webkit-transition-of-webkit-transform;
*/
.book-frame,
.book-fullbleed {
  backface-visibility: hidden;
  -webkit-backface-visibility: hidden;
  -webkit-perspective: 1000;
  -moz-backface-visibility: hidden;
}
@-webkit-keyframes book-dropin {
  0% {
    opacity: 0;
    -webkit-transform: translateY(-2000px);
  }
  60% {
    opacity: 1;
    -webkit-transform: translateY(30px);
  }
  80% {
    opacity: 1;
    -webkit-transform: translateY(-10px);
  }
  100% {
    opacity: 1;
    -webkit-transform: translateY(0);
  }
}
@-webkit-keyframes book-fadein {
  0% {
    opacity: 0;
  }
  100% {
    opacity: 1;
  }
}
/*
Hack to remove scrollbars on iPad.
We need to test this works in all environments and all devices before
always using overflow: hidden
 */
@media (orientation: landscape) and (width: 1024px) {
  .book-page {
    overflow: hidden;
  }
}
@media (orientation: portrait) and (width: 768px) {
  .book-page {
    overflow: hidden;
  }
}
@-webkit-keyframes book-slideleft {
  0% {
    -webkit-transform: translateX(-2000px);
  }
  100% {
    -webkit-transform: translateX(0);
  }
}
@-webkit-keyframes book-slideright {
  0% {
    -webkit-transform: translateX(2000px);
  }
  100% {
    -webkit-transform: translateX(0);
  }
}
@-webkit-keyframes book-pop {
  0% {
    -webkit-transform: scale(0);
  }
  50% {
    -webkit-transform: scale(1);
  }
  100% {
    -webkit-transform: scale(1);
  }
}
@-webkit-keyframes book-colorfade {
  0% {
    -webkit-filter: saturate(0%);
  }
  100% {
    -webkit-filter: saturate(100%);
  }
}
.book-row-below-fold-hidden {
  display: none !important;
}
#bookstrap-banner {
  position: relative;
  background: #fff;
  z-index: 3;
  border-bottom: 1px solid #ddd;
  height: auto;
}
.book-drawer {
  top: 0;
  position: fixed;
  left: 0;
  height: 100%;
  box-sizing: border-box;
  width: 250px;
  white-space: normal;
  -webkit-transition: -webkit-transform 450ms cubic-bezier(0.1, 0.9, 0.4, 1);
  -moz-transition: -moz-transform 450ms cubic-bezier(0.1, 0.9, 0.4, 1);
  -o-transition: -o-transform 450ms cubic-bezier(0.1, 0.9, 0.4, 1);
  transition: transform 450ms cubic-bezier(0.1, 0.9, 0.4, 1);
  z-index: 10000;
  font-family: "Helvetica Neue", Helvetica, sans-serif;
  box-shadow: 0px 0px 9px #C2C2C2;
  background: #FFF;
}
.book-drawer.book-inverse {
  color: #fff;
}
.book-drawer[data-book-drawer-position="right"] {
  right: 0;
  left: auto;
}
.book-drawer[data-book-drawer-position="bottom"] {
  top: auto;
  bottom: 0;
  left: 0;
  right: 0;
  width: auto;
  height: 280px;
}
.book-drawer[data-book-drawer-state="closed"][data-book-drawer-position="left"] {
  -webkit-transform: translateX(-259px);
  -moz-transform: translateX(-259px);
  -ms-transform: translateX(-259px);
  -o-transform: translateX(-259px);
  transform: translateX(-259px);
}
.book-drawer[data-book-drawer-state="closed"][data-book-drawer-position="bottom"] {
  -webkit-transform: translateY(259px);
  -moz-transform: translateY(259px);
  -ms-transform: translateY(259px);
  -o-transform: translateY(259px);
  transform: translateY(259px);
}
.book-drawer[data-book-drawer-state="closed"][data-book-drawer-position="right"] {
  -webkit-transform: translateX(259px);
  -moz-transform: translateX(259px);
  -ms-transform: translateX(259px);
  -o-transform: translateX(259px);
  transform: translateX(259px);
}
.book-drawer .book-drawer-handle {
  display: block;
  position: fixed;
  top: 0;
  right: 0;
  bottom: 0;
  width: 30px;
}
.book-drawer[data-book-drawer-position="bottom"] .book-drawer-handle {
  top: auto;
  right: 0;
  bottom: 250px;
  left: 0;
  width: auto;
  height: 30px;
}
.book-drawer-content {
  background: #fdfdfd;
  box-sizing: border-box;
  height: 100%;
  overflow-x: hidden;
  overflow-y: auto;
  padding: 0;
  -webkit-font-smoothing: antialiased;
  -webkit-overflow-scrolling: touch;
}
.book-drawer[data-book-drawer-position="right"] .book-drawer-content {
  left: auto;
  right: 0;
  margin: 0 0 0 30px;
  padding: 0 5px;
  border-left: 1px #111 solid;
  box-shadow: inset 2px 0 8px #000;
}
.book-drawer[data-book-drawer-position="bottom"] .book-drawer-content {
  height: 250px;
  width: 100%;
  margin: 30px 0 0 0;
  padding: 5px 0;
  border-top: 1px #111 solid;
  box-shadow: inset 0 2px 8px #000;
}
.book-inverse .book-drawer-content {
  background: #111c1f;
}
.book-drawer-content .book-title {
  padding: 0 6px;
}
.book-drawer-content h1 {
  font-family: "Helvetica Neue", Helvetica, sans-serif;
  font-weight: 200;
  font-style: normal;
  font-size: 21px;
  text-decoration: none;
  text-shadow: none;
  margin: 0;
  padding: 15px 10px 15px 20px;
  border-bottom: 1px solid rgba(0, 0, 0, 0.05);
  color: #111;
  line-height: 1;
}
.book-inverse .book-drawer-content h1 {
  color: #fff;
  border-bottom-color: rgba(255, 255, 255, 0.15);
}
.book-drawer-content section {
  padding: 0;
}
.book-drawer-content ol {
  margin: 0;
  pointer-events: none;
}
.book-drawer-content li {
  padding: 0;
}
.book-drawer-content li.book-drawer-page-active a {
  background-color: rgba(0, 0, 0, 0.05);
}
.book-inverse .book-drawer-content li.book-drawer-page-active a {
  background-color: rgba(255, 255, 255, 0.1);
}
.book-drawer-content a {
  font-family: "Helvetica Neue", Helvetica, sans-serif;
  font-weight: normal;
  font-style: normal;
  font-size: 14px;
  text-decoration: none;
  border-bottom: 1px solid rgba(0, 0, 0, 0.05);
  display: block;
  padding: 10px 5px 10px 10px;
  color: #111;
}
.book-drawer-content a:hover,
.book-drawer-content a:active {
  color: #fff;
  background-color: #09c;
  text-decoration: none;
}
.book-inverse .book-drawer-content a {
  color: #fff;
  border-bottom-color: rgba(255, 255, 255, 0.15);
}
.book-overlay-mask.book-drawer-mask {
  left: 250px;
}
.nav-button-prev,
.nav-button-next {
  display: block;
  position: absolute;
  height: 50px;
  width: 60px;
  top: 50%;
  margin-top: -25px;
  background: rgba(120, 120, 120, 0.7) center no-repeat;
  overflow: hidden;
  z-index: 9999;
  text-decoration: none;
  border: none;
  border-radius: 4px;
  text-align: center;
}
.nav-button-prev i,
.nav-button-next i {
  color: #fff;
  line-height: 50px;
  font-size: 32px;
}
.nav-button-prev:hover,
.nav-button-next:hover {
  background-color: #09c;
  text-decoration: none;
}
.nav-button-prev {
  left: 20px;
}
.nav-button-next {
  right: 20px;
}
.nav-button-disabled {
  opacity: .4;
  cursor: default;
  display: none;
}
.nav-button-disabled:hover {
  background-color: rgba(120, 120, 120, 0.7);
}
.has-section-tabs #bookstrap-viewport .column {
  margin-top: 50px;
}
.book-section-tabs {
  -webkit-tap-highlight-color: rgba(0, 0, 0, 0);
  -webkit-touch-callout: none;
  width: 100%;
  position: relative;
  z-index: 300;
}
.book-section-tabs ol {
  margin: 0;
  width: 100%;
  padding-bottom: 10px;
}
.book-section-tabs li {
  float: left;
  width: 25%;
  line-height: 40px;
  text-align: center;
  vertical-align: middle;
}
.book-section-tabs a {
  box-sizing: border-box;
  display: block;
  width: 100%;
  height: 40px;
  padding-left: 2px;
  padding-right: 2px;
}
.book-section-tabs[data-section-active="0"],
.book-section-tabs li:nth-child(1) {
  background-color: #c3d2fd;
}
.book-section-tabs[data-section-active="1"],
.book-section-tabs li:nth-child(2) {
  background-color: #defccf;
}
.book-section-tabs[data-section-active="2"],
.book-section-tabs li:nth-child(3) {
  background-color: #fcdbc0;
}
.book-section-tabs[data-section-active="3"],
.book-section-tabs li:nth-child(4) {
  background-color: #fcd1f7;
}
li[data-list="false"] {
  display: none;
}
@media all and (max-width: 604px) {
  section,
  header,
  footer {
    display: -webkit-flex;
    display: flex;
    -webkit-flex-flow: column;
    flex-flow: column;
    width: 100%;
    table-layout: auto;
  }
  .book-span6 {
    width: 100%;
  }
  .book-col {
    width: 100%;
    display: block;
    -webkit-flex: 1;
    flex: 1;
    table-layout: auto;
    /* Omit grid column gutters */
    padding: 0 0 8px 0;
  }
  /* Collapse empty paragraphs */
  p:empty,
  p > br:first-child:last-child {
    display: none;
  }
  p {
    min-height: 0;
  }
  .book-keylines .book-col {
    border-right: none ! important;
  }
  /* set default ordering */
  .book-col:nth-child(1) {
    -webkit-order: 1;
    order: 1;
  }
  .book-col:nth-child(2) {
    -webkit-order: 2;
    order: 2;
  }
  .book-col:nth-child(3) {
    -webkit-order: 3;
    order: 3;
  }
  .book-col:nth-child(4) {
    -webkit-order: 4;
    order: 4;
  }
  /* overrrides for ordering */
  .book-order-1 {
    -webkit-order: 1 ! important;
    order: 1 ! important;
  }
  .book-order-2 {
    -webkit-order: 2 ! important;
    order: 2 ! important;
  }
  .book-order-3 {
    -webkit-order: 3 ! important;
    order: 3 ! important;
  }
  .book-order-4 {
    -webkit-order: 4 ! important;
    order: 4 ! important;
  }
  .book-collapse,
  .book-hide-on-phone {
    display: none;
    width: 0;
  }
}
.book-drawer-content .book-title {
  padding: 0 10px;
  line-height: 2;
}
