\d+)/$', "announcement.views.announcement_page",
name="announcement_page"),
- url(r'^api/announcements/$', AnnouncementAPIView.as_view(), name="announcement_list_api"),
url(r'^admin/contest/$', TemplateView.as_view(template_name="admin/contest/add_contest.html"),
name="add_contest_page"),
url(r'^problems/$', "problem.views.problem_list_page", name="problem_list_page"),
diff --git a/static/src/js/app/admin/announcement/announcement.js b/static/src/js/app/admin/announcement/announcement.js
index c4eebf65..7dd2051b 100644
--- a/static/src/js/app/admin/announcement/announcement.js
+++ b/static/src/js/app/admin/announcement/announcement.js
@@ -1,8 +1,5 @@
require(["jquery", "avalon", "csrfToken", "bsAlert", "editor", "validator"],
function ($, avalon, csrfTokenHeader, bsAlert, editor) {
-
-
-
avalon.ready(function () {
avalon.vmodels.announcement = null;
@@ -20,7 +17,11 @@ require(["jquery", "avalon", "csrfToken", "bsAlert", "editor", "validator"],
totalPage: 1, // 总页数
showVisibleOnly: false, //仅显示可见公告
// 编辑
+ newTitle: "",
announcementVisible: 0,
+ showGlobalViewRadio: true,
+ isGlobal: true,
+ allGroups: [],
getState: function (el) { //获取公告当前状态,显示
if (el.visible)
return "可见";
@@ -47,49 +48,75 @@ require(["jquery", "avalon", "csrfToken", "bsAlert", "editor", "validator"],
},
editAnnouncement: function (announcement) {
- $("#newTitle").val(announcement.title);
+ vm.newTitle = announcement.title;
editAnnouncementEditor.setValue(announcement.content);
vm.announcementVisible = announcement.visible;
if (vm.editingAnnouncementId == announcement.id)
vm.editingAnnouncementId = 0;
else
vm.editingAnnouncementId = announcement.id;
+ vm.isGlobal = announcement.is_global;
+ for (var i = 0; i < announcement.groups.length; i++) {
+ for (var j = 0; j < vm.allGroups.length; j++) {
+ if (announcement.groups[i] == vm.allGroups[j].id) {
+ vm.allGroups[j].isSelected = true;
+ }
+ }
+ }
editAnnouncementEditor.focus();
},
cancelEdit: function () {
vm.editingAnnouncementId = 0;
},
submitChange: function () {
- var title = $("#newTitle").val();
+ var title = vm.newTitle;
var content = editAnnouncementEditor.getValue();
- if (content && title) {
- $.ajax({
- beforeSend: csrfTokenHeader,
- url: "/api/admin/announcement/",
- dataType: "json",
- method: "put",
- data: {
- id: vm.editingAnnouncementId,
- title: title,
- content: content,
- visible: vm.announcementVisible
- },
- success: function (data) {
- if (!data.code) {
- bsAlert("修改成功");
- vm.editingAnnouncementId = 0;
- getPageData(1);
- }
- else {
- bsAlert(data.data);
- }
+ if (content == "" || title == "") {
+ bsAlert("标题和内容都不能为空");
+ return false;
+ }
+
+ var selectedGroups = [];
+ if (!vm.isGlobal) {
+ for (var i = 0; i < vm.allGroups.length; i++) {
+ if (vm.allGroups[i].isSelected) {
+ selectedGroups.push(vm.allGroups[i].id);
}
- });
+ }
}
- else {
- bsAlert("标题和公告内容不得为空");
+
+ if (!vm.isGlobal && !selectedGroups.length) {
+ bsAlert("请至少选择一个小组");
+ return false;
}
+
+ $.ajax({
+ beforeSend: csrfTokenHeader,
+ url: "/api/admin/announcement/",
+ contentType: "application/json",
+ dataType: "json",
+ method: "put",
+ data: JSON.stringify({
+ id: vm.editingAnnouncementId,
+ title: title,
+ content: content,
+ visible: vm.announcementVisible,
+ is_global: vm.isGlobal,
+ groups: selectedGroups
+ }),
+ success: function (data) {
+ if (!data.code) {
+ bsAlert("修改成功");
+ vm.editingAnnouncementId = 0;
+ getPageData(1);
+ }
+ else {
+ bsAlert(data.data);
+ }
+ }
+ });
+
}
});
vm.$watch("showVisibleOnly", function () {
@@ -98,8 +125,44 @@ require(["jquery", "avalon", "csrfToken", "bsAlert", "editor", "validator"],
getPageData(1);
+ $.ajax({
+ url: "/api/admin/group/",
+ method: "get",
+ dataType: "json",
+ success: function (data) {
+ if (!data.code) {
+ if (!data.data.length) {
+ bsAlert("您的用户权限只能创建组内公告,但是您还没有创建过小组");
+ return;
+ }
+ for (var i = 0; i < data.data.length; i++) {
+ var item = data.data[i];
+ item["isSelected"] = false;
+ vm.allGroups.push(item);
+ }
+ }
+ else {
+ bsAlert(data.data);
+ }
+ }
+ });
+
+ $.ajax({
+ url: "/api/user/",
+ method: "get",
+ dataType: "json",
+ success: function (data) {
+ if (!data.code) {
+ if (data.data.admin_type == 1) {
+ vm.isGlobal = false;
+ vm.showGlobalViewRadio = false;
+ }
+ }
+ }
+ });
+
function getPageData(page) {
- var url = "/api/announcements/?paging=true&page=" + page + "&page_size=10";
+ var url = "/api/admin/announcement/?paging=true&page=" + page + "&page_size=10";
if (vm.showVisibleOnly)
url += "&visible=true";
$.ajax({
@@ -122,9 +185,7 @@ require(["jquery", "avalon", "csrfToken", "bsAlert", "editor", "validator"],
}
//新建公告表单验证与数据提交
-
-
- $('form').validator().on('submit', function (e) {
+ $("#announcement-form").validator().on('submit', function (e) {
if (!e.isDefaultPrevented()) {
var title = $("#title").val();
var content = createAnnouncementEditor.getValue();
@@ -132,10 +193,29 @@ require(["jquery", "avalon", "csrfToken", "bsAlert", "editor", "validator"],
bsAlert("请填写公告内容");
return false;
}
+ var selectedGroups = [];
+ if (!vm.isGlobal) {
+ for (var i = 0; i < vm.allGroups.length; i++) {
+ if (vm.allGroups[i].isSelected) {
+ selectedGroups.push(vm.allGroups[i].id);
+ }
+ }
+ }
+
+ if (!vm.isGlobal && !selectedGroups.length) {
+ bsAlert("请至少选择一个小组");
+ return false;
+ }
$.ajax({
beforeSend: csrfTokenHeader,
url: "/api/admin/announcement/",
- data: {title: title, content: content},
+ contentType: "application/json",
+ data: JSON.stringify({
+ title: title,
+ content: content,
+ is_global: vm.isGlobal,
+ groups: selectedGroups
+ }),
dataType: "json",
method: "post",
success: function (data) {
@@ -148,7 +228,7 @@ require(["jquery", "avalon", "csrfToken", "bsAlert", "editor", "validator"],
bsAlert(data.data);
}
}
- })
+ });
return false;
}
})
diff --git a/template/admin/announcement/announcement.html b/template/admin/announcement/announcement.html
index 5c0d4d9a..3bfd605d 100644
--- a/template/admin/announcement/announcement.html
+++ b/template/admin/announcement/announcement.html
@@ -7,6 +7,7 @@
创建时间 |
更新时间 |
创建者 |
+ 可见范围 |
状态 |
|
@@ -16,6 +17,7 @@
{{ el.create_time|date("yyyy-MM-dd HH:mm:ss")}} |
{{ el.last_update_time|date("yyyy-MM-dd HH:mm:ss")}} |
{{ el.created_by.username }} |
+ |
{{ getState(el)}} |
@@ -36,7 +38,7 @@
-
+
@@ -44,6 +46,25 @@
+
+
+
+
From 46321e424982fdcfd97b4a13fd5cf27af825776e Mon Sep 17 00:00:00 2001
From: virusdefender <1670873886@qq.com>
Date: Tue, 18 Aug 2015 16:52:44 +0800
Subject: [PATCH 04/22] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E9=94=99=E8=AF=AF?=
=?UTF-8?q?=E9=A1=B5=E9=9D=A2=E3=80=81404=E9=A1=B5=E9=9D=A2=E3=80=81500?=
=?UTF-8?q?=E9=A1=B5=E9=9D=A2=E7=9A=84=E6=A0=B7=E5=BC=8F?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
template/404.html | 151 +++++++++++++++++++++++++++++++++++
template/500.html | 151 +++++++++++++++++++++++++++++++++++
template/utils/error.html | 161 +++++++++++++++++++++++++++++++++++---
template/utils/info.html | 10 ---
4 files changed, 453 insertions(+), 20 deletions(-)
create mode 100644 template/404.html
create mode 100644 template/500.html
delete mode 100644 template/utils/info.html
diff --git a/template/404.html b/template/404.html
new file mode 100644
index 00000000..3d1a5051
--- /dev/null
+++ b/template/404.html
@@ -0,0 +1,151 @@
+{% extends "oj_base.html" %}
+{% block css_block %}
+
+{% endblock %}
+{% block body %}
+
+ 404 - Page Not Found
+
+
+
+
+#include <stdio.h>
+int main()
+{
+ printf("404 - Page Not Found");
+ return 0;
+}
+
+#include <iostream>
+int main()
+{
+ std::cout << "404 - Page Not Found" << std::endl;
+ return 0;
+}
+
+public class Main
+{
+ public static void main(String[] args)
+ {
+ System.out.println("404 - Page Not Found");
+ }
+}
+
+console.log("404 - Page Not Found")
+
+print "404 - Page Not Found"
+
+
+
+{% endblock %}
\ No newline at end of file
diff --git a/template/500.html b/template/500.html
new file mode 100644
index 00000000..28349ba1
--- /dev/null
+++ b/template/500.html
@@ -0,0 +1,151 @@
+{% extends "oj_base.html" %}
+{% block css_block %}
+
+{% endblock %}
+{% block body %}
+
+ 500 - Server Error
+
+
+
+
+#include <stdio.h>
+int main()
+{
+ printf("500 - Server Error");
+ return 0;
+}
+
+#include <iostream>
+int main()
+{
+ std::cout << "500 - Server Error" << std::endl;
+ return 0;
+}
+
+public class Main
+{
+ public static void main(String[] args)
+ {
+ System.out.println("500 - Server Error");
+ }
+}
+
+console.log("500 - Server Error")
+
+print "500 - Server Error"
+
+
+
+{% endblock %}
\ No newline at end of file
diff --git a/template/utils/error.html b/template/utils/error.html
index 307b5b01..98fbeefc 100644
--- a/template/utils/error.html
+++ b/template/utils/error.html
@@ -1,10 +1,151 @@
-
-
-
-
-
-
-
-{{ error }}
-
-
\ No newline at end of file
+{% extends "oj_base.html" %}
+{% block css_block %}
+
+{% endblock %}
+{% block body %}
+
+ 出错了~~ {{ error }}
+
+
+
+
+#include <stdio.h>
+int main()
+{
+ printf("An error occurred\n");
+ return 0;
+}
+
+#include <iostream>
+int main()
+{
+ std::cout << "An error occurred" << std::endl;
+ return 0;
+}
+
+public class Main
+{
+ public static void main(String[] args)
+ {
+ System.out.println("An error occurred");
+ }
+}
+
+console.log("An error occurred\n")
+
+print "An error occurred"
+
+
+
+{% endblock %}
\ No newline at end of file
diff --git a/template/utils/info.html b/template/utils/info.html
deleted file mode 100644
index bf083727..00000000
--- a/template/utils/info.html
+++ /dev/null
@@ -1,10 +0,0 @@
-
-
-
-
-
-
-
-{{ info }}
-
-
\ No newline at end of file
From c98abddfeed3088626813acf6fbf3c83feca7e0c Mon Sep 17 00:00:00 2001
From: virusdefender <1670873886@qq.com>
Date: Wed, 19 Aug 2015 08:21:25 +0800
Subject: [PATCH 05/22] fix typo
---
announcement/views.py | 8 ++++----
1 file changed, 4 insertions(+), 4 deletions(-)
diff --git a/announcement/views.py b/announcement/views.py
index 8059b908..767b2065 100644
--- a/announcement/views.py
+++ b/announcement/views.py
@@ -36,7 +36,7 @@ class AnnouncementAdminAPIView(APIView):
if request.user.admin_type == SUPER_ADMIN:
groups = Group.objects.filter(id__in=data["groups"])
else:
- groups = Group.objects.filter(id__in=data["groups"], admin=request.user)
+ groups = Group.objects.filter(id__in=data["groups"], created_by=request.user)
if not groups.count():
return error_response(u"至少选择一个小组")
else:
@@ -68,7 +68,7 @@ class AnnouncementAdminAPIView(APIView):
if request.user.admin_type == SUPER_ADMIN:
announcement = Announcement.objects.get(id=data["id"])
else:
- announcement = Announcement.objects.get(id=data["id"], admin=request.user)
+ announcement = Announcement.objects.get(id=data["id"], created_by=request.user)
except Announcement.DoesNotExist:
return error_response(u"公告不存在")
groups = []
@@ -76,7 +76,7 @@ class AnnouncementAdminAPIView(APIView):
if request.user.admin_type == SUPER_ADMIN:
groups = Group.objects.filter(id__in=data["groups"])
else:
- groups = Group.objects.filter(id__in=data["groups"], admin=request.user)
+ groups = Group.objects.filter(id__in=data["groups"], created_by=request.user)
if not groups.count():
return error_response(u"至少选择一个小组")
announcement.title = data["title"]
@@ -101,7 +101,7 @@ class AnnouncementAdminAPIView(APIView):
if request.user.admin_type == SUPER_ADMIN:
announcement = Announcement.objects.all().order_by("-last_update_time")
else:
- announcement = Announcement.objects.filter(admin=request.user)
+ announcement = Announcement.objects.filter(created_by=request.user)
visible = request.GET.get("visible", None)
if visible:
announcement = announcement.filter(visible=(visible == "true"))
From 096873c02812f2319c6768ee3c08ad1ffea5428c Mon Sep 17 00:00:00 2001
From: virusdefender <1670873886@qq.com>
Date: Wed, 19 Aug 2015 16:39:04 +0800
Subject: [PATCH 06/22] =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E9=98=9F=E5=88=97?=
=?UTF-8?q?=E9=95=BF=E5=BA=A6=E7=BB=9F=E8=AE=A1=E4=BF=A1=E6=81=AF?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
judge/judger_controller/tasks.py | 15 +++++++++++++--
1 file changed, 13 insertions(+), 2 deletions(-)
diff --git a/judge/judger_controller/tasks.py b/judge/judger_controller/tasks.py
index e8066892..e61da72b 100644
--- a/judge/judger_controller/tasks.py
+++ b/judge/judger_controller/tasks.py
@@ -1,14 +1,21 @@
# coding=utf-8
-# from __future__ import absolute_import
+import datetime
+import redis
import MySQLdb
import subprocess
from ..judger.result import result
from ..judger_controller.celery import app
-from settings import docker_config, source_code_dir, test_case_dir, submission_db
+from settings import docker_config, source_code_dir, test_case_dir, submission_db, redis_config
@app.task
def judge(submission_id, time_limit, memory_limit, test_case_id):
+ # 先更新判题队列长度
+ r = redis.StrictRedis(host=redis_config["host"], port=redis_config["port"], db=redis_config["db"])
+ length = r.incr("queue_length")
+ now = datetime.datetime.now()
+ # 使用hash key是今天的日期 value 的 key 是当前时分秒 12:02:03 value 是队列长度
+ r.hset(str(datetime.date.today()), ":".join([str(now.hour), str(now.minute), str(now.second)]), length)
try:
command = "%s run -t -i --privileged --rm=true " \
"-v %s:/var/judger/test_case/ " \
@@ -36,3 +43,7 @@ def judge(submission_id, time_limit, memory_limit, test_case_id):
(result["system_error"], str(e), submission_id))
conn.commit()
conn.close()
+ r.decr("queue_length")
+ now = datetime.datetime.now()
+ # 使用hash key是今天的日期 value 的 key 是当前时分秒 12:02:03 value 是队列长度
+ r.hset(str(datetime.date.today()), ":".join([str(now.hour), str(now.minute), str(now.second)]), length)
From 016dc1b79f760dbf72510179fb0426e933c4c174 Mon Sep 17 00:00:00 2001
From: virusdefender <1670873886@qq.com>
Date: Wed, 19 Aug 2015 20:16:30 +0800
Subject: [PATCH 07/22] =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E6=96=B0=E7=9A=84?=
=?UTF-8?q?=E9=A6=96=E9=A1=B5?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
static/src/css/animate/animate.css | 3272 +++++++++++++++++++
static/src/css/fullpage/jquery.fullPage.css | 208 ++
static/src/img/index/a.png | Bin 0 -> 18850 bytes
static/src/img/index/c.png | Bin 0 -> 18168 bytes
static/src/img/index/m.png | Bin 0 -> 23119 bytes
template/oj/index.html | 158 +-
6 files changed, 3609 insertions(+), 29 deletions(-)
create mode 100755 static/src/css/animate/animate.css
create mode 100755 static/src/css/fullpage/jquery.fullPage.css
create mode 100755 static/src/img/index/a.png
create mode 100755 static/src/img/index/c.png
create mode 100755 static/src/img/index/m.png
diff --git a/static/src/css/animate/animate.css b/static/src/css/animate/animate.css
new file mode 100755
index 00000000..54fa40e1
--- /dev/null
+++ b/static/src/css/animate/animate.css
@@ -0,0 +1,3272 @@
+@charset "UTF-8";
+
+/*!
+Animate.css - http://daneden.me/animate
+Licensed under the MIT license - http://opensource.org/licenses/MIT
+
+Copyright (c) 2015 Daniel Eden
+*/
+
+.animated {
+ -webkit-animation-duration: 1s;
+ animation-duration: 1s;
+ -webkit-animation-fill-mode: both;
+ animation-fill-mode: both;
+}
+
+.animated.infinite {
+ -webkit-animation-iteration-count: infinite;
+ animation-iteration-count: infinite;
+}
+
+.animated.hinge {
+ -webkit-animation-duration: 2s;
+ animation-duration: 2s;
+}
+
+.animated.bounceIn,
+.animated.bounceOut {
+ -webkit-animation-duration: .75s;
+ animation-duration: .75s;
+}
+
+.animated.flipOutX,
+.animated.flipOutY {
+ -webkit-animation-duration: .75s;
+ animation-duration: .75s;
+}
+
+@-webkit-keyframes bounce {
+ from, 20%, 53%, 80%, 100% {
+ -webkit-animation-timing-function: cubic-bezier(0.215, 0.610, 0.355, 1.000);
+ animation-timing-function: cubic-bezier(0.215, 0.610, 0.355, 1.000);
+ -webkit-transform: translate3d(0,0,0);
+ transform: translate3d(0,0,0);
+ }
+
+ 40%, 43% {
+ -webkit-animation-timing-function: cubic-bezier(0.755, 0.050, 0.855, 0.060);
+ animation-timing-function: cubic-bezier(0.755, 0.050, 0.855, 0.060);
+ -webkit-transform: translate3d(0, -30px, 0);
+ transform: translate3d(0, -30px, 0);
+ }
+
+ 70% {
+ -webkit-animation-timing-function: cubic-bezier(0.755, 0.050, 0.855, 0.060);
+ animation-timing-function: cubic-bezier(0.755, 0.050, 0.855, 0.060);
+ -webkit-transform: translate3d(0, -15px, 0);
+ transform: translate3d(0, -15px, 0);
+ }
+
+ 90% {
+ -webkit-transform: translate3d(0,-4px,0);
+ transform: translate3d(0,-4px,0);
+ }
+}
+
+@keyframes bounce {
+ from, 20%, 53%, 80%, 100% {
+ -webkit-animation-timing-function: cubic-bezier(0.215, 0.610, 0.355, 1.000);
+ animation-timing-function: cubic-bezier(0.215, 0.610, 0.355, 1.000);
+ -webkit-transform: translate3d(0,0,0);
+ transform: translate3d(0,0,0);
+ }
+
+ 40%, 43% {
+ -webkit-animation-timing-function: cubic-bezier(0.755, 0.050, 0.855, 0.060);
+ animation-timing-function: cubic-bezier(0.755, 0.050, 0.855, 0.060);
+ -webkit-transform: translate3d(0, -30px, 0);
+ transform: translate3d(0, -30px, 0);
+ }
+
+ 70% {
+ -webkit-animation-timing-function: cubic-bezier(0.755, 0.050, 0.855, 0.060);
+ animation-timing-function: cubic-bezier(0.755, 0.050, 0.855, 0.060);
+ -webkit-transform: translate3d(0, -15px, 0);
+ transform: translate3d(0, -15px, 0);
+ }
+
+ 90% {
+ -webkit-transform: translate3d(0,-4px,0);
+ transform: translate3d(0,-4px,0);
+ }
+}
+
+.bounce {
+ -webkit-animation-name: bounce;
+ animation-name: bounce;
+ -webkit-transform-origin: center bottom;
+ transform-origin: center bottom;
+}
+
+@-webkit-keyframes flash {
+ from, 50%, 100% {
+ opacity: 1;
+ }
+
+ 25%, 75% {
+ opacity: 0;
+ }
+}
+
+@keyframes flash {
+ from, 50%, 100% {
+ opacity: 1;
+ }
+
+ 25%, 75% {
+ opacity: 0;
+ }
+}
+
+.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);
+ }
+
+ 100% {
+ -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);
+ }
+
+ 100% {
+ -webkit-transform: scale3d(1, 1, 1);
+ transform: scale3d(1, 1, 1);
+ }
+}
+
+.pulse {
+ -webkit-animation-name: pulse;
+ animation-name: pulse;
+}
+
+@-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(.95, 1.05, 1);
+ transform: scale3d(.95, 1.05, 1);
+ }
+
+ 75% {
+ -webkit-transform: scale3d(1.05, .95, 1);
+ transform: scale3d(1.05, .95, 1);
+ }
+
+ 100% {
+ -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(.95, 1.05, 1);
+ transform: scale3d(.95, 1.05, 1);
+ }
+
+ 75% {
+ -webkit-transform: scale3d(1.05, .95, 1);
+ transform: scale3d(1.05, .95, 1);
+ }
+
+ 100% {
+ -webkit-transform: scale3d(1, 1, 1);
+ transform: scale3d(1, 1, 1);
+ }
+}
+
+.rubberBand {
+ -webkit-animation-name: rubberBand;
+ animation-name: rubberBand;
+}
+
+@-webkit-keyframes shake {
+ from, 100% {
+ -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 shake {
+ from, 100% {
+ -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);
+ }
+}
+
+.shake {
+ -webkit-animation-name: shake;
+ animation-name: shake;
+}
+
+@-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);
+ }
+
+ 100% {
+ -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);
+ }
+
+ 100% {
+ -webkit-transform: rotate3d(0, 0, 1, 0deg);
+ transform: rotate3d(0, 0, 1, 0deg);
+ }
+}
+
+.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(.9, .9, .9) rotate3d(0, 0, 1, -3deg);
+ transform: scale3d(.9, .9, .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);
+ }
+
+ 100% {
+ -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(.9, .9, .9) rotate3d(0, 0, 1, -3deg);
+ transform: scale3d(.9, .9, .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);
+ }
+
+ 100% {
+ -webkit-transform: scale3d(1, 1, 1);
+ transform: scale3d(1, 1, 1);
+ }
+}
+
+.tada {
+ -webkit-animation-name: tada;
+ animation-name: tada;
+}
+
+/* originally authored by Nick Pettit - https://github.com/nickpettit/glide */
+
+@-webkit-keyframes wobble {
+ from {
+ -webkit-transform: none;
+ transform: none;
+ }
+
+ 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);
+ }
+
+ 100% {
+ -webkit-transform: none;
+ transform: none;
+ }
+}
+
+@keyframes wobble {
+ from {
+ -webkit-transform: none;
+ transform: none;
+ }
+
+ 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);
+ }
+
+ 100% {
+ -webkit-transform: none;
+ transform: none;
+ }
+}
+
+.wobble {
+ -webkit-animation-name: wobble;
+ animation-name: wobble;
+}
+
+@-webkit-keyframes jello {
+ from, 11.1%, 100% {
+ -webkit-transform: none;
+ transform: none;
+ }
+
+ 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.390625deg) skewY(0.390625deg);
+ transform: skewX(0.390625deg) skewY(0.390625deg);
+ }
+
+ 88.8% {
+ -webkit-transform: skewX(-0.1953125deg) skewY(-0.1953125deg);
+ transform: skewX(-0.1953125deg) skewY(-0.1953125deg);
+ }
+}
+
+@keyframes jello {
+ from, 11.1%, 100% {
+ -webkit-transform: none;
+ transform: none;
+ }
+
+ 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.390625deg) skewY(0.390625deg);
+ transform: skewX(0.390625deg) skewY(0.390625deg);
+ }
+
+ 88.8% {
+ -webkit-transform: skewX(-0.1953125deg) skewY(-0.1953125deg);
+ transform: skewX(-0.1953125deg) skewY(-0.1953125deg);
+ }
+}
+
+.jello {
+ -webkit-animation-name: jello;
+ animation-name: jello;
+ -webkit-transform-origin: center;
+ transform-origin: center;
+}
+
+@-webkit-keyframes bounceIn {
+ from, 20%, 40%, 60%, 80%, 100% {
+ -webkit-animation-timing-function: cubic-bezier(0.215, 0.610, 0.355, 1.000);
+ animation-timing-function: cubic-bezier(0.215, 0.610, 0.355, 1.000);
+ }
+
+ 0% {
+ opacity: 0;
+ -webkit-transform: scale3d(.3, .3, .3);
+ transform: scale3d(.3, .3, .3);
+ }
+
+ 20% {
+ -webkit-transform: scale3d(1.1, 1.1, 1.1);
+ transform: scale3d(1.1, 1.1, 1.1);
+ }
+
+ 40% {
+ -webkit-transform: scale3d(.9, .9, .9);
+ transform: scale3d(.9, .9, .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(.97, .97, .97);
+ transform: scale3d(.97, .97, .97);
+ }
+
+ 100% {
+ opacity: 1;
+ -webkit-transform: scale3d(1, 1, 1);
+ transform: scale3d(1, 1, 1);
+ }
+}
+
+@keyframes bounceIn {
+ from, 20%, 40%, 60%, 80%, 100% {
+ -webkit-animation-timing-function: cubic-bezier(0.215, 0.610, 0.355, 1.000);
+ animation-timing-function: cubic-bezier(0.215, 0.610, 0.355, 1.000);
+ }
+
+ 0% {
+ opacity: 0;
+ -webkit-transform: scale3d(.3, .3, .3);
+ transform: scale3d(.3, .3, .3);
+ }
+
+ 20% {
+ -webkit-transform: scale3d(1.1, 1.1, 1.1);
+ transform: scale3d(1.1, 1.1, 1.1);
+ }
+
+ 40% {
+ -webkit-transform: scale3d(.9, .9, .9);
+ transform: scale3d(.9, .9, .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(.97, .97, .97);
+ transform: scale3d(.97, .97, .97);
+ }
+
+ 100% {
+ opacity: 1;
+ -webkit-transform: scale3d(1, 1, 1);
+ transform: scale3d(1, 1, 1);
+ }
+}
+
+.bounceIn {
+ -webkit-animation-name: bounceIn;
+ animation-name: bounceIn;
+}
+
+@-webkit-keyframes bounceInDown {
+ from, 60%, 75%, 90%, 100% {
+ -webkit-animation-timing-function: cubic-bezier(0.215, 0.610, 0.355, 1.000);
+ animation-timing-function: cubic-bezier(0.215, 0.610, 0.355, 1.000);
+ }
+
+ 0% {
+ opacity: 0;
+ -webkit-transform: translate3d(0, -3000px, 0);
+ transform: translate3d(0, -3000px, 0);
+ }
+
+ 60% {
+ opacity: 1;
+ -webkit-transform: translate3d(0, 25px, 0);
+ transform: translate3d(0, 25px, 0);
+ }
+
+ 75% {
+ -webkit-transform: translate3d(0, -10px, 0);
+ transform: translate3d(0, -10px, 0);
+ }
+
+ 90% {
+ -webkit-transform: translate3d(0, 5px, 0);
+ transform: translate3d(0, 5px, 0);
+ }
+
+ 100% {
+ -webkit-transform: none;
+ transform: none;
+ }
+}
+
+@keyframes bounceInDown {
+ from, 60%, 75%, 90%, 100% {
+ -webkit-animation-timing-function: cubic-bezier(0.215, 0.610, 0.355, 1.000);
+ animation-timing-function: cubic-bezier(0.215, 0.610, 0.355, 1.000);
+ }
+
+ 0% {
+ opacity: 0;
+ -webkit-transform: translate3d(0, -3000px, 0);
+ transform: translate3d(0, -3000px, 0);
+ }
+
+ 60% {
+ opacity: 1;
+ -webkit-transform: translate3d(0, 25px, 0);
+ transform: translate3d(0, 25px, 0);
+ }
+
+ 75% {
+ -webkit-transform: translate3d(0, -10px, 0);
+ transform: translate3d(0, -10px, 0);
+ }
+
+ 90% {
+ -webkit-transform: translate3d(0, 5px, 0);
+ transform: translate3d(0, 5px, 0);
+ }
+
+ 100% {
+ -webkit-transform: none;
+ transform: none;
+ }
+}
+
+.bounceInDown {
+ -webkit-animation-name: bounceInDown;
+ animation-name: bounceInDown;
+}
+
+@-webkit-keyframes bounceInLeft {
+ from, 60%, 75%, 90%, 100% {
+ -webkit-animation-timing-function: cubic-bezier(0.215, 0.610, 0.355, 1.000);
+ animation-timing-function: cubic-bezier(0.215, 0.610, 0.355, 1.000);
+ }
+
+ 0% {
+ opacity: 0;
+ -webkit-transform: translate3d(-3000px, 0, 0);
+ transform: translate3d(-3000px, 0, 0);
+ }
+
+ 60% {
+ opacity: 1;
+ -webkit-transform: translate3d(25px, 0, 0);
+ transform: translate3d(25px, 0, 0);
+ }
+
+ 75% {
+ -webkit-transform: translate3d(-10px, 0, 0);
+ transform: translate3d(-10px, 0, 0);
+ }
+
+ 90% {
+ -webkit-transform: translate3d(5px, 0, 0);
+ transform: translate3d(5px, 0, 0);
+ }
+
+ 100% {
+ -webkit-transform: none;
+ transform: none;
+ }
+}
+
+@keyframes bounceInLeft {
+ from, 60%, 75%, 90%, 100% {
+ -webkit-animation-timing-function: cubic-bezier(0.215, 0.610, 0.355, 1.000);
+ animation-timing-function: cubic-bezier(0.215, 0.610, 0.355, 1.000);
+ }
+
+ 0% {
+ opacity: 0;
+ -webkit-transform: translate3d(-3000px, 0, 0);
+ transform: translate3d(-3000px, 0, 0);
+ }
+
+ 60% {
+ opacity: 1;
+ -webkit-transform: translate3d(25px, 0, 0);
+ transform: translate3d(25px, 0, 0);
+ }
+
+ 75% {
+ -webkit-transform: translate3d(-10px, 0, 0);
+ transform: translate3d(-10px, 0, 0);
+ }
+
+ 90% {
+ -webkit-transform: translate3d(5px, 0, 0);
+ transform: translate3d(5px, 0, 0);
+ }
+
+ 100% {
+ -webkit-transform: none;
+ transform: none;
+ }
+}
+
+.bounceInLeft {
+ -webkit-animation-name: bounceInLeft;
+ animation-name: bounceInLeft;
+}
+
+@-webkit-keyframes bounceInRight {
+ from, 60%, 75%, 90%, 100% {
+ -webkit-animation-timing-function: cubic-bezier(0.215, 0.610, 0.355, 1.000);
+ animation-timing-function: cubic-bezier(0.215, 0.610, 0.355, 1.000);
+ }
+
+ from {
+ opacity: 0;
+ -webkit-transform: translate3d(3000px, 0, 0);
+ transform: translate3d(3000px, 0, 0);
+ }
+
+ 60% {
+ opacity: 1;
+ -webkit-transform: translate3d(-25px, 0, 0);
+ transform: translate3d(-25px, 0, 0);
+ }
+
+ 75% {
+ -webkit-transform: translate3d(10px, 0, 0);
+ transform: translate3d(10px, 0, 0);
+ }
+
+ 90% {
+ -webkit-transform: translate3d(-5px, 0, 0);
+ transform: translate3d(-5px, 0, 0);
+ }
+
+ 100% {
+ -webkit-transform: none;
+ transform: none;
+ }
+}
+
+@keyframes bounceInRight {
+ from, 60%, 75%, 90%, 100% {
+ -webkit-animation-timing-function: cubic-bezier(0.215, 0.610, 0.355, 1.000);
+ animation-timing-function: cubic-bezier(0.215, 0.610, 0.355, 1.000);
+ }
+
+ from {
+ opacity: 0;
+ -webkit-transform: translate3d(3000px, 0, 0);
+ transform: translate3d(3000px, 0, 0);
+ }
+
+ 60% {
+ opacity: 1;
+ -webkit-transform: translate3d(-25px, 0, 0);
+ transform: translate3d(-25px, 0, 0);
+ }
+
+ 75% {
+ -webkit-transform: translate3d(10px, 0, 0);
+ transform: translate3d(10px, 0, 0);
+ }
+
+ 90% {
+ -webkit-transform: translate3d(-5px, 0, 0);
+ transform: translate3d(-5px, 0, 0);
+ }
+
+ 100% {
+ -webkit-transform: none;
+ transform: none;
+ }
+}
+
+.bounceInRight {
+ -webkit-animation-name: bounceInRight;
+ animation-name: bounceInRight;
+}
+
+@-webkit-keyframes bounceInUp {
+ from, 60%, 75%, 90%, 100% {
+ -webkit-animation-timing-function: cubic-bezier(0.215, 0.610, 0.355, 1.000);
+ animation-timing-function: cubic-bezier(0.215, 0.610, 0.355, 1.000);
+ }
+
+ from {
+ opacity: 0;
+ -webkit-transform: translate3d(0, 3000px, 0);
+ transform: translate3d(0, 3000px, 0);
+ }
+
+ 60% {
+ opacity: 1;
+ -webkit-transform: translate3d(0, -20px, 0);
+ transform: translate3d(0, -20px, 0);
+ }
+
+ 75% {
+ -webkit-transform: translate3d(0, 10px, 0);
+ transform: translate3d(0, 10px, 0);
+ }
+
+ 90% {
+ -webkit-transform: translate3d(0, -5px, 0);
+ transform: translate3d(0, -5px, 0);
+ }
+
+ 100% {
+ -webkit-transform: translate3d(0, 0, 0);
+ transform: translate3d(0, 0, 0);
+ }
+}
+
+@keyframes bounceInUp {
+ from, 60%, 75%, 90%, 100% {
+ -webkit-animation-timing-function: cubic-bezier(0.215, 0.610, 0.355, 1.000);
+ animation-timing-function: cubic-bezier(0.215, 0.610, 0.355, 1.000);
+ }
+
+ from {
+ opacity: 0;
+ -webkit-transform: translate3d(0, 3000px, 0);
+ transform: translate3d(0, 3000px, 0);
+ }
+
+ 60% {
+ opacity: 1;
+ -webkit-transform: translate3d(0, -20px, 0);
+ transform: translate3d(0, -20px, 0);
+ }
+
+ 75% {
+ -webkit-transform: translate3d(0, 10px, 0);
+ transform: translate3d(0, 10px, 0);
+ }
+
+ 90% {
+ -webkit-transform: translate3d(0, -5px, 0);
+ transform: translate3d(0, -5px, 0);
+ }
+
+ 100% {
+ -webkit-transform: translate3d(0, 0, 0);
+ transform: translate3d(0, 0, 0);
+ }
+}
+
+.bounceInUp {
+ -webkit-animation-name: bounceInUp;
+ animation-name: bounceInUp;
+}
+
+@-webkit-keyframes bounceOut {
+ 20% {
+ -webkit-transform: scale3d(.9, .9, .9);
+ transform: scale3d(.9, .9, .9);
+ }
+
+ 50%, 55% {
+ opacity: 1;
+ -webkit-transform: scale3d(1.1, 1.1, 1.1);
+ transform: scale3d(1.1, 1.1, 1.1);
+ }
+
+ 100% {
+ opacity: 0;
+ -webkit-transform: scale3d(.3, .3, .3);
+ transform: scale3d(.3, .3, .3);
+ }
+}
+
+@keyframes bounceOut {
+ 20% {
+ -webkit-transform: scale3d(.9, .9, .9);
+ transform: scale3d(.9, .9, .9);
+ }
+
+ 50%, 55% {
+ opacity: 1;
+ -webkit-transform: scale3d(1.1, 1.1, 1.1);
+ transform: scale3d(1.1, 1.1, 1.1);
+ }
+
+ 100% {
+ opacity: 0;
+ -webkit-transform: scale3d(.3, .3, .3);
+ transform: scale3d(.3, .3, .3);
+ }
+}
+
+.bounceOut {
+ -webkit-animation-name: bounceOut;
+ animation-name: bounceOut;
+}
+
+@-webkit-keyframes bounceOutDown {
+ 20% {
+ -webkit-transform: translate3d(0, 10px, 0);
+ transform: translate3d(0, 10px, 0);
+ }
+
+ 40%, 45% {
+ opacity: 1;
+ -webkit-transform: translate3d(0, -20px, 0);
+ transform: translate3d(0, -20px, 0);
+ }
+
+ 100% {
+ opacity: 0;
+ -webkit-transform: translate3d(0, 2000px, 0);
+ transform: translate3d(0, 2000px, 0);
+ }
+}
+
+@keyframes bounceOutDown {
+ 20% {
+ -webkit-transform: translate3d(0, 10px, 0);
+ transform: translate3d(0, 10px, 0);
+ }
+
+ 40%, 45% {
+ opacity: 1;
+ -webkit-transform: translate3d(0, -20px, 0);
+ transform: translate3d(0, -20px, 0);
+ }
+
+ 100% {
+ opacity: 0;
+ -webkit-transform: translate3d(0, 2000px, 0);
+ transform: translate3d(0, 2000px, 0);
+ }
+}
+
+.bounceOutDown {
+ -webkit-animation-name: bounceOutDown;
+ animation-name: bounceOutDown;
+}
+
+@-webkit-keyframes bounceOutLeft {
+ 20% {
+ opacity: 1;
+ -webkit-transform: translate3d(20px, 0, 0);
+ transform: translate3d(20px, 0, 0);
+ }
+
+ 100% {
+ opacity: 0;
+ -webkit-transform: translate3d(-2000px, 0, 0);
+ transform: translate3d(-2000px, 0, 0);
+ }
+}
+
+@keyframes bounceOutLeft {
+ 20% {
+ opacity: 1;
+ -webkit-transform: translate3d(20px, 0, 0);
+ transform: translate3d(20px, 0, 0);
+ }
+
+ 100% {
+ opacity: 0;
+ -webkit-transform: translate3d(-2000px, 0, 0);
+ transform: translate3d(-2000px, 0, 0);
+ }
+}
+
+.bounceOutLeft {
+ -webkit-animation-name: bounceOutLeft;
+ animation-name: bounceOutLeft;
+}
+
+@-webkit-keyframes bounceOutRight {
+ 20% {
+ opacity: 1;
+ -webkit-transform: translate3d(-20px, 0, 0);
+ transform: translate3d(-20px, 0, 0);
+ }
+
+ 100% {
+ opacity: 0;
+ -webkit-transform: translate3d(2000px, 0, 0);
+ transform: translate3d(2000px, 0, 0);
+ }
+}
+
+@keyframes bounceOutRight {
+ 20% {
+ opacity: 1;
+ -webkit-transform: translate3d(-20px, 0, 0);
+ transform: translate3d(-20px, 0, 0);
+ }
+
+ 100% {
+ opacity: 0;
+ -webkit-transform: translate3d(2000px, 0, 0);
+ transform: translate3d(2000px, 0, 0);
+ }
+}
+
+.bounceOutRight {
+ -webkit-animation-name: bounceOutRight;
+ animation-name: bounceOutRight;
+}
+
+@-webkit-keyframes bounceOutUp {
+ 20% {
+ -webkit-transform: translate3d(0, -10px, 0);
+ transform: translate3d(0, -10px, 0);
+ }
+
+ 40%, 45% {
+ opacity: 1;
+ -webkit-transform: translate3d(0, 20px, 0);
+ transform: translate3d(0, 20px, 0);
+ }
+
+ 100% {
+ opacity: 0;
+ -webkit-transform: translate3d(0, -2000px, 0);
+ transform: translate3d(0, -2000px, 0);
+ }
+}
+
+@keyframes bounceOutUp {
+ 20% {
+ -webkit-transform: translate3d(0, -10px, 0);
+ transform: translate3d(0, -10px, 0);
+ }
+
+ 40%, 45% {
+ opacity: 1;
+ -webkit-transform: translate3d(0, 20px, 0);
+ transform: translate3d(0, 20px, 0);
+ }
+
+ 100% {
+ opacity: 0;
+ -webkit-transform: translate3d(0, -2000px, 0);
+ transform: translate3d(0, -2000px, 0);
+ }
+}
+
+.bounceOutUp {
+ -webkit-animation-name: bounceOutUp;
+ animation-name: bounceOutUp;
+}
+
+@-webkit-keyframes fadeIn {
+ from {
+ opacity: 0;
+ }
+
+ 100% {
+ opacity: 1;
+ }
+}
+
+@keyframes fadeIn {
+ from {
+ opacity: 0;
+ }
+
+ 100% {
+ opacity: 1;
+ }
+}
+
+.fadeIn {
+ -webkit-animation-name: fadeIn;
+ animation-name: fadeIn;
+}
+
+@-webkit-keyframes fadeInDown {
+ from {
+ opacity: 0;
+ -webkit-transform: translate3d(0, -100%, 0);
+ transform: translate3d(0, -100%, 0);
+ }
+
+ 100% {
+ opacity: 1;
+ -webkit-transform: none;
+ transform: none;
+ }
+}
+
+@keyframes fadeInDown {
+ from {
+ opacity: 0;
+ -webkit-transform: translate3d(0, -100%, 0);
+ transform: translate3d(0, -100%, 0);
+ }
+
+ 100% {
+ opacity: 1;
+ -webkit-transform: none;
+ transform: none;
+ }
+}
+
+.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);
+ }
+
+ 100% {
+ opacity: 1;
+ -webkit-transform: none;
+ transform: none;
+ }
+}
+
+@keyframes fadeInDownBig {
+ from {
+ opacity: 0;
+ -webkit-transform: translate3d(0, -2000px, 0);
+ transform: translate3d(0, -2000px, 0);
+ }
+
+ 100% {
+ opacity: 1;
+ -webkit-transform: none;
+ transform: none;
+ }
+}
+
+.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);
+ }
+
+ 100% {
+ opacity: 1;
+ -webkit-transform: none;
+ transform: none;
+ }
+}
+
+@keyframes fadeInLeft {
+ from {
+ opacity: 0;
+ -webkit-transform: translate3d(-100%, 0, 0);
+ transform: translate3d(-100%, 0, 0);
+ }
+
+ 100% {
+ opacity: 1;
+ -webkit-transform: none;
+ transform: none;
+ }
+}
+
+.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);
+ }
+
+ 100% {
+ opacity: 1;
+ -webkit-transform: none;
+ transform: none;
+ }
+}
+
+@keyframes fadeInLeftBig {
+ from {
+ opacity: 0;
+ -webkit-transform: translate3d(-2000px, 0, 0);
+ transform: translate3d(-2000px, 0, 0);
+ }
+
+ 100% {
+ opacity: 1;
+ -webkit-transform: none;
+ transform: none;
+ }
+}
+
+.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);
+ }
+
+ 100% {
+ opacity: 1;
+ -webkit-transform: none;
+ transform: none;
+ }
+}
+
+@keyframes fadeInRight {
+ from {
+ opacity: 0;
+ -webkit-transform: translate3d(100%, 0, 0);
+ transform: translate3d(100%, 0, 0);
+ }
+
+ 100% {
+ opacity: 1;
+ -webkit-transform: none;
+ transform: none;
+ }
+}
+
+.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);
+ }
+
+ 100% {
+ opacity: 1;
+ -webkit-transform: none;
+ transform: none;
+ }
+}
+
+@keyframes fadeInRightBig {
+ from {
+ opacity: 0;
+ -webkit-transform: translate3d(2000px, 0, 0);
+ transform: translate3d(2000px, 0, 0);
+ }
+
+ 100% {
+ opacity: 1;
+ -webkit-transform: none;
+ transform: none;
+ }
+}
+
+.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);
+ }
+
+ 100% {
+ opacity: 1;
+ -webkit-transform: none;
+ transform: none;
+ }
+}
+
+@keyframes fadeInUp {
+ from {
+ opacity: 0;
+ -webkit-transform: translate3d(0, 100%, 0);
+ transform: translate3d(0, 100%, 0);
+ }
+
+ 100% {
+ opacity: 1;
+ -webkit-transform: none;
+ transform: none;
+ }
+}
+
+.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);
+ }
+
+ 100% {
+ opacity: 1;
+ -webkit-transform: none;
+ transform: none;
+ }
+}
+
+@keyframes fadeInUpBig {
+ from {
+ opacity: 0;
+ -webkit-transform: translate3d(0, 2000px, 0);
+ transform: translate3d(0, 2000px, 0);
+ }
+
+ 100% {
+ opacity: 1;
+ -webkit-transform: none;
+ transform: none;
+ }
+}
+
+.fadeInUpBig {
+ -webkit-animation-name: fadeInUpBig;
+ animation-name: fadeInUpBig;
+}
+
+@-webkit-keyframes fadeOut {
+ from {
+ opacity: 1;
+ }
+
+ 100% {
+ opacity: 0;
+ }
+}
+
+@keyframes fadeOut {
+ from {
+ opacity: 1;
+ }
+
+ 100% {
+ opacity: 0;
+ }
+}
+
+.fadeOut {
+ -webkit-animation-name: fadeOut;
+ animation-name: fadeOut;
+}
+
+@-webkit-keyframes fadeOutDown {
+ from {
+ opacity: 1;
+ }
+
+ 100% {
+ opacity: 0;
+ -webkit-transform: translate3d(0, 100%, 0);
+ transform: translate3d(0, 100%, 0);
+ }
+}
+
+@keyframes fadeOutDown {
+ from {
+ opacity: 1;
+ }
+
+ 100% {
+ opacity: 0;
+ -webkit-transform: translate3d(0, 100%, 0);
+ transform: translate3d(0, 100%, 0);
+ }
+}
+
+.fadeOutDown {
+ -webkit-animation-name: fadeOutDown;
+ animation-name: fadeOutDown;
+}
+
+@-webkit-keyframes fadeOutDownBig {
+ from {
+ opacity: 1;
+ }
+
+ 100% {
+ opacity: 0;
+ -webkit-transform: translate3d(0, 2000px, 0);
+ transform: translate3d(0, 2000px, 0);
+ }
+}
+
+@keyframes fadeOutDownBig {
+ from {
+ opacity: 1;
+ }
+
+ 100% {
+ opacity: 0;
+ -webkit-transform: translate3d(0, 2000px, 0);
+ transform: translate3d(0, 2000px, 0);
+ }
+}
+
+.fadeOutDownBig {
+ -webkit-animation-name: fadeOutDownBig;
+ animation-name: fadeOutDownBig;
+}
+
+@-webkit-keyframes fadeOutLeft {
+ from {
+ opacity: 1;
+ }
+
+ 100% {
+ opacity: 0;
+ -webkit-transform: translate3d(-100%, 0, 0);
+ transform: translate3d(-100%, 0, 0);
+ }
+}
+
+@keyframes fadeOutLeft {
+ from {
+ opacity: 1;
+ }
+
+ 100% {
+ opacity: 0;
+ -webkit-transform: translate3d(-100%, 0, 0);
+ transform: translate3d(-100%, 0, 0);
+ }
+}
+
+.fadeOutLeft {
+ -webkit-animation-name: fadeOutLeft;
+ animation-name: fadeOutLeft;
+}
+
+@-webkit-keyframes fadeOutLeftBig {
+ from {
+ opacity: 1;
+ }
+
+ 100% {
+ opacity: 0;
+ -webkit-transform: translate3d(-2000px, 0, 0);
+ transform: translate3d(-2000px, 0, 0);
+ }
+}
+
+@keyframes fadeOutLeftBig {
+ from {
+ opacity: 1;
+ }
+
+ 100% {
+ opacity: 0;
+ -webkit-transform: translate3d(-2000px, 0, 0);
+ transform: translate3d(-2000px, 0, 0);
+ }
+}
+
+.fadeOutLeftBig {
+ -webkit-animation-name: fadeOutLeftBig;
+ animation-name: fadeOutLeftBig;
+}
+
+@-webkit-keyframes fadeOutRight {
+ from {
+ opacity: 1;
+ }
+
+ 100% {
+ opacity: 0;
+ -webkit-transform: translate3d(100%, 0, 0);
+ transform: translate3d(100%, 0, 0);
+ }
+}
+
+@keyframes fadeOutRight {
+ from {
+ opacity: 1;
+ }
+
+ 100% {
+ opacity: 0;
+ -webkit-transform: translate3d(100%, 0, 0);
+ transform: translate3d(100%, 0, 0);
+ }
+}
+
+.fadeOutRight {
+ -webkit-animation-name: fadeOutRight;
+ animation-name: fadeOutRight;
+}
+
+@-webkit-keyframes fadeOutRightBig {
+ from {
+ opacity: 1;
+ }
+
+ 100% {
+ opacity: 0;
+ -webkit-transform: translate3d(2000px, 0, 0);
+ transform: translate3d(2000px, 0, 0);
+ }
+}
+
+@keyframes fadeOutRightBig {
+ from {
+ opacity: 1;
+ }
+
+ 100% {
+ opacity: 0;
+ -webkit-transform: translate3d(2000px, 0, 0);
+ transform: translate3d(2000px, 0, 0);
+ }
+}
+
+.fadeOutRightBig {
+ -webkit-animation-name: fadeOutRightBig;
+ animation-name: fadeOutRightBig;
+}
+
+@-webkit-keyframes fadeOutUp {
+ from {
+ opacity: 1;
+ }
+
+ 100% {
+ opacity: 0;
+ -webkit-transform: translate3d(0, -100%, 0);
+ transform: translate3d(0, -100%, 0);
+ }
+}
+
+@keyframes fadeOutUp {
+ from {
+ opacity: 1;
+ }
+
+ 100% {
+ opacity: 0;
+ -webkit-transform: translate3d(0, -100%, 0);
+ transform: translate3d(0, -100%, 0);
+ }
+}
+
+.fadeOutUp {
+ -webkit-animation-name: fadeOutUp;
+ animation-name: fadeOutUp;
+}
+
+@-webkit-keyframes fadeOutUpBig {
+ from {
+ opacity: 1;
+ }
+
+ 100% {
+ opacity: 0;
+ -webkit-transform: translate3d(0, -2000px, 0);
+ transform: translate3d(0, -2000px, 0);
+ }
+}
+
+@keyframes fadeOutUpBig {
+ from {
+ opacity: 1;
+ }
+
+ 100% {
+ opacity: 0;
+ -webkit-transform: translate3d(0, -2000px, 0);
+ transform: translate3d(0, -2000px, 0);
+ }
+}
+
+.fadeOutUpBig {
+ -webkit-animation-name: fadeOutUpBig;
+ animation-name: fadeOutUpBig;
+}
+
+@-webkit-keyframes flip {
+ from {
+ -webkit-transform: perspective(400px) rotate3d(0, 1, 0, -360deg);
+ transform: perspective(400px) rotate3d(0, 1, 0, -360deg);
+ -webkit-animation-timing-function: ease-out;
+ animation-timing-function: ease-out;
+ }
+
+ 40% {
+ -webkit-transform: perspective(400px) translate3d(0, 0, 150px) rotate3d(0, 1, 0, -190deg);
+ transform: perspective(400px) 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) translate3d(0, 0, 150px) rotate3d(0, 1, 0, -170deg);
+ transform: perspective(400px) 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(.95, .95, .95);
+ transform: perspective(400px) scale3d(.95, .95, .95);
+ -webkit-animation-timing-function: ease-in;
+ animation-timing-function: ease-in;
+ }
+
+ 100% {
+ -webkit-transform: perspective(400px);
+ transform: perspective(400px);
+ -webkit-animation-timing-function: ease-in;
+ animation-timing-function: ease-in;
+ }
+}
+
+@keyframes flip {
+ from {
+ -webkit-transform: perspective(400px) rotate3d(0, 1, 0, -360deg);
+ transform: perspective(400px) rotate3d(0, 1, 0, -360deg);
+ -webkit-animation-timing-function: ease-out;
+ animation-timing-function: ease-out;
+ }
+
+ 40% {
+ -webkit-transform: perspective(400px) translate3d(0, 0, 150px) rotate3d(0, 1, 0, -190deg);
+ transform: perspective(400px) 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) translate3d(0, 0, 150px) rotate3d(0, 1, 0, -170deg);
+ transform: perspective(400px) 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(.95, .95, .95);
+ transform: perspective(400px) scale3d(.95, .95, .95);
+ -webkit-animation-timing-function: ease-in;
+ animation-timing-function: ease-in;
+ }
+
+ 100% {
+ -webkit-transform: perspective(400px);
+ transform: perspective(400px);
+ -webkit-animation-timing-function: ease-in;
+ animation-timing-function: ease-in;
+ }
+}
+
+.animated.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);
+ }
+
+ 100% {
+ -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);
+ }
+
+ 100% {
+ -webkit-transform: perspective(400px);
+ transform: perspective(400px);
+ }
+}
+
+.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);
+ }
+
+ 100% {
+ -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);
+ }
+
+ 100% {
+ -webkit-transform: perspective(400px);
+ transform: perspective(400px);
+ }
+}
+
+.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;
+ }
+
+ 100% {
+ -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;
+ }
+
+ 100% {
+ -webkit-transform: perspective(400px) rotate3d(1, 0, 0, 90deg);
+ transform: perspective(400px) rotate3d(1, 0, 0, 90deg);
+ opacity: 0;
+ }
+}
+
+.flipOutX {
+ -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;
+ }
+
+ 100% {
+ -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;
+ }
+
+ 100% {
+ -webkit-transform: perspective(400px) rotate3d(0, 1, 0, 90deg);
+ transform: perspective(400px) rotate3d(0, 1, 0, 90deg);
+ opacity: 0;
+ }
+}
+
+.flipOutY {
+ -webkit-backface-visibility: visible !important;
+ backface-visibility: visible !important;
+ -webkit-animation-name: flipOutY;
+ animation-name: flipOutY;
+}
+
+@-webkit-keyframes lightSpeedIn {
+ 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);
+ opacity: 1;
+ }
+
+ 100% {
+ -webkit-transform: none;
+ transform: none;
+ opacity: 1;
+ }
+}
+
+@keyframes lightSpeedIn {
+ 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);
+ opacity: 1;
+ }
+
+ 100% {
+ -webkit-transform: none;
+ transform: none;
+ opacity: 1;
+ }
+}
+
+.lightSpeedIn {
+ -webkit-animation-name: lightSpeedIn;
+ animation-name: lightSpeedIn;
+ -webkit-animation-timing-function: ease-out;
+ animation-timing-function: ease-out;
+}
+
+@-webkit-keyframes lightSpeedOut {
+ from {
+ opacity: 1;
+ }
+
+ 100% {
+ -webkit-transform: translate3d(100%, 0, 0) skewX(30deg);
+ transform: translate3d(100%, 0, 0) skewX(30deg);
+ opacity: 0;
+ }
+}
+
+@keyframes lightSpeedOut {
+ from {
+ opacity: 1;
+ }
+
+ 100% {
+ -webkit-transform: translate3d(100%, 0, 0) skewX(30deg);
+ transform: translate3d(100%, 0, 0) skewX(30deg);
+ opacity: 0;
+ }
+}
+
+.lightSpeedOut {
+ -webkit-animation-name: lightSpeedOut;
+ animation-name: lightSpeedOut;
+ -webkit-animation-timing-function: ease-in;
+ animation-timing-function: ease-in;
+}
+
+@-webkit-keyframes rotateIn {
+ from {
+ -webkit-transform-origin: center;
+ transform-origin: center;
+ -webkit-transform: rotate3d(0, 0, 1, -200deg);
+ transform: rotate3d(0, 0, 1, -200deg);
+ opacity: 0;
+ }
+
+ 100% {
+ -webkit-transform-origin: center;
+ transform-origin: center;
+ -webkit-transform: none;
+ transform: none;
+ opacity: 1;
+ }
+}
+
+@keyframes rotateIn {
+ from {
+ -webkit-transform-origin: center;
+ transform-origin: center;
+ -webkit-transform: rotate3d(0, 0, 1, -200deg);
+ transform: rotate3d(0, 0, 1, -200deg);
+ opacity: 0;
+ }
+
+ 100% {
+ -webkit-transform-origin: center;
+ transform-origin: center;
+ -webkit-transform: none;
+ transform: none;
+ opacity: 1;
+ }
+}
+
+.rotateIn {
+ -webkit-animation-name: rotateIn;
+ animation-name: rotateIn;
+}
+
+@-webkit-keyframes rotateInDownLeft {
+ from {
+ -webkit-transform-origin: left bottom;
+ transform-origin: left bottom;
+ -webkit-transform: rotate3d(0, 0, 1, -45deg);
+ transform: rotate3d(0, 0, 1, -45deg);
+ opacity: 0;
+ }
+
+ 100% {
+ -webkit-transform-origin: left bottom;
+ transform-origin: left bottom;
+ -webkit-transform: none;
+ transform: none;
+ opacity: 1;
+ }
+}
+
+@keyframes rotateInDownLeft {
+ from {
+ -webkit-transform-origin: left bottom;
+ transform-origin: left bottom;
+ -webkit-transform: rotate3d(0, 0, 1, -45deg);
+ transform: rotate3d(0, 0, 1, -45deg);
+ opacity: 0;
+ }
+
+ 100% {
+ -webkit-transform-origin: left bottom;
+ transform-origin: left bottom;
+ -webkit-transform: none;
+ transform: none;
+ opacity: 1;
+ }
+}
+
+.rotateInDownLeft {
+ -webkit-animation-name: rotateInDownLeft;
+ animation-name: rotateInDownLeft;
+}
+
+@-webkit-keyframes rotateInDownRight {
+ from {
+ -webkit-transform-origin: right bottom;
+ transform-origin: right bottom;
+ -webkit-transform: rotate3d(0, 0, 1, 45deg);
+ transform: rotate3d(0, 0, 1, 45deg);
+ opacity: 0;
+ }
+
+ 100% {
+ -webkit-transform-origin: right bottom;
+ transform-origin: right bottom;
+ -webkit-transform: none;
+ transform: none;
+ opacity: 1;
+ }
+}
+
+@keyframes rotateInDownRight {
+ from {
+ -webkit-transform-origin: right bottom;
+ transform-origin: right bottom;
+ -webkit-transform: rotate3d(0, 0, 1, 45deg);
+ transform: rotate3d(0, 0, 1, 45deg);
+ opacity: 0;
+ }
+
+ 100% {
+ -webkit-transform-origin: right bottom;
+ transform-origin: right bottom;
+ -webkit-transform: none;
+ transform: none;
+ opacity: 1;
+ }
+}
+
+.rotateInDownRight {
+ -webkit-animation-name: rotateInDownRight;
+ animation-name: rotateInDownRight;
+}
+
+@-webkit-keyframes rotateInUpLeft {
+ from {
+ -webkit-transform-origin: left bottom;
+ transform-origin: left bottom;
+ -webkit-transform: rotate3d(0, 0, 1, 45deg);
+ transform: rotate3d(0, 0, 1, 45deg);
+ opacity: 0;
+ }
+
+ 100% {
+ -webkit-transform-origin: left bottom;
+ transform-origin: left bottom;
+ -webkit-transform: none;
+ transform: none;
+ opacity: 1;
+ }
+}
+
+@keyframes rotateInUpLeft {
+ from {
+ -webkit-transform-origin: left bottom;
+ transform-origin: left bottom;
+ -webkit-transform: rotate3d(0, 0, 1, 45deg);
+ transform: rotate3d(0, 0, 1, 45deg);
+ opacity: 0;
+ }
+
+ 100% {
+ -webkit-transform-origin: left bottom;
+ transform-origin: left bottom;
+ -webkit-transform: none;
+ transform: none;
+ opacity: 1;
+ }
+}
+
+.rotateInUpLeft {
+ -webkit-animation-name: rotateInUpLeft;
+ animation-name: rotateInUpLeft;
+}
+
+@-webkit-keyframes rotateInUpRight {
+ from {
+ -webkit-transform-origin: right bottom;
+ transform-origin: right bottom;
+ -webkit-transform: rotate3d(0, 0, 1, -90deg);
+ transform: rotate3d(0, 0, 1, -90deg);
+ opacity: 0;
+ }
+
+ 100% {
+ -webkit-transform-origin: right bottom;
+ transform-origin: right bottom;
+ -webkit-transform: none;
+ transform: none;
+ opacity: 1;
+ }
+}
+
+@keyframes rotateInUpRight {
+ from {
+ -webkit-transform-origin: right bottom;
+ transform-origin: right bottom;
+ -webkit-transform: rotate3d(0, 0, 1, -90deg);
+ transform: rotate3d(0, 0, 1, -90deg);
+ opacity: 0;
+ }
+
+ 100% {
+ -webkit-transform-origin: right bottom;
+ transform-origin: right bottom;
+ -webkit-transform: none;
+ transform: none;
+ opacity: 1;
+ }
+}
+
+.rotateInUpRight {
+ -webkit-animation-name: rotateInUpRight;
+ animation-name: rotateInUpRight;
+}
+
+@-webkit-keyframes rotateOut {
+ from {
+ -webkit-transform-origin: center;
+ transform-origin: center;
+ opacity: 1;
+ }
+
+ 100% {
+ -webkit-transform-origin: center;
+ transform-origin: center;
+ -webkit-transform: rotate3d(0, 0, 1, 200deg);
+ transform: rotate3d(0, 0, 1, 200deg);
+ opacity: 0;
+ }
+}
+
+@keyframes rotateOut {
+ from {
+ -webkit-transform-origin: center;
+ transform-origin: center;
+ opacity: 1;
+ }
+
+ 100% {
+ -webkit-transform-origin: center;
+ transform-origin: center;
+ -webkit-transform: rotate3d(0, 0, 1, 200deg);
+ transform: rotate3d(0, 0, 1, 200deg);
+ opacity: 0;
+ }
+}
+
+.rotateOut {
+ -webkit-animation-name: rotateOut;
+ animation-name: rotateOut;
+}
+
+@-webkit-keyframes rotateOutDownLeft {
+ from {
+ -webkit-transform-origin: left bottom;
+ transform-origin: left bottom;
+ opacity: 1;
+ }
+
+ 100% {
+ -webkit-transform-origin: left bottom;
+ transform-origin: left bottom;
+ -webkit-transform: rotate3d(0, 0, 1, 45deg);
+ transform: rotate3d(0, 0, 1, 45deg);
+ opacity: 0;
+ }
+}
+
+@keyframes rotateOutDownLeft {
+ from {
+ -webkit-transform-origin: left bottom;
+ transform-origin: left bottom;
+ opacity: 1;
+ }
+
+ 100% {
+ -webkit-transform-origin: left bottom;
+ transform-origin: left bottom;
+ -webkit-transform: rotate3d(0, 0, 1, 45deg);
+ transform: rotate3d(0, 0, 1, 45deg);
+ opacity: 0;
+ }
+}
+
+.rotateOutDownLeft {
+ -webkit-animation-name: rotateOutDownLeft;
+ animation-name: rotateOutDownLeft;
+}
+
+@-webkit-keyframes rotateOutDownRight {
+ from {
+ -webkit-transform-origin: right bottom;
+ transform-origin: right bottom;
+ opacity: 1;
+ }
+
+ 100% {
+ -webkit-transform-origin: right bottom;
+ transform-origin: right bottom;
+ -webkit-transform: rotate3d(0, 0, 1, -45deg);
+ transform: rotate3d(0, 0, 1, -45deg);
+ opacity: 0;
+ }
+}
+
+@keyframes rotateOutDownRight {
+ from {
+ -webkit-transform-origin: right bottom;
+ transform-origin: right bottom;
+ opacity: 1;
+ }
+
+ 100% {
+ -webkit-transform-origin: right bottom;
+ transform-origin: right bottom;
+ -webkit-transform: rotate3d(0, 0, 1, -45deg);
+ transform: rotate3d(0, 0, 1, -45deg);
+ opacity: 0;
+ }
+}
+
+.rotateOutDownRight {
+ -webkit-animation-name: rotateOutDownRight;
+ animation-name: rotateOutDownRight;
+}
+
+@-webkit-keyframes rotateOutUpLeft {
+ from {
+ -webkit-transform-origin: left bottom;
+ transform-origin: left bottom;
+ opacity: 1;
+ }
+
+ 100% {
+ -webkit-transform-origin: left bottom;
+ transform-origin: left bottom;
+ -webkit-transform: rotate3d(0, 0, 1, -45deg);
+ transform: rotate3d(0, 0, 1, -45deg);
+ opacity: 0;
+ }
+}
+
+@keyframes rotateOutUpLeft {
+ from {
+ -webkit-transform-origin: left bottom;
+ transform-origin: left bottom;
+ opacity: 1;
+ }
+
+ 100% {
+ -webkit-transform-origin: left bottom;
+ transform-origin: left bottom;
+ -webkit-transform: rotate3d(0, 0, 1, -45deg);
+ transform: rotate3d(0, 0, 1, -45deg);
+ opacity: 0;
+ }
+}
+
+.rotateOutUpLeft {
+ -webkit-animation-name: rotateOutUpLeft;
+ animation-name: rotateOutUpLeft;
+}
+
+@-webkit-keyframes rotateOutUpRight {
+ from {
+ -webkit-transform-origin: right bottom;
+ transform-origin: right bottom;
+ opacity: 1;
+ }
+
+ 100% {
+ -webkit-transform-origin: right bottom;
+ transform-origin: right bottom;
+ -webkit-transform: rotate3d(0, 0, 1, 90deg);
+ transform: rotate3d(0, 0, 1, 90deg);
+ opacity: 0;
+ }
+}
+
+@keyframes rotateOutUpRight {
+ from {
+ -webkit-transform-origin: right bottom;
+ transform-origin: right bottom;
+ opacity: 1;
+ }
+
+ 100% {
+ -webkit-transform-origin: right bottom;
+ transform-origin: right bottom;
+ -webkit-transform: rotate3d(0, 0, 1, 90deg);
+ transform: rotate3d(0, 0, 1, 90deg);
+ opacity: 0;
+ }
+}
+
+.rotateOutUpRight {
+ -webkit-animation-name: rotateOutUpRight;
+ animation-name: rotateOutUpRight;
+}
+
+@-webkit-keyframes hinge {
+ 0% {
+ -webkit-transform-origin: top left;
+ transform-origin: top left;
+ -webkit-animation-timing-function: ease-in-out;
+ animation-timing-function: ease-in-out;
+ }
+
+ 20%, 60% {
+ -webkit-transform: rotate3d(0, 0, 1, 80deg);
+ transform: rotate3d(0, 0, 1, 80deg);
+ -webkit-transform-origin: top left;
+ transform-origin: top left;
+ -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-transform-origin: top left;
+ transform-origin: top left;
+ -webkit-animation-timing-function: ease-in-out;
+ animation-timing-function: ease-in-out;
+ opacity: 1;
+ }
+
+ 100% {
+ -webkit-transform: translate3d(0, 700px, 0);
+ transform: translate3d(0, 700px, 0);
+ opacity: 0;
+ }
+}
+
+@keyframes hinge {
+ 0% {
+ -webkit-transform-origin: top left;
+ transform-origin: top left;
+ -webkit-animation-timing-function: ease-in-out;
+ animation-timing-function: ease-in-out;
+ }
+
+ 20%, 60% {
+ -webkit-transform: rotate3d(0, 0, 1, 80deg);
+ transform: rotate3d(0, 0, 1, 80deg);
+ -webkit-transform-origin: top left;
+ transform-origin: top left;
+ -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-transform-origin: top left;
+ transform-origin: top left;
+ -webkit-animation-timing-function: ease-in-out;
+ animation-timing-function: ease-in-out;
+ opacity: 1;
+ }
+
+ 100% {
+ -webkit-transform: translate3d(0, 700px, 0);
+ transform: translate3d(0, 700px, 0);
+ opacity: 0;
+ }
+}
+
+.hinge {
+ -webkit-animation-name: hinge;
+ animation-name: hinge;
+}
+
+/* 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);
+ }
+
+ 100% {
+ opacity: 1;
+ -webkit-transform: none;
+ transform: none;
+ }
+}
+
+@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);
+ }
+
+ 100% {
+ opacity: 1;
+ -webkit-transform: none;
+ transform: none;
+ }
+}
+
+.rollIn {
+ -webkit-animation-name: rollIn;
+ animation-name: rollIn;
+}
+
+/* originally authored by Nick Pettit - https://github.com/nickpettit/glide */
+
+@-webkit-keyframes rollOut {
+ from {
+ opacity: 1;
+ }
+
+ 100% {
+ 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;
+ }
+
+ 100% {
+ opacity: 0;
+ -webkit-transform: translate3d(100%, 0, 0) rotate3d(0, 0, 1, 120deg);
+ transform: translate3d(100%, 0, 0) rotate3d(0, 0, 1, 120deg);
+ }
+}
+
+.rollOut {
+ -webkit-animation-name: rollOut;
+ animation-name: rollOut;
+}
+
+@-webkit-keyframes zoomIn {
+ from {
+ opacity: 0;
+ -webkit-transform: scale3d(.3, .3, .3);
+ transform: scale3d(.3, .3, .3);
+ }
+
+ 50% {
+ opacity: 1;
+ }
+}
+
+@keyframes zoomIn {
+ from {
+ opacity: 0;
+ -webkit-transform: scale3d(.3, .3, .3);
+ transform: scale3d(.3, .3, .3);
+ }
+
+ 50% {
+ opacity: 1;
+ }
+}
+
+.zoomIn {
+ -webkit-animation-name: zoomIn;
+ animation-name: zoomIn;
+}
+
+@-webkit-keyframes zoomInDown {
+ from {
+ opacity: 0;
+ -webkit-transform: scale3d(.1, .1, .1) translate3d(0, -1000px, 0);
+ transform: scale3d(.1, .1, .1) translate3d(0, -1000px, 0);
+ -webkit-animation-timing-function: cubic-bezier(0.550, 0.055, 0.675, 0.190);
+ animation-timing-function: cubic-bezier(0.550, 0.055, 0.675, 0.190);
+ }
+
+ 60% {
+ opacity: 1;
+ -webkit-transform: scale3d(.475, .475, .475) translate3d(0, 60px, 0);
+ transform: scale3d(.475, .475, .475) translate3d(0, 60px, 0);
+ -webkit-animation-timing-function: cubic-bezier(0.175, 0.885, 0.320, 1);
+ animation-timing-function: cubic-bezier(0.175, 0.885, 0.320, 1);
+ }
+}
+
+@keyframes zoomInDown {
+ from {
+ opacity: 0;
+ -webkit-transform: scale3d(.1, .1, .1) translate3d(0, -1000px, 0);
+ transform: scale3d(.1, .1, .1) translate3d(0, -1000px, 0);
+ -webkit-animation-timing-function: cubic-bezier(0.550, 0.055, 0.675, 0.190);
+ animation-timing-function: cubic-bezier(0.550, 0.055, 0.675, 0.190);
+ }
+
+ 60% {
+ opacity: 1;
+ -webkit-transform: scale3d(.475, .475, .475) translate3d(0, 60px, 0);
+ transform: scale3d(.475, .475, .475) translate3d(0, 60px, 0);
+ -webkit-animation-timing-function: cubic-bezier(0.175, 0.885, 0.320, 1);
+ animation-timing-function: cubic-bezier(0.175, 0.885, 0.320, 1);
+ }
+}
+
+.zoomInDown {
+ -webkit-animation-name: zoomInDown;
+ animation-name: zoomInDown;
+}
+
+@-webkit-keyframes zoomInLeft {
+ from {
+ opacity: 0;
+ -webkit-transform: scale3d(.1, .1, .1) translate3d(-1000px, 0, 0);
+ transform: scale3d(.1, .1, .1) translate3d(-1000px, 0, 0);
+ -webkit-animation-timing-function: cubic-bezier(0.550, 0.055, 0.675, 0.190);
+ animation-timing-function: cubic-bezier(0.550, 0.055, 0.675, 0.190);
+ }
+
+ 60% {
+ opacity: 1;
+ -webkit-transform: scale3d(.475, .475, .475) translate3d(10px, 0, 0);
+ transform: scale3d(.475, .475, .475) translate3d(10px, 0, 0);
+ -webkit-animation-timing-function: cubic-bezier(0.175, 0.885, 0.320, 1);
+ animation-timing-function: cubic-bezier(0.175, 0.885, 0.320, 1);
+ }
+}
+
+@keyframes zoomInLeft {
+ from {
+ opacity: 0;
+ -webkit-transform: scale3d(.1, .1, .1) translate3d(-1000px, 0, 0);
+ transform: scale3d(.1, .1, .1) translate3d(-1000px, 0, 0);
+ -webkit-animation-timing-function: cubic-bezier(0.550, 0.055, 0.675, 0.190);
+ animation-timing-function: cubic-bezier(0.550, 0.055, 0.675, 0.190);
+ }
+
+ 60% {
+ opacity: 1;
+ -webkit-transform: scale3d(.475, .475, .475) translate3d(10px, 0, 0);
+ transform: scale3d(.475, .475, .475) translate3d(10px, 0, 0);
+ -webkit-animation-timing-function: cubic-bezier(0.175, 0.885, 0.320, 1);
+ animation-timing-function: cubic-bezier(0.175, 0.885, 0.320, 1);
+ }
+}
+
+.zoomInLeft {
+ -webkit-animation-name: zoomInLeft;
+ animation-name: zoomInLeft;
+}
+
+@-webkit-keyframes zoomInRight {
+ from {
+ opacity: 0;
+ -webkit-transform: scale3d(.1, .1, .1) translate3d(1000px, 0, 0);
+ transform: scale3d(.1, .1, .1) translate3d(1000px, 0, 0);
+ -webkit-animation-timing-function: cubic-bezier(0.550, 0.055, 0.675, 0.190);
+ animation-timing-function: cubic-bezier(0.550, 0.055, 0.675, 0.190);
+ }
+
+ 60% {
+ opacity: 1;
+ -webkit-transform: scale3d(.475, .475, .475) translate3d(-10px, 0, 0);
+ transform: scale3d(.475, .475, .475) translate3d(-10px, 0, 0);
+ -webkit-animation-timing-function: cubic-bezier(0.175, 0.885, 0.320, 1);
+ animation-timing-function: cubic-bezier(0.175, 0.885, 0.320, 1);
+ }
+}
+
+@keyframes zoomInRight {
+ from {
+ opacity: 0;
+ -webkit-transform: scale3d(.1, .1, .1) translate3d(1000px, 0, 0);
+ transform: scale3d(.1, .1, .1) translate3d(1000px, 0, 0);
+ -webkit-animation-timing-function: cubic-bezier(0.550, 0.055, 0.675, 0.190);
+ animation-timing-function: cubic-bezier(0.550, 0.055, 0.675, 0.190);
+ }
+
+ 60% {
+ opacity: 1;
+ -webkit-transform: scale3d(.475, .475, .475) translate3d(-10px, 0, 0);
+ transform: scale3d(.475, .475, .475) translate3d(-10px, 0, 0);
+ -webkit-animation-timing-function: cubic-bezier(0.175, 0.885, 0.320, 1);
+ animation-timing-function: cubic-bezier(0.175, 0.885, 0.320, 1);
+ }
+}
+
+.zoomInRight {
+ -webkit-animation-name: zoomInRight;
+ animation-name: zoomInRight;
+}
+
+@-webkit-keyframes zoomInUp {
+ from {
+ opacity: 0;
+ -webkit-transform: scale3d(.1, .1, .1) translate3d(0, 1000px, 0);
+ transform: scale3d(.1, .1, .1) translate3d(0, 1000px, 0);
+ -webkit-animation-timing-function: cubic-bezier(0.550, 0.055, 0.675, 0.190);
+ animation-timing-function: cubic-bezier(0.550, 0.055, 0.675, 0.190);
+ }
+
+ 60% {
+ opacity: 1;
+ -webkit-transform: scale3d(.475, .475, .475) translate3d(0, -60px, 0);
+ transform: scale3d(.475, .475, .475) translate3d(0, -60px, 0);
+ -webkit-animation-timing-function: cubic-bezier(0.175, 0.885, 0.320, 1);
+ animation-timing-function: cubic-bezier(0.175, 0.885, 0.320, 1);
+ }
+}
+
+@keyframes zoomInUp {
+ from {
+ opacity: 0;
+ -webkit-transform: scale3d(.1, .1, .1) translate3d(0, 1000px, 0);
+ transform: scale3d(.1, .1, .1) translate3d(0, 1000px, 0);
+ -webkit-animation-timing-function: cubic-bezier(0.550, 0.055, 0.675, 0.190);
+ animation-timing-function: cubic-bezier(0.550, 0.055, 0.675, 0.190);
+ }
+
+ 60% {
+ opacity: 1;
+ -webkit-transform: scale3d(.475, .475, .475) translate3d(0, -60px, 0);
+ transform: scale3d(.475, .475, .475) translate3d(0, -60px, 0);
+ -webkit-animation-timing-function: cubic-bezier(0.175, 0.885, 0.320, 1);
+ animation-timing-function: cubic-bezier(0.175, 0.885, 0.320, 1);
+ }
+}
+
+.zoomInUp {
+ -webkit-animation-name: zoomInUp;
+ animation-name: zoomInUp;
+}
+
+@-webkit-keyframes zoomOut {
+ from {
+ opacity: 1;
+ }
+
+ 50% {
+ opacity: 0;
+ -webkit-transform: scale3d(.3, .3, .3);
+ transform: scale3d(.3, .3, .3);
+ }
+
+ 100% {
+ opacity: 0;
+ }
+}
+
+@keyframes zoomOut {
+ from {
+ opacity: 1;
+ }
+
+ 50% {
+ opacity: 0;
+ -webkit-transform: scale3d(.3, .3, .3);
+ transform: scale3d(.3, .3, .3);
+ }
+
+ 100% {
+ opacity: 0;
+ }
+}
+
+.zoomOut {
+ -webkit-animation-name: zoomOut;
+ animation-name: zoomOut;
+}
+
+@-webkit-keyframes zoomOutDown {
+ 40% {
+ opacity: 1;
+ -webkit-transform: scale3d(.475, .475, .475) translate3d(0, -60px, 0);
+ transform: scale3d(.475, .475, .475) translate3d(0, -60px, 0);
+ -webkit-animation-timing-function: cubic-bezier(0.550, 0.055, 0.675, 0.190);
+ animation-timing-function: cubic-bezier(0.550, 0.055, 0.675, 0.190);
+ }
+
+ 100% {
+ opacity: 0;
+ -webkit-transform: scale3d(.1, .1, .1) translate3d(0, 2000px, 0);
+ transform: scale3d(.1, .1, .1) translate3d(0, 2000px, 0);
+ -webkit-transform-origin: center bottom;
+ transform-origin: center bottom;
+ -webkit-animation-timing-function: cubic-bezier(0.175, 0.885, 0.320, 1);
+ animation-timing-function: cubic-bezier(0.175, 0.885, 0.320, 1);
+ }
+}
+
+@keyframes zoomOutDown {
+ 40% {
+ opacity: 1;
+ -webkit-transform: scale3d(.475, .475, .475) translate3d(0, -60px, 0);
+ transform: scale3d(.475, .475, .475) translate3d(0, -60px, 0);
+ -webkit-animation-timing-function: cubic-bezier(0.550, 0.055, 0.675, 0.190);
+ animation-timing-function: cubic-bezier(0.550, 0.055, 0.675, 0.190);
+ }
+
+ 100% {
+ opacity: 0;
+ -webkit-transform: scale3d(.1, .1, .1) translate3d(0, 2000px, 0);
+ transform: scale3d(.1, .1, .1) translate3d(0, 2000px, 0);
+ -webkit-transform-origin: center bottom;
+ transform-origin: center bottom;
+ -webkit-animation-timing-function: cubic-bezier(0.175, 0.885, 0.320, 1);
+ animation-timing-function: cubic-bezier(0.175, 0.885, 0.320, 1);
+ }
+}
+
+.zoomOutDown {
+ -webkit-animation-name: zoomOutDown;
+ animation-name: zoomOutDown;
+}
+
+@-webkit-keyframes zoomOutLeft {
+ 40% {
+ opacity: 1;
+ -webkit-transform: scale3d(.475, .475, .475) translate3d(42px, 0, 0);
+ transform: scale3d(.475, .475, .475) translate3d(42px, 0, 0);
+ }
+
+ 100% {
+ opacity: 0;
+ -webkit-transform: scale(.1) translate3d(-2000px, 0, 0);
+ transform: scale(.1) translate3d(-2000px, 0, 0);
+ -webkit-transform-origin: left center;
+ transform-origin: left center;
+ }
+}
+
+@keyframes zoomOutLeft {
+ 40% {
+ opacity: 1;
+ -webkit-transform: scale3d(.475, .475, .475) translate3d(42px, 0, 0);
+ transform: scale3d(.475, .475, .475) translate3d(42px, 0, 0);
+ }
+
+ 100% {
+ opacity: 0;
+ -webkit-transform: scale(.1) translate3d(-2000px, 0, 0);
+ transform: scale(.1) translate3d(-2000px, 0, 0);
+ -webkit-transform-origin: left center;
+ transform-origin: left center;
+ }
+}
+
+.zoomOutLeft {
+ -webkit-animation-name: zoomOutLeft;
+ animation-name: zoomOutLeft;
+}
+
+@-webkit-keyframes zoomOutRight {
+ 40% {
+ opacity: 1;
+ -webkit-transform: scale3d(.475, .475, .475) translate3d(-42px, 0, 0);
+ transform: scale3d(.475, .475, .475) translate3d(-42px, 0, 0);
+ }
+
+ 100% {
+ opacity: 0;
+ -webkit-transform: scale(.1) translate3d(2000px, 0, 0);
+ transform: scale(.1) translate3d(2000px, 0, 0);
+ -webkit-transform-origin: right center;
+ transform-origin: right center;
+ }
+}
+
+@keyframes zoomOutRight {
+ 40% {
+ opacity: 1;
+ -webkit-transform: scale3d(.475, .475, .475) translate3d(-42px, 0, 0);
+ transform: scale3d(.475, .475, .475) translate3d(-42px, 0, 0);
+ }
+
+ 100% {
+ opacity: 0;
+ -webkit-transform: scale(.1) translate3d(2000px, 0, 0);
+ transform: scale(.1) translate3d(2000px, 0, 0);
+ -webkit-transform-origin: right center;
+ transform-origin: right center;
+ }
+}
+
+.zoomOutRight {
+ -webkit-animation-name: zoomOutRight;
+ animation-name: zoomOutRight;
+}
+
+@-webkit-keyframes zoomOutUp {
+ 40% {
+ opacity: 1;
+ -webkit-transform: scale3d(.475, .475, .475) translate3d(0, 60px, 0);
+ transform: scale3d(.475, .475, .475) translate3d(0, 60px, 0);
+ -webkit-animation-timing-function: cubic-bezier(0.550, 0.055, 0.675, 0.190);
+ animation-timing-function: cubic-bezier(0.550, 0.055, 0.675, 0.190);
+ }
+
+ 100% {
+ opacity: 0;
+ -webkit-transform: scale3d(.1, .1, .1) translate3d(0, -2000px, 0);
+ transform: scale3d(.1, .1, .1) translate3d(0, -2000px, 0);
+ -webkit-transform-origin: center bottom;
+ transform-origin: center bottom;
+ -webkit-animation-timing-function: cubic-bezier(0.175, 0.885, 0.320, 1);
+ animation-timing-function: cubic-bezier(0.175, 0.885, 0.320, 1);
+ }
+}
+
+@keyframes zoomOutUp {
+ 40% {
+ opacity: 1;
+ -webkit-transform: scale3d(.475, .475, .475) translate3d(0, 60px, 0);
+ transform: scale3d(.475, .475, .475) translate3d(0, 60px, 0);
+ -webkit-animation-timing-function: cubic-bezier(0.550, 0.055, 0.675, 0.190);
+ animation-timing-function: cubic-bezier(0.550, 0.055, 0.675, 0.190);
+ }
+
+ 100% {
+ opacity: 0;
+ -webkit-transform: scale3d(.1, .1, .1) translate3d(0, -2000px, 0);
+ transform: scale3d(.1, .1, .1) translate3d(0, -2000px, 0);
+ -webkit-transform-origin: center bottom;
+ transform-origin: center bottom;
+ -webkit-animation-timing-function: cubic-bezier(0.175, 0.885, 0.320, 1);
+ animation-timing-function: cubic-bezier(0.175, 0.885, 0.320, 1);
+ }
+}
+
+.zoomOutUp {
+ -webkit-animation-name: zoomOutUp;
+ animation-name: zoomOutUp;
+}
+
+@-webkit-keyframes slideInDown {
+ from {
+ -webkit-transform: translate3d(0, -100%, 0);
+ transform: translate3d(0, -100%, 0);
+ visibility: visible;
+ }
+
+ 100% {
+ -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;
+ }
+
+ 100% {
+ -webkit-transform: translate3d(0, 0, 0);
+ transform: translate3d(0, 0, 0);
+ }
+}
+
+.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;
+ }
+
+ 100% {
+ -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;
+ }
+
+ 100% {
+ -webkit-transform: translate3d(0, 0, 0);
+ transform: translate3d(0, 0, 0);
+ }
+}
+
+.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;
+ }
+
+ 100% {
+ -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;
+ }
+
+ 100% {
+ -webkit-transform: translate3d(0, 0, 0);
+ transform: translate3d(0, 0, 0);
+ }
+}
+
+.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;
+ }
+
+ 100% {
+ -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;
+ }
+
+ 100% {
+ -webkit-transform: translate3d(0, 0, 0);
+ transform: translate3d(0, 0, 0);
+ }
+}
+
+.slideInUp {
+ -webkit-animation-name: slideInUp;
+ animation-name: slideInUp;
+}
+
+@-webkit-keyframes slideOutDown {
+ from {
+ -webkit-transform: translate3d(0, 0, 0);
+ transform: translate3d(0, 0, 0);
+ }
+
+ 100% {
+ 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);
+ }
+
+ 100% {
+ visibility: hidden;
+ -webkit-transform: translate3d(0, 100%, 0);
+ transform: translate3d(0, 100%, 0);
+ }
+}
+
+.slideOutDown {
+ -webkit-animation-name: slideOutDown;
+ animation-name: slideOutDown;
+}
+
+@-webkit-keyframes slideOutLeft {
+ from {
+ -webkit-transform: translate3d(0, 0, 0);
+ transform: translate3d(0, 0, 0);
+ }
+
+ 100% {
+ 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);
+ }
+
+ 100% {
+ visibility: hidden;
+ -webkit-transform: translate3d(-100%, 0, 0);
+ transform: translate3d(-100%, 0, 0);
+ }
+}
+
+.slideOutLeft {
+ -webkit-animation-name: slideOutLeft;
+ animation-name: slideOutLeft;
+}
+
+@-webkit-keyframes slideOutRight {
+ from {
+ -webkit-transform: translate3d(0, 0, 0);
+ transform: translate3d(0, 0, 0);
+ }
+
+ 100% {
+ 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);
+ }
+
+ 100% {
+ visibility: hidden;
+ -webkit-transform: translate3d(100%, 0, 0);
+ transform: translate3d(100%, 0, 0);
+ }
+}
+
+.slideOutRight {
+ -webkit-animation-name: slideOutRight;
+ animation-name: slideOutRight;
+}
+
+@-webkit-keyframes slideOutUp {
+ from {
+ -webkit-transform: translate3d(0, 0, 0);
+ transform: translate3d(0, 0, 0);
+ }
+
+ 100% {
+ 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);
+ }
+
+ 100% {
+ visibility: hidden;
+ -webkit-transform: translate3d(0, -100%, 0);
+ transform: translate3d(0, -100%, 0);
+ }
+}
+
+.slideOutUp {
+ -webkit-animation-name: slideOutUp;
+ animation-name: slideOutUp;
+}
\ No newline at end of file
diff --git a/static/src/css/fullpage/jquery.fullPage.css b/static/src/css/fullpage/jquery.fullPage.css
new file mode 100755
index 00000000..c43e2616
--- /dev/null
+++ b/static/src/css/fullpage/jquery.fullPage.css
@@ -0,0 +1,208 @@
+/**
+ * fullPage 2.6.6
+ * https://github.com/alvarotrigo/fullPage.js
+ * MIT licensed
+ *
+ * Copyright (C) 2013 alvarotrigo.com - A project by Alvaro Trigo
+ */
+html.fp-enabled,
+.fp-enabled body {
+ margin: 0;
+ padding: 0;
+ overflow:hidden;
+
+ /*Avoid flicker on slides transitions for mobile phones #336 */
+ -webkit-tap-highlight-color: rgba(0,0,0,0);
+}
+#superContainer {
+ height: 100%;
+ position: relative;
+
+ /* Touch detection for Windows 8 */
+ -ms-touch-action: none;
+
+ /* IE 11 on Windows Phone 8.1*/
+ touch-action: none;
+}
+.fp-section {
+ position: relative;
+ -webkit-box-sizing: border-box; /* Safari<=5 Android<=3 */
+ -moz-box-sizing: border-box; /* <=28 */
+ box-sizing: border-box;
+}
+.fp-slide {
+ float: left;
+}
+.fp-slide, .fp-slidesContainer {
+ height: 100%;
+ display: block;
+}
+.fp-slides {
+ z-index:1;
+ height: 100%;
+ overflow: hidden;
+ position: relative;
+ -webkit-transition: all 0.3s ease-out; /* Safari<=6 Android<=4.3 */
+ transition: all 0.3s ease-out;
+}
+.fp-section.fp-table, .fp-slide.fp-table {
+ display: table;
+ table-layout:fixed;
+ width: 100%;
+}
+.fp-tableCell {
+ display: table-cell;
+ vertical-align: middle;
+ width: 100%;
+ height: 100%;
+}
+.fp-slidesContainer {
+ float: left;
+ position: relative;
+}
+.fp-controlArrow {
+ position: absolute;
+ z-index: 4;
+ top: 50%;
+ cursor: pointer;
+ width: 0;
+ height: 0;
+ border-style: solid;
+ margin-top: -38px;
+ -webkit-transform: translate3d(0,0,0);
+ -ms-transform: translate3d(0,0,0);
+ transform: translate3d(0,0,0);
+}
+.fp-controlArrow.fp-prev {
+ left: 15px;
+ width: 0;
+ border-width: 38.5px 34px 38.5px 0;
+ border-color: transparent #fff transparent transparent;
+}
+.fp-controlArrow.fp-next {
+ right: 15px;
+ border-width: 38.5px 0 38.5px 34px;
+ border-color: transparent transparent transparent #fff;
+}
+.fp-scrollable {
+ overflow: scroll;
+}
+.fp-notransition {
+ -webkit-transition: none !important;
+ transition: none !important;
+}
+#fp-nav {
+ position: fixed;
+ z-index: 100;
+ margin-top: -32px;
+ top: 50%;
+ opacity: 1;
+ -webkit-transform: translate3d(0,0,0);
+}
+#fp-nav.right {
+ right: 17px;
+}
+#fp-nav.left {
+ left: 17px;
+}
+.fp-slidesNav{
+ position: absolute;
+ z-index: 4;
+ left: 50%;
+ opacity: 1;
+}
+.fp-slidesNav.bottom {
+ bottom: 17px;
+}
+.fp-slidesNav.top {
+ top: 17px;
+}
+#fp-nav ul,
+.fp-slidesNav ul {
+ margin: 0;
+ padding: 0;
+}
+#fp-nav ul li,
+.fp-slidesNav ul li {
+ display: block;
+ width: 14px;
+ height: 13px;
+ margin: 7px;
+ position:relative;
+}
+.fp-slidesNav ul li {
+ display: inline-block;
+}
+#fp-nav ul li a,
+.fp-slidesNav ul li a {
+ display: block;
+ position: relative;
+ z-index: 1;
+ width: 100%;
+ height: 100%;
+ cursor: pointer;
+ text-decoration: none;
+}
+#fp-nav ul li a.active span,
+.fp-slidesNav ul li a.active span,
+#fp-nav ul li:hover a.active span,
+.fp-slidesNav ul li:hover a.active span{
+ height: 12px;
+ width: 12px;
+ margin: -6px 0 0 -6px;
+ border-radius: 100%;
+ }
+#fp-nav ul li a span,
+.fp-slidesNav ul li a span {
+ border-radius: 50%;
+ position: absolute;
+ z-index: 1;
+ height: 4px;
+ width: 4px;
+ border: 0;
+ background: #333;
+ left: 50%;
+ top: 50%;
+ margin: -2px 0 0 -2px;
+ -webkit-transition: all 0.1s ease-in-out;
+ -moz-transition: all 0.1s ease-in-out;
+ -o-transition: all 0.1s ease-in-out;
+ transition: all 0.1s ease-in-out;
+}
+#fp-nav ul li:hover a span,
+.fp-slidesNav ul li:hover a span{
+ width: 10px;
+ height: 10px;
+ margin: -5px 0px 0px -5px;
+}
+#fp-nav ul li .fp-tooltip {
+ position: absolute;
+ top: -2px;
+ color: #fff;
+ font-size: 14px;
+ font-family: arial, helvetica, sans-serif;
+ white-space: nowrap;
+ max-width: 220px;
+ overflow: hidden;
+ display: block;
+ opacity: 0;
+ width: 0;
+}
+#fp-nav ul li:hover .fp-tooltip,
+#fp-nav.fp-show-active a.active + .fp-tooltip {
+ -webkit-transition: opacity 0.2s ease-in;
+ transition: opacity 0.2s ease-in;
+ width: auto;
+ opacity: 1;
+}
+#fp-nav ul li .fp-tooltip.right {
+ right: 20px;
+}
+#fp-nav ul li .fp-tooltip.left {
+ left: 20px;
+}
+.fp-auto-height.fp-section,
+.fp-auto-height .fp-slide,
+.fp-auto-height .fp-tableCell{
+ height: auto !important;
+}
\ No newline at end of file
diff --git a/static/src/img/index/a.png b/static/src/img/index/a.png
new file mode 100755
index 0000000000000000000000000000000000000000..40d0d2d079c15c952e35e1e486698b413c80cf8a
GIT binary patch
literal 18850
zcmZ6yV_+rC^EP~9+qP}nHaFOKW1AbB8*5|RHczmzwXv;@-gEyyJ-_$E^vsz#UEN*P
zRn>h}b(E^I3=%v(JOBVdl9QEG2LQm>K^Gq^H0TWmSoME5I44;>R{(&S;=c>bt3<>D
z0DxDrmXJ_Y{o&~5==#IaiBwKPg4D^y(bC$^0s!z@&(-kMO?k!^-g&k_(H395X-K#G
z2_UDah8;)MD@08On1rIDi;jdv!fRt X>Qx6m5UnNOUksY4s2?EEG-GwAYJpv9|
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 |