
/*!
 * Font Awesome Free 5.12.0 by @fontawesome - https://fontawesome.com
 * License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
 */
.far,.fas{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;display:inline-block;font-style:normal;font-variant:normal;text-rendering:auto;line-height:1}@-webkit-keyframes fa-spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}to{-webkit-transform:rotate(1turn);transform:rotate(1turn)}}@keyframes fa-spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}to{-webkit-transform:rotate(1turn);transform:rotate(1turn)}}.fa-arrow-left:before{content:"\f060"}.fa-briefcase:before{content:"\f0b1"}.fa-calendar-alt:before{content:"\f073"}.fa-chevron-down:before{content:"\f078"}.fa-chevron-right:before{content:"\f054"}.fa-clock:before{content:"\f017"}.fa-dollar-sign:before{content:"\f155"}.fa-map-marker-alt:before{content:"\f3c5"}.fa-search:before{content:"\f002"}.fa-tag:before{content:"\f02b"}@font-face{font-family:"Font Awesome 5 Brands";font-style:normal;font-weight:normal;font-display:block;src:url(/webfonts/fa-brands-400.woff2) format("woff2"),url(/webfonts/fa-brands-400.woff) format("woff")}@font-face{font-family:"Font Awesome 5 Free";font-style:normal;font-weight:400;font-display:block;src:url(/webfonts/fa-regular-400.woff2) format("woff2"),url(/webfonts/fa-regular-400.woff) format("woff")}.far{font-weight:400}@font-face{font-family:"Font Awesome 5 Free";font-style:normal;font-weight:900;font-display:block;src:url(/webfonts/fa-solid-900.woff2) format("woff2"),url(/webfonts/fa-solid-900.woff) format("woff")}.far,.fas{font-family:"Font Awesome 5 Free"}.fas{font-weight:900}
:root {
    --primary: #325bf0;
    --primary-hover: #284bd0;
    --primary-light: #f4f8fd;

    --page-bg: #f7f9fc;
    --card-bg: #ffffff;

    --text-muted: #5b6377;
    --text-light: #808080;

    --border-light: #f0f2f6;
}

* { box-sizing: border-box; }

html,body { margin: 0; padding: 0; line-height: normal; font-family: 'PT Sans', sans-serif;}

input:read-only,input:read-only:focus { border:none; opacity:0.8; cursor:default; user-select:none; outline:none; }

html,address,blockquote,body,dd,div,dl,dt,fieldset,form,input,textarea,select,h1:where(:not([data-was])),:is(h1,h2,h3,h4,h5,h6,sh-text,sh-gap):where([data-was="h1"]),h2:where(:not([data-was])),:is(h1,h2,h3,h4,h5,h6,sh-text,sh-gap):where([data-was="h2"]),h3:where(:not([data-was])),:is(h1,h2,h3,h4,h5,h6,sh-text,sh-gap):where([data-was="h3"]),h4:where(:not([data-was])),:is(h1,h2,h3,h4,h5,h6,sh-text,sh-gap):where([data-was="h4"]),h5:where(:not([data-was])),:is(h1,h2,h3,h4,h5,h6,sh-text,sh-gap):where([data-was="h5"]),h6:where(:not([data-was])),:is(h1,h2,h3,h4,h5,h6,sh-text,sh-gap):where([data-was="h6"]),p,center,hr,menu,pre { unicode-bidi: embed; }

li { display: list-item; }
table { display: table; border-collapse: collapse; border-spacing: 0; }
tr { display: table-row; }
thead { display: table-header-group; }
tbody { display: table-row-group; }
tfoot { display: table-footer-group; }
col { display: table-column; }
colgroup { display: table-column-group; }
td,th { display: table-cell; padding: 0; }
caption { display: table-caption; text-align: center; }
th { font-weight: bolder; text-align: center; }

hr { float: left; clear: both; width: 100%; }

.btn { cursor:pointer; }

