From 4f58a93c95ff123d51adcb8fa2e521333e8ab022 Mon Sep 17 00:00:00 2001
From: zhitong.yu <xynz17@163.com>
Date: 星期五, 11 十月 2024 16:29:16 +0800
Subject: [PATCH] 通用版本V1.9 3DTITLE 上一个版本  百度版本

---
 src/main/webapp/Icon/1报警.png                                      |    0 
 src/main/webapp/HouTai/ChaXunGuiJi/ChaXunGuiJiJs/BaiDuGuiJi.js    |    0 
 src/main/webapp/HouTai/ChaXunGuiJi/ChaXunGuiJiJs/ChaXunGuiJiJs.js |  355 +++
 src/main/webapp/HouTai/ChaXunGuiJi/ChaXunGuiJiJs/ces.jsp          |   17 
 src/main/webapp/Icon/1聚集.png                                      |    0 
 src/main/webapp/HouTai/ChaXunGuiJi/ChaXunGuiJi1.jsp               |  325 ++
 src/main/webapp/HouTai/ChaXunGuiJi/ChaXunGuiJi.jsp                |  358 +++
 src/main/webapp/HouTai/ChaXunGuiJi/ChaXunGuiJiJs/style.css        | 5214 +++++++++++++++++++++++++++++++++++++++++++++
 src/main/webapp/HouTai/ChaXunGuiJi/ChaXunGuiJiJs/ErWei.js         |  529 ++++
 src/main/webapp/Icon/1大屏.png                                      |    0 
 10 files changed, 6,798 insertions(+), 0 deletions(-)

