/* normalize.css v3.0.3 | MIT License | github.com/necolas/normalize.css */
html {
  font-family: sans-serif;
  -ms-text-size-adjust: 100%;
  -webkit-text-size-adjust: 100%;
}

body {
  margin: 0;
}

article,
aside,
details,
figcaption,
figure,
footer,
header,
hgroup,
main,
menu,
nav,
section,
summary {
  display: block;
}

audio,
canvas,
progress,
video {
  display: inline-block;
  vertical-align: baseline;
}

audio:not([controls]) {
  display: none;
  height: 0;
}

[hidden],
template {
  display: none !important;
}

a {
  background-color: transparent;
}

b,
strong {
  font-weight: bold;
}

dfn {
  font-style: italic;
}

mark {
  background: #ff0;
  color: #000;
}

small {
  font-size: 80%;
}

sub,
sup {
  font-size: 75%;
  line-height: 0;
  position: relative;
  vertical-align: baseline;
}

sup {
  top: -0.5em;
}

sub {
  bottom: -0.25em;
}

img {
  border: 0;
}

svg:not(:root) {
  overflow: hidden;
}

figure {
  margin: 0;
}

hr {
  box-sizing: content-box;
  height: 0;
}

pre {
  overflow: auto;
}

code,
kbd,
pre,
samp {
  font-family: monospace, monospace;
  font-size: 1em;
}

button,
input,
optgroup,
select,
textarea {
  color: inherit;
  font: inherit;
  margin: 0;
}

button {
  overflow: visible;
}

button,
select {
  text-transform: none;
}

button,
html input[type="button"],
input[type="reset"],
input[type="submit"] {
  -webkit-appearance: button;
  cursor: pointer;
}

button[disabled],
html input[disabled] {
  cursor: default;
}

button::-moz-focus-inner,
input::-moz-focus-inner {
  border: 0;
  padding: 0;
}

input {
  line-height: normal;
}

input[type='checkbox'],
input[type='radio'] {
  box-sizing: border-box;
  padding: 0;
}

input[type='number']::-webkit-inner-spin-button,
input[type='number']::-webkit-outer-spin-button {
  height: auto;
}

input[type='search'] {
  -webkit-appearance: textfield;
  box-sizing: content-box;
}

input[type='search']::-webkit-search-cancel-button,
input[type='search']::-webkit-search-decoration {
  -webkit-appearance: none;
}

textarea {
  overflow: auto;
}

optgroup {
  font-weight: bold;
}

table {
  border-collapse: collapse;
  border-spacing: 0;
}

td,
th {
  padding: 0;
}

html {
  box-sizing: border-box;
  overflow-y: scroll;
}

*,
*::before,
*::after {
  box-sizing: inherit;
}

@-moz-viewport {
  width: device-width;
}

@-ms-viewport {
  width: device-width;
}

@-o-viewport {
  width: device-width;
}

@-webkit-viewport {
  width: device-width;
}

@viewport {
  width: device-width;
}

html {
  font-size: 100%;
  -webkit-tap-highlight-color: rgba(0, 0, 0, 0);
}

body {
  font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", "Roboto", "Oxygen", "Ubuntu", "Cantarell", "Fira Sans", "Droid Sans", "Helvetica Neue", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol";
  font-size: 1rem;
  line-height: 1.625;
  color: #373a3c;
  background-color: #fff;
  -ms-text-size-adjust: 100%;
  -webkit-text-size-adjust: 100%;
}

abbr[title],
abbr[data-original-title] {
  cursor: help;
}

ol,
ul,
dl {
  padding: 0;
  margin: 0;
  list-style-type: none;
}

pre {
  margin: 0;
}

img {
  vertical-align: middle;
}

[role='button'] {
  cursor: pointer;
}

a,
area,
button,
[role='button'],
input,
label,
select,
summary,
textarea {
  touch-action: manipulation;
}

th {
  text-align: left;
}

label {
  display: inline-block;
  margin: 0;
}

input,
button,
select,
textarea {
  margin: 0;
  line-height: inherit;
  border-radius: 0;
}

textarea {
  resize: vertical;
}

fieldset {
  min-width: 0;
  padding: 0;
  margin: 0;
  border: 0;
}

legend {
  display: block;
  width: 100%;
  padding: 0;
  margin-bottom: 0.5rem;
  font-size: 1.5rem;
  line-height: inherit;
  border: 0;
}

input[type='search'] {
  box-sizing: inherit;
  -webkit-appearance: none;
}

body {
  overflow-x: hidden;
}

.layout {
  display: flex;
  flex-direction: column;
  min-height: 100%;
  min-height: 100vh;
  position: relative;
}

.layout .header,
.layout .footer {
  flex: none;
}

.layout .main {
  display: flex;
  flex-direction: column;
  flex: 1 0 auto;
}

.layout .main::after {
  content: '';
  display: block;
  height: 0px;
  visibility: hidden;
}

.container {
  width: 90%;
  margin-left: auto;
  margin-right: auto;
  max-width: 1200px;
}

h1,
h2,
h3,
h4,
h5,
h6 {
  margin: 0;
  line-height: 1.3;
}

h1 {
  font-size: 2.5rem;
  font-weight: 400;
  text-rendering: optimizeLegibility;
}

h2 {
  font-size: 2.125rem;
  font-weight: 700;
}

p {
  margin: 0;
}

.lead {
  font-size: 1.5rem;
  font-weight: 300;
  line-height: 1.4;
}

@media (min-width: 670px) {
  .lead {
    font-size: 2rem;
  }
}

a:focus,
button:focus,
input:focus {
  outline: 5px solid #fc6767;
}

.js-focus-visible :focus:not(.focus-visible) {
  outline: none;
}

[tabindex='-1']:focus {
  outline: none !important;
}

.sr-skip-link:focus {
  outline: none;
}

a:focus:hover {
  outline: none;
}

.u-mt0 {
  margin-top: 0 !important;
}

.u-mt1 {
  margin-top: 1rem !important;
}

.u-mt2 {
  margin-top: 2rem !important;
}

.u-mt3 {
  margin-top: 3rem !important;
}

.u-mt4 {
  margin-top: 4rem !important;
}

.u-mb0 {
  margin-bottom: 0 !important;
}

.u-mb1 {
  margin-bottom: 1rem !important;
}

.u-mb2 {
  margin-bottom: 2rem !important;
}

.u-mb3 {
  margin-bottom: 3rem !important;
}

.u-mb4 {
  margin-bottom: 4rem !important;
}

.u-align-left {
  text-align: left !important;
}

.u-align-center {
  text-align: center !important;
}

.u-align-right {
  text-align: right !important;
}

@media (min-width: 670px) {
  .u-mobile-only {
    display: none !important;
  }
}

@media (min-width: 940px) {
  .u-tablet-only {
    display: none !important;
  }
}

@media (max-width: 939px) {
  .u-desktop-only {
    display: none !important;
  }
}

@media not print {
  .u-print-only {
    display: none !important;
  }
}

.sr-only {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}

.sr-only-focusable:active, .sr-only-focusable:focus {
  position: static;
  width: auto;
  height: auto;
  overflow: visible;
  clip: auto;
  white-space: normal;
}

.sr-skip-link {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
  font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", "Roboto", "Oxygen", "Ubuntu", "Cantarell", "Fira Sans", "Droid Sans", "Helvetica Neue", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol";
}

.sr-skip-link:active, .sr-skip-link:focus {
  position: static;
  width: auto;
  height: auto;
  overflow: visible;
  clip: auto;
  white-space: normal;
}

.sr-skip-link:focus {
  position: absolute;
  z-index: 9999;
  left: 50%;
  top: 0;
  font-size: 1rem;
  transform: translateX(-50%);
  background-color: #373a3c;
  color: #fff;
  border-radius: 0 0 0.5rem 0.5rem;
  padding: 1rem 1.5rem;
  outline: 0;
  white-space: nowrap;
}

@media (prefers-reduced-motion: reduce) {
  * {
    animation-duration: 0.01s !important;
    transition-duration: 0.01s !important;
  }
}

/*!
 * animate.css - https://animate.style/
 * Version - 4.1.1
 * Licensed under the Hippocratic License 2.1 - http://firstdonoharm.dev
 *
 * Copyright (c) 2022 Animate.css
 */
:root {
  --animate-duration: 1s;
  --animate-delay: 1s;
  --animate-repeat: 1;
}

.animate__animated {
  -webkit-animation-duration: 1s;
  animation-duration: 1s;
  -webkit-animation-duration: var(--animate-duration);
  animation-duration: var(--animate-duration);
  -webkit-animation-fill-mode: both;
  animation-fill-mode: both;
}

.animate__animated.animate__infinite {
  -webkit-animation-iteration-count: infinite;
  animation-iteration-count: infinite;
}

.animate__animated.animate__repeat-1 {
  -webkit-animation-iteration-count: 1;
  animation-iteration-count: 1;
  -webkit-animation-iteration-count: var(--animate-repeat);
  animation-iteration-count: var(--animate-repeat);
}

.animate__animated.animate__repeat-2 {
  -webkit-animation-iteration-count: calc(1 * 2);
  animation-iteration-count: calc(1 * 2);
  -webkit-animation-iteration-count: calc(var(--animate-repeat) * 2);
  animation-iteration-count: calc(var(--animate-repeat) * 2);
}

.animate__animated.animate__repeat-3 {
  -webkit-animation-iteration-count: calc(1 * 3);
  animation-iteration-count: calc(1 * 3);
  -webkit-animation-iteration-count: calc(var(--animate-repeat) * 3);
  animation-iteration-count: calc(var(--animate-repeat) * 3);
}

.animate__animated.animate__delay-1s {
  -webkit-animation-delay: 1s;
  animation-delay: 1s;
  -webkit-animation-delay: var(--animate-delay);
  animation-delay: var(--animate-delay);
}

.animate__animated.animate__delay-2s {
  -webkit-animation-delay: calc(1s * 2);
  animation-delay: calc(1s * 2);
  -webkit-animation-delay: calc(var(--animate-delay) * 2);
  animation-delay: calc(var(--animate-delay) * 2);
}

.animate__animated.animate__delay-3s {
  -webkit-animation-delay: calc(1s * 3);
  animation-delay: calc(1s * 3);
  -webkit-animation-delay: calc(var(--animate-delay) * 3);
  animation-delay: calc(var(--animate-delay) * 3);
}

.animate__animated.animate__delay-4s {
  -webkit-animation-delay: calc(1s * 4);
  animation-delay: calc(1s * 4);
  -webkit-animation-delay: calc(var(--animate-delay) * 4);
  animation-delay: calc(var(--animate-delay) * 4);
}

.animate__animated.animate__delay-5s {
  -webkit-animation-delay: calc(1s * 5);
  animation-delay: calc(1s * 5);
  -webkit-animation-delay: calc(var(--animate-delay) * 5);
  animation-delay: calc(var(--animate-delay) * 5);
}

.animate__animated.animate__faster {
  -webkit-animation-duration: calc(1s / 2);
  animation-duration: calc(1s / 2);
  -webkit-animation-duration: calc(var(--animate-duration) / 2);
  animation-duration: calc(var(--animate-duration) / 2);
}

.animate__animated.animate__fast {
  -webkit-animation-duration: calc(1s * 0.8);
  animation-duration: calc(1s * 0.8);
  -webkit-animation-duration: calc(var(--animate-duration) * 0.8);
  animation-duration: calc(var(--animate-duration) * 0.8);
}

.animate__animated.animate__slow {
  -webkit-animation-duration: calc(1s * 2);
  animation-duration: calc(1s * 2);
  -webkit-animation-duration: calc(var(--animate-duration) * 2);
  animation-duration: calc(var(--animate-duration) * 2);
}

.animate__animated.animate__slower {
  -webkit-animation-duration: calc(1s * 3);
  animation-duration: calc(1s * 3);
  -webkit-animation-duration: calc(var(--animate-duration) * 3);
  animation-duration: calc(var(--animate-duration) * 3);
}

@media print, (prefers-reduced-motion: reduce) {
  .animate__animated {
    -webkit-animation-duration: 1ms !important;
    animation-duration: 1ms !important;
    -webkit-transition-duration: 1ms !important;
    transition-duration: 1ms !important;
    -webkit-animation-iteration-count: 1 !important;
    animation-iteration-count: 1 !important;
  }
  .animate__animated[class*='Out'] {
    opacity: 0;
  }
}

/* Attention seekers  */
@-webkit-keyframes bounce {
  from,
  20%,
  53%,
  to {
    -webkit-animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);
    animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);
    -webkit-transform: translate3d(0, 0, 0);
    transform: translate3d(0, 0, 0);
  }
  40%,
  43% {
    -webkit-animation-timing-function: cubic-bezier(0.755, 0.05, 0.855, 0.06);
    animation-timing-function: cubic-bezier(0.755, 0.05, 0.855, 0.06);
    -webkit-transform: translate3d(0, -30px, 0) scaleY(1.1);
    transform: translate3d(0, -30px, 0) scaleY(1.1);
  }
  70% {
    -webkit-animation-timing-function: cubic-bezier(0.755, 0.05, 0.855, 0.06);
    animation-timing-function: cubic-bezier(0.755, 0.05, 0.855, 0.06);
    -webkit-transform: translate3d(0, -15px, 0) scaleY(1.05);
    transform: translate3d(0, -15px, 0) scaleY(1.05);
  }
  80% {
    -webkit-transition-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);
    transition-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);
    -webkit-transform: translate3d(0, 0, 0) scaleY(0.95);
    transform: translate3d(0, 0, 0) scaleY(0.95);
  }
  90% {
    -webkit-transform: translate3d(0, -4px, 0) scaleY(1.02);
    transform: translate3d(0, -4px, 0) scaleY(1.02);
  }
}

@keyframes bounce {
  from,
  20%,
  53%,
  to {
    -webkit-animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);
    animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);
    -webkit-transform: translate3d(0, 0, 0);
    transform: translate3d(0, 0, 0);
  }
  40%,
  43% {
    -webkit-animation-timing-function: cubic-bezier(0.755, 0.05, 0.855, 0.06);
    animation-timing-function: cubic-bezier(0.755, 0.05, 0.855, 0.06);
    -webkit-transform: translate3d(0, -30px, 0) scaleY(1.1);
    transform: translate3d(0, -30px, 0) scaleY(1.1);
  }
  70% {
    -webkit-animation-timing-function: cubic-bezier(0.755, 0.05, 0.855, 0.06);
    animation-timing-function: cubic-bezier(0.755, 0.05, 0.855, 0.06);
    -webkit-transform: translate3d(0, -15px, 0) scaleY(1.05);
    transform: translate3d(0, -15px, 0) scaleY(1.05);
  }
  80% {
    -webkit-transition-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);
    transition-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);
    -webkit-transform: translate3d(0, 0, 0) scaleY(0.95);
    transform: translate3d(0, 0, 0) scaleY(0.95);
  }
  90% {
    -webkit-transform: translate3d(0, -4px, 0) scaleY(1.02);
    transform: translate3d(0, -4px, 0) scaleY(1.02);
  }
}

.animate__bounce {
  -webkit-animation-name: bounce;
  animation-name: bounce;
  -webkit-transform-origin: center bottom;
  transform-origin: center bottom;
}

@-webkit-keyframes flash {
  from,
  50%,
  to {
    opacity: 1;
  }
  25%,
  75% {
    opacity: 0;
  }
}

@keyframes flash {
  from,
  50%,
  to {
    opacity: 1;
  }
  25%,
  75% {
    opacity: 0;
  }
}

.animate__flash {
  -webkit-animation-name: flash;
  animation-name: flash;
}

/* originally authored by Nick Pettit - https://github.com/nickpettit/glide */
@-webkit-keyframes pulse {
  from {
    -webkit-transform: scale3d(1, 1, 1);
    transform: scale3d(1, 1, 1);
  }
  50% {
    -webkit-transform: scale3d(1.05, 1.05, 1.05);
    transform: scale3d(1.05, 1.05, 1.05);
  }
  to {
    -webkit-transform: scale3d(1, 1, 1);
    transform: scale3d(1, 1, 1);
  }
}

@keyframes pulse {
  from {
    -webkit-transform: scale3d(1, 1, 1);
    transform: scale3d(1, 1, 1);
  }
  50% {
    -webkit-transform: scale3d(1.05, 1.05, 1.05);
    transform: scale3d(1.05, 1.05, 1.05);
  }
  to {
    -webkit-transform: scale3d(1, 1, 1);
    transform: scale3d(1, 1, 1);
  }
}

.animate__pulse {
  -webkit-animation-name: pulse;
  animation-name: pulse;
  -webkit-animation-timing-function: ease-in-out;
  animation-timing-function: ease-in-out;
}