.errorBG { position: absolute; top: 0; right: 0; bottom: 0; left: 0; margin: 0; padding: 0; text-align: center; background: #eee center center no-repeat; background-size: cover; min-height: 100vh; }

.error404 { min-height: 100vh; }

header { float: left; clear: both; width: 100%; position: relative; z-index: 1; }

main { float: left; clear: both; width: 100%; position: relative; }

footer { float: left; clear: both; width: 100%; }

::-webkit-inner-spin-button,::-webkit-outer-spin-button { -webkit-appearance: none; margin: 0; }

@-webkit-keyframes move {
    0% { background-position: 0 0; }
    100% { background-position: 50px 50px; }
}

@-moz-keyframes move {
    0% { background-position: 0 0; }
    100% { background-position: 50px 50px; }
}

.blog-Index { display: flex; flex-direction: row; flex-wrap: wrap; justify-content: space-between; align-items: flex-start; position: relative; }

#post-summaries { width: calc(100% - 320px); display: flex; flex-direction: row; flex-wrap: wrap; justify-content: space-between; align-content: flex-start; min-height: 100vh; }
    #post-summaries .blog-post-card { width: 48%; min-height: 248px; display: flex; align-items: flex-start; align-content: flex-start; flex-wrap: wrap; margin: 10px 1% 25px; position: relative; transition: 0.25s all ease; }
        
        #post-summaries .blog-post-card .post-title { position: relative; z-index: 0; width: 100%; display: flex; flex-direction: row; align-items: center; justify-content: space-between; background-color: #eee; margin: 0; padding: 0 10px; }
        
        #post-summaries .blog-post-card .blog-post { width: 100%; padding: 0 15px; }

        #post-summaries .blog-post-card .blogImage { height: 175px; width: 175px; background: transparent center center no-repeat; background-size: cover; }
            #post-summaries .blog-post-card .blogImage + .blog-post { display: flex; flex-direction: column; align-items: flex-start; padding: 20px; width: calc(100% - 200px); }
                #post-summaries .blog-post-card .blogImage + .blog-post a { display: block; width: auto; }

@media only screen and (max-width: 1480px) {
    #post-summaries .blog-post-card { width: 49%; margin: 10px 0.5%; font-size: 14px; }
        #post-summaries .blog-post-card .blogImage { width: 150px; }
            #post-summaries .blog-post-card .blogImage + div { width: calc(100% - 150px); margin-left: 150px; }
}

@media only screen and (max-width: 1200px) {
    #post-summaries .blog-post-card { width: 100%; margin: 10px 0; font-size: 16px; }
        #post-summaries .blog-post-card .blogImage { width: 250px; }
            #post-summaries .blog-post-card .blogImage + div { width: calc(100% - 250px); margin-left: 250px; }
}

@media only screen and (max-width: 992px) {
    #post-summaries { overflow: auto; }
        #post-summaries .blog-post-card { height: auto; }
            #post-summaries .blog-post-card .blogImage { position: relative; width: 100%; height: 200px; top: 0; }
                #post-summaries .blog-post-card .blogImage + .blog-post { width: 100%; margin: 10px auto; }
}

@media only screen and (max-width: 768px) {
    .blog-Index { flex-direction: column-reverse; }
    #post-summaries { width: 100%; }

        #post-summaries .blog-post-card { width: 98%; margin: 10px auto; }
}

.blog-Index .full-post { width: calc(100% - 320px); min-height: 0; padding: 10px; border-radius: 5px; margin: 10px; position: relative; transition: 0.25s all ease; }
    .blog-Index .full-post .postDetails { width: 100%; }
        .blog-Index .full-post .postDetails h1:where(:not([data-was])),.blog-Index .full-post .postDetails :is(h1,h2,h3,h4,h5,h6,sh-text,sh-gap):where([data-was="h1"]) { margin: 0; padding: 0; font-size: 22px; width: 100%; }
        .blog-Index .full-post .postDetails > div { width: 100%; display: flex; justify-content: space-between; flex-wrap: wrap; align-items: center; font-size: 12px; opacity: 0.7; padding: 0 0 20px 20px; }
            .blog-Index .full-post .postDetails > div div { text-align: right; }

.blog-Index .full-post .post-title { position: relative; z-index: 0; width: 100%; display: flex; flex-direction: row; align-items: center; justify-content: space-between; background-color: #eee; margin: 0; padding: 0 10px; }

.post-FullText { width: 100%; padding: 0 15px; }
    .post-FullText .blogImage { float: left; margin: 10px 20px 10px 0; }

@media only screen and (max-width: 1680px) {
    .post-FullText .blogImage { width: 50%; }
}

@media only screen and (max-width: 1200px) {
    .post-FullText .blogImage { width: 100%; }
}

@media only screen and (max-width: 768px) {
    .blog-Index .full-post { width: 98%; margin: 10px auto; }

        .blog-Index .full-post .postDetails > div { padding: 5px; flex-direction: column; align-items: flex-start; }
            .blog-Index .full-post .postDetails > div div { text-align: left; margin: 5px 0; }
}

.blog-menu { width: 280px; padding: 10px; margin: 10px; text-align: center; transition: 0.25s all ease; min-height: 0; }
    .blog-menu h3:where(:not([data-was])),.blog-menu :is(h1,h2,h3,h4,h5,h6,sh-text,sh-gap):where([data-was="h3"]) { margin: 10px 0; padding: 0; }

    .blog-menu a { cursor: pointer; border: 1px solid #ccc; border-radius: 5px; padding: 5px; width: 100%; margin: 5px 0; transition: 0.25s all ease; color: #333; text-decoration: none; display: inline-block; }
        .blog-menu a:hover { background-color: #eee; }

    .blog-menu .blog-search { float: left; clear: both; width: 100%; border-bottom: 1px dotted #aaa; margin-bottom: 30px; padding-bottom: 30px; }
        .blog-menu .blog-search input { border-radius: 5px; padding: 5px; border: 1px solid #ccc; outline: none; }

    .blog-menu .blog-category { float: left; clear: both; width: 100%; margin-bottom: 30px; padding-bottom: 30px; }

@media only screen and (max-width: 768px) {
    .blog-menu { width: 98%; margin: 0 auto; }

        .blog-menu .blog-category { border-bottom: 0; display: flex; flex-wrap: wrap; justify-content: space-between; }
        .blog-menu h3:where(:not([data-was])),.blog-menu :is(h1,h2,h3,h4,h5,h6,sh-text,sh-gap):where([data-was="h3"]) { text-align: center; width: 100%; }
        .blog-menu a { width: 49%; }
}

@keyframes fadeIn {
    0% { opacity: 0; }
    100% { opacity: 1; }
}

@keyframes fadeOut {
    0% { opacity: 1; }
    100% { opacity: 0; }
}

.job-details {
    margin: 0 auto;
    padding: 40px 24px 60px;
    font-family: inherit;
    color: #1a1a2e;
}

.job-details-hero {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 24px;
    margin-bottom: 20px;
}

.job-details-hero-left {
    flex: 1;
}

.job-hero-actions {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 8px;
    flex-shrink: 0;
}

.job-hero-actions .job-apply-btn {
    margin-right: 0;
}

.job-details-title {
    font-size: 2rem;
    font-weight: 700;
    margin: 0 0 10px;
    line-height: 1.2;
}

.job-apply-btn {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    background: #1565c0;
    margin-right: 8px;
    color: #fff;
    text-decoration: none;
    padding: 12px 24px;
    border-radius: 4px;
    font-size: 0.95rem;
    font-weight: 600;
    white-space: nowrap;
    transition: background 0.15s;
}

.job-apply-btn:hover {
    background: #0d47a1;
    color: #fff;
    text-decoration: none;
}

.job-details-meta-bar {
    display: flex;
    flex-wrap: wrap;
    gap: 0;
    border-top: 1px solid #e0e0e0;
    border-bottom: 1px solid #e0e0e0;
    padding: 16px 0;
    margin-bottom: 32px;
}

.job-meta-item {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 0 24px;
    border-right: 1px solid #e0e0e0;
}

.job-meta-item:first-child {
    padding-left: 0;
}

.job-meta-item:last-child {
    border-right: none;
}

.job-meta-item i {
    font-size: 1rem;
    color: #757575;
    flex-shrink: 0;
}

.job-meta-label {
    display: block;
    font-size: 0.7rem;
    color: #9e9e9e;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    line-height: 1.2;
}

.job-meta-value {
    display: block;
    font-size: 0.9rem;
    font-weight: 600;
    color: #212121;
    line-height: 1.3;
}

.job-section {
    border-top: 1px solid #e0e0e0;
    padding-top: 24px;
    margin-bottom: 32px;
}

.job-section h2:where(:not([data-was])),.job-section :is(h1,h2,h3,h4,h5,h6,sh-text,sh-gap):where([data-was="h2"]) {
    font-size: 1.15rem;
    font-weight: 700;
    margin: 0 0 16px;
    color: #1a1a2e;
}

.job-summary {
    border-top: none;
    padding-top: 0;
    margin-bottom: 32px;
    color: #444;
    font-size: 0.95rem;
    line-height: 1.6;
}

.job-details-footer {
    display: flex;
    align-items: center;
    justify-content: space-between;
    flex-wrap: wrap;
    gap: 16px;
    border-top: 1px solid #e0e0e0;
    padding-top: 24px;
    margin-top: 8px;
}

.job-footer-actions {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 8px;
    margin-left: auto;
}

.job-footer-actions .job-apply-btn {
    margin-right: 0;
}

.job-back-link {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    color: #1565c0;
    font-size: 0.9rem;
    font-weight: 600;
    text-decoration: none;
}

.job-back-link:hover {
    text-decoration: underline;
    color: #0d47a1;
}

@media (max-width: 640px) {
    .job-details-hero {
        flex-direction: column;
    }

    .job-details-meta-bar {
        flex-direction: column;
        gap: 12px;
    }

    .job-meta-item {
        padding: 0;
        border-right: none;
    }

    .job-details-footer {
        flex-direction: column;
        align-items: flex-start;
    }

    .job-apply-btn {
        width: 100%;
        justify-content: center;
    }
}

.jobs-index {
    margin: 0 auto;
    padding: 40px 24px 60px;
}

.jobs-filter-card {
    border: 1px solid #e0e0e0;
    border-radius: 8px;
    padding: 24px;
    margin-bottom: 28px;
    background: #fff;
}

.jobs-filter {
    display: flex;
    flex-wrap: wrap;
    gap: 16px;
    align-items: flex-end;
}

.jobs-filter-field {
    display: flex;
    flex-direction: column;
    gap: 6px;
    flex: 1;
    min-width: 180px;
}

.jobs-filter-field label {
    font-size: 0.8rem;
    font-weight: 600;
    color: #444;
}

.jobs-filter-input-wrap {
    position: relative;
}

.jobs-filter-input-wrap input[type="text"],.jobs-filter-input-wrap select {
    width: 100%;
    padding: 10px 36px 10px 12px;
    border: 1px solid #ccc;
    border-radius: 6px;
    font-size: 0.9rem;
    background: #fff;
    appearance: none;
    -webkit-appearance: none;
    box-sizing: border-box;
}

.jobs-filter-input-wrap input[type="text"]:focus,.jobs-filter-input-wrap select:focus {
    outline: none;
    border-color: #1565c0;
    box-shadow: 0 0 0 2px rgba(21,101,192,0.15);
}

.jobs-filter-input-icon,.jobs-filter-select-icon {
    position: absolute;
    right: 12px;
    top: 50%;
    transform: translateY(-50%);
    color: #999;
    font-size: 0.85rem;
    pointer-events: none;
}

.jobs-filter-actions {
    display: flex;
    align-items: center;
    gap: 16px;
    flex-shrink: 0;
}

.jobs-filter-btn {
    padding: 10px 28px;
    background: #1565c0;
    color: #fff;
    border: none;
    border-radius: 6px;
    font-size: 0.9rem;
    font-weight: 600;
    cursor: pointer;
    transition: background 0.15s;
}

.jobs-filter-btn:hover {
    background: #0d47a1;
}

.jobs-results-bar {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 16px;
    font-size: 0.88rem;
    color: #555;
}

.job-card {
    display: flex;
    align-items: stretch;
    border: 1px solid #e0e0e0;
    border-radius: 8px;
    margin-bottom: 12px;
    background: #fff;
    overflow: hidden;
}

.job-card-posted-row {
    display: flex;
    align-items: center;
    gap: 10px;
    flex-wrap: wrap;
    margin-bottom: 4px;
}

.job-card-icon-col {
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 20px 20px;
    flex-shrink: 0;
    border-right: 1px solid #e0e0e0;
}

.job-card-icon-circle {
    width: 52px;
    height: 52px;
    border-radius: 50%;
    background: #e8f0fe;
    display: flex;
    align-items: center;
    justify-content: center;
    color: #1565c0;
    font-size: 1.1rem;
}

.job-card-info-col {
    flex: 0 0 260px;
    padding: 18px 20px;
    border-right: 1px solid #e0e0e0;
    min-width: 0;
}

.job-card-title {
    font-size: 1rem;
    font-weight: 700;
    margin: 0 0 4px;
}

.job-card-title a {
    color: #1565c0;
    text-decoration: none;
}

.job-card-title a:hover {
    text-decoration: underline;
}

.job-card-tags {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
}

.job-card-tags span {
    font-size: 0.78rem;
    color: #555;
    display: flex;
    align-items: center;
    gap: 4px;
    white-space: nowrap;
}

.job-card-tags span i {
    color: #888;
    font-size: 0.75rem;
}

.job-card-middle-col {
    flex: 1;
    padding: 18px 20px;
    border-right: 1px solid #e0e0e0;
    min-width: 0;
}

.job-card-posted {
    font-size: 0.8rem;
    color: #777;
    display: flex;
    align-items: center;
    gap: 5px;
}

.job-card-posted i {
    font-size: 0.75rem;
}

.job-card-summary {
    font-size: 0.85rem;
    color: #555;
    line-height: 1.5;
    margin: 0;
    display: -webkit-box;
    -webkit-line-clamp: 3;
    -webkit-box-orient: vertical;
    overflow: hidden;
}

.job-card-pay-col {
    flex: 0 0 160px;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    padding: 18px 16px;
    gap: 8px;
    text-align: center;
}

.job-card-pay-label {
    font-size: 0.75rem;
    color: #777;
    font-weight: 500;
}

.job-card-pay-value {
    font-size: 1rem;
    font-weight: 700;
    color: #1a1a2e;
    line-height: 1.2;
}

.job-view-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: #1565c0;
    color: #fff;
    text-decoration: none;
    padding: 9px 16px;
    border-radius: 5px;
    font-size: 0.82rem;
    font-weight: 600;
    white-space: nowrap;
    transition: background 0.15s;
    width: 100%;
    box-sizing: border-box;
}

.job-view-btn:hover {
    background: #0d47a1;
    color: #fff;
    text-decoration: none;
}

@media (max-width: 768px) {
    .job-card {
        flex-wrap: wrap;
    }

    .job-card-icon-col {
        display: none;
    }

    .job-card-info-col {
        flex: 1 1 100%;
        border-right: none;
        border-bottom: 1px solid #e0e0e0;
    }

    .job-card-middle-col {
        flex: 1 1 100%;
        border-right: none;
        border-bottom: 1px solid #e0e0e0;
    }

    .job-card-pay-col {
        flex: 1 1 100%;
        flex-direction: row;
        justify-content: space-between;
        align-items: center;
        text-align: left;
    }

    .jobs-filter-field {
        min-width: 100%;
    }
}

@charset "UTF-8";

/*!
 * animate.css -http://daneden.me/animate
 * Version - 3.5.2
 * Licensed under the MIT license - http://opensource.org/licenses/MIT
 *
 * Copyright (c) 2017 Daniel Eden
 */

@keyframes bounce {
  from, 20%, 53%, 80%, to {
    animation-timing-function: cubic-bezier(0.215, 0.610, 0.355, 1.000);
    transform: translate3d(0,0,0);
  }

  40%, 43% {
    animation-timing-function: cubic-bezier(0.755, 0.050, 0.855, 0.060);
    transform: translate3d(0, -30px, 0);
  }

  70% {
    animation-timing-function: cubic-bezier(0.755, 0.050, 0.855, 0.060);
    transform: translate3d(0, -15px, 0);
  }

  90% {
    transform: translate3d(0,-4px,0);
  }
}

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

  25%, 75% {
    opacity: 0;
  }
}

@keyframes pulse {
  from {
    transform: scale3d(1, 1, 1);
  }

  50% {
    transform: scale3d(1.05, 1.05, 1.05);
  }

  to {
    transform: scale3d(1, 1, 1);
  }
}

@keyframes rubberBand {
  from {
    transform: scale3d(1, 1, 1);
  }

  30% {
    transform: scale3d(1.25, 0.75, 1);
  }

  40% {
    transform: scale3d(0.75, 1.25, 1);
  }

  50% {
    transform: scale3d(1.15, 0.85, 1);
  }

  65% {
    transform: scale3d(.95, 1.05, 1);
  }

  75% {
    transform: scale3d(1.05, .95, 1);
  }

  to {
    transform: scale3d(1, 1, 1);
  }
}

@keyframes shake {
  from, to {
    transform: translate3d(0, 0, 0);
  }

  10%, 30%, 50%, 70%, 90% {
    transform: translate3d(-10px, 0, 0);
  }

  20%, 40%, 60%, 80% {
    transform: translate3d(10px, 0, 0);
  }
}

@keyframes headShake {
  0% {
    transform: translateX(0);
  }

  6.5% {
    transform: translateX(-6px) rotateY(-9deg);
  }

  18.5% {
    transform: translateX(5px) rotateY(7deg);
  }

  31.5% {
    transform: translateX(-3px) rotateY(-5deg);
  }

  43.5% {
    transform: translateX(2px) rotateY(3deg);
  }

  50% {
    transform: translateX(0);
  }
}

@keyframes swing {
  20% {
    transform: rotate3d(0, 0, 1, 15deg);
  }

  40% {
    transform: rotate3d(0, 0, 1, -10deg);
  }

  60% {
    transform: rotate3d(0, 0, 1, 5deg);
  }

  80% {
    transform: rotate3d(0, 0, 1, -5deg);
  }

  to {
    transform: rotate3d(0, 0, 1, 0deg);
  }
}

@keyframes tada {
  from {
    transform: scale3d(1, 1, 1);
  }

  10%, 20% {
    transform: scale3d(.9, .9, .9) rotate3d(0, 0, 1, -3deg);
  }

  30%, 50%, 70%, 90% {
    transform: scale3d(1.1, 1.1, 1.1) rotate3d(0, 0, 1, 3deg);
  }

  40%, 60%, 80% {
    transform: scale3d(1.1, 1.1, 1.1) rotate3d(0, 0, 1, -3deg);
  }

  to {
    transform: scale3d(1, 1, 1);
  }
}

@keyframes wobble {
  from {
    transform: none;
  }

  15% {
    transform: translate3d(-25%, 0, 0) rotate3d(0, 0, 1, -5deg);
  }

  30% {
    transform: translate3d(20%, 0, 0) rotate3d(0, 0, 1, 3deg);
  }

  45% {
    transform: translate3d(-15%, 0, 0) rotate3d(0, 0, 1, -3deg);
  }

  60% {
    transform: translate3d(10%, 0, 0) rotate3d(0, 0, 1, 2deg);
  }

  75% {
    transform: translate3d(-5%, 0, 0) rotate3d(0, 0, 1, -1deg);
  }

  to {
    transform: none;
  }
}

@keyframes jello {
  from, 11.1%, to {
    transform: none;
  }

  22.2% {
    transform: skewX(-12.5deg) skewY(-12.5deg);
  }

  33.3% {
    transform: skewX(6.25deg) skewY(6.25deg);
  }

  44.4% {
    transform: skewX(-3.125deg) skewY(-3.125deg);
  }

  55.5% {
    transform: skewX(1.5625deg) skewY(1.5625deg);
  }

  66.6% {
    transform: skewX(-0.78125deg) skewY(-0.78125deg);
  }

  77.7% {
    transform: skewX(0.390625deg) skewY(0.390625deg);
  }

  88.8% {
    transform: skewX(-0.1953125deg) skewY(-0.1953125deg);
  }
}

@keyframes bounceIn {
  from, 20%, 40%, 60%, 80%, to {
    animation-timing-function: cubic-bezier(0.215, 0.610, 0.355, 1.000);
  }

  0% {
    opacity: 0;
    transform: scale3d(.3, .3, .3);
  }

  20% {
    transform: scale3d(1.1, 1.1, 1.1);
  }

  40% {
    transform: scale3d(.9, .9, .9);
  }

  60% {
    opacity: 1;
    transform: scale3d(1.03, 1.03, 1.03);
  }

  80% {
    transform: scale3d(.97, .97, .97);
  }

  to {
    opacity: 1;
    transform: scale3d(1, 1, 1);
  }
}

@keyframes bounceInDown {
  from, 60%, 75%, 90%, to {
    animation-timing-function: cubic-bezier(0.215, 0.610, 0.355, 1.000);
  }

  0% {
    opacity: 0;
    transform: translate3d(0, -3000px, 0);
  }

  60% {
    opacity: 1;
    transform: translate3d(0, 25px, 0);
  }

  75% {
    transform: translate3d(0, -10px, 0);
  }

  90% {
    transform: translate3d(0, 5px, 0);
  }

  to {
    transform: none;
  }
}

@keyframes bounceInLeft {
  from, 60%, 75%, 90%, to {
    animation-timing-function: cubic-bezier(0.215, 0.610, 0.355, 1.000);
  }

  0% {
    opacity: 0;
    transform: translate3d(-3000px, 0, 0);
  }

  60% {
    opacity: 1;
    transform: translate3d(25px, 0, 0);
  }

  75% {
    transform: translate3d(-10px, 0, 0);
  }

  90% {
    transform: translate3d(5px, 0, 0);
  }

  to {
    transform: none;
  }
}

@keyframes bounceInRight {
  from, 60%, 75%, 90%, to {
    animation-timing-function: cubic-bezier(0.215, 0.610, 0.355, 1.000);
  }

  from {
    opacity: 0;
    transform: translate3d(3000px, 0, 0);
  }

  60% {
    opacity: 1;
    transform: translate3d(-25px, 0, 0);
  }

  75% {
    transform: translate3d(10px, 0, 0);
  }

  90% {
    transform: translate3d(-5px, 0, 0);
  }

  to {
    transform: none;
  }
}

@keyframes bounceInUp {
  from, 60%, 75%, 90%, to {
    animation-timing-function: cubic-bezier(0.215, 0.610, 0.355, 1.000);
  }

  from {
    opacity: 0;
    transform: translate3d(0, 3000px, 0);
  }

  60% {
    opacity: 1;
    transform: translate3d(0, -20px, 0);
  }

  75% {
    transform: translate3d(0, 10px, 0);
  }

  90% {
    transform: translate3d(0, -5px, 0);
  }

  to {
    transform: translate3d(0, 0, 0);
  }
}

@keyframes bounceOut {
  20% {
    transform: scale3d(.9, .9, .9);
  }

  50%, 55% {
    opacity: 1;
    transform: scale3d(1.1, 1.1, 1.1);
  }

  to {
    opacity: 0;
    transform: scale3d(.3, .3, .3);
  }
}

@keyframes bounceOutDown {
  20% {
    transform: translate3d(0, 10px, 0);
  }

  40%, 45% {
    opacity: 1;
    transform: translate3d(0, -20px, 0);
  }

  to {
    opacity: 0;
    transform: translate3d(0, 2000px, 0);
  }
}

@keyframes bounceOutLeft {
  20% {
    opacity: 1;
    transform: translate3d(20px, 0, 0);
  }

  to {
    opacity: 0;
    transform: translate3d(-2000px, 0, 0);
  }
}

@keyframes bounceOutRight {
  20% {
    opacity: 1;
    transform: translate3d(-20px, 0, 0);
  }

  to {
    opacity: 0;
    transform: translate3d(2000px, 0, 0);
  }
}

@keyframes bounceOutUp {
  20% {
    transform: translate3d(0, -10px, 0);
  }

  40%, 45% {
    opacity: 1;
    transform: translate3d(0, 20px, 0);
  }

  to {
    opacity: 0;
    transform: translate3d(0, -2000px, 0);
  }
}

@keyframes fadeIn {
  from {
    opacity: 0;
  }

  to {
    opacity: 1;
  }
}

.fadeIn {
  animation-name: fadeIn;
}

@keyframes fadeInDown {
  from {
    opacity: 0;
    transform: translate3d(0, -100%, 0);
  }

  to {
    opacity: 1;
    transform: none;
  }
}

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

  to {
    opacity: 1;
    transform: none;
  }
}

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

  to {
    opacity: 1;
    transform: none;
  }
}

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

  to {
    opacity: 1;
    transform: none;
  }
}

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

  to {
    opacity: 1;
    transform: none;
  }
}

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

  to {
    opacity: 1;
    transform: none;
  }
}

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

  to {
    opacity: 1;
    transform: none;
  }
}

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

  to {
    opacity: 1;
    transform: none;
  }
}

