diff --git a/Profiles.json b/Profiles.json
deleted file mode 100644
index a2d0377..0000000
--- a/Profiles.json
+++ /dev/null
@@ -1 +0,0 @@
-{"Name":["JackEagle","Jon West","Vaughn Newman","Antonio Luciano","BitO BSessiOn","Blake Leeper","Evan Galvin","Henri Koivuneva","Calin Neamtu","Eric Park (ideaman924)","Patrick Graber (pjgraber03)","Aren Clegg"],"Avatar":["https://lh3.googleusercontent.com/w7i8JBSfddUp88DpBjjdT_PBODfKTiFV8TKHqyZnsU3m0-ppYXsuafqDtBxakFYW3mjIahKkFYBepZIGRQ=w1920-h1080-no","https://lh3.googleusercontent.com/hcV4Tp81H4TJskQhpKckcDBqwnETos_ZOxXsQbiZGOT5OxMC-3pOD5i22j1tPiaubWW74tmnwB0ixvGwELQ=w1920-h1080-no","https://lh3.googleusercontent.com/xhKBfn9HcjWayS9gQizUuh7JATtI4i-OvVv9Q6XPy5v5IyiI44lqRoxtMIyI3rlLc7OCyparEB9OqGT_Vg=w1920-h1080-no","https://lh3.googleusercontent.com/JOdHk7TYY-SLjAANLuK7t68Oz6w4fDFody-Uwj3rtH6oSZkljniUceYFQ52rbJXeBv4kDgoGhrtamLJlwZc=w1920-h1080-no","https://lh3.googleusercontent.com/LZrBsYT1S4qQI92uCuWx34QSGDcKpwY1G2h3LXT3tEvMPuSA8d6tiY7CsLYvBCznXk4sJhgr6UFk8pg1oA=w1920-h1080-no","https://lh3.googleusercontent.com/9HpKaGSOQnmm649RlvoUvJVNgoTEhX1w8X9l48wzBacggsottSVVIEX76RP2tRI2CZYu799RdAmhD1fwbQ=w1920-h1080-no","https://lh3.googleusercontent.com/eRqBEkS4_cWFEkLce4sVRmyCkAwgsGZwIg1kE12_gjBaghKQ8Omc6V2UJT6q6LwZS8l-LkutUrskyeLFrd0=w1920-h1080-no","https://lh3.googleusercontent.com/t5rLm4Gex0mmG9VkXzfoXIl0t31pBJwPP798GYNOaLxvi9qjfka867yJl0P-8EXpO8_zeFe-Vq346C56Ww=w1920-h1080-no","https://lh3.googleusercontent.com/7nQL9EtHPRivUewvtg9sZR44G4wF4e5pLfFy7pX4CnbmxFyyJuaMBU7zcPi8BLlGF9t1cwTl9fdgUg=w1920-h1080-rw-no","https://lh3.googleusercontent.com/-zdwriNcIk1c/AAAAAAAAAAI/AAAAAAAAExQ/XBgOqSUsfsY/s750-p-rw-no/photo.jpg","https://lh3.googleusercontent.com/-vQGXN3Rstjo/AAAAAAAAAAI/AAAAAAAAEao/o2tOywhBHzs/s750-p-rw-no/photo.jpg","https://lh3.googleusercontent.com/8VqQRqDi3dc35qeC_cipzDE5oW8llKvxq0F-uzwmR9jYJvsMtREEaANi874yCBpKvmWy86MwwXC22JDRRKU=w1920-h1080-no"],"Description":["CEO/Founder","CTO/Incorporator","Admin/Board Member","Project Manager/Board Member","Board Member/Developer","Board Member/Developer","Board Member/Product Technology Strategist","Product Technology Strategist","Lead Development Manager/Web Developer","Developer","Developer","Developer"],"Facebook":["","","","","","","https://www.facebook.com/evan.galvin","https://facebook.com/hkoivuneva","https://facebook.com/nilac8991","https://facebook.com/ideaman924","",""],"Instagram":["","https://www.instagram.com/electrikjesus","","","","","","https://instagram.com/hkoivuneva","","","",""],"Twitter":["","https://twitter.com/electrikjesus","","","","","https://twitter.com/uknowetheg","https://twitter.com/hkoivuneva","","https://twitter.com/ideaman924","",""],"Telegram":["","https://t.me/electrikjesus","https://t.me/rwaterspf1","","","","https://t.me/UknowEtheG","https://t.me/hkoivuneva","https://t.me/nilac8991","","",""],"GooglePlus":["","https://plus.google.com/+JonWest","","","","","https://plus.google.com/+EvanGalvin","","https://plus.google.com/+CălinNeamţu","https://plus.google.com/+EricParkideaman924","",""],"Email":["","mailto:electrikjesus@gmail.com","mailto:rwaterspf1@floydco.net","","","","mailto:evan.galvin@gmail.com","mailto:henri.koivuneva@gmail.com","mailto:nilac8991@gmail.com","mailto:ideamaneric@gmail.com","",""],"XDA":["https://forum.xda-developers.com/member.php?u=5216756","https://forum.xda-developers.com/member.php?u=928479","https://forum.xda-developers.com/member.php?u=4957527","","","","","","https://forum.xda-developers.com/member.php?u=4968383","","",""],"Github":["","https://github.com/electrikjesus","https://github.com/rwaterspf1","","","","","https://github.com/hkoivuneva","https://github.com/nilac8991","https://github.com/ideaman924","",""]}
diff --git a/README.md b/README.md
index 07b88e2..b8c7c69 100644
--- a/README.md
+++ b/README.md
@@ -2,4 +2,4 @@
 <img src="https://screenshots.firefoxusercontent.com/images/0a31348a-e9c1-4e30-b8c1-1543d1076d9e.png">
 
 # blissroms.github.io
-New website for Team Bliss / Bliss Roms / Bliss OS / Bliss x86
+New website for Team Bliss / Bliss Roms / Bliss OS / Bliss x86
\ No newline at end of file
diff --git a/bfor.html b/bfor.html
index bc67e75..f58076a 100644
--- a/bfor.html
+++ b/bfor.html
@@ -4,117 +4,113 @@
 <head>
   <meta charset="utf-8">
   <meta name="viewport" content="width=device-width, initial-scale=1">
-  <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
-  <meta name="description" content="BlissRoms - new site">
-  <meta name="theme-color" content="#0080ff">
-  <link rel="shortcut icon" href="favicon.ico" type="image/x-icon">
-  <link rel="icon" sizes="192x192" href="images/bliss_icon_small.png">
-  <link rel="stylesheet" href="https://use.fontawesome.com/releases/v5.3.1/css/all.css" integrity="sha384-mzrmE5qonljUremFsqc01SB46JvROS7bZs3IO2EmfFsd15uHvIt+Y8vEf7N7fWAU" crossorigin="anonymous">
-  <link rel="stylesheet" type="text/css" href="https://cdnjs.cloudflare.com/ajax/libs/normalize/5.0.0/normalize.min.css">
-  <link rel="stylesheet" type="text/css" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.5/css/bootstrap.min.css">
-  <link href="https://fonts.googleapis.com/css?family=Comfortaa:400,700,300" rel="stylesheet">
-  <link rel="stylesheet" type="text/css" href="css/style.css">
-  <link rel="stylesheet" href="css/styles_filter.css">
+  <!-- PAGE settings -->
+  <link rel="icon" href="favicon.ico">
+  <title>Bliss ROMs</title>
+  <meta name="description" content="Open Source OS for all devices, based on AOSP">
+  <meta name="keywords" content="blissroms, bliss, os, x86, aosp, android, rom, teambliss">
+  <!-- CSS dependencies -->
+  <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css" type="text/css">
+  <link rel="stylesheet" href="neon.css">
+  <!-- Script: Make my navbar transparent when the document is scrolled to top -->
+  <script src="js/navbar-ontop.js"></script>
+  <!-- Script: Animated entrance -->
+  <script src="js/animate-in.js"></script>
   <link rel="stylesheet" href="css/animations.css">
-  <script src="js/modernizr.js"></script>
-  <script async="" src="//pagead2.googlesyndication.com/pagead/js/adsbygoogle.js"></script>
-  <script> (adsbygoogle = window.adsbygoogle || []).push({
-				google_ad_client: "ca-pub-7639560510014441",
-				enable_page_level_ads: true
-			  });
-			</script>
-  <title>Bliss</title>
 </head>
 
-<body>
-  <!-- Fixed navbar -->
-  <nav class="navbar navbar-default navbar-fixed-top">
+<body class="" style="">
+  <!-- Navbar -->
+  <nav class="navbar navbar-expand-md navbar-dark fixed-top bg-dark" style="padding-right: 41px;">
     <div class="container">
-      <div class="navbar-header">
-        <button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#navbar" aria-expanded="false" aria-controls="navbar">
-          <span class="sr-only">Toggle navigation</span>
-          <span class="icon-bar"></span>
-          <span class="icon-bar"></span>
-          <span class="icon-bar"></span>
-        </button>
-        <a class="navbar-brand" href="#" style="	background-image: url(images/BlissIcon_w.png);	background-position: top left;	background-size: 100%;	background-repeat: no-repeat;">   </a>
+      <a class="navbar-brand" href="#"><img src="images/BlissIcon_Smal_wl.png" width="50" class="d-inline-block align-top" alt=""></a>
+      <div class="row">
+        <div class="col-md-12"><a class="navbar-brand" href="#"><b><b>Bliss ROMs</b></b></a></div>
       </div>
-      <div id="navbar" class="collapse navbar-collapse">
-        <ul class="nav navbar-nav navbar-right">
-          <li id="nav-about">
-            <a href="index.html">Back Home</a>
+      <div class="row"></div>
+      <button class="navbar-toggler navbar-toggler-right" type="button" data-toggle="collapse" data-target="#navbar2SupportedContent" aria-controls="navbar2SupportedContent" aria-expanded="false" aria-label="Toggle navigation"> <span class="navbar-toggler-icon"></span> </button>
+      <div class="collapse navbar-collapse text-center justify-content-end" id="navbar2SupportedContent">
+        <ul class="navbar-nav">
+          <li class="nav-item mx-2">
+            <a class="nav-link" href="#features"><b><b>Features</b></b></a>
           </li>
-          <li id="nav-about">
-            <a href="#about2">About</a>
+          <li class="nav-item mx-2">
+            <a class="nav-link" href="#reviews"><b><b>Reviews</b></b></a>
           </li>
-          <li id="nav-expenses">
-            <a href="#expenses">Expenses</a>
+          <li class="nav-item mx-2">
+            <a class="nav-link" href="#team"><b><b>Team</b></b></a>
           </li>
-          <li id="nav-family">
-            <a href="#family2">Family</a>
-          </li>
-          <li id="donate">
-            <a href="https://www.paypal.me/TeamBliss" target="_blank">Donate</a>
+          <li class="nav-item mx-2">
+            <a class="nav-link" href="bfor.html"><b><b>Non Profit</b></b></a>
           </li>
         </ul>
+        <a class="btn navbar-btn mx-2 btn-primary shadowed" href="#download"><b><b>Download</b></b></a>
       </div>
-      <!--/.nav-collapse -->
     </div>
   </nav>
-  <div class="py-5">
-    <div class="container">
+  <!-- Cover -->
+  <div class="section-fade-out pt-5" style="background-image: url(&quot;https://i.imgur.com/BOGKaGy.jpg&quot;); background-position: center bottom;">
+    <div class="container pt-5">
       <div class="row">
-        <div class="col-md-12">
-          <p></p>
+        <div class="col-md-12 ">
+          <div class="col-md-12">
+            <h1 class="display-3 mb-4">Bliss Family of ROMs</h1>
+            <blockquote class="lead blockquote" cite="https://twitter.com/DalaiLama/status/1051767186820198402" style="">The creation of a more peaceful and happier society has to begin from the level of the individual, and from there it can expand to one's family, to one's neighborhood, to one's community and so on. <footer class=""><a style="font-weight: bold !important; color: #0080ff;" href="https://twitter.com/DalaiLama/status/1051767186820198402" class="">Dalai Lama</a></footer>
+            </blockquote>
+          </div>
         </div>
       </div>
-    </div>
-  </div>
-  <!-- Begin page content -->
-  <div class="container-fluid">
-    <div class="row cover top" style="	background-image: linear-gradient(to bottom, rgba(22, 22, 22, 0.0), rgba(22, 22, 22, 1.0));	background-position: top left;	background-size: 100%;	background-repeat: repeat;">
-      <div class="col-xs-12">
-        <div class="row" style="overflow-x:hidden;height: auto;overflow-y: visible; color: #fff;">
-          <div class="col-md-12" align="center">
-            <div class="cover row">
-              <h1>Bliss Family of ROMs</h1><br><br>
-              <blockquote class="lead" cite="https://twitter.com/DalaiLama/status/1051767186820198402" style="">The creation of a more peaceful and happier society has to begin from the level of the individual, and from there it can expand to one's family, to one's neighborhood, to one's community and so on. <footer class=""><a style="font-weight: bold !important; color: #0080ff;" href="https://twitter.com/DalaiLama/status/1051767186820198402" class="">Dalai Lama</a></footer>
-              </blockquote>
-              <p></p>
+      <div class="row">
+        <div class="col-md-12 d-inline-flex justify-content-center align-items-center mx-auto mt-5">
+          <div class="container">
+            <div class="row">
+              <div class="col-md-12 text-center">
+                <h1>About</h1>
+              </div>
+            </div>
+            <div class="row">
+              <div class="col-md-6 p-3">
+                <p>We are a U.S.A. Federal 501c3 Non-Profit Organization that aims to build and maintain various operating systems and software projects for the purposes of community growth and development. Our team of talented individuals comprise to provide training, development opportunities, build servers, download servers, design and development software, and design opportunities. Team Bliss memborship includes professionals and mentors in all fields related to Android development. Our services and source code is open to the public and provided at no cost.</p>
+              </div>
+              <div class="col-md-6 p-3">
+                <p class="text-white"><b class="text-white">What are we aiming to accomplish?</b></p>
+                <p>Our goal is to mentor and teach those interested in Android development. We have a large global community that is available to coach or answer questions about development, design, animation, etc. almost any time. We offer a stress free working environment, as well as the tools when resources allow us to do so, to help guide someone on the Android development path. We also provide them the tools to learn how to monetize their skills along the way.</p>
+              </div>
             </div>
           </div>
         </div>
-        <div class="row">
-          <div class="col-xs-12 center-block text-center" style="overflow-y: visible; color: rgb(255, 255, 255); transform: translateY(60px);">
-            <a href="#about2"><span id="scrollIcon" class="front-glyph glyphicon glyphicon-menu-down" style="	color: #fff;	transform:  translateY(-100%) ;" aria-hidden="true"></span></a>
-          </div>
+      </div>
+    </div>
+  </div>
+  <div class="py-5 text-center">
+    <div class="container">
+      <div class="row">
+        <div class="col-md-12">
+          <h1 class="mb-3">Can you tell me more about these mentorships and opportunities?</h1>
+          <p>We take on applicants and work with them to learn more about Android Development. We have many mentors available to help in all areas, from ROM development, App development, Design &amp; Layout, as well as kernel development.&nbsp; Each potential applicant is selected based on their want to learn and their ability to work with others, so we do require a bit of a background, or at least a very convincing argument.</p>
         </div>
       </div>
+      <div class="row">
+        <div class="col-md-12"><a class="btn btn-primary text-center d-flex justify-content-center" href="https://goo.gl/forms/PdiaAj1PojosmehK2" style="color: rgb(255, 255, 255);">Join Our Team</a></div>
+      </div>
     </div>
   </div>
-  <div id="about2" class="row cover">
+  <!-- Article style section -->
+  <!-- Features -->
+  <!-- Features -->
+  <!-- Carousel reviews -->
+  <!-- Call to action -->
+  <div class="py-5  bg-primary" id="download">
     <div class="container">
-      <h1 class="text-center about2-header" style="color: #fff;">About</h1>
-      <p class="lead text-center">We are a U.S.A. Federal 501c3 Non-Profit Organization that aims to build and maintain various operating systems and software projects for the purposes of community growth and development. Our team of talented individuals comprise to provide training, development opportunities, build servers, download servers, design and development software, and design opportunities. Team Bliss memborship includes professionals and mentors in all fields related to Android development. Our services and source code is open to the public and provided at no cost. </p>
       <div class="row">
-        <h2 class="text-center " style=" color: #000; margin: 5%;">What are we aiming to accomplish?</h2>
-        <p class="text-center lead " style="margin: 5%">Our goal is to mentor and teach those interested in Android development. We have a large global community that is available to coach or answer questions about development, design, animation, etc. almost any time. We offer a stress free working environment, as well as the tools when resources allow us to do so, to help guide someone on the Android development path. We also provide them the tools to learn how to monetize their skills along the way.</p>
+        <div class="text-center col-md-12">
+          <h1>Outreach</h1>
+        </div>
       </div>
       <div class="row">
-        <h3 class="text-center " style="color: #000;">Can you tell me more about these mentorships and opportunities?</h3>
-        <p class="text-center lead " style="margin: 5%">We take on applicants and work with them to learn more about Android Development. We have many mentors available to help in all areas, from ROM development, App development, Design &amp; Layout, as well as kernel development.</p>
-        <p class="text-center lead " style="margin: 5%">Each potential applicant is selected based on their want to learn and their ability to work with others, so we do require a bit of a background, or at least a very convincing argument.</p>
-      </div>
-      <!--end Two project row-->
-    </div>
-  </div>
-  <div class="py-5 text-center" style="	background-image: linear-gradient(to bottom, rgba(0,0,0,0.7), rgba(0,0,0,0.7));	background-position: top left;	background-size: 100%;	background-repeat: repeat;">
-    <div class="container">
-      <div class="row">
         <div class="col-md-12"><br><br>
-          <h1>Outreach</h1>
-          <h2 style="color: #fff;">Not everyone has access to development hardware</h2>
-          <p class="highlight_secondary lead">Many people across the globe do not have access or are not able to afford the latest and greatest technology in order to learn how to develop with, then alone practice what they have learned. In order to help fill that gap, we are partnering with <a style="font-weight: bold !important; color: #0080ff;" target="blank" href="http://legacyserver.in">Legacy-Server</a> in order to provide build-server access when resources are available, and help reach the dreams of those that aren't able to access all the needed tools.</p>
+          <h2 style="color: #fff;" class="text-center">Not everyone has access to development hardware</h2>
+          <p class="highlight_secondary lead text-center">Many people across the globe do not have access or are not able to afford the latest and greatest technology in order to learn how to develop with, then alone practice what they have learned. In order to help fill that gap, we are partnering with <a style="font-weight: bold; color: black;" target="blank" href="http://legacyserver.in">Legacy-Server</a> in order to provide build-server access when resources are available, and help reach the dreams of those that aren't able to access all the needed tools.</p>
           <div class="worldmap">
             <!--?xml version="1.0" encoding="UTF-8" standalone="no"?-->
             <svg width="100%" viewBox="0 0 750 450" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:sketch="http://www.bohemiancoding.com/sketch/ns">
@@ -2092,298 +2088,224 @@
       </div>
     </div>
   </div>
-  <div id="about2" class="row cover">
+  <div class="py-5">
     <div class="container text-center">
-      <h1 class="text-center family-header" style="color: #fff;">Transparency</h1>
+      <h1 class="text-primary display-4" style="color: #fff;">Transparency</h1>
       <p class="text-center lead" style="margin: 5%">We believe in full transparency, but we do not believe this transparency should come at a cost to our supporters. This is why we submit a yearly 990 form to the IRS. If you are interested in looking into that or any other information we submit, feel free to visit our <a style="font-weight: bold !important; color: #222;" target="blank" href="https://www.guidestar.org/profile/82-3580195">Guidestar.org</a> page. If you are interested in looking into any other nonprofit open-source projects or ROMs, they can also be found on Guidestar as long as things are all on the up and up. </p>
-      <a class="btn btn-rounded portfolio-projects--btn center" target="blank" href="https://www.guidestar.org/search" style="background-color: #222; color: #fff;">Search Guidestar.org</a>
+      <a class="btn btn-outline-primary center" target="blank" href="https://www.guidestar.org/search" style="background-color: #222; color: #fff;">Search Guidestar.org</a>
       <p class="text-center lead" style="margin: 5%">Guidestar does allow users to view the financial info for each nonprofit, but for those who don't want to give yet another site their personal info, we have posted our statements below</p>
       <!--end Two project row-->
     </div>
   </div>
-  <div id="expenses" class="row cover bottom" style="	background-image: linear-gradient(to bottom, rgba(0, 0, 0, 0), rgba(0, 0, 0, 0));	background-position: top left;	background-size: 100%;	background-repeat: repeat;">
-    <h1 class="text-center expenses-header" style="color: #0080ff;">Expenses </h1>
-    <section class="counting">
-      <div class="layout">
-        <h2 class="text-center" style="color: #fff;">2017 Revenue (year one)</h2>
-        <div class="grid-3">
-          <span class="count1 counter" style="color: #0080ff;">899.00</span>
-          <p>Contributions, Grants, Gifts</p>
-        </div> <!-- /.col-sm-3 -->
-        <div class="grid-3">
-          <span class="count2 counter" style="color: #0080ff;">0</span>
-          <p>Program Services</p>
-        </div><!-- /.col-sm-3 -->
-        <div class="grid-3">
-          <span class="counter " style="color: #0080ff;">0</span>
-          <p>Special Events</p>
-        </div><!-- /.col-sm-3 -->
-        <div class="grid-3">
-          <span class="counter count4" style="color: #0080ff;">0</span>
-          <p>Other Revenue</p>
-        </div><!-- /.col-sm-3 -->
-      </div>
-    </section>
-    <section class="counting">
-      <div class="layout">
-        <h2 class="text-center" style="color: #fff;">2017 Expenses (year one)</h2>
-        <div class="grid-3">
-          <span class="count1 counter" style="color: #0080ff;">0</span>
-          <p>Program Services &amp; Affiliates</p>
-        </div> <!-- /.col-sm-3 -->
-        <div class="grid-3">
-          <span class="count2 counter" style="color: #0080ff;">360.00</span>
-          <p>Administration</p>
-        </div><!-- /.col-sm-3 -->
-        <div class="grid-3">
-          <span class="counter " style="color: #0080ff;">0</span>
-          <p>Fundraising</p>
-        </div><!-- /.col-sm-3 -->
-        <div class="grid-3">
-          <span class="counter count4" style="color: #0080ff;">295.00</span>
-          <p>Other Expenses</p>
-        </div><!-- /.col-sm-3 -->
-      </div>
-    </section>
-    <!-- End #Contact-->
-  </div>
-  <!-- break -->
-  <!-- Close Team -->
-  <div id="family2" class="" style="	background-image: linear-gradient(to bottom, rgba(0, 0, 0, 0.6), rgba(0, 0, 0, 0.6));	background-position: top left;	background-size: 100%;	background-repeat: repeat;">
-    <div class="container" style="">
-      <div class="row">
-        <div class="col-md-12 text-center">
-        </div>
-      </div>
-      <div class="row">
-        <div class="col-md-4 p-3">
-          <p>
-          </p>
-          <p class="text-center lead">We are open to the public, and accepting applications now for volunteer only positions (internships coming soon). We are accepting people in small managable groups while we grow, and we tend to lean towards the type of people that want to learn and grow with Bliss Family of ROMs. Bliss provides the tools, knowledge and the mentorship needed to help bring your development dreams to reality, and all we ask in return is a minimum contribution towards Bliss ROM while you learn and grow in your strengths. <br> If you're an individual and would like to apply to join our team, please use the button below&nbsp; &nbsp; &nbsp;</p>
-          <p></p>
-        </div>
-        <div class="col-md-4 p-3">
-          <p>
-          </p>
-          <div class="col-md-12 text-center lead">
-            <h1><img class="team-image" style="max-width: 36rem;" src="images/bliss_for.png"></h1><a class="btn btn-rounded family-projects--btn text-center" href="https://goo.gl/forms/PdiaAj1PojosmehK2" style="color: rgb(255, 255, 255);">Join Our Team</a><a class="btn btn-rounded family-projects--btn" href="https://www.paypal.me/TeamBliss" target="_blank" role="button" style="color: rgb(255, 255, 255);">Donate to Bliss Family</a>
-          </div>
-          <p class="text-center lead"></p>
-          <p></p>
-        </div>
-        <div class="col-md-4 p-3 text-center">
-          <p>
-          </p>
-          <p class="text-center lead">Got a great project but having trouble getting things off the ground? Or maybe you are looking to gain a few more people to help you out on it. Whatever your situation is, you can submit your project below for a chance to include it as a Bliss Family project.&nbsp; &nbsp; &nbsp;&nbsp;</p>
-          <p class="text-center lead">If you are interested in applying for this unique opportunity, please fill out the form below, and we will be in touch with you soon (usually within a few days!)</p><a class="btn btn-rounded family-projects--btn" href="https://goo.gl/kAb7ti" role="button" style="color: rgb(255, 255, 255);">Submit your project now</a>
-          <p></p>
-        </div>
-      </div>
-    </div>
-  </div>
-  <div id="family" class="row">
+  <div class="py-5 bg-primary">
     <div class="container">
-      <div class="family-header text-center">
-        <h2 class="text-center">&nbsp;<br></h2>
-        <h2 class="text-center">Bliss Family Projects</h2>
+      <div id="expenses" class="row cover bottom text-center d-inline-flex justify-content-center align-items-center" style="background-image: linear-gradient(rgba(0, 0, 0, 0), rgba(0, 0, 0, 0)); background-position: left top; background-size: 100%; background-repeat: repeat;">
+        <h3 class="display-3 text-dark" style="color: #0080ff;"><b>Expenses </b></h3>
+        <section class="counting">
+          <div class="layout">
+            <h2 class="text-center" style="color: #fff;">2017 Revenue (year one)</h2>
+            <div class="grid-3">
+              <span class="count1 counter text-dark" style="color: #0080ff;">899.00</span>
+              <p>Contributions, Grants, Gifts</p>
+            </div> <!-- /.col-sm-3 -->
+            <div class="grid-3">
+              <span class="count2 counter text-dark" style="color: #0080ff;">0</span>
+              <p>Program Services</p>
+            </div><!-- /.col-sm-3 -->
+            <div class="grid-3">
+              <span class="counter text-dark" style="color: #0080ff;">0</span>
+              <p>Special Events</p>
+            </div><!-- /.col-sm-3 -->
+            <div class="grid-3">
+              <span class="counter count4 text-dark" style="color: #0080ff;">0</span>
+              <p>Other Revenue</p>
+            </div><!-- /.col-sm-3 -->
+          </div>
+        </section>
+        <section class="counting">
+          <div class="layout">
+            <h2 class="text-center" style="color: #fff;">2017 Expenses (year one)</h2>
+            <div class="grid-3">
+              <span class="count1 counter text-dark" style="color: #0080ff;">0</span>
+              <p>Program Services &amp; Affiliates</p>
+            </div> <!-- /.col-sm-3 -->
+            <div class="grid-3">
+              <span class="count2 counter text-dark" style="color: #0080ff;">360.00</span>
+              <p>Administration</p>
+            </div><!-- /.col-sm-3 -->
+            <div class="grid-3">
+              <span class="counter text-dark" style="color: #0080ff;">0</span>
+              <p>Fundraising</p>
+            </div><!-- /.col-sm-3 -->
+            <div class="grid-3">
+              <span class="counter count4 text-dark" style="color: #0080ff;">295.00</span>
+              <p>Other Expenses</p>
+            </div><!-- /.col-sm-3 -->
+          </div>
+        </section>
+        <!-- End #Contact-->
       </div>
-      <div class="center">
-        <h4 class="text-center highlight_secondary">The Bliss Family projects we currently support can be found below:<br><br></h4>
-        <div class="col-lg-4">
-          <div class="family">
-            <div class="family-image text-center">
-              <img class="img-circle img-responsive" src="images/invictrix.jpg">
-              <div class="family-links ">
-                <div class="family-links-list">
-                  <a href="https://t.me/InvictusROM" target="_blank"><i class="fab fa-telegram"></i></a>
-                  <a href="https://plus.google.com/communities/109716291977795337501" target="_blank"><i class="fab fa-google-plus"></i></a>
-                </div>
-                <!-- /.family-links-list -->
-              </div>
-              <!-- /.family-links -->
-            </div>
-            <!-- /.family-image -->
-            <div class="family-content text-center">
-              <div class="family-name">Invictrīx ROM</div>
-              <div class="family-role">
-                <h4>AOSP/CAF</h4>
-              </div>
-              <h4 class="family-description"> Invictrīx ROM emphasizes performance, offering heavy optimizations along with a unique dark themed style.</h4>
-            </div>
-            <!-- /.family-content -->
-          </div>
-          <!-- /.family -->
+    </div>
+  </div>
+  <div class="row">
+    <div class="container">
+      <div class="row">
+        <div class="px-5 col-md-6 text-center mx-auto">
+          <h3 class="my-3 highlight_secondary team-header text-white"> </h3><br>
+          <h2 class="my-3 highlight_secondary team-header text-white">We volunteer our time.</h2>
+          <p class="mb-3">We are a 501(c3) nonprofit, run by people that donate their free time towards the project. We do our best to bring a quality OS to your device, while working a real job on the side in most cases. Please consider showing us we're on the right track by clicking the button below. </p> <a href="https://www.paypal.me/TeamBliss" class="btn btn-primary">Buy Us a Beer</a>
+          <p class="mt-2"></p>
         </div>
-        <div class="col-lg-4">
-          <div class="family">
-            <div class="family-image text-center">
-              <img class="img-circle img-responsive" src="images/xtremis.jpg">
-              <div class="family-links ">
-                <div class="family-links-list">
-                  <a href="#" target="_blank"><i class="fab fa-telegram"></i></a>
-                  <a href="#" target="_blank"><i class="fab fa-google-plus"></i></a>
-                </div>
-                <!-- /.family-links-list -->
-              </div>
-              <!-- /.family-links -->
+        <div class="col-md-6 py-2">
+          <div class="beer-animation-wrapper mt-4">
+            <div class="beer" style="	transform:  translateX(12em) ;">
+              <div class="foam"></div>
             </div>
-            <!-- /.family-image -->
-            <div class="family-content text-center">
-              <div class="family-name">Xtremis Project</div>
-              <div class="family-role">
-                <h4>Chrome OS ROM</h4>
-              </div>
-              <h4 class="family-description"> Currently pre-release, this project is progressing steadily and will soon have more details to share. Please check in later.</h4>
-            </div>
-            <!-- /.family-content -->
           </div>
-          <!-- /.family -->
-        </div>
-        <div class="col-lg-4">
-          <div class="family">
-            <div class="family-image text-center">
-              <img class="img-circle img-responsive" src="images/soap.jpg">
-              <div class="family-links ">
-                <div class="family-links-list">
-                  <a href="https://plus.google.com/u/0/107610198397215674589" target="_blank"><i class="fab fa-google-plus"></i></a>
-                  <!--<a href="#" target="_blank"><i class="fa fa-google-plus"></i></a> -->
-                </div>
-                <!-- /.family-links-list -->
-              </div>
-              <!-- /.family-links -->
-            </div>
-            <!-- /.family-image -->
-            <div class="family-content text-center">
-              <div class="family-name">SOAP ROM</div>
-              <div class="family-role">
-                <h4>SixOpenAndroidProject ROM, AOSP</h4>
-              </div>
-              <h4 class="family-description"> SOAP is an AOSP ROM that focuses on being a slim and clean ROM.</h4>
-            </div>
-            <!-- /.family-content -->
-          </div>
-          <!-- /.family -->
-        </div>
-        <div class="center col-lg-4">
-          <h2 class="text-center">&nbsp;<br></h2>
-          <h2 class="text-center">&nbsp;<br></h2>
         </div>
       </div>
     </div>
   </div>
-  <!-- End #About -->
-  <footer class="footer">
-    <div class="footer container-fluid ">
-      <div class="container-fluid">
-        <div class="row ">
-          <div class="col-xs-6 col-sm-3 column footer-header">
-            <h4 class="footer-header">Information</h4>
-            <ul class="list-unstyled">
-              <li class="portfolio-projects--desc">
-                <a href="index.html">Back Home</a>
-              </li>
-              <li class="portfolio-projects--desc">
-                <a href="#about2">About</a>
-              </li>
-              <li class="portfolio-projects--desc">
-                <a href="#expenses">Expenses</a>
-              </li>
-            </ul>
-          </div>
-          <div class="col-xs-6 col-sm-3 column footer-header">
-            <h4 class="footer-header">About</h4>
-            <ul class="list-unstyled">
-              <li class="portfolio-projects--desc">
-                <a href="#family2">Family</a>
-              </li>
-              <li class="portfolio-projects--desc">
-                <a href="https://www.paypal.me/TeamBliss">Donate</a>
-              </li>
-            </ul>
-          </div>
-          <div class="col-xs-12 col-sm-3 column footer-header">
-            <h4 class="footer-header">Get In Touch</h4>
-            <form action="mailto:blissfamilyroms@gmail.com" method="GET" data-form-title="CONTACT US">
-              <input type="hidden" data-form-email="true">
-              <div class="form-group">
-                <input type="text" class="form-control" name="name" required="" placeholder="Name*" data-form-field="Name">
-              </div>
-              <div class="form-group">
-                <input type="email" class="form-control" name="email" required="" placeholder="Email*" data-form-field="Email">
-              </div>
-              <div class="form-group">
-                <textarea class="form-control" name="message" placeholder="Message" rows="3" data-form-field="Message"></textarea>
-              </div>
-              <div>
-                <button type="submit" class="btn btn-lg btn-danger">SEND</button>
-              </div>
-            </form>
-          </div>
-          <div class="col-xs-12 col-sm-3 text-right footer-header">
-            <h4 class="footer-header">Follow</h4>
-            <ul class="list-inline">
-              <li class="">
-                <a rel="nofollow" href="https://t.me/OfficialBlissROMs" title="Telegram"><i class="fab fa-telegram fa-4x"></i></a>&nbsp; </li>
-              <li class="">
-                <a rel="nofollow" href="https://www.facebook.com/BlissFamilyOfROMs/" title="Facebook"><i class="fab fa-facebook fa-4x"></i></a>&nbsp; </li>
-              <li class="">
-                <a rel="nofollow" href="https://plus.google.com/communities/118265887490106132524" title="Google+"><i class="fab fa-google-plus fa-4x"></i></a>
-              </li>
-              <li class="">
-                <a rel="nofollow" href="https://twitter.com/Bliss_Roms" title="Twitter"><i class="fab fa-twitter fa-4x"></i></a>
-              </li>
-            </ul>
-          </div>
+  <div class="py-5 bg-dark">
+    <div class="container">
+      <div class="row">
+        <div class="col-md-8 text-left">
+          <h3 class="text-primary display-3"> <b>Join Team Bliss</b></h3>
+          <h1 class="">We are accepting applications now</h1>
+          <p class="text-primary lead">* only volunteer positions currently available. Internships coming soon *</p>
+          <p class="mb-3 lead" contenteditable="true">We are accepting people in small managable groups while we grow, and we tend to lean towards the type of people that want to learn and grow with Bliss Family of ROMs. Bliss provides the tools, knowledge and the mentorship needed to help bring your development dreams to reality, and all we ask in return is a minimum contribution towards Bliss ROM while you learn and grow in your strengths. If you're an individual and would like to apply to join our team, please use the button below </p> <a href="https://goo.gl/forms/PdiaAj1PojosmehK2" class="btn btn-primary">Join Our Team</a>
         </div>
-        <br>
-        <span class="pull-right text-muted small"><a href="https://blissroms.com">Bliss Site by Team Bliss</a> ©2017-2018 Team Bliss</span>
       </div>
     </div>
-  </footer>
-  <!--<script src="https://cdnjs.cloudflare.com/ajax/libs/tether/1.3.1/js/tether.min.js" type="text/javascript"></script>-->
-  <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/2.1.3/jquery.min.js" type="text/javascript"></script>
-  <!--<script src="https://cdnjs.cloudflare.com/ajax/libs/waypoints/2.0.3/waypoints.min.js"></script>-->
-  <script src="https://bfintal.github.io/Counter-Up/jquery.counterup.min.js"></script>
-  <script src="js/counter.js"></script>
-  <script src="https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/4.0.0-alpha.6/js/bootstrap.min.js" type="text/javascript"></script>
-  <script src="https://cdn.jsdelivr.net/jquery.scrollto/2.1.0/jquery.scrollTo.min.js" type="text/javascript"></script>
-  <!--<script src="js/jquery-2.1.1.js" type="text/javascript"></script> -->
-  <script src="js/jquery.mixitup.min.js" type="text/javascript"></script>
-  <script src="js/main.js" type="text/javascript"></script>
+  </div>
+  <div class="py-5 text-center text-md-right" style="	background-image: url(images/Bliss_view_bg_1.png);	background-position: right bottom;	background-size: cover;	background-repeat: repeat;	background-attachment: fixed;">
+    <div class="container">
+      <div class="row">
+        <div class="p-5 mx-auto mx-md-0 ml-md-auto col-10 col-md-9">
+          <h3 class="display-3 text-white">Submit Your Project</h3>
+          <p class="mb-3 lead">Got a great project but having trouble getting things off the ground? Or maybe you are looking to gain a few more people to help you out on it. Whatever your situation is, you can submit your project below for a chance to include it as a Bliss Family project.</p>
+          <form class="form-inline d-flex justify-content-end">
+            <div class="input-group"> <a class="btn btn-primary text-center d-flex justify-content-center" href="https://goo.gl/kAb7ti" role="button" style="color: rgb(255, 255, 255);">Submit your project now</a>
+            </div>
+          </form>
+        </div>
+      </div>
+    </div>
+  </div>
+  <div class="py-5" id="team" style="">
+    <div class="container">
+      <div class="row">
+        <div class="mx-auto col-md-12 text-center">
+          <h3 class="display-3">Who we are</h3>
+        </div>
+      </div>
+      <div class="row">
+        <div class="col-lg-6">
+          <div class="row mb-4">
+            <div class="col-3"> <img class="img-fluid d-block mx-auto rounded-circle" src="https://lh3.googleusercontent.com/w7i8JBSfddUp88DpBjjdT_PBODfKTiFV8TKHqyZnsU3m0-ppYXsuafqDtBxakFYW3mjIahKkFYBepZIGRQ=w1920-h1080-no" width="100" alt="Card image cap"> </div>
+            <div class="col-9">
+              <h4><b>Jack Eagle&nbsp;</b>- CEO&nbsp; / Founder / Developer</h4>
+              <p class="mb-0">&nbsp;</p>
+            </div>
+          </div>
+          <div class="row mb-4">
+            <div class="col-3"> <img class="img-fluid d-block mx-auto rounded-circle" src="https://lh3.googleusercontent.com/xhKBfn9HcjWayS9gQizUuh7JATtI4i-OvVv9Q6XPy5v5IyiI44lqRoxtMIyI3rlLc7OCyparEB9OqGT_Vg=w1920-h1080-no" width="100" alt="Card image cap"> </div>
+            <div class="col-9">
+              <h4><b>Vaughn Newman</b> -&nbsp;Board Member / Admin / Developer</h4>
+              <p class="mb-0">&nbsp;</p>
+            </div>
+          </div>
+        </div>
+        <div class="col-lg-6">
+          <div class="row mb-4">
+            <div class="col-3"> <img class="img-fluid d-block mx-auto rounded-circle" src="https://lh3.googleusercontent.com/hcV4Tp81H4TJskQhpKckcDBqwnETos_ZOxXsQbiZGOT5OxMC-3pOD5i22j1tPiaubWW74tmnwB0ixvGwELQ=w1920-h1080-no" width="100" alt="Card image cap"> </div>
+            <div class="col-9">
+              <h4><b>Jon West&nbsp;</b>- CTO / Incorporator / Developer</h4>
+              <p class="mb-0">&nbsp;</p>
+            </div>
+          </div>
+          <div class="row mb-4">
+            <div class="col-3"> <img class="img-fluid d-block mx-auto rounded-circle" src="https://lh3.googleusercontent.com/JOdHk7TYY-SLjAANLuK7t68Oz6w4fDFody-Uwj3rtH6oSZkljniUceYFQ52rbJXeBv4kDgoGhrtamLJlwZc=w1920-h1080-no" width="100" alt="Card image cap"> </div>
+            <div class="col-9">
+              <h4> <b>Antonio Luciano</b>&nbsp;- Board Member /&nbsp;Project Manager /&nbsp;App Developer</h4>
+              <p class="mb-0">&nbsp;</p>
+            </div>
+          </div>
+        </div>
+      </div>
+      <div class="row">
+        <div class="col-lg-6">
+          <div class="row mb-4">
+            <div class="col-3"> <img class="img-fluid d-block mx-auto rounded-circle" src="https://lh3.googleusercontent.com/LZrBsYT1S4qQI92uCuWx34QSGDcKpwY1G2h3LXT3tEvMPuSA8d6tiY7CsLYvBCznXk4sJhgr6UFk8pg1oA=w1920-h1080-no" width="100" alt="Card image cap"> </div>
+            <div class="col-9">
+              <h4><b>BitO BSessiOn</b>&nbsp;- Board Member / Developer</h4>
+              <p class="mb-0">&nbsp;</p>
+            </div>
+          </div>
+          <div class="row mb-4">
+            <div class="col-3"> <img class="img-fluid d-block mx-auto rounded-circle" src="https://lh3.googleusercontent.com/iu4p6sC5xbTmz7gF5eYCucSHuI_1SBJnRkfNWcNQ6Cw7oCt5ryMHaU_DXpjWEgGX43SnPRs4dSjErXU=w1920-h1080-no" width="100" alt="Card image cap"> </div>
+            <div class="col-9">
+              <h4> <b>Customworx&nbsp;</b>- Board Member / Graphic Designer </h4>
+              <p class="mb-0">&nbsp;</p>
+            </div>
+          </div>
+        </div>
+        <div class="col-lg-6">
+          <div class="row mb-4">
+            <div class="col-3"> <img class="img-fluid d-block mx-auto rounded-circle" src="https://lh3.googleusercontent.com/eRqBEkS4_cWFEkLce4sVRmyCkAwgsGZwIg1kE12_gjBaghKQ8Omc6V2UJT6q6LwZS8l-LkutUrskyeLFrd0=w1920-h1080-no" width="100" alt="Card image cap"> </div>
+            <div class="col-9">
+              <h4><b>Evan Galvin</b>&nbsp;- Board Member / Product Technology Strategist</h4>
+              <p class="mb-0">&nbsp;</p>
+            </div>
+          </div>
+          <div class="row mb-4">
+            <div class="col-3"> <img class="img-fluid d-block mx-auto rounded-circle" src="https://lh3.googleusercontent.com/a-/AAuE7mC91eukOeGZ1fU2mULqdlLqrcsYmUWGjZZMoXwMAIk=s1920-p-no-il" width="100" alt="Card image cap"> </div>
+            <div class="col-9">
+              <h4> <b>Donna West</b> - Board Member / Treasurer</h4>
+              <p class="mb-0">&nbsp;</p>
+            </div>
+          </div>
+        </div>
+      </div>
+    </div>
+  </div>
+  <!-- Footer -->
+  <div class="py-5 bg-dark">
+    <div class="container">
+      <div class="row">
+        <div class="col-md-9">
+          <p class="lead">Sign up to our newsletter for the latest news</p>
+          <form class="form-inline">
+            <div class="form-group">
+              <input type="email" class="form-control" placeholder="Your e-mail here"> </div>
+            <button type="submit" class="btn ml-2 btn-outline-primary">Subscribe</button>
+          </form>
+        </div>
+        <div class="col-4 col-md-1 align-self-center my-3">
+          <a href="https://www.facebook.com" target="blank"><i class="fa fa-fw fa-facebook fa-3x text-white"></i></a>
+        </div>
+        <div class="col-4 col-md-1 align-self-center my-3">
+          <a href="https://twitter.com" target="blank"><i class="fa fa-fw fa-twitter fa-3x text-white"></i></a>
+        </div>
+        <div class="col-4 col-md-1 align-self-center my-3">
+          <a href="https://www.instagram.com" target="blank"><i class="fa fa-fw fa-instagram fa-3x text-white"></i></a>
+        </div>
+      </div>
+      <div class="row">
+        <div class="col-12 my-3 text-center">
+          <p class="text-muted">© Copyright 2019 Bliss Family of ROMs - All rights reserved.</p>
+        </div>
+      </div>
+    </div>
+  </div>
+  <!-- JavaScript dependencies -->
   <script src="js/mainani.js" type="text/javascript"></script>
-  <script src="js/script.js" type="text/javascript"></script>
-  <script type="text/javascript">
-    // Select all links with hashes
-    $('a[href*="#"]')
-      // Remove links that don't actually link to anything
-      .not('[href="#"]').not('[href="#0"]').click(function(event) {
-        // On-page links
-        if (location.pathname.replace(/^\//, '') == this.pathname.replace(/^\//, '') && location.hostname == this.hostname) {
-          // Figure out element to scroll to
-          var target = $(this.hash);
-          target = target.length ? target : $('[name=' + this.hash.slice(1) + ']');
-          // Does a scroll target exist?
-          if (target.length) {
-            // Only prevent default if animation is actually gonna happen
-            event.preventDefault();
-            $('html, body').animate({
-              scrollTop: target.offset().top
-            }, 1000, function() {
-              // Callback after animation
-              // Must change focus!
-              var $target = $(target);
-              $target.focus();
-              if ($target.is(":focus")) { // Checking if the target was focused
-                return false;
-              } else {
-                $target.attr('tabindex', '-1'); // Adding tabindex for elements not focusable
-                $target.focus(); // Set focus again
-              };
-            });
-          }
-        }
-      });
-  </script>
+  <script src="https://code.jquery.com/jquery-3.3.1.min.js"></script>
+  <script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.14.3/umd/popper.min.js" integrity="sha384-ZMP7rVo3mIykV+2+9J3UJ46jBk0WLaUAdn689aCwoqbBJiSnjAK/l8WvCWPIPm49" crossorigin="anonymous"></script>
+  <script src="https://stackpath.bootstrapcdn.com/bootstrap/4.1.3/js/bootstrap.min.js" integrity="sha384-ChfqqxuZUCnJSK3+MXmPNIyE6ZbWh2IMqE241rYiqJxyMiZ6OW/JmZQ5stwEULTy" crossorigin="anonymous"></script>
+  <!-- Script: Smooth scrolling between anchors in the same page -->
+  <script src="js/smooth-scroll.js"></script>
+
 </body>
 
 </html>
\ No newline at end of file
diff --git a/css/animations.css b/css/animations.css
index 38076ad..bfa35cb 100644
--- a/css/animations.css
+++ b/css/animations.css
@@ -184,7 +184,7 @@
   background-size:cover;
   padding:0; 
   position:relative;
-  height:500px;
+  height:300px;
   border-top-left-radius:6px;
   border-top-right-radius:6px;
 }
@@ -209,20 +209,19 @@
 }
 
 #popup-modal .modal-social {
-  position:absolute;
+  /*position:absolute;
   right: 65px;
   top: 130px;
-  width: 215px;
+  width: 215px;*/
 }
 
 #popup-modal .modal-box {
   margin: auto;
   position:absolute;
-  top: 40%; left: 25%; bottom: 50%; right: 25%;
+  top: 40%; left: 15%; bottom: 50%; right: 15%;
   z-index:9999;
 }
 
-
 .overlay {
   position: fixed;
   top: 0;
@@ -412,3 +411,291 @@
     opacity: 0;
   }
 }
+
+/* Anim
+width: 378px;
+  height: 290px;
+ */
+.animation {
+  display: inline-block;
+  position: relative;
+  width: 46em;
+  height: 30em;
+  margin: -2vh auto 0 auto;
+  vertical-align: middle;
+}
+@media (max-width:720px) {
+  .animation {margin-left:-30rem;margin-right:-30rem;}
+}
+@media (max-width:450px) {
+  .animation {width:58rem;height:38rem;}
+}
+@media (max-width:450px) {
+  .animation {width:58rem;height:38rem;}
+}
+@media (max-width:400px) {
+  .animation {width:55rem;height:36rem;}
+}
+@media (max-width:380px) {
+  .animation {width:50rem;height:33rem;}
+}
+@media (max-width:340px) {
+  .animation {width:47rem;height:31rem;}
+}
+@media (max-width:320px) {
+  .animation {width:42rem;height:28rem;}
+}
+@media (max-height:650px) {
+  .animation {margin-top: -7vh !important;margin-bottom: 10vh !important;}
+}
+@media (min-height:651px) {
+  .animation {margin-top: -8vh !important;margin-bottom: 10vh !important;}
+}
+@media (min-height:670px) {
+  .animation {margin-top: -6.5vh !important;margin-bottom: 10vh !important;}
+}
+@media (min-height:720px) {
+  .animation {margin-top: -2vh !important;margin-bottom: 10vh !important;overflow-y:visible}
+}
+@media (min-height:800px) {
+  .animation {margin-top: 0 !important;margin-bottom: 10vh !important;overflow-y:visible}
+}
+.animation .device {
+  position: absolute;
+  width: 100%;
+  height: 100%;
+  left: 50%;
+  top: 50%;
+  background: #111;
+  -webkit-transition: all 0.4s cubic-bezier(0.175, 0.885, 0.32, 1.275);
+  -moz-transition: all 0.4s cubic-bezier(0.175, 0.885, 0.32, 1.275);
+  -ms-transition: all 0.4s cubic-bezier(0.175, 0.885, 0.32, 1.275);
+  transition: all 0.4s cubic-bezier(0.175, 0.885, 0.32, 1.275);
+  -moz-transform: translate(-50%, -50%);
+  -ms-transform: translate(-50%, -50%);
+  -webkit-transform: translate(-50%, -50%);
+  transform: translate(-50%, -50%);
+}
+.animation .device .phone-home-button,
+.animation .device .tablet-home-button {
+  position: absolute;
+  border-radius: 50%;
+  background: #444;
+  opacity: 0;
+  z-index: 1;
+  -webkit-transition: all 0.4s ease;
+  -moz-transition: all 0.4s ease;
+  -ms-transition: all 0.4s ease;
+  transition: all 0.4s ease;
+}
+.animation .device .phone-home-button {
+  width: 16px;
+  height: 16px;
+  margin-top: -8px;
+  right: 11px;
+  top: 50%;
+}
+.animation .device .tablet-home-button {
+  width: 12px;
+  height: 12px;
+  margin-left: -6px;
+  bottom: 7px;
+  left: 50%;
+}
+.animation .device .screen-stand {
+  position: absolute;
+  width: 100%;
+  margin-left: -10px;
+  margin-top: -1px;
+  top: 60%;
+  opacity: 0;
+  z-index: 1;
+  -webkit-transition: all 0.4s ease-out;
+  -moz-transition: all 0.4s ease-out;
+  -ms-transition: all 0.4s ease-out;
+  transition: all 0.4s ease-out;
+}
+.animation .device .screen-stand .leg {
+  position: absolute;
+  width: 12px;
+  height: 16px;
+  left: 50%;
+  top: 0;
+  margin-left: -6px;
+  background: #111;
+}
+.animation .device .screen-stand .foot {
+  position: absolute;
+  width: 120px;
+  height: 4px;
+  left: 50%;
+  top: 15px;
+  margin-left: -60px;
+  border-top-left-radius: 2px;
+  border-top-right-radius: 2px;
+  background: #111;
+}
+.animation .device .display {
+  position: relative;
+  width: 100%;
+  height: 100%;
+  overflow: hidden;
+  background: #34495e;
+  z-index: 3;
+}
+.animation .device .display div {
+  position: absolute;
+  width: 100%;
+  height: 100%;
+  left: 100%;
+  white-space: nowrap;
+  -webkit-transition: all 0.4s ease;
+  -moz-transition: all 0.4s ease;
+  -ms-transition: all 0.4s ease;
+  transition: all 0.4s ease;
+}
+.animation .device .display div div {
+  position: absolute;
+  width: 100%;
+  left: 0;
+  top: 50%;
+  margin-top: -14px;
+  font-size: 20px;
+  text-align: center;
+ /* color: #0080ff;*/
+}
+@media (max-width:450px) {
+  .animation .device .display div div {width:100%;max-width:100%;font-size:12px !important;}
+}
+  .animation .device .display .slide1 div {margin-top:0px;}
+.animation .device .display div div em {
+  font-weight: bold;
+}
+.animation .device .display .slide1 {
+  /* background: #000; */
+  background: url("https://i.imgur.com/wCp0xpe.jpg");
+  background-size: cover;
+  background-repeat: no-repeat;
+  background-position: center center;
+  text-shadow:  1px 1px 2px #1f1f1f, -1px -1px 2px #1f1f1f, -1px 0 2px #1f1f1f, 0 -1px 2px #1f1f1f, 1px 0 2px #1f1f1f, 0 1px 2px #1f1f1f, 1px -1px 2px #1f1f1f, -1px 1px 2px #1f1f1f,
+                2px 2px 2px #1f1f1f, -2px -2px 2px #1f1f1f, -2px 0 2px #1f1f1f, 0 -2px 2px #1f1f1f, 2px 0 2px #1f1f1f, 0 2px 2px #1f1f1f, 2px -2px 2px #1f1f1f, -2px 2px 2px #1f1f1f,
+                3px 3px 2px #1f1f1f, -3px -3px 2px #1f1f1f, -3px 0 2px #1f1f1f, 0 -3px 2px #1f1f1f, 3px 0 2px #1f1f1f, 0 3px 2px #1f1f1f, 3px -3px 2px #1f1f1f, -3px 3px 2px #1f1f1f,
+                4px 4px 4px #1f1f1f, -4px -4px 4px #1f1f1f, -4px 0 4px #1f1f1f, 0 -4px 4px #1f1f1f, 4px 0 4px #1f1f1f, 0 4px 4px #1f1f1f, 4px -4px 4px #1f1f1f, -4px 4px 4px #1f1f1f;
+    color:white;
+}
+.animation .device .display .slide2 {
+  /* background: #000; */
+  background: url("https://i.imgur.com/KfArkPZ.jpg");
+  background-size: cover;
+  background-repeat: no-repeat;
+  background-position: center center;
+  text-shadow:  1px 1px 2px #fff, -1px -1px 2px #fff, -1px 0 2px #fff, 0 -1px 2px #fff, 1px 0 2px #fff, 0 1px 2px #fff, 1px -1px 2px #fff, -1px 1px 2px #fff,
+                2px 2px 2px #fff, -2px -2px 2px #fff, -2px 0 2px #fff, 0 -2px 2px #fff, 2px 0 2px #fff, 0 2px 2px #fff, 2px -2px 2px #fff, -2px 2px 2px #fff,
+                3px 3px 2px #fff, -3px -3px 2px #fff, -3px 0 2px #fff, 0 -3px 2px #fff, 3px 0 2px #fff, 0 3px 2px #fff, 3px -3px 2px #fff, -3px 3px 2px #fff,
+                4px 4px 4px #fff, -4px -4px 4px #fff, -4px 0 4px #fff, 0 -4px 4px #fff, 4px 0 4px #fff, 0 4px 4px #fff, 4px -4px 4px #fff, -4px 4px 4px #fff;
+  color:#0080ff;
+}
+.animation .device .display .slide3 {
+  /* background: #000; */
+  background: url("https://i.imgur.com/c55mey7.jpg");
+  background-size: cover;
+  background-repeat: no-repeat;
+  background-position: center center;
+  text-shadow:  1px 1px 2px #000, -1px -1px 2px #000, -1px 0 2px #000, 0 -1px 2px #000, 1px 0 2px #000, 0 1px 2px #000, 1px -1px 2px #000, -1px 1px 2px #000,
+                2px 2px 2px #000, -2px -2px 2px #000, -2px 0 2px #000, 0 -2px 2px #000, 2px 0 2px #000, 0 2px 2px #000, 2px -2px 2px #000, -2px 2px 2px #000,
+                3px 3px 2px #000, -3px -3px 2px #000, -3px 0 2px #000, 0 -3px 2px #000, 3px 0 2px #000, 0 3px 2px #000, 3px -3px 2px #000, -3px 3px 2px #000,
+                4px 4px 4px #000, -4px -4px 4px #000, -4px 0 4px #000, 0 -4px 4px #000, 4px 0 4px #000, 0 4px 4px #000, 4px -4px 4px #000, -4px 4px 4px #000;
+  color:white;
+}
+.animation[data-animation-step="1"] .device {
+  width: 87%;
+  height: 90%;
+  padding: 10px;
+  border-radius: 4px;
+}
+.animation[data-animation-step="1"] .device .slide1 {
+  left: 0%;
+}
+.animation[data-animation-step="1"] .device .screen-stand {
+  opacity: 1;
+  top: 100%;
+}
+.animation[data-animation-step="2"] .device {
+  width: 74%;
+  height: 75%;
+  padding: 16px;
+  border-radius: 10px;
+}
+.animation[data-animation-step="2"] .device .slide1 {
+  left: -100%;
+}
+.animation[data-animation-step="2"] .device .slide2 {
+  left: 0%;
+}
+.animation[data-animation-step="2"] .device .tablet-home-button {
+  opacity: 1;
+}
+.animation[data-animation-step="3"] .device {
+  width: 27%;
+  height: 75%;
+  padding: 16px 4px;
+  border-radius: 6px;
+}
+.animation[data-animation-step="3"] .device .slide1,
+.animation[data-animation-step="3"] .device .slide2 {
+  left: -100%;
+}
+.animation[data-animation-step="3"] .device .slide3 {
+  left: 0%;
+}
+.animation[data-animation-step="3"] .device .phone-home-button {
+  opacity: 1;
+}
+  @media (min-height:800px) {
+    .animation[data-animation-step="1"] .device {width:87%; height:90%;}
+    .animation[data-animation-step="2"] .device {width:80%; height:80%;}
+    .animation[data-animation-step="3"] .device {width:28%; height:80%;}
+  }
+  @media (max-height:720px) {
+    .animation[data-animation-step="1"] .device {width:72%; height:75%;}
+    .animation[data-animation-step="2"] .device {width:59%; height:60%;}
+    .animation[data-animation-step="3"] .device {width:22%; height:63%;}
+    .animation .device .display div div {font-size:16px;}
+  }
+  @media (max-height:650px) {
+    .animation[data-animation-step="1"] .device {width:62%; height:65%;}
+    .animation[data-animation-step="2"] .device {width:54%; height:55%;}
+    .animation[data-animation-step="3"] .device {width:22%; height:63%;}
+    .animation .device .display div div {font-size:15px;}
+  }
+  @media (max-width:560px) {
+    .animation[data-animation-step="1"] .device {margin-top:1%;width:72%; height:75%;}
+    .animation[data-animation-step="2"] .device {margin-top:1%;width:65%; height:66%;}
+    .animation[data-animation-step="3"] .device {margin-top:1%;width:28%; height:80%;}
+    .animation .device .display div div {font-size:15px;}
+  }
+  @media (max-width:520px) {
+    .animation[data-animation-step="1"] .device {margin-top:0%;width:66%; height:69%;}
+    .animation[data-animation-step="2"] .device {margin-top:0%;width:62%; height:63%;}
+    .animation[data-animation-step="3"] .device {margin-top:0%;width:28%; height:80%;}
+    .animation .device .display div div {font-size:15px;}
+  }
+  @media (max-width:460px) {
+    .animation[data-animation-step="1"] .device {margin-top:0%;width:58%; height:61%;}
+    .animation[data-animation-step="2"] .device {margin-top:0%;width:54%; height:55%;}
+    .animation[data-animation-step="3"] .device {margin-top:0%;width:25%; height:72%;}
+    .animation .device .display div div {font-size:15px;}
+  }
+  @media (max-width:350px) {
+    .animation[data-animation-step="1"] .device {margin-top:3%;width:62%; height:65%;}
+    .animation[data-animation-step="2"] .device {margin-top:3%;width:58%; height:60%;}
+    .animation[data-animation-step="3"] .device {margin-top:9%;width:30%; height:80%;}
+    .animation .device .display div div {font-size:15px;}
+  }
+  @media (max-width:320px) {
+    .animation[data-animation-step="1"] .device {margin-top:6%;width:62%; height:65%;}
+    .animation[data-animation-step="2"] .device {margin-top:6%;width:58%; height:60%;}
+    .animation[data-animation-step="3"] .device {margin-top:12%;width:30%; height:80%;}
+    .animation .device .display div div {font-size:15px;}
+  }
+
diff --git a/css/style.css b/css/style.css
deleted file mode 100644
index 587d4fb..0000000
--- a/css/style.css
+++ /dev/null
@@ -1,1402 +0,0 @@
-img {
-  width: 100%; }
-
-body {
-  font-family: "Comfortaa", Helvetica, Arial, sans-serif;
-  line-height: 1.4;
-  background: url("https://i.imgur.com/BOGKaGy.jpg") no-repeat center center fixed;
-  background-color: #0080ff;
-  width: 100%;
-  position: absolute;
-  top: 0;
-  left: 0;
-  }
-
-#bg {
-  position: fixed;
-  top: -50%;
-  left: -50%;
-  width: 200%;
-  height: 200%;
-}
-#bg img {
-  position: absolute;
-  top: 0;
-  left: 0;
-  right: 0;
-  bottom: 0;
-  margin: auto;
-  min-width: 50%;
-  min-height: 50%;
-}
-
-h1, .h1,
-h2, .h2,
-h3, .h3,
-h4, .h4,
-h5, .h5,
-h6, .h6 {
-  font-family: "Comfortaa", Helvetica, Arial, sans-serif;
-  line-height: 1.4;
-  color: #222222; }
-h1, .h1 {font-size: 64px;}
-h2, .h2 {font-size: 42px;}
-h4, .h4 {font-weight: bolder;}
-
-p {
-  font-family: "Comfortaa", sans-serif;
-  color: #ffffff;
-  margin: 0 0 30px; }
-
-a, .btn {
-  -webkit-transition: color .2s ease 0s, border-color .2s ease 0s, background-color .2s ease 0s;
-  -moz-transition: color .2s ease 0s, border-color .2s ease 0s, background-color .2s ease 0s;
-  -o-transition: color .2s ease 0s, border-color .2s ease 0s, background-color .2s ease 0s;
-  transition: color .2s ease 0s, border-color .2s ease 0s, background-color .2s ease 0s;
-}
-
-a:hover, a:focus, a:active {text-decoration: none;}
-
-body > .container-fluid {
-  padding: 0; }
-
-#portfolio > .container {
-  padding-left: 30px;
-  padding-right: 30px;
-}
-#portfolio > div > div > div {padding-right: 0;padding-left: 0}
-
-#family-lt > .container {
-  padding-left: 30px;
-  padding-right: 30px;
-  font-size: 18px;
-}
-#family-lt > div > div > div {padding-right: 0;padding-left: 0}
-
-.row,
-.container-fluid>.navbar-collapse,
-.container-fluid>.navbar-header,
-.container>.navbar-collapse,
-.container>.navbar-header {
-  margin:auto;
-}
-
-.container-fluid .text-muted {
-  margin: 20px 0; }
-
-.btn:focus, a:focus {
-  outline: none !important; }
-
-.navbar {
-  height: 70px;
-  background-color: transparent;
-  background: transparent;
-  border: none;
-  color: #ffffff;
-  z-index: 100;
-  margin-bottom: 0;
-  padding-left: 30px;
-  padding-right: 30px;
-  border-radius: 0;
-  -webkit-transition: background-color .2s ease 0s;
-  -moz-transition: background-color .2s ease 0s;
-  -o-transition: background-color .2s ease 0s;
-  transition: background-color .2s ease 0s;  }
-.navbar > .container {padding: 4px 0 0 0;width: 100%;margin-top:2px;}
-.navbar-brand {
-  opacity: 0;
-  margin-top: 5px;
-  padding: 15px 0;
-  color: #ffffff;
-  font-weight: 400; }
-
-.navbar-default .navbar-nav > li > a {
-  color: #ffffff;
-  font-weight: 500;
-  font-size: 1em;
-  text-transform: lowercase;
-  margin: 3px 5px;
-  border: 1px solid transparent;
-  border-radius: 5px;
-  -webkit-transition: color .2s ease 0s, border-color .2s ease 0s;
-  -moz-transition: color .2s ease 0s, border-color .2s ease 0s;
-  -o-transition: color .2s ease 0s, border-color .2s ease 0s;
-  transition: color .2s ease 0s, border-color .2s ease 0s; }
-  .navbar-default .navbar-nav > li:last-child > a {margin-right: 0}
-.navbar-default .navbar-nav > li > a:hover {
-  color: #ffffff;
-  border: 1px solid #ffffff; }
-.navbar-default .navbar-nav > li > a:active,
-.navbar-default .navbar-nav > li > a:focus,
-.navbar.solid .navbar-nav > li > a:active, .navbar.solid .navbar-nav > li > a:focus {
-  color: rgba(255,255,255,0.8);
-  border: 1px solid rgba(255,255,255,0.8); }
-.navbar-default .navbar-nav > li > a:visited {
-  color: #ffffff;
-  text-decoration: none; }
-.navbar-default .navbar-nav > .active > a, .navbar-default .navbar-nav > .active > a:hover {
-  background-color: transparent;
-  color: #ffffff; }
-.navbar-default .navbar-nav > .active > a:focus,
-.navbar.solid .navbar-nav > li > a:active,
-.navbar.solid .navbar-nav > li > a:focus {
-  background-color: transparent;
-  color: rgba(255,255,255,0.8); }
-.navbar-toggle {margin-right:0;padding:15px;}
-.navbar-default .navbar-toggle {
-  border-color: #ffffff; }
-  .navbar-default .navbar-toggle:hover, .navbar-default .navbar-toggle:focus {
-    background-color: #222222;
-  }
-  .navbar-default .navbar-toggle .icon-bar {
-    color: #ffffff;
-    background-color: #ffffff; }
-.navbar-default .navbar-collapse.collapse.in ul {
-  background-color: #222222;
-}
-.navbar-collapse.collapsing {
-  background-color: #222222;
-}
-.navbar-default .navbar-toggle .icon-bar {
-    color: #ffffff;
-    background-color: #ffffff; }
-.navbar-default .navbar-collapse.collapse.in ul {
-  background-color: #222222;
-}
-.navbar-collapse.collapse.collapsing {
-  background-color: #222222;
-}
-
-.navbar-collapse.collapse.show {
-  background-color: #222222;
-  -webkit-transition: background-color .2s ease 0s;
-  -moz-transition: background-color .2s ease 0s;
-  -o-transition: background-color .2s ease 0s;
-  transition: background-color .2s ease 0s;
-  -webkit-border-bottom-left-radius: 4px;
-  -webkit-border-bottom-right-radius: 4px;
-  border-bottom-left-radius: 4px;
-  border-bottom-right-radius: 4px;
-}
-
-.navbar-collapse .navbar-nav > li > a,
-.navbar-collapse .navbar-nav > li > a:hover,
-.navbar-collapse .navbar-nav > li > a:focus,
-.navbar-collapse .navbar-nav > li > a:active {
-  border-color: transparent !important;
-}
-
-/* Solid class attached on scroll past first section */
-.navbar.solid {
-  background-color: #222222;
-  top: 0;
-  width: 100%;
-  margin: 0;
-  box-shadow: 0 7px 8px 0 rgba(0,0,0,0.3);
-  -webkit-transition: background-color .2s ease 0s, box-shadow .2s ease 0s;
-  -moz-transition: background-color .2s ease 0s, box-shadow .2s ease 0s;
-  -o-transition: background-color .2s ease 0s, box-shadow .2s ease 0s;
-  transition: background-color .2s ease 0s, box-shadow .2s ease 0s;
-  }
-  .navbar.solid .navbar-brand {
-    opacity: 1;
-    display: inline-block;
-    color: #ffffff;
-    -webkit-transition: color .2s ease 0s, border-color .2s ease 0s, opacity .2s ease 0s;
-    -moz-transition: color .2s ease 0s, border-color .2s ease 0s, opacity .2s ease 0s;
-    -o-transition: color .2s ease 0s, border-color .2s ease 0s, opacity .2s ease 0s;
-    transition: color .2s ease 0s, border-color .2s ease 0s, opacity .2s ease 0s; }
-  .navbar.solid .navbar-nav > li > a {
-    color: #ffffff;
-    -webkit-transition: color .2s ease 0s, border-color .2s ease 0s;
-    -moz-transition: color .2s ease 0s, border-color .2s ease 0s;
-    -o-transition: color .2s ease 0s, border-color .2s ease 0s;
-    transition: color .2s ease 0s, border-color .2s ease 0s; }
-
-.cover {
-  padding: 6% 0 8% 0; }
-  .cover.top {
-    padding: 10vh 0 15vh 0;
-    height: 100vh;
-    display: -webkit-box;
-    display: -ms-flexbox;
-    display: flex;
-    /* background-color: #0080ff;*/
-	background: url(images/web_bg_1280.png) no-repeat center center fixed;
-	-webkit-background-size: cover;
-	-moz-background-size: cover;
-	-o-background-size: cover;
-	background-size: cover;
-	}
-  .cover.bottom {
-    padding: 6% 0 5.5% 0; }
-  body > .cover.bottom:nth-child(4) {padding: 6% 0 5.5% 0 !important}
-  @media (max-width: 550px) {
-    .cover, .cover.bottom {padding: 17.5% 30px 17.5% 30px; } }
-
-.headline {
-  padding-top: 6.25em; }
-  body > div.container-fluid > div.row.cover.top > div > .row > .headline > img {
-    max-width: 1600px;
-    width: 100%;
-    margin: 0 auto;
-    padding-right: 30px;
-    padding-left: 30px;
-    display: block; }
-  @media screen and (min-width: 768px) {
-    .headline {
-      padding-top: 3.75em; } }
-  @media screen and (min-width: 992px) {
-    .headline {
-      padding-top: 1.5625em; } }
-  @media screen and (min-width: 1200px) {
-    .headline {
-      padding-top: 0; } }
-
-#about {
-  background-color: #222222; }
-  #about h2 {
-    color: #0080ff; }
-  #about > div > div.row.break > div > p {margin-bottom: 15px}
-
-#about2 {
-  background-color: #0080ff; }
-  #about2 h2 {
-    color: #222; }
-  #about2 > div > div.row.break > div > p {margin-bottom: 15px}
-
-.profile-img {
-  margin-bottom: 15px;
-  width: 120px; }
-
-.about, .about-info, .about-tools, .about-last {
-  padding: 4% 30px 1% 30px;
-  font-size: 18px; }
-  .about-tools {
-    padding-top: 4.375em;
-    font-size: 18px; }
-    @media screen and (min-width: 992px) {
-      .about-tools {
-        padding-top: 5.625em; } }
-    .about-tools ul:first-child {
-      padding-left: 0; }
-    .about-tools ul {
-      color: #0080ff;
-      list-style: none; }
-      .about-tools ul li {
-        padding-top: 0.75em; }
-  .about-last {
-    padding-top: 3.125em;
-    padding-bottom: 0;
-    font-size: 1.125em; }
-    @media screen and (min-width: 992px) {
-      .about-last {
-        padding-top: 0; } }
-    .about-last p {
-      color: #0080ff; }
-
-#portfolio {
-  background-color: #0080ff; }
-
-.portfolio-projects--btn {
-  background: transparent;
-  color: #222222;
-  border: 1px solid #222222;
-  border-radius: 5px;
-  margin-bottom: 1.25em;
-  font-size: 18px;
-  margin: 8px; }
-  .portfolio-projects--btn:hover {
-    background: #222222;
-    color: #ffffff; }
-  .portfolio-projects--btn:focus,
-  .portfolio-projects--btn:active {
-    background: #111111;
-    color: #ffffff; }
-@media (max-width:650px) {
-  .portfolio-projects--btn {font-size:16px;}
-}
-.portfolio-projects--image {
-  margin-bottom: 1.875em;
-  padding-top: 5%; }
-
-.about-tools ul li, .contact-social-icons ul a li {
-  text-align: center; }
-
-.centered {
-  float: none;
-  margin-left: auto;
-  margin-right: auto; }
-
-
-.vcenter {
-  display: inline-block;
-  vertical-align: middle;
-  float: none; }
-
-.break {
-  clear: both;
-  margin-top: 10px; }
-
-@media (min-width: 360px) {
-  #team > .container .row > div {width: 100%;margin: 0;}
-}
-
-@media (min-width: 768px) {
-  .pull-right-sm {
-    float: right !important; }
-  .pull-left-sm {
-    float: left !important; }
-  .container {width: 768px}
-  .navbar-right {margin-right: 0;}
-  .navbar>.container .navbar-brand, .navbar>.container-fluid .navbar-brand {margin-left: 0;padding-left: 15px}
-}
-@media (min-width: 992px) {
-  .pull-right-md {
-    float: right !important; }
-  .pull-left-md {
-    float: left !important; }
-  .container {width: 94%;}
-}
-@media (min-width: 1200px) {
-  .pull-right-lg {
-    float: right !important; }
-  .pull-left-lg {
-    float: left !important; }
-  .container {width: 1170px;}
-  .portfolio-projects .col-lg-6 {width: 100%}
-  .navbar > .container {max-width: 1170px}
-}
-@media (min-width: 1366px) {
-  #portfolio > .container, #about > .row {width: 90%;max-width: 1600px;margin-left:auto;margin-right: auto;}
-  .navbar > .container {max-width: 1170px}
-}
-
-@media (max-width:768px) {
-  .portfolio-projects--desc {
-      margin-top: 30px;
-      margin-bottom: 30px;
-      font-size: 16px; }
-}
-@media (min-width: 768px) {
-  .portfolio-projects {
-    margin-top: 0.625em; } }
-.portfolio-projects--title {
-  margin-top: 0.9375em;
-  font-size: 20px; }
-@media (min-width: 768px) {
-    .portfolio-projects .col-lg-6:first-child .portfolio-projects--title {font-size: 21px;margin-top:0rem;}
-    .portfolio-projects .col-lg-6:nth-child(2) .portfolio-projects--title {font-size: 21px;margin-top:-2.5rem;}
-    .portfolio-projects--desc {
-      margin-top: 30px;
-      margin-bottom: 30px;
-      font-size: 16px; }
-      .portfolio-projects--btn {font-size: 14px;margin:0 4px 16px 4px;}
-      #portfolio > div > div > div:nth-child(1) > div > div.col-sm-5.text-center,
-      #portfolio > div > div > div:nth-child(2) > div > div.col-sm-7.text-center.pull-right-sm {padding-left:0;}
-      #portfolio > div > div > div:nth-child(1) > div > div.col-sm-7.text-center,
-      #portfolio > div > div > div:nth-child(2) > div > div.col-sm-5.text-center.pull-right-sm {padding-right: 0;} }
-  @media screen and (min-width: 992px) {
-    .portfolio-projects .col-lg-6:first-child .portfolio-projects--title {font-size: 21px;margin-top:0rem;}
-    .portfolio-projects .col-lg-6:nth-child(2) .portfolio-projects--title {font-size: 21px;margin-top:-1.5rem;}
-    #portfolio > div > div > div:nth-child(2) > div > div.col-sm-5.text-center.pull-right-sm > a:nth-child(4) {margin-left:-8px;}
-    #portfolio > div > div > div:nth-child(2) > div > div.col-sm-5.text-center.pull-right-sm > a:nth-child(5) {margin-right:-8px;} }
-  @media screen and (min-width: 1080px) {
-    .portfolio-projects .col-lg-6:first-child .portfolio-projects--title {font-size: 21px;margin-top:3.75rem;}
-    .portfolio-projects .col-lg-6:nth-child(2) .portfolio-projects--title {font-size: 21px;margin-top:1.125rem;}
-    }
-  @media screen and (min-width: 1200px) {
-    .portfolio-projects .col-lg-6:first-child .portfolio-projects--title {font-size: 24px;margin-top:2.5rem;}
-    .portfolio-projects .col-lg-6:nth-child(2) .portfolio-projects--title {font-size: 24px;margin-top:1.25rem;}
-      .portfolio-projects--desc {
-      margin-top: 24px;
-      margin-bottom: 24px;
-      font-size: 18px; }
-    .portfolio-projects .col-lg-6 + .col-lg-6 + .col-lg-6 {margin-top:40px}
-    .portfolio-projects--btn {font-size: 18px;margin:8px;} }
-  @media screen and (min-width: 1366px) {
-    .portfolio-projects .col-lg-6:first-child .portfolio-projects--title {margin-top:7.5rem;}
-    .portfolio-projects .col-lg-6:nth-child(2) .portfolio-projects--title {margin-top:6rem;}
-  }
-  @media (min-width: 1500px) {
-    .portfolio-projects .col-lg-6:first-child .portfolio-projects--title {font-size: 28px;margin-top:11rem;}
-    .portfolio-projects .col-lg-6:nth-child(2) .portfolio-projects--title {font-size: 28px;margin-top:9.5rem;}
-    .portfolio-projects--btn {font-size: 18px;}
-  }
-  .portfolio-projects--image-title {margin-top:-3rem;margin-bottom:6rem;}
-    @media (max-width: 768px) {
-      .portfolio-projects--image-title {margin-top:-3rem;margin-bottom:3rem;}
-    }
-
-#contact {
-  background-color: #222222;
-  padding-left: 15px;
-  padding-right: 15px }
-  #contact h2 {
-    color: #0080ff; }
-#expenses {
-  background-color: #222;
-  padding-left: 15px;
-  padding-right: 15px }
-  #expenses h2 {
-    color: #0080ff; }
-.family-links-list {
-  font-size: 2.3em;
-  line-height: 1.8em;
-}
-.contact-social-icons p {
-  color: #0080ff; }
-.contact-social-icons > ul {padding:0;margin:0 auto;}
-.contact-social-icons ul a {
-  color: #0080ff;
-  list-style: none; }
-  .contact-social-icons ul a:hover,
-  .team-links-list a:hover,
-  .family-links-list a:hover {
-    color: #ffffff; }
-  .contact-social-icons ul a:focus,
-  .contact-social-icons ul a:active,
-  .team-links-list a:focus,
-  .team-links-list a:active,
-  .family-links-list a:focus,
-  .family-links-list a:active {
-    color: rgba(255,255,255,0.8); }
-  .contact-social-icons ul a li {
-    display: inline-block;
-    padding: 1.25%;
-    font-size: 16px }
-  @media (max-width: 1200px) {
-    #family > div > div.row > div.center > div {margin:1.5em 4% 3em 4%;width:42%;float:left;}
-    #family > div > div.row > div.center > div:last-child {margin-bottom: 0}
-  }
-  @media (max-width: 720px) {
-    #family > div > div.row > div.center > div {margin:1.5em 4% 3em 4%;width:92%;}
-  }
-
-.footer {
-  padding-top: 1em;
-  bottom: 0;
-  width: 100%;
-  /* Set the fixed height of the footer here */
-  background-color: #111111;
-
-  color: #ffffff; }
-.footer-role, .footer-name, .footer-description {
-    color: #FFFFFF;
-}
-.footer-description {
-    color: #fff;
-    font-size: 18px;
-}
-.footer-role h4, .footer-links-list a {
-    color: #0080ff;
-}
-.footer-header h4 {
-    color: #0080ff;
-}
-#scrollIcon, #scrollTopIcon {
-  margin-top: 4vh;
-  padding: 10px;
-  font-size: 1.5em;
-  color: #222222;
-  border: solid 2px #222222;
-  border-radius: 50%; }
-
-#scrollTopIcon {
-  margin-top: 10px;
-  font-size: 1em;
-  color: #ffffff;
-  border-color: #ffffff; }
-
-.back-to-top {
-  display: none; }
-  .back-to-top.visible {
-    display: block; }
-
-/* our team section */
-#team, #family {
-  background-color: #0080ff;
-  /*font-weight: 700;
-  font-size: 21px; */
-}
-.hr.invisible_hr {
-    height: 0;
-    padding: 0;
-}
-.hr.big_size_hr {
-    margin: 30px 0;
-}
-.hr {
-    clear: both;
-    display: block;
-    font-size: 0;
-    height: 24px;
-    margin: 20px 0;
-    overflow: hidden;
-    padding: 2px 0;
-    position: relative;
-    text-align: center;
-    width: 100%;
-}
-.highlight_secondary {
-    color: #FFFFFF;
-}
-.team-role, .team-name, .team-links-list a {
-    color: #222222;
-    text-align: center;
-    white-space: normal;
-    width: 100%;
-}
-.team-name, .family-name {
-    font-size: 21px;
-    text-align: center;
-    white-space: nowrap;
-}
-.team-links, .family-links {
-  padding-top: .75em;
-  color: #222222;
-  text-align: center;
-}
-.team-image img, .family-image img {
-  max-width:150px;
-  max-height: 150px;
-  margin:0 auto;
-}
-#team > .container .row > div {
-  min-height: 0;
-  padding-left: 0;
-  padding-right: 0;
-  /* display: flex; */
-  /* flex-wrap: wrap; */
-  /* justify-content: flex-start; */
-}
-  @media (min-width: 768px) {
-    #team > .container .row > div {min-height: 0;}
-    #team .col-sm-4 {
-      width: 100%;
-      margin: 0;
-    }
-  }
-  @media (min-width: 992px) {
-    #team .col-md-2 {
-      width: 100%;
-      margin: 0;
-    }
-  }
-  @media (min-width: 1200px) {
-    #team > .container .row > div {min-height: 0;}
-  }
-  @media (max-width: 700px) {
-    #team > .container .row > div {min-height: 0;}
-    #team .col-xs-6 {width: 42%;margin:4%;}
-  }
-  @media (max-width: 500px) {
-    #team > .container .row > div {min-height: 250px;}
-    #team .col-xs-6 {width: 92%;margin:4%;}
-  }
-#team > .container .row > .row, #team > .container {padding-left:0;padding-right: 0}
-
-/* Bliss family section */
-#family {
-  background-color: #222222;
-}
-#family2 {
-  /* background-color: #0080ff; */
-}
-#family > div > div.row > div {font-size: 18px}
-.family-role, .family-name, .family-description {
-    color: #FFFFFF;
-}
-.family-description {
-    color: #fff;
-    font-size: 18px;
-}
-.family-role h4, .family-links-list a {
-    color: #0080ff;
-}
-.family-header h2 {
-    color: #0080ff;
-}
-}
-.family2-header h2 {
-    color: #222;
-}
-#family .about-tools {
-  font-size: 20px;
-}
-.family-image img {
-  max-width:150px;
-  max-height: 150px;
-  margin:0 auto;
-}
-.family-projects--btn {
-  background: transparent;
-  color: #0080ff;
-  border: 1px solid #0080ff;
-  border-radius: 5px;
-  margin-bottom: 1.25em;
-  font-weight: 700;
-  font-size: 21px; }
-  .family-projects--btn:hover {
-    background: #0080ff;
-    color: #ffffff; }
-  .family-projects--btn:focus,
-  .family-projects--btn:active {
-    background: #0080ff;
-    color: #ffffff; }
-
-
-@media (min-height: 880px) {
-  #scrollIcon, #scrollTopIcon {margin-top: 4vh;}
-}
-@media (min-height: 900px) {
-  #scrollIcon, #scrollTopIcon {margin-top: 6vh;}
-}
-@media (min-height: 960px) {
-  #scrollIcon, #scrollTopIcon {margin-top: 10vh;}
-}
-@media (min-height: 980px) {
-  #scrollIcon, #scrollTopIcon {margin-top: 12vh;}
-}
-@media (min-height: 1020px) {
-  #scrollIcon, #scrollTopIcon {margin-top: 14vh;}
-}
-@media (min-height: 1090px) {
-  #scrollIcon, #scrollTopIcon {margin-top: 16vh;}
-}
-@media (max-height: 880px) {
-  #scrollIcon, #scrollTopIcon {margin-top: 2vh;}
-}
-@media (max-height: 850px) {
-  #scrollIcon, #scrollTopIcon {margin-top: 0vh;}
-}
-@media (max-height: 820px) {
-  #scrollIcon, #scrollTopIcon {margin-top: -2vh;}
-  .cover.top {padding: 7.5vh 0 12.5vh 0;}
-}
-@media (max-height: 750px) {
-  #scrollIcon, #scrollTopIcon {margin-top: -8vh;}
-}
-@media (max-height: 720px) {
-  #scrollIcon, #scrollTopIcon {margin-top: -8vh;}
-}
-@media (max-height: 690px) {
-  #scrollIcon, #scrollTopIcon {margin-top: -10vh;}
-  .animation {margin-top:-6vh !important;}
-}
-@media (max-height: 670px) {
-  #scrollIcon, #scrollTopIcon {margin-top: -14vh;}
-  .animation {margin-top:-7vh !important;}
-}
-@media (max-height: 650px) {
-  #scrollIcon, #scrollTopIcon {margin-top: -14vh;}
-  .animation {margin-top:-8vh !important;}
-  .cover.top {padding: 6vh 0 5vh 0;}
-  body > div.container-fluid > div.row.cover.top > div > .row > .headline > img {max-height: 42vh;}
-}
-@media (max-height: 630px) {
-  #scrollIcon, #scrollTopIcon {margin-top: -19vh;}
-  .animation {margin-top:-10vh !important;}
-  .cover.top {padding: 6vh 0 5vh 0;}
-}
-@media (max-height: 600px) {
-  #scrollIcon, #scrollTopIcon {margin-top: -20vh;}
-  .animation {margin-top:-13vh !important;}
-  .cover.top {padding: 6vh 0 5vh 0;}
-}
-@media (max-height: 600px) and (orientation:landscape) {
-    #scrollIcon, #scrollTopIcon {margin-top: -20vh;display: none;}
-}
-@media (max-height: 550px) {
-  #scrollIcon, #scrollTopIcon {display:none}
-  .cover.top {padding: 6vh 0 3vh 0;}
-  .headline {padding-top:3vh;}
-  body > div.container-fluid > div.row.cover.top > div > .row > .headline > img {max-height: 32vh;}
-}
-@media (max-height: 480px) {
-  #scrollIcon, #scrollTopIcon {margin-top: 0}
-  .cover.top {padding: 3vh 0 3vh 0;}
-  .headline {padding-top:1.5vh;}
-  body > div.container-fluid > div.row.cover.top > div > .row > .headline > img {max-height: 32vh;}
-}
-@media (max-height: 320px) {
-  .cover.top {padding: 1vh 0 3vh 0;}
-  .headline {padding-top:1vh;}
-  body > div.container-fluid > div.row.cover.top > div > .row > .headline > img {max-height: 25vh;}
-}
-@media (max-width: 768px) {
-  .container-fluid {padding:30px 0 !important;}
-  .h1, .h2, .h3, h1, h2, h3 {
-    margin-top: 10px;
-    margin-bottom: 10px;
-  }
-  .lead, .about, .about-info, .about-tools, .about-last {font-size: 16px}
-  .row.cover.top .lead {
-    max-width: 350px;
-    margin-left:auto;
-    margin-right: auto
-  }
-  .h4, h4 {font-size: 20px}
-  #portfolio h2 {padding-bottom: 0}
-  #portfolio > .container {padding-right: 0;padding-left: 0}
-  .portfolio-projects--btn {margin-top:0;margin-left: 4px;margin-right: 4px}
-  #portfolio > div > div > div:nth-child(2) > div > div.col-sm-5.text-center.pull-right-sm > a:nth-child(4) {margin-right: 4px}
-  #portfolio > div > div > div:nth-child(2) > div > div.col-sm-5.text-center.pull-right-sm > a:nth-child(5) {margin-left: 4px}
-  #scrollIcon, #scrollTopIcon {font-size: 1em;}
-}
-
-
-@media (max-device-height: 480px) and (orientation: landscape) {
-  .navbar-fixed-bottom .navbar-collapse, .navbar-fixed-top .navbar-collapse {
-    max-height: 240px;
-  }
-  .navbar-nav>li>a {
-    padding-top: 6px;
-    padding-bottom: 6px;
-  }
-}
-@media (max-width: 360px) {
-  .h1, h1 {font-size: 32px;}
-  .cover, .cover.bottom {
-    padding-left: 15px;
-    padding-right: 15px;
-  }
-}
-
-h1 {
-  color: #fff;
-  cursor: default;
-}
-
-h1 span:nth-of-type(1) {
-  font-size: 1em;
-  line-height: 0.5em;
-}
-h1 span:nth-of-type(2) {
-  font-size: .4em;
-  font-weight: 400;
-  line-height: 3.65em;
-  color: #0080ff;
-  background-color: #282828;
-  padding: 3px 10px;
-  box-shadow: 0 2px 5px 0 rgba(0, 0, 0, 0.6);
-}
-h1 span:nth-of-type(3) {
-  font-size: 1.5em;
-  line-height: .85em;
-}
-
-.space {
-  will-change: transform;
-  position: relative;
-  left:-25;
-  top:auto;
-  bottom:auto;
-  margin-top:15%;
-  margin-bottom:25%;
-  margin-left: 35%;
-  margin-right: auto;
-  -webkit-transform: perspective(1000px) rotateX(65deg) rotateY(0deg) rotateZ(-45deg) scale(0.90);
-     -moz-transform: perspective(1000px) rotateX(65deg) rotateY(0deg) rotateZ(-45deg) scale(0.90);
-       -o-transform: perspective(1000px) rotateX(65deg) rotateY(0deg) rotateZ(-45deg) scale(0.90);
-          transform: perspective(1000px) rotateX(65deg) rotateY(0deg) rotateZ(-45deg) scale(0.90);
-  -webkit-transition: all 600ms;
-  -moz-transition: all 600ms;
-  -o-transition: all 600ms;
-  transition: all 600ms;
-}
-
-.space-hover {
-  position: relative;
-  left:-25;
-  top:auto;
-  bottom:auto;
-  margin-top:30%;
-  margin-bottom:25%;
-  margin-left: 45%;
-  margin-right: auto;
-  -webkit-transform: perspective(1000px) rotateX(0deg) rotateY(0deg) rotateZ(0deg) scale(0.90);
-     -moz-transform: perspective(1000px) rotateX(0deg) rotateY(0deg) rotateZ(0deg) scale(0.90);
-       -o-transform: perspective(1000px) rotateX(0deg) rotateY(0deg) rotateZ(0deg) scale(0.90);
-          transform: perspective(1000px) rotateX(0deg) rotateY(0deg) rotateZ(0deg) scale(0.90);
-}
-
-.phone-container {
-  width: 11.2em;
-  height: 23.33em;
-  position: absolute;
-  top: 0;
-  bottom: 0;
-  left: 0;
-  right: 0;
-  margin: auto;
-  -webkit-transform-style: preserve-3d;
-     -moz-transform-style: preserve-3d;
-       -o-transform-style: preserve-3d;
-          transform-style: preserve-3d;
-  -webkit-transform: translateX(-80%);
-     -moz-transform: translateX(-80%);
-       -o-transform: translateX(-80%);
-          transform: translateX(-80%);
-  border-radius: 2.0em;
-}
-
-.phone-front {
-  will-change: transform;
-  width: 11.2em;
-  height: 23.33em;
-  position: absolute;
-  top: 0;
-  bottom: 0;
-  left: 0;
-  right: 0;
-  margin: auto;
-  background-image: url("../images/phone_front.svg");
-  background-repeat: no-repeat;
-  background-position: -.53em 0;
-  background-size: 12.3em 23.36em;
-  border-radius: 2.0em;
-  box-shadow: -20px 27px 13px 10px rgba(0, 0, 0, 0.5);
-  -webkit-transition: -webkit-transform 600ms, box-shadow 450ms;
-  -moz-transition: transform 600ms, box-shadow 450ms;
-  -o-transition: transform 600ms, box-shadow 450ms;
-  transition: transform 600ms, box-shadow 450ms;
-}
-
-.just-phone-front {
-  will-change: transform;
-  width: 11.2em;
-  height: 23.33em;
-  position: absolute;
-  right: 0;
-  margin: auto;
-  left:-25;
-  top:0;
-  bottom:auto;
-  margin-top:10%;
-  margin-bottom:15%;
-  margin-left: 35%;
-  margin-right: auto;
-  background-image: url("../images/phone_front.svg");
-  background-repeat: no-repeat;
-  background-position: -.53em 0;
-  background-size: 12.3em 23.36em;
-  border-radius: 2.0em;
-  box-shadow: -10px 13px 7px 5px rgba(0, 0, 0, 0.5);
-  -webkit-transform: scale(0.90);
-     -moz-transform: scale(0.90);
-       -o-transform: scale(0.90);
-          transform: scale(0.90);
-  -webkit-transition: -webkit-transform 600ms, box-shadow 450ms;
-  -moz-transition: transform 600ms, box-shadow 450ms;
-  -o-transition: transform 600ms, box-shadow 450ms;
-  transition: transform 600ms, box-shadow 450ms;
-}
-
-.phone-front-hover {
-  box-shadow: 0 12px 13px 10px rgba(0, 0, 0, 0.5);
-  -webkit-transition: -webkit-transform 600ms, box-shadow 450ms;
-  -moz-transition: transform 600ms, box-shadow 450ms;
-  -o-transition: transform 600ms, box-shadow 450ms;
-  transition: transform 600ms, box-shadow 450ms;
-}
-
-.phone-screen {
-  width: 10.5em;
-  height: 19.3em;
-  position: relative;
-  left: 0;
-  right: 0;
-  top: 2.283em;
-  margin: auto;
-  background-color: #000;
-  overflow: hidden;
-}
-.phone-screen::before {
-  content: "";
-  position: absolute;
-  width: 100%;
-  height: 100%;
-  box-shadow: inset 13px 0 10px -5px rgba(250, 250, 250, 0.17), inset -13px 0 10px -5px rgba(250, 250, 250, 0.17);
-  background-image: url("../images/bliss_screens.gif");
-  background-repeat: no-repeat;
-  background-position: 50% 0;
-  background-size: cover;
-  -webkit-transform: scale(1);
-     -moz-transform: scale(1);
-       -o-transform: scale(1);
-          transform: scale(1);
-}
-.phone-screen::after {
-  content: "";
-  position: absolute;
-  width: 100%;
-  height: 100%;
-  background-color: rgba(250, 250, 250, 0.1);
-}
-
-.phone-side {
-  will-change: transform;
-  width: 13.33em;
-  height: 25em;
-  position: absolute;
-  top: 0;
-  bottom: 0;
-  left: 0;
-  right: 0;
-  margin: auto;
-  border-radius: 1.66em;
-  background-repeat: no-repeat;
-  background-position: 2.2em .5em;
-  background-size: 13.33em 24.73em;
-  -webkit-transform-style: preserve-3d;
-     -moz-transform-style: preserve-3d;
-       -o-transform-style: preserve-3d;
-          transform-style: preserve-3d;
-  -webkit-transform: skew(-1deg) translateX(-15.5%) translateY(1.2%) scaleX(0.95) scaleY(0.96) rotate(-1deg);
-     -moz-transform: skew(-1deg) translateX(-15.5%) translateY(1.2%) scaleX(0.95) scaleY(0.96) rotate(-1deg);
-       -o-transform: skew(-1deg) translateX(-15.5%) translateY(1.2%) scaleX(0.95) scaleY(0.96) rotate(-1deg);
-          transform: skew(-1deg) translateX(-15.5%) translateY(1.2%) scaleX(0.95) scaleY(0.96) rotate(-1deg);
-  -webkit-transition: all 350ms;
-  -moz-transition: all 350ms;
-  -o-transition: all 350ms;
-  transition: all 350ms;
-}
-
-.phone-side-hover {
-  -webkit-transform: skew(-1deg) translateX(-13.4%) translateY(1.05%) scaleX(0.83) scaleY(0.83) rotate(-1deg);
-     -moz-transform: skew(-1deg) translateX(-13.4%) translateY(1.05%) scaleX(0.83) scaleY(0.83) rotate(-1deg);
-       -o-transform: skew(-1deg) translateX(-13.4%) translateY(1.05%) scaleX(0.83) scaleY(0.83) rotate(-1deg);
-          transform: skew(-1deg) translateX(-13.4%) translateY(1.05%) scaleX(0.83) scaleY(0.83) rotate(-1deg);
-  -webkit-transition: all 350ms;
-  -moz-transition: all 350ms;
-  -o-transition: all 350ms;
-}
-
-@-webkit-keyframes figure-anim {
-  from {
-    border-radius: 50%;
-    -webkit-transform: rotate(0deg) scale(1);
-       -moz-transform: rotate(0deg) scale(1);
-         -o-transform: rotate(0deg) scale(1);
-            transform: rotate(0deg) scale(1);
-  }
-  to {
-    border-radius: 30%;
-    -webkit-transform: rotate(360deg) scale(0.5);
-       -moz-transform: rotate(360deg) scale(0.5);
-         -o-transform: rotate(360deg) scale(0.5);
-            transform: rotate(360deg) scale(0.5);
-  }
-}
-
-@keyframes figure-anim {
-  from {
-    border-radius: 50%;
-    -webkit-transform: rotate(0deg) scale(1);
-       -moz-transform: rotate(0deg) scale(1);
-         -o-transform: rotate(0deg) scale(1);
-            transform: rotate(0deg) scale(1);
-  }
-  to {
-    border-radius: 30%;
-    -webkit-transform: rotate(360deg) scale(0.5);
-       -moz-transform: rotate(360deg) scale(0.5);
-         -o-transform: rotate(360deg) scale(0.5);
-            transform: rotate(360deg) scale(0.5);
-  }
-}
-@-webkit-keyframes figure-container-anim {
-  from {
-    -webkit-transform: rotate(0deg);
-       -moz-transform: rotate(0deg);
-         -o-transform: rotate(0deg);
-            transform: rotate(0deg);
-  }
-  to {
-    -webkit-transform: rotate(360deg);
-       -moz-transform: rotate(360deg);
-         -o-transform: rotate(360deg);
-            transform: rotate(360deg);
-  }
-}
-@keyframes figure-container-anim {
-  from {
-    -webkit-transform: rotate(0deg);
-       -moz-transform: rotate(0deg);
-         -o-transform: rotate(0deg);
-            transform: rotate(0deg);
-  }
-  to {
-    -webkit-transform: rotate(360deg);
-       -moz-transform: rotate(360deg);
-         -o-transform: rotate(360deg);
-            transform: rotate(360deg);
-  }
-}
-
-@media (min-width: 1200px) {
-  .pull-right-lg {
-    float: right !important; }
-  .pull-left-lg {
-    float: left !important; }
-  .pull-left-md {
-    float: left !important; }
-  .container {max-width: 1170px;}
-  .portfolio-projects .col-lg-6 {width: 100%}
-  .navbar > .container {max-width: 1170px}
-}
-@media (min-width: 1366px) {
-  #portfolio > .container, #about > .row {width: 90%;max-width: 1600px;margin-left:auto;margin-right: auto;}
-  .navbar > .container {max-width: 1170px}
-}
-
- /* The alert message box */
-.alert {
-    padding: 20px;
-    background-color: #f44336; /* Red */
-    color: white;
-    margin-bottom: 15px;
-}
-.alert a {color: #fff;font-weight:bolder;padding-bottom:2px;margin-bottom:-2px;box-shadow: 0 2px}
-@media (max-width:768px) {.alert {width:90%;margin: 0 auto;}}
-@media (max-width:1200px) {.alert {margin-top:3rem}}
-/* The close button */
-.closebtn {
-    margin-left: 15px;
-    color: white;
-    font-weight: bold;
-    float: right;
-    font-size: 22px;
-    line-height: 20px;
-    cursor: pointer;
-    transition: 0.3s;
-}
-
-/* The alert message box */
-.alert2 {
-   padding: 20px;
-   background-color: #17c13f; /* green */
-   color: white;
-   margin-bottom: 15px;
-}
-.alert2 a {color: #fff;font-weight:bolder;padding-bottom:2px;margin-bottom:-2px;box-shadow: 0 2px}
-@media (max-width:768px) {.alert {width:90%;margin: 0 auto;}}
-@media (max-width:1200px) {.alert {margin-top:3rem}}
-/* The close button */
-.closebtn {
-   margin-left: 15px;
-   color: white;
-   font-weight: bold;
-   float: right;
-   font-size: 22px;
-   line-height: 20px;
-   cursor: pointer;
-   transition: 0.3s;
-}
-
-/* When moving the mouse over the close button */
-.closebtn:hover {
-    color: black;
-}
-
-.vcenter {
-  display: inline-block;
-  position: absolute;
-  left: 50%;
-  top: 50%;
-  -webkit-transform: translate(-50%, -50%);
-  transform: translate(-50%, -50%);
-}
-
-/* Anim
-width: 378px;
-  height: 290px;
- */
-.animation {
-  display: inline-block;
-  position: relative;
-  width: 64rem;
-  height: 42rem;
-  margin: -2vh auto 0 auto;
-  vertical-align: middle;
-}
-@media (max-width:720px) {
-  .animation {margin-left:-30rem;margin-right:-30rem;}
-}
-@media (max-width:450px) {
-  .animation {width:58rem;height:38rem;}
-}
-@media (max-width:450px) {
-  .animation {width:58rem;height:38rem;}
-}
-@media (max-width:400px) {
-  .animation {width:55rem;height:36rem;}
-}
-@media (max-width:380px) {
-  .animation {width:50rem;height:33rem;}
-}
-@media (max-width:340px) {
-  .animation {width:47rem;height:31rem;}
-}
-@media (max-width:320px) {
-  .animation {width:42rem;height:28rem;}
-}
-@media (max-height:650px) {
-  .animation {margin-top: -7vh !important;margin-bottom: 10vh !important;}
-}
-@media (min-height:651px) {
-  .animation {margin-top: -8vh !important;margin-bottom: 10vh !important;}
-}
-@media (min-height:670px) {
-  .animation {margin-top: -6.5vh !important;margin-bottom: 10vh !important;}
-}
-@media (min-height:720px) {
-  .animation {margin-top: -2vh !important;margin-bottom: 10vh !important;overflow-y:visible}
-}
-@media (min-height:800px) {
-  .animation {margin-top: 0 !important;margin-bottom: 10vh !important;overflow-y:visible}
-}
-.animation .device {
-  position: absolute;
-  width: 100%;
-  height: 100%;
-  left: 50%;
-  top: 50%;
-  background: #111;
-  -webkit-transition: all 0.4s cubic-bezier(0.175, 0.885, 0.32, 1.275);
-  -moz-transition: all 0.4s cubic-bezier(0.175, 0.885, 0.32, 1.275);
-  -ms-transition: all 0.4s cubic-bezier(0.175, 0.885, 0.32, 1.275);
-  transition: all 0.4s cubic-bezier(0.175, 0.885, 0.32, 1.275);
-  -moz-transform: translate(-50%, -50%);
-  -ms-transform: translate(-50%, -50%);
-  -webkit-transform: translate(-50%, -50%);
-  transform: translate(-50%, -50%);
-}
-.animation .device .phone-home-button,
-.animation .device .tablet-home-button {
-  position: absolute;
-  border-radius: 50%;
-  background: #444;
-  opacity: 0;
-  z-index: 1;
-  -webkit-transition: all 0.4s ease;
-  -moz-transition: all 0.4s ease;
-  -ms-transition: all 0.4s ease;
-  transition: all 0.4s ease;
-}
-.animation .device .phone-home-button {
-  width: 16px;
-  height: 16px;
-  margin-top: -8px;
-  right: 11px;
-  top: 50%;
-}
-.animation .device .tablet-home-button {
-  width: 12px;
-  height: 12px;
-  margin-left: -6px;
-  bottom: 7px;
-  left: 50%;
-}
-.animation .device .screen-stand {
-  position: absolute;
-  width: 100%;
-  margin-left: -10px;
-  margin-top: -1px;
-  top: 60%;
-  opacity: 0;
-  z-index: 1;
-  -webkit-transition: all 0.4s ease-out;
-  -moz-transition: all 0.4s ease-out;
-  -ms-transition: all 0.4s ease-out;
-  transition: all 0.4s ease-out;
-}
-.animation .device .screen-stand .leg {
-  position: absolute;
-  width: 12px;
-  height: 16px;
-  left: 50%;
-  top: 0;
-  margin-left: -6px;
-  background: #111;
-}
-.animation .device .screen-stand .foot {
-  position: absolute;
-  width: 120px;
-  height: 4px;
-  left: 50%;
-  top: 15px;
-  margin-left: -60px;
-  border-top-left-radius: 2px;
-  border-top-right-radius: 2px;
-  background: #111;
-}
-.animation .device .display {
-  position: relative;
-  width: 100%;
-  height: 100%;
-  overflow: hidden;
-  background: #34495e;
-  z-index: 3;
-}
-.animation .device .display div {
-  position: absolute;
-  width: 100%;
-  height: 100%;
-  left: 100%;
-  white-space: nowrap;
-  -webkit-transition: all 0.4s ease;
-  -moz-transition: all 0.4s ease;
-  -ms-transition: all 0.4s ease;
-  transition: all 0.4s ease;
-}
-.animation .device .display div div {
-  position: absolute;
-  width: 100%;
-  left: 0;
-  top: 50%;
-  margin-top: -14px;
-  font-size: 20px;
-  text-align: center;
- /* color: #0080ff;*/
-}
-@media (max-width:450px) {
-  .animation .device .display div div {width:100%;max-width:100%;font-size:12px !important;}
-}
-  .animation .device .display .slide1 div {margin-top:0px;}
-.animation .device .display div div em {
-  font-weight: bold;
-}
-.animation .device .display .slide1 {
-  /* background: #000; */
-  background: url("https://i.imgur.com/wCp0xpe.jpg");
-  background-size: cover;
-  background-repeat: no-repeat;
-  background-position: center center;
-  text-shadow:  1px 1px 2px #1f1f1f, -1px -1px 2px #1f1f1f, -1px 0 2px #1f1f1f, 0 -1px 2px #1f1f1f, 1px 0 2px #1f1f1f, 0 1px 2px #1f1f1f, 1px -1px 2px #1f1f1f, -1px 1px 2px #1f1f1f,
-                2px 2px 2px #1f1f1f, -2px -2px 2px #1f1f1f, -2px 0 2px #1f1f1f, 0 -2px 2px #1f1f1f, 2px 0 2px #1f1f1f, 0 2px 2px #1f1f1f, 2px -2px 2px #1f1f1f, -2px 2px 2px #1f1f1f,
-                3px 3px 2px #1f1f1f, -3px -3px 2px #1f1f1f, -3px 0 2px #1f1f1f, 0 -3px 2px #1f1f1f, 3px 0 2px #1f1f1f, 0 3px 2px #1f1f1f, 3px -3px 2px #1f1f1f, -3px 3px 2px #1f1f1f,
-                4px 4px 4px #1f1f1f, -4px -4px 4px #1f1f1f, -4px 0 4px #1f1f1f, 0 -4px 4px #1f1f1f, 4px 0 4px #1f1f1f, 0 4px 4px #1f1f1f, 4px -4px 4px #1f1f1f, -4px 4px 4px #1f1f1f;
-    color:white;
-}
-.animation .device .display .slide2 {
-  /* background: #000; */
-  background: url("https://i.imgur.com/KfArkPZ.jpg");
-  background-size: cover;
-  background-repeat: no-repeat;
-  background-position: center center;
-  text-shadow:  1px 1px 2px #fff, -1px -1px 2px #fff, -1px 0 2px #fff, 0 -1px 2px #fff, 1px 0 2px #fff, 0 1px 2px #fff, 1px -1px 2px #fff, -1px 1px 2px #fff,
-                2px 2px 2px #fff, -2px -2px 2px #fff, -2px 0 2px #fff, 0 -2px 2px #fff, 2px 0 2px #fff, 0 2px 2px #fff, 2px -2px 2px #fff, -2px 2px 2px #fff,
-                3px 3px 2px #fff, -3px -3px 2px #fff, -3px 0 2px #fff, 0 -3px 2px #fff, 3px 0 2px #fff, 0 3px 2px #fff, 3px -3px 2px #fff, -3px 3px 2px #fff,
-                4px 4px 4px #fff, -4px -4px 4px #fff, -4px 0 4px #fff, 0 -4px 4px #fff, 4px 0 4px #fff, 0 4px 4px #fff, 4px -4px 4px #fff, -4px 4px 4px #fff;
-  color:#0080ff;
-}
-.animation .device .display .slide3 {
-  /* background: #000; */
-  background: url("https://i.imgur.com/c55mey7.jpg");
-  background-size: cover;
-  background-repeat: no-repeat;
-  background-position: center center;
-  text-shadow:  1px 1px 2px #000, -1px -1px 2px #000, -1px 0 2px #000, 0 -1px 2px #000, 1px 0 2px #000, 0 1px 2px #000, 1px -1px 2px #000, -1px 1px 2px #000,
-                2px 2px 2px #000, -2px -2px 2px #000, -2px 0 2px #000, 0 -2px 2px #000, 2px 0 2px #000, 0 2px 2px #000, 2px -2px 2px #000, -2px 2px 2px #000,
-                3px 3px 2px #000, -3px -3px 2px #000, -3px 0 2px #000, 0 -3px 2px #000, 3px 0 2px #000, 0 3px 2px #000, 3px -3px 2px #000, -3px 3px 2px #000,
-                4px 4px 4px #000, -4px -4px 4px #000, -4px 0 4px #000, 0 -4px 4px #000, 4px 0 4px #000, 0 4px 4px #000, 4px -4px 4px #000, -4px 4px 4px #000;
-  color:white;
-}
-.animation[data-animation-step="1"] .device {
-  width: 87%;
-  height: 90%;
-  padding: 10px;
-  border-radius: 4px;
-}
-.animation[data-animation-step="1"] .device .slide1 {
-  left: 0%;
-}
-.animation[data-animation-step="1"] .device .screen-stand {
-  opacity: 1;
-  top: 100%;
-}
-.animation[data-animation-step="2"] .device {
-  width: 74%;
-  height: 75%;
-  padding: 16px;
-  border-radius: 10px;
-}
-.animation[data-animation-step="2"] .device .slide1 {
-  left: -100%;
-}
-.animation[data-animation-step="2"] .device .slide2 {
-  left: 0%;
-}
-.animation[data-animation-step="2"] .device .tablet-home-button {
-  opacity: 1;
-}
-.animation[data-animation-step="3"] .device {
-  width: 27%;
-  height: 75%;
-  padding: 16px 4px;
-  border-radius: 6px;
-}
-.animation[data-animation-step="3"] .device .slide1,
-.animation[data-animation-step="3"] .device .slide2 {
-  left: -100%;
-}
-.animation[data-animation-step="3"] .device .slide3 {
-  left: 0%;
-}
-.animation[data-animation-step="3"] .device .phone-home-button {
-  opacity: 1;
-}
-  @media (min-height:800px) {
-    .animation[data-animation-step="1"] .device {width:87%; height:90%;}
-    .animation[data-animation-step="2"] .device {width:80%; height:80%;}
-    .animation[data-animation-step="3"] .device {width:28%; height:80%;}
-  }
-  @media (max-height:720px) {
-    .animation[data-animation-step="1"] .device {width:72%; height:75%;}
-    .animation[data-animation-step="2"] .device {width:59%; height:60%;}
-    .animation[data-animation-step="3"] .device {width:22%; height:63%;}
-    .animation .device .display div div {font-size:16px;}
-  }
-  @media (max-height:650px) {
-    .animation[data-animation-step="1"] .device {width:62%; height:65%;}
-    .animation[data-animation-step="2"] .device {width:54%; height:55%;}
-    .animation[data-animation-step="3"] .device {width:22%; height:63%;}
-    .animation .device .display div div {font-size:15px;}
-  }
-  @media (max-width:560px) {
-    .animation[data-animation-step="1"] .device {margin-top:1%;width:72%; height:75%;}
-    .animation[data-animation-step="2"] .device {margin-top:1%;width:65%; height:66%;}
-    .animation[data-animation-step="3"] .device {margin-top:1%;width:28%; height:80%;}
-    .animation .device .display div div {font-size:15px;}
-  }
-  @media (max-width:520px) {
-    .animation[data-animation-step="1"] .device {margin-top:0%;width:66%; height:69%;}
-    .animation[data-animation-step="2"] .device {margin-top:0%;width:62%; height:63%;}
-    .animation[data-animation-step="3"] .device {margin-top:0%;width:28%; height:80%;}
-    .animation .device .display div div {font-size:15px;}
-  }
-  @media (max-width:460px) {
-    .animation[data-animation-step="1"] .device {margin-top:0%;width:58%; height:61%;}
-    .animation[data-animation-step="2"] .device {margin-top:0%;width:54%; height:55%;}
-    .animation[data-animation-step="3"] .device {margin-top:0%;width:25%; height:72%;}
-    .animation .device .display div div {font-size:15px;}
-  }
-  @media (max-width:350px) {
-    .animation[data-animation-step="1"] .device {margin-top:3%;width:62%; height:65%;}
-    .animation[data-animation-step="2"] .device {margin-top:3%;width:58%; height:60%;}
-    .animation[data-animation-step="3"] .device {margin-top:9%;width:30%; height:80%;}
-    .animation .device .display div div {font-size:15px;}
-  }
-  @media (max-width:320px) {
-    .animation[data-animation-step="1"] .device {margin-top:6%;width:62%; height:65%;}
-    .animation[data-animation-step="2"] .device {margin-top:6%;width:58%; height:60%;}
-    .animation[data-animation-step="3"] .device {margin-top:12%;width:30%; height:80%;}
-    .animation .device .display div div {font-size:15px;}
-  }
-
-/* More media queries */
-@media (max-width: 430px) {
-  h2, .h2 {font-size: 30px;}
-}
diff --git a/css/styles_filter.css b/css/styles_filter.css
deleted file mode 100644
index 5cc8de4..0000000
--- a/css/styles_filter.css
+++ /dev/null
@@ -1,705 +0,0 @@
-/*.ol, ul {
-  margin-top: 0;
-  margin-bottom: 10px;
-  display: grid;
-  grid-template-columns: repeat(2, 2fr);
-  align-items: start;
-}*/
-
-/* --------------------------------
-
-Main Components
-
--------------------------------- */
-.cd-header {
-  position: relative;
-  height: 150px;
-  background-color: #331d35;
-}
-.cd-header h1 {
-  color: #ffffff;
-  line-height: 150px;
-  text-align: center;
-  font-size: 2.4rem;
-  font-weight: 300;
-}
-@media only screen and (min-width: 1170px) {
-  .cd-header {
-    height: 180px;
-  }
-  .cd-header h1 {
-    line-height: 180px;
-  }
-}
-
-.cd-main-content {
-  position: relative;
-  /* min-height: 100vh; */
-}
-.cd-main-content:after {
-  content: "";
-  display: table;
-  clear: both;
-}
-.cd-main-content.is-fixed .cd-tab-filter-wrapper {
-  position: fixed;
-  top: 0;
-  left: 0;
-  width: 100%;
-}
-.cd-main-content.is-fixed .cd-gallery {
-  padding-top: 76px;
-}
-.cd-main-content.is-fixed .cd-filter {
-  position: fixed;
-  height: 100vh;
-  overflow: hidden;
-}
-.cd-main-content.is-fixed .cd-filter form {
-  height: 100vh;
-  overflow: auto;
-  -webkit-overflow-scrolling: touch;
-}
-.cd-main-content.is-fixed .cd-filter-trigger {
-  position: fixed;
-}
-@media only screen and (min-width: 768px) {
-  .cd-main-content.is-fixed .cd-gallery {
-    padding-top: 90px;
-  }
-}
-@media only screen and (min-width: 1170px) {
-  .cd-main-content.is-fixed .cd-gallery {
-    padding-top: 100px;
-  }
-}
-
-/* --------------------------------
-
-xtab-filter
-
--------------------------------- */
-.cd-tab-filter-wrapper {
-  background-color: #03467b;
-  box-shadow: 0 1px 1px rgba(0, 0, 0, 0.08);
-  z-index: 1;
-  opacity: 0.9;
-}
-.cd-tab-filter-wrapper:after {
-  content: "";
-  display: table;
-  clear: both;
-}
-
-.cd-tab-filter {
-  /* tabbed navigation style on mobile - dropdown */
-  position: relative;
-  height: 50px;
-  width: 140px;
-  margin: 0 auto;
-  z-index: 1;
-}
-.cd-tab-filter::after {
-  /* small arrow icon */
-  content: '';
-  position: absolute;
-  right: 14px;
-  top: 50%;
-  bottom: auto;
-  -webkit-transform: translateY(-50%);
-  -moz-transform: translateY(-50%);
-  -ms-transform: translateY(-50%);
-  -o-transform: translateY(-50%);
-  transform: translateY(-50%);
-  display: block;
-  width: 16px;
-  height: 16px;
-  background: url("../img/cd-icon-arrow.svg") no-repeat center center;
-  -webkit-transition: all 0.3s;
-  -moz-transition: all 0.3s;
-  transition: all 0.3s;
-  pointer-events: none;
-}
-.cd-tab-filter ul {
-  position: absolute;
-  top: 0;
-  left: 0;
-  background-color: #ffffff;
-  box-shadow: inset 0 -2px 0 #41307c;
-}
-.cd-tab-filter li {
-  display: none;
-}
-.cd-tab-filter li:first-child {
-  /* this way the placehodler is alway visible */
-  display: block;
-}
-.cd-tab-filter a {
-  display: block;
-  /* set same size of the .cd-tab-filter */
-  height: 50px;
-  width: 140px;
-  line-height: 50px;
-  padding-right: 60px;
-}
-.cd-tab-filter a.selected {
-  background: #fff;
-  color: #ffffff;
-}
-.cd-tab-filter.is-open::after {
-  /* small arrow rotation */
-  -webkit-transform: translateY(-50%) rotate(-180deg);
-  -moz-transform: translateY(-50%) rotate(-180deg);
-  -ms-transform: translateY(-50%) rotate(-180deg);
-  -o-transform: translateY(-50%) rotate(-180deg);
-  transform: translateY(-50%) rotate(-180deg);
-}
-.cd-tab-filter.is-open ul {
-  box-shadow: inset 0 -2px 0 #41307c, 0 2px 10px rgba(0, 0, 0, 0.2);
-}
-.cd-tab-filter.is-open ul li {
-  display: block;
-}
-.cd-tab-filter.is-open .placeholder a {
-  /* reduces the opacity of the placeholder on mobile when the menu is open */
-  opacity: .4;
-}
-@media only screen and (min-width: 768px) {
-  .cd-tab-filter {
-    /* tabbed navigation style on medium devices */
-    width: 100%;
-    display: inline-block;
-  }
-  .cd-tab-filter::after {
-    /* hide the arrow */
-    display: none;
-  }
-  .cd-tab-filter ul {
-    background: transparent;
-    position: relative;
-    box-shadow: none;
-    text-align: center;
-    padding: 0;
-    display: inline-block;
-  }
-  .cd-tab-filter li {
-    display: inline-flex;
-  }
-  .cd-tab-filter li.placeholder {
-    display: none !important;
-  }
-  .cd-tab-filter a {
-    display: block;
-    padding: 0 1em;
-    width: auto;
-    color: #9a9a9a;
-    text-transform: uppercase;
-    font-weight: 700;
-    font-size: 1.3rem;
-  }
-  .no-touch .cd-tab-filter a:hover {
-    color: #fff;
-  }
-  .cd-tab-filter a.selected {
-    background: transparent;
-    color: #fff;
-    /* create border bottom using box-shadow property */
-    box-shadow: inset 0 -2px 0 #fff;
-  }
-  .cd-tab-filter.is-open ul li {
-    display: inline-block;
-  }
-}
-@media only screen and (min-width: 1170px) {
-  .cd-tab-filter {
-    /* tabbed navigation on big devices */
-    width: 100%;
-    float: none;
-    margin: 0;
-    -webkit-transition: width 0.3s;
-    -moz-transition: width 0.3s;
-    transition: width 0.3s;
-  }
-  .cd-tab-filter.filter-is-visible {
-    /* reduce width when filter is visible */
-    width: 80%;
-  }
-}
-
-/* --------------------------------
-
-xgallery
-
--------------------------------- */
-.cd-gallery {
-  padding: 26px 5%;
-  width: 100%;
-}
-.cd-gallery li {
-  margin-bottom: 1.6em;
-  margin-left: 1.9em;
-  display: none;
-}
-.cd-gallery li.gap {
-  /* used in combination with text-align: justify to align gallery elements */
-  opacity: 0;
-  height: 0;
-  display: block;
-}
-.cd-gallery .cd-fail-message {
-  display: none;
-  text-align: center;
-}
-
-@media only screen and (min-width: 360px) {
-  .cd-gallery {
-    padding: 30px 3%;
-    float: left;
-    -webkit-transition: width 0.3s;
-    -moz-transition: width 0.3s;
-    transition: width 0.3s;
-  }
-  .cd-gallery ul {
-    text-align: center;
-    display: flex;
-    flex-wrap: wrap;
-    padding-left: 0;
-  }
-  .cd-gallery ul:after {
-    content: "";
-    display: table;
-    clear: both;
-  }
-  .cd-gallery li {
-    margin-bottom: 5rem;
-    margin-left: auto;
-    margin-right: auto;
-    width: 100%;
-  }
-}
-
-@media only screen and (max-width: 768px) {
-  .cd-gallery li {width: 50%;}
-}
-
-@media only screen and (min-width: 768px) {
-  .cd-gallery {
-    padding: 30px 0;
-    float: left;
-    -webkit-transition: width 0.3s;
-    -moz-transition: width 0.3s;
-    transition: width 0.3s;
-  }
-  .cd-gallery ul {
-    text-align: center;
-    display: flex;
-    flex-wrap: wrap;
-    padding-left: 0;
-  }
-  .cd-gallery ul:after {
-    content: "";
-    display: table;
-    clear: both;
-  }
-  .cd-gallery li {
-    width: 33.333333%;
-    margin-bottom: 5rem;
-    margin-left: 0;
-    margin-right: 0;
-  }
-}
-@media only screen and (min-width: 1170px) {
-  .cd-gallery {
-    padding: 20px 0;
-    float: left;
-    -webkit-transition: width 0.3s;
-    -moz-transition: width 0.3s;
-    transition: width 0.3s;
-  }
-
-  .cd-gallery ul {
-    text-align: center;
-    display: flex;
-    flex-wrap: wrap;
-    margin-top: 30px;
-    padding-left: 0;
-  }
-
-  .cd-gallery li {
-    width: 33.333333%;
-    margin-left: 0;
-    margin-right: 0;
-  }
-  .cd-gallery.filter-is-visible {
-    /* reduce width when filter is visible */
-    width: 80%;
-  }
-}
-
-/* --------------------------------
-
-xfilter
-
--------------------------------- */
-.cd-filter {
-  position: absolute;
-  top: 0;
-  left: 0;
-  width: 280px;
-  height: 100%;
-  background: #ffffff;
-  box-shadow: 4px 4px 20px transparent;
-  z-index: 2;
-  /* Force Hardware Acceleration in WebKit */
-  -webkit-transform: translateZ(0);
-  -moz-transform: translateZ(0);
-  -ms-transform: translateZ(0);
-  -o-transform: translateZ(0);
-  transform: translateZ(0);
-  -webkit-backface-visibility: hidden;
-  backface-visibility: hidden;
-  -webkit-transform: translateX(-100%);
-  -moz-transform: translateX(-100%);
-  -ms-transform: translateX(-100%);
-  -o-transform: translateX(-100%);
-  transform: translateX(-100%);
-  -webkit-transition: -webkit-transform 0.3s, box-shadow 0.3s;
-  -moz-transition: -moz-transform 0.3s, box-shadow 0.3s;
-  transition: transform 0.3s, box-shadow 0.3s;
-}
-.cd-filter::before {
-  /* top colored bar */
-  content: '';
-  position: absolute;
-  top: 0;
-  left: 0;
-  height: 50px;
-  width: 100%;
-  background-color: #41307c;
-  z-index: 2;
-}
-.cd-filter form {
-  padding: 70px 20px;
-}
-.cd-filter .cd-close {
-  position: absolute;
-  top: 0;
-  right: 0;
-  height: 50px;
-  line-height: 50px;
-  width: 60px;
-  color: #ffffff;
-  font-size: 1.3rem;
-  text-align: center;
-  background: #37296a;
-  opacity: 0;
-  -webkit-transition: opacity 0.3s;
-  -moz-transition: opacity 0.3s;
-  transition: opacity 0.3s;
-  z-index: 3;
-}
-.no-touch .cd-filter .cd-close:hover {
-  background: #32255f;
-}
-.cd-filter.filter-is-visible {
-  -webkit-transform: translateX(0);
-  -moz-transform: translateX(0);
-  -ms-transform: translateX(0);
-  -o-transform: translateX(0);
-  transform: translateX(0);
-  box-shadow: 4px 4px 20px rgba(0, 0, 0, 0.2);
-}
-.cd-filter.filter-is-visible .cd-close {
-  opacity: 1;
-}
-@media only screen and (min-width: 1170px) {
-  .cd-filter {
-    width: 20%;
-  }
-  .cd-filter form {
-    padding: 70px 10%;
-  }
-}
-
-.cd-filter-trigger {
-  position: absolute;
-  top: 0;
-  left: 0;
-  height: 50px;
-  line-height: 50px;
-  width: 60px;
-  /* image replacement */
-  overflow: hidden;
-  text-indent: 100%;
-  color: transparent;
-  white-space: nowrap;
-  background: transparent url("../img/cd-icon-filter.svg") no-repeat center center;
-  z-index: 3;
-}
-.cd-filter-trigger.filter-is-visible {
-  pointer-events: none;
-}
-@media only screen and (min-width: 1170px) {
-  .cd-filter-trigger {
-    width: auto;
-    left: 2%;
-    text-indent: 0;
-    color: #9a9a9a;
-    text-transform: uppercase;
-    font-size: 1.3rem;
-    font-weight: 700;
-    padding-left: 24px;
-    background-position: left center;
-    -webkit-transition: color 0.3s;
-    -moz-transition: color 0.3s;
-    transition: color 0.3s;
-  }
-  .no-touch .cd-filter-trigger:hover {
-    color: #41307c;
-  }
-  .cd-filter-trigger.filter-is-visible, .cd-filter-trigger.filter-is-visible:hover {
-    color: #ffffff;
-  }
-}
-
-/* --------------------------------
-
-xcustom form elements
-
--------------------------------- */
-.cd-filter-block {
-  margin-bottom: 1.6em;
-}
-.cd-filter-block h4 {
-  /* filter block title */
-  position: relative;
-  margin-bottom: .2em;
-  padding: 10px 0 10px 20px;
-  color: #9a9a9a;
-  text-transform: uppercase;
-  font-weight: 700;
-  font-size: 1.3rem;
-  -webkit-user-select: none;
-  -moz-user-select: none;
-  -ms-user-select: none;
-  user-select: none;
-  cursor: pointer;
-}
-.no-touch .cd-filter-block h4:hover {
-  color: #41307c;
-}
-.cd-filter-block h4::before {
-  /* arrow */
-  content: '';
-  position: absolute;
-  left: 0;
-  top: 50%;
-  width: 16px;
-  height: 16px;
-  background: url("../img/cd-icon-arrow.svg") no-repeat center center;
-  -webkit-transform: translateY(-50%);
-  -moz-transform: translateY(-50%);
-  -ms-transform: translateY(-50%);
-  -o-transform: translateY(-50%);
-  transform: translateY(-50%);
-  -webkit-transition: -webkit-transform 0.3s;
-  -moz-transition: -moz-transform 0.3s;
-  transition: transform 0.3s;
-}
-.cd-filter-block h4.closed::before {
-  -webkit-transform: translateY(-50%) rotate(-90deg);
-  -moz-transform: translateY(-50%) rotate(-90deg);
-  -ms-transform: translateY(-50%) rotate(-90deg);
-  -o-transform: translateY(-50%) rotate(-90deg);
-  transform: translateY(-50%) rotate(-90deg);
-}
-.cd-filter-block input, .cd-filter-block select,
-.cd-filter-block .radio-label::before,
-.cd-filter-block .checkbox-label::before {
-  /* shared style for input elements */
-  font-family: "Open Sans", sans-serif;
-  border-radius: 0;
-  background-color: #ffffff;
-  border: 2px solid #e6e6e6;
-}
-.cd-filter-block input[type='search'],
-.cd-filter-block input[type='text'],
-.cd-filter-block select {
-  width: 100%;
-  padding: .8em;
-  -webkit-appearance: none;
-  -moz-appearance: none;
-  -ms-appearance: none;
-  -o-appearance: none;
-  appearance: none;
-  box-shadow: none;
-}
-.cd-filter-block input[type='search']:focus,
-.cd-filter-block input[type='text']:focus,
-.cd-filter-block select:focus {
-  outline: none;
-  background-color: #ffffff;
-  border-color: #41307c;
-}
-.cd-filter-block input[type='search'] {
-  /* custom style for the search element */
-  border-color: transparent;
-  background-color: #e6e6e6;
-  /* prevent jump - ios devices */
-  font-size: 1.6rem !important;
-}
-.cd-filter-block input[type='search']::-webkit-search-cancel-button {
-  display: none;
-}
-.cd-filter-block .cd-select {
-  /* select element wrapper */
-  position: relative;
-}
-.cd-filter-block .cd-select::after {
-  /* switcher arrow for select element */
-  content: '';
-  position: absolute;
-  z-index: 1;
-  right: 14px;
-  top: 50%;
-  -webkit-transform: translateY(-50%);
-  -moz-transform: translateY(-50%);
-  -ms-transform: translateY(-50%);
-  -o-transform: translateY(-50%);
-  transform: translateY(-50%);
-  display: block;
-  width: 16px;
-  height: 16px;
-  background: url("../img/cd-icon-arrow.svg") no-repeat center center;
-  pointer-events: none;
-}
-.cd-filter-block select {
-  cursor: pointer;
-  font-size: 1.4rem;
-}
-.cd-filter-block select::-ms-expand {
-  display: none;
-}
-.cd-filter-block .list li {
-  position: relative;
-  margin-bottom: .8em;
-}
-.cd-filter-block .list li:last-of-type {
-  margin-bottom: 0;
-}
-.cd-filter-block input[type=radio],
-.cd-filter-block input[type=checkbox] {
-  /* hide original check and radio buttons */
-  position: absolute;
-  left: 0;
-  top: 0;
-  margin: 0;
-  padding: 0;
-  opacity: 0;
-  z-index: 2;
-}
-.cd-filter-block .checkbox-label,
-.cd-filter-block .radio-label {
-  padding-left: 24px;
-  font-size: 1.4rem;
-  -webkit-user-select: none;
-  -moz-user-select: none;
-  -ms-user-select: none;
-  user-select: none;
-}
-.cd-filter-block .checkbox-label::before, .cd-filter-block .checkbox-label::after,
-.cd-filter-block .radio-label::before,
-.cd-filter-block .radio-label::after {
-  /* custom radio and check boxes */
-  content: '';
-  display: block;
-  position: absolute;
-  top: 50%;
-  -webkit-transform: translateY(-50%);
-  -moz-transform: translateY(-50%);
-  -ms-transform: translateY(-50%);
-  -o-transform: translateY(-50%);
-  transform: translateY(-50%);
-}
-.cd-filter-block .checkbox-label::before,
-.cd-filter-block .radio-label::before {
-  width: 16px;
-  height: 16px;
-  left: 0;
-}
-.cd-filter-block .checkbox-label::after,
-.cd-filter-block .radio-label::after {
-  /* check mark - hidden */
-  display: none;
-}
-.cd-filter-block .checkbox-label::after {
-  /* check mark style for check boxes */
-  width: 16px;
-  height: 16px;
-  background: url("../img/cd-icon-check.svg") no-repeat center center;
-}
-.cd-filter-block .radio-label::before,
-.cd-filter-block .radio-label::after {
-  border-radius: 50%;
-}
-.cd-filter-block .radio-label::after {
-  /* check mark style for radio buttons */
-  width: 6px;
-  height: 6px;
-  background-color: #ffffff;
-  left: 5px;
-}
-.cd-filter-block input[type=radio]:checked + label::before,
-.cd-filter-block input[type=checkbox]:checked + label::before {
-  border-color: #41307c;
-  background-color: #41307c;
-}
-.cd-filter-block input[type=radio]:checked + label::after,
-.cd-filter-block input[type=checkbox]:checked + label::after {
-  display: block;
-}
-
-@-moz-document url-prefix() {
-  /* hide custom arrow on Firefox - select element */
-  .cd-filter-block .cd-select::after {
-    display: none;
-  }
-}
-.worldmap {
-  width: 100%;
-  margin: 10em auto;
-}
-
-blockquote {
-  display: grid;
-  grid-template-columns: auto;
-  line-height: 1.8;
-  border-left: 0px !important;
-}
-blockquote p {
-  margin: 0;
-  grid-column: 2 / 3;
-}
-blockquote p + p,
-blockquote footer {
-  margin-top: .6em;
-}
-blockquote footer {
-  grid-column: 1 / -1;
-  font-size: .8em;
-  order: 1;
-}
-blockquote::before, blockquote::after {
-  grid-column-end: span 1;
-  font-size: 4em;
-  height: .25em;
-  line-height: .8;
-  padding: 0 .2em;
-}
-blockquote::before {
-  content: open-quote;
-}
-blockquote::after {
-  content: close-quote;
-  align-self: end;
-}
diff --git a/images/Phone_features_dark.png b/images/Phone_features_dark.png
new file mode 100644
index 0000000..94fbd4c
--- /dev/null
+++ b/images/Phone_features_dark.png
Binary files differ
diff --git a/img/cd-icon-arrow.svg b/img/cd-icon-arrow.svg
deleted file mode 100644
index 446df79..0000000
--- a/img/cd-icon-arrow.svg
+++ /dev/null
@@ -1,12 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Generator: Adobe Illustrator 18.1.1, SVG Export Plug-In . SVG Version: 6.00 Build 0)  -->
-<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
-<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
-	 width="16px" height="16px" viewBox="0 0 16 16" style="enable-background:new 0 0 16 16;" xml:space="preserve">
-<style type="text/css">
-	.st0{fill:#BBBBBB;}
-</style>
-<g>
-	<polygon class="st0" points="0.9,5.5 3.1,3.4 8,8.3 12.9,3.4 15.1,5.5 8,12.6 	"/>
-</g>
-</svg>
diff --git a/img/cd-icon-check.svg b/img/cd-icon-check.svg
deleted file mode 100644
index 2bcd4d2..0000000
--- a/img/cd-icon-check.svg
+++ /dev/null
@@ -1,10 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Generator: Adobe Illustrator 18.1.1, SVG Export Plug-In . SVG Version: 6.00 Build 0)  -->
-<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
-<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
-	 width="16px" height="16px" viewBox="0 0 16 16" style="enable-background:new 0 0 16 16;" xml:space="preserve">
-<style type="text/css">
-	.st0{fill:none;stroke:#FFFFFF;stroke-width:2;stroke-miterlimit:10;}
-</style>
-<polyline class="st0" points="4,7 7,10 12,5 "/>
-</svg>
diff --git a/img/cd-icon-filter.svg b/img/cd-icon-filter.svg
deleted file mode 100644
index 9b382b3..0000000
--- a/img/cd-icon-filter.svg
+++ /dev/null
@@ -1,15 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Generator: Adobe Illustrator 18.1.1, SVG Export Plug-In . SVG Version: 6.00 Build 0)  -->
-<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
-<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
-	 width="16px" height="16px" viewBox="0 0 16 16" style="enable-background:new 0 0 16 16;" xml:space="preserve">
-<style type="text/css">
-	.st0{fill:#8F83B8;}
-</style>
-<g>
-	<rect x="10" y="3" class="st0" width="6" height="2"/>
-	<polygon class="st0" points="3,7 9,7 9,1 3,1 3,3 0,3 0,5 3,5 	"/>
-	<rect y="11" class="st0" width="6" height="2"/>
-	<polygon class="st0" points="13,9 7,9 7,15 13,15 13,13 16,13 16,11 13,11 	"/>
-</g>
-</svg>
diff --git a/index.html b/index.html
index 1e9284b..4a5da67 100644
--- a/index.html
+++ b/index.html
@@ -4,332 +4,174 @@
 <head>
   <meta charset="utf-8">
   <meta name="viewport" content="width=device-width, initial-scale=1">
-  <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
-  <meta name="description" content="BlissRoms - new site">
-  <meta name="theme-color" content="#0080ff">
-  <link rel="shortcut icon" href="favicon.ico" type="image/x-icon">
-  <link rel="icon" sizes="192x192" href="images/bliss_icon_small.png">
-  <link rel="stylesheet" href="https://use.fontawesome.com/releases/v5.3.1/css/all.css" integrity="sha384-mzrmE5qonljUremFsqc01SB46JvROS7bZs3IO2EmfFsd15uHvIt+Y8vEf7N7fWAU" crossorigin="anonymous">
-  <link rel="stylesheet" type="text/css" href="https://cdnjs.cloudflare.com/ajax/libs/normalize/5.0.0/normalize.min.css">
-  <link rel="stylesheet" type="text/css" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.5/css/bootstrap.min.css">
-  <link href="https://fonts.googleapis.com/css?family=Comfortaa:400,700,300" rel="stylesheet">
-  <link rel="stylesheet" type="text/css" href="css/style.css">
-  <link rel="stylesheet" href="css/styles_filter.css">
+  <!-- PAGE settings -->
+  <link rel="icon" href="favicon.ico">
+  <title>Bliss ROMs</title>
+  <meta name="description" content="Open Source OS for all devices, based on AOSP">
+  <meta name="keywords" content="blissroms, bliss, os, x86, aosp, android, rom, teambliss">
+  <!-- CSS dependencies -->
+  <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css" type="text/css">
+  <link rel="stylesheet" href="neon.css">
+  <!-- Script: Make my navbar transparent when the document is scrolled to top -->
+  <script src="js/navbar-ontop.js"></script>
+  <!-- Script: Animated entrance -->
+  <script src="js/animate-in.js"></script>
   <link rel="stylesheet" href="css/animations.css">
-  <script src="js/modernizr.js"></script>
-  <script async="" src="//pagead2.googlesyndication.com/pagead/js/adsbygoogle.js"></script>
-  <script> (adsbygoogle = window.adsbygoogle || []).push({
-				google_ad_client: "ca-pub-7639560510014441",
-				enable_page_level_ads: true
-			  });
-			</script>
-  <title>Bliss</title>
 </head>
 
-<body>
-  <!-- Fixed navbar -->
-  <nav class="navbar navbar-default navbar-fixed-top">
+<body class="" style="">
+  <!-- Navbar -->
+  <nav class="navbar navbar-expand-md navbar-dark fixed-top bg-dark" style="padding-right: 41px;">
     <div class="container">
-      <div class="navbar-header">
-        <button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#navbar" aria-expanded="false" aria-controls="navbar">
-          <span class="sr-only">Toggle navigation</span>
-          <span class="icon-bar"></span>
-          <span class="icon-bar"></span>
-          <span class="icon-bar"></span>
-        </button>
-        <a class="navbar-brand" href="#" style="	background-image: url(images/BlissIcon_w.png);	background-position: top left;	background-size: 100%;	background-repeat: no-repeat;">   </a>
+      <a class="navbar-brand" href="#"><img src="images/BlissIcon_Smal_wl.png" width="50" class="d-inline-block align-top" alt=""></a>
+      <div class="row">
+        <div class="col-md-12"><a class="navbar-brand" href="#"><b><b>Bliss ROMs</b></b></a></div>
       </div>
-      <div id="navbar" class="collapse navbar-collapse">
-        <ul class="nav navbar-nav navbar-right">
-          <li id="nav-about">
-            <a href="#about">About</a>
+      <div class="row"></div>
+      <button class="navbar-toggler navbar-toggler-right" type="button" data-toggle="collapse" data-target="#navbar2SupportedContent" aria-controls="navbar2SupportedContent" aria-expanded="false" aria-label="Toggle navigation"> <span class="navbar-toggler-icon"></span> </button>
+      <div class="collapse navbar-collapse text-center justify-content-end" id="navbar2SupportedContent">
+        <ul class="navbar-nav">
+          <li class="nav-item mx-2">
+            <a class="nav-link" href="#features"><b><b>Features</b></b></a>
           </li>
-          <li id="nav-portfolio">
-            <a href="#portfolio">Downloads</a>
+          <li class="nav-item mx-2">
+            <a class="nav-link" href="#reviews"><b><b>Reviews</b></b></a>
           </li>
-          <li id="nav-contact">
-            <a href="#contact">Links</a>
+          <li class="nav-item mx-2">
+            <a class="nav-link" href="#team"><b><b>Team</b></b></a>
           </li>
-          <li id="nav-team">
-            <a href="#team">Team</a>
-          </li>
-          <li id="nav-family2">
-            <a href="#family2">Family</a>
-          </li>
-          <li id="nav-studios">
-            <a href="bfor.html">Nonprofit</a>
-          </li>
-          <li id="donate">
-            <a href="https://www.paypal.me/TeamBliss" target="_blank">Donate</a>
+          <li class="nav-item mx-2">
+            <a class="nav-link" href="bfor.html"><b><b>Non Profit</b></b></a>
           </li>
         </ul>
+        <a class="btn navbar-btn mx-2 btn-primary shadowed" href="#download"><b><b>Download</b></b></a>
       </div>
-      <!--/.nav-collapse -->
     </div>
   </nav>
+  <!-- Cover -->
+  <div class="section-fade-out pt-5" style="background-image: url(&quot;https://i.imgur.com/BOGKaGy.jpg&quot;); background-position: center bottom;">
+    <div class="container pt-5">
+      <div class="row">
+        <div class="col-md-4 ">
+          <div class="col-md-12">
+            <h1 class="display-3 mb-4">Bliss</h1>
+            <p class="lead mb-4">Is a unique take on Android OS, that incorporates many customizations options and added security features.&nbsp;<br><br>And it is available for...</p>
+          </div>
+        </div>
+        <div class="col-md-8 d-flex justify-content-center align-items-center flex-grow-1" align="center" style="max-height: 100%;max-width: 100%;vertical-align: middle;display: inline-flex;float: none; margin-top: -8%;">
+          <div class=" d-inline-flex justify-content-center align-items-center mx-auto">
+            <div class="animation mx-auto d-inline-flex justify-content-center align-items-center" data-animation-step="2">
+              <div class="device mx-auto mt-5">
+                <div class="screen-stand"></div>
+                <div class="display">
+                  <div class="slide1">
+                    <div>Most Intel/x86 <br>
+                      <em>PCs, Tablets &amp; Laptops</em>
+                    </div>
+                  </div>
+                  <div class="slide2">
+                    <div>Most Android <br>
+                      <em>tablets</em>
+                    </div>
+                  </div>
+                  <div class="slide3">
+                    <div>Most Android <br>
+                      <em>phones</em>
+                    </div>
+                  </div>
+                </div>
+              </div>
+            </div>
+          </div>
+        </div>
+      </div>
+      <div class="row">
+        <div class="col-md-12 d-inline-flex justify-content-center align-items-center mx-auto mt-5"><a href="#download" class="btn btn-lg btn-primary d-inline-flex justify-content-center align-items-center mx-auto">Download Now</a></div>
+      </div>
+    </div>
+  </div>
+  <!-- Article style section -->
   <div class="py-5">
     <div class="container">
-      <div class="row">
-        <div class="col-md-12">
-          <p></p>
-        </div>
-      </div>
-    </div>
-  </div>
-  <!-- Begin page content -->
-  <div class="container-fluid">
-    <div class="row cover top" style="	background-image: linear-gradient(to bottom, rgba(22, 22, 22, 0.0), rgba(22, 22, 22, 1.0));	background-position: top left;	background-size: 100%;	background-repeat: repeat;">
-      <div class="col-xs-12" style="	max-height: 120%;">
-        <div class="row" style="overflow-x:hidden;height: auto;overflow-y: visible; color: #fff;">
-          <div class="col-md-12" align="center">
-            <div class="row">
-              <h1>Bliss</h1>
-              <p class="lead">An open source OS, based on Android, that works on</p>
-            </div>
-          </div>
-          <div class="col-md-12" align="center">
-            <div class="row">
-              <div class="animation" data-animation-step="1">
-                <div class="device">
-                  <div class="screen-stand">
-                    <div class="leg"></div>
-                    <div class="foot"></div>
-                  </div>
-                  <div class="display">
-                    <div class="slide1">
-                      <div>Most Intel/x86 <br>
-                        <em>PCs, Tablets &amp; Laptops</em>
-                      </div>
-                    </div>
-                    <div class="slide2">
-                      <div>Most Android <br>
-                        <em>tablets</em>
-                      </div>
-                    </div>
-                    <div class="slide3">
-                      <div>Most Android <br>
-                        <em>phones</em>
-                      </div>
-                    </div>
-                  </div>
-                </div>
-              </div>
-            </div>
-          </div>
-        </div>
-        <div class="row">
-          <div class="col-xs-12 center-block text-center" style="overflow-y: visible; color: rgb(255, 255, 255); transform: translateY(60px);">
-            <a href="#about"><span id="scrollIcon" class="front-glyph glyphicon glyphicon-menu-down" style="	color: #fff;	transform:  translateY(-100%) ;" aria-hidden="true"></span></a>
-          </div>
-        </div>
-      </div>
-    </div>
-    <div id="about" class="row cover">
-      <div class="container">
-        <div class="family-header text-center">
-          <h2 class="text-center" style="color: #fff;">About Bliss</h2>
-        </div>
-        <div class="row">
-          <div class="col-md-6 text-center about-info">
-            <img class="img-circle text-center profile-img" src="images/bliss_opt_logo.png">
-            <p class="text-center">Our focus is to provide a quality OS that can run throughout the day, on all your devices, preserving customizations and options by syncing across all platforms. With all the bells and whistles, you'll soon learn why we call it Bliss.</p>
-          </div>
-          <div class="col-md-6 text-center about-info">
+      <div class="row py-5" style="">
+        <div class="col-md-5 order-2 order-md-1 animate-in-left">
+          <div>
+            <img src="images/phone_front.svg" style="max-height: 65%;max-width: 50%;" class="justify-content-center align-items-center flex-grow-1 d-flex mx-auto">
             <div>
-              <img src="images/phone_front.svg" style="max-height: 75%;max-width: 50%;vertical-align: middle;display: inline-flex;float: none">
-              <div>
-                <video style="max-height: 65%;max-width: 45%;vertical-align: middle;display: inline-flex;float: none;margin-top: -105%;z-index: 999" preload="" muted="" autoplay="autoplay" oncanplay="this.muted=true" loop="loop">
-                  <source src="images/bliss-demo.mp4" type="video/mp4">
-                  <source src="images/bliss-demo.mkv" type="video/mkv"> Your browser does not support video! </video>
-              </div>
+              <video style="max-width: 46%;vertical-align: middle;display: inline-flex;float: none;margin-top: -90%;z-index: 999" preload="" muted="" autoplay="autoplay" oncanplay="this.muted=true" loop="loop" class="justify-content-center align-items-center flex-grow-1 d-flex mx-auto" width="80%" height="35%">
+                <source src="images/bliss-demo.mp4" type="video/mp4">
+                <source src="images/bliss-demo.mkv" type="video/mkv"> Your browser does not support video! </video>
             </div>
           </div>
         </div>
-      </div>
-    </div>
-    <!-- End #About -->
-    <div id="portfolio" class="row cover" style="">
-      <h2 class="text-center" style="color: #fff;">Downloads</h2>
-      <div class="container">
-        <div class="row portfolio-projects">
-          <!-- Two project row-->
-          <div class="col-lg-6">
-            <!--1st side project -->
-            <div class="row">
-              <div class="col-sm-5 text-center">
-                <h4 class="portfolio-projects--title">BlissRoms - for phones and tablets</h4>
-                <p class="portfolio-projects--desc">This is the Bliss you have all come to know and love for your phones and tablets.<br><br>Our list of supported devices is constantly changing, so make sure you check our Maintainers section to see if your device is supported.</p>
-                <a class="btn btn-rounded portfolio-projects--btn" href="https://downloads.blissroms.com/BlissRoms" role="button"><i class="fas fa-download"></i> Downloads</a>
-                <a class="btn btn-rounded portfolio-projects--btn" href="https://maintainers.blissroms.com" role="button">Maintainers Section</a>
-              </div>
-              <div class="col-sm-7 text-center">
-                <img class="portfolio-projects--image" src="images/bliss_nexus.png">
-              </div>
-            </div>
-          </div>
-          <div class="col-lg-6">
-            <!--2nd side project -->
-            <div class="row">
-              <div class="col-sm-5 text-center pull-right-sm" style="">
-                <!--flipped on small, unflipped on large-->
-                <h4 class="portfolio-projects--title">BlissOS - for desktops and laptops</h4>
-                <p class="portfolio-projects--desc">This is Bliss for your x86-based devices, including desktops, laptops, tablets, maker boards and a lot more.</p>
-                <p class="portfolio-projects--desc">These builds are compatible with PCs, MacBooks and Chromebooks equipped with CPUs from Intel and AMD, and GPUs from Intel, AMD, or Nvidia. Supports both BIOS/CSM and UEFI boot.</p>
-                <p class="portfolio-projects--desc">This project includes @farmerbb's Taskbar Launcher for a more desktop-like experience, and includes an Orientation app to manage rotation-forcing apps. For gaming on BlissOS, we also include Octopus, an on-screen keymapping solution from the Phoenix OS team.</p>
-                </div>
-              <div class="col-sm-7 text-center pull-right-sm">
-                <!--flipped on small, unflipped on large-->
-                <img class="img-rounded portfolio-projects--image" src="images/bliss_surface.png">
-                <br>
-                <p class="portfolio-projects--desc portfolio-projects--image-title">(Preview shown using DNA Dark - Substratum theme)</p>
-              </div>
-            </div>
-            <div class="row">
-            </div>
-            <div class="alert p-0">
-              <span class="closebtn" onclick="this.parentElement.style.display='none';">×</span>
-              <p style="font-size:125%">Bliss OS is currently available as a development preview. These builds will not run on all machines. To help speed the process up, we have opened our source to the public. See the Our Source section of our <a href="#contact">Links</a> for more info.&nbsp;</p>
-            </div>
-            <p class="portfolio-projects--desc text-center text-uppercase">!! Before you download !! Please visit our XDA thread and make sure you fully understand the process before diving right in. This is a development preview.&nbsp;</p>
-            <p class="portfolio-projects--desc text-center ">We currently offer an easy installer for Windows PCs (UEFI only) included in the .ISO</p>
-            <div class="col-md-12 text-center">
-				<a class="btn btn-rounded portfolio-projects--btn" href="https://downloads.blissroms.com/BlissOS" role="button" style=""><i class="fas fa-download"></i> Downloads</a>
-                <a class="btn btn-rounded portfolio-projects--btn" href="https://forum.xda-developers.com/bliss-roms/bliss-roms-development/bliss-os-pie-beta-preview-t3855917" role="button">XDA thread</a>
-                <br>
-                <a class="btn btn-rounded portfolio-projects--btn text-white" href="https://sourceforge.net/projects/blissos-x86/files/Official/" role="button">SourceForge Archive</a>
-            </div>
-          </div>
-        </div>
-        <!--end Two project row-->
-      </div>
-    </div>
-  </div>
-  <!-- End #Portfolio -->
-  <div class="text-white bg-dark cover bottom" style="	background-image: linear-gradient(to bottom, rgba(0, 0, 0, .0), rgba(0, 0, 0, .75));	background-position: top left;	background-size: 100%;	background-repeat: repeat;">
-    <div class="container py-3">
-      <div class="row">
-        <div class="col-lg-5 p-0">
-          <div class="embed-responsive embed-responsive-4by3"> <iframe width="560" height="315" src="https://www.youtube.com/embed/gqoOtmPy4oc" frameborder="0" allow="autoplay; encrypted-media" allowfullscreen=""></iframe> </div>
-        </div>
-        <div class="p-5 col-lg-7 d-flex flex-column justify-content-center" style="">
-          <h2 class="" style="color: #fff;">Bliss Videos</h2>
-          <p class="lead mb-0">Our team likes to work on a few videos as well in our spare time. Walkthroughs, updates, reviews - we try to cover them all. Make sure to follow us on YouTube for the latest announcements and updates!</p>
-          <a class="btn btn-rounded family-projects--btn" href="https://www.youtube.com/channel/UCHVCPbyVGPiwZs7XycTYY1g">Team Bliss on YouTube</a>
+        <div class="col-md-7 align-self-center order-1 order-md-2 my-3 text-md-left text-center">
+          <h2 class="text-white">About Bliss</h2>
+          <p class="my-4 text-light">Our focus is to provide a quality OS that can run throughout the day, on all your devices, preserving customizations and options by syncing across all platforms. With all the bells and whistles, you'll soon learn why we call it Bliss.</p>
+          <a class="btn btn-outline-primary" href="#features">Learn more</a>
         </div>
       </div>
     </div>
   </div>
-  <div id="contact" class="row cover bottom" style="	background-image: linear-gradient(to bottom, rgba(0, 0, 0, 0), rgba(0, 0, 0, 0));	background-position: top left;	background-size: 100%;	background-repeat: repeat;">
-    <h2 class="text-center contact-header" style="color: #fff;">Find Us Online</h2>
-    <div class="text-center contact-social-icons">
-      <ul class="centered">
-        <a href="mailto:contact@blissroms.com">
-          <li>
-            <i class="fas fa-envelope"></i> Contact us via email </li>
-        </a>
-      </ul>
+  <!-- Features -->
+  <div class="py-5 text-center bg-primary">
+    <div class="d-flex justify-content-center align-items-center px-0 container-fluid mx-auto">
+      <div class="row mx-auto d-flex align-items-center justify-content-center">
+        <div class="col-md-12">
+          <div class="row mx-5">
+            <div class="align-self-center col-lg-7 text-md-left text-center">
+              <h1>Run Bliss on more devices</h1>
+              <p class="my-4 text-light">Bliss comes in a few variants. On top of our traditional device builds of Bliss ROM, our GSI/Treble builds will work on most treble compatible devices (Android Pie+) And our x86 variant (Bliss OS) is made to work with the Linux kernel, and supports booting with MBR/UEFI type bootloaders. So just about any Windows/Linux PC or tablet released in the last 4 years. We are always developing with usability in mind, and supporting more and more devices each week.&nbsp;<br></p>
+              <a class="btn shadowed btn-dark" href="#download">Download</a>
+            </div>
+            <div class="align-self-center mt-5 col-lg-5 animate-in-right">
+              <img class="img-fluid d-block" src="images/bliss_surface.png"> </div>
+          </div>
+        </div>
+      </div>
     </div>
-    <!-- End #Contact-->
-    <div class="text-center contact-social-icons">
-      <h2 style="color: #fff; font-size: 1.45em !important;">Our Socials:</h2>
-      <ul class="centered">
-        <a href="https://t.me/Team_Bliss_Community">
-          <li>
-            <i class="fab fa-telegram"></i> BlissRoms Telegram </li>
-        </a>
-        <a href="https://t.me/blissx86">
-          <li>
-            <i class="fab fa-telegram"></i> BlissOS Telegram </li>
-        </a>
-        <br>
-        <a href="https://www.facebook.com/BlissFamilyOfROMs/">
-          <li>
-            <i class="fab fa-facebook"></i> Bliss Facebook </li>
-        </a>
-        <a href="https://twitter.com/Bliss_Roms">
-          <li>
-            <i class="fab fa-twitter"></i> Bliss Twitter </li>
-        </a>
-        <a href="https://plus.google.com/communities/118265887490106132524">
-          <li>
-            <i class="fab fa-google-plus"></i> Bliss G+ </li>
-        </a>
-      </ul>
-      <p></p>
-    </div>
-    <!-- End #Contact -->
-    <div class="text-center contact-social-icons">
-      <h2 style="color: #fff; font-size: 1.45em !important;">Our Source:</h2>
-      <ul class="centered">
-        <!-- Start BlissRoms resources -->
-        <a href="https://github.com/BlissRoms">
-          <li>
-            <i class="fab fa-github"></i> BlissRoms Github </li>
-        </a>
-        <a href="https://github.com/BlissRoms-Devices">
-          <li>
-            <i class="fab fa-github"></i> BlissRoms-Devices Github </li>
-        </a>
-        <a href="https://github.com/BlissRoms-Kernels">
-          <li>
-            <i class="fab fa-github"></i> BlissRoms-Kernels Github </li>
-        </a>
-        <a href="https://github.com/BlissRoms-Vendor">
-          <li>
-            <i class="fab fa-github"></i> BlissRoms-Vendor Github </li>
-        </a>
-        <a href="https://review.blissroms.com">
-          <li>
-            <i class="fab fa-github"></i> BlissRoms Gerrit </li>
-        </a>
-        <!-- End BlissRoms resources-->
-        <br>
-        <!-- Start BlissOS resources -->
-        <a href="https://github.com/BlissRoms-x86">
-          <li>
-            <i class="fab fa-github"></i> BlissOS Github </li>
-        </a>
-        <a href="https://github.com/BlissRoms-pine64">
-          <li>
-            <i class="fab fa-github"></i> BlissOS for Pine64 Github </li>
-        </a>
-        <a href="https://review-x86.blissroms.com"> </a>
-        <!-- End BlissOS resources -->
-      </ul>
-      <p></p>
-    </div>
-    <!-- End #Contact -->
-    <div class="text-center contact-social-icons">
-      <h2 style="color: #fff; font-size: 1.45em !important;">Our Subreddits:</h2>
-      <ul class="centered">
-        <a href="https://www.reddit.com/r/BlissRoms">
-          <li>
-            <i class="fab fa-reddit"></i> r/BlissRoms </li>
-        </a>
-        <a href="https://www.reddit.com/r/BlissOS">
-          <li>
-            <i class="fab fa-reddit"></i> r/BlissOS </li>
-        </a>
-        <a href="https://www.reddit.com/r/TeamBliss">
-          <li>
-            <i class="fab fa-reddit"></i> r/TeamBliss </li>
-        </a>
-      </ul>
-      <p></p>
-    </div>
-    <!-- End #Contact -->
   </div>
-  <div class="row">
+  <div class="py-5 bg-dark" id="features">
     <div class="container">
       <div class="row">
+        <div class="col-12 text-center">
+          <h3 class="display-3">Bliss Features</h3>
+        </div>
+      </div>
+      <div class="row">
+        <div class="align-self-center text-md-right text-center col-lg-4 col-md-6">
+          <h4 class="text-primary"><b>Focus on design</b></h4>
+          <p class="mb-5 text-white">We include many options for customization and theming throughout the OS</p>
+          <h4 class="text-primary"><b>Customized settings</b></h4>
+          <p class="mb-5 text-white">Choose settings depending on the criteria you value the most. With no limits.</p>
+          <h4 class="text-primary"><b>Connect</b></h4>
+          <p class="mb-5 text-white">In-app chat panel 24/7 active. <br>The support you need, right there.</p>
+        </div>
+        <div class="my-3 d-none d-lg-block animate-in-down col-md-4" style="">
+          <img class="img-fluid d-block" src="images/Phone_features_dark.png"> </div>
+        <div class="align-self-center text-md-left text-center col-lg-4 col-md-6">
+          <h4 class="text-primary"><b>Battery-friendly</b></h4>
+          <p class="mb-5 text-white">Extra options are provided to help tune battery consumption to the best levels</p>
+          <h4 class="text-primary"><b>Added Security</b></h4>
+          <p class="mb-5 text-white">Additional security options and features are found throughout the OS. And AOSP security updates are merged regularly</p>
+          <h4 class="text-primary"><b>Share the love</b></h4>
+          <p class="mb-5 text-white">Help us spreading the word. <br>Tell your friends with just one-click</p>
+        </div>
+      </div>
+    </div>
+  </div>
+  <!-- Features -->
+  <!-- Carousel reviews -->
+  <div class="section">
+    <div class="container d-flex justify-content-center align-items-center flex-grow-1 mx-auto w-75">
+      <div class="row">
         <div class="px-5 col-md-6 text-center mx-auto">
           <h3 class="my-3 highlight_secondary team-header text-white"> </h3><br>
           <h2 class="my-3 highlight_secondary team-header text-white">We volunteer our time.</h2>
-          <p class="mb-3">We are a 501(c3) nonprofit, run by people that donate their free time towards the project. We do our best to bring a quality OS to your device, while working a real job on the side in most cases. Please consider showing us we're on the right track by clicking the button below. </p> <a href="https://www.paypal.me/TeamBliss" class="btn btn-rounded family-projects--btn">Buy Us a Beer</a>
+          <p class="mb-3">We are a 501(c3) nonprofit, run by people that donate their free time towards the project. We do our best to bring a quality OS to your device, while working a real job on the side in most cases. Please consider showing us we're on the right track by clicking the button below. </p> <a href="https://www.paypal.me/TeamBliss" class="btn btn-primary">Buy Us a Beer</a>
           <p class="mt-2"></p>
         </div>
         <div class="col-md-6 py-2">
-          <div class="beer-animation-wrapper">
+          <div class="beer-animation-wrapper mt-4">
             <div class="beer" style="	transform:  translateX(12em) ;">
               <div class="foam"></div>
             </div>
@@ -338,667 +180,290 @@
       </div>
     </div>
   </div>
-  <!-- break -->
-  <div id="team" class="row cover text-center col-lg-12">
-    <h2 class="highlight_secondary team-header">Our Team</h2>
+  <!-- Call to action -->
+  <div class="py-5  bg-primary" id="download">
     <div class="container">
-      <h3> We are a team of designers, developers, maintainers, and business professionals working together to help achieve the dreams of our team mates and the Android community. Our goal is to help provide a unique learning environment using the FOSS mentality, to not only train people how to make what they aspire to, but also provide unique business opportunities for new and already existing projects. </h3>
-      <div class="hr big_size_hr invisible_hr">
-      </div>
-      <main class="cd-main-content">
-        <div class="cd-tab-filter-wrapper">
-          <div class="cd-tab-filter">
-            <ul class="cd-filters">
-              <li class="placeholder">
-                <a data-type="all" href="#0">All</a>
-                <!-- selected option on mobile -->
-              </li>
-              <li class="filter">
-                <a class="selected" href="#0" data-type="all">All</a>
-              </li>
-              <li class="filter" data-filter=".board_member">
-                <a href="#0" data-type="board_member">Management</a>
-              </li>
-              <li class="filter" data-filter=".development">
-                <a href="#0" data-type="development">Development</a>
-              </li>
-              <li class="filter" data-filter=".graphics">
-                <a href="#0" data-type="graphics">Graphics Design</a>
-              </li>
-              <li class="filter" data-filter=".others">
-                <a href="#0" data-type="others">Other Departments</a>
-              </li>
-              <li class="filter" data-filter="">
-                <a href="https://maintainers.blissroms.com/">maintainers</a>
-              </li>
-            </ul>
-          </div>
-        </div>
-        <section class="cd-gallery">
-          <ul>
-            <li class="mix board_member development">
-              <div class="row">
-                <div class="col-md-2 col-sm-4 col-xs-6">
-                  <div class="team">
-                    <div class="team-image">
-                      <img src="https://lh3.googleusercontent.com/w7i8JBSfddUp88DpBjjdT_PBODfKTiFV8TKHqyZnsU3m0-ppYXsuafqDtBxakFYW3mjIahKkFYBepZIGRQ=w1920-h1080-no" class="img-circle img-responsive">
-                      <div class="team-links">
-                        <div class="team-links-list">
-                          <!-- Saved for later -->
-                        </div>
-                      </div>
-                    </div>
-                    <div class="team-content">
-                      <div class="team-name">JackEagle</div>
-                      <div class="team-role">
-                        <h4>CEO<br>Founder<br>Developer</h4>
-                      </div>
-                      <div class="team-description"></div>
-                    </div>
-                  </div>
-                </div>
-              </div>
-            </li>
-            <li class="mix board_member development graphics">
-              <div class="row">
-                <div class="col-md-2 col-sm-4 col-xs-6">
-                  <div class="team">
-                    <div class="team-image">
-                      <img src="https://lh3.googleusercontent.com/hcV4Tp81H4TJskQhpKckcDBqwnETos_ZOxXsQbiZGOT5OxMC-3pOD5i22j1tPiaubWW74tmnwB0ixvGwELQ=w1920-h1080-no" class="img-circle img-responsive">
-                      <div class="team-links">
-                        <div class="team-links-list">
-                          <!-- Saved for later -->
-                        </div>
-                      </div>
-                    </div>
-                    <div class="team-content">
-                      <div class="team-name">Jon West</div>
-                      <div class="team-role">
-                        <h4>CTO<br>Incorporator<br>Developer</h4>
-                      </div>
-                      <div class="team-description"></div>
-                    </div>
-                  </div>
-                </div>
-              </div>
-            </li>
-            <li class="mix board_member development">
-              <div class="row">
-                <div class="col-md-2 col-sm-4 col-xs-6">
-                  <div class="team">
-                    <div class="team-image">
-                      <img src="https://lh3.googleusercontent.com/xhKBfn9HcjWayS9gQizUuh7JATtI4i-OvVv9Q6XPy5v5IyiI44lqRoxtMIyI3rlLc7OCyparEB9OqGT_Vg=w1920-h1080-no" class="img-circle img-responsive">
-                      <div class="team-links">
-                        <div class="team-links-list">
-                          <!-- Saved for later -->
-                        </div>
-                      </div>
-                    </div>
-                    <div class="team-content">
-                      <div class="team-name">Vaughn Newman</div>
-                      <div class="team-role">
-                        <h4>Admin<br>Board Member<br>Developer</h4>
-                      </div>
-                      <div class="team-description"></div>
-                    </div>
-                  </div>
-                </div>
-              </div>
-            </li>
-            <li class="mix board_member development">
-              <div class="row">
-                <div class="col-md-2 col-sm-4 col-xs-6">
-                  <div class="team">
-                    <div class="team-image">
-                      <img src="https://lh3.googleusercontent.com/JOdHk7TYY-SLjAANLuK7t68Oz6w4fDFody-Uwj3rtH6oSZkljniUceYFQ52rbJXeBv4kDgoGhrtamLJlwZc=w1920-h1080-no" class="img-circle img-responsive">
-                      <div class="team-links">
-                        <div class="team-links-list">
-                          <!-- Saved for later -->
-                        </div>
-                      </div>
-                    </div>
-                    <div class="team-content">
-                      <div class="team-name">Antonio Luciano</div>
-                      <div class="team-role">
-                        <h4>Board Member<br>Project Manager<br>App Developer</h4>
-                      </div>
-                      <div class="team-description"></div>
-                    </div>
-                  </div>
-                </div>
-              </div>
-            </li>
-            <li class="mix board_member development">
-              <div class="row">
-                <div class="col-md-2 col-sm-4 col-xs-6">
-                  <div class="team">
-                    <div class="team-image">
-                      <img src="https://lh3.googleusercontent.com/Oq2NnEoAaexFWMacS4dFgu9JPmQxC38k_YXnNrR_N10PhFZ2vZxmlTlv-3UBB_kwqjTfTYin-ZSA0JSNew=w1920-h1080-no" class="img-circle img-responsive">
-                      <div class="team-links">
-                        <div class="team-links-list">
-                          <!-- Saved for later -->
-                        </div>
-                      </div>
-                    </div>
-                    <div class="team-content">
-                      <div class="team-name">Călin Neamţu</div>
-                      <div class="team-role">
-                        <h4>Lead App Developer</h4>
-                      </div>
-                      <div class="team-description"></div>
-                    </div>
-                  </div>
-                </div>
-              </div>
-            </li>
-            <li class="mix board_member development">
-              <div class="row">
-                <div class="col-md-2 col-sm-4 col-xs-6">
-                  <div class="team">
-                    <div class="team-image">
-                      <img src="https://lh3.googleusercontent.com/LZrBsYT1S4qQI92uCuWx34QSGDcKpwY1G2h3LXT3tEvMPuSA8d6tiY7CsLYvBCznXk4sJhgr6UFk8pg1oA=w1920-h1080-no" class="img-circle img-responsive">
-                      <div class="team-links">
-                        <div class="team-links-list">
-                          <!-- Saved for later -->
-                        </div>
-                      </div>
-                    </div>
-                    <div class="team-content">
-                      <div class="team-name">BitO BSessiOn</div>
-                      <div class="team-role">
-                        <h4>Board Member<br>Developer</h4>
-                      </div>
-                      <div class="team-description"></div>
-                    </div>
-                  </div>
-                </div>
-              </div>
-            </li>
-            <li class="mix board_member development">
-              <div class="row">
-                <div class="col-md-2 col-sm-4 col-xs-6">
-                  <div class="team">
-                    <div class="team-image">
-                      <img src="https://lh3.googleusercontent.com/9HpKaGSOQnmm649RlvoUvJVNgoTEhX1w8X9l48wzBacggsottSVVIEX76RP2tRI2CZYu799RdAmhD1fwbQ=w1920-h1080-no" class="img-circle img-responsive">
-                      <div class="team-links">
-                        <div class="team-links-list">
-                          <!-- Saved for later -->
-                        </div>
-                      </div>
-                    </div>
-                    <div class="team-content">
-                      <div class="team-name">Blake Leeper</div>
-                      <div class="team-role">
-                        <h4>Board Member<br>App Developer</h4>
-                      </div>
-                      <div class="team-description"></div>
-                    </div>
-                  </div>
-                </div>
-              </div>
-            </li>
-            <li class="mix board_member others">
-              <div class="row">
-                <div class="col-md-2 col-sm-4 col-xs-6">
-                  <div class="team">
-                    <div class="team-image">
-                      <img src="https://lh3.googleusercontent.com/eRqBEkS4_cWFEkLce4sVRmyCkAwgsGZwIg1kE12_gjBaghKQ8Omc6V2UJT6q6LwZS8l-LkutUrskyeLFrd0=w1920-h1080-no" class="img-circle img-responsive">
-                      <div class="team-links">
-                        <div class="team-links-list">
-                          <!-- Saved for later -->
-                        </div>
-                      </div>
-                    </div>
-                    <div class="team-content">
-                      <div class="team-name">Evan Galvin</div>
-                      <div class="team-role">
-                        <h4>Board Member<br>Product Technology Strategist</h4>
-                      </div>
-                      <div class="team-description"></div>
-                    </div>
-                  </div>
-                </div>
-              </div>
-            </li>
-            <li class="mix development">
-              <div class="row">
-                <div class="col-md-2 col-sm-4 col-xs-6">
-                  <div class="team">
-                    <div class="team-image">
-                      <img src="https://lh3.googleusercontent.com/dtVX8GF-3N179O1HzMTW5X7vsegsslETfR1GEsUEvhJC2Pmv9h5jBJJf6fC1iZWYkOiGmFfte2HcBQ=w1920-h1080-no" class="img-circle img-responsive">
-                      <div class="team-links">
-                        <div class="team-links-list">
-                          <!-- Saved for later -->
-                        </div>
-                      </div>
-                    </div>
-                    <div class="team-content">
-                      <div class="team-name">Eric Park <br>(ideaman924) </div>
-                      <div class="team-role">
-                        <h4>Developer (BlissRoms) <br>Release Manager (BlissOS) </h4>
-                      </div>
-                      <div class="team-description"></div>
-                    </div>
-                  </div>
-                </div>
-              </div>
-            </li>
-            <li class="mix development">
-              <div class="row">
-                <div class="col-md-2 col-sm-4 col-xs-6">
-                  <div class="team">
-                    <div class="team-image">
-                      <img src="https://lh3.googleusercontent.com/8VqQRqDi3dc35qeC_cipzDE5oW8llKvxq0F-uzwmR9jYJvsMtREEaANi874yCBpKvmWy86MwwXC22JDRRKU=w1920-h1080-no" class="img-circle img-responsive">
-                      <div class="team-links">
-                        <div class="team-links-list">
-                          <!-- Saved for later -->
-                        </div>
-                      </div>
-                    </div>
-                    <div class="team-content">
-                      <div class="team-name">Aren Clegg</div>
-                      <div class="team-role">
-                        <h4>Developer</h4>
-                      </div>
-                      <div class="team-description"></div>
-                    </div>
-                  </div>
-                </div>
-              </div>
-            </li>
-            <li class="mix development">
-              <div class="row">
-                <div class="col-md-2 col-sm-4 col-xs-6">
-                  <div class="team">
-                    <div class="team-image">
-                      <img src="https://avatars3.githubusercontent.com/u/1151945?s=400&amp;v=4" class="img-circle img-responsive">
-                      <div class="team-links">
-                        <div class="team-links-list">
-                          <!-- Saved for later -->
-                        </div>
-                      </div>
-                    </div>
-                    <div class="team-content">
-                      <div class="team-name">Greg Kobey <br>(sixohtew) </div>
-                      <div class="team-role">
-                        <h4>Developer</h4>
-                      </div>
-                      <div class="team-description"></div>
-                    </div>
-                  </div>
-                </div>
-              </div>
-            </li>
-            <li class="mix development">
-              <div class="row">
-                <div class="col-md-2 col-sm-4 col-xs-6">
-                  <div class="team">
-                    <div class="team-image">
-                      <img src="https://lh3.googleusercontent.com/wOQMZn_ALhU76wRCrqULrOXzCFPhX_u1frahdUss1kU_qZs-Nyuac_ui14y_624aTHi3N_7B2KRo9w=w1920-h1080-no" class="img-circle img-responsive">
-                      <div class="team-links">
-                        <div class="team-links-list">
-                          <!-- Saved for later -->
-                        </div>
-                      </div>
-                    </div>
-                    <div class="team-content">
-                      <div class="team-name">Patrick Graber <br>(pjgraber03) </div>
-                      <div class="team-role">
-                        <h4>Developer</h4>
-                      </div>
-                      <div class="team-description"></div>
-                    </div>
-                  </div>
-                </div>
-              </div>
-            </li>
-            <li class="mix others">
-              <div class="row">
-                <div class="col-md-2 col-sm-4 col-xs-6">
-                  <div class="team">
-                    <div class="team-image">
-                      <img src="https://lh3.googleusercontent.com/t5rLm4Gex0mmG9VkXzfoXIl0t31pBJwPP798GYNOaLxvi9qjfka867yJl0P-8EXpO8_zeFe-Vq346C56Ww=w1920-h1080-no" class="img-circle img-responsive">
-                      <div class="team-links">
-                        <div class="team-links-list">
-                          <!-- Saved for later -->
-                        </div>
-                      </div>
-                    </div>
-                    <div class="team-content">
-                      <div class="team-name">Henri Koivuneva</div>
-                      <div class="team-role">
-                        <h4>Product Technology Strategist<br>Web Designer</h4>
-                      </div>
-                      <div class="team-description"></div>
-                    </div>
-                  </div>
-                </div>
-              </div>
-            </li>
-            <li class="mix graphics">
-              <div class="row">
-                <div class="col-md-2 col-sm-4 col-xs-6">
-                  <div class="team">
-                    <div class="team-image">
-                      <img src="https://lh3.googleusercontent.com/HZGjbOyPu5kpKga9cR5DxAxQBpO_04MTigb44LigYFP7vhLGsRG2IzzknL5QyxrfhbV7mJ4Bw0MG=w1920-h1080-no" class="img-circle img-responsive">
-                      <div class="team-links">
-                        <div class="team-links-list">
-                          <!-- Saved for later -->
-                        </div>
-                      </div>
-                    </div>
-                    <div class="team-content">
-                      <div class="team-name">Roger Truttmann</div>
-                      <div class="team-role">
-                        <h4>Graphic Designer</h4>
-                      </div>
-                      <div class="team-description"></div>
-                    </div>
-                  </div>
-                </div>
-              </div>
-            </li>
-            <li class="mix graphics">
-              <div class="row">
-                <div class="col-md-2 col-sm-4 col-xs-6">
-                  <div class="team">
-                    <div class="team-image">
-                      <img src="https://lh3.googleusercontent.com/iu4p6sC5xbTmz7gF5eYCucSHuI_1SBJnRkfNWcNQ6Cw7oCt5ryMHaU_DXpjWEgGX43SnPRs4dSjErXU=w1920-h1080-no" class="img-circle img-responsive">
-                      <div class="team-links">
-                        <div class="team-links-list">
-                          <!-- Saved for later -->
-                        </div>
-                      </div>
-                    </div>
-                    <div class="team-content">
-                      <div class="team-name">Customworx</div>
-                      <div class="team-role">
-                        <h4>Graphic Designer</h4>
-                      </div>
-                      <div class="team-description"></div>
-                    </div>
-                  </div>
-                </div>
-              </div>
-            </li>
-            <li class="mix development">
-              <div class="row">
-                <div class="col-md-2 col-sm-4 col-xs-6">
-                  <div class="team">
-                    <div class="team-image">
-                      <img src="https://lh3.googleusercontent.com/EAC5UcIYaDxdGLMFmSEBcWiEg8vBwoc8cWqc3ieGBlpqqT1B_i7R0-0Dgdo7k_8Io7Ao8qoTPyj_=w1920-h1080-no" class="img-circle img-responsive">
-                      <div class="team-links">
-                        <div class="team-links-list">
-                          <!-- Saved for later -->
-                        </div>
-                      </div>
-                    </div>
-                    <div class="team-content">
-                      <div class="team-name">theGeekyLad</div>
-                      <div class="team-role">
-                        <h4>App Developer</h4>
-                      </div>
-                      <div class="team-description"></div>
-                    </div>
-                  </div>
-                </div>
-              </div>
-            </li>
-          </ul>
-          <div class="cd-fail-message">No results found</div>
-        </section>
-      </main>
-    </div>
-  </div>
-  <!-- /.container -->
-  <!-- Close Team -->
-  <div id="family2" class="row" style="	background-image: linear-gradient(to bottom, rgba(0,0,0,0.5), rgba(0,0,0,0.5));	background-position: top left;	background-size: 100%;	background-repeat: repeat;">
-    <div class="container family2-header">
       <div class="row">
-        <div class="col-md-12 text-center">
-          <h1><img class="team-image" style="max-width: 36rem;" src="images/bliss_for.png"></h1>
+        <div class="text-center col-md-12">
+          <h3 class="display-3">Download Options</h3>
+          <div class="row">
+            <div class="col-md-8">
+              <h1 class="text-center">Free</h1>
+              <hr style="border: 2px solid;">
+            </div>
+            <div class="col-md-4">
+              <h1 class="text-center">Paid</h1>
+              <hr style="border: 2px solid;">
+            </div>
+          </div>
         </div>
       </div>
       <div class="row">
-        <div class="col-md-6 p-3">
-          <p class="text-center lead">We are starting a new era of Bliss. As a ROM team, we worked together to overcome some of the hardest obstacles that a ROM team could face. And in doing so, we have grown and acted as an example to other teams. This growth allowed us to evolve into a family of ROM teams, helping to support one another in our innovative efforts, and inspire work from other community members in the process. </p>
-        </div>
-        <div class="col-md-6 p-3">
-          <p class="text-center lead">This growth allowed us to see many of the needs our fellow community members had, and sparked an idea to allow us all to succeed in the future. This inspired us to start our journey into making that happen, and we have turned Bliss Family of ROMs into a nonprofit corporation, with the intent to enable the development community like never before. </p>
-        </div>
-      </div>
-      <div class="py-5">
-        <div class="container">
-          <div class="row">
-            <div class="col-md-12">
-              <p class="text-center lead">Our Bliss Family projects include applications, ports, ROMs, API's, services, and forks of other projects. Most if not all of our Bliss Family projects will be Open Source, allowing us to truly give back to the community as a team. </p>
-            </div>
-          </div>
-          <div class="row">
-            <div class="col-md-12">
-              <h2 class="text-center lead" style="color: rgb(255, 255, 255);">To learn more about our nonprofit, please click the button below</h2>
+        <div class="col-lg-4 col-md-6 p-3">
+          <div class="card bg-light">
+            <div class="card-body p-4">
+              <div class="row">
+                <div class="col-8">
+                  <h3 class="mb-0"><b>Bliss ROM</b></h3>
+                </div>
+                <div class="col-4 text-right">
+                  <h2 class="mb-0"> <b>$0</b> </h2>
+                </div>
+              </div>
+              <p class="text-right">Or Donation</p>
+              <p class="my-3">This is Bliss for your typical Android devices.<br>GSI/Treble options are also available</p>
+              <ul class="pl-3">
+                <li>Multiple Devices Supported</li>
+                <li>Tons of Customization Options</li>
+                <li>Device Support not Guaranteed</li>
+              </ul> <a class="btn btn-primary mt-3" href="" data-target="#popup-modal1" data-toggle="modal" style="">Download Now</a>
+              <div id="popup-modal1" class="modal fade">
+                <div class="modal-dialog">
+                  <div class="modal-content">
+                    <div class="modal-body px-3 bg-dark">
+                      <h1 class="text-center"> Thanks for your interest in Bliss </h1>
+                      <p class="text-center">Please consider a small donation as a way to help keep our project moving forward. </p>
+                      <div class="modal-social text-right">
+                        <div class="row">
+                          <div class="col-sm-6">
+                            <a class="btn btn-primary btn-block" target="”_blank”" href="https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&amp;hosted_button_id=MKDDQGLYDKGV6&amp;source=url">Donate $5</a>
+                          </div>
+                          <div class="col-sm-6">
+                            <a class="btn btn-info btn-block" target="”_blank”" href="https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&amp;hosted_button_id=99GBH7ZW77P54&amp;source=url">Donate $10</a>
+                          </div>
+                        </div>
+                      </div>
+                    </div>
+                    <div class="modal-footer text-center bg-dark">
+                      <a href="http://downloads.blissroms.com" class="btn btn-link" data-dismiss="modal"><span class="glyphicon glyphicon-chevron-right"></span>
+                      </a><a class="btn btn-primary mt-0" href="https://downloads.blissroms.com/BlissRoms/Pie/">Download Now</a>
+                    </div>
+                  </div>
+                </div>
+              </div>
             </div>
           </div>
         </div>
-      </div>
-      <div class="py-5">
-        <div class="container">
-          <div class="row">
-            <div class="col-md-12 text-center"><a href="bfor.html" class="btn btn-rounded family-projects--btn" style="z-index: 999; color: rgb(255, 255, 255);">Bliss Family of ROMs</a></div>
+        <div class="col-lg-4 col-md-6 p-3">
+          <div class="card bg-light">
+            <div class="card-body p-4">
+              <div class="row">
+                <div class="col-8">
+                  <h3 class="mb-0"><b>Bliss OS</b></h3>
+                </div>
+                <div class="col-4 text-right">
+                  <h2 class="mb-0"> <b>$0</b></h2>
+                </div>
+              </div>
+              <p class="text-right">Or Donation</p>
+              <p class="my-3">This is the free version of Bliss OS for PCs</p>
+              <ul class="pl-3">
+                <li>Limited Online Support</li>
+                <li>Limited Device Compatibility</li>
+                <li>Generic Kernel - One Size Fits All</li>
+              </ul>
+              <a class="btn btn-primary mt-3" href="" data-target="#popup-modal2" data-toggle="modal">Download Now</a>
+              <div id="popup-modal2" class="modal fade">
+                <div class="modal-dialog">
+                  <div class="modal-content">
+                    <div class="modal-body px-3 bg-dark">
+                      <h1 class="text-center" contenteditable="true"> Thanks for your interest in Bliss OS</h1>
+                      <p class="text-center">Please consider a small donation as a way to help keep our project moving forward. </p>
+                      <div class="modal-social text-right">
+                        <div class="row">
+                          <div class="col-sm-6">
+                            <a class="btn btn-primary btn-block" target="”_blank”" href="https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&amp;hosted_button_id=MKDDQGLYDKGV6&amp;source=url">Donate $5</a>
+                          </div>
+                          <div class="col-sm-6">
+                            <a class="btn btn-info btn-block" target="”_blank”" href="https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&amp;hosted_button_id=99GBH7ZW77P54&amp;source=url">Donate $10</a>
+                          </div>
+                        </div>
+                      </div>
+                    </div>
+                    <div class="modal-footer text-center bg-dark">
+                      <a href="http://downloads.blissroms.com" class="btn btn-link" data-dismiss="modal"><span class="glyphicon glyphicon-chevron-right"></span>
+                      </a>
+                      <div class="btn-group pi-draggable">
+                        <button class="btn btn-primary dropdown-toggle" data-toggle="dropdown" aria-expanded="false"> Download Now&nbsp;</button>
+                        <div class="dropdown-menu" x-placement="bottom-start" style="position: absolute; will-change: transform; top: 0px; left: 0px; transform: translate3d(0px, 38px, 0px);">
+                          <a class="dropdown-item" href="https://sourceforge.net/projects/blissos-x86/files/Official/bleeding_edge/archived">Nougat</a>
+                          <div class="dropdown-divider"></div>
+                          <a class="dropdown-item" href="https://sourceforge.net/projects/blissos-x86/files/Official/bleeding_edge/archived">Oreo</a>
+                          <div class="dropdown-divider"></div>
+                          <a class="dropdown-item" href="https://downloads.blissroms.com/BlissOS/bleeding_edge/">Pie</a>
+                        </div>
+                      </div>
+                    </div>
+                  </div>
+                </div>
+              </div>
+              <div class="btn-group">
+              </div>
+            </div>
           </div>
-          <div class="row">
-            <div class="col-md-12"></div>
+        </div>
+        <div class="col-lg-4 p-3">
+          <div class="card bg-light">
+            <div class="card-body p-4 bg-secondary rounded border">
+              <div class="row">
+                <div class="col-7">
+                  <h3 class="mb-0"><b>Bliss OS Pro/EDU</b></h3>
+                  <p class="text-left">&nbsp;</p>
+                </div>
+                <div class="text-right mx-0 mr-0 ml-0 col-5">
+                  <p class="text-right mb-0">As low as</p>
+                  <h2 class="mb-0"> <b>$10</b></h2>
+                  <p class="text-right">per device</p>
+                </div>
+              </div>
+              <p class="" style="">This is the paid version of Bliss OS for businesses and educational institutions, specifically developed on a per device basis for your needs</p>
+              <ul class="pl-3">
+                <li>Tech Support Contract Included</li>
+                <li>Extra Kernel options *</li>
+                <li>Full Source Code Available</li>
+                <li contenteditable="true">Extra Tools and Options Available</li>
+              </ul>
+              <p class="my-3" style=""><b>*</b> Custom kernel development is available at hourly rates</p>
+              <a class="btn btn-primary mt-3" href="" data-target="#popup-modal3" data-toggle="modal">Contact Us</a>
+              <div id="popup-modal3" class="modal fade">
+                <div class="modal-dialog">
+                  <div class="modal-content">
+                    <div class="modal-body px-3 bg-dark">
+                      <h1 class="text-center"> Thanks for your interest in Bliss OS Pro/EDU </h1>
+                      <p class="text-center">Please Fill out the form below and we will be in touch. </p>
+                      <form action="mailto:blissfamilyroms@gmail.com" method="GET" data-form-title="CONTACT US">
+                        <div class="form-group"> <input type="email" class="form-control" id="form33" placeholder="Your Email" name="email"> </div>
+                        <div class="form-group"> <input type="text" class="form-control" id="form34" placeholder="Subject" name="name"> </div>
+                        <div class="form-group"> <textarea class="form-control" id="form35" rows="3" placeholder="Your message" name="message"></textarea> </div> <button type="submit" class="btn btn-outline-primary btn-block">Send</button>
+                      </form>
+                      <div class="modal-social text-right">
+                        <div class="row">
+                        </div>
+                      </div>
+                    </div>
+                  </div>
+                </div>
+              </div>
+            </div>
           </div>
         </div>
       </div>
     </div>
   </div>
-  <div id="family" class="row">
+  <div class="py-5" id="team" style="">
     <div class="container">
-      <div class="family-header text-center">
-        <h2 class="text-center">&nbsp;<br></h2>
-        <h2 class="text-center">Bliss Family Projects</h2>
+      <div class="row">
+        <div class="mx-auto col-md-12 text-center">
+          <h1 class="mb-4">Who we are</h1>
+        </div>
       </div>
-      <div class="center">
-        <h4 class="text-center highlight_secondary">The Bliss Family projects we currently support can be found below:<br><br></h4>
-        <div class="col-lg-4">
-          <div class="family">
-            <div class="family-image text-center">
-              <img class="img-circle img-responsive" src="images/invictrix.jpg">
-              <div class="family-links ">
-                <div class="family-links-list">
-                  <a href="https://t.me/InvictusROM" target="_blank"><i class="fab fa-telegram"></i></a>
-                  <a href="https://plus.google.com/communities/109716291977795337501" target="_blank"><i class="fab fa-google-plus"></i></a>
-                </div>
-                <!-- /.family-links-list -->
-              </div>
-              <!-- /.family-links -->
+      <div class="row">
+        <div class="col-lg-6">
+          <div class="row mb-4">
+            <div class="col-3"> <img class="img-fluid d-block mx-auto rounded-circle" src="https://lh3.googleusercontent.com/w7i8JBSfddUp88DpBjjdT_PBODfKTiFV8TKHqyZnsU3m0-ppYXsuafqDtBxakFYW3mjIahKkFYBepZIGRQ=w1920-h1080-no" width="100" alt="Card image cap"> </div>
+            <div class="col-9">
+              <h4><b>Jack Eagle&nbsp;</b>- CEO&nbsp; / Founder / Developer</h4>
+              <p class="mb-0">&nbsp;</p>
             </div>
-            <!-- /.family-image -->
-            <div class="family-content text-center">
-              <div class="family-name">Invictrīx ROM</div>
-              <div class="family-role">
-                <h4>AOSP/CAF</h4>
-              </div>
-              <h4 class="family-description"> Invictrīx ROM emphasizes performance, offering heavy optimizations along with a unique dark themed style.</h4>
-            </div>
-            <!-- /.family-content -->
           </div>
-          <!-- /.family -->
-        </div>
-        <div class="col-lg-4">
-          <div class="family">
-            <div class="family-image text-center">
-              <img class="img-circle img-responsive" src="images/xtremis.jpg">
-              <div class="family-links ">
-                <div class="family-links-list">
-                  <a href="#" target="_blank"><i class="fab fa-telegram"></i></a>
-                  <a href="#" target="_blank"><i class="fab fa-google-plus"></i></a>
-                </div>
-                <!-- /.family-links-list -->
-              </div>
-              <!-- /.family-links -->
+          <div class="row mb-4">
+            <div class="col-3"> <img class="img-fluid d-block mx-auto rounded-circle" src="https://lh3.googleusercontent.com/xhKBfn9HcjWayS9gQizUuh7JATtI4i-OvVv9Q6XPy5v5IyiI44lqRoxtMIyI3rlLc7OCyparEB9OqGT_Vg=w1920-h1080-no" width="100" alt="Card image cap"> </div>
+            <div class="col-9">
+              <h4><b>Vaughn Newman</b> -&nbsp;Board Member / Admin / Developer</h4>
+              <p class="mb-0">&nbsp;</p>
             </div>
-            <!-- /.family-image -->
-            <div class="family-content text-center">
-              <div class="family-name">Xtremis Project</div>
-              <div class="family-role">
-                <h4>Chrome OS ROM</h4>
-              </div>
-              <h4 class="family-description"> Currently pre-release, this project is progressing steadily and will soon have more details to share. Please check in later.</h4>
-            </div>
-            <!-- /.family-content -->
           </div>
-          <!-- /.family -->
         </div>
-        <div class="col-lg-4">
-          <div class="family">
-            <div class="family-image text-center">
-              <img class="img-circle img-responsive" src="images/soap.jpg">
-              <div class="family-links ">
-                <div class="family-links-list">
-                  <a href="https://plus.google.com/u/0/107610198397215674589" target="_blank"><i class="fab fa-google-plus"></i></a>
-                  <!--<a href="#" target="_blank"><i class="fa fa-google-plus"></i></a> -->
-                </div>
-                <!-- /.family-links-list -->
-              </div>
-              <!-- /.family-links -->
+        <div class="col-lg-6">
+          <div class="row mb-4">
+            <div class="col-3"> <img class="img-fluid d-block mx-auto rounded-circle" src="https://lh3.googleusercontent.com/hcV4Tp81H4TJskQhpKckcDBqwnETos_ZOxXsQbiZGOT5OxMC-3pOD5i22j1tPiaubWW74tmnwB0ixvGwELQ=w1920-h1080-no" width="100" alt="Card image cap"> </div>
+            <div class="col-9">
+              <h4><b>Jon West&nbsp;</b>- CTO / Incorporator / Developer</h4>
+              <p class="mb-0">&nbsp;</p>
             </div>
-            <!-- /.family-image -->
-            <div class="family-content text-center">
-              <div class="family-name">SOAP ROM</div>
-              <div class="family-role">
-                <h4>SixOpenAndroidProject ROM, AOSP</h4>
-              </div>
-              <h4 class="family-description"> SOAP is an AOSP ROM that focuses on being a slim and clean ROM.</h4>
-            </div>
-            <!-- /.family-content -->
           </div>
-          <!-- /.family -->
+          <div class="row mb-4">
+            <div class="col-3"> <img class="img-fluid d-block mx-auto rounded-circle" src="https://lh3.googleusercontent.com/JOdHk7TYY-SLjAANLuK7t68Oz6w4fDFody-Uwj3rtH6oSZkljniUceYFQ52rbJXeBv4kDgoGhrtamLJlwZc=w1920-h1080-no" width="100" alt="Card image cap"> </div>
+            <div class="col-9">
+              <h4> <b>Antonio Luciano</b>&nbsp;- Board Member /&nbsp;Project Manager /&nbsp;App Developer</h4>
+              <p class="mb-0">&nbsp;</p>
+            </div>
+          </div>
         </div>
-        <div class="center col-lg-4">
-          <h2 class="text-center">&nbsp;<br></h2>
-          <h2 class="text-center">&nbsp;<br></h2>
+      </div>
+      <div class="row">
+        <div class="col-lg-6">
+          <div class="row mb-4">
+            <div class="col-3"> <img class="img-fluid d-block mx-auto rounded-circle" src="https://lh3.googleusercontent.com/LZrBsYT1S4qQI92uCuWx34QSGDcKpwY1G2h3LXT3tEvMPuSA8d6tiY7CsLYvBCznXk4sJhgr6UFk8pg1oA=w1920-h1080-no" width="100" alt="Card image cap"> </div>
+            <div class="col-9">
+              <h4><b>BitO BSessiOn</b>&nbsp;- Board Member / Developer</h4>
+              <p class="mb-0">&nbsp;</p>
+            </div>
+          </div>
+          <div class="row mb-4">
+            <div class="col-3"> <img class="img-fluid d-block mx-auto rounded-circle" src="https://lh3.googleusercontent.com/iu4p6sC5xbTmz7gF5eYCucSHuI_1SBJnRkfNWcNQ6Cw7oCt5ryMHaU_DXpjWEgGX43SnPRs4dSjErXU=w1920-h1080-no" width="100" alt="Card image cap"> </div>
+            <div class="col-9">
+              <h4> <b>Customworx&nbsp;</b>- Board Member / Graphic Designer </h4>
+              <p class="mb-0">&nbsp;</p>
+            </div>
+          </div>
+        </div>
+        <div class="col-lg-6">
+          <div class="row mb-4">
+            <div class="col-3"> <img class="img-fluid d-block mx-auto rounded-circle" src="https://lh3.googleusercontent.com/eRqBEkS4_cWFEkLce4sVRmyCkAwgsGZwIg1kE12_gjBaghKQ8Omc6V2UJT6q6LwZS8l-LkutUrskyeLFrd0=w1920-h1080-no" width="100" alt="Card image cap"> </div>
+            <div class="col-9">
+              <h4><b>Evan Galvin</b>&nbsp;- Board Member / Product Technology Strategist</h4>
+              <p class="mb-0">&nbsp;</p>
+            </div>
+          </div>
+          <div class="row mb-4">
+            <div class="col-3"> <img class="img-fluid d-block mx-auto rounded-circle" src="https://lh3.googleusercontent.com/a-/AAuE7mC91eukOeGZ1fU2mULqdlLqrcsYmUWGjZZMoXwMAIk=s1920-p-no-il" width="100" alt="Card image cap"> </div>
+            <div class="col-9">
+              <h4> <b>Donna West</b> - Board Member / Treasurer</h4>
+              <p class="mb-0">&nbsp;</p>
+            </div>
+          </div>
         </div>
       </div>
     </div>
   </div>
-  <!-- End #About -->
-  <footer class="footer">
-    <div class="footer container-fluid ">
-      <div class="container-fluid">
-        <div class="row ">
-          <div class="col-xs-6 col-sm-3 column footer-header">
-            <h4 class="footer-header">Information</h4>
-            <ul class="list-unstyled">
-              <li class="portfolio-projects--desc">
-                <a href="#portfolio">Downloads</a>
-              </li>
-              <li class="portfolio-projects--desc">
-                <a href="#contact">Links</a>
-              </li>
-              <li class="portfolio-projects--desc">
-                <a href="#team">Team</a>
-              </li>
-            </ul>
-          </div>
-          <div class="col-xs-6 col-sm-3 column footer-header">
-            <h4 class="footer-header">About</h4>
-            <ul class="list-unstyled">
-              <li class="portfolio-projects--desc">
-                <a href="#about">Bliss</a>
-              </li>
-              <li class="portfolio-projects--desc">
-                <a href="#family2">Family</a>
-              </li>
-              <li class="portfolio-projects--desc">
-                <a href="https://www.paypal.me/TeamBliss">Donate</a>
-              </li>
-            </ul>
-          </div>
-          <div class="col-xs-12 col-sm-3 column footer-header">
-            <h4 class="footer-header">Get In Touch</h4>
-            <form action="mailto:blissfamilyroms@gmail.com" method="GET" data-form-title="CONTACT US">
-              <input type="hidden" data-form-email="true">
-              <div class="form-group">
-                <input type="text" class="form-control" name="name" required="" placeholder="Name*" data-form-field="Name">
-              </div>
-              <div class="form-group">
-                <input type="email" class="form-control" name="email" required="" placeholder="Email*" data-form-field="Email">
-              </div>
-              <div class="form-group">
-                <textarea class="form-control" name="message" placeholder="Message" rows="3" data-form-field="Message"></textarea>
-              </div>
-              <div>
-                <button type="submit" class="btn btn-lg btn-danger">SEND</button>
-              </div>
-            </form>
-          </div>
-          <div class="col-xs-12 col-sm-3 text-right footer-header">
-            <h4 class="footer-header">Follow</h4>
-            <ul class="list-inline">
-              <li class="">
-                <a rel="nofollow" href="https://t.me/Team_Bliss_Community" title="Telegram"><i class="fab fa-telegram fa-4x"></i></a>&nbsp; </li>
-              <li class="">
-                <a rel="nofollow" href="https://www.facebook.com/BlissFamilyOfROMs/" title="Facebook"><i class="fab fa-facebook fa-4x"></i></a>&nbsp; </li>
-              <li class="">
-                <a rel="nofollow" href="https://plus.google.com/communities/118265887490106132524" title="Google+"><i class="fab fa-google-plus fa-4x"></i></a>
-              </li>
-              <li class="">
-                <a rel="nofollow" href="https://twitter.com/Bliss_Roms" title="Twitter"><i class="fab fa-twitter fa-4x"></i></a>
-              </li>
-            </ul>
-          </div>
+  <!-- Footer -->
+  <div class="py-5 bg-dark">
+    <div class="container">
+      <div class="row">
+        <div class="col-md-9">
+          <p class="lead">Sign up to our newsletter for the latest news</p>
+          <form class="form-inline">
+            <div class="form-group">
+              <input type="email" class="form-control" placeholder="Your e-mail here"> </div>
+            <button type="submit" class="btn ml-2 btn-outline-primary">Subscribe</button>
+          </form>
         </div>
-        <br>
-        <span class="pull-right text-muted small"><a href="https://blissroms.com">Bliss Site by Team Bliss</a> ©2017-2018 Team Bliss</span>
+        <div class="col-4 col-md-1 align-self-center my-3">
+          <a href="https://www.facebook.com" target="blank"><i class="fa fa-fw fa-facebook fa-3x text-white"></i></a>
+        </div>
+        <div class="col-4 col-md-1 align-self-center my-3">
+          <a href="https://twitter.com" target="blank"><i class="fa fa-fw fa-twitter fa-3x text-white"></i></a>
+        </div>
+        <div class="col-4 col-md-1 align-self-center my-3">
+          <a href="https://www.instagram.com" target="blank"><i class="fa fa-fw fa-instagram fa-3x text-white"></i></a>
+        </div>
+      </div>
+      <div class="row">
+        <div class="col-12 my-3 text-center">
+          <p class="text-muted">© Copyright 2019 Bliss Family of ROMs - All rights reserved.</p>
+        </div>
       </div>
     </div>
-  </footer>
-  <!--<script src="https://cdnjs.cloudflare.com/ajax/libs/tether/1.3.1/js/tether.min.js" type="text/javascript"></script>-->
-  <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/2.1.3/jquery.min.js" type="text/javascript"></script>
-  <!--<script src="https://cdnjs.cloudflare.com/ajax/libs/waypoints/2.0.3/waypoints.min.js"></script>-->
-  <script src="https://bfintal.github.io/Counter-Up/jquery.counterup.min.js"></script>
-  <script src="js/counter.js"></script>
-  <script src="https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/4.0.0-alpha.6/js/bootstrap.min.js" type="text/javascript"></script>
-  <script src="https://cdn.jsdelivr.net/jquery.scrollto/2.1.0/jquery.scrollTo.min.js" type="text/javascript"></script>
-  <!--<script src="js/jquery-2.1.1.js" type="text/javascript"></script> -->
-  <script src="js/jquery.mixitup.min.js" type="text/javascript"></script>
-  <script src="js/main.js" type="text/javascript"></script>
+  </div>
+  <!-- JavaScript dependencies -->
   <script src="js/mainani.js" type="text/javascript"></script>
-  <script src="js/script.js" type="text/javascript"></script>
-  <script type="text/javascript">
-    // Select all links with hashes
-    $('a[href*="#"]')
-      // Remove links that don't actually link to anything
-      .not('[href="#"]').not('[href="#0"]').click(function(event) {
-        // On-page links
-        if (location.pathname.replace(/^\//, '') == this.pathname.replace(/^\//, '') && location.hostname == this.hostname) {
-          // Figure out element to scroll to
-          var target = $(this.hash);
-          target = target.length ? target : $('[name=' + this.hash.slice(1) + ']');
-          // Does a scroll target exist?
-          if (target.length) {
-            // Only prevent default if animation is actually gonna happen
-            event.preventDefault();
-            $('html, body').animate({
-              scrollTop: target.offset().top
-            }, 1000, function() {
-              // Callback after animation
-              // Must change focus!
-              var $target = $(target);
-              $target.focus();
-              if ($target.is(":focus")) { // Checking if the target was focused
-                return false;
-              } else {
-                $target.attr('tabindex', '-1'); // Adding tabindex for elements not focusable
-                $target.focus(); // Set focus again
-              };
-            });
-          }
-        }
-      });
-  </script>
+  <script src="https://code.jquery.com/jquery-3.3.1.min.js"></script>
+  <script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.14.3/umd/popper.min.js" integrity="sha384-ZMP7rVo3mIykV+2+9J3UJ46jBk0WLaUAdn689aCwoqbBJiSnjAK/l8WvCWPIPm49" crossorigin="anonymous"></script>
+  <script src="https://stackpath.bootstrapcdn.com/bootstrap/4.1.3/js/bootstrap.min.js" integrity="sha384-ChfqqxuZUCnJSK3+MXmPNIyE6ZbWh2IMqE241rYiqJxyMiZ6OW/JmZQ5stwEULTy" crossorigin="anonymous"></script>
+  <!-- Script: Smooth scrolling between anchors in the same page -->
+  <script src="js/smooth-scroll.js"></script>
+
 </body>
 
 </html>
\ No newline at end of file
diff --git a/js/animate-in.js b/js/animate-in.js
new file mode 100644
index 0000000..9f3e66c
--- /dev/null
+++ b/js/animate-in.js
@@ -0,0 +1,61 @@
+/**
+ * animate-in.js 1.0.0
+ * Animate elements on entrance
+ * 
+ * Usage:
+ *
+ * Make sure to add this to the <head> of your page to avoid flickering on load 
+ * Based on https://andycaygill.github.io/scroll-entrance/
+ */
+(function() {
+
+	//Set up defaults
+  	var duration = "1000";
+  	var heightOffset = 100;
+
+
+    // document.write("<style id='temp-animate-in'>*[class^='animate-in'], *[class*=' animate-in'] {display:none}</style>")
+
+  	function isElementVisible(elem) {
+
+      var rect = elem.getBoundingClientRect();
+
+      //Return true if any of the following conditions are met:
+      return (
+        // The top is in view: the top is more than 0 and less than the window height (the top of the element is in view)
+        ( (rect.top + heightOffset) >= 0 && (rect.top + heightOffset) <= window.innerHeight ) || 
+        // The bottom is in view: bottom position is greater than 0 and greater than the window height
+        ( (rect.bottom + heightOffset) >= 0 && (rect.bottom + heightOffset) <= window.innerHeight ) ||
+        // The top is above the viewport and the bottom is below the viewport
+        ( (rect.top + heightOffset) < 0 && (rect.bottom + heightOffset) > window.innerHeight )
+      )
+
+  	}
+
+
+	function update() {
+		var nodes = document.querySelectorAll("*:not(.animate-in-done)[class^='animate-in'], *:not(.animate-in-done)[class*=' animate-in']")
+
+		for (var i = 0; i < nodes.length; i++) {
+			if (isElementVisible(nodes[i])) {
+				nodes[i].classList.remove("out-of-viewport")
+				nodes[i].classList.add("animate-in-done")
+			} else {
+				nodes[i].classList.add("out-of-viewport")
+  		}
+  	}
+  }
+
+	document.addEventListener("DOMContentLoaded", function(event) {
+	  update()
+    // setTimeout(function() {
+    //   document.querySelector("#temp-animate-in").remove()
+    // })
+	});
+
+	window.addEventListener("scroll", function() {
+	  update()			
+  })
+
+})();
+
diff --git a/js/counter.js b/js/counter.js
deleted file mode 100644
index f632111..0000000
--- a/js/counter.js
+++ /dev/null
@@ -1,3 +0,0 @@
- $('.counter').counterUp({
-          
-        });
\ No newline at end of file
diff --git a/js/jquery-2.1.1.js b/js/jquery-2.1.1.js
deleted file mode 100644
index e5ace11..0000000
--- a/js/jquery-2.1.1.js
+++ /dev/null
@@ -1,4 +0,0 @@
-/*! jQuery v2.1.1 | (c) 2005, 2014 jQuery Foundation, Inc. | jquery.org/license */
-!function(a,b){"object"==typeof module&&"object"==typeof module.exports?module.exports=a.document?b(a,!0):function(a){if(!a.document)throw new Error("jQuery requires a window with a document");return b(a)}:b(a)}("undefined"!=typeof window?window:this,function(a,b){var c=[],d=c.slice,e=c.concat,f=c.push,g=c.indexOf,h={},i=h.toString,j=h.hasOwnProperty,k={},l=a.document,m="2.1.1",n=function(a,b){return new n.fn.init(a,b)},o=/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,p=/^-ms-/,q=/-([\da-z])/gi,r=function(a,b){return b.toUpperCase()};n.fn=n.prototype={jquery:m,constructor:n,selector:"",length:0,toArray:function(){return d.call(this)},get:function(a){return null!=a?0>a?this[a+this.length]:this[a]:d.call(this)},pushStack:function(a){var b=n.merge(this.constructor(),a);return b.prevObject=this,b.context=this.context,b},each:function(a,b){return n.each(this,a,b)},map:function(a){return this.pushStack(n.map(this,function(b,c){return a.call(b,c,b)}))},slice:function(){return this.pushStack(d.apply(this,arguments))},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},eq:function(a){var b=this.length,c=+a+(0>a?b:0);return this.pushStack(c>=0&&b>c?[this[c]]:[])},end:function(){return this.prevObject||this.constructor(null)},push:f,sort:c.sort,splice:c.splice},n.extend=n.fn.extend=function(){var a,b,c,d,e,f,g=arguments[0]||{},h=1,i=arguments.length,j=!1;for("boolean"==typeof g&&(j=g,g=arguments[h]||{},h++),"object"==typeof g||n.isFunction(g)||(g={}),h===i&&(g=this,h--);i>h;h++)if(null!=(a=arguments[h]))for(b in a)c=g[b],d=a[b],g!==d&&(j&&d&&(n.isPlainObject(d)||(e=n.isArray(d)))?(e?(e=!1,f=c&&n.isArray(c)?c:[]):f=c&&n.isPlainObject(c)?c:{},g[b]=n.extend(j,f,d)):void 0!==d&&(g[b]=d));return g},n.extend({expando:"jQuery"+(m+Math.random()).replace(/\D/g,""),isReady:!0,error:function(a){throw new Error(a)},noop:function(){},isFunction:function(a){return"function"===n.type(a)},isArray:Array.isArray,isWindow:function(a){return null!=a&&a===a.window},isNumeric:function(a){return!n.isArray(a)&&a-parseFloat(a)>=0},isPlainObject:function(a){return"object"!==n.type(a)||a.nodeType||n.isWindow(a)?!1:a.constructor&&!j.call(a.constructor.prototype,"isPrototypeOf")?!1:!0},isEmptyObject:function(a){var b;for(b in a)return!1;return!0},type:function(a){return null==a?a+"":"object"==typeof a||"function"==typeof a?h[i.call(a)]||"object":typeof a},globalEval:function(a){var b,c=eval;a=n.trim(a),a&&(1===a.indexOf("use strict")?(b=l.createElement("script"),b.text=a,l.head.appendChild(b).parentNode.removeChild(b)):c(a))},camelCase:function(a){return a.replace(p,"ms-").replace(q,r)},nodeName:function(a,b){return a.nodeName&&a.nodeName.toLowerCase()===b.toLowerCase()},each:function(a,b,c){var d,e=0,f=a.length,g=s(a);if(c){if(g){for(;f>e;e++)if(d=b.apply(a[e],c),d===!1)break}else for(e in a)if(d=b.apply(a[e],c),d===!1)break}else if(g){for(;f>e;e++)if(d=b.call(a[e],e,a[e]),d===!1)break}else for(e in a)if(d=b.call(a[e],e,a[e]),d===!1)break;return a},trim:function(a){return null==a?"":(a+"").replace(o,"")},makeArray:function(a,b){var c=b||[];return null!=a&&(s(Object(a))?n.merge(c,"string"==typeof a?[a]:a):f.call(c,a)),c},inArray:function(a,b,c){return null==b?-1:g.call(b,a,c)},merge:function(a,b){for(var c=+b.length,d=0,e=a.length;c>d;d++)a[e++]=b[d];return a.length=e,a},grep:function(a,b,c){for(var d,e=[],f=0,g=a.length,h=!c;g>f;f++)d=!b(a[f],f),d!==h&&e.push(a[f]);return e},map:function(a,b,c){var d,f=0,g=a.length,h=s(a),i=[];if(h)for(;g>f;f++)d=b(a[f],f,c),null!=d&&i.push(d);else for(f in a)d=b(a[f],f,c),null!=d&&i.push(d);return e.apply([],i)},guid:1,proxy:function(a,b){var c,e,f;return"string"==typeof b&&(c=a[b],b=a,a=c),n.isFunction(a)?(e=d.call(arguments,2),f=function(){return a.apply(b||this,e.concat(d.call(arguments)))},f.guid=a.guid=a.guid||n.guid++,f):void 0},now:Date.now,support:k}),n.each("Boolean Number String Function Array Date RegExp Object Error".split(" "),function(a,b){h["[object "+b+"]"]=b.toLowerCase()});function s(a){var b=a.length,c=n.type(a);return"function"===c||n.isWindow(a)?!1:1===a.nodeType&&b?!0:"array"===c||0===b||"number"==typeof b&&b>0&&b-1 in a}var t=function(a){var b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u="sizzle"+-new Date,v=a.document,w=0,x=0,y=gb(),z=gb(),A=gb(),B=function(a,b){return a===b&&(l=!0),0},C="undefined",D=1<<31,E={}.hasOwnProperty,F=[],G=F.pop,H=F.push,I=F.push,J=F.slice,K=F.indexOf||function(a){for(var b=0,c=this.length;c>b;b++)if(this[b]===a)return b;return-1},L="checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped",M="[\\x20\\t\\r\\n\\f]",N="(?:\\\\.|[\\w-]|[^\\x00-\\xa0])+",O=N.replace("w","w#"),P="\\["+M+"*("+N+")(?:"+M+"*([*^$|!~]?=)"+M+"*(?:'((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\"|("+O+"))|)"+M+"*\\]",Q=":("+N+")(?:\\((('((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\")|((?:\\\\.|[^\\\\()[\\]]|"+P+")*)|.*)\\)|)",R=new RegExp("^"+M+"+|((?:^|[^\\\\])(?:\\\\.)*)"+M+"+$","g"),S=new RegExp("^"+M+"*,"+M+"*"),T=new RegExp("^"+M+"*([>+~]|"+M+")"+M+"*"),U=new RegExp("="+M+"*([^\\]'\"]*?)"+M+"*\\]","g"),V=new RegExp(Q),W=new RegExp("^"+O+"$"),X={ID:new RegExp("^#("+N+")"),CLASS:new RegExp("^\\.("+N+")"),TAG:new RegExp("^("+N.replace("w","w*")+")"),ATTR:new RegExp("^"+P),PSEUDO:new RegExp("^"+Q),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+M+"*(even|odd|(([+-]|)(\\d*)n|)"+M+"*(?:([+-]|)"+M+"*(\\d+)|))"+M+"*\\)|)","i"),bool:new RegExp("^(?:"+L+")$","i"),needsContext:new RegExp("^"+M+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+M+"*((?:-\\d)?\\d*)"+M+"*\\)|)(?=[^-]|$)","i")},Y=/^(?:input|select|textarea|button)$/i,Z=/^h\d$/i,$=/^[^{]+\{\s*\[native \w/,_=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,ab=/[+~]/,bb=/'|\\/g,cb=new RegExp("\\\\([\\da-f]{1,6}"+M+"?|("+M+")|.)","ig"),db=function(a,b,c){var d="0x"+b-65536;return d!==d||c?b:0>d?String.fromCharCode(d+65536):String.fromCharCode(d>>10|55296,1023&d|56320)};try{I.apply(F=J.call(v.childNodes),v.childNodes),F[v.childNodes.length].nodeType}catch(eb){I={apply:F.length?function(a,b){H.apply(a,J.call(b))}:function(a,b){var c=a.length,d=0;while(a[c++]=b[d++]);a.length=c-1}}}function fb(a,b,d,e){var f,h,j,k,l,o,r,s,w,x;if((b?b.ownerDocument||b:v)!==n&&m(b),b=b||n,d=d||[],!a||"string"!=typeof a)return d;if(1!==(k=b.nodeType)&&9!==k)return[];if(p&&!e){if(f=_.exec(a))if(j=f[1]){if(9===k){if(h=b.getElementById(j),!h||!h.parentNode)return d;if(h.id===j)return d.push(h),d}else if(b.ownerDocument&&(h=b.ownerDocument.getElementById(j))&&t(b,h)&&h.id===j)return d.push(h),d}else{if(f[2])return I.apply(d,b.getElementsByTagName(a)),d;if((j=f[3])&&c.getElementsByClassName&&b.getElementsByClassName)return I.apply(d,b.getElementsByClassName(j)),d}if(c.qsa&&(!q||!q.test(a))){if(s=r=u,w=b,x=9===k&&a,1===k&&"object"!==b.nodeName.toLowerCase()){o=g(a),(r=b.getAttribute("id"))?s=r.replace(bb,"\\$&"):b.setAttribute("id",s),s="[id='"+s+"'] ",l=o.length;while(l--)o[l]=s+qb(o[l]);w=ab.test(a)&&ob(b.parentNode)||b,x=o.join(",")}if(x)try{return I.apply(d,w.querySelectorAll(x)),d}catch(y){}finally{r||b.removeAttribute("id")}}}return i(a.replace(R,"$1"),b,d,e)}function gb(){var a=[];function b(c,e){return a.push(c+" ")>d.cacheLength&&delete b[a.shift()],b[c+" "]=e}return b}function hb(a){return a[u]=!0,a}function ib(a){var b=n.createElement("div");try{return!!a(b)}catch(c){return!1}finally{b.parentNode&&b.parentNode.removeChild(b),b=null}}function jb(a,b){var c=a.split("|"),e=a.length;while(e--)d.attrHandle[c[e]]=b}function kb(a,b){var c=b&&a,d=c&&1===a.nodeType&&1===b.nodeType&&(~b.sourceIndex||D)-(~a.sourceIndex||D);if(d)return d;if(c)while(c=c.nextSibling)if(c===b)return-1;return a?1:-1}function lb(a){return function(b){var c=b.nodeName.toLowerCase();return"input"===c&&b.type===a}}function mb(a){return function(b){var c=b.nodeName.toLowerCase();return("input"===c||"button"===c)&&b.type===a}}function nb(a){return hb(function(b){return b=+b,hb(function(c,d){var e,f=a([],c.length,b),g=f.length;while(g--)c[e=f[g]]&&(c[e]=!(d[e]=c[e]))})})}function ob(a){return a&&typeof a.getElementsByTagName!==C&&a}c=fb.support={},f=fb.isXML=function(a){var b=a&&(a.ownerDocument||a).documentElement;return b?"HTML"!==b.nodeName:!1},m=fb.setDocument=function(a){var b,e=a?a.ownerDocument||a:v,g=e.defaultView;return e!==n&&9===e.nodeType&&e.documentElement?(n=e,o=e.documentElement,p=!f(e),g&&g!==g.top&&(g.addEventListener?g.addEventListener("unload",function(){m()},!1):g.attachEvent&&g.attachEvent("onunload",function(){m()})),c.attributes=ib(function(a){return a.className="i",!a.getAttribute("className")}),c.getElementsByTagName=ib(function(a){return a.appendChild(e.createComment("")),!a.getElementsByTagName("*").length}),c.getElementsByClassName=$.test(e.getElementsByClassName)&&ib(function(a){return a.innerHTML="<div class='a'></div><div class='a i'></div>",a.firstChild.className="i",2===a.getElementsByClassName("i").length}),c.getById=ib(function(a){return o.appendChild(a).id=u,!e.getElementsByName||!e.getElementsByName(u).length}),c.getById?(d.find.ID=function(a,b){if(typeof b.getElementById!==C&&p){var c=b.getElementById(a);return c&&c.parentNode?[c]:[]}},d.filter.ID=function(a){var b=a.replace(cb,db);return function(a){return a.getAttribute("id")===b}}):(delete d.find.ID,d.filter.ID=function(a){var b=a.replace(cb,db);return function(a){var c=typeof a.getAttributeNode!==C&&a.getAttributeNode("id");return c&&c.value===b}}),d.find.TAG=c.getElementsByTagName?function(a,b){return typeof b.getElementsByTagName!==C?b.getElementsByTagName(a):void 0}:function(a,b){var c,d=[],e=0,f=b.getElementsByTagName(a);if("*"===a){while(c=f[e++])1===c.nodeType&&d.push(c);return d}return f},d.find.CLASS=c.getElementsByClassName&&function(a,b){return typeof b.getElementsByClassName!==C&&p?b.getElementsByClassName(a):void 0},r=[],q=[],(c.qsa=$.test(e.querySelectorAll))&&(ib(function(a){a.innerHTML="<select msallowclip=''><option selected=''></option></select>",a.querySelectorAll("[msallowclip^='']").length&&q.push("[*^$]="+M+"*(?:''|\"\")"),a.querySelectorAll("[selected]").length||q.push("\\["+M+"*(?:value|"+L+")"),a.querySelectorAll(":checked").length||q.push(":checked")}),ib(function(a){var b=e.createElement("input");b.setAttribute("type","hidden"),a.appendChild(b).setAttribute("name","D"),a.querySelectorAll("[name=d]").length&&q.push("name"+M+"*[*^$|!~]?="),a.querySelectorAll(":enabled").length||q.push(":enabled",":disabled"),a.querySelectorAll("*,:x"),q.push(",.*:")})),(c.matchesSelector=$.test(s=o.matches||o.webkitMatchesSelector||o.mozMatchesSelector||o.oMatchesSelector||o.msMatchesSelector))&&ib(function(a){c.disconnectedMatch=s.call(a,"div"),s.call(a,"[s!='']:x"),r.push("!=",Q)}),q=q.length&&new RegExp(q.join("|")),r=r.length&&new RegExp(r.join("|")),b=$.test(o.compareDocumentPosition),t=b||$.test(o.contains)?function(a,b){var c=9===a.nodeType?a.documentElement:a,d=b&&b.parentNode;return a===d||!(!d||1!==d.nodeType||!(c.contains?c.contains(d):a.compareDocumentPosition&&16&a.compareDocumentPosition(d)))}:function(a,b){if(b)while(b=b.parentNode)if(b===a)return!0;return!1},B=b?function(a,b){if(a===b)return l=!0,0;var d=!a.compareDocumentPosition-!b.compareDocumentPosition;return d?d:(d=(a.ownerDocument||a)===(b.ownerDocument||b)?a.compareDocumentPosition(b):1,1&d||!c.sortDetached&&b.compareDocumentPosition(a)===d?a===e||a.ownerDocument===v&&t(v,a)?-1:b===e||b.ownerDocument===v&&t(v,b)?1:k?K.call(k,a)-K.call(k,b):0:4&d?-1:1)}:function(a,b){if(a===b)return l=!0,0;var c,d=0,f=a.parentNode,g=b.parentNode,h=[a],i=[b];if(!f||!g)return a===e?-1:b===e?1:f?-1:g?1:k?K.call(k,a)-K.call(k,b):0;if(f===g)return kb(a,b);c=a;while(c=c.parentNode)h.unshift(c);c=b;while(c=c.parentNode)i.unshift(c);while(h[d]===i[d])d++;return d?kb(h[d],i[d]):h[d]===v?-1:i[d]===v?1:0},e):n},fb.matches=function(a,b){return fb(a,null,null,b)},fb.matchesSelector=function(a,b){if((a.ownerDocument||a)!==n&&m(a),b=b.replace(U,"='$1']"),!(!c.matchesSelector||!p||r&&r.test(b)||q&&q.test(b)))try{var d=s.call(a,b);if(d||c.disconnectedMatch||a.document&&11!==a.document.nodeType)return d}catch(e){}return fb(b,n,null,[a]).length>0},fb.contains=function(a,b){return(a.ownerDocument||a)!==n&&m(a),t(a,b)},fb.attr=function(a,b){(a.ownerDocument||a)!==n&&m(a);var e=d.attrHandle[b.toLowerCase()],f=e&&E.call(d.attrHandle,b.toLowerCase())?e(a,b,!p):void 0;return void 0!==f?f:c.attributes||!p?a.getAttribute(b):(f=a.getAttributeNode(b))&&f.specified?f.value:null},fb.error=function(a){throw new Error("Syntax error, unrecognized expression: "+a)},fb.uniqueSort=function(a){var b,d=[],e=0,f=0;if(l=!c.detectDuplicates,k=!c.sortStable&&a.slice(0),a.sort(B),l){while(b=a[f++])b===a[f]&&(e=d.push(f));while(e--)a.splice(d[e],1)}return k=null,a},e=fb.getText=function(a){var b,c="",d=0,f=a.nodeType;if(f){if(1===f||9===f||11===f){if("string"==typeof a.textContent)return a.textContent;for(a=a.firstChild;a;a=a.nextSibling)c+=e(a)}else if(3===f||4===f)return a.nodeValue}else while(b=a[d++])c+=e(b);return c},d=fb.selectors={cacheLength:50,createPseudo:hb,match:X,attrHandle:{},find:{},relative:{">":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(a){return a[1]=a[1].replace(cb,db),a[3]=(a[3]||a[4]||a[5]||"").replace(cb,db),"~="===a[2]&&(a[3]=" "+a[3]+" "),a.slice(0,4)},CHILD:function(a){return a[1]=a[1].toLowerCase(),"nth"===a[1].slice(0,3)?(a[3]||fb.error(a[0]),a[4]=+(a[4]?a[5]+(a[6]||1):2*("even"===a[3]||"odd"===a[3])),a[5]=+(a[7]+a[8]||"odd"===a[3])):a[3]&&fb.error(a[0]),a},PSEUDO:function(a){var b,c=!a[6]&&a[2];return X.CHILD.test(a[0])?null:(a[3]?a[2]=a[4]||a[5]||"":c&&V.test(c)&&(b=g(c,!0))&&(b=c.indexOf(")",c.length-b)-c.length)&&(a[0]=a[0].slice(0,b),a[2]=c.slice(0,b)),a.slice(0,3))}},filter:{TAG:function(a){var b=a.replace(cb,db).toLowerCase();return"*"===a?function(){return!0}:function(a){return a.nodeName&&a.nodeName.toLowerCase()===b}},CLASS:function(a){var b=y[a+" "];return b||(b=new RegExp("(^|"+M+")"+a+"("+M+"|$)"))&&y(a,function(a){return b.test("string"==typeof a.className&&a.className||typeof a.getAttribute!==C&&a.getAttribute("class")||"")})},ATTR:function(a,b,c){return function(d){var e=fb.attr(d,a);return null==e?"!="===b:b?(e+="","="===b?e===c:"!="===b?e!==c:"^="===b?c&&0===e.indexOf(c):"*="===b?c&&e.indexOf(c)>-1:"$="===b?c&&e.slice(-c.length)===c:"~="===b?(" "+e+" ").indexOf(c)>-1:"|="===b?e===c||e.slice(0,c.length+1)===c+"-":!1):!0}},CHILD:function(a,b,c,d,e){var f="nth"!==a.slice(0,3),g="last"!==a.slice(-4),h="of-type"===b;return 1===d&&0===e?function(a){return!!a.parentNode}:function(b,c,i){var j,k,l,m,n,o,p=f!==g?"nextSibling":"previousSibling",q=b.parentNode,r=h&&b.nodeName.toLowerCase(),s=!i&&!h;if(q){if(f){while(p){l=b;while(l=l[p])if(h?l.nodeName.toLowerCase()===r:1===l.nodeType)return!1;o=p="only"===a&&!o&&"nextSibling"}return!0}if(o=[g?q.firstChild:q.lastChild],g&&s){k=q[u]||(q[u]={}),j=k[a]||[],n=j[0]===w&&j[1],m=j[0]===w&&j[2],l=n&&q.childNodes[n];while(l=++n&&l&&l[p]||(m=n=0)||o.pop())if(1===l.nodeType&&++m&&l===b){k[a]=[w,n,m];break}}else if(s&&(j=(b[u]||(b[u]={}))[a])&&j[0]===w)m=j[1];else while(l=++n&&l&&l[p]||(m=n=0)||o.pop())if((h?l.nodeName.toLowerCase()===r:1===l.nodeType)&&++m&&(s&&((l[u]||(l[u]={}))[a]=[w,m]),l===b))break;return m-=e,m===d||m%d===0&&m/d>=0}}},PSEUDO:function(a,b){var c,e=d.pseudos[a]||d.setFilters[a.toLowerCase()]||fb.error("unsupported pseudo: "+a);return e[u]?e(b):e.length>1?(c=[a,a,"",b],d.setFilters.hasOwnProperty(a.toLowerCase())?hb(function(a,c){var d,f=e(a,b),g=f.length;while(g--)d=K.call(a,f[g]),a[d]=!(c[d]=f[g])}):function(a){return e(a,0,c)}):e}},pseudos:{not:hb(function(a){var b=[],c=[],d=h(a.replace(R,"$1"));return d[u]?hb(function(a,b,c,e){var f,g=d(a,null,e,[]),h=a.length;while(h--)(f=g[h])&&(a[h]=!(b[h]=f))}):function(a,e,f){return b[0]=a,d(b,null,f,c),!c.pop()}}),has:hb(function(a){return function(b){return fb(a,b).length>0}}),contains:hb(function(a){return function(b){return(b.textContent||b.innerText||e(b)).indexOf(a)>-1}}),lang:hb(function(a){return W.test(a||"")||fb.error("unsupported lang: "+a),a=a.replace(cb,db).toLowerCase(),function(b){var c;do if(c=p?b.lang:b.getAttribute("xml:lang")||b.getAttribute("lang"))return c=c.toLowerCase(),c===a||0===c.indexOf(a+"-");while((b=b.parentNode)&&1===b.nodeType);return!1}}),target:function(b){var c=a.location&&a.location.hash;return c&&c.slice(1)===b.id},root:function(a){return a===o},focus:function(a){return a===n.activeElement&&(!n.hasFocus||n.hasFocus())&&!!(a.type||a.href||~a.tabIndex)},enabled:function(a){return a.disabled===!1},disabled:function(a){return a.disabled===!0},checked:function(a){var b=a.nodeName.toLowerCase();return"input"===b&&!!a.checked||"option"===b&&!!a.selected},selected:function(a){return a.parentNode&&a.parentNode.selectedIndex,a.selected===!0},empty:function(a){for(a=a.firstChild;a;a=a.nextSibling)if(a.nodeType<6)return!1;return!0},parent:function(a){return!d.pseudos.empty(a)},header:function(a){return Z.test(a.nodeName)},input:function(a){return Y.test(a.nodeName)},button:function(a){var b=a.nodeName.toLowerCase();return"input"===b&&"button"===a.type||"button"===b},text:function(a){var b;return"input"===a.nodeName.toLowerCase()&&"text"===a.type&&(null==(b=a.getAttribute("type"))||"text"===b.toLowerCase())},first:nb(function(){return[0]}),last:nb(function(a,b){return[b-1]}),eq:nb(function(a,b,c){return[0>c?c+b:c]}),even:nb(function(a,b){for(var c=0;b>c;c+=2)a.push(c);return a}),odd:nb(function(a,b){for(var c=1;b>c;c+=2)a.push(c);return a}),lt:nb(function(a,b,c){for(var d=0>c?c+b:c;--d>=0;)a.push(d);return a}),gt:nb(function(a,b,c){for(var d=0>c?c+b:c;++d<b;)a.push(d);return a})}},d.pseudos.nth=d.pseudos.eq;for(b in{radio:!0,checkbox:!0,file:!0,password:!0,image:!0})d.pseudos[b]=lb(b);for(b in{submit:!0,reset:!0})d.pseudos[b]=mb(b);function pb(){}pb.prototype=d.filters=d.pseudos,d.setFilters=new pb,g=fb.tokenize=function(a,b){var c,e,f,g,h,i,j,k=z[a+" "];if(k)return b?0:k.slice(0);h=a,i=[],j=d.preFilter;while(h){(!c||(e=S.exec(h)))&&(e&&(h=h.slice(e[0].length)||h),i.push(f=[])),c=!1,(e=T.exec(h))&&(c=e.shift(),f.push({value:c,type:e[0].replace(R," ")}),h=h.slice(c.length));for(g in d.filter)!(e=X[g].exec(h))||j[g]&&!(e=j[g](e))||(c=e.shift(),f.push({value:c,type:g,matches:e}),h=h.slice(c.length));if(!c)break}return b?h.length:h?fb.error(a):z(a,i).slice(0)};function qb(a){for(var b=0,c=a.length,d="";c>b;b++)d+=a[b].value;return d}function rb(a,b,c){var d=b.dir,e=c&&"parentNode"===d,f=x++;return b.first?function(b,c,f){while(b=b[d])if(1===b.nodeType||e)return a(b,c,f)}:function(b,c,g){var h,i,j=[w,f];if(g){while(b=b[d])if((1===b.nodeType||e)&&a(b,c,g))return!0}else while(b=b[d])if(1===b.nodeType||e){if(i=b[u]||(b[u]={}),(h=i[d])&&h[0]===w&&h[1]===f)return j[2]=h[2];if(i[d]=j,j[2]=a(b,c,g))return!0}}}function sb(a){return a.length>1?function(b,c,d){var e=a.length;while(e--)if(!a[e](b,c,d))return!1;return!0}:a[0]}function tb(a,b,c){for(var d=0,e=b.length;e>d;d++)fb(a,b[d],c);return c}function ub(a,b,c,d,e){for(var f,g=[],h=0,i=a.length,j=null!=b;i>h;h++)(f=a[h])&&(!c||c(f,d,e))&&(g.push(f),j&&b.push(h));return g}function vb(a,b,c,d,e,f){return d&&!d[u]&&(d=vb(d)),e&&!e[u]&&(e=vb(e,f)),hb(function(f,g,h,i){var j,k,l,m=[],n=[],o=g.length,p=f||tb(b||"*",h.nodeType?[h]:h,[]),q=!a||!f&&b?p:ub(p,m,a,h,i),r=c?e||(f?a:o||d)?[]:g:q;if(c&&c(q,r,h,i),d){j=ub(r,n),d(j,[],h,i),k=j.length;while(k--)(l=j[k])&&(r[n[k]]=!(q[n[k]]=l))}if(f){if(e||a){if(e){j=[],k=r.length;while(k--)(l=r[k])&&j.push(q[k]=l);e(null,r=[],j,i)}k=r.length;while(k--)(l=r[k])&&(j=e?K.call(f,l):m[k])>-1&&(f[j]=!(g[j]=l))}}else r=ub(r===g?r.splice(o,r.length):r),e?e(null,g,r,i):I.apply(g,r)})}function wb(a){for(var b,c,e,f=a.length,g=d.relative[a[0].type],h=g||d.relative[" "],i=g?1:0,k=rb(function(a){return a===b},h,!0),l=rb(function(a){return K.call(b,a)>-1},h,!0),m=[function(a,c,d){return!g&&(d||c!==j)||((b=c).nodeType?k(a,c,d):l(a,c,d))}];f>i;i++)if(c=d.relative[a[i].type])m=[rb(sb(m),c)];else{if(c=d.filter[a[i].type].apply(null,a[i].matches),c[u]){for(e=++i;f>e;e++)if(d.relative[a[e].type])break;return vb(i>1&&sb(m),i>1&&qb(a.slice(0,i-1).concat({value:" "===a[i-2].type?"*":""})).replace(R,"$1"),c,e>i&&wb(a.slice(i,e)),f>e&&wb(a=a.slice(e)),f>e&&qb(a))}m.push(c)}return sb(m)}function xb(a,b){var c=b.length>0,e=a.length>0,f=function(f,g,h,i,k){var l,m,o,p=0,q="0",r=f&&[],s=[],t=j,u=f||e&&d.find.TAG("*",k),v=w+=null==t?1:Math.random()||.1,x=u.length;for(k&&(j=g!==n&&g);q!==x&&null!=(l=u[q]);q++){if(e&&l){m=0;while(o=a[m++])if(o(l,g,h)){i.push(l);break}k&&(w=v)}c&&((l=!o&&l)&&p--,f&&r.push(l))}if(p+=q,c&&q!==p){m=0;while(o=b[m++])o(r,s,g,h);if(f){if(p>0)while(q--)r[q]||s[q]||(s[q]=G.call(i));s=ub(s)}I.apply(i,s),k&&!f&&s.length>0&&p+b.length>1&&fb.uniqueSort(i)}return k&&(w=v,j=t),r};return c?hb(f):f}return h=fb.compile=function(a,b){var c,d=[],e=[],f=A[a+" "];if(!f){b||(b=g(a)),c=b.length;while(c--)f=wb(b[c]),f[u]?d.push(f):e.push(f);f=A(a,xb(e,d)),f.selector=a}return f},i=fb.select=function(a,b,e,f){var i,j,k,l,m,n="function"==typeof a&&a,o=!f&&g(a=n.selector||a);if(e=e||[],1===o.length){if(j=o[0]=o[0].slice(0),j.length>2&&"ID"===(k=j[0]).type&&c.getById&&9===b.nodeType&&p&&d.relative[j[1].type]){if(b=(d.find.ID(k.matches[0].replace(cb,db),b)||[])[0],!b)return e;n&&(b=b.parentNode),a=a.slice(j.shift().value.length)}i=X.needsContext.test(a)?0:j.length;while(i--){if(k=j[i],d.relative[l=k.type])break;if((m=d.find[l])&&(f=m(k.matches[0].replace(cb,db),ab.test(j[0].type)&&ob(b.parentNode)||b))){if(j.splice(i,1),a=f.length&&qb(j),!a)return I.apply(e,f),e;break}}}return(n||h(a,o))(f,b,!p,e,ab.test(a)&&ob(b.parentNode)||b),e},c.sortStable=u.split("").sort(B).join("")===u,c.detectDuplicates=!!l,m(),c.sortDetached=ib(function(a){return 1&a.compareDocumentPosition(n.createElement("div"))}),ib(function(a){return a.innerHTML="<a href='#'></a>","#"===a.firstChild.getAttribute("href")})||jb("type|href|height|width",function(a,b,c){return c?void 0:a.getAttribute(b,"type"===b.toLowerCase()?1:2)}),c.attributes&&ib(function(a){return a.innerHTML="<input/>",a.firstChild.setAttribute("value",""),""===a.firstChild.getAttribute("value")})||jb("value",function(a,b,c){return c||"input"!==a.nodeName.toLowerCase()?void 0:a.defaultValue}),ib(function(a){return null==a.getAttribute("disabled")})||jb(L,function(a,b,c){var d;return c?void 0:a[b]===!0?b.toLowerCase():(d=a.getAttributeNode(b))&&d.specified?d.value:null}),fb}(a);n.find=t,n.expr=t.selectors,n.expr[":"]=n.expr.pseudos,n.unique=t.uniqueSort,n.text=t.getText,n.isXMLDoc=t.isXML,n.contains=t.contains;var u=n.expr.match.needsContext,v=/^<(\w+)\s*\/?>(?:<\/\1>|)$/,w=/^.[^:#\[\.,]*$/;function x(a,b,c){if(n.isFunction(b))return n.grep(a,function(a,d){return!!b.call(a,d,a)!==c});if(b.nodeType)return n.grep(a,function(a){return a===b!==c});if("string"==typeof b){if(w.test(b))return n.filter(b,a,c);b=n.filter(b,a)}return n.grep(a,function(a){return g.call(b,a)>=0!==c})}n.filter=function(a,b,c){var d=b[0];return c&&(a=":not("+a+")"),1===b.length&&1===d.nodeType?n.find.matchesSelector(d,a)?[d]:[]:n.find.matches(a,n.grep(b,function(a){return 1===a.nodeType}))},n.fn.extend({find:function(a){var b,c=this.length,d=[],e=this;if("string"!=typeof a)return this.pushStack(n(a).filter(function(){for(b=0;c>b;b++)if(n.contains(e[b],this))return!0}));for(b=0;c>b;b++)n.find(a,e[b],d);return d=this.pushStack(c>1?n.unique(d):d),d.selector=this.selector?this.selector+" "+a:a,d},filter:function(a){return this.pushStack(x(this,a||[],!1))},not:function(a){return this.pushStack(x(this,a||[],!0))},is:function(a){return!!x(this,"string"==typeof a&&u.test(a)?n(a):a||[],!1).length}});var y,z=/^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]*))$/,A=n.fn.init=function(a,b){var c,d;if(!a)return this;if("string"==typeof a){if(c="<"===a[0]&&">"===a[a.length-1]&&a.length>=3?[null,a,null]:z.exec(a),!c||!c[1]&&b)return!b||b.jquery?(b||y).find(a):this.constructor(b).find(a);if(c[1]){if(b=b instanceof n?b[0]:b,n.merge(this,n.parseHTML(c[1],b&&b.nodeType?b.ownerDocument||b:l,!0)),v.test(c[1])&&n.isPlainObject(b))for(c in b)n.isFunction(this[c])?this[c](b[c]):this.attr(c,b[c]);return this}return d=l.getElementById(c[2]),d&&d.parentNode&&(this.length=1,this[0]=d),this.context=l,this.selector=a,this}return a.nodeType?(this.context=this[0]=a,this.length=1,this):n.isFunction(a)?"undefined"!=typeof y.ready?y.ready(a):a(n):(void 0!==a.selector&&(this.selector=a.selector,this.context=a.context),n.makeArray(a,this))};A.prototype=n.fn,y=n(l);var B=/^(?:parents|prev(?:Until|All))/,C={children:!0,contents:!0,next:!0,prev:!0};n.extend({dir:function(a,b,c){var d=[],e=void 0!==c;while((a=a[b])&&9!==a.nodeType)if(1===a.nodeType){if(e&&n(a).is(c))break;d.push(a)}return d},sibling:function(a,b){for(var c=[];a;a=a.nextSibling)1===a.nodeType&&a!==b&&c.push(a);return c}}),n.fn.extend({has:function(a){var b=n(a,this),c=b.length;return this.filter(function(){for(var a=0;c>a;a++)if(n.contains(this,b[a]))return!0})},closest:function(a,b){for(var c,d=0,e=this.length,f=[],g=u.test(a)||"string"!=typeof a?n(a,b||this.context):0;e>d;d++)for(c=this[d];c&&c!==b;c=c.parentNode)if(c.nodeType<11&&(g?g.index(c)>-1:1===c.nodeType&&n.find.matchesSelector(c,a))){f.push(c);break}return this.pushStack(f.length>1?n.unique(f):f)},index:function(a){return a?"string"==typeof a?g.call(n(a),this[0]):g.call(this,a.jquery?a[0]:a):this[0]&&this[0].parentNode?this.first().prevAll().length:-1},add:function(a,b){return this.pushStack(n.unique(n.merge(this.get(),n(a,b))))},addBack:function(a){return this.add(null==a?this.prevObject:this.prevObject.filter(a))}});function D(a,b){while((a=a[b])&&1!==a.nodeType);return a}n.each({parent:function(a){var b=a.parentNode;return b&&11!==b.nodeType?b:null},parents:function(a){return n.dir(a,"parentNode")},parentsUntil:function(a,b,c){return n.dir(a,"parentNode",c)},next:function(a){return D(a,"nextSibling")},prev:function(a){return D(a,"previousSibling")},nextAll:function(a){return n.dir(a,"nextSibling")},prevAll:function(a){return n.dir(a,"previousSibling")},nextUntil:function(a,b,c){return n.dir(a,"nextSibling",c)},prevUntil:function(a,b,c){return n.dir(a,"previousSibling",c)},siblings:function(a){return n.sibling((a.parentNode||{}).firstChild,a)},children:function(a){return n.sibling(a.firstChild)},contents:function(a){return a.contentDocument||n.merge([],a.childNodes)}},function(a,b){n.fn[a]=function(c,d){var e=n.map(this,b,c);return"Until"!==a.slice(-5)&&(d=c),d&&"string"==typeof d&&(e=n.filter(d,e)),this.length>1&&(C[a]||n.unique(e),B.test(a)&&e.reverse()),this.pushStack(e)}});var E=/\S+/g,F={};function G(a){var b=F[a]={};return n.each(a.match(E)||[],function(a,c){b[c]=!0}),b}n.Callbacks=function(a){a="string"==typeof a?F[a]||G(a):n.extend({},a);var b,c,d,e,f,g,h=[],i=!a.once&&[],j=function(l){for(b=a.memory&&l,c=!0,g=e||0,e=0,f=h.length,d=!0;h&&f>g;g++)if(h[g].apply(l[0],l[1])===!1&&a.stopOnFalse){b=!1;break}d=!1,h&&(i?i.length&&j(i.shift()):b?h=[]:k.disable())},k={add:function(){if(h){var c=h.length;!function g(b){n.each(b,function(b,c){var d=n.type(c);"function"===d?a.unique&&k.has(c)||h.push(c):c&&c.length&&"string"!==d&&g(c)})}(arguments),d?f=h.length:b&&(e=c,j(b))}return this},remove:function(){return h&&n.each(arguments,function(a,b){var c;while((c=n.inArray(b,h,c))>-1)h.splice(c,1),d&&(f>=c&&f--,g>=c&&g--)}),this},has:function(a){return a?n.inArray(a,h)>-1:!(!h||!h.length)},empty:function(){return h=[],f=0,this},disable:function(){return h=i=b=void 0,this},disabled:function(){return!h},lock:function(){return i=void 0,b||k.disable(),this},locked:function(){return!i},fireWith:function(a,b){return!h||c&&!i||(b=b||[],b=[a,b.slice?b.slice():b],d?i.push(b):j(b)),this},fire:function(){return k.fireWith(this,arguments),this},fired:function(){return!!c}};return k},n.extend({Deferred:function(a){var b=[["resolve","done",n.Callbacks("once memory"),"resolved"],["reject","fail",n.Callbacks("once memory"),"rejected"],["notify","progress",n.Callbacks("memory")]],c="pending",d={state:function(){return c},always:function(){return e.done(arguments).fail(arguments),this},then:function(){var a=arguments;return n.Deferred(function(c){n.each(b,function(b,f){var g=n.isFunction(a[b])&&a[b];e[f[1]](function(){var a=g&&g.apply(this,arguments);a&&n.isFunction(a.promise)?a.promise().done(c.resolve).fail(c.reject).progress(c.notify):c[f[0]+"With"](this===d?c.promise():this,g?[a]:arguments)})}),a=null}).promise()},promise:function(a){return null!=a?n.extend(a,d):d}},e={};return d.pipe=d.then,n.each(b,function(a,f){var g=f[2],h=f[3];d[f[1]]=g.add,h&&g.add(function(){c=h},b[1^a][2].disable,b[2][2].lock),e[f[0]]=function(){return e[f[0]+"With"](this===e?d:this,arguments),this},e[f[0]+"With"]=g.fireWith}),d.promise(e),a&&a.call(e,e),e},when:function(a){var b=0,c=d.call(arguments),e=c.length,f=1!==e||a&&n.isFunction(a.promise)?e:0,g=1===f?a:n.Deferred(),h=function(a,b,c){return function(e){b[a]=this,c[a]=arguments.length>1?d.call(arguments):e,c===i?g.notifyWith(b,c):--f||g.resolveWith(b,c)}},i,j,k;if(e>1)for(i=new Array(e),j=new Array(e),k=new Array(e);e>b;b++)c[b]&&n.isFunction(c[b].promise)?c[b].promise().done(h(b,k,c)).fail(g.reject).progress(h(b,j,i)):--f;return f||g.resolveWith(k,c),g.promise()}});var H;n.fn.ready=function(a){return n.ready.promise().done(a),this},n.extend({isReady:!1,readyWait:1,holdReady:function(a){a?n.readyWait++:n.ready(!0)},ready:function(a){(a===!0?--n.readyWait:n.isReady)||(n.isReady=!0,a!==!0&&--n.readyWait>0||(H.resolveWith(l,[n]),n.fn.triggerHandler&&(n(l).triggerHandler("ready"),n(l).off("ready"))))}});function I(){l.removeEventListener("DOMContentLoaded",I,!1),a.removeEventListener("load",I,!1),n.ready()}n.ready.promise=function(b){return H||(H=n.Deferred(),"complete"===l.readyState?setTimeout(n.ready):(l.addEventListener("DOMContentLoaded",I,!1),a.addEventListener("load",I,!1))),H.promise(b)},n.ready.promise();var J=n.access=function(a,b,c,d,e,f,g){var h=0,i=a.length,j=null==c;if("object"===n.type(c)){e=!0;for(h in c)n.access(a,b,h,c[h],!0,f,g)}else if(void 0!==d&&(e=!0,n.isFunction(d)||(g=!0),j&&(g?(b.call(a,d),b=null):(j=b,b=function(a,b,c){return j.call(n(a),c)})),b))for(;i>h;h++)b(a[h],c,g?d:d.call(a[h],h,b(a[h],c)));return e?a:j?b.call(a):i?b(a[0],c):f};n.acceptData=function(a){return 1===a.nodeType||9===a.nodeType||!+a.nodeType};function K(){Object.defineProperty(this.cache={},0,{get:function(){return{}}}),this.expando=n.expando+Math.random()}K.uid=1,K.accepts=n.acceptData,K.prototype={key:function(a){if(!K.accepts(a))return 0;var b={},c=a[this.expando];if(!c){c=K.uid++;try{b[this.expando]={value:c},Object.defineProperties(a,b)}catch(d){b[this.expando]=c,n.extend(a,b)}}return this.cache[c]||(this.cache[c]={}),c},set:function(a,b,c){var d,e=this.key(a),f=this.cache[e];if("string"==typeof b)f[b]=c;else if(n.isEmptyObject(f))n.extend(this.cache[e],b);else for(d in b)f[d]=b[d];return f},get:function(a,b){var c=this.cache[this.key(a)];return void 0===b?c:c[b]},access:function(a,b,c){var d;return void 0===b||b&&"string"==typeof b&&void 0===c?(d=this.get(a,b),void 0!==d?d:this.get(a,n.camelCase(b))):(this.set(a,b,c),void 0!==c?c:b)},remove:function(a,b){var c,d,e,f=this.key(a),g=this.cache[f];if(void 0===b)this.cache[f]={};else{n.isArray(b)?d=b.concat(b.map(n.camelCase)):(e=n.camelCase(b),b in g?d=[b,e]:(d=e,d=d in g?[d]:d.match(E)||[])),c=d.length;while(c--)delete g[d[c]]}},hasData:function(a){return!n.isEmptyObject(this.cache[a[this.expando]]||{})},discard:function(a){a[this.expando]&&delete this.cache[a[this.expando]]}};var L=new K,M=new K,N=/^(?:\{[\w\W]*\}|\[[\w\W]*\])$/,O=/([A-Z])/g;function P(a,b,c){var d;if(void 0===c&&1===a.nodeType)if(d="data-"+b.replace(O,"-$1").toLowerCase(),c=a.getAttribute(d),"string"==typeof c){try{c="true"===c?!0:"false"===c?!1:"null"===c?null:+c+""===c?+c:N.test(c)?n.parseJSON(c):c}catch(e){}M.set(a,b,c)}else c=void 0;return c}n.extend({hasData:function(a){return M.hasData(a)||L.hasData(a)},data:function(a,b,c){return M.access(a,b,c)},removeData:function(a,b){M.remove(a,b)
-},_data:function(a,b,c){return L.access(a,b,c)},_removeData:function(a,b){L.remove(a,b)}}),n.fn.extend({data:function(a,b){var c,d,e,f=this[0],g=f&&f.attributes;if(void 0===a){if(this.length&&(e=M.get(f),1===f.nodeType&&!L.get(f,"hasDataAttrs"))){c=g.length;while(c--)g[c]&&(d=g[c].name,0===d.indexOf("data-")&&(d=n.camelCase(d.slice(5)),P(f,d,e[d])));L.set(f,"hasDataAttrs",!0)}return e}return"object"==typeof a?this.each(function(){M.set(this,a)}):J(this,function(b){var c,d=n.camelCase(a);if(f&&void 0===b){if(c=M.get(f,a),void 0!==c)return c;if(c=M.get(f,d),void 0!==c)return c;if(c=P(f,d,void 0),void 0!==c)return c}else this.each(function(){var c=M.get(this,d);M.set(this,d,b),-1!==a.indexOf("-")&&void 0!==c&&M.set(this,a,b)})},null,b,arguments.length>1,null,!0)},removeData:function(a){return this.each(function(){M.remove(this,a)})}}),n.extend({queue:function(a,b,c){var d;return a?(b=(b||"fx")+"queue",d=L.get(a,b),c&&(!d||n.isArray(c)?d=L.access(a,b,n.makeArray(c)):d.push(c)),d||[]):void 0},dequeue:function(a,b){b=b||"fx";var c=n.queue(a,b),d=c.length,e=c.shift(),f=n._queueHooks(a,b),g=function(){n.dequeue(a,b)};"inprogress"===e&&(e=c.shift(),d--),e&&("fx"===b&&c.unshift("inprogress"),delete f.stop,e.call(a,g,f)),!d&&f&&f.empty.fire()},_queueHooks:function(a,b){var c=b+"queueHooks";return L.get(a,c)||L.access(a,c,{empty:n.Callbacks("once memory").add(function(){L.remove(a,[b+"queue",c])})})}}),n.fn.extend({queue:function(a,b){var c=2;return"string"!=typeof a&&(b=a,a="fx",c--),arguments.length<c?n.queue(this[0],a):void 0===b?this:this.each(function(){var c=n.queue(this,a,b);n._queueHooks(this,a),"fx"===a&&"inprogress"!==c[0]&&n.dequeue(this,a)})},dequeue:function(a){return this.each(function(){n.dequeue(this,a)})},clearQueue:function(a){return this.queue(a||"fx",[])},promise:function(a,b){var c,d=1,e=n.Deferred(),f=this,g=this.length,h=function(){--d||e.resolveWith(f,[f])};"string"!=typeof a&&(b=a,a=void 0),a=a||"fx";while(g--)c=L.get(f[g],a+"queueHooks"),c&&c.empty&&(d++,c.empty.add(h));return h(),e.promise(b)}});var Q=/[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|)/.source,R=["Top","Right","Bottom","Left"],S=function(a,b){return a=b||a,"none"===n.css(a,"display")||!n.contains(a.ownerDocument,a)},T=/^(?:checkbox|radio)$/i;!function(){var a=l.createDocumentFragment(),b=a.appendChild(l.createElement("div")),c=l.createElement("input");c.setAttribute("type","radio"),c.setAttribute("checked","checked"),c.setAttribute("name","t"),b.appendChild(c),k.checkClone=b.cloneNode(!0).cloneNode(!0).lastChild.checked,b.innerHTML="<textarea>x</textarea>",k.noCloneChecked=!!b.cloneNode(!0).lastChild.defaultValue}();var U="undefined";k.focusinBubbles="onfocusin"in a;var V=/^key/,W=/^(?:mouse|pointer|contextmenu)|click/,X=/^(?:focusinfocus|focusoutblur)$/,Y=/^([^.]*)(?:\.(.+)|)$/;function Z(){return!0}function $(){return!1}function _(){try{return l.activeElement}catch(a){}}n.event={global:{},add:function(a,b,c,d,e){var f,g,h,i,j,k,l,m,o,p,q,r=L.get(a);if(r){c.handler&&(f=c,c=f.handler,e=f.selector),c.guid||(c.guid=n.guid++),(i=r.events)||(i=r.events={}),(g=r.handle)||(g=r.handle=function(b){return typeof n!==U&&n.event.triggered!==b.type?n.event.dispatch.apply(a,arguments):void 0}),b=(b||"").match(E)||[""],j=b.length;while(j--)h=Y.exec(b[j])||[],o=q=h[1],p=(h[2]||"").split(".").sort(),o&&(l=n.event.special[o]||{},o=(e?l.delegateType:l.bindType)||o,l=n.event.special[o]||{},k=n.extend({type:o,origType:q,data:d,handler:c,guid:c.guid,selector:e,needsContext:e&&n.expr.match.needsContext.test(e),namespace:p.join(".")},f),(m=i[o])||(m=i[o]=[],m.delegateCount=0,l.setup&&l.setup.call(a,d,p,g)!==!1||a.addEventListener&&a.addEventListener(o,g,!1)),l.add&&(l.add.call(a,k),k.handler.guid||(k.handler.guid=c.guid)),e?m.splice(m.delegateCount++,0,k):m.push(k),n.event.global[o]=!0)}},remove:function(a,b,c,d,e){var f,g,h,i,j,k,l,m,o,p,q,r=L.hasData(a)&&L.get(a);if(r&&(i=r.events)){b=(b||"").match(E)||[""],j=b.length;while(j--)if(h=Y.exec(b[j])||[],o=q=h[1],p=(h[2]||"").split(".").sort(),o){l=n.event.special[o]||{},o=(d?l.delegateType:l.bindType)||o,m=i[o]||[],h=h[2]&&new RegExp("(^|\\.)"+p.join("\\.(?:.*\\.|)")+"(\\.|$)"),g=f=m.length;while(f--)k=m[f],!e&&q!==k.origType||c&&c.guid!==k.guid||h&&!h.test(k.namespace)||d&&d!==k.selector&&("**"!==d||!k.selector)||(m.splice(f,1),k.selector&&m.delegateCount--,l.remove&&l.remove.call(a,k));g&&!m.length&&(l.teardown&&l.teardown.call(a,p,r.handle)!==!1||n.removeEvent(a,o,r.handle),delete i[o])}else for(o in i)n.event.remove(a,o+b[j],c,d,!0);n.isEmptyObject(i)&&(delete r.handle,L.remove(a,"events"))}},trigger:function(b,c,d,e){var f,g,h,i,k,m,o,p=[d||l],q=j.call(b,"type")?b.type:b,r=j.call(b,"namespace")?b.namespace.split("."):[];if(g=h=d=d||l,3!==d.nodeType&&8!==d.nodeType&&!X.test(q+n.event.triggered)&&(q.indexOf(".")>=0&&(r=q.split("."),q=r.shift(),r.sort()),k=q.indexOf(":")<0&&"on"+q,b=b[n.expando]?b:new n.Event(q,"object"==typeof b&&b),b.isTrigger=e?2:3,b.namespace=r.join("."),b.namespace_re=b.namespace?new RegExp("(^|\\.)"+r.join("\\.(?:.*\\.|)")+"(\\.|$)"):null,b.result=void 0,b.target||(b.target=d),c=null==c?[b]:n.makeArray(c,[b]),o=n.event.special[q]||{},e||!o.trigger||o.trigger.apply(d,c)!==!1)){if(!e&&!o.noBubble&&!n.isWindow(d)){for(i=o.delegateType||q,X.test(i+q)||(g=g.parentNode);g;g=g.parentNode)p.push(g),h=g;h===(d.ownerDocument||l)&&p.push(h.defaultView||h.parentWindow||a)}f=0;while((g=p[f++])&&!b.isPropagationStopped())b.type=f>1?i:o.bindType||q,m=(L.get(g,"events")||{})[b.type]&&L.get(g,"handle"),m&&m.apply(g,c),m=k&&g[k],m&&m.apply&&n.acceptData(g)&&(b.result=m.apply(g,c),b.result===!1&&b.preventDefault());return b.type=q,e||b.isDefaultPrevented()||o._default&&o._default.apply(p.pop(),c)!==!1||!n.acceptData(d)||k&&n.isFunction(d[q])&&!n.isWindow(d)&&(h=d[k],h&&(d[k]=null),n.event.triggered=q,d[q](),n.event.triggered=void 0,h&&(d[k]=h)),b.result}},dispatch:function(a){a=n.event.fix(a);var b,c,e,f,g,h=[],i=d.call(arguments),j=(L.get(this,"events")||{})[a.type]||[],k=n.event.special[a.type]||{};if(i[0]=a,a.delegateTarget=this,!k.preDispatch||k.preDispatch.call(this,a)!==!1){h=n.event.handlers.call(this,a,j),b=0;while((f=h[b++])&&!a.isPropagationStopped()){a.currentTarget=f.elem,c=0;while((g=f.handlers[c++])&&!a.isImmediatePropagationStopped())(!a.namespace_re||a.namespace_re.test(g.namespace))&&(a.handleObj=g,a.data=g.data,e=((n.event.special[g.origType]||{}).handle||g.handler).apply(f.elem,i),void 0!==e&&(a.result=e)===!1&&(a.preventDefault(),a.stopPropagation()))}return k.postDispatch&&k.postDispatch.call(this,a),a.result}},handlers:function(a,b){var c,d,e,f,g=[],h=b.delegateCount,i=a.target;if(h&&i.nodeType&&(!a.button||"click"!==a.type))for(;i!==this;i=i.parentNode||this)if(i.disabled!==!0||"click"!==a.type){for(d=[],c=0;h>c;c++)f=b[c],e=f.selector+" ",void 0===d[e]&&(d[e]=f.needsContext?n(e,this).index(i)>=0:n.find(e,this,null,[i]).length),d[e]&&d.push(f);d.length&&g.push({elem:i,handlers:d})}return h<b.length&&g.push({elem:this,handlers:b.slice(h)}),g},props:"altKey bubbles cancelable ctrlKey currentTarget eventPhase metaKey relatedTarget shiftKey target timeStamp view which".split(" "),fixHooks:{},keyHooks:{props:"char charCode key keyCode".split(" "),filter:function(a,b){return null==a.which&&(a.which=null!=b.charCode?b.charCode:b.keyCode),a}},mouseHooks:{props:"button buttons clientX clientY offsetX offsetY pageX pageY screenX screenY toElement".split(" "),filter:function(a,b){var c,d,e,f=b.button;return null==a.pageX&&null!=b.clientX&&(c=a.target.ownerDocument||l,d=c.documentElement,e=c.body,a.pageX=b.clientX+(d&&d.scrollLeft||e&&e.scrollLeft||0)-(d&&d.clientLeft||e&&e.clientLeft||0),a.pageY=b.clientY+(d&&d.scrollTop||e&&e.scrollTop||0)-(d&&d.clientTop||e&&e.clientTop||0)),a.which||void 0===f||(a.which=1&f?1:2&f?3:4&f?2:0),a}},fix:function(a){if(a[n.expando])return a;var b,c,d,e=a.type,f=a,g=this.fixHooks[e];g||(this.fixHooks[e]=g=W.test(e)?this.mouseHooks:V.test(e)?this.keyHooks:{}),d=g.props?this.props.concat(g.props):this.props,a=new n.Event(f),b=d.length;while(b--)c=d[b],a[c]=f[c];return a.target||(a.target=l),3===a.target.nodeType&&(a.target=a.target.parentNode),g.filter?g.filter(a,f):a},special:{load:{noBubble:!0},focus:{trigger:function(){return this!==_()&&this.focus?(this.focus(),!1):void 0},delegateType:"focusin"},blur:{trigger:function(){return this===_()&&this.blur?(this.blur(),!1):void 0},delegateType:"focusout"},click:{trigger:function(){return"checkbox"===this.type&&this.click&&n.nodeName(this,"input")?(this.click(),!1):void 0},_default:function(a){return n.nodeName(a.target,"a")}},beforeunload:{postDispatch:function(a){void 0!==a.result&&a.originalEvent&&(a.originalEvent.returnValue=a.result)}}},simulate:function(a,b,c,d){var e=n.extend(new n.Event,c,{type:a,isSimulated:!0,originalEvent:{}});d?n.event.trigger(e,null,b):n.event.dispatch.call(b,e),e.isDefaultPrevented()&&c.preventDefault()}},n.removeEvent=function(a,b,c){a.removeEventListener&&a.removeEventListener(b,c,!1)},n.Event=function(a,b){return this instanceof n.Event?(a&&a.type?(this.originalEvent=a,this.type=a.type,this.isDefaultPrevented=a.defaultPrevented||void 0===a.defaultPrevented&&a.returnValue===!1?Z:$):this.type=a,b&&n.extend(this,b),this.timeStamp=a&&a.timeStamp||n.now(),void(this[n.expando]=!0)):new n.Event(a,b)},n.Event.prototype={isDefaultPrevented:$,isPropagationStopped:$,isImmediatePropagationStopped:$,preventDefault:function(){var a=this.originalEvent;this.isDefaultPrevented=Z,a&&a.preventDefault&&a.preventDefault()},stopPropagation:function(){var a=this.originalEvent;this.isPropagationStopped=Z,a&&a.stopPropagation&&a.stopPropagation()},stopImmediatePropagation:function(){var a=this.originalEvent;this.isImmediatePropagationStopped=Z,a&&a.stopImmediatePropagation&&a.stopImmediatePropagation(),this.stopPropagation()}},n.each({mouseenter:"mouseover",mouseleave:"mouseout",pointerenter:"pointerover",pointerleave:"pointerout"},function(a,b){n.event.special[a]={delegateType:b,bindType:b,handle:function(a){var c,d=this,e=a.relatedTarget,f=a.handleObj;return(!e||e!==d&&!n.contains(d,e))&&(a.type=f.origType,c=f.handler.apply(this,arguments),a.type=b),c}}}),k.focusinBubbles||n.each({focus:"focusin",blur:"focusout"},function(a,b){var c=function(a){n.event.simulate(b,a.target,n.event.fix(a),!0)};n.event.special[b]={setup:function(){var d=this.ownerDocument||this,e=L.access(d,b);e||d.addEventListener(a,c,!0),L.access(d,b,(e||0)+1)},teardown:function(){var d=this.ownerDocument||this,e=L.access(d,b)-1;e?L.access(d,b,e):(d.removeEventListener(a,c,!0),L.remove(d,b))}}}),n.fn.extend({on:function(a,b,c,d,e){var f,g;if("object"==typeof a){"string"!=typeof b&&(c=c||b,b=void 0);for(g in a)this.on(g,b,c,a[g],e);return this}if(null==c&&null==d?(d=b,c=b=void 0):null==d&&("string"==typeof b?(d=c,c=void 0):(d=c,c=b,b=void 0)),d===!1)d=$;else if(!d)return this;return 1===e&&(f=d,d=function(a){return n().off(a),f.apply(this,arguments)},d.guid=f.guid||(f.guid=n.guid++)),this.each(function(){n.event.add(this,a,d,c,b)})},one:function(a,b,c,d){return this.on(a,b,c,d,1)},off:function(a,b,c){var d,e;if(a&&a.preventDefault&&a.handleObj)return d=a.handleObj,n(a.delegateTarget).off(d.namespace?d.origType+"."+d.namespace:d.origType,d.selector,d.handler),this;if("object"==typeof a){for(e in a)this.off(e,b,a[e]);return this}return(b===!1||"function"==typeof b)&&(c=b,b=void 0),c===!1&&(c=$),this.each(function(){n.event.remove(this,a,c,b)})},trigger:function(a,b){return this.each(function(){n.event.trigger(a,b,this)})},triggerHandler:function(a,b){var c=this[0];return c?n.event.trigger(a,b,c,!0):void 0}});var ab=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/gi,bb=/<([\w:]+)/,cb=/<|&#?\w+;/,db=/<(?:script|style|link)/i,eb=/checked\s*(?:[^=]|=\s*.checked.)/i,fb=/^$|\/(?:java|ecma)script/i,gb=/^true\/(.*)/,hb=/^\s*<!(?:\[CDATA\[|--)|(?:\]\]|--)>\s*$/g,ib={option:[1,"<select multiple='multiple'>","</select>"],thead:[1,"<table>","</table>"],col:[2,"<table><colgroup>","</colgroup></table>"],tr:[2,"<table><tbody>","</tbody></table>"],td:[3,"<table><tbody><tr>","</tr></tbody></table>"],_default:[0,"",""]};ib.optgroup=ib.option,ib.tbody=ib.tfoot=ib.colgroup=ib.caption=ib.thead,ib.th=ib.td;function jb(a,b){return n.nodeName(a,"table")&&n.nodeName(11!==b.nodeType?b:b.firstChild,"tr")?a.getElementsByTagName("tbody")[0]||a.appendChild(a.ownerDocument.createElement("tbody")):a}function kb(a){return a.type=(null!==a.getAttribute("type"))+"/"+a.type,a}function lb(a){var b=gb.exec(a.type);return b?a.type=b[1]:a.removeAttribute("type"),a}function mb(a,b){for(var c=0,d=a.length;d>c;c++)L.set(a[c],"globalEval",!b||L.get(b[c],"globalEval"))}function nb(a,b){var c,d,e,f,g,h,i,j;if(1===b.nodeType){if(L.hasData(a)&&(f=L.access(a),g=L.set(b,f),j=f.events)){delete g.handle,g.events={};for(e in j)for(c=0,d=j[e].length;d>c;c++)n.event.add(b,e,j[e][c])}M.hasData(a)&&(h=M.access(a),i=n.extend({},h),M.set(b,i))}}function ob(a,b){var c=a.getElementsByTagName?a.getElementsByTagName(b||"*"):a.querySelectorAll?a.querySelectorAll(b||"*"):[];return void 0===b||b&&n.nodeName(a,b)?n.merge([a],c):c}function pb(a,b){var c=b.nodeName.toLowerCase();"input"===c&&T.test(a.type)?b.checked=a.checked:("input"===c||"textarea"===c)&&(b.defaultValue=a.defaultValue)}n.extend({clone:function(a,b,c){var d,e,f,g,h=a.cloneNode(!0),i=n.contains(a.ownerDocument,a);if(!(k.noCloneChecked||1!==a.nodeType&&11!==a.nodeType||n.isXMLDoc(a)))for(g=ob(h),f=ob(a),d=0,e=f.length;e>d;d++)pb(f[d],g[d]);if(b)if(c)for(f=f||ob(a),g=g||ob(h),d=0,e=f.length;e>d;d++)nb(f[d],g[d]);else nb(a,h);return g=ob(h,"script"),g.length>0&&mb(g,!i&&ob(a,"script")),h},buildFragment:function(a,b,c,d){for(var e,f,g,h,i,j,k=b.createDocumentFragment(),l=[],m=0,o=a.length;o>m;m++)if(e=a[m],e||0===e)if("object"===n.type(e))n.merge(l,e.nodeType?[e]:e);else if(cb.test(e)){f=f||k.appendChild(b.createElement("div")),g=(bb.exec(e)||["",""])[1].toLowerCase(),h=ib[g]||ib._default,f.innerHTML=h[1]+e.replace(ab,"<$1></$2>")+h[2],j=h[0];while(j--)f=f.lastChild;n.merge(l,f.childNodes),f=k.firstChild,f.textContent=""}else l.push(b.createTextNode(e));k.textContent="",m=0;while(e=l[m++])if((!d||-1===n.inArray(e,d))&&(i=n.contains(e.ownerDocument,e),f=ob(k.appendChild(e),"script"),i&&mb(f),c)){j=0;while(e=f[j++])fb.test(e.type||"")&&c.push(e)}return k},cleanData:function(a){for(var b,c,d,e,f=n.event.special,g=0;void 0!==(c=a[g]);g++){if(n.acceptData(c)&&(e=c[L.expando],e&&(b=L.cache[e]))){if(b.events)for(d in b.events)f[d]?n.event.remove(c,d):n.removeEvent(c,d,b.handle);L.cache[e]&&delete L.cache[e]}delete M.cache[c[M.expando]]}}}),n.fn.extend({text:function(a){return J(this,function(a){return void 0===a?n.text(this):this.empty().each(function(){(1===this.nodeType||11===this.nodeType||9===this.nodeType)&&(this.textContent=a)})},null,a,arguments.length)},append:function(){return this.domManip(arguments,function(a){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var b=jb(this,a);b.appendChild(a)}})},prepend:function(){return this.domManip(arguments,function(a){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var b=jb(this,a);b.insertBefore(a,b.firstChild)}})},before:function(){return this.domManip(arguments,function(a){this.parentNode&&this.parentNode.insertBefore(a,this)})},after:function(){return this.domManip(arguments,function(a){this.parentNode&&this.parentNode.insertBefore(a,this.nextSibling)})},remove:function(a,b){for(var c,d=a?n.filter(a,this):this,e=0;null!=(c=d[e]);e++)b||1!==c.nodeType||n.cleanData(ob(c)),c.parentNode&&(b&&n.contains(c.ownerDocument,c)&&mb(ob(c,"script")),c.parentNode.removeChild(c));return this},empty:function(){for(var a,b=0;null!=(a=this[b]);b++)1===a.nodeType&&(n.cleanData(ob(a,!1)),a.textContent="");return this},clone:function(a,b){return a=null==a?!1:a,b=null==b?a:b,this.map(function(){return n.clone(this,a,b)})},html:function(a){return J(this,function(a){var b=this[0]||{},c=0,d=this.length;if(void 0===a&&1===b.nodeType)return b.innerHTML;if("string"==typeof a&&!db.test(a)&&!ib[(bb.exec(a)||["",""])[1].toLowerCase()]){a=a.replace(ab,"<$1></$2>");try{for(;d>c;c++)b=this[c]||{},1===b.nodeType&&(n.cleanData(ob(b,!1)),b.innerHTML=a);b=0}catch(e){}}b&&this.empty().append(a)},null,a,arguments.length)},replaceWith:function(){var a=arguments[0];return this.domManip(arguments,function(b){a=this.parentNode,n.cleanData(ob(this)),a&&a.replaceChild(b,this)}),a&&(a.length||a.nodeType)?this:this.remove()},detach:function(a){return this.remove(a,!0)},domManip:function(a,b){a=e.apply([],a);var c,d,f,g,h,i,j=0,l=this.length,m=this,o=l-1,p=a[0],q=n.isFunction(p);if(q||l>1&&"string"==typeof p&&!k.checkClone&&eb.test(p))return this.each(function(c){var d=m.eq(c);q&&(a[0]=p.call(this,c,d.html())),d.domManip(a,b)});if(l&&(c=n.buildFragment(a,this[0].ownerDocument,!1,this),d=c.firstChild,1===c.childNodes.length&&(c=d),d)){for(f=n.map(ob(c,"script"),kb),g=f.length;l>j;j++)h=c,j!==o&&(h=n.clone(h,!0,!0),g&&n.merge(f,ob(h,"script"))),b.call(this[j],h,j);if(g)for(i=f[f.length-1].ownerDocument,n.map(f,lb),j=0;g>j;j++)h=f[j],fb.test(h.type||"")&&!L.access(h,"globalEval")&&n.contains(i,h)&&(h.src?n._evalUrl&&n._evalUrl(h.src):n.globalEval(h.textContent.replace(hb,"")))}return this}}),n.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(a,b){n.fn[a]=function(a){for(var c,d=[],e=n(a),g=e.length-1,h=0;g>=h;h++)c=h===g?this:this.clone(!0),n(e[h])[b](c),f.apply(d,c.get());return this.pushStack(d)}});var qb,rb={};function sb(b,c){var d,e=n(c.createElement(b)).appendTo(c.body),f=a.getDefaultComputedStyle&&(d=a.getDefaultComputedStyle(e[0]))?d.display:n.css(e[0],"display");return e.detach(),f}function tb(a){var b=l,c=rb[a];return c||(c=sb(a,b),"none"!==c&&c||(qb=(qb||n("<iframe frameborder='0' width='0' height='0'/>")).appendTo(b.documentElement),b=qb[0].contentDocument,b.write(),b.close(),c=sb(a,b),qb.detach()),rb[a]=c),c}var ub=/^margin/,vb=new RegExp("^("+Q+")(?!px)[a-z%]+$","i"),wb=function(a){return a.ownerDocument.defaultView.getComputedStyle(a,null)};function xb(a,b,c){var d,e,f,g,h=a.style;return c=c||wb(a),c&&(g=c.getPropertyValue(b)||c[b]),c&&(""!==g||n.contains(a.ownerDocument,a)||(g=n.style(a,b)),vb.test(g)&&ub.test(b)&&(d=h.width,e=h.minWidth,f=h.maxWidth,h.minWidth=h.maxWidth=h.width=g,g=c.width,h.width=d,h.minWidth=e,h.maxWidth=f)),void 0!==g?g+"":g}function yb(a,b){return{get:function(){return a()?void delete this.get:(this.get=b).apply(this,arguments)}}}!function(){var b,c,d=l.documentElement,e=l.createElement("div"),f=l.createElement("div");if(f.style){f.style.backgroundClip="content-box",f.cloneNode(!0).style.backgroundClip="",k.clearCloneStyle="content-box"===f.style.backgroundClip,e.style.cssText="border:0;width:0;height:0;top:0;left:-9999px;margin-top:1px;position:absolute",e.appendChild(f);function g(){f.style.cssText="-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;display:block;margin-top:1%;top:1%;border:1px;padding:1px;width:4px;position:absolute",f.innerHTML="",d.appendChild(e);var g=a.getComputedStyle(f,null);b="1%"!==g.top,c="4px"===g.width,d.removeChild(e)}a.getComputedStyle&&n.extend(k,{pixelPosition:function(){return g(),b},boxSizingReliable:function(){return null==c&&g(),c},reliableMarginRight:function(){var b,c=f.appendChild(l.createElement("div"));return c.style.cssText=f.style.cssText="-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box;display:block;margin:0;border:0;padding:0",c.style.marginRight=c.style.width="0",f.style.width="1px",d.appendChild(e),b=!parseFloat(a.getComputedStyle(c,null).marginRight),d.removeChild(e),b}})}}(),n.swap=function(a,b,c,d){var e,f,g={};for(f in b)g[f]=a.style[f],a.style[f]=b[f];e=c.apply(a,d||[]);for(f in b)a.style[f]=g[f];return e};var zb=/^(none|table(?!-c[ea]).+)/,Ab=new RegExp("^("+Q+")(.*)$","i"),Bb=new RegExp("^([+-])=("+Q+")","i"),Cb={position:"absolute",visibility:"hidden",display:"block"},Db={letterSpacing:"0",fontWeight:"400"},Eb=["Webkit","O","Moz","ms"];function Fb(a,b){if(b in a)return b;var c=b[0].toUpperCase()+b.slice(1),d=b,e=Eb.length;while(e--)if(b=Eb[e]+c,b in a)return b;return d}function Gb(a,b,c){var d=Ab.exec(b);return d?Math.max(0,d[1]-(c||0))+(d[2]||"px"):b}function Hb(a,b,c,d,e){for(var f=c===(d?"border":"content")?4:"width"===b?1:0,g=0;4>f;f+=2)"margin"===c&&(g+=n.css(a,c+R[f],!0,e)),d?("content"===c&&(g-=n.css(a,"padding"+R[f],!0,e)),"margin"!==c&&(g-=n.css(a,"border"+R[f]+"Width",!0,e))):(g+=n.css(a,"padding"+R[f],!0,e),"padding"!==c&&(g+=n.css(a,"border"+R[f]+"Width",!0,e)));return g}function Ib(a,b,c){var d=!0,e="width"===b?a.offsetWidth:a.offsetHeight,f=wb(a),g="border-box"===n.css(a,"boxSizing",!1,f);if(0>=e||null==e){if(e=xb(a,b,f),(0>e||null==e)&&(e=a.style[b]),vb.test(e))return e;d=g&&(k.boxSizingReliable()||e===a.style[b]),e=parseFloat(e)||0}return e+Hb(a,b,c||(g?"border":"content"),d,f)+"px"}function Jb(a,b){for(var c,d,e,f=[],g=0,h=a.length;h>g;g++)d=a[g],d.style&&(f[g]=L.get(d,"olddisplay"),c=d.style.display,b?(f[g]||"none"!==c||(d.style.display=""),""===d.style.display&&S(d)&&(f[g]=L.access(d,"olddisplay",tb(d.nodeName)))):(e=S(d),"none"===c&&e||L.set(d,"olddisplay",e?c:n.css(d,"display"))));for(g=0;h>g;g++)d=a[g],d.style&&(b&&"none"!==d.style.display&&""!==d.style.display||(d.style.display=b?f[g]||"":"none"));return a}n.extend({cssHooks:{opacity:{get:function(a,b){if(b){var c=xb(a,"opacity");return""===c?"1":c}}}},cssNumber:{columnCount:!0,fillOpacity:!0,flexGrow:!0,flexShrink:!0,fontWeight:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,widows:!0,zIndex:!0,zoom:!0},cssProps:{"float":"cssFloat"},style:function(a,b,c,d){if(a&&3!==a.nodeType&&8!==a.nodeType&&a.style){var e,f,g,h=n.camelCase(b),i=a.style;return b=n.cssProps[h]||(n.cssProps[h]=Fb(i,h)),g=n.cssHooks[b]||n.cssHooks[h],void 0===c?g&&"get"in g&&void 0!==(e=g.get(a,!1,d))?e:i[b]:(f=typeof c,"string"===f&&(e=Bb.exec(c))&&(c=(e[1]+1)*e[2]+parseFloat(n.css(a,b)),f="number"),null!=c&&c===c&&("number"!==f||n.cssNumber[h]||(c+="px"),k.clearCloneStyle||""!==c||0!==b.indexOf("background")||(i[b]="inherit"),g&&"set"in g&&void 0===(c=g.set(a,c,d))||(i[b]=c)),void 0)}},css:function(a,b,c,d){var e,f,g,h=n.camelCase(b);return b=n.cssProps[h]||(n.cssProps[h]=Fb(a.style,h)),g=n.cssHooks[b]||n.cssHooks[h],g&&"get"in g&&(e=g.get(a,!0,c)),void 0===e&&(e=xb(a,b,d)),"normal"===e&&b in Db&&(e=Db[b]),""===c||c?(f=parseFloat(e),c===!0||n.isNumeric(f)?f||0:e):e}}),n.each(["height","width"],function(a,b){n.cssHooks[b]={get:function(a,c,d){return c?zb.test(n.css(a,"display"))&&0===a.offsetWidth?n.swap(a,Cb,function(){return Ib(a,b,d)}):Ib(a,b,d):void 0},set:function(a,c,d){var e=d&&wb(a);return Gb(a,c,d?Hb(a,b,d,"border-box"===n.css(a,"boxSizing",!1,e),e):0)}}}),n.cssHooks.marginRight=yb(k.reliableMarginRight,function(a,b){return b?n.swap(a,{display:"inline-block"},xb,[a,"marginRight"]):void 0}),n.each({margin:"",padding:"",border:"Width"},function(a,b){n.cssHooks[a+b]={expand:function(c){for(var d=0,e={},f="string"==typeof c?c.split(" "):[c];4>d;d++)e[a+R[d]+b]=f[d]||f[d-2]||f[0];return e}},ub.test(a)||(n.cssHooks[a+b].set=Gb)}),n.fn.extend({css:function(a,b){return J(this,function(a,b,c){var d,e,f={},g=0;if(n.isArray(b)){for(d=wb(a),e=b.length;e>g;g++)f[b[g]]=n.css(a,b[g],!1,d);return f}return void 0!==c?n.style(a,b,c):n.css(a,b)},a,b,arguments.length>1)},show:function(){return Jb(this,!0)},hide:function(){return Jb(this)},toggle:function(a){return"boolean"==typeof a?a?this.show():this.hide():this.each(function(){S(this)?n(this).show():n(this).hide()})}});function Kb(a,b,c,d,e){return new Kb.prototype.init(a,b,c,d,e)}n.Tween=Kb,Kb.prototype={constructor:Kb,init:function(a,b,c,d,e,f){this.elem=a,this.prop=c,this.easing=e||"swing",this.options=b,this.start=this.now=this.cur(),this.end=d,this.unit=f||(n.cssNumber[c]?"":"px")},cur:function(){var a=Kb.propHooks[this.prop];return a&&a.get?a.get(this):Kb.propHooks._default.get(this)},run:function(a){var b,c=Kb.propHooks[this.prop];return this.pos=b=this.options.duration?n.easing[this.easing](a,this.options.duration*a,0,1,this.options.duration):a,this.now=(this.end-this.start)*b+this.start,this.options.step&&this.options.step.call(this.elem,this.now,this),c&&c.set?c.set(this):Kb.propHooks._default.set(this),this}},Kb.prototype.init.prototype=Kb.prototype,Kb.propHooks={_default:{get:function(a){var b;return null==a.elem[a.prop]||a.elem.style&&null!=a.elem.style[a.prop]?(b=n.css(a.elem,a.prop,""),b&&"auto"!==b?b:0):a.elem[a.prop]},set:function(a){n.fx.step[a.prop]?n.fx.step[a.prop](a):a.elem.style&&(null!=a.elem.style[n.cssProps[a.prop]]||n.cssHooks[a.prop])?n.style(a.elem,a.prop,a.now+a.unit):a.elem[a.prop]=a.now}}},Kb.propHooks.scrollTop=Kb.propHooks.scrollLeft={set:function(a){a.elem.nodeType&&a.elem.parentNode&&(a.elem[a.prop]=a.now)}},n.easing={linear:function(a){return a},swing:function(a){return.5-Math.cos(a*Math.PI)/2}},n.fx=Kb.prototype.init,n.fx.step={};var Lb,Mb,Nb=/^(?:toggle|show|hide)$/,Ob=new RegExp("^(?:([+-])=|)("+Q+")([a-z%]*)$","i"),Pb=/queueHooks$/,Qb=[Vb],Rb={"*":[function(a,b){var c=this.createTween(a,b),d=c.cur(),e=Ob.exec(b),f=e&&e[3]||(n.cssNumber[a]?"":"px"),g=(n.cssNumber[a]||"px"!==f&&+d)&&Ob.exec(n.css(c.elem,a)),h=1,i=20;if(g&&g[3]!==f){f=f||g[3],e=e||[],g=+d||1;do h=h||".5",g/=h,n.style(c.elem,a,g+f);while(h!==(h=c.cur()/d)&&1!==h&&--i)}return e&&(g=c.start=+g||+d||0,c.unit=f,c.end=e[1]?g+(e[1]+1)*e[2]:+e[2]),c}]};function Sb(){return setTimeout(function(){Lb=void 0}),Lb=n.now()}function Tb(a,b){var c,d=0,e={height:a};for(b=b?1:0;4>d;d+=2-b)c=R[d],e["margin"+c]=e["padding"+c]=a;return b&&(e.opacity=e.width=a),e}function Ub(a,b,c){for(var d,e=(Rb[b]||[]).concat(Rb["*"]),f=0,g=e.length;g>f;f++)if(d=e[f].call(c,b,a))return d}function Vb(a,b,c){var d,e,f,g,h,i,j,k,l=this,m={},o=a.style,p=a.nodeType&&S(a),q=L.get(a,"fxshow");c.queue||(h=n._queueHooks(a,"fx"),null==h.unqueued&&(h.unqueued=0,i=h.empty.fire,h.empty.fire=function(){h.unqueued||i()}),h.unqueued++,l.always(function(){l.always(function(){h.unqueued--,n.queue(a,"fx").length||h.empty.fire()})})),1===a.nodeType&&("height"in b||"width"in b)&&(c.overflow=[o.overflow,o.overflowX,o.overflowY],j=n.css(a,"display"),k="none"===j?L.get(a,"olddisplay")||tb(a.nodeName):j,"inline"===k&&"none"===n.css(a,"float")&&(o.display="inline-block")),c.overflow&&(o.overflow="hidden",l.always(function(){o.overflow=c.overflow[0],o.overflowX=c.overflow[1],o.overflowY=c.overflow[2]}));for(d in b)if(e=b[d],Nb.exec(e)){if(delete b[d],f=f||"toggle"===e,e===(p?"hide":"show")){if("show"!==e||!q||void 0===q[d])continue;p=!0}m[d]=q&&q[d]||n.style(a,d)}else j=void 0;if(n.isEmptyObject(m))"inline"===("none"===j?tb(a.nodeName):j)&&(o.display=j);else{q?"hidden"in q&&(p=q.hidden):q=L.access(a,"fxshow",{}),f&&(q.hidden=!p),p?n(a).show():l.done(function(){n(a).hide()}),l.done(function(){var b;L.remove(a,"fxshow");for(b in m)n.style(a,b,m[b])});for(d in m)g=Ub(p?q[d]:0,d,l),d in q||(q[d]=g.start,p&&(g.end=g.start,g.start="width"===d||"height"===d?1:0))}}function Wb(a,b){var c,d,e,f,g;for(c in a)if(d=n.camelCase(c),e=b[d],f=a[c],n.isArray(f)&&(e=f[1],f=a[c]=f[0]),c!==d&&(a[d]=f,delete a[c]),g=n.cssHooks[d],g&&"expand"in g){f=g.expand(f),delete a[d];for(c in f)c in a||(a[c]=f[c],b[c]=e)}else b[d]=e}function Xb(a,b,c){var d,e,f=0,g=Qb.length,h=n.Deferred().always(function(){delete i.elem}),i=function(){if(e)return!1;for(var b=Lb||Sb(),c=Math.max(0,j.startTime+j.duration-b),d=c/j.duration||0,f=1-d,g=0,i=j.tweens.length;i>g;g++)j.tweens[g].run(f);return h.notifyWith(a,[j,f,c]),1>f&&i?c:(h.resolveWith(a,[j]),!1)},j=h.promise({elem:a,props:n.extend({},b),opts:n.extend(!0,{specialEasing:{}},c),originalProperties:b,originalOptions:c,startTime:Lb||Sb(),duration:c.duration,tweens:[],createTween:function(b,c){var d=n.Tween(a,j.opts,b,c,j.opts.specialEasing[b]||j.opts.easing);return j.tweens.push(d),d},stop:function(b){var c=0,d=b?j.tweens.length:0;if(e)return this;for(e=!0;d>c;c++)j.tweens[c].run(1);return b?h.resolveWith(a,[j,b]):h.rejectWith(a,[j,b]),this}}),k=j.props;for(Wb(k,j.opts.specialEasing);g>f;f++)if(d=Qb[f].call(j,a,k,j.opts))return d;return n.map(k,Ub,j),n.isFunction(j.opts.start)&&j.opts.start.call(a,j),n.fx.timer(n.extend(i,{elem:a,anim:j,queue:j.opts.queue})),j.progress(j.opts.progress).done(j.opts.done,j.opts.complete).fail(j.opts.fail).always(j.opts.always)}n.Animation=n.extend(Xb,{tweener:function(a,b){n.isFunction(a)?(b=a,a=["*"]):a=a.split(" ");for(var c,d=0,e=a.length;e>d;d++)c=a[d],Rb[c]=Rb[c]||[],Rb[c].unshift(b)},prefilter:function(a,b){b?Qb.unshift(a):Qb.push(a)}}),n.speed=function(a,b,c){var d=a&&"object"==typeof a?n.extend({},a):{complete:c||!c&&b||n.isFunction(a)&&a,duration:a,easing:c&&b||b&&!n.isFunction(b)&&b};return d.duration=n.fx.off?0:"number"==typeof d.duration?d.duration:d.duration in n.fx.speeds?n.fx.speeds[d.duration]:n.fx.speeds._default,(null==d.queue||d.queue===!0)&&(d.queue="fx"),d.old=d.complete,d.complete=function(){n.isFunction(d.old)&&d.old.call(this),d.queue&&n.dequeue(this,d.queue)},d},n.fn.extend({fadeTo:function(a,b,c,d){return this.filter(S).css("opacity",0).show().end().animate({opacity:b},a,c,d)},animate:function(a,b,c,d){var e=n.isEmptyObject(a),f=n.speed(b,c,d),g=function(){var b=Xb(this,n.extend({},a),f);(e||L.get(this,"finish"))&&b.stop(!0)};return g.finish=g,e||f.queue===!1?this.each(g):this.queue(f.queue,g)},stop:function(a,b,c){var d=function(a){var b=a.stop;delete a.stop,b(c)};return"string"!=typeof a&&(c=b,b=a,a=void 0),b&&a!==!1&&this.queue(a||"fx",[]),this.each(function(){var b=!0,e=null!=a&&a+"queueHooks",f=n.timers,g=L.get(this);if(e)g[e]&&g[e].stop&&d(g[e]);else for(e in g)g[e]&&g[e].stop&&Pb.test(e)&&d(g[e]);for(e=f.length;e--;)f[e].elem!==this||null!=a&&f[e].queue!==a||(f[e].anim.stop(c),b=!1,f.splice(e,1));(b||!c)&&n.dequeue(this,a)})},finish:function(a){return a!==!1&&(a=a||"fx"),this.each(function(){var b,c=L.get(this),d=c[a+"queue"],e=c[a+"queueHooks"],f=n.timers,g=d?d.length:0;for(c.finish=!0,n.queue(this,a,[]),e&&e.stop&&e.stop.call(this,!0),b=f.length;b--;)f[b].elem===this&&f[b].queue===a&&(f[b].anim.stop(!0),f.splice(b,1));for(b=0;g>b;b++)d[b]&&d[b].finish&&d[b].finish.call(this);delete c.finish})}}),n.each(["toggle","show","hide"],function(a,b){var c=n.fn[b];n.fn[b]=function(a,d,e){return null==a||"boolean"==typeof a?c.apply(this,arguments):this.animate(Tb(b,!0),a,d,e)}}),n.each({slideDown:Tb("show"),slideUp:Tb("hide"),slideToggle:Tb("toggle"),fadeIn:{opacity:"show"},fadeOut:{opacity:"hide"},fadeToggle:{opacity:"toggle"}},function(a,b){n.fn[a]=function(a,c,d){return this.animate(b,a,c,d)}}),n.timers=[],n.fx.tick=function(){var a,b=0,c=n.timers;for(Lb=n.now();b<c.length;b++)a=c[b],a()||c[b]!==a||c.splice(b--,1);c.length||n.fx.stop(),Lb=void 0},n.fx.timer=function(a){n.timers.push(a),a()?n.fx.start():n.timers.pop()},n.fx.interval=13,n.fx.start=function(){Mb||(Mb=setInterval(n.fx.tick,n.fx.interval))},n.fx.stop=function(){clearInterval(Mb),Mb=null},n.fx.speeds={slow:600,fast:200,_default:400},n.fn.delay=function(a,b){return a=n.fx?n.fx.speeds[a]||a:a,b=b||"fx",this.queue(b,function(b,c){var d=setTimeout(b,a);c.stop=function(){clearTimeout(d)}})},function(){var a=l.createElement("input"),b=l.createElement("select"),c=b.appendChild(l.createElement("option"));a.type="checkbox",k.checkOn=""!==a.value,k.optSelected=c.selected,b.disabled=!0,k.optDisabled=!c.disabled,a=l.createElement("input"),a.value="t",a.type="radio",k.radioValue="t"===a.value}();var Yb,Zb,$b=n.expr.attrHandle;n.fn.extend({attr:function(a,b){return J(this,n.attr,a,b,arguments.length>1)},removeAttr:function(a){return this.each(function(){n.removeAttr(this,a)})}}),n.extend({attr:function(a,b,c){var d,e,f=a.nodeType;if(a&&3!==f&&8!==f&&2!==f)return typeof a.getAttribute===U?n.prop(a,b,c):(1===f&&n.isXMLDoc(a)||(b=b.toLowerCase(),d=n.attrHooks[b]||(n.expr.match.bool.test(b)?Zb:Yb)),void 0===c?d&&"get"in d&&null!==(e=d.get(a,b))?e:(e=n.find.attr(a,b),null==e?void 0:e):null!==c?d&&"set"in d&&void 0!==(e=d.set(a,c,b))?e:(a.setAttribute(b,c+""),c):void n.removeAttr(a,b))
-},removeAttr:function(a,b){var c,d,e=0,f=b&&b.match(E);if(f&&1===a.nodeType)while(c=f[e++])d=n.propFix[c]||c,n.expr.match.bool.test(c)&&(a[d]=!1),a.removeAttribute(c)},attrHooks:{type:{set:function(a,b){if(!k.radioValue&&"radio"===b&&n.nodeName(a,"input")){var c=a.value;return a.setAttribute("type",b),c&&(a.value=c),b}}}}}),Zb={set:function(a,b,c){return b===!1?n.removeAttr(a,c):a.setAttribute(c,c),c}},n.each(n.expr.match.bool.source.match(/\w+/g),function(a,b){var c=$b[b]||n.find.attr;$b[b]=function(a,b,d){var e,f;return d||(f=$b[b],$b[b]=e,e=null!=c(a,b,d)?b.toLowerCase():null,$b[b]=f),e}});var _b=/^(?:input|select|textarea|button)$/i;n.fn.extend({prop:function(a,b){return J(this,n.prop,a,b,arguments.length>1)},removeProp:function(a){return this.each(function(){delete this[n.propFix[a]||a]})}}),n.extend({propFix:{"for":"htmlFor","class":"className"},prop:function(a,b,c){var d,e,f,g=a.nodeType;if(a&&3!==g&&8!==g&&2!==g)return f=1!==g||!n.isXMLDoc(a),f&&(b=n.propFix[b]||b,e=n.propHooks[b]),void 0!==c?e&&"set"in e&&void 0!==(d=e.set(a,c,b))?d:a[b]=c:e&&"get"in e&&null!==(d=e.get(a,b))?d:a[b]},propHooks:{tabIndex:{get:function(a){return a.hasAttribute("tabindex")||_b.test(a.nodeName)||a.href?a.tabIndex:-1}}}}),k.optSelected||(n.propHooks.selected={get:function(a){var b=a.parentNode;return b&&b.parentNode&&b.parentNode.selectedIndex,null}}),n.each(["tabIndex","readOnly","maxLength","cellSpacing","cellPadding","rowSpan","colSpan","useMap","frameBorder","contentEditable"],function(){n.propFix[this.toLowerCase()]=this});var ac=/[\t\r\n\f]/g;n.fn.extend({addClass:function(a){var b,c,d,e,f,g,h="string"==typeof a&&a,i=0,j=this.length;if(n.isFunction(a))return this.each(function(b){n(this).addClass(a.call(this,b,this.className))});if(h)for(b=(a||"").match(E)||[];j>i;i++)if(c=this[i],d=1===c.nodeType&&(c.className?(" "+c.className+" ").replace(ac," "):" ")){f=0;while(e=b[f++])d.indexOf(" "+e+" ")<0&&(d+=e+" ");g=n.trim(d),c.className!==g&&(c.className=g)}return this},removeClass:function(a){var b,c,d,e,f,g,h=0===arguments.length||"string"==typeof a&&a,i=0,j=this.length;if(n.isFunction(a))return this.each(function(b){n(this).removeClass(a.call(this,b,this.className))});if(h)for(b=(a||"").match(E)||[];j>i;i++)if(c=this[i],d=1===c.nodeType&&(c.className?(" "+c.className+" ").replace(ac," "):"")){f=0;while(e=b[f++])while(d.indexOf(" "+e+" ")>=0)d=d.replace(" "+e+" "," ");g=a?n.trim(d):"",c.className!==g&&(c.className=g)}return this},toggleClass:function(a,b){var c=typeof a;return"boolean"==typeof b&&"string"===c?b?this.addClass(a):this.removeClass(a):this.each(n.isFunction(a)?function(c){n(this).toggleClass(a.call(this,c,this.className,b),b)}:function(){if("string"===c){var b,d=0,e=n(this),f=a.match(E)||[];while(b=f[d++])e.hasClass(b)?e.removeClass(b):e.addClass(b)}else(c===U||"boolean"===c)&&(this.className&&L.set(this,"__className__",this.className),this.className=this.className||a===!1?"":L.get(this,"__className__")||"")})},hasClass:function(a){for(var b=" "+a+" ",c=0,d=this.length;d>c;c++)if(1===this[c].nodeType&&(" "+this[c].className+" ").replace(ac," ").indexOf(b)>=0)return!0;return!1}});var bc=/\r/g;n.fn.extend({val:function(a){var b,c,d,e=this[0];{if(arguments.length)return d=n.isFunction(a),this.each(function(c){var e;1===this.nodeType&&(e=d?a.call(this,c,n(this).val()):a,null==e?e="":"number"==typeof e?e+="":n.isArray(e)&&(e=n.map(e,function(a){return null==a?"":a+""})),b=n.valHooks[this.type]||n.valHooks[this.nodeName.toLowerCase()],b&&"set"in b&&void 0!==b.set(this,e,"value")||(this.value=e))});if(e)return b=n.valHooks[e.type]||n.valHooks[e.nodeName.toLowerCase()],b&&"get"in b&&void 0!==(c=b.get(e,"value"))?c:(c=e.value,"string"==typeof c?c.replace(bc,""):null==c?"":c)}}}),n.extend({valHooks:{option:{get:function(a){var b=n.find.attr(a,"value");return null!=b?b:n.trim(n.text(a))}},select:{get:function(a){for(var b,c,d=a.options,e=a.selectedIndex,f="select-one"===a.type||0>e,g=f?null:[],h=f?e+1:d.length,i=0>e?h:f?e:0;h>i;i++)if(c=d[i],!(!c.selected&&i!==e||(k.optDisabled?c.disabled:null!==c.getAttribute("disabled"))||c.parentNode.disabled&&n.nodeName(c.parentNode,"optgroup"))){if(b=n(c).val(),f)return b;g.push(b)}return g},set:function(a,b){var c,d,e=a.options,f=n.makeArray(b),g=e.length;while(g--)d=e[g],(d.selected=n.inArray(d.value,f)>=0)&&(c=!0);return c||(a.selectedIndex=-1),f}}}}),n.each(["radio","checkbox"],function(){n.valHooks[this]={set:function(a,b){return n.isArray(b)?a.checked=n.inArray(n(a).val(),b)>=0:void 0}},k.checkOn||(n.valHooks[this].get=function(a){return null===a.getAttribute("value")?"on":a.value})}),n.each("blur focus focusin focusout load resize scroll unload click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup error contextmenu".split(" "),function(a,b){n.fn[b]=function(a,c){return arguments.length>0?this.on(b,null,a,c):this.trigger(b)}}),n.fn.extend({hover:function(a,b){return this.mouseenter(a).mouseleave(b||a)},bind:function(a,b,c){return this.on(a,null,b,c)},unbind:function(a,b){return this.off(a,null,b)},delegate:function(a,b,c,d){return this.on(b,a,c,d)},undelegate:function(a,b,c){return 1===arguments.length?this.off(a,"**"):this.off(b,a||"**",c)}});var cc=n.now(),dc=/\?/;n.parseJSON=function(a){return JSON.parse(a+"")},n.parseXML=function(a){var b,c;if(!a||"string"!=typeof a)return null;try{c=new DOMParser,b=c.parseFromString(a,"text/xml")}catch(d){b=void 0}return(!b||b.getElementsByTagName("parsererror").length)&&n.error("Invalid XML: "+a),b};var ec,fc,gc=/#.*$/,hc=/([?&])_=[^&]*/,ic=/^(.*?):[ \t]*([^\r\n]*)$/gm,jc=/^(?:about|app|app-storage|.+-extension|file|res|widget):$/,kc=/^(?:GET|HEAD)$/,lc=/^\/\//,mc=/^([\w.+-]+:)(?:\/\/(?:[^\/?#]*@|)([^\/?#:]*)(?::(\d+)|)|)/,nc={},oc={},pc="*/".concat("*");try{fc=location.href}catch(qc){fc=l.createElement("a"),fc.href="",fc=fc.href}ec=mc.exec(fc.toLowerCase())||[];function rc(a){return function(b,c){"string"!=typeof b&&(c=b,b="*");var d,e=0,f=b.toLowerCase().match(E)||[];if(n.isFunction(c))while(d=f[e++])"+"===d[0]?(d=d.slice(1)||"*",(a[d]=a[d]||[]).unshift(c)):(a[d]=a[d]||[]).push(c)}}function sc(a,b,c,d){var e={},f=a===oc;function g(h){var i;return e[h]=!0,n.each(a[h]||[],function(a,h){var j=h(b,c,d);return"string"!=typeof j||f||e[j]?f?!(i=j):void 0:(b.dataTypes.unshift(j),g(j),!1)}),i}return g(b.dataTypes[0])||!e["*"]&&g("*")}function tc(a,b){var c,d,e=n.ajaxSettings.flatOptions||{};for(c in b)void 0!==b[c]&&((e[c]?a:d||(d={}))[c]=b[c]);return d&&n.extend(!0,a,d),a}function uc(a,b,c){var d,e,f,g,h=a.contents,i=a.dataTypes;while("*"===i[0])i.shift(),void 0===d&&(d=a.mimeType||b.getResponseHeader("Content-Type"));if(d)for(e in h)if(h[e]&&h[e].test(d)){i.unshift(e);break}if(i[0]in c)f=i[0];else{for(e in c){if(!i[0]||a.converters[e+" "+i[0]]){f=e;break}g||(g=e)}f=f||g}return f?(f!==i[0]&&i.unshift(f),c[f]):void 0}function vc(a,b,c,d){var e,f,g,h,i,j={},k=a.dataTypes.slice();if(k[1])for(g in a.converters)j[g.toLowerCase()]=a.converters[g];f=k.shift();while(f)if(a.responseFields[f]&&(c[a.responseFields[f]]=b),!i&&d&&a.dataFilter&&(b=a.dataFilter(b,a.dataType)),i=f,f=k.shift())if("*"===f)f=i;else if("*"!==i&&i!==f){if(g=j[i+" "+f]||j["* "+f],!g)for(e in j)if(h=e.split(" "),h[1]===f&&(g=j[i+" "+h[0]]||j["* "+h[0]])){g===!0?g=j[e]:j[e]!==!0&&(f=h[0],k.unshift(h[1]));break}if(g!==!0)if(g&&a["throws"])b=g(b);else try{b=g(b)}catch(l){return{state:"parsererror",error:g?l:"No conversion from "+i+" to "+f}}}return{state:"success",data:b}}n.extend({active:0,lastModified:{},etag:{},ajaxSettings:{url:fc,type:"GET",isLocal:jc.test(ec[1]),global:!0,processData:!0,async:!0,contentType:"application/x-www-form-urlencoded; charset=UTF-8",accepts:{"*":pc,text:"text/plain",html:"text/html",xml:"application/xml, text/xml",json:"application/json, text/javascript"},contents:{xml:/xml/,html:/html/,json:/json/},responseFields:{xml:"responseXML",text:"responseText",json:"responseJSON"},converters:{"* text":String,"text html":!0,"text json":n.parseJSON,"text xml":n.parseXML},flatOptions:{url:!0,context:!0}},ajaxSetup:function(a,b){return b?tc(tc(a,n.ajaxSettings),b):tc(n.ajaxSettings,a)},ajaxPrefilter:rc(nc),ajaxTransport:rc(oc),ajax:function(a,b){"object"==typeof a&&(b=a,a=void 0),b=b||{};var c,d,e,f,g,h,i,j,k=n.ajaxSetup({},b),l=k.context||k,m=k.context&&(l.nodeType||l.jquery)?n(l):n.event,o=n.Deferred(),p=n.Callbacks("once memory"),q=k.statusCode||{},r={},s={},t=0,u="canceled",v={readyState:0,getResponseHeader:function(a){var b;if(2===t){if(!f){f={};while(b=ic.exec(e))f[b[1].toLowerCase()]=b[2]}b=f[a.toLowerCase()]}return null==b?null:b},getAllResponseHeaders:function(){return 2===t?e:null},setRequestHeader:function(a,b){var c=a.toLowerCase();return t||(a=s[c]=s[c]||a,r[a]=b),this},overrideMimeType:function(a){return t||(k.mimeType=a),this},statusCode:function(a){var b;if(a)if(2>t)for(b in a)q[b]=[q[b],a[b]];else v.always(a[v.status]);return this},abort:function(a){var b=a||u;return c&&c.abort(b),x(0,b),this}};if(o.promise(v).complete=p.add,v.success=v.done,v.error=v.fail,k.url=((a||k.url||fc)+"").replace(gc,"").replace(lc,ec[1]+"//"),k.type=b.method||b.type||k.method||k.type,k.dataTypes=n.trim(k.dataType||"*").toLowerCase().match(E)||[""],null==k.crossDomain&&(h=mc.exec(k.url.toLowerCase()),k.crossDomain=!(!h||h[1]===ec[1]&&h[2]===ec[2]&&(h[3]||("http:"===h[1]?"80":"443"))===(ec[3]||("http:"===ec[1]?"80":"443")))),k.data&&k.processData&&"string"!=typeof k.data&&(k.data=n.param(k.data,k.traditional)),sc(nc,k,b,v),2===t)return v;i=k.global,i&&0===n.active++&&n.event.trigger("ajaxStart"),k.type=k.type.toUpperCase(),k.hasContent=!kc.test(k.type),d=k.url,k.hasContent||(k.data&&(d=k.url+=(dc.test(d)?"&":"?")+k.data,delete k.data),k.cache===!1&&(k.url=hc.test(d)?d.replace(hc,"$1_="+cc++):d+(dc.test(d)?"&":"?")+"_="+cc++)),k.ifModified&&(n.lastModified[d]&&v.setRequestHeader("If-Modified-Since",n.lastModified[d]),n.etag[d]&&v.setRequestHeader("If-None-Match",n.etag[d])),(k.data&&k.hasContent&&k.contentType!==!1||b.contentType)&&v.setRequestHeader("Content-Type",k.contentType),v.setRequestHeader("Accept",k.dataTypes[0]&&k.accepts[k.dataTypes[0]]?k.accepts[k.dataTypes[0]]+("*"!==k.dataTypes[0]?", "+pc+"; q=0.01":""):k.accepts["*"]);for(j in k.headers)v.setRequestHeader(j,k.headers[j]);if(k.beforeSend&&(k.beforeSend.call(l,v,k)===!1||2===t))return v.abort();u="abort";for(j in{success:1,error:1,complete:1})v[j](k[j]);if(c=sc(oc,k,b,v)){v.readyState=1,i&&m.trigger("ajaxSend",[v,k]),k.async&&k.timeout>0&&(g=setTimeout(function(){v.abort("timeout")},k.timeout));try{t=1,c.send(r,x)}catch(w){if(!(2>t))throw w;x(-1,w)}}else x(-1,"No Transport");function x(a,b,f,h){var j,r,s,u,w,x=b;2!==t&&(t=2,g&&clearTimeout(g),c=void 0,e=h||"",v.readyState=a>0?4:0,j=a>=200&&300>a||304===a,f&&(u=uc(k,v,f)),u=vc(k,u,v,j),j?(k.ifModified&&(w=v.getResponseHeader("Last-Modified"),w&&(n.lastModified[d]=w),w=v.getResponseHeader("etag"),w&&(n.etag[d]=w)),204===a||"HEAD"===k.type?x="nocontent":304===a?x="notmodified":(x=u.state,r=u.data,s=u.error,j=!s)):(s=x,(a||!x)&&(x="error",0>a&&(a=0))),v.status=a,v.statusText=(b||x)+"",j?o.resolveWith(l,[r,x,v]):o.rejectWith(l,[v,x,s]),v.statusCode(q),q=void 0,i&&m.trigger(j?"ajaxSuccess":"ajaxError",[v,k,j?r:s]),p.fireWith(l,[v,x]),i&&(m.trigger("ajaxComplete",[v,k]),--n.active||n.event.trigger("ajaxStop")))}return v},getJSON:function(a,b,c){return n.get(a,b,c,"json")},getScript:function(a,b){return n.get(a,void 0,b,"script")}}),n.each(["get","post"],function(a,b){n[b]=function(a,c,d,e){return n.isFunction(c)&&(e=e||d,d=c,c=void 0),n.ajax({url:a,type:b,dataType:e,data:c,success:d})}}),n.each(["ajaxStart","ajaxStop","ajaxComplete","ajaxError","ajaxSuccess","ajaxSend"],function(a,b){n.fn[b]=function(a){return this.on(b,a)}}),n._evalUrl=function(a){return n.ajax({url:a,type:"GET",dataType:"script",async:!1,global:!1,"throws":!0})},n.fn.extend({wrapAll:function(a){var b;return n.isFunction(a)?this.each(function(b){n(this).wrapAll(a.call(this,b))}):(this[0]&&(b=n(a,this[0].ownerDocument).eq(0).clone(!0),this[0].parentNode&&b.insertBefore(this[0]),b.map(function(){var a=this;while(a.firstElementChild)a=a.firstElementChild;return a}).append(this)),this)},wrapInner:function(a){return this.each(n.isFunction(a)?function(b){n(this).wrapInner(a.call(this,b))}:function(){var b=n(this),c=b.contents();c.length?c.wrapAll(a):b.append(a)})},wrap:function(a){var b=n.isFunction(a);return this.each(function(c){n(this).wrapAll(b?a.call(this,c):a)})},unwrap:function(){return this.parent().each(function(){n.nodeName(this,"body")||n(this).replaceWith(this.childNodes)}).end()}}),n.expr.filters.hidden=function(a){return a.offsetWidth<=0&&a.offsetHeight<=0},n.expr.filters.visible=function(a){return!n.expr.filters.hidden(a)};var wc=/%20/g,xc=/\[\]$/,yc=/\r?\n/g,zc=/^(?:submit|button|image|reset|file)$/i,Ac=/^(?:input|select|textarea|keygen)/i;function Bc(a,b,c,d){var e;if(n.isArray(b))n.each(b,function(b,e){c||xc.test(a)?d(a,e):Bc(a+"["+("object"==typeof e?b:"")+"]",e,c,d)});else if(c||"object"!==n.type(b))d(a,b);else for(e in b)Bc(a+"["+e+"]",b[e],c,d)}n.param=function(a,b){var c,d=[],e=function(a,b){b=n.isFunction(b)?b():null==b?"":b,d[d.length]=encodeURIComponent(a)+"="+encodeURIComponent(b)};if(void 0===b&&(b=n.ajaxSettings&&n.ajaxSettings.traditional),n.isArray(a)||a.jquery&&!n.isPlainObject(a))n.each(a,function(){e(this.name,this.value)});else for(c in a)Bc(c,a[c],b,e);return d.join("&").replace(wc,"+")},n.fn.extend({serialize:function(){return n.param(this.serializeArray())},serializeArray:function(){return this.map(function(){var a=n.prop(this,"elements");return a?n.makeArray(a):this}).filter(function(){var a=this.type;return this.name&&!n(this).is(":disabled")&&Ac.test(this.nodeName)&&!zc.test(a)&&(this.checked||!T.test(a))}).map(function(a,b){var c=n(this).val();return null==c?null:n.isArray(c)?n.map(c,function(a){return{name:b.name,value:a.replace(yc,"\r\n")}}):{name:b.name,value:c.replace(yc,"\r\n")}}).get()}}),n.ajaxSettings.xhr=function(){try{return new XMLHttpRequest}catch(a){}};var Cc=0,Dc={},Ec={0:200,1223:204},Fc=n.ajaxSettings.xhr();a.ActiveXObject&&n(a).on("unload",function(){for(var a in Dc)Dc[a]()}),k.cors=!!Fc&&"withCredentials"in Fc,k.ajax=Fc=!!Fc,n.ajaxTransport(function(a){var b;return k.cors||Fc&&!a.crossDomain?{send:function(c,d){var e,f=a.xhr(),g=++Cc;if(f.open(a.type,a.url,a.async,a.username,a.password),a.xhrFields)for(e in a.xhrFields)f[e]=a.xhrFields[e];a.mimeType&&f.overrideMimeType&&f.overrideMimeType(a.mimeType),a.crossDomain||c["X-Requested-With"]||(c["X-Requested-With"]="XMLHttpRequest");for(e in c)f.setRequestHeader(e,c[e]);b=function(a){return function(){b&&(delete Dc[g],b=f.onload=f.onerror=null,"abort"===a?f.abort():"error"===a?d(f.status,f.statusText):d(Ec[f.status]||f.status,f.statusText,"string"==typeof f.responseText?{text:f.responseText}:void 0,f.getAllResponseHeaders()))}},f.onload=b(),f.onerror=b("error"),b=Dc[g]=b("abort");try{f.send(a.hasContent&&a.data||null)}catch(h){if(b)throw h}},abort:function(){b&&b()}}:void 0}),n.ajaxSetup({accepts:{script:"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},contents:{script:/(?:java|ecma)script/},converters:{"text script":function(a){return n.globalEval(a),a}}}),n.ajaxPrefilter("script",function(a){void 0===a.cache&&(a.cache=!1),a.crossDomain&&(a.type="GET")}),n.ajaxTransport("script",function(a){if(a.crossDomain){var b,c;return{send:function(d,e){b=n("<script>").prop({async:!0,charset:a.scriptCharset,src:a.url}).on("load error",c=function(a){b.remove(),c=null,a&&e("error"===a.type?404:200,a.type)}),l.head.appendChild(b[0])},abort:function(){c&&c()}}}});var Gc=[],Hc=/(=)\?(?=&|$)|\?\?/;n.ajaxSetup({jsonp:"callback",jsonpCallback:function(){var a=Gc.pop()||n.expando+"_"+cc++;return this[a]=!0,a}}),n.ajaxPrefilter("json jsonp",function(b,c,d){var e,f,g,h=b.jsonp!==!1&&(Hc.test(b.url)?"url":"string"==typeof b.data&&!(b.contentType||"").indexOf("application/x-www-form-urlencoded")&&Hc.test(b.data)&&"data");return h||"jsonp"===b.dataTypes[0]?(e=b.jsonpCallback=n.isFunction(b.jsonpCallback)?b.jsonpCallback():b.jsonpCallback,h?b[h]=b[h].replace(Hc,"$1"+e):b.jsonp!==!1&&(b.url+=(dc.test(b.url)?"&":"?")+b.jsonp+"="+e),b.converters["script json"]=function(){return g||n.error(e+" was not called"),g[0]},b.dataTypes[0]="json",f=a[e],a[e]=function(){g=arguments},d.always(function(){a[e]=f,b[e]&&(b.jsonpCallback=c.jsonpCallback,Gc.push(e)),g&&n.isFunction(f)&&f(g[0]),g=f=void 0}),"script"):void 0}),n.parseHTML=function(a,b,c){if(!a||"string"!=typeof a)return null;"boolean"==typeof b&&(c=b,b=!1),b=b||l;var d=v.exec(a),e=!c&&[];return d?[b.createElement(d[1])]:(d=n.buildFragment([a],b,e),e&&e.length&&n(e).remove(),n.merge([],d.childNodes))};var Ic=n.fn.load;n.fn.load=function(a,b,c){if("string"!=typeof a&&Ic)return Ic.apply(this,arguments);var d,e,f,g=this,h=a.indexOf(" ");return h>=0&&(d=n.trim(a.slice(h)),a=a.slice(0,h)),n.isFunction(b)?(c=b,b=void 0):b&&"object"==typeof b&&(e="POST"),g.length>0&&n.ajax({url:a,type:e,dataType:"html",data:b}).done(function(a){f=arguments,g.html(d?n("<div>").append(n.parseHTML(a)).find(d):a)}).complete(c&&function(a,b){g.each(c,f||[a.responseText,b,a])}),this},n.expr.filters.animated=function(a){return n.grep(n.timers,function(b){return a===b.elem}).length};var Jc=a.document.documentElement;function Kc(a){return n.isWindow(a)?a:9===a.nodeType&&a.defaultView}n.offset={setOffset:function(a,b,c){var d,e,f,g,h,i,j,k=n.css(a,"position"),l=n(a),m={};"static"===k&&(a.style.position="relative"),h=l.offset(),f=n.css(a,"top"),i=n.css(a,"left"),j=("absolute"===k||"fixed"===k)&&(f+i).indexOf("auto")>-1,j?(d=l.position(),g=d.top,e=d.left):(g=parseFloat(f)||0,e=parseFloat(i)||0),n.isFunction(b)&&(b=b.call(a,c,h)),null!=b.top&&(m.top=b.top-h.top+g),null!=b.left&&(m.left=b.left-h.left+e),"using"in b?b.using.call(a,m):l.css(m)}},n.fn.extend({offset:function(a){if(arguments.length)return void 0===a?this:this.each(function(b){n.offset.setOffset(this,a,b)});var b,c,d=this[0],e={top:0,left:0},f=d&&d.ownerDocument;if(f)return b=f.documentElement,n.contains(b,d)?(typeof d.getBoundingClientRect!==U&&(e=d.getBoundingClientRect()),c=Kc(f),{top:e.top+c.pageYOffset-b.clientTop,left:e.left+c.pageXOffset-b.clientLeft}):e},position:function(){if(this[0]){var a,b,c=this[0],d={top:0,left:0};return"fixed"===n.css(c,"position")?b=c.getBoundingClientRect():(a=this.offsetParent(),b=this.offset(),n.nodeName(a[0],"html")||(d=a.offset()),d.top+=n.css(a[0],"borderTopWidth",!0),d.left+=n.css(a[0],"borderLeftWidth",!0)),{top:b.top-d.top-n.css(c,"marginTop",!0),left:b.left-d.left-n.css(c,"marginLeft",!0)}}},offsetParent:function(){return this.map(function(){var a=this.offsetParent||Jc;while(a&&!n.nodeName(a,"html")&&"static"===n.css(a,"position"))a=a.offsetParent;return a||Jc})}}),n.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(b,c){var d="pageYOffset"===c;n.fn[b]=function(e){return J(this,function(b,e,f){var g=Kc(b);return void 0===f?g?g[c]:b[e]:void(g?g.scrollTo(d?a.pageXOffset:f,d?f:a.pageYOffset):b[e]=f)},b,e,arguments.length,null)}}),n.each(["top","left"],function(a,b){n.cssHooks[b]=yb(k.pixelPosition,function(a,c){return c?(c=xb(a,b),vb.test(c)?n(a).position()[b]+"px":c):void 0})}),n.each({Height:"height",Width:"width"},function(a,b){n.each({padding:"inner"+a,content:b,"":"outer"+a},function(c,d){n.fn[d]=function(d,e){var f=arguments.length&&(c||"boolean"!=typeof d),g=c||(d===!0||e===!0?"margin":"border");return J(this,function(b,c,d){var e;return n.isWindow(b)?b.document.documentElement["client"+a]:9===b.nodeType?(e=b.documentElement,Math.max(b.body["scroll"+a],e["scroll"+a],b.body["offset"+a],e["offset"+a],e["client"+a])):void 0===d?n.css(b,c,g):n.style(b,c,d,g)},b,f?d:void 0,f,null)}})}),n.fn.size=function(){return this.length},n.fn.andSelf=n.fn.addBack,"function"==typeof define&&define.amd&&define("jquery",[],function(){return n});var Lc=a.jQuery,Mc=a.$;return n.noConflict=function(b){return a.$===n&&(a.$=Mc),b&&a.jQuery===n&&(a.jQuery=Lc),n},typeof b===U&&(a.jQuery=a.$=n),n});
diff --git a/js/jquery.mixitup.min.js b/js/jquery.mixitup.min.js
deleted file mode 100755
index 0b17aa7..0000000
--- a/js/jquery.mixitup.min.js
+++ /dev/null
@@ -1,14 +0,0 @@
-/**!
- * MixItUp v2.1.7
- *
- * @copyright Copyright 2014 KunkaLabs Limited.
- * @author    KunkaLabs Limited.
- * @link      https://mixitup.kunkalabs.com
- *
- * @license   Commercial use requires a commercial license.
- *            https://mixitup.kunkalabs.com/licenses/
- *
- *            Non-commercial use permitted under terms of CC-BY-NC license.
- *            http://creativecommons.org/licenses/by-nc/3.0/
- */
-!function(a,b){a.MixItUp=function(){var b=this;b._execAction("_constructor",0),a.extend(b,{selectors:{target:".mix",filter:".filter",sort:".sort"},animation:{enable:!0,effects:"fade scale",duration:600,easing:"ease",perspectiveDistance:"3000",perspectiveOrigin:"50% 50%",queue:!0,queueLimit:1,animateChangeLayout:!1,animateResizeContainer:!0,animateResizeTargets:!1,staggerSequence:!1,reverseOut:!1},callbacks:{onMixLoad:!1,onMixStart:!1,onMixBusy:!1,onMixEnd:!1,onMixFail:!1,_user:!1},controls:{enable:!0,live:!1,toggleFilterButtons:!1,toggleLogic:"or",activeClass:"active"},layout:{display:"inline-block",containerClass:"",containerClassFail:"fail"},load:{filter:"all",sort:!1},_$body:null,_$container:null,_$targets:null,_$parent:null,_$sortButtons:null,_$filterButtons:null,_suckMode:!1,_mixing:!1,_sorting:!1,_clicking:!1,_loading:!0,_changingLayout:!1,_changingClass:!1,_changingDisplay:!1,_origOrder:[],_startOrder:[],_newOrder:[],_activeFilter:null,_toggleArray:[],_toggleString:"",_activeSort:"default:asc",_newSort:null,_startHeight:null,_newHeight:null,_incPadding:!0,_newDisplay:null,_newClass:null,_targetsBound:0,_targetsDone:0,_queue:[],_$show:a(),_$hide:a()}),b._execAction("_constructor",1)},a.MixItUp.prototype={constructor:a.MixItUp,_instances:{},_handled:{_filter:{},_sort:{}},_bound:{_filter:{},_sort:{}},_actions:{},_filters:{},extend:function(b){for(var c in b)a.MixItUp.prototype[c]=b[c]},addAction:function(b,c,d,e){a.MixItUp.prototype._addHook("_actions",b,c,d,e)},addFilter:function(b,c,d,e){a.MixItUp.prototype._addHook("_filters",b,c,d,e)},_addHook:function(b,c,d,e,f){var g=a.MixItUp.prototype[b],h={};f=1===f||"post"===f?"post":"pre",h[c]={},h[c][f]={},h[c][f][d]=e,a.extend(!0,g,h)},_init:function(b,c){var d=this;if(d._execAction("_init",0,arguments),c&&a.extend(!0,d,c),d._$body=a("body"),d._domNode=b,d._$container=a(b),d._$container.addClass(d.layout.containerClass),d._id=b.id,d._platformDetect(),d._brake=d._getPrefixedCSS("transition","none"),d._refresh(!0),d._$parent=d._$targets.parent().length?d._$targets.parent():d._$container,d.load.sort&&(d._newSort=d._parseSort(d.load.sort),d._newSortString=d.load.sort,d._activeSort=d.load.sort,d._sort(),d._printSort()),d._activeFilter="all"===d.load.filter?d.selectors.target:"none"===d.load.filter?"":d.load.filter,d.controls.enable&&d._bindHandlers(),d.controls.toggleFilterButtons){d._buildToggleArray();for(var e=0;e<d._toggleArray.length;e++)d._updateControls({filter:d._toggleArray[e],sort:d._activeSort},!0)}else d.controls.enable&&d._updateControls({filter:d._activeFilter,sort:d._activeSort});d._filter(),d._init=!0,d._$container.data("mixItUp",d),d._execAction("_init",1,arguments),d._buildState(),d._$targets.css(d._brake),d._goMix(d.animation.enable)},_platformDetect:function(){var a=this,c=["Webkit","Moz","O","ms"],d=["webkit","moz"],e=window.navigator.appVersion.match(/Chrome\/(\d+)\./)||!1,f="undefined"!=typeof InstallTrigger,g=function(a){for(var b=0;b<c.length;b++)if(c[b]+"Transition"in a.style)return{prefix:"-"+c[b].toLowerCase()+"-",vendor:c[b]};return"transition"in a.style?"":!1},h=g(a._domNode);a._execAction("_platformDetect",0),a._chrome=e?parseInt(e[1],10):!1,a._ff=f?parseInt(window.navigator.userAgent.match(/rv:([^)]+)\)/)[1]):!1,a._prefix=h.prefix,a._vendor=h.vendor,a._suckMode=window.atob&&a._prefix?!1:!0,a._suckMode&&(a.animation.enable=!1),a._ff&&a._ff<=4&&(a.animation.enable=!1);for(var i=0;i<d.length&&!window.requestAnimationFrame;i++)window.requestAnimationFrame=window[d[i]+"RequestAnimationFrame"];"function"!=typeof Object.getPrototypeOf&&(Object.getPrototypeOf="object"==typeof"test".__proto__?function(a){return a.__proto__}:function(a){return a.constructor.prototype}),a._domNode.nextElementSibling===b&&Object.defineProperty(Element.prototype,"nextElementSibling",{get:function(){for(var a=this.nextSibling;a;){if(1===a.nodeType)return a;a=a.nextSibling}return null}}),a._execAction("_platformDetect",1)},_refresh:function(a,c){var d=this;d._execAction("_refresh",0,arguments),d._$targets=d._$container.find(d.selectors.target);for(var e=0;e<d._$targets.length;e++){var f=d._$targets[e];if(f.dataset===b||c){f.dataset={};for(var g=0;g<f.attributes.length;g++){var h=f.attributes[g],i=h.name,j=h.value;if(i.indexOf("data-")>-1){var k=d._helpers._camelCase(i.substring(5,i.length));f.dataset[k]=j}}}f.mixParent===b&&(f.mixParent=d._id)}if(d._$targets.length&&a||!d._origOrder.length&&d._$targets.length){d._origOrder=[];for(var e=0;e<d._$targets.length;e++){var f=d._$targets[e];d._origOrder.push(f)}}d._execAction("_refresh",1,arguments)},_bindHandlers:function(){var c=this,d=a.MixItUp.prototype._bound._filter,e=a.MixItUp.prototype._bound._sort;c._execAction("_bindHandlers",0),c.controls.live?c._$body.on("click.mixItUp."+c._id,c.selectors.sort,function(){c._processClick(a(this),"sort")}).on("click.mixItUp."+c._id,c.selectors.filter,function(){c._processClick(a(this),"filter")}):(c._$sortButtons=a(c.selectors.sort),c._$filterButtons=a(c.selectors.filter),c._$sortButtons.on("click.mixItUp."+c._id,function(){c._processClick(a(this),"sort")}),c._$filterButtons.on("click.mixItUp."+c._id,function(){c._processClick(a(this),"filter")})),d[c.selectors.filter]=d[c.selectors.filter]===b?1:d[c.selectors.filter]+1,e[c.selectors.sort]=e[c.selectors.sort]===b?1:e[c.selectors.sort]+1,c._execAction("_bindHandlers",1)},_processClick:function(c,d){var e=this,f=function(c,d,f){var g=a.MixItUp.prototype;g._handled["_"+d][e.selectors[d]]=g._handled["_"+d][e.selectors[d]]===b?1:g._handled["_"+d][e.selectors[d]]+1,g._handled["_"+d][e.selectors[d]]===g._bound["_"+d][e.selectors[d]]&&(c[(f?"remove":"add")+"Class"](e.controls.activeClass),delete g._handled["_"+d][e.selectors[d]])};if(e._execAction("_processClick",0,arguments),!e._mixing||e.animation.queue&&e._queue.length<e.animation.queueLimit){if(e._clicking=!0,"sort"===d){var g=c.attr("data-sort");(!c.hasClass(e.controls.activeClass)||g.indexOf("random")>-1)&&(a(e.selectors.sort).removeClass(e.controls.activeClass),f(c,d),e.sort(g))}if("filter"===d){var h,i=c.attr("data-filter"),j="or"===e.controls.toggleLogic?",":"";e.controls.toggleFilterButtons?(e._buildToggleArray(),c.hasClass(e.controls.activeClass)?(f(c,d,!0),h=e._toggleArray.indexOf(i),e._toggleArray.splice(h,1)):(f(c,d),e._toggleArray.push(i)),e._toggleArray=a.grep(e._toggleArray,function(a){return a}),e._toggleString=e._toggleArray.join(j),e.filter(e._toggleString)):c.hasClass(e.controls.activeClass)||(a(e.selectors.filter).removeClass(e.controls.activeClass),f(c,d),e.filter(i))}e._execAction("_processClick",1,arguments)}else"function"==typeof e.callbacks.onMixBusy&&e.callbacks.onMixBusy.call(e._domNode,e._state,e),e._execAction("_processClickBusy",1,arguments)},_buildToggleArray:function(){var a=this,b=a._activeFilter.replace(/\s/g,"");if(a._execAction("_buildToggleArray",0,arguments),"or"===a.controls.toggleLogic)a._toggleArray=b.split(",");else{a._toggleArray=b.split("."),!a._toggleArray[0]&&a._toggleArray.shift();for(var c,d=0;c=a._toggleArray[d];d++)a._toggleArray[d]="."+c}a._execAction("_buildToggleArray",1,arguments)},_updateControls:function(c,d){var e=this,f={filter:c.filter,sort:c.sort},g=function(a,b){d&&"filter"===h&&"none"!==f.filter&&""!==f.filter?a.filter(b).addClass(e.controls.activeClass):a.removeClass(e.controls.activeClass).filter(b).addClass(e.controls.activeClass)},h="filter",i=null;e._execAction("_updateControls",0,arguments),c.filter===b&&(f.filter=e._activeFilter),c.sort===b&&(f.sort=e._activeSort),f.filter===e.selectors.target&&(f.filter="all");for(var j=0;2>j;j++)i=e.controls.live?a(e.selectors[h]):e["_$"+h+"Buttons"],i&&g(i,"[data-"+h+'="'+f[h]+'"]'),h="sort";e._execAction("_updateControls",1,arguments)},_filter:function(){var b=this;b._execAction("_filter",0);for(var c=0;c<b._$targets.length;c++){var d=a(b._$targets[c]);d.is(b._activeFilter)?b._$show=b._$show.add(d):b._$hide=b._$hide.add(d)}b._execAction("_filter",1)},_sort:function(){var a=this,b=function(a){for(var b=a.slice(),c=b.length,d=c;d--;){var e=parseInt(Math.random()*c),f=b[d];b[d]=b[e],b[e]=f}return b};a._execAction("_sort",0),a._startOrder=[];for(var c=0;c<a._$targets.length;c++){var d=a._$targets[c];a._startOrder.push(d)}switch(a._newSort[0].sortBy){case"default":a._newOrder=a._origOrder;break;case"random":a._newOrder=b(a._startOrder);break;case"custom":a._newOrder=a._newSort[0].order;break;default:a._newOrder=a._startOrder.concat().sort(function(b,c){return a._compare(b,c)})}a._execAction("_sort",1)},_compare:function(a,b,c){c=c?c:0;var d=this,e=d._newSort[c].order,f=function(a){return a.dataset[d._newSort[c].sortBy]||0},g=isNaN(1*f(a))?f(a).toLowerCase():1*f(a),h=isNaN(1*f(b))?f(b).toLowerCase():1*f(b);return h>g?"asc"===e?-1:1:g>h?"asc"===e?1:-1:g===h&&d._newSort.length>c+1?d._compare(a,b,c+1):0},_printSort:function(a){var b=this,c=a?b._startOrder:b._newOrder,d=b._$parent[0].querySelectorAll(b.selectors.target),e=d.length?d[d.length-1].nextElementSibling:null,f=document.createDocumentFragment();b._execAction("_printSort",0,arguments);for(var g=0;g<d.length;g++){var h=d[g],i=h.nextSibling;"absolute"!==h.style.position&&(i&&"#text"===i.nodeName&&b._$parent[0].removeChild(i),b._$parent[0].removeChild(h))}for(var g=0;g<c.length;g++){var j=c[g];if("default"!==b._newSort[0].sortBy||"desc"!==b._newSort[0].order||a)f.appendChild(j),f.appendChild(document.createTextNode(" "));else{var k=f.firstChild;f.insertBefore(j,k),f.insertBefore(document.createTextNode(" "),j)}}e?b._$parent[0].insertBefore(f,e):b._$parent[0].appendChild(f),b._execAction("_printSort",1,arguments)},_parseSort:function(a){for(var b=this,c="string"==typeof a?a.split(" "):[a],d=[],e=0;e<c.length;e++){var f="string"==typeof a?c[e].split(":"):["custom",c[e]],g={sortBy:b._helpers._camelCase(f[0]),order:f[1]||"asc"};if(d.push(g),"default"===g.sortBy||"random"===g.sortBy)break}return b._execFilter("_parseSort",d,arguments)},_parseEffects:function(){var a=this,b={opacity:"",transformIn:"",transformOut:"",filter:""},c=function(b,c){if(a.animation.effects.indexOf(b)>-1){if(c){var d=a.animation.effects.indexOf(b+"(");if(d>-1){var e=a.animation.effects.substring(d),f=/\(([^)]+)\)/.exec(e),g=f[1];return{val:g}}}return!0}return!1},d=function(a,b){return b?"-"===a.charAt(0)?a.substr(1,a.length):"-"+a:a},e=function(a,e){for(var f=[["scale",".01"],["translateX","20px"],["translateY","20px"],["translateZ","20px"],["rotateX","90deg"],["rotateY","90deg"],["rotateZ","180deg"]],g=0;g<f.length;g++){var h=f[g][0],i=f[g][1],j=e&&"scale"!==h;b[a]+=c(h)?h+"("+d(c(h,!0).val||i,j)+") ":""}};return b.opacity=c("fade")?c("fade",!0).val||"0":"1",e("transformIn"),a.animation.reverseOut?e("transformOut",!0):b.transformOut=b.transformIn,b.transition={},b.transition=a._getPrefixedCSS("transition","all "+a.animation.duration+"ms "+a.animation.easing+", opacity "+a.animation.duration+"ms linear"),a.animation.stagger=c("stagger")?!0:!1,a.animation.staggerDuration=parseInt(c("stagger")?c("stagger",!0).val?c("stagger",!0).val:100:100),a._execFilter("_parseEffects",b)},_buildState:function(a){var b=this,c={};return b._execAction("_buildState",0),c={activeFilter:""===b._activeFilter?"none":b._activeFilter,activeSort:a&&b._newSortString?b._newSortString:b._activeSort,fail:!b._$show.length&&""!==b._activeFilter,$targets:b._$targets,$show:b._$show,$hide:b._$hide,totalTargets:b._$targets.length,totalShow:b._$show.length,totalHide:b._$hide.length,display:a&&b._newDisplay?b._newDisplay:b.layout.display},a?b._execFilter("_buildState",c):(b._state=c,b._execAction("_buildState",1),void 0)},_goMix:function(a){var b=this,c=function(){b._chrome&&31===b._chrome&&f(b._$parent[0]),b._setInter(),d()},d=function(){var a=window.pageYOffset,c=window.pageXOffset;document.documentElement.scrollHeight,b._getInterMixData(),b._setFinal(),b._getFinalMixData(),window.pageYOffset!==a&&window.scrollTo(c,a),b._prepTargets(),window.requestAnimationFrame?requestAnimationFrame(e):setTimeout(function(){e()},20)},e=function(){b._animateTargets(),0===b._targetsBound&&b._cleanUp()},f=function(a){var b=a.parentElement,c=document.createElement("div"),d=document.createDocumentFragment();b.insertBefore(c,a),d.appendChild(a),b.replaceChild(a,c)},g=b._buildState(!0);b._execAction("_goMix",0,arguments),!b.animation.duration&&(a=!1),b._mixing=!0,b._$container.removeClass(b.layout.containerClassFail),"function"==typeof b.callbacks.onMixStart&&b.callbacks.onMixStart.call(b._domNode,b._state,g,b),b._$container.trigger("mixStart",[b._state,g,b]),b._getOrigMixData(),a&&!b._suckMode?window.requestAnimationFrame?requestAnimationFrame(c):c():b._cleanUp(),b._execAction("_goMix",1,arguments)},_getTargetData:function(a,b){var c,d=this;a.dataset[b+"PosX"]=a.offsetLeft,a.dataset[b+"PosY"]=a.offsetTop,d.animation.animateResizeTargets&&(c=window.getComputedStyle(a),a.dataset[b+"MarginBottom"]=parseInt(c.marginBottom),a.dataset[b+"MarginRight"]=parseInt(c.marginRight),a.dataset[b+"Width"]=a.offsetWidth,a.dataset[b+"Height"]=a.offsetHeight)},_getOrigMixData:function(){var a=this,b=a._suckMode?{boxSizing:""}:window.getComputedStyle(a._$parent[0]),c=b.boxSizing||b[a._vendor+"BoxSizing"];a._incPadding="border-box"===c,a._execAction("_getOrigMixData",0),!a._suckMode&&(a.effects=a._parseEffects()),a._$toHide=a._$hide.filter(":visible"),a._$toShow=a._$show.filter(":hidden"),a._$pre=a._$targets.filter(":visible"),a._startHeight=a._incPadding?a._$parent.outerHeight():a._$parent.height();for(var d=0;d<a._$pre.length;d++){var e=a._$pre[d];a._getTargetData(e,"orig")}a._execAction("_getOrigMixData",1)},_setInter:function(){var a=this;a._execAction("_setInter",0),a._changingLayout&&a.animation.animateChangeLayout?(a._$toShow.css("display",a._newDisplay),a._changingClass&&a._$container.removeClass(a.layout.containerClass).addClass(a._newClass)):a._$toShow.css("display",a.layout.display),a._execAction("_setInter",1)},_getInterMixData:function(){var a=this;a._execAction("_getInterMixData",0);for(var b=0;b<a._$toShow.length;b++){var c=a._$toShow[b];a._getTargetData(c,"inter")}for(var b=0;b<a._$pre.length;b++){var c=a._$pre[b];a._getTargetData(c,"inter")}a._execAction("_getInterMixData",1)},_setFinal:function(){var a=this;a._execAction("_setFinal",0),a._sorting&&a._printSort(),a._$toHide.removeStyle("display"),a._changingLayout&&a.animation.animateChangeLayout&&a._$pre.css("display",a._newDisplay),a._execAction("_setFinal",1)},_getFinalMixData:function(){var a=this;a._execAction("_getFinalMixData",0);for(var b=0;b<a._$toShow.length;b++){var c=a._$toShow[b];a._getTargetData(c,"final")}for(var b=0;b<a._$pre.length;b++){var c=a._$pre[b];a._getTargetData(c,"final")}a._newHeight=a._incPadding?a._$parent.outerHeight():a._$parent.height(),a._sorting&&a._printSort(!0),a._$toShow.removeStyle("display"),a._$pre.css("display",a.layout.display),a._changingClass&&a.animation.animateChangeLayout&&a._$container.removeClass(a._newClass).addClass(a.layout.containerClass),a._execAction("_getFinalMixData",1)},_prepTargets:function(){var b=this,c={_in:b._getPrefixedCSS("transform",b.effects.transformIn),_out:b._getPrefixedCSS("transform",b.effects.transformOut)};b._execAction("_prepTargets",0),b.animation.animateResizeContainer&&b._$parent.css("height",b._startHeight+"px");for(var d=0;d<b._$toShow.length;d++){var e=b._$toShow[d],f=a(e);e.style.opacity=b.effects.opacity,e.style.display=b._changingLayout&&b.animation.animateChangeLayout?b._newDisplay:b.layout.display,f.css(c._in),b.animation.animateResizeTargets&&(e.style.width=e.dataset.finalWidth+"px",e.style.height=e.dataset.finalHeight+"px",e.style.marginRight=-(e.dataset.finalWidth-e.dataset.interWidth)+1*e.dataset.finalMarginRight+"px",e.style.marginBottom=-(e.dataset.finalHeight-e.dataset.interHeight)+1*e.dataset.finalMarginBottom+"px")}for(var d=0;d<b._$pre.length;d++){var e=b._$pre[d],f=a(e),g={x:e.dataset.origPosX-e.dataset.interPosX,y:e.dataset.origPosY-e.dataset.interPosY},c=b._getPrefixedCSS("transform","translate("+g.x+"px,"+g.y+"px)");f.css(c),b.animation.animateResizeTargets&&(e.style.width=e.dataset.origWidth+"px",e.style.height=e.dataset.origHeight+"px",e.dataset.origWidth-e.dataset.finalWidth&&(e.style.marginRight=-(e.dataset.origWidth-e.dataset.interWidth)+1*e.dataset.origMarginRight+"px"),e.dataset.origHeight-e.dataset.finalHeight&&(e.style.marginBottom=-(e.dataset.origHeight-e.dataset.interHeight)+1*e.dataset.origMarginBottom+"px"))}b._execAction("_prepTargets",1)},_animateTargets:function(){var b=this;b._execAction("_animateTargets",0),b._targetsDone=0,b._targetsBound=0,b._$parent.css(b._getPrefixedCSS("perspective",b.animation.perspectiveDistance+"px")).css(b._getPrefixedCSS("perspective-origin",b.animation.perspectiveOrigin)),b.animation.animateResizeContainer&&b._$parent.css(b._getPrefixedCSS("transition","height "+b.animation.duration+"ms ease")).css("height",b._newHeight+"px");for(var c=0;c<b._$toShow.length;c++){var d=b._$toShow[c],e=a(d),f={x:d.dataset.finalPosX-d.dataset.interPosX,y:d.dataset.finalPosY-d.dataset.interPosY},g=b._getDelay(c),h={};d.style.opacity="";for(var i=0;2>i;i++){var j=0===i?j=b._prefix:"";b._ff&&b._ff<=20&&(h[j+"transition-property"]="all",h[j+"transition-timing-function"]=b.animation.easing+"ms",h[j+"transition-duration"]=b.animation.duration+"ms"),h[j+"transition-delay"]=g+"ms",h[j+"transform"]="translate("+f.x+"px,"+f.y+"px)"}(b.effects.transform||b.effects.opacity)&&b._bindTargetDone(e),b._ff&&b._ff<=20?e.css(h):e.css(b.effects.transition).css(h)}for(var c=0;c<b._$pre.length;c++){var d=b._$pre[c],e=a(d),f={x:d.dataset.finalPosX-d.dataset.interPosX,y:d.dataset.finalPosY-d.dataset.interPosY},g=b._getDelay(c);(d.dataset.finalPosX!==d.dataset.origPosX||d.dataset.finalPosY!==d.dataset.origPosY)&&b._bindTargetDone(e),e.css(b._getPrefixedCSS("transition","all "+b.animation.duration+"ms "+b.animation.easing+" "+g+"ms")),e.css(b._getPrefixedCSS("transform","translate("+f.x+"px,"+f.y+"px)")),b.animation.animateResizeTargets&&(d.dataset.origWidth-d.dataset.finalWidth&&1*d.dataset.finalWidth&&(d.style.width=d.dataset.finalWidth+"px",d.style.marginRight=-(d.dataset.finalWidth-d.dataset.interWidth)+1*d.dataset.finalMarginRight+"px"),d.dataset.origHeight-d.dataset.finalHeight&&1*d.dataset.finalHeight&&(d.style.height=d.dataset.finalHeight+"px",d.style.marginBottom=-(d.dataset.finalHeight-d.dataset.interHeight)+1*d.dataset.finalMarginBottom+"px"))}b._changingClass&&b._$container.removeClass(b.layout.containerClass).addClass(b._newClass);for(var c=0;c<b._$toHide.length;c++){for(var d=b._$toHide[c],e=a(d),g=b._getDelay(c),k={},i=0;2>i;i++){var j=0===i?j=b._prefix:"";k[j+"transition-delay"]=g+"ms",k[j+"transform"]=b.effects.transformOut,k.opacity=b.effects.opacity}e.css(b.effects.transition).css(k),(b.effects.transform||b.effects.opacity)&&b._bindTargetDone(e)}b._execAction("_animateTargets",1)},_bindTargetDone:function(b){var c=this,d=b[0];c._execAction("_bindTargetDone",0,arguments),d.dataset.bound||(d.dataset.bound=!0,c._targetsBound++,b.on("webkitTransitionEnd.mixItUp transitionend.mixItUp",function(e){(e.originalEvent.propertyName.indexOf("transform")>-1||e.originalEvent.propertyName.indexOf("opacity")>-1)&&a(e.originalEvent.target).is(c.selectors.target)&&(b.off(".mixItUp"),delete d.dataset.bound,c._targetDone())})),c._execAction("_bindTargetDone",1,arguments)},_targetDone:function(){var a=this;a._execAction("_targetDone",0),a._targetsDone++,a._targetsDone===a._targetsBound&&a._cleanUp(),a._execAction("_targetDone",1)},_cleanUp:function(){var b=this,c=b.animation.animateResizeTargets?"transform opacity width height margin-bottom margin-right":"transform opacity";unBrake=function(){b._$targets.removeStyle("transition",b._prefix)},b._execAction("_cleanUp",0),b._changingLayout?b._$show.css("display",b._newDisplay):b._$show.css("display",b.layout.display),b._$targets.css(b._brake),b._$targets.removeStyle(c,b._prefix).removeAttr("data-inter-pos-x data-inter-pos-y data-final-pos-x data-final-pos-y data-orig-pos-x data-orig-pos-y data-orig-height data-orig-width data-final-height data-final-width data-inter-width data-inter-height data-orig-margin-right data-orig-margin-bottom data-inter-margin-right data-inter-margin-bottom data-final-margin-right data-final-margin-bottom"),b._$hide.removeStyle("display"),b._$parent.removeStyle("height transition perspective-distance perspective perspective-origin-x perspective-origin-y perspective-origin perspectiveOrigin",b._prefix),b._sorting&&(b._printSort(),b._activeSort=b._newSortString,b._sorting=!1),b._changingLayout&&(b._changingDisplay&&(b.layout.display=b._newDisplay,b._changingDisplay=!1),b._changingClass&&(b._$parent.removeClass(b.layout.containerClass).addClass(b._newClass),b.layout.containerClass=b._newClass,b._changingClass=!1),b._changingLayout=!1),b._refresh(),b._buildState(),b._state.fail&&b._$container.addClass(b.layout.containerClassFail),b._$show=a(),b._$hide=a(),window.requestAnimationFrame&&requestAnimationFrame(unBrake),b._mixing=!1,"function"==typeof b.callbacks._user&&b.callbacks._user.call(b._domNode,b._state,b),"function"==typeof b.callbacks.onMixEnd&&b.callbacks.onMixEnd.call(b._domNode,b._state,b),b._$container.trigger("mixEnd",[b._state,b]),b._state.fail&&("function"==typeof b.callbacks.onMixFail&&b.callbacks.onMixFail.call(b._domNode,b._state,b),b._$container.trigger("mixFail",[b._state,b])),b._loading&&("function"==typeof b.callbacks.onMixLoad&&b.callbacks.onMixLoad.call(b._domNode,b._state,b),b._$container.trigger("mixLoad",[b._state,b])),b._queue.length&&(b._execAction("_queue",0),b.multiMix(b._queue[0][0],b._queue[0][1],b._queue[0][2]),b._queue.splice(0,1)),b._execAction("_cleanUp",1),b._loading=!1},_getPrefixedCSS:function(a,b,c){var d=this,e={};for(i=0;2>i;i++){var f=0===i?d._prefix:"";e[f+a]=c?f+b:b}return d._execFilter("_getPrefixedCSS",e,arguments)},_getDelay:function(a){var b=this,c="function"==typeof b.animation.staggerSequence?b.animation.staggerSequence.call(b._domNode,a,b._state):a,d=b.animation.stagger?c*b.animation.staggerDuration:0;return b._execFilter("_getDelay",d,arguments)},_parseMultiMixArgs:function(a){for(var b=this,c={command:null,animate:b.animation.enable,callback:null},d=0;d<a.length;d++){var e=a[d];null!==e&&("object"==typeof e||"string"==typeof e?c.command=e:"boolean"==typeof e?c.animate=e:"function"==typeof e&&(c.callback=e))}return b._execFilter("_parseMultiMixArgs",c,arguments)},_parseInsertArgs:function(b){for(var c=this,d={index:0,$object:a(),multiMix:{filter:c._state.activeFilter},callback:null},e=0;e<b.length;e++){var f=b[e];"number"==typeof f?d.index=f:"object"==typeof f&&f instanceof a?d.$object=f:"object"==typeof f&&c._helpers._isElement(f)?d.$object=a(f):"object"==typeof f&&null!==f?d.multiMix=f:"boolean"!=typeof f||f?"function"==typeof f&&(d.callback=f):d.multiMix=!1}return c._execFilter("_parseInsertArgs",d,arguments)},_execAction:function(a,b,c){var d=this,e=b?"post":"pre";if(!d._actions.isEmptyObject&&d._actions.hasOwnProperty(a))for(var f in d._actions[a][e])d._actions[a][e][f].call(d,c)},_execFilter:function(a,b,c){var d=this;if(d._filters.isEmptyObject||!d._filters.hasOwnProperty(a))return b;for(var e in d._filters[a])return d._filters[a][e].call(d,c)},_helpers:{_camelCase:function(a){return a.replace(/-([a-z])/g,function(a){return a[1].toUpperCase()})},_isElement:function(a){return window.HTMLElement?a instanceof HTMLElement:null!==a&&1===a.nodeType&&"string"===a.nodeName}},isMixing:function(){var a=this;return a._execFilter("isMixing",a._mixing)},filter:function(){var a=this,b=a._parseMultiMixArgs(arguments);a._clicking&&(a._toggleString=""),a.multiMix({filter:b.command},b.animate,b.callback)},sort:function(){var a=this,b=a._parseMultiMixArgs(arguments);a.multiMix({sort:b.command},b.animate,b.callback)},changeLayout:function(){var a=this,b=a._parseMultiMixArgs(arguments);a.multiMix({changeLayout:b.command},b.animate,b.callback)},multiMix:function(){var a=this,c=a._parseMultiMixArgs(arguments);if(a._execAction("multiMix",0,arguments),a._mixing)a.animation.queue&&a._queue.length<a.animation.queueLimit?(a._queue.push(arguments),a.controls.enable&&!a._clicking&&a._updateControls(c.command),a._execAction("multiMixQueue",1,arguments)):("function"==typeof a.callbacks.onMixBusy&&a.callbacks.onMixBusy.call(a._domNode,a._state,a),a._$container.trigger("mixBusy",[a._state,a]),a._execAction("multiMixBusy",1,arguments));else{a.controls.enable&&!a._clicking&&(a.controls.toggleFilterButtons&&a._buildToggleArray(),a._updateControls(c.command,a.controls.toggleFilterButtons)),a._queue.length<2&&(a._clicking=!1),delete a.callbacks._user,c.callback&&(a.callbacks._user=c.callback);var d=c.command.sort,e=c.command.filter,f=c.command.changeLayout;a._refresh(),d&&(a._newSort=a._parseSort(d),a._newSortString=d,a._sorting=!0,a._sort()),e!==b&&(e="all"===e?a.selectors.target:e,a._activeFilter=e),a._filter(),f&&(a._newDisplay="string"==typeof f?f:f.display||a.layout.display,a._newClass=f.containerClass||"",(a._newDisplay!==a.layout.display||a._newClass!==a.layout.containerClass)&&(a._changingLayout=!0,a._changingClass=a._newClass!==a.layout.containerClass,a._changingDisplay=a._newDisplay!==a.layout.display)),a._$targets.css(a._brake),a._goMix(c.animate^a.animation.enable?c.animate:a.animation.enable),a._execAction("multiMix",1,arguments)}},insert:function(){var a=this,b=a._parseInsertArgs(arguments),c="function"==typeof b.callback?b.callback:null,d=document.createDocumentFragment(),e=function(){return a._refresh(),a._$targets.length?b.index<a._$targets.length||!a._$targets.length?a._$targets[b.index]:a._$targets[a._$targets.length-1].nextElementSibling:a._$parent[0].children[0]}();if(a._execAction("insert",0,arguments),b.$object){for(var f=0;f<b.$object.length;f++){var g=b.$object[f];d.appendChild(g),d.appendChild(document.createTextNode(" "))}a._$parent[0].insertBefore(d,e)}a._execAction("insert",1,arguments),"object"==typeof b.multiMix&&a.multiMix(b.multiMix,c)},prepend:function(){var a=this,b=a._parseInsertArgs(arguments);a.insert(0,b.$object,b.multiMix,b.callback)},append:function(){var a=this,b=a._parseInsertArgs(arguments);a.insert(a._state.totalTargets,b.$object,b.multiMix,b.callback)},getOption:function(a){var c=this,d=function(a,c){for(var d=c.split("."),e=d.pop(),f=d.length,g=1,h=d[0]||c;(a=a[h])&&f>g;)h=d[g],g++;return a!==b?a[e]!==b?a[e]:a:void 0};return a?c._execFilter("getOption",d(c,a),arguments):c},setOptions:function(b){var c=this;c._execAction("setOptions",0,arguments),"object"==typeof b&&a.extend(!0,c,b),c._execAction("setOptions",1,arguments)},getState:function(){var a=this;return a._execFilter("getState",a._state,a)},forceRefresh:function(){var a=this;a._refresh(!1,!0)},destroy:function(b){var c=this;c._execAction("destroy",0,arguments),c._$body.add(a(c.selectors.sort)).add(a(c.selectors.filter)).off(".mixItUp");for(var d=0;d<c._$targets.length;d++){var e=c._$targets[d];b&&(e.style.display=""),delete e.mixParent}c._execAction("destroy",1,arguments),delete a.MixItUp.prototype._instances[c._id]}},a.fn.mixItUp=function(){var c,d=arguments,e=[],f=function(b,c){var d=new a.MixItUp,e=function(){return("00000"+(16777216*Math.random()<<0).toString(16)).substr(-6).toUpperCase()};d._execAction("_instantiate",0,arguments),b.id=b.id?b.id:"MixItUp"+e(),d._instances[b.id]||(d._instances[b.id]=d,d._init(b,c)),d._execAction("_instantiate",1,arguments)};return c=this.each(function(){if(d&&"string"==typeof d[0]){var c=a.MixItUp.prototype._instances[this.id];if("isLoaded"===d[0])e.push(c?!0:!1);else{var g=c[d[0]](d[1],d[2],d[3]);g!==b&&e.push(g)}}else f(this,d[0])}),e.length?e.length>1?e:e[0]:c},a.fn.removeStyle=function(c,d){return d=d?d:"",this.each(function(){for(var e=this,f=c.split(" "),g=0;g<f.length;g++)for(var h=0;4>h;h++){switch(h){case 0:var i=f[g];break;case 1:var i=a.MixItUp.prototype._helpers._camelCase(i);break;case 2:var i=d+f[g];break;case 3:var i=a.MixItUp.prototype._helpers._camelCase(d+f[g])}if(e.style[i]!==b&&"unknown"!=typeof e.style[i]&&e.style[i].length>0&&(e.style[i]=""),!d&&1===h)break}e.attributes&&e.attributes.style&&e.attributes.style!==b&&""===e.attributes.style.value&&e.attributes.removeNamedItem("style")})}}(jQuery);
\ No newline at end of file
diff --git a/js/main.js b/js/main.js
deleted file mode 100644
index 8c299e1..0000000
--- a/js/main.js
+++ /dev/null
@@ -1,208 +0,0 @@
-jQuery(document).ready(function($){
-	//open/close lateral filter
-	$('.cd-filter-trigger').on('click', function(){
-		triggerFilter(true);
-	});
-	$('.cd-filter .cd-close').on('click', function(){
-		triggerFilter(false);
-	});
-
-	function triggerFilter($bool) {
-		var elementsToTrigger = $([$('.cd-filter-trigger'), $('.cd-filter'), $('.cd-tab-filter'), $('.cd-gallery')]);
-		elementsToTrigger.each(function(){
-			$(this).toggleClass('filter-is-visible', $bool);
-		});
-	}
-
-	//mobile version - detect click event on filters tab
-	var filter_tab_placeholder = $('.cd-tab-filter .placeholder a'),
-		filter_tab_placeholder_default_value = 'Select',
-		filter_tab_placeholder_text = filter_tab_placeholder.text();
-	
-	$('.cd-tab-filter li').on('click', function(event){
-		//detect which tab filter item was selected
-		var selected_filter = $(event.target).data('type');
-			
-		//check if user has clicked the placeholder item
-		if( $(event.target).is(filter_tab_placeholder) ) {
-			(filter_tab_placeholder_default_value == filter_tab_placeholder.text()) ? filter_tab_placeholder.text(filter_tab_placeholder_text) : filter_tab_placeholder.text(filter_tab_placeholder_default_value) ;
-			$('.cd-tab-filter').toggleClass('is-open');
-
-		//check if user has clicked a filter already selected 
-		} else if( filter_tab_placeholder.data('type') == selected_filter ) {
-			filter_tab_placeholder.text($(event.target).text());
-			$('.cd-tab-filter').removeClass('is-open');	
-
-		} else {
-			//close the dropdown and change placeholder text/data-type value
-			$('.cd-tab-filter').removeClass('is-open');
-			filter_tab_placeholder.text($(event.target).text()).data('type', selected_filter);
-			filter_tab_placeholder_text = $(event.target).text();
-			
-			//add class selected to the selected filter item
-			$('.cd-tab-filter .selected').removeClass('selected');
-			$(event.target).addClass('selected');
-		}
-	});
-	
-	//close filter dropdown inside lateral .cd-filter 
-	$('.cd-filter-block h4').on('click', function(){
-		$(this).toggleClass('closed').siblings('.cd-filter-content').slideToggle(300);
-	})
-
-	//fix lateral filter and gallery on scrolling
-	$(window).on('scroll', function(){
-		(!window.requestAnimationFrame) ? fixGallery() : window.requestAnimationFrame(fixGallery);
-	});
-
-	function fixGallery() {
-		var offsetTop = $('.cd-main-content').offset().top,
-			scrollTop = $(window).scrollTop();
-		( scrollTop >= offsetTop ) ? $('.cd-main-content').addClass('is-fixed') : $('.cd-main-content').removeClass('is-fixed');
-	}
-
-	/************************************
-		MitItUp filter settings
-		More details: 
-		https://mixitup.kunkalabs.com/
-		or:
-		http://codepen.io/patrickkunka/
-	*************************************/
-
-	buttonFilter.init();
-	$('.cd-gallery ul').mixItUp({
-	    controls: {
-	    	enable: false
-	    },
-	    callbacks: {
-	    	onMixStart: function(){
-	    		$('.cd-fail-message').fadeOut(200);
-	    	},
-	      	onMixFail: function(){
-	      		$('.cd-fail-message').fadeIn(200);
-	    	}
-	    }
-	});
-
-	//search filtering
-	//credits http://codepen.io/edprats/pen/pzAdg
-	var inputText;
-	var $matching = $();
-
-	var delay = (function(){
-		var timer = 0;
-		return function(callback, ms){
-			clearTimeout (timer);
-		    timer = setTimeout(callback, ms);
-		};
-	})();
-
-	$(".cd-filter-content input[type='search']").keyup(function(){
-	  	// Delay function invoked to make sure user stopped typing
-	  	delay(function(){
-	    	inputText = $(".cd-filter-content input[type='search']").val().toLowerCase();
-	   		// Check to see if input field is empty
-	    	if ((inputText.length) > 0) {            
-	      		$('.mix').each(function() {
-		        	var $this = $(this);
-		        
-		        	// add item to be filtered out if input text matches items inside the title   
-		        	if($this.attr('class').toLowerCase().match(inputText)) {
-		          		$matching = $matching.add(this);
-		        	} else {
-		          		// removes any previously matched item
-		          		$matching = $matching.not(this);
-		        	}
-	      		});
-	      		$('.cd-gallery ul').mixItUp('filter', $matching);
-	    	} else {
-	      		// resets the filter to show all item if input is empty
-	      		$('.cd-gallery ul').mixItUp('filter', 'all');
-	    	}
-	  	}, 200 );
-	});
-});
-
-/*****************************************************
-	MixItUp - Define a single object literal 
-	to contain all filter custom functionality
-*****************************************************/
-var buttonFilter = {
-  	// Declare any variables we will need as properties of the object
-  	$filters: null,
-  	groups: [],
-  	outputArray: [],
-  	outputString: '',
-  
-  	// The "init" method will run on document ready and cache any jQuery objects we will need.
-  	init: function(){
-    	var self = this; // As a best practice, in each method we will asign "this" to the variable "self" so that it remains scope-agnostic. We will use it to refer to the parent "buttonFilter" object so that we can share methods and properties between all parts of the object.
-    
-    	self.$filters = $('.cd-main-content');
-    	self.$container = $('.cd-gallery ul');
-    
-	    self.$filters.find('.cd-filters').each(function(){
-	      	var $this = $(this);
-	      
-		    self.groups.push({
-		        $inputs: $this.find('.filter'),
-		        active: '',
-		        tracker: false
-		    });
-	    });
-	    
-	    self.bindHandlers();
-  	},
-  
-  	// The "bindHandlers" method will listen for whenever a button is clicked. 
-  	bindHandlers: function(){
-    	var self = this;
-
-    	self.$filters.on('click', 'a', function(e){
-	      	self.parseFilters();
-    	});
-	    self.$filters.on('change', function(){
-	      self.parseFilters();           
-	    });
-  	},
-  
-  	parseFilters: function(){
-	    var self = this;
-	 
-	    // loop through each filter group and grap the active filter from each one.
-	    for(var i = 0, group; group = self.groups[i]; i++){
-	    	group.active = [];
-	    	group.$inputs.each(function(){
-	    		var $this = $(this);
-	    		if($this.is('input[type="radio"]') || $this.is('input[type="checkbox"]')) {
-	    			if($this.is(':checked') ) {
-	    				group.active.push($this.attr('data-filter'));
-	    			}
-	    		} else if($this.is('select')){
-	    			group.active.push($this.val());
-	    		} else if( $this.find('.selected').length > 0 ) {
-	    			group.active.push($this.attr('data-filter'));
-	    		}
-	    	});
-	    }
-	    self.concatenate();
-  	},
-  
-  	concatenate: function(){
-    	var self = this;
-    
-    	self.outputString = ''; // Reset output string
-    
-	    for(var i = 0, group; group = self.groups[i]; i++){
-	      	self.outputString += group.active;
-	    }
-    
-	    // If the output string is empty, show all rather than none:    
-	    !self.outputString.length && (self.outputString = 'all'); 
-	
-    	// Send the output string to MixItUp via the 'filter' method:    
-		if(self.$container.mixItUp('isLoaded')){
-	    	self.$container.mixItUp('filter', self.outputString);
-		}
-  	}
-};
\ No newline at end of file
diff --git a/js/modernizr.js b/js/modernizr.js
deleted file mode 100644
index 49a636a..0000000
--- a/js/modernizr.js
+++ /dev/null
@@ -1,4 +0,0 @@
-/* Modernizr 2.8.3 (Custom Build) | MIT & BSD
- * Build: http://modernizr.com/download/#-fontface-backgroundsize-borderimage-borderradius-boxshadow-flexbox-hsla-multiplebgs-opacity-rgba-textshadow-cssanimations-csscolumns-generatedcontent-cssgradients-cssreflections-csstransforms-csstransforms3d-csstransitions-applicationcache-canvas-canvastext-draganddrop-hashchange-history-audio-video-indexeddb-input-inputtypes-localstorage-postmessage-sessionstorage-websockets-websqldatabase-webworkers-geolocation-inlinesvg-smil-svg-svgclippaths-touch-webgl-shiv-cssclasses-addtest-prefixed-teststyles-testprop-testallprops-hasevent-prefixes-domprefixes-load
- */
-;window.Modernizr=function(a,b,c){function C(a){j.cssText=a}function D(a,b){return C(n.join(a+";")+(b||""))}function E(a,b){return typeof a===b}function F(a,b){return!!~(""+a).indexOf(b)}function G(a,b){for(var d in a){var e=a[d];if(!F(e,"-")&&j[e]!==c)return b=="pfx"?e:!0}return!1}function H(a,b,d){for(var e in a){var f=b[a[e]];if(f!==c)return d===!1?a[e]:E(f,"function")?f.bind(d||b):f}return!1}function I(a,b,c){var d=a.charAt(0).toUpperCase()+a.slice(1),e=(a+" "+p.join(d+" ")+d).split(" ");return E(b,"string")||E(b,"undefined")?G(e,b):(e=(a+" "+q.join(d+" ")+d).split(" "),H(e,b,c))}function J(){e.input=function(c){for(var d=0,e=c.length;d<e;d++)u[c[d]]=c[d]in k;return u.list&&(u.list=!!b.createElement("datalist")&&!!a.HTMLDataListElement),u}("autocomplete autofocus list placeholder max min multiple pattern required step".split(" ")),e.inputtypes=function(a){for(var d=0,e,f,h,i=a.length;d<i;d++)k.setAttribute("type",f=a[d]),e=k.type!=="text",e&&(k.value=l,k.style.cssText="position:absolute;visibility:hidden;",/^range$/.test(f)&&k.style.WebkitAppearance!==c?(g.appendChild(k),h=b.defaultView,e=h.getComputedStyle&&h.getComputedStyle(k,null).WebkitAppearance!=="textfield"&&k.offsetHeight!==0,g.removeChild(k)):/^(search|tel)$/.test(f)||(/^(url|email)$/.test(f)?e=k.checkValidity&&k.checkValidity()===!1:e=k.value!=l)),t[a[d]]=!!e;return t}("search tel url email datetime date month week time datetime-local number range color".split(" "))}var d="2.8.3",e={},f=!0,g=b.documentElement,h="modernizr",i=b.createElement(h),j=i.style,k=b.createElement("input"),l=":)",m={}.toString,n=" -webkit- -moz- -o- -ms- ".split(" "),o="Webkit Moz O ms",p=o.split(" "),q=o.toLowerCase().split(" "),r={svg:"http://www.w3.org/2000/svg"},s={},t={},u={},v=[],w=v.slice,x,y=function(a,c,d,e){var f,i,j,k,l=b.createElement("div"),m=b.body,n=m||b.createElement("body");if(parseInt(d,10))while(d--)j=b.createElement("div"),j.id=e?e[d]:h+(d+1),l.appendChild(j);return f=["&#173;",'<style id="s',h,'">',a,"</style>"].join(""),l.id=h,(m?l:n).innerHTML+=f,n.appendChild(l),m||(n.style.background="",n.style.overflow="hidden",k=g.style.overflow,g.style.overflow="hidden",g.appendChild(n)),i=c(l,a),m?l.parentNode.removeChild(l):(n.parentNode.removeChild(n),g.style.overflow=k),!!i},z=function(){function d(d,e){e=e||b.createElement(a[d]||"div"),d="on"+d;var f=d in e;return f||(e.setAttribute||(e=b.createElement("div")),e.setAttribute&&e.removeAttribute&&(e.setAttribute(d,""),f=E(e[d],"function"),E(e[d],"undefined")||(e[d]=c),e.removeAttribute(d))),e=null,f}var a={select:"input",change:"input",submit:"form",reset:"form",error:"img",load:"img",abort:"img"};return d}(),A={}.hasOwnProperty,B;!E(A,"undefined")&&!E(A.call,"undefined")?B=function(a,b){return A.call(a,b)}:B=function(a,b){return b in a&&E(a.constructor.prototype[b],"undefined")},Function.prototype.bind||(Function.prototype.bind=function(b){var c=this;if(typeof c!="function")throw new TypeError;var d=w.call(arguments,1),e=function(){if(this instanceof e){var a=function(){};a.prototype=c.prototype;var f=new a,g=c.apply(f,d.concat(w.call(arguments)));return Object(g)===g?g:f}return c.apply(b,d.concat(w.call(arguments)))};return e}),s.flexbox=function(){return I("flexWrap")},s.canvas=function(){var a=b.createElement("canvas");return!!a.getContext&&!!a.getContext("2d")},s.canvastext=function(){return!!e.canvas&&!!E(b.createElement("canvas").getContext("2d").fillText,"function")},s.webgl=function(){return!!a.WebGLRenderingContext},s.touch=function(){var c;return"ontouchstart"in a||a.DocumentTouch&&b instanceof DocumentTouch?c=!0:y(["@media (",n.join("touch-enabled),("),h,")","{#modernizr{top:9px;position:absolute}}"].join(""),function(a){c=a.offsetTop===9}),c},s.geolocation=function(){return"geolocation"in navigator},s.postmessage=function(){return!!a.postMessage},s.websqldatabase=function(){return!!a.openDatabase},s.indexedDB=function(){return!!I("indexedDB",a)},s.hashchange=function(){return z("hashchange",a)&&(b.documentMode===c||b.documentMode>7)},s.history=function(){return!!a.history&&!!history.pushState},s.draganddrop=function(){var a=b.createElement("div");return"draggable"in a||"ondragstart"in a&&"ondrop"in a},s.websockets=function(){return"WebSocket"in a||"MozWebSocket"in a},s.rgba=function(){return C("background-color:rgba(150,255,150,.5)"),F(j.backgroundColor,"rgba")},s.hsla=function(){return C("background-color:hsla(120,40%,100%,.5)"),F(j.backgroundColor,"rgba")||F(j.backgroundColor,"hsla")},s.multiplebgs=function(){return C("background:url(https://),url(https://),red url(https://)"),/(url\s*\(.*?){3}/.test(j.background)},s.backgroundsize=function(){return I("backgroundSize")},s.borderimage=function(){return I("borderImage")},s.borderradius=function(){return I("borderRadius")},s.boxshadow=function(){return I("boxShadow")},s.textshadow=function(){return b.createElement("div").style.textShadow===""},s.opacity=function(){return D("opacity:.55"),/^0.55$/.test(j.opacity)},s.cssanimations=function(){return I("animationName")},s.csscolumns=function(){return I("columnCount")},s.cssgradients=function(){var a="background-image:",b="gradient(linear,left top,right bottom,from(#9f9),to(white));",c="linear-gradient(left top,#9f9, white);";return C((a+"-webkit- ".split(" ").join(b+a)+n.join(c+a)).slice(0,-a.length)),F(j.backgroundImage,"gradient")},s.cssreflections=function(){return I("boxReflect")},s.csstransforms=function(){return!!I("transform")},s.csstransforms3d=function(){var a=!!I("perspective");return a&&"webkitPerspective"in g.style&&y("@media (transform-3d),(-webkit-transform-3d){#modernizr{left:9px;position:absolute;height:3px;}}",function(b,c){a=b.offsetLeft===9&&b.offsetHeight===3}),a},s.csstransitions=function(){return I("transition")},s.fontface=function(){var a;return y('@font-face {font-family:"font";src:url("https://")}',function(c,d){var e=b.getElementById("smodernizr"),f=e.sheet||e.styleSheet,g=f?f.cssRules&&f.cssRules[0]?f.cssRules[0].cssText:f.cssText||"":"";a=/src/i.test(g)&&g.indexOf(d.split(" ")[0])===0}),a},s.generatedcontent=function(){var a;return y(["#",h,"{font:0/0 a}#",h,':after{content:"',l,'";visibility:hidden;font:3px/1 a}'].join(""),function(b){a=b.offsetHeight>=3}),a},s.video=function(){var a=b.createElement("video"),c=!1;try{if(c=!!a.canPlayType)c=new Boolean(c),c.ogg=a.canPlayType('video/ogg; codecs="theora"').replace(/^no$/,""),c.h264=a.canPlayType('video/mp4; codecs="avc1.42E01E"').replace(/^no$/,""),c.webm=a.canPlayType('video/webm; codecs="vp8, vorbis"').replace(/^no$/,"")}catch(d){}return c},s.audio=function(){var a=b.createElement("audio"),c=!1;try{if(c=!!a.canPlayType)c=new Boolean(c),c.ogg=a.canPlayType('audio/ogg; codecs="vorbis"').replace(/^no$/,""),c.mp3=a.canPlayType("audio/mpeg;").replace(/^no$/,""),c.wav=a.canPlayType('audio/wav; codecs="1"').replace(/^no$/,""),c.m4a=(a.canPlayType("audio/x-m4a;")||a.canPlayType("audio/aac;")).replace(/^no$/,"")}catch(d){}return c},s.localstorage=function(){try{return localStorage.setItem(h,h),localStorage.removeItem(h),!0}catch(a){return!1}},s.sessionstorage=function(){try{return sessionStorage.setItem(h,h),sessionStorage.removeItem(h),!0}catch(a){return!1}},s.webworkers=function(){return!!a.Worker},s.applicationcache=function(){return!!a.applicationCache},s.svg=function(){return!!b.createElementNS&&!!b.createElementNS(r.svg,"svg").createSVGRect},s.inlinesvg=function(){var a=b.createElement("div");return a.innerHTML="<svg/>",(a.firstChild&&a.firstChild.namespaceURI)==r.svg},s.smil=function(){return!!b.createElementNS&&/SVGAnimate/.test(m.call(b.createElementNS(r.svg,"animate")))},s.svgclippaths=function(){return!!b.createElementNS&&/SVGClipPath/.test(m.call(b.createElementNS(r.svg,"clipPath")))};for(var K in s)B(s,K)&&(x=K.toLowerCase(),e[x]=s[K](),v.push((e[x]?"":"no-")+x));return e.input||J(),e.addTest=function(a,b){if(typeof a=="object")for(var d in a)B(a,d)&&e.addTest(d,a[d]);else{a=a.toLowerCase();if(e[a]!==c)return e;b=typeof b=="function"?b():b,typeof f!="undefined"&&f&&(g.className+=" "+(b?"":"no-")+a),e[a]=b}return e},C(""),i=k=null,function(a,b){function l(a,b){var c=a.createElement("p"),d=a.getElementsByTagName("head")[0]||a.documentElement;return c.innerHTML="x<style>"+b+"</style>",d.insertBefore(c.lastChild,d.firstChild)}function m(){var a=s.elements;return typeof a=="string"?a.split(" "):a}function n(a){var b=j[a[h]];return b||(b={},i++,a[h]=i,j[i]=b),b}function o(a,c,d){c||(c=b);if(k)return c.createElement(a);d||(d=n(c));var g;return d.cache[a]?g=d.cache[a].cloneNode():f.test(a)?g=(d.cache[a]=d.createElem(a)).cloneNode():g=d.createElem(a),g.canHaveChildren&&!e.test(a)&&!g.tagUrn?d.frag.appendChild(g):g}function p(a,c){a||(a=b);if(k)return a.createDocumentFragment();c=c||n(a);var d=c.frag.cloneNode(),e=0,f=m(),g=f.length;for(;e<g;e++)d.createElement(f[e]);return d}function q(a,b){b.cache||(b.cache={},b.createElem=a.createElement,b.createFrag=a.createDocumentFragment,b.frag=b.createFrag()),a.createElement=function(c){return s.shivMethods?o(c,a,b):b.createElem(c)},a.createDocumentFragment=Function("h,f","return function(){var n=f.cloneNode(),c=n.createElement;h.shivMethods&&("+m().join().replace(/[\w\-]+/g,function(a){return b.createElem(a),b.frag.createElement(a),'c("'+a+'")'})+");return n}")(s,b.frag)}function r(a){a||(a=b);var c=n(a);return s.shivCSS&&!g&&!c.hasCSS&&(c.hasCSS=!!l(a,"article,aside,dialog,figcaption,figure,footer,header,hgroup,main,nav,section{display:block}mark{background:#FF0;color:#000}template{display:none}")),k||q(a,c),a}var c="3.7.0",d=a.html5||{},e=/^<|^(?:button|map|select|textarea|object|iframe|option|optgroup)$/i,f=/^(?:a|b|code|div|fieldset|h1|h2|h3|h4|h5|h6|i|label|li|ol|p|q|span|strong|style|table|tbody|td|th|tr|ul)$/i,g,h="_html5shiv",i=0,j={},k;(function(){try{var a=b.createElement("a");a.innerHTML="<xyz></xyz>",g="hidden"in a,k=a.childNodes.length==1||function(){b.createElement("a");var a=b.createDocumentFragment();return typeof a.cloneNode=="undefined"||typeof a.createDocumentFragment=="undefined"||typeof a.createElement=="undefined"}()}catch(c){g=!0,k=!0}})();var s={elements:d.elements||"abbr article aside audio bdi canvas data datalist details dialog figcaption figure footer header hgroup main mark meter nav output progress section summary template time video",version:c,shivCSS:d.shivCSS!==!1,supportsUnknownElements:k,shivMethods:d.shivMethods!==!1,type:"default",shivDocument:r,createElement:o,createDocumentFragment:p};a.html5=s,r(b)}(this,b),e._version=d,e._prefixes=n,e._domPrefixes=q,e._cssomPrefixes=p,e.hasEvent=z,e.testProp=function(a){return G([a])},e.testAllProps=I,e.testStyles=y,e.prefixed=function(a,b,c){return b?I(a,b,c):I(a,"pfx")},g.className=g.className.replace(/(^|\s)no-js(\s|$)/,"$1$2")+(f?" js "+v.join(" "):""),e}(this,this.document),function(a,b,c){function d(a){return"[object Function]"==o.call(a)}function e(a){return"string"==typeof a}function f(){}function g(a){return!a||"loaded"==a||"complete"==a||"uninitialized"==a}function h(){var a=p.shift();q=1,a?a.t?m(function(){("c"==a.t?B.injectCss:B.injectJs)(a.s,0,a.a,a.x,a.e,1)},0):(a(),h()):q=0}function i(a,c,d,e,f,i,j){function k(b){if(!o&&g(l.readyState)&&(u.r=o=1,!q&&h(),l.onload=l.onreadystatechange=null,b)){"img"!=a&&m(function(){t.removeChild(l)},50);for(var d in y[c])y[c].hasOwnProperty(d)&&y[c][d].onload()}}var j=j||B.errorTimeout,l=b.createElement(a),o=0,r=0,u={t:d,s:c,e:f,a:i,x:j};1===y[c]&&(r=1,y[c]=[]),"object"==a?l.data=c:(l.src=c,l.type=a),l.width=l.height="0",l.onerror=l.onload=l.onreadystatechange=function(){k.call(this,r)},p.splice(e,0,u),"img"!=a&&(r||2===y[c]?(t.insertBefore(l,s?null:n),m(k,j)):y[c].push(l))}function j(a,b,c,d,f){return q=0,b=b||"j",e(a)?i("c"==b?v:u,a,b,this.i++,c,d,f):(p.splice(this.i++,0,a),1==p.length&&h()),this}function k(){var a=B;return a.loader={load:j,i:0},a}var l=b.documentElement,m=a.setTimeout,n=b.getElementsByTagName("script")[0],o={}.toString,p=[],q=0,r="MozAppearance"in l.style,s=r&&!!b.createRange().compareNode,t=s?l:n.parentNode,l=a.opera&&"[object Opera]"==o.call(a.opera),l=!!b.attachEvent&&!l,u=r?"object":l?"script":"img",v=l?"script":u,w=Array.isArray||function(a){return"[object Array]"==o.call(a)},x=[],y={},z={timeout:function(a,b){return b.length&&(a.timeout=b[0]),a}},A,B;B=function(a){function b(a){var a=a.split("!"),b=x.length,c=a.pop(),d=a.length,c={url:c,origUrl:c,prefixes:a},e,f,g;for(f=0;f<d;f++)g=a[f].split("="),(e=z[g.shift()])&&(c=e(c,g));for(f=0;f<b;f++)c=x[f](c);return c}function g(a,e,f,g,h){var i=b(a),j=i.autoCallback;i.url.split(".").pop().split("?").shift(),i.bypass||(e&&(e=d(e)?e:e[a]||e[g]||e[a.split("/").pop().split("?")[0]]),i.instead?i.instead(a,e,f,g,h):(y[i.url]?i.noexec=!0:y[i.url]=1,f.load(i.url,i.forceCSS||!i.forceJS&&"css"==i.url.split(".").pop().split("?").shift()?"c":c,i.noexec,i.attrs,i.timeout),(d(e)||d(j))&&f.load(function(){k(),e&&e(i.origUrl,h,g),j&&j(i.origUrl,h,g),y[i.url]=2})))}function h(a,b){function c(a,c){if(a){if(e(a))c||(j=function(){var a=[].slice.call(arguments);k.apply(this,a),l()}),g(a,j,b,0,h);else if(Object(a)===a)for(n in m=function(){var b=0,c;for(c in a)a.hasOwnProperty(c)&&b++;return b}(),a)a.hasOwnProperty(n)&&(!c&&!--m&&(d(j)?j=function(){var a=[].slice.call(arguments);k.apply(this,a),l()}:j[n]=function(a){return function(){var b=[].slice.call(arguments);a&&a.apply(this,b),l()}}(k[n])),g(a[n],j,b,n,h))}else!c&&l()}var h=!!a.test,i=a.load||a.both,j=a.callback||f,k=j,l=a.complete||f,m,n;c(h?a.yep:a.nope,!!i),i&&c(i)}var i,j,l=this.yepnope.loader;if(e(a))g(a,0,l,0);else if(w(a))for(i=0;i<a.length;i++)j=a[i],e(j)?g(j,0,l,0):w(j)?B(j):Object(j)===j&&h(j,l);else Object(a)===a&&h(a,l)},B.addPrefix=function(a,b){z[a]=b},B.addFilter=function(a){x.push(a)},B.errorTimeout=1e4,null==b.readyState&&b.addEventListener&&(b.readyState="loading",b.addEventListener("DOMContentLoaded",A=function(){b.removeEventListener("DOMContentLoaded",A,0),b.readyState="complete"},0)),a.yepnope=k(),a.yepnope.executeStack=h,a.yepnope.injectJs=function(a,c,d,e,i,j){var k=b.createElement("script"),l,o,e=e||B.errorTimeout;k.src=a;for(o in d)k.setAttribute(o,d[o]);c=j?h:c||f,k.onreadystatechange=k.onload=function(){!l&&g(k.readyState)&&(l=1,c(),k.onload=k.onreadystatechange=null)},m(function(){l||(l=1,c(1))},e),i?k.onload():n.parentNode.insertBefore(k,n)},a.yepnope.injectCss=function(a,c,d,e,g,i){var e=b.createElement("link"),j,c=i?h:c||f;e.href=a,e.rel="stylesheet",e.type="text/css";for(j in d)e.setAttribute(j,d[j]);g||(n.parentNode.insertBefore(e,n),m(c,0))}}(this,document),Modernizr.load=function(){yepnope.apply(window,[].slice.call(arguments,0))};
\ No newline at end of file
diff --git a/js/navbar-ontop.js b/js/navbar-ontop.js
new file mode 100644
index 0000000..ad306a4
--- /dev/null
+++ b/js/navbar-ontop.js
@@ -0,0 +1,43 @@
+/**
+ * navbar-ontop.js 1.0.0
+ * Add .navbar-ontop class to navbar when the page is scrolled to top
+ * Make sure to add this script to the <head> of page to avoid flickering on load
+ */
+
+(function() {
+
+	var className = "navbar-ontop"
+	
+	// we start hidden, to avoid flickering
+	document.write("<style id='temp-navbar-ontop'>.navbar {opacity:0; transition: none !important}</style>")
+
+	function update() {
+		// toggle className based on the scrollTop property of document
+		var nav = document.querySelector(".navbar")
+
+		if (window.scrollY > 15)
+			nav.classList.remove(className)
+		else
+			nav.classList.add(className) 
+	}
+
+	document.addEventListener("DOMContentLoaded", function(event) {
+		$(window).on('show.bs.collapse', function (e) {
+			$(e.target).closest("." + className).removeClass(className);
+		})
+
+		$(window).on('hidden.bs.collapse', function (e) {
+			update()
+		})
+		update()
+		// still hacking to avoid flickering
+		setTimeout(function() {
+			document.querySelector("#temp-navbar-ontop").remove()
+		})
+  	});
+
+	window.addEventListener("scroll", function() {
+		update()			
+	})
+
+})();
\ No newline at end of file
diff --git a/js/script.js b/js/script.js
deleted file mode 100644
index 99d44fb..0000000
--- a/js/script.js
+++ /dev/null
@@ -1,78 +0,0 @@
-$(document).ready(function() {
-
-        // Transition effect for navbar and back-to-top icon
-        $(window).scroll(function() {
-          // checks if window is scrolled more than 500px, adds/removes solid class
-          if($(this).scrollTop() > 550) { 
-              $('.navbar').addClass('solid');
-              $('.back-to-top').addClass('visible'); 
-          } else {
-              $('.navbar').removeClass('solid');
-              $('.back-to-top').removeClass('visible');  
-          }
-
-        });
-		
-		$('.phone-container').hover(function() {
-		  $('.space').toggleClass('space-hover');
-		  $('.phone-side').toggleClass('phone-side-hover');
-		  $('.phone-front').toggleClass('phone-front-hover');
-		});
-
-		$("[class^='figure-']")
-		  .within({
-			  distance: 1000,
-			  cord: 'center'
-			},
-			function(distance, ele, event) {
-			  ele.style.transform = 'scale(' + (7000 - distance) / 7000 + ')';
-			}
-		  )
-
-        // Scrolling effect for Arrow icons
-        $("#scrollIcon").click(function(e) {
-            e.preventDefault();
-            $.scrollTo($("#about"), 1000);
-        });
-        $("#scrollPortfolio").click(function(e) {
-            e.preventDefault();
-            $.scrollTo($("#portfolio"), 1000);
-        });
-        $("#nav-about").click(function(e) {
-            e.preventDefault();
-            $.scrollTo($("#about"), 1000);
-        });
-        $("#nav-portfolio").click(function(e) {
-            e.preventDefault();
-            $.scrollTo($("#portfolio"), 1000);
-        });
-        $("#nav-contact").click(function(e) {
-            e.preventDefault();
-            $.scrollTo($("#contact"), 1000);
-        });
-		$("#nav-expenses").click(function(e) {
-            e.preventDefault();
-            $.scrollTo($("#expenses"), 1000);
-        });
-        $("#nav-team").click(function(e) {
-            e.preventDefault
-            $.scrollTo($("#team"), 1000);
-        });
-		$("#nav-family").click(function(e) {
-            e.preventDefault
-            $.scrollTo($("#family"), 1000);
-        });
-		$("#nav-family2").click(function(e) {
-            e.preventDefault
-            $.scrollTo($("#family2"), 1000);
-        });
-		$("#nav-family-lt").click(function(e) {
-            e.preventDefault
-            $.scrollTo($("#family-lt"), 1000);
-        });
-        $(".navbar-brand").click(function(e) {
-            e.preventDefault();
-            $.scrollTo(0, 1000);
-        });
-          
-      });
\ No newline at end of file
diff --git a/js/smooth-scroll.js b/js/smooth-scroll.js
new file mode 100644
index 0000000..9e66e55
--- /dev/null
+++ b/js/smooth-scroll.js
@@ -0,0 +1,49 @@
+/**
+ * smooth-scroll.js 1.0.0
+ * Make your page scrolling smooth
+ * Requires JQuery - Does not work with JQuery slim 
+ * Based on https://css-tricks.com/snippets/jquery/smooth-scrolling/
+ */
+
+(function() {
+
+  var duration = 500
+
+  $('a[href*="#"]')
+    // Remove links that don't actually link to anything
+    .not('[href="#"]')
+    .click(function(event) {
+      // On-page links
+      if (
+        location.pathname.replace(/^\//, '') == this.pathname.replace(/^\//, '') 
+        && 
+        location.hostname == this.hostname
+      ) {
+        // Figure out element to scroll to
+        var target = $(this.hash);
+        target = target.length ? target : $('[name=' + this.hash.slice(1) + ']')
+        // Does a scroll target exist?
+        if (target.length) {
+          // Only prevent default if animation is actually gonna happen
+          event.preventDefault()
+          
+          $('html, body').animate({
+            scrollTop: target.offset().top
+          },
+          duration, function() {
+            // Callback after animation
+            // Must change focus!
+            var $target = $(target);
+            $target.focus();
+            if ($target.is(":focus")) { // Checking if the target was focused
+              return false;
+            } else {
+              $target.attr('tabindex','-1'); // Adding tabindex for elements not focusable
+              $target.focus(); // Set focus again
+            };
+          });
+        }
+      }
+    });
+
+})();
diff --git a/neon.css b/neon.css
new file mode 100644
index 0000000..5ba6423
--- /dev/null
+++ b/neon.css
@@ -0,0 +1,6578 @@
+/*!
+* Neon Pingendo template (https://templates.pingendo.com)
+* Based on: Bootstrap v4.1.3 (https://getbootstrap.com)
+* Copyright 2014-2018 Pingendo (https://pingendo.com)
+*/
+@import url("https://fonts.googleapis.com/css?family=Montserrat:200");
+/*!
+ * Bootstrap v4.1.3 (https://getbootstrap.com/)
+ * Copyright 2011-2018 The Bootstrap Authors
+ * Copyright 2011-2018 Twitter, Inc.
+ * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
+ */
+:root {
+  --blue: #007bff;
+  --indigo: #6610f2;
+  --purple: #6f42c1;
+  --pink: #e83e8c;
+  --red: #dc3545;
+  --orange: #fd7e14;
+  --yellow: #ffc107;
+  --green: #28a745;
+  --teal: #20c997;
+  --cyan: #17a2b8;
+  --white: #fff;
+  --gray: #6c757d;
+  --gray-dark: #343a40;
+  --primary: #0080ff;
+  --secondary: #0060aa;
+  --success: #28a745;
+  --info: #00aaff;
+  --warning: #ffc107;
+  --danger: #dc3545;
+  --light: #f3f3f3;
+  --dark: #303030;
+  --breakpoint-xs: 0;
+  --breakpoint-sm: 576px;
+  --breakpoint-md: 768px;
+  --breakpoint-lg: 992px;
+  --breakpoint-xl: 1200px;
+  --font-family-sans-serif: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";
+  --font-family-monospace: SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace; }
+
+*,
+*::before,
+*::after {
+  box-sizing: border-box; }
+
+html {
+  font-family: sans-serif;
+  line-height: 1.15;
+  -webkit-text-size-adjust: 100%;
+  -ms-text-size-adjust: 100%;
+  -ms-overflow-style: scrollbar;
+  -webkit-tap-highlight-color: rgba(0, 0, 0, 0); }
+
+@-ms-viewport {
+  width: device-width; }
+
+article, aside, figcaption, figure, footer, header, hgroup, main, nav, section {
+  display: block; }
+
+body {
+  margin: 0;
+  font-family: Montserrat;
+  font-size: 0.85rem;
+  font-weight: 200;
+  line-height: 1.8;
+  color: #efefef;
+  text-align: left;
+  background-color: #111; }
+
+[tabindex="-1"]:focus {
+  outline: 0 !important; }
+
+hr {
+  box-sizing: content-box;
+  height: 0;
+  overflow: visible; }
+
+h1, h2, h3, h4, h5, h6 {
+  margin-top: 0;
+  margin-bottom: 0.75rem; }
+
+p {
+  margin-top: 0;
+  margin-bottom: 1rem; }
+
+abbr[title],
+abbr[data-original-title] {
+  text-decoration: underline;
+  -webkit-text-decoration: underline dotted;
+          text-decoration: underline dotted;
+  cursor: help;
+  border-bottom: 0; }
+
+address {
+  margin-bottom: 1rem;
+  font-style: normal;
+  line-height: inherit; }
+
+ol,
+ul,
+dl {
+  margin-top: 0;
+  margin-bottom: 1rem; }
+
+ol ol,
+ul ul,
+ol ul,
+ul ol {
+  margin-bottom: 0; }
+
+dt {
+  font-weight: 700; }
+
+dd {
+  margin-bottom: .5rem;
+  margin-left: 0; }
+
+blockquote {
+  margin: 0 0 1rem; }
+
+dfn {
+  font-style: italic; }
+
+b,
+strong {
+  font-weight: bolder; }
+
+small {
+  font-size: 80%; }
+
+sub,
+sup {
+  position: relative;
+  font-size: 75%;
+  line-height: 0;
+  vertical-align: baseline; }
+
+sub {
+  bottom: -.25em; }
+
+sup {
+  top: -.5em; }
+
+a {
+  color: #0080ff;
+  text-decoration: none;
+  background-color: transparent;
+  -webkit-text-decoration-skip: objects; }
+  a:hover {
+    color: white;
+    text-decoration: none; }
+
+a:not([href]):not([tabindex]) {
+  color: inherit;
+  text-decoration: none; }
+  a:not([href]):not([tabindex]):hover, a:not([href]):not([tabindex]):focus {
+    color: inherit;
+    text-decoration: none; }
+  a:not([href]):not([tabindex]):focus {
+    outline: 0; }
+
+pre,
+code,
+kbd,
+samp {
+  font-family: SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;
+  font-size: 1em; }
+
+pre {
+  margin-top: 0;
+  margin-bottom: 1rem;
+  overflow: auto;
+  -ms-overflow-style: scrollbar; }
+
+figure {
+  margin: 0 0 1rem; }
+
+img {
+  vertical-align: middle;
+  border-style: none; }
+
+svg {
+  overflow: hidden;
+  vertical-align: middle; }
+
+table {
+  border-collapse: collapse; }
+
+caption {
+  padding-top: 0.75rem;
+  padding-bottom: 0.75rem;
+  color: #6c757d;
+  text-align: left;
+  caption-side: bottom; }
+
+th {
+  text-align: inherit; }
+
+label {
+  display: inline-block;
+  margin-bottom: 0.5rem; }
+
+button {
+  border-radius: 0; }
+
+button:focus {
+  outline: 1px dotted;
+  outline: 5px auto -webkit-focus-ring-color; }
+
+input,
+button,
+select,
+optgroup,
+textarea {
+  margin: 0;
+  font-family: inherit;
+  font-size: inherit;
+  line-height: inherit; }
+
+button,
+input {
+  overflow: visible; }
+
+button,
+select {
+  text-transform: none; }
+
+button,
+html [type="button"],
+[type="reset"],
+[type="submit"] {
+  -webkit-appearance: button; }
+
+button::-moz-focus-inner,
+[type="button"]::-moz-focus-inner,
+[type="reset"]::-moz-focus-inner,
+[type="submit"]::-moz-focus-inner {
+  padding: 0;
+  border-style: none; }
+
+input[type="radio"],
+input[type="checkbox"] {
+  box-sizing: border-box;
+  padding: 0; }
+
+input[type="date"],
+input[type="time"],
+input[type="datetime-local"],
+input[type="month"] {
+  -webkit-appearance: listbox; }
+
+textarea {
+  overflow: auto;
+  resize: vertical; }
+
+fieldset {
+  min-width: 0;
+  padding: 0;
+  margin: 0;
+  border: 0; }
+
+legend {
+  display: block;
+  width: 100%;
+  max-width: 100%;
+  padding: 0;
+  margin-bottom: .5rem;
+  font-size: 1.5rem;
+  line-height: inherit;
+  color: inherit;
+  white-space: normal; }
+
+progress {
+  vertical-align: baseline; }
+
+[type="number"]::-webkit-inner-spin-button,
+[type="number"]::-webkit-outer-spin-button {
+  height: auto; }
+
+[type="search"] {
+  outline-offset: -2px;
+  -webkit-appearance: none; }
+
+[type="search"]::-webkit-search-cancel-button,
+[type="search"]::-webkit-search-decoration {
+  -webkit-appearance: none; }
+
+::-webkit-file-upload-button {
+  font: inherit;
+  -webkit-appearance: button; }
+
+output {
+  display: inline-block; }
+
+summary {
+  display: list-item;
+  cursor: pointer; }
+
+template {
+  display: none; }
+
+[hidden] {
+  display: none !important; }
+
+h1, h2, h3, h4, h5, h6,
+.h1, .h2, .h3, .h4, .h5, .h6 {
+  margin-bottom: 0.75rem;
+  font-family: Montserrat;
+  font-weight: 500;
+  line-height: 1.2;
+  color: inherit; }
+
+h1, .h1 {
+  font-size: 2.125rem; }
+
+h2, .h2 {
+  font-size: 1.7rem; }
+
+h3, .h3 {
+  font-size: 1.4875rem; }
+
+h4, .h4 {
+  font-size: 1.275rem; }
+
+h5, .h5 {
+  font-size: 1.0625rem; }
+
+h6, .h6 {
+  font-size: 0.85rem; }
+
+.lead {
+  font-size: 1.3rem;
+  font-weight: 300; }
+
+.display-1 {
+  font-size: 6rem;
+  font-weight: 300;
+  line-height: 1.2; }
+
+.display-2 {
+  font-size: 5.5rem;
+  font-weight: 300;
+  line-height: 1.2; }
+
+.display-3 {
+  font-size: 4.5rem;
+  font-weight: 300;
+  line-height: 1.2; }
+
+.display-4 {
+  font-size: 3.5rem;
+  font-weight: 300;
+  line-height: 1.2; }
+
+hr {
+  margin-top: 1.5rem;
+  margin-bottom: 1.5rem;
+  border: 0;
+  border-top: 1px solid rgba(0, 128, 255, 0.75); }
+
+small,
+.small {
+  font-size: 80%;
+  font-weight: 200; }
+
+mark,
+.mark {
+  padding: 0.2em;
+  background-color: #fcf8e3; }
+
+.list-unstyled {
+  padding-left: 0;
+  list-style: none; }
+
+.list-inline {
+  padding-left: 0;
+  list-style: none; }
+
+.list-inline-item {
+  display: inline-block; }
+  .list-inline-item:not(:last-child) {
+    margin-right: 0.5rem; }
+
+.initialism {
+  font-size: 90%;
+  text-transform: uppercase; }
+
+.blockquote {
+  margin-bottom: 1.5rem;
+  font-size: 1.0625rem; }
+
+.blockquote-footer {
+  display: block;
+  font-size: 80%;
+  color: #6c757d; }
+  .blockquote-footer::before {
+    content: "\2014 \00A0"; }
+
+.img-fluid {
+  max-width: 100%;
+  height: auto; }
+
+.img-thumbnail {
+  padding: 0.25rem;
+  background-color: #111;
+  border: 1px solid #0080ff;
+  border-radius: 0.75rem;
+  max-width: 100%;
+  height: auto; }
+
+.figure {
+  display: inline-block; }
+
+.figure-img {
+  margin-bottom: 0.75rem;
+  line-height: 1; }
+
+.figure-caption {
+  font-size: 90%;
+  color: #6c757d; }
+
+code {
+  font-size: 87.5%;
+  color: #e83e8c;
+  word-break: break-word; }
+  a > code {
+    color: inherit; }
+
+kbd {
+  padding: 0.2rem 0.4rem;
+  font-size: 87.5%;
+  color: #fff;
+  background-color: #212529;
+  border-radius: 0.3rem; }
+  kbd kbd {
+    padding: 0;
+    font-size: 100%;
+    font-weight: 700; }
+
+pre {
+  display: block;
+  font-size: 87.5%;
+  color: #212529; }
+  pre code {
+    font-size: inherit;
+    color: inherit;
+    word-break: normal; }
+
+.pre-scrollable {
+  max-height: 340px;
+  overflow-y: scroll; }
+
+.container {
+  width: 100%;
+  padding-right: 15px;
+  padding-left: 15px;
+  margin-right: auto;
+  margin-left: auto; }
+  @media (min-width: 576px) {
+    .container {
+      max-width: 540px; } }
+  @media (min-width: 768px) {
+    .container {
+      max-width: 720px; } }
+  @media (min-width: 992px) {
+    .container {
+      max-width: 960px; } }
+  @media (min-width: 1200px) {
+    .container {
+      max-width: 1140px; } }
+
+.container-fluid {
+  width: 100%;
+  padding-right: 15px;
+  padding-left: 15px;
+  margin-right: auto;
+  margin-left: auto; }
+
+.row {
+  display: flex;
+  flex-wrap: wrap;
+  margin-right: -15px;
+  margin-left: -15px; }
+
+.no-gutters {
+  margin-right: 0;
+  margin-left: 0; }
+  .no-gutters > .col,
+  .no-gutters > [class*="col-"] {
+    padding-right: 0;
+    padding-left: 0; }
+
+.col-1, .col-2, .col-3, .col-4, .col-5, .col-6, .col-7, .col-8, .col-9, .col-10, .col-11, .col-12, .col,
+.col-auto, .col-sm-1, .col-sm-2, .col-sm-3, .col-sm-4, .col-sm-5, .col-sm-6, .col-sm-7, .col-sm-8, .col-sm-9, .col-sm-10, .col-sm-11, .col-sm-12, .col-sm,
+.col-sm-auto, .col-md-1, .col-md-2, .col-md-3, .col-md-4, .col-md-5, .col-md-6, .col-md-7, .col-md-8, .col-md-9, .col-md-10, .col-md-11, .col-md-12, .col-md,
+.col-md-auto, .col-lg-1, .col-lg-2, .col-lg-3, .col-lg-4, .col-lg-5, .col-lg-6, .col-lg-7, .col-lg-8, .col-lg-9, .col-lg-10, .col-lg-11, .col-lg-12, .col-lg,
+.col-lg-auto, .col-xl-1, .col-xl-2, .col-xl-3, .col-xl-4, .col-xl-5, .col-xl-6, .col-xl-7, .col-xl-8, .col-xl-9, .col-xl-10, .col-xl-11, .col-xl-12, .col-xl,
+.col-xl-auto {
+  position: relative;
+  width: 100%;
+  min-height: 1px;
+  padding-right: 15px;
+  padding-left: 15px; }
+
+.col {
+  flex-basis: 0;
+  flex-grow: 1;
+  max-width: 100%; }
+
+.col-auto {
+  flex: 0 0 auto;
+  width: auto;
+  max-width: none; }
+
+.col-1 {
+  flex: 0 0 8.33333%;
+  max-width: 8.33333%; }
+
+.col-2 {
+  flex: 0 0 16.66667%;
+  max-width: 16.66667%; }
+
+.col-3 {
+  flex: 0 0 25%;
+  max-width: 25%; }
+
+.col-4 {
+  flex: 0 0 33.33333%;
+  max-width: 33.33333%; }
+
+.col-5 {
+  flex: 0 0 41.66667%;
+  max-width: 41.66667%; }
+
+.col-6 {
+  flex: 0 0 50%;
+  max-width: 50%; }
+
+.col-7 {
+  flex: 0 0 58.33333%;
+  max-width: 58.33333%; }
+
+.col-8 {
+  flex: 0 0 66.66667%;
+  max-width: 66.66667%; }
+
+.col-9 {
+  flex: 0 0 75%;
+  max-width: 75%; }
+
+.col-10 {
+  flex: 0 0 83.33333%;
+  max-width: 83.33333%; }
+
+.col-11 {
+  flex: 0 0 91.66667%;
+  max-width: 91.66667%; }
+
+.col-12 {
+  flex: 0 0 100%;
+  max-width: 100%; }
+
+.order-first {
+  order: -1; }
+
+.order-last {
+  order: 13; }
+
+.order-0 {
+  order: 0; }
+
+.order-1 {
+  order: 1; }
+
+.order-2 {
+  order: 2; }
+
+.order-3 {
+  order: 3; }
+
+.order-4 {
+  order: 4; }
+
+.order-5 {
+  order: 5; }
+
+.order-6 {
+  order: 6; }
+
+.order-7 {
+  order: 7; }
+
+.order-8 {
+  order: 8; }
+
+.order-9 {
+  order: 9; }
+
+.order-10 {
+  order: 10; }
+
+.order-11 {
+  order: 11; }
+
+.order-12 {
+  order: 12; }
+
+.offset-1 {
+  margin-left: 8.33333%; }
+
+.offset-2 {
+  margin-left: 16.66667%; }
+
+.offset-3 {
+  margin-left: 25%; }
+
+.offset-4 {
+  margin-left: 33.33333%; }
+
+.offset-5 {
+  margin-left: 41.66667%; }
+
+.offset-6 {
+  margin-left: 50%; }
+
+.offset-7 {
+  margin-left: 58.33333%; }
+
+.offset-8 {
+  margin-left: 66.66667%; }
+
+.offset-9 {
+  margin-left: 75%; }
+
+.offset-10 {
+  margin-left: 83.33333%; }
+
+.offset-11 {
+  margin-left: 91.66667%; }
+
+@media (min-width: 576px) {
+  .col-sm {
+    flex-basis: 0;
+    flex-grow: 1;
+    max-width: 100%; }
+  .col-sm-auto {
+    flex: 0 0 auto;
+    width: auto;
+    max-width: none; }
+  .col-sm-1 {
+    flex: 0 0 8.33333%;
+    max-width: 8.33333%; }
+  .col-sm-2 {
+    flex: 0 0 16.66667%;
+    max-width: 16.66667%; }
+  .col-sm-3 {
+    flex: 0 0 25%;
+    max-width: 25%; }
+  .col-sm-4 {
+    flex: 0 0 33.33333%;
+    max-width: 33.33333%; }
+  .col-sm-5 {
+    flex: 0 0 41.66667%;
+    max-width: 41.66667%; }
+  .col-sm-6 {
+    flex: 0 0 50%;
+    max-width: 50%; }
+  .col-sm-7 {
+    flex: 0 0 58.33333%;
+    max-width: 58.33333%; }
+  .col-sm-8 {
+    flex: 0 0 66.66667%;
+    max-width: 66.66667%; }
+  .col-sm-9 {
+    flex: 0 0 75%;
+    max-width: 75%; }
+  .col-sm-10 {
+    flex: 0 0 83.33333%;
+    max-width: 83.33333%; }
+  .col-sm-11 {
+    flex: 0 0 91.66667%;
+    max-width: 91.66667%; }
+  .col-sm-12 {
+    flex: 0 0 100%;
+    max-width: 100%; }
+  .order-sm-first {
+    order: -1; }
+  .order-sm-last {
+    order: 13; }
+  .order-sm-0 {
+    order: 0; }
+  .order-sm-1 {
+    order: 1; }
+  .order-sm-2 {
+    order: 2; }
+  .order-sm-3 {
+    order: 3; }
+  .order-sm-4 {
+    order: 4; }
+  .order-sm-5 {
+    order: 5; }
+  .order-sm-6 {
+    order: 6; }
+  .order-sm-7 {
+    order: 7; }
+  .order-sm-8 {
+    order: 8; }
+  .order-sm-9 {
+    order: 9; }
+  .order-sm-10 {
+    order: 10; }
+  .order-sm-11 {
+    order: 11; }
+  .order-sm-12 {
+    order: 12; }
+  .offset-sm-0 {
+    margin-left: 0; }
+  .offset-sm-1 {
+    margin-left: 8.33333%; }
+  .offset-sm-2 {
+    margin-left: 16.66667%; }
+  .offset-sm-3 {
+    margin-left: 25%; }
+  .offset-sm-4 {
+    margin-left: 33.33333%; }
+  .offset-sm-5 {
+    margin-left: 41.66667%; }
+  .offset-sm-6 {
+    margin-left: 50%; }
+  .offset-sm-7 {
+    margin-left: 58.33333%; }
+  .offset-sm-8 {
+    margin-left: 66.66667%; }
+  .offset-sm-9 {
+    margin-left: 75%; }
+  .offset-sm-10 {
+    margin-left: 83.33333%; }
+  .offset-sm-11 {
+    margin-left: 91.66667%; } }
+
+@media (min-width: 768px) {
+  .col-md {
+    flex-basis: 0;
+    flex-grow: 1;
+    max-width: 100%; }
+  .col-md-auto {
+    flex: 0 0 auto;
+    width: auto;
+    max-width: none; }
+  .col-md-1 {
+    flex: 0 0 8.33333%;
+    max-width: 8.33333%; }
+  .col-md-2 {
+    flex: 0 0 16.66667%;
+    max-width: 16.66667%; }
+  .col-md-3 {
+    flex: 0 0 25%;
+    max-width: 25%; }
+  .col-md-4 {
+    flex: 0 0 33.33333%;
+    max-width: 33.33333%; }
+  .col-md-5 {
+    flex: 0 0 41.66667%;
+    max-width: 41.66667%; }
+  .col-md-6 {
+    flex: 0 0 50%;
+    max-width: 50%; }
+  .col-md-7 {
+    flex: 0 0 58.33333%;
+    max-width: 58.33333%; }
+  .col-md-8 {
+    flex: 0 0 66.66667%;
+    max-width: 66.66667%; }
+  .col-md-9 {
+    flex: 0 0 75%;
+    max-width: 75%; }
+  .col-md-10 {
+    flex: 0 0 83.33333%;
+    max-width: 83.33333%; }
+  .col-md-11 {
+    flex: 0 0 91.66667%;
+    max-width: 91.66667%; }
+  .col-md-12 {
+    flex: 0 0 100%;
+    max-width: 100%; }
+  .order-md-first {
+    order: -1; }
+  .order-md-last {
+    order: 13; }
+  .order-md-0 {
+    order: 0; }
+  .order-md-1 {
+    order: 1; }
+  .order-md-2 {
+    order: 2; }
+  .order-md-3 {
+    order: 3; }
+  .order-md-4 {
+    order: 4; }
+  .order-md-5 {
+    order: 5; }
+  .order-md-6 {
+    order: 6; }
+  .order-md-7 {
+    order: 7; }
+  .order-md-8 {
+    order: 8; }
+  .order-md-9 {
+    order: 9; }
+  .order-md-10 {
+    order: 10; }
+  .order-md-11 {
+    order: 11; }
+  .order-md-12 {
+    order: 12; }
+  .offset-md-0 {
+    margin-left: 0; }
+  .offset-md-1 {
+    margin-left: 8.33333%; }
+  .offset-md-2 {
+    margin-left: 16.66667%; }
+  .offset-md-3 {
+    margin-left: 25%; }
+  .offset-md-4 {
+    margin-left: 33.33333%; }
+  .offset-md-5 {
+    margin-left: 41.66667%; }
+  .offset-md-6 {
+    margin-left: 50%; }
+  .offset-md-7 {
+    margin-left: 58.33333%; }
+  .offset-md-8 {
+    margin-left: 66.66667%; }
+  .offset-md-9 {
+    margin-left: 75%; }
+  .offset-md-10 {
+    margin-left: 83.33333%; }
+  .offset-md-11 {
+    margin-left: 91.66667%; } }
+
+@media (min-width: 992px) {
+  .col-lg {
+    flex-basis: 0;
+    flex-grow: 1;
+    max-width: 100%; }
+  .col-lg-auto {
+    flex: 0 0 auto;
+    width: auto;
+    max-width: none; }
+  .col-lg-1 {
+    flex: 0 0 8.33333%;
+    max-width: 8.33333%; }
+  .col-lg-2 {
+    flex: 0 0 16.66667%;
+    max-width: 16.66667%; }
+  .col-lg-3 {
+    flex: 0 0 25%;
+    max-width: 25%; }
+  .col-lg-4 {
+    flex: 0 0 33.33333%;
+    max-width: 33.33333%; }
+  .col-lg-5 {
+    flex: 0 0 41.66667%;
+    max-width: 41.66667%; }
+  .col-lg-6 {
+    flex: 0 0 50%;
+    max-width: 50%; }
+  .col-lg-7 {
+    flex: 0 0 58.33333%;
+    max-width: 58.33333%; }
+  .col-lg-8 {
+    flex: 0 0 66.66667%;
+    max-width: 66.66667%; }
+  .col-lg-9 {
+    flex: 0 0 75%;
+    max-width: 75%; }
+  .col-lg-10 {
+    flex: 0 0 83.33333%;
+    max-width: 83.33333%; }
+  .col-lg-11 {
+    flex: 0 0 91.66667%;
+    max-width: 91.66667%; }
+  .col-lg-12 {
+    flex: 0 0 100%;
+    max-width: 100%; }
+  .order-lg-first {
+    order: -1; }
+  .order-lg-last {
+    order: 13; }
+  .order-lg-0 {
+    order: 0; }
+  .order-lg-1 {
+    order: 1; }
+  .order-lg-2 {
+    order: 2; }
+  .order-lg-3 {
+    order: 3; }
+  .order-lg-4 {
+    order: 4; }
+  .order-lg-5 {
+    order: 5; }
+  .order-lg-6 {
+    order: 6; }
+  .order-lg-7 {
+    order: 7; }
+  .order-lg-8 {
+    order: 8; }
+  .order-lg-9 {
+    order: 9; }
+  .order-lg-10 {
+    order: 10; }
+  .order-lg-11 {
+    order: 11; }
+  .order-lg-12 {
+    order: 12; }
+  .offset-lg-0 {
+    margin-left: 0; }
+  .offset-lg-1 {
+    margin-left: 8.33333%; }
+  .offset-lg-2 {
+    margin-left: 16.66667%; }
+  .offset-lg-3 {
+    margin-left: 25%; }
+  .offset-lg-4 {
+    margin-left: 33.33333%; }
+  .offset-lg-5 {
+    margin-left: 41.66667%; }
+  .offset-lg-6 {
+    margin-left: 50%; }
+  .offset-lg-7 {
+    margin-left: 58.33333%; }
+  .offset-lg-8 {
+    margin-left: 66.66667%; }
+  .offset-lg-9 {
+    margin-left: 75%; }
+  .offset-lg-10 {
+    margin-left: 83.33333%; }
+  .offset-lg-11 {
+    margin-left: 91.66667%; } }
+
+@media (min-width: 1200px) {
+  .col-xl {
+    flex-basis: 0;
+    flex-grow: 1;
+    max-width: 100%; }
+  .col-xl-auto {
+    flex: 0 0 auto;
+    width: auto;
+    max-width: none; }
+  .col-xl-1 {
+    flex: 0 0 8.33333%;
+    max-width: 8.33333%; }
+  .col-xl-2 {
+    flex: 0 0 16.66667%;
+    max-width: 16.66667%; }
+  .col-xl-3 {
+    flex: 0 0 25%;
+    max-width: 25%; }
+  .col-xl-4 {
+    flex: 0 0 33.33333%;
+    max-width: 33.33333%; }
+  .col-xl-5 {
+    flex: 0 0 41.66667%;
+    max-width: 41.66667%; }
+  .col-xl-6 {
+    flex: 0 0 50%;
+    max-width: 50%; }
+  .col-xl-7 {
+    flex: 0 0 58.33333%;
+    max-width: 58.33333%; }
+  .col-xl-8 {
+    flex: 0 0 66.66667%;
+    max-width: 66.66667%; }
+  .col-xl-9 {
+    flex: 0 0 75%;
+    max-width: 75%; }
+  .col-xl-10 {
+    flex: 0 0 83.33333%;
+    max-width: 83.33333%; }
+  .col-xl-11 {
+    flex: 0 0 91.66667%;
+    max-width: 91.66667%; }
+  .col-xl-12 {
+    flex: 0 0 100%;
+    max-width: 100%; }
+  .order-xl-first {
+    order: -1; }
+  .order-xl-last {
+    order: 13; }
+  .order-xl-0 {
+    order: 0; }
+  .order-xl-1 {
+    order: 1; }
+  .order-xl-2 {
+    order: 2; }
+  .order-xl-3 {
+    order: 3; }
+  .order-xl-4 {
+    order: 4; }
+  .order-xl-5 {
+    order: 5; }
+  .order-xl-6 {
+    order: 6; }
+  .order-xl-7 {
+    order: 7; }
+  .order-xl-8 {
+    order: 8; }
+  .order-xl-9 {
+    order: 9; }
+  .order-xl-10 {
+    order: 10; }
+  .order-xl-11 {
+    order: 11; }
+  .order-xl-12 {
+    order: 12; }
+  .offset-xl-0 {
+    margin-left: 0; }
+  .offset-xl-1 {
+    margin-left: 8.33333%; }
+  .offset-xl-2 {
+    margin-left: 16.66667%; }
+  .offset-xl-3 {
+    margin-left: 25%; }
+  .offset-xl-4 {
+    margin-left: 33.33333%; }
+  .offset-xl-5 {
+    margin-left: 41.66667%; }
+  .offset-xl-6 {
+    margin-left: 50%; }
+  .offset-xl-7 {
+    margin-left: 58.33333%; }
+  .offset-xl-8 {
+    margin-left: 66.66667%; }
+  .offset-xl-9 {
+    margin-left: 75%; }
+  .offset-xl-10 {
+    margin-left: 83.33333%; }
+  .offset-xl-11 {
+    margin-left: 91.66667%; } }
+
+.table {
+  width: 100%;
+  margin-bottom: 1.5rem;
+  background-color: transparent; }
+  .table th,
+  .table td {
+    padding: 0.75rem;
+    vertical-align: top;
+    border-top: 1px solid #303030; }
+  .table thead th {
+    vertical-align: bottom;
+    border-bottom: 2px solid #303030; }
+  .table tbody + tbody {
+    border-top: 2px solid #303030; }
+  .table .table {
+    background-color: #111; }
+
+.table-sm th,
+.table-sm td {
+  padding: 0.3rem; }
+
+.table-bordered {
+  border: 1px solid #303030; }
+  .table-bordered th,
+  .table-bordered td {
+    border: 1px solid #303030; }
+  .table-bordered thead th,
+  .table-bordered thead td {
+    border-bottom-width: 2px; }
+
+.table-borderless th,
+.table-borderless td,
+.table-borderless thead th,
+.table-borderless tbody + tbody {
+  border: 0; }
+
+.table-striped tbody tr:nth-of-type(odd) {
+  background-color: rgba(243, 243, 243, 0.05); }
+
+.table-hover tbody tr:hover {
+  background-color: rgba(243, 243, 243, 0.1); }
+
+.table-primary,
+.table-primary > th,
+.table-primary > td {
+  background-color: #b8dbff; }
+
+.table-hover .table-primary:hover {
+  background-color: #9fceff; }
+  .table-hover .table-primary:hover > td,
+  .table-hover .table-primary:hover > th {
+    background-color: #9fceff; }
+
+.table-secondary,
+.table-secondary > th,
+.table-secondary > td {
+  background-color: #b8d2e7; }
+
+.table-hover .table-secondary:hover {
+  background-color: #a5c6e1; }
+  .table-hover .table-secondary:hover > td,
+  .table-hover .table-secondary:hover > th {
+    background-color: #a5c6e1; }
+
+.table-success,
+.table-success > th,
+.table-success > td {
+  background-color: #c3e6cb; }
+
+.table-hover .table-success:hover {
+  background-color: #b1dfbb; }
+  .table-hover .table-success:hover > td,
+  .table-hover .table-success:hover > th {
+    background-color: #b1dfbb; }
+
+.table-info,
+.table-info > th,
+.table-info > td {
+  background-color: #b8e7ff; }
+
+.table-hover .table-info:hover {
+  background-color: #9fdeff; }
+  .table-hover .table-info:hover > td,
+  .table-hover .table-info:hover > th {
+    background-color: #9fdeff; }
+
+.table-warning,
+.table-warning > th,
+.table-warning > td {
+  background-color: #ffeeba; }
+
+.table-hover .table-warning:hover {
+  background-color: #ffe8a1; }
+  .table-hover .table-warning:hover > td,
+  .table-hover .table-warning:hover > th {
+    background-color: #ffe8a1; }
+
+.table-danger,
+.table-danger > th,
+.table-danger > td {
+  background-color: #f5c6cb; }
+
+.table-hover .table-danger:hover {
+  background-color: #f1b0b7; }
+  .table-hover .table-danger:hover > td,
+  .table-hover .table-danger:hover > th {
+    background-color: #f1b0b7; }
+
+.table-light,
+.table-light > th,
+.table-light > td {
+  background-color: #fcfcfc; }
+
+.table-hover .table-light:hover {
+  background-color: #efefef; }
+  .table-hover .table-light:hover > td,
+  .table-hover .table-light:hover > th {
+    background-color: #efefef; }
+
+.table-dark,
+.table-dark > th,
+.table-dark > td {
+  background-color: #c5c5c5; }
+
+.table-hover .table-dark:hover {
+  background-color: #b8b8b8; }
+  .table-hover .table-dark:hover > td,
+  .table-hover .table-dark:hover > th {
+    background-color: #b8b8b8; }
+
+.table-active,
+.table-active > th,
+.table-active > td {
+  background-color: rgba(243, 243, 243, 0.1); }
+
+.table-hover .table-active:hover {
+  background-color: rgba(230, 230, 230, 0.1); }
+  .table-hover .table-active:hover > td,
+  .table-hover .table-active:hover > th {
+    background-color: rgba(230, 230, 230, 0.1); }
+
+.table .thead-dark th {
+  color: #111;
+  background-color: #212529;
+  border-color: #32383e; }
+
+.table .thead-light th {
+  color: #495057;
+  background-color: #e9ecef;
+  border-color: #303030; }
+
+.table-dark {
+  color: #111;
+  background-color: #212529; }
+  .table-dark th,
+  .table-dark td,
+  .table-dark thead th {
+    border-color: #32383e; }
+  .table-dark.table-bordered {
+    border: 0; }
+  .table-dark.table-striped tbody tr:nth-of-type(odd) {
+    background-color: rgba(255, 255, 255, 0.05); }
+  .table-dark.table-hover tbody tr:hover {
+    background-color: rgba(255, 255, 255, 0.075); }
+
+@media (max-width: 575.98px) {
+  .table-responsive-sm {
+    display: block;
+    width: 100%;
+    overflow-x: auto;
+    -webkit-overflow-scrolling: touch;
+    -ms-overflow-style: -ms-autohiding-scrollbar; }
+    .table-responsive-sm > .table-bordered {
+      border: 0; } }
+
+@media (max-width: 767.98px) {
+  .table-responsive-md {
+    display: block;
+    width: 100%;
+    overflow-x: auto;
+    -webkit-overflow-scrolling: touch;
+    -ms-overflow-style: -ms-autohiding-scrollbar; }
+    .table-responsive-md > .table-bordered {
+      border: 0; } }
+
+@media (max-width: 991.98px) {
+  .table-responsive-lg {
+    display: block;
+    width: 100%;
+    overflow-x: auto;
+    -webkit-overflow-scrolling: touch;
+    -ms-overflow-style: -ms-autohiding-scrollbar; }
+    .table-responsive-lg > .table-bordered {
+      border: 0; } }
+
+@media (max-width: 1199.98px) {
+  .table-responsive-xl {
+    display: block;
+    width: 100%;
+    overflow-x: auto;
+    -webkit-overflow-scrolling: touch;
+    -ms-overflow-style: -ms-autohiding-scrollbar; }
+    .table-responsive-xl > .table-bordered {
+      border: 0; } }
+
+.table-responsive {
+  display: block;
+  width: 100%;
+  overflow-x: auto;
+  -webkit-overflow-scrolling: touch;
+  -ms-overflow-style: -ms-autohiding-scrollbar; }
+  .table-responsive > .table-bordered {
+    border: 0; }
+
+.form-control {
+  display: block;
+  width: 100%;
+  height: calc(2.28rem + 2px);
+  padding: 0.375rem 1rem;
+  font-size: 0.85rem;
+  line-height: 1.8;
+  color: #495057;
+  background-color: #fff;
+  background-clip: padding-box;
+  border: 1px solid #ced4da;
+  border-radius: 0.75rem;
+  transition: border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out; }
+  @media screen and (prefers-reduced-motion: reduce) {
+    .form-control {
+      transition: none; } }
+  .form-control::-ms-expand {
+    background-color: transparent;
+    border: 0; }
+  .form-control:focus {
+    color: #495057;
+    background-color: #fff;
+    border-color: #80c0ff;
+    outline: 0;
+    box-shadow: 0 0 0 0.2rem rgba(0, 128, 255, 0.25); }
+  .form-control::-webkit-input-placeholder {
+    color: #6c757d;
+    opacity: 1; }
+  .form-control:-ms-input-placeholder {
+    color: #6c757d;
+    opacity: 1; }
+  .form-control::-ms-input-placeholder {
+    color: #6c757d;
+    opacity: 1; }
+  .form-control::placeholder {
+    color: #6c757d;
+    opacity: 1; }
+  .form-control:disabled, .form-control[readonly] {
+    background-color: #e9ecef;
+    opacity: 1; }
+
+select.form-control:focus::-ms-value {
+  color: #495057;
+  background-color: #fff; }
+
+.form-control-file,
+.form-control-range {
+  display: block;
+  width: 100%; }
+
+.col-form-label {
+  padding-top: calc(0.375rem + 1px);
+  padding-bottom: calc(0.375rem + 1px);
+  margin-bottom: 0;
+  font-size: inherit;
+  line-height: 1.8; }
+
+.col-form-label-lg {
+  padding-top: calc(0.5rem + 1px);
+  padding-bottom: calc(0.5rem + 1px);
+  font-size: 1.0625rem;
+  line-height: 1.5; }
+
+.col-form-label-sm {
+  padding-top: calc(0.25rem + 1px);
+  padding-bottom: calc(0.25rem + 1px);
+  font-size: 0.74375rem;
+  line-height: 1.5; }
+
+.form-control-plaintext {
+  display: block;
+  width: 100%;
+  padding-top: 0.375rem;
+  padding-bottom: 0.375rem;
+  margin-bottom: 0;
+  line-height: 1.8;
+  color: #efefef;
+  background-color: transparent;
+  border: solid transparent;
+  border-width: 1px 0; }
+  .form-control-plaintext.form-control-sm, .form-control-plaintext.form-control-lg {
+    padding-right: 0;
+    padding-left: 0; }
+
+.form-control-sm {
+  height: calc(1.61563rem + 2px);
+  padding: 0.25rem 0.5rem;
+  font-size: 0.74375rem;
+  line-height: 1.5;
+  border-radius: 0.3rem; }
+
+.form-control-lg {
+  height: calc(2.59375rem + 2px);
+  padding: 0.5rem 1.1rem;
+  font-size: 1.0625rem;
+  line-height: 1.5;
+  border-radius: 0.9rem; }
+
+select.form-control[size], select.form-control[multiple] {
+  height: auto; }
+
+textarea.form-control {
+  height: auto; }
+
+.form-group {
+  margin-bottom: 1rem; }
+
+.form-text {
+  display: block;
+  margin-top: 0.25rem; }
+
+.form-row {
+  display: flex;
+  flex-wrap: wrap;
+  margin-right: -5px;
+  margin-left: -5px; }
+  .form-row > .col,
+  .form-row > [class*="col-"] {
+    padding-right: 5px;
+    padding-left: 5px; }
+
+.form-check {
+  position: relative;
+  display: block;
+  padding-left: 1.25rem; }
+
+.form-check-input {
+  position: absolute;
+  margin-top: 0.3rem;
+  margin-left: -1.25rem; }
+  .form-check-input:disabled ~ .form-check-label {
+    color: #6c757d; }
+
+.form-check-label {
+  margin-bottom: 0; }
+
+.form-check-inline {
+  display: inline-flex;
+  align-items: center;
+  padding-left: 0;
+  margin-right: 0.75rem; }
+  .form-check-inline .form-check-input {
+    position: static;
+    margin-top: 0;
+    margin-right: 0.3125rem;
+    margin-left: 0; }
+
+.valid-feedback {
+  display: none;
+  width: 100%;
+  margin-top: 0.25rem;
+  font-size: 80%;
+  color: #28a745; }
+
+.valid-tooltip {
+  position: absolute;
+  top: 100%;
+  z-index: 5;
+  display: none;
+  max-width: 100%;
+  padding: 0.25rem 0.5rem;
+  margin-top: .1rem;
+  font-size: 0.74375rem;
+  line-height: 1.8;
+  color: #fff;
+  background-color: rgba(40, 167, 69, 0.9);
+  border-radius: 0.75rem; }
+
+.was-validated .form-control:valid, .form-control.is-valid, .was-validated
+.custom-select:valid,
+.custom-select.is-valid {
+  border-color: #28a745; }
+  .was-validated .form-control:valid:focus, .form-control.is-valid:focus, .was-validated
+  .custom-select:valid:focus,
+  .custom-select.is-valid:focus {
+    border-color: #28a745;
+    box-shadow: 0 0 0 0.2rem rgba(40, 167, 69, 0.25); }
+  .was-validated .form-control:valid ~ .valid-feedback,
+  .was-validated .form-control:valid ~ .valid-tooltip, .form-control.is-valid ~ .valid-feedback,
+  .form-control.is-valid ~ .valid-tooltip, .was-validated
+  .custom-select:valid ~ .valid-feedback,
+  .was-validated
+  .custom-select:valid ~ .valid-tooltip,
+  .custom-select.is-valid ~ .valid-feedback,
+  .custom-select.is-valid ~ .valid-tooltip {
+    display: block; }
+
+.was-validated .form-control-file:valid ~ .valid-feedback,
+.was-validated .form-control-file:valid ~ .valid-tooltip, .form-control-file.is-valid ~ .valid-feedback,
+.form-control-file.is-valid ~ .valid-tooltip {
+  display: block; }
+
+.was-validated .form-check-input:valid ~ .form-check-label, .form-check-input.is-valid ~ .form-check-label {
+  color: #28a745; }
+
+.was-validated .form-check-input:valid ~ .valid-feedback,
+.was-validated .form-check-input:valid ~ .valid-tooltip, .form-check-input.is-valid ~ .valid-feedback,
+.form-check-input.is-valid ~ .valid-tooltip {
+  display: block; }
+
+.was-validated .custom-control-input:valid ~ .custom-control-label, .custom-control-input.is-valid ~ .custom-control-label {
+  color: #28a745; }
+  .was-validated .custom-control-input:valid ~ .custom-control-label::before, .custom-control-input.is-valid ~ .custom-control-label::before {
+    background-color: #71dd8a; }
+
+.was-validated .custom-control-input:valid ~ .valid-feedback,
+.was-validated .custom-control-input:valid ~ .valid-tooltip, .custom-control-input.is-valid ~ .valid-feedback,
+.custom-control-input.is-valid ~ .valid-tooltip {
+  display: block; }
+
+.was-validated .custom-control-input:valid:checked ~ .custom-control-label::before, .custom-control-input.is-valid:checked ~ .custom-control-label::before {
+  background-color: #34ce57; }
+
+.was-validated .custom-control-input:valid:focus ~ .custom-control-label::before, .custom-control-input.is-valid:focus ~ .custom-control-label::before {
+  box-shadow: 0 0 0 1px #111, 0 0 0 0.2rem rgba(40, 167, 69, 0.25); }
+
+.was-validated .custom-file-input:valid ~ .custom-file-label, .custom-file-input.is-valid ~ .custom-file-label {
+  border-color: #28a745; }
+  .was-validated .custom-file-input:valid ~ .custom-file-label::after, .custom-file-input.is-valid ~ .custom-file-label::after {
+    border-color: inherit; }
+
+.was-validated .custom-file-input:valid ~ .valid-feedback,
+.was-validated .custom-file-input:valid ~ .valid-tooltip, .custom-file-input.is-valid ~ .valid-feedback,
+.custom-file-input.is-valid ~ .valid-tooltip {
+  display: block; }
+
+.was-validated .custom-file-input:valid:focus ~ .custom-file-label, .custom-file-input.is-valid:focus ~ .custom-file-label {
+  box-shadow: 0 0 0 0.2rem rgba(40, 167, 69, 0.25); }
+
+.invalid-feedback {
+  display: none;
+  width: 100%;
+  margin-top: 0.25rem;
+  font-size: 80%;
+  color: #dc3545; }
+
+.invalid-tooltip {
+  position: absolute;
+  top: 100%;
+  z-index: 5;
+  display: none;
+  max-width: 100%;
+  padding: 0.25rem 0.5rem;
+  margin-top: .1rem;
+  font-size: 0.74375rem;
+  line-height: 1.8;
+  color: #fff;
+  background-color: rgba(220, 53, 69, 0.9);
+  border-radius: 0.75rem; }
+
+.was-validated .form-control:invalid, .form-control.is-invalid, .was-validated
+.custom-select:invalid,
+.custom-select.is-invalid {
+  border-color: #dc3545; }
+  .was-validated .form-control:invalid:focus, .form-control.is-invalid:focus, .was-validated
+  .custom-select:invalid:focus,
+  .custom-select.is-invalid:focus {
+    border-color: #dc3545;
+    box-shadow: 0 0 0 0.2rem rgba(220, 53, 69, 0.25); }
+  .was-validated .form-control:invalid ~ .invalid-feedback,
+  .was-validated .form-control:invalid ~ .invalid-tooltip, .form-control.is-invalid ~ .invalid-feedback,
+  .form-control.is-invalid ~ .invalid-tooltip, .was-validated
+  .custom-select:invalid ~ .invalid-feedback,
+  .was-validated
+  .custom-select:invalid ~ .invalid-tooltip,
+  .custom-select.is-invalid ~ .invalid-feedback,
+  .custom-select.is-invalid ~ .invalid-tooltip {
+    display: block; }
+
+.was-validated .form-control-file:invalid ~ .invalid-feedback,
+.was-validated .form-control-file:invalid ~ .invalid-tooltip, .form-control-file.is-invalid ~ .invalid-feedback,
+.form-control-file.is-invalid ~ .invalid-tooltip {
+  display: block; }
+
+.was-validated .form-check-input:invalid ~ .form-check-label, .form-check-input.is-invalid ~ .form-check-label {
+  color: #dc3545; }
+
+.was-validated .form-check-input:invalid ~ .invalid-feedback,
+.was-validated .form-check-input:invalid ~ .invalid-tooltip, .form-check-input.is-invalid ~ .invalid-feedback,
+.form-check-input.is-invalid ~ .invalid-tooltip {
+  display: block; }
+
+.was-validated .custom-control-input:invalid ~ .custom-control-label, .custom-control-input.is-invalid ~ .custom-control-label {
+  color: #dc3545; }
+  .was-validated .custom-control-input:invalid ~ .custom-control-label::before, .custom-control-input.is-invalid ~ .custom-control-label::before {
+    background-color: #efa2a9; }
+
+.was-validated .custom-control-input:invalid ~ .invalid-feedback,
+.was-validated .custom-control-input:invalid ~ .invalid-tooltip, .custom-control-input.is-invalid ~ .invalid-feedback,
+.custom-control-input.is-invalid ~ .invalid-tooltip {
+  display: block; }
+
+.was-validated .custom-control-input:invalid:checked ~ .custom-control-label::before, .custom-control-input.is-invalid:checked ~ .custom-control-label::before {
+  background-color: #e4606d; }
+
+.was-validated .custom-control-input:invalid:focus ~ .custom-control-label::before, .custom-control-input.is-invalid:focus ~ .custom-control-label::before {
+  box-shadow: 0 0 0 1px #111, 0 0 0 0.2rem rgba(220, 53, 69, 0.25); }
+
+.was-validated .custom-file-input:invalid ~ .custom-file-label, .custom-file-input.is-invalid ~ .custom-file-label {
+  border-color: #dc3545; }
+  .was-validated .custom-file-input:invalid ~ .custom-file-label::after, .custom-file-input.is-invalid ~ .custom-file-label::after {
+    border-color: inherit; }
+
+.was-validated .custom-file-input:invalid ~ .invalid-feedback,
+.was-validated .custom-file-input:invalid ~ .invalid-tooltip, .custom-file-input.is-invalid ~ .invalid-feedback,
+.custom-file-input.is-invalid ~ .invalid-tooltip {
+  display: block; }
+
+.was-validated .custom-file-input:invalid:focus ~ .custom-file-label, .custom-file-input.is-invalid:focus ~ .custom-file-label {
+  box-shadow: 0 0 0 0.2rem rgba(220, 53, 69, 0.25); }
+
+.form-inline {
+  display: flex;
+  flex-flow: row wrap;
+  align-items: center; }
+  .form-inline .form-check {
+    width: 100%; }
+  @media (min-width: 576px) {
+    .form-inline label {
+      display: flex;
+      align-items: center;
+      justify-content: center;
+      margin-bottom: 0; }
+    .form-inline .form-group {
+      display: flex;
+      flex: 0 0 auto;
+      flex-flow: row wrap;
+      align-items: center;
+      margin-bottom: 0; }
+    .form-inline .form-control {
+      display: inline-block;
+      width: auto;
+      vertical-align: middle; }
+    .form-inline .form-control-plaintext {
+      display: inline-block; }
+    .form-inline .input-group,
+    .form-inline .custom-select {
+      width: auto; }
+    .form-inline .form-check {
+      display: flex;
+      align-items: center;
+      justify-content: center;
+      width: auto;
+      padding-left: 0; }
+    .form-inline .form-check-input {
+      position: relative;
+      margin-top: 0;
+      margin-right: 0.25rem;
+      margin-left: 0; }
+    .form-inline .custom-control {
+      align-items: center;
+      justify-content: center; }
+    .form-inline .custom-control-label {
+      margin-bottom: 0; } }
+
+.btn {
+  display: inline-block;
+  font-weight: 200;
+  text-align: center;
+  white-space: nowrap;
+  vertical-align: middle;
+  -webkit-user-select: none;
+     -moz-user-select: none;
+      -ms-user-select: none;
+          user-select: none;
+  border: 1px solid transparent;
+  padding: 0.375rem 1rem;
+  font-size: 0.85rem;
+  line-height: 1.8;
+  border-radius: 0.75rem;
+  transition: color 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out; }
+  @media screen and (prefers-reduced-motion: reduce) {
+    .btn {
+      transition: none; } }
+  .btn:hover, .btn:focus {
+    text-decoration: none; }
+  .btn:focus, .btn.focus {
+    outline: 0;
+    box-shadow: 0 0 0 0.2rem rgba(0, 128, 255, 0.25); }
+  .btn.disabled, .btn:disabled {
+    opacity: 0.65; }
+  .btn:not(:disabled):not(.disabled) {
+    cursor: pointer; }
+
+a.btn.disabled,
+fieldset:disabled a.btn {
+  pointer-events: none; }
+
+.btn-primary {
+  color: #fff;
+  background-color: #0080ff;
+  border-color: #0080ff; }
+  .btn-primary:hover {
+    color: #fff;
+    background-color: #006dd9;
+    border-color: #0066cc; }
+  .btn-primary:focus, .btn-primary.focus {
+    box-shadow: 0 0 0 0.2rem rgba(0, 128, 255, 0.5); }
+  .btn-primary.disabled, .btn-primary:disabled {
+    color: #fff;
+    background-color: #0080ff;
+    border-color: #0080ff; }
+  .btn-primary:not(:disabled):not(.disabled):active, .btn-primary:not(:disabled):not(.disabled).active,
+  .show > .btn-primary.dropdown-toggle {
+    color: #fff;
+    background-color: #0066cc;
+    border-color: #0060bf; }
+    .btn-primary:not(:disabled):not(.disabled):active:focus, .btn-primary:not(:disabled):not(.disabled).active:focus,
+    .show > .btn-primary.dropdown-toggle:focus {
+      box-shadow: 0 0 0 0.2rem rgba(0, 128, 255, 0.5); }
+
+.btn-secondary {
+  color: #fff;
+  background-color: #0060aa;
+  border-color: #0060aa; }
+  .btn-secondary:hover {
+    color: #fff;
+    background-color: #004a84;
+    border-color: #004377; }
+  .btn-secondary:focus, .btn-secondary.focus {
+    box-shadow: 0 0 0 0.2rem rgba(0, 96, 170, 0.5); }
+  .btn-secondary.disabled, .btn-secondary:disabled {
+    color: #fff;
+    background-color: #0060aa;
+    border-color: #0060aa; }
+  .btn-secondary:not(:disabled):not(.disabled):active, .btn-secondary:not(:disabled):not(.disabled).active,
+  .show > .btn-secondary.dropdown-toggle {
+    color: #fff;
+    background-color: #004377;
+    border-color: #003c6a; }
+    .btn-secondary:not(:disabled):not(.disabled):active:focus, .btn-secondary:not(:disabled):not(.disabled).active:focus,
+    .show > .btn-secondary.dropdown-toggle:focus {
+      box-shadow: 0 0 0 0.2rem rgba(0, 96, 170, 0.5); }
+
+.btn-success {
+  color: #fff;
+  background-color: #28a745;
+  border-color: #28a745; }
+  .btn-success:hover {
+    color: #fff;
+    background-color: #218838;
+    border-color: #1e7e34; }
+  .btn-success:focus, .btn-success.focus {
+    box-shadow: 0 0 0 0.2rem rgba(40, 167, 69, 0.5); }
+  .btn-success.disabled, .btn-success:disabled {
+    color: #fff;
+    background-color: #28a745;
+    border-color: #28a745; }
+  .btn-success:not(:disabled):not(.disabled):active, .btn-success:not(:disabled):not(.disabled).active,
+  .show > .btn-success.dropdown-toggle {
+    color: #fff;
+    background-color: #1e7e34;
+    border-color: #1c7430; }
+    .btn-success:not(:disabled):not(.disabled):active:focus, .btn-success:not(:disabled):not(.disabled).active:focus,
+    .show > .btn-success.dropdown-toggle:focus {
+      box-shadow: 0 0 0 0.2rem rgba(40, 167, 69, 0.5); }
+
+.btn-info {
+  color: #fff;
+  background-color: #00aaff;
+  border-color: #00aaff; }
+  .btn-info:hover {
+    color: #fff;
+    background-color: #0091d9;
+    border-color: #0088cc; }
+  .btn-info:focus, .btn-info.focus {
+    box-shadow: 0 0 0 0.2rem rgba(0, 170, 255, 0.5); }
+  .btn-info.disabled, .btn-info:disabled {
+    color: #fff;
+    background-color: #00aaff;
+    border-color: #00aaff; }
+  .btn-info:not(:disabled):not(.disabled):active, .btn-info:not(:disabled):not(.disabled).active,
+  .show > .btn-info.dropdown-toggle {
+    color: #fff;
+    background-color: #0088cc;
+    border-color: #0080bf; }
+    .btn-info:not(:disabled):not(.disabled):active:focus, .btn-info:not(:disabled):not(.disabled).active:focus,
+    .show > .btn-info.dropdown-toggle:focus {
+      box-shadow: 0 0 0 0.2rem rgba(0, 170, 255, 0.5); }
+
+.btn-warning {
+  color: #212529;
+  background-color: #ffc107;
+  border-color: #ffc107; }
+  .btn-warning:hover {
+    color: #212529;
+    background-color: #e0a800;
+    border-color: #d39e00; }
+  .btn-warning:focus, .btn-warning.focus {
+    box-shadow: 0 0 0 0.2rem rgba(255, 193, 7, 0.5); }
+  .btn-warning.disabled, .btn-warning:disabled {
+    color: #212529;
+    background-color: #ffc107;
+    border-color: #ffc107; }
+  .btn-warning:not(:disabled):not(.disabled):active, .btn-warning:not(:disabled):not(.disabled).active,
+  .show > .btn-warning.dropdown-toggle {
+    color: #212529;
+    background-color: #d39e00;
+    border-color: #c69500; }
+    .btn-warning:not(:disabled):not(.disabled):active:focus, .btn-warning:not(:disabled):not(.disabled).active:focus,
+    .show > .btn-warning.dropdown-toggle:focus {
+      box-shadow: 0 0 0 0.2rem rgba(255, 193, 7, 0.5); }
+
+.btn-danger {
+  color: #fff;
+  background-color: #dc3545;
+  border-color: #dc3545; }
+  .btn-danger:hover {
+    color: #fff;
+    background-color: #c82333;
+    border-color: #bd2130; }
+  .btn-danger:focus, .btn-danger.focus {
+    box-shadow: 0 0 0 0.2rem rgba(220, 53, 69, 0.5); }
+  .btn-danger.disabled, .btn-danger:disabled {
+    color: #fff;
+    background-color: #dc3545;
+    border-color: #dc3545; }
+  .btn-danger:not(:disabled):not(.disabled):active, .btn-danger:not(:disabled):not(.disabled).active,
+  .show > .btn-danger.dropdown-toggle {
+    color: #fff;
+    background-color: #bd2130;
+    border-color: #b21f2d; }
+    .btn-danger:not(:disabled):not(.disabled):active:focus, .btn-danger:not(:disabled):not(.disabled).active:focus,
+    .show > .btn-danger.dropdown-toggle:focus {
+      box-shadow: 0 0 0 0.2rem rgba(220, 53, 69, 0.5); }
+
+.btn-light {
+  color: #212529;
+  background-color: #f3f3f3;
+  border-color: #f3f3f3; }
+  .btn-light:hover {
+    color: #212529;
+    background-color: #e0e0e0;
+    border-color: #dadada; }
+  .btn-light:focus, .btn-light.focus {
+    box-shadow: 0 0 0 0.2rem rgba(243, 243, 243, 0.5); }
+  .btn-light.disabled, .btn-light:disabled {
+    color: #212529;
+    background-color: #f3f3f3;
+    border-color: #f3f3f3; }
+  .btn-light:not(:disabled):not(.disabled):active, .btn-light:not(:disabled):not(.disabled).active,
+  .show > .btn-light.dropdown-toggle {
+    color: #212529;
+    background-color: #dadada;
+    border-color: lightgray; }
+    .btn-light:not(:disabled):not(.disabled):active:focus, .btn-light:not(:disabled):not(.disabled).active:focus,
+    .show > .btn-light.dropdown-toggle:focus {
+      box-shadow: 0 0 0 0.2rem rgba(243, 243, 243, 0.5); }
+
+.btn-dark {
+  color: #fff;
+  background-color: #303030;
+  border-color: #303030; }
+  .btn-dark:hover {
+    color: #fff;
+    background-color: #1d1d1d;
+    border-color: #171717; }
+  .btn-dark:focus, .btn-dark.focus {
+    box-shadow: 0 0 0 0.2rem rgba(48, 48, 48, 0.5); }
+  .btn-dark.disabled, .btn-dark:disabled {
+    color: #fff;
+    background-color: #303030;
+    border-color: #303030; }
+  .btn-dark:not(:disabled):not(.disabled):active, .btn-dark:not(:disabled):not(.disabled).active,
+  .show > .btn-dark.dropdown-toggle {
+    color: #fff;
+    background-color: #171717;
+    border-color: #101010; }
+    .btn-dark:not(:disabled):not(.disabled):active:focus, .btn-dark:not(:disabled):not(.disabled).active:focus,
+    .show > .btn-dark.dropdown-toggle:focus {
+      box-shadow: 0 0 0 0.2rem rgba(48, 48, 48, 0.5); }
+
+.btn-outline-primary {
+  color: #0080ff;
+  background-color: transparent;
+  background-image: none;
+  border-color: #0080ff; }
+  .btn-outline-primary:hover {
+    color: #fff;
+    background-color: #0080ff;
+    border-color: #0080ff; }
+  .btn-outline-primary:focus, .btn-outline-primary.focus {
+    box-shadow: 0 0 0 0.2rem rgba(0, 128, 255, 0.5); }
+  .btn-outline-primary.disabled, .btn-outline-primary:disabled {
+    color: #0080ff;
+    background-color: transparent; }
+  .btn-outline-primary:not(:disabled):not(.disabled):active, .btn-outline-primary:not(:disabled):not(.disabled).active,
+  .show > .btn-outline-primary.dropdown-toggle {
+    color: #fff;
+    background-color: #0080ff;
+    border-color: #0080ff; }
+    .btn-outline-primary:not(:disabled):not(.disabled):active:focus, .btn-outline-primary:not(:disabled):not(.disabled).active:focus,
+    .show > .btn-outline-primary.dropdown-toggle:focus {
+      box-shadow: 0 0 0 0.2rem rgba(0, 128, 255, 0.5); }
+
+.btn-outline-secondary {
+  color: #0060aa;
+  background-color: transparent;
+  background-image: none;
+  border-color: #0060aa; }
+  .btn-outline-secondary:hover {
+    color: #fff;
+    background-color: #0060aa;
+    border-color: #0060aa; }
+  .btn-outline-secondary:focus, .btn-outline-secondary.focus {
+    box-shadow: 0 0 0 0.2rem rgba(0, 96, 170, 0.5); }
+  .btn-outline-secondary.disabled, .btn-outline-secondary:disabled {
+    color: #0060aa;
+    background-color: transparent; }
+  .btn-outline-secondary:not(:disabled):not(.disabled):active, .btn-outline-secondary:not(:disabled):not(.disabled).active,
+  .show > .btn-outline-secondary.dropdown-toggle {
+    color: #fff;
+    background-color: #0060aa;
+    border-color: #0060aa; }
+    .btn-outline-secondary:not(:disabled):not(.disabled):active:focus, .btn-outline-secondary:not(:disabled):not(.disabled).active:focus,
+    .show > .btn-outline-secondary.dropdown-toggle:focus {
+      box-shadow: 0 0 0 0.2rem rgba(0, 96, 170, 0.5); }
+
+.btn-outline-success {
+  color: #28a745;
+  background-color: transparent;
+  background-image: none;
+  border-color: #28a745; }
+  .btn-outline-success:hover {
+    color: #fff;
+    background-color: #28a745;
+    border-color: #28a745; }
+  .btn-outline-success:focus, .btn-outline-success.focus {
+    box-shadow: 0 0 0 0.2rem rgba(40, 167, 69, 0.5); }
+  .btn-outline-success.disabled, .btn-outline-success:disabled {
+    color: #28a745;
+    background-color: transparent; }
+  .btn-outline-success:not(:disabled):not(.disabled):active, .btn-outline-success:not(:disabled):not(.disabled).active,
+  .show > .btn-outline-success.dropdown-toggle {
+    color: #fff;
+    background-color: #28a745;
+    border-color: #28a745; }
+    .btn-outline-success:not(:disabled):not(.disabled):active:focus, .btn-outline-success:not(:disabled):not(.disabled).active:focus,
+    .show > .btn-outline-success.dropdown-toggle:focus {
+      box-shadow: 0 0 0 0.2rem rgba(40, 167, 69, 0.5); }
+
+.btn-outline-info {
+  color: #00aaff;
+  background-color: transparent;
+  background-image: none;
+  border-color: #00aaff; }
+  .btn-outline-info:hover {
+    color: #fff;
+    background-color: #00aaff;
+    border-color: #00aaff; }
+  .btn-outline-info:focus, .btn-outline-info.focus {
+    box-shadow: 0 0 0 0.2rem rgba(0, 170, 255, 0.5); }
+  .btn-outline-info.disabled, .btn-outline-info:disabled {
+    color: #00aaff;
+    background-color: transparent; }
+  .btn-outline-info:not(:disabled):not(.disabled):active, .btn-outline-info:not(:disabled):not(.disabled).active,
+  .show > .btn-outline-info.dropdown-toggle {
+    color: #fff;
+    background-color: #00aaff;
+    border-color: #00aaff; }
+    .btn-outline-info:not(:disabled):not(.disabled):active:focus, .btn-outline-info:not(:disabled):not(.disabled).active:focus,
+    .show > .btn-outline-info.dropdown-toggle:focus {
+      box-shadow: 0 0 0 0.2rem rgba(0, 170, 255, 0.5); }
+
+.btn-outline-warning {
+  color: #ffc107;
+  background-color: transparent;
+  background-image: none;
+  border-color: #ffc107; }
+  .btn-outline-warning:hover {
+    color: #212529;
+    background-color: #ffc107;
+    border-color: #ffc107; }
+  .btn-outline-warning:focus, .btn-outline-warning.focus {
+    box-shadow: 0 0 0 0.2rem rgba(255, 193, 7, 0.5); }
+  .btn-outline-warning.disabled, .btn-outline-warning:disabled {
+    color: #ffc107;
+    background-color: transparent; }
+  .btn-outline-warning:not(:disabled):not(.disabled):active, .btn-outline-warning:not(:disabled):not(.disabled).active,
+  .show > .btn-outline-warning.dropdown-toggle {
+    color: #212529;
+    background-color: #ffc107;
+    border-color: #ffc107; }
+    .btn-outline-warning:not(:disabled):not(.disabled):active:focus, .btn-outline-warning:not(:disabled):not(.disabled).active:focus,
+    .show > .btn-outline-warning.dropdown-toggle:focus {
+      box-shadow: 0 0 0 0.2rem rgba(255, 193, 7, 0.5); }
+
+.btn-outline-danger {
+  color: #dc3545;
+  background-color: transparent;
+  background-image: none;
+  border-color: #dc3545; }
+  .btn-outline-danger:hover {
+    color: #fff;
+    background-color: #dc3545;
+    border-color: #dc3545; }
+  .btn-outline-danger:focus, .btn-outline-danger.focus {
+    box-shadow: 0 0 0 0.2rem rgba(220, 53, 69, 0.5); }
+  .btn-outline-danger.disabled, .btn-outline-danger:disabled {
+    color: #dc3545;
+    background-color: transparent; }
+  .btn-outline-danger:not(:disabled):not(.disabled):active, .btn-outline-danger:not(:disabled):not(.disabled).active,
+  .show > .btn-outline-danger.dropdown-toggle {
+    color: #fff;
+    background-color: #dc3545;
+    border-color: #dc3545; }
+    .btn-outline-danger:not(:disabled):not(.disabled):active:focus, .btn-outline-danger:not(:disabled):not(.disabled).active:focus,
+    .show > .btn-outline-danger.dropdown-toggle:focus {
+      box-shadow: 0 0 0 0.2rem rgba(220, 53, 69, 0.5); }
+
+.btn-outline-light {
+  color: #f3f3f3;
+  background-color: transparent;
+  background-image: none;
+  border-color: #f3f3f3; }
+  .btn-outline-light:hover {
+    color: #212529;
+    background-color: #f3f3f3;
+    border-color: #f3f3f3; }
+  .btn-outline-light:focus, .btn-outline-light.focus {
+    box-shadow: 0 0 0 0.2rem rgba(243, 243, 243, 0.5); }
+  .btn-outline-light.disabled, .btn-outline-light:disabled {
+    color: #f3f3f3;
+    background-color: transparent; }
+  .btn-outline-light:not(:disabled):not(.disabled):active, .btn-outline-light:not(:disabled):not(.disabled).active,
+  .show > .btn-outline-light.dropdown-toggle {
+    color: #212529;
+    background-color: #f3f3f3;
+    border-color: #f3f3f3; }
+    .btn-outline-light:not(:disabled):not(.disabled):active:focus, .btn-outline-light:not(:disabled):not(.disabled).active:focus,
+    .show > .btn-outline-light.dropdown-toggle:focus {
+      box-shadow: 0 0 0 0.2rem rgba(243, 243, 243, 0.5); }
+
+.btn-outline-dark {
+  color: #303030;
+  background-color: transparent;
+  background-image: none;
+  border-color: #303030; }
+  .btn-outline-dark:hover {
+    color: #fff;
+    background-color: #303030;
+    border-color: #303030; }
+  .btn-outline-dark:focus, .btn-outline-dark.focus {
+    box-shadow: 0 0 0 0.2rem rgba(48, 48, 48, 0.5); }
+  .btn-outline-dark.disabled, .btn-outline-dark:disabled {
+    color: #303030;
+    background-color: transparent; }
+  .btn-outline-dark:not(:disabled):not(.disabled):active, .btn-outline-dark:not(:disabled):not(.disabled).active,
+  .show > .btn-outline-dark.dropdown-toggle {
+    color: #fff;
+    background-color: #303030;
+    border-color: #303030; }
+    .btn-outline-dark:not(:disabled):not(.disabled):active:focus, .btn-outline-dark:not(:disabled):not(.disabled).active:focus,
+    .show > .btn-outline-dark.dropdown-toggle:focus {
+      box-shadow: 0 0 0 0.2rem rgba(48, 48, 48, 0.5); }
+
+.btn-link {
+  font-weight: 200;
+  color: #0080ff;
+  background-color: transparent; }
+  .btn-link:hover {
+    color: white;
+    text-decoration: none;
+    background-color: transparent;
+    border-color: transparent; }
+  .btn-link:focus, .btn-link.focus {
+    text-decoration: none;
+    border-color: transparent;
+    box-shadow: none; }
+  .btn-link:disabled, .btn-link.disabled {
+    color: #6c757d;
+    pointer-events: none; }
+
+.btn-lg, .btn-group-lg > .btn {
+  padding: 0.5rem 1.1rem;
+  font-size: 1.0625rem;
+  line-height: 1.5;
+  border-radius: 0.9rem; }
+
+.btn-sm, .btn-group-sm > .btn {
+  padding: 0.25rem 0.5rem;
+  font-size: 0.74375rem;
+  line-height: 1.5;
+  border-radius: 0.3rem; }
+
+.btn-block {
+  display: block;
+  width: 100%; }
+  .btn-block + .btn-block {
+    margin-top: 0.5rem; }
+
+input[type="submit"].btn-block,
+input[type="reset"].btn-block,
+input[type="button"].btn-block {
+  width: 100%; }
+
+.fade {
+  transition: opacity 0.15s linear; }
+  @media screen and (prefers-reduced-motion: reduce) {
+    .fade {
+      transition: none; } }
+  .fade:not(.show) {
+    opacity: 0; }
+
+.collapse:not(.show) {
+  display: none; }
+
+.collapsing {
+  position: relative;
+  height: 0;
+  overflow: hidden;
+  transition: height 0.35s ease; }
+  @media screen and (prefers-reduced-motion: reduce) {
+    .collapsing {
+      transition: none; } }
+
+.dropup,
+.dropright,
+.dropdown,
+.dropleft {
+  position: relative; }
+
+.dropdown-toggle::after {
+  display: inline-block;
+  width: 0;
+  height: 0;
+  margin-left: 0.255em;
+  vertical-align: 0.255em;
+  content: "";
+  border-top: 0.3em solid;
+  border-right: 0.3em solid transparent;
+  border-bottom: 0;
+  border-left: 0.3em solid transparent; }
+
+.dropdown-toggle:empty::after {
+  margin-left: 0; }
+
+.dropdown-menu {
+  position: absolute;
+  top: 100%;
+  left: 0;
+  z-index: 1000;
+  display: none;
+  float: left;
+  min-width: 10rem;
+  padding: 0.5rem 0;
+  margin: 0.125rem 0 0;
+  font-size: 0.85rem;
+  color: #efefef;
+  text-align: left;
+  list-style: none;
+  background-color: #fff;
+  background-clip: padding-box;
+  border: 1px solid rgba(0, 0, 0, 0.15);
+  border-radius: 0.75rem; }
+
+.dropdown-menu-right {
+  right: 0;
+  left: auto; }
+
+.dropup .dropdown-menu {
+  top: auto;
+  bottom: 100%;
+  margin-top: 0;
+  margin-bottom: 0.125rem; }
+
+.dropup .dropdown-toggle::after {
+  display: inline-block;
+  width: 0;
+  height: 0;
+  margin-left: 0.255em;
+  vertical-align: 0.255em;
+  content: "";
+  border-top: 0;
+  border-right: 0.3em solid transparent;
+  border-bottom: 0.3em solid;
+  border-left: 0.3em solid transparent; }
+
+.dropup .dropdown-toggle:empty::after {
+  margin-left: 0; }
+
+.dropright .dropdown-menu {
+  top: 0;
+  right: auto;
+  left: 100%;
+  margin-top: 0;
+  margin-left: 0.125rem; }
+
+.dropright .dropdown-toggle::after {
+  display: inline-block;
+  width: 0;
+  height: 0;
+  margin-left: 0.255em;
+  vertical-align: 0.255em;
+  content: "";
+  border-top: 0.3em solid transparent;
+  border-right: 0;
+  border-bottom: 0.3em solid transparent;
+  border-left: 0.3em solid; }
+
+.dropright .dropdown-toggle:empty::after {
+  margin-left: 0; }
+
+.dropright .dropdown-toggle::after {
+  vertical-align: 0; }
+
+.dropleft .dropdown-menu {
+  top: 0;
+  right: 100%;
+  left: auto;
+  margin-top: 0;
+  margin-right: 0.125rem; }
+
+.dropleft .dropdown-toggle::after {
+  display: inline-block;
+  width: 0;
+  height: 0;
+  margin-left: 0.255em;
+  vertical-align: 0.255em;
+  content: ""; }
+
+.dropleft .dropdown-toggle::after {
+  display: none; }
+
+.dropleft .dropdown-toggle::before {
+  display: inline-block;
+  width: 0;
+  height: 0;
+  margin-right: 0.255em;
+  vertical-align: 0.255em;
+  content: "";
+  border-top: 0.3em solid transparent;
+  border-right: 0.3em solid;
+  border-bottom: 0.3em solid transparent; }
+
+.dropleft .dropdown-toggle:empty::after {
+  margin-left: 0; }
+
+.dropleft .dropdown-toggle::before {
+  vertical-align: 0; }
+
+.dropdown-menu[x-placement^="top"], .dropdown-menu[x-placement^="right"], .dropdown-menu[x-placement^="bottom"], .dropdown-menu[x-placement^="left"] {
+  right: auto;
+  bottom: auto; }
+
+.dropdown-divider {
+  height: 0;
+  margin: 0.75rem 0;
+  overflow: hidden;
+  border-top: 1px solid #e9ecef; }
+
+.dropdown-item {
+  display: block;
+  width: 100%;
+  padding: 0.25rem 1.5rem;
+  clear: both;
+  font-weight: 200;
+  color: #212529;
+  text-align: inherit;
+  white-space: nowrap;
+  background-color: transparent;
+  border: 0; }
+  .dropdown-item:hover, .dropdown-item:focus {
+    color: #16181b;
+    text-decoration: none;
+    background-color: #f8f9fa; }
+  .dropdown-item.active, .dropdown-item:active {
+    color: #303030;
+    text-decoration: none;
+    background-color: #0080ff; }
+  .dropdown-item.disabled, .dropdown-item:disabled {
+    color: #6c757d;
+    background-color: transparent; }
+
+.dropdown-menu.show {
+  display: block; }
+
+.dropdown-header {
+  display: block;
+  padding: 0.5rem 1.5rem;
+  margin-bottom: 0;
+  font-size: 0.74375rem;
+  color: #6c757d;
+  white-space: nowrap; }
+
+.dropdown-item-text {
+  display: block;
+  padding: 0.25rem 1.5rem;
+  color: #212529; }
+
+.btn-group,
+.btn-group-vertical {
+  position: relative;
+  display: inline-flex;
+  vertical-align: middle; }
+  .btn-group > .btn,
+  .btn-group-vertical > .btn {
+    position: relative;
+    flex: 0 1 auto; }
+    .btn-group > .btn:hover,
+    .btn-group-vertical > .btn:hover {
+      z-index: 1; }
+    .btn-group > .btn:focus, .btn-group > .btn:active, .btn-group > .btn.active,
+    .btn-group-vertical > .btn:focus,
+    .btn-group-vertical > .btn:active,
+    .btn-group-vertical > .btn.active {
+      z-index: 1; }
+  .btn-group .btn + .btn,
+  .btn-group .btn + .btn-group,
+  .btn-group .btn-group + .btn,
+  .btn-group .btn-group + .btn-group,
+  .btn-group-vertical .btn + .btn,
+  .btn-group-vertical .btn + .btn-group,
+  .btn-group-vertical .btn-group + .btn,
+  .btn-group-vertical .btn-group + .btn-group {
+    margin-left: -1px; }
+
+.btn-toolbar {
+  display: flex;
+  flex-wrap: wrap;
+  justify-content: flex-start; }
+  .btn-toolbar .input-group {
+    width: auto; }
+
+.btn-group > .btn:first-child {
+  margin-left: 0; }
+
+.btn-group > .btn:not(:last-child):not(.dropdown-toggle),
+.btn-group > .btn-group:not(:last-child) > .btn {
+  border-top-right-radius: 0;
+  border-bottom-right-radius: 0; }
+
+.btn-group > .btn:not(:first-child),
+.btn-group > .btn-group:not(:first-child) > .btn {
+  border-top-left-radius: 0;
+  border-bottom-left-radius: 0; }
+
+.dropdown-toggle-split {
+  padding-right: 0.75rem;
+  padding-left: 0.75rem; }
+  .dropdown-toggle-split::after,
+  .dropup .dropdown-toggle-split::after,
+  .dropright .dropdown-toggle-split::after {
+    margin-left: 0; }
+  .dropleft .dropdown-toggle-split::before {
+    margin-right: 0; }
+
+.btn-sm + .dropdown-toggle-split, .btn-group-sm > .btn + .dropdown-toggle-split {
+  padding-right: 0.375rem;
+  padding-left: 0.375rem; }
+
+.btn-lg + .dropdown-toggle-split, .btn-group-lg > .btn + .dropdown-toggle-split {
+  padding-right: 0.825rem;
+  padding-left: 0.825rem; }
+
+.btn-group-vertical {
+  flex-direction: column;
+  align-items: flex-start;
+  justify-content: center; }
+  .btn-group-vertical .btn,
+  .btn-group-vertical .btn-group {
+    width: 100%; }
+  .btn-group-vertical > .btn + .btn,
+  .btn-group-vertical > .btn + .btn-group,
+  .btn-group-vertical > .btn-group + .btn,
+  .btn-group-vertical > .btn-group + .btn-group {
+    margin-top: -1px;
+    margin-left: 0; }
+  .btn-group-vertical > .btn:not(:last-child):not(.dropdown-toggle),
+  .btn-group-vertical > .btn-group:not(:last-child) > .btn {
+    border-bottom-right-radius: 0;
+    border-bottom-left-radius: 0; }
+  .btn-group-vertical > .btn:not(:first-child),
+  .btn-group-vertical > .btn-group:not(:first-child) > .btn {
+    border-top-left-radius: 0;
+    border-top-right-radius: 0; }
+
+.btn-group-toggle > .btn,
+.btn-group-toggle > .btn-group > .btn {
+  margin-bottom: 0; }
+  .btn-group-toggle > .btn input[type="radio"],
+  .btn-group-toggle > .btn input[type="checkbox"],
+  .btn-group-toggle > .btn-group > .btn input[type="radio"],
+  .btn-group-toggle > .btn-group > .btn input[type="checkbox"] {
+    position: absolute;
+    clip: rect(0, 0, 0, 0);
+    pointer-events: none; }
+
+.input-group {
+  position: relative;
+  display: flex;
+  flex-wrap: wrap;
+  align-items: stretch;
+  width: 100%; }
+  .input-group > .form-control,
+  .input-group > .custom-select,
+  .input-group > .custom-file {
+    position: relative;
+    flex: 1 1 auto;
+    width: 1%;
+    margin-bottom: 0; }
+    .input-group > .form-control + .form-control,
+    .input-group > .form-control + .custom-select,
+    .input-group > .form-control + .custom-file,
+    .input-group > .custom-select + .form-control,
+    .input-group > .custom-select + .custom-select,
+    .input-group > .custom-select + .custom-file,
+    .input-group > .custom-file + .form-control,
+    .input-group > .custom-file + .custom-select,
+    .input-group > .custom-file + .custom-file {
+      margin-left: -1px; }
+  .input-group > .form-control:focus,
+  .input-group > .custom-select:focus,
+  .input-group > .custom-file .custom-file-input:focus ~ .custom-file-label {
+    z-index: 3; }
+  .input-group > .custom-file .custom-file-input:focus {
+    z-index: 4; }
+  .input-group > .form-control:not(:last-child),
+  .input-group > .custom-select:not(:last-child) {
+    border-top-right-radius: 0;
+    border-bottom-right-radius: 0; }
+  .input-group > .form-control:not(:first-child),
+  .input-group > .custom-select:not(:first-child) {
+    border-top-left-radius: 0;
+    border-bottom-left-radius: 0; }
+  .input-group > .custom-file {
+    display: flex;
+    align-items: center; }
+    .input-group > .custom-file:not(:last-child) .custom-file-label,
+    .input-group > .custom-file:not(:last-child) .custom-file-label::after {
+      border-top-right-radius: 0;
+      border-bottom-right-radius: 0; }
+    .input-group > .custom-file:not(:first-child) .custom-file-label {
+      border-top-left-radius: 0;
+      border-bottom-left-radius: 0; }
+
+.input-group-prepend,
+.input-group-append {
+  display: flex; }
+  .input-group-prepend .btn,
+  .input-group-append .btn {
+    position: relative;
+    z-index: 2; }
+  .input-group-prepend .btn + .btn,
+  .input-group-prepend .btn + .input-group-text,
+  .input-group-prepend .input-group-text + .input-group-text,
+  .input-group-prepend .input-group-text + .btn,
+  .input-group-append .btn + .btn,
+  .input-group-append .btn + .input-group-text,
+  .input-group-append .input-group-text + .input-group-text,
+  .input-group-append .input-group-text + .btn {
+    margin-left: -1px; }
+
+.input-group-prepend {
+  margin-right: -1px; }
+
+.input-group-append {
+  margin-left: -1px; }
+
+.input-group-text {
+  display: flex;
+  align-items: center;
+  padding: 0.375rem 1rem;
+  margin-bottom: 0;
+  font-size: 0.85rem;
+  font-weight: 200;
+  line-height: 1.8;
+  color: #495057;
+  text-align: center;
+  white-space: nowrap;
+  background-color: #e9ecef;
+  border: 1px solid #ced4da;
+  border-radius: 0.75rem; }
+  .input-group-text input[type="radio"],
+  .input-group-text input[type="checkbox"] {
+    margin-top: 0; }
+
+.input-group-lg > .form-control,
+.input-group-lg > .input-group-prepend > .input-group-text,
+.input-group-lg > .input-group-append > .input-group-text,
+.input-group-lg > .input-group-prepend > .btn,
+.input-group-lg > .input-group-append > .btn {
+  height: calc(2.59375rem + 2px);
+  padding: 0.5rem 1.1rem;
+  font-size: 1.0625rem;
+  line-height: 1.5;
+  border-radius: 0.9rem; }
+
+.input-group-sm > .form-control,
+.input-group-sm > .input-group-prepend > .input-group-text,
+.input-group-sm > .input-group-append > .input-group-text,
+.input-group-sm > .input-group-prepend > .btn,
+.input-group-sm > .input-group-append > .btn {
+  height: calc(1.61563rem + 2px);
+  padding: 0.25rem 0.5rem;
+  font-size: 0.74375rem;
+  line-height: 1.5;
+  border-radius: 0.3rem; }
+
+.input-group > .input-group-prepend > .btn,
+.input-group > .input-group-prepend > .input-group-text,
+.input-group > .input-group-append:not(:last-child) > .btn,
+.input-group > .input-group-append:not(:last-child) > .input-group-text,
+.input-group > .input-group-append:last-child > .btn:not(:last-child):not(.dropdown-toggle),
+.input-group > .input-group-append:last-child > .input-group-text:not(:last-child) {
+  border-top-right-radius: 0;
+  border-bottom-right-radius: 0; }
+
+.input-group > .input-group-append > .btn,
+.input-group > .input-group-append > .input-group-text,
+.input-group > .input-group-prepend:not(:first-child) > .btn,
+.input-group > .input-group-prepend:not(:first-child) > .input-group-text,
+.input-group > .input-group-prepend:first-child > .btn:not(:first-child),
+.input-group > .input-group-prepend:first-child > .input-group-text:not(:first-child) {
+  border-top-left-radius: 0;
+  border-bottom-left-radius: 0; }
+
+.custom-control {
+  position: relative;
+  display: block;
+  min-height: 1.53rem;
+  padding-left: 1.5rem; }
+
+.custom-control-inline {
+  display: inline-flex;
+  margin-right: 1rem; }
+
+.custom-control-input {
+  position: absolute;
+  z-index: -1;
+  opacity: 0; }
+  .custom-control-input:checked ~ .custom-control-label::before {
+    color: #303030;
+    background-color: #0080ff; }
+  .custom-control-input:focus ~ .custom-control-label::before {
+    box-shadow: 0 0 0 1px #111, 0 0 0 0.2rem rgba(0, 128, 255, 0.25); }
+  .custom-control-input:active ~ .custom-control-label::before {
+    color: #303030;
+    background-color: #b3d9ff; }
+  .custom-control-input:disabled ~ .custom-control-label {
+    color: #6c757d; }
+    .custom-control-input:disabled ~ .custom-control-label::before {
+      background-color: #e9ecef; }
+
+.custom-control-label {
+  position: relative;
+  margin-bottom: 0; }
+  .custom-control-label::before {
+    position: absolute;
+    top: 0.265rem;
+    left: -1.5rem;
+    display: block;
+    width: 1rem;
+    height: 1rem;
+    pointer-events: none;
+    content: "";
+    -webkit-user-select: none;
+       -moz-user-select: none;
+        -ms-user-select: none;
+            user-select: none;
+    background-color: #dee2e6; }
+  .custom-control-label::after {
+    position: absolute;
+    top: 0.265rem;
+    left: -1.5rem;
+    display: block;
+    width: 1rem;
+    height: 1rem;
+    content: "";
+    background-repeat: no-repeat;
+    background-position: center center;
+    background-size: 50% 50%; }
+
+.custom-checkbox .custom-control-label::before {
+  border-radius: 0.75rem; }
+
+.custom-checkbox .custom-control-input:checked ~ .custom-control-label::before {
+  background-color: #0080ff; }
+
+.custom-checkbox .custom-control-input:checked ~ .custom-control-label::after {
+  background-image: url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%23303030' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E"); }
+
+.custom-checkbox .custom-control-input:indeterminate ~ .custom-control-label::before {
+  background-color: #0080ff; }
+
+.custom-checkbox .custom-control-input:indeterminate ~ .custom-control-label::after {
+  background-image: url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 4 4'%3E%3Cpath stroke='%23303030' d='M0 2h4'/%3E%3C/svg%3E"); }
+
+.custom-checkbox .custom-control-input:disabled:checked ~ .custom-control-label::before {
+  background-color: rgba(0, 128, 255, 0.5); }
+
+.custom-checkbox .custom-control-input:disabled:indeterminate ~ .custom-control-label::before {
+  background-color: rgba(0, 128, 255, 0.5); }
+
+.custom-radio .custom-control-label::before {
+  border-radius: 50%; }
+
+.custom-radio .custom-control-input:checked ~ .custom-control-label::before {
+  background-color: #0080ff; }
+
+.custom-radio .custom-control-input:checked ~ .custom-control-label::after {
+  background-image: url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3E%3Ccircle r='3' fill='%23303030'/%3E%3C/svg%3E"); }
+
+.custom-radio .custom-control-input:disabled:checked ~ .custom-control-label::before {
+  background-color: rgba(0, 128, 255, 0.5); }
+
+.custom-select {
+  display: inline-block;
+  width: 100%;
+  height: calc(2.28rem + 2px);
+  padding: 0.375rem 1.75rem 0.375rem 0.75rem;
+  line-height: 1.8;
+  color: #495057;
+  vertical-align: middle;
+  background: #fff url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 4 5'%3E%3Cpath fill='%23343a40' d='M2 0L0 2h4zm0 5L0 3h4z'/%3E%3C/svg%3E") no-repeat right 0.75rem center;
+  background-size: 8px 10px;
+  border: 1px solid #ced4da;
+  border-radius: 0.75rem;
+  -webkit-appearance: none;
+     -moz-appearance: none;
+          appearance: none; }
+  .custom-select:focus {
+    border-color: #80c0ff;
+    outline: 0;
+    box-shadow: 0 0 0 0.2rem rgba(128, 192, 255, 0.5); }
+    .custom-select:focus::-ms-value {
+      color: #495057;
+      background-color: #fff; }
+  .custom-select[multiple], .custom-select[size]:not([size="1"]) {
+    height: auto;
+    padding-right: 0.75rem;
+    background-image: none; }
+  .custom-select:disabled {
+    color: #6c757d;
+    background-color: #e9ecef; }
+  .custom-select::-ms-expand {
+    opacity: 0; }
+
+.custom-select-sm {
+  height: calc(1.61563rem + 2px);
+  padding-top: 0.375rem;
+  padding-bottom: 0.375rem;
+  font-size: 75%; }
+
+.custom-select-lg {
+  height: calc(2.59375rem + 2px);
+  padding-top: 0.375rem;
+  padding-bottom: 0.375rem;
+  font-size: 125%; }
+
+.custom-file {
+  position: relative;
+  display: inline-block;
+  width: 100%;
+  height: calc(2.28rem + 2px);
+  margin-bottom: 0; }
+
+.custom-file-input {
+  position: relative;
+  z-index: 2;
+  width: 100%;
+  height: calc(2.28rem + 2px);
+  margin: 0;
+  opacity: 0; }
+  .custom-file-input:focus ~ .custom-file-label {
+    border-color: #80c0ff;
+    box-shadow: 0 0 0 0.2rem rgba(0, 128, 255, 0.25); }
+    .custom-file-input:focus ~ .custom-file-label::after {
+      border-color: #80c0ff; }
+  .custom-file-input:disabled ~ .custom-file-label {
+    background-color: #e9ecef; }
+  .custom-file-input:lang(en) ~ .custom-file-label::after {
+    content: "Browse"; }
+
+.custom-file-label {
+  position: absolute;
+  top: 0;
+  right: 0;
+  left: 0;
+  z-index: 1;
+  height: calc(2.28rem + 2px);
+  padding: 0.375rem 1rem;
+  line-height: 1.8;
+  color: #495057;
+  background-color: #fff;
+  border: 1px solid #ced4da;
+  border-radius: 0.75rem; }
+  .custom-file-label::after {
+    position: absolute;
+    top: 0;
+    right: 0;
+    bottom: 0;
+    z-index: 3;
+    display: block;
+    height: 2.28rem;
+    padding: 0.375rem 1rem;
+    line-height: 1.8;
+    color: #495057;
+    content: "Browse";
+    background-color: #e9ecef;
+    border-left: 1px solid #ced4da;
+    border-radius: 0 0.75rem 0.75rem 0; }
+
+.custom-range {
+  width: 100%;
+  padding-left: 0;
+  background-color: transparent;
+  -webkit-appearance: none;
+     -moz-appearance: none;
+          appearance: none; }
+  .custom-range:focus {
+    outline: none; }
+    .custom-range:focus::-webkit-slider-thumb {
+      box-shadow: 0 0 0 1px #111, 0 0 0 0.2rem rgba(0, 128, 255, 0.25); }
+    .custom-range:focus::-moz-range-thumb {
+      box-shadow: 0 0 0 1px #111, 0 0 0 0.2rem rgba(0, 128, 255, 0.25); }
+    .custom-range:focus::-ms-thumb {
+      box-shadow: 0 0 0 1px #111, 0 0 0 0.2rem rgba(0, 128, 255, 0.25); }
+  .custom-range::-moz-focus-outer {
+    border: 0; }
+  .custom-range::-webkit-slider-thumb {
+    width: 1rem;
+    height: 1rem;
+    margin-top: -0.25rem;
+    background-color: #0080ff;
+    border: 0;
+    border-radius: 1rem;
+    transition: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;
+    -webkit-appearance: none;
+            appearance: none; }
+    @media screen and (prefers-reduced-motion: reduce) {
+      .custom-range::-webkit-slider-thumb {
+        transition: none; } }
+    .custom-range::-webkit-slider-thumb:active {
+      background-color: #b3d9ff; }
+  .custom-range::-webkit-slider-runnable-track {
+    width: 100%;
+    height: 0.5rem;
+    color: transparent;
+    cursor: pointer;
+    background-color: #dee2e6;
+    border-color: transparent;
+    border-radius: 1rem; }
+  .custom-range::-moz-range-thumb {
+    width: 1rem;
+    height: 1rem;
+    background-color: #0080ff;
+    border: 0;
+    border-radius: 1rem;
+    transition: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;
+    -moz-appearance: none;
+         appearance: none; }
+    @media screen and (prefers-reduced-motion: reduce) {
+      .custom-range::-moz-range-thumb {
+        transition: none; } }
+    .custom-range::-moz-range-thumb:active {
+      background-color: #b3d9ff; }
+  .custom-range::-moz-range-track {
+    width: 100%;
+    height: 0.5rem;
+    color: transparent;
+    cursor: pointer;
+    background-color: #dee2e6;
+    border-color: transparent;
+    border-radius: 1rem; }
+  .custom-range::-ms-thumb {
+    width: 1rem;
+    height: 1rem;
+    margin-top: 0;
+    margin-right: 0.2rem;
+    margin-left: 0.2rem;
+    background-color: #0080ff;
+    border: 0;
+    border-radius: 1rem;
+    transition: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;
+    appearance: none; }
+    @media screen and (prefers-reduced-motion: reduce) {
+      .custom-range::-ms-thumb {
+        transition: none; } }
+    .custom-range::-ms-thumb:active {
+      background-color: #b3d9ff; }
+  .custom-range::-ms-track {
+    width: 100%;
+    height: 0.5rem;
+    color: transparent;
+    cursor: pointer;
+    background-color: transparent;
+    border-color: transparent;
+    border-width: 0.5rem; }
+  .custom-range::-ms-fill-lower {
+    background-color: #dee2e6;
+    border-radius: 1rem; }
+  .custom-range::-ms-fill-upper {
+    margin-right: 15px;
+    background-color: #dee2e6;
+    border-radius: 1rem; }
+
+.custom-control-label::before,
+.custom-file-label,
+.custom-select {
+  transition: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out; }
+  @media screen and (prefers-reduced-motion: reduce) {
+    .custom-control-label::before,
+    .custom-file-label,
+    .custom-select {
+      transition: none; } }
+
+.nav {
+  display: flex;
+  flex-wrap: wrap;
+  padding-left: 0;
+  margin-bottom: 0;
+  list-style: none; }
+
+.nav-link {
+  display: block;
+  padding: 0.5rem 1rem; }
+  .nav-link:hover, .nav-link:focus {
+    text-decoration: none; }
+  .nav-link.disabled {
+    color: #6c757d; }
+
+.nav-tabs {
+  border-bottom: 1px solid #0080ff; }
+  .nav-tabs .nav-item {
+    margin-bottom: -1px; }
+  .nav-tabs .nav-link {
+    border: 1px solid transparent;
+    border-top-left-radius: 0.75rem;
+    border-top-right-radius: 0.75rem; }
+    .nav-tabs .nav-link:hover, .nav-tabs .nav-link:focus {
+      border-color: transparent; }
+    .nav-tabs .nav-link.disabled {
+      color: #6c757d;
+      background-color: transparent;
+      border-color: transparent; }
+  .nav-tabs .nav-link.active,
+  .nav-tabs .nav-item.show .nav-link {
+    color: #303030;
+    background-color: #0080ff;
+    border-color: #0080ff; }
+  .nav-tabs .dropdown-menu {
+    margin-top: -1px;
+    border-top-left-radius: 0;
+    border-top-right-radius: 0; }
+
+.nav-pills .nav-link {
+  border-radius: 0.75rem; }
+
+.nav-pills .nav-link.active,
+.nav-pills .show > .nav-link {
+  color: #303030;
+  background-color: #0080ff; }
+
+.nav-fill .nav-item {
+  flex: 1 1 auto;
+  text-align: center; }
+
+.nav-justified .nav-item {
+  flex-basis: 0;
+  flex-grow: 1;
+  text-align: center; }
+
+.tab-content > .tab-pane {
+  display: none; }
+
+.tab-content > .active {
+  display: block; }
+
+.navbar {
+  position: relative;
+  display: flex;
+  flex-wrap: wrap;
+  align-items: center;
+  justify-content: space-between;
+  padding: 0.75rem 1.5rem; }
+  .navbar > .container,
+  .navbar > .container-fluid {
+    display: flex;
+    flex-wrap: wrap;
+    align-items: center;
+    justify-content: space-between; }
+
+.navbar-brand {
+  display: inline-block;
+  padding-top: 0.30875rem;
+  padding-bottom: 0.30875rem;
+  margin-right: 1.5rem;
+  font-size: 1.0625rem;
+  line-height: inherit;
+  white-space: nowrap; }
+  .navbar-brand:hover, .navbar-brand:focus {
+    text-decoration: none; }
+
+.navbar-nav {
+  display: flex;
+  flex-direction: column;
+  padding-left: 0;
+  margin-bottom: 0;
+  list-style: none; }
+  .navbar-nav .nav-link {
+    padding-right: 0;
+    padding-left: 0; }
+  .navbar-nav .dropdown-menu {
+    position: static;
+    float: none; }
+
+.navbar-text {
+  display: inline-block;
+  padding-top: 0.5rem;
+  padding-bottom: 0.5rem; }
+
+.navbar-collapse {
+  flex-basis: 100%;
+  flex-grow: 1;
+  align-items: center; }
+
+.navbar-toggler {
+  padding: 0.25rem 0.75rem;
+  font-size: 1.0625rem;
+  line-height: 1;
+  background-color: transparent;
+  border: 1px solid transparent;
+  border-radius: 0.75rem; }
+  .navbar-toggler:hover, .navbar-toggler:focus {
+    text-decoration: none; }
+  .navbar-toggler:not(:disabled):not(.disabled) {
+    cursor: pointer; }
+
+.navbar-toggler-icon {
+  display: inline-block;
+  width: 1.5em;
+  height: 1.5em;
+  vertical-align: middle;
+  content: "";
+  background: no-repeat center center;
+  background-size: 100% 100%; }
+
+@media (max-width: 575.98px) {
+  .navbar-expand-sm > .container,
+  .navbar-expand-sm > .container-fluid {
+    padding-right: 0;
+    padding-left: 0; } }
+
+@media (min-width: 576px) {
+  .navbar-expand-sm {
+    flex-flow: row nowrap;
+    justify-content: flex-start; }
+    .navbar-expand-sm .navbar-nav {
+      flex-direction: row; }
+      .navbar-expand-sm .navbar-nav .dropdown-menu {
+        position: absolute; }
+      .navbar-expand-sm .navbar-nav .nav-link {
+        padding-right: 0.5rem;
+        padding-left: 0.5rem; }
+    .navbar-expand-sm > .container,
+    .navbar-expand-sm > .container-fluid {
+      flex-wrap: nowrap; }
+    .navbar-expand-sm .navbar-collapse {
+      display: flex !important;
+      flex-basis: auto; }
+    .navbar-expand-sm .navbar-toggler {
+      display: none; } }
+
+@media (max-width: 767.98px) {
+  .navbar-expand-md > .container,
+  .navbar-expand-md > .container-fluid {
+    padding-right: 0;
+    padding-left: 0; } }
+
+@media (min-width: 768px) {
+  .navbar-expand-md {
+    flex-flow: row nowrap;
+    justify-content: flex-start; }
+    .navbar-expand-md .navbar-nav {
+      flex-direction: row; }
+      .navbar-expand-md .navbar-nav .dropdown-menu {
+        position: absolute; }
+      .navbar-expand-md .navbar-nav .nav-link {
+        padding-right: 0.5rem;
+        padding-left: 0.5rem; }
+    .navbar-expand-md > .container,
+    .navbar-expand-md > .container-fluid {
+      flex-wrap: nowrap; }
+    .navbar-expand-md .navbar-collapse {
+      display: flex !important;
+      flex-basis: auto; }
+    .navbar-expand-md .navbar-toggler {
+      display: none; } }
+
+@media (max-width: 991.98px) {
+  .navbar-expand-lg > .container,
+  .navbar-expand-lg > .container-fluid {
+    padding-right: 0;
+    padding-left: 0; } }
+
+@media (min-width: 992px) {
+  .navbar-expand-lg {
+    flex-flow: row nowrap;
+    justify-content: flex-start; }
+    .navbar-expand-lg .navbar-nav {
+      flex-direction: row; }
+      .navbar-expand-lg .navbar-nav .dropdown-menu {
+        position: absolute; }
+      .navbar-expand-lg .navbar-nav .nav-link {
+        padding-right: 0.5rem;
+        padding-left: 0.5rem; }
+    .navbar-expand-lg > .container,
+    .navbar-expand-lg > .container-fluid {
+      flex-wrap: nowrap; }
+    .navbar-expand-lg .navbar-collapse {
+      display: flex !important;
+      flex-basis: auto; }
+    .navbar-expand-lg .navbar-toggler {
+      display: none; } }
+
+@media (max-width: 1199.98px) {
+  .navbar-expand-xl > .container,
+  .navbar-expand-xl > .container-fluid {
+    padding-right: 0;
+    padding-left: 0; } }
+
+@media (min-width: 1200px) {
+  .navbar-expand-xl {
+    flex-flow: row nowrap;
+    justify-content: flex-start; }
+    .navbar-expand-xl .navbar-nav {
+      flex-direction: row; }
+      .navbar-expand-xl .navbar-nav .dropdown-menu {
+        position: absolute; }
+      .navbar-expand-xl .navbar-nav .nav-link {
+        padding-right: 0.5rem;
+        padding-left: 0.5rem; }
+    .navbar-expand-xl > .container,
+    .navbar-expand-xl > .container-fluid {
+      flex-wrap: nowrap; }
+    .navbar-expand-xl .navbar-collapse {
+      display: flex !important;
+      flex-basis: auto; }
+    .navbar-expand-xl .navbar-toggler {
+      display: none; } }
+
+.navbar-expand {
+  flex-flow: row nowrap;
+  justify-content: flex-start; }
+  .navbar-expand > .container,
+  .navbar-expand > .container-fluid {
+    padding-right: 0;
+    padding-left: 0; }
+  .navbar-expand .navbar-nav {
+    flex-direction: row; }
+    .navbar-expand .navbar-nav .dropdown-menu {
+      position: absolute; }
+    .navbar-expand .navbar-nav .nav-link {
+      padding-right: 0.5rem;
+      padding-left: 0.5rem; }
+  .navbar-expand > .container,
+  .navbar-expand > .container-fluid {
+    flex-wrap: nowrap; }
+  .navbar-expand .navbar-collapse {
+    display: flex !important;
+    flex-basis: auto; }
+  .navbar-expand .navbar-toggler {
+    display: none; }
+
+.navbar-light .navbar-brand {
+  color: rgba(0, 0, 0, 0.9); }
+  .navbar-light .navbar-brand:hover, .navbar-light .navbar-brand:focus {
+    color: rgba(0, 0, 0, 0.9); }
+
+.navbar-light .navbar-nav .nav-link {
+  color: rgba(0, 0, 0, 0.6); }
+  .navbar-light .navbar-nav .nav-link:hover, .navbar-light .navbar-nav .nav-link:focus {
+    color: rgba(0, 0, 0, 0.7); }
+  .navbar-light .navbar-nav .nav-link.disabled {
+    color: rgba(0, 0, 0, 0.3); }
+
+.navbar-light .navbar-nav .show > .nav-link,
+.navbar-light .navbar-nav .active > .nav-link,
+.navbar-light .navbar-nav .nav-link.show,
+.navbar-light .navbar-nav .nav-link.active {
+  color: rgba(0, 0, 0, 0.9); }
+
+.navbar-light .navbar-toggler {
+  color: rgba(0, 0, 0, 0.6);
+  border-color: rgba(0, 0, 0, 0.1); }
+
+.navbar-light .navbar-toggler-icon {
+  background-image: url("data:image/svg+xml;charset=utf8,%3Csvg viewBox='0 0 30 30' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath stroke='rgba(0, 0, 0, 0.6)' stroke-width='2' stroke-linecap='round' stroke-miterlimit='10' d='M4 7h22M4 15h22M4 23h22'/%3E%3C/svg%3E"); }
+
+.navbar-light .navbar-text {
+  color: rgba(0, 0, 0, 0.6); }
+  .navbar-light .navbar-text a {
+    color: rgba(0, 0, 0, 0.9); }
+    .navbar-light .navbar-text a:hover, .navbar-light .navbar-text a:focus {
+      color: rgba(0, 0, 0, 0.9); }
+
+.navbar-dark .navbar-brand {
+  color: #fff; }
+  .navbar-dark .navbar-brand:hover, .navbar-dark .navbar-brand:focus {
+    color: #fff; }
+
+.navbar-dark .navbar-nav .nav-link {
+  color: rgba(255, 255, 255, 0.5); }
+  .navbar-dark .navbar-nav .nav-link:hover, .navbar-dark .navbar-nav .nav-link:focus {
+    color: rgba(255, 255, 255, 0.75); }
+  .navbar-dark .navbar-nav .nav-link.disabled {
+    color: rgba(255, 255, 255, 0.25); }
+
+.navbar-dark .navbar-nav .show > .nav-link,
+.navbar-dark .navbar-nav .active > .nav-link,
+.navbar-dark .navbar-nav .nav-link.show,
+.navbar-dark .navbar-nav .nav-link.active {
+  color: #fff; }
+
+.navbar-dark .navbar-toggler {
+  color: rgba(255, 255, 255, 0.5);
+  border-color: rgba(255, 255, 255, 0.1); }
+
+.navbar-dark .navbar-toggler-icon {
+  background-image: url("data:image/svg+xml;charset=utf8,%3Csvg viewBox='0 0 30 30' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath stroke='rgba(255, 255, 255, 0.5)' stroke-width='2' stroke-linecap='round' stroke-miterlimit='10' d='M4 7h22M4 15h22M4 23h22'/%3E%3C/svg%3E"); }
+
+.navbar-dark .navbar-text {
+  color: rgba(255, 255, 255, 0.5); }
+  .navbar-dark .navbar-text a {
+    color: #fff; }
+    .navbar-dark .navbar-text a:hover, .navbar-dark .navbar-text a:focus {
+      color: #fff; }
+
+.card {
+  position: relative;
+  display: flex;
+  flex-direction: column;
+  min-width: 0;
+  word-wrap: break-word;
+  background-color: rgba(51, 51, 51, 0.5);
+  background-clip: border-box;
+  border: 0px solid rgba(0, 0, 0, 0.125);
+  border-radius: 0.75rem; }
+  .card > hr {
+    margin-right: 0;
+    margin-left: 0; }
+  .card > .list-group:first-child .list-group-item:first-child {
+    border-top-left-radius: 0.75rem;
+    border-top-right-radius: 0.75rem; }
+  .card > .list-group:last-child .list-group-item:last-child {
+    border-bottom-right-radius: 0.75rem;
+    border-bottom-left-radius: 0.75rem; }
+
+.card-body {
+  flex: 1 1 auto;
+  padding: 1.25rem; }
+
+.card-title {
+  margin-bottom: 0.75rem; }
+
+.card-subtitle {
+  margin-top: -0.375rem;
+  margin-bottom: 0; }
+
+.card-text:last-child {
+  margin-bottom: 0; }
+
+.card-link:hover {
+  text-decoration: none; }
+
+.card-link + .card-link {
+  margin-left: 1.25rem; }
+
+.card-header {
+  padding: 0.75rem 1.25rem;
+  margin-bottom: 0;
+  background-color: rgba(0, 0, 0, 0.03);
+  border-bottom: 0px solid rgba(0, 0, 0, 0.125); }
+  .card-header:first-child {
+    border-radius: calc(0.75rem - 0px) calc(0.75rem - 0px) 0 0; }
+  .card-header + .list-group .list-group-item:first-child {
+    border-top: 0; }
+
+.card-footer {
+  padding: 0.75rem 1.25rem;
+  background-color: rgba(0, 0, 0, 0.03);
+  border-top: 0px solid rgba(0, 0, 0, 0.125); }
+  .card-footer:last-child {
+    border-radius: 0 0 calc(0.75rem - 0px) calc(0.75rem - 0px); }
+
+.card-header-tabs {
+  margin-right: -0.625rem;
+  margin-bottom: -0.75rem;
+  margin-left: -0.625rem;
+  border-bottom: 0; }
+
+.card-header-pills {
+  margin-right: -0.625rem;
+  margin-left: -0.625rem; }
+
+.card-img-overlay {
+  position: absolute;
+  top: 0;
+  right: 0;
+  bottom: 0;
+  left: 0;
+  padding: 1.25rem; }
+
+.card-img {
+  width: 100%;
+  border-radius: calc(0.75rem - 0px); }
+
+.card-img-top {
+  width: 100%;
+  border-top-left-radius: calc(0.75rem - 0px);
+  border-top-right-radius: calc(0.75rem - 0px); }
+
+.card-img-bottom {
+  width: 100%;
+  border-bottom-right-radius: calc(0.75rem - 0px);
+  border-bottom-left-radius: calc(0.75rem - 0px); }
+
+.card-deck {
+  display: flex;
+  flex-direction: column; }
+  .card-deck .card {
+    margin-bottom: 15px; }
+  @media (min-width: 576px) {
+    .card-deck {
+      flex-flow: row wrap;
+      margin-right: -15px;
+      margin-left: -15px; }
+      .card-deck .card {
+        display: flex;
+        flex: 1 0 0%;
+        flex-direction: column;
+        margin-right: 15px;
+        margin-bottom: 0;
+        margin-left: 15px; } }
+
+.card-group {
+  display: flex;
+  flex-direction: column; }
+  .card-group > .card {
+    margin-bottom: 15px; }
+  @media (min-width: 576px) {
+    .card-group {
+      flex-flow: row wrap; }
+      .card-group > .card {
+        flex: 1 0 0%;
+        margin-bottom: 0; }
+        .card-group > .card + .card {
+          margin-left: 0;
+          border-left: 0; }
+        .card-group > .card:first-child {
+          border-top-right-radius: 0;
+          border-bottom-right-radius: 0; }
+          .card-group > .card:first-child .card-img-top,
+          .card-group > .card:first-child .card-header {
+            border-top-right-radius: 0; }
+          .card-group > .card:first-child .card-img-bottom,
+          .card-group > .card:first-child .card-footer {
+            border-bottom-right-radius: 0; }
+        .card-group > .card:last-child {
+          border-top-left-radius: 0;
+          border-bottom-left-radius: 0; }
+          .card-group > .card:last-child .card-img-top,
+          .card-group > .card:last-child .card-header {
+            border-top-left-radius: 0; }
+          .card-group > .card:last-child .card-img-bottom,
+          .card-group > .card:last-child .card-footer {
+            border-bottom-left-radius: 0; }
+        .card-group > .card:only-child {
+          border-radius: 0.75rem; }
+          .card-group > .card:only-child .card-img-top,
+          .card-group > .card:only-child .card-header {
+            border-top-left-radius: 0.75rem;
+            border-top-right-radius: 0.75rem; }
+          .card-group > .card:only-child .card-img-bottom,
+          .card-group > .card:only-child .card-footer {
+            border-bottom-right-radius: 0.75rem;
+            border-bottom-left-radius: 0.75rem; }
+        .card-group > .card:not(:first-child):not(:last-child):not(:only-child) {
+          border-radius: 0; }
+          .card-group > .card:not(:first-child):not(:last-child):not(:only-child) .card-img-top,
+          .card-group > .card:not(:first-child):not(:last-child):not(:only-child) .card-img-bottom,
+          .card-group > .card:not(:first-child):not(:last-child):not(:only-child) .card-header,
+          .card-group > .card:not(:first-child):not(:last-child):not(:only-child) .card-footer {
+            border-radius: 0; } }
+
+.card-columns .card {
+  margin-bottom: 0.75rem; }
+
+@media (min-width: 576px) {
+  .card-columns {
+    -webkit-column-count: 3;
+            column-count: 3;
+    -webkit-column-gap: 1.25rem;
+            column-gap: 1.25rem;
+    orphans: 1;
+    widows: 1; }
+    .card-columns .card {
+      display: inline-block;
+      width: 100%; } }
+
+.accordion .card:not(:first-of-type):not(:last-of-type) {
+  border-bottom: 0;
+  border-radius: 0; }
+
+.accordion .card:not(:first-of-type) .card-header:first-child {
+  border-radius: 0; }
+
+.accordion .card:first-of-type {
+  border-bottom: 0;
+  border-bottom-right-radius: 0;
+  border-bottom-left-radius: 0; }
+
+.accordion .card:last-of-type {
+  border-top-left-radius: 0;
+  border-top-right-radius: 0; }
+
+.breadcrumb {
+  display: flex;
+  flex-wrap: wrap;
+  padding: 0.75rem 1rem;
+  margin-bottom: 1rem;
+  list-style: none;
+  background-color: transparent;
+  border-radius: 0.75rem; }
+
+.breadcrumb-item + .breadcrumb-item {
+  padding-left: 0.5rem; }
+  .breadcrumb-item + .breadcrumb-item::before {
+    display: inline-block;
+    padding-right: 0.5rem;
+    color: #6c757d;
+    content: "/"; }
+
+.breadcrumb-item + .breadcrumb-item:hover::before {
+  text-decoration: underline; }
+
+.breadcrumb-item + .breadcrumb-item:hover::before {
+  text-decoration: none; }
+
+.breadcrumb-item.active {
+  color: #f3f3f3; }
+
+.pagination {
+  display: flex;
+  padding-left: 0;
+  list-style: none;
+  border-radius: 0.75rem; }
+
+.page-link {
+  position: relative;
+  display: block;
+  padding: 0.5rem 0.75rem;
+  margin-left: -1px;
+  line-height: 1.25;
+  color: #0080ff;
+  background-color: #111;
+  border: 1px solid #303030; }
+  .page-link:hover {
+    z-index: 2;
+    color: white;
+    text-decoration: none;
+    background-color: #111;
+    border-color: #303030; }
+  .page-link:focus {
+    z-index: 2;
+    outline: 0;
+    box-shadow: 0 0 0 0.2rem rgba(0, 128, 255, 0.25); }
+  .page-link:not(:disabled):not(.disabled) {
+    cursor: pointer; }
+
+.page-item:first-child .page-link {
+  margin-left: 0;
+  border-top-left-radius: 0.75rem;
+  border-bottom-left-radius: 0.75rem; }
+
+.page-item:last-child .page-link {
+  border-top-right-radius: 0.75rem;
+  border-bottom-right-radius: 0.75rem; }
+
+.page-item.active .page-link {
+  z-index: 1;
+  color: #303030;
+  background-color: #0080ff;
+  border-color: #303030; }
+
+.page-item.disabled .page-link {
+  color: #6c757d;
+  pointer-events: none;
+  cursor: auto;
+  background-color: #fff;
+  border-color: #dee2e6; }
+
+.pagination-lg .page-link {
+  padding: 0.75rem 1.5rem;
+  font-size: 1.0625rem;
+  line-height: 1.5; }
+
+.pagination-lg .page-item:first-child .page-link {
+  border-top-left-radius: 0.9rem;
+  border-bottom-left-radius: 0.9rem; }
+
+.pagination-lg .page-item:last-child .page-link {
+  border-top-right-radius: 0.9rem;
+  border-bottom-right-radius: 0.9rem; }
+
+.pagination-sm .page-link {
+  padding: 0.25rem 0.5rem;
+  font-size: 0.74375rem;
+  line-height: 1.5; }
+
+.pagination-sm .page-item:first-child .page-link {
+  border-top-left-radius: 0.3rem;
+  border-bottom-left-radius: 0.3rem; }
+
+.pagination-sm .page-item:last-child .page-link {
+  border-top-right-radius: 0.3rem;
+  border-bottom-right-radius: 0.3rem; }
+
+.badge {
+  display: inline-block;
+  padding: 0.25em 0.4em;
+  font-size: 75%;
+  font-weight: 700;
+  line-height: 1;
+  text-align: center;
+  white-space: nowrap;
+  vertical-align: baseline;
+  border-radius: 0.75rem; }
+  .badge:empty {
+    display: none; }
+
+.btn .badge {
+  position: relative;
+  top: -1px; }
+
+.badge-pill {
+  padding-right: 0.6em;
+  padding-left: 0.6em;
+  border-radius: 10rem; }
+
+.badge-primary {
+  color: #fff;
+  background-color: #0080ff; }
+  .badge-primary[href]:hover, .badge-primary[href]:focus {
+    color: #fff;
+    text-decoration: none;
+    background-color: #0066cc; }
+
+.badge-secondary {
+  color: #fff;
+  background-color: #0060aa; }
+  .badge-secondary[href]:hover, .badge-secondary[href]:focus {
+    color: #fff;
+    text-decoration: none;
+    background-color: #004377; }
+
+.badge-success {
+  color: #fff;
+  background-color: #28a745; }
+  .badge-success[href]:hover, .badge-success[href]:focus {
+    color: #fff;
+    text-decoration: none;
+    background-color: #1e7e34; }
+
+.badge-info {
+  color: #fff;
+  background-color: #00aaff; }
+  .badge-info[href]:hover, .badge-info[href]:focus {
+    color: #fff;
+    text-decoration: none;
+    background-color: #0088cc; }
+
+.badge-warning {
+  color: #212529;
+  background-color: #ffc107; }
+  .badge-warning[href]:hover, .badge-warning[href]:focus {
+    color: #212529;
+    text-decoration: none;
+    background-color: #d39e00; }
+
+.badge-danger {
+  color: #fff;
+  background-color: #dc3545; }
+  .badge-danger[href]:hover, .badge-danger[href]:focus {
+    color: #fff;
+    text-decoration: none;
+    background-color: #bd2130; }
+
+.badge-light {
+  color: #212529;
+  background-color: #f3f3f3; }
+  .badge-light[href]:hover, .badge-light[href]:focus {
+    color: #212529;
+    text-decoration: none;
+    background-color: #dadada; }
+
+.badge-dark {
+  color: #fff;
+  background-color: #303030; }
+  .badge-dark[href]:hover, .badge-dark[href]:focus {
+    color: #fff;
+    text-decoration: none;
+    background-color: #171717; }
+
+.jumbotron {
+  padding: 2rem 1rem;
+  margin-bottom: 2rem;
+  background-color: #e9ecef;
+  border-radius: 0.9rem; }
+  @media (min-width: 576px) {
+    .jumbotron {
+      padding: 4rem 2rem; } }
+
+.jumbotron-fluid {
+  padding-right: 0;
+  padding-left: 0;
+  border-radius: 0; }
+
+.alert {
+  position: relative;
+  padding: 0.75rem 1.25rem;
+  margin-bottom: 1rem;
+  border: 1px solid transparent;
+  border-radius: 0.75rem; }
+
+.alert-heading {
+  color: inherit; }
+
+.alert-link {
+  font-weight: 700; }
+
+.alert-dismissible {
+  padding-right: 3.775rem; }
+  .alert-dismissible .close {
+    position: absolute;
+    top: 0;
+    right: 0;
+    padding: 0.75rem 1.25rem;
+    color: inherit; }
+
+.alert-primary {
+  color: #004385;
+  background-color: #cce6ff;
+  border-color: #b8dbff; }
+  .alert-primary hr {
+    border-top-color: #9fceff; }
+  .alert-primary .alert-link {
+    color: #002952; }
+
+.alert-secondary {
+  color: #003258;
+  background-color: #ccdfee;
+  border-color: #b8d2e7; }
+  .alert-secondary hr {
+    border-top-color: #a5c6e1; }
+  .alert-secondary .alert-link {
+    color: #001525; }
+
+.alert-success {
+  color: #155724;
+  background-color: #d4edda;
+  border-color: #c3e6cb; }
+  .alert-success hr {
+    border-top-color: #b1dfbb; }
+  .alert-success .alert-link {
+    color: #0b2e13; }
+
+.alert-info {
+  color: #005885;
+  background-color: #cceeff;
+  border-color: #b8e7ff; }
+  .alert-info hr {
+    border-top-color: #9fdeff; }
+  .alert-info .alert-link {
+    color: #003652; }
+
+.alert-warning {
+  color: #856404;
+  background-color: #fff3cd;
+  border-color: #ffeeba; }
+  .alert-warning hr {
+    border-top-color: #ffe8a1; }
+  .alert-warning .alert-link {
+    color: #533f03; }
+
+.alert-danger {
+  color: #721c24;
+  background-color: #f8d7da;
+  border-color: #f5c6cb; }
+  .alert-danger hr {
+    border-top-color: #f1b0b7; }
+  .alert-danger .alert-link {
+    color: #491217; }
+
+.alert-light {
+  color: #7e7e7e;
+  background-color: #fdfdfd;
+  border-color: #fcfcfc; }
+  .alert-light hr {
+    border-top-color: #efefef; }
+  .alert-light .alert-link {
+    color: #656565; }
+
+.alert-dark {
+  color: #191919;
+  background-color: #d6d6d6;
+  border-color: #c5c5c5; }
+  .alert-dark hr {
+    border-top-color: #b8b8b8; }
+  .alert-dark .alert-link {
+    color: black; }
+
+@-webkit-keyframes progress-bar-stripes {
+  from {
+    background-position: 1rem 0; }
+  to {
+    background-position: 0 0; } }
+
+@keyframes progress-bar-stripes {
+  from {
+    background-position: 1rem 0; }
+  to {
+    background-position: 0 0; } }
+
+.progress {
+  display: flex;
+  height: 1rem;
+  overflow: hidden;
+  font-size: 0.6375rem;
+  background-color: #e9ecef;
+  border-radius: 0.75rem; }
+
+.progress-bar {
+  display: flex;
+  flex-direction: column;
+  justify-content: center;
+  color: #fff;
+  text-align: center;
+  white-space: nowrap;
+  background-color: #0080ff;
+  transition: width 0.6s ease; }
+  @media screen and (prefers-reduced-motion: reduce) {
+    .progress-bar {
+      transition: none; } }
+
+.progress-bar-striped {
+  background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
+  background-size: 1rem 1rem; }
+
+.progress-bar-animated {
+  -webkit-animation: progress-bar-stripes 1s linear infinite;
+          animation: progress-bar-stripes 1s linear infinite; }
+
+.media {
+  display: flex;
+  align-items: flex-start; }
+
+.media-body {
+  flex: 1; }
+
+.list-group {
+  display: flex;
+  flex-direction: column;
+  padding-left: 0;
+  margin-bottom: 0; }
+
+.list-group-item-action {
+  width: 100%;
+  color: #0080ff;
+  text-align: inherit; }
+  .list-group-item-action:hover, .list-group-item-action:focus {
+    color: #f3f3f3;
+    text-decoration: none;
+    background-color: #111; }
+  .list-group-item-action:active {
+    color: #efefef;
+    background-color: transparent; }
+
+.list-group-item {
+  position: relative;
+  display: block;
+  padding: 0.75rem 1.25rem;
+  margin-bottom: -1px;
+  background-color: #111;
+  border: 1px solid #303030; }
+  .list-group-item:first-child {
+    border-top-left-radius: 0.75rem;
+    border-top-right-radius: 0.75rem; }
+  .list-group-item:last-child {
+    margin-bottom: 0;
+    border-bottom-right-radius: 0.75rem;
+    border-bottom-left-radius: 0.75rem; }
+  .list-group-item:hover, .list-group-item:focus {
+    z-index: 1;
+    text-decoration: none; }
+  .list-group-item.disabled, .list-group-item:disabled {
+    color: #6c757d;
+    background-color: #111; }
+  .list-group-item.active {
+    z-index: 2;
+    color: #303030;
+    background-color: #0080ff;
+    border-color: #303030; }
+
+.list-group-flush .list-group-item {
+  border-right: 0;
+  border-left: 0;
+  border-radius: 0; }
+
+.list-group-flush:first-child .list-group-item:first-child {
+  border-top: 0; }
+
+.list-group-flush:last-child .list-group-item:last-child {
+  border-bottom: 0; }
+
+.list-group-item-primary {
+  color: #004385;
+  background-color: #b8dbff; }
+  .list-group-item-primary.list-group-item-action:hover, .list-group-item-primary.list-group-item-action:focus {
+    color: #004385;
+    background-color: #9fceff; }
+  .list-group-item-primary.list-group-item-action.active {
+    color: #fff;
+    background-color: #004385;
+    border-color: #004385; }
+
+.list-group-item-secondary {
+  color: #003258;
+  background-color: #b8d2e7; }
+  .list-group-item-secondary.list-group-item-action:hover, .list-group-item-secondary.list-group-item-action:focus {
+    color: #003258;
+    background-color: #a5c6e1; }
+  .list-group-item-secondary.list-group-item-action.active {
+    color: #fff;
+    background-color: #003258;
+    border-color: #003258; }
+
+.list-group-item-success {
+  color: #155724;
+  background-color: #c3e6cb; }
+  .list-group-item-success.list-group-item-action:hover, .list-group-item-success.list-group-item-action:focus {
+    color: #155724;
+    background-color: #b1dfbb; }
+  .list-group-item-success.list-group-item-action.active {
+    color: #fff;
+    background-color: #155724;
+    border-color: #155724; }
+
+.list-group-item-info {
+  color: #005885;
+  background-color: #b8e7ff; }
+  .list-group-item-info.list-group-item-action:hover, .list-group-item-info.list-group-item-action:focus {
+    color: #005885;
+    background-color: #9fdeff; }
+  .list-group-item-info.list-group-item-action.active {
+    color: #fff;
+    background-color: #005885;
+    border-color: #005885; }
+
+.list-group-item-warning {
+  color: #856404;
+  background-color: #ffeeba; }
+  .list-group-item-warning.list-group-item-action:hover, .list-group-item-warning.list-group-item-action:focus {
+    color: #856404;
+    background-color: #ffe8a1; }
+  .list-group-item-warning.list-group-item-action.active {
+    color: #fff;
+    background-color: #856404;
+    border-color: #856404; }
+
+.list-group-item-danger {
+  color: #721c24;
+  background-color: #f5c6cb; }
+  .list-group-item-danger.list-group-item-action:hover, .list-group-item-danger.list-group-item-action:focus {
+    color: #721c24;
+    background-color: #f1b0b7; }
+  .list-group-item-danger.list-group-item-action.active {
+    color: #fff;
+    background-color: #721c24;
+    border-color: #721c24; }
+
+.list-group-item-light {
+  color: #7e7e7e;
+  background-color: #fcfcfc; }
+  .list-group-item-light.list-group-item-action:hover, .list-group-item-light.list-group-item-action:focus {
+    color: #7e7e7e;
+    background-color: #efefef; }
+  .list-group-item-light.list-group-item-action.active {
+    color: #fff;
+    background-color: #7e7e7e;
+    border-color: #7e7e7e; }
+
+.list-group-item-dark {
+  color: #191919;
+  background-color: #c5c5c5; }
+  .list-group-item-dark.list-group-item-action:hover, .list-group-item-dark.list-group-item-action:focus {
+    color: #191919;
+    background-color: #b8b8b8; }
+  .list-group-item-dark.list-group-item-action.active {
+    color: #fff;
+    background-color: #191919;
+    border-color: #191919; }
+
+.close {
+  float: right;
+  font-size: 1.275rem;
+  font-weight: 700;
+  line-height: 1;
+  color: #000;
+  text-shadow: 0 1px 0 #fff;
+  opacity: .5; }
+  .close:not(:disabled):not(.disabled) {
+    cursor: pointer; }
+    .close:not(:disabled):not(.disabled):hover, .close:not(:disabled):not(.disabled):focus {
+      color: #000;
+      text-decoration: none;
+      opacity: .75; }
+
+button.close {
+  padding: 0;
+  background-color: transparent;
+  border: 0;
+  -webkit-appearance: none; }
+
+.modal-open {
+  overflow: hidden; }
+  .modal-open .modal {
+    overflow-x: hidden;
+    overflow-y: auto; }
+
+.modal {
+  position: fixed;
+  top: 20%;
+  right: 0;
+  bottom: 0;
+  left: 0;
+  z-index: 1050;
+  display: none;
+  overflow: hidden;
+  outline: 0; }
+
+.modal-dialog {
+  position: relative;
+  width: auto;
+  margin: 0.5rem;
+  pointer-events: none; }
+  .modal.fade .modal-dialog {
+    transition: -webkit-transform 0.3s ease-out;
+    transition: transform 0.3s ease-out;
+    transition: transform 0.3s ease-out, -webkit-transform 0.3s ease-out;
+    -webkit-transform: translate(0, -25%);
+            transform: translate(0, -25%); }
+    @media screen and (prefers-reduced-motion: reduce) {
+      .modal.fade .modal-dialog {
+        transition: none; } }
+  .modal.show .modal-dialog {
+    -webkit-transform: translate(0, 0);
+            transform: translate(0, 0); }
+
+.modal-dialog-centered {
+  display: flex;
+  align-items: center;
+  min-height: calc(100% - (0.5rem * 2)); }
+  .modal-dialog-centered::before {
+    display: block;
+    height: calc(100vh - (0.5rem * 2));
+    content: ""; }
+
+.modal-content {
+  position: relative;
+  display: flex;
+  flex-direction: column;
+  width: 100%;
+  pointer-events: auto;
+  background-color: #fff;
+  background-clip: padding-box;
+  border: 1px solid rgba(0, 0, 0, 0.2);
+  border-radius: 0.9rem;
+  outline: 0; }
+
+.modal-backdrop {
+  position: fixed;
+  top: 0;
+  right: 0;
+  bottom: 0;
+  left: 0;
+  z-index: 1040;
+  background-color: #000; }
+  .modal-backdrop.fade {
+    opacity: 0; }
+  .modal-backdrop.show {
+    opacity: 0.5; }
+
+.modal-header {
+  display: flex;
+  align-items: flex-start;
+  justify-content: space-between;
+  padding: 1rem;
+  border-bottom: 1px solid #e9ecef;
+  border-top-left-radius: 0.9rem;
+  border-top-right-radius: 0.9rem; }
+  .modal-header .close {
+    padding: 1rem;
+    margin: -1rem -1rem -1rem auto; }
+
+.modal-title {
+  margin-bottom: 0;
+  line-height: 1.8; }
+
+.modal-body {
+  position: relative;
+  flex: 1 1 auto;
+  padding: 1rem; }
+
+.modal-footer {
+  display: flex;
+  align-items: center;
+  justify-content: flex-end;
+  padding: 1rem;
+  border-top: 1px solid #e9ecef; }
+  .modal-footer > :not(:first-child) {
+    margin-left: .25rem; }
+  .modal-footer > :not(:last-child) {
+    margin-right: .25rem; }
+
+.modal-scrollbar-measure {
+  position: absolute;
+  top: -9999px;
+  width: 50px;
+  height: 50px;
+  overflow: scroll; }
+
+@media (min-width: 576px) {
+  .modal-dialog {
+    max-width: 500px;
+    margin: 1.75rem auto; }
+  .modal-dialog-centered {
+    min-height: calc(100% - (1.75rem * 2)); }
+    .modal-dialog-centered::before {
+      height: calc(100vh - (1.75rem * 2)); }
+  .modal-sm {
+    max-width: 300px; } }
+
+@media (min-width: 992px) {
+  .modal-lg {
+    max-width: 800px; } }
+
+.tooltip {
+  position: absolute;
+  z-index: 1070;
+  display: block;
+  margin: 0;
+  font-family: Montserrat;
+  font-style: normal;
+  font-weight: 200;
+  line-height: 1.8;
+  text-align: left;
+  text-align: start;
+  text-decoration: none;
+  text-shadow: none;
+  text-transform: none;
+  letter-spacing: normal;
+  word-break: normal;
+  word-spacing: normal;
+  white-space: normal;
+  line-break: auto;
+  font-size: 0.74375rem;
+  word-wrap: break-word;
+  opacity: 0; }
+  .tooltip.show {
+    opacity: 0.9; }
+  .tooltip .arrow {
+    position: absolute;
+    display: block;
+    width: 0.8rem;
+    height: 0.4rem; }
+    .tooltip .arrow::before {
+      position: absolute;
+      content: "";
+      border-color: transparent;
+      border-style: solid; }
+
+.bs-tooltip-top, .bs-tooltip-auto[x-placement^="top"] {
+  padding: 0.4rem 0; }
+  .bs-tooltip-top .arrow, .bs-tooltip-auto[x-placement^="top"] .arrow {
+    bottom: 0; }
+    .bs-tooltip-top .arrow::before, .bs-tooltip-auto[x-placement^="top"] .arrow::before {
+      top: 0;
+      border-width: 0.4rem 0.4rem 0;
+      border-top-color: #000; }
+
+.bs-tooltip-right, .bs-tooltip-auto[x-placement^="right"] {
+  padding: 0 0.4rem; }
+  .bs-tooltip-right .arrow, .bs-tooltip-auto[x-placement^="right"] .arrow {
+    left: 0;
+    width: 0.4rem;
+    height: 0.8rem; }
+    .bs-tooltip-right .arrow::before, .bs-tooltip-auto[x-placement^="right"] .arrow::before {
+      right: 0;
+      border-width: 0.4rem 0.4rem 0.4rem 0;
+      border-right-color: #000; }
+
+.bs-tooltip-bottom, .bs-tooltip-auto[x-placement^="bottom"] {
+  padding: 0.4rem 0; }
+  .bs-tooltip-bottom .arrow, .bs-tooltip-auto[x-placement^="bottom"] .arrow {
+    top: 0; }
+    .bs-tooltip-bottom .arrow::before, .bs-tooltip-auto[x-placement^="bottom"] .arrow::before {
+      bottom: 0;
+      border-width: 0 0.4rem 0.4rem;
+      border-bottom-color: #000; }
+
+.bs-tooltip-left, .bs-tooltip-auto[x-placement^="left"] {
+  padding: 0 0.4rem; }
+  .bs-tooltip-left .arrow, .bs-tooltip-auto[x-placement^="left"] .arrow {
+    right: 0;
+    width: 0.4rem;
+    height: 0.8rem; }
+    .bs-tooltip-left .arrow::before, .bs-tooltip-auto[x-placement^="left"] .arrow::before {
+      left: 0;
+      border-width: 0.4rem 0 0.4rem 0.4rem;
+      border-left-color: #000; }
+
+.tooltip-inner {
+  max-width: 200px;
+  padding: 0.25rem 0.5rem;
+  color: #fff;
+  text-align: center;
+  background-color: #000;
+  border-radius: 0.75rem; }
+
+.popover {
+  position: absolute;
+  top: 0;
+  left: 0;
+  z-index: 1060;
+  display: block;
+  max-width: 276px;
+  font-family: Montserrat;
+  font-style: normal;
+  font-weight: 200;
+  line-height: 1.8;
+  text-align: left;
+  text-align: start;
+  text-decoration: none;
+  text-shadow: none;
+  text-transform: none;
+  letter-spacing: normal;
+  word-break: normal;
+  word-spacing: normal;
+  white-space: normal;
+  line-break: auto;
+  font-size: 0.74375rem;
+  word-wrap: break-word;
+  background-color: #fff;
+  background-clip: padding-box;
+  border: 1px solid rgba(0, 0, 0, 0.2);
+  border-radius: 0.9rem; }
+  .popover .arrow {
+    position: absolute;
+    display: block;
+    width: 1rem;
+    height: 0.5rem;
+    margin: 0 0.9rem; }
+    .popover .arrow::before, .popover .arrow::after {
+      position: absolute;
+      display: block;
+      content: "";
+      border-color: transparent;
+      border-style: solid; }
+
+.bs-popover-top, .bs-popover-auto[x-placement^="top"] {
+  margin-bottom: 0.5rem; }
+  .bs-popover-top .arrow, .bs-popover-auto[x-placement^="top"] .arrow {
+    bottom: calc((0.5rem + 1px) * -1); }
+  .bs-popover-top .arrow::before, .bs-popover-auto[x-placement^="top"] .arrow::before,
+  .bs-popover-top .arrow::after,
+  .bs-popover-auto[x-placement^="top"] .arrow::after {
+    border-width: 0.5rem 0.5rem 0; }
+  .bs-popover-top .arrow::before, .bs-popover-auto[x-placement^="top"] .arrow::before {
+    bottom: 0;
+    border-top-color: rgba(0, 0, 0, 0.25); }
+  
+  .bs-popover-top .arrow::after,
+  .bs-popover-auto[x-placement^="top"] .arrow::after {
+    bottom: 1px;
+    border-top-color: #fff; }
+
+.bs-popover-right, .bs-popover-auto[x-placement^="right"] {
+  margin-left: 0.5rem; }
+  .bs-popover-right .arrow, .bs-popover-auto[x-placement^="right"] .arrow {
+    left: calc((0.5rem + 1px) * -1);
+    width: 0.5rem;
+    height: 1rem;
+    margin: 0.9rem 0; }
+  .bs-popover-right .arrow::before, .bs-popover-auto[x-placement^="right"] .arrow::before,
+  .bs-popover-right .arrow::after,
+  .bs-popover-auto[x-placement^="right"] .arrow::after {
+    border-width: 0.5rem 0.5rem 0.5rem 0; }
+  .bs-popover-right .arrow::before, .bs-popover-auto[x-placement^="right"] .arrow::before {
+    left: 0;
+    border-right-color: rgba(0, 0, 0, 0.25); }
+  
+  .bs-popover-right .arrow::after,
+  .bs-popover-auto[x-placement^="right"] .arrow::after {
+    left: 1px;
+    border-right-color: #fff; }
+
+.bs-popover-bottom, .bs-popover-auto[x-placement^="bottom"] {
+  margin-top: 0.5rem; }
+  .bs-popover-bottom .arrow, .bs-popover-auto[x-placement^="bottom"] .arrow {
+    top: calc((0.5rem + 1px) * -1); }
+  .bs-popover-bottom .arrow::before, .bs-popover-auto[x-placement^="bottom"] .arrow::before,
+  .bs-popover-bottom .arrow::after,
+  .bs-popover-auto[x-placement^="bottom"] .arrow::after {
+    border-width: 0 0.5rem 0.5rem 0.5rem; }
+  .bs-popover-bottom .arrow::before, .bs-popover-auto[x-placement^="bottom"] .arrow::before {
+    top: 0;
+    border-bottom-color: rgba(0, 0, 0, 0.25); }
+  
+  .bs-popover-bottom .arrow::after,
+  .bs-popover-auto[x-placement^="bottom"] .arrow::after {
+    top: 1px;
+    border-bottom-color: #fff; }
+  .bs-popover-bottom .popover-header::before, .bs-popover-auto[x-placement^="bottom"] .popover-header::before {
+    position: absolute;
+    top: 0;
+    left: 50%;
+    display: block;
+    width: 1rem;
+    margin-left: -0.5rem;
+    content: "";
+    border-bottom: 1px solid #f7f7f7; }
+
+.bs-popover-left, .bs-popover-auto[x-placement^="left"] {
+  margin-right: 0.5rem; }
+  .bs-popover-left .arrow, .bs-popover-auto[x-placement^="left"] .arrow {
+    right: calc((0.5rem + 1px) * -1);
+    width: 0.5rem;
+    height: 1rem;
+    margin: 0.9rem 0; }
+  .bs-popover-left .arrow::before, .bs-popover-auto[x-placement^="left"] .arrow::before,
+  .bs-popover-left .arrow::after,
+  .bs-popover-auto[x-placement^="left"] .arrow::after {
+    border-width: 0.5rem 0 0.5rem 0.5rem; }
+  .bs-popover-left .arrow::before, .bs-popover-auto[x-placement^="left"] .arrow::before {
+    right: 0;
+    border-left-color: rgba(0, 0, 0, 0.25); }
+  
+  .bs-popover-left .arrow::after,
+  .bs-popover-auto[x-placement^="left"] .arrow::after {
+    right: 1px;
+    border-left-color: #fff; }
+
+.popover-header {
+  padding: 0.5rem 0.75rem;
+  margin-bottom: 0;
+  font-size: 0.85rem;
+  color: inherit;
+  background-color: #f7f7f7;
+  border-bottom: 1px solid #ebebeb;
+  border-top-left-radius: calc(0.9rem - 1px);
+  border-top-right-radius: calc(0.9rem - 1px); }
+  .popover-header:empty {
+    display: none; }
+
+.popover-body {
+  padding: 0.5rem 0.75rem;
+  color: #efefef; }
+
+.carousel {
+  position: relative; }
+
+.carousel-inner {
+  position: relative;
+  width: 100%;
+  overflow: hidden; }
+
+.carousel-item {
+  position: relative;
+  display: none;
+  align-items: center;
+  width: 100%;
+  -webkit-backface-visibility: hidden;
+          backface-visibility: hidden;
+  -webkit-perspective: 1000px;
+          perspective: 1000px; }
+
+.carousel-item.active,
+.carousel-item-next,
+.carousel-item-prev {
+  display: block;
+  transition: -webkit-transform 0.6s ease;
+  transition: transform 0.6s ease;
+  transition: transform 0.6s ease, -webkit-transform 0.6s ease; }
+  @media screen and (prefers-reduced-motion: reduce) {
+    .carousel-item.active,
+    .carousel-item-next,
+    .carousel-item-prev {
+      transition: none; } }
+
+.carousel-item-next,
+.carousel-item-prev {
+  position: absolute;
+  top: 0; }
+
+.carousel-item-next.carousel-item-left,
+.carousel-item-prev.carousel-item-right {
+  -webkit-transform: translateX(0);
+          transform: translateX(0); }
+  @supports ((-webkit-transform-style: preserve-3d) or (transform-style: preserve-3d)) {
+    .carousel-item-next.carousel-item-left,
+    .carousel-item-prev.carousel-item-right {
+      -webkit-transform: translate3d(0, 0, 0);
+              transform: translate3d(0, 0, 0); } }
+
+.carousel-item-next,
+.active.carousel-item-right {
+  -webkit-transform: translateX(100%);
+          transform: translateX(100%); }
+  @supports ((-webkit-transform-style: preserve-3d) or (transform-style: preserve-3d)) {
+    .carousel-item-next,
+    .active.carousel-item-right {
+      -webkit-transform: translate3d(100%, 0, 0);
+              transform: translate3d(100%, 0, 0); } }
+
+.carousel-item-prev,
+.active.carousel-item-left {
+  -webkit-transform: translateX(-100%);
+          transform: translateX(-100%); }
+  @supports ((-webkit-transform-style: preserve-3d) or (transform-style: preserve-3d)) {
+    .carousel-item-prev,
+    .active.carousel-item-left {
+      -webkit-transform: translate3d(-100%, 0, 0);
+              transform: translate3d(-100%, 0, 0); } }
+
+.carousel-fade .carousel-item {
+  opacity: 0;
+  transition-duration: .6s;
+  transition-property: opacity; }
+
+.carousel-fade .carousel-item.active,
+.carousel-fade .carousel-item-next.carousel-item-left,
+.carousel-fade .carousel-item-prev.carousel-item-right {
+  opacity: 1; }
+
+.carousel-fade .active.carousel-item-left,
+.carousel-fade .active.carousel-item-right {
+  opacity: 0; }
+
+.carousel-fade .carousel-item-next,
+.carousel-fade .carousel-item-prev,
+.carousel-fade .carousel-item.active,
+.carousel-fade .active.carousel-item-left,
+.carousel-fade .active.carousel-item-prev {
+  -webkit-transform: translateX(0);
+          transform: translateX(0); }
+  @supports ((-webkit-transform-style: preserve-3d) or (transform-style: preserve-3d)) {
+    .carousel-fade .carousel-item-next,
+    .carousel-fade .carousel-item-prev,
+    .carousel-fade .carousel-item.active,
+    .carousel-fade .active.carousel-item-left,
+    .carousel-fade .active.carousel-item-prev {
+      -webkit-transform: translate3d(0, 0, 0);
+              transform: translate3d(0, 0, 0); } }
+
+.carousel-control-prev,
+.carousel-control-next {
+  position: absolute;
+  top: 0;
+  bottom: 0;
+  display: flex;
+  align-items: center;
+  justify-content: center;
+  width: 15%;
+  color: #fff;
+  text-align: center;
+  opacity: 0.5; }
+  .carousel-control-prev:hover, .carousel-control-prev:focus,
+  .carousel-control-next:hover,
+  .carousel-control-next:focus {
+    color: #fff;
+    text-decoration: none;
+    outline: 0;
+    opacity: .9; }
+
+.carousel-control-prev {
+  left: 0; }
+
+.carousel-control-next {
+  right: 0; }
+
+.carousel-control-prev-icon,
+.carousel-control-next-icon {
+  display: inline-block;
+  width: 20px;
+  height: 20px;
+  background: transparent no-repeat center center;
+  background-size: 100% 100%; }
+
+.carousel-control-prev-icon {
+  background-image: url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23fff' viewBox='0 0 8 8'%3E%3Cpath d='M5.25 0l-4 4 4 4 1.5-1.5-2.5-2.5 2.5-2.5-1.5-1.5z'/%3E%3C/svg%3E"); }
+
+.carousel-control-next-icon {
+  background-image: url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23fff' viewBox='0 0 8 8'%3E%3Cpath d='M2.75 0l-1.5 1.5 2.5 2.5-2.5 2.5 1.5 1.5 4-4-4-4z'/%3E%3C/svg%3E"); }
+
+.carousel-indicators {
+  position: absolute;
+  right: 0;
+  bottom: 10px;
+  left: 0;
+  z-index: 15;
+  display: flex;
+  justify-content: center;
+  padding-left: 0;
+  margin-right: 15%;
+  margin-left: 15%;
+  list-style: none; }
+  .carousel-indicators li {
+    position: relative;
+    flex: 0 1 auto;
+    width: 30px;
+    height: 6px;
+    margin-right: 3px;
+    margin-left: 3px;
+    text-indent: -999px;
+    cursor: pointer;
+    background-color: rgba(255, 255, 255, 0.5); }
+    .carousel-indicators li::before {
+      position: absolute;
+      top: -10px;
+      left: 0;
+      display: inline-block;
+      width: 100%;
+      height: 10px;
+      content: ""; }
+    .carousel-indicators li::after {
+      position: absolute;
+      bottom: -10px;
+      left: 0;
+      display: inline-block;
+      width: 100%;
+      height: 10px;
+      content: ""; }
+  .carousel-indicators .active {
+    background-color: #fff; }
+
+.carousel-caption {
+  position: absolute;
+  right: 0%;
+  bottom: 20px;
+  left: 0%;
+  z-index: 10;
+  padding-top: 20px;
+  padding-bottom: 20px;
+  color: #fff;
+  text-align: center; }
+
+.align-baseline {
+  vertical-align: baseline !important; }
+
+.align-top {
+  vertical-align: top !important; }
+
+.align-middle {
+  vertical-align: middle !important; }
+
+.align-bottom {
+  vertical-align: bottom !important; }
+
+.align-text-bottom {
+  vertical-align: text-bottom !important; }
+
+.align-text-top {
+  vertical-align: text-top !important; }
+
+.bg-primary {
+  background-color: #0080ff !important; }
+
+a.bg-primary:hover, a.bg-primary:focus,
+button.bg-primary:hover,
+button.bg-primary:focus {
+  background-color: #0066cc !important; }
+
+.bg-secondary {
+  background-color: #0060aa !important; }
+
+a.bg-secondary:hover, a.bg-secondary:focus,
+button.bg-secondary:hover,
+button.bg-secondary:focus {
+  background-color: #004377 !important; }
+
+.bg-success {
+  background-color: #28a745 !important; }
+
+a.bg-success:hover, a.bg-success:focus,
+button.bg-success:hover,
+button.bg-success:focus {
+  background-color: #1e7e34 !important; }
+
+.bg-info {
+  background-color: #00aaff !important; }
+
+a.bg-info:hover, a.bg-info:focus,
+button.bg-info:hover,
+button.bg-info:focus {
+  background-color: #0088cc !important; }
+
+.bg-warning {
+  background-color: #ffc107 !important; }
+
+a.bg-warning:hover, a.bg-warning:focus,
+button.bg-warning:hover,
+button.bg-warning:focus {
+  background-color: #d39e00 !important; }
+
+.bg-danger {
+  background-color: #dc3545 !important; }
+
+a.bg-danger:hover, a.bg-danger:focus,
+button.bg-danger:hover,
+button.bg-danger:focus {
+  background-color: #bd2130 !important; }
+
+.bg-light {
+  background-color: #f3f3f3 !important; }
+
+a.bg-light:hover, a.bg-light:focus,
+button.bg-light:hover,
+button.bg-light:focus {
+  background-color: #dadada !important; }
+
+.bg-dark {
+  background-color: #303030 !important; }
+
+a.bg-dark:hover, a.bg-dark:focus,
+button.bg-dark:hover,
+button.bg-dark:focus {
+  background-color: #171717 !important; }
+
+.bg-white {
+  background-color: #fff !important; }
+
+.bg-transparent {
+  background-color: transparent !important; }
+
+.border {
+  border: 1px solid #dee2e6 !important; }
+
+.border-top {
+  border-top: 1px solid #dee2e6 !important; }
+
+.border-right {
+  border-right: 1px solid #dee2e6 !important; }
+
+.border-bottom {
+  border-bottom: 1px solid #dee2e6 !important; }
+
+.border-left {
+  border-left: 1px solid #dee2e6 !important; }
+
+.border-0 {
+  border: 0 !important; }
+
+.border-top-0 {
+  border-top: 0 !important; }
+
+.border-right-0 {
+  border-right: 0 !important; }
+
+.border-bottom-0 {
+  border-bottom: 0 !important; }
+
+.border-left-0 {
+  border-left: 0 !important; }
+
+.border-primary {
+  border-color: #0080ff !important; }
+
+.border-secondary {
+  border-color: #0060aa !important; }
+
+.border-success {
+  border-color: #28a745 !important; }
+
+.border-info {
+  border-color: #00aaff !important; }
+
+.border-warning {
+  border-color: #ffc107 !important; }
+
+.border-danger {
+  border-color: #dc3545 !important; }
+
+.border-light {
+  border-color: #f3f3f3 !important; }
+
+.border-dark {
+  border-color: #303030 !important; }
+
+.border-white {
+  border-color: #fff !important; }
+
+.rounded {
+  border-radius: 0.75rem !important; }
+
+.rounded-top {
+  border-top-left-radius: 0.75rem !important;
+  border-top-right-radius: 0.75rem !important; }
+
+.rounded-right {
+  border-top-right-radius: 0.75rem !important;
+  border-bottom-right-radius: 0.75rem !important; }
+
+.rounded-bottom {
+  border-bottom-right-radius: 0.75rem !important;
+  border-bottom-left-radius: 0.75rem !important; }
+
+.rounded-left {
+  border-top-left-radius: 0.75rem !important;
+  border-bottom-left-radius: 0.75rem !important; }
+
+.rounded-circle {
+  border-radius: 50% !important; }
+
+.rounded-0 {
+  border-radius: 0 !important; }
+
+.clearfix::after {
+  display: block;
+  clear: both;
+  content: ""; }
+
+.d-none {
+  display: none !important; }
+
+.d-inline {
+  display: inline !important; }
+
+.d-inline-block {
+  display: inline-block !important; }
+
+.d-block {
+  display: block !important; }
+
+.d-table {
+  display: table !important; }
+
+.d-table-row {
+  display: table-row !important; }
+
+.d-table-cell {
+  display: table-cell !important; }
+
+.d-flex {
+  display: flex !important; }
+
+.d-inline-flex {
+  display: inline-flex !important; }
+
+@media (min-width: 576px) {
+  .d-sm-none {
+    display: none !important; }
+  .d-sm-inline {
+    display: inline !important; }
+  .d-sm-inline-block {
+    display: inline-block !important; }
+  .d-sm-block {
+    display: block !important; }
+  .d-sm-table {
+    display: table !important; }
+  .d-sm-table-row {
+    display: table-row !important; }
+  .d-sm-table-cell {
+    display: table-cell !important; }
+  .d-sm-flex {
+    display: flex !important; }
+  .d-sm-inline-flex {
+    display: inline-flex !important; } }
+
+@media (min-width: 768px) {
+  .d-md-none {
+    display: none !important; }
+  .d-md-inline {
+    display: inline !important; }
+  .d-md-inline-block {
+    display: inline-block !important; }
+  .d-md-block {
+    display: block !important; }
+  .d-md-table {
+    display: table !important; }
+  .d-md-table-row {
+    display: table-row !important; }
+  .d-md-table-cell {
+    display: table-cell !important; }
+  .d-md-flex {
+    display: flex !important; }
+  .d-md-inline-flex {
+    display: inline-flex !important; } }
+
+@media (min-width: 992px) {
+  .d-lg-none {
+    display: none !important; }
+  .d-lg-inline {
+    display: inline !important; }
+  .d-lg-inline-block {
+    display: inline-block !important; }
+  .d-lg-block {
+    display: block !important; }
+  .d-lg-table {
+    display: table !important; }
+  .d-lg-table-row {
+    display: table-row !important; }
+  .d-lg-table-cell {
+    display: table-cell !important; }
+  .d-lg-flex {
+    display: flex !important; }
+  .d-lg-inline-flex {
+    display: inline-flex !important; } }
+
+@media (min-width: 1200px) {
+  .d-xl-none {
+    display: none !important; }
+  .d-xl-inline {
+    display: inline !important; }
+  .d-xl-inline-block {
+    display: inline-block !important; }
+  .d-xl-block {
+    display: block !important; }
+  .d-xl-table {
+    display: table !important; }
+  .d-xl-table-row {
+    display: table-row !important; }
+  .d-xl-table-cell {
+    display: table-cell !important; }
+  .d-xl-flex {
+    display: flex !important; }
+  .d-xl-inline-flex {
+    display: inline-flex !important; } }
+
+@media print {
+  .d-print-none {
+    display: none !important; }
+  .d-print-inline {
+    display: inline !important; }
+  .d-print-inline-block {
+    display: inline-block !important; }
+  .d-print-block {
+    display: block !important; }
+  .d-print-table {
+    display: table !important; }
+  .d-print-table-row {
+    display: table-row !important; }
+  .d-print-table-cell {
+    display: table-cell !important; }
+  .d-print-flex {
+    display: flex !important; }
+  .d-print-inline-flex {
+    display: inline-flex !important; } }
+
+.embed-responsive {
+  position: relative;
+  display: block;
+  width: 100%;
+  padding: 0;
+  overflow: hidden; }
+  .embed-responsive::before {
+    display: block;
+    content: ""; }
+  .embed-responsive .embed-responsive-item,
+  .embed-responsive iframe,
+  .embed-responsive embed,
+  .embed-responsive object,
+  .embed-responsive video {
+    position: absolute;
+    top: 0;
+    bottom: 0;
+    left: 0;
+    width: 100%;
+    height: 100%;
+    border: 0; }
+
+.embed-responsive-21by9::before {
+  padding-top: 42.85714%; }
+
+.embed-responsive-16by9::before {
+  padding-top: 56.25%; }
+
+.embed-responsive-4by3::before {
+  padding-top: 75%; }
+
+.embed-responsive-1by1::before {
+  padding-top: 100%; }
+
+.flex-row {
+  flex-direction: row !important; }
+
+.flex-column {
+  flex-direction: column !important; }
+
+.flex-row-reverse {
+  flex-direction: row-reverse !important; }
+
+.flex-column-reverse {
+  flex-direction: column-reverse !important; }
+
+.flex-wrap {
+  flex-wrap: wrap !important; }
+
+.flex-nowrap {
+  flex-wrap: nowrap !important; }
+
+.flex-wrap-reverse {
+  flex-wrap: wrap-reverse !important; }
+
+.flex-fill {
+  flex: 1 1 auto !important; }
+
+.flex-grow-0 {
+  flex-grow: 0 !important; }
+
+.flex-grow-1 {
+  flex-grow: 1 !important; }
+
+.flex-shrink-0 {
+  flex-shrink: 0 !important; }
+
+.flex-shrink-1 {
+  flex-shrink: 1 !important; }
+
+.justify-content-start {
+  justify-content: flex-start !important; }
+
+.justify-content-end {
+  justify-content: flex-end !important; }
+
+.justify-content-center {
+  justify-content: center !important; }
+
+.justify-content-between {
+  justify-content: space-between !important; }
+
+.justify-content-around {
+  justify-content: space-around !important; }
+
+.align-items-start {
+  align-items: flex-start !important; }
+
+.align-items-end {
+  align-items: flex-end !important; }
+
+.align-items-center {
+  align-items: center !important; }
+
+.align-items-baseline {
+  align-items: baseline !important; }
+
+.align-items-stretch {
+  align-items: stretch !important; }
+
+.align-content-start {
+  align-content: flex-start !important; }
+
+.align-content-end {
+  align-content: flex-end !important; }
+
+.align-content-center {
+  align-content: center !important; }
+
+.align-content-between {
+  align-content: space-between !important; }
+
+.align-content-around {
+  align-content: space-around !important; }
+
+.align-content-stretch {
+  align-content: stretch !important; }
+
+.align-self-auto {
+  align-self: auto !important; }
+
+.align-self-start {
+  align-self: flex-start !important; }
+
+.align-self-end {
+  align-self: flex-end !important; }
+
+.align-self-center {
+  align-self: center !important; }
+
+.align-self-baseline {
+  align-self: baseline !important; }
+
+.align-self-stretch {
+  align-self: stretch !important; }
+
+@media (min-width: 576px) {
+  .flex-sm-row {
+    flex-direction: row !important; }
+  .flex-sm-column {
+    flex-direction: column !important; }
+  .flex-sm-row-reverse {
+    flex-direction: row-reverse !important; }
+  .flex-sm-column-reverse {
+    flex-direction: column-reverse !important; }
+  .flex-sm-wrap {
+    flex-wrap: wrap !important; }
+  .flex-sm-nowrap {
+    flex-wrap: nowrap !important; }
+  .flex-sm-wrap-reverse {
+    flex-wrap: wrap-reverse !important; }
+  .flex-sm-fill {
+    flex: 1 1 auto !important; }
+  .flex-sm-grow-0 {
+    flex-grow: 0 !important; }
+  .flex-sm-grow-1 {
+    flex-grow: 1 !important; }
+  .flex-sm-shrink-0 {
+    flex-shrink: 0 !important; }
+  .flex-sm-shrink-1 {
+    flex-shrink: 1 !important; }
+  .justify-content-sm-start {
+    justify-content: flex-start !important; }
+  .justify-content-sm-end {
+    justify-content: flex-end !important; }
+  .justify-content-sm-center {
+    justify-content: center !important; }
+  .justify-content-sm-between {
+    justify-content: space-between !important; }
+  .justify-content-sm-around {
+    justify-content: space-around !important; }
+  .align-items-sm-start {
+    align-items: flex-start !important; }
+  .align-items-sm-end {
+    align-items: flex-end !important; }
+  .align-items-sm-center {
+    align-items: center !important; }
+  .align-items-sm-baseline {
+    align-items: baseline !important; }
+  .align-items-sm-stretch {
+    align-items: stretch !important; }
+  .align-content-sm-start {
+    align-content: flex-start !important; }
+  .align-content-sm-end {
+    align-content: flex-end !important; }
+  .align-content-sm-center {
+    align-content: center !important; }
+  .align-content-sm-between {
+    align-content: space-between !important; }
+  .align-content-sm-around {
+    align-content: space-around !important; }
+  .align-content-sm-stretch {
+    align-content: stretch !important; }
+  .align-self-sm-auto {
+    align-self: auto !important; }
+  .align-self-sm-start {
+    align-self: flex-start !important; }
+  .align-self-sm-end {
+    align-self: flex-end !important; }
+  .align-self-sm-center {
+    align-self: center !important; }
+  .align-self-sm-baseline {
+    align-self: baseline !important; }
+  .align-self-sm-stretch {
+    align-self: stretch !important; } }
+
+@media (min-width: 768px) {
+  .flex-md-row {
+    flex-direction: row !important; }
+  .flex-md-column {
+    flex-direction: column !important; }
+  .flex-md-row-reverse {
+    flex-direction: row-reverse !important; }
+  .flex-md-column-reverse {
+    flex-direction: column-reverse !important; }
+  .flex-md-wrap {
+    flex-wrap: wrap !important; }
+  .flex-md-nowrap {
+    flex-wrap: nowrap !important; }
+  .flex-md-wrap-reverse {
+    flex-wrap: wrap-reverse !important; }
+  .flex-md-fill {
+    flex: 1 1 auto !important; }
+  .flex-md-grow-0 {
+    flex-grow: 0 !important; }
+  .flex-md-grow-1 {
+    flex-grow: 1 !important; }
+  .flex-md-shrink-0 {
+    flex-shrink: 0 !important; }
+  .flex-md-shrink-1 {
+    flex-shrink: 1 !important; }
+  .justify-content-md-start {
+    justify-content: flex-start !important; }
+  .justify-content-md-end {
+    justify-content: flex-end !important; }
+  .justify-content-md-center {
+    justify-content: center !important; }
+  .justify-content-md-between {
+    justify-content: space-between !important; }
+  .justify-content-md-around {
+    justify-content: space-around !important; }
+  .align-items-md-start {
+    align-items: flex-start !important; }
+  .align-items-md-end {
+    align-items: flex-end !important; }
+  .align-items-md-center {
+    align-items: center !important; }
+  .align-items-md-baseline {
+    align-items: baseline !important; }
+  .align-items-md-stretch {
+    align-items: stretch !important; }
+  .align-content-md-start {
+    align-content: flex-start !important; }
+  .align-content-md-end {
+    align-content: flex-end !important; }
+  .align-content-md-center {
+    align-content: center !important; }
+  .align-content-md-between {
+    align-content: space-between !important; }
+  .align-content-md-around {
+    align-content: space-around !important; }
+  .align-content-md-stretch {
+    align-content: stretch !important; }
+  .align-self-md-auto {
+    align-self: auto !important; }
+  .align-self-md-start {
+    align-self: flex-start !important; }
+  .align-self-md-end {
+    align-self: flex-end !important; }
+  .align-self-md-center {
+    align-self: center !important; }
+  .align-self-md-baseline {
+    align-self: baseline !important; }
+  .align-self-md-stretch {
+    align-self: stretch !important; } }
+
+@media (min-width: 992px) {
+  .flex-lg-row {
+    flex-direction: row !important; }
+  .flex-lg-column {
+    flex-direction: column !important; }
+  .flex-lg-row-reverse {
+    flex-direction: row-reverse !important; }
+  .flex-lg-column-reverse {
+    flex-direction: column-reverse !important; }
+  .flex-lg-wrap {
+    flex-wrap: wrap !important; }
+  .flex-lg-nowrap {
+    flex-wrap: nowrap !important; }
+  .flex-lg-wrap-reverse {
+    flex-wrap: wrap-reverse !important; }
+  .flex-lg-fill {
+    flex: 1 1 auto !important; }
+  .flex-lg-grow-0 {
+    flex-grow: 0 !important; }
+  .flex-lg-grow-1 {
+    flex-grow: 1 !important; }
+  .flex-lg-shrink-0 {
+    flex-shrink: 0 !important; }
+  .flex-lg-shrink-1 {
+    flex-shrink: 1 !important; }
+  .justify-content-lg-start {
+    justify-content: flex-start !important; }
+  .justify-content-lg-end {
+    justify-content: flex-end !important; }
+  .justify-content-lg-center {
+    justify-content: center !important; }
+  .justify-content-lg-between {
+    justify-content: space-between !important; }
+  .justify-content-lg-around {
+    justify-content: space-around !important; }
+  .align-items-lg-start {
+    align-items: flex-start !important; }
+  .align-items-lg-end {
+    align-items: flex-end !important; }
+  .align-items-lg-center {
+    align-items: center !important; }
+  .align-items-lg-baseline {
+    align-items: baseline !important; }
+  .align-items-lg-stretch {
+    align-items: stretch !important; }
+  .align-content-lg-start {
+    align-content: flex-start !important; }
+  .align-content-lg-end {
+    align-content: flex-end !important; }
+  .align-content-lg-center {
+    align-content: center !important; }
+  .align-content-lg-between {
+    align-content: space-between !important; }
+  .align-content-lg-around {
+    align-content: space-around !important; }
+  .align-content-lg-stretch {
+    align-content: stretch !important; }
+  .align-self-lg-auto {
+    align-self: auto !important; }
+  .align-self-lg-start {
+    align-self: flex-start !important; }
+  .align-self-lg-end {
+    align-self: flex-end !important; }
+  .align-self-lg-center {
+    align-self: center !important; }
+  .align-self-lg-baseline {
+    align-self: baseline !important; }
+  .align-self-lg-stretch {
+    align-self: stretch !important; } }
+
+@media (min-width: 1200px) {
+  .flex-xl-row {
+    flex-direction: row !important; }
+  .flex-xl-column {
+    flex-direction: column !important; }
+  .flex-xl-row-reverse {
+    flex-direction: row-reverse !important; }
+  .flex-xl-column-reverse {
+    flex-direction: column-reverse !important; }
+  .flex-xl-wrap {
+    flex-wrap: wrap !important; }
+  .flex-xl-nowrap {
+    flex-wrap: nowrap !important; }
+  .flex-xl-wrap-reverse {
+    flex-wrap: wrap-reverse !important; }
+  .flex-xl-fill {
+    flex: 1 1 auto !important; }
+  .flex-xl-grow-0 {
+    flex-grow: 0 !important; }
+  .flex-xl-grow-1 {
+    flex-grow: 1 !important; }
+  .flex-xl-shrink-0 {
+    flex-shrink: 0 !important; }
+  .flex-xl-shrink-1 {
+    flex-shrink: 1 !important; }
+  .justify-content-xl-start {
+    justify-content: flex-start !important; }
+  .justify-content-xl-end {
+    justify-content: flex-end !important; }
+  .justify-content-xl-center {
+    justify-content: center !important; }
+  .justify-content-xl-between {
+    justify-content: space-between !important; }
+  .justify-content-xl-around {
+    justify-content: space-around !important; }
+  .align-items-xl-start {
+    align-items: flex-start !important; }
+  .align-items-xl-end {
+    align-items: flex-end !important; }
+  .align-items-xl-center {
+    align-items: center !important; }
+  .align-items-xl-baseline {
+    align-items: baseline !important; }
+  .align-items-xl-stretch {
+    align-items: stretch !important; }
+  .align-content-xl-start {
+    align-content: flex-start !important; }
+  .align-content-xl-end {
+    align-content: flex-end !important; }
+  .align-content-xl-center {
+    align-content: center !important; }
+  .align-content-xl-between {
+    align-content: space-between !important; }
+  .align-content-xl-around {
+    align-content: space-around !important; }
+  .align-content-xl-stretch {
+    align-content: stretch !important; }
+  .align-self-xl-auto {
+    align-self: auto !important; }
+  .align-self-xl-start {
+    align-self: flex-start !important; }
+  .align-self-xl-end {
+    align-self: flex-end !important; }
+  .align-self-xl-center {
+    align-self: center !important; }
+  .align-self-xl-baseline {
+    align-self: baseline !important; }
+  .align-self-xl-stretch {
+    align-self: stretch !important; } }
+
+.float-left {
+  float: left !important; }
+
+.float-right {
+  float: right !important; }
+
+.float-none {
+  float: none !important; }
+
+@media (min-width: 576px) {
+  .float-sm-left {
+    float: left !important; }
+  .float-sm-right {
+    float: right !important; }
+  .float-sm-none {
+    float: none !important; } }
+
+@media (min-width: 768px) {
+  .float-md-left {
+    float: left !important; }
+  .float-md-right {
+    float: right !important; }
+  .float-md-none {
+    float: none !important; } }
+
+@media (min-width: 992px) {
+  .float-lg-left {
+    float: left !important; }
+  .float-lg-right {
+    float: right !important; }
+  .float-lg-none {
+    float: none !important; } }
+
+@media (min-width: 1200px) {
+  .float-xl-left {
+    float: left !important; }
+  .float-xl-right {
+    float: right !important; }
+  .float-xl-none {
+    float: none !important; } }
+
+.position-static {
+  position: static !important; }
+
+.position-relative {
+  position: relative !important; }
+
+.position-absolute {
+  position: absolute !important; }
+
+.position-fixed {
+  position: fixed !important; }
+
+.position-sticky {
+  position: -webkit-sticky !important;
+  position: sticky !important; }
+
+.fixed-top {
+  position: fixed;
+  top: 0;
+  right: 0;
+  left: 0;
+  z-index: 1030; }
+
+.fixed-bottom {
+  position: fixed;
+  right: 0;
+  bottom: 0;
+  left: 0;
+  z-index: 1030; }
+
+@supports ((position: -webkit-sticky) or (position: sticky)) {
+  .sticky-top {
+    position: -webkit-sticky;
+    position: sticky;
+    top: 0;
+    z-index: 1020; } }
+
+.sr-only {
+  position: absolute;
+  width: 1px;
+  height: 1px;
+  padding: 0;
+  overflow: hidden;
+  clip: rect(0, 0, 0, 0);
+  white-space: nowrap;
+  border: 0; }
+
+.sr-only-focusable:active, .sr-only-focusable:focus {
+  position: static;
+  width: auto;
+  height: auto;
+  overflow: visible;
+  clip: auto;
+  white-space: normal; }
+
+.shadow-sm {
+  box-shadow: 0 0.125rem 0.25rem rgba(0, 0, 0, 0.075) !important; }
+
+.shadow {
+  box-shadow: 0 0.5rem 1rem rgba(0, 0, 0, 0.15) !important; }
+
+.shadow-lg {
+  box-shadow: 0 1rem 3rem rgba(0, 0, 0, 0.175) !important; }
+
+.shadow-none {
+  box-shadow: none !important; }
+
+.w-25 {
+  width: 25% !important; }
+
+.w-50 {
+  width: 50% !important; }
+
+.w-75 {
+  width: 75% !important; }
+
+.w-100 {
+  width: 100% !important; }
+
+.w-auto {
+  width: auto !important; }
+
+.h-25 {
+  height: 25% !important; }
+
+.h-50 {
+  height: 50% !important; }
+
+.h-75 {
+  height: 75% !important; }
+
+.h-100 {
+  height: 100% !important; }
+
+.h-auto {
+  height: auto !important; }
+
+.mw-100 {
+  max-width: 100% !important; }
+
+.mh-100 {
+  max-height: 100% !important; }
+
+.m-0 {
+  margin: 0 !important; }
+
+.mt-0,
+.my-0 {
+  margin-top: 0 !important; }
+
+.mr-0,
+.mx-0 {
+  margin-right: 0 !important; }
+
+.mb-0,
+.my-0 {
+  margin-bottom: 0 !important; }
+
+.ml-0,
+.mx-0 {
+  margin-left: 0 !important; }
+
+.m-1 {
+  margin: 0.375rem !important; }
+
+.mt-1,
+.my-1 {
+  margin-top: 0.375rem !important; }
+
+.mr-1,
+.mx-1 {
+  margin-right: 0.375rem !important; }
+
+.mb-1,
+.my-1 {
+  margin-bottom: 0.375rem !important; }
+
+.ml-1,
+.mx-1 {
+  margin-left: 0.375rem !important; }
+
+.m-2 {
+  margin: 0.75rem !important; }
+
+.mt-2,
+.my-2 {
+  margin-top: 0.75rem !important; }
+
+.mr-2,
+.mx-2 {
+  margin-right: 0.75rem !important; }
+
+.mb-2,
+.my-2 {
+  margin-bottom: 0.75rem !important; }
+
+.ml-2,
+.mx-2 {
+  margin-left: 0.75rem !important; }
+
+.m-3 {
+  margin: 1.5rem !important; }
+
+.mt-3,
+.my-3 {
+  margin-top: 1.5rem !important; }
+
+.mr-3,
+.mx-3 {
+  margin-right: 1.5rem !important; }
+
+.mb-3,
+.my-3 {
+  margin-bottom: 1.5rem !important; }
+
+.ml-3,
+.mx-3 {
+  margin-left: 1.5rem !important; }
+
+.m-4 {
+  margin: 2.25rem !important; }
+
+.mt-4,
+.my-4 {
+  margin-top: 2.25rem !important; }
+
+.mr-4,
+.mx-4 {
+  margin-right: 2.25rem !important; }
+
+.mb-4,
+.my-4 {
+  margin-bottom: 2.25rem !important; }
+
+.ml-4,
+.mx-4 {
+  margin-left: 2.25rem !important; }
+
+.m-5 {
+  margin: 4.5rem !important; }
+
+.mt-5,
+.my-5 {
+  margin-top: 4.5rem !important; }
+
+.mr-5,
+.mx-5 {
+  margin-right: 4.5rem !important; }
+
+.mb-5,
+.my-5 {
+  margin-bottom: 4.5rem !important; }
+
+.ml-5,
+.mx-5 {
+  margin-left: 4.5rem !important; }
+
+.p-0 {
+  padding: 0 !important; }
+
+.pt-0,
+.py-0 {
+  padding-top: 0 !important; }
+
+.pr-0,
+.px-0 {
+  padding-right: 0 !important; }
+
+.pb-0,
+.py-0 {
+  padding-bottom: 0 !important; }
+
+.pl-0,
+.px-0 {
+  padding-left: 0 !important; }
+
+.p-1 {
+  padding: 0.375rem !important; }
+
+.pt-1,
+.py-1 {
+  padding-top: 0.375rem !important; }
+
+.pr-1,
+.px-1 {
+  padding-right: 0.375rem !important; }
+
+.pb-1,
+.py-1 {
+  padding-bottom: 0.375rem !important; }
+
+.pl-1,
+.px-1 {
+  padding-left: 0.375rem !important; }
+
+.p-2 {
+  padding: 0.75rem !important; }
+
+.pt-2,
+.py-2 {
+  padding-top: 0.75rem !important; }
+
+.pr-2,
+.px-2 {
+  padding-right: 0.75rem !important; }
+
+.pb-2,
+.py-2 {
+  padding-bottom: 0.75rem !important; }
+
+.pl-2,
+.px-2 {
+  padding-left: 0.75rem !important; }
+
+.p-3 {
+  padding: 1.5rem !important; }
+
+.pt-3,
+.py-3 {
+  padding-top: 1.5rem !important; }
+
+.pr-3,
+.px-3 {
+  padding-right: 1.5rem !important; }
+
+.pb-3,
+.py-3 {
+  padding-bottom: 1.5rem !important; }
+
+.pl-3,
+.px-3 {
+  padding-left: 1.5rem !important; }
+
+.p-4 {
+  padding: 2.25rem !important; }
+
+.pt-4,
+.py-4 {
+  padding-top: 2.25rem !important; }
+
+.pr-4,
+.px-4 {
+  padding-right: 2.25rem !important; }
+
+.pb-4,
+.py-4 {
+  padding-bottom: 2.25rem !important; }
+
+.pl-4,
+.px-4 {
+  padding-left: 2.25rem !important; }
+
+.p-5 {
+  padding: 4.5rem !important; }
+
+.pt-5,
+.py-5 {
+  padding-top: 4.5rem !important; }
+
+.pr-5,
+.px-5 {
+  padding-right: 4.5rem !important; }
+
+.pb-5,
+.py-5 {
+  padding-bottom: 4.5rem !important; }
+
+.pl-5,
+.px-5 {
+  padding-left: 4.5rem !important; }
+
+.m-auto {
+  margin: auto !important; }
+
+.mt-auto,
+.my-auto {
+  margin-top: auto !important; }
+
+.mr-auto,
+.mx-auto {
+  margin-right: auto !important; }
+
+.mb-auto,
+.my-auto {
+  margin-bottom: auto !important; }
+
+.ml-auto,
+.mx-auto {
+  margin-left: auto !important; }
+
+@media (min-width: 576px) {
+  .m-sm-0 {
+    margin: 0 !important; }
+  .mt-sm-0,
+  .my-sm-0 {
+    margin-top: 0 !important; }
+  .mr-sm-0,
+  .mx-sm-0 {
+    margin-right: 0 !important; }
+  .mb-sm-0,
+  .my-sm-0 {
+    margin-bottom: 0 !important; }
+  .ml-sm-0,
+  .mx-sm-0 {
+    margin-left: 0 !important; }
+  .m-sm-1 {
+    margin: 0.375rem !important; }
+  .mt-sm-1,
+  .my-sm-1 {
+    margin-top: 0.375rem !important; }
+  .mr-sm-1,
+  .mx-sm-1 {
+    margin-right: 0.375rem !important; }
+  .mb-sm-1,
+  .my-sm-1 {
+    margin-bottom: 0.375rem !important; }
+  .ml-sm-1,
+  .mx-sm-1 {
+    margin-left: 0.375rem !important; }
+  .m-sm-2 {
+    margin: 0.75rem !important; }
+  .mt-sm-2,
+  .my-sm-2 {
+    margin-top: 0.75rem !important; }
+  .mr-sm-2,
+  .mx-sm-2 {
+    margin-right: 0.75rem !important; }
+  .mb-sm-2,
+  .my-sm-2 {
+    margin-bottom: 0.75rem !important; }
+  .ml-sm-2,
+  .mx-sm-2 {
+    margin-left: 0.75rem !important; }
+  .m-sm-3 {
+    margin: 1.5rem !important; }
+  .mt-sm-3,
+  .my-sm-3 {
+    margin-top: 1.5rem !important; }
+  .mr-sm-3,
+  .mx-sm-3 {
+    margin-right: 1.5rem !important; }
+  .mb-sm-3,
+  .my-sm-3 {
+    margin-bottom: 1.5rem !important; }
+  .ml-sm-3,
+  .mx-sm-3 {
+    margin-left: 1.5rem !important; }
+  .m-sm-4 {
+    margin: 2.25rem !important; }
+  .mt-sm-4,
+  .my-sm-4 {
+    margin-top: 2.25rem !important; }
+  .mr-sm-4,
+  .mx-sm-4 {
+    margin-right: 2.25rem !important; }
+  .mb-sm-4,
+  .my-sm-4 {
+    margin-bottom: 2.25rem !important; }
+  .ml-sm-4,
+  .mx-sm-4 {
+    margin-left: 2.25rem !important; }
+  .m-sm-5 {
+    margin: 4.5rem !important; }
+  .mt-sm-5,
+  .my-sm-5 {
+    margin-top: 4.5rem !important; }
+  .mr-sm-5,
+  .mx-sm-5 {
+    margin-right: 4.5rem !important; }
+  .mb-sm-5,
+  .my-sm-5 {
+    margin-bottom: 4.5rem !important; }
+  .ml-sm-5,
+  .mx-sm-5 {
+    margin-left: 4.5rem !important; }
+  .p-sm-0 {
+    padding: 0 !important; }
+  .pt-sm-0,
+  .py-sm-0 {
+    padding-top: 0 !important; }
+  .pr-sm-0,
+  .px-sm-0 {
+    padding-right: 0 !important; }
+  .pb-sm-0,
+  .py-sm-0 {
+    padding-bottom: 0 !important; }
+  .pl-sm-0,
+  .px-sm-0 {
+    padding-left: 0 !important; }
+  .p-sm-1 {
+    padding: 0.375rem !important; }
+  .pt-sm-1,
+  .py-sm-1 {
+    padding-top: 0.375rem !important; }
+  .pr-sm-1,
+  .px-sm-1 {
+    padding-right: 0.375rem !important; }
+  .pb-sm-1,
+  .py-sm-1 {
+    padding-bottom: 0.375rem !important; }
+  .pl-sm-1,
+  .px-sm-1 {
+    padding-left: 0.375rem !important; }
+  .p-sm-2 {
+    padding: 0.75rem !important; }
+  .pt-sm-2,
+  .py-sm-2 {
+    padding-top: 0.75rem !important; }
+  .pr-sm-2,
+  .px-sm-2 {
+    padding-right: 0.75rem !important; }
+  .pb-sm-2,
+  .py-sm-2 {
+    padding-bottom: 0.75rem !important; }
+  .pl-sm-2,
+  .px-sm-2 {
+    padding-left: 0.75rem !important; }
+  .p-sm-3 {
+    padding: 1.5rem !important; }
+  .pt-sm-3,
+  .py-sm-3 {
+    padding-top: 1.5rem !important; }
+  .pr-sm-3,
+  .px-sm-3 {
+    padding-right: 1.5rem !important; }
+  .pb-sm-3,
+  .py-sm-3 {
+    padding-bottom: 1.5rem !important; }
+  .pl-sm-3,
+  .px-sm-3 {
+    padding-left: 1.5rem !important; }
+  .p-sm-4 {
+    padding: 2.25rem !important; }
+  .pt-sm-4,
+  .py-sm-4 {
+    padding-top: 2.25rem !important; }
+  .pr-sm-4,
+  .px-sm-4 {
+    padding-right: 2.25rem !important; }
+  .pb-sm-4,
+  .py-sm-4 {
+    padding-bottom: 2.25rem !important; }
+  .pl-sm-4,
+  .px-sm-4 {
+    padding-left: 2.25rem !important; }
+  .p-sm-5 {
+    padding: 4.5rem !important; }
+  .pt-sm-5,
+  .py-sm-5 {
+    padding-top: 4.5rem !important; }
+  .pr-sm-5,
+  .px-sm-5 {
+    padding-right: 4.5rem !important; }
+  .pb-sm-5,
+  .py-sm-5 {
+    padding-bottom: 4.5rem !important; }
+  .pl-sm-5,
+  .px-sm-5 {
+    padding-left: 4.5rem !important; }
+  .m-sm-auto {
+    margin: auto !important; }
+  .mt-sm-auto,
+  .my-sm-auto {
+    margin-top: auto !important; }
+  .mr-sm-auto,
+  .mx-sm-auto {
+    margin-right: auto !important; }
+  .mb-sm-auto,
+  .my-sm-auto {
+    margin-bottom: auto !important; }
+  .ml-sm-auto,
+  .mx-sm-auto {
+    margin-left: auto !important; } }
+
+@media (min-width: 768px) {
+  .m-md-0 {
+    margin: 0 !important; }
+  .mt-md-0,
+  .my-md-0 {
+    margin-top: 0 !important; }
+  .mr-md-0,
+  .mx-md-0 {
+    margin-right: 0 !important; }
+  .mb-md-0,
+  .my-md-0 {
+    margin-bottom: 0 !important; }
+  .ml-md-0,
+  .mx-md-0 {
+    margin-left: 0 !important; }
+  .m-md-1 {
+    margin: 0.375rem !important; }
+  .mt-md-1,
+  .my-md-1 {
+    margin-top: 0.375rem !important; }
+  .mr-md-1,
+  .mx-md-1 {
+    margin-right: 0.375rem !important; }
+  .mb-md-1,
+  .my-md-1 {
+    margin-bottom: 0.375rem !important; }
+  .ml-md-1,
+  .mx-md-1 {
+    margin-left: 0.375rem !important; }
+  .m-md-2 {
+    margin: 0.75rem !important; }
+  .mt-md-2,
+  .my-md-2 {
+    margin-top: 0.75rem !important; }
+  .mr-md-2,
+  .mx-md-2 {
+    margin-right: 0.75rem !important; }
+  .mb-md-2,
+  .my-md-2 {
+    margin-bottom: 0.75rem !important; }
+  .ml-md-2,
+  .mx-md-2 {
+    margin-left: 0.75rem !important; }
+  .m-md-3 {
+    margin: 1.5rem !important; }
+  .mt-md-3,
+  .my-md-3 {
+    margin-top: 1.5rem !important; }
+  .mr-md-3,
+  .mx-md-3 {
+    margin-right: 1.5rem !important; }
+  .mb-md-3,
+  .my-md-3 {
+    margin-bottom: 1.5rem !important; }
+  .ml-md-3,
+  .mx-md-3 {
+    margin-left: 1.5rem !important; }
+  .m-md-4 {
+    margin: 2.25rem !important; }
+  .mt-md-4,
+  .my-md-4 {
+    margin-top: 2.25rem !important; }
+  .mr-md-4,
+  .mx-md-4 {
+    margin-right: 2.25rem !important; }
+  .mb-md-4,
+  .my-md-4 {
+    margin-bottom: 2.25rem !important; }
+  .ml-md-4,
+  .mx-md-4 {
+    margin-left: 2.25rem !important; }
+  .m-md-5 {
+    margin: 4.5rem !important; }
+  .mt-md-5,
+  .my-md-5 {
+    margin-top: 4.5rem !important; }
+  .mr-md-5,
+  .mx-md-5 {
+    margin-right: 4.5rem !important; }
+  .mb-md-5,
+  .my-md-5 {
+    margin-bottom: 4.5rem !important; }
+  .ml-md-5,
+  .mx-md-5 {
+    margin-left: 4.5rem !important; }
+  .p-md-0 {
+    padding: 0 !important; }
+  .pt-md-0,
+  .py-md-0 {
+    padding-top: 0 !important; }
+  .pr-md-0,
+  .px-md-0 {
+    padding-right: 0 !important; }
+  .pb-md-0,
+  .py-md-0 {
+    padding-bottom: 0 !important; }
+  .pl-md-0,
+  .px-md-0 {
+    padding-left: 0 !important; }
+  .p-md-1 {
+    padding: 0.375rem !important; }
+  .pt-md-1,
+  .py-md-1 {
+    padding-top: 0.375rem !important; }
+  .pr-md-1,
+  .px-md-1 {
+    padding-right: 0.375rem !important; }
+  .pb-md-1,
+  .py-md-1 {
+    padding-bottom: 0.375rem !important; }
+  .pl-md-1,
+  .px-md-1 {
+    padding-left: 0.375rem !important; }
+  .p-md-2 {
+    padding: 0.75rem !important; }
+  .pt-md-2,
+  .py-md-2 {
+    padding-top: 0.75rem !important; }
+  .pr-md-2,
+  .px-md-2 {
+    padding-right: 0.75rem !important; }
+  .pb-md-2,
+  .py-md-2 {
+    padding-bottom: 0.75rem !important; }
+  .pl-md-2,
+  .px-md-2 {
+    padding-left: 0.75rem !important; }
+  .p-md-3 {
+    padding: 1.5rem !important; }
+  .pt-md-3,
+  .py-md-3 {
+    padding-top: 1.5rem !important; }
+  .pr-md-3,
+  .px-md-3 {
+    padding-right: 1.5rem !important; }
+  .pb-md-3,
+  .py-md-3 {
+    padding-bottom: 1.5rem !important; }
+  .pl-md-3,
+  .px-md-3 {
+    padding-left: 1.5rem !important; }
+  .p-md-4 {
+    padding: 2.25rem !important; }
+  .pt-md-4,
+  .py-md-4 {
+    padding-top: 2.25rem !important; }
+  .pr-md-4,
+  .px-md-4 {
+    padding-right: 2.25rem !important; }
+  .pb-md-4,
+  .py-md-4 {
+    padding-bottom: 2.25rem !important; }
+  .pl-md-4,
+  .px-md-4 {
+    padding-left: 2.25rem !important; }
+  .p-md-5 {
+    padding: 4.5rem !important; }
+  .pt-md-5,
+  .py-md-5 {
+    padding-top: 4.5rem !important; }
+  .pr-md-5,
+  .px-md-5 {
+    padding-right: 4.5rem !important; }
+  .pb-md-5,
+  .py-md-5 {
+    padding-bottom: 4.5rem !important; }
+  .pl-md-5,
+  .px-md-5 {
+    padding-left: 4.5rem !important; }
+  .m-md-auto {
+    margin: auto !important; }
+  .mt-md-auto,
+  .my-md-auto {
+    margin-top: auto !important; }
+  .mr-md-auto,
+  .mx-md-auto {
+    margin-right: auto !important; }
+  .mb-md-auto,
+  .my-md-auto {
+    margin-bottom: auto !important; }
+  .ml-md-auto,
+  .mx-md-auto {
+    margin-left: auto !important; } }
+
+@media (min-width: 992px) {
+  .m-lg-0 {
+    margin: 0 !important; }
+  .mt-lg-0,
+  .my-lg-0 {
+    margin-top: 0 !important; }
+  .mr-lg-0,
+  .mx-lg-0 {
+    margin-right: 0 !important; }
+  .mb-lg-0,
+  .my-lg-0 {
+    margin-bottom: 0 !important; }
+  .ml-lg-0,
+  .mx-lg-0 {
+    margin-left: 0 !important; }
+  .m-lg-1 {
+    margin: 0.375rem !important; }
+  .mt-lg-1,
+  .my-lg-1 {
+    margin-top: 0.375rem !important; }
+  .mr-lg-1,
+  .mx-lg-1 {
+    margin-right: 0.375rem !important; }
+  .mb-lg-1,
+  .my-lg-1 {
+    margin-bottom: 0.375rem !important; }
+  .ml-lg-1,
+  .mx-lg-1 {
+    margin-left: 0.375rem !important; }
+  .m-lg-2 {
+    margin: 0.75rem !important; }
+  .mt-lg-2,
+  .my-lg-2 {
+    margin-top: 0.75rem !important; }
+  .mr-lg-2,
+  .mx-lg-2 {
+    margin-right: 0.75rem !important; }
+  .mb-lg-2,
+  .my-lg-2 {
+    margin-bottom: 0.75rem !important; }
+  .ml-lg-2,
+  .mx-lg-2 {
+    margin-left: 0.75rem !important; }
+  .m-lg-3 {
+    margin: 1.5rem !important; }
+  .mt-lg-3,
+  .my-lg-3 {
+    margin-top: 1.5rem !important; }
+  .mr-lg-3,
+  .mx-lg-3 {
+    margin-right: 1.5rem !important; }
+  .mb-lg-3,
+  .my-lg-3 {
+    margin-bottom: 1.5rem !important; }
+  .ml-lg-3,
+  .mx-lg-3 {
+    margin-left: 1.5rem !important; }
+  .m-lg-4 {
+    margin: 2.25rem !important; }
+  .mt-lg-4,
+  .my-lg-4 {
+    margin-top: 2.25rem !important; }
+  .mr-lg-4,
+  .mx-lg-4 {
+    margin-right: 2.25rem !important; }
+  .mb-lg-4,
+  .my-lg-4 {
+    margin-bottom: 2.25rem !important; }
+  .ml-lg-4,
+  .mx-lg-4 {
+    margin-left: 2.25rem !important; }
+  .m-lg-5 {
+    margin: 4.5rem !important; }
+  .mt-lg-5,
+  .my-lg-5 {
+    margin-top: 4.5rem !important; }
+  .mr-lg-5,
+  .mx-lg-5 {
+    margin-right: 4.5rem !important; }
+  .mb-lg-5,
+  .my-lg-5 {
+    margin-bottom: 4.5rem !important; }
+  .ml-lg-5,
+  .mx-lg-5 {
+    margin-left: 4.5rem !important; }
+  .p-lg-0 {
+    padding: 0 !important; }
+  .pt-lg-0,
+  .py-lg-0 {
+    padding-top: 0 !important; }
+  .pr-lg-0,
+  .px-lg-0 {
+    padding-right: 0 !important; }
+  .pb-lg-0,
+  .py-lg-0 {
+    padding-bottom: 0 !important; }
+  .pl-lg-0,
+  .px-lg-0 {
+    padding-left: 0 !important; }
+  .p-lg-1 {
+    padding: 0.375rem !important; }
+  .pt-lg-1,
+  .py-lg-1 {
+    padding-top: 0.375rem !important; }
+  .pr-lg-1,
+  .px-lg-1 {
+    padding-right: 0.375rem !important; }
+  .pb-lg-1,
+  .py-lg-1 {
+    padding-bottom: 0.375rem !important; }
+  .pl-lg-1,
+  .px-lg-1 {
+    padding-left: 0.375rem !important; }
+  .p-lg-2 {
+    padding: 0.75rem !important; }
+  .pt-lg-2,
+  .py-lg-2 {
+    padding-top: 0.75rem !important; }
+  .pr-lg-2,
+  .px-lg-2 {
+    padding-right: 0.75rem !important; }
+  .pb-lg-2,
+  .py-lg-2 {
+    padding-bottom: 0.75rem !important; }
+  .pl-lg-2,
+  .px-lg-2 {
+    padding-left: 0.75rem !important; }
+  .p-lg-3 {
+    padding: 1.5rem !important; }
+  .pt-lg-3,
+  .py-lg-3 {
+    padding-top: 1.5rem !important; }
+  .pr-lg-3,
+  .px-lg-3 {
+    padding-right: 1.5rem !important; }
+  .pb-lg-3,
+  .py-lg-3 {
+    padding-bottom: 1.5rem !important; }
+  .pl-lg-3,
+  .px-lg-3 {
+    padding-left: 1.5rem !important; }
+  .p-lg-4 {
+    padding: 2.25rem !important; }
+  .pt-lg-4,
+  .py-lg-4 {
+    padding-top: 2.25rem !important; }
+  .pr-lg-4,
+  .px-lg-4 {
+    padding-right: 2.25rem !important; }
+  .pb-lg-4,
+  .py-lg-4 {
+    padding-bottom: 2.25rem !important; }
+  .pl-lg-4,
+  .px-lg-4 {
+    padding-left: 2.25rem !important; }
+  .p-lg-5 {
+    padding: 4.5rem !important; }
+  .pt-lg-5,
+  .py-lg-5 {
+    padding-top: 4.5rem !important; }
+  .pr-lg-5,
+  .px-lg-5 {
+    padding-right: 4.5rem !important; }
+  .pb-lg-5,
+  .py-lg-5 {
+    padding-bottom: 4.5rem !important; }
+  .pl-lg-5,
+  .px-lg-5 {
+    padding-left: 4.5rem !important; }
+  .m-lg-auto {
+    margin: auto !important; }
+  .mt-lg-auto,
+  .my-lg-auto {
+    margin-top: auto !important; }
+  .mr-lg-auto,
+  .mx-lg-auto {
+    margin-right: auto !important; }
+  .mb-lg-auto,
+  .my-lg-auto {
+    margin-bottom: auto !important; }
+  .ml-lg-auto,
+  .mx-lg-auto {
+    margin-left: auto !important; } }
+
+@media (min-width: 1200px) {
+  .m-xl-0 {
+    margin: 0 !important; }
+  .mt-xl-0,
+  .my-xl-0 {
+    margin-top: 0 !important; }
+  .mr-xl-0,
+  .mx-xl-0 {
+    margin-right: 0 !important; }
+  .mb-xl-0,
+  .my-xl-0 {
+    margin-bottom: 0 !important; }
+  .ml-xl-0,
+  .mx-xl-0 {
+    margin-left: 0 !important; }
+  .m-xl-1 {
+    margin: 0.375rem !important; }
+  .mt-xl-1,
+  .my-xl-1 {
+    margin-top: 0.375rem !important; }
+  .mr-xl-1,
+  .mx-xl-1 {
+    margin-right: 0.375rem !important; }
+  .mb-xl-1,
+  .my-xl-1 {
+    margin-bottom: 0.375rem !important; }
+  .ml-xl-1,
+  .mx-xl-1 {
+    margin-left: 0.375rem !important; }
+  .m-xl-2 {
+    margin: 0.75rem !important; }
+  .mt-xl-2,
+  .my-xl-2 {
+    margin-top: 0.75rem !important; }
+  .mr-xl-2,
+  .mx-xl-2 {
+    margin-right: 0.75rem !important; }
+  .mb-xl-2,
+  .my-xl-2 {
+    margin-bottom: 0.75rem !important; }
+  .ml-xl-2,
+  .mx-xl-2 {
+    margin-left: 0.75rem !important; }
+  .m-xl-3 {
+    margin: 1.5rem !important; }
+  .mt-xl-3,
+  .my-xl-3 {
+    margin-top: 1.5rem !important; }
+  .mr-xl-3,
+  .mx-xl-3 {
+    margin-right: 1.5rem !important; }
+  .mb-xl-3,
+  .my-xl-3 {
+    margin-bottom: 1.5rem !important; }
+  .ml-xl-3,
+  .mx-xl-3 {
+    margin-left: 1.5rem !important; }
+  .m-xl-4 {
+    margin: 2.25rem !important; }
+  .mt-xl-4,
+  .my-xl-4 {
+    margin-top: 2.25rem !important; }
+  .mr-xl-4,
+  .mx-xl-4 {
+    margin-right: 2.25rem !important; }
+  .mb-xl-4,
+  .my-xl-4 {
+    margin-bottom: 2.25rem !important; }
+  .ml-xl-4,
+  .mx-xl-4 {
+    margin-left: 2.25rem !important; }
+  .m-xl-5 {
+    margin: 4.5rem !important; }
+  .mt-xl-5,
+  .my-xl-5 {
+    margin-top: 4.5rem !important; }
+  .mr-xl-5,
+  .mx-xl-5 {
+    margin-right: 4.5rem !important; }
+  .mb-xl-5,
+  .my-xl-5 {
+    margin-bottom: 4.5rem !important; }
+  .ml-xl-5,
+  .mx-xl-5 {
+    margin-left: 4.5rem !important; }
+  .p-xl-0 {
+    padding: 0 !important; }
+  .pt-xl-0,
+  .py-xl-0 {
+    padding-top: 0 !important; }
+  .pr-xl-0,
+  .px-xl-0 {
+    padding-right: 0 !important; }
+  .pb-xl-0,
+  .py-xl-0 {
+    padding-bottom: 0 !important; }
+  .pl-xl-0,
+  .px-xl-0 {
+    padding-left: 0 !important; }
+  .p-xl-1 {
+    padding: 0.375rem !important; }
+  .pt-xl-1,
+  .py-xl-1 {
+    padding-top: 0.375rem !important; }
+  .pr-xl-1,
+  .px-xl-1 {
+    padding-right: 0.375rem !important; }
+  .pb-xl-1,
+  .py-xl-1 {
+    padding-bottom: 0.375rem !important; }
+  .pl-xl-1,
+  .px-xl-1 {
+    padding-left: 0.375rem !important; }
+  .p-xl-2 {
+    padding: 0.75rem !important; }
+  .pt-xl-2,
+  .py-xl-2 {
+    padding-top: 0.75rem !important; }
+  .pr-xl-2,
+  .px-xl-2 {
+    padding-right: 0.75rem !important; }
+  .pb-xl-2,
+  .py-xl-2 {
+    padding-bottom: 0.75rem !important; }
+  .pl-xl-2,
+  .px-xl-2 {
+    padding-left: 0.75rem !important; }
+  .p-xl-3 {
+    padding: 1.5rem !important; }
+  .pt-xl-3,
+  .py-xl-3 {
+    padding-top: 1.5rem !important; }
+  .pr-xl-3,
+  .px-xl-3 {
+    padding-right: 1.5rem !important; }
+  .pb-xl-3,
+  .py-xl-3 {
+    padding-bottom: 1.5rem !important; }
+  .pl-xl-3,
+  .px-xl-3 {
+    padding-left: 1.5rem !important; }
+  .p-xl-4 {
+    padding: 2.25rem !important; }
+  .pt-xl-4,
+  .py-xl-4 {
+    padding-top: 2.25rem !important; }
+  .pr-xl-4,
+  .px-xl-4 {
+    padding-right: 2.25rem !important; }
+  .pb-xl-4,
+  .py-xl-4 {
+    padding-bottom: 2.25rem !important; }
+  .pl-xl-4,
+  .px-xl-4 {
+    padding-left: 2.25rem !important; }
+  .p-xl-5 {
+    padding: 4.5rem !important; }
+  .pt-xl-5,
+  .py-xl-5 {
+    padding-top: 4.5rem !important; }
+  .pr-xl-5,
+  .px-xl-5 {
+    padding-right: 4.5rem !important; }
+  .pb-xl-5,
+  .py-xl-5 {
+    padding-bottom: 4.5rem !important; }
+  .pl-xl-5,
+  .px-xl-5 {
+    padding-left: 4.5rem !important; }
+  .m-xl-auto {
+    margin: auto !important; }
+  .mt-xl-auto,
+  .my-xl-auto {
+    margin-top: auto !important; }
+  .mr-xl-auto,
+  .mx-xl-auto {
+    margin-right: auto !important; }
+  .mb-xl-auto,
+  .my-xl-auto {
+    margin-bottom: auto !important; }
+  .ml-xl-auto,
+  .mx-xl-auto {
+    margin-left: auto !important; } }
+
+.text-monospace {
+  font-family: SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace; }
+
+.text-justify {
+  text-align: justify !important; }
+
+.text-nowrap {
+  white-space: nowrap !important; }
+
+.text-truncate {
+  overflow: hidden;
+  text-overflow: ellipsis;
+  white-space: nowrap; }
+
+.text-left {
+  text-align: left !important; }
+
+.text-right {
+  text-align: right !important; }
+
+.text-center {
+  text-align: center !important; }
+
+@media (min-width: 576px) {
+  .text-sm-left {
+    text-align: left !important; }
+  .text-sm-right {
+    text-align: right !important; }
+  .text-sm-center {
+    text-align: center !important; } }
+
+@media (min-width: 768px) {
+  .text-md-left {
+    text-align: left !important; }
+  .text-md-right {
+    text-align: right !important; }
+  .text-md-center {
+    text-align: center !important; } }
+
+@media (min-width: 992px) {
+  .text-lg-left {
+    text-align: left !important; }
+  .text-lg-right {
+    text-align: right !important; }
+  .text-lg-center {
+    text-align: center !important; } }
+
+@media (min-width: 1200px) {
+  .text-xl-left {
+    text-align: left !important; }
+  .text-xl-right {
+    text-align: right !important; }
+  .text-xl-center {
+    text-align: center !important; } }
+
+.text-lowercase {
+  text-transform: lowercase !important; }
+
+.text-uppercase {
+  text-transform: uppercase !important; }
+
+.text-capitalize {
+  text-transform: capitalize !important; }
+
+.font-weight-light {
+  font-weight: 300 !important; }
+
+.font-weight-normal {
+  font-weight: 200 !important; }
+
+.font-weight-bold {
+  font-weight: 700 !important; }
+
+.font-italic {
+  font-style: italic !important; }
+
+.text-white {
+  color: #fff !important; }
+
+.text-primary {
+  color: #0080ff !important; }
+
+a.text-primary:hover, a.text-primary:focus {
+  color: #0066cc !important; }
+
+.text-secondary {
+  color: #0060aa !important; }
+
+a.text-secondary:hover, a.text-secondary:focus {
+  color: #004377 !important; }
+
+.text-success {
+  color: #28a745 !important; }
+
+a.text-success:hover, a.text-success:focus {
+  color: #1e7e34 !important; }
+
+.text-info {
+  color: #00aaff !important; }
+
+a.text-info:hover, a.text-info:focus {
+  color: #0088cc !important; }
+
+.text-warning {
+  color: #ffc107 !important; }
+
+a.text-warning:hover, a.text-warning:focus {
+  color: #d39e00 !important; }
+
+.text-danger {
+  color: #dc3545 !important; }
+
+a.text-danger:hover, a.text-danger:focus {
+  color: #bd2130 !important; }
+
+.text-light {
+  color: #f3f3f3 !important; }
+
+a.text-light:hover, a.text-light:focus {
+  color: #dadada !important; }
+
+.text-dark {
+  color: #303030 !important; }
+
+a.text-dark:hover, a.text-dark:focus {
+  color: #171717 !important; }
+
+.text-body {
+  color: #efefef !important; }
+
+.text-muted {
+  color: #6c757d !important; }
+
+.text-black-50 {
+  color: rgba(0, 0, 0, 0.5) !important; }
+
+.text-white-50 {
+  color: rgba(255, 255, 255, 0.5) !important; }
+
+.text-hide {
+  font: 0/0 a;
+  color: transparent;
+  text-shadow: none;
+  background-color: transparent;
+  border: 0; }
+
+.visible {
+  visibility: visible !important; }
+
+.invisible {
+  visibility: hidden !important; }
+
+@media print {
+  *,
+  *::before,
+  *::after {
+    text-shadow: none !important;
+    box-shadow: none !important; }
+  a:not(.btn) {
+    text-decoration: underline; }
+  abbr[title]::after {
+    content: " (" attr(title) ")"; }
+  pre {
+    white-space: pre-wrap !important; }
+  pre,
+  blockquote {
+    border: 1px solid #adb5bd;
+    page-break-inside: avoid; }
+  thead {
+    display: table-header-group; }
+  tr,
+  img {
+    page-break-inside: avoid; }
+  p,
+  h2,
+  h3 {
+    orphans: 3;
+    widows: 3; }
+  h2,
+  h3 {
+    page-break-after: avoid; }
+  @page {
+    size: a3; }
+  body {
+    min-width: 992px !important; }
+  .container {
+    min-width: 992px !important; }
+  .navbar {
+    display: none; }
+  .badge {
+    border: 1px solid #000; }
+  .table {
+    border-collapse: collapse !important; }
+    .table td,
+    .table th {
+      background-color: #fff !important; }
+  .table-bordered th,
+  .table-bordered td {
+    border: 1px solid #dee2e6 !important; }
+  .table-dark {
+    color: inherit; }
+    .table-dark th,
+    .table-dark td,
+    .table-dark thead th,
+    .table-dark tbody + tbody {
+      border-color: #303030; }
+  .table .thead-dark th {
+    color: inherit;
+    border-color: #303030; } }
+
+html, body {
+  height: 100%; }
+
+.bg-primary {
+  color: #fff; }
+  .bg-primary input::-webkit-input-placeholder {
+    color: rgba(255, 255, 255, 0.8); }
+  .bg-primary input:-ms-input-placeholder {
+    color: rgba(255, 255, 255, 0.8); }
+  .bg-primary input::-ms-input-placeholder {
+    color: rgba(255, 255, 255, 0.8); }
+  .bg-primary input::placeholder {
+    color: rgba(255, 255, 255, 0.8); }
+  .bg-primary .input-group-text {
+    color: #fff; }
+
+.bg-secondary {
+  color: #fff; }
+  .bg-secondary input::-webkit-input-placeholder {
+    color: rgba(255, 255, 255, 0.8); }
+  .bg-secondary input:-ms-input-placeholder {
+    color: rgba(255, 255, 255, 0.8); }
+  .bg-secondary input::-ms-input-placeholder {
+    color: rgba(255, 255, 255, 0.8); }
+  .bg-secondary input::placeholder {
+    color: rgba(255, 255, 255, 0.8); }
+  .bg-secondary .input-group-text {
+    color: #fff; }
+
+.bg-success {
+  color: #fff; }
+  .bg-success input::-webkit-input-placeholder {
+    color: rgba(255, 255, 255, 0.8); }
+  .bg-success input:-ms-input-placeholder {
+    color: rgba(255, 255, 255, 0.8); }
+  .bg-success input::-ms-input-placeholder {
+    color: rgba(255, 255, 255, 0.8); }
+  .bg-success input::placeholder {
+    color: rgba(255, 255, 255, 0.8); }
+  .bg-success .input-group-text {
+    color: #fff; }
+
+.bg-info {
+  color: #fff; }
+  .bg-info input::-webkit-input-placeholder {
+    color: rgba(255, 255, 255, 0.8); }
+  .bg-info input:-ms-input-placeholder {
+    color: rgba(255, 255, 255, 0.8); }
+  .bg-info input::-ms-input-placeholder {
+    color: rgba(255, 255, 255, 0.8); }
+  .bg-info input::placeholder {
+    color: rgba(255, 255, 255, 0.8); }
+  .bg-info .input-group-text {
+    color: #fff; }
+
+.bg-warning {
+  color: #212529; }
+  .bg-warning input::-webkit-input-placeholder {
+    color: rgba(33, 37, 41, 0.8); }
+  .bg-warning input:-ms-input-placeholder {
+    color: rgba(33, 37, 41, 0.8); }
+  .bg-warning input::-ms-input-placeholder {
+    color: rgba(33, 37, 41, 0.8); }
+  .bg-warning input::placeholder {
+    color: rgba(33, 37, 41, 0.8); }
+  .bg-warning .input-group-text {
+    color: #212529; }
+
+.bg-danger {
+  color: #fff; }
+  .bg-danger input::-webkit-input-placeholder {
+    color: rgba(255, 255, 255, 0.8); }
+  .bg-danger input:-ms-input-placeholder {
+    color: rgba(255, 255, 255, 0.8); }
+  .bg-danger input::-ms-input-placeholder {
+    color: rgba(255, 255, 255, 0.8); }
+  .bg-danger input::placeholder {
+    color: rgba(255, 255, 255, 0.8); }
+  .bg-danger .input-group-text {
+    color: #fff; }
+
+.bg-light {
+  color: #212529; }
+  .bg-light input::-webkit-input-placeholder {
+    color: rgba(33, 37, 41, 0.8); }
+  .bg-light input:-ms-input-placeholder {
+    color: rgba(33, 37, 41, 0.8); }
+  .bg-light input::-ms-input-placeholder {
+    color: rgba(33, 37, 41, 0.8); }
+  .bg-light input::placeholder {
+    color: rgba(33, 37, 41, 0.8); }
+  .bg-light .input-group-text {
+    color: #212529; }
+
+.bg-dark {
+  color: #fff; }
+  .bg-dark input::-webkit-input-placeholder {
+    color: rgba(255, 255, 255, 0.8); }
+  .bg-dark input:-ms-input-placeholder {
+    color: rgba(255, 255, 255, 0.8); }
+  .bg-dark input::-ms-input-placeholder {
+    color: rgba(255, 255, 255, 0.8); }
+  .bg-dark input::placeholder {
+    color: rgba(255, 255, 255, 0.8); }
+  .bg-dark .input-group-text {
+    color: #fff; }
+
+.section-fade-in-out {
+  position: relative;
+  color: white;
+  background-size: cover;
+  background-position: center; }
+  .section-fade-in-out:before {
+    position: absolute;
+    top: 0px;
+    left: 0px;
+    width: 100%;
+    height: 100%;
+    content: ' ';
+    background: linear-gradient(#111, rgba(17, 17, 17, 0.8), rgba(17, 17, 17, 0.2), rgba(17, 17, 17, 0.8), #111); }
+
+.section-fade-in {
+  position: relative;
+  color: white;
+  background-size: cover;
+  background-position: center; }
+  .section-fade-in:before {
+    position: absolute;
+    top: 0px;
+    left: 0px;
+    width: 100%;
+    height: 100%;
+    content: ' ';
+    background: linear-gradient(#111, rgba(17, 17, 17, 0.8), rgba(17, 17, 17, 0.2)); }
+
+.section-fade-out {
+  position: relative;
+  color: white;
+  background-size: cover;
+  background-position: center; }
+  .section-fade-out:before {
+    position: absolute;
+    top: 0px;
+    left: 0px;
+    width: 100%;
+    height: 100%;
+    content: ' ';
+    background: linear-gradient(rgba(17, 17, 17, 0.2), rgba(17, 17, 17, 0.8), #111); }
+
+.shadowed {
+  box-shadow: 0px 0px 10px #000; }
+
+.carousel .carousel-caption {
+  padding-top: 50px;
+  padding-bottom: 20px;
+  bottom: 0px;
+  background: linear-gradient(transparent 10%, #111111 100%); }
+
+.carousel .carousel-control-next, .carousel .carousel-control-prev {
+  opacity: 0.85; }
+
+.carousel .carousel-indicators {
+  bottom: 0px; }
+
+mark.primary {
+  background-color: #0080ff;
+  color: black; }
+
+mark.secondary {
+  background-color: #0060aa;
+  color: white; }
+
+.cover {
+  min-height: 100%; }
+
+/* Animate state between .navbar and .navbar-ontop */
+.navbar {
+  transition: background-color .5s ease-out; }
+
+.navbar-ontop {
+  background-color: transparent !important; }
+
+/* Animate on entrance */
+.animate-in-down {
+  transition: all 1.3s ease-out;
+  position: relative;
+  opacity: 1;
+  top: 0px; }
+  .animate-in-down.out-of-viewport {
+    top: 40px;
+    opacity: 0; }
+
+.animate-in-left {
+  transition: all 1.0s ease-out;
+  position: relative;
+  opacity: 1;
+  left: 0%; }
+  .animate-in-left.out-of-viewport {
+    opacity: 0;
+    left: -5%; }
+
+.animate-in-right {
+  transition: all 1.0s ease-out;
+  position: relative;
+  opacity: 1;
+  left: 0%; }
+  .animate-in-right.out-of-viewport {
+    opacity: 0;
+    left: 5%; }
diff --git a/neon.scss b/neon.scss
new file mode 100644
index 0000000..1b135c6
--- /dev/null
+++ b/neon.scss
@@ -0,0 +1,276 @@
+/*!
+* Neon Pingendo template (https://templates.pingendo.com)
+* Based on: Bootstrap v4.1.3 (https://getbootstrap.com)
+* Copyright 2014-2018 Pingendo (https://pingendo.com)
+*/
+
+@import url('https://fonts.googleapis.com/css?family=Montserrat:200');
+  
+// Options
+// 
+// Quickly modify global styling by enabling or disabling optional features.
+  
+$enable-rounded:            true;
+$enable-shadows:            false;
+$enable-transitions:        true;
+$enable-hover-media-query:  false;
+$enable-grid-classes:       true;
+$enable-print-styles:       true;
+
+// Variables
+//
+// Colors
+
+$theme-colors: (
+  primary: #0080ff,
+  secondary: #0060aa,
+  light: #f3f3f3,
+  dark: #303030,
+  info: #00aaff,
+  success: #28a745,
+  warning: #ffc107,
+  danger: #dc3545
+);
+
+$body-bg: #111;
+
+$body-color: #efefef;
+$body-color-inverse: invert($body-color) !default;
+$link-color: #0080ff;
+
+$link-hover-color:      white;
+$link-hover-decoration: none;
+
+
+// Fonts
+$font-family-base: Montserrat;
+$headings-font-family: Montserrat;
+$font-weight-normal: 200;
+$font-weight-base: $font-weight-normal;
+$headings-line-height: 1.2;
+$lead-font-size:   1.30rem;
+$line-height-base: 1.8;
+
+$spacer: 1.5rem;
+
+// Components
+$border-width: 													1px;
+$border-radius: 												0.75rem;
+$border-radius-lg: 											$border-radius * 1.2;
+$border-radius-sm: 											$border-radius * .4;
+$component-active-color :								map-get($theme-colors,"dark");
+
+// Buttons
+$input-btn-padding-x-lg:    						1.1rem;
+$input-btn-padding-x:       						1rem !default;
+
+// Cards
+$card-border-width:        							0px;
+$card-bg: 															rgba(#333,.5);
+
+// Breadcrumb
+$breadcrumb-bg: 												transparent !default;
+$breadcrumb-active-color:       				map-get($theme-colors,"light");
+
+// Carousel
+$carousel-caption-width:      					100% !default;
+$carousel-indicator-height:							6px !default;
+
+//Images
+$thumbnail-border-color:      					map-get($theme-colors,"primary");
+
+// Nav tabs
+$nav-tabs-border-color:									map-get($theme-colors,"primary");
+$nav-tabs-link-hover-border-color:      transparent;
+$nav-tabs-link-active-color:  					$component-active-color;
+$nav-tabs-link-active-bg:               map-get($theme-colors,"primary");
+$nav-tabs-link-active-border-color:     $nav-tabs-border-color;
+
+// Nav pills
+$nav-pills-link-active-color: 					$component-active-color !default;
+
+// Navbar
+$navbar-light-color:                		rgba(black,.6);
+
+// Pagination
+$pagination-bg:                        	$body-bg;
+$pagination-border-color:              	map-get($theme-colors,"dark");
+$pagination-hover-bg:                  	$body-bg;
+$pagination-hover-border-color:        	$pagination-border-color;
+$pagination-active-color:              	$component-active-color;
+$pagination-active-bg:                 	map-get($theme-colors,"primary");
+$pagination-active-border-color:       	map-get($theme-colors,"dark");
+
+// List group
+$list-group-bg:                  				$body-bg;
+$list-group-border-color:        				map-get($theme-colors,"dark");
+$list-group-hover-bg:                 	$body-bg;
+$list-group-active-color:             	$component-active-color;
+$list-group-action-color:             	$link-color;
+$list-group-active-border-color:      	map-get($theme-colors,"dark");
+$list-group-action-hover-color:       	map-get($theme-colors,"light");
+$list-group-action-active-color:      	$body-color !default;
+$list-group-action-active-bg:         	transparent;
+
+// Horizontal rule
+$hr-border-color: 											rgba(map-get($theme-colors,"primary"),.75);
+
+// Tables
+$table-accent-bg:               				rgba(map-get($theme-colors,"light"),.05);
+$table-inverse-bg:              				rgba(map-get($theme-colors,"light"),.5);
+$table-hover-bg:                				rgba(map-get($theme-colors,"light"),.1);
+$table-border-color:            				map-get($theme-colors,"dark");
+
+$font-size-base: 0.85rem;
+
+
+
+@import 'bootstrap-4.1.3';
+
+html,body {
+   height:100%;
+}
+
+
+// Color yiq
+@each $name, $value in $theme-colors {
+  .bg-#{$name} {
+    color: color-yiq($value);
+   	input::placeholder {
+      color: transparentize(color-yiq($value), .2);
+    }
+    .input-group-text {
+      color: color-yiq($value);
+    }
+  }
+}
+
+.section-fade-in-out {
+  position: relative;
+  color:white;
+  background-size:cover;
+  background-position: center;
+  &:before {
+    position: absolute;
+    top:0px;
+    left:0px;
+    width:100%;
+    height: 100%;
+    content: ' ';
+    background: linear-gradient($body-bg, transparentize($body-bg, 0.2),transparentize($body-bg, 0.8),transparentize($body-bg, 0.2), $body-bg);
+	}
+}
+
+.section-fade-in {
+	position: relative;
+  color:white;
+  background-size:cover;
+  background-position: center;
+  &:before {
+    position: absolute;
+    top:0px;
+    left:0px;
+    width:100%;
+    height: 100%;
+    content: ' ';
+    background: linear-gradient($body-bg, transparentize($body-bg, 0.2),transparentize($body-bg, 0.8));
+	}
+}
+
+.section-fade-out {
+	position: relative;
+  color:white;
+  background-size:cover;
+  background-position: center;
+  &:before {
+    position: absolute;
+    top:0px;
+    left:0px;
+    width:100%;
+    height: 100%;
+    content: ' ';
+    background: linear-gradient(transparentize($body-bg, 0.8),transparentize($body-bg, 0.2), $body-bg);
+	}
+}
+
+.shadowed {
+  box-shadow: 0px 0px 10px #000;
+}
+
+.carousel {
+	.carousel-caption {
+    padding-top:50px;
+    padding-bottom:20px;
+	  bottom:0px;
+		background: linear-gradient(transparent 10%, transparentize($body-bg, 0) 100%);
+	}
+  
+	.carousel-control-next, .carousel-control-prev {
+    opacity:0.85;
+  }
+  
+  .carousel-indicators {
+    bottom: 0px;
+  }
+}
+
+mark {
+  &.primary {
+  background-color: map-get($theme-colors,"primary");
+  color: black;
+  }
+  &.secondary {
+  background-color: map-get($theme-colors,"secondary");
+  color: white;
+  }
+}
+
+.cover {
+ min-height: 100%; 
+}
+
+/* Animate state between .navbar and .navbar-ontop */
+.navbar {
+  transition: background-color .5s ease-out;
+}
+
+.navbar-ontop {
+  background-color: transparent !important;
+}
+
+/* Animate on entrance */
+
+.animate-in-down {
+  transition: all 1.3s ease-out;
+	position:relative;
+  opacity:1;
+  top:0px;
+  &.out-of-viewport {
+    top:40px;
+    opacity:0;
+  }
+}
+
+
+.animate-in-left {
+  transition: all 1.0s ease-out;
+	position:relative;
+  opacity:1;
+	left:0%;
+  &.out-of-viewport {
+    opacity:0;
+      left:-5%;
+  }
+}
+
+
+.animate-in-right {
+  transition: all 1.0s ease-out;
+	position:relative;
+  opacity:1;
+	left:0%;
+  &.out-of-viewport {
+    opacity:0;
+    left:5%;
+  }
+}
\ No newline at end of file
diff --git a/pinegrow.json b/pinegrow.json
deleted file mode 100644
index f3db205..0000000
--- a/pinegrow.json
+++ /dev/null
@@ -1,50 +0,0 @@
-{
-   "files":{
-      "index.html":{
-         "frameworks":[
-            "blissroms.github.io",
-            "userlib87481",
-            "pg.insight.events",
-            "pg.code-validator",
-            "pg.project.items",
-            "pg.asset.manager",
-            "pg.fontawesome",
-            "bs3.3.7",
-            "pg.html",
-            "pg.components"
-         ],
-         "last_page_width":1024
-      }
-   },
-   "breakpoints":[
-      "320px",
-      "360px",
-      "480px",
-      "500px",
-      "550px",
-      "650px",
-      "700px",
-      "720px",
-      "750px",
-      "768px",
-      "800px",
-      "880px",
-      "992px",
-      "1080px",
-      "1200px",
-      "1366px",
-      "1500px"
-   ],
-   "frameworks":[
-      "blissroms.github.io",
-      "userlib87481",
-      "pg.insight.events",
-      "pg.code-validator",
-      "pg.project.items",
-      "pg.asset.manager",
-      "pg.fontawesome",
-      "bs3.3.7",
-      "pg.html",
-      "pg.components"
-   ]
-}