@-webkit-keyframes rubberBand {
  from {
    -webkit-transform: scale3d(1, 1, 1);
    transform: scale3d(1, 1, 1);
  }
  30% {
    -webkit-transform: scale3d(1.25, 0.75, 1);
    transform: scale3d(1.25, 0.75, 1);
  }
  40% {
    -webkit-transform: scale3d(0.75, 1.25, 1);
    transform: scale3d(0.75, 1.25, 1);
  }
  50% {
    -webkit-transform: scale3d(1.15, 0.85, 1);
    transform: scale3d(1.15, 0.85, 1);
  }
  65% {
    -webkit-transform: scale3d(0.95, 1.05, 1);
    transform: scale3d(0.95, 1.05, 1);
  }
  75% {
    -webkit-transform: scale3d(1.05, 0.95, 1);
    transform: scale3d(1.05, 0.95, 1);
  }
  to {
    -webkit-transform: scale3d(1, 1, 1);
    transform: scale3d(1, 1, 1);
  }
}

@keyframes rubberBand {
  from {
    -webkit-transform: scale3d(1, 1, 1);
    transform: scale3d(1, 1, 1);
  }
  30% {
    -webkit-transform: scale3d(1.25, 0.75, 1);
    transform: scale3d(1.25, 0.75, 1);
  }
  40% {
    -webkit-transform: scale3d(0.75, 1.25, 1);
    transform: scale3d(0.75, 1.25, 1);
  }
  50% {
    -webkit-transform: scale3d(1.15, 0.85, 1);
    transform: scale3d(1.15, 0.85, 1);
  }
  65% {
    -webkit-transform: scale3d(0.95, 1.05, 1);
    transform: scale3d(0.95, 1.05, 1);
  }
  75% {
    -webkit-transform: scale3d(1.05, 0.95, 1);
    transform: scale3d(1.05, 0.95, 1);
  }
  to {
    -webkit-transform: scale3d(1, 1, 1);
    transform: scale3d(1, 1, 1);
  }
}

.animate__rubberBand {
  -webkit-animation-name: rubberBand;
  animation-name: rubberBand;
}

@-webkit-keyframes shakeX {
  from,
  to {
    -webkit-transform: translate3d(0, 0, 0);
    transform: translate3d(0, 0, 0);
  }
  10%,
  30%,
  50%,
  70%,
  90% {
    -webkit-transform: translate3d(-10px, 0, 0);
    transform: translate3d(-10px, 0, 0);
  }
  20%,
  40%,
  60%,
  80% {
    -webkit-transform: translate3d(10px, 0, 0);
    transform: translate3d(10px, 0, 0);
  }
}

@keyframes shakeX {
  from,
  to {
    -webkit-transform: translate3d(0, 0, 0);
    transform: translate3d(0, 0, 0);
  }
  10%,
  30%,
  50%,
  70%,
  90% {
    -webkit-transform: translate3d(-10px, 0, 0);
    transform: translate3d(-10px, 0, 0);
  }
  20%,
  40%,
  60%,
  80% {
    -webkit-transform: translate3d(10px, 0, 0);
    transform: translate3d(10px, 0, 0);
  }
}

.animate__shakeX {
  -webkit-animation-name: shakeX;
  animation-name: shakeX;
}

@-webkit-keyframes shakeY {
  from,
  to {
    -webkit-transform: translate3d(0, 0, 0);
    transform: translate3d(0, 0, 0);
  }
  10%,
  30%,
  50%,
  70%,
  90% {
    -webkit-transform: translate3d(0, -10px, 0);
    transform: translate3d(0, -10px, 0);
  }
  20%,
  40%,
  60%,
  80% {
    -webkit-transform: translate3d(0, 10px, 0);
    transform: translate3d(0, 10px, 0);
  }
}

@keyframes shakeY {
  from,
  to {
    -webkit-transform: translate3d(0, 0, 0);
    transform: translate3d(0, 0, 0);
  }
  10%,
  30%,
  50%,
  70%,
  90% {
    -webkit-transform: translate3d(0, -10px, 0);
    transform: translate3d(0, -10px, 0);
  }
  20%,
  40%,
  60%,
  80% {
    -webkit-transform: translate3d(0, 10px, 0);
    transform: translate3d(0, 10px, 0);
  }
}

.animate__shakeY {
  -webkit-animation-name: shakeY;
  animation-name: shakeY;
}

@-webkit-keyframes headShake {
  0% {
    -webkit-transform: translateX(0);
    transform: translateX(0);
  }
  6.5% {
    -webkit-transform: translateX(-6px) rotateY(-9deg);
    transform: translateX(-6px) rotateY(-9deg);
  }
  18.5% {
    -webkit-transform: translateX(5px) rotateY(7deg);
    transform: translateX(5px) rotateY(7deg);
  }
  31.5% {
    -webkit-transform: translateX(-3px) rotateY(-5deg);
    transform: translateX(-3px) rotateY(-5deg);
  }
  43.5% {
    -webkit-transform: translateX(2px) rotateY(3deg);
    transform: translateX(2px) rotateY(3deg);
  }
  50% {
    -webkit-transform: translateX(0);
    transform: translateX(0);
  }
}

@keyframes headShake {
  0% {
    -webkit-transform: translateX(0);
    transform: translateX(0);
  }
  6.5% {
    -webkit-transform: translateX(-6px) rotateY(-9deg);
    transform: translateX(-6px) rotateY(-9deg);
  }
  18.5% {
    -webkit-transform: translateX(5px) rotateY(7deg);
    transform: translateX(5px) rotateY(7deg);
  }
  31.5% {
    -webkit-transform: translateX(-3px) rotateY(-5deg);
    transform: translateX(-3px) rotateY(-5deg);
  }
  43.5% {
    -webkit-transform: translateX(2px) rotateY(3deg);
    transform: translateX(2px) rotateY(3deg);
  }
  50% {
    -webkit-transform: translateX(0);
    transform: translateX(0);
  }
}

.animate__headShake {
  -webkit-animation-timing-function: ease-in-out;
  animation-timing-function: ease-in-out;
  -webkit-animation-name: headShake;
  animation-name: headShake;
}

@-webkit-keyframes swing {
  20% {
    -webkit-transform: rotate3d(0, 0, 1, 15deg);
    transform: rotate3d(0, 0, 1, 15deg);
  }
  40% {
    -webkit-transform: rotate3d(0, 0, 1, -10deg);
    transform: rotate3d(0, 0, 1, -10deg);
  }
  60% {
    -webkit-transform: rotate3d(0, 0, 1, 5deg);
    transform: rotate3d(0, 0, 1, 5deg);
  }
  80% {
    -webkit-transform: rotate3d(0, 0, 1, -5deg);
    transform: rotate3d(0, 0, 1, -5deg);
  }
  to {
    -webkit-transform: rotate3d(0, 0, 1, 0deg);
    transform: rotate3d(0, 0, 1, 0deg);
  }
}

@keyframes swing {
  20% {
    -webkit-transform: rotate3d(0, 0, 1, 15deg);
    transform: rotate3d(0, 0, 1, 15deg);
  }
  40% {
    -webkit-transform: rotate3d(0, 0, 1, -10deg);
    transform: rotate3d(0, 0, 1, -10deg);
  }
  60% {
    -webkit-transform: rotate3d(0, 0, 1, 5deg);
    transform: rotate3d(0, 0, 1, 5deg);
  }
  80% {
    -webkit-transform: rotate3d(0, 0, 1, -5deg);
    transform: rotate3d(0, 0, 1, -5deg);
  }
  to {
    -webkit-transform: rotate3d(0, 0, 1, 0deg);
    transform: rotate3d(0, 0, 1, 0deg);
  }
}

.animate__swing {
  -webkit-transform-origin: top center;
  transform-origin: top center;
  -webkit-animation-name: swing;
  animation-name: swing;
}

@-webkit-keyframes tada {
  from {
    -webkit-transform: scale3d(1, 1, 1);
    transform: scale3d(1, 1, 1);
  }
  10%,
  20% {
    -webkit-transform: scale3d(0.9, 0.9, 0.9) rotate3d(0, 0, 1, -3deg);
    transform: scale3d(0.9, 0.9, 0.9) rotate3d(0, 0, 1, -3deg);
  }
  30%,
  50%,
  70%,
  90% {
    -webkit-transform: scale3d(1.1, 1.1, 1.1) rotate3d(0, 0, 1, 3deg);
    transform: scale3d(1.1, 1.1, 1.1) rotate3d(0, 0, 1, 3deg);
  }
  40%,
  60%,
  80% {
    -webkit-transform: scale3d(1.1, 1.1, 1.1) rotate3d(0, 0, 1, -3deg);
    transform: scale3d(1.1, 1.1, 1.1) rotate3d(0, 0, 1, -3deg);
  }
  to {
    -webkit-transform: scale3d(1, 1, 1);
    transform: scale3d(1, 1, 1);
  }
}

@keyframes tada {
  from {
    -webkit-transform: scale3d(1, 1, 1);
    transform: scale3d(1, 1, 1);
  }
  10%,
  20% {
    -webkit-transform: scale3d(0.9, 0.9, 0.9) rotate3d(0, 0, 1, -3deg);
    transform: scale3d(0.9, 0.9, 0.9) rotate3d(0, 0, 1, -3deg);
  }
  30%,
  50%,
  70%,
  90% {
    -webkit-transform: scale3d(1.1, 1.1, 1.1) rotate3d(0, 0, 1, 3deg);
    transform: scale3d(1.1, 1.1, 1.1) rotate3d(0, 0, 1, 3deg);
  }
  40%,
  60%,
  80% {
    -webkit-transform: scale3d(1.1, 1.1, 1.1) rotate3d(0, 0, 1, -3deg);
    transform: scale3d(1.1, 1.1, 1.1) rotate3d(0, 0, 1, -3deg);
  }
  to {
    -webkit-transform: scale3d(1, 1, 1);
    transform: scale3d(1, 1, 1);
  }
}

.animate__tada {
  -webkit-animation-name: tada;
  animation-name: tada;
}

/* originally authored by Nick Pettit - https://github.com/nickpettit/glide */
@-webkit-keyframes wobble {
  from {
    -webkit-transform: translate3d(0, 0, 0);
    transform: translate3d(0, 0, 0);
  }
  15% {
    -webkit-transform: translate3d(-25%, 0, 0) rotate3d(0, 0, 1, -5deg);
    transform: translate3d(-25%, 0, 0) rotate3d(0, 0, 1, -5deg);
  }
  30% {
    -webkit-transform: translate3d(20%, 0, 0) rotate3d(0, 0, 1, 3deg);
    transform: translate3d(20%, 0, 0) rotate3d(0, 0, 1, 3deg);
  }
  45% {
    -webkit-transform: translate3d(-15%, 0, 0) rotate3d(0, 0, 1, -3deg);
    transform: translate3d(-15%, 0, 0) rotate3d(0, 0, 1, -3deg);
  }
  60% {
    -webkit-transform: translate3d(10%, 0, 0) rotate3d(0, 0, 1, 2deg);
    transform: translate3d(10%, 0, 0) rotate3d(0, 0, 1, 2deg);
  }
  75% {
    -webkit-transform: translate3d(-5%, 0, 0) rotate3d(0, 0, 1, -1deg);
    transform: translate3d(-5%, 0, 0) rotate3d(0, 0, 1, -1deg);
  }
  to {
    -webkit-transform: translate3d(0, 0, 0);
    transform: translate3d(0, 0, 0);
  }
}

@keyframes wobble {
  from {
    -webkit-transform: translate3d(0, 0, 0);
    transform: translate3d(0, 0, 0);
  }
  15% {
    -webkit-transform: translate3d(-25%, 0, 0) rotate3d(0, 0, 1, -5deg);
    transform: translate3d(-25%, 0, 0) rotate3d(0, 0, 1, -5deg);
  }
  30% {
    -webkit-transform: translate3d(20%, 0, 0) rotate3d(0, 0, 1, 3deg);
    transform: translate3d(20%, 0, 0) rotate3d(0, 0, 1, 3deg);
  }
  45% {
    -webkit-transform: translate3d(-15%, 0, 0) rotate3d(0, 0, 1, -3deg);
    transform: translate3d(-15%, 0, 0) rotate3d(0, 0, 1, -3deg);
  }
  60% {
    -webkit-transform: translate3d(10%, 0, 0) rotate3d(0, 0, 1, 2deg);
    transform: translate3d(10%, 0, 0) rotate3d(0, 0, 1, 2deg);
  }
  75% {
    -webkit-transform: translate3d(-5%, 0, 0) rotate3d(0, 0, 1, -1deg);
    transform: translate3d(-5%, 0, 0) rotate3d(0, 0, 1, -1deg);
  }
  to {
    -webkit-transform: translate3d(0, 0, 0);
    transform: translate3d(0, 0, 0);
  }
}

.animate__wobble {
  -webkit-animation-name: wobble;
  animation-name: wobble;
}

@-webkit-keyframes jello {
  from,
  11.1%,
  to {
    -webkit-transform: translate3d(0, 0, 0);
    transform: translate3d(0, 0, 0);
  }
  22.2% {
    -webkit-transform: skewX(-12.5deg) skewY(-12.5deg);
    transform: skewX(-12.5deg) skewY(-12.5deg);
  }
  33.3% {
    -webkit-transform: skewX(6.25deg) skewY(6.25deg);
    transform: skewX(6.25deg) skewY(6.25deg);
  }
  44.4% {
    -webkit-transform: skewX(-3.125deg) skewY(-3.125deg);
    transform: skewX(-3.125deg) skewY(-3.125deg);
  }
  55.5% {
    -webkit-transform: skewX(1.5625deg) skewY(1.5625deg);
    transform: skewX(1.5625deg) skewY(1.5625deg);
  }
  66.6% {
    -webkit-transform: skewX(-0.78125deg) skewY(-0.78125deg);
    transform: skewX(-0.78125deg) skewY(-0.78125deg);
  }
  77.7% {
    -webkit-transform: skewX(0.39062deg) skewY(0.39062deg);
    transform: skewX(0.39062deg) skewY(0.39062deg);
  }
  88.8% {
    -webkit-transform: skewX(-0.19531deg) skewY(-0.19531deg);
    transform: skewX(-0.19531deg) skewY(-0.19531deg);
  }
}

@keyframes jello {
  from,
  11.1%,
  to {
    -webkit-transform: translate3d(0, 0, 0);
    transform: translate3d(0, 0, 0);
  }
  22.2% {
    -webkit-transform: skewX(-12.5deg) skewY(-12.5deg);
    transform: skewX(-12.5deg) skewY(-12.5deg);
  }
  33.3% {
    -webkit-transform: skewX(6.25deg) skewY(6.25deg);
    transform: skewX(6.25deg) skewY(6.25deg);
  }
  44.4% {
    -webkit-transform: skewX(-3.125deg) skewY(-3.125deg);
    transform: skewX(-3.125deg) skewY(-3.125deg);
  }
  55.5% {
    -webkit-transform: skewX(1.5625deg) skewY(1.5625deg);
    transform: skewX(1.5625deg) skewY(1.5625deg);
  }
  66.6% {
    -webkit-transform: skewX(-0.78125deg) skewY(-0.78125deg);
    transform: skewX(-0.78125deg) skewY(-0.78125deg);
  }
  77.7% {
    -webkit-transform: skewX(0.39062deg) skewY(0.39062deg);
    transform: skewX(0.39062deg) skewY(0.39062deg);
  }
  88.8% {
    -webkit-transform: skewX(-0.19531deg) skewY(-0.19531deg);
    transform: skewX(-0.19531deg) skewY(-0.19531deg);
  }
}

.animate__jello {
  -webkit-animation-name: jello;
  animation-name: jello;
  -webkit-transform-origin: center;
  transform-origin: center;
}

@-webkit-keyframes heartBeat {
  0% {
    -webkit-transform: scale(1);
    transform: scale(1);
  }
  14% {
    -webkit-transform: scale(1.3);
    transform: scale(1.3);
  }
  28% {
    -webkit-transform: scale(1);
    transform: scale(1);
  }
  42% {
    -webkit-transform: scale(1.3);
    transform: scale(1.3);
  }
  70% {
    -webkit-transform: scale(1);
    transform: scale(1);
  }
}

@keyframes heartBeat {
  0% {
    -webkit-transform: scale(1);
    transform: scale(1);
  }
  14% {
    -webkit-transform: scale(1.3);
    transform: scale(1.3);
  }
  28% {
    -webkit-transform: scale(1);
    transform: scale(1);
  }
  42% {
    -webkit-transform: scale(1.3);
    transform: scale(1.3);
  }
  70% {
    -webkit-transform: scale(1);
    transform: scale(1);
  }
}

.animate__heartBeat {
  -webkit-animation-name: heartBeat;
  animation-name: heartBeat;
  -webkit-animation-duration: calc(1s * 1.3);
  animation-duration: calc(1s * 1.3);
  -webkit-animation-duration: calc(var(--animate-duration) * 1.3);
  animation-duration: calc(var(--animate-duration) * 1.3);
  -webkit-animation-timing-function: ease-in-out;
  animation-timing-function: ease-in-out;
}

/* Back entrances */
@-webkit-keyframes backInDown {
  0% {
    -webkit-transform: translateY(-1200px) scale(0.7);
    transform: translateY(-1200px) scale(0.7);
    opacity: 0.7;
  }
  80% {
    -webkit-transform: translateY(0px) scale(0.7);
    transform: translateY(0px) scale(0.7);
    opacity: 0.7;
  }
  100% {
    -webkit-transform: scale(1);
    transform: scale(1);
    opacity: 1;
  }
}