@keyframes fadeOut {
  from {
    opacity: 1;
  }

  to {
    opacity: 0;
  }
}

@keyframes fadeOutDown {
  from {
    opacity: 1;
  }

  to {
    opacity: 0;
    transform: translate3d(0, 100%, 0);
  }
}

@keyframes fadeOutDownBig {
  from {
    opacity: 1;
  }

  to {
    opacity: 0;
    transform: translate3d(0, 2000px, 0);
  }
}

@keyframes fadeOutLeft {
  from {
    opacity: 1;
  }

  to {
    opacity: 0;
    transform: translate3d(-100%, 0, 0);
  }
}

@keyframes fadeOutLeftBig {
  from {
    opacity: 1;
  }

  to {
    opacity: 0;
    transform: translate3d(-2000px, 0, 0);
  }
}

@keyframes fadeOutRight {
  from {
    opacity: 1;
  }

  to {
    opacity: 0;
    transform: translate3d(100%, 0, 0);
  }
}

@keyframes fadeOutRightBig {
  from {
    opacity: 1;
  }

  to {
    opacity: 0;
    transform: translate3d(2000px, 0, 0);
  }
}

@keyframes fadeOutUp {
  from {
    opacity: 1;
  }

  to {
    opacity: 0;
    transform: translate3d(0, -100%, 0);
  }
}

