diff --git a/.bundle/config b/.bundle/config
index 00a0edb..ed97d53 100644
--- a/.bundle/config
+++ b/.bundle/config
@@ -1,4 +1 @@
 ---
-BUNDLE_FROZEN: "1"
-BUNDLE_PATH: "vendor/bundle"
-BUNDLE_DISABLE_SHARED_GEMS: "true"
diff --git a/Gemfile b/Gemfile
index 7f21fd4..9a776ce 100644
--- a/Gemfile
+++ b/Gemfile
@@ -8,14 +8,14 @@
 #
 # This will help ensure the proper Jekyll version is running.
 # Happy Jekylling!
-gem "jekyll", "3.5.2"
+# gem "jekyll", "3.5.2"
 
 # This is the default theme for new Jekyll sites. You may change this to anything you like.
 gem "minima", "~> 2.0"
 
 # If you want to use GitHub Pages, remove the "gem "jekyll"" above and
 # uncomment the line below. To upgrade, run `bundle update github-pages`.
-# gem "github-pages", group: :jekyll_plugins
+gem "github-pages", group: :jekyll_plugins
 
 # If you have any plugins, put them here!
 group :jekyll_plugins do
diff --git a/Gemfile.lock b/Gemfile.lock
index 1b57b01..dc9d06f 100644
--- a/Gemfile.lock
+++ b/Gemfile.lock
@@ -1,11 +1,78 @@
 GEM
   remote: https://rubygems.org/
   specs:
+    activesupport (4.2.8)
+      i18n (~> 0.7)
+      minitest (~> 5.1)
+      thread_safe (~> 0.3, >= 0.3.4)
+      tzinfo (~> 1.1)
     addressable (2.5.2)
       public_suffix (>= 2.0.2, < 4.0)
+    coffee-script (2.4.1)
+      coffee-script-source
+      execjs
+    coffee-script-source (1.11.1)
     colorator (1.1.0)
+    ethon (0.10.1)
+      ffi (>= 1.3.0)
+    execjs (2.7.0)
+    faraday (0.13.1)
+      multipart-post (>= 1.2, < 3)
     ffi (1.9.18)
     forwardable-extended (2.6.0)
+    gemoji (3.0.0)
+    github-pages (161)
+      activesupport (= 4.2.8)
+      github-pages-health-check (= 1.3.5)
+      jekyll (= 3.5.2)
+      jekyll-avatar (= 0.5.0)
+      jekyll-coffeescript (= 1.0.2)
+      jekyll-default-layout (= 0.1.4)
+      jekyll-feed (= 0.9.2)
+      jekyll-gist (= 1.4.1)
+      jekyll-github-metadata (= 2.9.3)
+      jekyll-mentions (= 1.2.0)
+      jekyll-optional-front-matter (= 0.2.0)
+      jekyll-paginate (= 1.1.0)
+      jekyll-readme-index (= 0.1.0)
+      jekyll-redirect-from (= 0.12.1)
+      jekyll-relative-links (= 0.4.1)
+      jekyll-sass-converter (= 1.5.0)
+      jekyll-seo-tag (= 2.3.0)
+      jekyll-sitemap (= 1.1.1)
+      jekyll-swiss (= 0.4.0)
+      jekyll-theme-architect (= 0.1.0)
+      jekyll-theme-cayman (= 0.1.0)
+      jekyll-theme-dinky (= 0.1.0)
+      jekyll-theme-hacker (= 0.1.0)
+      jekyll-theme-leap-day (= 0.1.0)
+      jekyll-theme-merlot (= 0.1.0)
+      jekyll-theme-midnight (= 0.1.0)
+      jekyll-theme-minimal (= 0.1.0)
+      jekyll-theme-modernist (= 0.1.0)
+      jekyll-theme-primer (= 0.5.2)
+      jekyll-theme-slate (= 0.1.0)
+      jekyll-theme-tactile (= 0.1.0)
+      jekyll-theme-time-machine (= 0.1.0)
+      jekyll-titles-from-headings (= 0.4.0)
+      jemoji (= 0.8.0)
+      kramdown (= 1.13.2)
+      liquid (= 4.0.0)
+      listen (= 3.0.6)
+      mercenary (~> 0.3)
+      minima (= 2.1.1)
+      rouge (= 1.11.1)
+      terminal-table (~> 1.4)
+    github-pages-health-check (1.3.5)
+      addressable (~> 2.3)
+      net-dns (~> 0.8)
+      octokit (~> 4.0)
+      public_suffix (~> 2.0)
+      typhoeus (~> 0.7)
+    html-pipeline (2.7.0)
+      activesupport (>= 2)
+      nokogiri (>= 1.4)
+    i18n (0.8.6)
     jekyll (3.5.2)
       addressable (~> 2.4)
       colorator (~> 1.0)
@@ -17,23 +84,108 @@
       pathutil (~> 0.9)
       rouge (~> 1.7)
       safe_yaml (~> 1.0)
+    jekyll-avatar (0.5.0)
+      jekyll (~> 3.0)
+    jekyll-coffeescript (1.0.2)
+      coffee-script (~> 2.2)
+      coffee-script-source (~> 1.11.1)
+    jekyll-default-layout (0.1.4)
+      jekyll (~> 3.0)
     jekyll-feed (0.9.2)
       jekyll (~> 3.3)
+    jekyll-gist (1.4.1)
+      octokit (~> 4.2)
+    jekyll-github-metadata (2.9.3)
+      jekyll (~> 3.1)
+      octokit (~> 4.0, != 4.4.0)
+    jekyll-mentions (1.2.0)
+      activesupport (~> 4.0)
+      html-pipeline (~> 2.3)
+      jekyll (~> 3.0)
+    jekyll-optional-front-matter (0.2.0)
+      jekyll (~> 3.0)
+    jekyll-paginate (1.1.0)
+    jekyll-readme-index (0.1.0)
+      jekyll (~> 3.0)
+    jekyll-redirect-from (0.12.1)
+      jekyll (~> 3.3)
+    jekyll-relative-links (0.4.1)
+      jekyll (~> 3.3)
     jekyll-sass-converter (1.5.0)
       sass (~> 3.4)
+    jekyll-seo-tag (2.3.0)
+      jekyll (~> 3.3)
+    jekyll-sitemap (1.1.1)
+      jekyll (~> 3.3)
+    jekyll-swiss (0.4.0)
+    jekyll-theme-architect (0.1.0)
+      jekyll (~> 3.5)
+      jekyll-seo-tag (~> 2.0)
+    jekyll-theme-cayman (0.1.0)
+      jekyll (~> 3.5)
+      jekyll-seo-tag (~> 2.0)
+    jekyll-theme-dinky (0.1.0)
+      jekyll (~> 3.5)
+      jekyll-seo-tag (~> 2.0)
+    jekyll-theme-hacker (0.1.0)
+      jekyll (~> 3.5)
+      jekyll-seo-tag (~> 2.0)
+    jekyll-theme-leap-day (0.1.0)
+      jekyll (~> 3.5)
+      jekyll-seo-tag (~> 2.0)
+    jekyll-theme-merlot (0.1.0)
+      jekyll (~> 3.5)
+      jekyll-seo-tag (~> 2.0)
+    jekyll-theme-midnight (0.1.0)
+      jekyll (~> 3.5)
+      jekyll-seo-tag (~> 2.0)
+    jekyll-theme-minimal (0.1.0)
+      jekyll (~> 3.5)
+      jekyll-seo-tag (~> 2.0)
+    jekyll-theme-modernist (0.1.0)
+      jekyll (~> 3.5)
+      jekyll-seo-tag (~> 2.0)
+    jekyll-theme-primer (0.5.2)
+      jekyll (~> 3.5)
+      jekyll-github-metadata (~> 2.9)
+      jekyll-seo-tag (~> 2.2)
+    jekyll-theme-slate (0.1.0)
+      jekyll (~> 3.5)
+      jekyll-seo-tag (~> 2.0)
+    jekyll-theme-tactile (0.1.0)
+      jekyll (~> 3.5)
+      jekyll-seo-tag (~> 2.0)
+    jekyll-theme-time-machine (0.1.0)
+      jekyll (~> 3.5)
+      jekyll-seo-tag (~> 2.0)
+    jekyll-titles-from-headings (0.4.0)
+      jekyll (~> 3.3)
     jekyll-watch (1.5.0)
       listen (~> 3.0, < 3.1)
-    kramdown (1.14.0)
+    jemoji (0.8.0)
+      activesupport (~> 4.0)
+      gemoji (~> 3.0)
+      html-pipeline (~> 2.2)
+      jekyll (>= 3.0)
+    kramdown (1.13.2)
     liquid (4.0.0)
-    listen (3.0.8)
-      rb-fsevent (~> 0.9, >= 0.9.4)
-      rb-inotify (~> 0.9, >= 0.9.7)
+    listen (3.0.6)
+      rb-fsevent (>= 0.9.3)
+      rb-inotify (>= 0.9.7)
     mercenary (0.3.6)
+    mini_portile2 (2.3.0)
     minima (2.1.1)
       jekyll (~> 3.3)
+    minitest (5.10.3)
+    multipart-post (2.0.0)
+    net-dns (0.8.0)
+    nokogiri (1.8.1)
+      mini_portile2 (~> 2.3.0)
+    octokit (4.7.0)
+      sawyer (~> 0.8.0, >= 0.5.3)
     pathutil (0.14.0)
       forwardable-extended (~> 2.6)
-    public_suffix (3.0.0)
+    public_suffix (2.0.5)
     rb-fsevent (0.10.2)
     rb-inotify (0.9.10)
       ffi (>= 0.5.0, < 2)
@@ -44,12 +196,23 @@
     sass-listen (4.0.0)
       rb-fsevent (~> 0.9, >= 0.9.4)
       rb-inotify (~> 0.9, >= 0.9.7)
+    sawyer (0.8.1)
+      addressable (>= 2.3.5, < 2.6)
+      faraday (~> 0.8, < 1.0)
+    terminal-table (1.8.0)
+      unicode-display_width (~> 1.1, >= 1.1.1)
+    thread_safe (0.3.6)
+    typhoeus (0.8.0)
+      ethon (>= 0.8.0)
+    tzinfo (1.2.3)
+      thread_safe (~> 0.1)
+    unicode-display_width (1.3.0)
 
 PLATFORMS
   ruby
 
 DEPENDENCIES
-  jekyll (= 3.5.2)
+  github-pages
   jekyll-feed (~> 0.6)
   minima (~> 2.0)
   tzinfo-data
diff --git a/_config.yml b/_config.yml
index 7ea7f91..c9072f9 100755
--- a/_config.yml
+++ b/_config.yml
@@ -7,6 +7,7 @@
 
 twitter_username: ApacheAmaterasu
 github_username: apache/incubator-amaterasu
+repository: apache/incubator-amaterasu-site
 
 # Build settings
 markdown: kramdown