@keyframes backInDown {
  0% {
    -webkit-transform: translateY(-1200px) scale(0.7);
    transform: translateY(-1200px) scale(0.7);
    opacity: 0.7;
  }
  80% {
    -webkit-transform: translateY(0px) scale(0.7);
    transform: translateY(0px) scale(0.7);
    opacity: 0.7;
  }
  100% {
    -webkit-transform: scale(1);
    transform: scale(1);
    opacity: 1;
  }
}

.animate__backInDown {
  -webkit-animation-name: backInDown;
  animation-name: backInDown;
}

@-webkit-keyframes backInLeft {
  0% {
    -webkit-transform: translateX(-2000px) scale(0.7);
    transform: translateX(-2000px) scale(0.7);
    opacity: 0.7;
  }
  80% {
    -webkit-transform: translateX(0px) scale(0.7);
    transform: translateX(0px) scale(0.7);
    opacity: 0.7;
  }
  100% {
    -webkit-transform: scale(1);
    transform: scale(1);
    opacity: 1;
  }
}

@keyframes backInLeft {
  0% {
    -webkit-transform: translateX(-2000px) scale(0.7);
    transform: translateX(-2000px) scale(0.7);
    opacity: 0.7;
  }
  80% {
    -webkit-transform: translateX(0px) scale(0.7);
    transform: translateX(0px) scale(0.7);
    opacity: 0.7;
  }
  100% {
    -webkit-transform: scale(1);
    transform: scale(1);
    opacity: 1;
  }
}

.animate__backInLeft {
  -webkit-animation-name: backInLeft;
  animation-name: backInLeft;
}

@-webkit-keyframes backInRight {
  0% {
    -webkit-transform: translateX(2000px) scale(0.7);
    transform: translateX(2000px) scale(0.7);
    opacity: 0.7;
  }
  80% {
    -webkit-transform: translateX(0px) scale(0.7);
    transform: translateX(0px) scale(0.7);
    opacity: 0.7;
  }
  100% {
    -webkit-transform: scale(1);
    transform: scale(1);
    opacity: 1;
  }
}

@keyframes backInRight {
  0% {
    -webkit-transform: translateX(2000px) scale(0.7);
    transform: translateX(2000px) scale(0.7);
    opacity: 0.7;
  }
  80% {
    -webkit-transform: translateX(0px) scale(0.7);
    transform: translateX(0px) scale(0.7);
    opacity: 0.7;
  }
  100% {
    -webkit-transform: scale(1);
    transform: scale(1);
    opacity: 1;
  }
}

.animate__backInRight {
  -webkit-animation-name: backInRight;
  animation-name: backInRight;
}

@-webkit-keyframes backInUp {
  0% {
    -webkit-transform: translateY(1200px) scale(0.7);
    transform: translateY(1200px) scale(0.7);
    opacity: 0.7;
  }
  80% {
    -webkit-transform: translateY(0px) scale(0.7);
    transform: translateY(0px) scale(0.7);
    opacity: 0.7;
  }
  100% {
    -webkit-transform: scale(1);
    transform: scale(1);
    opacity: 1;
  }
}

@keyframes backInUp {
  0% {
    -webkit-transform: translateY(1200px) scale(0.7);
    transform: translateY(1200px) scale(0.7);
    opacity: 0.7;
  }
  80% {
    -webkit-transform: translateY(0px) scale(0.7);
    transform: translateY(0px) scale(0.7);
    opacity: 0.7;
  }
  100% {
    -webkit-transform: scale(1);
    transform: scale(1);
    opacity: 1;
  }
}

.animate__backInUp {
  -webkit-animation-name: backInUp;
  animation-name: backInUp;
}

/* Back exits */
@-webkit-keyframes backOutDown {
  0% {
    -webkit-transform: scale(1);
    transform: scale(1);
    opacity: 1;
  }
  20% {
    -webkit-transform: translateY(0px) scale(0.7);
    transform: translateY(0px) scale(0.7);
    opacity: 0.7;
  }
  100% {
    -webkit-transform: translateY(700px) scale(0.7);
    transform: translateY(700px) scale(0.7);
    opacity: 0.7;
  }
}

@keyframes backOutDown {
  0% {
    -webkit-transform: scale(1);
    transform: scale(1);
    opacity: 1;
  }
  20% {
    -webkit-transform: translateY(0px) scale(0.7);
    transform: translateY(0px) scale(0.7);
    opacity: 0.7;
  }
  100% {
    -webkit-transform: translateY(700px) scale(0.7);
    transform: translateY(700px) scale(0.7);
    opacity: 0.7;
  }
}

.animate__backOutDown {
  -webkit-animation-name: backOutDown;
  animation-name: backOutDown;
}

@-webkit-keyframes backOutLeft {
  0% {
    -webkit-transform: scale(1);
    transform: scale(1);
    opacity: 1;
  }
  20% {
    -webkit-transform: translateX(0px) scale(0.7);
    transform: translateX(0px) scale(0.7);
    opacity: 0.7;
  }
  100% {
    -webkit-transform: translateX(-2000px) scale(0.7);
    transform: translateX(-2000px) scale(0.7);
    opacity: 0.7;
  }
}

@keyframes backOutLeft {
  0% {
    -webkit-transform: scale(1);
    transform: scale(1);
    opacity: 1;
  }
  20% {
    -webkit-transform: translateX(0px) scale(0.7);
    transform: translateX(0px) scale(0.7);
    opacity: 0.7;
  }
  100% {
    -webkit-transform: translateX(-2000px) scale(0.7);
    transform: translateX(-2000px) scale(0.7);
    opacity: 0.7;
  }
}

.animate__backOutLeft {
  -webkit-animation-name: backOutLeft;
  animation-name: backOutLeft;
}

@-webkit-keyframes backOutRight {
  0% {
    -webkit-transform: scale(1);
    transform: scale(1);
    opacity: 1;
  }
  20% {
    -webkit-transform: translateX(0px) scale(0.7);
    transform: translateX(0px) scale(0.7);
    opacity: 0.7;
  }
  100% {
    -webkit-transform: translateX(2000px) scale(0.7);
    transform: translateX(2000px) scale(0.7);
    opacity: 0.7;
  }
}

@keyframes backOutRight {
  0% {
    -webkit-transform: scale(1);
    transform: scale(1);
    opacity: 1;
  }
  20% {
    -webkit-transform: translateX(0px) scale(0.7);
    transform: translateX(0px) scale(0.7);
    opacity: 0.7;
  }
  100% {
    -webkit-transform: translateX(2000px) scale(0.7);
    transform: translateX(2000px) scale(0.7);
    opacity: 0.7;
  }
}

.animate__backOutRight {
  -webkit-animation-name: backOutRight;
  animation-name: backOutRight;
}

@-webkit-keyframes backOutUp {
  0% {
    -webkit-transform: scale(1);
    transform: scale(1);
    opacity: 1;
  }
  20% {
    -webkit-transform: translateY(0px) scale(0.7);
    transform: translateY(0px) scale(0.7);
    opacity: 0.7;
  }
  100% {
    -webkit-transform: translateY(-700px) scale(0.7);
    transform: translateY(-700px) scale(0.7);
    opacity: 0.7;
  }
}

@keyframes backOutUp {
  0% {
    -webkit-transform: scale(1);
    transform: scale(1);
    opacity: 1;
  }
  20% {
    -webkit-transform: translateY(0px) scale(0.7);
    transform: translateY(0px) scale(0.7);
    opacity: 0.7;
  }
  100% {
    -webkit-transform: translateY(-700px) scale(0.7);
    transform: translateY(-700px) scale(0.7);
    opacity: 0.7;
  }
}

.animate__backOutUp {
  -webkit-animation-name: backOutUp;
  animation-name: backOutUp;
}

/* Bouncing entrances  */
@-webkit-keyframes bounceIn {
  from,
  20%,
  40%,
  60%,
  80%,
  to {
    -webkit-animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);
    animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);
  }
  0% {
    opacity: 0;
    -webkit-transform: scale3d(0.3, 0.3, 0.3);
    transform: scale3d(0.3, 0.3, 0.3);
  }
  20% {
    -webkit-transform: scale3d(1.1, 1.1, 1.1);
    transform: scale3d(1.1, 1.1, 1.1);
  }
  40% {
    -webkit-transform: scale3d(0.9, 0.9, 0.9);
    transform: scale3d(0.9, 0.9, 0.9);
  }
  60% {
    opacity: 1;
    -webkit-transform: scale3d(1.03, 1.03, 1.03);
    transform: scale3d(1.03, 1.03, 1.03);
  }
  80% {
    -webkit-transform: scale3d(0.97, 0.97, 0.97);
    transform: scale3d(0.97, 0.97, 0.97);
  }
  to {
    opacity: 1;
    -webkit-transform: scale3d(1, 1, 1);
    transform: scale3d(1, 1, 1);
  }
}

@keyframes bounceIn {
  from,
  20%,
  40%,
  60%,
  80%,
  to {
    -webkit-animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);
    animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);
  }
  0% {
    opacity: 0;
    -webkit-transform: scale3d(0.3, 0.3, 0.3);
    transform: scale3d(0.3, 0.3, 0.3);
  }
  20% {
    -webkit-transform: scale3d(1.1, 1.1, 1.1);
    transform: scale3d(1.1, 1.1, 1.1);
  }
  40% {
    -webkit-transform: scale3d(0.9, 0.9, 0.9);
    transform: scale3d(0.9, 0.9, 0.9);
  }
  60% {
    opacity: 1;
    -webkit-transform: scale3d(1.03, 1.03, 1.03);
    transform: scale3d(1.03, 1.03, 1.03);
  }
  80% {
    -webkit-transform: scale3d(0.97, 0.97, 0.97);
    transform: scale3d(0.97, 0.97, 0.97);
  }
  to {
    opacity: 1;
    -webkit-transform: scale3d(1, 1, 1);
    transform: scale3d(1, 1, 1);
  }
}

.animate__bounceIn {
  -webkit-animation-duration: calc(1s * 0.75);
  animation-duration: calc(1s * 0.75);
  -webkit-animation-duration: calc(var(--animate-duration) * 0.75);
  animation-duration: calc(var(--animate-duration) * 0.75);
  -webkit-animation-name: bounceIn;
  animation-name: bounceIn;
}

@-webkit-keyframes bounceInDown {
  from,
  60%,
  75%,
  90%,
  to {
    -webkit-animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);
    animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);
  }
  0% {
    opacity: 0;
    -webkit-transform: translate3d(0, -3000px, 0) scaleY(3);
    transform: translate3d(0, -3000px, 0) scaleY(3);
  }
  60% {
    opacity: 1;
    -webkit-transform: translate3d(0, 25px, 0) scaleY(0.9);
    transform: translate3d(0, 25px, 0) scaleY(0.9);
  }
  75% {
    -webkit-transform: translate3d(0, -10px, 0) scaleY(0.95);
    transform: translate3d(0, -10px, 0) scaleY(0.95);
  }
  90% {
    -webkit-transform: translate3d(0, 5px, 0) scaleY(0.985);
    transform: translate3d(0, 5px, 0) scaleY(0.985);
  }
  to {
    -webkit-transform: translate3d(0, 0, 0);
    transform: translate3d(0, 0, 0);
  }
}

@keyframes bounceInDown {
  from,
  60%,
  75%,
  90%,
  to {
    -webkit-animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);
    animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);
  }
  0% {
    opacity: 0;
    -webkit-transform: translate3d(0, -3000px, 0) scaleY(3);
    transform: translate3d(0, -3000px, 0) scaleY(3);
  }
  60% {
    opacity: 1;
    -webkit-transform: translate3d(0, 25px, 0) scaleY(0.9);
    transform: translate3d(0, 25px, 0) scaleY(0.9);
  }
  75% {
    -webkit-transform: translate3d(0, -10px, 0) scaleY(0.95);
    transform: translate3d(0, -10px, 0) scaleY(0.95);
  }
  90% {
    -webkit-transform: translate3d(0, 5px, 0) scaleY(0.985);
    transform: translate3d(0, 5px, 0) scaleY(0.985);
  }
  to {
    -webkit-transform: translate3d(0, 0, 0);
    transform: translate3d(0, 0, 0);
  }
}

.animate__bounceInDown {
  -webkit-animation-name: bounceInDown;
  animation-name: bounceInDown;
}

@-webkit-keyframes bounceInLeft {
  from,
  60%,
  75%,
  90%,
  to {
    -webkit-animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);
    animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);
  }
  0% {
    opacity: 0;
    -webkit-transform: translate3d(-3000px, 0, 0) scaleX(3);
    transform: translate3d(-3000px, 0, 0) scaleX(3);
  }
  60% {
    opacity: 1;
    -webkit-transform: translate3d(25px, 0, 0) scaleX(1);
    transform: translate3d(25px, 0, 0) scaleX(1);
  }
  75% {
    -webkit-transform: translate3d(-10px, 0, 0) scaleX(0.98);
    transform: translate3d(-10px, 0, 0) scaleX(0.98);
  }
  90% {
    -webkit-transform: translate3d(5px, 0, 0) scaleX(0.995);
    transform: translate3d(5px, 0, 0) scaleX(0.995);
  }
  to {
    -webkit-transform: translate3d(0, 0, 0);
    transform: translate3d(0, 0, 0);
  }
}

@keyframes bounceInLeft {
  from,
  60%,
  75%,
  90%,
  to {
    -webkit-animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);
    animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);
  }
  0% {
    opacity: 0;
    -webkit-transform: translate3d(-3000px, 0, 0) scaleX(3);
    transform: translate3d(-3000px, 0, 0) scaleX(3);
  }
  60% {
    opacity: 1;
    -webkit-transform: translate3d(25px, 0, 0) scaleX(1);
    transform: translate3d(25px, 0, 0) scaleX(1);
  }
  75% {
    -webkit-transform: translate3d(-10px, 0, 0) scaleX(0.98);
    transform: translate3d(-10px, 0, 0) scaleX(0.98);
  }
  90% {
    -webkit-transform: translate3d(5px, 0, 0) scaleX(0.995);
    transform: translate3d(5px, 0, 0) scaleX(0.995);
  }
  to {
    -webkit-transform: translate3d(0, 0, 0);
    transform: translate3d(0, 0, 0);
  }
}

.animate__bounceInLeft {
  -webkit-animation-name: bounceInLeft;
  animation-name: bounceInLeft;
}

@-webkit-keyframes bounceInRight {
  from,
  60%,
  75%,
  90%,
  to {
    -webkit-animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);
    animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);
  }
  from {
    opacity: 0;
    -webkit-transform: translate3d(3000px, 0, 0) scaleX(3);
    transform: translate3d(3000px, 0, 0) scaleX(3);
  }
  60% {
    opacity: 1;
    -webkit-transform: translate3d(-25px, 0, 0) scaleX(1);
    transform: translate3d(-25px, 0, 0) scaleX(1);
  }
  75% {
    -webkit-transform: translate3d(10px, 0, 0) scaleX(0.98);
    transform: translate3d(10px, 0, 0) scaleX(0.98);
  }
  90% {
    -webkit-transform: translate3d(-5px, 0, 0) scaleX(0.995);
    transform: translate3d(-5px, 0, 0) scaleX(0.995);
  }
  to {
    -webkit-transform: translate3d(0, 0, 0);
    transform: translate3d(0, 0, 0);
  }
}

@keyframes bounceInRight {
  from,
  60%,
  75%,
  90%,
  to {
    -webkit-animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);
    animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);
  }
  from {
    opacity: 0;
    -webkit-transform: translate3d(3000px, 0, 0) scaleX(3);
    transform: translate3d(3000px, 0, 0) scaleX(3);
  }
  60% {
    opacity: 1;
    -webkit-transform: translate3d(-25px, 0, 0) scaleX(1);
    transform: translate3d(-25px, 0, 0) scaleX(1);
  }
  75% {
    -webkit-transform: translate3d(10px, 0, 0) scaleX(0.98);
    transform: translate3d(10px, 0, 0) scaleX(0.98);
  }
  90% {
    -webkit-transform: translate3d(-5px, 0, 0) scaleX(0.995);
    transform: translate3d(-5px, 0, 0) scaleX(0.995);
  }
  to {
    -webkit-transform: translate3d(0, 0, 0);
    transform: translate3d(0, 0, 0);
  }
}

.animate__bounceInRight {
  -webkit-animation-name: bounceInRight;
  animation-name: bounceInRight;
}

@-webkit-keyframes bounceInUp {
  from,
  60%,
  75%,
  90%,
  to {
    -webkit-animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);
    animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);
  }
  from {
    opacity: 0;
    -webkit-transform: translate3d(0, 3000px, 0) scaleY(5);
    transform: translate3d(0, 3000px, 0) scaleY(5);
  }
  60% {
    opacity: 1;
    -webkit-transform: translate3d(0, -20px, 0) scaleY(0.9);
    transform: translate3d(0, -20px, 0) scaleY(0.9);
  }
  75% {
    -webkit-transform: translate3d(0, 10px, 0) scaleY(0.95);
    transform: translate3d(0, 10px, 0) scaleY(0.95);
  }
  90% {
    -webkit-transform: translate3d(0, -5px, 0) scaleY(0.985);
    transform: translate3d(0, -5px, 0) scaleY(0.985);
  }
  to {
    -webkit-transform: translate3d(0, 0, 0);
    transform: translate3d(0, 0, 0);
  }
}