@keyframes fadeOutUpBig {
  from {
    opacity: 1;
  }

  to {
    opacity: 0;
    transform: translate3d(0, -2000px, 0);
  }
}

@keyframes flip {
  from {
    transform: perspective(400px) rotate3d(0, 1, 0, -360deg);
    animation-timing-function: ease-out;
  }

  40% {
    transform: perspective(400px) translate3d(0, 0, 150px) rotate3d(0, 1, 0, -190deg);
    animation-timing-function: ease-out;
  }

  50% {
    transform: perspective(400px) translate3d(0, 0, 150px) rotate3d(0, 1, 0, -170deg);
    animation-timing-function: ease-in;
  }

  80% {
    transform: perspective(400px) scale3d(.95, .95, .95);
    animation-timing-function: ease-in;
  }

  to {
    transform: perspective(400px);
    animation-timing-function: ease-in;
  }
}

@keyframes flipInX {
  from {
    transform: perspective(400px) rotate3d(1, 0, 0, 90deg);
    animation-timing-function: ease-in;
    opacity: 0;
  }

  40% {
    transform: perspective(400px) rotate3d(1, 0, 0, -20deg);
    animation-timing-function: ease-in;
  }

  60% {
    transform: perspective(400px) rotate3d(1, 0, 0, 10deg);
    opacity: 1;
  }

  80% {
    transform: perspective(400px) rotate3d(1, 0, 0, -5deg);
  }

  to {
    transform: perspective(400px);
  }
}