diff --git a/src/main/webapp/HouTai/ChaXunGuiJi/ChaXunGuiJi.jsp b/src/main/webapp/HouTai/ChaXunGuiJi/ChaXunGuiJi.jsp
new file mode 100644
index 0000000..51df165
--- /dev/null
+++ b/src/main/webapp/HouTai/ChaXunGuiJi/ChaXunGuiJi.jsp
@@ -0,0 +1,358 @@
+<%--
+  Created by IntelliJ IDEA.
+  User: Dell
+  Date: 2023/11/23
+  Time: 11:54
+  To change this template use File | Settings | File Templates.
+--%>
+<%@ page contentType="text/html;charset=UTF-8" language="java" %>
+<html>
+<head>
+    <title>Title</title>
+    <style>
+        ul li{
+            height: 30px;
+        }
+        .layui-layout-body{
+            padding-bottom: 0px;
+        }
+    </style>
+</head>
+<link rel="stylesheet" href="../../CSS/layui2.css">
+<link rel="stylesheet" href="../../CSS/layer.css">
+<link rel="stylesheet" href="ChaXunGuiJiJs/style.css">
+<body style="overflow-x: hidden;overflow-y: hidden">
+<div class="heimu1" style="display: none;width: 100%; overflow: hidden;text-align: center;position: fixed;top: 300px;z-index: 999999999;">
+    <div class="loader-radar" style="height: 100px;width: 100px"></div>
+</div>
+<div class="heimu" style="display: none;height: 100%;width: 100%;position: fixed;top: 0px;background-color: rgb(0,0,0,0.6);z-index: 9999999"></div>
+<div class="layui-container" style="width: 100%;margin: 0px;padding: 0px">
+    <div class="layui-row">
+        <div class="layui-col-xs12 layui-col-md12">
+                <div class="layui-form-item" style="display: inline-block">
+                    <label class="layui-form-label languages1"  style="background-color: #1E9FFF;color: white;font-size: 12px">鍒囨崲鍦板浘</label>
+                    <div class="layui-input-inline">
+                        <select name="city" style="height: 38px;border: 1px solid #666666;background-color: whitesmoke" lay-verify="required" id="cxList" class="dituList" onchange="changeMap()">
+                            <option value="鐧惧害鍦板浘">BaiDu</option>
+                        </select>
+                    </div>
+                </div>
+                <div class="layui-form-item" style="display: inline-block;position: relative;left: -90px">
+                    <label class="layui-form-label languages2">鍚嶇О</label>
+                    <div class="layui-input-inline">
+                        <input type="text" class="layui-input" id="tagid"  placeholder="璇疯緭鍏ュ悕绉�">
+                    </div>
+                </div>
+                <div class="layui-form-item" style="display: inline-block;position: relative;left: -80px">
+                    <div class="layui-input-inline languages3" style="width: 300px">
+
+                    </div>
+                </div>
+
+                <div class="layui-form-item" style="display: inline-block;position: relative;left: -7%;top: 2vh">
+                    <label class="layui-form-label languages4">璇烽�夋嫨鑼冨洿</label>
+                    <div class="layui-input-inline">
+                        <input type="text" class="layui-input" id="test16" placeholder="寮�濮� 鍒� 缁撴潫" style="width: 300px">
+                        <input type="hidden" id="FanWei">
+                    </div>
+                </div>
+            <div class="layui-form-item" style="display: inline-block;position: relative;left: 20px;" id="bfsudu" >
+                <div class="layui-input-inline">
+                    <select id="bofangsudu" onchange="baiduBoFang()" style="height: 35px" >
+
+                    </select>
+                </div>
+            </div>
+                <div class="layui-form-item" style="display: inline-block;width: 70px">
+                    <div class="layui-input-inline">
+                        <button type="button" class="layui-btn layui-btn-danger languages5" id="search" onclick="ks('鏌ヨ')">鏌ヨ</button>
+                    </div>
+                </div>
+            <div class="layui-form-item" style="display: inline-block;width: 70px">
+                <div class="layui-input-inline">
+                    <button type="button" class="layui-btn layui-btn-danger languages6" id="pause" onclick="zanting()" >鏆傚仠</button>
+                </div>
+            </div>
+        </div>
+        <div class="layui-col-xs12 layui-col-md12">
+            <div id="baidumap" style="width: 100%; height: 100%;margin: auto;box-shadow:  -5px -1px 5px black;opacity: 1">
+
+            </div>
+            <div style="width: 100%; height: 90%;margin: auto"
+                 id="wrap">
+                <canvas id="draw"></canvas>
+        </div>
+    </div>
+</div>
+<div style="width: 300px;height: 400px;background-color: rgb(12, 98, 163,0.7);position: fixed;top: 170px;right:15px;z-index: 99999">
+    <ul style="color: white;margin-top: 18px;margin-left: 20px;font-size: 12px" id="XinXi">
+    </ul>
+</div>
+</div>
+</body>
+
+<script src="/hxzkuwb/HouTai/Js/jquery-3.5.1.js"></script>
+<script src="../../JS/layui.js"></script>
+<script src="../../JS/layer.js"></script>
+<script src="../../languages/languages.js"></script>
+<script src="ChaXunGuiJiJs/ChaXunGuiJiJs.js"></script>
+<script src="ChaXunGuiJiJs/ErWei.js"></script>
+<script src="ChaXunGuiJiJs/BaiDuGuiJi.js"></script>
+<script src="//mapopen.bj.bcebos.com/github/BMapGLLib/TrackAnimation/src/TrackAnimation.min.js"></script>
+<script src="../../JS/translate.js"></script>
+<script>
+    var languages;
+    var languages1;
+    var languages2;
+    var languages3;
+    var languages4;
+    var languages5;
+    var languages6;
+    var languages7;
+    var languages8;
+    var languages9;
+    var languages10;
+    var languages11;
+
+        $.ajax({
+            url: "/hxzkuwb/FindSetting",
+            type: "POST",
+            async: false, // 璁剧疆涓哄悓姝�
+            success: function(data) {
+                languages = data[0].languages;
+                    $(".languages1").text(CNSelectTrackText1)
+                    $(".languages2").text(CNSelectTrackText2)
+                    $(".languages3").append('<button style="display: inline-block;height: 35px;width: 85px" class="" onclick="ontimes(0.5)">杩戝崐灏忔椂</button> <button style="display: inline-block;height: 35px;width: 85px" class="" onclick="ontimes(1)">杩�1灏忔椂</button> <button style="display: inline-block;height: 35px;width: 85px" class="" onclick="ontimes(2)">杩�2灏忔椂</button>')
+                    $(".languages4").text(CNSelectTrackText3)
+                    $(".languages5").text(CNSelectTrackText4)
+                    $(".languages6").text(CNSelectTrackText5)
+                    $("#bofangsudu").append('<option value="1">鎾斁閫熷害x1</option><option value="2">鎾斁閫熷害x2</option><option value="4">鎾斁閫熷害x4</option><option value="6">鎾斁閫熷害x6</option><option value="鎾斁閫熷害x8">鎾斁閫熷害x8</option>');
+                    $("#XinXi").append('<li>褰撳墠锛�<span id="data1">0/0鏉�</span></li><li>鍚嶇О锛�<span class="data2">鏆傛棤鏁版嵁</span></li><li>缂栧彿锛�<span class="data3">鏆傛棤鏁版嵁</span></li><li>缁忓害锛�<span class="data4">鏆傛棤鏁版嵁</span></li><li>绾害锛�<span class="data5">鏆傛棤鏁版嵁</span></li><li>楂樼▼锛�<span class="data6">鏆傛棤鏁版嵁</span></li><li>鐘舵�侊細<span class="data7">鏆傛棤鏁版嵁</span></li><li>X鍧愭爣锛�<span class="data8">鏆傛棤鏁版嵁</span></li><li>Y鍧愭爣锛�<span class="data9">鏆傛棤鏁版嵁</span></li><li>Z鍧愭爣锛�<span class="data10">鏆傛棤鏁版嵁</span></li><li>鐢甸噺锛�<span class="data11">鏆傛棤鏁版嵁</span></li><li>鏃堕棿锛�<span class="data12">鏆傛棤鏁版嵁</span></li>')
+                    languages1 = CNSelectTrackText6
+                    languages2 = CNSelectTrackText7
+                    languages3 = CNSelectTrackText8
+                    languages4 = CNSelectTrackText9
+                    languages5 = CNSelectTrackText5
+                    languages6 = CNSelectTrackText10
+                    languages7 = CNSelectTrackText11
+                    languages8 = CNSelectTrackText12
+                    languages9 = CNSelectTrackText13
+                    languages10 = CNSelectTrackText14
+                    languages11 = CNSelectTrackText15
+            },
+            error: function(xhr, status, error) {
+                console.error("璇锋眰澶辫触:", status, error);
+            }
+        });
+
+
+
+
+    localStorage.setItem("ChaXunGuiJi","宸插畬鎴�")
+    loadJScript();
+
+    function loadJScript() {
+        var script = document.createElement('script');
+        script.type = 'text/javascript';
+        script.src = '//api.map.baidu.com/api?type=webgl&v=1.0&ak=zoVtgLNWuaZBjMAa32RZRFIagXxST0fm&callback=init';
+        document.body.appendChild(script);
+    }
+function ks(input){
+    if (input == "鏌ヨ"){
+        $("#search").css("background-color","green")
+        var type = $("#cxList").val()
+
+        if(type == "鐧惧害鍦板浘") {
+            baiDuGuiJi()
+        }
+    }
+}
+function changeMap(){
+    var ceng =$("#cxList").val();
+    if(ceng == "鐧惧害鍦板浘"){
+        $("#baidumap").show()
+        $("#wrap").hide();
+    }else{
+        $("#bfsudu").css("display","inline-block")
+        $("#wrap").show();
+        $("#baidumap").hide()
+        $.ajax({
+            async: false,
+            type: 'POST',
+            url: "/hxzkuwb/findFloorMap",
+            dataType: 'json',
+            data: {
+                floor: ceng
+            },
+            success: function (data) {
+                ts1 = getYuandian()
+                ts2 = getTruemap()
+                imgUrl = '/hxzkuwb/HouTai/MapImg/' + data.mapname;
+                //imgUrl = '/hxzkoa/hxzk/image/mapfile/office.jpg';
+                new MarkPoints(imgUrl);
+            }
+        })
+    }
+}
+function ontimes(time) {
+    if(time == 0.5){
+        var now = new Date();
+        var year1 = now.getFullYear();
+        var month1 = String(now.getMonth() + 1).padStart(2, '0');
+        var day1 = String(now.getDate()).padStart(2, '0');
+        var hour1 = String(now.getHours()).padStart(2, '0');
+        var minute1 = String(now.getMinutes()).padStart(2, '0');
+        var second1 = String(now.getSeconds()).padStart(2, '0');
+        var currentDateTime = year1+"-"+month1+"-"+day1+" "+hour1+":"+minute1+":"+second1
+        console.log(currentDateTime);
+        const halfHourAgo = new Date();
+        halfHourAgo.setMinutes(halfHourAgo.getMinutes() - 30);
+        const year = halfHourAgo.getFullYear();
+        const month = String(halfHourAgo.getMonth() + 1).padStart(2, '0');
+        const day = String(halfHourAgo.getDate()).padStart(2, '0');
+        const hour = String(halfHourAgo.getHours()).padStart(2, '0');
+        const minute = String(halfHourAgo.getMinutes()).padStart(2, '0');
+        const second = String(halfHourAgo.getSeconds()).padStart(2, '0');
+        const halfHourAgoDateTime = year+"-"+month+"-"+day+" "+hour+":"+minute+":"+second
+        $("#FanWei").val(halfHourAgoDateTime+ languages7 +currentDateTime)
+        $("#test16").val(languages1)
+    }
+    if (time == 1){
+        var now = new Date();
+        var year1 = now.getFullYear();
+        var month1 = String(now.getMonth() + 1).padStart(2, '0');
+        var day1 = String(now.getDate()).padStart(2, '0');
+        var hour1 = String(now.getHours()).padStart(2, '0');
+        var minute1 = String(now.getMinutes()).padStart(2, '0');
+        var second1 = String(now.getSeconds()).padStart(2, '0');
+        var currentDateTime = year1+"-"+month1+"-"+day1+" "+hour1+":"+minute1+":"+second1
+        const halfHourAgo = new Date();
+        halfHourAgo.setMinutes(halfHourAgo.getMinutes() - 60);
+        const year = halfHourAgo.getFullYear();
+        const month = String(halfHourAgo.getMonth() + 1).padStart(2, '0');
+        const day = String(halfHourAgo.getDate()).padStart(2, '0');
+        const hour = String(halfHourAgo.getHours()).padStart(2, '0');
+        const minute = String(halfHourAgo.getMinutes()).padStart(2, '0');
+        const second = String(halfHourAgo.getSeconds()).padStart(2, '0');
+        const halfHourAgoDateTime = year+"-"+month+"-"+day+" "+hour+":"+minute+":"+second
+        $("#FanWei").val(halfHourAgoDateTime+ languages7 +currentDateTime)
+        $("#test16").val(languages2)
+    }
+    if (time == 2){
+        var now = new Date();
+        var year1 = now.getFullYear();
+        var month1 = String(now.getMonth() + 1).padStart(2, '0');
+        var day1 = String(now.getDate()).padStart(2, '0');
+        var hour1 = String(now.getHours()).padStart(2, '0');
+        var minute1 = String(now.getMinutes()).padStart(2, '0');
+        var second1 = String(now.getSeconds()).padStart(2, '0');
+        var currentDateTime = year1+"-"+month1+"-"+day1+" "+hour1+":"+minute1+":"+second1
+        console.log(currentDateTime);
+        const halfHourAgo = new Date();
+        halfHourAgo.setMinutes(halfHourAgo.getMinutes() - 120);
+        const year = halfHourAgo.getFullYear();
+        const month = String(halfHourAgo.getMonth() + 1).padStart(2, '0');
+        const day = String(halfHourAgo.getDate()).padStart(2, '0');
+        const hour = String(halfHourAgo.getHours()).padStart(2, '0');
+        const minute = String(halfHourAgo.getMinutes()).padStart(2, '0');
+        const second = String(halfHourAgo.getSeconds()).padStart(2, '0');
+        const halfHourAgoDateTime = year+"-"+month+"-"+day+" "+hour+":"+minute+":"+second
+        $("#FanWei").val(halfHourAgoDateTime+ languages7 +currentDateTime)
+        $("#test16").val(languages3)
+    }
+}
+
+    function zanting(){
+        var tall = $("#pause").text();
+        if (cx == true){
+            if (tall == languages5){
+                tds = false
+                $("#pause").text(languages4)
+            }else{
+                tds = true
+                $("#pause").text(languages5)
+                var ins = localStorage.getItem("JiXu")
+                var movingIcon = new BMapGL.Icon('../../Icon/浜哄憳.png', new BMapGL.Size(32, 32));
+                var marker = new BMapGL.Marker(dtlist[0], {icon: movingIcon});
+                var label = new BMapGL.Label("", {offset: new BMapGL.Size(0, -50)});
+                label.setStyle({
+                    color: "white",
+                    fontSize: "12px",
+                    borderRadius: "5px",
+                    padding: "5px 5px",
+                    border: "0",
+                    transform: 'translateX(-50%)',
+                    backgroundColor: bgcolor,
+
+                });
+                var label1 = new BMapGL.Label("", {offset: new BMapGL.Size(0, 30)});
+                label1.setStyle({
+                    color: "white",
+                    fontSize: "12px",
+                    borderRadius: "5px",
+                    padding: "5px 5px",
+                    border: "0",
+                    transform: 'translateX(-50%)',
+                    backgroundColor: bgcolor,
+
+                });
+                marker.setLabel(label);
+                var marker1 = new BMapGL.Marker(dtlist[0], {icon: movingIcon});
+                marker1.setLabel(label1);
+                bm.clearOverlays();
+
+                bm.addOverlay(marker1)
+                bm.addOverlay(marker);
+                function animateMarker(index) {
+                    if (tds == false) {
+                        localStorage.setItem("JiXu",index)
+                        return;
+                    } else {
+                        if (index == datalist.length) {
+                            nub = false
+                        }
+                        $("#data1").text(index + "/" + datalist.length)
+                        $(".data2").text(datalist[index].name)
+                        $(".data3").text(datalist[index].tagid)
+                        $(".data4").text(datalist[index].gspJingdu)
+                        $(".data5").text(datalist[index].gpsWeidu)
+                        $(".data6").text(datalist[index].gpsHaibaGao)
+                        $(".data7").text(datalist[index].gpsState)
+                        $(".data11").text(datalist[index].gpsPower)
+                        $(".data12").text(datalist[index].addtime)
+
+                        if (index < dtlist.length) {
+                            var point = new BMapGL.Point(dtlist[index].lng, dtlist[index].lat);
+                            marker.setPosition(point);
+                            marker1.setPosition(point);
+                            label.setContent(datalist[index].name + " " + datalist[index].tagid);
+                            label1.setContent(datalist[index].gspJingdu + " " + datalist[index].gpsWeidu);
+                            // 璁剧疆寤惰繜鍚庣Щ鍔ㄥ埌涓嬩竴涓偣
+                            setTimeout(function () {
+                                animateMarker(parseInt(ins)+parseInt(1));
+                                ins = parseInt(ins)+parseInt(1)
+                            }, sudu); // 杩欓噷璁剧疆鐨勬槸姣�500姣绉诲姩涓�娆★紝浣犲彲浠ユ牴鎹渶瑕佽皟鏁�
+
+                        }
+
+                        if (index < dtlist.length && index > 0) {
+                            var line = new BMapGL.Polyline([dtlist[index - 1], point], {
+                                strokeColor: 'red',
+                                strokeWeight: 2,
+                                strokeOpacity: 1
+                            });
+                            bm.addOverlay(line);
+                        }
+                    }
+                }
+                animateMarker(ins);
+
+            }
+        }else{
+            layer.msg(languages6)
+        }
+
+    }
+
+</script>
+</html>
diff --git a/src/main/webapp/HouTai/ChaXunGuiJi/ChaXunGuiJi1.jsp b/src/main/webapp/HouTai/ChaXunGuiJi/ChaXunGuiJi1.jsp
new file mode 100644
index 0000000..ec508c8
--- /dev/null
+++ b/src/main/webapp/HouTai/ChaXunGuiJi/ChaXunGuiJi1.jsp
@@ -0,0 +1,325 @@
+<%--
+  Created by IntelliJ IDEA.
+  User: Dell
+  Date: 2023/11/23
+  Time: 11:54
+  To change this template use File | Settings | File Templates.
+--%>
+<%@ page contentType="text/html;charset=UTF-8" language="java" %>
+<html>
+<head>
+    <title>Title</title>
+    <style>
+        ul li{
+            height: 30px;
+        }
+        .layui-layout-body{
+            padding-bottom: 0px;
+        }
+    </style>
+</head>
+<link rel="stylesheet" href="../../CSS/layui2.css">
+<link rel="stylesheet" href="../../CSS/layer.css">
+<link rel="stylesheet" href="ChaXunGuiJiJs/style.css">
+<body style="">
+<div class="heimu1" style="display: none;width: 100%; overflow: hidden;text-align: center;position: fixed;top: 300px;z-index: 999999999;">
+    <div class="loader-radar" style="height: 100px;width: 100px"></div>
+</div>
+<div class="heimu" style="display: none;height: 100%;width: 100%;position: fixed;top: 0px;background-color: rgb(0,0,0,0.6);z-index: 9999999"></div>
+<div class="layui-container" style="width: 55%;margin: 0px;padding: 0px">
+    <div class="layui-row">
+        <div class="layui-col-xs12 layui-col-md12">
+                <div class="layui-form-item" style="display: none">
+                    <label class="layui-form-label"  style="background-color: #1E9FFF;color: white;font-size: 12px">鍒囨崲鍦板浘</label>
+                    <div class="layui-input-inline">
+                        <select name="city" style="height: 38px;border: 1px solid #666666;background-color: whitesmoke" lay-verify="required" id="cxList" class="dituList" onchange="changeMap()">
+                            <option value="鐧惧害鍦板浘">鐧惧害鍦板浘</option>
+                        </select>
+                    </div>
+                </div>
+                <div class="layui-form-item" style="display: inline-block;position: relative;left: -5%">
+                    <label class="layui-form-label">璁惧ID</label>
+                    <div class="layui-input-inline">
+                        <input type="text" class="layui-input" id="tagid"  placeholder="璇疯緭鍏D">
+                    </div>
+                </div>
+                <div class="layui-form-item" style="display: none;position: relative;left: -80px">
+                    <div class="layui-input-inline" style="width: 300px">
+                        <button style="display: inline-block;height: 35px;width: 85px" class="" onclick="ontimes(0.5)">杩戝崐灏忔椂</button>
+                        <button style="display: inline-block;height: 35px;width: 85px" class="" onclick="ontimes(1)">杩�1灏忔椂</button>
+                        <button style="display: inline-block;height: 35px;width: 85px" class="" onclick="ontimes(2)">杩�2灏忔椂</button>
+                    </div>
+                </div>
+
+                <div class="layui-form-item" style="display: inline-block;position: relative;left: -5%;">
+                    <label class="layui-form-label">璇烽�夋嫨鑼冨洿</label>
+                    <div class="layui-input-inline">
+                        <input type="text" class="layui-input" id="test16" placeholder="寮�濮� 鍒� 缁撴潫" style="width: 300px">
+                        <input type="hidden" id="FanWei">
+                    </div>
+                </div>
+            <div class="layui-form-item" style="display: inline-block;position: relative;left: 6%;" id="bfsudu" >
+                <div class="layui-input-inline">
+                    <select id="bofangsudu" onchange="baiduBoFang()" style="height: 35px" >
+                        <option value="1">鎾斁閫熷害x1</option>
+                        <option value="2">鎾斁閫熷害x2</option>
+                        <option value="4">鎾斁閫熷害x4</option>
+                        <option value="6">鎾斁閫熷害x6</option>
+                        <option value="鎾斁閫熷害x8">鎾斁閫熷害x8</option>
+                    </select>
+                </div>
+            </div>
+                <div class="layui-form-item" style="display: inline-block;width: 70px">
+                    <div class="layui-input-inline">
+                        <button type="button" class="layui-btn layui-btn-danger" id="search" onclick="ks('鏌ヨ')">鏌ヨ</button>
+                    </div>
+                </div>
+            <div class="layui-form-item" style="display: inline-block;width: 70px">
+                <div class="layui-input-inline">
+                    <button type="button" class="layui-btn layui-btn-danger" id="pause" onclick="zanting()" >鏆傚仠</button>
+                </div>
+            </div>
+        </div>
+        <div class="layui-col-xs12 layui-col-md12">
+            <div style="width: 100%; height: 50%;margin: auto"
+                 id="wrap">
+                <canvas id="draw"></canvas>
+        </div>
+    </div>
+</div>
+<div style="width: 300px;height: 400px;background-color: rgb(12, 98, 163,0.7);position: fixed;top: 170px;right:15px;z-index: 99999;display: none">
+    <ul style="color: white;margin-top: 18px;margin-left: 20px;font-size: 12px">
+        <li>褰撳墠锛�<span id="data1">0/0鏉�</span></li>
+        <li>鍚嶇О锛�<span class="data2">鏆傛棤鏁版嵁</span></li>
+        <li>缂栧彿锛�<span class="data3">鏆傛棤鏁版嵁</span></li>
+        <li>缁忓害锛�<span class="data4">鏆傛棤鏁版嵁</span></li>
+        <li>绾害锛�<span class="data5">鏆傛棤鏁版嵁</span></li>
+        <li>楂樼▼锛�<span class="data6">鏆傛棤鏁版嵁</span></li>
+        <li>鐘舵�侊細<span class="data7">鏆傛棤鏁版嵁</span></li>
+        <li>X鍧愭爣锛�<span class="data8">鏆傛棤鏁版嵁</span></li>
+        <li>Y鍧愭爣锛�<span class="data9">鏆傛棤鏁版嵁</span></li>
+        <li>Z鍧愭爣锛�<span class="data10">鏆傛棤鏁版嵁</span></li>
+        <li>鐢甸噺锛�<span class="data11">鏆傛棤鏁版嵁</span></li>
+        <li>鏃堕棿锛�<span class="data12">鏆傛棤鏁版嵁</span></li>
+
+    </ul>
+</div>
+</div>
+</body>
+
+<script src="/hxzkuwb/HouTai/Js/jquery-3.5.1.js"></script>
+<script src="../../JS/layui.js"></script>
+<script src="../../JS/layer.js"></script>
+<script src="../../languages/languages.js"></script>
+<script src="ChaXunGuiJiJs/ChaXunGuiJiJs.js"></script>
+<script src="ChaXunGuiJiJs/ErWei.js"></script>
+<script src="ChaXunGuiJiJs/BaiDuGuiJi.js"></script>
+<script src="//mapopen.bj.bcebos.com/github/BMapGLLib/TrackAnimation/src/TrackAnimation.min.js"></script>
+<script>
+    localStorage.setItem("ChaXunGuiJi","宸插畬鎴�")
+    loadJScript();
+
+    function loadJScript() {
+        var script = document.createElement('script');
+        script.type = 'text/javascript';
+        script.src = '//api.map.baidu.com/api?type=webgl&v=1.0&ak=zoVtgLNWuaZBjMAa32RZRFIagXxST0fm&callback=init';
+        document.body.appendChild(script);
+    }
+function ks(input){
+    if (input == "鏌ヨ"){
+        $("#search").css("background-color","green")
+        var type = $("#cxList").val()
+
+        if(type == "鐧惧害鍦板浘") {
+            baiDuGuiJi()
+        }
+    }
+}
+function changeMap(){
+    var ceng =$("#cxList").val();
+    if(ceng == "鐧惧害鍦板浘"){
+        $("#baidumap").show()
+        $("#wrap").hide();
+    }else{
+        $("#bfsudu").css("display","inline-block")
+        $("#wrap").show();
+        $("#baidumap").hide()
+        $.ajax({
+            async: false,
+            type: 'POST',
+            url: "/hxzkuwb/findFloorMap",
+            dataType: 'json',
+            data: {
+                floor: ceng
+            },
+            success: function (data) {
+                ts1 = getYuandian()
+                ts2 = getTruemap()
+                imgUrl = '/hxzkuwb/HouTai/MapImg/' + data.mapname;
+                //imgUrl = '/hxzkoa/hxzk/image/mapfile/office.jpg';
+                new MarkPoints(imgUrl);
+            }
+        })
+    }
+}
+function ontimes(time) {
+    if(time == 0.5){
+        var now = new Date();
+        var year1 = now.getFullYear();
+        var month1 = String(now.getMonth() + 1).padStart(2, '0');
+        var day1 = String(now.getDate()).padStart(2, '0');
+        var hour1 = String(now.getHours()).padStart(2, '0');
+        var minute1 = String(now.getMinutes()).padStart(2, '0');
+        var second1 = String(now.getSeconds()).padStart(2, '0');
+        var currentDateTime = year1+"-"+month1+"-"+day1+" "+hour1+":"+minute1+":"+second1
+        console.log(currentDateTime);
+        const halfHourAgo = new Date();
+        halfHourAgo.setMinutes(halfHourAgo.getMinutes() - 30);
+        const year = halfHourAgo.getFullYear();
+        const month = String(halfHourAgo.getMonth() + 1).padStart(2, '0');
+        const day = String(halfHourAgo.getDate()).padStart(2, '0');
+        const hour = String(halfHourAgo.getHours()).padStart(2, '0');
+        const minute = String(halfHourAgo.getMinutes()).padStart(2, '0');
+        const second = String(halfHourAgo.getSeconds()).padStart(2, '0');
+        const halfHourAgoDateTime = year+"-"+month+"-"+day+" "+hour+":"+minute+":"+second
+        $("#FanWei").val(halfHourAgoDateTime+" 鍒� "+currentDateTime)
+        $("#test16").val("宸查�夋嫨杩戝崐灏忔椂")
+    }
+    if (time == 1){
+        var now = new Date();
+        var year1 = now.getFullYear();
+        var month1 = String(now.getMonth() + 1).padStart(2, '0');
+        var day1 = String(now.getDate()).padStart(2, '0');
+        var hour1 = String(now.getHours()).padStart(2, '0');
+        var minute1 = String(now.getMinutes()).padStart(2, '0');
+        var second1 = String(now.getSeconds()).padStart(2, '0');
+        var currentDateTime = year1+"-"+month1+"-"+day1+" "+hour1+":"+minute1+":"+second1
+        const halfHourAgo = new Date();
+        halfHourAgo.setMinutes(halfHourAgo.getMinutes() - 60);
+        const year = halfHourAgo.getFullYear();
+        const month = String(halfHourAgo.getMonth() + 1).padStart(2, '0');
+        const day = String(halfHourAgo.getDate()).padStart(2, '0');
+        const hour = String(halfHourAgo.getHours()).padStart(2, '0');
+        const minute = String(halfHourAgo.getMinutes()).padStart(2, '0');
+        const second = String(halfHourAgo.getSeconds()).padStart(2, '0');
+        const halfHourAgoDateTime = year+"-"+month+"-"+day+" "+hour+":"+minute+":"+second
+        $("#FanWei").val(halfHourAgoDateTime+" 鍒� "+currentDateTime)
+        $("#test16").val("宸查�夋嫨杩�1灏忔椂")
+    }
+    if (time == 2){
+        var now = new Date();
+        var year1 = now.getFullYear();
+        var month1 = String(now.getMonth() + 1).padStart(2, '0');
+        var day1 = String(now.getDate()).padStart(2, '0');
+        var hour1 = String(now.getHours()).padStart(2, '0');
+        var minute1 = String(now.getMinutes()).padStart(2, '0');
+        var second1 = String(now.getSeconds()).padStart(2, '0');
+        var currentDateTime = year1+"-"+month1+"-"+day1+" "+hour1+":"+minute1+":"+second1
+        console.log(currentDateTime);
+        const halfHourAgo = new Date();
+        halfHourAgo.setMinutes(halfHourAgo.getMinutes() - 120);
+        const year = halfHourAgo.getFullYear();
+        const month = String(halfHourAgo.getMonth() + 1).padStart(2, '0');
+        const day = String(halfHourAgo.getDate()).padStart(2, '0');
+        const hour = String(halfHourAgo.getHours()).padStart(2, '0');
+        const minute = String(halfHourAgo.getMinutes()).padStart(2, '0');
+        const second = String(halfHourAgo.getSeconds()).padStart(2, '0');
+        const halfHourAgoDateTime = year+"-"+month+"-"+day+" "+hour+":"+minute+":"+second
+        $("#FanWei").val(halfHourAgoDateTime+" 鍒� "+currentDateTime)
+        $("#test16").val("宸查�夋嫨杩�2灏忔椂")
+    }
+}
+
+    function zanting(){
+        var tall = $("#pause").text();
+        if (cx == true){
+            if (tall == "鏆傚仠"){
+                tds = false
+                $("#pause").text("缁х画")
+            }else{
+                tds = true
+                $("#pause").text("鏆傚仠")
+                var ins = localStorage.getItem("JiXu")
+                var movingIcon = new BMapGL.Icon('../../Icon/浜哄憳.png', new BMapGL.Size(32, 32));
+                var marker = new BMapGL.Marker(dtlist[0], {icon: movingIcon});
+                var label = new BMapGL.Label("", {offset: new BMapGL.Size(0, -50)});
+                label.setStyle({
+                    color: "white",
+                    fontSize: "12px",
+                    borderRadius: "5px",
+                    padding: "5px 5px",
+                    border: "0",
+                    transform: 'translateX(-50%)',
+                    backgroundColor: bgcolor,
+
+                });
+                var label1 = new BMapGL.Label("", {offset: new BMapGL.Size(0, 30)});
+                label1.setStyle({
+                    color: "white",
+                    fontSize: "12px",
+                    borderRadius: "5px",
+                    padding: "5px 5px",
+                    border: "0",
+                    transform: 'translateX(-50%)',
+                    backgroundColor: bgcolor,
+
+                });
+                marker.setLabel(label);
+                var marker1 = new BMapGL.Marker(dtlist[0], {icon: movingIcon});
+                marker1.setLabel(label1);
+                bm.clearOverlays();
+
+                bm.addOverlay(marker1)
+                bm.addOverlay(marker);
+                function animateMarker(index) {
+                    if (tds == false) {
+                        localStorage.setItem("JiXu",index)
+                        return;
+                    } else {
+                        if (index == datalist.length) {
+                            nub = false
+                        }
+                        $("#data1").text(index + "/" + datalist.length)
+                        $(".data2").text(datalist[index].name)
+                        $(".data3").text(datalist[index].tagid)
+                        $(".data4").text(datalist[index].gspJingdu)
+                        $(".data5").text(datalist[index].gpsWeidu)
+                        $(".data6").text(datalist[index].gpsHaibaGao)
+                        $(".data7").text(datalist[index].gpsState)
+                        $(".data11").text(datalist[index].gpsPower)
+                        $(".data12").text(datalist[index].addtime)
+
+                        if (index < dtlist.length) {
+                            var point = new BMapGL.Point(dtlist[index].lng, dtlist[index].lat);
+                            marker.setPosition(point);
+                            marker1.setPosition(point);
+                            label.setContent(datalist[index].name + " " + datalist[index].tagid);
+                            label1.setContent(datalist[index].gspJingdu + " " + datalist[index].gpsWeidu);
+                            // 璁剧疆寤惰繜鍚庣Щ鍔ㄥ埌涓嬩竴涓偣
+                            setTimeout(function () {
+                                animateMarker(parseInt(ins)+parseInt(1));
+                                ins = parseInt(ins)+parseInt(1)
+                            }, sudu); // 杩欓噷璁剧疆鐨勬槸姣�500姣绉诲姩涓�娆★紝浣犲彲浠ユ牴鎹渶瑕佽皟鏁�
+
+                        }
+
+                        if (index < dtlist.length && index > 0) {
+                            var line = new BMapGL.Polyline([dtlist[index - 1], point], {
+                                strokeColor: 'red',
+                                strokeWeight: 2,
+                                strokeOpacity: 1
+                            });
+                            bm.addOverlay(line);
+                        }
+                    }
+                }
+                animateMarker(ins);
+
+            }
+        }else{
+            layer.msg('璇峰厛鏌ヨ杞ㄨ抗锛�')
+        }
+
+    }
+</script>
+</html>
diff --git a/src/main/webapp/HouTai/ChaXunGuiJi/ChaXunGuiJiJs/BaiDuGuiJi.js b/src/main/webapp/HouTai/ChaXunGuiJi/ChaXunGuiJiJs/BaiDuGuiJi.js
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/src/main/webapp/HouTai/ChaXunGuiJi/ChaXunGuiJiJs/BaiDuGuiJi.js
diff --git a/src/main/webapp/HouTai/ChaXunGuiJi/ChaXunGuiJiJs/ChaXunGuiJiJs.js b/src/main/webapp/HouTai/ChaXunGuiJi/ChaXunGuiJiJs/ChaXunGuiJiJs.js
new file mode 100644
index 0000000..a56dcda
--- /dev/null
+++ b/src/main/webapp/HouTai/ChaXunGuiJi/ChaXunGuiJiJs/ChaXunGuiJiJs.js
@@ -0,0 +1,355 @@
+
+
+
+
+
+
+layui.use('laydate', function(){
+    var laydate = layui.laydate;
+    laydate.render({
+        elem: '#test16'
+        ,type: 'datetime'
+        ,range: languages7
+        ,lang:'en'
+        ,done: function(value, date){
+            $("#FanWei").val(value)
+        }
+    });
+
+});
+var sudu=1000;
+var tds = true;
+var form = layui.form;
+
+$.get("/hxzkuwb/findmap",function (data){
+    var selectData = [
+
+    ];
+    for (var i = 0; i < data.length; i++) {
+        var option = {
+            value: data[i].floor,
+            title: data[i].mapname
+        };
+        selectData.push(option);
+    }
+
+    // 鍔ㄦ�佺敓鎴愪笅鎷夋閫夐」
+    var selectElem = document.getElementById('cxList');
+    for (var i = 0; i < selectData.length; i++) {
+        var optionElem = document.createElement('option');
+        optionElem.value = selectData[i].value;
+        optionElem.text = selectData[i].title;
+        selectElem.appendChild(optionElem);
+    }
+
+    // 閲嶆柊娓叉煋涓嬫媺妗�
+    form.render('select');
+})
+
+var bm;
+function init(){
+    var nameFormat = "{x}_{y}";
+    var ext = ".png";
+     bm = new BMapGL.Map("baidumap");    // 鍒涘缓Map瀹炰緥
+    bm.centerAndZoom(new BMapGL.Point(87.506299, 43.840568), 15);  // 鍒濆鍖栧湴鍥�,璁剧疆涓績鐐瑰潗鏍囧拰鍦板浘绾у埆
+    bm.enableScrollWheelZoom(true);     //寮�鍚紶鏍囨粴杞缉鏀�
+
+    var tileLayer = new BMapGL.TileLayer();
+    tileLayer.getTilesUrl = function(tileCoord, zoom) {
+        var name = nameFormat
+            .replace("{x}", tileCoord.x)
+            .replace("{y}", tileCoord.y)
+            .replace("{z}", zoom)
+        ;
+        return '../../Home/tiles/' + zoom + '/' + name + ext;
+    }
+    bm.addTileLayer(tileLayer);
+
+}
+var nub = false;
+var dtlist =[];
+var bgcolor;
+var cx = false;
+var datalist;
+function baiDuGuiJi() {
+    if (nub) {
+        layer.msg(languages8, { offset: '100px' });
+    } else {
+        $(".heimu").show();
+        $(".heimu1").show();
+        var id = $("#tagid").val();
+        var time = $("#FanWei").val();
+        if (id == "") {
+            layer.msg(languages9, {
+                offset: '250px' // 鍚戝彸鍋忕Щ 100px
+            });
+            $(".heimu").hide();
+            $(".heimu1").hide();
+            return
+        }
+        if (time == "") {
+            layer.msg(languages10, {
+                offset: '250px' // 鍚戝彸鍋忕Щ 100px
+            });
+            $(".heimu").hide();
+            $(".heimu1").hide();
+            return;
+        }
+        cx = true
+
+
+        Convertor.prototype.WGS2GCJ_lat = function (x, y) {
+            var ret1 = -100.0 + 2.0 * x + 3.0 * y + 0.2 * y * y + 0.1 * x * y + 0.2 * Math.sqrt(Math.abs(x));
+            ret1 += (20.0 * Math.sin(6.0 * x * this.M_PI) + 20.0 * Math.sin(2.0 * x * this.M_PI)) * 2.0 / 3.0;
+            ret1 += (20.0 * Math.sin(y * this.M_PI) + 40.0 * Math.sin(y / 3.0 * this.M_PI)) * 2.0 / 3.0;
+            ret1 += (160.0 * Math.sin(y / 12.0 * this.M_PI) + 320 * Math.sin(y * this.M_PI / 30.0)) * 2.0 / 3.0;
+            return ret1;
+        }
+        ;
+        Convertor.prototype.WGS2GCJ_lng = function (x, y) {
+            var ret2 = 300.0 + x + 2.0 * y + 0.1 * x * x + 0.1 * x * y + 0.1 * Math.sqrt(Math.abs(x));
+            ret2 += (20.0 * Math.sin(6.0 * x * this.M_PI) + 20.0 * Math.sin(2.0 * x * this.M_PI)) * 2.0 / 3.0;
+            ret2 += (20.0 * Math.sin(x * this.M_PI) + 40.0 * Math.sin(x / 3.0 * this.M_PI)) * 2.0 / 3.0;
+            ret2 += (150.0 * Math.sin(x / 12.0 * this.M_PI) + 300.0 * Math.sin(x / 30.0 * this.M_PI)) * 2.0 / 3.0;
+            return ret2;
+        }
+        Convertor.prototype.outofChine = function (p) {
+            if (p.lng < 72.004 || p.lng > 137.8347) {
+                return true;
+            }
+            if (p.lat < 0.8293 || p.lat > 55.8271) {
+                return true;
+            }
+            return false;
+        }
+        Convertor.prototype.WGS2GCJ = function (poi) {
+            if (this.outofChine(poi)) {
+                return;
+            }
+            var poi2 = {};
+            var dLat = this.WGS2GCJ_lat(poi.lng - 105.0, poi.lat - 35.0);
+            var dLon = this.WGS2GCJ_lng(poi.lng - 105.0, poi.lat - 35.0);
+            var radLat = poi.lat / 180.0 * this.M_PI;
+            var magic = Math.sin(radLat);
+            magic = 1 - this.EE * magic * magic;
+            var sqrtMagic = Math.sqrt(magic);
+            dLat = (dLat * 180.0) / ((this.A * (1 - this.EE)) / (magic * sqrtMagic) * this.M_PI);
+            dLon = (dLon * 180.0) / (this.A / sqrtMagic * Math.cos(radLat) * this.M_PI);
+            poi2.lat = poi.lat + dLat;
+            poi2.lng = poi.lng + dLon;
+            return poi2;
+        }
+        Convertor.prototype.GCJ2BD09 = function (poi) {
+            var poi2 = {};
+            var x = poi.lng
+                , y = poi.lat;
+            var z = Math.sqrt(x * x + y * y) + 0.00002 * Math.sin(y * this.X_PI);
+            var theta = Math.atan2(y, x) + 0.000003 * Math.cos(x * this.X_PI);
+            poi2.lng = z * Math.cos(theta) + 0.0065;
+            poi2.lat = z * Math.sin(theta) + 0.006;
+            return poi2;
+        }
+        Convertor.prototype.WGS2BD09 = function (poi) {
+            //WGS->GCJ
+            var poi2 = this.WGS2GCJ(poi);
+            if (typeof poi2 === "undefined") {
+                return;
+            }
+            //GCJ->鐧惧害鍧愭爣绯�
+            return this.GCJ2BD09(poi2);
+        }
+
+        function Convertor(ak) {
+            this.stepCount = 100;
+            this.pointCount = [];
+            this.Result = [];
+            this.NoisIndex = [];
+            this.Time = new Date();
+            this.AK = ak;
+            this.M_PI = 3.14159265358979324;
+            this.A = 6378245.0;
+            this.EE = 0.00669342162296594323;
+            this.X_PI = this.M_PI * 3000.0 / 180.0;
+        }
+
+        var dts = [];
+
+        var id = $("#tagid").val();
+        var time = $("#FanWei").val();
+        var zuobiaoxi = "";
+        //浠庢暟鎹簱鏌ヨ褰撳墠閫夋嫨鐨勪粈涔堢郴鍧愭爣
+        $.ajax({
+            url: "/hxzkuwb/findbaidumapList",
+            type: "GET",
+            async: false,
+            success: function(data) {
+                zuobiaoxi = data[0].zhuanhuan
+            }
+        });
+        var data = "tagid=" + id + "&time=" + time
+        $.ajax({
+            url: "/hxzkuwb/findBaiDuGuiJi",
+            data: data,
+            async: false,
+            success: function (data) {
+                datalist = data;
+                if (datalist.length == 0){
+                    $(".heimu").hide();
+                    $(".heimu1").hide();
+                    layer.alert(languages11, {
+                        offset: '200px',  // 璁剧疆鍨傜洿鍋忕Щ閲�
+                        // 鎴栬��
+                        // offset: ['100px', '50px']  // 璁剧疆姘村钩鍜屽瀭鐩村亸绉婚噺
+                    });
+                    return
+                }
+                var ds = "id=" + data[0].tagid
+                $.ajax({
+                    url: "/hxzkuwb/findtagIdPerson",
+                    data: ds,
+                    async: false,
+                    success: function (data) {
+                        var bumen = data.pdepartment;
+
+                        var dt = "departmentname=" + bumen
+                        $.ajax({
+                            url: "/hxzkuwb/findBuMenColor",
+                            data: dt,
+                            async: false,
+                            success: function (data) {
+                                bgcolor = data.baoliu5
+                            }
+                        })
+                    }
+                })
+
+
+                if (data.length == 0) {
+                    layer.alert(languages11, {
+                        offset: '200px',  // 璁剧疆鍨傜洿鍋忕Щ閲�
+                        // 鎴栬��
+                        // offset: ['100px', '50px']  // 璁剧疆姘村钩鍜屽瀭鐩村亸绉婚噺
+                    });
+                } else {
+                    $(".heimu").hide();
+                    $(".heimu1").hide();
+                    nub = true;
+                    // 澶勭悊鍚屾璇锋眰杩斿洖鐨勬暟鎹�
+                    for (var i = 0; i < data.length; i++) {
+                        var c = new Convertor();
+                        if (zuobiaoxi == "鐧惧害"){
+                            var rr1 = c.WGS2BD09({
+                                lng: parseFloat(data[i].gspJingdu),
+                                lat: parseFloat(data[i].gpsWeidu)
+                            });
+                        }else{
+                            var rr1 = {
+                                lng: parseFloat(data[i].gspJingdu),
+                                lat: parseFloat(data[i].gpsWeidu)
+                            };
+                        }
+                        dts.push(rr1)
+                        dtlist.push(rr1)
+                    }
+                    var path = dts;
+
+
+                // 鍒涘缓绉诲姩鐨勫浘鏍�
+                    console.log(data)
+                    var movingIcon = new BMapGL.Icon('../../Icon/宸ヤ汉.png', new BMapGL.Size(32, 32));
+                    var marker = new BMapGL.Marker(path[0], {icon: movingIcon});
+                    var label = new BMapGL.Label("", {offset: new BMapGL.Size(0, -50)});
+                    label.setStyle({
+                        color: "white",
+                        fontSize: "12px",
+                        borderRadius: "5px",
+                        padding: "5px 5px",
+                        border: "0",
+                        transform: 'translateX(-50%)',
+                        backgroundColor: bgcolor,
+                    });
+                    var label1 = new BMapGL.Label("", {offset: new BMapGL.Size(0, 30)});
+                    label1.setStyle({
+                        color: "white",
+                        fontSize: "12px",
+                        borderRadius: "5px",
+                        padding: "5px 5px",
+                        border: "0",
+                        transform: 'translateX(-50%)',
+                        backgroundColor: bgcolor,
+                    });
+                    bm.clearOverlays();
+                    marker.setLabel(label);
+                    var marker1 = new BMapGL.Marker(path[0], {icon: movingIcon});
+                    marker1.setLabel(label1);
+                    bm.addOverlay(marker1)
+                    bm.addOverlay(marker);
+                    bm.centerAndZoom(new BMapGL.Point(path[0].lng, path[0].lat), 15);
+// 鍔ㄧ敾鍑芥暟
+                    function animateMarker(index) {
+                        if (tds == false) {
+                            localStorage.setItem("JiXu",index)
+                            return;
+                        } else {
+                            if (index == path.length) {
+                                nub = false
+                            }
+                            $("#data1").text(index + "/" + data.length)
+                            $(".data2").text(data[index].name)
+                            $(".data3").text(data[index].tagid)
+                            $(".data4").text(data[index].gspJingdu)
+                            $(".data5").text(data[index].gpsWeidu)
+                            $(".data6").text(data[index].gpsHaibaGao)
+                            $(".data7").text(data[index].gpsState)
+                            $(".data11").text(data[index].gpsPower)
+                            $(".data12").text(data[index].addtime)
+                            if (index < path.length) {
+                                var point = new BMapGL.Point(path[index].lng, path[index].lat);
+                                marker.setPosition(point);
+                                marker1.setPosition(point);
+                                label.setContent(data[index].name + " " + data[index].tagid);
+                                label1.setContent(data[index].gspJingdu + " " + data[index].gpsWeidu);
+                                // 璁剧疆寤惰繜鍚庣Щ鍔ㄥ埌涓嬩竴涓偣
+                                setTimeout(function () {
+                                    animateMarker(index + 1);
+                                }, sudu); // 杩欓噷璁剧疆鐨勬槸姣�500姣绉诲姩涓�娆★紝浣犲彲浠ユ牴鎹渶瑕佽皟鏁�
+
+                            }
+
+                            if (index < path.length && index > 0) {
+                                var line = new BMapGL.Polyline([path[index - 1], point], {
+                                    strokeColor: 'red',
+                                    strokeWeight: 2,
+                                    strokeOpacity: 1
+                                });
+                                bm.addOverlay(line);
+                            }
+                        }
+                    }
+                    animateMarker(0);
+                }
+                return dts
+            }
+        });
+    }
+
+}
+
+function baiduBoFang(){
+    var bdsd = $("#bofangsudu").val();
+    if (bdsd == "1"){
+        sudu = 1000
+    }
+    if (bdsd == "2"){
+        sudu = 500
+    }
+    if (bdsd == "4"){
+        sudu = 250
+    }
+    if (bdsd == "6"){
+        sudu = 150
+    }
+    if (bdsd == "鎾斁閫熷害x8"){
+        sudu = 0
+    }
+}
\ No newline at end of file
diff --git a/src/main/webapp/HouTai/ChaXunGuiJi/ChaXunGuiJiJs/ErWei.js b/src/main/webapp/HouTai/ChaXunGuiJi/ChaXunGuiJiJs/ErWei.js
new file mode 100644
index 0000000..36b1206
--- /dev/null
+++ b/src/main/webapp/HouTai/ChaXunGuiJi/ChaXunGuiJiJs/ErWei.js
@@ -0,0 +1,529 @@
+function queryTagid() {
+    var tag = document.getElementById("tagid").value;
+    var fanwei = $("#FanWei").val();
+    var floor =$("#cxList").val();
+            var time = fanwei.split('鍒�')
+            var begin = time[0]
+            var end = time[1].slice(1);
+            var tagTrack = [];
+                    $.ajax({
+                        async: false,
+                        type: "POST",
+                        url: "/hxzkuwb/trackTagid.do",
+                        dataType: 'json',
+                        data: {
+                            tag_value: tag,
+                            begin_value: begin,
+                            end_value: end,
+                            floor_value: floor,
+                        },
+                        success: function (data) {
+                            tagTrack = data;
+                        },
+                    });
+                    return tagTrack;
+};
+
+
+
+
+function getTruemap() {
+    var floor =$("#cxList").val();
+    var map_wl = [];
+    $.ajax({
+        async: false,
+        type: "POST",
+        url: "/hxzkuwb/findFloorMap",
+        dataType: 'json',
+        data: {
+            floor: floor
+        },
+        success: function (data) {
+            map_wl = [data.xtruelength, data.ytruewidth];
+        },
+    });
+    return map_wl;
+};
+
+function getYuandian() {
+    var floor =$("#cxList").val();
+    var yuandian = []
+    $.ajax({
+        async: false,
+        type: "POST",
+        url: "/hxzkuwb/findFloorMap",
+        dataType: 'json',
+        data: {
+            floor: floor
+        },
+        success: function (data) {
+            yuandian = [data.x0Length, data.y0Width];
+        },
+    });
+    return yuandian;
+};
+
+
+
+
+
+
+
+
+
+
+
+    var zongtiao;
+    var tiao
+    var timer;
+    var ts1 = getYuandian();
+    var ts2 = getTruemap();
+    function MarkPoints(Imgurl) {
+    this.imgX = 0;//鍦ㄧ敾甯冧笂鍥剧墖鐨刋鍋忕Щ閲�
+    this.imgY = 0;//鍦ㄧ敾甯冧笂鍥剧墖鐨刌鍋忕Щ閲�
+    this.imgScale = 1;//鍥剧墖鐨勭缉鏀炬瘮渚�
+    this.rateNum;//鍥剧墖楂樺害鑷�傚簲姣斾緥,鍥剧墖绛夋瘮灞呬腑灞曠ず鍦╟anvas
+    this.scaleFlag = 0;//缂╂斁鍥犲瓙锛屾渶澶х缉鏀�9,鏈�灏忕缉鏀�-9
+    this.context;
+    this.img;
+    this.playIndex = 0;
+    this.pos = {};//姣忔鎷栨嫿鍓嶅潗鏍囦繚瀛�
+    this.playFlag = false;//鏄惁鎾斁
+    this.playTrack = [];
+    this.dragFlag = false;//鏄惁鍙嫋鎷藉綋鍓峣mg锛岄粯璁や笉鑳�
+    this.markFlag = false;//鏍囪鍖哄煙寮�鍚叧闂璮lag
+    this.CreatLinepoints = [];//姣忔鍒涘缓鏂板尯鍩熺殑鍧愭爣闆嗗悎
+    this.playMark = []; //姝e湪灞曠ず鐨勬爣璁�
+    this.allMarkLins = [];//宸插垱寤虹殑鍖哄煙闆嗗悎锛屼緥濡俒[{x,y},{x,y},{x,y}],[{n,m},{n,m},{n,m}]]鐩墠鍙渶瑕佷竴涓尯鍩燂紝鎵�浠ユ暟缁勫唴閮ㄥ彧鏈変竴椤�
+    this.allFenceColor = [];//宸插垱寤虹殑鍖哄煙棰滆壊
+    this.getImgLoad(Imgurl);
+    this.init();
+    document.oncontextmenu = new Function("event.returnValue=false;");
+    document.onselectstart = new Function("event.returnValue=false;");
+
+}
+    MarkPoints.prototype = {
+    getImgLoad: function (Imgurl) {
+    var _this = this;
+
+    var wrap = document.getElementById('wrap');
+    _this.canvas = document.getElementById('draw');
+    _this.context = draw.getContext('2d');
+    _this.canvas.height = wrap.offsetHeight;
+    _this.canvas.width = wrap.offsetWidth;
+    _this.img = new Image();
+    _this.img.onload = function () {
+    _this.imgX = 0;
+    _this.imgY = 0;
+    _this.imgScale = 1;
+    _this.rateNum = _this.canvas.height / _this.img.naturalHeight;
+    _this.imgX = (_this.canvas.width - _this.img.naturalWidth * _this.imgScale * _this.rateNum) / 2;//榛樿杩涙潵褰撳墠鍥惧儚灞呬腑鏄剧ず
+    /*鐢诲嚭褰撳墠鍥剧墖*/
+    _this.drawImg();
+}
+    _this.img.src = imgUrl;
+
+},
+    getNewPoints: function (points) {
+    var _this = this;
+    var newPointAry = [];
+    for (var i = 0; i < points.length; i++) {
+    var obj = {};
+    obj.x = points[i].x * _this.imgScale + _this.imgX;
+    obj.y = points[i].y * _this.imgScale + _this.imgY;
+    if (points[i].hasOwnProperty('mac')) {
+    obj.mac = points[i].mac;
+    obj.name = points[i].name || '';
+}
+
+    newPointAry.push(obj);
+}
+    return newPointAry;
+},
+    drawImg: function () {
+    var _this = this;
+    _this.context.clearRect(0, 0, _this.canvas.width, _this.canvas.height);
+    _this.context.drawImage(_this.img, 0, 0, _this.img.naturalWidth, _this.img.naturalHeight, _this.imgX, _this.imgY, _this.img.naturalWidth * _this.imgScale * _this.rateNum, _this.img.naturalHeight * _this.imgScale * _this.rateNum);
+    var trueMeasure = ts2;
+    var trueLength = new Number(trueMeasure[0]);
+    var trueWidth = new Number(trueMeasure[1]);
+    var x_ratio = new Number(_this.img.naturalWidth / trueLength);
+    var y_ratio = new Number(_this.img.naturalHeight / trueWidth);
+    var can = _this.context;
+    var x_x0 = new Number(ts1[0]);
+    var y_y0 = new Number(ts1[1]);
+
+    //杞ㄨ抗鎷栧熬
+    can.beginPath();
+    can.fillStyle = "red";
+    can.strokeStyle = "red";
+    can.lineWidth = 3;
+    for (var i = 0; i < _this.playIndex - 1; i++) {
+    var cor_x = new Number(_this.playTrack[i].x);
+    var cor_y = new Number(_this.playTrack[i].y);
+
+    var x_cor = new Number(_this.imgX + _this.imgScale * _this.rateNum * x_ratio * (cor_x - x_x0));
+    var y_cor = new Number(_this.imgY + _this.imgScale * _this.rateNum * y_ratio * (cor_y - y_y0));
+    var cor_x2 = new Number(_this.playTrack[i + 1].x);
+    var cor_y2 = new Number(_this.playTrack[i + 1].y);
+    var x_cor2 = new Number(_this.imgX + _this.imgScale * _this.rateNum * x_ratio * (cor_x2 - x_x0));
+    var y_cor2 = new Number(_this.imgY + _this.imgScale * _this.rateNum * y_ratio * (cor_y2 - y_y0));
+
+    can.moveTo(x_cor, y_cor);
+    can.lineTo(x_cor2, y_cor2);
+}
+    can.closePath();
+    can.stroke();
+
+    //瀹炴椂杞ㄨ抗鐐�
+        if (_this.playMark) {
+            var can = _this.context;
+            var cor_x = new Number(_this.playMark.x);
+            var cor_y = new Number(_this.playMark.y);
+            var zuobiao = _this.playMark.x + "," + _this.playMark.y;
+
+            var x_cor = new Number(_this.imgX + _this.imgScale * _this.rateNum * x_ratio * (cor_x - x_x0));
+            var y_cor = new Number(_this.imgY + _this.imgScale * _this.rateNum * y_ratio * (cor_y - y_y0));
+
+            var img = new Image();
+            img.src = '/hxzkuwb/Icon/' + _this.playMark.image;
+                var wid = img.width;
+                var hei = img.height;
+                can.fillStyle = "#FF423E";
+                can.fill();
+                can.strokeStyle = "#FFF";
+                can.drawImage(img, x_cor - 20, y_cor - 40, 40, 40);
+                can.fillStyle = 'rgba(0, 0, 0, 0.5)';
+                can.fillRect(x_cor - wid, y_cor - hei - 23, wid + 50, 20);
+                can.fillRect(x_cor - wid - 30, y_cor - hei + 40, wid + 130, 20);
+                can.fillStyle = 'white';
+                can.font = '12px sans-serif';
+                can.fillText(_this.playMark.baoliu8 + " " + _this.playMark.tagid, x_cor - wid + 10, y_cor - hei - 8);
+                can.fillText(_this.playMark.time, x_cor - 55, y_cor + 15);
+        }
+    if (_this.allMarkLins.length) {
+    for (var m = 0; m < _this.allMarkLins.length; m++) {
+    var points = _this.allMarkLins[m];
+    var newPoints = _this.getNewPoints(points);
+    for (var i = 0; i < newPoints.length; i++) {
+    var can = _this.context;
+    can.beginPath();
+    can.arc(newPoints[i].x, newPoints[i].y, 6, 0, Math.PI * 2, true);
+    can.fillStyle = "#FF423E";
+    can.fill();
+    can.strokeStyle = "#FFF";
+    can.stroke();//鐢荤┖蹇冨渾
+    can.closePath();
+
+    if (points.length >= 2 && i >= 1) {
+    can.strokeStyle = "#FF423E";
+    can.lineWidth = 2;
+    can.beginPath();
+    can.moveTo(newPoints[i - 1].x, newPoints[i - 1].y);
+    can.lineTo(newPoints[i].x, newPoints[i].y);
+    can.fillStyle = "#ff0000";
+    can.fill();
+    can.stroke();
+    can.closePath();
+}
+}
+    if (points.length >= 3) {
+    can.strokeStyle = "#FF423E";
+    can.lineWidth = 2;
+    can.beginPath();
+    can.moveTo(newPoints[newPoints.length - 1].x, newPoints[newPoints.length - 1].y);
+    can.lineTo(newPoints[0].x, newPoints[0].y);
+    can.stroke();
+    can.closePath();
+}
+}
+    ;
+}
+
+},
+    init: function () {
+    var _this = this;
+    _this.canvas.onmousedown = function (event) {
+    _this.clickDown(event);
+};
+    _this.canvas.onmousemove = function (event) {
+    _this.mouseMove(event)
+};
+    _this.canvas.onmouseup = function (event) {
+    _this.mouseUp(event);
+};
+    _this.canvas.onmousewheel = function (event) {
+    _this.onmouseWheel(event);
+};
+    document.getElementById('search').onclick = function () {
+        var type = $("#cxList").val()
+        if(type == "鐧惧害鍦板浘"){
+            baiDuGuiJi()
+        }else{
+            if(localStorage.getItem("ChaXunGuiJi") == "杩涜涓�"){
+                layer.msg("褰撳墠姝e湪杩涜涓紝璇风◢鍚庡湪杩涜鏌ヨ")
+                return;
+            }
+            var tagid = $("#tagid").val();
+            console.log(tagid)
+            if (tagid == ""){
+                layer.msg("璇疯緭鍏ヨ澶嘔D")
+                return;
+            }
+            $(".heimu").show();
+            $(".heimu1").show();
+            var tagTrack = "";
+            setTimeout(function (){
+                tagTrack = queryTagid();
+                zongtiao = tagTrack.length-2;
+                tiao = 0;
+                if (tagTrack.length == 0) {
+                    $(".heimu").hide();
+                    $(".heimu1").hide();
+                    alert("鎼滅储鐨処D涓嶅湪褰撳墠鏃堕棿娈碉紒");
+                    document.getElementById("tagid").value = "";
+                } else {
+                    $("#search").css("background-color","green")
+                    _this.playTrack = tagTrack;
+                    _this.TrackPlay();
+                    //_this.MarkBorderline();
+                };
+            },1000)
+        }
+
+
+};
+    document.getElementById("pause").onclick = function () {
+        var tall = $("#pause").text();
+        if (tall == "鏆傚仠"){
+            _this.playFlag = false;
+            window.clearInterval(timer);
+            $("#pause").text("缁х画")
+        }else{
+
+            _this.playFlag = true;
+            _this.TrackPlay();
+            $("#pause").text("鏆傚仠")
+        }
+};
+},
+    /*璁$畻褰撳墠榧犳爣浣嶇疆璺濈canvas鐨勫亸绉婚噺*/
+    xyToCanvas: function (ele, x, y) {
+    var _this = this;
+    var obj = _this.canvas.getBoundingClientRect();
+    return {
+    x: x - obj.left,
+    y: y - obj.top
+};
+},
+    /*榧犳爣鍗曞嚮浜嬩欢*/
+    clickDown: function (event) {
+    var _this = this;
+    if (_this.markFlag) {
+    _this.canvas.style.cursor = "none";
+    if (event.button == 2) {
+    _this.markFlag = false;
+    _this.dragFlag = true;
+    _this.canvas.style.cursor = "normal";
+    _this.drawImg();
+    return;
+} else {
+    var posXY = _this.xyToCanvas(_this.canvas, event.clientX, event.clientY);
+    posXY.x = (posXY.x - _this.imgX) / _this.imgScale;
+    posXY.y = (posXY.y - _this.imgY) / _this.imgScale;
+    _this.CreatLinepoints.push(posXY);
+    _this.allMarkLins.pop();
+    _this.allMarkLins.push(_this.CreatLinepoints);
+    _this.drawImg();
+}
+    return;
+}
+    if (event.button == 0) {//鐐瑰嚮榧犳爣宸﹂敭
+    _this.dragFlag = true;
+    _this.canvas.style.cursor = "move";
+    _this.pos = _this.xyToCanvas(_this.canvas, event.clientX, event.clientY);
+}
+},
+    /*榧犳爣绉诲姩浜嬩欢*/
+    mouseMove: function (event) {
+    var _this = this;
+    /*鎷栨嫿*/
+    if (_this.dragFlag) {
+    _this.canvas.style.cursor = "move";
+    var pos1 = _this.xyToCanvas(_this.canvas, event.clientX, event.clientY);
+    var x = pos1.x - _this.pos.x;
+    var y = pos1.y - _this.pos.y;
+    _this.pos = pos1;
+    _this.imgX += x;
+    _this.imgY += y;
+    _this.drawImg();
+}
+
+    /*杈圭晫鏍囪*/
+
+    if (!_this.dragFlag && _this.markFlag) {
+    var pos1 = _this.xyToCanvas(_this.canvas, event.clientX, event.clientY);
+    var can = _this.context;
+    can.clearRect(0, 0, _this.canvas.width, _this.canvas.height);
+    _this.drawImg();
+    /*鐢昏窡闅忓渾鐐�*/
+    can.beginPath();
+    //   can.fillText('[' + point.x + ', ' + point.y + ']', 15, 25 * (points.length + 1))
+    can.arc(pos1.x, pos1.y, 6, 0, Math.PI * 2, true);
+    can.fillStyle = "#FF423E";
+    can.fill();
+    can.strokeStyle = "#FFF";
+    can.stroke();//鐢荤┖蹇冨渾
+    can.closePath();
+
+    /*褰撳墠鐨勫潗鏍囨湭缁撴潫閭d箞缁х画 璺熼殢鐩寸嚎*/
+    if (!_this.CreatLinepoints.length) return;
+    can.strokeStyle = "red";
+    can.beginPath();
+    can.moveTo(_this.CreatLinepoints[_this.CreatLinepoints.length - 1].x * _this.imgScale + _this.imgX, _this.CreatLinepoints[_this.CreatLinepoints.length - 1].y * _this.imgScale + _this.imgY);
+    can.lineTo(pos1.x, pos1.y);
+    console.log(pos1.x,pos1.y)
+    can.stroke();
+    can.closePath();
+}
+},
+    /*榧犳爣鏀惧紑浜嬩欢*/
+    mouseUp: function (event) {
+    var _this = this;
+    _this.dragFlag = false;
+    if (_this.markFlag) {
+    _this.canvas.style.cursor = "none";
+    return;
+}
+    _this.canvas.style.cursor = 'default';
+
+},
+    /*榧犳爣婊氳疆浜嬩欢*/
+    onmouseWheel: function (event) {
+    var _this = this;
+    var pos = _this.xyToCanvas(_this.canvas, event.clientX, event.clientY);
+    event.wheelDelta = event.wheelDelta ? event.wheelDelta : (event.deltaY * (-40));
+    if (event.wheelDelta > 0 && _this.scaleFlag < 9) {
+    _this.imgScale *= 1.25;
+    _this.imgX = _this.imgX * 1.25 - 0.25 * pos.x;
+    _this.imgY = _this.imgY * 1.25 - 0.25 * pos.y;
+    _this.scaleFlag += 1;
+}
+    if (event.wheelDelta < 0 && _this.scaleFlag > -9) {//缂╁皬
+    _this.imgScale *= 0.8;
+    _this.imgX = _this.imgX * 0.8 + pos.x * 0.2;
+    _this.imgY = _this.imgY * 0.8 + pos.y * 0.2;
+    _this.scaleFlag -= 1;
+}
+    _this.drawImg();
+},
+    /*杈圭晫鏍囪*/
+    MarkBorderline: function () {
+    var _this = this;
+    _this.markFlag = true;//鍒囨崲涓簍rue锛岀姝㈡嫋鎷斤紝鍙兘鏍囪
+    _this.canvas.style.cursor = "none";
+    _this.CreatLinepoints = [];
+    _this.allMarkLins.push([]);
+},
+    /*椤哄簭鎾斁鍧愭爣*/
+    TrackPlay: function () {
+        if (tiao == zongtiao-1){
+            tiao = 0;
+        }
+    var _this = this;
+    _this.playFlag = true;
+        _this.playIndex = 0;
+    if (_this.playFlag) {
+    var t = 1000;
+    timer = setInterval(fn, t);
+    function fn() {
+    var speed = document.getElementById("bofangsudu").value;
+    if (speed =="1"){
+        setTimeout(function(){
+
+        },3000)
+    }
+        if (speed =="2"){
+            setTimeout(function(){
+
+            },2000)
+        }
+        if (speed =="4"){
+            setTimeout(function(){
+
+            },1000)
+        }
+        if (speed =="6"){
+            setTimeout(function(){
+
+            },500)
+        }
+        if (speed =="8"){
+
+        }
+    if (_this.playFlag && _this.playIndex < _this.playTrack.length) {
+    _this.ShowNode(_this.playTrack[_this.playIndex]);
+    _this.playIndex += 1;
+};
+
+
+    $("#data1").text(tiao+1+"/"+zongtiao)
+        if(tiao == zongtiao-1){
+            console.log("婊¤冻")
+            clearInterval(timer);
+
+            localStorage.setItem("ChaXunGuiJi","鎵ц瀹�")
+            return
+        }else{
+            localStorage.setItem("ChaXunGuiJi","杩涜涓�")
+        }
+        $(".data2").text(_this.playTrack[_this.playIndex].baoliu8);
+        $(".data3").text(_this.playTrack[_this.playIndex].tagid);
+        $(".data4").text(_this.playTrack[_this.playIndex].baoliu2);
+        $(".data5").text(_this.playTrack[_this.playIndex].baoliu3);
+        $(".data6").text("鏆傛棤鏁版嵁");
+        $(".data7").text("鏆傛棤鏁版嵁");
+        $(".data8").text(_this.playTrack[_this.playIndex].x);
+        $(".data9").text(_this.playTrack[_this.playIndex].y);
+        $(".data10").text(_this.playTrack[_this.playIndex].z);
+        $(".data11").text(_this.playTrack[_this.playIndex].baoliu7);
+        $(".data12").text(_this.playTrack[_this.playIndex].time);
+
+        $(".heimu").hide();
+        $(".heimu1").hide();
+    tiao += 1
+    clearInterval(timer);
+    if (_this.playIndex == _this.playTrack.length - 1) {
+    clearInterval(timer);
+    _this.playIndex = 0;
+} else {
+    var stime = new Date(_this.playTrack[_this.playIndex].time).getTime();
+    var etime = new Date(_this.playTrack[_this.playIndex + 1].time).getTime();
+    var t = etime - stime;
+    var t_v = t / speed;
+    timer = setInterval(fn, t_v);
+}
+};
+} else { clearInterval(timer);  console.log("777777777776") }
+},
+    /*鐢荤偣*/
+    ShowNode: function (node_list) {
+    var _this = this;
+    var can = _this.context;
+    can.clearRect(0, 0, _this.canvas.width, _this.canvas.height);
+
+    _this.playMark = node_list;
+    _this.drawImg();
+},
+}
+    //var imgUrl = '../image/mapfile/led.png';//鍥剧墖璺緞
+    //new MarkPoints(imgUrl);
+const canvas = document.getElementById('draw');
+canvas.addEventListener('click', getMousePosition, false);
+
+function getMousePosition(event) {
+    const rect = canvas.getBoundingClientRect();
+    const x = event.clientX - rect.left;
+    const y = event.clientY - rect.top;
+    console.log("X鍧愭爣: " + x + ", Y鍧愭爣: " + y);
+}
\ No newline at end of file
diff --git a/src/main/webapp/HouTai/ChaXunGuiJi/ChaXunGuiJiJs/ces.jsp b/src/main/webapp/HouTai/ChaXunGuiJi/ChaXunGuiJiJs/ces.jsp
new file mode 100644
index 0000000..73b0477
--- /dev/null
+++ b/src/main/webapp/HouTai/ChaXunGuiJi/ChaXunGuiJiJs/ces.jsp
@@ -0,0 +1,17 @@
+<%--
+  Created by IntelliJ IDEA.
+  User: Dell
+  Date: 2024/1/29
+  Time: 14:09
+  To change this template use File | Settings | File Templates.
+--%>
+<%@ page contentType="text/html;charset=UTF-8" language="java" %>
+<html>
+<head>
+    <title>Title</title>
+    <link rel="stylesheet" href="style.css"/>
+</head>
+<body>
+                <div class="loader-radar"></div>
+</body>
+</html>
diff --git a/src/main/webapp/HouTai/ChaXunGuiJi/ChaXunGuiJiJs/style.css b/src/main/webapp/HouTai/ChaXunGuiJi/ChaXunGuiJiJs/style.css
new file mode 100644
index 0000000..25c9ce5
--- /dev/null
+++ b/src/main/webapp/HouTai/ChaXunGuiJi/ChaXunGuiJiJs/style.css
@@ -0,0 +1,5214 @@
+@charset "UTF-8";
+/**
+ * Computes a CSS calc function that betweens a value from
+ * A to B over viewport-width A to viewport-width B.
+ * Requires a media query to cap the value at B.
+ */
+i {
+  font-style: oblique;
+}
+
+[class*=loader] {
+  position: relative;
+  top: 40%;
+  display: inline-block;
+  margin: 0 auto;
+  cursor: wait;
+  text-rendering: optimizeLegibility;
+  -webkit-font-smoothing: antialiased;
+  -moz-osx-font-smoothing: grayscale;
+}
+
+.loader-playflix-button {
+  display: flex;
+  font-size: 0.75em;
+  font-family: 'Podkova', serif;
+  height: 3em;
+  border-radius: 0.25em;
+  background-color: #083D56;
+  color: #19A6CF;
+  overflow: hidden;
+  counter-reset: playflix-counter 5;
+  -webkit-appearance: none;
+     -moz-appearance: none;
+          appearance: none;
+  border: none;
+  cursor: pointer;
+  transition: all 0.25s;
+  -webkit-animation: playflix-text 5s linear infinite forwards;
+          animation: playflix-text 5s linear infinite forwards;
+}
+.loader-playflix-button:hover {
+  background-color: #0b4e66;
+}
+.loader-playflix-button:active {
+  color: #fff;
+}
+.loader-playflix-button:active, .loader-playflix-button:active:after, .loader-playflix-button:active:before {
+  -webkit-animation: none;
+          animation: none;
+}
+.loader-playflix-button:active:before {
+  background-color: #080;
+  width: calc(100% + 1em);
+  counter-reset: playflix-counter 0;
+}
+.loader-playflix-button:before, .loader-playflix-button:after {
+  pointer-events: none;
+}
+.loader-playflix-button:before {
+  content: attr(data-icon);
+  font-size: 2em;
+  line-height: 1.2;
+  position: absolute;
+  width: 0%;
+  left: -0.5em;
+  top: 0;
+  z-index: 0;
+  text-align: left;
+  padding: 0.25em;
+  text-indent: 0.5em;
+  -webkit-animation: playflix 5s linear infinite forwards;
+          animation: playflix 5s linear infinite forwards;
+}
+.loader-playflix-button:after {
+  content: attr(data-label) "聽聽" counter(playflix-counter);
+  font-weight: 700;
+  display: block;
+  font-size: 1.5em;
+  line-height: 1;
+  padding: 0.5em;
+  position: relative;
+  white-space: nowrap;
+  -webkit-animation: playflix-countdown 5s linear infinite forwards;
+          animation: playflix-countdown 5s linear infinite forwards;
+}
+.loader-playflix-button[data-icon]:not([data-icon=""]):after {
+  padding-left: 2em;
+}
+
+@-webkit-keyframes playflix {
+  0% {
+    width: 0%;
+    background-color: #0E5F76;
+  }
+  89% {
+    width: calc(100% + .5em);
+    background-color: #0E5F76;
+  }
+  89.5%, 100% {
+    width: calc(100% + .5em);
+    background-color: #080;
+  }
+}
+
+@keyframes playflix {
+  0% {
+    width: 0%;
+    background-color: #0E5F76;
+  }
+  89% {
+    width: calc(100% + .5em);
+    background-color: #0E5F76;
+  }
+  89.5%, 100% {
+    width: calc(100% + .5em);
+    background-color: #080;
+  }
+}
+@-webkit-keyframes playflix-countdown {
+  0% {
+    counter-increment: playflix-counter 0;
+  }
+  20% {
+    counter-increment: playflix-counter -1;
+  }
+  40% {
+    counter-increment: playflix-counter -2;
+  }
+  60% {
+    counter-increment: playflix-counter -3;
+  }
+  80% {
+    counter-increment: playflix-counter -4;
+  }
+  100% {
+    counter-increment: playflix-counter -5;
+  }
+}
+@keyframes playflix-countdown {
+  0% {
+    counter-increment: playflix-counter 0;
+  }
+  20% {
+    counter-increment: playflix-counter -1;
+  }
+  40% {
+    counter-increment: playflix-counter -2;
+  }
+  60% {
+    counter-increment: playflix-counter -3;
+  }
+  80% {
+    counter-increment: playflix-counter -4;
+  }
+  100% {
+    counter-increment: playflix-counter -5;
+  }
+}
+@-webkit-keyframes playflix-text {
+  0%, 89% {
+    color: #19A6CF;
+  }
+  89.5%, 100% {
+    color: #fff;
+  }
+}
+@keyframes playflix-text {
+  0%, 89% {
+    color: #19A6CF;
+  }
+  89.5%, 100% {
+    color: #fff;
+  }
+}
+.loader-wobble {
+  font-size: 0.8em;
+  top: 50%;
+  display: inline-block;
+  width: 5em;
+  height: 1em;
+  line-height: 1.3;
+  position: relative;
+  color: #0E5F76;
+  text-align: center;
+  -webkit-user-select: none;
+     -moz-user-select: none;
+      -ms-user-select: none;
+          user-select: none;
+  border-bottom: 0.1em solid;
+  margin-left: -5em;
+  transform: translateX(50%);
+  -webkit-animation: loadingText 1s infinite cubic-bezier(1, -2.3, 1, 2.5) alternate, loadingBar 8s infinite cubic-bezier(0.445, 0.050, 0.550, 0.950) alternate;
+          animation: loadingText 1s infinite cubic-bezier(1, -2.3, 1, 2.5) alternate, loadingBar 8s infinite cubic-bezier(0.445, 0.050, 0.550, 0.950) alternate;
+}
+#toggle:checked ~ #sect .loader-wobble {
+  -webkit-animation: loadingTextMove 1s infinite cubic-bezier(1, -2.3, 1, 2.5) alternate, loadingText 1s infinite cubic-bezier(1, -2.3, 1, 2.5) alternate, loadingBar 8s infinite cubic-bezier(0.445, 0.050, 0.550, 0.950) alternate;
+          animation: loadingTextMove 1s infinite cubic-bezier(1, -2.3, 1, 2.5) alternate, loadingText 1s infinite cubic-bezier(1, -2.3, 1, 2.5) alternate, loadingBar 8s infinite cubic-bezier(0.445, 0.050, 0.550, 0.950) alternate;
+  filter: drop-shadow(0.2em 0.2em 0.2em rgba(0, 0, 0, 0.5));
+}
+.loader-wobble:before, .loader-wobble:after {
+  content: "";
+  width: 7em;
+  height: 7em;
+  position: absolute;
+  top: -3em;
+  left: -0.5em;
+  right: 0;
+  bottom: 0;
+  border-radius: 50%;
+}
+.loader-wobble:before {
+  box-shadow: inset 0 0 0 0.2em rgba(8, 61, 86, 0.5);
+  -webkit-animation: loadingInner 1s infinite cubic-bezier(1, -2.3, 1, 2.5) alternate;
+          animation: loadingInner 1s infinite cubic-bezier(1, -2.3, 1, 2.5) alternate;
+}
+.loader-wobble:after {
+  color: #083D56;
+  border-radius: 50%;
+  border: 0.2em dashed;
+  border-top: 0.2em solid #0E5F76;
+  transform-origin: center center;
+  -webkit-animation: loading 1s infinite cubic-bezier(0.6, 0, 0.4, 1);
+          animation: loading 1s infinite cubic-bezier(0.6, 0, 0.4, 1);
+}
+
+@-webkit-keyframes loading {
+  to {
+    transform: rotate(360deg);
+  }
+}
+
+@keyframes loading {
+  to {
+    transform: rotate(360deg);
+  }
+}
+@-webkit-keyframes loadingInner {
+  to {
+    transform: scale(0);
+  }
+}
+@keyframes loadingInner {
+  to {
+    transform: scale(0);
+  }
+}
+@-webkit-keyframes loadingText {
+  0% {
+    color: #0E5F76;
+    width: 0em;
+  }
+  100% {
+    color: #081E3F;
+    width: 4em;
+  }
+}
+@keyframes loadingText {
+  0% {
+    color: #0E5F76;
+    width: 0em;
+  }
+  100% {
+    color: #081E3F;
+    width: 4em;
+  }
+}
+@-webkit-keyframes loadingTextMove {
+  0% {
+    text-indent: 1em;
+  }
+  100% {
+    text-indent: -1em;
+  }
+}
+@keyframes loadingTextMove {
+  0% {
+    text-indent: 1em;
+  }
+  100% {
+    text-indent: -1em;
+  }
+}
+@-webkit-keyframes loadingBar {
+  0% {
+    width: 0em;
+  }
+  100% {
+    width: 6em;
+  }
+}
+@keyframes loadingBar {
+  0% {
+    width: 0em;
+  }
+  100% {
+    width: 6em;
+  }
+}
+.loader-bricks {
+  position: relative;
+  display: inline-block;
+  font-size: 1rem;
+  width: 8em;
+  height: 1em;
+  z-index: 1;
+  border-style: solid;
+  border-width: 0.1rem 0;
+  color: #19A6CF;
+  background-image: linear-gradient(to right, transparent 0%, transparent 49.9%, #0E5F76 50%, #0E5F76 100%);
+  background-size: 25%;
+  -webkit-animation: loaderBar 1s infinite linear;
+          animation: loaderBar 1s infinite linear;
+}
+#toggle:checked ~ #sect .loader-bricks {
+  filter: drop-shadow(0.3em 0.3em 0.3em rgba(0, 0, 0, 0.5));
+}
+.loader-bricks:before, .loader-bricks:after {
+  content: "";
+  position: absolute;
+  right: 0;
+  z-index: 0;
+  width: 1em;
+  height: 1em;
+  margin-top: -0.1rem;
+  border: 0.1rem solid #19A6CF;
+  border-width: 0.1rem 0;
+  color: #0E5F76;
+  background-color: currentColor;
+  -webkit-animation: loaderBox 2s infinite linear;
+          animation: loaderBox 2s infinite linear;
+}
+.loader-bricks:after {
+  -webkit-animation-delay: 1s;
+          animation-delay: 1s;
+}
+
+@-webkit-keyframes loaderBar {
+  0% {
+    background-position-x: 0;
+  }
+  100% {
+    background-position-x: 2em;
+  }
+}
+
+@keyframes loaderBar {
+  0% {
+    background-position-x: 0;
+  }
+  100% {
+    background-position-x: 2em;
+  }
+}
+@-webkit-keyframes loaderBox {
+  0% {
+    color: #0E5F76;
+    width: 1em;
+    right: 0;
+    top: 0;
+    border-color: #19A6CF;
+  }
+  27% {
+    color: #0E5F76;
+    width: 1em;
+    right: -1em;
+    top: 0;
+    border-color: transparent;
+  }
+  37.5% {
+    color: #083D56;
+    width: 1em;
+    right: -1em;
+    top: -1em;
+    border-color: transparent;
+  }
+  50% {
+    color: #083D56;
+    width: 1em;
+    right: 8em;
+    top: -1em;
+    border-color: transparent;
+  }
+  55% {
+    color: #0E5F76;
+    width: 1em;
+    right: 8em;
+    top: 0em;
+    border-color: transparent;
+  }
+  100% {
+    color: #0E5F76;
+    width: 0em;
+    right: 7em;
+    top: 0;
+    border-color: #19A6CF;
+  }
+}
+@keyframes loaderBox {
+  0% {
+    color: #0E5F76;
+    width: 1em;
+    right: 0;
+    top: 0;
+    border-color: #19A6CF;
+  }
+  27% {
+    color: #0E5F76;
+    width: 1em;
+    right: -1em;
+    top: 0;
+    border-color: transparent;
+  }
+  37.5% {
+    color: #083D56;
+    width: 1em;
+    right: -1em;
+    top: -1em;
+    border-color: transparent;
+  }
+  50% {
+    color: #083D56;
+    width: 1em;
+    right: 8em;
+    top: -1em;
+    border-color: transparent;
+  }
+  55% {
+    color: #0E5F76;
+    width: 1em;
+    right: 8em;
+    top: 0em;
+    border-color: transparent;
+  }
+  100% {
+    color: #0E5F76;
+    width: 0em;
+    right: 7em;
+    top: 0;
+    border-color: #19A6CF;
+  }
+}
+.loader-funky-bar {
+  display: inline-block;
+  width: 5em;
+  height: 1em;
+  border-radius: 2px;
+  position: relative;
+  overflow: hidden;
+  z-index: 0;
+  color: #fff;
+  box-shadow: 0 0 0 2px #081E3F, 0 0 0 4px #0E5F76;
+}
+#toggle:checked ~ #sect .loader-funky-bar {
+  filter: drop-shadow(0.25em 0.25em 0.25em rgba(0, 0, 0, 0.5));
+}
+.loader-funky-bar:before {
+  content: "loading...";
+  position: absolute;
+  top: 0;
+  left: 0;
+  right: 0;
+  bottom: 0;
+  z-index: 0;
+  -webkit-animation: loaderText 1s infinite alternate cubic-bezier(0.55, 0.15, 0.45, 0.85);
+          animation: loaderText 1s infinite alternate cubic-bezier(0.55, 0.15, 0.45, 0.85);
+}
+#toggle:checked ~ #sect .loader-funky-bar:before {
+  -webkit-animation: loaderText 2s infinite alternate cubic-bezier(0.55, 0.15, 0.45, 0.85), textIndent 1s infinite alternate cubic-bezier(0.55, 0.15, 0.45, 0.85);
+          animation: loaderText 2s infinite alternate cubic-bezier(0.55, 0.15, 0.45, 0.85), textIndent 1s infinite alternate cubic-bezier(0.55, 0.15, 0.45, 0.85);
+}
+.loader-funky-bar:after {
+  content: "";
+  width: 11em;
+  height: 11em;
+  position: absolute;
+  left: -6em;
+  top: -5em;
+  z-index: 1;
+  box-shadow: inset 0 0 0 0.5em #0E5F76, inset 0 0 0 1em #083D56, inset 0 0 0 1.5em #0E5F76, inset 0 0 0 2em #083D56, inset 0 0 0 2.5em #0E5F76, inset 0 0 0 3em #083D56, inset 0 0 0 3.5em #0E5F76, inset 0 0 0 4em #083D56, inset 0 0 0 4.5em #0E5F76, inset 0 0 0 5em #083D56, inset 0 0 0 5.5em #0E5F76, inset 0 0 0 6em #083D56;
+  border-radius: 16em 14em/16em 20em;
+  transform-origin: center center;
+  -webkit-animation: loaderRotate 5s linear infinite, loaderMover 15s linear infinite;
+          animation: loaderRotate 5s linear infinite, loaderMover 15s linear infinite;
+}
+
+@-webkit-keyframes loaderRotate {
+  from {
+    transform: rotate(0deg);
+  }
+  to {
+    transform: rotate(360deg);
+  }
+}
+
+@keyframes loaderRotate {
+  from {
+    transform: rotate(0deg);
+  }
+  to {
+    transform: rotate(360deg);
+  }
+}
+@-webkit-keyframes loaderMover {
+  from {
+    left: -11em;
+  }
+  to {
+    left: -6em;
+  }
+}
+@keyframes loaderMover {
+  from {
+    left: -11em;
+  }
+  to {
+    left: -6em;
+  }
+}
+@-webkit-keyframes textIndent {
+  from {
+    text-indent: -2em;
+  }
+  to {
+    text-indent: 2em;
+  }
+}
+@keyframes textIndent {
+  from {
+    text-indent: -2em;
+  }
+  to {
+    text-indent: 2em;
+  }
+}
+@-webkit-keyframes loaderText {
+  from {
+    color: #19A6CF;
+  }
+  to {
+    color: #081E3F;
+  }
+}
+@keyframes loaderText {
+  from {
+    color: #19A6CF;
+  }
+  to {
+    color: #081E3F;
+  }
+}
+.loader-drippy {
+  display: inline-block;
+  position: relative;
+  width: 3em;
+  height: 3em;
+  top: 30%;
+  border-radius: 50% 0em 50% 50%;
+  box-shadow: 0 0 0 0.25em #081E3F, 0 0 0 0.5em #0E5F76;
+  transform: rotate(135deg);
+}
+#toggle:checked ~ #sect .loader-drippy {
+  box-shadow: 0 0 0 0.25em #081E3F, 0 0 0 0.5em #0E5F76, -0.2em -0.2em 0.2em 0.5em rgba(0, 0, 0, 0.25);
+}
+.loader-drippy:before {
+  content: "";
+  position: absolute;
+  display: block;
+  border-radius: 50% 0em 50% 50%;
+  overflow: hidden;
+  z-index: 0;
+  top: 0;
+  left: 0;
+  right: 0;
+  bottom: 0;
+  background-image: repeating-linear-gradient(45deg, #083D56 0, #083D56 9px, transparent 10px, transparent 19px);
+  background-position: center center;
+  background-size: 100% 100%;
+  -webkit-animation: loaderZoom 1s cubic-bezier(0.3, 0.1, 0.3, 0.85) infinite;
+          animation: loaderZoom 1s cubic-bezier(0.3, 0.1, 0.3, 0.85) infinite;
+}
+.loader-drippy:after {
+  content: "";
+  width: 1em;
+  height: 1em;
+  position: absolute;
+  bottom: 90%;
+  left: 90%;
+  z-index: -2;
+  border-radius: 50%;
+  background-color: #083D56;
+  box-shadow: inset -0.05em -0.25em 0.05em #0E5F76;
+  -webkit-animation: loaderDrip 3s cubic-bezier(0.5, 0.8, 0.5, 0.2) infinite forwards;
+          animation: loaderDrip 3s cubic-bezier(0.5, 0.8, 0.5, 0.2) infinite forwards;
+}
+#toggle:checked ~ #sect .loader-drippy:after {
+  box-shadow: inset -0.05em -0.25em 0.05em #0E5F76, -0.2em -0.2em 0.2em rgba(0, 0, 0, 0.25);
+}
+
+@-webkit-keyframes loaderZoom {
+  from {
+    background-size: 200% 200%;
+  }
+  to {
+    background-size: 141% 141%;
+  }
+}
+
+@keyframes loaderZoom {
+  from {
+    background-size: 200% 200%;
+  }
+  to {
+    background-size: 141% 141%;
+  }
+}
+@-webkit-keyframes loaderDrip {
+  0% {
+    bottom: 105%;
+    left: 105%;
+    width: 0.1em;
+    height: 0.1em;
+    border-radius: 3em 3em 3em 3em;
+    opacity: 1;
+  }
+  70% {
+    bottom: 120%;
+    left: 120%;
+    width: 1em;
+    height: 1em;
+    border-radius: 6em 6em 6em 0;
+    opacity: 1;
+  }
+  80% {
+    bottom: 130%;
+    left: 130%;
+    border-radius: 3em 6em;
+    opacity: 1;
+  }
+  94% {
+    bottom: 150%;
+    left: 150%;
+    border-radius: 2em 6em;
+    opacity: 1;
+  }
+  100% {
+    bottom: 150%;
+    left: 150%;
+    border-radius: 0.5em 6em;
+    opacity: 0;
+  }
+}
+@keyframes loaderDrip {
+  0% {
+    bottom: 105%;
+    left: 105%;
+    width: 0.1em;
+    height: 0.1em;
+    border-radius: 3em 3em 3em 3em;
+    opacity: 1;
+  }
+  70% {
+    bottom: 120%;
+    left: 120%;
+    width: 1em;
+    height: 1em;
+    border-radius: 6em 6em 6em 0;
+    opacity: 1;
+  }
+  80% {
+    bottom: 130%;
+    left: 130%;
+    border-radius: 3em 6em;
+    opacity: 1;
+  }
+  94% {
+    bottom: 150%;
+    left: 150%;
+    border-radius: 2em 6em;
+    opacity: 1;
+  }
+  100% {
+    bottom: 150%;
+    left: 150%;
+    border-radius: 0.5em 6em;
+    opacity: 0;
+  }
+}
+.loader-stopwatch {
+  display: inline-block;
+  position: relative;
+  top: 30%;
+  width: 5em;
+  height: 5em;
+  border-radius: 50%;
+  border: 0.38em dotted rgba(14, 95, 118, 0.5);
+  transform-origin: center -300%;
+}
+#toggle:checked ~ #sect .loader-stopwatch {
+  -webkit-animation: rotateClock 5s infinite ease-in-out;
+          animation: rotateClock 5s infinite ease-in-out;
+  filter: drop-shadow(0.2em 0.2em 0.2em rgba(0, 0, 0, 0.5));
+}
+.loader-stopwatch:before {
+  content: "";
+  position: absolute;
+  left: 50%;
+  top: 2.14em;
+  z-index: 1;
+  display: block;
+  height: 2em;
+  width: 0;
+  transform-origin: center top;
+  box-shadow: 0 0 0 0.11em #0E5F76;
+  -webkit-animation: rotatePointer 3s infinite steps(30) linear;
+          animation: rotatePointer 3s infinite steps(30) linear;
+}
+.loader-stopwatch:after {
+  content: "鈥�";
+  position: absolute;
+  left: 0.7em;
+  top: 0.7em;
+  width: 3em;
+  height: 3em;
+  line-height: 0;
+  color: transparent;
+  text-indent: 3em;
+  text-shadow: -3px -5px 3px #19A6CF;
+  border-radius: 50% 0 50% 50%;
+  border: 3px solid #0E5F76;
+  background-color: #083D56;
+  transform-origin: center center;
+  -webkit-animation: rotatePointer 10s infinite linear;
+          animation: rotatePointer 10s infinite linear;
+}
+
+@-webkit-keyframes rotatePointer {
+  to {
+    transform: rotate(359deg);
+  }
+}
+
+@keyframes rotatePointer {
+  to {
+    transform: rotate(359deg);
+  }
+}
+@-webkit-keyframes rotateClock {
+  0%, 100% {
+    transform: rotate(-10deg);
+  }
+  50% {
+    transform: rotate(10deg);
+  }
+}
+@keyframes rotateClock {
+  0%, 100% {
+    transform: rotate(-10deg);
+  }
+  50% {
+    transform: rotate(10deg);
+  }
+}
+.loader-peace-sign {
+  display: inline-block;
+  position: relative;
+  border-radius: 50%;
+  border: 0.5em solid currentColor;
+  top: 30%;
+  width: 5em;
+  height: 5em;
+  color: #083D56;
+  text-align: center;
+  background-color: rgba(14, 95, 118, 0.75);
+  -webkit-animation: peace 2s infinite cubic-bezier(1, -2.3, 1, 2.5) alternate, boxFill 15s infinite ease-out;
+          animation: peace 2s infinite cubic-bezier(1, -2.3, 1, 2.5) alternate, boxFill 15s infinite ease-out;
+}
+.loader-peace-sign:before, .loader-peace-sign:after {
+  content: "";
+  position: absolute;
+  display: block;
+}
+.loader-peace-sign:before {
+  top: 0;
+  left: 1.8em;
+  height: 4.2em;
+  width: 0;
+  border-left: solid 0.5em currentColor;
+}
+.loader-peace-sign:after {
+  height: 2.5em;
+  width: 2.5em;
+  bottom: -0.5em;
+  left: 0.78em;
+  transform-origin: center center;
+  border: solid currentColor;
+  border-width: 0.5em 0.5em 0 0;
+  transform: rotate(-45deg);
+}
+
+@-webkit-keyframes peace {
+  to {
+    color: #083D56;
+    transform: scale(1.2) rotate(-10deg);
+  }
+}
+
+@keyframes peace {
+  to {
+    color: #083D56;
+    transform: scale(1.2) rotate(-10deg);
+  }
+}
+@-webkit-keyframes boxFill {
+  0% {
+    box-shadow: inset 0 5em 0 #081E3F, 0 0 0 #083D56;
+  }
+  90%, 93%, 100% {
+    box-shadow: inset 0 0 0 #081E3F, 0 0 0 #083D56;
+  }
+  92% {
+    box-shadow: inset 0 0 0 #081E3F, 0 0 2em 0.5em #083D56;
+  }
+}
+@keyframes boxFill {
+  0% {
+    box-shadow: inset 0 5em 0 #081E3F, 0 0 0 #083D56;
+  }
+  90%, 93%, 100% {
+    box-shadow: inset 0 0 0 #081E3F, 0 0 0 #083D56;
+  }
+  92% {
+    box-shadow: inset 0 0 0 #081E3F, 0 0 2em 0.5em #083D56;
+  }
+}
+.loader-bubble-disks {
+  position: relative;
+  display: inline-block;
+  margin: 0 auto;
+  width: 3em;
+  height: 3em;
+  transform: translateX(-50%);
+}
+.loader-bubble-disks:before, .loader-bubble-disks:after {
+  content: "";
+  width: 100%;
+  height: 100%;
+  position: absolute;
+  border-radius: 50%;
+  color: rgba(14, 95, 118, 0.25);
+  background-color: currentColor;
+  -webkit-animation: scaleCircles 2s infinite cubic-bezier(0.55, 0.15, 0.45, 0.85) alternate;
+          animation: scaleCircles 2s infinite cubic-bezier(0.55, 0.15, 0.45, 0.85) alternate;
+}
+#toggle:checked ~ #sect .loader-bubble-disks:before, #toggle:checked ~ #sect .loader-bubble-disks:after {
+  box-shadow: 0.1em 0.1em 0.1em rgba(0, 0, 0, 0.25);
+}
+.loader-bubble-disks:after {
+  -webkit-animation-delay: -1s;
+          animation-delay: -1s;
+}
+
+@-webkit-keyframes scaleCircles {
+  0% {
+    z-index: 1;
+    transform: scale3d(0, 0, 0);
+  }
+  100% {
+    z-index: 2;
+    transform: scale3d(1, 1, 1);
+  }
+}
+
+@keyframes scaleCircles {
+  0% {
+    z-index: 1;
+    transform: scale3d(0, 0, 0);
+  }
+  100% {
+    z-index: 2;
+    transform: scale3d(1, 1, 1);
+  }
+}
+.loader-cycle-disks {
+  position: relative;
+  display: inline-block;
+  margin: 0 auto;
+  width: 4em;
+  height: 2em;
+}
+#toggle:checked ~ #sect .loader-cycle-disks {
+  filter: url("#filter-goo2");
+}
+.loader-cycle-disks:before, .loader-cycle-disks:after {
+  content: "";
+  left: 0;
+  position: absolute;
+  width: 2em;
+  height: 2em;
+  border-radius: 50%;
+  background-color: #0E5F76;
+  -webkit-animation: movingCircles 2s infinite ease-in-out;
+          animation: movingCircles 2s infinite ease-in-out;
+}
+.loader-cycle-disks:after {
+  -webkit-animation-delay: -1s;
+          animation-delay: -1s;
+  background-color: #083D56;
+}
+
+@-webkit-keyframes movingCircles {
+  0% {
+    z-index: 1;
+    transform: translate(0, 0);
+  }
+  50% {
+    z-index: 1;
+    transform: translate(120%, 0);
+  }
+  50.1% {
+    z-index: 0;
+    transform: translate(120%, 0);
+  }
+  100% {
+    z-index: 0;
+    transform: translate(0, 0);
+  }
+}
+
+@keyframes movingCircles {
+  0% {
+    z-index: 1;
+    transform: translate(0, 0);
+  }
+  50% {
+    z-index: 1;
+    transform: translate(120%, 0);
+  }
+  50.1% {
+    z-index: 0;
+    transform: translate(120%, 0);
+  }
+  100% {
+    z-index: 0;
+    transform: translate(0, 0);
+  }
+}
+.loader-progress-bar {
+  width: 6em;
+  height: 1.5em;
+  border-radius: 0.5em;
+  border: 0.125em solid;
+  color: #0E5F76;
+}
+#toggle:checked ~ #sect .loader-progress-bar {
+  filter: drop-shadow(0.2em 0.2em 0.2em rgba(0, 0, 0, 0.5));
+}
+.loader-progress-bar:before, .loader-progress-bar:after {
+  content: "";
+  top: 0.2em;
+  left: 0.2em;
+  right: 0.2em;
+  bottom: 0.2em;
+  border-radius: 0.25em;
+  display: block;
+  position: absolute;
+  overflow: hidden;
+}
+.loader-progress-bar:after {
+  right: 100%;
+  -webkit-animation: loaderBarInfinite 10s infinite linear, loaderBarScroll 10s infinite linear;
+          animation: loaderBarInfinite 10s infinite linear, loaderBarScroll 10s infinite linear;
+  box-shadow: inset 0 0.5em 0.5em rgba(25, 166, 207, 0.25), inset 0 -0.5em 0.5em rgba(8, 30, 63, 0.5);
+  background-image: repeating-linear-gradient(45deg, #083D56 0px, #083D56 4px, #0E5F76 5px, #0E5F76 9px);
+  background-size: 26px 13px;
+}
+
+@-webkit-keyframes loaderBarInfinite {
+  from {
+    background-position: 104px 0;
+  }
+  to {
+    background-position: -104px 0;
+  }
+}
+
+@keyframes loaderBarInfinite {
+  from {
+    background-position: 104px 0;
+  }
+  to {
+    background-position: -104px 0;
+  }
+}
+@-webkit-keyframes loaderBarScroll {
+  to {
+    right: 2%;
+  }
+}
+@keyframes loaderBarScroll {
+  to {
+    right: 2%;
+  }
+}
+.loader-3-bars {
+  color: #0E5F76;
+  width: 0.75em;
+  height: 2em;
+  top: 60%;
+  left: 1em;
+  border-radius: 2px;
+  background-color: #083D56;
+  transform: rotate(180deg);
+  transform-origin: center top;
+  -webkit-animation: da3bars 1s infinite cubic-bezier(0.3, 0.1, 0.3, 0.85);
+          animation: da3bars 1s infinite cubic-bezier(0.3, 0.1, 0.3, 0.85);
+}
+#toggle:checked ~ #sect .loader-3-bars {
+  filter: drop-shadow(-0.15em -0.15em 0.15em rgba(0, 0, 0, 0.25));
+}
+.loader-3-bars:before, .loader-3-bars:after {
+  content: "";
+  position: absolute;
+  width: 0.75em;
+  height: 2em;
+  display: inline-block;
+  color: #0E5F76;
+  background-color: #083D56;
+  border-radius: 2px;
+  left: 1em;
+  top: 0;
+  -webkit-animation: da3bars 1s infinite cubic-bezier(0.3, 0.1, 0.3, 0.85);
+          animation: da3bars 1s infinite cubic-bezier(0.3, 0.1, 0.3, 0.85);
+  -webkit-animation-delay: 0.1s;
+          animation-delay: 0.1s;
+}
+.loader-3-bars:after {
+  left: 2em;
+  -webkit-animation-delay: 0.2s;
+          animation-delay: 0.2s;
+}
+
+@-webkit-keyframes da3bars {
+  0%, 100% {
+    height: 2em;
+    background-color: #083D56;
+  }
+  75% {
+    height: 1em;
+    background-color: #083D56;
+  }
+}
+
+@keyframes da3bars {
+  0%, 100% {
+    height: 2em;
+    background-color: #083D56;
+  }
+  75% {
+    height: 1em;
+    background-color: #083D56;
+  }
+}
+.loader-radar {
+  width: 40em;
+  height: 4em;
+  top: 33%;
+  border-radius: 50%;
+  overflow: hidden;
+  border: 1px solid #0E5F76;
+  z-index: 1;
+  background-color: rgba(8, 61, 86, 0.2);
+  background-image: repeating-radial-gradient(transparent 0, transparent 0.39em, rgba(8, 61, 86, 0.5) 0.45em, rgba(8, 61, 86, 0.5) 0.5em);
+}
+#toggle:checked ~ #sect .loader-radar {
+  background-image: repeating-radial-gradient(transparent 0, transparent 0.39em, rgba(8, 61, 86, 0.5) 0.45em, rgba(8, 61, 86, 0.5) 0.5em), repeating-radial-gradient(transparent 0, transparent 0.39em, rgba(0, 0, 0, 0.25) 0.45em, rgba(0, 0, 0, 0.25) 0.5em);
+  background-position: 0px 0px, 1px 1px;
+  box-shadow: 0.25em 0.25em 0.25em rgba(0, 0, 0, 0.25), inset 0.25em 0.25em 0.25em rgba(0, 0, 0, 0.25);
+}
+.loader-radar:before, .loader-radar:after {
+  content: "";
+  position: absolute;
+  display: block;
+}
+.loader-radar:before {
+  z-index: 0;
+  width: 2em;
+  height: 4em;
+  top: 50%;
+  left: 50%;
+  transform-origin: left top;
+  border-left: 0.1em solid #19A6CF;
+  background-image: linear-gradient(to right, rgba(8, 61, 86, 0.75) 0%, transparent 85%);
+  -webkit-animation: radar 2s infinite linear;
+          animation: radar 2s infinite linear;
+}
+.loader-radar:after {
+  left: 62%;
+  top: 34%;
+  width: 2px;
+  height: 2px;
+  border-radius: 50%;
+  background-color: currentColor;
+  -webkit-animation: radarDotGlow 2s infinite linear, radarDotMove 15s infinite cubic-bezier(0.5, -0.35, 0.5, 1.35);
+          animation: radarDotGlow 2s infinite linear, radarDotMove 15s infinite cubic-bezier(0.5, -0.35, 0.5, 1.35);
+}
+
+@-webkit-keyframes radar {
+  to {
+    transform: rotate(359deg);
+  }
+}
+
+@keyframes radar {
+  to {
+    transform: rotate(359deg);
+  }
+}
+@-webkit-keyframes radarDotGlow {
+  0%, 59.9%, 87%, 100% {
+    color: rgba(25, 166, 207, 0.33);
+    box-shadow: 0 0 0.1em 0.05em currentColor;
+  }
+  62% {
+    color: #19a6cf;
+    box-shadow: 0 0 0.1em 0.1em currentColor;
+  }
+}
+@keyframes radarDotGlow {
+  0%, 59.9%, 87%, 100% {
+    color: rgba(25, 166, 207, 0.33);
+    box-shadow: 0 0 0.1em 0.05em currentColor;
+  }
+  62% {
+    color: #19a6cf;
+    box-shadow: 0 0 0.1em 0.1em currentColor;
+  }
+}
+@-webkit-keyframes radarDotMove {
+  0% {
+    top: 0%;
+    left: 85%;
+  }
+  40% {
+    top: 30%;
+    left: 70%;
+  }
+  100% {
+    top: 50%;
+    left: 50%;
+  }
+}
+@keyframes radarDotMove {
+  0% {
+    top: 0%;
+    left: 85%;
+  }
+  40% {
+    top: 30%;
+    left: 70%;
+  }
+  100% {
+    top: 50%;
+    left: 50%;
+  }
+}
+.loader-beaker {
+  top: 30%;
+  width: 2em;
+  height: 4em;
+  border-radius: 5%;
+  border: 0.15em solid #081E3F;
+  overflow: hidden;
+  z-index: 1;
+  box-shadow: 0 0.2em 0 0.2em #0E5F76;
+}
+#toggle:checked ~ #sect .loader-beaker {
+  filter: drop-shadow(-0.2em 0.2em 0.2em rgba(14, 95, 118, 0.3)) url("#filter-goo2");
+  -webkit-animation: pour 15s infinite cubic-bezier(.22,.01,.41,.54);
+          animation: pour 15s infinite cubic-bezier(.22,.01,.41,.54);
+}
+.loader-beaker:before {
+  content: "";
+  position: absolute;
+  z-index: -1;
+  left: -1.5em;
+  top: 100%;
+  width: 6em;
+  height: 6em;
+  background-color: rgba(8, 61, 86, 0.75);
+  border-radius: 66% 100% 100% 66%/50% 150% 100% 150%;
+  -webkit-animation: waveRot 15s infinite cubic-bezier(.22,.01,.41,.54);
+          animation: waveRot 15s infinite cubic-bezier(.22,.01,.41,.54);
+}
+.loader-beaker:after {
+  content: "        100\a            75\a            50\a            25";
+  white-space: pre;
+  text-align: left;
+  font-size: 0.5em;
+  font-weight: bold;
+  line-height: 2.3;
+  color: #0E5F76;
+  position: absolute;
+  left: 0;
+  top: -0.8em;
+  bottom: 0;
+  right: 50%;
+  mix-blend-mode: exclusion;
+  background-image: repeating-linear-gradient(to bottom, #083D56 0, #083D56 1px, transparent 2px, transparent 9px);
+  background-position-y: 0.9em;
+}
+
+@-webkit-keyframes waveRot {
+  to {
+    transform: translateY(-70%) rotate(-1440deg);
+  }
+}
+
+@keyframes waveRot {
+  to {
+    transform: translateY(-70%) rotate(-1440deg);
+  }
+}
+@-webkit-keyframes waveRot2 {
+  to {
+    transform: translateY(-65%) rotate(-1080deg);
+  }
+}
+@keyframes waveRot2 {
+  to {
+    transform: translateY(-65%) rotate(-1080deg);
+  }
+}
+@-webkit-keyframes pour {
+  0%, 90%, 100% {
+    transform: rotate(0deg);
+  }
+  15% {
+    transform: rotate(45deg);
+  }
+}
+@keyframes pour {
+  0%, 90%, 100% {
+    transform: rotate(0deg);
+  }
+  15% {
+    transform: rotate(45deg);
+  }
+}
+.loader-floppy-disk {
+  border: 0.2em solid #0E5F76;
+  top: 30%;
+  width: 3em;
+  height: 3em;
+  border-radius: 0 10px 0 0;
+  background-image: repeating-linear-gradient(to bottom, #0E5F76 0, #0E5F76 1px, transparent 2px, transparent 3px, #0E5F76 5px, transparent 6px);
+  background-size: 7px 12px;
+  background-repeat: no-repeat;
+  background-position: 42% 0%;
+}
+#toggle:checked ~ #sect .loader-floppy-disk {
+  box-shadow: 0.2em 0.2em 0.2em rgba(0, 0, 0, 0.3);
+}
+.loader-floppy-disk:before {
+  content: "HD";
+  line-height: 1.4;
+  font-weight: 700;
+  color: #081E3F;
+  position: absolute;
+  left: 8%;
+  bottom: -0.15em;
+  width: 80%;
+  height: 1.6em;
+  border-radius: 0.1em 0.1em 0 0;
+  background-color: #083D56;
+  border: 0.2em solid #0E5F76;
+  transform: rotate(180deg);
+  -webkit-animation: floppyLabel 10s infinite linear;
+          animation: floppyLabel 10s infinite linear;
+}
+.loader-floppy-disk:after {
+  content: "";
+  position: absolute;
+  left: 0.65em;
+  top: -0.1em;
+  width: 1.5em;
+  height: 1.2em;
+  border-radius: 0.1em 0.1em 0 0;
+  border: 0.3em solid #0E5F76;
+  box-shadow: inset 0.43em 0 0 0 #0E5F76;
+  -webkit-animation: floppy 1s infinite linear alternate;
+          animation: floppy 1s infinite linear alternate;
+}
+
+@-webkit-keyframes floppy {
+  to {
+    transform: translateX(-30%);
+  }
+}
+
+@keyframes floppy {
+  to {
+    transform: translateX(-30%);
+  }
+}
+@-webkit-keyframes floppyLabel {
+  from {
+    box-shadow: inset 0 0em 0 rgba(14, 95, 118, 0.75);
+  }
+  to {
+    box-shadow: inset 0 1.3em 0 rgba(14, 95, 118, 0.75);
+  }
+}
+@keyframes floppyLabel {
+  from {
+    box-shadow: inset 0 0em 0 rgba(14, 95, 118, 0.75);
+  }
+  to {
+    box-shadow: inset 0 1.3em 0 rgba(14, 95, 118, 0.75);
+  }
+}
+.loader-zoom {
+  width: 2em;
+  height: 2em;
+}
+#toggle:checked ~ #sect .loader-zoom {
+  filter: drop-shadow(0.2em 0.2em 0.2em rgba(0, 0, 0, 0.3));
+}
+.loader-zoom:before, .loader-zoom:after {
+  content: "";
+  position: absolute;
+  width: 2em;
+  height: 2em;
+  left: 0;
+  top: 0;
+  bottom: 0;
+  right: 0;
+  border: 2px solid #0E5F76;
+  background-color: rgba(8, 61, 86, 0.5);
+  -webkit-animation: boxZoom 2s infinite cubic-bezier(0.65, 1.5, 0.6, 0.95) alternate;
+          animation: boxZoom 2s infinite cubic-bezier(0.65, 1.5, 0.6, 0.95) alternate;
+}
+.loader-zoom:after {
+  border-radius: 100%;
+  animation-direction: alternate-reverse;
+}
+
+@-webkit-keyframes boxZoom {
+  from {
+    z-index: 1;
+    background-color: #081e3f;
+    transform: scale(0.5) rotateX(180deg);
+  }
+  to {
+    z-index: 0;
+    border-radius: 10%;
+    transform: scale(1.5) rotateX(0deg) rotateY(180deg);
+  }
+}
+
+@keyframes boxZoom {
+  from {
+    z-index: 1;
+    background-color: #081e3f;
+    transform: scale(0.5) rotateX(180deg);
+  }
+  to {
+    z-index: 0;
+    border-radius: 10%;
+    transform: scale(1.5) rotateX(0deg) rotateY(180deg);
+  }
+}
+.loader-spinna {
+  width: 4em;
+  height: 4em;
+  top: 25%;
+  border-radius: 50%;
+  overflow: hidden;
+  z-index: 2;
+  background-color: #081e3f;
+}
+.loader-spinna:before, .loader-spinna:after {
+  content: "";
+  position: absolute;
+  display: inline-block;
+  width: 100%;
+  height: 100%;
+  left: 0;
+  right: 0;
+  top: 0;
+  bottom: 0;
+  border-radius: 50%;
+  z-index: 1;
+}
+.loader-spinna:before {
+  border: 3px solid rgba(8, 30, 63, 0);
+  box-shadow: inset 0 0 0 3em #081e3f;
+}
+#toggle:checked ~ #sect .loader-spinna:before {
+  border: 3px dotted #081e3f;
+}
+.loader-spinna:after {
+  z-index: 0;
+  border-width: 10px;
+  border-style: solid;
+  -o-border-image: linear-gradient(to bottom, #19A6CF 0%, transparent 100%);
+     border-image: linear-gradient(to bottom, #19A6CF 0%, transparent 100%);
+  border-image-slice: 0 0 0 20;
+  -webkit-animation: spinnaRot 1s infinite linear;
+          animation: spinnaRot 1s infinite linear;
+}
+
+@-webkit-keyframes spinnaRot {
+  to {
+    transform: rotate(359deg);
+  }
+}
+
+@keyframes spinnaRot {
+  to {
+    transform: rotate(359deg);
+  }
+}
+.loader-pacman {
+  width: 7em;
+  height: 0.75em;
+  background: repeating-radial-gradient(#083D56, #083D56 0.2em, transparent 0.2em, transparent 100%);
+  background-size: 0.8em 0.8em;
+  -webkit-animation: pac-dots 5s linear infinite;
+          animation: pac-dots 5s linear infinite;
+}
+#toggle:checked ~ #sect .loader-pacman {
+  filter: drop-shadow(0.2em 0.2em 0.2em rgba(0, 0, 0, 0.3));
+}
+.loader-pacman:before, .loader-pacman:after {
+  content: "";
+  display: block;
+  position: absolute;
+  left: 0;
+  top: -0.615em;
+  width: 1em;
+  height: 1em;
+  border-radius: 50%;
+  border: 1em solid #0E5F76;
+}
+.loader-pacman:before {
+  border-color: transparent #0E5F76 #0E5F76 transparent;
+  -webkit-animation: pac-top 0.5s linear infinite alternate;
+          animation: pac-top 0.5s linear infinite alternate;
+}
+.loader-pacman:after {
+  border-color: #0E5F76 transparent transparent #0E5F76;
+  top: auto;
+  bottom: -0.615em;
+  -webkit-animation: pac-bot 0.5s linear infinite alternate;
+          animation: pac-bot 0.5s linear infinite alternate;
+}
+
+@-webkit-keyframes pac-dots {
+  to {
+    background-position: -200% 0;
+  }
+}
+
+@keyframes pac-dots {
+  to {
+    background-position: -200% 0;
+  }
+}
+@-webkit-keyframes pac-move {
+  to {
+    width: 1em;
+  }
+}
+@keyframes pac-move {
+  to {
+    width: 1em;
+  }
+}
+@-webkit-keyframes pac-top {
+  from {
+    transform: rotate(45deg);
+  }
+  to {
+    transform: rotate(105deg);
+  }
+}
+@keyframes pac-top {
+  from {
+    transform: rotate(45deg);
+  }
+  to {
+    transform: rotate(105deg);
+  }
+}
+@-webkit-keyframes pac-bot {
+  from {
+    transform: rotate(45deg);
+  }
+  to {
+    transform: rotate(-15deg);
+  }
+}
+@keyframes pac-bot {
+  from {
+    transform: rotate(45deg);
+  }
+  to {
+    transform: rotate(-15deg);
+  }
+}
+.loader-pulsing {
+  border-radius: 50%;
+  background-color: currentColor;
+  width: 1.5em;
+  height: 1.5em;
+  color: #083D56;
+}
+#toggle:checked ~ #sect .loader-pulsing {
+  -webkit-animation: pulseColor 3s ease infinite;
+          animation: pulseColor 3s ease infinite;
+}
+.loader-pulsing:before, .loader-pulsing:after {
+  content: "";
+  position: absolute;
+  top: 0;
+  color: #083D56;
+  background-color: currentColor;
+  width: 100%;
+  height: 100%;
+  display: block;
+  border-radius: 50%;
+  transition: all 1s;
+  -webkit-animation: pulse 3s ease-out infinite;
+          animation: pulse 3s ease-out infinite;
+}
+.loader-pulsing:after {
+  -webkit-animation-delay: 0.4s;
+          animation-delay: 0.4s;
+  -webkit-animation-timing-function: cubic-bezier(0.3, 1.65, 0.7, -0.65);
+          animation-timing-function: cubic-bezier(0.3, 1.65, 0.7, -0.65);
+}
+
+@-webkit-keyframes pulse {
+  0% {
+    transform: scale(0);
+    color: #083D56;
+  }
+  75%, 100% {
+    transform: scale(4);
+    color: transparent;
+  }
+}
+
+@keyframes pulse {
+  0% {
+    transform: scale(0);
+    color: #083D56;
+  }
+  75%, 100% {
+    transform: scale(4);
+    color: transparent;
+  }
+}
+@-webkit-keyframes pulseColor {
+  50%, 90% {
+    color: #083D56;
+  }
+  70% {
+    color: #0E5F76;
+  }
+}
+@keyframes pulseColor {
+  50%, 90% {
+    color: #083D56;
+  }
+  70% {
+    color: #0E5F76;
+  }
+}
+.loader-battery {
+  top: 25%;
+  width: 2em;
+  height: 5em;
+  border: 0.2em solid;
+  border-radius: 0.25em;
+  z-index: 1;
+  color: #083D56;
+  -webkit-animation: batteryColor 10s linear infinite;
+          animation: batteryColor 10s linear infinite;
+}
+#toggle:checked ~ #sect .loader-battery {
+  filter: drop-shadow(0.3em 0.3em 0.3em rgba(0, 0, 0, 0.3));
+}
+.loader-battery:before, .loader-battery:after {
+  content: "";
+  position: absolute;
+  display: inline-block;
+}
+.loader-battery:before {
+  mix-blend-mode: color-burn;
+  content: "+\a\a\a-";
+  white-space: pre;
+  padding-top: 0.3em;
+  line-height: 1.15;
+  font-weight: bold;
+  border: 0.1em solid;
+  border-width: 0.2em 0 0 0;
+  width: 1em;
+  left: 50%;
+  top: -0.45em;
+  z-index: 4;
+  border-radius: 0.1em 0.1em 0 0;
+  transform: translateX(-50%);
+}
+.loader-battery:after {
+  top: 0.2em;
+  left: 0.2em;
+  right: 0.2em;
+  bottom: 0.2em;
+  z-index: 1;
+  box-shadow: inset 0 0 0;
+  -webkit-animation: batteryFill 10s linear infinite;
+          animation: batteryFill 10s linear infinite;
+}
+
+@-webkit-keyframes batteryFill {
+  to {
+    box-shadow: inset 0 -4.5em 0;
+  }
+}
+
+@keyframes batteryFill {
+  to {
+    box-shadow: inset 0 -4.5em 0;
+  }
+}
+@-webkit-keyframes batteryColor {
+  96.5% {
+    color: #0E5F76;
+  }
+  97%, 99% {
+    color: #19A6CF;
+  }
+}
+@keyframes batteryColor {
+  96.5% {
+    color: #0E5F76;
+  }
+  97%, 99% {
+    color: #19A6CF;
+  }
+}
+.loader-vinyl {
+  width: 4em;
+  height: 4em;
+  top: 28%;
+  z-index: 1;
+  border-radius: 50%;
+  overflow: hidden;
+  border: 0.2em solid #083D56;
+  background-image: repeating-radial-gradient(transparent 0px, transparent 1px, rgba(8, 61, 86, 0.3) 2px, rgba(8, 61, 86, 0.3) 3px);
+  background-position: 0 0;
+}
+.loader-vinyl:before {
+  position: absolute;
+  content: "";
+  top: 0.8em;
+  left: -0.65em;
+  width: 0;
+  height: 0;
+  display: block;
+  border-width: 1em 2.5em;
+  border-style: solid;
+  border-color: transparent rgba(14, 95, 118, 0.6);
+  -webkit-animation: lightHouseTurn 3s linear infinite;
+          animation: lightHouseTurn 3s linear infinite;
+}
+.loader-vinyl:after {
+  content: "";
+  position: absolute;
+  z-index: 2;
+  top: 0;
+  left: 0;
+  right: 0;
+  bottom: 0;
+  margin: -0.2em;
+  border-radius: 50%;
+  background-image: radial-gradient(#081E3F 0%, #083D56 7%, #083D56 25%, transparent 25.1%);
+}
+
+@-webkit-keyframes lightHouseTurn {
+  to {
+    transform: rotate(359deg);
+  }
+}
+
+@keyframes lightHouseTurn {
+  to {
+    transform: rotate(359deg);
+  }
+}
+@-webkit-keyframes grooves {
+  from {
+    background-image: repeating-radial-gradient(transparent 0px, transparent 2px, #083D56 3px, #083D56 5px);
+  }
+  to {
+    background-image: repeating-radial-gradient(#083D56 0px, #083D56 1px, transparent 2px, transparent 4px, #083D56 5px, #083D56 6px);
+  }
+}
+@keyframes grooves {
+  from {
+    background-image: repeating-radial-gradient(transparent 0px, transparent 2px, #083D56 3px, #083D56 5px);
+  }
+  to {
+    background-image: repeating-radial-gradient(#083D56 0px, #083D56 1px, transparent 2px, transparent 4px, #083D56 5px, #083D56 6px);
+  }
+}
+td[data-3d] {
+  perspective: 600px;
+}
+#toggle:checked ~ #sect td[data-3d] {
+  filter: drop-shadow(0.2em 0.2em 0.2em rgba(0, 0, 0, 0.2));
+}
+
+.loader-triangle {
+  width: 4em;
+  height: 1.5em;
+  line-height: 1.5;
+  color: #19A6CF;
+  background-color: #083D56;
+  transform-style: preserve-3d;
+  transform-origin: center center -1.15em;
+  animation: triRot 3s linear infinite reverse, reflex 3s linear infinite reverse;
+}
+.loader-triangle:before, .loader-triangle:after, .loader-triangle {
+  background-size: 12em 2em;
+}
+#toggle:checked ~ #sect .loader-triangle:before, #toggle:checked ~ #sect .loader-triangle:after, #toggle:checked ~ #sect .loader-triangle {
+  text-shadow: 2px 2px 2px rgba(0, 0, 0, 0.5);
+  background-image: repeating-linear-gradient(to right, rgba(0, 0, 0, 0.15) 0em, rgba(0, 0, 0, 0.15) 3em, transparent 4.5em, transparent 7.5em, rgba(255, 255, 255, 0.05) 9em, rgba(255, 255, 255, 0.05) 13em);
+}
+.loader-triangle:before, .loader-triangle:after {
+  background-color: #083D56;
+  position: absolute;
+  width: 4em;
+  height: 1.5em;
+  top: 0;
+  animation: reflex 3s linear infinite reverse;
+}
+.loader-triangle:before {
+  content: "wait鈥�";
+  left: -100%;
+  transform-origin: right center;
+  transform: rotateY(-121deg);
+  -webkit-animation-delay: -1s;
+          animation-delay: -1s;
+}
+.loader-triangle:after {
+  content: "please";
+  right: -100%;
+  transform-origin: left center;
+  transform: rotateY(120deg);
+  -webkit-animation-delay: -2s;
+          animation-delay: -2s;
+}
+
+@-webkit-keyframes triRot {
+  0% {
+    transform: rotateY(0deg);
+  }
+  33.3% {
+    transform: rotateY(120deg);
+  }
+  66.6% {
+    transform: rotateY(240deg);
+  }
+  100% {
+    transform: rotateY(360deg);
+  }
+}
+
+@keyframes triRot {
+  0% {
+    transform: rotateY(0deg);
+  }
+  33.3% {
+    transform: rotateY(120deg);
+  }
+  66.6% {
+    transform: rotateY(240deg);
+  }
+  100% {
+    transform: rotateY(360deg);
+  }
+}
+@-webkit-keyframes reflex {
+  0% {
+    background-position-x: -4em;
+  }
+  100% {
+    background-position-x: -16em;
+  }
+}
+@keyframes reflex {
+  0% {
+    background-position-x: -4em;
+  }
+  100% {
+    background-position-x: -16em;
+  }
+}
+td[data-3d] {
+  perspective: 600px;
+}
+
+.loader-road {
+  font-size: 0.66em;
+  z-index: 1;
+  top: 45%;
+  width: 4em;
+  height: 28em;
+  border-style: solid;
+  border-width: 0 0.2em;
+  color: #0E5F76;
+  background-color: rgba(8, 61, 86, 0.2);
+  transform-style: preserve-3d;
+  transform: rotateX(87deg);
+  transform-origin: center top;
+}
+.loader-road:before, .loader-road:after {
+  content: "";
+  position: absolute;
+}
+.loader-road:before {
+  content: "--------";
+  white-space: pre;
+  line-height: 0.5;
+  width: 0.2em;
+  left: 1.8em;
+  z-index: 0;
+  top: 0;
+  bottom: 0;
+  text-indent: -1.75em;
+  font-weight: bold;
+  background-image: repeating-linear-gradient(to bottom, #0E5F76 0em, #0E5F76 2em, transparent 2.01em, transparent 4em);
+  background-size: 2em 4em;
+  background-position: 0 0;
+  -webkit-animation: middleTrack 1s linear infinite, middleTrackText 8s linear infinite;
+          animation: middleTrack 1s linear infinite, middleTrackText 8s linear infinite;
+}
+.loader-road:after {
+  font-size: 0.5em;
+  content: "loading";
+  line-height: 1.2;
+  border: 0.2em solid #0E5F76;
+  color: #19A6CF;
+  border-width: 0.2em 0.2em 0;
+  height: 3.75em;
+  z-index: 2;
+  top: 0;
+  left: -0.2em;
+  right: -0.2em;
+  border-radius: 1em 1em 0 0;
+  box-shadow: inset 0 1em 0 rgba(8, 30, 63, 0.5), inset 0 1.2em 0 #0E5F76;
+  transform-origin: center bottom;
+  transform: rotateX(-87deg) translateZ(-1px);
+  -webkit-animation: highwaySign 5s linear infinite;
+          animation: highwaySign 5s linear infinite;
+}
+
+@-webkit-keyframes middleTrackText {
+  0%, 50.1%, 100% {
+    padding-top: 0;
+  }
+  50% {
+    padding-top: 27em;
+  }
+}
+
+@keyframes middleTrackText {
+  0%, 50.1%, 100% {
+    padding-top: 0;
+  }
+  50% {
+    padding-top: 27em;
+  }
+}
+@-webkit-keyframes middleTrack {
+  to {
+    background-position: 0 8em;
+  }
+}
+@keyframes middleTrack {
+  to {
+    background-position: 0 8em;
+  }
+}
+@-webkit-keyframes highwaySign {
+  0% {
+    transform: rotateX(-87deg) translateZ(0) translateY(0em);
+    opacity: 0;
+    filter: blur(0.25em);
+  }
+  10% {
+    opacity: 1;
+    filter: blur(0.1em);
+  }
+  80% {
+    transform: rotateX(-87deg) translateZ(53em) translateY(2.7em);
+    opacity: 1;
+    filter: blur(0em);
+  }
+  81% {
+    opacity: 0;
+    transform: rotateX(-87deg) translateZ(53.1em) translateY(2.7em);
+  }
+  100% {
+    opacity: 0;
+    transform: rotateX(-87deg) translateZ(0em) translateY(0em);
+  }
+}
+@keyframes highwaySign {
+  0% {
+    transform: rotateX(-87deg) translateZ(0) translateY(0em);
+    opacity: 0;
+    filter: blur(0.25em);
+  }
+  10% {
+    opacity: 1;
+    filter: blur(0.1em);
+  }
+  80% {
+    transform: rotateX(-87deg) translateZ(53em) translateY(2.7em);
+    opacity: 1;
+    filter: blur(0em);
+  }
+  81% {
+    opacity: 0;
+    transform: rotateX(-87deg) translateZ(53.1em) translateY(2.7em);
+  }
+  100% {
+    opacity: 0;
+    transform: rotateX(-87deg) translateZ(0em) translateY(0em);
+  }
+}
+.loader-wheel {
+  width: 5em;
+  height: 5em;
+  border-radius: 50%;
+  border: 0.2em solid;
+  color: #083D56;
+  background-color: rgba(8, 61, 86, 0.2);
+  -webkit-animation: spinTheWheel 4s cubic-bezier(0.3, 0.1, 0.3, 0.85) infinite;
+          animation: spinTheWheel 4s cubic-bezier(0.3, 0.1, 0.3, 0.85) infinite;
+}
+#toggle:checked ~ #sect .loader-wheel {
+  -webkit-animation: rollTheWheel 4s cubic-bezier(0.3, 0.1, 0.3, 0.85) infinite alternate;
+          animation: rollTheWheel 4s cubic-bezier(0.3, 0.1, 0.3, 0.85) infinite alternate;
+  box-shadow: 0 0 0.5em 0.2em rgba(0, 0, 0, 0.25);
+}
+@-webkit-keyframes spinTheWheel {
+  from {
+    transform: rotate(0deg);
+  }
+  to {
+    transform: rotate(1436deg);
+  }
+}
+@keyframes spinTheWheel {
+  from {
+    transform: rotate(0deg);
+  }
+  to {
+    transform: rotate(1436deg);
+  }
+}
+@-webkit-keyframes rollTheWheel {
+  from {
+    transform: translateX(-100%) rotate(0deg);
+  }
+  to {
+    transform: translateX(100%) rotate(359deg);
+  }
+}
+@keyframes rollTheWheel {
+  from {
+    transform: translateX(-100%) rotate(0deg);
+  }
+  to {
+    transform: translateX(100%) rotate(359deg);
+  }
+}
+.loader-wheel:before, .loader-wheel:after {
+  content: "";
+  position: absolute;
+  border-radius: 50%;
+  border-width: 0.2em;
+}
+.loader-wheel:before {
+  width: 4em;
+  height: 4em;
+  left: 0.3em;
+  top: 0.3em;
+  border-style: dotted;
+}
+.loader-wheel:after {
+  width: 3em;
+  height: 3em;
+  border-style: solid;
+  left: 0.8em;
+  top: 0.8em;
+  background-color: #081E3F;
+  background-image: radial-gradient(#081E3F 0, #083D56 1px, #0E5F76 2px, #083D56 4px, transparent 5px);
+  background-repeat: no-repeat;
+}
+
+.loader-disc-bouncer {
+  width: 5em;
+  height: 5em;
+  border-radius: 50%;
+  background-color: #083D56;
+  z-index: 0;
+}
+.loader-disc-bouncer:before, .loader-disc-bouncer:after {
+  content: "";
+  position: absolute;
+  border-radius: 50%;
+}
+#toggle:checked ~ #sect .loader-disc-bouncer, #toggle:checked ~ #sect .loader-disc-bouncer:before, #toggle:checked ~ #sect .loader-disc-bouncer:after {
+  box-shadow: 0 0 0.75em rgba(0, 0, 0, 0.5);
+}
+.loader-disc-bouncer:before {
+  width: 3em;
+  height: 3em;
+  left: 1em;
+  top: 1em;
+  z-index: 1;
+  background-color: #0E5F76;
+  -webkit-animation: bounce-disks 1s infinite alternate cubic-bezier(0.3, 0.1, 0.3, 0.85);
+          animation: bounce-disks 1s infinite alternate cubic-bezier(0.3, 0.1, 0.3, 0.85);
+}
+.loader-disc-bouncer:after {
+  width: 1em;
+  height: 1em;
+  left: 2em;
+  top: 2em;
+  background-color: #19A6CF;
+  z-index: 2;
+  -webkit-animation: bounce-disks2 1s 0.5s infinite alternate cubic-bezier(0.3, 0.1, 0.3, 0.85);
+          animation: bounce-disks2 1s 0.5s infinite alternate cubic-bezier(0.3, 0.1, 0.3, 0.85);
+}
+
+@-webkit-keyframes bounce-disks {
+  to {
+    transform: scale(1.5);
+  }
+}
+
+@keyframes bounce-disks {
+  to {
+    transform: scale(1.5);
+  }
+}
+@-webkit-keyframes bounce-disks2 {
+  to {
+    transform: scale(2);
+  }
+}
+@keyframes bounce-disks2 {
+  to {
+    transform: scale(2);
+  }
+}
+.loader-butterfly {
+  font-size: 2em;
+  width: 2em;
+  height: 2em;
+  transform: rotateZ(-13deg);
+  -webkit-animation: insect-fly 0.3333333333s infinite alternate cubic-bezier(.45,-0.43,.63,1.94);
+          animation: insect-fly 0.3333333333s infinite alternate cubic-bezier(.45,-0.43,.63,1.94);
+}
+.loader-butterfly:before, .loader-butterfly:after {
+  content: "";
+  position: absolute;
+  width: 1em;
+  height: 1.5em;
+  border: 1px solid #0E5F76;
+  background-color: rgba(8, 61, 86, 0.5);
+  -webkit-animation: wings 0.3333333333s infinite cubic-bezier(0.6, 0, 0.4, 1) alternate;
+          animation: wings 0.3333333333s infinite cubic-bezier(0.6, 0, 0.4, 1) alternate;
+}
+.loader-butterfly:before {
+  left: 0;
+  border-radius: 40% 20% 50% 50%;
+  transform-origin: right center;
+}
+.loader-butterfly:after {
+  right: 0;
+  border-radius: 20% 40% 50% 50%;
+  transform-origin: left center;
+  animation-direction: alternate-reverse;
+}
+@-webkit-keyframes wings {
+  from {
+    transform: rotateX(60deg) rotateY(-60deg);
+  }
+  to {
+    transform: rotateX(60deg) rotateY(60deg);
+  }
+}
+@keyframes wings {
+  from {
+    transform: rotateX(60deg) rotateY(-60deg);
+  }
+  to {
+    transform: rotateX(60deg) rotateY(60deg);
+  }
+}
+@-webkit-keyframes insect-fly {
+  from {
+    margin-top: -0.3em;
+  }
+  to {
+    margin-top: 0.3em;
+  }
+}
+@keyframes insect-fly {
+  from {
+    margin-top: -0.3em;
+  }
+  to {
+    margin-top: 0.3em;
+  }
+}
+
+.loader-blow-up {
+  width: 3em;
+  height: 3em;
+  position: relative;
+  z-index: 2;
+}
+#toggle:checked ~ #sect .loader-blow-up {
+  filter: drop-shadow(0.1em 0.1em 0.1em rgba(0, 0, 0, 0.2));
+}
+.loader-blow-up:before {
+  content: "";
+  display: block;
+  position: absolute;
+  left: 0.75em;
+  top: 0.75em;
+  border-radius: 50%;
+  background-color: #083D56;
+  width: 1.5em;
+  height: 1.5em;
+  z-index: 1;
+  -webkit-animation: blow-grow 4s infinite cubic-bezier(.45,-0.43,.63,1.94);
+          animation: blow-grow 4s infinite cubic-bezier(.45,-0.43,.63,1.94);
+}
+.loader-blow-up:after {
+  content: "";
+  position: absolute;
+  top: 50%;
+  left: 50%;
+  width: 1rem;
+  height: 1rem;
+  z-index: 0;
+  border-radius: 50%;
+  transform: translate(-50%, -50%);
+  -webkit-animation: blow-fade-in 1s infinite cubic-bezier(.45,-0.43,.63,1.94), blow-shadow 1s infinite cubic-bezier(.45,-0.43,.63,1.94);
+          animation: blow-fade-in 1s infinite cubic-bezier(.45,-0.43,.63,1.94), blow-shadow 1s infinite cubic-bezier(.45,-0.43,.63,1.94);
+}
+@-webkit-keyframes blow-fade-in {
+  0% {
+    opacity: 0;
+  }
+  2%, 100% {
+    opacity: 1;
+  }
+}
+@keyframes blow-fade-in {
+  0% {
+    opacity: 0;
+  }
+  2%, 100% {
+    opacity: 1;
+  }
+}
+@-webkit-keyframes blow-shadow {
+  0% {
+    box-shadow: -4em 0 0 0.015em #083D56, 4em 0 0 0.015em #083D56;
+  }
+  75%, 100% {
+    box-shadow: 0 0 0 0.4em #083D56, 0 0 0 0.4em #083D56;
+  }
+}
+@keyframes blow-shadow {
+  0% {
+    box-shadow: -4em 0 0 0.015em #083D56, 4em 0 0 0.015em #083D56;
+  }
+  75%, 100% {
+    box-shadow: 0 0 0 0.4em #083D56, 0 0 0 0.4em #083D56;
+  }
+}
+@-webkit-keyframes blow-grow {
+  0% {
+    transform: scale(0);
+    background-color: #083D56;
+  }
+  25% {
+    transform: scale(0.5);
+    background-color: #083D56;
+  }
+  50% {
+    transform: scale(1);
+    background-color: #0E5F76;
+  }
+  75% {
+    transform: scale(1.5);
+    background-color: #0E5F76;
+  }
+  100% {
+    transform: scale(2);
+    background-color: #19A6CF;
+  }
+}
+@keyframes blow-grow {
+  0% {
+    transform: scale(0);
+    background-color: #083D56;
+  }
+  25% {
+    transform: scale(0.5);
+    background-color: #083D56;
+  }
+  50% {
+    transform: scale(1);
+    background-color: #0E5F76;
+  }
+  75% {
+    transform: scale(1.5);
+    background-color: #0E5F76;
+  }
+  100% {
+    transform: scale(2);
+    background-color: #19A6CF;
+  }
+}
+
+.loader-pendulums {
+  font-size: 2rem;
+  width: 2em;
+  height: 2em;
+  border-radius: 50%;
+  background-image: radial-gradient(circle at center center, #083D56 0%, #083D56 32.9%, transparent 33%, transparent 100%);
+  border: 0.1em solid rgba(8, 61, 86, 0.25);
+}
+.loader-pendulums:before, .loader-pendulums:after {
+  content: "";
+  width: 2em;
+  height: 2em;
+  left: -0.1em;
+  top: -0.1em;
+  padding: 0.1em;
+  display: block;
+  border-radius: 50%;
+  position: absolute;
+  transform-origin: center center;
+  border: 0.1em solid;
+  border-color: #19A6CF transparent transparent transparent;
+  -webkit-animation: pendulum infinite 2s cubic-bezier(0.3, 1.65, 0.7, -0.65);
+          animation: pendulum infinite 2s cubic-bezier(0.3, 1.65, 0.7, -0.65);
+}
+.loader-pendulums:before {
+  border-color: #0E5F76 transparent transparent transparent;
+  -webkit-animation-delay: -1s;
+          animation-delay: -1s;
+  -webkit-animation-name: pendulum2;
+          animation-name: pendulum2;
+}
+
+@-webkit-keyframes pendulum {
+  from {
+    transform: rotate(0deg);
+  }
+  to {
+    transform: rotate(359deg);
+  }
+}
+
+@keyframes pendulum {
+  from {
+    transform: rotate(0deg);
+  }
+  to {
+    transform: rotate(359deg);
+  }
+}
+@-webkit-keyframes pendulum2 {
+  from {
+    transform: rotate(180deg);
+  }
+  to {
+    transform: rotate(520deg);
+  }
+}
+@keyframes pendulum2 {
+  from {
+    transform: rotate(180deg);
+  }
+  to {
+    transform: rotate(520deg);
+  }
+}
+.loader-wheel-of-fortune {
+  font-size: 0.66em;
+  width: 5em;
+  height: 5em;
+  border-radius: 50%;
+  position: relative;
+  z-index: 0;
+  color: rgba(25, 166, 207, 0.75);
+  border: 0.1em solid #0E5F76;
+}
+#toggle:checked ~ #sect .loader-wheel-of-fortune {
+  filter: drop-shadow(0.1em 0.1em 0.1em rgba(0, 0, 0, 0.5));
+  text-shadow: 0.1em 0.1em 0.1em rgba(0, 0, 0, 0.75);
+}
+.loader-wheel-of-fortune:before, .loader-wheel-of-fortune:after {
+  content: "";
+  color: #19A6CF;
+  position: absolute;
+  top: 0;
+  left: 0;
+  width: 100%;
+  height: 100%;
+  border-radius: 50%;
+  border-width: 2.25em;
+  border-style: solid;
+  border-color: #0E5F76 #081E3F;
+  z-index: -1;
+  opacity: 0.5;
+  -webkit-animation: wheel-of-fortune 5s cubic-bezier(0.5, 0.8, 0.5, 0.2) infinite;
+          animation: wheel-of-fortune 5s cubic-bezier(0.5, 0.8, 0.5, 0.2) infinite;
+}
+#toggle:checked ~ #sect .loader-wheel-of-fortune:before, #toggle:checked ~ #sect .loader-wheel-of-fortune:after {
+  content: "掳";
+}
+#toggle:checked ~ #sect .loader-wheel-of-fortune:before, #toggle:checked ~ #sect .loader-wheel-of-fortune:after {
+  -webkit-animation: wheel-of-fortune 5s cubic-bezier(0.5, 0.8, 0.5, 0.2) infinite, wheel-of-fortune-blur 5s ease-in-out infinite;
+          animation: wheel-of-fortune 5s cubic-bezier(0.5, 0.8, 0.5, 0.2) infinite, wheel-of-fortune-blur 5s ease-in-out infinite;
+}
+.loader-wheel-of-fortune:after {
+  border-color: #083D56 #0E5F76;
+  transform: rotate(225deg);
+  -webkit-animation-name: wheel-of-fortune-2;
+          animation-name: wheel-of-fortune-2;
+}
+#toggle:checked ~ #sect .loader-wheel-of-fortune:after {
+  -webkit-animation-name: wheel-of-fortune-2, wheel-of-fortune-blur;
+          animation-name: wheel-of-fortune-2, wheel-of-fortune-blur;
+}
+
+@-webkit-keyframes wheel-of-fortune {
+  0% {
+    transform: rotate(0deg);
+  }
+  100% {
+    transform: rotate(1795deg);
+  }
+}
+
+@keyframes wheel-of-fortune {
+  0% {
+    transform: rotate(0deg);
+  }
+  100% {
+    transform: rotate(1795deg);
+  }
+}
+@-webkit-keyframes wheel-of-fortune-2 {
+  0% {
+    transform: rotate(225deg);
+  }
+  100% {
+    transform: rotate(2020deg);
+  }
+}
+@keyframes wheel-of-fortune-2 {
+  0% {
+    transform: rotate(225deg);
+  }
+  100% {
+    transform: rotate(2020deg);
+  }
+}
+@-webkit-keyframes wheel-of-fortune-blur {
+  0%, 100% {
+    filter: blur(3px);
+  }
+  50% {
+    filter: blur(0px);
+  }
+}
+@keyframes wheel-of-fortune-blur {
+  0%, 100% {
+    filter: blur(3px);
+  }
+  50% {
+    filter: blur(0px);
+  }
+}
+.loader-gears {
+  position: relative;
+  width: 3em;
+  height: 3em;
+  overflow: hidden;
+  border-radius: 0.25em;
+  box-shadow: 0 0 0 0.1em #083D56, inset 0 0 0 3em rgba(8, 61, 86, 0.5);
+}
+#toggle:checked ~ #sect .loader-gears {
+  filter: drop-shadow(0.5em 0.5em 0.25em rgba(0, 0, 0, 0.25));
+}
+.loader-gears:before, .loader-gears:after {
+  content: "";
+  z-index: 1;
+  display: block;
+  position: absolute;
+  width: 2.7em;
+  height: 2.7em;
+  border-radius: 50%;
+  border: 0.16em dashed #081E3F;
+  box-shadow: inset 0 0 0 0.9em #081E3F;
+  -webkit-animation: gear-rotate infinite linear 3s forwards;
+          animation: gear-rotate infinite linear 3s forwards;
+}
+.loader-gears:before {
+  left: -0.7em;
+  top: 1.1em;
+}
+#toggle:not(:checked) ~ #sect .loader-gears:before {
+  filter: drop-shadow(0 0 1.15em #19a6cf);
+}
+#toggle:checked ~ #sect .loader-gears:before {
+  -webkit-animation: gear-rotate infinite linear 3s forwards, gear-glow infinite linear 6s forwards;
+          animation: gear-rotate infinite linear 3s forwards, gear-glow infinite linear 6s forwards;
+}
+.loader-gears:after {
+  left: 1.15em;
+  top: -0.85em;
+  animation-direction: reverse;
+}
+
+@-webkit-keyframes gear-rotate {
+  to {
+    transform: rotate(359deg);
+  }
+}
+
+@keyframes gear-rotate {
+  to {
+    transform: rotate(359deg);
+  }
+}
+@-webkit-keyframes gear-glow {
+  0%, 100% {
+    filter: drop-shadow(0 0 0 rgba(25, 166, 207, 0));
+  }
+  60% {
+    filter: drop-shadow(0 0 1.75em #19a6cf);
+  }
+}
+@keyframes gear-glow {
+  0%, 100% {
+    filter: drop-shadow(0 0 0 rgba(25, 166, 207, 0));
+  }
+  60% {
+    filter: drop-shadow(0 0 1.75em #19a6cf);
+  }
+}
+.loader-wiggle {
+  border-radius: 50%;
+  width: 4em;
+  height: 4em;
+  opacity: 0.5;
+  background-color: #083D56;
+  position: relative;
+}
+.loader-wiggle:before, .loader-wiggle:after {
+  content: "";
+  position: absolute;
+  left: 0;
+  top: 0;
+  right: 0;
+  bottom: 0;
+  z-index: 0;
+  border-radius: 50%;
+  background-color: #f0f;
+  mix-blend-mode: screen;
+}
+.loader-wiggle:after {
+  background-color: #0ff;
+  -webkit-animation: wiggle-r 1s cubic-bezier(0.5, 0.8, 0.5, 0.2) infinite forwards;
+          animation: wiggle-r 1s cubic-bezier(0.5, 0.8, 0.5, 0.2) infinite forwards;
+}
+.loader-wiggle:before {
+  -webkit-animation: wiggle-l 1s cubic-bezier(0.5, 0.8, 0.5, 0.2) infinite forwards;
+          animation: wiggle-l 1s cubic-bezier(0.5, 0.8, 0.5, 0.2) infinite forwards;
+}
+
+@-webkit-keyframes wiggle-l {
+  0%, 15%, 25%, 100% {
+    transform: translate(0, 0);
+  }
+  17% {
+    transform: translate(-20%, 0);
+  }
+  22% {
+    transform: translate(30%, 0);
+  }
+  24% {
+    transform: translate(-10%, 0);
+  }
+}
+
+@keyframes wiggle-l {
+  0%, 15%, 25%, 100% {
+    transform: translate(0, 0);
+  }
+  17% {
+    transform: translate(-20%, 0);
+  }
+  22% {
+    transform: translate(30%, 0);
+  }
+  24% {
+    transform: translate(-10%, 0);
+  }
+}
+@-webkit-keyframes wiggle-r {
+  0%, 25%, 35%, 100% {
+    transform: translate(0, 0);
+  }
+  27% {
+    transform: translate(20%, 0);
+  }
+  32% {
+    transform: translate(-30%, 0);
+  }
+  34% {
+    transform: translate(10%, 0);
+  }
+}
+@keyframes wiggle-r {
+  0%, 25%, 35%, 100% {
+    transform: translate(0, 0);
+  }
+  27% {
+    transform: translate(20%, 0);
+  }
+  32% {
+    transform: translate(-30%, 0);
+  }
+  34% {
+    transform: translate(10%, 0);
+  }
+}
+.loader-drip {
+  color: #19A6CF;
+  position: relative;
+}
+#toggle:checked ~ #sect .loader-drip {
+  filter: url("#filter-goo2");
+}
+.loader-drip:before, .loader-drip:after {
+  content: "";
+  background-color: currentColor;
+  position: absolute;
+}
+.loader-drip:before {
+  width: 3px;
+  height: 1px;
+  z-index: 2;
+  top: calc(1em - 1px);
+  left: 90%;
+  border-radius: 0% 40% 40% 0%;
+  -webkit-animation: drip-line 5s 2s cubic-bezier(0.5, 0.8, 0.5, 0.2) infinite forwards;
+          animation: drip-line 5s 2s cubic-bezier(0.5, 0.8, 0.5, 0.2) infinite forwards;
+}
+#toggle:checked ~ #sect .loader-drip:before {
+  filter: url("#turbulence-4");
+}
+.loader-drip:after {
+  width: 1px;
+  height: 1px;
+  top: 1em;
+  left: 90%;
+  z-index: 0;
+  border-radius: 0 50% 50% 50%;
+  transform: rotate(45deg) translate(-33%, 0%);
+  -webkit-animation: drip 5s 2s cubic-bezier(0.5, 0.8, 0.5, 0.2) infinite forwards;
+          animation: drip 5s 2s cubic-bezier(0.5, 0.8, 0.5, 0.2) infinite forwards;
+}
+#toggle:checked ~ #sect .loader-drip:after {
+  filter: url("#turbulence-3");
+  box-shadow: inset -0.15em 0 0.15em rgba(0, 0, 0, 0.24);
+}
+
+@-webkit-keyframes drip-line {
+  to {
+    height: 1.2em;
+  }
+}
+
+@keyframes drip-line {
+  to {
+    height: 1.2em;
+  }
+}
+@-webkit-keyframes drip {
+  to {
+    top: 2em;
+    width: 7px;
+    height: 7px;
+  }
+}
+@keyframes drip {
+  to {
+    top: 2em;
+    width: 7px;
+    height: 7px;
+  }
+}
+.loader-3-dots {
+  --pos: 10%;
+  --post: 10.1%;
+  width: 4em;
+  height: 1em;
+  position: relative;
+}
+.loader-3-dots:before, .loader-3-dots:after {
+  content: "";
+  width: 100%;
+  height: 100%;
+  position: absolute;
+  left: 0;
+  top: 0;
+}
+.loader-3-dots, .loader-3-dots:before, .loader-3-dots:after {
+  background-image: radial-gradient(circle at center, #083D56 0%, #083D56 var(--pos), transparent var(--post));
+  background-size: 2em 2em;
+  background-repeat: no-repeat;
+  -webkit-animation: pulse-dot 0.3333333333s cubic-bezier(0.6, 0, 0.4, 1) infinite alternate;
+          animation: pulse-dot 0.3333333333s cubic-bezier(0.6, 0, 0.4, 1) infinite alternate;
+}
+.loader-3-dots {
+  background-position: 100% 50%;
+}
+.loader-3-dots:before {
+  background-position: 50% 50%;
+  -webkit-animation-delay: -0.1666666667s;
+          animation-delay: -0.1666666667s;
+}
+.loader-3-dots:after {
+  background-position: 0% 50%;
+  -webkit-animation-delay: -0.3333333333s;
+          animation-delay: -0.3333333333s;
+}
+@-webkit-keyframes pulse-dot {
+  0% {
+    --pos: 10%;
+  }
+  33% {
+    --pos: 15%;
+  }
+  50% {
+    --pos: 20%;
+  }
+  66% {
+    --pos: 25%;
+  }
+  100% {
+    --pos: 30%;
+  }
+}
+@keyframes pulse-dot {
+  0% {
+    --pos: 10%;
+  }
+  33% {
+    --pos: 15%;
+  }
+  50% {
+    --pos: 20%;
+  }
+  66% {
+    --pos: 25%;
+  }
+  100% {
+    --pos: 30%;
+  }
+}
+
+.loader-ball {
+  width: 4em;
+  height: 4em;
+  border: 0.25em solid #19A6CF;
+  border-radius: 50%;
+  overflow: hidden;
+  position: relative;
+  -webkit-mask: radial-gradient(ellipse at center, rgba(0, 0, 0, 0) 0%, rgba(0, 0, 0, 0) 20%, black 20.1%, black 75%, black 100%);
+          mask: radial-gradient(ellipse at center, rgba(0, 0, 0, 0) 0%, rgba(0, 0, 0, 0) 20%, black 20.1%, black 75%, black 100%);
+  -webkit-animation: bouncing-ball 1.5s linear infinite;
+          animation: bouncing-ball 1.5s linear infinite;
+}
+.loader-ball:before, .loader-ball:after {
+  content: "";
+  position: absolute;
+  width: 100%;
+  height: 50%;
+  left: 0;
+  right: 0;
+  -webkit-animation: ball-rotate 6s linear infinite;
+          animation: ball-rotate 6s linear infinite;
+}
+.loader-ball:before {
+  top: 0;
+  background-color: #0E5F76;
+  transform-origin: center bottom;
+}
+.loader-ball:after {
+  top: 50%;
+  background-color: #083D56;
+  transform-origin: center top;
+}
+
+@-webkit-keyframes ball-rotate {
+  from {
+    transform: rotate(0deg);
+  }
+  to {
+    transform: rotate(2879deg);
+  }
+}
+
+@keyframes ball-rotate {
+  from {
+    transform: rotate(0deg);
+  }
+  to {
+    transform: rotate(2879deg);
+  }
+}
+@-webkit-keyframes bouncing-ball {
+  0% {
+    transform: scale(1, 1) translateY(-80%);
+  }
+  25% {
+    transform: scale(1, 1.1) translateY(-45%);
+  }
+  50% {
+    transform: scale(1, 1.5) translateY(10%);
+  }
+  66% {
+    transform: scale(2, 0.75) translateY(25%);
+  }
+  75% {
+    transform: scale(1, 1.25) translateY(10%);
+  }
+  100% {
+    transform: scale(1, 1) translateY(-80%);
+  }
+}
+@keyframes bouncing-ball {
+  0% {
+    transform: scale(1, 1) translateY(-80%);
+  }
+  25% {
+    transform: scale(1, 1.1) translateY(-45%);
+  }
+  50% {
+    transform: scale(1, 1.5) translateY(10%);
+  }
+  66% {
+    transform: scale(2, 0.75) translateY(25%);
+  }
+  75% {
+    transform: scale(1, 1.25) translateY(10%);
+  }
+  100% {
+    transform: scale(1, 1) translateY(-80%);
+  }
+}
+.loader-inzoom {
+  width: 3em;
+  height: 3em;
+}
+.loader-inzoom:before, .loader-inzoom:after {
+  content: "";
+  display: block;
+  -webkit-clip-path: polygon(50% 0%, 100% 39%, 81% 100%, 19% 100%, 0% 39%);
+          clip-path: polygon(50% 0%, 100% 39%, 81% 100%, 19% 100%, 0% 39%);
+  width: 100%;
+  height: 100%;
+  position: absolute;
+  left: 50%;
+  top: 50%;
+  transform: translate(-50%, -50%);
+  -webkit-animation: inzoom 2s cubic-bezier(0.5, 0.8, 0.5, 0.2) forwards infinite;
+          animation: inzoom 2s cubic-bezier(0.5, 0.8, 0.5, 0.2) forwards infinite;
+  background-color: rgba(25, 166, 207, 0.5);
+}
+.loader-inzoom:after {
+  -webkit-animation-delay: -1s;
+          animation-delay: -1s;
+  background-color: rgba(8, 61, 86, 0.5);
+}
+
+@-webkit-keyframes inzoom {
+  50% {
+    width: 0;
+    height: 0;
+    transform: translate(-50%, -50%) rotate(360deg);
+  }
+}
+
+@keyframes inzoom {
+  50% {
+    width: 0;
+    height: 0;
+    transform: translate(-50%, -50%) rotate(360deg);
+  }
+}
+.loader-blob {
+  width: 4em;
+  height: 4em;
+  box-shadow: 0 0 0 0.2ex;
+  overflow: hidden;
+  color: #19A6CF;
+  border-radius: 60%;
+  mix-blend-mode: exclude;
+  --dist: -80%;
+  --br1x: calc(19% - var(--dist, 0%));
+  --br2x: calc(41% - var(--dist, 0%));
+  --br3x: calc(62% - var(--dist, 0%));
+  --br1y: 88%;
+  --br2y: 85%;
+  --br3y: 88%;
+  --moonlight: rgba(255, 255, 255, 0.5);
+}
+.loader-blob.loading {
+  -webkit-animation: blob-rotate 20s cubic-bezier(0.6, 0, 0.4, 1) infinite forwards, blob-radius 20s cubic-bezier(0.6, 0, 0.4, 1) infinite forwards alternate, blob-cloud-parts-x 12s linear infinite forwards, blob-cloud-parts-y 3s cubic-bezier(0.5, 0.8, 0.5, 0.2) infinite forwards;
+          animation: blob-rotate 20s cubic-bezier(0.6, 0, 0.4, 1) infinite forwards, blob-radius 20s cubic-bezier(0.6, 0, 0.4, 1) infinite forwards alternate, blob-cloud-parts-x 12s linear infinite forwards, blob-cloud-parts-y 3s cubic-bezier(0.5, 0.8, 0.5, 0.2) infinite forwards;
+}
+#toggle:checked ~ #sect .loader-blob.loading {
+  -webkit-animation: blob-opa 3s ease infinite forwards alternate, blob-rotate 20s cubic-bezier(0.6, 0, 0.4, 1) infinite forwards, blob-radius 20s cubic-bezier(0.6, 0, 0.4, 1) infinite forwards alternate, blob-cloud-parts-x 12s linear infinite forwards, blob-cloud-parts-y 3s cubic-bezier(0.5, 0.8, 0.5, 0.2) infinite forwards;
+          animation: blob-opa 3s ease infinite forwards alternate, blob-rotate 20s cubic-bezier(0.6, 0, 0.4, 1) infinite forwards, blob-radius 20s cubic-bezier(0.6, 0, 0.4, 1) infinite forwards alternate, blob-cloud-parts-x 12s linear infinite forwards, blob-cloud-parts-y 3s cubic-bezier(0.5, 0.8, 0.5, 0.2) infinite forwards;
+}
+.loader-blob:after {
+  content: "";
+  display: block;
+  width: 120%;
+  height: 120%;
+  position: absolute;
+  left: -10%;
+  top: -10%;
+  transform-origin: center center;
+  background-image: radial-gradient(circle at 50% 50%, #083D56, #083D56 60%, transparent 75%), radial-gradient(circle at 50% 50%, #ddd, #ddd 60%, transparent 75%), linear-gradient(to bottom, #083D56 2.7em, var(--moonlight) 2.8em, #0E5F76 4em);
+  background-size: 4ex 4ex, 3ex 3ex, 100% 100%;
+  background-repeat: no-repeat, no-repeat;
+  background-position: 3ex 1ex, 5ex 2ex, 0 0;
+}
+.loader-blob:before {
+  content: "";
+  display: block;
+  opacity: 0.85;
+  width: 110%;
+  height: 50%;
+  left: -5%;
+  top: 0;
+  z-index: 1;
+  position: absolute;
+  background-image: radial-gradient(ellipse at var(--br1x) var(--br1y), #fff 1ex, transparent 1ex), radial-gradient(ellipse at var(--br2x) var(--br2y), #fff 1.75ex, transparent 1.75ex), radial-gradient(ellipse at var(--br3x) var(--br3y), #fff 0.8ex, transparent 0.8ex);
+  filter: url("#filter-goo3");
+  transform-origin: center bottom;
+}
+.loader-blob.loading:after {
+  -webkit-animation: blob-rotate 20s cubic-bezier(0.6, 0, 0.4, 1) infinite reverse, blob-moon 50s linear infinite forwards, blob-moonlight 25s linear infinite forwards alternate;
+          animation: blob-rotate 20s cubic-bezier(0.6, 0, 0.4, 1) infinite reverse, blob-moon 50s linear infinite forwards, blob-moonlight 25s linear infinite forwards alternate;
+}
+.loader-blob.loading:before {
+  animation: blob-rotate 20s cubic-bezier(0.6, 0, 0.4, 1) infinite reverse;
+}
+
+@-webkit-keyframes blob-opa {
+  from {
+    opacity: 0.9;
+  }
+  to {
+    opacity: 0.25;
+  }
+}
+
+@keyframes blob-opa {
+  from {
+    opacity: 0.9;
+  }
+  to {
+    opacity: 0.25;
+  }
+}
+@-webkit-keyframes blob-moonlight {
+  0% {
+    --moonlight: #19a6cf;
+  }
+  1% {
+    --moonlight: #19a5ce;
+  }
+  2% {
+    --moonlight: #19a5cd;
+  }
+  3% {
+    --moonlight: #19a4cc;
+  }
+  4% {
+    --moonlight: #19a3cb;
+  }
+  5% {
+    --moonlight: #18a2cb;
+  }
+  6% {
+    --moonlight: #18a2ca;
+  }
+  7% {
+    --moonlight: #18a1c9;
+  }
+  8% {
+    --moonlight: #18a0c8;
+  }
+  9% {
+    --moonlight: #18a0c7;
+  }
+  10% {
+    --moonlight: #189fc6;
+  }
+  11% {
+    --moonlight: #189ec5;
+  }
+  12% {
+    --moonlight: #189dc4;
+  }
+  13% {
+    --moonlight: #189dc3;
+  }
+  14% {
+    --moonlight: #179cc3;
+  }
+  15% {
+    --moonlight: #179bc2;
+  }
+  16% {
+    --moonlight: #179bc1;
+  }
+  17% {
+    --moonlight: #179ac0;
+  }
+  18% {
+    --moonlight: #1799bf;
+  }
+  19% {
+    --moonlight: #1799be;
+  }
+  20% {
+    --moonlight: #1798bd;
+  }
+  21% {
+    --moonlight: #1797bc;
+  }
+  22% {
+    --moonlight: #1796bb;
+  }
+  23% {
+    --moonlight: #1696bb;
+  }
+  24% {
+    --moonlight: #1695ba;
+  }
+  25% {
+    --moonlight: #1694b9;
+  }
+  26% {
+    --moonlight: #1694b8;
+  }
+  27% {
+    --moonlight: #1693b7;
+  }
+  28% {
+    --moonlight: #1692b6;
+  }
+  29% {
+    --moonlight: #1691b5;
+  }
+  30% {
+    --moonlight: #1691b4;
+  }
+  31% {
+    --moonlight: #1690b3;
+  }
+  32% {
+    --moonlight: #158fb3;
+  }
+  33% {
+    --moonlight: #158fb2;
+  }
+  34% {
+    --moonlight: #158eb1;
+  }
+  35% {
+    --moonlight: #158db0;
+  }
+  36% {
+    --moonlight: #158caf;
+  }
+  37% {
+    --moonlight: #158cae;
+  }
+  38% {
+    --moonlight: #158bad;
+  }
+  39% {
+    --moonlight: #158aac;
+  }
+  40% {
+    --moonlight: #158aab;
+  }
+  41% {
+    --moonlight: #1489ab;
+  }
+  42% {
+    --moonlight: #1488aa;
+  }
+  43% {
+    --moonlight: #1487a9;
+  }
+  44% {
+    --moonlight: #1487a8;
+  }
+  45% {
+    --moonlight: #1486a7;
+  }
+  46% {
+    --moonlight: #1485a6;
+  }
+  47% {
+    --moonlight: #1485a5;
+  }
+  48% {
+    --moonlight: #1484a4;
+  }
+  49% {
+    --moonlight: #1483a3;
+  }
+  50% {
+    --moonlight: #1483a3;
+  }
+  51% {
+    --moonlight: #1382a2;
+  }
+  52% {
+    --moonlight: #1381a1;
+  }
+  53% {
+    --moonlight: #1380a0;
+  }
+  54% {
+    --moonlight: #13809f;
+  }
+  55% {
+    --moonlight: #137f9e;
+  }
+  56% {
+    --moonlight: #137e9d;
+  }
+  57% {
+    --moonlight: #137e9c;
+  }
+  58% {
+    --moonlight: #137d9b;
+  }
+  59% {
+    --moonlight: #137c9a;
+  }
+  60% {
+    --moonlight: #127b9a;
+  }
+  61% {
+    --moonlight: #127b99;
+  }
+  62% {
+    --moonlight: #127a98;
+  }
+  63% {
+    --moonlight: #127997;
+  }
+  64% {
+    --moonlight: #127996;
+  }
+  65% {
+    --moonlight: #127895;
+  }
+  66% {
+    --moonlight: #127794;
+  }
+  67% {
+    --moonlight: #127693;
+  }
+  68% {
+    --moonlight: #127692;
+  }
+  69% {
+    --moonlight: #117592;
+  }
+  70% {
+    --moonlight: #117491;
+  }
+  71% {
+    --moonlight: #117490;
+  }
+  72% {
+    --moonlight: #11738f;
+  }
+  73% {
+    --moonlight: #11728e;
+  }
+  74% {
+    --moonlight: #11718d;
+  }
+  75% {
+    --moonlight: #11718c;
+  }
+  76% {
+    --moonlight: #11708b;
+  }
+  77% {
+    --moonlight: #116f8a;
+  }
+  78% {
+    --moonlight: #106f8a;
+  }
+  79% {
+    --moonlight: #106e89;
+  }
+  80% {
+    --moonlight: #106d88;
+  }
+  81% {
+    --moonlight: #106c87;
+  }
+  82% {
+    --moonlight: #106c86;
+  }
+  83% {
+    --moonlight: #106b85;
+  }
+  84% {
+    --moonlight: #106a84;
+  }
+  85% {
+    --moonlight: #106a83;
+  }
+  86% {
+    --moonlight: #106982;
+  }
+  87% {
+    --moonlight: #0f6882;
+  }
+  88% {
+    --moonlight: #0f6881;
+  }
+  89% {
+    --moonlight: #0f6780;
+  }
+  90% {
+    --moonlight: #0f667f;
+  }
+  91% {
+    --moonlight: #0f657e;
+  }
+  92% {
+    --moonlight: #0f657d;
+  }
+  93% {
+    --moonlight: #0f647c;
+  }
+  94% {
+    --moonlight: #0f637b;
+  }
+  95% {
+    --moonlight: #0f637a;
+  }
+  96% {
+    --moonlight: #0e627a;
+  }
+  97% {
+    --moonlight: #0e6179;
+  }
+  98% {
+    --moonlight: #0e6078;
+  }
+  99% {
+    --moonlight: #0e6077;
+  }
+  100% {
+    --moonlight: #0e5f76;
+  }
+}
+@keyframes blob-moonlight {
+  0% {
+    --moonlight: #19a6cf;
+  }
+  1% {
+    --moonlight: #19a5ce;
+  }
+  2% {
+    --moonlight: #19a5cd;
+  }
+  3% {
+    --moonlight: #19a4cc;
+  }
+  4% {
+    --moonlight: #19a3cb;
+  }
+  5% {
+    --moonlight: #18a2cb;
+  }
+  6% {
+    --moonlight: #18a2ca;
+  }
+  7% {
+    --moonlight: #18a1c9;
+  }
+  8% {
+    --moonlight: #18a0c8;
+  }
+  9% {
+    --moonlight: #18a0c7;
+  }
+  10% {
+    --moonlight: #189fc6;
+  }
+  11% {
+    --moonlight: #189ec5;
+  }
+  12% {
+    --moonlight: #189dc4;
+  }
+  13% {
+    --moonlight: #189dc3;
+  }
+  14% {
+    --moonlight: #179cc3;
+  }
+  15% {
+    --moonlight: #179bc2;
+  }
+  16% {
+    --moonlight: #179bc1;
+  }
+  17% {
+    --moonlight: #179ac0;
+  }
+  18% {
+    --moonlight: #1799bf;
+  }
+  19% {
+    --moonlight: #1799be;
+  }
+  20% {
+    --moonlight: #1798bd;
+  }
+  21% {
+    --moonlight: #1797bc;
+  }
+  22% {
+    --moonlight: #1796bb;
+  }
+  23% {
+    --moonlight: #1696bb;
+  }
+  24% {
+    --moonlight: #1695ba;
+  }
+  25% {
+    --moonlight: #1694b9;
+  }
+  26% {
+    --moonlight: #1694b8;
+  }
+  27% {
+    --moonlight: #1693b7;
+  }
+  28% {
+    --moonlight: #1692b6;
+  }
+  29% {
+    --moonlight: #1691b5;
+  }
+  30% {
+    --moonlight: #1691b4;
+  }
+  31% {
+    --moonlight: #1690b3;
+  }
+  32% {
+    --moonlight: #158fb3;
+  }
+  33% {
+    --moonlight: #158fb2;
+  }
+  34% {
+    --moonlight: #158eb1;
+  }
+  35% {
+    --moonlight: #158db0;
+  }
+  36% {
+    --moonlight: #158caf;
+  }
+  37% {
+    --moonlight: #158cae;
+  }
+  38% {
+    --moonlight: #158bad;
+  }
+  39% {
+    --moonlight: #158aac;
+  }
+  40% {
+    --moonlight: #158aab;
+  }
+  41% {
+    --moonlight: #1489ab;
+  }
+  42% {
+    --moonlight: #1488aa;
+  }
+  43% {
+    --moonlight: #1487a9;
+  }
+  44% {
+    --moonlight: #1487a8;
+  }
+  45% {
+    --moonlight: #1486a7;
+  }
+  46% {
+    --moonlight: #1485a6;
+  }
+  47% {
+    --moonlight: #1485a5;
+  }
+  48% {
+    --moonlight: #1484a4;
+  }
+  49% {
+    --moonlight: #1483a3;
+  }
+  50% {
+    --moonlight: #1483a3;
+  }
+  51% {
+    --moonlight: #1382a2;
+  }
+  52% {
+    --moonlight: #1381a1;
+  }
+  53% {
+    --moonlight: #1380a0;
+  }
+  54% {
+    --moonlight: #13809f;
+  }
+  55% {
+    --moonlight: #137f9e;
+  }
+  56% {
+    --moonlight: #137e9d;
+  }
+  57% {
+    --moonlight: #137e9c;
+  }
+  58% {
+    --moonlight: #137d9b;
+  }
+  59% {
+    --moonlight: #137c9a;
+  }
+  60% {
+    --moonlight: #127b9a;
+  }
+  61% {
+    --moonlight: #127b99;
+  }
+  62% {
+    --moonlight: #127a98;
+  }
+  63% {
+    --moonlight: #127997;
+  }
+  64% {
+    --moonlight: #127996;
+  }
+  65% {
+    --moonlight: #127895;
+  }
+  66% {
+    --moonlight: #127794;
+  }
+  67% {
+    --moonlight: #127693;
+  }
+  68% {
+    --moonlight: #127692;
+  }
+  69% {
+    --moonlight: #117592;
+  }
+  70% {
+    --moonlight: #117491;
+  }
+  71% {
+    --moonlight: #117490;
+  }
+  72% {
+    --moonlight: #11738f;
+  }
+  73% {
+    --moonlight: #11728e;
+  }
+  74% {
+    --moonlight: #11718d;
+  }
+  75% {
+    --moonlight: #11718c;
+  }
+  76% {
+    --moonlight: #11708b;
+  }
+  77% {
+    --moonlight: #116f8a;
+  }
+  78% {
+    --moonlight: #106f8a;
+  }
+  79% {
+    --moonlight: #106e89;
+  }
+  80% {
+    --moonlight: #106d88;
+  }
+  81% {
+    --moonlight: #106c87;
+  }
+  82% {
+    --moonlight: #106c86;
+  }
+  83% {
+    --moonlight: #106b85;
+  }
+  84% {
+    --moonlight: #106a84;
+  }
+  85% {
+    --moonlight: #106a83;
+  }
+  86% {
+    --moonlight: #106982;
+  }
+  87% {
+    --moonlight: #0f6882;
+  }
+  88% {
+    --moonlight: #0f6881;
+  }
+  89% {
+    --moonlight: #0f6780;
+  }
+  90% {
+    --moonlight: #0f667f;
+  }
+  91% {
+    --moonlight: #0f657e;
+  }
+  92% {
+    --moonlight: #0f657d;
+  }
+  93% {
+    --moonlight: #0f647c;
+  }
+  94% {
+    --moonlight: #0f637b;
+  }
+  95% {
+    --moonlight: #0f637a;
+  }
+  96% {
+    --moonlight: #0e627a;
+  }
+  97% {
+    --moonlight: #0e6179;
+  }
+  98% {
+    --moonlight: #0e6078;
+  }
+  99% {
+    --moonlight: #0e6077;
+  }
+  100% {
+    --moonlight: #0e5f76;
+  }
+}
+@-webkit-keyframes blob-moon {
+  from {
+    background-position: 1ex 1ex, 5ex 2ex, 0 0;
+  }
+  to {
+    background-position: 8ex 2.5ex, 5ex 2ex, 0 0;
+  }
+}
+@keyframes blob-moon {
+  from {
+    background-position: 1ex 1ex, 5ex 2ex, 0 0;
+  }
+  to {
+    background-position: 8ex 2.5ex, 5ex 2ex, 0 0;
+  }
+}
+@-webkit-keyframes blob-radius {
+  10% {
+    border-radius: 46% 54% 72% 28%/59% 35% 65% 41%;
+  }
+  20% {
+    border-radius: 64% 36% 66% 34%/45% 26% 74% 55%;
+  }
+  30% {
+    border-radius: 31% 69% 30% 70%/58% 64% 36% 42%;
+  }
+  40% {
+    border-radius: 47% 53% 62% 38%/33% 27% 73% 67%;
+  }
+  50% {
+    border-radius: 42% 58% 29% 71%/64% 37% 63% 36%;
+  }
+  60% {
+    border-radius: 45% 55% 46% 54%/66% 38% 62% 34%;
+  }
+  70% {
+    border-radius: 49% 51% 47% 53%/51% 61% 39% 49%;
+  }
+  80% {
+    border-radius: 36% 64% 56% 44%/42% 26% 74% 58%;
+  }
+  90% {
+    border-radius: 55% 45% 33% 67%/53% 25% 74% 47%;
+  }
+  100% {
+    border-radius: 48% 52% 74% 25%/62% 48% 52% 38%;
+  }
+}
+@keyframes blob-radius {
+  10% {
+    border-radius: 46% 54% 72% 28%/59% 35% 65% 41%;
+  }
+  20% {
+    border-radius: 64% 36% 66% 34%/45% 26% 74% 55%;
+  }
+  30% {
+    border-radius: 31% 69% 30% 70%/58% 64% 36% 42%;
+  }
+  40% {
+    border-radius: 47% 53% 62% 38%/33% 27% 73% 67%;
+  }
+  50% {
+    border-radius: 42% 58% 29% 71%/64% 37% 63% 36%;
+  }
+  60% {
+    border-radius: 45% 55% 46% 54%/66% 38% 62% 34%;
+  }
+  70% {
+    border-radius: 49% 51% 47% 53%/51% 61% 39% 49%;
+  }
+  80% {
+    border-radius: 36% 64% 56% 44%/42% 26% 74% 58%;
+  }
+  90% {
+    border-radius: 55% 45% 33% 67%/53% 25% 74% 47%;
+  }
+  100% {
+    border-radius: 48% 52% 74% 25%/62% 48% 52% 38%;
+  }
+}
+@-webkit-keyframes blob-rotate {
+  0% {
+    transform: rotate(0deg);
+  }
+  1% {
+    transform: rotate(36deg);
+  }
+  2% {
+    transform: rotate(72deg);
+  }
+  3% {
+    transform: rotate(108deg);
+  }
+  4% {
+    transform: rotate(144deg);
+  }
+  5% {
+    transform: rotate(180deg);
+  }
+  6% {
+    transform: rotate(216deg);
+  }
+  7% {
+    transform: rotate(252deg);
+  }
+  8% {
+    transform: rotate(288deg);
+  }
+  9% {
+    transform: rotate(324deg);
+  }
+  10% {
+    transform: rotate(360deg);
+  }
+  11% {
+    transform: rotate(396deg);
+  }
+  12% {
+    transform: rotate(432deg);
+  }
+  13% {
+    transform: rotate(468deg);
+  }
+  14% {
+    transform: rotate(504deg);
+  }
+  15% {
+    transform: rotate(540deg);
+  }
+  16% {
+    transform: rotate(576deg);
+  }
+  17% {
+    transform: rotate(612deg);
+  }
+  18% {
+    transform: rotate(648deg);
+  }
+  19% {
+    transform: rotate(684deg);
+  }
+  20% {
+    transform: rotate(720deg);
+  }
+  21% {
+    transform: rotate(756deg);
+  }
+  22% {
+    transform: rotate(792deg);
+  }
+  23% {
+    transform: rotate(828deg);
+  }
+  24% {
+    transform: rotate(864deg);
+  }
+  25% {
+    transform: rotate(900deg);
+  }
+  26% {
+    transform: rotate(936deg);
+  }
+  27% {
+    transform: rotate(972deg);
+  }
+  28% {
+    transform: rotate(1008deg);
+  }
+  29% {
+    transform: rotate(1044deg);
+  }
+  30% {
+    transform: rotate(1080deg);
+  }
+  31% {
+    transform: rotate(1116deg);
+  }
+  32% {
+    transform: rotate(1152deg);
+  }
+  33% {
+    transform: rotate(1188deg);
+  }
+  34% {
+    transform: rotate(1224deg);
+  }
+  35% {
+    transform: rotate(1260deg);
+  }
+  36% {
+    transform: rotate(1296deg);
+  }
+  37% {
+    transform: rotate(1332deg);
+  }
+  38% {
+    transform: rotate(1368deg);
+  }
+  39% {
+    transform: rotate(1404deg);
+  }
+  40% {
+    transform: rotate(1440deg);
+  }
+  41% {
+    transform: rotate(1476deg);
+  }
+  42% {
+    transform: rotate(1512deg);
+  }
+  43% {
+    transform: rotate(1548deg);
+  }
+  44% {
+    transform: rotate(1584deg);
+  }
+  45% {
+    transform: rotate(1620deg);
+  }
+  46% {
+    transform: rotate(1656deg);
+  }
+  47% {
+    transform: rotate(1692deg);
+  }
+  48% {
+    transform: rotate(1728deg);
+  }
+  49% {
+    transform: rotate(1764deg);
+  }
+  50% {
+    transform: rotate(1800deg);
+  }
+  51% {
+    transform: rotate(1836deg);
+  }
+  52% {
+    transform: rotate(1872deg);
+  }
+  53% {
+    transform: rotate(1908deg);
+  }
+  54% {
+    transform: rotate(1944deg);
+  }
+  55% {
+    transform: rotate(1980deg);
+  }
+  56% {
+    transform: rotate(2016deg);
+  }
+  57% {
+    transform: rotate(2052deg);
+  }
+  58% {
+    transform: rotate(2088deg);
+  }
+  59% {
+    transform: rotate(2124deg);
+  }
+  60% {
+    transform: rotate(2160deg);
+  }
+  61% {
+    transform: rotate(2196deg);
+  }
+  62% {
+    transform: rotate(2232deg);
+  }
+  63% {
+    transform: rotate(2268deg);
+  }
+  64% {
+    transform: rotate(2304deg);
+  }
+  65% {
+    transform: rotate(2340deg);
+  }
+  66% {
+    transform: rotate(2376deg);
+  }
+  67% {
+    transform: rotate(2412deg);
+  }
+  68% {
+    transform: rotate(2448deg);
+  }
+  69% {
+    transform: rotate(2484deg);
+  }
+  70% {
+    transform: rotate(2520deg);
+  }
+  71% {
+    transform: rotate(2556deg);
+  }
+  72% {
+    transform: rotate(2592deg);
+  }
+  73% {
+    transform: rotate(2628deg);
+  }
+  74% {
+    transform: rotate(2664deg);
+  }
+  75% {
+    transform: rotate(2700deg);
+  }
+  76% {
+    transform: rotate(2736deg);
+  }
+  77% {
+    transform: rotate(2772deg);
+  }
+  78% {
+    transform: rotate(2808deg);
+  }
+  79% {
+    transform: rotate(2844deg);
+  }
+  80% {
+    transform: rotate(2880deg);
+  }
+  81% {
+    transform: rotate(2916deg);
+  }
+  82% {
+    transform: rotate(2952deg);
+  }
+  83% {
+    transform: rotate(2988deg);
+  }
+  84% {
+    transform: rotate(3024deg);
+  }
+  85% {
+    transform: rotate(3060deg);
+  }
+  86% {
+    transform: rotate(3096deg);
+  }
+  87% {
+    transform: rotate(3132deg);
+  }
+  88% {
+    transform: rotate(3168deg);
+  }
+  89% {
+    transform: rotate(3204deg);
+  }
+  90% {
+    transform: rotate(3240deg);
+  }
+  91% {
+    transform: rotate(3276deg);
+  }
+  92% {
+    transform: rotate(3312deg);
+  }
+  93% {
+    transform: rotate(3348deg);
+  }
+  94% {
+    transform: rotate(3384deg);
+  }
+  95% {
+    transform: rotate(3420deg);
+  }
+  96% {
+    transform: rotate(3456deg);
+  }
+  97% {
+    transform: rotate(3492deg);
+  }
+  98% {
+    transform: rotate(3528deg);
+  }
+  99% {
+    transform: rotate(3564deg);
+  }
+  100% {
+    transform: rotate(3600deg);
+  }
+}
+@keyframes blob-rotate {
+  0% {
+    transform: rotate(0deg);
+  }
+  1% {
+    transform: rotate(36deg);
+  }
+  2% {
+    transform: rotate(72deg);
+  }
+  3% {
+    transform: rotate(108deg);
+  }
+  4% {
+    transform: rotate(144deg);
+  }
+  5% {
+    transform: rotate(180deg);
+  }
+  6% {
+    transform: rotate(216deg);
+  }
+  7% {
+    transform: rotate(252deg);
+  }
+  8% {
+    transform: rotate(288deg);
+  }
+  9% {
+    transform: rotate(324deg);
+  }
+  10% {
+    transform: rotate(360deg);
+  }
+  11% {
+    transform: rotate(396deg);
+  }
+  12% {
+    transform: rotate(432deg);
+  }
+  13% {
+    transform: rotate(468deg);
+  }
+  14% {
+    transform: rotate(504deg);
+  }
+  15% {
+    transform: rotate(540deg);
+  }
+  16% {
+    transform: rotate(576deg);
+  }
+  17% {
+    transform: rotate(612deg);
+  }
+  18% {
+    transform: rotate(648deg);
+  }
+  19% {
+    transform: rotate(684deg);
+  }
+  20% {
+    transform: rotate(720deg);
+  }
+  21% {
+    transform: rotate(756deg);
+  }
+  22% {
+    transform: rotate(792deg);
+  }
+  23% {
+    transform: rotate(828deg);
+  }
+  24% {
+    transform: rotate(864deg);
+  }
+  25% {
+    transform: rotate(900deg);
+  }
+  26% {
+    transform: rotate(936deg);
+  }
+  27% {
+    transform: rotate(972deg);
+  }
+  28% {
+    transform: rotate(1008deg);
+  }
+  29% {
+    transform: rotate(1044deg);
+  }
+  30% {
+    transform: rotate(1080deg);
+  }
+  31% {
+    transform: rotate(1116deg);
+  }
+  32% {
+    transform: rotate(1152deg);
+  }
+  33% {
+    transform: rotate(1188deg);
+  }
+  34% {
+    transform: rotate(1224deg);
+  }
+  35% {
+    transform: rotate(1260deg);
+  }
+  36% {
+    transform: rotate(1296deg);
+  }
+  37% {
+    transform: rotate(1332deg);
+  }
+  38% {
+    transform: rotate(1368deg);
+  }
+  39% {
+    transform: rotate(1404deg);
+  }
+  40% {
+    transform: rotate(1440deg);
+  }
+  41% {
+    transform: rotate(1476deg);
+  }
+  42% {
+    transform: rotate(1512deg);
+  }
+  43% {
+    transform: rotate(1548deg);
+  }
+  44% {
+    transform: rotate(1584deg);
+  }
+  45% {
+    transform: rotate(1620deg);
+  }
+  46% {
+    transform: rotate(1656deg);
+  }
+  47% {
+    transform: rotate(1692deg);
+  }
+  48% {
+    transform: rotate(1728deg);
+  }
+  49% {
+    transform: rotate(1764deg);
+  }
+  50% {
+    transform: rotate(1800deg);
+  }
+  51% {
+    transform: rotate(1836deg);
+  }
+  52% {
+    transform: rotate(1872deg);
+  }
+  53% {
+    transform: rotate(1908deg);
+  }
+  54% {
+    transform: rotate(1944deg);
+  }
+  55% {
+    transform: rotate(1980deg);
+  }
+  56% {
+    transform: rotate(2016deg);
+  }
+  57% {
+    transform: rotate(2052deg);
+  }
+  58% {
+    transform: rotate(2088deg);
+  }
+  59% {
+    transform: rotate(2124deg);
+  }
+  60% {
+    transform: rotate(2160deg);
+  }
+  61% {
+    transform: rotate(2196deg);
+  }
+  62% {
+    transform: rotate(2232deg);
+  }
+  63% {
+    transform: rotate(2268deg);
+  }
+  64% {
+    transform: rotate(2304deg);
+  }
+  65% {
+    transform: rotate(2340deg);
+  }
+  66% {
+    transform: rotate(2376deg);
+  }
+  67% {
+    transform: rotate(2412deg);
+  }
+  68% {
+    transform: rotate(2448deg);
+  }
+  69% {
+    transform: rotate(2484deg);
+  }
+  70% {
+    transform: rotate(2520deg);
+  }
+  71% {
+    transform: rotate(2556deg);
+  }
+  72% {
+    transform: rotate(2592deg);
+  }
+  73% {
+    transform: rotate(2628deg);
+  }
+  74% {
+    transform: rotate(2664deg);
+  }
+  75% {
+    transform: rotate(2700deg);
+  }
+  76% {
+    transform: rotate(2736deg);
+  }
+  77% {
+    transform: rotate(2772deg);
+  }
+  78% {
+    transform: rotate(2808deg);
+  }
+  79% {
+    transform: rotate(2844deg);
+  }
+  80% {
+    transform: rotate(2880deg);
+  }
+  81% {
+    transform: rotate(2916deg);
+  }
+  82% {
+    transform: rotate(2952deg);
+  }
+  83% {
+    transform: rotate(2988deg);
+  }
+  84% {
+    transform: rotate(3024deg);
+  }
+  85% {
+    transform: rotate(3060deg);
+  }
+  86% {
+    transform: rotate(3096deg);
+  }
+  87% {
+    transform: rotate(3132deg);
+  }
+  88% {
+    transform: rotate(3168deg);
+  }
+  89% {
+    transform: rotate(3204deg);
+  }
+  90% {
+    transform: rotate(3240deg);
+  }
+  91% {
+    transform: rotate(3276deg);
+  }
+  92% {
+    transform: rotate(3312deg);
+  }
+  93% {
+    transform: rotate(3348deg);
+  }
+  94% {
+    transform: rotate(3384deg);
+  }
+  95% {
+    transform: rotate(3420deg);
+  }
+  96% {
+    transform: rotate(3456deg);
+  }
+  97% {
+    transform: rotate(3492deg);
+  }
+  98% {
+    transform: rotate(3528deg);
+  }
+  99% {
+    transform: rotate(3564deg);
+  }
+  100% {
+    transform: rotate(3600deg);
+  }
+}
+@-webkit-keyframes blob-cloud-parts-y {
+  25% {
+    --br1y: 87%;
+    --br2y: 85%;
+    --br3y: 86%;
+  }
+  50% {
+    --br1y: 88%;
+    --br2y: 83%;
+    --br3y: 85%;
+  }
+  75% {
+    --br1y: 87%;
+    --br2y: 85%;
+    --br3y: 84%;
+  }
+}
+@keyframes blob-cloud-parts-y {
+  25% {
+    --br1y: 87%;
+    --br2y: 85%;
+    --br3y: 86%;
+  }
+  50% {
+    --br1y: 88%;
+    --br2y: 83%;
+    --br3y: 85%;
+  }
+  75% {
+    --br1y: 87%;
+    --br2y: 85%;
+    --br3y: 84%;
+  }
+}
+@-webkit-keyframes blob-cloud-parts-x {
+  0% {
+    --dist: -100%;
+  }
+  1% {
+    --dist: -98%;
+  }
+  2% {
+    --dist: -96%;
+  }
+  3% {
+    --dist: -94%;
+  }
+  4% {
+    --dist: -92%;
+  }
+  5% {
+    --dist: -90%;
+  }
+  6% {
+    --dist: -88%;
+  }
+  7% {
+    --dist: -86%;
+  }
+  8% {
+    --dist: -84%;
+  }
+  9% {
+    --dist: -82%;
+  }
+  10% {
+    --dist: -80%;
+  }
+  11% {
+    --dist: -78%;
+  }
+  12% {
+    --dist: -76%;
+  }
+  13% {
+    --dist: -74%;
+  }
+  14% {
+    --dist: -72%;
+  }
+  15% {
+    --dist: -70%;
+  }
+  16% {
+    --dist: -68%;
+  }
+  17% {
+    --dist: -66%;
+  }
+  18% {
+    --dist: -64%;
+  }
+  19% {
+    --dist: -62%;
+  }
+  20% {
+    --dist: -60%;
+  }
+  21% {
+    --dist: -58%;
+  }
+  22% {
+    --dist: -56%;
+  }
+  23% {
+    --dist: -54%;
+  }
+  24% {
+    --dist: -52%;
+  }
+  25% {
+    --dist: -50%;
+  }
+  26% {
+    --dist: -48%;
+  }
+  27% {
+    --dist: -46%;
+  }
+  28% {
+    --dist: -44%;
+  }
+  29% {
+    --dist: -42%;
+  }
+  30% {
+    --dist: -40%;
+  }
+  31% {
+    --dist: -38%;
+  }
+  32% {
+    --dist: -36%;
+  }
+  33% {
+    --dist: -34%;
+  }
+  34% {
+    --dist: -32%;
+  }
+  35% {
+    --dist: -30%;
+  }
+  36% {
+    --dist: -28%;
+  }
+  37% {
+    --dist: -26%;
+  }
+  38% {
+    --dist: -24%;
+  }
+  39% {
+    --dist: -22%;
+  }
+  40% {
+    --dist: -20%;
+  }
+  41% {
+    --dist: -18%;
+  }
+  42% {
+    --dist: -16%;
+  }
+  43% {
+    --dist: -14%;
+  }
+  44% {
+    --dist: -12%;
+  }
+  45% {
+    --dist: -10%;
+  }
+  46% {
+    --dist: -8%;
+  }
+  47% {
+    --dist: -6%;
+  }
+  48% {
+    --dist: -4%;
+  }
+  49% {
+    --dist: -2%;
+  }
+  50% {
+    --dist: 0%;
+  }
+  51% {
+    --dist: 2%;
+  }
+  52% {
+    --dist: 4%;
+  }
+  53% {
+    --dist: 6%;
+  }
+  54% {
+    --dist: 8%;
+  }
+  55% {
+    --dist: 10%;
+  }
+  56% {
+    --dist: 12%;
+  }
+  57% {
+    --dist: 14%;
+  }
+  58% {
+    --dist: 16%;
+  }
+  59% {
+    --dist: 18%;
+  }
+  60% {
+    --dist: 20%;
+  }
+  61% {
+    --dist: 22%;
+  }
+  62% {
+    --dist: 24%;
+  }
+  63% {
+    --dist: 26%;
+  }
+  64% {
+    --dist: 28%;
+  }
+  65% {
+    --dist: 30%;
+  }
+  66% {
+    --dist: 32%;
+  }
+  67% {
+    --dist: 34%;
+  }
+  68% {
+    --dist: 36%;
+  }
+  69% {
+    --dist: 38%;
+  }
+  70% {
+    --dist: 40%;
+  }
+  71% {
+    --dist: 42%;
+  }
+  72% {
+    --dist: 44%;
+  }
+  73% {
+    --dist: 46%;
+  }
+  74% {
+    --dist: 48%;
+  }
+  75% {
+    --dist: 50%;
+  }
+  76% {
+    --dist: 52%;
+  }
+  77% {
+    --dist: 54%;
+  }
+  78% {
+    --dist: 56%;
+  }
+  79% {
+    --dist: 58%;
+  }
+  80% {
+    --dist: 60%;
+  }
+  81% {
+    --dist: 62%;
+  }
+  82% {
+    --dist: 64%;
+  }
+  83% {
+    --dist: 66%;
+  }
+  84% {
+    --dist: 68%;
+  }
+  85% {
+    --dist: 70%;
+  }
+  86% {
+    --dist: 72%;
+  }
+  87% {
+    --dist: 74%;
+  }
+  88% {
+    --dist: 76%;
+  }
+  89% {
+    --dist: 78%;
+  }
+  90% {
+    --dist: 80%;
+  }
+  91% {
+    --dist: 82%;
+  }
+  92% {
+    --dist: 84%;
+  }
+  93% {
+    --dist: 86%;
+  }
+  94% {
+    --dist: 88%;
+  }
+  95% {
+    --dist: 90%;
+  }
+  96% {
+    --dist: 92%;
+  }
+  97% {
+    --dist: 94%;
+  }
+  98% {
+    --dist: 96%;
+  }
+  99% {
+    --dist: 98%;
+  }
+  100% {
+    --dist: 100%;
+  }
+}
+@keyframes blob-cloud-parts-x {
+  0% {
+    --dist: -100%;
+  }
+  1% {
+    --dist: -98%;
+  }
+  2% {
+    --dist: -96%;
+  }
+  3% {
+    --dist: -94%;
+  }
+  4% {
+    --dist: -92%;
+  }
+  5% {
+    --dist: -90%;
+  }
+  6% {
+    --dist: -88%;
+  }
+  7% {
+    --dist: -86%;
+  }
+  8% {
+    --dist: -84%;
+  }
+  9% {
+    --dist: -82%;
+  }
+  10% {
+    --dist: -80%;
+  }
+  11% {
+    --dist: -78%;
+  }
+  12% {
+    --dist: -76%;
+  }
+  13% {
+    --dist: -74%;
+  }
+  14% {
+    --dist: -72%;
+  }
+  15% {
+    --dist: -70%;
+  }
+  16% {
+    --dist: -68%;
+  }
+  17% {
+    --dist: -66%;
+  }
+  18% {
+    --dist: -64%;
+  }
+  19% {
+    --dist: -62%;
+  }
+  20% {
+    --dist: -60%;
+  }
+  21% {
+    --dist: -58%;
+  }
+  22% {
+    --dist: -56%;
+  }
+  23% {
+    --dist: -54%;
+  }
+  24% {
+    --dist: -52%;
+  }
+  25% {
+    --dist: -50%;
+  }
+  26% {
+    --dist: -48%;
+  }
+  27% {
+    --dist: -46%;
+  }
+  28% {
+    --dist: -44%;
+  }
+  29% {
+    --dist: -42%;
+  }
+  30% {
+    --dist: -40%;
+  }
+  31% {
+    --dist: -38%;
+  }
+  32% {
+    --dist: -36%;
+  }
+  33% {
+    --dist: -34%;
+  }
+  34% {
+    --dist: -32%;
+  }
+  35% {
+    --dist: -30%;
+  }
+  36% {
+    --dist: -28%;
+  }
+  37% {
+    --dist: -26%;
+  }
+  38% {
+    --dist: -24%;
+  }
+  39% {
+    --dist: -22%;
+  }
+  40% {
+    --dist: -20%;
+  }
+  41% {
+    --dist: -18%;
+  }
+  42% {
+    --dist: -16%;
+  }
+  43% {
+    --dist: -14%;
+  }
+  44% {
+    --dist: -12%;
+  }
+  45% {
+    --dist: -10%;
+  }
+  46% {
+    --dist: -8%;
+  }
+  47% {
+    --dist: -6%;
+  }
+  48% {
+    --dist: -4%;
+  }
+  49% {
+    --dist: -2%;
+  }
+  50% {
+    --dist: 0%;
+  }
+  51% {
+    --dist: 2%;
+  }
+  52% {
+    --dist: 4%;
+  }
+  53% {
+    --dist: 6%;
+  }
+  54% {
+    --dist: 8%;
+  }
+  55% {
+    --dist: 10%;
+  }
+  56% {
+    --dist: 12%;
+  }
+  57% {
+    --dist: 14%;
+  }
+  58% {
+    --dist: 16%;
+  }
+  59% {
+    --dist: 18%;
+  }
+  60% {
+    --dist: 20%;
+  }
+  61% {
+    --dist: 22%;
+  }
+  62% {
+    --dist: 24%;
+  }
+  63% {
+    --dist: 26%;
+  }
+  64% {
+    --dist: 28%;
+  }
+  65% {
+    --dist: 30%;
+  }
+  66% {
+    --dist: 32%;
+  }
+  67% {
+    --dist: 34%;
+  }
+  68% {
+    --dist: 36%;
+  }
+  69% {
+    --dist: 38%;
+  }
+  70% {
+    --dist: 40%;
+  }
+  71% {
+    --dist: 42%;
+  }
+  72% {
+    --dist: 44%;
+  }
+  73% {
+    --dist: 46%;
+  }
+  74% {
+    --dist: 48%;
+  }
+  75% {
+    --dist: 50%;
+  }
+  76% {
+    --dist: 52%;
+  }
+  77% {
+    --dist: 54%;
+  }
+  78% {
+    --dist: 56%;
+  }
+  79% {
+    --dist: 58%;
+  }
+  80% {
+    --dist: 60%;
+  }
+  81% {
+    --dist: 62%;
+  }
+  82% {
+    --dist: 64%;
+  }
+  83% {
+    --dist: 66%;
+  }
+  84% {
+    --dist: 68%;
+  }
+  85% {
+    --dist: 70%;
+  }
+  86% {
+    --dist: 72%;
+  }
+  87% {
+    --dist: 74%;
+  }
+  88% {
+    --dist: 76%;
+  }
+  89% {
+    --dist: 78%;
+  }
+  90% {
+    --dist: 80%;
+  }
+  91% {
+    --dist: 82%;
+  }
+  92% {
+    --dist: 84%;
+  }
+  93% {
+    --dist: 86%;
+  }
+  94% {
+    --dist: 88%;
+  }
+  95% {
+    --dist: 90%;
+  }
+  96% {
+    --dist: 92%;
+  }
+  97% {
+    --dist: 94%;
+  }
+  98% {
+    --dist: 96%;
+  }
+  99% {
+    --dist: 98%;
+  }
+  100% {
+    --dist: 100%;
+  }
+}
+.loader-loader {
+  width: 2em;
+  height: 2em;
+  display: flex;
+  flex-direction: column;
+  justify-content: flex-end;
+}
+#toggle:checked ~ #sect .loader-loader {
+  filter: drop-shadow(0.2em 0.2em 0.2em rgba(0, 0, 0, 0.5));
+}
+.loader-loader:before {
+  content: "";
+  display: block;
+  width: 100%;
+  height: 2em;
+  color: #19A6CF;
+  background-color: currentColor;
+  animation: loader-loader 2s linear infinite forwards, loader-loader-pseudo 2s cubic-bezier(0.3, 0.1, 0.3, 0.85) infinite reverse;
+}
+.loader-loader.loader-1, .loader-loader.loader-2, .loader-loader.loader-3 {
+  height: 5em;
+}
+.loader-loader.loader-1:after, .loader-loader.loader-2:after, .loader-loader.loader-3:after {
+  content: "";
+  display: block;
+  width: 100%;
+  height: 0;
+  background-color: #19A6CF;
+  -webkit-animation: loader-loader-stack 8s cubic-bezier(0.5, 0.8, 0.5, 0.2) forwards infinite;
+          animation: loader-loader-stack 8s cubic-bezier(0.5, 0.8, 0.5, 0.2) forwards infinite;
+}
+.loader-loader.loader-2 {
+  box-shadow: inset 0 -3.5em 0 #083D56;
+}
+.loader-loader.loader-2 {
+  filter: url(#filter-goo2);
+}
+.loader-loader.loader-2:before {
+  -webkit-animation-name: loader-loader2, loader-loader-pseudo;
+          animation-name: loader-loader2, loader-loader-pseudo;
+}
+#toggle:checked ~ #sect .loader-loader.loader-2 {
+  filter: url(#filter-goo2) drop-shadow(0.2em 0.2em 0.2em rgba(0, 0, 0, 0.5));
+}
+.loader-loader.loader-3 {
+  filter: url(#filter-goo);
+}
+.loader-loader.loader-3:before {
+  flex: 1 0 2em;
+}
+#toggle:checked ~ #sect .loader-loader.loader-3 {
+  filter: url(#filter-goo) drop-shadow(0.2em 0.2em 0.2em rgba(0, 0, 0, 0.5));
+}
+
+@-webkit-keyframes loader-loader-stack {
+  0%, 20% {
+    height: 0;
+  }
+  25%, 45% {
+    height: 1em;
+  }
+  50%, 70% {
+    height: 2em;
+  }
+  75%, 95% {
+    height: 3em;
+  }
+}
+
+@keyframes loader-loader-stack {
+  0%, 20% {
+    height: 0;
+  }
+  25%, 45% {
+    height: 1em;
+  }
+  50%, 70% {
+    height: 2em;
+  }
+  75%, 95% {
+    height: 3em;
+  }
+}
+@-webkit-keyframes loader-loader2 {
+  0% {
+    -webkit-clip-path: polygon(50% 0, 0 0, 30% 0, 30% 0, 70% 0, 70% 0, 100% 0);
+            clip-path: polygon(50% 0, 0 0, 30% 0, 30% 0, 70% 0, 70% 0, 100% 0);
+  }
+  20% {
+    -webkit-clip-path: polygon(50% 30%, 0 0, 30% 0, 30% 0, 70% 0, 70% 0, 100% 0);
+            clip-path: polygon(50% 30%, 0 0, 30% 0, 30% 0, 70% 0, 70% 0, 100% 0);
+  }
+  55% {
+    -webkit-clip-path: polygon(50% 100%, 0 70%, 30% 70%, 30% 0%, 70% 0%, 70% 70%, 100% 70%);
+            clip-path: polygon(50% 100%, 0 70%, 30% 70%, 30% 0%, 70% 0%, 70% 70%, 100% 70%);
+  }
+  75% {
+    -webkit-clip-path: polygon(50% 100%, 0 100%, 30% 70%, 30% 70%, 70% 70%, 70% 70%, 100% 100%);
+            clip-path: polygon(50% 100%, 0 100%, 30% 70%, 30% 70%, 70% 70%, 70% 70%, 100% 100%);
+  }
+  85% {
+    -webkit-clip-path: polygon(50% 100%, 0 100%, 0% 70%, 30% 70%, 68% 70%, 100% 70%, 100% 100%);
+            clip-path: polygon(50% 100%, 0 100%, 0% 70%, 30% 70%, 68% 70%, 100% 70%, 100% 100%);
+  }
+  100% {
+    -webkit-clip-path: polygon(50% 100%, 0 100%, 0 100%, 30% 100%, 70% 100%, 100% 100%, 100% 100%);
+            clip-path: polygon(50% 100%, 0 100%, 0 100%, 30% 100%, 70% 100%, 100% 100%, 100% 100%);
+  }
+}
+@keyframes loader-loader2 {
+  0% {
+    -webkit-clip-path: polygon(50% 0, 0 0, 30% 0, 30% 0, 70% 0, 70% 0, 100% 0);
+            clip-path: polygon(50% 0, 0 0, 30% 0, 30% 0, 70% 0, 70% 0, 100% 0);
+  }
+  20% {
+    -webkit-clip-path: polygon(50% 30%, 0 0, 30% 0, 30% 0, 70% 0, 70% 0, 100% 0);
+            clip-path: polygon(50% 30%, 0 0, 30% 0, 30% 0, 70% 0, 70% 0, 100% 0);
+  }
+  55% {
+    -webkit-clip-path: polygon(50% 100%, 0 70%, 30% 70%, 30% 0%, 70% 0%, 70% 70%, 100% 70%);
+            clip-path: polygon(50% 100%, 0 70%, 30% 70%, 30% 0%, 70% 0%, 70% 70%, 100% 70%);
+  }
+  75% {
+    -webkit-clip-path: polygon(50% 100%, 0 100%, 30% 70%, 30% 70%, 70% 70%, 70% 70%, 100% 100%);
+            clip-path: polygon(50% 100%, 0 100%, 30% 70%, 30% 70%, 70% 70%, 70% 70%, 100% 100%);
+  }
+  85% {
+    -webkit-clip-path: polygon(50% 100%, 0 100%, 0% 70%, 30% 70%, 68% 70%, 100% 70%, 100% 100%);
+            clip-path: polygon(50% 100%, 0 100%, 0% 70%, 30% 70%, 68% 70%, 100% 70%, 100% 100%);
+  }
+  100% {
+    -webkit-clip-path: polygon(50% 100%, 0 100%, 0 100%, 30% 100%, 70% 100%, 100% 100%, 100% 100%);
+            clip-path: polygon(50% 100%, 0 100%, 0 100%, 30% 100%, 70% 100%, 100% 100%, 100% 100%);
+  }
+}
+@-webkit-keyframes loader-loader {
+  0% {
+    -webkit-clip-path: polygon(30% 0, 70% 0, 70% 0%, 100% 0%, 70% 0%, 50% 0%, 30% 0%, 0 0%, 30% 0%);
+            clip-path: polygon(30% 0, 70% 0, 70% 0%, 100% 0%, 70% 0%, 50% 0%, 30% 0%, 0 0%, 30% 0%);
+  }
+  5% {
+    -webkit-clip-path: polygon(30% 0, 70% 0, 70% 0%, 100% 0%, 70% 9%, 50% 15%, 30% 9%, 0 0%, 30% 0%);
+            clip-path: polygon(30% 0, 70% 0, 70% 0%, 100% 0%, 70% 9%, 50% 15%, 30% 9%, 0 0%, 30% 0%);
+  }
+  15% {
+    -webkit-clip-path: polygon(30% 0, 70% 0, 70% 0%, 100% 0%, 70% 19%, 50% 30%, 30% 19%, 0 0%, 30% 0%);
+            clip-path: polygon(30% 0, 70% 0, 70% 0%, 100% 0%, 70% 19%, 50% 30%, 30% 19%, 0 0%, 30% 0%);
+  }
+  50% {
+    -webkit-clip-path: polygon(30% 0%, 70% 0%, 70% 70%, 100% 70%, 70% 89%, 50% 100%, 30% 89%, 0 70%, 30% 70%);
+            clip-path: polygon(30% 0%, 70% 0%, 70% 70%, 100% 70%, 70% 89%, 50% 100%, 30% 89%, 0 70%, 30% 70%);
+  }
+  90% {
+    -webkit-clip-path: polygon(30% 70%, 70% 70%, 70% 70%, 100% 70%, 100% 100%, 50% 100%, 0 100%, 0 70%, 30% 70%);
+            clip-path: polygon(30% 70%, 70% 70%, 70% 70%, 100% 70%, 100% 100%, 50% 100%, 0 100%, 0 70%, 30% 70%);
+  }
+  100% {
+    -webkit-clip-path: polygon(30% 100%, 70% 100%, 70% 100%, 100% 100%, 100% 100%, 50% 100%, 0 100%, 0 100%, 30% 100%);
+            clip-path: polygon(30% 100%, 70% 100%, 70% 100%, 100% 100%, 100% 100%, 50% 100%, 0 100%, 0 100%, 30% 100%);
+  }
+}
+@keyframes loader-loader {
+  0% {
+    -webkit-clip-path: polygon(30% 0, 70% 0, 70% 0%, 100% 0%, 70% 0%, 50% 0%, 30% 0%, 0 0%, 30% 0%);
+            clip-path: polygon(30% 0, 70% 0, 70% 0%, 100% 0%, 70% 0%, 50% 0%, 30% 0%, 0 0%, 30% 0%);
+  }
+  5% {
+    -webkit-clip-path: polygon(30% 0, 70% 0, 70% 0%, 100% 0%, 70% 9%, 50% 15%, 30% 9%, 0 0%, 30% 0%);
+            clip-path: polygon(30% 0, 70% 0, 70% 0%, 100% 0%, 70% 9%, 50% 15%, 30% 9%, 0 0%, 30% 0%);
+  }
+  15% {
+    -webkit-clip-path: polygon(30% 0, 70% 0, 70% 0%, 100% 0%, 70% 19%, 50% 30%, 30% 19%, 0 0%, 30% 0%);
+            clip-path: polygon(30% 0, 70% 0, 70% 0%, 100% 0%, 70% 19%, 50% 30%, 30% 19%, 0 0%, 30% 0%);
+  }
+  50% {
+    -webkit-clip-path: polygon(30% 0%, 70% 0%, 70% 70%, 100% 70%, 70% 89%, 50% 100%, 30% 89%, 0 70%, 30% 70%);
+            clip-path: polygon(30% 0%, 70% 0%, 70% 70%, 100% 70%, 70% 89%, 50% 100%, 30% 89%, 0 70%, 30% 70%);
+  }
+  90% {
+    -webkit-clip-path: polygon(30% 70%, 70% 70%, 70% 70%, 100% 70%, 100% 100%, 50% 100%, 0 100%, 0 70%, 30% 70%);
+            clip-path: polygon(30% 70%, 70% 70%, 70% 70%, 100% 70%, 100% 100%, 50% 100%, 0 100%, 0 70%, 30% 70%);
+  }
+  100% {
+    -webkit-clip-path: polygon(30% 100%, 70% 100%, 70% 100%, 100% 100%, 100% 100%, 50% 100%, 0 100%, 0 100%, 30% 100%);
+            clip-path: polygon(30% 100%, 70% 100%, 70% 100%, 100% 100%, 100% 100%, 50% 100%, 0 100%, 0 100%, 30% 100%);
+  }
+}
+@-webkit-keyframes loader-loader-pseudo {
+  0%, 10% {
+    color: #19A6CF;
+  }
+  100% {
+    color: #083D56;
+  }
+}
+@keyframes loader-loader-pseudo {
+  0%, 10% {
+    color: #19A6CF;
+  }
+  100% {
+    color: #083D56;
+  }
+}
+hr.from-here {
+  content: "--------- don't copy from here --------";
+}
+
+.flex {
+  display: flex;
+}
+
+#sect {
+  width: 90vw;
+  margin: 3vh auto 0;
+}
+
+#sect #toggleView:checked ~ #list tr {
+  display: grid;
+  width: 100%;
+  height: 50vh;
+  grid-template-columns: 47.5% 47.5%;
+  grid-template-rows: 70% 25%;
+  grid-gap: 5%;
+  justify-content: stretch;
+  justify-items: stretch;
+  grid-template-areas: "mainDiv mainDiv" "prevDiv nextDiv";
+}
+#sect #toggleView:checked ~ #list td {
+  margin: 0;
+}
+#sect #toggleView:checked ~ #list td > div:not(:nth-child(2)) {
+  font-size: 0.75em;
+}
+#sect #toggleView:checked ~ #list td:nth-child(1) {
+  grid-area: prevDiv;
+  justify-self: left;
+  height: auto;
+  box-shadow: inset 0 0 0 2px #19A6CF;
+}
+#sect #toggleView:checked ~ #list td:nth-child(2) {
+  grid-area: mainDiv;
+  max-width: 100%;
+  width: 100%;
+  height: 100%;
+  overflow: hidden;
+  box-shadow: inset 0 0 0 2px #19A6CF;
+  font-size: 2em;
+}
+#sect #toggleView:checked ~ #list td:nth-child(2) h2 {
+  margin-top: -0.125em;
+  background-color: rgba(255, 255, 255, 0.125);
+}
+#sect #toggleView:checked ~ #list td:nth-child(3) {
+  grid-area: nextDiv;
+  justify-self: right;
+  height: auto;
+  box-shadow: inset 0 0 0 2px #19A6CF;
+}
+#sect #toggleView:checked ~ #list td:nth-child(n+4) {
+  display: none;
+}
+#sect h3 {
+  font-weight: 700;
+}
+#sect h4 {
+  margin-top: 0.25em;
+  display: inline-block;
+  vertical-align: middle;
+}
+#sect h4:not(:first-of-type) {
+  margin-left: 1em;
+}
+#sect h4 label {
+  display: inline-block;
+  transition: all 0.3333333333s;
+}
+#sect h4 label:hover {
+  color: #fff;
+}
+#sect .ckbx {
+  position: relative;
+  display: inline-block;
+  font-size: 0.5em;
+  padding-left: 1.5em;
+  cursor: pointer;
+  vertical-align: top;
+  line-height: 1.3;
+}
+#sect .ckbx .small {
+  font-size: 0.7em;
+  display: block;
+  line-height: 1.5;
+  text-align: left;
+}
+#sect .ckbx:before {
+  content: "";
+  position: absolute;
+  display: inline-block;
+  left: 0;
+  top: 0.2em;
+  width: 1em;
+  height: 1em;
+  border: 2px solid #083D56;
+  border-radius: 0.2em;
+  margin-right: 0.5em;
+}
+#sect .ckbx:after {
+  content: "";
+  display: inline-block;
+  position: absolute;
+  left: 0.4em;
+  top: 0.7em;
+  width: 0;
+  height: 0;
+  opacity: 0;
+  border: 5px solid #19A6CF;
+  border-width: 0 5px 5px 0;
+  transform: rotate(35deg);
+  transition: all 0.3333333333s;
+}
+#sect table {
+  width: 100%;
+  margin: 0 auto;
+  margin-top: 8em;
+}
+#sect table caption {
+  position: fixed;
+  top: 0;
+  left: 0;
+  right: 0;
+  z-index: 100;
+  background-color: #081E3F;
+  box-shadow: 0 0.5em 0.5em #081E3F;
+  width: 100vw;
+  font-size: 2em;
+  color: #9a9a9a;
+  padding-top: 0.5em;
+  padding-bottom: 0.5em;
+  border-bottom: 1px solid;
+  margin-bottom: 0.5em;
+}
+#sect table tr {
+  display: flex;
+  flex-wrap: wrap;
+  flex-direction: row;
+  justify-content: space-evenly;
+  align-items: stretch;
+}
+
+#toggle:checked ~ #sect .ckbx.one:after,
+#toggleSize:checked ~ #list .ckbx.two:after,
+#toggleView:checked ~ #list .ckbx.three:after {
+  opacity: 1;
+  width: 0.6em;
+  left: 0.2em;
+  top: 0em;
+  height: 1.2em;
+}
+
+
diff --git "a/src/main/webapp/Icon/1\345\244\247\345\261\217.png" "b/src/main/webapp/Icon/1\345\244\247\345\261\217.png"
new file mode 100644
index 0000000..abb3aed
--- /dev/null
+++ "b/src/main/webapp/Icon/1\345\244\247\345\261\217.png"
Binary files differ
diff --git "a/src/main/webapp/Icon/1\346\212\245\350\255\246.png" "b/src/main/webapp/Icon/1\346\212\245\350\255\246.png"
new file mode 100644
index 0000000..77116de
--- /dev/null
+++ "b/src/main/webapp/Icon/1\346\212\245\350\255\246.png"
Binary files differ
diff --git "a/src/main/webapp/Icon/1\350\201\232\351\233\206.png" "b/src/main/webapp/Icon/1\350\201\232\351\233\206.png"
new file mode 100644
index 0000000..bb95c33
--- /dev/null
+++ "b/src/main/webapp/Icon/1\350\201\232\351\233\206.png"
Binary files differ

--
Gitblit v1.10.0