@keyframes bounceInUp {
  from,
  60%,
  75%,
  90%,
  to {
    -webkit-animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);
    animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);
  }
  from {
    opacity: 0;
    -webkit-transform: translate3d(0, 3000px, 0) scaleY(5);
    transform: translate3d(0, 3000px, 0) scaleY(5);
  }
  60% {
    opacity: 1;
    -webkit-transform: translate3d(0, -20px, 0) scaleY(0.9);
    transform: translate3d(0, -20px, 0) scaleY(0.9);
  }
  75% {
    -webkit-transform: translate3d(0, 10px, 0) scaleY(0.95);
    transform: translate3d(0, 10px, 0) scaleY(0.95);
  }
  90% {
    -webkit-transform: translate3d(0, -5px, 0) scaleY(0.985);
    transform: translate3d(0, -5px, 0) scaleY(0.985);
  }
  to {
    -webkit-transform: translate3d(0, 0, 0);
    transform: translate3d(0, 0, 0);
  }
}

.animate__bounceInUp {
  -webkit-animation-name: bounceInUp;
  animation-name: bounceInUp;
}

/* Bouncing exits  */
@-webkit-keyframes bounceOut {
  20% {
    -webkit-transform: scale3d(0.9, 0.9, 0.9);
    transform: scale3d(0.9, 0.9, 0.9);
  }
  50%,
  55% {
    opacity: 1;
    -webkit-transform: scale3d(1.1, 1.1, 1.1);
    transform: scale3d(1.1, 1.1, 1.1);
  }
  to {
    opacity: 0;
    -webkit-transform: scale3d(0.3, 0.3, 0.3);
    transform: scale3d(0.3, 0.3, 0.3);
  }
}

@keyframes bounceOut {
  20% {
    -webkit-transform: scale3d(0.9, 0.9, 0.9);
    transform: scale3d(0.9, 0.9, 0.9);
  }
  50%,
  55% {
    opacity: 1;
    -webkit-transform: scale3d(1.1, 1.1, 1.1);
    transform: scale3d(1.1, 1.1, 1.1);
  }
  to {
    opacity: 0;
    -webkit-transform: scale3d(0.3, 0.3, 0.3);
    transform: scale3d(0.3, 0.3, 0.3);
  }
}

.animate__bounceOut {
  -webkit-animation-duration: calc(1s * 0.75);
  animation-duration: calc(1s * 0.75);
  -webkit-animation-duration: calc(var(--animate-duration) * 0.75);
  animation-duration: calc(var(--animate-duration) * 0.75);
  -webkit-animation-name: bounceOut;
  animation-name: bounceOut;
}

@-webkit-keyframes bounceOutDown {
  20% {
    -webkit-transform: translate3d(0, 10px, 0) scaleY(0.985);
    transform: translate3d(0, 10px, 0) scaleY(0.985);
  }
  40%,
  45% {
    opacity: 1;
    -webkit-transform: translate3d(0, -20px, 0) scaleY(0.9);
    transform: translate3d(0, -20px, 0) scaleY(0.9);
  }
  to {
    opacity: 0;
    -webkit-transform: translate3d(0, 2000px, 0) scaleY(3);
    transform: translate3d(0, 2000px, 0) scaleY(3);
  }
}

@keyframes bounceOutDown {
  20% {
    -webkit-transform: translate3d(0, 10px, 0) scaleY(0.985);
    transform: translate3d(0, 10px, 0) scaleY(0.985);
  }
  40%,
  45% {
    opacity: 1;
    -webkit-transform: translate3d(0, -20px, 0) scaleY(0.9);
    transform: translate3d(0, -20px, 0) scaleY(0.9);
  }
  to {
    opacity: 0;
    -webkit-transform: translate3d(0, 2000px, 0) scaleY(3);
    transform: translate3d(0, 2000px, 0) scaleY(3);
  }
}

.animate__bounceOutDown {
  -webkit-animation-name: bounceOutDown;
  animation-name: bounceOutDown;
}

@-webkit-keyframes bounceOutLeft {
  20% {
    opacity: 1;
    -webkit-transform: translate3d(20px, 0, 0) scaleX(0.9);
    transform: translate3d(20px, 0, 0) scaleX(0.9);
  }
  to {
    opacity: 0;
    -webkit-transform: translate3d(-2000px, 0, 0) scaleX(2);
    transform: translate3d(-2000px, 0, 0) scaleX(2);
  }
}

@keyframes bounceOutLeft {
  20% {
    opacity: 1;
    -webkit-transform: translate3d(20px, 0, 0) scaleX(0.9);
    transform: translate3d(20px, 0, 0) scaleX(0.9);
  }
  to {
    opacity: 0;
    -webkit-transform: translate3d(-2000px, 0, 0) scaleX(2);
    transform: translate3d(-2000px, 0, 0) scaleX(2);
  }
}

.animate__bounceOutLeft {
  -webkit-animation-name: bounceOutLeft;
  animation-name: bounceOutLeft;
}

@-webkit-keyframes bounceOutRight {
  20% {
    opacity: 1;
    -webkit-transform: translate3d(-20px, 0, 0) scaleX(0.9);
    transform: translate3d(-20px, 0, 0) scaleX(0.9);
  }
  to {
    opacity: 0;
    -webkit-transform: translate3d(2000px, 0, 0) scaleX(2);
    transform: translate3d(2000px, 0, 0) scaleX(2);
  }
}

@keyframes bounceOutRight {
  20% {
    opacity: 1;
    -webkit-transform: translate3d(-20px, 0, 0) scaleX(0.9);
    transform: translate3d(-20px, 0, 0) scaleX(0.9);
  }
  to {
    opacity: 0;
    -webkit-transform: translate3d(2000px, 0, 0) scaleX(2);
    transform: translate3d(2000px, 0, 0) scaleX(2);
  }
}

.animate__bounceOutRight {
  -webkit-animation-name: bounceOutRight;
  animation-name: bounceOutRight;
}

@-webkit-keyframes bounceOutUp {
  20% {
    -webkit-transform: translate3d(0, -10px, 0) scaleY(0.985);
    transform: translate3d(0, -10px, 0) scaleY(0.985);
  }
  40%,
  45% {
    opacity: 1;
    -webkit-transform: translate3d(0, 20px, 0) scaleY(0.9);
    transform: translate3d(0, 20px, 0) scaleY(0.9);
  }
  to {
    opacity: 0;
    -webkit-transform: translate3d(0, -2000px, 0) scaleY(3);
    transform: translate3d(0, -2000px, 0) scaleY(3);
  }
}

@keyframes bounceOutUp {
  20% {
    -webkit-transform: translate3d(0, -10px, 0) scaleY(0.985);
    transform: translate3d(0, -10px, 0) scaleY(0.985);
  }
  40%,
  45% {
    opacity: 1;
    -webkit-transform: translate3d(0, 20px, 0) scaleY(0.9);
    transform: translate3d(0, 20px, 0) scaleY(0.9);
  }
  to {
    opacity: 0;
    -webkit-transform: translate3d(0, -2000px, 0) scaleY(3);
    transform: translate3d(0, -2000px, 0) scaleY(3);
  }
}

.animate__bounceOutUp {
  -webkit-animation-name: bounceOutUp;
  animation-name: bounceOutUp;
}

/* Fading entrances  */
@-webkit-keyframes fadeIn {
  from {
    opacity: 0;
  }
  to {
    opacity: 1;
  }
}

@keyframes fadeIn {
  from {
    opacity: 0;
  }
  to {
    opacity: 1;
  }
}

.animate__fadeIn {
  -webkit-animation-name: fadeIn;
  animation-name: fadeIn;
}

@-webkit-keyframes fadeInDown {
  from {
    opacity: 0;
    -webkit-transform: translate3d(0, -20%, 0);
    transform: translate3d(0, -20%, 0);
  }
  to {
    opacity: 1;
    -webkit-transform: translate3d(0, 0, 0);
    transform: translate3d(0, 0, 0);
  }
}

@keyframes fadeInDown {
  from {
    opacity: 0;
    -webkit-transform: translate3d(0, -20%, 0);
    transform: translate3d(0, -20%, 0);
  }
  to {
    opacity: 1;
    -webkit-transform: translate3d(0, 0, 0);
    transform: translate3d(0, 0, 0);
  }
}

.animate__fadeInDown {
  -webkit-animation-name: fadeInDown;
  animation-name: fadeInDown;
}

@-webkit-keyframes fadeInDownBig {
  from {
    opacity: 0;
    -webkit-transform: translate3d(0, -2000px, 0);
    transform: translate3d(0, -2000px, 0);
  }
  to {
    opacity: 1;
    -webkit-transform: translate3d(0, 0, 0);
    transform: translate3d(0, 0, 0);
  }
}

@keyframes fadeInDownBig {
  from {
    opacity: 0;
    -webkit-transform: translate3d(0, -2000px, 0);
    transform: translate3d(0, -2000px, 0);
  }
  to {
    opacity: 1;
    -webkit-transform: translate3d(0, 0, 0);
    transform: translate3d(0, 0, 0);
  }
}

.animate__fadeInDownBig {
  -webkit-animation-name: fadeInDownBig;
  animation-name: fadeInDownBig;
}

@-webkit-keyframes fadeInLeft {
  from {
    opacity: 0;
    -webkit-transform: translate3d(-100%, 0, 0);
    transform: translate3d(-100%, 0, 0);
  }
  to {
    opacity: 1;
    -webkit-transform: translate3d(0, 0, 0);
    transform: translate3d(0, 0, 0);
  }
}

@keyframes fadeInLeft {
  from {
    opacity: 0;
    -webkit-transform: translate3d(-100%, 0, 0);
    transform: translate3d(-100%, 0, 0);
  }
  to {
    opacity: 1;
    -webkit-transform: translate3d(0, 0, 0);
    transform: translate3d(0, 0, 0);
  }
}

.animate__fadeInLeft {
  -webkit-animation-name: fadeInLeft;
  animation-name: fadeInLeft;
}

@-webkit-keyframes fadeInLeftBig {
  from {
    opacity: 0;
    -webkit-transform: translate3d(-2000px, 0, 0);
    transform: translate3d(-2000px, 0, 0);
  }
  to {
    opacity: 1;
    -webkit-transform: translate3d(0, 0, 0);
    transform: translate3d(0, 0, 0);
  }
}

@keyframes fadeInLeftBig {
  from {
    opacity: 0;
    -webkit-transform: translate3d(-2000px, 0, 0);
    transform: translate3d(-2000px, 0, 0);
  }
  to {
    opacity: 1;
    -webkit-transform: translate3d(0, 0, 0);
    transform: translate3d(0, 0, 0);
  }
}

.animate__fadeInLeftBig {
  -webkit-animation-name: fadeInLeftBig;
  animation-name: fadeInLeftBig;
}

@-webkit-keyframes fadeInRight {
  from {
    opacity: 0;
    -webkit-transform: translate3d(100%, 0, 0);
    transform: translate3d(100%, 0, 0);
  }
  to {
    opacity: 1;
    -webkit-transform: translate3d(0, 0, 0);
    transform: translate3d(0, 0, 0);
  }
}

@keyframes fadeInRight {
  from {
    opacity: 0;
    -webkit-transform: translate3d(100%, 0, 0);
    transform: translate3d(100%, 0, 0);
  }
  to {
    opacity: 1;
    -webkit-transform: translate3d(0, 0, 0);
    transform: translate3d(0, 0, 0);
  }
}

.animate__fadeInRight {
  -webkit-animation-name: fadeInRight;
  animation-name: fadeInRight;
}

@-webkit-keyframes fadeInRightBig {
  from {
    opacity: 0;
    -webkit-transform: translate3d(2000px, 0, 0);
    transform: translate3d(2000px, 0, 0);
  }
  to {
    opacity: 1;
    -webkit-transform: translate3d(0, 0, 0);
    transform: translate3d(0, 0, 0);
  }
}

@keyframes fadeInRightBig {
  from {
    opacity: 0;
    -webkit-transform: translate3d(2000px, 0, 0);
    transform: translate3d(2000px, 0, 0);
  }
  to {
    opacity: 1;
    -webkit-transform: translate3d(0, 0, 0);
    transform: translate3d(0, 0, 0);
  }
}

.animate__fadeInRightBig {
  -webkit-animation-name: fadeInRightBig;
  animation-name: fadeInRightBig;
}

@-webkit-keyframes fadeInUp {
  from {
    opacity: 0;
    -webkit-transform: translate3d(0, 100%, 0);
    transform: translate3d(0, 100%, 0);
  }
  to {
    opacity: 1;
    -webkit-transform: translate3d(0, 0, 0);
    transform: translate3d(0, 0, 0);
  }
}

@keyframes fadeInUp {
  from {
    opacity: 0;
    -webkit-transform: translate3d(0, 100%, 0);
    transform: translate3d(0, 100%, 0);
  }
  to {
    opacity: 1;
    -webkit-transform: translate3d(0, 0, 0);
    transform: translate3d(0, 0, 0);
  }
}

.animate__fadeInUp {
  -webkit-animation-name: fadeInUp;
  animation-name: fadeInUp;
}

@-webkit-keyframes fadeInUpBig {
  from {
    opacity: 0;
    -webkit-transform: translate3d(0, 2000px, 0);
    transform: translate3d(0, 2000px, 0);
  }
  to {
    opacity: 1;
    -webkit-transform: translate3d(0, 0, 0);
    transform: translate3d(0, 0, 0);
  }
}

@keyframes fadeInUpBig {
  from {
    opacity: 0;
    -webkit-transform: translate3d(0, 2000px, 0);
    transform: translate3d(0, 2000px, 0);
  }
  to {
    opacity: 1;
    -webkit-transform: translate3d(0, 0, 0);
    transform: translate3d(0, 0, 0);
  }
}

.animate__fadeInUpBig {
  -webkit-animation-name: fadeInUpBig;
  animation-name: fadeInUpBig;
}

@-webkit-keyframes fadeInTopLeft {
  from {
    opacity: 0;
    -webkit-transform: translate3d(-100%, -100%, 0);
    transform: translate3d(-100%, -100%, 0);
  }
  to {
    opacity: 1;
    -webkit-transform: translate3d(0, 0, 0);
    transform: translate3d(0, 0, 0);
  }
}

@keyframes fadeInTopLeft {
  from {
    opacity: 0;
    -webkit-transform: translate3d(-100%, -100%, 0);
    transform: translate3d(-100%, -100%, 0);
  }
  to {
    opacity: 1;
    -webkit-transform: translate3d(0, 0, 0);
    transform: translate3d(0, 0, 0);
  }
}

.animate__fadeInTopLeft {
  -webkit-animation-name: fadeInTopLeft;
  animation-name: fadeInTopLeft;
}

@-webkit-keyframes fadeInTopRight {
  from {
    opacity: 0;
    -webkit-transform: translate3d(100%, -100%, 0);
    transform: translate3d(100%, -100%, 0);
  }
  to {
    opacity: 1;
    -webkit-transform: translate3d(0, 0, 0);
    transform: translate3d(0, 0, 0);
  }
}

@keyframes fadeInTopRight {
  from {
    opacity: 0;
    -webkit-transform: translate3d(100%, -100%, 0);
    transform: translate3d(100%, -100%, 0);
  }
  to {
    opacity: 1;
    -webkit-transform: translate3d(0, 0, 0);
    transform: translate3d(0, 0, 0);
  }
}

.animate__fadeInTopRight {
  -webkit-animation-name: fadeInTopRight;
  animation-name: fadeInTopRight;
}

@-webkit-keyframes fadeInBottomLeft {
  from {
    opacity: 0;
    -webkit-transform: translate3d(-100%, 100%, 0);
    transform: translate3d(-100%, 100%, 0);
  }
  to {
    opacity: 1;
    -webkit-transform: translate3d(0, 0, 0);
    transform: translate3d(0, 0, 0);
  }
}

@keyframes fadeInBottomLeft {
  from {
    opacity: 0;
    -webkit-transform: translate3d(-100%, 100%, 0);
    transform: translate3d(-100%, 100%, 0);
  }
  to {
    opacity: 1;
    -webkit-transform: translate3d(0, 0, 0);
    transform: translate3d(0, 0, 0);
  }
}

.animate__fadeInBottomLeft {
  -webkit-animation-name: fadeInBottomLeft;
  animation-name: fadeInBottomLeft;
}

@-webkit-keyframes fadeInBottomRight {
  from {
    opacity: 0;
    -webkit-transform: translate3d(100%, 100%, 0);
    transform: translate3d(100%, 100%, 0);
  }
  to {
    opacity: 1;
    -webkit-transform: translate3d(0, 0, 0);
    transform: translate3d(0, 0, 0);
  }
}

@keyframes fadeInBottomRight {
  from {
    opacity: 0;
    -webkit-transform: translate3d(100%, 100%, 0);
    transform: translate3d(100%, 100%, 0);
  }
  to {
    opacity: 1;
    -webkit-transform: translate3d(0, 0, 0);
    transform: translate3d(0, 0, 0);
  }
}