@keyframes flipInY {
  from {
    transform: perspective(400px) rotate3d(0, 1, 0, 90deg);
    animation-timing-function: ease-in;
    opacity: 0;
  }

  40% {
    transform: perspective(400px) rotate3d(0, 1, 0, -20deg);
    animation-timing-function: ease-in;
  }

  60% {
    transform: perspective(400px) rotate3d(0, 1, 0, 10deg);
    opacity: 1;
  }

  80% {
    transform: perspective(400px) rotate3d(0, 1, 0, -5deg);
  }

  to {
    transform: perspective(400px);
  }
}

@keyframes flipOutX {
  from {
    transform: perspective(400px);
  }

  30% {
    transform: perspective(400px) rotate3d(1, 0, 0, -20deg);
    opacity: 1;
  }

  to {
    transform: perspective(400px) rotate3d(1, 0, 0, 90deg);
    opacity: 0;
  }
}

@keyframes flipOutY {
  from {
    transform: perspective(400px);
  }

  30% {
    transform: perspective(400px) rotate3d(0, 1, 0, -15deg);
    opacity: 1;
  }

  to {
    transform: perspective(400px) rotate3d(0, 1, 0, 90deg);
    opacity: 0;
  }
}

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

  60% {
    transform: skewX(20deg);
    opacity: 1;
  }

  80% {
    transform: skewX(-5deg);
    opacity: 1;
  }

  to {
    transform: none;
    opacity: 1;
  }
}