diff --git a/_site/assets/css/style.css b/_site/assets/css/style.css
new file mode 100644
index 0000000..3b89a7d
--- /dev/null
+++ b/_site/assets/css/style.css
@@ -0,0 +1,2742 @@
+/*! normalize.css v4.1.1 | MIT License | github.com/necolas/normalize.css */
+/** 1. Change the default font family in all browsers (opinionated). 2. Prevent adjustments of font size after orientation changes in IE and iOS. */
+html { font-family: sans-serif; /* 1 */ -ms-text-size-adjust: 100%; /* 2 */ -webkit-text-size-adjust: 100%; /* 2 */ }
+
+/** Remove the margin in all browsers (opinionated). */
+body { margin: 0; }
+
+/* HTML5 display definitions ========================================================================== */
+/** Add the correct display in IE 9-. 1. Add the correct display in Edge, IE, and Firefox. 2. Add the correct display in IE. */
+article, aside, details, figcaption, figure, footer, header, main, menu, nav, section { /* 1 */ display: block; }
+
+summary { display: list-item; }
+
+/** Add the correct display in IE 9-. */
+audio, canvas, progress, video { display: inline-block; }
+
+/** Add the correct display in iOS 4-7. */
+audio:not([controls]) { display: none; height: 0; }
+
+/** Add the correct vertical alignment in Chrome, Firefox, and Opera. */
+progress { vertical-align: baseline; }
+
+/** Add the correct display in IE 10-. 1. Add the correct display in IE. */
+template, [hidden] { display: none; }
+
+/* Links ========================================================================== */
+/** 1. Remove the gray background on active links in IE 10. 2. Remove gaps in links underline in iOS 8+ and Safari 8+. */
+a { background-color: transparent; /* 1 */ -webkit-text-decoration-skip: objects; /* 2 */ }
+
+/** Remove the outline on focused links when they are also active or hovered in all browsers (opinionated). */
+a:active, a:hover { outline-width: 0; }
+
+/* Text-level semantics ========================================================================== */
+/** 1. Remove the bottom border in Firefox 39-. 2. Add the correct text decoration in Chrome, Edge, IE, Opera, and Safari. */
+abbr[title] { border-bottom: none; /* 1 */ text-decoration: underline; /* 2 */ text-decoration: underline dotted; /* 2 */ }
+
+/** Prevent the duplicate application of `bolder` by the next rule in Safari 6. */
+b, strong { font-weight: inherit; }
+
+/** Add the correct font weight in Chrome, Edge, and Safari. */
+b, strong { font-weight: bolder; }
+
+/** Add the correct font style in Android 4.3-. */
+dfn { font-style: italic; }
+
+/** Correct the font size and margin on `h1` elements within `section` and `article` contexts in Chrome, Firefox, and Safari. */
+h1 { font-size: 2em; margin: 0.67em 0; }
+
+/** Add the correct background and color in IE 9-. */
+mark { background-color: #ff0; color: #000; }
+
+/** Add the correct font size in all browsers. */
+small { font-size: 80%; }
+
+/** Prevent `sub` and `sup` elements from affecting the line height in all browsers. */
+sub, sup { font-size: 75%; line-height: 0; position: relative; vertical-align: baseline; }
+
+sub { bottom: -0.25em; }
+
+sup { top: -0.5em; }
+
+/* Embedded content ========================================================================== */
+/** Remove the border on images inside links in IE 10-. */
+img { border-style: none; }
+
+/** Hide the overflow in IE. */
+svg:not(:root) { overflow: hidden; }
+
+/* Grouping content ========================================================================== */
+/** 1. Correct the inheritance and scaling of font size in all browsers. 2. Correct the odd `em` font sizing in all browsers. */
+code, kbd, pre, samp { font-family: monospace, monospace; /* 1 */ font-size: 1em; /* 2 */ }
+
+/** Add the correct margin in IE 8. */
+figure { margin: 1em 40px; }
+
+/** 1. Add the correct box sizing in Firefox. 2. Show the overflow in Edge and IE. */
+hr { box-sizing: content-box; /* 1 */ height: 0; /* 1 */ overflow: visible; /* 2 */ }
+
+/* Forms ========================================================================== */
+/** 1. Change font properties to `inherit` in all browsers (opinionated). 2. Remove the margin in Firefox and Safari. */
+button, input, select, textarea { font: inherit; /* 1 */ margin: 0; /* 2 */ }
+
+/** Restore the font weight unset by the previous rule. */
+optgroup { font-weight: bold; }
+
+/** Show the overflow in IE. 1. Show the overflow in Edge. */
+button, input { /* 1 */ overflow: visible; }
+
+/** Remove the inheritance of text transform in Edge, Firefox, and IE. 1. Remove the inheritance of text transform in Firefox. */
+button, select { /* 1 */ text-transform: none; }
+
+/** 1. Prevent a WebKit bug where (2) destroys native `audio` and `video` controls in Android 4. 2. Correct the inability to style clickable types in iOS and Safari. */
+button, html [type="button"], [type="reset"], [type="submit"] { -webkit-appearance: button; /* 2 */ }
+
+/** Remove the inner border and padding in Firefox. */
+button::-moz-focus-inner, [type="button"]::-moz-focus-inner, [type="reset"]::-moz-focus-inner, [type="submit"]::-moz-focus-inner { border-style: none; padding: 0; }
+
+/** Restore the focus styles unset by the previous rule. */
+button:-moz-focusring, [type="button"]:-moz-focusring, [type="reset"]:-moz-focusring, [type="submit"]:-moz-focusring { outline: 1px dotted ButtonText; }
+
+/** Change the border, margin, and padding in all browsers (opinionated). */
+fieldset { border: 1px solid #c0c0c0; margin: 0 2px; padding: 0.35em 0.625em 0.75em; }
+
+/** 1. Correct the text wrapping in Edge and IE. 2. Correct the color inheritance from `fieldset` elements in IE. 3. Remove the padding so developers are not caught out when they zero out `fieldset` elements in all browsers. */
+legend { box-sizing: border-box; /* 1 */ color: inherit; /* 2 */ display: table; /* 1 */ max-width: 100%; /* 1 */ padding: 0; /* 3 */ white-space: normal; /* 1 */ }
+
+/** Remove the default vertical scrollbar in IE. */
+textarea { overflow: auto; }
+
+/** 1. Add the correct box sizing in IE 10-. 2. Remove the padding in IE 10-. */
+[type="checkbox"], [type="radio"] { box-sizing: border-box; /* 1 */ padding: 0; /* 2 */ }
+
+/** Correct the cursor style of increment and decrement buttons in Chrome. */
+[type="number"]::-webkit-inner-spin-button, [type="number"]::-webkit-outer-spin-button { height: auto; }
+
+/** 1. Correct the odd appearance in Chrome and Safari. 2. Correct the outline style in Safari. */
+[type="search"] { -webkit-appearance: textfield; /* 1 */ outline-offset: -2px; /* 2 */ }
+
+/** Remove the inner padding and cancel buttons in Chrome and Safari on OS X. */
+[type="search"]::-webkit-search-cancel-button, [type="search"]::-webkit-search-decoration { -webkit-appearance: none; }
+
+/** Correct the text style of placeholders in Chrome, Edge, and Safari. */
+::-webkit-input-placeholder { color: inherit; opacity: 0.54; }
+
+/** 1. Correct the inability to style clickable types in iOS and Safari. 2. Change font properties to `inherit` in Safari. */
+::-webkit-file-upload-button { -webkit-appearance: button; /* 1 */ font: inherit; /* 2 */ }
+
+* { box-sizing: border-box; }
+
+input, select, textarea, button { font-family: inherit; font-size: inherit; line-height: inherit; }
+
+body { font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"; font-size: 14px; line-height: 1.5; color: #24292e; background-color: #fff; }
+
+a { color: #0366d6; text-decoration: none; }
+a:hover { text-decoration: underline; }
+
+b, strong { font-weight: 600; }
+
+hr, .rule { height: 0; margin: 15px 0; overflow: hidden; background: transparent; border: 0; border-bottom: 1px solid #dfe2e5; }
+hr::before, .rule::before { display: table; content: ""; }
+hr::after, .rule::after { display: table; clear: both; content: ""; }
+
+table { border-spacing: 0; border-collapse: collapse; }
+
+td, th { padding: 0; }
+
+button { cursor: pointer; }
+
+h1, h2, h3, h4, h5, h6 { margin-top: 0; margin-bottom: 0; }
+
+h1 { font-size: 32px; font-weight: 600; }
+
+h2 { font-size: 24px; font-weight: 600; }
+
+h3 { font-size: 20px; font-weight: 600; }
+
+h4 { font-size: 16px; font-weight: 600; }
+
+h5 { font-size: 14px; font-weight: 600; }
+
+h6 { font-size: 12px; font-weight: 600; }
+
+p { margin-top: 0; margin-bottom: 10px; }
+
+small { font-size: 90%; }
+
+blockquote { margin: 0; }
+
+ul, ol { padding-left: 0; margin-top: 0; margin-bottom: 0; }
+
+ol ol, ul ol { list-style-type: lower-roman; }
+
+ul ul ol, ul ol ol, ol ul ol, ol ol ol { list-style-type: lower-alpha; }
+
+dd { margin-left: 0; }
+
+tt, code { font-family: "SFMono-Regular", Consolas, "Liberation Mono", Menlo, Courier, monospace; font-size: 12px; }
+
+pre { margin-top: 0; margin-bottom: 0; font-family: "SFMono-Regular", Consolas, "Liberation Mono", Menlo, Courier, monospace; font-size: 12px; }
+
+.octicon { vertical-align: text-bottom; }
+
+.anim-fade-in { animation-name: fade-in; animation-duration: 1s; animation-timing-function: ease-in-out; }
+.anim-fade-in.fast { animation-duration: 300ms; }
+
+@keyframes fade-in { 0% { opacity: 0; }
+  100% { opacity: 1; } }
+/* Fade in and slide up an element */
+.anim-fade-up { opacity: 0; animation-name: fade-up; animation-duration: 0.3s; animation-fill-mode: forwards; animation-timing-function: ease-out; animation-delay: 1s; }
+
+@keyframes fade-up { 0% { opacity: 0.8; transform: translateY(100%); }
+  100% { opacity: 1; transform: translateY(0); } }
+/* Fade an element out and slide down */
+.anim-fade-down { animation-name: fade-down; animation-duration: 0.3s; animation-fill-mode: forwards; animation-timing-function: ease-in; }
+
+@keyframes fade-down { 0% { opacity: 1; transform: translateY(0); }
+  100% { opacity: 0.5; transform: translateY(100%); } }
+/* Grow an element width from 0 to 100% */
+.anim-grow-x { width: 0%; animation-name: grow-x; animation-duration: 0.3s; animation-fill-mode: forwards; animation-timing-function: ease; animation-delay: 0.5s; }
+
+@keyframes grow-x { to { width: 100%; } }
+/* Shrink an element from 100% to 0% */
+.anim-shrink-x { animation-name: shrink-x; animation-duration: 0.3s; animation-fill-mode: forwards; animation-timing-function: ease-in-out; animation-delay: 0.5s; }
+
+@keyframes shrink-x { to { width: 0%; } }
+/* Fade in an element and scale it fast */
+.anim-scale-in { animation-name: scale-in; animation-duration: 0.15s; animation-timing-function: cubic-bezier(0.2, 0, 0.13, 1.5); }
+
+@keyframes scale-in { 0% { opacity: 0; transform: scale(0.5); }
+  100% { opacity: 1; transform: scale(1); } }
+/* Pulse an element's opacity */
+.anim-pulse { animation-name: pulse; animation-duration: 2s; animation-timing-function: linear; animation-iteration-count: infinite; }
+
+@keyframes pulse { 0% { opacity: 0.3; }
+  10% { opacity: 1; }
+  100% { opacity: 0.3; } }
+/* Pulse in an element */
+.anim-pulse-in { animation-name: pulse-in; animation-duration: 0.5s; }
+
+@keyframes pulse-in { 0% { transform: scale3d(1, 1, 1); }
+  50% { transform: scale3d(1.1, 1.1, 1.1); }
+  100% { transform: scale3d(1, 1, 1); } }
+/* Add a gray border */
+.border { border: 1px #e1e4e8 solid !important; }
+
+/* Add a gray border to the top */
+.border-top { border-top: 1px #e1e4e8 solid !important; }
+
+/* Add a gray border to the right */
+.border-right { border-right: 1px #e1e4e8 solid !important; }
+
+/* Add a gray border to the bottom */
+.border-bottom { border-bottom: 1px #e1e4e8 solid !important; }
+
+/* Add a gray border to the left */
+.border-left { border-left: 1px #e1e4e8 solid !important; }
+
+/* Add a gray border to the left and right */
+.border-y { border-top: 1px #e1e4e8 solid !important; border-bottom: 1px #e1e4e8 solid !important; }
+
+.border-dashed { border-style: dashed !important; }
+
+/* Use with .border to turn the border blue */
+.border-blue { border-color: #0366d6 !important; }
+
+/* Use with .border to turn the border blue-light */
+.border-blue-light { border-color: #c8e1ff !important; }
+
+/* Use with .border to turn the border green */
+.border-green { border-color: #34d058 !important; }
+
+/* Use with .border to turn the border green light */
+.border-green-light { border-color: #a2cbac !important; }
+
+/* Use with .border to turn the border red */
+.border-red { border-color: #d73a49 !important; }
+
+/* Use with .border to turn the border red-light */
+.border-red-light { border-color: #cea0a5 !important; }
+
+/* Use with .border to turn the border purple */
+.border-purple { border-color: #6f42c1 !important; }
+
+/* Use with .border to turn the border yellow */
+.border-yellow { border-color: #d9d0a5 !important; }
+
+/* Use with .border to turn the border gray-light */
+.border-gray-light { border-color: #eaecef !important; }
+
+/* Use with .border to turn the border gray-dark */
+.border-gray-dark { border-color: #d1d5da !important; }
+
+/* Use with .border to turn the border rgba black 0.15 */
+.border-black-fade { border-color: rgba(27, 31, 35, 0.15) !important; }
+
+/* Remove all borders */
+.border-0 { border: 0 !important; }
+
+/* Remove the top border */
+.border-top-0 { border-top: 0 !important; }
+
+/* Remove the right border */
+.border-right-0 { border-right: 0 !important; }
+
+/* Remove the bottom border */
+.border-bottom-0 { border-bottom: 0 !important; }
+
+/* Remove the left border */
+.border-left-0 { border-left: 0 !important; }
+
+/* Remove the border-radius */
+.rounded-0 { border-radius: 0 !important; }
+
+/* Add a border-radius to all corners */
+.rounded-1 { border-radius: 3px !important; }
+
+/* Add a 2x border-radius to all corners */
+.rounded-2 { border-radius: 6px !important; }
+
+.box-shadow { box-shadow: 0 1px 1px rgba(27, 31, 35, 0.1) !important; }
+
+.box-shadow-medium { box-shadow: 0 1px 5px rgba(27, 31, 35, 0.15) !important; }
+
+.box-shadow-large { box-shadow: 0 1px 15px rgba(27, 31, 35, 0.15) !important; }
+
+.box-shadow-extra-large { box-shadow: 0 10px 50px rgba(27, 31, 35, 0.07) !important; }
+
+.box-shadow-none { box-shadow: none !important; }
+
+/* Set the background to $bg-white */
+.bg-white { background-color: #fff !important; }
+
+/* Set the background to $bg-blue */
+.bg-blue { background-color: #0366d6 !important; }
+
+/* Set the background to $bg-blue-light */
+.bg-blue-light { background-color: #f1f8ff !important; }
+
+/* Set the background to $bg-gray-dark */
+.bg-gray-dark { background-color: #24292e !important; }
+
+/* Set the background to $bg-gray */
+.bg-gray { background-color: #f6f8fa !important; }
+
+/* Set the background to $bg-gray-light */
+.bg-gray-light { background-color: #fafbfc !important; }
+
+/* Set the background to $bg-green */
+.bg-green { background-color: #28a745 !important; }
+
+/* Set the background to $bg-green-light */
+.bg-green-light { background-color: #dcffe4 !important; }
+
+/* Set the background to $bg-red */
+.bg-red { background-color: #d73a49 !important; }
+
+/* Set the background to $bg-red-light */
+.bg-red-light { background-color: #ffdce0 !important; }
+
+/* Set the background to $bg-yellow */
+.bg-yellow { background-color: #ffd33d !important; }
+
+/* Set the background to $bg-yellow-light */
+.bg-yellow-light { background-color: #fff5b1 !important; }
+
+/* Set the background to $bg-purple */
+.bg-purple { background-color: #6f42c1 !important; }
+
+/* Set the background to $bg-purple-light */
+.bg-purple-light { background-color: #f5f0ff !important; }
+
+.bg-shade-gradient { background-image: linear-gradient(180deg, rgba(27, 31, 35, 0.065), rgba(27, 31, 35, 0)) !important; background-repeat: no-repeat !important; background-size: 100% 200px !important; }
+
+/* Set the text color to $text-blue */
+.text-blue { color: #0366d6 !important; }
+
+/* Set the text color to $text-red */
+.text-red { color: #cb2431 !important; }
+
+/* Set the text color to $text-gray-light */
+.text-gray-light { color: #6a737d !important; }
+
+/* Set the text color to $text-gray */
+.text-gray { color: #586069 !important; }
+
+/* Set the text color to $text-gray-dark */
+.text-gray-dark { color: #24292e !important; }
+
+/* Set the text color to $text-green */
+.text-green { color: #28a745 !important; }
+
+/* Set the text color to $text-orange */
+.text-orange { color: #a04100 !important; }
+
+/* Set the text color to $text-orange-light */
+.text-orange-light { color: #e36209 !important; }
+
+/* Set the text color to $text-purple */
+.text-purple { color: #6f42c1 !important; }
+
+/* Set the text color to $text-white */
+.text-white { color: #fff !important; }
+
+/* Set the text color to inherit */
+.text-inherit { color: inherit !important; }
+
+.text-pending { color: #b08800 !important; }
+
+.bg-pending { color: #dbab09 !important; }
+
+.link-gray { color: #586069 !important; }
+.link-gray:hover { color: #0366d6 !important; }
+
+.link-gray-dark { color: #24292e !important; }
+.link-gray-dark:hover { color: #0366d6 !important; }
+
+/* Set the link color to $text-blue on hover Useful when you want only part of a link to turn blue on hover */
+.link-hover-blue:hover { color: #0366d6 !important; }
+
+/* Make a link $text-gray, then $text-blue on hover and removes the underline */
+.muted-link { color: #586069 !important; }
+.muted-link:hover { color: #0366d6 !important; text-decoration: none; }
+
+.flex-row { flex-direction: row !important; }
+
+.flex-row-reverse { flex-direction: row-reverse !important; }
+
+.flex-column { flex-direction: column !important; }
+
+.flex-wrap { flex-wrap: wrap !important; }
+
+.flex-nowrap { flex-wrap: nowrap !important; }
+
+.flex-justify-start { justify-content: flex-start !important; }
+
+.flex-justify-end { justify-content: flex-end !important; }
+
+.flex-justify-center { justify-content: center !important; }
+
+.flex-justify-between { justify-content: space-between !important; }
+
+.flex-justify-around { justify-content: space-around !important; }
+
+.flex-items-start { align-items: flex-start !important; }
+
+.flex-items-end { align-items: flex-end !important; }
+
+.flex-items-center { align-items: center !important; }
+
+.flex-items-baseline { align-items: baseline !important; }
+
+.flex-items-stretch { align-items: stretch !important; }
+
+.flex-content-start { align-content: flex-start !important; }
+
+.flex-content-end { align-content: flex-end !important; }
+
+.flex-content-center { align-content: center !important; }
+
+.flex-content-between { align-content: space-between !important; }
+
+.flex-content-around { align-content: space-around !important; }
+
+.flex-content-stretch { align-content: stretch !important; }
+
+.flex-auto { flex: 1 1 auto !important; }
+
+.flex-shrink-0 { flex-shrink: 0 !important; }
+
+.flex-self-auto { align-self: auto !important; }
+
+.flex-self-start { align-self: flex-start !important; }
+
+.flex-self-end { align-self: flex-end !important; }
+
+.flex-self-center { align-self: center !important; }
+
+.flex-self-baseline { align-self: baseline !important; }
+
+.flex-self-stretch { align-self: stretch !important; }
+
+.flex-item-equal { flex-grow: 1; flex-basis: 0; }
+
+@media (min-width: 544px) { .flex-sm-row { flex-direction: row !important; }
+  .flex-sm-row-reverse { flex-direction: row-reverse !important; }
+  .flex-sm-column { flex-direction: column !important; }
+  .flex-sm-wrap { flex-wrap: wrap !important; }
+  .flex-sm-nowrap { flex-wrap: nowrap !important; }
+  .flex-sm-justify-start { justify-content: flex-start !important; }
+  .flex-sm-justify-end { justify-content: flex-end !important; }
+  .flex-sm-justify-center { justify-content: center !important; }
+  .flex-sm-justify-between { justify-content: space-between !important; }
+  .flex-sm-justify-around { justify-content: space-around !important; }
+  .flex-sm-items-start { align-items: flex-start !important; }
+  .flex-sm-items-end { align-items: flex-end !important; }
+  .flex-sm-items-center { align-items: center !important; }
+  .flex-sm-items-baseline { align-items: baseline !important; }
+  .flex-sm-items-stretch { align-items: stretch !important; }
+  .flex-sm-content-start { align-content: flex-start !important; }
+  .flex-sm-content-end { align-content: flex-end !important; }
+  .flex-sm-content-center { align-content: center !important; }
+  .flex-sm-content-between { align-content: space-between !important; }
+  .flex-sm-content-around { align-content: space-around !important; }
+  .flex-sm-content-stretch { align-content: stretch !important; }
+  .flex-sm-auto { flex: 1 1 auto !important; }
+  .flex-sm-shrink-0 { flex-shrink: 0 !important; }
+  .flex-sm-self-auto { align-self: auto !important; }
+  .flex-sm-self-start { align-self: flex-start !important; }
+  .flex-sm-self-end { align-self: flex-end !important; }
+  .flex-sm-self-center { align-self: center !important; }
+  .flex-sm-self-baseline { align-self: baseline !important; }
+  .flex-sm-self-stretch { align-self: stretch !important; }
+  .flex-sm-item-equal { flex-grow: 1; flex-basis: 0; } }
+@media (min-width: 768px) { .flex-md-row { flex-direction: row !important; }
+  .flex-md-row-reverse { flex-direction: row-reverse !important; }
+  .flex-md-column { flex-direction: column !important; }
+  .flex-md-wrap { flex-wrap: wrap !important; }
+  .flex-md-nowrap { flex-wrap: nowrap !important; }
+  .flex-md-justify-start { justify-content: flex-start !important; }
+  .flex-md-justify-end { justify-content: flex-end !important; }
+  .flex-md-justify-center { justify-content: center !important; }
+  .flex-md-justify-between { justify-content: space-between !important; }
+  .flex-md-justify-around { justify-content: space-around !important; }
+  .flex-md-items-start { align-items: flex-start !important; }
+  .flex-md-items-end { align-items: flex-end !important; }
+  .flex-md-items-center { align-items: center !important; }
+  .flex-md-items-baseline { align-items: baseline !important; }
+  .flex-md-items-stretch { align-items: stretch !important; }
+  .flex-md-content-start { align-content: flex-start !important; }
+  .flex-md-content-end { align-content: flex-end !important; }
+  .flex-md-content-center { align-content: center !important; }
+  .flex-md-content-between { align-content: space-between !important; }
+  .flex-md-content-around { align-content: space-around !important; }
+  .flex-md-content-stretch { align-content: stretch !important; }
+  .flex-md-auto { flex: 1 1 auto !important; }
+  .flex-md-shrink-0 { flex-shrink: 0 !important; }
+  .flex-md-self-auto { align-self: auto !important; }
+  .flex-md-self-start { align-self: flex-start !important; }
+  .flex-md-self-end { align-self: flex-end !important; }
+  .flex-md-self-center { align-self: center !important; }
+  .flex-md-self-baseline { align-self: baseline !important; }
+  .flex-md-self-stretch { align-self: stretch !important; }
+  .flex-md-item-equal { flex-grow: 1; flex-basis: 0; } }
+@media (min-width: 1012px) { .flex-lg-row { flex-direction: row !important; }
+  .flex-lg-row-reverse { flex-direction: row-reverse !important; }
+  .flex-lg-column { flex-direction: column !important; }
+  .flex-lg-wrap { flex-wrap: wrap !important; }
+  .flex-lg-nowrap { flex-wrap: nowrap !important; }
+  .flex-lg-justify-start { justify-content: flex-start !important; }
+  .flex-lg-justify-end { justify-content: flex-end !important; }
+  .flex-lg-justify-center { justify-content: center !important; }
+  .flex-lg-justify-between { justify-content: space-between !important; }
+  .flex-lg-justify-around { justify-content: space-around !important; }
+  .flex-lg-items-start { align-items: flex-start !important; }
+  .flex-lg-items-end { align-items: flex-end !important; }
+  .flex-lg-items-center { align-items: center !important; }
+  .flex-lg-items-baseline { align-items: baseline !important; }
+  .flex-lg-items-stretch { align-items: stretch !important; }
+  .flex-lg-content-start { align-content: flex-start !important; }
+  .flex-lg-content-end { align-content: flex-end !important; }
+  .flex-lg-content-center { align-content: center !important; }
+  .flex-lg-content-between { align-content: space-between !important; }
+  .flex-lg-content-around { align-content: space-around !important; }
+  .flex-lg-content-stretch { align-content: stretch !important; }
+  .flex-lg-auto { flex: 1 1 auto !important; }
+  .flex-lg-shrink-0 { flex-shrink: 0 !important; }
+  .flex-lg-self-auto { align-self: auto !important; }
+  .flex-lg-self-start { align-self: flex-start !important; }
+  .flex-lg-self-end { align-self: flex-end !important; }
+  .flex-lg-self-center { align-self: center !important; }
+  .flex-lg-self-baseline { align-self: baseline !important; }
+  .flex-lg-self-stretch { align-self: stretch !important; }
+  .flex-lg-item-equal { flex-grow: 1; flex-basis: 0; } }
+@media (min-width: 1280px) { .flex-xl-row { flex-direction: row !important; }
+  .flex-xl-row-reverse { flex-direction: row-reverse !important; }
+  .flex-xl-column { flex-direction: column !important; }
+  .flex-xl-wrap { flex-wrap: wrap !important; }
+  .flex-xl-nowrap { flex-wrap: nowrap !important; }
+  .flex-xl-justify-start { justify-content: flex-start !important; }
+  .flex-xl-justify-end { justify-content: flex-end !important; }
+  .flex-xl-justify-center { justify-content: center !important; }
+  .flex-xl-justify-between { justify-content: space-between !important; }
+  .flex-xl-justify-around { justify-content: space-around !important; }
+  .flex-xl-items-start { align-items: flex-start !important; }
+  .flex-xl-items-end { align-items: flex-end !important; }
+  .flex-xl-items-center { align-items: center !important; }
+  .flex-xl-items-baseline { align-items: baseline !important; }
+  .flex-xl-items-stretch { align-items: stretch !important; }
+  .flex-xl-content-start { align-content: flex-start !important; }
+  .flex-xl-content-end { align-content: flex-end !important; }
+  .flex-xl-content-center { align-content: center !important; }
+  .flex-xl-content-between { align-content: space-between !important; }
+  .flex-xl-content-around { align-content: space-around !important; }
+  .flex-xl-content-stretch { align-content: stretch !important; }
+  .flex-xl-auto { flex: 1 1 auto !important; }
+  .flex-xl-shrink-0 { flex-shrink: 0 !important; }
+  .flex-xl-self-auto { align-self: auto !important; }
+  .flex-xl-self-start { align-self: flex-start !important; }
+  .flex-xl-self-end { align-self: flex-end !important; }
+  .flex-xl-self-center { align-self: center !important; }
+  .flex-xl-self-baseline { align-self: baseline !important; }
+  .flex-xl-self-stretch { align-self: stretch !important; }
+  .flex-xl-item-equal { flex-grow: 1; flex-basis: 0; } }
+/* Set position to static */
+.position-static { position: static !important; }
+
+/* Set position to relative */
+.position-relative { position: relative !important; }
+
+/* Set position to absolute */
+.position-absolute { position: absolute !important; }
+
+/* Set position to fixed */
+.position-fixed { position: fixed !important; }
+
+/* Set top 0 */
+.top-0 { top: 0 !important; }
+
+/* Set right 0 */
+.right-0 { right: 0 !important; }
+
+/* Set bottom 0 */
+.bottom-0 { bottom: 0 !important; }
+
+/* Set left 0 */
+.left-0 { left: 0 !important; }
+
+/* Vertical align middle */
+.v-align-middle { vertical-align: middle !important; }
+
+/* Vertical align top */
+.v-align-top { vertical-align: top !important; }
+
+/* Vertical align bottom */
+.v-align-bottom { vertical-align: bottom !important; }
+
+/* Vertical align to the top of the text */
+.v-align-text-top { vertical-align: text-top !important; }
+
+/* Vertical align to the bottom of the text */
+.v-align-text-bottom { vertical-align: text-bottom !important; }
+
+/* Set the overflow hidden */
+.overflow-hidden { overflow: hidden !important; }
+
+/* Set the overflow scroll */
+.overflow-scroll { overflow: scroll !important; }
+
+/* Set the overflow auto */
+.overflow-auto { overflow: auto !important; }
+
+/* Clear floats around the element */
+.clearfix::before { display: table; content: ""; }
+.clearfix::after { display: table; clear: both; content: ""; }
+
+/* Float to the right */
+.float-right { float: right !important; }
+
+/* Float to the left */
+.float-left { float: left !important; }
+
+/* Don't float left or right */
+.float-none { float: none !important; }
+
+@media (min-width: 544px) { /* Float to the left at the sm breakpoint */
+  .float-sm-left { float: left !important; }
+  /* Float to the right at the sm breakpoint */
+  .float-sm-right { float: right !important; }
+  /* No float at the sm breakpoint */
+  .float-sm-none { float: none !important; } }
+@media (min-width: 768px) { /* Float to the left at the md breakpoint */
+  .float-md-left { float: left !important; }
+  /* Float to the right at the md breakpoint */
+  .float-md-right { float: right !important; }
+  /* No float at the md breakpoint */
+  .float-md-none { float: none !important; } }
+@media (min-width: 1012px) { /* Float to the left at the lg breakpoint */
+  .float-lg-left { float: left !important; }
+  /* Float to the right at the lg breakpoint */
+  .float-lg-right { float: right !important; }
+  /* No float at the lg breakpoint */
+  .float-lg-none { float: none !important; } }
+@media (min-width: 1280px) { /* Float to the left at the xl breakpoint */
+  .float-xl-left { float: left !important; }
+  /* Float to the right at the xl breakpoint */
+  .float-xl-right { float: right !important; }
+  /* No float at the xl breakpoint */
+  .float-xl-none { float: none !important; } }
+/* Max width 100% */
+.width-fit { max-width: 100% !important; }
+
+/* Set the width to 100% */
+.width-full { width: 100% !important; }
+
+/* Set the height to 100% */
+.height-full { height: 100% !important; }
+
+/* Remove min-width from element */
+.min-width-0 { min-width: 0 !important; }
+
+.direction-rtl { direction: rtl !important; }
+
+.direction-ltr { direction: ltr !important; }
+
+@media (min-width: 544px) { /* Set the direction to ltr at the sm breakpoint */
+  .direction-sm-rtl { direction: rtl !important; }
+  /* Set the direction to ltr at the sm breakpoint */
+  .direction-sm-ltr { direction: ltr !important; } }
+@media (min-width: 768px) { /* Set the direction to ltr at the md breakpoint */
+  .direction-md-rtl { direction: rtl !important; }
+  /* Set the direction to ltr at the md breakpoint */
+  .direction-md-ltr { direction: ltr !important; } }
+@media (min-width: 1012px) { /* Set the direction to ltr at the lg breakpoint */
+  .direction-lg-rtl { direction: rtl !important; }
+  /* Set the direction to ltr at the lg breakpoint */
+  .direction-lg-ltr { direction: ltr !important; } }
+@media (min-width: 1280px) { /* Set the direction to ltr at the xl breakpoint */
+  .direction-xl-rtl { direction: rtl !important; }
+  /* Set the direction to ltr at the xl breakpoint */
+  .direction-xl-ltr { direction: ltr !important; } }
+/* Set a 0 margin to all sides */
+.m-0 { margin: 0 !important; }
+
+/* Set a 0 margin on the top */
+.mt-0 { margin-top: 0 !important; }
+
+/* Set a 0 margin on the right */
+.mr-0 { margin-right: 0 !important; }
+
+/* Set a 0 margin on the bottom */
+.mb-0 { margin-bottom: 0 !important; }
+
+/* Set a 0 margin on the left */
+.ml-0 { margin-left: 0 !important; }
+
+/* Set a negative 0 margin on top */
+.mt-n0 { margin-top: -0 !important; }
+
+/* Set a negative 0 margin on the right */
+.mr-n0 { margin-right: -0 !important; }
+
+/* Set a negative 0 margin on the bottom */
+.mb-n0 { margin-bottom: -0 !important; }
+
+/* Set a negative 0 margin on the left */
+.ml-n0 { margin-left: -0 !important; }
+
+/* Set a 0 margin on the left & right */
+.mx-0 { margin-right: 0 !important; margin-left: 0 !important; }
+
+/* Set a 0 margin on the top & bottom */
+.my-0 { margin-top: 0 !important; margin-bottom: 0 !important; }
+
+/* Set a 4px margin to all sides */
+.m-1 { margin: 4px !important; }
+
+/* Set a 4px margin on the top */
+.mt-1 { margin-top: 4px !important; }
+
+/* Set a 4px margin on the right */
+.mr-1 { margin-right: 4px !important; }
+
+/* Set a 4px margin on the bottom */
+.mb-1 { margin-bottom: 4px !important; }
+
+/* Set a 4px margin on the left */
+.ml-1 { margin-left: 4px !important; }
+
+/* Set a negative 4px margin on top */
+.mt-n1 { margin-top: -4px !important; }
+
+/* Set a negative 4px margin on the right */
+.mr-n1 { margin-right: -4px !important; }
+
+/* Set a negative 4px margin on the bottom */
+.mb-n1 { margin-bottom: -4px !important; }
+
+/* Set a negative 4px margin on the left */
+.ml-n1 { margin-left: -4px !important; }
+
+/* Set a 4px margin on the left & right */
+.mx-1 { margin-right: 4px !important; margin-left: 4px !important; }
+
+/* Set a 4px margin on the top & bottom */
+.my-1 { margin-top: 4px !important; margin-bottom: 4px !important; }
+
+/* Set a 8px margin to all sides */
+.m-2 { margin: 8px !important; }
+
+/* Set a 8px margin on the top */
+.mt-2 { margin-top: 8px !important; }
+
+/* Set a 8px margin on the right */
+.mr-2 { margin-right: 8px !important; }
+
+/* Set a 8px margin on the bottom */
+.mb-2 { margin-bottom: 8px !important; }
+
+/* Set a 8px margin on the left */
+.ml-2 { margin-left: 8px !important; }
+
+/* Set a negative 8px margin on top */
+.mt-n2 { margin-top: -8px !important; }
+
+/* Set a negative 8px margin on the right */
+.mr-n2 { margin-right: -8px !important; }
+
+/* Set a negative 8px margin on the bottom */
+.mb-n2 { margin-bottom: -8px !important; }
+
+/* Set a negative 8px margin on the left */
+.ml-n2 { margin-left: -8px !important; }
+
+/* Set a 8px margin on the left & right */
+.mx-2 { margin-right: 8px !important; margin-left: 8px !important; }
+
+/* Set a 8px margin on the top & bottom */
+.my-2 { margin-top: 8px !important; margin-bottom: 8px !important; }
+
+/* Set a 16px margin to all sides */
+.m-3 { margin: 16px !important; }
+
+/* Set a 16px margin on the top */
+.mt-3 { margin-top: 16px !important; }
+
+/* Set a 16px margin on the right */
+.mr-3 { margin-right: 16px !important; }
+
+/* Set a 16px margin on the bottom */
+.mb-3 { margin-bottom: 16px !important; }
+
+/* Set a 16px margin on the left */
+.ml-3 { margin-left: 16px !important; }
+
+/* Set a negative 16px margin on top */
+.mt-n3 { margin-top: -16px !important; }
+
+/* Set a negative 16px margin on the right */
+.mr-n3 { margin-right: -16px !important; }
+
+/* Set a negative 16px margin on the bottom */
+.mb-n3 { margin-bottom: -16px !important; }
+
+/* Set a negative 16px margin on the left */
+.ml-n3 { margin-left: -16px !important; }
+
+/* Set a 16px margin on the left & right */
+.mx-3 { margin-right: 16px !important; margin-left: 16px !important; }
+
+/* Set a 16px margin on the top & bottom */
+.my-3 { margin-top: 16px !important; margin-bottom: 16px !important; }
+
+/* Set a 24px margin to all sides */
+.m-4 { margin: 24px !important; }
+
+/* Set a 24px margin on the top */
+.mt-4 { margin-top: 24px !important; }
+
+/* Set a 24px margin on the right */
+.mr-4 { margin-right: 24px !important; }
+
+/* Set a 24px margin on the bottom */
+.mb-4 { margin-bottom: 24px !important; }
+
+/* Set a 24px margin on the left */
+.ml-4 { margin-left: 24px !important; }
+
+/* Set a negative 24px margin on top */
+.mt-n4 { margin-top: -24px !important; }
+
+/* Set a negative 24px margin on the right */
+.mr-n4 { margin-right: -24px !important; }
+
+/* Set a negative 24px margin on the bottom */
+.mb-n4 { margin-bottom: -24px !important; }
+
+/* Set a negative 24px margin on the left */
+.ml-n4 { margin-left: -24px !important; }
+
+/* Set a 24px margin on the left & right */
+.mx-4 { margin-right: 24px !important; margin-left: 24px !important; }
+
+/* Set a 24px margin on the top & bottom */
+.my-4 { margin-top: 24px !important; margin-bottom: 24px !important; }
+
+/* Set a 32px margin to all sides */
+.m-5 { margin: 32px !important; }
+
+/* Set a 32px margin on the top */
+.mt-5 { margin-top: 32px !important; }
+
+/* Set a 32px margin on the right */
+.mr-5 { margin-right: 32px !important; }
+
+/* Set a 32px margin on the bottom */
+.mb-5 { margin-bottom: 32px !important; }
+
+/* Set a 32px margin on the left */
+.ml-5 { margin-left: 32px !important; }
+
+/* Set a negative 32px margin on top */
+.mt-n5 { margin-top: -32px !important; }
+
+/* Set a negative 32px margin on the right */
+.mr-n5 { margin-right: -32px !important; }
+
+/* Set a negative 32px margin on the bottom */
+.mb-n5 { margin-bottom: -32px !important; }
+
+/* Set a negative 32px margin on the left */
+.ml-n5 { margin-left: -32px !important; }
+
+/* Set a 32px margin on the left & right */
+.mx-5 { margin-right: 32px !important; margin-left: 32px !important; }
+
+/* Set a 32px margin on the top & bottom */
+.my-5 { margin-top: 32px !important; margin-bottom: 32px !important; }
+
+/* Set a 40px margin to all sides */
+.m-6 { margin: 40px !important; }
+
+/* Set a 40px margin on the top */
+.mt-6 { margin-top: 40px !important; }
+
+/* Set a 40px margin on the right */
+.mr-6 { margin-right: 40px !important; }
+
+/* Set a 40px margin on the bottom */
+.mb-6 { margin-bottom: 40px !important; }
+
+/* Set a 40px margin on the left */
+.ml-6 { margin-left: 40px !important; }
+
+/* Set a negative 40px margin on top */
+.mt-n6 { margin-top: -40px !important; }
+
+/* Set a negative 40px margin on the right */
+.mr-n6 { margin-right: -40px !important; }
+
+/* Set a negative 40px margin on the bottom */
+.mb-n6 { margin-bottom: -40px !important; }
+
+/* Set a negative 40px margin on the left */
+.ml-n6 { margin-left: -40px !important; }
+
+/* Set a 40px margin on the left & right */
+.mx-6 { margin-right: 40px !important; margin-left: 40px !important; }
+
+/* Set a 40px margin on the top & bottom */
+.my-6 { margin-top: 40px !important; margin-bottom: 40px !important; }
+
+/* Set an auto margin on left & right */
+.mx-auto { margin-right: auto !important; margin-left: auto !important; }
+
+@media (min-width: 544px) { /* Set a 0 margin to all sides at the breakpoint sm */
+  .m-sm-0 { margin: 0 !important; }
+  /* Set a 0 margin on the top at the breakpoint sm */
+  .mt-sm-0 { margin-top: 0 !important; }
+  /* Set a 0 margin on the right at the breakpoint sm */
+  .mr-sm-0 { margin-right: 0 !important; }
+  /* Set a 0 margin on the bottom at the breakpoint sm */
+  .mb-sm-0 { margin-bottom: 0 !important; }
+  /* Set a 0 margin on the left at the breakpoint sm */
+  .ml-sm-0 { margin-left: 0 !important; }
+  /* Set a negative 0 margin on top at the breakpoint sm */
+  .mt-sm-n0 { margin-top: -0 !important; }
+  /* Set a negative 0 margin on the right at the breakpoint sm */
+  .mr-sm-n0 { margin-right: -0 !important; }
+  /* Set a negative 0 margin on the bottom at the breakpoint sm */
+  .mb-sm-n0 { margin-bottom: -0 !important; }
+  /* Set a negative 0 margin on the left at the breakpoint sm */
+  .ml-sm-n0 { margin-left: -0 !important; }
+  /* Set a 0 margin on the left & right at the breakpoint sm */
+  .mx-sm-0 { margin-right: 0 !important; margin-left: 0 !important; }
+  /* Set a 0 margin on the top & bottom at the breakpoint sm */
+  .my-sm-0 { margin-top: 0 !important; margin-bottom: 0 !important; } }
+@media (min-width: 544px) { /* Set a 4px margin to all sides at the breakpoint sm */
+  .m-sm-1 { margin: 4px !important; }
+  /* Set a 4px margin on the top at the breakpoint sm */
+  .mt-sm-1 { margin-top: 4px !important; }
+  /* Set a 4px margin on the right at the breakpoint sm */
+  .mr-sm-1 { margin-right: 4px !important; }
+  /* Set a 4px margin on the bottom at the breakpoint sm */
+  .mb-sm-1 { margin-bottom: 4px !important; }
+  /* Set a 4px margin on the left at the breakpoint sm */
+  .ml-sm-1 { margin-left: 4px !important; }
+  /* Set a negative 4px margin on top at the breakpoint sm */
+  .mt-sm-n1 { margin-top: -4px !important; }
+  /* Set a negative 4px margin on the right at the breakpoint sm */
+  .mr-sm-n1 { margin-right: -4px !important; }
+  /* Set a negative 4px margin on the bottom at the breakpoint sm */
+  .mb-sm-n1 { margin-bottom: -4px !important; }
+  /* Set a negative 4px margin on the left at the breakpoint sm */
+  .ml-sm-n1 { margin-left: -4px !important; }
+  /* Set a 4px margin on the left & right at the breakpoint sm */
+  .mx-sm-1 { margin-right: 4px !important; margin-left: 4px !important; }
+  /* Set a 4px margin on the top & bottom at the breakpoint sm */
+  .my-sm-1 { margin-top: 4px !important; margin-bottom: 4px !important; } }
+@media (min-width: 544px) { /* Set a 8px margin to all sides at the breakpoint sm */
+  .m-sm-2 { margin: 8px !important; }
+  /* Set a 8px margin on the top at the breakpoint sm */
+  .mt-sm-2 { margin-top: 8px !important; }
+  /* Set a 8px margin on the right at the breakpoint sm */
+  .mr-sm-2 { margin-right: 8px !important; }
+  /* Set a 8px margin on the bottom at the breakpoint sm */
+  .mb-sm-2 { margin-bottom: 8px !important; }
+  /* Set a 8px margin on the left at the breakpoint sm */
+  .ml-sm-2 { margin-left: 8px !important; }
+  /* Set a negative 8px margin on top at the breakpoint sm */
+  .mt-sm-n2 { margin-top: -8px !important; }
+  /* Set a negative 8px margin on the right at the breakpoint sm */
+  .mr-sm-n2 { margin-right: -8px !important; }
+  /* Set a negative 8px margin on the bottom at the breakpoint sm */
+  .mb-sm-n2 { margin-bottom: -8px !important; }
+  /* Set a negative 8px margin on the left at the breakpoint sm */
+  .ml-sm-n2 { margin-left: -8px !important; }
+  /* Set a 8px margin on the left & right at the breakpoint sm */
+  .mx-sm-2 { margin-right: 8px !important; margin-left: 8px !important; }
+  /* Set a 8px margin on the top & bottom at the breakpoint sm */
+  .my-sm-2 { margin-top: 8px !important; margin-bottom: 8px !important; } }
+@media (min-width: 544px) { /* Set a 16px margin to all sides at the breakpoint sm */
+  .m-sm-3 { margin: 16px !important; }
+  /* Set a 16px margin on the top at the breakpoint sm */
+  .mt-sm-3 { margin-top: 16px !important; }
+  /* Set a 16px margin on the right at the breakpoint sm */
+  .mr-sm-3 { margin-right: 16px !important; }
+  /* Set a 16px margin on the bottom at the breakpoint sm */
+  .mb-sm-3 { margin-bottom: 16px !important; }
+  /* Set a 16px margin on the left at the breakpoint sm */
+  .ml-sm-3 { margin-left: 16px !important; }
+  /* Set a negative 16px margin on top at the breakpoint sm */
+  .mt-sm-n3 { margin-top: -16px !important; }
+  /* Set a negative 16px margin on the right at the breakpoint sm */
+  .mr-sm-n3 { margin-right: -16px !important; }
+  /* Set a negative 16px margin on the bottom at the breakpoint sm */
+  .mb-sm-n3 { margin-bottom: -16px !important; }
+  /* Set a negative 16px margin on the left at the breakpoint sm */
+  .ml-sm-n3 { margin-left: -16px !important; }
+  /* Set a 16px margin on the left & right at the breakpoint sm */
+  .mx-sm-3 { margin-right: 16px !important; margin-left: 16px !important; }
+  /* Set a 16px margin on the top & bottom at the breakpoint sm */
+  .my-sm-3 { margin-top: 16px !important; margin-bottom: 16px !important; } }
+@media (min-width: 544px) { /* Set a 24px margin to all sides at the breakpoint sm */
+  .m-sm-4 { margin: 24px !important; }
+  /* Set a 24px margin on the top at the breakpoint sm */
+  .mt-sm-4 { margin-top: 24px !important; }
+  /* Set a 24px margin on the right at the breakpoint sm */
+  .mr-sm-4 { margin-right: 24px !important; }
+  /* Set a 24px margin on the bottom at the breakpoint sm */
+  .mb-sm-4 { margin-bottom: 24px !important; }
+  /* Set a 24px margin on the left at the breakpoint sm */
+  .ml-sm-4 { margin-left: 24px !important; }
+  /* Set a negative 24px margin on top at the breakpoint sm */
+  .mt-sm-n4 { margin-top: -24px !important; }
+  /* Set a negative 24px margin on the right at the breakpoint sm */
+  .mr-sm-n4 { margin-right: -24px !important; }
+  /* Set a negative 24px margin on the bottom at the breakpoint sm */
+  .mb-sm-n4 { margin-bottom: -24px !important; }
+  /* Set a negative 24px margin on the left at the breakpoint sm */
+  .ml-sm-n4 { margin-left: -24px !important; }
+  /* Set a 24px margin on the left & right at the breakpoint sm */
+  .mx-sm-4 { margin-right: 24px !important; margin-left: 24px !important; }
+  /* Set a 24px margin on the top & bottom at the breakpoint sm */
+  .my-sm-4 { margin-top: 24px !important; margin-bottom: 24px !important; } }
+@media (min-width: 544px) { /* Set a 32px margin to all sides at the breakpoint sm */
+  .m-sm-5 { margin: 32px !important; }
+  /* Set a 32px margin on the top at the breakpoint sm */
+  .mt-sm-5 { margin-top: 32px !important; }
+  /* Set a 32px margin on the right at the breakpoint sm */
+  .mr-sm-5 { margin-right: 32px !important; }
+  /* Set a 32px margin on the bottom at the breakpoint sm */
+  .mb-sm-5 { margin-bottom: 32px !important; }
+  /* Set a 32px margin on the left at the breakpoint sm */
+  .ml-sm-5 { margin-left: 32px !important; }
+  /* Set a negative 32px margin on top at the breakpoint sm */
+  .mt-sm-n5 { margin-top: -32px !important; }
+  /* Set a negative 32px margin on the right at the breakpoint sm */
+  .mr-sm-n5 { margin-right: -32px !important; }
+  /* Set a negative 32px margin on the bottom at the breakpoint sm */
+  .mb-sm-n5 { margin-bottom: -32px !important; }
+  /* Set a negative 32px margin on the left at the breakpoint sm */
+  .ml-sm-n5 { margin-left: -32px !important; }
+  /* Set a 32px margin on the left & right at the breakpoint sm */
+  .mx-sm-5 { margin-right: 32px !important; margin-left: 32px !important; }
+  /* Set a 32px margin on the top & bottom at the breakpoint sm */
+  .my-sm-5 { margin-top: 32px !important; margin-bottom: 32px !important; } }
+@media (min-width: 544px) { /* Set a 40px margin to all sides at the breakpoint sm */
+  .m-sm-6 { margin: 40px !important; }
+  /* Set a 40px margin on the top at the breakpoint sm */
+  .mt-sm-6 { margin-top: 40px !important; }
+  /* Set a 40px margin on the right at the breakpoint sm */
+  .mr-sm-6 { margin-right: 40px !important; }
+  /* Set a 40px margin on the bottom at the breakpoint sm */
+  .mb-sm-6 { margin-bottom: 40px !important; }
+  /* Set a 40px margin on the left at the breakpoint sm */
+  .ml-sm-6 { margin-left: 40px !important; }
+  /* Set a negative 40px margin on top at the breakpoint sm */
+  .mt-sm-n6 { margin-top: -40px !important; }
+  /* Set a negative 40px margin on the right at the breakpoint sm */
+  .mr-sm-n6 { margin-right: -40px !important; }
+  /* Set a negative 40px margin on the bottom at the breakpoint sm */
+  .mb-sm-n6 { margin-bottom: -40px !important; }
+  /* Set a negative 40px margin on the left at the breakpoint sm */
+  .ml-sm-n6 { margin-left: -40px !important; }
+  /* Set a 40px margin on the left & right at the breakpoint sm */
+  .mx-sm-6 { margin-right: 40px !important; margin-left: 40px !important; }
+  /* Set a 40px margin on the top & bottom at the breakpoint sm */
+  .my-sm-6 { margin-top: 40px !important; margin-bottom: 40px !important; } }
+@media (min-width: 768px) { /* Set a 0 margin to all sides at the breakpoint md */
+  .m-md-0 { margin: 0 !important; }
+  /* Set a 0 margin on the top at the breakpoint md */
+  .mt-md-0 { margin-top: 0 !important; }
+  /* Set a 0 margin on the right at the breakpoint md */
+  .mr-md-0 { margin-right: 0 !important; }
+  /* Set a 0 margin on the bottom at the breakpoint md */
+  .mb-md-0 { margin-bottom: 0 !important; }
+  /* Set a 0 margin on the left at the breakpoint md */
+  .ml-md-0 { margin-left: 0 !important; }
+  /* Set a negative 0 margin on top at the breakpoint md */
+  .mt-md-n0 { margin-top: -0 !important; }
+  /* Set a negative 0 margin on the right at the breakpoint md */
+  .mr-md-n0 { margin-right: -0 !important; }
+  /* Set a negative 0 margin on the bottom at the breakpoint md */
+  .mb-md-n0 { margin-bottom: -0 !important; }
+  /* Set a negative 0 margin on the left at the breakpoint md */
+  .ml-md-n0 { margin-left: -0 !important; }
+  /* Set a 0 margin on the left & right at the breakpoint md */
+  .mx-md-0 { margin-right: 0 !important; margin-left: 0 !important; }
+  /* Set a 0 margin on the top & bottom at the breakpoint md */
+  .my-md-0 { margin-top: 0 !important; margin-bottom: 0 !important; } }
+@media (min-width: 768px) { /* Set a 4px margin to all sides at the breakpoint md */
+  .m-md-1 { margin: 4px !important; }
+  /* Set a 4px margin on the top at the breakpoint md */
+  .mt-md-1 { margin-top: 4px !important; }
+  /* Set a 4px margin on the right at the breakpoint md */
+  .mr-md-1 { margin-right: 4px !important; }
+  /* Set a 4px margin on the bottom at the breakpoint md */
+  .mb-md-1 { margin-bottom: 4px !important; }
+  /* Set a 4px margin on the left at the breakpoint md */
+  .ml-md-1 { margin-left: 4px !important; }
+  /* Set a negative 4px margin on top at the breakpoint md */
+  .mt-md-n1 { margin-top: -4px !important; }
+  /* Set a negative 4px margin on the right at the breakpoint md */
+  .mr-md-n1 { margin-right: -4px !important; }
+  /* Set a negative 4px margin on the bottom at the breakpoint md */
+  .mb-md-n1 { margin-bottom: -4px !important; }
+  /* Set a negative 4px margin on the left at the breakpoint md */
+  .ml-md-n1 { margin-left: -4px !important; }
+  /* Set a 4px margin on the left & right at the breakpoint md */
+  .mx-md-1 { margin-right: 4px !important; margin-left: 4px !important; }
+  /* Set a 4px margin on the top & bottom at the breakpoint md */
+  .my-md-1 { margin-top: 4px !important; margin-bottom: 4px !important; } }
+@media (min-width: 768px) { /* Set a 8px margin to all sides at the breakpoint md */
+  .m-md-2 { margin: 8px !important; }
+  /* Set a 8px margin on the top at the breakpoint md */
+  .mt-md-2 { margin-top: 8px !important; }
+  /* Set a 8px margin on the right at the breakpoint md */
+  .mr-md-2 { margin-right: 8px !important; }
+  /* Set a 8px margin on the bottom at the breakpoint md */
+  .mb-md-2 { margin-bottom: 8px !important; }
+  /* Set a 8px margin on the left at the breakpoint md */
+  .ml-md-2 { margin-left: 8px !important; }
+  /* Set a negative 8px margin on top at the breakpoint md */
+  .mt-md-n2 { margin-top: -8px !important; }
+  /* Set a negative 8px margin on the right at the breakpoint md */
+  .mr-md-n2 { margin-right: -8px !important; }
+  /* Set a negative 8px margin on the bottom at the breakpoint md */
+  .mb-md-n2 { margin-bottom: -8px !important; }
+  /* Set a negative 8px margin on the left at the breakpoint md */
+  .ml-md-n2 { margin-left: -8px !important; }
+  /* Set a 8px margin on the left & right at the breakpoint md */
+  .mx-md-2 { margin-right: 8px !important; margin-left: 8px !important; }
+  /* Set a 8px margin on the top & bottom at the breakpoint md */
+  .my-md-2 { margin-top: 8px !important; margin-bottom: 8px !important; } }
+@media (min-width: 768px) { /* Set a 16px margin to all sides at the breakpoint md */
+  .m-md-3 { margin: 16px !important; }
+  /* Set a 16px margin on the top at the breakpoint md */
+  .mt-md-3 { margin-top: 16px !important; }
+  /* Set a 16px margin on the right at the breakpoint md */
+  .mr-md-3 { margin-right: 16px !important; }
+  /* Set a 16px margin on the bottom at the breakpoint md */
+  .mb-md-3 { margin-bottom: 16px !important; }
+  /* Set a 16px margin on the left at the breakpoint md */
+  .ml-md-3 { margin-left: 16px !important; }
+  /* Set a negative 16px margin on top at the breakpoint md */
+  .mt-md-n3 { margin-top: -16px !important; }
+  /* Set a negative 16px margin on the right at the breakpoint md */
+  .mr-md-n3 { margin-right: -16px !important; }
+  /* Set a negative 16px margin on the bottom at the breakpoint md */
+  .mb-md-n3 { margin-bottom: -16px !important; }
+  /* Set a negative 16px margin on the left at the breakpoint md */
+  .ml-md-n3 { margin-left: -16px !important; }
+  /* Set a 16px margin on the left & right at the breakpoint md */
+  .mx-md-3 { margin-right: 16px !important; margin-left: 16px !important; }
+  /* Set a 16px margin on the top & bottom at the breakpoint md */
+  .my-md-3 { margin-top: 16px !important; margin-bottom: 16px !important; } }
+@media (min-width: 768px) { /* Set a 24px margin to all sides at the breakpoint md */
+  .m-md-4 { margin: 24px !important; }
+  /* Set a 24px margin on the top at the breakpoint md */
+  .mt-md-4 { margin-top: 24px !important; }
+  /* Set a 24px margin on the right at the breakpoint md */
+  .mr-md-4 { margin-right: 24px !important; }
+  /* Set a 24px margin on the bottom at the breakpoint md */
+  .mb-md-4 { margin-bottom: 24px !important; }
+  /* Set a 24px margin on the left at the breakpoint md */
+  .ml-md-4 { margin-left: 24px !important; }
+  /* Set a negative 24px margin on top at the breakpoint md */
+  .mt-md-n4 { margin-top: -24px !important; }
+  /* Set a negative 24px margin on the right at the breakpoint md */
+  .mr-md-n4 { margin-right: -24px !important; }
+  /* Set a negative 24px margin on the bottom at the breakpoint md */
+  .mb-md-n4 { margin-bottom: -24px !important; }
+  /* Set a negative 24px margin on the left at the breakpoint md */
+  .ml-md-n4 { margin-left: -24px !important; }
+  /* Set a 24px margin on the left & right at the breakpoint md */
+  .mx-md-4 { margin-right: 24px !important; margin-left: 24px !important; }
+  /* Set a 24px margin on the top & bottom at the breakpoint md */
+  .my-md-4 { margin-top: 24px !important; margin-bottom: 24px !important; } }
+@media (min-width: 768px) { /* Set a 32px margin to all sides at the breakpoint md */
+  .m-md-5 { margin: 32px !important; }
+  /* Set a 32px margin on the top at the breakpoint md */
+  .mt-md-5 { margin-top: 32px !important; }
+  /* Set a 32px margin on the right at the breakpoint md */
+  .mr-md-5 { margin-right: 32px !important; }
+  /* Set a 32px margin on the bottom at the breakpoint md */
+  .mb-md-5 { margin-bottom: 32px !important; }
+  /* Set a 32px margin on the left at the breakpoint md */
+  .ml-md-5 { margin-left: 32px !important; }
+  /* Set a negative 32px margin on top at the breakpoint md */
+  .mt-md-n5 { margin-top: -32px !important; }
+  /* Set a negative 32px margin on the right at the breakpoint md */
+  .mr-md-n5 { margin-right: -32px !important; }
+  /* Set a negative 32px margin on the bottom at the breakpoint md */
+  .mb-md-n5 { margin-bottom: -32px !important; }
+  /* Set a negative 32px margin on the left at the breakpoint md */
+  .ml-md-n5 { margin-left: -32px !important; }
+  /* Set a 32px margin on the left & right at the breakpoint md */
+  .mx-md-5 { margin-right: 32px !important; margin-left: 32px !important; }
+  /* Set a 32px margin on the top & bottom at the breakpoint md */
+  .my-md-5 { margin-top: 32px !important; margin-bottom: 32px !important; } }
+@media (min-width: 768px) { /* Set a 40px margin to all sides at the breakpoint md */
+  .m-md-6 { margin: 40px !important; }
+  /* Set a 40px margin on the top at the breakpoint md */
+  .mt-md-6 { margin-top: 40px !important; }
+  /* Set a 40px margin on the right at the breakpoint md */
+  .mr-md-6 { margin-right: 40px !important; }
+  /* Set a 40px margin on the bottom at the breakpoint md */
+  .mb-md-6 { margin-bottom: 40px !important; }
+  /* Set a 40px margin on the left at the breakpoint md */
+  .ml-md-6 { margin-left: 40px !important; }
+  /* Set a negative 40px margin on top at the breakpoint md */
+  .mt-md-n6 { margin-top: -40px !important; }
+  /* Set a negative 40px margin on the right at the breakpoint md */
+  .mr-md-n6 { margin-right: -40px !important; }
+  /* Set a negative 40px margin on the bottom at the breakpoint md */
+  .mb-md-n6 { margin-bottom: -40px !important; }
+  /* Set a negative 40px margin on the left at the breakpoint md */
+  .ml-md-n6 { margin-left: -40px !important; }
+  /* Set a 40px margin on the left & right at the breakpoint md */
+  .mx-md-6 { margin-right: 40px !important; margin-left: 40px !important; }
+  /* Set a 40px margin on the top & bottom at the breakpoint md */
+  .my-md-6 { margin-top: 40px !important; margin-bottom: 40px !important; } }
+@media (min-width: 1012px) { /* Set a 0 margin to all sides at the breakpoint lg */
+  .m-lg-0 { margin: 0 !important; }
+  /* Set a 0 margin on the top at the breakpoint lg */
+  .mt-lg-0 { margin-top: 0 !important; }
+  /* Set a 0 margin on the right at the breakpoint lg */
+  .mr-lg-0 { margin-right: 0 !important; }
+  /* Set a 0 margin on the bottom at the breakpoint lg */
+  .mb-lg-0 { margin-bottom: 0 !important; }
+  /* Set a 0 margin on the left at the breakpoint lg */
+  .ml-lg-0 { margin-left: 0 !important; }
+  /* Set a negative 0 margin on top at the breakpoint lg */
+  .mt-lg-n0 { margin-top: -0 !important; }
+  /* Set a negative 0 margin on the right at the breakpoint lg */
+  .mr-lg-n0 { margin-right: -0 !important; }
+  /* Set a negative 0 margin on the bottom at the breakpoint lg */
+  .mb-lg-n0 { margin-bottom: -0 !important; }
+  /* Set a negative 0 margin on the left at the breakpoint lg */
+  .ml-lg-n0 { margin-left: -0 !important; }
+  /* Set a 0 margin on the left & right at the breakpoint lg */
+  .mx-lg-0 { margin-right: 0 !important; margin-left: 0 !important; }
+  /* Set a 0 margin on the top & bottom at the breakpoint lg */
+  .my-lg-0 { margin-top: 0 !important; margin-bottom: 0 !important; } }
+@media (min-width: 1012px) { /* Set a 4px margin to all sides at the breakpoint lg */
+  .m-lg-1 { margin: 4px !important; }
+  /* Set a 4px margin on the top at the breakpoint lg */
+  .mt-lg-1 { margin-top: 4px !important; }
+  /* Set a 4px margin on the right at the breakpoint lg */
+  .mr-lg-1 { margin-right: 4px !important; }
+  /* Set a 4px margin on the bottom at the breakpoint lg */
+  .mb-lg-1 { margin-bottom: 4px !important; }
+  /* Set a 4px margin on the left at the breakpoint lg */
+  .ml-lg-1 { margin-left: 4px !important; }
+  /* Set a negative 4px margin on top at the breakpoint lg */
+  .mt-lg-n1 { margin-top: -4px !important; }
+  /* Set a negative 4px margin on the right at the breakpoint lg */
+  .mr-lg-n1 { margin-right: -4px !important; }
+  /* Set a negative 4px margin on the bottom at the breakpoint lg */
+  .mb-lg-n1 { margin-bottom: -4px !important; }
+  /* Set a negative 4px margin on the left at the breakpoint lg */
+  .ml-lg-n1 { margin-left: -4px !important; }
+  /* Set a 4px margin on the left & right at the breakpoint lg */
+  .mx-lg-1 { margin-right: 4px !important; margin-left: 4px !important; }
+  /* Set a 4px margin on the top & bottom at the breakpoint lg */
+  .my-lg-1 { margin-top: 4px !important; margin-bottom: 4px !important; } }
+@media (min-width: 1012px) { /* Set a 8px margin to all sides at the breakpoint lg */
+  .m-lg-2 { margin: 8px !important; }
+  /* Set a 8px margin on the top at the breakpoint lg */
+  .mt-lg-2 { margin-top: 8px !important; }
+  /* Set a 8px margin on the right at the breakpoint lg */
+  .mr-lg-2 { margin-right: 8px !important; }
+  /* Set a 8px margin on the bottom at the breakpoint lg */
+  .mb-lg-2 { margin-bottom: 8px !important; }
+  /* Set a 8px margin on the left at the breakpoint lg */
+  .ml-lg-2 { margin-left: 8px !important; }
+  /* Set a negative 8px margin on top at the breakpoint lg */
+  .mt-lg-n2 { margin-top: -8px !important; }
+  /* Set a negative 8px margin on the right at the breakpoint lg */
+  .mr-lg-n2 { margin-right: -8px !important; }
+  /* Set a negative 8px margin on the bottom at the breakpoint lg */
+  .mb-lg-n2 { margin-bottom: -8px !important; }
+  /* Set a negative 8px margin on the left at the breakpoint lg */
+  .ml-lg-n2 { margin-left: -8px !important; }
+  /* Set a 8px margin on the left & right at the breakpoint lg */
+  .mx-lg-2 { margin-right: 8px !important; margin-left: 8px !important; }
+  /* Set a 8px margin on the top & bottom at the breakpoint lg */
+  .my-lg-2 { margin-top: 8px !important; margin-bottom: 8px !important; } }
+@media (min-width: 1012px) { /* Set a 16px margin to all sides at the breakpoint lg */
+  .m-lg-3 { margin: 16px !important; }
+  /* Set a 16px margin on the top at the breakpoint lg */
+  .mt-lg-3 { margin-top: 16px !important; }
+  /* Set a 16px margin on the right at the breakpoint lg */
+  .mr-lg-3 { margin-right: 16px !important; }
+  /* Set a 16px margin on the bottom at the breakpoint lg */
+  .mb-lg-3 { margin-bottom: 16px !important; }
+  /* Set a 16px margin on the left at the breakpoint lg */
+  .ml-lg-3 { margin-left: 16px !important; }
+  /* Set a negative 16px margin on top at the breakpoint lg */
+  .mt-lg-n3 { margin-top: -16px !important; }
+  /* Set a negative 16px margin on the right at the breakpoint lg */
+  .mr-lg-n3 { margin-right: -16px !important; }
+  /* Set a negative 16px margin on the bottom at the breakpoint lg */
+  .mb-lg-n3 { margin-bottom: -16px !important; }
+  /* Set a negative 16px margin on the left at the breakpoint lg */
+  .ml-lg-n3 { margin-left: -16px !important; }
+  /* Set a 16px margin on the left & right at the breakpoint lg */
+  .mx-lg-3 { margin-right: 16px !important; margin-left: 16px !important; }
+  /* Set a 16px margin on the top & bottom at the breakpoint lg */
+  .my-lg-3 { margin-top: 16px !important; margin-bottom: 16px !important; } }
+@media (min-width: 1012px) { /* Set a 24px margin to all sides at the breakpoint lg */
+  .m-lg-4 { margin: 24px !important; }
+  /* Set a 24px margin on the top at the breakpoint lg */
+  .mt-lg-4 { margin-top: 24px !important; }
+  /* Set a 24px margin on the right at the breakpoint lg */
+  .mr-lg-4 { margin-right: 24px !important; }
+  /* Set a 24px margin on the bottom at the breakpoint lg */
+  .mb-lg-4 { margin-bottom: 24px !important; }
+  /* Set a 24px margin on the left at the breakpoint lg */
+  .ml-lg-4 { margin-left: 24px !important; }
+  /* Set a negative 24px margin on top at the breakpoint lg */
+  .mt-lg-n4 { margin-top: -24px !important; }
+  /* Set a negative 24px margin on the right at the breakpoint lg */
+  .mr-lg-n4 { margin-right: -24px !important; }
+  /* Set a negative 24px margin on the bottom at the breakpoint lg */
+  .mb-lg-n4 { margin-bottom: -24px !important; }
+  /* Set a negative 24px margin on the left at the breakpoint lg */
+  .ml-lg-n4 { margin-left: -24px !important; }
+  /* Set a 24px margin on the left & right at the breakpoint lg */
+  .mx-lg-4 { margin-right: 24px !important; margin-left: 24px !important; }
+  /* Set a 24px margin on the top & bottom at the breakpoint lg */
+  .my-lg-4 { margin-top: 24px !important; margin-bottom: 24px !important; } }
+@media (min-width: 1012px) { /* Set a 32px margin to all sides at the breakpoint lg */
+  .m-lg-5 { margin: 32px !important; }
+  /* Set a 32px margin on the top at the breakpoint lg */
+  .mt-lg-5 { margin-top: 32px !important; }
+  /* Set a 32px margin on the right at the breakpoint lg */
+  .mr-lg-5 { margin-right: 32px !important; }
+  /* Set a 32px margin on the bottom at the breakpoint lg */
+  .mb-lg-5 { margin-bottom: 32px !important; }
+  /* Set a 32px margin on the left at the breakpoint lg */
+  .ml-lg-5 { margin-left: 32px !important; }
+  /* Set a negative 32px margin on top at the breakpoint lg */
+  .mt-lg-n5 { margin-top: -32px !important; }
+  /* Set a negative 32px margin on the right at the breakpoint lg */
+  .mr-lg-n5 { margin-right: -32px !important; }
+  /* Set a negative 32px margin on the bottom at the breakpoint lg */
+  .mb-lg-n5 { margin-bottom: -32px !important; }
+  /* Set a negative 32px margin on the left at the breakpoint lg */
+  .ml-lg-n5 { margin-left: -32px !important; }
+  /* Set a 32px margin on the left & right at the breakpoint lg */
+  .mx-lg-5 { margin-right: 32px !important; margin-left: 32px !important; }
+  /* Set a 32px margin on the top & bottom at the breakpoint lg */
+  .my-lg-5 { margin-top: 32px !important; margin-bottom: 32px !important; } }
+@media (min-width: 1012px) { /* Set a 40px margin to all sides at the breakpoint lg */
+  .m-lg-6 { margin: 40px !important; }
+  /* Set a 40px margin on the top at the breakpoint lg */
+  .mt-lg-6 { margin-top: 40px !important; }
+  /* Set a 40px margin on the right at the breakpoint lg */
+  .mr-lg-6 { margin-right: 40px !important; }
+  /* Set a 40px margin on the bottom at the breakpoint lg */
+  .mb-lg-6 { margin-bottom: 40px !important; }
+  /* Set a 40px margin on the left at the breakpoint lg */
+  .ml-lg-6 { margin-left: 40px !important; }
+  /* Set a negative 40px margin on top at the breakpoint lg */
+  .mt-lg-n6 { margin-top: -40px !important; }
+  /* Set a negative 40px margin on the right at the breakpoint lg */
+  .mr-lg-n6 { margin-right: -40px !important; }
+  /* Set a negative 40px margin on the bottom at the breakpoint lg */
+  .mb-lg-n6 { margin-bottom: -40px !important; }
+  /* Set a negative 40px margin on the left at the breakpoint lg */
+  .ml-lg-n6 { margin-left: -40px !important; }
+  /* Set a 40px margin on the left & right at the breakpoint lg */
+  .mx-lg-6 { margin-right: 40px !important; margin-left: 40px !important; }
+  /* Set a 40px margin on the top & bottom at the breakpoint lg */
+  .my-lg-6 { margin-top: 40px !important; margin-bottom: 40px !important; } }
+@media (min-width: 1280px) { /* Set a 0 margin to all sides at the breakpoint xl */
+  .m-xl-0 { margin: 0 !important; }
+  /* Set a 0 margin on the top at the breakpoint xl */
+  .mt-xl-0 { margin-top: 0 !important; }
+  /* Set a 0 margin on the right at the breakpoint xl */
+  .mr-xl-0 { margin-right: 0 !important; }
+  /* Set a 0 margin on the bottom at the breakpoint xl */
+  .mb-xl-0 { margin-bottom: 0 !important; }
+  /* Set a 0 margin on the left at the breakpoint xl */
+  .ml-xl-0 { margin-left: 0 !important; }
+  /* Set a negative 0 margin on top at the breakpoint xl */
+  .mt-xl-n0 { margin-top: -0 !important; }
+  /* Set a negative 0 margin on the right at the breakpoint xl */
+  .mr-xl-n0 { margin-right: -0 !important; }
+  /* Set a negative 0 margin on the bottom at the breakpoint xl */
+  .mb-xl-n0 { margin-bottom: -0 !important; }
+  /* Set a negative 0 margin on the left at the breakpoint xl */
+  .ml-xl-n0 { margin-left: -0 !important; }
+  /* Set a 0 margin on the left & right at the breakpoint xl */
+  .mx-xl-0 { margin-right: 0 !important; margin-left: 0 !important; }
+  /* Set a 0 margin on the top & bottom at the breakpoint xl */
+  .my-xl-0 { margin-top: 0 !important; margin-bottom: 0 !important; } }
+@media (min-width: 1280px) { /* Set a 4px margin to all sides at the breakpoint xl */
+  .m-xl-1 { margin: 4px !important; }
+  /* Set a 4px margin on the top at the breakpoint xl */
+  .mt-xl-1 { margin-top: 4px !important; }
+  /* Set a 4px margin on the right at the breakpoint xl */
+  .mr-xl-1 { margin-right: 4px !important; }
+  /* Set a 4px margin on the bottom at the breakpoint xl */
+  .mb-xl-1 { margin-bottom: 4px !important; }
+  /* Set a 4px margin on the left at the breakpoint xl */
+  .ml-xl-1 { margin-left: 4px !important; }
+  /* Set a negative 4px margin on top at the breakpoint xl */
+  .mt-xl-n1 { margin-top: -4px !important; }
+  /* Set a negative 4px margin on the right at the breakpoint xl */
+  .mr-xl-n1 { margin-right: -4px !important; }
+  /* Set a negative 4px margin on the bottom at the breakpoint xl */
+  .mb-xl-n1 { margin-bottom: -4px !important; }
+  /* Set a negative 4px margin on the left at the breakpoint xl */
+  .ml-xl-n1 { margin-left: -4px !important; }
+  /* Set a 4px margin on the left & right at the breakpoint xl */
+  .mx-xl-1 { margin-right: 4px !important; margin-left: 4px !important; }
+  /* Set a 4px margin on the top & bottom at the breakpoint xl */
+  .my-xl-1 { margin-top: 4px !important; margin-bottom: 4px !important; } }
+@media (min-width: 1280px) { /* Set a 8px margin to all sides at the breakpoint xl */
+  .m-xl-2 { margin: 8px !important; }
+  /* Set a 8px margin on the top at the breakpoint xl */
+  .mt-xl-2 { margin-top: 8px !important; }
+  /* Set a 8px margin on the right at the breakpoint xl */
+  .mr-xl-2 { margin-right: 8px !important; }
+  /* Set a 8px margin on the bottom at the breakpoint xl */
+  .mb-xl-2 { margin-bottom: 8px !important; }
+  /* Set a 8px margin on the left at the breakpoint xl */
+  .ml-xl-2 { margin-left: 8px !important; }
+  /* Set a negative 8px margin on top at the breakpoint xl */
+  .mt-xl-n2 { margin-top: -8px !important; }
+  /* Set a negative 8px margin on the right at the breakpoint xl */
+  .mr-xl-n2 { margin-right: -8px !important; }
+  /* Set a negative 8px margin on the bottom at the breakpoint xl */
+  .mb-xl-n2 { margin-bottom: -8px !important; }
+  /* Set a negative 8px margin on the left at the breakpoint xl */
+  .ml-xl-n2 { margin-left: -8px !important; }
+  /* Set a 8px margin on the left & right at the breakpoint xl */
+  .mx-xl-2 { margin-right: 8px !important; margin-left: 8px !important; }
+  /* Set a 8px margin on the top & bottom at the breakpoint xl */
+  .my-xl-2 { margin-top: 8px !important; margin-bottom: 8px !important; } }
+@media (min-width: 1280px) { /* Set a 16px margin to all sides at the breakpoint xl */
+  .m-xl-3 { margin: 16px !important; }
+  /* Set a 16px margin on the top at the breakpoint xl */
+  .mt-xl-3 { margin-top: 16px !important; }
+  /* Set a 16px margin on the right at the breakpoint xl */
+  .mr-xl-3 { margin-right: 16px !important; }
+  /* Set a 16px margin on the bottom at the breakpoint xl */
+  .mb-xl-3 { margin-bottom: 16px !important; }
+  /* Set a 16px margin on the left at the breakpoint xl */
+  .ml-xl-3 { margin-left: 16px !important; }
+  /* Set a negative 16px margin on top at the breakpoint xl */
+  .mt-xl-n3 { margin-top: -16px !important; }
+  /* Set a negative 16px margin on the right at the breakpoint xl */
+  .mr-xl-n3 { margin-right: -16px !important; }
+  /* Set a negative 16px margin on the bottom at the breakpoint xl */
+  .mb-xl-n3 { margin-bottom: -16px !important; }
+  /* Set a negative 16px margin on the left at the breakpoint xl */
+  .ml-xl-n3 { margin-left: -16px !important; }
+  /* Set a 16px margin on the left & right at the breakpoint xl */
+  .mx-xl-3 { margin-right: 16px !important; margin-left: 16px !important; }
+  /* Set a 16px margin on the top & bottom at the breakpoint xl */
+  .my-xl-3 { margin-top: 16px !important; margin-bottom: 16px !important; } }
+@media (min-width: 1280px) { /* Set a 24px margin to all sides at the breakpoint xl */
+  .m-xl-4 { margin: 24px !important; }
+  /* Set a 24px margin on the top at the breakpoint xl */
+  .mt-xl-4 { margin-top: 24px !important; }
+  /* Set a 24px margin on the right at the breakpoint xl */
+  .mr-xl-4 { margin-right: 24px !important; }
+  /* Set a 24px margin on the bottom at the breakpoint xl */
+  .mb-xl-4 { margin-bottom: 24px !important; }
+  /* Set a 24px margin on the left at the breakpoint xl */
+  .ml-xl-4 { margin-left: 24px !important; }
+  /* Set a negative 24px margin on top at the breakpoint xl */
+  .mt-xl-n4 { margin-top: -24px !important; }
+  /* Set a negative 24px margin on the right at the breakpoint xl */
+  .mr-xl-n4 { margin-right: -24px !important; }
+  /* Set a negative 24px margin on the bottom at the breakpoint xl */
+  .mb-xl-n4 { margin-bottom: -24px !important; }
+  /* Set a negative 24px margin on the left at the breakpoint xl */
+  .ml-xl-n4 { margin-left: -24px !important; }
+  /* Set a 24px margin on the left & right at the breakpoint xl */
+  .mx-xl-4 { margin-right: 24px !important; margin-left: 24px !important; }
+  /* Set a 24px margin on the top & bottom at the breakpoint xl */
+  .my-xl-4 { margin-top: 24px !important; margin-bottom: 24px !important; } }
+@media (min-width: 1280px) { /* Set a 32px margin to all sides at the breakpoint xl */
+  .m-xl-5 { margin: 32px !important; }
+  /* Set a 32px margin on the top at the breakpoint xl */
+  .mt-xl-5 { margin-top: 32px !important; }
+  /* Set a 32px margin on the right at the breakpoint xl */
+  .mr-xl-5 { margin-right: 32px !important; }
+  /* Set a 32px margin on the bottom at the breakpoint xl */
+  .mb-xl-5 { margin-bottom: 32px !important; }
+  /* Set a 32px margin on the left at the breakpoint xl */
+  .ml-xl-5 { margin-left: 32px !important; }
+  /* Set a negative 32px margin on top at the breakpoint xl */
+  .mt-xl-n5 { margin-top: -32px !important; }
+  /* Set a negative 32px margin on the right at the breakpoint xl */
+  .mr-xl-n5 { margin-right: -32px !important; }
+  /* Set a negative 32px margin on the bottom at the breakpoint xl */
+  .mb-xl-n5 { margin-bottom: -32px !important; }
+  /* Set a negative 32px margin on the left at the breakpoint xl */
+  .ml-xl-n5 { margin-left: -32px !important; }
+  /* Set a 32px margin on the left & right at the breakpoint xl */
+  .mx-xl-5 { margin-right: 32px !important; margin-left: 32px !important; }
+  /* Set a 32px margin on the top & bottom at the breakpoint xl */
+  .my-xl-5 { margin-top: 32px !important; margin-bottom: 32px !important; } }
+@media (min-width: 1280px) { /* Set a 40px margin to all sides at the breakpoint xl */
+  .m-xl-6 { margin: 40px !important; }
+  /* Set a 40px margin on the top at the breakpoint xl */
+  .mt-xl-6 { margin-top: 40px !important; }
+  /* Set a 40px margin on the right at the breakpoint xl */
+  .mr-xl-6 { margin-right: 40px !important; }
+  /* Set a 40px margin on the bottom at the breakpoint xl */
+  .mb-xl-6 { margin-bottom: 40px !important; }
+  /* Set a 40px margin on the left at the breakpoint xl */
+  .ml-xl-6 { margin-left: 40px !important; }
+  /* Set a negative 40px margin on top at the breakpoint xl */
+  .mt-xl-n6 { margin-top: -40px !important; }
+  /* Set a negative 40px margin on the right at the breakpoint xl */
+  .mr-xl-n6 { margin-right: -40px !important; }
+  /* Set a negative 40px margin on the bottom at the breakpoint xl */
+  .mb-xl-n6 { margin-bottom: -40px !important; }
+  /* Set a negative 40px margin on the left at the breakpoint xl */
+  .ml-xl-n6 { margin-left: -40px !important; }
+  /* Set a 40px margin on the left & right at the breakpoint xl */
+  .mx-xl-6 { margin-right: 40px !important; margin-left: 40px !important; }
+  /* Set a 40px margin on the top & bottom at the breakpoint xl */
+  .my-xl-6 { margin-top: 40px !important; margin-bottom: 40px !important; } }
+/* Set a 0 padding to all sides */
+.p-0 { padding: 0 !important; }
+
+/* Set a 0 padding to the top */
+.pt-0 { padding-top: 0 !important; }
+
+/* Set a 0 padding to the right */
+.pr-0 { padding-right: 0 !important; }
+
+/* Set a 0 padding to the bottom */
+.pb-0 { padding-bottom: 0 !important; }
+
+/* Set a 0 padding to the left */
+.pl-0 { padding-left: 0 !important; }
+
+/* Set a 0 padding to the left & right */
+.px-0 { padding-right: 0 !important; padding-left: 0 !important; }
+
+/* Set a 0 padding to the top & bottom */
+.py-0 { padding-top: 0 !important; padding-bottom: 0 !important; }
+
+/* Set a 4px padding to all sides */
+.p-1 { padding: 4px !important; }
+
+/* Set a 4px padding to the top */
+.pt-1 { padding-top: 4px !important; }
+
+/* Set a 4px padding to the right */
+.pr-1 { padding-right: 4px !important; }
+
+/* Set a 4px padding to the bottom */
+.pb-1 { padding-bottom: 4px !important; }
+
+/* Set a 4px padding to the left */
+.pl-1 { padding-left: 4px !important; }
+
+/* Set a 4px padding to the left & right */
+.px-1 { padding-right: 4px !important; padding-left: 4px !important; }
+
+/* Set a 4px padding to the top & bottom */
+.py-1 { padding-top: 4px !important; padding-bottom: 4px !important; }
+
+/* Set a 8px padding to all sides */
+.p-2 { padding: 8px !important; }
+
+/* Set a 8px padding to the top */
+.pt-2 { padding-top: 8px !important; }
+
+/* Set a 8px padding to the right */
+.pr-2 { padding-right: 8px !important; }
+
+/* Set a 8px padding to the bottom */
+.pb-2 { padding-bottom: 8px !important; }
+
+/* Set a 8px padding to the left */
+.pl-2 { padding-left: 8px !important; }
+
+/* Set a 8px padding to the left & right */
+.px-2 { padding-right: 8px !important; padding-left: 8px !important; }
+
+/* Set a 8px padding to the top & bottom */
+.py-2 { padding-top: 8px !important; padding-bottom: 8px !important; }
+
+/* Set a 16px padding to all sides */
+.p-3 { padding: 16px !important; }
+
+/* Set a 16px padding to the top */
+.pt-3 { padding-top: 16px !important; }
+
+/* Set a 16px padding to the right */
+.pr-3 { padding-right: 16px !important; }
+
+/* Set a 16px padding to the bottom */
+.pb-3 { padding-bottom: 16px !important; }
+
+/* Set a 16px padding to the left */
+.pl-3 { padding-left: 16px !important; }
+
+/* Set a 16px padding to the left & right */
+.px-3 { padding-right: 16px !important; padding-left: 16px !important; }
+
+/* Set a 16px padding to the top & bottom */
+.py-3 { padding-top: 16px !important; padding-bottom: 16px !important; }
+
+/* Set a 24px padding to all sides */
+.p-4 { padding: 24px !important; }
+
+/* Set a 24px padding to the top */
+.pt-4 { padding-top: 24px !important; }
+
+/* Set a 24px padding to the right */
+.pr-4 { padding-right: 24px !important; }
+
+/* Set a 24px padding to the bottom */
+.pb-4 { padding-bottom: 24px !important; }
+
+/* Set a 24px padding to the left */
+.pl-4 { padding-left: 24px !important; }
+
+/* Set a 24px padding to the left & right */
+.px-4 { padding-right: 24px !important; padding-left: 24px !important; }
+
+/* Set a 24px padding to the top & bottom */
+.py-4 { padding-top: 24px !important; padding-bottom: 24px !important; }
+
+/* Set a 32px padding to all sides */
+.p-5 { padding: 32px !important; }
+
+/* Set a 32px padding to the top */
+.pt-5 { padding-top: 32px !important; }
+
+/* Set a 32px padding to the right */
+.pr-5 { padding-right: 32px !important; }
+
+/* Set a 32px padding to the bottom */
+.pb-5 { padding-bottom: 32px !important; }
+
+/* Set a 32px padding to the left */
+.pl-5 { padding-left: 32px !important; }
+
+/* Set a 32px padding to the left & right */
+.px-5 { padding-right: 32px !important; padding-left: 32px !important; }
+
+/* Set a 32px padding to the top & bottom */
+.py-5 { padding-top: 32px !important; padding-bottom: 32px !important; }
+
+/* Set a 40px padding to all sides */
+.p-6 { padding: 40px !important; }
+
+/* Set a 40px padding to the top */
+.pt-6 { padding-top: 40px !important; }
+
+/* Set a 40px padding to the right */
+.pr-6 { padding-right: 40px !important; }
+
+/* Set a 40px padding to the bottom */
+.pb-6 { padding-bottom: 40px !important; }
+
+/* Set a 40px padding to the left */
+.pl-6 { padding-left: 40px !important; }
+
+/* Set a 40px padding to the left & right */
+.px-6 { padding-right: 40px !important; padding-left: 40px !important; }
+
+/* Set a 40px padding to the top & bottom */
+.py-6 { padding-top: 40px !important; padding-bottom: 40px !important; }
+
+@media (min-width: 544px) { /* Set a 0 padding to all sides at the sm breakpoint */
+  .p-sm-0 { padding: 0 !important; }
+  /* Set a 0 padding to the top at the sm breakpoint */
+  .pt-sm-0 { padding-top: 0 !important; }
+  /* Set a 0 padding to the right at the sm breakpoint */
+  .pr-sm-0 { padding-right: 0 !important; }
+  /* Set a 0 padding to the bottom at the sm breakpoint */
+  .pb-sm-0 { padding-bottom: 0 !important; }
+  /* Set a 0 padding to the left at the sm breakpoint */
+  .pl-sm-0 { padding-left: 0 !important; }
+  /* Set a 0 padding to the left & right at the sm breakpoint */
+  .px-sm-0 { padding-right: 0 !important; padding-left: 0 !important; }
+  /* Set a 0 padding to the top & bottom at the sm breakpoint */
+  .py-sm-0 { padding-top: 0 !important; padding-bottom: 0 !important; } }
+@media (min-width: 544px) { /* Set a 4px padding to all sides at the sm breakpoint */
+  .p-sm-1 { padding: 4px !important; }
+  /* Set a 4px padding to the top at the sm breakpoint */
+  .pt-sm-1 { padding-top: 4px !important; }
+  /* Set a 4px padding to the right at the sm breakpoint */
+  .pr-sm-1 { padding-right: 4px !important; }
+  /* Set a 4px padding to the bottom at the sm breakpoint */
+  .pb-sm-1 { padding-bottom: 4px !important; }
+  /* Set a 4px padding to the left at the sm breakpoint */
+  .pl-sm-1 { padding-left: 4px !important; }
+  /* Set a 4px padding to the left & right at the sm breakpoint */
+  .px-sm-1 { padding-right: 4px !important; padding-left: 4px !important; }
+  /* Set a 4px padding to the top & bottom at the sm breakpoint */
+  .py-sm-1 { padding-top: 4px !important; padding-bottom: 4px !important; } }
+@media (min-width: 544px) { /* Set a 8px padding to all sides at the sm breakpoint */
+  .p-sm-2 { padding: 8px !important; }
+  /* Set a 8px padding to the top at the sm breakpoint */
+  .pt-sm-2 { padding-top: 8px !important; }
+  /* Set a 8px padding to the right at the sm breakpoint */
+  .pr-sm-2 { padding-right: 8px !important; }
+  /* Set a 8px padding to the bottom at the sm breakpoint */
+  .pb-sm-2 { padding-bottom: 8px !important; }
+  /* Set a 8px padding to the left at the sm breakpoint */
+  .pl-sm-2 { padding-left: 8px !important; }
+  /* Set a 8px padding to the left & right at the sm breakpoint */
+  .px-sm-2 { padding-right: 8px !important; padding-left: 8px !important; }
+  /* Set a 8px padding to the top & bottom at the sm breakpoint */
+  .py-sm-2 { padding-top: 8px !important; padding-bottom: 8px !important; } }
+@media (min-width: 544px) { /* Set a 16px padding to all sides at the sm breakpoint */
+  .p-sm-3 { padding: 16px !important; }
+  /* Set a 16px padding to the top at the sm breakpoint */
+  .pt-sm-3 { padding-top: 16px !important; }
+  /* Set a 16px padding to the right at the sm breakpoint */
+  .pr-sm-3 { padding-right: 16px !important; }
+  /* Set a 16px padding to the bottom at the sm breakpoint */
+  .pb-sm-3 { padding-bottom: 16px !important; }
+  /* Set a 16px padding to the left at the sm breakpoint */
+  .pl-sm-3 { padding-left: 16px !important; }
+  /* Set a 16px padding to the left & right at the sm breakpoint */
+  .px-sm-3 { padding-right: 16px !important; padding-left: 16px !important; }
+  /* Set a 16px padding to the top & bottom at the sm breakpoint */
+  .py-sm-3 { padding-top: 16px !important; padding-bottom: 16px !important; } }
+@media (min-width: 544px) { /* Set a 24px padding to all sides at the sm breakpoint */
+  .p-sm-4 { padding: 24px !important; }
+  /* Set a 24px padding to the top at the sm breakpoint */
+  .pt-sm-4 { padding-top: 24px !important; }
+  /* Set a 24px padding to the right at the sm breakpoint */
+  .pr-sm-4 { padding-right: 24px !important; }
+  /* Set a 24px padding to the bottom at the sm breakpoint */
+  .pb-sm-4 { padding-bottom: 24px !important; }
+  /* Set a 24px padding to the left at the sm breakpoint */
+  .pl-sm-4 { padding-left: 24px !important; }
+  /* Set a 24px padding to the left & right at the sm breakpoint */
+  .px-sm-4 { padding-right: 24px !important; padding-left: 24px !important; }
+  /* Set a 24px padding to the top & bottom at the sm breakpoint */
+  .py-sm-4 { padding-top: 24px !important; padding-bottom: 24px !important; } }
+@media (min-width: 544px) { /* Set a 32px padding to all sides at the sm breakpoint */
+  .p-sm-5 { padding: 32px !important; }
+  /* Set a 32px padding to the top at the sm breakpoint */
+  .pt-sm-5 { padding-top: 32px !important; }
+  /* Set a 32px padding to the right at the sm breakpoint */
+  .pr-sm-5 { padding-right: 32px !important; }
+  /* Set a 32px padding to the bottom at the sm breakpoint */
+  .pb-sm-5 { padding-bottom: 32px !important; }
+  /* Set a 32px padding to the left at the sm breakpoint */
+  .pl-sm-5 { padding-left: 32px !important; }
+  /* Set a 32px padding to the left & right at the sm breakpoint */
+  .px-sm-5 { padding-right: 32px !important; padding-left: 32px !important; }
+  /* Set a 32px padding to the top & bottom at the sm breakpoint */
+  .py-sm-5 { padding-top: 32px !important; padding-bottom: 32px !important; } }
+@media (min-width: 544px) { /* Set a 40px padding to all sides at the sm breakpoint */
+  .p-sm-6 { padding: 40px !important; }
+  /* Set a 40px padding to the top at the sm breakpoint */
+  .pt-sm-6 { padding-top: 40px !important; }
+  /* Set a 40px padding to the right at the sm breakpoint */
+  .pr-sm-6 { padding-right: 40px !important; }
+  /* Set a 40px padding to the bottom at the sm breakpoint */
+  .pb-sm-6 { padding-bottom: 40px !important; }
+  /* Set a 40px padding to the left at the sm breakpoint */
+  .pl-sm-6 { padding-left: 40px !important; }
+  /* Set a 40px padding to the left & right at the sm breakpoint */
+  .px-sm-6 { padding-right: 40px !important; padding-left: 40px !important; }
+  /* Set a 40px padding to the top & bottom at the sm breakpoint */
+  .py-sm-6 { padding-top: 40px !important; padding-bottom: 40px !important; } }
+@media (min-width: 768px) { /* Set a 0 padding to all sides at the md breakpoint */
+  .p-md-0 { padding: 0 !important; }
+  /* Set a 0 padding to the top at the md breakpoint */
+  .pt-md-0 { padding-top: 0 !important; }
+  /* Set a 0 padding to the right at the md breakpoint */
+  .pr-md-0 { padding-right: 0 !important; }
+  /* Set a 0 padding to the bottom at the md breakpoint */
+  .pb-md-0 { padding-bottom: 0 !important; }
+  /* Set a 0 padding to the left at the md breakpoint */
+  .pl-md-0 { padding-left: 0 !important; }
+  /* Set a 0 padding to the left & right at the md breakpoint */
+  .px-md-0 { padding-right: 0 !important; padding-left: 0 !important; }
+  /* Set a 0 padding to the top & bottom at the md breakpoint */
+  .py-md-0 { padding-top: 0 !important; padding-bottom: 0 !important; } }
+@media (min-width: 768px) { /* Set a 4px padding to all sides at the md breakpoint */
+  .p-md-1 { padding: 4px !important; }
+  /* Set a 4px padding to the top at the md breakpoint */
+  .pt-md-1 { padding-top: 4px !important; }
+  /* Set a 4px padding to the right at the md breakpoint */
+  .pr-md-1 { padding-right: 4px !important; }
+  /* Set a 4px padding to the bottom at the md breakpoint */
+  .pb-md-1 { padding-bottom: 4px !important; }
+  /* Set a 4px padding to the left at the md breakpoint */
+  .pl-md-1 { padding-left: 4px !important; }
+  /* Set a 4px padding to the left & right at the md breakpoint */
+  .px-md-1 { padding-right: 4px !important; padding-left: 4px !important; }
+  /* Set a 4px padding to the top & bottom at the md breakpoint */
+  .py-md-1 { padding-top: 4px !important; padding-bottom: 4px !important; } }
+@media (min-width: 768px) { /* Set a 8px padding to all sides at the md breakpoint */
+  .p-md-2 { padding: 8px !important; }
+  /* Set a 8px padding to the top at the md breakpoint */
+  .pt-md-2 { padding-top: 8px !important; }
+  /* Set a 8px padding to the right at the md breakpoint */
+  .pr-md-2 { padding-right: 8px !important; }
+  /* Set a 8px padding to the bottom at the md breakpoint */
+  .pb-md-2 { padding-bottom: 8px !important; }
+  /* Set a 8px padding to the left at the md breakpoint */
+  .pl-md-2 { padding-left: 8px !important; }
+  /* Set a 8px padding to the left & right at the md breakpoint */
+  .px-md-2 { padding-right: 8px !important; padding-left: 8px !important; }
+  /* Set a 8px padding to the top & bottom at the md breakpoint */
+  .py-md-2 { padding-top: 8px !important; padding-bottom: 8px !important; } }
+@media (min-width: 768px) { /* Set a 16px padding to all sides at the md breakpoint */
+  .p-md-3 { padding: 16px !important; }
+  /* Set a 16px padding to the top at the md breakpoint */
+  .pt-md-3 { padding-top: 16px !important; }
+  /* Set a 16px padding to the right at the md breakpoint */
+  .pr-md-3 { padding-right: 16px !important; }
+  /* Set a 16px padding to the bottom at the md breakpoint */
+  .pb-md-3 { padding-bottom: 16px !important; }
+  /* Set a 16px padding to the left at the md breakpoint */
+  .pl-md-3 { padding-left: 16px !important; }
+  /* Set a 16px padding to the left & right at the md breakpoint */
+  .px-md-3 { padding-right: 16px !important; padding-left: 16px !important; }
+  /* Set a 16px padding to the top & bottom at the md breakpoint */
+  .py-md-3 { padding-top: 16px !important; padding-bottom: 16px !important; } }
+@media (min-width: 768px) { /* Set a 24px padding to all sides at the md breakpoint */
+  .p-md-4 { padding: 24px !important; }
+  /* Set a 24px padding to the top at the md breakpoint */
+  .pt-md-4 { padding-top: 24px !important; }
+  /* Set a 24px padding to the right at the md breakpoint */
+  .pr-md-4 { padding-right: 24px !important; }
+  /* Set a 24px padding to the bottom at the md breakpoint */
+  .pb-md-4 { padding-bottom: 24px !important; }
+  /* Set a 24px padding to the left at the md breakpoint */
+  .pl-md-4 { padding-left: 24px !important; }
+  /* Set a 24px padding to the left & right at the md breakpoint */
+  .px-md-4 { padding-right: 24px !important; padding-left: 24px !important; }
+  /* Set a 24px padding to the top & bottom at the md breakpoint */
+  .py-md-4 { padding-top: 24px !important; padding-bottom: 24px !important; } }
+@media (min-width: 768px) { /* Set a 32px padding to all sides at the md breakpoint */
+  .p-md-5 { padding: 32px !important; }
+  /* Set a 32px padding to the top at the md breakpoint */
+  .pt-md-5 { padding-top: 32px !important; }
+  /* Set a 32px padding to the right at the md breakpoint */
+  .pr-md-5 { padding-right: 32px !important; }
+  /* Set a 32px padding to the bottom at the md breakpoint */
+  .pb-md-5 { padding-bottom: 32px !important; }
+  /* Set a 32px padding to the left at the md breakpoint */
+  .pl-md-5 { padding-left: 32px !important; }
+  /* Set a 32px padding to the left & right at the md breakpoint */
+  .px-md-5 { padding-right: 32px !important; padding-left: 32px !important; }
+  /* Set a 32px padding to the top & bottom at the md breakpoint */
+  .py-md-5 { padding-top: 32px !important; padding-bottom: 32px !important; } }
+@media (min-width: 768px) { /* Set a 40px padding to all sides at the md breakpoint */
+  .p-md-6 { padding: 40px !important; }
+  /* Set a 40px padding to the top at the md breakpoint */
+  .pt-md-6 { padding-top: 40px !important; }
+  /* Set a 40px padding to the right at the md breakpoint */
+  .pr-md-6 { padding-right: 40px !important; }
+  /* Set a 40px padding to the bottom at the md breakpoint */
+  .pb-md-6 { padding-bottom: 40px !important; }
+  /* Set a 40px padding to the left at the md breakpoint */
+  .pl-md-6 { padding-left: 40px !important; }
+  /* Set a 40px padding to the left & right at the md breakpoint */
+  .px-md-6 { padding-right: 40px !important; padding-left: 40px !important; }
+  /* Set a 40px padding to the top & bottom at the md breakpoint */
+  .py-md-6 { padding-top: 40px !important; padding-bottom: 40px !important; } }
+@media (min-width: 1012px) { /* Set a 0 padding to all sides at the lg breakpoint */
+  .p-lg-0 { padding: 0 !important; }
+  /* Set a 0 padding to the top at the lg breakpoint */
+  .pt-lg-0 { padding-top: 0 !important; }
+  /* Set a 0 padding to the right at the lg breakpoint */
+  .pr-lg-0 { padding-right: 0 !important; }
+  /* Set a 0 padding to the bottom at the lg breakpoint */
+  .pb-lg-0 { padding-bottom: 0 !important; }
+  /* Set a 0 padding to the left at the lg breakpoint */
+  .pl-lg-0 { padding-left: 0 !important; }
+  /* Set a 0 padding to the left & right at the lg breakpoint */
+  .px-lg-0 { padding-right: 0 !important; padding-left: 0 !important; }
+  /* Set a 0 padding to the top & bottom at the lg breakpoint */
+  .py-lg-0 { padding-top: 0 !important; padding-bottom: 0 !important; } }
+@media (min-width: 1012px) { /* Set a 4px padding to all sides at the lg breakpoint */
+  .p-lg-1 { padding: 4px !important; }
+  /* Set a 4px padding to the top at the lg breakpoint */
+  .pt-lg-1 { padding-top: 4px !important; }
+  /* Set a 4px padding to the right at the lg breakpoint */
+  .pr-lg-1 { padding-right: 4px !important; }
+  /* Set a 4px padding to the bottom at the lg breakpoint */
+  .pb-lg-1 { padding-bottom: 4px !important; }
+  /* Set a 4px padding to the left at the lg breakpoint */
+  .pl-lg-1 { padding-left: 4px !important; }
+  /* Set a 4px padding to the left & right at the lg breakpoint */
+  .px-lg-1 { padding-right: 4px !important; padding-left: 4px !important; }
+  /* Set a 4px padding to the top & bottom at the lg breakpoint */
+  .py-lg-1 { padding-top: 4px !important; padding-bottom: 4px !important; } }
+@media (min-width: 1012px) { /* Set a 8px padding to all sides at the lg breakpoint */
+  .p-lg-2 { padding: 8px !important; }
+  /* Set a 8px padding to the top at the lg breakpoint */
+  .pt-lg-2 { padding-top: 8px !important; }
+  /* Set a 8px padding to the right at the lg breakpoint */
+  .pr-lg-2 { padding-right: 8px !important; }
+  /* Set a 8px padding to the bottom at the lg breakpoint */
+  .pb-lg-2 { padding-bottom: 8px !important; }
+  /* Set a 8px padding to the left at the lg breakpoint */
+  .pl-lg-2 { padding-left: 8px !important; }
+  /* Set a 8px padding to the left & right at the lg breakpoint */
+  .px-lg-2 { padding-right: 8px !important; padding-left: 8px !important; }
+  /* Set a 8px padding to the top & bottom at the lg breakpoint */
+  .py-lg-2 { padding-top: 8px !important; padding-bottom: 8px !important; } }
+@media (min-width: 1012px) { /* Set a 16px padding to all sides at the lg breakpoint */
+  .p-lg-3 { padding: 16px !important; }
+  /* Set a 16px padding to the top at the lg breakpoint */
+  .pt-lg-3 { padding-top: 16px !important; }
+  /* Set a 16px padding to the right at the lg breakpoint */
+  .pr-lg-3 { padding-right: 16px !important; }
+  /* Set a 16px padding to the bottom at the lg breakpoint */
+  .pb-lg-3 { padding-bottom: 16px !important; }
+  /* Set a 16px padding to the left at the lg breakpoint */
+  .pl-lg-3 { padding-left: 16px !important; }
+  /* Set a 16px padding to the left & right at the lg breakpoint */
+  .px-lg-3 { padding-right: 16px !important; padding-left: 16px !important; }
+  /* Set a 16px padding to the top & bottom at the lg breakpoint */
+  .py-lg-3 { padding-top: 16px !important; padding-bottom: 16px !important; } }
+@media (min-width: 1012px) { /* Set a 24px padding to all sides at the lg breakpoint */
+  .p-lg-4 { padding: 24px !important; }
+  /* Set a 24px padding to the top at the lg breakpoint */
+  .pt-lg-4 { padding-top: 24px !important; }
+  /* Set a 24px padding to the right at the lg breakpoint */
+  .pr-lg-4 { padding-right: 24px !important; }
+  /* Set a 24px padding to the bottom at the lg breakpoint */
+  .pb-lg-4 { padding-bottom: 24px !important; }
+  /* Set a 24px padding to the left at the lg breakpoint */
+  .pl-lg-4 { padding-left: 24px !important; }
+  /* Set a 24px padding to the left & right at the lg breakpoint */
+  .px-lg-4 { padding-right: 24px !important; padding-left: 24px !important; }
+  /* Set a 24px padding to the top & bottom at the lg breakpoint */
+  .py-lg-4 { padding-top: 24px !important; padding-bottom: 24px !important; } }
+@media (min-width: 1012px) { /* Set a 32px padding to all sides at the lg breakpoint */
+  .p-lg-5 { padding: 32px !important; }
+  /* Set a 32px padding to the top at the lg breakpoint */
+  .pt-lg-5 { padding-top: 32px !important; }
+  /* Set a 32px padding to the right at the lg breakpoint */
+  .pr-lg-5 { padding-right: 32px !important; }
+  /* Set a 32px padding to the bottom at the lg breakpoint */
+  .pb-lg-5 { padding-bottom: 32px !important; }
+  /* Set a 32px padding to the left at the lg breakpoint */
+  .pl-lg-5 { padding-left: 32px !important; }
+  /* Set a 32px padding to the left & right at the lg breakpoint */
+  .px-lg-5 { padding-right: 32px !important; padding-left: 32px !important; }
+  /* Set a 32px padding to the top & bottom at the lg breakpoint */
+  .py-lg-5 { padding-top: 32px !important; padding-bottom: 32px !important; } }
+@media (min-width: 1012px) { /* Set a 40px padding to all sides at the lg breakpoint */
+  .p-lg-6 { padding: 40px !important; }
+  /* Set a 40px padding to the top at the lg breakpoint */
+  .pt-lg-6 { padding-top: 40px !important; }
+  /* Set a 40px padding to the right at the lg breakpoint */
+  .pr-lg-6 { padding-right: 40px !important; }
+  /* Set a 40px padding to the bottom at the lg breakpoint */
+  .pb-lg-6 { padding-bottom: 40px !important; }
+  /* Set a 40px padding to the left at the lg breakpoint */
+  .pl-lg-6 { padding-left: 40px !important; }
+  /* Set a 40px padding to the left & right at the lg breakpoint */
+  .px-lg-6 { padding-right: 40px !important; padding-left: 40px !important; }
+  /* Set a 40px padding to the top & bottom at the lg breakpoint */
+  .py-lg-6 { padding-top: 40px !important; padding-bottom: 40px !important; } }
+@media (min-width: 1280px) { /* Set a 0 padding to all sides at the xl breakpoint */
+  .p-xl-0 { padding: 0 !important; }
+  /* Set a 0 padding to the top at the xl breakpoint */
+  .pt-xl-0 { padding-top: 0 !important; }
+  /* Set a 0 padding to the right at the xl breakpoint */
+  .pr-xl-0 { padding-right: 0 !important; }
+  /* Set a 0 padding to the bottom at the xl breakpoint */
+  .pb-xl-0 { padding-bottom: 0 !important; }
+  /* Set a 0 padding to the left at the xl breakpoint */
+  .pl-xl-0 { padding-left: 0 !important; }
+  /* Set a 0 padding to the left & right at the xl breakpoint */
+  .px-xl-0 { padding-right: 0 !important; padding-left: 0 !important; }
+  /* Set a 0 padding to the top & bottom at the xl breakpoint */
+  .py-xl-0 { padding-top: 0 !important; padding-bottom: 0 !important; } }
+@media (min-width: 1280px) { /* Set a 4px padding to all sides at the xl breakpoint */
+  .p-xl-1 { padding: 4px !important; }
+  /* Set a 4px padding to the top at the xl breakpoint */
+  .pt-xl-1 { padding-top: 4px !important; }
+  /* Set a 4px padding to the right at the xl breakpoint */
+  .pr-xl-1 { padding-right: 4px !important; }
+  /* Set a 4px padding to the bottom at the xl breakpoint */
+  .pb-xl-1 { padding-bottom: 4px !important; }
+  /* Set a 4px padding to the left at the xl breakpoint */
+  .pl-xl-1 { padding-left: 4px !important; }
+  /* Set a 4px padding to the left & right at the xl breakpoint */
+  .px-xl-1 { padding-right: 4px !important; padding-left: 4px !important; }
+  /* Set a 4px padding to the top & bottom at the xl breakpoint */
+  .py-xl-1 { padding-top: 4px !important; padding-bottom: 4px !important; } }
+@media (min-width: 1280px) { /* Set a 8px padding to all sides at the xl breakpoint */
+  .p-xl-2 { padding: 8px !important; }
+  /* Set a 8px padding to the top at the xl breakpoint */
+  .pt-xl-2 { padding-top: 8px !important; }
+  /* Set a 8px padding to the right at the xl breakpoint */
+  .pr-xl-2 { padding-right: 8px !important; }
+  /* Set a 8px padding to the bottom at the xl breakpoint */
+  .pb-xl-2 { padding-bottom: 8px !important; }
+  /* Set a 8px padding to the left at the xl breakpoint */
+  .pl-xl-2 { padding-left: 8px !important; }
+  /* Set a 8px padding to the left & right at the xl breakpoint */
+  .px-xl-2 { padding-right: 8px !important; padding-left: 8px !important; }
+  /* Set a 8px padding to the top & bottom at the xl breakpoint */
+  .py-xl-2 { padding-top: 8px !important; padding-bottom: 8px !important; } }
+@media (min-width: 1280px) { /* Set a 16px padding to all sides at the xl breakpoint */
+  .p-xl-3 { padding: 16px !important; }
+  /* Set a 16px padding to the top at the xl breakpoint */
+  .pt-xl-3 { padding-top: 16px !important; }
+  /* Set a 16px padding to the right at the xl breakpoint */
+  .pr-xl-3 { padding-right: 16px !important; }
+  /* Set a 16px padding to the bottom at the xl breakpoint */
+  .pb-xl-3 { padding-bottom: 16px !important; }
+  /* Set a 16px padding to the left at the xl breakpoint */
+  .pl-xl-3 { padding-left: 16px !important; }
+  /* Set a 16px padding to the left & right at the xl breakpoint */
+  .px-xl-3 { padding-right: 16px !important; padding-left: 16px !important; }
+  /* Set a 16px padding to the top & bottom at the xl breakpoint */
+  .py-xl-3 { padding-top: 16px !important; padding-bottom: 16px !important; } }
+@media (min-width: 1280px) { /* Set a 24px padding to all sides at the xl breakpoint */
+  .p-xl-4 { padding: 24px !important; }
+  /* Set a 24px padding to the top at the xl breakpoint */
+  .pt-xl-4 { padding-top: 24px !important; }
+  /* Set a 24px padding to the right at the xl breakpoint */
+  .pr-xl-4 { padding-right: 24px !important; }
+  /* Set a 24px padding to the bottom at the xl breakpoint */
+  .pb-xl-4 { padding-bottom: 24px !important; }
+  /* Set a 24px padding to the left at the xl breakpoint */
+  .pl-xl-4 { padding-left: 24px !important; }
+  /* Set a 24px padding to the left & right at the xl breakpoint */
+  .px-xl-4 { padding-right: 24px !important; padding-left: 24px !important; }
+  /* Set a 24px padding to the top & bottom at the xl breakpoint */
+  .py-xl-4 { padding-top: 24px !important; padding-bottom: 24px !important; } }
+@media (min-width: 1280px) { /* Set a 32px padding to all sides at the xl breakpoint */
+  .p-xl-5 { padding: 32px !important; }
+  /* Set a 32px padding to the top at the xl breakpoint */
+  .pt-xl-5 { padding-top: 32px !important; }
+  /* Set a 32px padding to the right at the xl breakpoint */
+  .pr-xl-5 { padding-right: 32px !important; }
+  /* Set a 32px padding to the bottom at the xl breakpoint */
+  .pb-xl-5 { padding-bottom: 32px !important; }
+  /* Set a 32px padding to the left at the xl breakpoint */
+  .pl-xl-5 { padding-left: 32px !important; }
+  /* Set a 32px padding to the left & right at the xl breakpoint */
+  .px-xl-5 { padding-right: 32px !important; padding-left: 32px !important; }
+  /* Set a 32px padding to the top & bottom at the xl breakpoint */
+  .py-xl-5 { padding-top: 32px !important; padding-bottom: 32px !important; } }
+@media (min-width: 1280px) { /* Set a 40px padding to all sides at the xl breakpoint */
+  .p-xl-6 { padding: 40px !important; }
+  /* Set a 40px padding to the top at the xl breakpoint */
+  .pt-xl-6 { padding-top: 40px !important; }
+  /* Set a 40px padding to the right at the xl breakpoint */
+  .pr-xl-6 { padding-right: 40px !important; }
+  /* Set a 40px padding to the bottom at the xl breakpoint */
+  .pb-xl-6 { padding-bottom: 40px !important; }
+  /* Set a 40px padding to the left at the xl breakpoint */
+  .pl-xl-6 { padding-left: 40px !important; }
+  /* Set a 40px padding to the left & right at the xl breakpoint */
+  .px-xl-6 { padding-right: 40px !important; padding-left: 40px !important; }
+  /* Set a 40px padding to the top & bottom at the xl breakpoint */
+  .py-xl-6 { padding-top: 40px !important; padding-bottom: 40px !important; } }
+.p-responsive { padding-right: 16px !important; padding-left: 16px !important; }
+@media (min-width: 544px) { .p-responsive { padding-right: 40px !important; padding-left: 40px !important; } }
+@media (min-width: 1012px) { .p-responsive { padding-right: 16px !important; padding-left: 16px !important; } }
+
+/* Set the font size to 26px */
+.h1 { font-size: 26px !important; }
+@media (min-width: 768px) { .h1 { font-size: 32px !important; } }
+
+/* Set the font size to 22px */
+.h2 { font-size: 22px !important; }
+@media (min-width: 768px) { .h2 { font-size: 24px !important; } }
+
+/* Set the font size to 18px */
+.h3 { font-size: 18px !important; }
+@media (min-width: 768px) { .h3 { font-size: 20px !important; } }
+
+/* Set the font size to 16px */
+.h4 { font-size: 16px !important; }
+
+/* Set the font size to 14px */
+.h5 { font-size: 14px !important; }
+
+/* Set the font size to 12px */
+.h6 { font-size: 12px !important; }
+
+.h1, .h2, .h3, .h4, .h5, .h6 { font-weight: 600 !important; }
+
+/* Set the font size to 26px */
+.f1 { font-size: 26px !important; }
+@media (min-width: 768px) { .f1 { font-size: 32px !important; } }
+
+/* Set the font size to 22px */
+.f2 { font-size: 22px !important; }
+@media (min-width: 768px) { .f2 { font-size: 24px !important; } }
+
+/* Set the font size to 18px */
+.f3 { font-size: 18px !important; }
+@media (min-width: 768px) { .f3 { font-size: 20px !important; } }
+
+/* Set the font size to 16px */
+.f4 { font-size: 16px !important; }
+@media (min-width: 768px) { .f4 { font-size: 16px !important; } }
+
+/* Set the font size to 14px */
+.f5 { font-size: 14px !important; }
+
+/* Set the font size to 12px */
+.f6 { font-size: 12px !important; }
+
+/* Set the font size to 40px and weight to light */
+.f00-light { font-size: 40px !important; font-weight: 300 !important; }
+@media (min-width: 768px) { .f00-light { font-size: 48px !important; } }
+
+/* Set the font size to 32px and weight to light */
+.f0-light { font-size: 32px !important; font-weight: 300 !important; }
+@media (min-width: 768px) { .f0-light { font-size: 40px !important; } }
+
+/* Set the font size to 26px and weight to light */
+.f1-light { font-size: 26px !important; font-weight: 300 !important; }
+@media (min-width: 768px) { .f1-light { font-size: 32px !important; } }
+
+/* Set the font size to 22px and weight to light */
+.f2-light { font-size: 22px !important; font-weight: 300 !important; }
+@media (min-width: 768px) { .f2-light { font-size: 24px !important; } }
+
+/* Set the font size to 18px and weight to light */
+.f3-light { font-size: 18px !important; font-weight: 300 !important; }
+@media (min-width: 768px) { .f3-light { font-size: 20px !important; } }
+
+/* Set the font size to ${#h6-size} */
+.text-small { font-size: 12px !important; }
+
+/* Large leading paragraphs */
+.lead { margin-bottom: 30px; font-size: 20px; font-weight: 300; color: #586069; }
+
+/* Set the line height to ultra condensed */
+.lh-condensed-ultra { line-height: 1 !important; }
+
+/* Set the line height to condensed */
+.lh-condensed { line-height: 1.25 !important; }
+
+/* Set the line height to default */
+.lh-default { line-height: 1.5 !important; }
+
+/* Text align to the right */
+.text-right { text-align: right !important; }
+
+/* Text align to the left */
+.text-left { text-align: left !important; }
+
+/* Text align to the center */
+.text-center { text-align: center !important; }
+
+@media (min-width: 544px) { .text-sm-right { text-align: right !important; }
+  .text-sm-left { text-align: left !important; }
+  .text-sm-center { text-align: center !important; } }
+@media (min-width: 768px) { .text-md-right { text-align: right !important; }
+  .text-md-left { text-align: left !important; }
+  .text-md-center { text-align: center !important; } }
+@media (min-width: 1012px) { .text-lg-right { text-align: right !important; }
+  .text-lg-left { text-align: left !important; }
+  .text-lg-center { text-align: center !important; } }
+@media (min-width: 1280px) { .text-xl-right { text-align: right !important; }
+  .text-xl-left { text-align: left !important; }
+  .text-xl-center { text-align: center !important; } }
+/* Set the font weight to normal */
+.text-normal { font-weight: 400 !important; }
+
+/* Set the font weight to bold */
+.text-bold { font-weight: 600 !important; }
+
+/* Set the font to italic */
+.text-italic { font-style: italic !important; }
+
+/* Make text uppercase */
+.text-uppercase { text-transform: uppercase !important; }
+
+/* Underline text */
+.no-underline { text-decoration: none !important; }
+
+/* Don't wrap white space */
+.no-wrap { white-space: nowrap !important; }
+
+/* Normal white space */
+.ws-normal { white-space: normal !important; }
+
+/* Allow long lines with no spaces to line break */
+.wb-break-all { word-break: break-all !important; }
+
+.text-emphasized { font-weight: 600; color: #24292e; }
+
+.list-style-none { list-style: none !important; }
+
+/* Add a dark text shadow */
+.text-shadow-dark { text-shadow: 0 1px 1px rgba(27, 31, 35, 0.25), 0 1px 25px rgba(27, 31, 35, 0.75); }
+
+/* Add a light text shadow */
+.text-shadow-light { text-shadow: 0 1px 0 rgba(255, 255, 255, 0.5); }
+
+/* Visibility hidden */
+.v-hidden { visibility: hidden !important; }
+
+/* Visibility visible */
+.v-visible { visibility: visible !important; }
+
+/* Set the display to table */
+.d-table { display: table !important; }
+
+/* Set the display to table-cell */
+.d-table-cell { display: table-cell !important; }
+
+/* Set the table-layout to fixed */
+.table-fixed { table-layout: fixed !important; }
+
+/* Set the display to block */
+.d-block { display: block !important; }
+
+/* Set the display to inline */
+.d-inline { display: inline !important; }
+
+/* Set the display to inline-block */
+.d-inline-block { display: inline-block !important; }
+
+/* Set the display to flex */
+.d-flex { display: flex !important; }
+
+/* Set the display to inline-flex */
+.d-inline-flex { display: inline-flex !important; }
+
+/* Set the display to none */
+.d-none { display: none !important; }
+
+@media (min-width: 544px) { /* Set the display to table at the sm breakpoint */
+  .d-sm-table { display: table !important; }
+  /* Set the display to table cell at the sm breakpoint */
+  .d-sm-table-cell { display: table-cell !important; }
+  /* Set the display to block at the sm breakpoint */
+  .d-sm-block { display: block !important; }
+  /* Set the display to inline at the sm breakpoint */
+  .d-sm-inline { display: inline !important; }
+  /* Set the display to inline block at the sm breakpoint */
+  .d-sm-inline-block { display: inline-block !important; }
+  /* Set the display to flex at the sm breakpoint */
+  .d-sm-flex { display: flex !important; }
+  /* Set the display to flex at the sm breakpoint */
+  .d-sm-inline-flex { display: inline-flex !important; }
+  /* Set the display to none at the sm breakpoint */
+  .d-sm-none { display: none !important; } }
+@media (min-width: 768px) { /* Set the display to table at the md breakpoint */
+  .d-md-table { display: table !important; }
+  /* Set the display to table cell at the md breakpoint */
+  .d-md-table-cell { display: table-cell !important; }
+  /* Set the display to block at the md breakpoint */
+  .d-md-block { display: block !important; }
+  /* Set the display to inline at the md breakpoint */
+  .d-md-inline { display: inline !important; }
+  /* Set the display to inline block at the md breakpoint */
+  .d-md-inline-block { display: inline-block !important; }
+  /* Set the display to flex at the md breakpoint */
+  .d-md-flex { display: flex !important; }
+  /* Set the display to flex at the md breakpoint */
+  .d-md-inline-flex { display: inline-flex !important; }
+  /* Set the display to none at the md breakpoint */
+  .d-md-none { display: none !important; } }
+@media (min-width: 1012px) { /* Set the display to table at the lg breakpoint */
+  .d-lg-table { display: table !important; }
+  /* Set the display to table cell at the lg breakpoint */
+  .d-lg-table-cell { display: table-cell !important; }
+  /* Set the display to block at the lg breakpoint */
+  .d-lg-block { display: block !important; }
+  /* Set the display to inline at the lg breakpoint */
+  .d-lg-inline { display: inline !important; }
+  /* Set the display to inline block at the lg breakpoint */
+  .d-lg-inline-block { display: inline-block !important; }
+  /* Set the display to flex at the lg breakpoint */
+  .d-lg-flex { display: flex !important; }
+  /* Set the display to flex at the lg breakpoint */
+  .d-lg-inline-flex { display: inline-flex !important; }
+  /* Set the display to none at the lg breakpoint */
+  .d-lg-none { display: none !important; } }
+@media (min-width: 1280px) { /* Set the display to table at the xl breakpoint */
+  .d-xl-table { display: table !important; }
+  /* Set the display to table cell at the xl breakpoint */
+  .d-xl-table-cell { display: table-cell !important; }
+  /* Set the display to block at the xl breakpoint */
+  .d-xl-block { display: block !important; }
+  /* Set the display to inline at the xl breakpoint */
+  .d-xl-inline { display: inline !important; }
+  /* Set the display to inline block at the xl breakpoint */
+  .d-xl-inline-block { display: inline-block !important; }
+  /* Set the display to flex at the xl breakpoint */
+  .d-xl-flex { display: flex !important; }
+  /* Set the display to flex at the xl breakpoint */
+  .d-xl-inline-flex { display: inline-flex !important; }
+  /* Set the display to none at the xl breakpoint */
+  .d-xl-none { display: none !important; } }
+@media (max-width: 544px) { .hide-sm { display: none !important; } }
+@media (min-width: 544px) and (max-width: 768px) { .hide-md { display: none !important; } }
+@media (min-width: 768px) and (max-width: 1012px) { .hide-lg { display: none !important; } }
+@media (min-width: 1012px) { .hide-xl { display: none !important; } }
+.sr-only { position: absolute; width: 1px; height: 1px; padding: 0; overflow: hidden; clip: rect(0, 0, 0, 0); word-wrap: normal; border: 0; }
+
+.show-on-focus { position: absolute; width: 1px; height: 1px; margin: 0; overflow: hidden; clip: rect(1px, 1px, 1px, 1px); }
+.show-on-focus:focus { z-index: 20; width: auto; height: auto; clip: auto; }
+
+.container { width: 980px; margin-right: auto; margin-left: auto; }
+.container::before { display: table; content: ""; }
+.container::after { display: table; clear: both; content: ""; }
+
+.container-md { max-width: 768px; margin-right: auto; margin-left: auto; }
+
+.container-lg { max-width: 1012px; margin-right: auto; margin-left: auto; }
+
+.container-xl { max-width: 1280px; margin-right: auto; margin-left: auto; }
+
+.columns { margin-right: -10px; margin-left: -10px; }
+.columns::before { display: table; content: ""; }
+.columns::after { display: table; clear: both; content: ""; }
+
+.column { float: left; padding-right: 10px; padding-left: 10px; }
+
+.one-third { width: 33.333333%; }
+
+.two-thirds { width: 66.666667%; }
+
+.one-fourth { width: 25%; }
+
+.one-half { width: 50%; }
+
+.three-fourths { width: 75%; }
+
+.one-fifth { width: 20%; }
+
+.four-fifths { width: 80%; }
+
+.centered { display: block; float: none; margin-right: auto; margin-left: auto; }
+
+.col-1 { width: 8.3333333333%; }
+
+.col-2 { width: 16.6666666667%; }
+
+.col-3 { width: 25%; }
+
+.col-4 { width: 33.3333333333%; }
+
+.col-5 { width: 41.6666666667%; }
+
+.col-6 { width: 50%; }
+
+.col-7 { width: 58.3333333333%; }
+
+.col-8 { width: 66.6666666667%; }
+
+.col-9 { width: 75%; }
+
+.col-10 { width: 83.3333333333%; }
+
+.col-11 { width: 91.6666666667%; }
+
+.col-12 { width: 100%; }
+
+@media (min-width: 544px) { .col-sm-1 { width: 8.3333333333%; }
+  .col-sm-2 { width: 16.6666666667%; }
+  .col-sm-3 { width: 25%; }
+  .col-sm-4 { width: 33.3333333333%; }
+  .col-sm-5 { width: 41.6666666667%; }
+  .col-sm-6 { width: 50%; }
+  .col-sm-7 { width: 58.3333333333%; }
+  .col-sm-8 { width: 66.6666666667%; }
+  .col-sm-9 { width: 75%; }
+  .col-sm-10 { width: 83.3333333333%; }
+  .col-sm-11 { width: 91.6666666667%; }
+  .col-sm-12 { width: 100%; } }
+@media (min-width: 768px) { .col-md-1 { width: 8.3333333333%; }
+  .col-md-2 { width: 16.6666666667%; }
+  .col-md-3 { width: 25%; }
+  .col-md-4 { width: 33.3333333333%; }
+  .col-md-5 { width: 41.6666666667%; }
+  .col-md-6 { width: 50%; }
+  .col-md-7 { width: 58.3333333333%; }
+  .col-md-8 { width: 66.6666666667%; }
+  .col-md-9 { width: 75%; }
+  .col-md-10 { width: 83.3333333333%; }
+  .col-md-11 { width: 91.6666666667%; }
+  .col-md-12 { width: 100%; } }
+@media (min-width: 1012px) { .col-lg-1 { width: 8.3333333333%; }
+  .col-lg-2 { width: 16.6666666667%; }
+  .col-lg-3 { width: 25%; }
+  .col-lg-4 { width: 33.3333333333%; }
+  .col-lg-5 { width: 41.6666666667%; }
+  .col-lg-6 { width: 50%; }
+  .col-lg-7 { width: 58.3333333333%; }
+  .col-lg-8 { width: 66.6666666667%; }
+  .col-lg-9 { width: 75%; }
+  .col-lg-10 { width: 83.3333333333%; }
+  .col-lg-11 { width: 91.6666666667%; }
+  .col-lg-12 { width: 100%; } }
+@media (min-width: 1280px) { .col-xl-1 { width: 8.3333333333%; }
+  .col-xl-2 { width: 16.6666666667%; }
+  .col-xl-3 { width: 25%; }
+  .col-xl-4 { width: 33.3333333333%; }
+  .col-xl-5 { width: 41.6666666667%; }
+  .col-xl-6 { width: 50%; }
+  .col-xl-7 { width: 58.3333333333%; }
+  .col-xl-8 { width: 66.6666666667%; }
+  .col-xl-9 { width: 75%; }
+  .col-xl-10 { width: 83.3333333333%; }
+  .col-xl-11 { width: 91.6666666667%; }
+  .col-xl-12 { width: 100%; } }
+.gutter { margin-right: -16px; margin-left: -16px; }
+.gutter > [class*="col-"] { padding-right: 16px !important; padding-left: 16px !important; }
+
+.gutter-condensed { margin-right: -8px; margin-left: -8px; }
+.gutter-condensed > [class*="col-"] { padding-right: 8px !important; padding-left: 8px !important; }
+
+.gutter-spacious { margin-right: -24px; margin-left: -24px; }
+.gutter-spacious > [class*="col-"] { padding-right: 24px !important; padding-left: 24px !important; }
+
+@media (min-width: 544px) { .gutter-sm { margin-right: -16px; margin-left: -16px; }
+  .gutter-sm > [class*="col-"] { padding-right: 16px !important; padding-left: 16px !important; }
+  .gutter-sm-condensed { margin-right: -8px; margin-left: -8px; }
+  .gutter-sm-condensed > [class*="col-"] { padding-right: 8px !important; padding-left: 8px !important; }
+  .gutter-sm-spacious { margin-right: -24px; margin-left: -24px; }
+  .gutter-sm-spacious > [class*="col-"] { padding-right: 24px !important; padding-left: 24px !important; } }
+@media (min-width: 768px) { .gutter-md { margin-right: -16px; margin-left: -16px; }
+  .gutter-md > [class*="col-"] { padding-right: 16px !important; padding-left: 16px !important; }
+  .gutter-md-condensed { margin-right: -8px; margin-left: -8px; }
+  .gutter-md-condensed > [class*="col-"] { padding-right: 8px !important; padding-left: 8px !important; }
+  .gutter-md-spacious { margin-right: -24px; margin-left: -24px; }
+  .gutter-md-spacious > [class*="col-"] { padding-right: 24px !important; padding-left: 24px !important; } }
+@media (min-width: 1012px) { .gutter-lg { margin-right: -16px; margin-left: -16px; }
+  .gutter-lg > [class*="col-"] { padding-right: 16px !important; padding-left: 16px !important; }
+  .gutter-lg-condensed { margin-right: -8px; margin-left: -8px; }
+  .gutter-lg-condensed > [class*="col-"] { padding-right: 8px !important; padding-left: 8px !important; }
+  .gutter-lg-spacious { margin-right: -24px; margin-left: -24px; }
+  .gutter-lg-spacious > [class*="col-"] { padding-right: 24px !important; padding-left: 24px !important; } }
+@media (min-width: 1280px) { .gutter-xl { margin-right: -16px; margin-left: -16px; }
+  .gutter-xl > [class*="col-"] { padding-right: 16px !important; padding-left: 16px !important; }
+  .gutter-xl-condensed { margin-right: -8px; margin-left: -8px; }
+  .gutter-xl-condensed > [class*="col-"] { padding-right: 8px !important; padding-left: 8px !important; }
+  .gutter-xl-spacious { margin-right: -24px; margin-left: -24px; }
+  .gutter-xl-spacious > [class*="col-"] { padding-right: 24px !important; padding-left: 24px !important; } }
+.offset-1 { margin-left: 8.3333333333%; }
+
+.offset-2 { margin-left: 16.6666666667%; }
+
+.offset-3 { margin-left: 25%; }
+
+.offset-4 { margin-left: 33.3333333333%; }
+
+.offset-5 { margin-left: 41.6666666667%; }
+
+.offset-6 { margin-left: 50%; }
+
+.offset-7 { margin-left: 58.3333333333%; }
+
+.offset-8 { margin-left: 66.6666666667%; }
+
+.offset-9 { margin-left: 75%; }
+
+.offset-10 { margin-left: 83.3333333333%; }
+
+.offset-11 { margin-left: 91.6666666667%; }
+
+@media (min-width: 544px) { .offset-sm-1 { margin-left: 8.3333333333%; }
+  .offset-sm-2 { margin-left: 16.6666666667%; }
+  .offset-sm-3 { margin-left: 25%; }
+  .offset-sm-4 { margin-left: 33.3333333333%; }
+  .offset-sm-5 { margin-left: 41.6666666667%; }
+  .offset-sm-6 { margin-left: 50%; }
+  .offset-sm-7 { margin-left: 58.3333333333%; }
+  .offset-sm-8 { margin-left: 66.6666666667%; }
+  .offset-sm-9 { margin-left: 75%; }
+  .offset-sm-10 { margin-left: 83.3333333333%; }
+  .offset-sm-11 { margin-left: 91.6666666667%; } }
+@media (min-width: 768px) { .offset-md-1 { margin-left: 8.3333333333%; }
+  .offset-md-2 { margin-left: 16.6666666667%; }
+  .offset-md-3 { margin-left: 25%; }
+  .offset-md-4 { margin-left: 33.3333333333%; }
+  .offset-md-5 { margin-left: 41.6666666667%; }
+  .offset-md-6 { margin-left: 50%; }
+  .offset-md-7 { margin-left: 58.3333333333%; }
+  .offset-md-8 { margin-left: 66.6666666667%; }
+  .offset-md-9 { margin-left: 75%; }
+  .offset-md-10 { margin-left: 83.3333333333%; }
+  .offset-md-11 { margin-left: 91.6666666667%; } }
+@media (min-width: 1012px) { .offset-lg-1 { margin-left: 8.3333333333%; }
+  .offset-lg-2 { margin-left: 16.6666666667%; }
+  .offset-lg-3 { margin-left: 25%; }
+  .offset-lg-4 { margin-left: 33.3333333333%; }
+  .offset-lg-5 { margin-left: 41.6666666667%; }
+  .offset-lg-6 { margin-left: 50%; }
+  .offset-lg-7 { margin-left: 58.3333333333%; }
+  .offset-lg-8 { margin-left: 66.6666666667%; }
+  .offset-lg-9 { margin-left: 75%; }
+  .offset-lg-10 { margin-left: 83.3333333333%; }
+  .offset-lg-11 { margin-left: 91.6666666667%; } }
+@media (min-width: 1280px) { .offset-xl-1 { margin-left: 8.3333333333%; }
+  .offset-xl-2 { margin-left: 16.6666666667%; }
+  .offset-xl-3 { margin-left: 25%; }
+  .offset-xl-4 { margin-left: 33.3333333333%; }
+  .offset-xl-5 { margin-left: 41.6666666667%; }
+  .offset-xl-6 { margin-left: 50%; }
+  .offset-xl-7 { margin-left: 58.3333333333%; }
+  .offset-xl-8 { margin-left: 66.6666666667%; }
+  .offset-xl-9 { margin-left: 75%; }
+  .offset-xl-10 { margin-left: 83.3333333333%; }
+  .offset-xl-11 { margin-left: 91.6666666667%; } }
+.markdown-body { font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"; font-size: 16px; line-height: 1.5; word-wrap: break-word; }
+.markdown-body::before { display: table; content: ""; }
+.markdown-body::after { display: table; clear: both; content: ""; }
+.markdown-body > *:first-child { margin-top: 0 !important; }
+.markdown-body > *:last-child { margin-bottom: 0 !important; }
+.markdown-body a:not([href]) { color: inherit; text-decoration: none; }
+.markdown-body .absent { color: #cb2431; }
+.markdown-body .anchor { float: left; padding-right: 4px; margin-left: -20px; line-height: 1; }
+.markdown-body .anchor:focus { outline: none; }
+.markdown-body p, .markdown-body blockquote, .markdown-body ul, .markdown-body ol, .markdown-body dl, .markdown-body table, .markdown-body pre { margin-top: 0; margin-bottom: 16px; }
+.markdown-body hr { height: 0.25em; padding: 0; margin: 24px 0; background-color: #e1e4e8; border: 0; }
+.markdown-body blockquote { padding: 0 1em; color: #6a737d; border-left: 0.25em solid #dfe2e5; }
+.markdown-body blockquote > :first-child { margin-top: 0; }
+.markdown-body blockquote > :last-child { margin-bottom: 0; }
+.markdown-body kbd { display: inline-block; padding: 3px 5px; font-size: 11px; line-height: 10px; color: #444d56; vertical-align: middle; background-color: #fafbfc; border: solid 1px #c6cbd1; border-bottom-color: #959da5; border-radius: 3px; box-shadow: inset 0 -1px 0 #959da5; }
+
+.markdown-body h1, .markdown-body h2, .markdown-body h3, .markdown-body h4, .markdown-body h5, .markdown-body h6 { margin-top: 24px; margin-bottom: 16px; font-weight: 600; line-height: 1.25; }
+.markdown-body h1 .octicon-link, .markdown-body h2 .octicon-link, .markdown-body h3 .octicon-link, .markdown-body h4 .octicon-link, .markdown-body h5 .octicon-link, .markdown-body h6 .octicon-link { color: #1b1f23; vertical-align: middle; visibility: hidden; }
+.markdown-body h1:hover .anchor, .markdown-body h2:hover .anchor, .markdown-body h3:hover .anchor, .markdown-body h4:hover .anchor, .markdown-body h5:hover .anchor, .markdown-body h6:hover .anchor { text-decoration: none; }
+.markdown-body h1:hover .anchor .octicon-link, .markdown-body h2:hover .anchor .octicon-link, .markdown-body h3:hover .anchor .octicon-link, .markdown-body h4:hover .anchor .octicon-link, .markdown-body h5:hover .anchor .octicon-link, .markdown-body h6:hover .anchor .octicon-link { visibility: visible; }
+.markdown-body h1 tt, .markdown-body h1 code, .markdown-body h2 tt, .markdown-body h2 code, .markdown-body h3 tt, .markdown-body h3 code, .markdown-body h4 tt, .markdown-body h4 code, .markdown-body h5 tt, .markdown-body h5 code, .markdown-body h6 tt, .markdown-body h6 code { font-size: inherit; }
+.markdown-body h1 { padding-bottom: 0.3em; font-size: 2em; border-bottom: 1px solid #eaecef; }
+.markdown-body h2 { padding-bottom: 0.3em; font-size: 1.5em; border-bottom: 1px solid #eaecef; }
+.markdown-body h3 { font-size: 1.25em; }
+.markdown-body h4 { font-size: 1em; }
+.markdown-body h5 { font-size: 0.875em; }
+.markdown-body h6 { font-size: 0.85em; color: #6a737d; }
+
+.markdown-body ul, .markdown-body ol { padding-left: 2em; }
+.markdown-body ul.no-list, .markdown-body ol.no-list { padding: 0; list-style-type: none; }
+.markdown-body ul ul, .markdown-body ul ol, .markdown-body ol ol, .markdown-body ol ul { margin-top: 0; margin-bottom: 0; }
+.markdown-body li > p { margin-top: 16px; }
+.markdown-body li + li { margin-top: 0.25em; }
+.markdown-body dl { padding: 0; }
+.markdown-body dl dt { padding: 0; margin-top: 16px; font-size: 1em; font-style: italic; font-weight: 600; }
+.markdown-body dl dd { padding: 0 16px; margin-bottom: 16px; }
+
+.markdown-body table { display: block; width: 100%; overflow: auto; }
+.markdown-body table th { font-weight: 600; }
+.markdown-body table th, .markdown-body table td { padding: 6px 13px; border: 1px solid #dfe2e5; }
+.markdown-body table tr { background-color: #fff; border-top: 1px solid #c6cbd1; }
+.markdown-body table tr:nth-child(2n) { background-color: #f6f8fa; }
+.markdown-body table img { background-color: transparent; }
+
+.markdown-body img { max-width: 100%; box-sizing: content-box; background-color: #fff; }
+.markdown-body img[align=right] { padding-left: 20px; }
+.markdown-body img[align=left] { padding-right: 20px; }
+.markdown-body .emoji { max-width: none; vertical-align: text-top; background-color: transparent; }
+.markdown-body span.frame { display: block; overflow: hidden; }
+.markdown-body span.frame > span { display: block; float: left; width: auto; padding: 7px; margin: 13px 0 0; overflow: hidden; border: 1px solid #dfe2e5; }
+.markdown-body span.frame span img { display: block; float: left; }
+.markdown-body span.frame span span { display: block; padding: 5px 0 0; clear: both; color: #24292e; }
+.markdown-body span.align-center { display: block; overflow: hidden; clear: both; }
+.markdown-body span.align-center > span { display: block; margin: 13px auto 0; overflow: hidden; text-align: center; }
+.markdown-body span.align-center span img { margin: 0 auto; text-align: center; }
+.markdown-body span.align-right { display: block; overflow: hidden; clear: both; }
+.markdown-body span.align-right > span { display: block; margin: 13px 0 0; overflow: hidden; text-align: right; }
+.markdown-body span.align-right span img { margin: 0; text-align: right; }
+.markdown-body span.float-left { display: block; float: left; margin-right: 13px; overflow: hidden; }
+.markdown-body span.float-left span { margin: 13px 0 0; }
+.markdown-body span.float-right { display: block; float: right; margin-left: 13px; overflow: hidden; }
+.markdown-body span.float-right > span { display: block; margin: 13px auto 0; overflow: hidden; text-align: right; }
+
+.markdown-body code, .markdown-body tt { padding: 0; padding-top: 0.2em; padding-bottom: 0.2em; margin: 0; font-size: 85%; background-color: rgba(27, 31, 35, 0.05); border-radius: 3px; }
+.markdown-body code::before, .markdown-body code::after, .markdown-body tt::before, .markdown-body tt::after { letter-spacing: -0.2em; content: "\00a0"; }
+.markdown-body code br, .markdown-body tt br { display: none; }
+.markdown-body del code { text-decoration: inherit; }
+.markdown-body pre { word-wrap: normal; }
+.markdown-body pre > code { padding: 0; margin: 0; font-size: 100%; word-break: normal; white-space: pre; background: transparent; border: 0; }
+.markdown-body .highlight { margin-bottom: 16px; }
+.markdown-body .highlight pre { margin-bottom: 0; word-break: normal; }
+.markdown-body .highlight pre, .markdown-body pre { padding: 16px; overflow: auto; font-size: 85%; line-height: 1.45; background-color: #f6f8fa; border-radius: 3px; }
+.markdown-body pre code, .markdown-body pre tt { display: inline; max-width: auto; padding: 0; margin: 0; overflow: visible; line-height: inherit; word-wrap: normal; background-color: transparent; border: 0; }
+.markdown-body pre code::before, .markdown-body pre code::after, .markdown-body pre tt::before, .markdown-body pre tt::after { content: normal; }
+
+.markdown-body .csv-data td, .markdown-body .csv-data th { padding: 5px; overflow: hidden; font-size: 12px; line-height: 1; text-align: left; white-space: nowrap; }
+.markdown-body .csv-data .blob-num { padding: 10px 8px 9px; text-align: right; background: #fff; border: 0; }
+.markdown-body .csv-data tr { border-top: 0; }
+.markdown-body .csv-data th { font-weight: 600; background: #f6f8fa; border-top: 0; }
+
+.highlight table td { padding: 5px; }
+
+.highlight table pre { margin: 0; }
+
+.highlight .cm { color: #999988; font-style: italic; }
+
+.highlight .cp { color: #999999; font-weight: bold; }
+
+.highlight .c1 { color: #999988; font-style: italic; }
+
+.highlight .cs { color: #999999; font-weight: bold; font-style: italic; }
+
+.highlight .c, .highlight .cd { color: #999988; font-style: italic; }
+
+.highlight .err { color: #a61717; background-color: #e3d2d2; }
+
+.highlight .gd { color: #000000; background-color: #ffdddd; }
+
+.highlight .ge { color: #000000; font-style: italic; }
+
+.highlight .gr { color: #aa0000; }
+
+.highlight .gh { color: #999999; }
+
+.highlight .gi { color: #000000; background-color: #ddffdd; }
+
+.highlight .go { color: #888888; }
+
+.highlight .gp { color: #555555; }
+
+.highlight .gs { font-weight: bold; }
+
+.highlight .gu { color: #aaaaaa; }
+
+.highlight .gt { color: #aa0000; }
+
+.highlight .kc { color: #000000; font-weight: bold; }
+
+.highlight .kd { color: #000000; font-weight: bold; }
+
+.highlight .kn { color: #000000; font-weight: bold; }
+
+.highlight .kp { color: #000000; font-weight: bold; }
+
+.highlight .kr { color: #000000; font-weight: bold; }
+
+.highlight .kt { color: #445588; font-weight: bold; }
+
+.highlight .k, .highlight .kv { color: #000000; font-weight: bold; }
+
+.highlight .mf { color: #009999; }
+
+.highlight .mh { color: #009999; }
+
+.highlight .il { color: #009999; }
+
+.highlight .mi { color: #009999; }
+
+.highlight .mo { color: #009999; }
+
+.highlight .m, .highlight .mb, .highlight .mx { color: #009999; }
+
+.highlight .sb { color: #d14; }
+
+.highlight .sc { color: #d14; }
+
+.highlight .sd { color: #d14; }
+
+.highlight .s2 { color: #d14; }
+
+.highlight .se { color: #d14; }
+
+.highlight .sh { color: #d14; }
+
+.highlight .si { color: #d14; }
+
+.highlight .sx { color: #d14; }
+
+.highlight .sr { color: #009926; }
+
+.highlight .s1 { color: #d14; }
+
+.highlight .ss { color: #990073; }
+
+.highlight .s { color: #d14; }
+
+.highlight .na { color: #008080; }
+
+.highlight .bp { color: #999999; }
+
+.highlight .nb { color: #0086B3; }
+
+.highlight .nc { color: #445588; font-weight: bold; }
+
+.highlight .no { color: #008080; }
+
+.highlight .nd { color: #3c5d5d; font-weight: bold; }
+
+.highlight .ni { color: #800080; }
+
+.highlight .ne { color: #990000; font-weight: bold; }
+
+.highlight .nf { color: #990000; font-weight: bold; }
+
+.highlight .nl { color: #990000; font-weight: bold; }
+
+.highlight .nn { color: #555555; }
+
+.highlight .nt { color: #000080; }
+
+.highlight .vc { color: #008080; }
+
+.highlight .vg { color: #008080; }
+
+.highlight .vi { color: #008080; }
+
+.highlight .nv { color: #008080; }
+
+.highlight .ow { color: #000000; font-weight: bold; }
+
+.highlight .o { color: #000000; font-weight: bold; }
+
+.highlight .w { color: #bbbbbb; }
+
+.highlight { background-color: #f8f8f8; }
diff --git a/_site/assets/javascript/anchor-js/.eslintrc b/_site/assets/javascript/anchor-js/.eslintrc
new file mode 100644
index 0000000..9f486e0
--- /dev/null
+++ b/_site/assets/javascript/anchor-js/.eslintrc
@@ -0,0 +1,77 @@
+{
+    "env": {
+        "browser": true
+    },
+
+    "rules": {
+        "array-bracket-spacing": [2, "never"],
+        "block-scoped-var": 2,
+        "brace-style": [2, "1tbs"],
+        "camelcase": 2,
+        "comma-spacing": [2, {"before": false, "after": true}],
+        "comma-style": [2, "last"],
+        "computed-property-spacing": [2, "never"],
+        "consistent-this": [2, "that"],
+        "curly": 2,
+        "eol-last": 2,
+        "eqeqeq": 2,
+        "guard-for-in": 2,
+        "handle-callback-err": 2,
+        "indent": [2, 2, {"VariableDeclarator": 2}],
+        "key-spacing": [2, {"beforeColon": false, "afterColon": true}],
+        "keyword-spacing": 2,
+        "no-caller": 2,
+        "new-cap": 2,
+        "new-parens": 2,
+        "no-array-constructor": 2,
+        "no-bitwise": 2,
+        "no-constant-condition": 2,
+        "no-else-return": 2,
+        "no-empty": 2,
+        "no-eq-null": 2,
+        "no-extra-parens": 0,
+        "no-extra-semi": 2,
+        "no-undef": 2,
+        "no-floating-decimal": 2,
+        "no-invalid-regexp": 2,
+        "no-irregular-whitespace": 2,
+        "no-lonely-if": 2,
+        "no-mixed-requires": 2,
+        "no-mixed-spaces-and-tabs": 2,
+        "no-multiple-empty-lines": 2,
+        "no-multi-spaces": 0,
+        "no-negated-in-lhs": 2,
+        "no-new-object": 2,
+        "no-path-concat": 2,
+        "no-process-env": 2,
+        "no-regex-spaces": 2,
+        "no-self-compare": 2,
+        "no-sequences": 2,
+        "no-spaced-func": 2,
+        "no-trailing-spaces": 2,
+        "no-underscore-dangle": 0,
+        "no-unused-vars": 0, // we should find a way to only exclude addAnchors and enable this
+        "no-use-before-define": [2, "nofunc"],
+        "no-void": 2,
+        "object-curly-spacing": [2, "always"],
+        "operator-assignment": [2, "always"],
+        "quotes": [2, "single"],
+        "quote-props": [2, "as-needed"],
+        "radix": 2,
+        "semi": [2, "always"],
+        "semi-spacing": 2,
+        "space-before-blocks": [2, "always"],
+        "spaced-comment": [2, "always"],
+        "space-in-parens": [2, "never"],
+        "space-unary-ops": [2, {"words": true, "nonwords": false}],
+        "strict": [2, "function"],
+        "valid-jsdoc": [2, {"requireReturn": false}],
+        "valid-typeof": 2,
+        "wrap-iife": [2, "outside"],
+        "yoda": [2, "never"]
+    },
+
+    "globals": {
+        "DocumentTouch": true,
+    }
+}
diff --git a/_site/assets/javascript/anchor-js/.gitattributes b/_site/assets/javascript/anchor-js/.gitattributes
new file mode 100644
index 0000000..72af4ec
--- /dev/null
+++ b/_site/assets/javascript/anchor-js/.gitattributes
@@ -0,0 +1,2 @@
+# Enforce Unix newlines
+*.js    text eol=lf
diff --git a/_site/assets/javascript/anchor-js/.npmignore b/_site/assets/javascript/anchor-js/.npmignore
new file mode 100644
index 0000000..536e87f
--- /dev/null
+++ b/_site/assets/javascript/anchor-js/.npmignore
@@ -0,0 +1,4 @@
+/_site/
+/node_modules/
+/npm-debug.log
+/_config.yml
diff --git a/_site/assets/javascript/anchor-js/.travis.yml b/_site/assets/javascript/anchor-js/.travis.yml
new file mode 100644
index 0000000..93f5f8b
--- /dev/null
+++ b/_site/assets/javascript/anchor-js/.travis.yml
@@ -0,0 +1,6 @@
+language: node_js
+node_js:
+    - "node"
+branches:
+  only:
+    - master
diff --git a/_site/assets/javascript/anchor-js/anchor.js b/_site/assets/javascript/anchor-js/anchor.js
new file mode 100644
index 0000000..800ccf1
--- /dev/null
+++ b/_site/assets/javascript/anchor-js/anchor.js
@@ -0,0 +1,334 @@
+/* eslint-env amd, node */
+
+// https://github.com/umdjs/umd/blob/master/templates/returnExports.js
+(function (root, factory) {
+  'use strict';
+
+  if (typeof define === 'function' && define.amd) {
+    // AMD. Register as an anonymous module.
+    define([], factory);
+  } else if (typeof module === 'object' && module.exports) {
+    // Node. Does not work with strict CommonJS, but
+    // only CommonJS-like environments that support module.exports,
+    // like Node.
+    module.exports = factory();
+  } else {
+    // Browser globals (root is window)
+    root.AnchorJS = factory();
+    root.anchors = new root.AnchorJS();
+  }
+}(this, function () {
+  'use strict';
+
+  function AnchorJS(options) {
+    this.options = options || {};
+    this.elements = [];
+
+    /**
+     * Assigns options to the internal options object, and provides defaults.
+     * @param {Object} opts - Options object
+     */
+    function _applyRemainingDefaultOptions(opts) {
+      opts.icon = opts.hasOwnProperty('icon') ? opts.icon : '\ue9cb'; // Accepts characters (and also URLs?), like  '#', '¶', '❡', or '§'.
+      opts.visible = opts.hasOwnProperty('visible') ? opts.visible : 'hover'; // Also accepts 'always' & 'touch'
+      opts.placement = opts.hasOwnProperty('placement') ? opts.placement : 'right'; // Also accepts 'left'
+      opts.class = opts.hasOwnProperty('class') ? opts.class : ''; // Accepts any class name.
+      // Using Math.floor here will ensure the value is Number-cast and an integer.
+      opts.truncate = opts.hasOwnProperty('truncate') ? Math.floor(opts.truncate) : 64; // Accepts any value that can be typecast to a number.
+    }
+
+    _applyRemainingDefaultOptions(this.options);
+
+    /**
+     * Checks to see if this device supports touch. Uses criteria pulled from Modernizr:
+     * https://github.com/Modernizr/Modernizr/blob/da22eb27631fc4957f67607fe6042e85c0a84656/feature-detects/touchevents.js#L40
+     * @return {Boolean} - true if the current device supports touch.
+     */
+    this.isTouchDevice = function() {
+      return !!(('ontouchstart' in window) || window.DocumentTouch && document instanceof DocumentTouch);
+    };
+
+    /**
+     * Add anchor links to page elements.
+     * @param  {String|Array|Nodelist} selector - A CSS selector for targeting the elements you wish to add anchor links
+     *                                            to. Also accepts an array or nodeList containing the relavant elements.
+     * @return {this}                           - The AnchorJS object
+     */
+    this.add = function(selector) {
+      var elements,
+          elsWithIds,
+          idList,
+          elementID,
+          i,
+          index,
+          count,
+          tidyText,
+          newTidyText,
+          readableID,
+          anchor,
+          visibleOptionToUse,
+          indexesToDrop = [];
+
+      // We reapply options here because somebody may have overwritten the default options object when setting options.
+      // For example, this overwrites all options but visible:
+      //
+      // anchors.options = { visible: 'always'; }
+      _applyRemainingDefaultOptions(this.options);
+
+      visibleOptionToUse = this.options.visible;
+      if (visibleOptionToUse === 'touch') {
+        visibleOptionToUse = this.isTouchDevice() ? 'always' : 'hover';
+      }
+
+      // Provide a sensible default selector, if none is given.
+      if (!selector) {
+        selector = 'h2, h3, h4, h5, h6';
+      }
+
+      elements = _getElements(selector);
+
+      if (elements.length === 0) {
+        return this;
+      }
+
+      _addBaselineStyles();
+
+      // We produce a list of existing IDs so we don't generate a duplicate.
+      elsWithIds = document.querySelectorAll('[id]');
+      idList = [].map.call(elsWithIds, function assign(el) {
+        return el.id;
+      });
+
+      for (i = 0; i < elements.length; i++) {
+        if (this.hasAnchorJSLink(elements[i])) {
+          indexesToDrop.push(i);
+          continue;
+        }
+
+        if (elements[i].hasAttribute('id')) {
+          elementID = elements[i].getAttribute('id');
+        } else if (elements[i].hasAttribute('data-anchor-id')) {
+          elementID = elements[i].getAttribute('data-anchor-id');
+        } else {
+          tidyText = this.urlify(elements[i].textContent);
+
+          // Compare our generated ID to existing IDs (and increment it if needed)
+          // before we add it to the page.
+          newTidyText = tidyText;
+          count = 0;
+          do {
+            if (index !== undefined) {
+              newTidyText = tidyText + '-' + count;
+            }
+
+            index = idList.indexOf(newTidyText);
+            count += 1;
+          } while (index !== -1);
+          index = undefined;
+          idList.push(newTidyText);
+
+          elements[i].setAttribute('id', newTidyText);
+          elementID = newTidyText;
+        }
+
+        readableID = elementID.replace(/-/g, ' ');
+
+        // The following code builds the following DOM structure in a more effiecient (albeit opaque) way.
+        // '<a class="anchorjs-link ' + this.options.class + '" href="#' + elementID + '" aria-label="Anchor link for: ' + readableID + '" data-anchorjs-icon="' + this.options.icon + '"></a>';
+        anchor = document.createElement('a');
+        anchor.className = 'anchorjs-link ' + this.options.class;
+        anchor.href = '#' + elementID;
+        anchor.setAttribute('aria-label', 'Anchor link for: ' + readableID);
+        anchor.setAttribute('data-anchorjs-icon', this.options.icon);
+
+        if (visibleOptionToUse === 'always') {
+          anchor.style.opacity = '1';
+        }
+
+        if (this.options.icon === '\ue9cb') {
+          anchor.style.font = '1em/1 anchorjs-icons';
+
+          // We set lineHeight = 1 here because the `anchorjs-icons` font family could otherwise affect the
+          // height of the heading. This isn't the case for icons with `placement: left`, so we restore
+          // line-height: inherit in that case, ensuring they remain positioned correctly. For more info,
+          // see https://github.com/bryanbraun/anchorjs/issues/39.
+          if (this.options.placement === 'left') {
+            anchor.style.lineHeight = 'inherit';
+          }
+        }
+
+        if (this.options.placement === 'left') {
+          anchor.style.position = 'absolute';
+          anchor.style.marginLeft = '-1em';
+          anchor.style.paddingRight = '0.5em';
+          elements[i].insertBefore(anchor, elements[i].firstChild);
+        } else { // if the option provided is `right` (or anything else).
+          anchor.style.paddingLeft = '0.375em';
+          elements[i].appendChild(anchor);
+        }
+      }
+
+      for (i = 0; i < indexesToDrop.length; i++) {
+        elements.splice(indexesToDrop[i] - i, 1);
+      }
+      this.elements = this.elements.concat(elements);
+
+      return this;
+    };
+
+    /**
+     * Removes all anchorjs-links from elements targed by the selector.
+     * @param  {String|Array|Nodelist} selector - A CSS selector string targeting elements with anchor links,
+     *                                            OR a nodeList / array containing the DOM elements.
+     * @return {this}                           - The AnchorJS object
+     */
+    this.remove = function(selector) {
+      var index,
+          domAnchor,
+          elements = _getElements(selector);
+
+      for (var i = 0; i < elements.length; i++) {
+        domAnchor = elements[i].querySelector('.anchorjs-link');
+        if (domAnchor) {
+          // Drop the element from our main list, if it's in there.
+          index = this.elements.indexOf(elements[i]);
+          if (index !== -1) {
+            this.elements.splice(index, 1);
+          }
+          // Remove the anchor from the DOM.
+          elements[i].removeChild(domAnchor);
+        }
+      }
+      return this;
+    };
+
+    /**
+     * Removes all anchorjs links. Mostly used for tests.
+     */
+    this.removeAll = function() {
+      this.remove(this.elements);
+    };
+
+    /**
+     * Urlify - Refine text so it makes a good ID.
+     *
+     * To do this, we remove apostrophes, replace nonsafe characters with hyphens,
+     * remove extra hyphens, truncate, trim hyphens, and make lowercase.
+     *
+     * @param  {String} text - Any text. Usually pulled from the webpage element we are linking to.
+     * @return {String}      - hyphen-delimited text for use in IDs and URLs.
+     */
+    this.urlify = function(text) {
+      // Regex for finding the nonsafe URL characters (many need escaping): & +$,:;=?@"#{}|^~[`%!'<>]./()*\
+      var nonsafeChars = /[& +$,:;=?@"#{}|^~[`%!'<>\]\.\/\(\)\*\\]/g,
+          urlText;
+
+      // The reason we include this _applyRemainingDefaultOptions is so urlify can be called independently,
+      // even after setting options. This can be useful for tests or other applications.
+      if (!this.options.truncate) {
+        _applyRemainingDefaultOptions(this.options);
+      }
+
+      // Note: we trim hyphens after truncating because truncating can cause dangling hyphens.
+      // Example string:                                  // " ⚡⚡ Don't forget: URL fragments should be i18n-friendly, hyphenated, short, and clean."
+      urlText = text.trim()                               // "⚡⚡ Don't forget: URL fragments should be i18n-friendly, hyphenated, short, and clean."
+                    .replace(/\'/gi, '')                  // "⚡⚡ Dont forget: URL fragments should be i18n-friendly, hyphenated, short, and clean."
+                    .replace(nonsafeChars, '-')           // "⚡⚡-Dont-forget--URL-fragments-should-be-i18n-friendly--hyphenated--short--and-clean-"
+                    .replace(/-{2,}/g, '-')               // "⚡⚡-Dont-forget-URL-fragments-should-be-i18n-friendly-hyphenated-short-and-clean-"
+                    .substring(0, this.options.truncate)  // "⚡⚡-Dont-forget-URL-fragments-should-be-i18n-friendly-hyphenated-"
+                    .replace(/^-+|-+$/gm, '')             // "⚡⚡-Dont-forget-URL-fragments-should-be-i18n-friendly-hyphenated"
+                    .toLowerCase();                       // "⚡⚡-dont-forget-url-fragments-should-be-i18n-friendly-hyphenated"
+
+      return urlText;
+    };
+
+    /**
+     * Determines if this element already has an AnchorJS link on it.
+     * Uses this technique: http://stackoverflow.com/a/5898748/1154642
+     * @param    {HTMLElemnt}  el - a DOM node
+     * @return   {Boolean}     true/false
+     */
+    this.hasAnchorJSLink = function(el) {
+      var hasLeftAnchor = el.firstChild && ((' ' + el.firstChild.className + ' ').indexOf(' anchorjs-link ') > -1),
+          hasRightAnchor = el.lastChild && ((' ' + el.lastChild.className + ' ').indexOf(' anchorjs-link ') > -1);
+
+      return hasLeftAnchor || hasRightAnchor || false;
+    };
+
+    /**
+     * Turns a selector, nodeList, or array of elements into an array of elements (so we can use array methods).
+     * It also throws errors on any other inputs. Used to handle inputs to .add and .remove.
+     * @param  {String|Array|Nodelist} input - A CSS selector string targeting elements with anchor links,
+     *                                         OR a nodeList / array containing the DOM elements.
+     * @return {Array} - An array containing the elements we want.
+     */
+    function _getElements(input) {
+      var elements;
+      if (typeof input === 'string' || input instanceof String) {
+        // See https://davidwalsh.name/nodelist-array for the technique transforming nodeList -> Array.
+        elements = [].slice.call(document.querySelectorAll(input));
+      // I checked the 'input instanceof NodeList' test in IE9 and modern browsers and it worked for me.
+      } else if (Array.isArray(input) || input instanceof NodeList) {
+        elements = [].slice.call(input);
+      } else {
+        throw new Error('The selector provided to AnchorJS was invalid.');
+      }
+      return elements;
+    }
+
+    /**
+     * _addBaselineStyles
+     * Adds baseline styles to the page, used by all AnchorJS links irregardless of configuration.
+     */
+    function _addBaselineStyles() {
+      // We don't want to add global baseline styles if they've been added before.
+      if (document.head.querySelector('style.anchorjs') !== null) {
+        return;
+      }
+
+      var style = document.createElement('style'),
+          linkRule =
+          ' .anchorjs-link {'                       +
+          '   opacity: 0;'                          +
+          '   text-decoration: none;'               +
+          '   -webkit-font-smoothing: antialiased;' +
+          '   -moz-osx-font-smoothing: grayscale;'  +
+          ' }',
+          hoverRule =
+          ' *:hover > .anchorjs-link,'              +
+          ' .anchorjs-link:focus  {'                +
+          '   opacity: 1;'                          +
+          ' }',
+          anchorjsLinkFontFace =
+          ' @font-face {'                           +
+          '   font-family: "anchorjs-icons";'       + // Icon from icomoon; 10px wide & 10px tall; 2 empty below & 4 above
+          '   src: url(data:n/a;base64,AAEAAAALAIAAAwAwT1MvMg8yG2cAAAE4AAAAYGNtYXDp3gC3AAABpAAAAExnYXNwAAAAEAAAA9wAAAAIZ2x5ZlQCcfwAAAH4AAABCGhlYWQHFvHyAAAAvAAAADZoaGVhBnACFwAAAPQAAAAkaG10eASAADEAAAGYAAAADGxvY2EACACEAAAB8AAAAAhtYXhwAAYAVwAAARgAAAAgbmFtZQGOH9cAAAMAAAAAunBvc3QAAwAAAAADvAAAACAAAQAAAAEAAHzE2p9fDzz1AAkEAAAAAADRecUWAAAAANQA6R8AAAAAAoACwAAAAAgAAgAAAAAAAAABAAADwP/AAAACgAAA/9MCrQABAAAAAAAAAAAAAAAAAAAAAwABAAAAAwBVAAIAAAAAAAIAAAAAAAAAAAAAAAAAAAAAAAMCQAGQAAUAAAKZAswAAACPApkCzAAAAesAMwEJAAAAAAAAAAAAAAAAAAAAARAAAAAAAAAAAAAAAAAAAAAAQAAg//0DwP/AAEADwABAAAAAAQAAAAAAAAAAAAAAIAAAAAAAAAIAAAACgAAxAAAAAwAAAAMAAAAcAAEAAwAAABwAAwABAAAAHAAEADAAAAAIAAgAAgAAACDpy//9//8AAAAg6cv//f///+EWNwADAAEAAAAAAAAAAAAAAAAACACEAAEAAAAAAAAAAAAAAAAxAAACAAQARAKAAsAAKwBUAAABIiYnJjQ3NzY2MzIWFxYUBwcGIicmNDc3NjQnJiYjIgYHBwYUFxYUBwYGIwciJicmNDc3NjIXFhQHBwYUFxYWMzI2Nzc2NCcmNDc2MhcWFAcHBgYjARQGDAUtLXoWOR8fORYtLTgKGwoKCjgaGg0gEhIgDXoaGgkJBQwHdR85Fi0tOAobCgoKOBoaDSASEiANehoaCQkKGwotLXoWOR8BMwUFLYEuehYXFxYugC44CQkKGwo4GkoaDQ0NDXoaShoKGwoFBe8XFi6ALjgJCQobCjgaShoNDQ0NehpKGgobCgoKLYEuehYXAAAADACWAAEAAAAAAAEACAAAAAEAAAAAAAIAAwAIAAEAAAAAAAMACAAAAAEAAAAAAAQACAAAAAEAAAAAAAUAAQALAAEAAAAAAAYACAAAAAMAAQQJAAEAEAAMAAMAAQQJAAIABgAcAAMAAQQJAAMAEAAMAAMAAQQJAAQAEAAMAAMAAQQJAAUAAgAiAAMAAQQJAAYAEAAMYW5jaG9yanM0MDBAAGEAbgBjAGgAbwByAGoAcwA0ADAAMABAAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAH//wAP) format("truetype");' +
+          ' }',
+          pseudoElContent =
+          ' [data-anchorjs-icon]::after {'          +
+          '   content: attr(data-anchorjs-icon);'   +
+          ' }',
+          firstStyleEl;
+
+      style.className = 'anchorjs';
+      style.appendChild(document.createTextNode('')); // Necessary for Webkit.
+
+      // We place it in the head with the other style tags, if possible, so as to
+      // not look out of place. We insert before the others so these styles can be
+      // overridden if necessary.
+      firstStyleEl = document.head.querySelector('[rel="stylesheet"], style');
+      if (firstStyleEl === undefined) {
+        document.head.appendChild(style);
+      } else {
+        document.head.insertBefore(style, firstStyleEl);
+      }
+
+      style.sheet.insertRule(linkRule, style.sheet.cssRules.length);
+      style.sheet.insertRule(hoverRule, style.sheet.cssRules.length);
+      style.sheet.insertRule(pseudoElContent, style.sheet.cssRules.length);
+      style.sheet.insertRule(anchorjsLinkFontFace, style.sheet.cssRules.length);
+    }
+  }
+
+  return AnchorJS;
+}));
diff --git a/_site/assets/javascript/anchor-js/anchor.min.js b/_site/assets/javascript/anchor-js/anchor.min.js
new file mode 100644
index 0000000..35575f1
--- /dev/null
+++ b/_site/assets/javascript/anchor-js/anchor.min.js
@@ -0,0 +1,6 @@
+/**
+ * AnchorJS - v4.0.0 - 2017-06-02
+ * https://github.com/bryanbraun/anchorjs
+ * Copyright (c) 2017 Bryan Braun; Licensed MIT
+ */
+!function(A,e){"use strict";"function"==typeof define&&define.amd?define([],e):"object"==typeof module&&module.exports?module.exports=e():(A.AnchorJS=e(),A.anchors=new A.AnchorJS)}(this,function(){"use strict";function A(A){function e(A){A.icon=A.hasOwnProperty("icon")?A.icon:"",A.visible=A.hasOwnProperty("visible")?A.visible:"hover",A.placement=A.hasOwnProperty("placement")?A.placement:"right",A.class=A.hasOwnProperty("class")?A.class:"",A.truncate=A.hasOwnProperty("truncate")?Math.floor(A.truncate):64}function t(A){var e;if("string"==typeof A||A instanceof String)e=[].slice.call(document.querySelectorAll(A));else{if(!(Array.isArray(A)||A instanceof NodeList))throw new Error("The selector provided to AnchorJS was invalid.");e=[].slice.call(A)}return e}function n(){if(null===document.head.querySelector("style.anchorjs")){var A,e=document.createElement("style");e.className="anchorjs",e.appendChild(document.createTextNode("")),void 0===(A=document.head.querySelector('[rel="stylesheet"], style'))?document.head.appendChild(e):document.head.insertBefore(e,A),e.sheet.insertRule(" .anchorjs-link {   opacity: 0;   text-decoration: none;   -webkit-font-smoothing: antialiased;   -moz-osx-font-smoothing: grayscale; }",e.sheet.cssRules.length),e.sheet.insertRule(" *:hover > .anchorjs-link, .anchorjs-link:focus  {   opacity: 1; }",e.sheet.cssRules.length),e.sheet.insertRule(" [data-anchorjs-icon]::after {   content: attr(data-anchorjs-icon); }",e.sheet.cssRules.length),e.sheet.insertRule(' @font-face {   font-family: "anchorjs-icons";   src: url(data:n/a;base64,AAEAAAALAIAAAwAwT1MvMg8yG2cAAAE4AAAAYGNtYXDp3gC3AAABpAAAAExnYXNwAAAAEAAAA9wAAAAIZ2x5ZlQCcfwAAAH4AAABCGhlYWQHFvHyAAAAvAAAADZoaGVhBnACFwAAAPQAAAAkaG10eASAADEAAAGYAAAADGxvY2EACACEAAAB8AAAAAhtYXhwAAYAVwAAARgAAAAgbmFtZQGOH9cAAAMAAAAAunBvc3QAAwAAAAADvAAAACAAAQAAAAEAAHzE2p9fDzz1AAkEAAAAAADRecUWAAAAANQA6R8AAAAAAoACwAAAAAgAAgAAAAAAAAABAAADwP/AAAACgAAA/9MCrQABAAAAAAAAAAAAAAAAAAAAAwABAAAAAwBVAAIAAAAAAAIAAAAAAAAAAAAAAAAAAAAAAAMCQAGQAAUAAAKZAswAAACPApkCzAAAAesAMwEJAAAAAAAAAAAAAAAAAAAAARAAAAAAAAAAAAAAAAAAAAAAQAAg//0DwP/AAEADwABAAAAAAQAAAAAAAAAAAAAAIAAAAAAAAAIAAAACgAAxAAAAAwAAAAMAAAAcAAEAAwAAABwAAwABAAAAHAAEADAAAAAIAAgAAgAAACDpy//9//8AAAAg6cv//f///+EWNwADAAEAAAAAAAAAAAAAAAAACACEAAEAAAAAAAAAAAAAAAAxAAACAAQARAKAAsAAKwBUAAABIiYnJjQ3NzY2MzIWFxYUBwcGIicmNDc3NjQnJiYjIgYHBwYUFxYUBwYGIwciJicmNDc3NjIXFhQHBwYUFxYWMzI2Nzc2NCcmNDc2MhcWFAcHBgYjARQGDAUtLXoWOR8fORYtLTgKGwoKCjgaGg0gEhIgDXoaGgkJBQwHdR85Fi0tOAobCgoKOBoaDSASEiANehoaCQkKGwotLXoWOR8BMwUFLYEuehYXFxYugC44CQkKGwo4GkoaDQ0NDXoaShoKGwoFBe8XFi6ALjgJCQobCjgaShoNDQ0NehpKGgobCgoKLYEuehYXAAAADACWAAEAAAAAAAEACAAAAAEAAAAAAAIAAwAIAAEAAAAAAAMACAAAAAEAAAAAAAQACAAAAAEAAAAAAAUAAQALAAEAAAAAAAYACAAAAAMAAQQJAAEAEAAMAAMAAQQJAAIABgAcAAMAAQQJAAMAEAAMAAMAAQQJAAQAEAAMAAMAAQQJAAUAAgAiAAMAAQQJAAYAEAAMYW5jaG9yanM0MDBAAGEAbgBjAGgAbwByAGoAcwA0ADAAMABAAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAH//wAP) format("truetype"); }',e.sheet.cssRules.length)}}this.options=A||{},this.elements=[],e(this.options),this.isTouchDevice=function(){return!!("ontouchstart"in window||window.DocumentTouch&&document instanceof DocumentTouch)},this.add=function(A){var i,o,s,c,r,a,h,l,u,d,f,g,p=[];if(e(this.options),"touch"===(g=this.options.visible)&&(g=this.isTouchDevice()?"always":"hover"),A||(A="h2, h3, h4, h5, h6"),0===(i=t(A)).length)return this;for(n(),o=document.querySelectorAll("[id]"),s=[].map.call(o,function(A){return A.id}),r=0;r<i.length;r++)if(this.hasAnchorJSLink(i[r]))p.push(r);else{if(i[r].hasAttribute("id"))c=i[r].getAttribute("id");else if(i[r].hasAttribute("data-anchor-id"))c=i[r].getAttribute("data-anchor-id");else{u=l=this.urlify(i[r].textContent),h=0;do{void 0!==a&&(u=l+"-"+h),a=s.indexOf(u),h+=1}while(-1!==a);a=void 0,s.push(u),i[r].setAttribute("id",u),c=u}d=c.replace(/-/g," "),(f=document.createElement("a")).className="anchorjs-link "+this.options.class,f.href="#"+c,f.setAttribute("aria-label","Anchor link for: "+d),f.setAttribute("data-anchorjs-icon",this.options.icon),"always"===g&&(f.style.opacity="1"),""===this.options.icon&&(f.style.font="1em/1 anchorjs-icons","left"===this.options.placement&&(f.style.lineHeight="inherit")),"left"===this.options.placement?(f.style.position="absolute",f.style.marginLeft="-1em",f.style.paddingRight="0.5em",i[r].insertBefore(f,i[r].firstChild)):(f.style.paddingLeft="0.375em",i[r].appendChild(f))}for(r=0;r<p.length;r++)i.splice(p[r]-r,1);return this.elements=this.elements.concat(i),this},this.remove=function(A){for(var e,n,i=t(A),o=0;o<i.length;o++)(n=i[o].querySelector(".anchorjs-link"))&&(-1!==(e=this.elements.indexOf(i[o]))&&this.elements.splice(e,1),i[o].removeChild(n));return this},this.removeAll=function(){this.remove(this.elements)},this.urlify=function(A){var t=/[& +$,:;=?@"#{}|^~[`%!'<>\]\.\/\(\)\*\\]/g;return this.options.truncate||e(this.options),A.trim().replace(/\'/gi,"").replace(t,"-").replace(/-{2,}/g,"-").substring(0,this.options.truncate).replace(/^-+|-+$/gm,"").toLowerCase()},this.hasAnchorJSLink=function(A){var e=A.firstChild&&(" "+A.firstChild.className+" ").indexOf(" anchorjs-link ")>-1,t=A.lastChild&&(" "+A.lastChild.className+" ").indexOf(" anchorjs-link ")>-1;return e||t||!1}}return A});
\ No newline at end of file
diff --git a/_site/assets/javascript/anchor-js/banner.js b/_site/assets/javascript/anchor-js/banner.js
new file mode 100644
index 0000000..6bd551e
--- /dev/null
+++ b/_site/assets/javascript/anchor-js/banner.js
@@ -0,0 +1,17 @@
+const fs = require('fs');
+const pkg = require('./package.json');
+const filename = 'anchor.min.js';
+const script = fs.readFileSync(filename);
+const padStart = str => ('0' + str).slice(-2)
+const dateObj = new Date;
+const date = `${dateObj.getFullYear()}-${padStart(dateObj.getMonth() + 1)}-${padStart(dateObj.getDate())}`;
+const banner = `/**
+ * AnchorJS - v${pkg.version} - ${date}
+ * ${pkg.homepage}
+ * Copyright (c) ${dateObj.getFullYear()} Bryan Braun; Licensed ${pkg.license}
+ */
+`;
+
+if (script.slice(0, 3) != '/**') {
+  fs.writeFileSync(filename, banner + script);
+}
diff --git a/_site/assets/javascript/anchor-js/docs/anchor.js b/_site/assets/javascript/anchor-js/docs/anchor.js
new file mode 100644
index 0000000..800ccf1
--- /dev/null
+++ b/_site/assets/javascript/anchor-js/docs/anchor.js
@@ -0,0 +1,334 @@
+/* eslint-env amd, node */
+
+// https://github.com/umdjs/umd/blob/master/templates/returnExports.js
+(function (root, factory) {
+  'use strict';
+
+  if (typeof define === 'function' && define.amd) {
+    // AMD. Register as an anonymous module.
+    define([], factory);
+  } else if (typeof module === 'object' && module.exports) {
+    // Node. Does not work with strict CommonJS, but
+    // only CommonJS-like environments that support module.exports,
+    // like Node.
+    module.exports = factory();
+  } else {
+    // Browser globals (root is window)
+    root.AnchorJS = factory();
+    root.anchors = new root.AnchorJS();
+  }
+}(this, function () {
+  'use strict';
+
+  function AnchorJS(options) {
+    this.options = options || {};
+    this.elements = [];
+
+    /**
+     * Assigns options to the internal options object, and provides defaults.
+     * @param {Object} opts - Options object
+     */
+    function _applyRemainingDefaultOptions(opts) {
+      opts.icon = opts.hasOwnProperty('icon') ? opts.icon : '\ue9cb'; // Accepts characters (and also URLs?), like  '#', '¶', '❡', or '§'.
+      opts.visible = opts.hasOwnProperty('visible') ? opts.visible : 'hover'; // Also accepts 'always' & 'touch'
+      opts.placement = opts.hasOwnProperty('placement') ? opts.placement : 'right'; // Also accepts 'left'
+      opts.class = opts.hasOwnProperty('class') ? opts.class : ''; // Accepts any class name.
+      // Using Math.floor here will ensure the value is Number-cast and an integer.
+      opts.truncate = opts.hasOwnProperty('truncate') ? Math.floor(opts.truncate) : 64; // Accepts any value that can be typecast to a number.
+    }
+
+    _applyRemainingDefaultOptions(this.options);
+
+    /**
+     * Checks to see if this device supports touch. Uses criteria pulled from Modernizr:
+     * https://github.com/Modernizr/Modernizr/blob/da22eb27631fc4957f67607fe6042e85c0a84656/feature-detects/touchevents.js#L40
+     * @return {Boolean} - true if the current device supports touch.
+     */
+    this.isTouchDevice = function() {
+      return !!(('ontouchstart' in window) || window.DocumentTouch && document instanceof DocumentTouch);
+    };
+
+    /**
+     * Add anchor links to page elements.
+     * @param  {String|Array|Nodelist} selector - A CSS selector for targeting the elements you wish to add anchor links
+     *                                            to. Also accepts an array or nodeList containing the relavant elements.
+     * @return {this}                           - The AnchorJS object
+     */
+    this.add = function(selector) {
+      var elements,
+          elsWithIds,
+          idList,
+          elementID,
+          i,
+          index,
+          count,
+          tidyText,
+          newTidyText,
+          readableID,
+          anchor,
+          visibleOptionToUse,
+          indexesToDrop = [];
+
+      // We reapply options here because somebody may have overwritten the default options object when setting options.
+      // For example, this overwrites all options but visible:
+      //
+      // anchors.options = { visible: 'always'; }
+      _applyRemainingDefaultOptions(this.options);
+
+      visibleOptionToUse = this.options.visible;
+      if (visibleOptionToUse === 'touch') {
+        visibleOptionToUse = this.isTouchDevice() ? 'always' : 'hover';
+      }
+
+      // Provide a sensible default selector, if none is given.
+      if (!selector) {
+        selector = 'h2, h3, h4, h5, h6';
+      }
+
+      elements = _getElements(selector);
+
+      if (elements.length === 0) {
+        return this;
+      }
+
+      _addBaselineStyles();
+
+      // We produce a list of existing IDs so we don't generate a duplicate.
+      elsWithIds = document.querySelectorAll('[id]');
+      idList = [].map.call(elsWithIds, function assign(el) {
+        return el.id;
+      });
+
+      for (i = 0; i < elements.length; i++) {
+        if (this.hasAnchorJSLink(elements[i])) {
+          indexesToDrop.push(i);
+          continue;
+        }
+
+        if (elements[i].hasAttribute('id')) {
+          elementID = elements[i].getAttribute('id');
+        } else if (elements[i].hasAttribute('data-anchor-id')) {
+          elementID = elements[i].getAttribute('data-anchor-id');
+        } else {
+          tidyText = this.urlify(elements[i].textContent);
+
+          // Compare our generated ID to existing IDs (and increment it if needed)
+          // before we add it to the page.
+          newTidyText = tidyText;
+          count = 0;
+          do {
+            if (index !== undefined) {
+              newTidyText = tidyText + '-' + count;
+            }
+
+            index = idList.indexOf(newTidyText);
+            count += 1;
+          } while (index !== -1);
+          index = undefined;
+          idList.push(newTidyText);
+
+          elements[i].setAttribute('id', newTidyText);
+          elementID = newTidyText;
+        }
+
+        readableID = elementID.replace(/-/g, ' ');
+
+        // The following code builds the following DOM structure in a more effiecient (albeit opaque) way.
+        // '<a class="anchorjs-link ' + this.options.class + '" href="#' + elementID + '" aria-label="Anchor link for: ' + readableID + '" data-anchorjs-icon="' + this.options.icon + '"></a>';
+        anchor = document.createElement('a');
+        anchor.className = 'anchorjs-link ' + this.options.class;
+        anchor.href = '#' + elementID;
+        anchor.setAttribute('aria-label', 'Anchor link for: ' + readableID);
+        anchor.setAttribute('data-anchorjs-icon', this.options.icon);
+
+        if (visibleOptionToUse === 'always') {
+          anchor.style.opacity = '1';
+        }
+
+        if (this.options.icon === '\ue9cb') {
+          anchor.style.font = '1em/1 anchorjs-icons';
+
+          // We set lineHeight = 1 here because the `anchorjs-icons` font family could otherwise affect the
+          // height of the heading. This isn't the case for icons with `placement: left`, so we restore
+          // line-height: inherit in that case, ensuring they remain positioned correctly. For more info,
+          // see https://github.com/bryanbraun/anchorjs/issues/39.
+          if (this.options.placement === 'left') {
+            anchor.style.lineHeight = 'inherit';
+          }
+        }
+
+        if (this.options.placement === 'left') {
+          anchor.style.position = 'absolute';
+          anchor.style.marginLeft = '-1em';
+          anchor.style.paddingRight = '0.5em';
+          elements[i].insertBefore(anchor, elements[i].firstChild);
+        } else { // if the option provided is `right` (or anything else).
+          anchor.style.paddingLeft = '0.375em';
+          elements[i].appendChild(anchor);
+        }
+      }
+
+      for (i = 0; i < indexesToDrop.length; i++) {
+        elements.splice(indexesToDrop[i] - i, 1);
+      }
+      this.elements = this.elements.concat(elements);
+
+      return this;
+    };
+
+    /**
+     * Removes all anchorjs-links from elements targed by the selector.
+     * @param  {String|Array|Nodelist} selector - A CSS selector string targeting elements with anchor links,
+     *                                            OR a nodeList / array containing the DOM elements.
+     * @return {this}                           - The AnchorJS object
+     */
+    this.remove = function(selector) {
+      var index,
+          domAnchor,
+          elements = _getElements(selector);
+
+      for (var i = 0; i < elements.length; i++) {
+        domAnchor = elements[i].querySelector('.anchorjs-link');
+        if (domAnchor) {
+          // Drop the element from our main list, if it's in there.
+          index = this.elements.indexOf(elements[i]);
+          if (index !== -1) {
+            this.elements.splice(index, 1);
+          }
+          // Remove the anchor from the DOM.
+          elements[i].removeChild(domAnchor);
+        }
+      }
+      return this;
+    };
+
+    /**
+     * Removes all anchorjs links. Mostly used for tests.
+     */
+    this.removeAll = function() {
+      this.remove(this.elements);
+    };
+
+    /**
+     * Urlify - Refine text so it makes a good ID.
+     *
+     * To do this, we remove apostrophes, replace nonsafe characters with hyphens,
+     * remove extra hyphens, truncate, trim hyphens, and make lowercase.
+     *
+     * @param  {String} text - Any text. Usually pulled from the webpage element we are linking to.
+     * @return {String}      - hyphen-delimited text for use in IDs and URLs.
+     */
+    this.urlify = function(text) {
+      // Regex for finding the nonsafe URL characters (many need escaping): & +$,:;=?@"#{}|^~[`%!'<>]./()*\
+      var nonsafeChars = /[& +$,:;=?@"#{}|^~[`%!'<>\]\.\/\(\)\*\\]/g,
+          urlText;
+
+      // The reason we include this _applyRemainingDefaultOptions is so urlify can be called independently,
+      // even after setting options. This can be useful for tests or other applications.
+      if (!this.options.truncate) {
+        _applyRemainingDefaultOptions(this.options);
+      }
+
+      // Note: we trim hyphens after truncating because truncating can cause dangling hyphens.
+      // Example string:                                  // " ⚡⚡ Don't forget: URL fragments should be i18n-friendly, hyphenated, short, and clean."
+      urlText = text.trim()                               // "⚡⚡ Don't forget: URL fragments should be i18n-friendly, hyphenated, short, and clean."
+                    .replace(/\'/gi, '')                  // "⚡⚡ Dont forget: URL fragments should be i18n-friendly, hyphenated, short, and clean."
+                    .replace(nonsafeChars, '-')           // "⚡⚡-Dont-forget--URL-fragments-should-be-i18n-friendly--hyphenated--short--and-clean-"
+                    .replace(/-{2,}/g, '-')               // "⚡⚡-Dont-forget-URL-fragments-should-be-i18n-friendly-hyphenated-short-and-clean-"
+                    .substring(0, this.options.truncate)  // "⚡⚡-Dont-forget-URL-fragments-should-be-i18n-friendly-hyphenated-"
+                    .replace(/^-+|-+$/gm, '')             // "⚡⚡-Dont-forget-URL-fragments-should-be-i18n-friendly-hyphenated"
+                    .toLowerCase();                       // "⚡⚡-dont-forget-url-fragments-should-be-i18n-friendly-hyphenated"
+
+      return urlText;
+    };
+
+    /**
+     * Determines if this element already has an AnchorJS link on it.
+     * Uses this technique: http://stackoverflow.com/a/5898748/1154642
+     * @param    {HTMLElemnt}  el - a DOM node
+     * @return   {Boolean}     true/false
+     */
+    this.hasAnchorJSLink = function(el) {
+      var hasLeftAnchor = el.firstChild && ((' ' + el.firstChild.className + ' ').indexOf(' anchorjs-link ') > -1),
+          hasRightAnchor = el.lastChild && ((' ' + el.lastChild.className + ' ').indexOf(' anchorjs-link ') > -1);
+
+      return hasLeftAnchor || hasRightAnchor || false;
+    };
+
+    /**
+     * Turns a selector, nodeList, or array of elements into an array of elements (so we can use array methods).
+     * It also throws errors on any other inputs. Used to handle inputs to .add and .remove.
+     * @param  {String|Array|Nodelist} input - A CSS selector string targeting elements with anchor links,
+     *                                         OR a nodeList / array containing the DOM elements.
+     * @return {Array} - An array containing the elements we want.
+     */
+    function _getElements(input) {
+      var elements;
+      if (typeof input === 'string' || input instanceof String) {
+        // See https://davidwalsh.name/nodelist-array for the technique transforming nodeList -> Array.
+        elements = [].slice.call(document.querySelectorAll(input));
+      // I checked the 'input instanceof NodeList' test in IE9 and modern browsers and it worked for me.
+      } else if (Array.isArray(input) || input instanceof NodeList) {
+        elements = [].slice.call(input);
+      } else {
+        throw new Error('The selector provided to AnchorJS was invalid.');
+      }
+      return elements;
+    }
+
+    /**
+     * _addBaselineStyles
+     * Adds baseline styles to the page, used by all AnchorJS links irregardless of configuration.
+     */
+    function _addBaselineStyles() {
+      // We don't want to add global baseline styles if they've been added before.
+      if (document.head.querySelector('style.anchorjs') !== null) {
+        return;
+      }
+
+      var style = document.createElement('style'),
+          linkRule =
+          ' .anchorjs-link {'                       +
+          '   opacity: 0;'                          +
+          '   text-decoration: none;'               +
+          '   -webkit-font-smoothing: antialiased;' +
+          '   -moz-osx-font-smoothing: grayscale;'  +
+          ' }',
+          hoverRule =
+          ' *:hover > .anchorjs-link,'              +
+          ' .anchorjs-link:focus  {'                +
+          '   opacity: 1;'                          +
+          ' }',
+          anchorjsLinkFontFace =
+          ' @font-face {'                           +
+          '   font-family: "anchorjs-icons";'       + // Icon from icomoon; 10px wide & 10px tall; 2 empty below & 4 above
+          '   src: url(data:n/a;base64,AAEAAAALAIAAAwAwT1MvMg8yG2cAAAE4AAAAYGNtYXDp3gC3AAABpAAAAExnYXNwAAAAEAAAA9wAAAAIZ2x5ZlQCcfwAAAH4AAABCGhlYWQHFvHyAAAAvAAAADZoaGVhBnACFwAAAPQAAAAkaG10eASAADEAAAGYAAAADGxvY2EACACEAAAB8AAAAAhtYXhwAAYAVwAAARgAAAAgbmFtZQGOH9cAAAMAAAAAunBvc3QAAwAAAAADvAAAACAAAQAAAAEAAHzE2p9fDzz1AAkEAAAAAADRecUWAAAAANQA6R8AAAAAAoACwAAAAAgAAgAAAAAAAAABAAADwP/AAAACgAAA/9MCrQABAAAAAAAAAAAAAAAAAAAAAwABAAAAAwBVAAIAAAAAAAIAAAAAAAAAAAAAAAAAAAAAAAMCQAGQAAUAAAKZAswAAACPApkCzAAAAesAMwEJAAAAAAAAAAAAAAAAAAAAARAAAAAAAAAAAAAAAAAAAAAAQAAg//0DwP/AAEADwABAAAAAAQAAAAAAAAAAAAAAIAAAAAAAAAIAAAACgAAxAAAAAwAAAAMAAAAcAAEAAwAAABwAAwABAAAAHAAEADAAAAAIAAgAAgAAACDpy//9//8AAAAg6cv//f///+EWNwADAAEAAAAAAAAAAAAAAAAACACEAAEAAAAAAAAAAAAAAAAxAAACAAQARAKAAsAAKwBUAAABIiYnJjQ3NzY2MzIWFxYUBwcGIicmNDc3NjQnJiYjIgYHBwYUFxYUBwYGIwciJicmNDc3NjIXFhQHBwYUFxYWMzI2Nzc2NCcmNDc2MhcWFAcHBgYjARQGDAUtLXoWOR8fORYtLTgKGwoKCjgaGg0gEhIgDXoaGgkJBQwHdR85Fi0tOAobCgoKOBoaDSASEiANehoaCQkKGwotLXoWOR8BMwUFLYEuehYXFxYugC44CQkKGwo4GkoaDQ0NDXoaShoKGwoFBe8XFi6ALjgJCQobCjgaShoNDQ0NehpKGgobCgoKLYEuehYXAAAADACWAAEAAAAAAAEACAAAAAEAAAAAAAIAAwAIAAEAAAAAAAMACAAAAAEAAAAAAAQACAAAAAEAAAAAAAUAAQALAAEAAAAAAAYACAAAAAMAAQQJAAEAEAAMAAMAAQQJAAIABgAcAAMAAQQJAAMAEAAMAAMAAQQJAAQAEAAMAAMAAQQJAAUAAgAiAAMAAQQJAAYAEAAMYW5jaG9yanM0MDBAAGEAbgBjAGgAbwByAGoAcwA0ADAAMABAAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAH//wAP) format("truetype");' +
+          ' }',
+          pseudoElContent =
+          ' [data-anchorjs-icon]::after {'          +
+          '   content: attr(data-anchorjs-icon);'   +
+          ' }',
+          firstStyleEl;
+
+      style.className = 'anchorjs';
+      style.appendChild(document.createTextNode('')); // Necessary for Webkit.
+
+      // We place it in the head with the other style tags, if possible, so as to
+      // not look out of place. We insert before the others so these styles can be
+      // overridden if necessary.
+      firstStyleEl = document.head.querySelector('[rel="stylesheet"], style');
+      if (firstStyleEl === undefined) {
+        document.head.appendChild(style);
+      } else {
+        document.head.insertBefore(style, firstStyleEl);
+      }
+
+      style.sheet.insertRule(linkRule, style.sheet.cssRules.length);
+      style.sheet.insertRule(hoverRule, style.sheet.cssRules.length);
+      style.sheet.insertRule(pseudoElContent, style.sheet.cssRules.length);
+      style.sheet.insertRule(anchorjsLinkFontFace, style.sheet.cssRules.length);
+    }
+  }
+
+  return AnchorJS;
+}));
diff --git a/_site/assets/javascript/anchor-js/docs/favicon.ico b/_site/assets/javascript/anchor-js/docs/favicon.ico
new file mode 100644
index 0000000..2a6c767
--- /dev/null
+++ b/_site/assets/javascript/anchor-js/docs/favicon.ico
Binary files differ
diff --git a/_site/assets/javascript/anchor-js/docs/fonts/anchorjs-extras.eot b/_site/assets/javascript/anchor-js/docs/fonts/anchorjs-extras.eot
new file mode 100755
index 0000000..350ea35
--- /dev/null
+++ b/_site/assets/javascript/anchor-js/docs/fonts/anchorjs-extras.eot
Binary files differ
diff --git a/_site/assets/javascript/anchor-js/docs/fonts/anchorjs-extras.svg b/_site/assets/javascript/anchor-js/docs/fonts/anchorjs-extras.svg
new file mode 100755
index 0000000..5e14922
--- /dev/null
+++ b/_site/assets/javascript/anchor-js/docs/fonts/anchorjs-extras.svg
@@ -0,0 +1,11 @@
+<?xml version="1.0" standalone="no"?>
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd" >
+<svg xmlns="http://www.w3.org/2000/svg">
+<metadata>Generated by IcoMoon</metadata>
+<defs>
+<font id="anchorjs-extras" horiz-adv-x="1024">
+<font-face units-per-em="1024" ascent="960" descent="-64" />
+<missing-glyph horiz-adv-x="1024" />
+<glyph unicode="&#x20;" d="" horiz-adv-x="512" />
+<glyph unicode="&#xf0c1;" d="M832 182.858q0 22.857-16 38.857l-118.857 118.857q-16 16-38.857 16-24 0-41.143-18.286 1.714-1.714 10.857-10.571t12.286-12.286 8.571-10.857 7.429-14.571 2-15.714q0-22.857-16-38.857t-38.857-16q-8.571 0-15.714 2t-14.571 7.429-10.857 8.571-12.286 12.286-10.571 10.857q-18.857-17.714-18.857-41.714 0-22.857 16-38.857l117.714-118.286q15.429-15.429 38.857-15.429 22.857 0 38.857 14.857l84 83.429q16 16 16 38.286zM430.286 585.715q0 22.857-16 38.857l-117.714 118.286q-16 16-38.857 16-22.286 0-38.857-15.429l-84-83.429q-16-16-16-38.286 0-22.857 16-38.857l118.857-118.857q15.429-15.429 38.857-15.429 24 0 41.143 17.714-1.714 1.714-10.857 10.571t-12.286 12.286-8.571 10.857-7.429 14.571-2 15.714q0 22.857 16 38.857t38.857 16q8.571 0 15.714-2t14.571-7.429 10.857-8.571 12.286-12.286 10.571-10.857q18.857 17.714 18.857 41.714zM941.714 182.858q0-68.571-48.571-116l-84-83.429q-47.429-47.429-116-47.429-69.143 0-116.571 48.571l-117.714 118.286q-47.429 47.429-47.429 116 0 70.286 50.286 119.429l-50.286 50.286q-49.143-50.286-118.857-50.286-68.571 0-116.571 48l-118.857 118.857q-48 48-48 116.571t48.571 116l84 83.429q47.429 47.429 116 47.429 69.143 0 116.571-48.571l117.714-118.286q47.429-47.429 47.429-116 0-70.286-50.286-119.429l50.286-50.286q49.143 50.286 118.857 50.286 68.571 0 116.571-48l118.857-118.857q48-48 48-116.571z" horiz-adv-x="951" />
+</font></defs></svg>
\ No newline at end of file
diff --git a/_site/assets/javascript/anchor-js/docs/fonts/anchorjs-extras.ttf b/_site/assets/javascript/anchor-js/docs/fonts/anchorjs-extras.ttf
new file mode 100755
index 0000000..1971eb1
--- /dev/null
+++ b/_site/assets/javascript/anchor-js/docs/fonts/anchorjs-extras.ttf
Binary files differ
diff --git a/_site/assets/javascript/anchor-js/docs/fonts/anchorjs-extras.woff b/_site/assets/javascript/anchor-js/docs/fonts/anchorjs-extras.woff
new file mode 100755
index 0000000..fb3b104
--- /dev/null
+++ b/_site/assets/javascript/anchor-js/docs/fonts/anchorjs-extras.woff
Binary files differ
diff --git a/_site/assets/javascript/anchor-js/docs/fonts/fonts.css b/_site/assets/javascript/anchor-js/docs/fonts/fonts.css
new file mode 100755
index 0000000..c0b57b8
--- /dev/null
+++ b/_site/assets/javascript/anchor-js/docs/fonts/fonts.css
@@ -0,0 +1,24 @@
+@font-face {
+	font-family: 'anchorjs-extras';
+	src:url('anchorjs-extras.eot?-qcq09q');
+	src:url('anchorjs-extras.eot?#iefix-qcq09q') format('embedded-opentype'),
+		url('anchorjs-extras.woff?-qcq09q') format('woff'),
+		url('anchorjs-extras.ttf?-qcq09q') format('truetype'),
+		url('anchorjs-extras.svg?-qcq09q#anchorjs-extras') format('svg');
+	font-weight: normal;
+	font-style: normal;
+}
+
+[class^="ajs-"], [class*=" ajs-"] {
+	font-family: 'anchorjs-extras';
+	speak: none;
+	font-style: normal;
+	font-weight: normal;
+	font-variant: normal;
+	text-transform: none;
+	line-height: 1;
+
+	/* Better Font Rendering =========== */
+	-webkit-font-smoothing: antialiased;
+	-moz-osx-font-smoothing: grayscale;
+}
diff --git a/_site/assets/javascript/anchor-js/docs/grunticon/grunticon.loader.js b/_site/assets/javascript/anchor-js/docs/grunticon/grunticon.loader.js
new file mode 100755
index 0000000..de17974
--- /dev/null
+++ b/_site/assets/javascript/anchor-js/docs/grunticon/grunticon.loader.js
@@ -0,0 +1,3 @@
+/*! grunt-grunticon Stylesheet Loader - v2.1.2 | https://github.com/filamentgroup/grunticon | (c) 2015 Scott Jehl, Filament Group, Inc. | MIT license. */
+
+(function(e){function t(t,n,r,o){"use strict";function a(){for(var e,n=0;u.length>n;n++)u[n].href&&u[n].href.indexOf(t)>-1&&(e=!0);e?i.media=r||"all":setTimeout(a)}var i=e.document.createElement("link"),l=n||e.document.getElementsByTagName("script")[0],u=e.document.styleSheets;return i.rel="stylesheet",i.href=t,i.media="only x",i.onload=o||null,l.parentNode.insertBefore(i,l),a(),i}var n=function(r,o){"use strict";if(r&&3===r.length){var a=e.navigator,i=e.Image,l=!(!document.createElementNS||!document.createElementNS("http://www.w3.org/2000/svg","svg").createSVGRect||!document.implementation.hasFeature("http://www.w3.org/TR/SVG11/feature#Image","1.1")||e.opera&&-1===a.userAgent.indexOf("Chrome")||-1!==a.userAgent.indexOf("Series40")),u=new i;u.onerror=function(){n.method="png",n.href=r[2],t(r[2])},u.onload=function(){var e=1===u.width&&1===u.height,a=r[e&&l?0:e?1:2];n.method=e&&l?"svg":e?"datapng":"png",n.href=a,t(a,null,null,o)},u.src="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///ywAAAAAAQABAAACAUwAOw==",document.documentElement.className+=" grunticon"}};n.loadCSS=t,e.grunticon=n})(this);(function(e,t){"use strict";var n=t.document,r="grunticon:",o=function(e){if(n.attachEvent?"complete"===n.readyState:"loading"!==n.readyState)e();else{var t=!1;n.addEventListener("readystatechange",function(){t||(t=!0,e())},!1)}},a=function(e){return t.document.querySelector('link[href$="'+e+'"]')},c=function(e){var t,n,o,a,c,i,u={};if(t=e.sheet,!t)return u;n=t.cssRules?t.cssRules:t.rules;for(var l=0;n.length>l;l++)o=n[l].cssText,a=r+n[l].selectorText,c=o.split(");")[0].match(/US\-ASCII\,([^"']+)/),c&&c[1]&&(i=decodeURIComponent(c[1]),u[a]=i);return u},i=function(e){var t,o,a;o="data-grunticon-embed";for(var c in e)if(a=c.slice(r.length),t=n.querySelectorAll(a+"["+o+"]"),t.length)for(var i=0;t.length>i;i++)t[i].innerHTML=e[c],t[i].style.backgroundImage="none",t[i].removeAttribute(o);return t},u=function(t){"svg"===e.method&&o(function(){i(c(a(e.href))),"function"==typeof t&&t()})};e.embedIcons=i,e.getCSS=a,e.getIcons=c,e.ready=o,e.svgLoadedCallback=u,e.embedSVG=u})(grunticon,this);
\ No newline at end of file
diff --git a/_site/assets/javascript/anchor-js/docs/grunticon/icons.data.png.css b/_site/assets/javascript/anchor-js/docs/grunticon/icons.data.png.css
new file mode 100755
index 0000000..f0bab86
--- /dev/null
+++ b/_site/assets/javascript/anchor-js/docs/grunticon/icons.data.png.css
@@ -0,0 +1,5 @@
+
+.icon-grunticon-link {
+	background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAUCAYAAACNiR0NAAABuklEQVQ4T52U4VnCMBiE71hAnECcgLCBblBYAJxANgAmEDfABWg3kA2IE6ATWBbo+XwplLaWguZnm765fncX4h9LkesC6DHxvv45/8JT5CIQLyB74TspBbFChgUTn9qjq4EauhXIMYA9pBWIFKId0IfkITwa9CpgARM+ID0c1QSRIzcHOIP0ythPLwLbYMdxaTjwgO4Y+9uLwKAicjaztKysPPtCZab7VqAi9wBSkPZNjp4UuiXIZ2RqVqiRm0KYgbR45Csf/FMdHCJE7EDuud72fiksufkFaIkMnyBM6QSSDm6G/B1g7yAdMg2Z+KQCbHUzcg4dbiwy5mYFJr0x9pNKDptgGrolgHFZ1S9lJVgBDA3oMEYtZzqpEogEQgLCQZiEttRgJ+Bo8Amgi0zWz1ChwguDktaMfunxHtCca29/UFkMs+jw+5j0c90Oau1Q62viN+f2GdCGvQW04NrPmzYebpcuE29/0rqCyxoNUkg7xn5Q333OzbMKA9DctKTnc1mU5mehzXPWYEATNFcY0s5NcRWZozav3M3utbBqDvMKzUMjgJvD6V/INLUGXJrd8X3j5XDpdmmD/wAyTxBSftthKwAAAABJRU5ErkJggg==');
+	background-repeat: no-repeat;
+}
\ No newline at end of file
diff --git a/_site/assets/javascript/anchor-js/docs/grunticon/icons.data.svg.css b/_site/assets/javascript/anchor-js/docs/grunticon/icons.data.svg.css
new file mode 100755
index 0000000..ea5bd00
--- /dev/null
+++ b/_site/assets/javascript/anchor-js/docs/grunticon/icons.data.svg.css
@@ -0,0 +1,5 @@
+
+.icon-grunticon-link {
+	background-image: url('data:image/svg+xml;charset=US-ASCII,%3C%3Fxml%20version%3D%221.0%22%20encoding%3D%22utf-8%22%3F%3E%0A%3C%21--%20Generated%20by%20IcoMoon.io%20--%3E%0A%3C%21DOCTYPE%20svg%20PUBLIC%20%22-//W3C//DTD%20SVG%201.1//EN%22%20%22http%3A//www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd%22%3E%0A%3Csvg%20version%3D%221.1%22%20xmlns%3D%22http%3A//www.w3.org/2000/svg%22%20xmlns%3Axlink%3D%22http%3A//www.w3.org/1999/xlink%22%20width%3D%2220%22%20height%3D%2220%22%20viewBox%3D%220%200%20768%20768%22%3E%0A%20%20%3Cg%20fill%3D%22%23FF5231%22%3E%0A%20%20%20%20%3Cpath%20d%3D%22M544%2032q37.75%200%2072.875%2014.25t62.875%2042%2042%2062.875%2014.25%2072.875q0%2037.5-14.375%2072.875t-41.875%2062.875l-96%2096q-2.75%202.75-8.25%207.75-26.75%2023.75-59.75%2036.125t-67.75%2012.375q-43.75%200-82.75-18.75-29.25-13.75-53-37.5t-37.5-53q18.75-18.75%2045.25-18.75%209.25%200%2018.75%202.75%2016.25%2026.25%2042.5%2042.5%2030.75%2018.75%2066.75%2018.75%2025%200%2048.5-9.5t42-28l96-96q18.5-18.5%2028-42t9.5-48.5-9.5-48.5-28-42-42-28-48.5-9.5-48.5%209.5-42%2028l-67.25%2067.25q-32-8.75-66.25-8.75-5.5%200-15.5%200.5%205-5.5%207.75-8.25l96-96q27.5-27.5%2062.875-41.875t72.875-14.375zM320%20256q43.75%200%2082.75%2018.75%2029.25%2013.75%2053%2037.5t37.5%2053q-18.75%2018.75-45.25%2018.75-9.25%200-18.75-2.75-16.25-26.25-42.5-42.5-30.75-18.75-66.75-18.75-25%200-48.5%209.5t-42%2028l-96%2096q-18.5%2018.5-28%2042t-9.5%2048.5%209.5%2048.5%2028%2042%2042%2028%2048.5%209.5%2048.5-9.5%2042-28l67.25-67.25q32%208.75%2066.25%208.75%205.5%200%2015.5-0.5-5%205.5-7.75%208.25l-96%2096q-27.75%2027.75-62.875%2042t-72.875%2014.25q-37.5%200-72.875-14.375t-62.875-41.875q-27.75-27.75-42-62.875t-14.25-72.875%2014.25-72.875%2042-62.875l96-96q2.75-2.75%208.25-7.75%2026.75-23.75%2059.75-36.125t67.75-12.375z%22%3E%3C/path%3E%0A%20%20%3C/g%3E%0A%3C/svg%3E%0A');
+	background-repeat: no-repeat;
+}
\ No newline at end of file
diff --git a/_site/assets/javascript/anchor-js/docs/grunticon/icons.fallback.css b/_site/assets/javascript/anchor-js/docs/grunticon/icons.fallback.css
new file mode 100755
index 0000000..832f36f
--- /dev/null
+++ b/_site/assets/javascript/anchor-js/docs/grunticon/icons.fallback.css
@@ -0,0 +1,5 @@
+
+.icon-grunticon-link {
+	background-image: url('png/grunticon-link.png');
+	background-repeat: no-repeat;
+}
\ No newline at end of file
diff --git a/_site/assets/javascript/anchor-js/docs/grunticon/png/grunticon-link.png b/_site/assets/javascript/anchor-js/docs/grunticon/png/grunticon-link.png
new file mode 100755
index 0000000..eefa53f
--- /dev/null
+++ b/_site/assets/javascript/anchor-js/docs/grunticon/png/grunticon-link.png
Binary files differ
diff --git a/_site/assets/javascript/anchor-js/docs/img/anchoring-links.png b/_site/assets/javascript/anchor-js/docs/img/anchoring-links.png
new file mode 100644
index 0000000..9d28abc
--- /dev/null
+++ b/_site/assets/javascript/anchor-js/docs/img/anchoring-links.png
Binary files differ
diff --git a/_site/assets/javascript/anchor-js/docs/img/anchorjs_logo.png b/_site/assets/javascript/anchor-js/docs/img/anchorjs_logo.png
new file mode 100644
index 0000000..06c8b4d
--- /dev/null
+++ b/_site/assets/javascript/anchor-js/docs/img/anchorjs_logo.png
Binary files differ
diff --git a/_site/assets/javascript/anchor-js/docs/img/anchorlinks2.png b/_site/assets/javascript/anchor-js/docs/img/anchorlinks2.png
new file mode 100644
index 0000000..9118b1e
--- /dev/null
+++ b/_site/assets/javascript/anchor-js/docs/img/anchorlinks2.png
Binary files differ
diff --git a/_site/assets/javascript/anchor-js/docs/img/gh-link.svg b/_site/assets/javascript/anchor-js/docs/img/gh-link.svg
new file mode 100644
index 0000000..24abb41
--- /dev/null
+++ b/_site/assets/javascript/anchor-js/docs/img/gh-link.svg
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<svg width="24px" height="12px" viewBox="0 0 24 12" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+    <defs></defs>
+    <g id="Page-1" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
+        <g id="link" fill="#FF5231">
+            <path d="M18,0 L14.765625,0 C15.890625,0.75 16.9453125,2.0859375 17.2734375,3 L17.9765625,3 C19.5,3 20.9765625,4.5 20.9765625,6 C20.9765625,7.5 19.453125,9 17.9765625,9 L13.4765625,9 C12,9 10.4765625,7.5 10.4765625,6 C10.4765625,5.4609375 10.640625,4.9453125 10.8984375,4.5 L7.6875,4.5 C7.5703125,4.9921875 7.5,5.484375 7.5,6 C7.5,9 10.4765625,12 13.4765625,12 L18,12 C21,12 24,9 24,6 C24,3 21,0 18,0 L18,0 Z M6.7265625,9 L6.0234375,9 C4.5,9 3.0234375,7.5 3.0234375,6 C3.0234375,4.5 4.546875,3 6.0234375,3 L10.5234375,3 C12,3 13.5234375,4.5 13.5234375,6 C13.5234375,6.5390625 13.359375,7.0546875 13.1015625,7.5 L16.3125,7.5 C16.4296875,7.0078125 16.5,6.515625 16.5,6 C16.5,3 13.5234375,0 10.5234375,0 L6,0 C3,0 0,3 0,6 C0,9 3,12 6,12 L9.234375,12 C8.109375,11.25 7.0546875,9.9140625 6.7265625,9 L6.7265625,9 Z" id="Shape"></path>
+        </g>
+    </g>
+</svg>
\ No newline at end of file
diff --git a/_site/assets/javascript/anchor-js/docs/img/gh_link.svg b/_site/assets/javascript/anchor-js/docs/img/gh_link.svg
new file mode 100644
index 0000000..8e43abb
--- /dev/null
+++ b/_site/assets/javascript/anchor-js/docs/img/gh_link.svg
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<svg width="20px" height="10px" viewBox="0 0 20 10" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+    <defs></defs>
+    <g id="Page-1" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
+        <g id="link" fill="#FF5231">
+            <path d="M15,0 L12.3046875,0 C13.2421875,0.625 14.1210938,1.73828125 14.3945312,2.5 L14.9804688,2.5 C16.25,2.5 17.4804688,3.75 17.4804688,5 C17.4804688,6.25 16.2109375,7.5 14.9804688,7.5 L11.2304688,7.5 C10,7.5 8.73046875,6.25 8.73046875,5 C8.73046875,4.55078125 8.8671875,4.12109375 9.08203125,3.75 L6.40625,3.75 C6.30859375,4.16015625 6.25,4.5703125 6.25,5 C6.25,7.5 8.73046875,10 11.2304688,10 L15,10 C17.5,10 20,7.5 20,5 C20,2.5 17.5,0 15,0 L15,0 Z M5.60546875,7.5 L5.01953125,7.5 C3.75,7.5 2.51953125,6.25 2.51953125,5 C2.51953125,3.75 3.7890625,2.5 5.01953125,2.5 L8.76953125,2.5 C10,2.5 11.2695312,3.75 11.2695312,5 C11.2695312,5.44921875 11.1328125,5.87890625 10.9179688,6.25 L13.59375,6.25 C13.6914062,5.83984375 13.75,5.4296875 13.75,5 C13.75,2.5 11.2695312,0 8.76953125,0 L5,0 C2.5,0 0,2.5 0,5 C0,7.5 2.5,10 5,10 L7.6953125,10 C6.7578125,9.375 5.87890625,8.26171875 5.60546875,7.5 L5.60546875,7.5 Z" id="Shape"></path>
+        </g>
+    </g>
+</svg>
\ No newline at end of file
diff --git a/_site/assets/javascript/anchor-js/docs/img/hyperlink.svg b/_site/assets/javascript/anchor-js/docs/img/hyperlink.svg
new file mode 100644
index 0000000..3a8745a
--- /dev/null
+++ b/_site/assets/javascript/anchor-js/docs/img/hyperlink.svg
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<svg width="24px" height="24px" viewBox="0 0 24 24" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+    <defs></defs>
+    <g id="Page-1" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
+        <g id="hyperlink" fill="#FF5231">
+            <path d="M23.5548327,6.22263035 L17.7774163,0.445167315 C17.2460545,-0.0861478599 16.3834086,-0.0861478599 15.8520934,0.445167315 L10.0747237,6.22263035 C9.5419144,6.75394553 9.5419144,7.61659144 10.0747237,8.14940078 L11.0366381,9.11131518 L16.8140545,3.33389883 L20.6661479,7.18599222 L14.8887315,12.9634086 L15.8520934,13.9267704 C16.3834086,14.4581323 17.2460545,14.4581323 17.7774163,13.9267704 L23.554786,8.14940078 C24.0861479,7.61659144 24.0861479,6.75389883 23.5548327,6.22263035 L23.5548327,6.22263035 Z M12.9634086,14.8886848 L7.18599222,20.6661479 L3.33389883,16.8140545 L9.11126848,11.0366381 L8.14790661,10.0732763 C7.61659144,9.5419144 6.75394553,9.5419144 6.22263035,10.0732763 L0.445167315,15.8506459 C-0.0861478599,16.3834086 -0.0861478599,17.2461012 0.445167315,17.7774163 L6.22258366,23.5548327 C6.75389883,24.0861479 7.61654475,24.0861479 8.14785992,23.5548327 L13.9252763,17.7774163 C14.4580389,17.2461012 14.4580389,16.3834553 13.9252763,15.8506459 L12.9634086,14.8886848 L12.9634086,14.8886848 Z M8.14790661,15.8506459 C8.68071595,16.3834086 9.5418677,16.3834086 10.0747237,15.8506459 L15.8520934,10.0732763 C16.3834086,9.5419144 16.3834086,8.68071595 15.8520934,8.14940078 C15.3193307,7.61663813 14.4581323,7.61663813 13.925323,8.14940078 L8.14790661,13.9267704 C7.61659144,14.4581323 7.61659144,15.3193307 8.14790661,15.8506459 L8.14790661,15.8506459 Z" id="Shape"></path>
+        </g>
+    </g>
+</svg>
\ No newline at end of file
diff --git a/_site/assets/javascript/anchor-js/docs/img/link.svg b/_site/assets/javascript/anchor-js/docs/img/link.svg
new file mode 100644
index 0000000..5aaef2f
--- /dev/null
+++ b/_site/assets/javascript/anchor-js/docs/img/link.svg
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="512" height="512" viewBox="0 0 512 512"><g id="icomoon-ignore">
+</g>
+<path d="M384 128h-69c24 16 46.5 44.5 53.5 64h15c32.5 0 64 32 64 64s-32.5 64-64 64h-96c-31.5 0-64-32-64-64 0-11.5 3.5-22.5 9-32h-68.5c-2.5 10.5-4 21-4 32 0 64 63.5 128 127.5 128s32.5 0 96.5 0 128-64 128-128-64-128-128-128zM143.5 320h-15c-32.5 0-64-32-64-64s32.5-64 64-64h96c31.5 0 64 32 64 64 0 11.5-3.5 22.5-9 32h68.5c2.5-10.5 4-21 4-32 0-64-63.5-128-127.5-128s-32.5 0-96.5 0-128 64-128 128 64 128 128 128h69c-24-16-46.5-44.5-53.5-64z"></path>
+</svg>
diff --git a/_site/assets/javascript/anchor-js/docs/img/mini-logo.png b/_site/assets/javascript/anchor-js/docs/img/mini-logo.png
new file mode 100644
index 0000000..3806c67
--- /dev/null
+++ b/_site/assets/javascript/anchor-js/docs/img/mini-logo.png
Binary files differ
diff --git a/_site/assets/javascript/anchor-js/docs/img/primer-md.png b/_site/assets/javascript/anchor-js/docs/img/primer-md.png
new file mode 100644
index 0000000..1db2cb6
--- /dev/null
+++ b/_site/assets/javascript/anchor-js/docs/img/primer-md.png
Binary files differ
diff --git a/_site/assets/javascript/anchor-js/docs/scripts.js b/_site/assets/javascript/anchor-js/docs/scripts.js
new file mode 100644
index 0000000..c283e73
--- /dev/null
+++ b/_site/assets/javascript/anchor-js/docs/scripts.js
@@ -0,0 +1,12 @@
+$(document).ready(function() {
+  var preEls = $('pre');
+
+  $('.example-code-link').click(function(e) {
+    e.preventDefault();
+    $(this).parent().next().slideToggle();
+  });
+
+  // Dynamically add PrismJS class for syntax highlight
+  preEls.filter('[class*="js"]').find('code').addClass('language-javascript');
+  preEls.filter('.css').find('code').addClass('language-css');
+});
diff --git a/_site/assets/javascript/anchor-js/docs/styles.css b/_site/assets/javascript/anchor-js/docs/styles.css
new file mode 100644
index 0000000..b4b71af
--- /dev/null
+++ b/_site/assets/javascript/anchor-js/docs/styles.css
@@ -0,0 +1,493 @@
+/*//// Base Styles ////*/
+
+div,
+article,
+section,
+main,
+footer,
+header,
+form,
+fieldset,
+pre,
+code,
+p,
+input[type="text"],
+input[type="tel"],
+input[type="email"],
+input[type="url"],
+input[type="password"] {
+  box-sizing: border-box;
+}
+
+body {
+  font-family: 'Source Sans Pro', sans-serif;
+  background-color: rgb(162, 255, 224);
+  color: #262626;
+  margin: 0 1.5em;
+}
+
+h1 {
+  font-size: 2.2em;
+}
+h2 {
+  font-size: 2.0em;
+  margin-top: 1.5em;
+}
+h3 {
+  font-size: 1.8em;
+}
+
+table {
+  border-collapse: collapse;
+  background: white;
+  box-shadow: 0px 0px 10px -4px #666;
+  border: 1px solid white;
+}
+
+table td,
+table th {
+  padding: 0.5em;
+  border: 1px solid #ddd;
+}
+
+img {
+  max-width: 100%;
+}
+
+a {
+  color: black;
+  text-decoration: underline;
+}
+
+/*//// Code Snippet Styles  ////*/
+
+code,
+samp,
+kbd {
+  background-color: #141414;
+  color: #f7f7f7;
+  font-family: "Inconsolata", "Menlo", "Consolas", monospace;
+  font-size: 0.9em;
+  padding: 2px 6px;
+  text-align: left;
+  border-radius: 3px;
+}
+
+pre {
+  background-color: #141414;
+  color: #f7f7f7;
+  font-family: "Inconsolata", "Menlo", "Consolas", monospace;
+  font-size: 0.9em;
+  line-height: 1.2em;
+  margin: 0;
+  overflow: auto;
+  padding: 1em;
+  border-radius: 3px;
+}
+
+.examples pre,
+.hover-examples pre,
+.preview-examples pre {
+  padding-left: 2.75em;
+  border-radius: 0;
+}
+
+/* Override 'code' css rules if using 'pre > code' markup. */
+pre > code {
+  font-size: 1em;
+  padding: 0px;
+}
+
+/* for IE7 and IE6 */
+*:first-child+html pre {
+  overflow: visible;
+  overflow-x: auto;
+  overflow-y: hidden;
+  padding-bottom: 2em;
+}
+
+* html pre {
+  overflow: visible;
+  overflow-x: auto;
+  padding-bottom: 2em;
+}
+
+/* Reset PrismJS' border styles */
+.main pre[class*="language-"],
+.example pre[class*="language-"] {
+  border: 0;
+  border-radius: 3px;
+}
+
+/*//// Page Styles ////*/
+.header {
+  max-width: 720px;
+  margin: 0 auto;
+  padding-top: 1.5em;
+}
+
+.page-title {
+  text-align: center;
+}
+
+.logo {
+  display: block;
+  margin: 0 auto;
+}
+
+.desc {
+  padding: 1em 0;
+  text-align: center;
+}
+.maindesc {
+  font-size: 30px;
+  margin-bottom: 1em;
+}
+.subdesc {
+  font-size: 15px;
+}
+
+.more-examples {
+  text-align: right;
+  font-size: 12px;
+  margin: 0 5px 0 0;
+}
+
+.main {
+  line-height: 1.4;
+  margin: 0 auto;
+  max-width: 720px;
+}
+.used-by {
+  text-align: center;
+  position: relative;
+  padding: 1em 0;
+}
+.used-by-label {
+  font-size: 20px;
+  text-align: center;
+  font-weight: normal;
+}
+.used-by img {
+  border-radius: 8px;
+  opacity: 1;
+  margin: 0px 10px;
+}
+
+.anchorlink-examples {
+  float: right;
+  margin: 0 0 1em 1em;
+  box-shadow: 0px 0px 10px -3px #666;
+}
+
+.options-table {
+  width: 100%;
+  margin: 1em 0;
+}
+
+.minicol {
+  width: 62px;
+}
+
+.footer {
+  text-align: center;
+  color: #777;
+}
+.footer a {
+  color: #777;
+}
+
+/*///////////// Examples /////////////*/
+
+.examples,
+.hover-examples,
+.preview-examples {
+  max-width: 720px;
+  margin: 0 auto;
+  display: -webkit-flex;
+  display: flex;
+  -webkit-flex-direction: row;
+  flex-direction: row;
+  -webkit-justify-content: center;
+  justify-content: center;
+  -webkit-flex-wrap: wrap;
+  flex-wrap: wrap;
+  -webkit-align-content: flex-end;
+  align-content: flex-end;
+}
+
+.example {
+  max-width: 350px;
+  min-height: 160px;
+  margin: 5px;
+}
+.example-label {
+  font-size: 12px;
+  color: #777;
+  display: none;
+}
+.example-content {
+  padding: 0 0 0 3.5em;
+  overflow: hidden;
+  position: relative;
+  background: #fff;
+  box-shadow: 0px 0px 10px -3px #666;
+}
+
+.example-code-link {
+  width: 16px;
+  position: absolute;
+  top: 8px;
+  right: 8px;
+  font-family: Courier monospace;
+  color: #aaa;
+  text-decoration: none;
+}
+
+.example-code-link:hover:after,
+.example-code-link:focus:after {
+  left: -50px;
+  opacity: 1;
+  -webkit-transition: all 0.25s ease-in;
+  transition: all 0.25s ease-in;
+}
+
+.example-code-link:after {
+  content: "SOURCE";
+  font-family: Helvetica, Arial, sans-serif;
+  font-size: 10px;
+  line-height: 1;
+  display: block;
+  position: absolute;
+  text-transform: uppercase;
+  top: 7px;
+  left: -45px;
+  opacity: 0;
+  -webkit-transition: all 0.25s ease-in;
+  transition: all 0.25s ease-in;
+}
+
+.example-code {
+  display: none;
+}
+
+.css {
+  border-top: 1px solid #666;
+}
+
+.css,
+.js {
+  position: relative;
+}
+
+.css::before,
+.js::before {
+  left: 0;
+  top: 0;
+  padding: 1px 4px;
+  color: white;
+  background: #FF5231;
+  position: absolute;
+  font-size: 11px;
+  text-transform: uppercase;
+}
+
+.css::before {
+  content: 'css';
+}
+.js::before {
+  content: 'js';
+}
+
+.example-content > p {
+  width: 310px;
+}
+
+.anchorjs-link {
+  color: #FF5231;
+}
+
+/*///// Styles within Examples /////*/
+.examples .example:nth-child(3) .anchorjs-link,
+.preview-examples .example:nth-child(2) .anchorjs-link {
+  font-family: Helvetica, Arial, sans-serif;
+}
+
+.examples .example:nth-child(7) .anchorjs-link {
+  font-weight: 200;
+  margin-left: 1em;
+  padding-right: 0.375em;
+  font-size: 0.5em;
+  border: 1px dashed #FFBAAC;
+  vertical-align: middle;
+}
+
+.examples .example:nth-child(8) .anchorjs-link {
+  width: 14px;
+  height: 32px;
+  margin-top: 6px;
+  background: url('img/mini-logo.png') no-repeat;
+  margin-left: -1.25em !important;
+}
+
+.examples .example:nth-child(9) .anchorjs-link:after {
+  margin-left: 7px;
+  margin-top: -4px;
+  display: block;
+}
+
+.examples .example:nth-child(9) .anchorjs-link {
+  background-color: #FF5231;
+  height: 32px;
+  width: 18px;
+  border-radius: 50%;
+  display: inline-block;
+  color: white;
+  margin-top: 4px;
+  margin-left: -1.4em !important;
+}
+
+.examples .example:nth-child(11) .anchorjs-link {
+  display: inline-block;
+  background: url('img/hyperlink.svg') no-repeat;
+  margin-left: 8px;
+  width: 14px;
+  height: 24px;
+}
+
+.examples .example:nth-child(12) .anchorjs-link {
+  background: url("data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+Cjxzdmcgd2lkdGg9IjIwcHgiIGhlaWdodD0iMTBweCIgdmlld0JveD0iMCAwIDIwIDEwIiB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiPgogICAgPGRlZnM+PC9kZWZzPgogICAgPGcgaWQ9IlBhZ2UtMSIgc3Ryb2tlPSJub25lIiBzdHJva2Utd2lkdGg9IjEiIGZpbGw9Im5vbmUiIGZpbGwtcnVsZT0iZXZlbm9kZCI+CiAgICAgICAgPGcgaWQ9ImxpbmsiIGZpbGw9IiNGRjUyMzEiPgogICAgICAgICAgICA8cGF0aCBkPSJNMTUsMCBMMTIuMzA0Njg3NSwwIEMxMy4yNDIxODc1LDAuNjI1IDE0LjEyMTA5MzgsMS43MzgyODEyNSAxNC4zOTQ1MzEyLDIuNSBMMTQuOTgwNDY4OCwyLjUgQzE2LjI1LDIuNSAxNy40ODA0Njg4LDMuNzUgMTcuNDgwNDY4OCw1IEMxNy40ODA0Njg4LDYuMjUgMTYuMjEwOTM3NSw3LjUgMTQuOTgwNDY4OCw3LjUgTDExLjIzMDQ2ODgsNy41IEMxMCw3LjUgOC43MzA0Njg3NSw2LjI1IDguNzMwNDY4NzUsNSBDOC43MzA0Njg3NSw0LjU1MDc4MTI1IDguODY3MTg3NSw0LjEyMTA5Mzc1IDkuMDgyMDMxMjUsMy43NSBMNi40MDYyNSwzLjc1IEM2LjMwODU5Mzc1LDQuMTYwMTU2MjUgNi4yNSw0LjU3MDMxMjUgNi4yNSw1IEM2LjI1LDcuNSA4LjczMDQ2ODc1LDEwIDExLjIzMDQ2ODgsMTAgTDE1LDEwIEMxNy41LDEwIDIwLDcuNSAyMCw1IEMyMCwyLjUgMTcuNSwwIDE1LDAgTDE1LDAgWiBNNS42MDU0Njg3NSw3LjUgTDUuMDE5NTMxMjUsNy41IEMzLjc1LDcuNSAyLjUxOTUzMTI1LDYuMjUgMi41MTk1MzEyNSw1IEMyLjUxOTUzMTI1LDMuNzUgMy43ODkwNjI1LDIuNSA1LjAxOTUzMTI1LDIuNSBMOC43Njk1MzEyNSwyLjUgQzEwLDIuNSAxMS4yNjk1MzEyLDMuNzUgMTEuMjY5NTMxMiw1IEMxMS4yNjk1MzEyLDUuNDQ5MjE4NzUgMTEuMTMyODEyNSw1Ljg3ODkwNjI1IDEwLjkxNzk2ODgsNi4yNSBMMTMuNTkzNzUsNi4yNSBDMTMuNjkxNDA2Miw1LjgzOTg0Mzc1IDEzLjc1LDUuNDI5Njg3NSAxMy43NSw1IEMxMy43NSwyLjUgMTEuMjY5NTMxMiwwIDguNzY5NTMxMjUsMCBMNSwwIEMyLjUsMCAwLDIuNSAwLDUgQzAsNy41IDIuNSwxMCA1LDEwIEw3LjY5NTMxMjUsMTAgQzYuNzU3ODEyNSw5LjM3NSA1Ljg3ODkwNjI1LDguMjYxNzE4NzUgNS42MDU0Njg3NSw3LjUgTDUuNjA1NDY4NzUsNy41IFoiIGlkPSJTaGFwZSI+PC9wYXRoPgogICAgICAgIDwvZz4KICAgIDwvZz4KPC9zdmc+") no-repeat;
+  margin-top: 15px;
+  height: 16px;
+  width: 20px;
+}
+
+.examples .example:nth-child(13) .anchorjs-link {
+  border-color: #FF5231 #FF5231 transparent;
+  border-width: 15px 7px 6px;
+  border-style: solid;
+  margin-top: 10px;
+  font-size: 22px;
+  padding-right: 0 !important;
+}
+
+.examples .example:nth-child(14) .anchorjs-link {
+  margin-left: -1.8em !important;
+}
+
+.examples .example:nth-child(15) .anchorjs-link {
+  display: inline-block;
+  width: 0.375em;
+  height: 20px;
+  margin-left: 0.375em;
+}
+
+/* Hover Examples */
+
+.hover-examples .example:nth-child(2) *:hover > .anchorjs-link,
+.hover-examples .example:nth-child(2) .anchorjs-link:focus  {
+  transition: color .25s linear;
+}
+.hover-examples .example:nth-child(2) .anchorjs-link:hover {
+  color: #2500AD;
+}
+
+.hover-examples .example:nth-child(3) .anchorjs-link {
+    transition: all .25s linear;
+}
+.hover-examples .example:nth-child(3) *:hover > .anchorjs-link,
+.hover-examples .example:nth-child(3) .anchorjs-link:focus  {
+  margin-left: -1.125em !important;
+}
+
+
+.hover-examples .example:nth-child(4) h3 {
+  display: -webkit-box;
+  display: -webkit-flex;
+  display: -ms-flexbox;
+  display: flex;
+}
+.hover-examples .example:nth-child(4) .anchorjs-link {
+  background: #FF5231;
+  color: white;
+  font-family: Helvetica, Arial, sans-serif;
+  font-weight: 200;
+  font-size: 1rem;
+  position: relative;
+  top: 2px;
+  -webkit-box-flex: 1;
+  -webkit-flex: 1;
+      -ms-flex: 1;
+          flex: 1;
+  margin-right: -6%;
+  padding-right: 6%;
+  padding-left: 42px !important;
+  height: 36px;
+  line-height: 38px;
+  -webkit-transition: all 0.5s ease;
+  transition: all 0.5s ease;
+  -webkit-transform: translateX(100%);
+      -ms-transform: translateX(100%);
+          transform: translateX(100%);
+}
+.hover-examples .example:nth-child(4) .anchorjs-link::before {
+  position: absolute;
+  left: 0;
+  display: block;
+  width: 0;
+  height: 0;
+  border: 18px solid #fff;
+  border-right-color: #FF5231;
+  content: '';
+  transition: all 0.5s ease;
+}
+.hover-examples .example:nth-child(4) *:hover > .anchorjs-link,
+.hover-examples .example:nth-child(4) .anchorjs-link:focus {
+  -webkit-transform: translateX(0);
+      -ms-transform: translateX(0);
+
+  transform: translateX(0);
+}
+.hover-examples .example:nth-child(4) *:hover > .anchorjs-link:hover,
+.hover-examples .example:nth-child(4) .anchorjs-link:focus {
+  background: #FF806A;
+}
+.hover-examples .example:nth-child(4) *:hover > .anchorjs-link:hover::before,
+.hover-examples .example:nth-child(4) .anchorjs-link:focus {
+  border-right-color: #FF806A;
+}
+
+.hover-examples .example:nth-child(5) .anchorjs-link:after {
+  display: inline-block;
+  transition: opacity .25s linear;
+  font-family: Verdana, sans-serif;
+  font-size: 0.75ex;
+  font-weight: 100;
+  padding: 0.5ex 1.5ex;
+  background: #444;
+  color: #fff;
+  border-radius: 0.6ex;
+  vertical-align: 0.8ex;
+}
+.hover-examples .example:nth-child(5) .anchorjs-link:before {
+  content: '';
+  display: inline-block;
+  border-top: 0.3ex solid transparent;
+  border-right: 0.5ex solid #444;
+  border-bottom: 0.3ex solid transparent;
+  vertical-align: 0.35ex;
+}
+.hover-examples .example:nth-child(5) .anchorjs-link:hover:after {
+  background-color: #666;
+}
+.hover-examples .example:nth-child(5) .anchorjs-link:hover:before {
+  border-right-color: #666;
+}
+
+/*////// Utilities ////////*/
+/* Clearfix */
+.group:after {
+  content: "";
+  display: table;
+  clear: both;
+}
diff --git a/_site/css/main.css b/_site/css/main.css
index 20fe95a..c004837 100644
--- a/_site/css/main.css
+++ b/_site/css/main.css
@@ -1,339 +1,119 @@
 /*$theme-dark: #222;*/
-html,
-body {
-  height: 100%;
-  width: 100%; }
+html, body { height: 100%; width: 100%; }
 
-body {
-  font-family: sans-serif,'Merriweather', 'Helvetica Neue', Arial; }
+body { font-family: sans-serif,'Merriweather', 'Helvetica Neue', Arial; }
 
-hr {
-  border-color: #F98B07;
-  border-width: 3px;
-  max-width: 50px; }
+hr { border-color: #F98B07; border-width: 3px; max-width: 50px; }
 
-hr.light {
-  border-color: white; }
+hr.light { border-color: white; }
 
-a {
-  -webkit-transition: all 0.35s;
-  -moz-transition: all 0.35s;
-  transition: all 0.35s;
-  color: #F98B07; }
-  a:hover, a:focus {
-    color: #c86f05; }
+a { -webkit-transition: all 0.35s; -moz-transition: all 0.35s; transition: all 0.35s; color: #F98B07; }
+a:hover, a:focus { color: #c86f05; }
 
-h1,
-h2,
-h3,
-h4,
-h5,
-h6 {
-  font-family: sans-serif,'Open Sans', 'Helvetica Neue', Arial; }
+h1, h2, h3, h4, h5, h6 { font-family: sans-serif,'Open Sans', 'Helvetica Neue', Arial; }
 
-p {
-  font-size: 16px;
-  line-height: 1.5;
-  margin-bottom: 20px; }
+p { font-size: 16px; line-height: 1.5; margin-bottom: 20px; }
 
-.bg-primary {
-  background-color: #F98B07; }
+.bg-primary { background-color: #F98B07; }
 
-.bg-dark {
-  background-color: #1F181A;
-  color: white; }
+.bg-dark { background-color: #1F181A; color: white; }
 
-.text-faded {
-  color: rgba(255, 255, 255, 0.7); }
+.text-faded { color: rgba(255, 255, 255, 0.7); }
 
-section {
-  padding: 100px 0; }
+section { padding: 100px 0; }
 
-aside {
-  padding: 75px 0; }
+aside { padding: 75px 0; }
 
-.no-padding {
-  padding: 0; }
+.no-padding { padding: 0; }
 
-.no-padding-bottom {
-  padding-bottom: 0px; }
+.no-padding-bottom { padding-bottom: 0px; }
 
-.navbar-default {
-  background-color: white;
-  border-color: rgba(31, 24, 26, 0.5);
-  font-family: sans-serif,'Open Sans', 'Helvetica Neue', Arial;
-  -webkit-transition: all 0.35s;
-  -moz-transition: all 0.35s;
-  transition: all 0.35s; }
-  .navbar-default .navbar-header .navbar-brand {
-    color: #F98B07;
-    font-family: sans-serif,'Open Sans', 'Helvetica Neue', Arial;
-    font-weight: 700;
-    text-transform: uppercase; }
-    .navbar-default .navbar-header .navbar-brand:hover, .navbar-default .navbar-header .navbar-brand:focus {
-      color: #c86f05; }
-  .navbar-default .nav > li > a,
-  .navbar-default .nav > li > a:focus {
-    text-transform: uppercase;
-    font-weight: 700;
-    font-size: 13px;
-    color: #1F181A; }
-    .navbar-default .nav > li > a:hover,
-    .navbar-default .nav > li > a:focus:hover {
-      color: #F98B07; }
-  .navbar-default .nav > li.active > a,
-  .navbar-default .nav > li.active > a:focus {
-    color: #F98B07 !important;
-    background-color: transparent; }
-    .navbar-default .nav > li.active > a:hover,
-    .navbar-default .nav > li.active > a:focus:hover {
-      background-color: transparent; }
-  @media (min-width: 768px) {
-    .navbar-default {
-      background-color: #241E22;
-      /*background-color: #1F181A;*/
-      border-color: rgba(255, 255, 255, 0.3); }
-      .navbar-default .navbar-header .navbar-brand {
-        color: rgba(255, 255, 255, 0.7); }
-        .navbar-default .navbar-header .navbar-brand:hover, .navbar-default .navbar-header .navbar-brand:focus {
-          color: white; }
-      .navbar-default .nav > li > a,
-      .navbar-default .nav > li > a:focus {
-        color: rgba(255, 255, 255, 0.7); }
-        .navbar-default .nav > li > a:hover,
-        .navbar-default .nav > li > a:focus:hover {
-          color: white; }
-      .navbar-default.affix {
-        background-color: white;
-        border-color: rgba(31, 24, 26, 0.5); }
-        .navbar-default.affix .navbar-header .navbar-brand {
-          color: #F98B07;
-          font-size: 14px; }
-          .navbar-default.affix .navbar-header .navbar-brand:hover, .navbar-default.affix .navbar-header .navbar-brand:focus {
-            color: #c86f05; }
-        .navbar-default.affix .nav > li > a,
-        .navbar-default.affix .nav > li > a:focus {
-          color: #1F181A; }
-          .navbar-default.affix .nav > li > a:hover,
-          .navbar-default.affix .nav > li > a:focus:hover {
-            color: #F98B07; } }
+.navbar-default { background-color: white; border-color: rgba(31, 24, 26, 0.5); font-family: sans-serif,'Open Sans', 'Helvetica Neue', Arial; -webkit-transition: all 0.35s; -moz-transition: all 0.35s; transition: all 0.35s; }
+.navbar-default .navbar-header .navbar-brand { color: #F98B07; font-family: sans-serif,'Open Sans', 'Helvetica Neue', Arial; font-weight: 700; text-transform: uppercase; }
+.navbar-default .navbar-header .navbar-brand:hover, .navbar-default .navbar-header .navbar-brand:focus { color: #c86f05; }
+.navbar-default .nav > li > a, .navbar-default .nav > li > a:focus { text-transform: uppercase; font-weight: 700; font-size: 13px; color: #1F181A; }
+.navbar-default .nav > li > a:hover, .navbar-default .nav > li > a:focus:hover { color: #F98B07; }
+.navbar-default .nav > li.active > a, .navbar-default .nav > li.active > a:focus { color: #F98B07 !important; background-color: transparent; }
+.navbar-default .nav > li.active > a:hover, .navbar-default .nav > li.active > a:focus:hover { background-color: transparent; }
+@media (min-width: 768px) { .navbar-default { background-color: #241E22; /*background-color: #1F181A;*/ border-color: rgba(255, 255, 255, 0.3); }
+  .navbar-default .navbar-header .navbar-brand { color: rgba(255, 255, 255, 0.7); }
+  .navbar-default .navbar-header .navbar-brand:hover, .navbar-default .navbar-header .navbar-brand:focus { color: white; }
+  .navbar-default .nav > li > a, .navbar-default .nav > li > a:focus { color: rgba(255, 255, 255, 0.7); }
+  .navbar-default .nav > li > a:hover, .navbar-default .nav > li > a:focus:hover { color: white; }
+  .navbar-default.affix { background-color: white; border-color: rgba(31, 24, 26, 0.5); }
+  .navbar-default.affix .navbar-header .navbar-brand { color: #F98B07; font-size: 14px; }
+  .navbar-default.affix .navbar-header .navbar-brand:hover, .navbar-default.affix .navbar-header .navbar-brand:focus { color: #c86f05; }
+  .navbar-default.affix .nav > li > a, .navbar-default.affix .nav > li > a:focus { color: #1F181A; }
+  .navbar-default.affix .nav > li > a:hover, .navbar-default.affix .nav > li > a:focus:hover { color: #F98B07; } }
 
-header {
-  position: relative;
-  width: 100%;
-  min-height: auto;
-  -webkit-background-size: cover;
-  -moz-background-size: cover;
-  background-size: cover;
-  -o-background-size: cover;
-  background-position: center;
-  /*background-color: #241E22;*/
-  background-color: #1F181A;
-  /*background-image: url('../img/header.jpg');*/
-  text-align: center;
-  color: white; }
-  header .header-content {
-    position: relative;
-    text-align: center;
-    padding: 100px 15px 100px;
-    width: 100%; }
-    header .header-content .header-content-inner h1 {
-      font-weight: 700;
-      text-transform: uppercase;
-      margin-top: 0;
-      margin-bottom: 0; }
-    header .header-content .header-content-inner img {
-      width: 30%;
-      /*60% for big logo*/ }
-    header .header-content .header-content-inner hr {
-      margin: 25px auto; }
-    header .header-content .header-content-inner p {
-      font-weight: 300;
-      color: rgba(255, 255, 255, 0.7);
-      margin-bottom: 50px;
-      font-family: sans-serif;
-      font-size: 20px; }
-  @media (min-width: 768px) {
-    header {
-      min-height: 100%; }
-      header .header-content {
-        position: absolute;
-        top: 50%;
-        -webkit-transform: translateY(-50%);
-        -ms-transform: translateY(-50%);
-        transform: translateY(-50%);
-        padding: 0 50px; }
-        header .header-content .header-content-inner {
-          max-width: 1000px;
-          margin-left: auto;
-          margin-right: auto;
-          margin-top: 5%; }
-          header .header-content .header-content-inner p {
-            font-size: 20px;
-            max-width: 80%;
-            margin-left: auto;
-            margin-right: auto; } }
+header { position: relative; width: 100%; min-height: auto; -webkit-background-size: cover; -moz-background-size: cover; background-size: cover; -o-background-size: cover; background-position: center; /*background-color: #241E22;*/ background-color: #1F181A; /*background-image: url('../img/header.jpg');*/ text-align: center; color: white; }
+header .header-content { position: relative; text-align: center; padding: 100px 15px 100px; width: 100%; }
+header .header-content .header-content-inner h1 { font-weight: 700; text-transform: uppercase; margin-top: 0; margin-bottom: 0; }
+header .header-content .header-content-inner img { width: 30%; /*60% for big logo*/ }
+header .header-content .header-content-inner hr { margin: 25px auto; }
+header .header-content .header-content-inner p { font-weight: 300; color: rgba(255, 255, 255, 0.7); margin-bottom: 50px; font-family: sans-serif; font-size: 20px; }
+@media (min-width: 768px) { header { min-height: 100%; }
+  header .header-content { position: absolute; top: 50%; -webkit-transform: translateY(-50%); -ms-transform: translateY(-50%); transform: translateY(-50%); padding: 0 50px; }
+  header .header-content .header-content-inner { max-width: 1000px; margin-left: auto; margin-right: auto; margin-top: 5%; }
+  header .header-content .header-content-inner p { font-size: 20px; max-width: 80%; margin-left: auto; margin-right: auto; } }
 
-.section-heading {
-  margin-top: 0;
-  margin-bottom: 40px; }
+.section-heading { margin-top: 0; margin-bottom: 40px; }
 
-.service-box {
-  max-width: 400px;
-  margin: 50px auto 0; }
-  @media (min-width: 992px) {
-    .service-box {
-      margin: 20px auto 0; } }
-  .service-box p {
-    margin-bottom: 0; }
+.service-box { max-width: 400px; margin: 50px auto 0; }
+@media (min-width: 992px) { .service-box { margin: 20px auto 0; } }
+.service-box p { margin-bottom: 0; }
 
-.portfolio-box {
-  position: relative;
-  display: block;
-  max-width: 650px;
-  margin: 0 auto; }
-  .portfolio-box .portfolio-box-caption {
-    color: white;
-    opacity: 0;
-    display: block;
-    background: rgba(249, 139, 7, 0.9);
-    position: absolute;
-    bottom: 0;
-    text-align: center;
-    width: 100%;
-    height: 100%;
-    -webkit-transition: all 0.35s;
-    -moz-transition: all 0.35s;
-    transition: all 0.35s; }
-    .portfolio-box .portfolio-box-caption .portfolio-box-caption-content {
-      width: 100%;
-      text-align: center;
-      position: absolute;
-      top: 50%;
-      transform: translateY(-50%); }
-      .portfolio-box .portfolio-box-caption .portfolio-box-caption-content .project-category,
-      .portfolio-box .portfolio-box-caption .portfolio-box-caption-content .project-name {
-        font-family: sans-serif,'Open Sans', 'Helvetica Neue', Arial;
-        padding: 0 15px; }
-      .portfolio-box .portfolio-box-caption .portfolio-box-caption-content .project-category {
-        text-transform: uppercase;
-        font-weight: 600;
-        font-size: 14px; }
-      .portfolio-box .portfolio-box-caption .portfolio-box-caption-content .project-name {
-        font-size: 18px; }
-  .portfolio-box:hover .portfolio-box-caption {
-    opacity: 1; }
-  @media (min-width: 768px) {
-    .portfolio-box .portfolio-box-caption .portfolio-box-caption-content .project-category {
-      font-size: 16px; }
-    .portfolio-box .portfolio-box-caption .portfolio-box-caption-content .project-name {
-      font-size: 22px; } }
+.portfolio-box { position: relative; display: block; max-width: 650px; margin: 0 auto; }
+.portfolio-box .portfolio-box-caption { color: white; opacity: 0; display: block; background: rgba(249, 139, 7, 0.9); position: absolute; bottom: 0; text-align: center; width: 100%; height: 100%; -webkit-transition: all 0.35s; -moz-transition: all 0.35s; transition: all 0.35s; }
+.portfolio-box .portfolio-box-caption .portfolio-box-caption-content { width: 100%; text-align: center; position: absolute; top: 50%; transform: translateY(-50%); }
+.portfolio-box .portfolio-box-caption .portfolio-box-caption-content .project-category, .portfolio-box .portfolio-box-caption .portfolio-box-caption-content .project-name { font-family: sans-serif,'Open Sans', 'Helvetica Neue', Arial; padding: 0 15px; }
+.portfolio-box .portfolio-box-caption .portfolio-box-caption-content .project-category { text-transform: uppercase; font-weight: 600; font-size: 14px; }
+.portfolio-box .portfolio-box-caption .portfolio-box-caption-content .project-name { font-size: 18px; }
+.portfolio-box:hover .portfolio-box-caption { opacity: 1; }
+@media (min-width: 768px) { .portfolio-box .portfolio-box-caption .portfolio-box-caption-content .project-category { font-size: 16px; }
+  .portfolio-box .portfolio-box-caption .portfolio-box-caption-content .project-name { font-size: 22px; } }
 
-.call-to-action h2 {
-  margin: 0 auto 43px; }
+.call-to-action h2 { margin: 0 auto 43px; }
 
-.text-primary {
-  color: #F98B07; }
+.text-primary { color: #F98B07; }
 
-.no-gutter > [class*='col-'] {
-  padding-right: 0;
-  padding-left: 0; }
+.no-gutter > [class*='col-'] { padding-right: 0; padding-left: 0; }
 
-.btn-default {
-  color: #1F181A;
-  background-color: white;
-  border-color: white;
-  -webkit-transition: all 0.35s;
-  -moz-transition: all 0.35s;
-  transition: all 0.35s; }
-  .btn-default:hover, .btn-default:focus, .btn-default.focus, .btn-default:active, .btn-default.active, .open > .dropdown-toggle .btn-default {
-    color: #1F181A;
-    background-color: #f2f2f2;
-    border-color: #ededed; }
-  .btn-default:active, .btn-default.active, .open > .dropdown-toggle .btn-default {
-    background-image: none; }
-  .btn-default.disabled, .btn-default.disabled:hover, .btn-default.disabled:focus, .btn-default.disabled.focus, .btn-default.disabled:active, .btn-default.disabled.active, .btn-default[disabled], .btn-default[disabled]:hover, .btn-default[disabled]:focus, .btn-default[disabled].focus, .btn-default[disabled]:active, .btn-default[disabled].active, fieldset[disabled] .btn-default, fieldset[disabled] .btn-default:hover, fieldset[disabled] .btn-default:focus, fieldset[disabled] .btn-default.focus, fieldset[disabled] .btn-default:active, fieldset[disabled] .btn-default.active {
-    background-color: white;
-    border-color: white; }
-  .btn-default .badge {
-    color: white;
-    background-color: #1F181A; }
+.btn-default { color: #1F181A; background-color: white; border-color: white; -webkit-transition: all 0.35s; -moz-transition: all 0.35s; transition: all 0.35s; }
+.btn-default:hover, .btn-default:focus, .btn-default.focus, .btn-default:active, .btn-default.active, .open > .dropdown-toggle .btn-default { color: #1F181A; background-color: #f2f2f2; border-color: #ededed; }
+.btn-default:active, .btn-default.active, .open > .dropdown-toggle .btn-default { background-image: none; }
+.btn-default.disabled, .btn-default.disabled:hover, .btn-default.disabled:focus, .btn-default.disabled.focus, .btn-default.disabled:active, .btn-default.disabled.active, .btn-default[disabled], .btn-default[disabled]:hover, .btn-default[disabled]:focus, .btn-default[disabled].focus, .btn-default[disabled]:active, .btn-default[disabled].active, fieldset[disabled] .btn-default, fieldset[disabled] .btn-default:hover, fieldset[disabled] .btn-default:focus, fieldset[disabled] .btn-default.focus, fieldset[disabled] .btn-default:active, fieldset[disabled] .btn-default.active { background-color: white; border-color: white; }
+.btn-default .badge { color: white; background-color: #1F181A; }
 
-.btn-primary {
-  color: white;
-  background-color: #F98B07;
-  border-color: #F98B07;
-  -webkit-transition: all 0.35s;
-  -moz-transition: all 0.35s;
-  transition: all 0.35s; }
-  .btn-primary:hover, .btn-primary:focus, .btn-primary.focus, .btn-primary:active, .btn-primary.active, .open > .dropdown-toggle .btn-primary {
-    color: white;
-    background-color: #e17d05;
-    border-color: #d77805; }
-  .btn-primary:active, .btn-primary.active, .open > .dropdown-toggle .btn-primary {
-    background-image: none; }
-  .btn-primary.disabled, .btn-primary.disabled:hover, .btn-primary.disabled:focus, .btn-primary.disabled.focus, .btn-primary.disabled:active, .btn-primary.disabled.active, .btn-primary[disabled], .btn-primary[disabled]:hover, .btn-primary[disabled]:focus, .btn-primary[disabled].focus, .btn-primary[disabled]:active, .btn-primary[disabled].active, fieldset[disabled] .btn-primary, fieldset[disabled] .btn-primary:hover, fieldset[disabled] .btn-primary:focus, fieldset[disabled] .btn-primary.focus, fieldset[disabled] .btn-primary:active, fieldset[disabled] .btn-primary.active {
-    background-color: #F98B07;
-    border-color: #F98B07; }
-  .btn-primary .badge {
-    color: #F98B07;
-    background-color: white; }
+.btn-primary { color: white; background-color: #F98B07; border-color: #F98B07; -webkit-transition: all 0.35s; -moz-transition: all 0.35s; transition: all 0.35s; }
+.btn-primary:hover, .btn-primary:focus, .btn-primary.focus, .btn-primary:active, .btn-primary.active, .open > .dropdown-toggle .btn-primary { color: white; background-color: #e17d05; border-color: #d77805; }
+.btn-primary:active, .btn-primary.active, .open > .dropdown-toggle .btn-primary { background-image: none; }
+.btn-primary.disabled, .btn-primary.disabled:hover, .btn-primary.disabled:focus, .btn-primary.disabled.focus, .btn-primary.disabled:active, .btn-primary.disabled.active, .btn-primary[disabled], .btn-primary[disabled]:hover, .btn-primary[disabled]:focus, .btn-primary[disabled].focus, .btn-primary[disabled]:active, .btn-primary[disabled].active, fieldset[disabled] .btn-primary, fieldset[disabled] .btn-primary:hover, fieldset[disabled] .btn-primary:focus, fieldset[disabled] .btn-primary.focus, fieldset[disabled] .btn-primary:active, fieldset[disabled] .btn-primary.active { background-color: #F98B07; border-color: #F98B07; }
+.btn-primary .badge { color: #F98B07; background-color: white; }
 
-.btn {
-  font-family: sans-serif,'Open Sans', 'Helvetica Neue', Arial;
-  border: none;
-  border-radius: 300px;
-  font-weight: 700;
-  text-transform: uppercase; }
+.btn { font-family: sans-serif,'Open Sans', 'Helvetica Neue', Arial; border: none; border-radius: 300px; font-weight: 700; text-transform: uppercase; }
 
-.btn-xl {
-  padding: 15px 30px; }
+.btn-xl { padding: 15px 30px; }
 
-#contact .fa {
-  color: #1F181A;
-  font-size: 4em; }
+#contact .fa { color: #1F181A; font-size: 4em; }
 
-@media (min-width: 1200px) {
-  #contact .col-lg-offset-3 {
-    margin-left: 23%; }
+@media (min-width: 1200px) { #contact .col-lg-offset-3 { margin-left: 23%; }
+  #contact .col-lg-4 { width: 24.333333%; }
+  #contact .col-lg-offset-1 { margin-left: 5.333333%; }
+  #contact .col-lg-2 { width: 24.666667%; }
+  #contact .col-lg-offset-media { margin-left: 22%; } }
+.thin-border { border: solid 1px #d6cccc; }
 
-  #contact .col-lg-4 {
-    width: 24.333333%; }
+#samples { padding: 76px 0 0 0; }
 
-  #contact .col-lg-offset-1 {
-    margin-left: 5.333333%; }
+#about p { font-size: 20px; }
 
-  #contact .col-lg-2 {
-    width: 24.666667%; }
+::-moz-selection { color: white; text-shadow: none; background: #1F181A; }
 
-  #contact .col-lg-offset-media {
-    margin-left: 22%; } }
-.thin-border {
-  border: solid 1px #d6cccc; }
+::selection { color: white; text-shadow: none; background: #1F181A; }
 
-#samples {
-  padding: 76px 0 0 0; }
+img::selection { color: white; background: transparent; }
 
-#about p {
-  font-size: 20px; }
+img::-moz-selection { color: white; background: transparent; }
 
-::-moz-selection {
-  color: white;
-  text-shadow: none;
-  background: #1F181A; }
-
-::selection {
-  color: white;
-  text-shadow: none;
-  background: #1F181A; }
-
-img::selection {
-  color: white;
-  background: transparent; }
-
-img::-moz-selection {
-  color: white;
-  background: transparent; }
-
-body {
-  -webkit-tap-highlight-color: #1F181A; }
+body { -webkit-tap-highlight-color: #1F181A; }
diff --git a/_site/feed.xml b/_site/feed.xml
index 97c6f44..9bd3762 100644
--- a/_site/feed.xml
+++ b/_site/feed.xml
@@ -1 +1 @@
-<?xml version="1.0" encoding="utf-8"?><feed xmlns="http://www.w3.org/2005/Atom" ><generator uri="https://jekyllrb.com/" version="3.5.2">Jekyll</generator><link href="http://localhost:4000/feed.xml" rel="self" type="application/atom+xml" /><link href="http://localhost:4000/" rel="alternate" type="text/html" /><updated>2017-09-21T22:20:00+10:00</updated><id>http://localhost:4000/</id><subtitle></subtitle></feed>
\ No newline at end of file
+<?xml version="1.0" encoding="utf-8"?><feed xmlns="http://www.w3.org/2005/Atom" ><generator uri="https://jekyllrb.com/" version="3.5.2">Jekyll</generator><link href="http://localhost:4000/feed.xml" rel="self" type="application/atom+xml" /><link href="http://localhost:4000/" rel="alternate" type="text/html" /><updated>2017-09-21T22:32:03+10:00</updated><id>http://localhost:4000/</id><title type="html">incubator-amaterasu-site</title><subtitle></subtitle></feed>
\ No newline at end of file