.animate__fadeInBottomRight {
  -webkit-animation-name: fadeInBottomRight;
  animation-name: fadeInBottomRight;
}

/* Fading exits */
@-webkit-keyframes fadeOut {
  from {
    opacity: 1;
  }
  to {
    opacity: 0;
  }
}

@keyframes fadeOut {
  from {
    opacity: 1;
  }
  to {
    opacity: 0;
  }
}

.animate__fadeOut {
  -webkit-animation-name: fadeOut;
  animation-name: fadeOut;
}

@-webkit-keyframes fadeOutDown {
  from {
    opacity: 1;
  }
  to {
    opacity: 0;
    -webkit-transform: translate3d(0, 100%, 0);
    transform: translate3d(0, 100%, 0);
  }
}

@keyframes fadeOutDown {
  from {
    opacity: 1;
  }
  to {
    opacity: 0;
    -webkit-transform: translate3d(0, 100%, 0);
    transform: translate3d(0, 100%, 0);
  }
}

.animate__fadeOutDown {
  -webkit-animation-name: fadeOutDown;
  animation-name: fadeOutDown;
}

@-webkit-keyframes fadeOutDownBig {
  from {
    opacity: 1;
  }
  to {
    opacity: 0;
    -webkit-transform: translate3d(0, 2000px, 0);
    transform: translate3d(0, 2000px, 0);
  }
}

@keyframes fadeOutDownBig {
  from {
    opacity: 1;
  }
  to {
    opacity: 0;
    -webkit-transform: translate3d(0, 2000px, 0);
    transform: translate3d(0, 2000px, 0);
  }
}

.animate__fadeOutDownBig {
  -webkit-animation-name: fadeOutDownBig;
  animation-name: fadeOutDownBig;
}

@-webkit-keyframes fadeOutLeft {
  from {
    opacity: 1;
  }
  to {
    opacity: 0;
    -webkit-transform: translate3d(-100%, 0, 0);
    transform: translate3d(-100%, 0, 0);
  }
}

@keyframes fadeOutLeft {
  from {
    opacity: 1;
  }
  to {
    opacity: 0;
    -webkit-transform: translate3d(-100%, 0, 0);
    transform: translate3d(-100%, 0, 0);
  }
}

.animate__fadeOutLeft {
  -webkit-animation-name: fadeOutLeft;
  animation-name: fadeOutLeft;
}

@-webkit-keyframes fadeOutLeftBig {
  from {
    opacity: 1;
  }
  to {
    opacity: 0;
    -webkit-transform: translate3d(-2000px, 0, 0);
    transform: translate3d(-2000px, 0, 0);
  }
}

@keyframes fadeOutLeftBig {
  from {
    opacity: 1;
  }
  to {
    opacity: 0;
    -webkit-transform: translate3d(-2000px, 0, 0);
    transform: translate3d(-2000px, 0, 0);
  }
}

.animate__fadeOutLeftBig {
  -webkit-animation-name: fadeOutLeftBig;
  animation-name: fadeOutLeftBig;
}

@-webkit-keyframes fadeOutRight {
  from {
    opacity: 1;
  }
  to {
    opacity: 0;
    -webkit-transform: translate3d(100%, 0, 0);
    transform: translate3d(100%, 0, 0);
  }
}

@keyframes fadeOutRight {
  from {
    opacity: 1;
  }
  to {
    opacity: 0;
    -webkit-transform: translate3d(100%, 0, 0);
    transform: translate3d(100%, 0, 0);
  }
}

.animate__fadeOutRight {
  -webkit-animation-name: fadeOutRight;
  animation-name: fadeOutRight;
}

@-webkit-keyframes fadeOutRightBig {
  from {
    opacity: 1;
  }
  to {
    opacity: 0;
    -webkit-transform: translate3d(2000px, 0, 0);
    transform: translate3d(2000px, 0, 0);
  }
}

@keyframes fadeOutRightBig {
  from {
    opacity: 1;
  }
  to {
    opacity: 0;
    -webkit-transform: translate3d(2000px, 0, 0);
    transform: translate3d(2000px, 0, 0);
  }
}

.animate__fadeOutRightBig {
  -webkit-animation-name: fadeOutRightBig;
  animation-name: fadeOutRightBig;
}

@-webkit-keyframes fadeOutUp {
  from {
    opacity: 1;
  }
  to {
    opacity: 0;
    -webkit-transform: translate3d(0, -100%, 0);
    transform: translate3d(0, -100%, 0);
  }
}

@keyframes fadeOutUp {
  from {
    opacity: 1;
  }
  to {
    opacity: 0;
    -webkit-transform: translate3d(0, -100%, 0);
    transform: translate3d(0, -100%, 0);
  }
}

.animate__fadeOutUp {
  -webkit-animation-name: fadeOutUp;
  animation-name: fadeOutUp;
}

@-webkit-keyframes fadeOutUpBig {
  from {
    opacity: 1;
  }
  to {
    opacity: 0;
    -webkit-transform: translate3d(0, -2000px, 0);
    transform: translate3d(0, -2000px, 0);
  }
}

@keyframes fadeOutUpBig {
  from {
    opacity: 1;
  }
  to {
    opacity: 0;
    -webkit-transform: translate3d(0, -2000px, 0);
    transform: translate3d(0, -2000px, 0);
  }
}

.animate__fadeOutUpBig {
  -webkit-animation-name: fadeOutUpBig;
  animation-name: fadeOutUpBig;
}

@-webkit-keyframes fadeOutTopLeft {
  from {
    opacity: 1;
    -webkit-transform: translate3d(0, 0, 0);
    transform: translate3d(0, 0, 0);
  }
  to {
    opacity: 0;
    -webkit-transform: translate3d(-100%, -100%, 0);
    transform: translate3d(-100%, -100%, 0);
  }
}

@keyframes fadeOutTopLeft {
  from {
    opacity: 1;
    -webkit-transform: translate3d(0, 0, 0);
    transform: translate3d(0, 0, 0);
  }
  to {
    opacity: 0;
    -webkit-transform: translate3d(-100%, -100%, 0);
    transform: translate3d(-100%, -100%, 0);
  }
}

.animate__fadeOutTopLeft {
  -webkit-animation-name: fadeOutTopLeft;
  animation-name: fadeOutTopLeft;
}

@-webkit-keyframes fadeOutTopRight {
  from {
    opacity: 1;
    -webkit-transform: translate3d(0, 0, 0);
    transform: translate3d(0, 0, 0);
  }
  to {
    opacity: 0;
    -webkit-transform: translate3d(100%, -100%, 0);
    transform: translate3d(100%, -100%, 0);
  }
}

@keyframes fadeOutTopRight {
  from {
    opacity: 1;
    -webkit-transform: translate3d(0, 0, 0);
    transform: translate3d(0, 0, 0);
  }
  to {
    opacity: 0;
    -webkit-transform: translate3d(100%, -100%, 0);
    transform: translate3d(100%, -100%, 0);
  }
}

.animate__fadeOutTopRight {
  -webkit-animation-name: fadeOutTopRight;
  animation-name: fadeOutTopRight;
}

@-webkit-keyframes fadeOutBottomRight {
  from {
    opacity: 1;
    -webkit-transform: translate3d(0, 0, 0);
    transform: translate3d(0, 0, 0);
  }
  to {
    opacity: 0;
    -webkit-transform: translate3d(100%, 100%, 0);
    transform: translate3d(100%, 100%, 0);
  }
}

@keyframes fadeOutBottomRight {
  from {
    opacity: 1;
    -webkit-transform: translate3d(0, 0, 0);
    transform: translate3d(0, 0, 0);
  }
  to {
    opacity: 0;
    -webkit-transform: translate3d(100%, 100%, 0);
    transform: translate3d(100%, 100%, 0);
  }
}

.animate__fadeOutBottomRight {
  -webkit-animation-name: fadeOutBottomRight;
  animation-name: fadeOutBottomRight;
}

@-webkit-keyframes fadeOutBottomLeft {
  from {
    opacity: 1;
    -webkit-transform: translate3d(0, 0, 0);
    transform: translate3d(0, 0, 0);
  }
  to {
    opacity: 0;
    -webkit-transform: translate3d(-100%, 100%, 0);
    transform: translate3d(-100%, 100%, 0);
  }
}

@keyframes fadeOutBottomLeft {
  from {
    opacity: 1;
    -webkit-transform: translate3d(0, 0, 0);
    transform: translate3d(0, 0, 0);
  }
  to {
    opacity: 0;
    -webkit-transform: translate3d(-100%, 100%, 0);
    transform: translate3d(-100%, 100%, 0);
  }
}

.animate__fadeOutBottomLeft {
  -webkit-animation-name: fadeOutBottomLeft;
  animation-name: fadeOutBottomLeft;
}

/* Flippers */
@-webkit-keyframes flip {
  from {
    -webkit-transform: perspective(400px) scale3d(1, 1, 1) translate3d(0, 0, 0) rotate3d(0, 1, 0, -360deg);
    transform: perspective(400px) scale3d(1, 1, 1) translate3d(0, 0, 0) rotate3d(0, 1, 0, -360deg);
    -webkit-animation-timing-function: ease-out;
    animation-timing-function: ease-out;
  }
  40% {
    -webkit-transform: perspective(400px) scale3d(1, 1, 1) translate3d(0, 0, 150px) rotate3d(0, 1, 0, -190deg);
    transform: perspective(400px) scale3d(1, 1, 1) translate3d(0, 0, 150px) rotate3d(0, 1, 0, -190deg);
    -webkit-animation-timing-function: ease-out;
    animation-timing-function: ease-out;
  }
  50% {
    -webkit-transform: perspective(400px) scale3d(1, 1, 1) translate3d(0, 0, 150px) rotate3d(0, 1, 0, -170deg);
    transform: perspective(400px) scale3d(1, 1, 1) translate3d(0, 0, 150px) rotate3d(0, 1, 0, -170deg);
    -webkit-animation-timing-function: ease-in;
    animation-timing-function: ease-in;
  }
  80% {
    -webkit-transform: perspective(400px) scale3d(0.95, 0.95, 0.95) translate3d(0, 0, 0) rotate3d(0, 1, 0, 0deg);
    transform: perspective(400px) scale3d(0.95, 0.95, 0.95) translate3d(0, 0, 0) rotate3d(0, 1, 0, 0deg);
    -webkit-animation-timing-function: ease-in;
    animation-timing-function: ease-in;
  }
  to {
    -webkit-transform: perspective(400px) scale3d(1, 1, 1) translate3d(0, 0, 0) rotate3d(0, 1, 0, 0deg);
    transform: perspective(400px) scale3d(1, 1, 1) translate3d(0, 0, 0) rotate3d(0, 1, 0, 0deg);
    -webkit-animation-timing-function: ease-in;
    animation-timing-function: ease-in;
  }
}

@keyframes flip {
  from {
    -webkit-transform: perspective(400px) scale3d(1, 1, 1) translate3d(0, 0, 0) rotate3d(0, 1, 0, -360deg);
    transform: perspective(400px) scale3d(1, 1, 1) translate3d(0, 0, 0) rotate3d(0, 1, 0, -360deg);
    -webkit-animation-timing-function: ease-out;
    animation-timing-function: ease-out;
  }
  40% {
    -webkit-transform: perspective(400px) scale3d(1, 1, 1) translate3d(0, 0, 150px) rotate3d(0, 1, 0, -190deg);
    transform: perspective(400px) scale3d(1, 1, 1) translate3d(0, 0, 150px) rotate3d(0, 1, 0, -190deg);
    -webkit-animation-timing-function: ease-out;
    animation-timing-function: ease-out;
  }
  50% {
    -webkit-transform: perspective(400px) scale3d(1, 1, 1) translate3d(0, 0, 150px) rotate3d(0, 1, 0, -170deg);
    transform: perspective(400px) scale3d(1, 1, 1) translate3d(0, 0, 150px) rotate3d(0, 1, 0, -170deg);
    -webkit-animation-timing-function: ease-in;
    animation-timing-function: ease-in;
  }
  80% {
    -webkit-transform: perspective(400px) scale3d(0.95, 0.95, 0.95) translate3d(0, 0, 0) rotate3d(0, 1, 0, 0deg);
    transform: perspective(400px) scale3d(0.95, 0.95, 0.95) translate3d(0, 0, 0) rotate3d(0, 1, 0, 0deg);
    -webkit-animation-timing-function: ease-in;
    animation-timing-function: ease-in;
  }
  to {
    -webkit-transform: perspective(400px) scale3d(1, 1, 1) translate3d(0, 0, 0) rotate3d(0, 1, 0, 0deg);
    transform: perspective(400px) scale3d(1, 1, 1) translate3d(0, 0, 0) rotate3d(0, 1, 0, 0deg);
    -webkit-animation-timing-function: ease-in;
    animation-timing-function: ease-in;
  }
}

.animate__animated.animate__flip {
  -webkit-backface-visibility: visible;
  backface-visibility: visible;
  -webkit-animation-name: flip;
  animation-name: flip;
}

@-webkit-keyframes flipInX {
  from {
    -webkit-transform: perspective(400px) rotate3d(1, 0, 0, 90deg);
    transform: perspective(400px) rotate3d(1, 0, 0, 90deg);
    -webkit-animation-timing-function: ease-in;
    animation-timing-function: ease-in;
    opacity: 0;
  }
  40% {
    -webkit-transform: perspective(400px) rotate3d(1, 0, 0, -20deg);
    transform: perspective(400px) rotate3d(1, 0, 0, -20deg);
    -webkit-animation-timing-function: ease-in;
    animation-timing-function: ease-in;
  }
  60% {
    -webkit-transform: perspective(400px) rotate3d(1, 0, 0, 10deg);
    transform: perspective(400px) rotate3d(1, 0, 0, 10deg);
    opacity: 1;
  }
  80% {
    -webkit-transform: perspective(400px) rotate3d(1, 0, 0, -5deg);
    transform: perspective(400px) rotate3d(1, 0, 0, -5deg);
  }
  to {
    -webkit-transform: perspective(400px);
    transform: perspective(400px);
  }
}

@keyframes flipInX {
  from {
    -webkit-transform: perspective(400px) rotate3d(1, 0, 0, 90deg);
    transform: perspective(400px) rotate3d(1, 0, 0, 90deg);
    -webkit-animation-timing-function: ease-in;
    animation-timing-function: ease-in;
    opacity: 0;
  }
  40% {
    -webkit-transform: perspective(400px) rotate3d(1, 0, 0, -20deg);
    transform: perspective(400px) rotate3d(1, 0, 0, -20deg);
    -webkit-animation-timing-function: ease-in;
    animation-timing-function: ease-in;
  }
  60% {
    -webkit-transform: perspective(400px) rotate3d(1, 0, 0, 10deg);
    transform: perspective(400px) rotate3d(1, 0, 0, 10deg);
    opacity: 1;
  }
  80% {
    -webkit-transform: perspective(400px) rotate3d(1, 0, 0, -5deg);
    transform: perspective(400px) rotate3d(1, 0, 0, -5deg);
  }
  to {
    -webkit-transform: perspective(400px);
    transform: perspective(400px);
  }
}

.animate__flipInX {
  -webkit-backface-visibility: visible !important;
  backface-visibility: visible !important;
  -webkit-animation-name: flipInX;
  animation-name: flipInX;
}

@-webkit-keyframes flipInY {
  from {
    -webkit-transform: perspective(400px) rotate3d(0, 1, 0, 90deg);
    transform: perspective(400px) rotate3d(0, 1, 0, 90deg);
    -webkit-animation-timing-function: ease-in;
    animation-timing-function: ease-in;
    opacity: 0;
  }
  40% {
    -webkit-transform: perspective(400px) rotate3d(0, 1, 0, -20deg);
    transform: perspective(400px) rotate3d(0, 1, 0, -20deg);
    -webkit-animation-timing-function: ease-in;
    animation-timing-function: ease-in;
  }
  60% {
    -webkit-transform: perspective(400px) rotate3d(0, 1, 0, 10deg);
    transform: perspective(400px) rotate3d(0, 1, 0, 10deg);
    opacity: 1;
  }
  80% {
    -webkit-transform: perspective(400px) rotate3d(0, 1, 0, -5deg);
    transform: perspective(400px) rotate3d(0, 1, 0, -5deg);
  }
  to {
    -webkit-transform: perspective(400px);
    transform: perspective(400px);
  }
}

@keyframes flipInY {
  from {
    -webkit-transform: perspective(400px) rotate3d(0, 1, 0, 90deg);
    transform: perspective(400px) rotate3d(0, 1, 0, 90deg);
    -webkit-animation-timing-function: ease-in;
    animation-timing-function: ease-in;
    opacity: 0;
  }
  40% {
    -webkit-transform: perspective(400px) rotate3d(0, 1, 0, -20deg);
    transform: perspective(400px) rotate3d(0, 1, 0, -20deg);
    -webkit-animation-timing-function: ease-in;
    animation-timing-function: ease-in;
  }
  60% {
    -webkit-transform: perspective(400px) rotate3d(0, 1, 0, 10deg);
    transform: perspective(400px) rotate3d(0, 1, 0, 10deg);
    opacity: 1;
  }
  80% {
    -webkit-transform: perspective(400px) rotate3d(0, 1, 0, -5deg);
    transform: perspective(400px) rotate3d(0, 1, 0, -5deg);
  }
  to {
    -webkit-transform: perspective(400px);
    transform: perspective(400px);
  }
}