@keyframes lightSpeedOut {
  from {
    opacity: 1;
  }

  to {
    transform: translate3d(100%, 0, 0) skewX(30deg);
    opacity: 0;
  }
}

@keyframes rotateIn {
  from {
    transform-origin: center;
    transform: rotate3d(0, 0, 1, -200deg);
    opacity: 0;
  }

  to {
    transform-origin: center;
    transform: none;
    opacity: 1;
  }
}

@keyframes rotateInDownLeft {
  from {
    transform-origin: left bottom;
    transform: rotate3d(0, 0, 1, -45deg);
    opacity: 0;
  }

  to {
    transform-origin: left bottom;
    transform: none;
    opacity: 1;
  }
}

@keyframes rotateInDownRight {
  from {
    transform-origin: right bottom;
    transform: rotate3d(0, 0, 1, 45deg);
    opacity: 0;
  }

  to {
    transform-origin: right bottom;
    transform: none;
    opacity: 1;
  }
}

@keyframes rotateInUpLeft {
  from {
    transform-origin: left bottom;
    transform: rotate3d(0, 0, 1, 45deg);
    opacity: 0;
  }

  to {
    transform-origin: left bottom;
    transform: none;
    opacity: 1;
  }
}

@keyframes rotateInUpRight {
  from {
    transform-origin: right bottom;
    transform: rotate3d(0, 0, 1, -90deg);
    opacity: 0;
  }

  to {
    transform-origin: right bottom;
    transform: none;
    opacity: 1;
  }
}