.animate__flipInY {
  -webkit-backface-visibility: visible !important;
  backface-visibility: visible !important;
  -webkit-animation-name: flipInY;
  animation-name: flipInY;
}

@-webkit-keyframes flipOutX {
  from {
    -webkit-transform: perspective(400px);
    transform: perspective(400px);
  }
  30% {
    -webkit-transform: perspective(400px) rotate3d(1, 0, 0, -20deg);
    transform: perspective(400px) rotate3d(1, 0, 0, -20deg);
    opacity: 1;
  }
  to {
    -webkit-transform: perspective(400px) rotate3d(1, 0, 0, 90deg);
    transform: perspective(400px) rotate3d(1, 0, 0, 90deg);
    opacity: 0;
  }
}

@keyframes flipOutX {
  from {
    -webkit-transform: perspective(400px);
    transform: perspective(400px);
  }
  30% {
    -webkit-transform: perspective(400px) rotate3d(1, 0, 0, -20deg);
    transform: perspective(400px) rotate3d(1, 0, 0, -20deg);
    opacity: 1;
  }
  to {
    -webkit-transform: perspective(400px) rotate3d(1, 0, 0, 90deg);
    transform: perspective(400px) rotate3d(1, 0, 0, 90deg);
    opacity: 0;
  }
}

.animate__flipOutX {
  -webkit-animation-duration: calc(1s * 0.75);
  animation-duration: calc(1s * 0.75);
  -webkit-animation-duration: calc(var(--animate-duration) * 0.75);
  animation-duration: calc(var(--animate-duration) * 0.75);
  -webkit-animation-name: flipOutX;
  animation-name: flipOutX;
  -webkit-backface-visibility: visible !important;
  backface-visibility: visible !important;
}

@-webkit-keyframes flipOutY {
  from {
    -webkit-transform: perspective(400px);
    transform: perspective(400px);
  }
  30% {
    -webkit-transform: perspective(400px) rotate3d(0, 1, 0, -15deg);
    transform: perspective(400px) rotate3d(0, 1, 0, -15deg);
    opacity: 1;
  }
  to {
    -webkit-transform: perspective(400px) rotate3d(0, 1, 0, 90deg);
    transform: perspective(400px) rotate3d(0, 1, 0, 90deg);
    opacity: 0;
  }
}

@keyframes flipOutY {
  from {
    -webkit-transform: perspective(400px);
    transform: perspective(400px);
  }
  30% {
    -webkit-transform: perspective(400px) rotate3d(0, 1, 0, -15deg);
    transform: perspective(400px) rotate3d(0, 1, 0, -15deg);
    opacity: 1;
  }
  to {
    -webkit-transform: perspective(400px) rotate3d(0, 1, 0, 90deg);
    transform: perspective(400px) rotate3d(0, 1, 0, 90deg);
    opacity: 0;
  }
}

.animate__flipOutY {
  -webkit-animation-duration: calc(1s * 0.75);
  animation-duration: calc(1s * 0.75);
  -webkit-animation-duration: calc(var(--animate-duration) * 0.75);
  animation-duration: calc(var(--animate-duration) * 0.75);
  -webkit-backface-visibility: visible !important;
  backface-visibility: visible !important;
  -webkit-animation-name: flipOutY;
  animation-name: flipOutY;
}

/* Lightspeed */
@-webkit-keyframes lightSpeedInRight {
  from {
    -webkit-transform: translate3d(100%, 0, 0) skewX(-30deg);
    transform: translate3d(100%, 0, 0) skewX(-30deg);
    opacity: 0;
  }
  60% {
    -webkit-transform: skewX(20deg);
    transform: skewX(20deg);
    opacity: 1;
  }
  80% {
    -webkit-transform: skewX(-5deg);
    transform: skewX(-5deg);
  }
  to {
    -webkit-transform: translate3d(0, 0, 0);
    transform: translate3d(0, 0, 0);
  }
}

@keyframes lightSpeedInRight {
  from {
    -webkit-transform: translate3d(100%, 0, 0) skewX(-30deg);
    transform: translate3d(100%, 0, 0) skewX(-30deg);
    opacity: 0;
  }
  60% {
    -webkit-transform: skewX(20deg);
    transform: skewX(20deg);
    opacity: 1;
  }
  80% {
    -webkit-transform: skewX(-5deg);
    transform: skewX(-5deg);
  }
  to {
    -webkit-transform: translate3d(0, 0, 0);
    transform: translate3d(0, 0, 0);
  }
}

.animate__lightSpeedInRight {
  -webkit-animation-name: lightSpeedInRight;
  animation-name: lightSpeedInRight;
  -webkit-animation-timing-function: ease-out;
  animation-timing-function: ease-out;
}

@-webkit-keyframes lightSpeedInLeft {
  from {
    -webkit-transform: translate3d(-100%, 0, 0) skewX(30deg);
    transform: translate3d(-100%, 0, 0) skewX(30deg);
    opacity: 0;
  }
  60% {
    -webkit-transform: skewX(-20deg);
    transform: skewX(-20deg);
    opacity: 1;
  }
  80% {
    -webkit-transform: skewX(5deg);
    transform: skewX(5deg);
  }
  to {
    -webkit-transform: translate3d(0, 0, 0);
    transform: translate3d(0, 0, 0);
  }
}

@keyframes lightSpeedInLeft {
  from {
    -webkit-transform: translate3d(-100%, 0, 0) skewX(30deg);
    transform: translate3d(-100%, 0, 0) skewX(30deg);
    opacity: 0;
  }
  60% {
    -webkit-transform: skewX(-20deg);
    transform: skewX(-20deg);
    opacity: 1;
  }
  80% {
    -webkit-transform: skewX(5deg);
    transform: skewX(5deg);
  }
  to {
    -webkit-transform: translate3d(0, 0, 0);
    transform: translate3d(0, 0, 0);
  }
}

.animate__lightSpeedInLeft {
  -webkit-animation-name: lightSpeedInLeft;
  animation-name: lightSpeedInLeft;
  -webkit-animation-timing-function: ease-out;
  animation-timing-function: ease-out;
}

@-webkit-keyframes lightSpeedOutRight {
  from {
    opacity: 1;
  }
  to {
    -webkit-transform: translate3d(100%, 0, 0) skewX(30deg);
    transform: translate3d(100%, 0, 0) skewX(30deg);
    opacity: 0;
  }
}

@keyframes lightSpeedOutRight {
  from {
    opacity: 1;
  }
  to {
    -webkit-transform: translate3d(100%, 0, 0) skewX(30deg);
    transform: translate3d(100%, 0, 0) skewX(30deg);
    opacity: 0;
  }
}

.animate__lightSpeedOutRight {
  -webkit-animation-name: lightSpeedOutRight;
  animation-name: lightSpeedOutRight;
  -webkit-animation-timing-function: ease-in;
  animation-timing-function: ease-in;
}

@-webkit-keyframes lightSpeedOutLeft {
  from {
    opacity: 1;
  }
  to {
    -webkit-transform: translate3d(-100%, 0, 0) skewX(-30deg);
    transform: translate3d(-100%, 0, 0) skewX(-30deg);
    opacity: 0;
  }
}

@keyframes lightSpeedOutLeft {
  from {
    opacity: 1;
  }
  to {
    -webkit-transform: translate3d(-100%, 0, 0) skewX(-30deg);
    transform: translate3d(-100%, 0, 0) skewX(-30deg);
    opacity: 0;
  }
}

.animate__lightSpeedOutLeft {
  -webkit-animation-name: lightSpeedOutLeft;
  animation-name: lightSpeedOutLeft;
  -webkit-animation-timing-function: ease-in;
  animation-timing-function: ease-in;
}

/* Rotating entrances */
@-webkit-keyframes rotateIn {
  from {
    -webkit-transform: rotate3d(0, 0, 1, -200deg);
    transform: rotate3d(0, 0, 1, -200deg);
    opacity: 0;
  }
  to {
    -webkit-transform: translate3d(0, 0, 0);
    transform: translate3d(0, 0, 0);
    opacity: 1;
  }
}

@keyframes rotateIn {
  from {
    -webkit-transform: rotate3d(0, 0, 1, -200deg);
    transform: rotate3d(0, 0, 1, -200deg);
    opacity: 0;
  }
  to {
    -webkit-transform: translate3d(0, 0, 0);
    transform: translate3d(0, 0, 0);
    opacity: 1;
  }
}

.animate__rotateIn {
  -webkit-animation-name: rotateIn;
  animation-name: rotateIn;
  -webkit-transform-origin: center;
  transform-origin: center;
}

@-webkit-keyframes rotateInDownLeft {
  from {
    -webkit-transform: rotate3d(0, 0, 1, -45deg);
    transform: rotate3d(0, 0, 1, -45deg);
    opacity: 0;
  }
  to {
    -webkit-transform: translate3d(0, 0, 0);
    transform: translate3d(0, 0, 0);
    opacity: 1;
  }
}

@keyframes rotateInDownLeft {
  from {
    -webkit-transform: rotate3d(0, 0, 1, -45deg);
    transform: rotate3d(0, 0, 1, -45deg);
    opacity: 0;
  }
  to {
    -webkit-transform: translate3d(0, 0, 0);
    transform: translate3d(0, 0, 0);
    opacity: 1;
  }
}

.animate__rotateInDownLeft {
  -webkit-animation-name: rotateInDownLeft;
  animation-name: rotateInDownLeft;
  -webkit-transform-origin: left bottom;
  transform-origin: left bottom;
}

@-webkit-keyframes rotateInDownRight {
  from {
    -webkit-transform: rotate3d(0, 0, 1, 45deg);
    transform: rotate3d(0, 0, 1, 45deg);
    opacity: 0;
  }
  to {
    -webkit-transform: translate3d(0, 0, 0);
    transform: translate3d(0, 0, 0);
    opacity: 1;
  }
}

@keyframes rotateInDownRight {
  from {
    -webkit-transform: rotate3d(0, 0, 1, 45deg);
    transform: rotate3d(0, 0, 1, 45deg);
    opacity: 0;
  }
  to {
    -webkit-transform: translate3d(0, 0, 0);
    transform: translate3d(0, 0, 0);
    opacity: 1;
  }
}

.animate__rotateInDownRight {
  -webkit-animation-name: rotateInDownRight;
  animation-name: rotateInDownRight;
  -webkit-transform-origin: right bottom;
  transform-origin: right bottom;
}

@-webkit-keyframes rotateInUpLeft {
  from {
    -webkit-transform: rotate3d(0, 0, 1, 45deg);
    transform: rotate3d(0, 0, 1, 45deg);
    opacity: 0;
  }
  to {
    -webkit-transform: translate3d(0, 0, 0);
    transform: translate3d(0, 0, 0);
    opacity: 1;
  }
}

@keyframes rotateInUpLeft {
  from {
    -webkit-transform: rotate3d(0, 0, 1, 45deg);
    transform: rotate3d(0, 0, 1, 45deg);
    opacity: 0;
  }
  to {
    -webkit-transform: translate3d(0, 0, 0);
    transform: translate3d(0, 0, 0);
    opacity: 1;
  }
}

.animate__rotateInUpLeft {
  -webkit-animation-name: rotateInUpLeft;
  animation-name: rotateInUpLeft;
  -webkit-transform-origin: left bottom;
  transform-origin: left bottom;
}

@-webkit-keyframes rotateInUpRight {
  from {
    -webkit-transform: rotate3d(0, 0, 1, -90deg);
    transform: rotate3d(0, 0, 1, -90deg);
    opacity: 0;
  }
  to {
    -webkit-transform: translate3d(0, 0, 0);
    transform: translate3d(0, 0, 0);
    opacity: 1;
  }
}

@keyframes rotateInUpRight {
  from {
    -webkit-transform: rotate3d(0, 0, 1, -90deg);
    transform: rotate3d(0, 0, 1, -90deg);
    opacity: 0;
  }
  to {
    -webkit-transform: translate3d(0, 0, 0);
    transform: translate3d(0, 0, 0);
    opacity: 1;
  }
}

.animate__rotateInUpRight {
  -webkit-animation-name: rotateInUpRight;
  animation-name: rotateInUpRight;
  -webkit-transform-origin: right bottom;
  transform-origin: right bottom;
}

/* Rotating exits */
@-webkit-keyframes rotateOut {
  from {
    opacity: 1;
  }
  to {
    -webkit-transform: rotate3d(0, 0, 1, 200deg);
    transform: rotate3d(0, 0, 1, 200deg);
    opacity: 0;
  }
}

@keyframes rotateOut {
  from {
    opacity: 1;
  }
  to {
    -webkit-transform: rotate3d(0, 0, 1, 200deg);
    transform: rotate3d(0, 0, 1, 200deg);
    opacity: 0;
  }
}

.animate__rotateOut {
  -webkit-animation-name: rotateOut;
  animation-name: rotateOut;
  -webkit-transform-origin: center;
  transform-origin: center;
}

@-webkit-keyframes rotateOutDownLeft {
  from {
    opacity: 1;
  }
  to {
    -webkit-transform: rotate3d(0, 0, 1, 45deg);
    transform: rotate3d(0, 0, 1, 45deg);
    opacity: 0;
  }
}

@keyframes rotateOutDownLeft {
  from {
    opacity: 1;
  }
  to {
    -webkit-transform: rotate3d(0, 0, 1, 45deg);
    transform: rotate3d(0, 0, 1, 45deg);
    opacity: 0;
  }
}

.animate__rotateOutDownLeft {
  -webkit-animation-name: rotateOutDownLeft;
  animation-name: rotateOutDownLeft;
  -webkit-transform-origin: left bottom;
  transform-origin: left bottom;
}

@-webkit-keyframes rotateOutDownRight {
  from {
    opacity: 1;
  }
  to {
    -webkit-transform: rotate3d(0, 0, 1, -45deg);
    transform: rotate3d(0, 0, 1, -45deg);
    opacity: 0;
  }
}

@keyframes rotateOutDownRight {
  from {
    opacity: 1;
  }
  to {
    -webkit-transform: rotate3d(0, 0, 1, -45deg);
    transform: rotate3d(0, 0, 1, -45deg);
    opacity: 0;
  }
}

.animate__rotateOutDownRight {
  -webkit-animation-name: rotateOutDownRight;
  animation-name: rotateOutDownRight;
  -webkit-transform-origin: right bottom;
  transform-origin: right bottom;
}

@-webkit-keyframes rotateOutUpLeft {
  from {
    opacity: 1;
  }
  to {
    -webkit-transform: rotate3d(0, 0, 1, -45deg);
    transform: rotate3d(0, 0, 1, -45deg);
    opacity: 0;
  }
}

@keyframes rotateOutUpLeft {
  from {
    opacity: 1;
  }
  to {
    -webkit-transform: rotate3d(0, 0, 1, -45deg);
    transform: rotate3d(0, 0, 1, -45deg);
    opacity: 0;
  }
}

.animate__rotateOutUpLeft {
  -webkit-animation-name: rotateOutUpLeft;
  animation-name: rotateOutUpLeft;
  -webkit-transform-origin: left bottom;
  transform-origin: left bottom;
}

@-webkit-keyframes rotateOutUpRight {
  from {
    opacity: 1;
  }
  to {
    -webkit-transform: rotate3d(0, 0, 1, 90deg);
    transform: rotate3d(0, 0, 1, 90deg);
    opacity: 0;
  }
}

@keyframes rotateOutUpRight {
  from {
    opacity: 1;
  }
  to {
    -webkit-transform: rotate3d(0, 0, 1, 90deg);
    transform: rotate3d(0, 0, 1, 90deg);
    opacity: 0;
  }
}

.animate__rotateOutUpRight {
  -webkit-animation-name: rotateOutUpRight;
  animation-name: rotateOutUpRight;
  -webkit-transform-origin: right bottom;
  transform-origin: right bottom;
}

/* Specials */
@-webkit-keyframes hinge {
  0% {
    -webkit-animation-timing-function: ease-in-out;
    animation-timing-function: ease-in-out;
  }
  20%,
  60% {
    -webkit-transform: rotate3d(0, 0, 1, 80deg);
    transform: rotate3d(0, 0, 1, 80deg);
    -webkit-animation-timing-function: ease-in-out;
    animation-timing-function: ease-in-out;
  }
  40%,
  80% {
    -webkit-transform: rotate3d(0, 0, 1, 60deg);
    transform: rotate3d(0, 0, 1, 60deg);
    -webkit-animation-timing-function: ease-in-out;
    animation-timing-function: ease-in-out;
    opacity: 1;
  }
  to {
    -webkit-transform: translate3d(0, 700px, 0);
    transform: translate3d(0, 700px, 0);
    opacity: 0;
  }
}