@keyframes rotateOut {
  from {
    transform-origin: center;
    opacity: 1;
  }

  to {
    transform-origin: center;
    transform: rotate3d(0, 0, 1, 200deg);
    opacity: 0;
  }
}

@keyframes rotateOutDownLeft {
  from {
    transform-origin: left bottom;
    opacity: 1;
  }

  to {
    transform-origin: left bottom;
    transform: rotate3d(0, 0, 1, 45deg);
    opacity: 0;
  }
}

@keyframes rotateOutDownRight {
  from {
    transform-origin: right bottom;
    opacity: 1;
  }

  to {
    transform-origin: right bottom;
    transform: rotate3d(0, 0, 1, -45deg);
    opacity: 0;
  }
}

@keyframes rotateOutUpLeft {
  from {
    transform-origin: left bottom;
    opacity: 1;
  }

  to {
    transform-origin: left bottom;
    transform: rotate3d(0, 0, 1, -45deg);
    opacity: 0;
  }
}

@keyframes rotateOutUpRight {
  from {
    transform-origin: right bottom;
    opacity: 1;
  }

  to {
    transform-origin: right bottom;
    transform: rotate3d(0, 0, 1, 90deg);
    opacity: 0;
  }
}

@keyframes hinge {
  0% {
    transform-origin: top left;
    animation-timing-function: ease-in-out;
  }

  20%, 60% {
    transform: rotate3d(0, 0, 1, 80deg);
    transform-origin: top left;
    animation-timing-function: ease-in-out;
  }

  40%, 80% {
    transform: rotate3d(0, 0, 1, 60deg);
    transform-origin: top left;
    animation-timing-function: ease-in-out;
    opacity: 1;
  }

  to {
    transform: translate3d(0, 700px, 0);
    opacity: 0;
  }
}

@keyframes jackInTheBox {
  from {
    opacity: 0;
    transform: scale(0.1) rotate(30deg);
    transform-origin: center bottom;
  }

  50% {
    transform: rotate(-10deg);
  }

  70% {
    transform: rotate(3deg);
  }

  to {
    opacity: 1;
    transform: scale(1);
  }
}

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

  to {
    opacity: 1;
    transform: none;
  }
}