@keyframes hinge {
  0% {
    -webkit-animation-timing-function: ease-in-out;
    animation-timing-function: ease-in-out;
  }
  20%,
  60% {
    -webkit-transform: rotate3d(0, 0, 1, 80deg);
    transform: rotate3d(0, 0, 1, 80deg);
    -webkit-animation-timing-function: ease-in-out;
    animation-timing-function: ease-in-out;
  }
  40%,
  80% {
    -webkit-transform: rotate3d(0, 0, 1, 60deg);
    transform: rotate3d(0, 0, 1, 60deg);
    -webkit-animation-timing-function: ease-in-out;
    animation-timing-function: ease-in-out;
    opacity: 1;
  }
  to {
    -webkit-transform: translate3d(0, 700px, 0);
    transform: translate3d(0, 700px, 0);
    opacity: 0;
  }
}

.animate__hinge {
  -webkit-animation-duration: calc(1s * 2);
  animation-duration: calc(1s * 2);
  -webkit-animation-duration: calc(var(--animate-duration) * 2);
  animation-duration: calc(var(--animate-duration) * 2);
  -webkit-animation-name: hinge;
  animation-name: hinge;
  -webkit-transform-origin: top left;
  transform-origin: top left;
}

@-webkit-keyframes jackInTheBox {
  from {
    opacity: 0;
    -webkit-transform: scale(0.1) rotate(30deg);
    transform: scale(0.1) rotate(30deg);
    -webkit-transform-origin: center bottom;
    transform-origin: center bottom;
  }
  50% {
    -webkit-transform: rotate(-10deg);
    transform: rotate(-10deg);
  }
  70% {
    -webkit-transform: rotate(3deg);
    transform: rotate(3deg);
  }
  to {
    opacity: 1;
    -webkit-transform: scale(1);
    transform: scale(1);
  }
}

@keyframes jackInTheBox {
  from {
    opacity: 0;
    -webkit-transform: scale(0.1) rotate(30deg);
    transform: scale(0.1) rotate(30deg);
    -webkit-transform-origin: center bottom;
    transform-origin: center bottom;
  }
  50% {
    -webkit-transform: rotate(-10deg);
    transform: rotate(-10deg);
  }
  70% {
    -webkit-transform: rotate(3deg);
    transform: rotate(3deg);
  }
  to {
    opacity: 1;
    -webkit-transform: scale(1);
    transform: scale(1);
  }
}

.animate__jackInTheBox {
  -webkit-animation-name: jackInTheBox;
  animation-name: jackInTheBox;
}

/* originally authored by Nick Pettit - https://github.com/nickpettit/glide */
@-webkit-keyframes rollIn {
  from {
    opacity: 0;
    -webkit-transform: translate3d(-100%, 0, 0) rotate3d(0, 0, 1, -120deg);
    transform: translate3d(-100%, 0, 0) rotate3d(0, 0, 1, -120deg);
  }
  to {
    opacity: 1;
    -webkit-transform: translate3d(0, 0, 0);
    transform: translate3d(0, 0, 0);
  }
}

@keyframes rollIn {
  from {
    opacity: 0;
    -webkit-transform: translate3d(-100%, 0, 0) rotate3d(0, 0, 1, -120deg);
    transform: translate3d(-100%, 0, 0) rotate3d(0, 0, 1, -120deg);
  }
  to {
    opacity: 1;
    -webkit-transform: translate3d(0, 0, 0);
    transform: translate3d(0, 0, 0);
  }
}

.animate__rollIn {
  -webkit-animation-name: rollIn;
  animation-name: rollIn;
}

/* originally authored by Nick Pettit - https://github.com/nickpettit/glide */
@-webkit-keyframes rollOut {
  from {
    opacity: 1;
  }
  to {
    opacity: 0;
    -webkit-transform: translate3d(100%, 0, 0) rotate3d(0, 0, 1, 120deg);
    transform: translate3d(100%, 0, 0) rotate3d(0, 0, 1, 120deg);
  }
}

@keyframes rollOut {
  from {
    opacity: 1;
  }
  to {
    opacity: 0;
    -webkit-transform: translate3d(100%, 0, 0) rotate3d(0, 0, 1, 120deg);
    transform: translate3d(100%, 0, 0) rotate3d(0, 0, 1, 120deg);
  }
}

.animate__rollOut {
  -webkit-animation-name: rollOut;
  animation-name: rollOut;
}

/* Zooming entrances */
@-webkit-keyframes zoomIn {
  from {
    opacity: 0;
    -webkit-transform: scale3d(0.3, 0.3, 0.3);
    transform: scale3d(0.3, 0.3, 0.3);
  }
  50% {
    opacity: 1;
  }
}

@keyframes zoomIn {
  from {
    opacity: 0;
    -webkit-transform: scale3d(0.3, 0.3, 0.3);
    transform: scale3d(0.3, 0.3, 0.3);
  }
  50% {
    opacity: 1;
  }
}

.animate__zoomIn {
  -webkit-animation-name: zoomIn;
  animation-name: zoomIn;
}

@-webkit-keyframes zoomInDown {
  from {
    opacity: 0;
    -webkit-transform: scale3d(0.1, 0.1, 0.1) translate3d(0, -1000px, 0);
    transform: scale3d(0.1, 0.1, 0.1) translate3d(0, -1000px, 0);
    -webkit-animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19);
    animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19);
  }
  60% {
    opacity: 1;
    -webkit-transform: scale3d(0.475, 0.475, 0.475) translate3d(0, 60px, 0);
    transform: scale3d(0.475, 0.475, 0.475) translate3d(0, 60px, 0);
    -webkit-animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1);
    animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1);
  }
}

@keyframes zoomInDown {
  from {
    opacity: 0;
    -webkit-transform: scale3d(0.1, 0.1, 0.1) translate3d(0, -1000px, 0);
    transform: scale3d(0.1, 0.1, 0.1) translate3d(0, -1000px, 0);
    -webkit-animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19);
    animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19);
  }
  60% {
    opacity: 1;
    -webkit-transform: scale3d(0.475, 0.475, 0.475) translate3d(0, 60px, 0);
    transform: scale3d(0.475, 0.475, 0.475) translate3d(0, 60px, 0);
    -webkit-animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1);
    animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1);
  }
}

.animate__zoomInDown {
  -webkit-animation-name: zoomInDown;
  animation-name: zoomInDown;
}

@-webkit-keyframes zoomInLeft {
  from {
    opacity: 0;
    -webkit-transform: scale3d(0.1, 0.1, 0.1) translate3d(-1000px, 0, 0);
    transform: scale3d(0.1, 0.1, 0.1) translate3d(-1000px, 0, 0);
    -webkit-animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19);
    animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19);
  }
  60% {
    opacity: 1;
    -webkit-transform: scale3d(0.475, 0.475, 0.475) translate3d(10px, 0, 0);
    transform: scale3d(0.475, 0.475, 0.475) translate3d(10px, 0, 0);
    -webkit-animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1);
    animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1);
  }
}

@keyframes zoomInLeft {
  from {
    opacity: 0;
    -webkit-transform: scale3d(0.1, 0.1, 0.1) translate3d(-1000px, 0, 0);
    transform: scale3d(0.1, 0.1, 0.1) translate3d(-1000px, 0, 0);
    -webkit-animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19);
    animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19);
  }
  60% {
    opacity: 1;
    -webkit-transform: scale3d(0.475, 0.475, 0.475) translate3d(10px, 0, 0);
    transform: scale3d(0.475, 0.475, 0.475) translate3d(10px, 0, 0);
    -webkit-animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1);
    animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1);
  }
}

.animate__zoomInLeft {
  -webkit-animation-name: zoomInLeft;
  animation-name: zoomInLeft;
}

@-webkit-keyframes zoomInRight {
  from {
    opacity: 0;
    -webkit-transform: scale3d(0.1, 0.1, 0.1) translate3d(1000px, 0, 0);
    transform: scale3d(0.1, 0.1, 0.1) translate3d(1000px, 0, 0);
    -webkit-animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19);
    animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19);
  }
  60% {
    opacity: 1;
    -webkit-transform: scale3d(0.475, 0.475, 0.475) translate3d(-10px, 0, 0);
    transform: scale3d(0.475, 0.475, 0.475) translate3d(-10px, 0, 0);
    -webkit-animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1);
    animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1);
  }
}

@keyframes zoomInRight {
  from {
    opacity: 0;
    -webkit-transform: scale3d(0.1, 0.1, 0.1) translate3d(1000px, 0, 0);
    transform: scale3d(0.1, 0.1, 0.1) translate3d(1000px, 0, 0);
    -webkit-animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19);
    animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19);
  }
  60% {
    opacity: 1;
    -webkit-transform: scale3d(0.475, 0.475, 0.475) translate3d(-10px, 0, 0);
    transform: scale3d(0.475, 0.475, 0.475) translate3d(-10px, 0, 0);
    -webkit-animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1);
    animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1);
  }
}

.animate__zoomInRight {
  -webkit-animation-name: zoomInRight;
  animation-name: zoomInRight;
}

@-webkit-keyframes zoomInUp {
  from {
    opacity: 0;
    -webkit-transform: scale3d(0.1, 0.1, 0.1) translate3d(0, 1000px, 0);
    transform: scale3d(0.1, 0.1, 0.1) translate3d(0, 1000px, 0);
    -webkit-animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19);
    animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19);
  }
  60% {
    opacity: 1;
    -webkit-transform: scale3d(0.475, 0.475, 0.475) translate3d(0, -60px, 0);
    transform: scale3d(0.475, 0.475, 0.475) translate3d(0, -60px, 0);
    -webkit-animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1);
    animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1);
  }
}

@keyframes zoomInUp {
  from {
    opacity: 0;
    -webkit-transform: scale3d(0.1, 0.1, 0.1) translate3d(0, 1000px, 0);
    transform: scale3d(0.1, 0.1, 0.1) translate3d(0, 1000px, 0);
    -webkit-animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19);
    animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19);
  }
  60% {
    opacity: 1;
    -webkit-transform: scale3d(0.475, 0.475, 0.475) translate3d(0, -60px, 0);
    transform: scale3d(0.475, 0.475, 0.475) translate3d(0, -60px, 0);
    -webkit-animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1);
    animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1);
  }
}

.animate__zoomInUp {
  -webkit-animation-name: zoomInUp;
  animation-name: zoomInUp;
}

/* Zooming exits */
@-webkit-keyframes zoomOut {
  from {
    opacity: 1;
  }
  50% {
    opacity: 0;
    -webkit-transform: scale3d(0.3, 0.3, 0.3);
    transform: scale3d(0.3, 0.3, 0.3);
  }
  to {
    opacity: 0;
  }
}

@keyframes zoomOut {
  from {
    opacity: 1;
  }
  50% {
    opacity: 0;
    -webkit-transform: scale3d(0.3, 0.3, 0.3);
    transform: scale3d(0.3, 0.3, 0.3);
  }
  to {
    opacity: 0;
  }
}

.animate__zoomOut {
  -webkit-animation-name: zoomOut;
  animation-name: zoomOut;
}

@-webkit-keyframes zoomOutDown {
  40% {
    opacity: 1;
    -webkit-transform: scale3d(0.475, 0.475, 0.475) translate3d(0, -60px, 0);
    transform: scale3d(0.475, 0.475, 0.475) translate3d(0, -60px, 0);
    -webkit-animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19);
    animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19);
  }
  to {
    opacity: 0;
    -webkit-transform: scale3d(0.1, 0.1, 0.1) translate3d(0, 2000px, 0);
    transform: scale3d(0.1, 0.1, 0.1) translate3d(0, 2000px, 0);
    -webkit-animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1);
    animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1);
  }
}

@keyframes zoomOutDown {
  40% {
    opacity: 1;
    -webkit-transform: scale3d(0.475, 0.475, 0.475) translate3d(0, -60px, 0);
    transform: scale3d(0.475, 0.475, 0.475) translate3d(0, -60px, 0);
    -webkit-animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19);
    animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19);
  }
  to {
    opacity: 0;
    -webkit-transform: scale3d(0.1, 0.1, 0.1) translate3d(0, 2000px, 0);
    transform: scale3d(0.1, 0.1, 0.1) translate3d(0, 2000px, 0);
    -webkit-animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1);
    animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1);
  }
}

.animate__zoomOutDown {
  -webkit-animation-name: zoomOutDown;
  animation-name: zoomOutDown;
  -webkit-transform-origin: center bottom;
  transform-origin: center bottom;
}

@-webkit-keyframes zoomOutLeft {
  40% {
    opacity: 1;
    -webkit-transform: scale3d(0.475, 0.475, 0.475) translate3d(42px, 0, 0);
    transform: scale3d(0.475, 0.475, 0.475) translate3d(42px, 0, 0);
  }
  to {
    opacity: 0;
    -webkit-transform: scale(0.1) translate3d(-2000px, 0, 0);
    transform: scale(0.1) translate3d(-2000px, 0, 0);
  }
}

@keyframes zoomOutLeft {
  40% {
    opacity: 1;
    -webkit-transform: scale3d(0.475, 0.475, 0.475) translate3d(42px, 0, 0);
    transform: scale3d(0.475, 0.475, 0.475) translate3d(42px, 0, 0);
  }
  to {
    opacity: 0;
    -webkit-transform: scale(0.1) translate3d(-2000px, 0, 0);
    transform: scale(0.1) translate3d(-2000px, 0, 0);
  }
}

.animate__zoomOutLeft {
  -webkit-animation-name: zoomOutLeft;
  animation-name: zoomOutLeft;
  -webkit-transform-origin: left center;
  transform-origin: left center;
}

@-webkit-keyframes zoomOutRight {
  40% {
    opacity: 1;
    -webkit-transform: scale3d(0.475, 0.475, 0.475) translate3d(-42px, 0, 0);
    transform: scale3d(0.475, 0.475, 0.475) translate3d(-42px, 0, 0);
  }
  to {
    opacity: 0;
    -webkit-transform: scale(0.1) translate3d(2000px, 0, 0);
    transform: scale(0.1) translate3d(2000px, 0, 0);
  }
}

@keyframes zoomOutRight {
  40% {
    opacity: 1;
    -webkit-transform: scale3d(0.475, 0.475, 0.475) translate3d(-42px, 0, 0);
    transform: scale3d(0.475, 0.475, 0.475) translate3d(-42px, 0, 0);
  }
  to {
    opacity: 0;
    -webkit-transform: scale(0.1) translate3d(2000px, 0, 0);
    transform: scale(0.1) translate3d(2000px, 0, 0);
  }
}

.animate__zoomOutRight {
  -webkit-animation-name: zoomOutRight;
  animation-name: zoomOutRight;
  -webkit-transform-origin: right center;
  transform-origin: right center;
}

@-webkit-keyframes zoomOutUp {
  40% {
    opacity: 1;
    -webkit-transform: scale3d(0.475, 0.475, 0.475) translate3d(0, 60px, 0);
    transform: scale3d(0.475, 0.475, 0.475) translate3d(0, 60px, 0);
    -webkit-animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19);
    animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19);
  }
  to {
    opacity: 0;
    -webkit-transform: scale3d(0.1, 0.1, 0.1) translate3d(0, -2000px, 0);
    transform: scale3d(0.1, 0.1, 0.1) translate3d(0, -2000px, 0);
    -webkit-animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1);
    animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1);
  }
}

@keyframes zoomOutUp {
  40% {
    opacity: 1;
    -webkit-transform: scale3d(0.475, 0.475, 0.475) translate3d(0, 60px, 0);
    transform: scale3d(0.475, 0.475, 0.475) translate3d(0, 60px, 0);
    -webkit-animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19);
    animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19);
  }
  to {
    opacity: 0;
    -webkit-transform: scale3d(0.1, 0.1, 0.1) translate3d(0, -2000px, 0);
    transform: scale3d(0.1, 0.1, 0.1) translate3d(0, -2000px, 0);
    -webkit-animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1);
    animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1);
  }
}

.animate__zoomOutUp {
  -webkit-animation-name: zoomOutUp;
  animation-name: zoomOutUp;
  -webkit-transform-origin: center bottom;
  transform-origin: center bottom;
}

/* Sliding entrances */
@-webkit-keyframes slideInDown {
  from {
    -webkit-transform: translate3d(0, -100%, 0);
    transform: translate3d(0, -100%, 0);
    visibility: visible;
  }
  to {
    -webkit-transform: translate3d(0, 0, 0);
    transform: translate3d(0, 0, 0);
  }
}

@keyframes slideInDown {
  from {
    -webkit-transform: translate3d(0, -100%, 0);
    transform: translate3d(0, -100%, 0);
    visibility: visible;
  }
  to {
    -webkit-transform: translate3d(0, 0, 0);
    transform: translate3d(0, 0, 0);
  }
}

.animate__slideInDown {
  -webkit-animation-name: slideInDown;
  animation-name: slideInDown;
}

@-webkit-keyframes slideInLeft {
  from {
    -webkit-transform: translate3d(-100%, 0, 0);
    transform: translate3d(-100%, 0, 0);
    visibility: visible;
  }
  to {
    -webkit-transform: translate3d(0, 0, 0);
    transform: translate3d(0, 0, 0);
  }
}

@keyframes slideInLeft {
  from {
    -webkit-transform: translate3d(-100%, 0, 0);
    transform: translate3d(-100%, 0, 0);
    visibility: visible;
  }
  to {
    -webkit-transform: translate3d(0, 0, 0);
    transform: translate3d(0, 0, 0);
  }
}