@keyframes rollOut {
  from {
    opacity: 1;
  }

  to {
    opacity: 0;
    transform: translate3d(100%, 0, 0) rotate3d(0, 0, 1, 120deg);
  }
}

@keyframes zoomIn {
  from {
    opacity: 0;
    transform: scale3d(.3, .3, .3);
  }

  50% {
    opacity: 1;
  }
}

@keyframes zoomInDown {
  from {
    opacity: 0;
    transform: scale3d(.1, .1, .1) translate3d(0, -1000px, 0);
    animation-timing-function: cubic-bezier(0.550, 0.055, 0.675, 0.190);
  }

  60% {
    opacity: 1;
    transform: scale3d(.475, .475, .475) translate3d(0, 60px, 0);
    animation-timing-function: cubic-bezier(0.175, 0.885, 0.320, 1);
  }
}

@keyframes zoomInLeft {
  from {
    opacity: 0;
    transform: scale3d(.1, .1, .1) translate3d(-1000px, 0, 0);
    animation-timing-function: cubic-bezier(0.550, 0.055, 0.675, 0.190);
  }

  60% {
    opacity: 1;
    transform: scale3d(.475, .475, .475) translate3d(10px, 0, 0);
    animation-timing-function: cubic-bezier(0.175, 0.885, 0.320, 1);
  }
}

@keyframes zoomInRight {
  from {
    opacity: 0;
    transform: scale3d(.1, .1, .1) translate3d(1000px, 0, 0);
    animation-timing-function: cubic-bezier(0.550, 0.055, 0.675, 0.190);
  }

  60% {
    opacity: 1;
    transform: scale3d(.475, .475, .475) translate3d(-10px, 0, 0);
    animation-timing-function: cubic-bezier(0.175, 0.885, 0.320, 1);
  }
}

@keyframes zoomInUp {
  from {
    opacity: 0;
    transform: scale3d(.1, .1, .1) translate3d(0, 1000px, 0);
    animation-timing-function: cubic-bezier(0.550, 0.055, 0.675, 0.190);
  }

  60% {
    opacity: 1;
    transform: scale3d(.475, .475, .475) translate3d(0, -60px, 0);
    animation-timing-function: cubic-bezier(0.175, 0.885, 0.320, 1);
  }
}

@keyframes zoomOut {
  from {
    opacity: 1;
  }

  50% {
    opacity: 0;
    transform: scale3d(.3, .3, .3);
  }

  to {
    opacity: 0;
  }
}

@keyframes zoomOutDown {
  40% {
    opacity: 1;
    transform: scale3d(.475, .475, .475) translate3d(0, -60px, 0);
    animation-timing-function: cubic-bezier(0.550, 0.055, 0.675, 0.190);
  }

  to {
    opacity: 0;
    transform: scale3d(.1, .1, .1) translate3d(0, 2000px, 0);
    transform-origin: center bottom;
    animation-timing-function: cubic-bezier(0.175, 0.885, 0.320, 1);
  }
}

@keyframes zoomOutLeft {
  40% {
    opacity: 1;
    transform: scale3d(.475, .475, .475) translate3d(42px, 0, 0);
  }

  to {
    opacity: 0;
    transform: scale(.1) translate3d(-2000px, 0, 0);
    transform-origin: left center;
  }
}

@keyframes zoomOutRight {
  40% {
    opacity: 1;
    transform: scale3d(.475, .475, .475) translate3d(-42px, 0, 0);
  }

  to {
    opacity: 0;
    transform: scale(.1) translate3d(2000px, 0, 0);
    transform-origin: right center;
  }
}

@keyframes zoomOutUp {
  40% {
    opacity: 1;
    transform: scale3d(.475, .475, .475) translate3d(0, 60px, 0);
    animation-timing-function: cubic-bezier(0.550, 0.055, 0.675, 0.190);
  }

  to {
    opacity: 0;
    transform: scale3d(.1, .1, .1) translate3d(0, -2000px, 0);
    transform-origin: center bottom;
    animation-timing-function: cubic-bezier(0.175, 0.885, 0.320, 1);
  }
}

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

  to {
    transform: translate3d(0, 0, 0);
  }
}

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

  to {
    transform: translate3d(0, 0, 0);
  }
}

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

  to {
    transform: translate3d(0, 0, 0);
  }
}

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

  to {
    transform: translate3d(0, 0, 0);
  }
}

@keyframes slideOutDown {
  from {
    transform: translate3d(0, 0, 0);
  }

  to {
    visibility: hidden;
    transform: translate3d(0, 100%, 0);
  }
}

@keyframes slideOutLeft {
  from {
    transform: translate3d(0, 0, 0);
  }

  to {
    visibility: hidden;
    transform: translate3d(-100%, 0, 0);
  }
}

@keyframes slideOutRight {
  from {
    transform: translate3d(0, 0, 0);
  }

  to {
    visibility: hidden;
    transform: translate3d(100%, 0, 0);
  }
}

@keyframes slideOutUp {
  from {
    transform: translate3d(0, 0, 0);
  }

  to {
    visibility: hidden;
    transform: translate3d(0, -100%, 0);
  }
}

* { -webkit-box-sizing: border-box; -moz-box-sizing: border-box; box-sizing: border-box; }

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