.animate__slideInLeft {
  -webkit-animation-name: slideInLeft;
  animation-name: slideInLeft;
}

@-webkit-keyframes slideInRight {
  from {
    -webkit-transform: translate3d(100%, 0, 0);
    transform: translate3d(100%, 0, 0);
    visibility: visible;
  }
  to {
    -webkit-transform: translate3d(0, 0, 0);
    transform: translate3d(0, 0, 0);
  }
}

@keyframes slideInRight {
  from {
    -webkit-transform: translate3d(100%, 0, 0);
    transform: translate3d(100%, 0, 0);
    visibility: visible;
  }
  to {
    -webkit-transform: translate3d(0, 0, 0);
    transform: translate3d(0, 0, 0);
  }
}

.animate__slideInRight {
  -webkit-animation-name: slideInRight;
  animation-name: slideInRight;
}

@-webkit-keyframes slideInUp {
  from {
    -webkit-transform: translate3d(0, 100%, 0);
    transform: translate3d(0, 100%, 0);
    visibility: visible;
  }
  to {
    -webkit-transform: translate3d(0, 0, 0);
    transform: translate3d(0, 0, 0);
  }
}

@keyframes slideInUp {
  from {
    -webkit-transform: translate3d(0, 100%, 0);
    transform: translate3d(0, 100%, 0);
    visibility: visible;
  }
  to {
    -webkit-transform: translate3d(0, 0, 0);
    transform: translate3d(0, 0, 0);
  }
}

.animate__slideInUp {
  -webkit-animation-name: slideInUp;
  animation-name: slideInUp;
}

/* Sliding exits */
@-webkit-keyframes slideOutDown {
  from {
    -webkit-transform: translate3d(0, 0, 0);
    transform: translate3d(0, 0, 0);
  }
  to {
    visibility: hidden;
    -webkit-transform: translate3d(0, 100%, 0);
    transform: translate3d(0, 100%, 0);
  }
}

@keyframes slideOutDown {
  from {
    -webkit-transform: translate3d(0, 0, 0);
    transform: translate3d(0, 0, 0);
  }
  to {
    visibility: hidden;
    -webkit-transform: translate3d(0, 100%, 0);
    transform: translate3d(0, 100%, 0);
  }
}

.animate__slideOutDown {
  -webkit-animation-name: slideOutDown;
  animation-name: slideOutDown;
}

@-webkit-keyframes slideOutLeft {
  from {
    -webkit-transform: translate3d(0, 0, 0);
    transform: translate3d(0, 0, 0);
  }
  to {
    visibility: hidden;
    -webkit-transform: translate3d(-100%, 0, 0);
    transform: translate3d(-100%, 0, 0);
  }
}

@keyframes slideOutLeft {
  from {
    -webkit-transform: translate3d(0, 0, 0);
    transform: translate3d(0, 0, 0);
  }
  to {
    visibility: hidden;
    -webkit-transform: translate3d(-100%, 0, 0);
    transform: translate3d(-100%, 0, 0);
  }
}

.animate__slideOutLeft {
  -webkit-animation-name: slideOutLeft;
  animation-name: slideOutLeft;
}

@-webkit-keyframes slideOutRight {
  from {
    -webkit-transform: translate3d(0, 0, 0);
    transform: translate3d(0, 0, 0);
  }
  to {
    visibility: hidden;
    -webkit-transform: translate3d(100%, 0, 0);
    transform: translate3d(100%, 0, 0);
  }
}

@keyframes slideOutRight {
  from {
    -webkit-transform: translate3d(0, 0, 0);
    transform: translate3d(0, 0, 0);
  }
  to {
    visibility: hidden;
    -webkit-transform: translate3d(100%, 0, 0);
    transform: translate3d(100%, 0, 0);
  }
}

.animate__slideOutRight {
  -webkit-animation-name: slideOutRight;
  animation-name: slideOutRight;
}

@-webkit-keyframes slideOutUp {
  from {
    -webkit-transform: translate3d(0, 0, 0);
    transform: translate3d(0, 0, 0);
  }
  to {
    visibility: hidden;
    -webkit-transform: translate3d(0, -100%, 0);
    transform: translate3d(0, -100%, 0);
  }
}

@keyframes slideOutUp {
  from {
    -webkit-transform: translate3d(0, 0, 0);
    transform: translate3d(0, 0, 0);
  }
  to {
    visibility: hidden;
    -webkit-transform: translate3d(0, -100%, 0);
    transform: translate3d(0, -100%, 0);
  }
}

.animate__slideOutUp {
  -webkit-animation-name: slideOutUp;
  animation-name: slideOutUp;
}

.header {
  padding: 2rem 0;
}

.header__inner {
  display: flex;
  justify-content: space-between;
  align-items: center;
}

.nav__menu {
  display: none;
  position: absolute;
  left: 0;
  right: 0;
  background-color: #fff;
}

.nav__link {
  display: block;
  padding: 0.5em 1em;
}

.nav__toggle {
  border: 0;
  padding: 0;
  background-color: transparent;
  -webkit-appearance: none;
}

@media (max-width: 939px) {
  .nav.is-open .nav__menu {
    display: block;
  }
}

@media (min-width: 940px) {
  .nav__toggle {
    display: none;
  }
  .nav__menu {
    display: flex;
    position: static;
    background-color: transparent;
  }
}

.footer {
  font-size: 0.875rem;
  padding: 2rem 0;
  background-color: #f7f7f9;
}

.footer__inner {
  display: flex;
  justify-content: space-between;
  align-items: center;
}

.icon {
  display: inline-block;
  font-size: 1.5em;
  height: 1em;
  width: 1em;
  vertical-align: middle;
  fill: currentColor;
  pointer-events: none;
}

.menuicon {
  display: block;
  width: 18px;
  height: 16px;
  position: relative;
  transform: rotate(0deg);
  transition: transform 0.3s cubic-bezier(0.4, 0, 0.2, 1);
  cursor: pointer;
  margin: 0 auto;
}

.menuicon__bar {
  display: block;
  position: absolute;
  left: 0;
  right: 0;
  height: 2px;
  width: 100%;
  background-color: currentColor;
  transform: rotate(0deg);
  transition: transform 0.25s ease-in-out;
}

.menuicon__bar:nth-child(1) {
  top: 0px;
}

.menuicon__bar:nth-child(2), .menuicon__bar:nth-child(3) {
  top: 50%;
}

.menuicon__bar:nth-child(4) {
  top: 100%;
}

.is-open .menuicon {
  top: 2px;
  transform: rotate(-180deg);
}

.is-open .menuicon .menuicon__bar:nth-child(1), .is-open .menuicon .menuicon__bar:nth-child(4) {
  width: 0;
  top: 50%;
  left: 50%;
}

.is-open .menuicon .menuicon__bar:nth-child(2) {
  transform: rotate(45deg);
}

.is-open .menuicon .menuicon__bar:nth-child(3) {
  transform: rotate(-45deg);
}

@font-face {
  font-family: 'NeueFrutigerWorldW05-Light';
  src: url("../fonts/NeueFrutigerWorldW05-Light.woff2") format("woff2"), url("../fonts/NeueFrutigerWorldW05-Light.woff") format("woff");
}

@font-face {
  font-family: 'NeueFrutigerWorldW05-bold';
  src: url("../fonts/NeueFrutigerWorldW05-Bold.woff2") format("woff2"), url("../fonts/NeueFrutigerWorldW05-Bold.woff") format("woff");
}

@font-face {
  font-family: 'NeueFrutigerWorld-Regular';
  src: url("../fonts/NeueFrutigerWorld-Regular.woff2") format("woff2"), url("../fonts/NeueFrutigerWorld-Regular.woff") format("woff");
}

*::-webkit-scrollbar {
  display: none;
}

* {
  -ms-overflow-style: none;
  /* IE and Edge */
  scrollbar-width: none;
  /* Firefox */
}

body {
  background: #0a5ed5;
  width: 1920px;
  height: 1080px;
  overflow: hidden;
  font-family: "NeueFrutigerWorldW05-Light";
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

h1 {
  font-family: "NeueFrutigerWorld-Regular";
  font-size: 41px;
  color: #fff;
  font-weight: normal;
}

.home-page {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: space-between;
  color: #fff;
}

.home-header {
  background: rgba(255, 255, 255, 0.15);
  padding: 35px 86px;
}

.home-header h2 {
  font-size: 46px;
}

.home-footer {
  display: flex;
  align-items: center;
  border-radius: 0px 0px 15px 15px;
  background: rgba(255, 255, 255, 0.15);
  padding: 11px 150px;
  margin-top: -7px;
}

.home-footer h2 {
  font-size: 31px;
  font-family: "NeueFrutigerWorldW05-Light";
  font-weight: normal;
}

.home-footer svg {
  width: 42px;
  height: 67px;
  margin-right: 20px;
}

.cat-header {
  width: 100%;
  text-align: center;
  position: relative;
  animation: fadeIn;
  animation-duration: 2s;
}

.header-two .cat-header {
  margin-top: -120px;
  margin-bottom: 140px;
}

.logo {
  margin-top: 316px;
}

header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin: 50px 42px 50px 50px;
  position: relative;
  z-index: 2;
  max-width: 1920px;
  height: 102px;
}

header.index {
  padding: 50px 50px;
  margin: 0;
  position: fixed;
  width: 100%;
}

.nav {
  color: #fff;
  font-size: 22px;
  font-family: "NeueFrutigerWorld-Regular";
  display: flex;
}

.nav svg {
  width: 50px;
  height: 50px;
  margin-right: 15px;
}

.nav div {
  max-height: 50px;
  display: flex;
  align-items: center;
}

.nav .back {
  margin-right: 35px;
}

.nav a {
  text-decoration: none;
  color: #fff;
  display: flex;
  align-items: center;
}

.prod-cat .nav div {
  display: none;
}

.media-list .prod-list {
  display: none;
}

.product-list {
  display: flex;
  flex-direction: column;
  height: 1080px;
}

.prod-grid {
  width: 1920px;
  height: 1022px;
  display: flex;
  justify-content: center;
  margin-top: -144px;
}

.prod-grid.prod-grid-new {
  margin-top: -44px;
}

.prod-grid ul {
  display: flex;
  flex-wrap: wrap;
  align-content: center;
  max-width: 1180px;
  gap: 60px 140px;
  position: relative;
}

.prod-grid ul li {
  width: 300px;
}

.prod-grid ul li .title {
  margin-top: 26px;
  text-align: center;
  text-decoration: none;
  color: #fff;
  font-size: 24px;
  line-height: 1.4;
}

.prod-grid ul li img {
  width: 100%;
  height: auto;
  display: block;
}

.prod-grid ul.pro-list {
  max-width: 1259px;
  gap: 30px 46px;
}

.prod-grid ul.pro-list li {
  width: 215px;
}

.prod-grid ul.pro-list li .image img {
  width: 100%;
  height: auto;
  display: block;
}

.prod-grid ul.pro-list-wide {
  max-width: 1539px;
}

.prod-grid ul.media-list {
  max-width: 1555px;
  gap: 40px 50px;
}

.prod-grid ul.media-list li {
  width: 485px;
}

.prod-grid ul.media-list li .image img {
  width: 100%;
  height: auto;
  display: block;
}

.prod-grid ul.pro-list-overflow {
  justify-content: center;
  max-width: 1520px;
}

.prod-grid ul.pro-list-overflow li:nth-child(5) {
  margin-right: 1.5px;
}

.image {
  position: relative;
}

.pop-up {
  display: none;
  position: absolute;
  top: 0;
  width: 100%;
  z-index: 10;
  height: 100%;
  background: #0a5ed5;
  z-index: 10;
}

.pop-up .embed {
  position: relative;
  display: block;
  width: 100%;
  height: 100%;
  z-index: 10;
}

.pop-up iframe,
.pop-up embed,
.pop-up object {
  width: 100%;
  height: 100%;
  position: relative;
  z-index: 1;
  max-width: 818px;
  margin: 0 auto;
  display: block;
  border: none;
}

.close {
  position: absolute;
  width: 80px;
  height: 80px;
  top: 80px;
  right: 80px;
  cursor: pointer;
  z-index: 20;
  display: block;
}

.close img {
  width: 100%;
  height: auto;
  display: block;
}

a {
  text-decoration: none;
  color: #fff;
  font-size: 21px;
  line-height: 1.2;
}

.prod-grid-card,
.card {
  display: none;
}

.video-card {
  cursor: pointer;
  display: none;
  align-items: center;
  flex-direction: column;
}

.video-card .image img {
  box-shadow: none !important;
  border-radius: 0 !important;
}

.card .image img {
  box-shadow: 0 0 7px rgba(0, 0, 0, 0.3);
  -webkit-box-shadow: 0 0 7px rgba(0, 0, 0, 0.3);
  -moz-box-shadow: 0 0 7px rgba(0, 0, 0, 0.3);
  border-radius: 15px;
}

.scroll {
  left: 50%;
  position: absolute;
  bottom: 100px;
  z-index: 200;
  transform: translateX(-50%);
  cursor: pointer;
}

.scroll.one {
  display: none;
}

.hide-me {
  display: none;
}

.play {
  position: absolute;
  top: 50%;
  transform: translateY(-50%) translateX(-50%);
  left: 50%;
}

.overlay {
  display: none;
  position: absolute;
  left: 0;
  top: 0;
  width: 100%;
  height: 100%;
  background-color: rgba(0, 0, 0, 0.2);
  z-index: 90;
}

.timeout-pop-up {
  position: absolute;
  width: 614px;
  height: 344px;
  top: 50%;
  left: 50%;
  transform: translateX(-50%) translateY(-50%);
  display: flex;
  align-items: center;
  justify-content: center;
  background: #0a5ed5;
  border-radius: 20px;
  text-align: center;
  color: #fff;
  z-index: 100;
}

.timeout-pop-up h2 {
  font-size: 41px;
  margin-bottom: 60px;
}

.timeout-pop-up p {
  font-size: 29px;
  line-height: 1.5;
}

.image-embed {
  width: 818px !important;
  display: flex !important;
  flex-direction: column;
  overflow-y: auto;
  margin: 0 auto;
}

.image-embed img {
  width: 100%;
  display: block;
  height: auto;
  margin-bottom: 5px;
}

/*# sourceMappingURL=data:application/json;base64,ewoJInZlcnNpb24iOiAzLAoJImZpbGUiOiAic3JjL2Fzc2V0cy9zdHlsZXMvbWFpbi5jc3MiLAoJInNvdXJjZXMiOiBbCgkJInNyYy9hc3NldHMvc3R5bGVzL21haW4uc2NzcyIsCgkJInNyYy9hc3NldHMvc3R5bGVzL3V0aWxzL19mdW5jdGlvbnMuc2NzcyIsCgkJInNyYy9hc3NldHMvc3R5bGVzL3V0aWxzL192YXJpYWJsZXMuc2NzcyIsCgkJInNyYy9hc3NldHMvc3R5bGVzL3V0aWxzL19taXhpbnMuc2NzcyIsCgkJInNyYy9hc3NldHMvc3R5bGVzL2Jhc2UvX2ZvbnRzLnNjc3MiLAoJCSJzcmMvYXNzZXRzL3N0eWxlcy9iYXNlL19ub3JtYWxpemUuc2NzcyIsCgkJInNyYy9hc3NldHMvc3R5bGVzL2Jhc2UvX3JlYm9vdC5zY3NzIiwKCQkic3JjL2Fzc2V0cy9zdHlsZXMvYmFzZS9fbGF5b3V0LnNjc3MiLAoJCSJzcmMvYXNzZXRzL3N0eWxlcy9iYXNlL190eXBvZ3JhcGh5LnNjc3MiLAoJCSJzcmMvYXNzZXRzL3N0eWxlcy9iYXNlL19mb2N1cy5zY3NzIiwKCQkic3JjL2Fzc2V0cy9zdHlsZXMvYmFzZS9fdXRpbGl0aWVzLnNjc3MiLAoJCSJzcmMvYXNzZXRzL3N0eWxlcy9iYXNlL19zY3JlZW5yZWFkZXIuc2NzcyIsCgkJInNyYy9hc3NldHMvc3R5bGVzL2Jhc2UvX2FuaW1hdGlvbi5zY3NzIiwKCQkic3JjL2Fzc2V0cy9zdHlsZXMvX2FuaW1hdGUuc2NzcyIsCgkJInNyYy9hc3NldHMvc3R5bGVzL2NvbXBvbmVudHMvX2hlYWRlci5zY3NzIiwKCQkic3JjL2Fzc2V0cy9zdHlsZXMvY29tcG9uZW50cy9fbmF2LnNjc3MiLAoJCSJzcmMvYXNzZXRzL3N0eWxlcy9jb21wb25lbnRzL19mb290ZXIuc2NzcyIsCgkJInNyYy9hc3NldHMvc3R5bGVzL2NvbXBvbmVudHMvX2ljb24uc2NzcyIKCV0sCgkibmFtZXMiOiBbXSwKCSJtYXBwaW5ncyI6ICJBS0FBLDJFQUEyRTtBQVEzRSxBQUFBLElBQUks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 */