diff --git a/CHANGELOG.md b/CHANGELOG.md
new file mode 100644
index 00000000..7bd98594
--- /dev/null
+++ b/CHANGELOG.md
@@ -0,0 +1,571 @@
+## [3.4.8](https://github.com/mmistakes/minimal-mistakes/releases/tag/3.4.8)
+
+### Enhancements
+
+- Improve type readability for larger viewports by bumping up base `font-size`. [#533](https://github.com/mmistakes/minimal-mistakes/issues/533)
+- Update Portuguese localized UI text. [#541](https://github.com/mmistakes/minimal-mistakes/pull/541)
+- Add `page.title` and via parameter to Twitter share link. [#538](https://github.com/mmistakes/minimal-mistakes/pull/538)
+
+### Bug Fixes
+
+- Fix Last.fm author profile URL. [#540](https://github.com/mmistakes/minimal-mistakes/pull/540)
+
+### Maintenance
+
+- Move Brazilian Portuguese localized text under `pt-BR` key.
+
+## [3.4.7](https://github.com/mmistakes/minimal-mistakes/releases/tag/3.4.7)
+
+### Enhancements
+
+- Add `layout` based and user-defined class names to `
` element for added CSS hooks. [#526](https://github.com/mmistakes/minimal-mistakes/pull/526)
+- Add simplified Chinese localized UI text. [#532](https://github.com/mmistakes/minimal-mistakes/pull/532)
+
+### Bug Fixes
+
+- Remove duplicate include of `base_path` in category-list.html [#522](https://github.com/mmistakes/minimal-mistakes/pull/522)
+
+## [3.4.6](https://github.com/mmistakes/minimal-mistakes/releases/tag/3.4.6)
+
+### Enhancements
+
+- Add Italian "comments" related localized UI text. [#514](https://github.com/mmistakes/minimal-mistakes/pull/514)
+
+### Bug Fixes
+
+- Disable `compress` HTML layout by default. To enable add `layout: compress` to `_layouts/default.html`.
+
+## [3.4.5](https://github.com/mmistakes/minimal-mistakes/releases/tag/3.4.5)
+
+### Enhancements
+
+- Improve line numbered code block styling when using `{% highlight linenos %}` tag. [#513](https://github.com/mmistakes/minimal-mistakes/issues/513)
+- Add English fallback to "Follow" button label. [#496](https://github.com/mmistakes/minimal-mistakes/pull/496)
+
+### Bug Fixes
+
+- Fix Firefox alignment issues with code blocks generated with the `{% highlight %}` tag. [#512](https://github.com/mmistakes/minimal-mistakes/issues/512)
+
+### Maintenance
+
+- Clarified comment for `author.stackoverflow` value used in author sidebar links. [#487](https://github.com/mmistakes/minimal-mistakes/pull/487)
+- Add list of localized text strings. [#488](https://github.com/mmistakes/minimal-mistakes/pull/488)
+- Add `{% highlight %}` code block examples to demo site.
+- Add documentation for using custom sidebar navigation menus. [#476](https://github.com/mmistakes/minimal-mistakes/issues/476)
+
+## [3.4.4](https://github.com/mmistakes/minimal-mistakes/releases/tag/3.4.4)
+
+### Enhancements
+
+- Add French "comments" related localized UI text. [#472](https://github.com/mmistakes/minimal-mistakes/pull/472)
+
+### Bug Fixes
+
+- Exclude `vendor` in Jekyll config file.
+- Fix Liquid syntax error for offending parenthesis. [#479](https://github.com/mmistakes/minimal-mistakes/issues/479)
+
+### Maintenance
+
+- Update gems: `colorator` (1.1.0), `forwardable-extended` (2.6.0), `github-pages` (93), `jekyll` (= 3.2.1), `minima` (= 1.0.1).
+
+## [3.4.3](https://github.com/mmistakes/minimal-mistakes/releases/tag/3.4.3)
+
+### Enhancements
+
+- Make ["honeypot" `input`](https://github.com/mmistakes/minimal-mistakes/commit/06a8249a69a37dddda7e2a5bfbe32056c1a9a607) in Staticman comment form less obvious to spam bots
+- Add padding to `.highlight` code blocks to better [align `overflow` scrollbar](https://github.com/mmistakes/minimal-mistakes/commit/e4abec0a6f7f8cff72505ca0754615df294fd5b3) to the bottom.
+- Add additional image options for Twitter card social sharing meta tags. [#466](https://github.com/mmistakes/minimal-mistakes/pull/466)
+- Add structured data markup for Staticman comments. [#458](https://github.com/mmistakes/minimal-mistakes/issues/458)
+
+### Bug Fixes
+
+- Format `og:locale` tag with `_` instead of `-`. [#462](https://github.com/mmistakes/minimal-mistakes/issues/462)
+
+### Maintenance
+
+- Add note to docs about using `url: http://localhost:4000` when working locally.
+
+## [3.4.2](https://github.com/mmistakes/minimal-mistakes/releases/tag/3.4.2)
+
+### Enhancements
+
+- Improve UX of static comment forms. [#448](https://github.com/mmistakes/minimal-mistakes/issues/448)
+
+## [3.4.1](https://github.com/mmistakes/minimal-mistakes/releases/tag/3.4.1)
+
+### Enhancements
+
+- Add `staticman.filename` configuration with UNIX timestamp for sorting data files. example ~> `comment-1470943149`.
+
+### Bug Fixes
+
+- Don't add `
-
- {{ content }}
-
+ {% include browser-upgrade.html %}
+ {% include masthead.html %}
+
+ {{ content }}
+
+
- {% include footer.html %}
+ {% include scripts.html %}
-
diff --git a/_layouts/page.html b/_layouts/page.html
deleted file mode 100644
index ce233ad7..00000000
--- a/_layouts/page.html
+++ /dev/null
@@ -1,14 +0,0 @@
----
-layout: default
----
-
-
-
-
-
- {{ content }}
-
-
-
diff --git a/_layouts/post.html b/_layouts/post.html
deleted file mode 100644
index 3a0fb52e..00000000
--- a/_layouts/post.html
+++ /dev/null
@@ -1,15 +0,0 @@
----
-layout: default
----
-
-
-
-
-
- {{ content }}
-
-
-
diff --git a/_layouts/single.html b/_layouts/single.html
new file mode 100644
index 00000000..54a18f0d
--- /dev/null
+++ b/_layouts/single.html
@@ -0,0 +1,76 @@
+---
+layout: default
+---
+
+{% include base_path %}
+
+{% if page.header.overlay_color or page.header.overlay_image or page.header.image %}
+ {% include page__hero.html %}
+{% endif %}
+
+{% if page.url != "/" and site.breadcrumbs %}
+ {% unless paginator %}
+ {% include breadcrumbs.html %}
+ {% endunless %}
+{% endif %}
+
+
+ {% include sidebar.html %}
+
+
+ {% if page.title %} {% endif %}
+ {% if page.excerpt %} {% endif %}
+ {% if page.date %} {% endif %}
+ {% if page.modified %} {% endif %}
+
+
+ {% unless page.header.overlay_color or page.header.overlay_image %}
+
+ {% endunless %}
+
+
+ {{ content }}
+ {% if page.link %}{% endif %}
+
+
+
+ {% if site.data.ui-text[site.locale].meta_label %}
+ {{ site.data.ui-text[site.locale].meta_label }}
+ {% endif %}
+ {% include page__taxonomy.html %}
+ {% if page.modified %}
+ {{ site.data.ui-text[site.locale].date_label | default: "Updated:" }} {{ page.modified | date: "%B %d, %Y" }}
+ {% elsif page.date %}
+ {{ site.data.ui-text[site.locale].date_label | default: "Updated:" }} {{ page.date | date: "%B %d, %Y" }}
+ {% endif %}
+
+
+ {% if page.share %}{% include social-share.html %}{% endif %}
+
+ {% include post_pagination.html %}
+
+
+ {% if site.comments.provider and page.comments %}
+ {% include comments.html %}
+ {% endif %}
+
+
+ {% comment %}{% endcomment %}
+ {% if page.id and page.related and site.related_posts.size > 0 %}
+
+ {% if site.data.ui-text[site.locale].related_label %}
+
{{ site.data.ui-text[site.locale].related_label | default: "You May Also Enjoy" }}
+ {% endif %}
+
+ {% for post in site.related_posts limit:4 %}
+ {% include archive-single.html type="grid" %}
+ {% endfor %}
+
+
+ {% endif %}
+
\ No newline at end of file
diff --git a/_layouts/splash.html b/_layouts/splash.html
new file mode 100644
index 00000000..d17d8fc7
--- /dev/null
+++ b/_layouts/splash.html
@@ -0,0 +1,22 @@
+---
+layout: default
+---
+
+{% include base_path %}
+
+{% if page.header.overlay_color or page.header.overlay_image or page.header.image %}
+ {% include page__hero.html %}
+{% endif %}
+
+
+
+ {% if page.title %} {% endif %}
+ {% if page.excerpt %} {% endif %}
+ {% if page.date %} {% endif %}
+ {% if page.modified %} {% endif %}
+
+
+
+
\ No newline at end of file
diff --git a/_pages/404.md b/_pages/404.md
new file mode 100644
index 00000000..b273202b
--- /dev/null
+++ b/_pages/404.md
@@ -0,0 +1,17 @@
+---
+title: "Page Not Found"
+layout: single
+excerpt: "Page not found. Your pixels are in another canvas."
+sitemap: false
+permalink: /404.html
+---
+
+Sorry, but the page you were trying to view does not exist --- perhaps you can try searching for it below.
+
+
+
diff --git a/_pages/about.md b/_pages/about.md
new file mode 100644
index 00000000..675b0af9
--- /dev/null
+++ b/_pages/about.md
@@ -0,0 +1,45 @@
+---
+layout: single
+permalink: /about/
+title: "About"
+excerpt: "on the project and the authors"
+---
+
+{% include base_path %}
+
+## Main authors and mantainers
+
+* Peter Boyle
+* Guido Cossu
+* Azusa Yamaguchi
+* Antonin Portelli
+
+
+## Description
+
+This library provides data parallel C++ container classes with internal memory layout
+that is transformed to map efficiently to SIMD architectures. CSHIFT facilities
+are provided, similar to HPF and cmfortran, and user control is given over the mapping of
+array indices to both MPI tasks and SIMD processing elements.
+
+* Identically shaped arrays then be processed with perfect data parallelisation.
+* Such identically shapped arrays are called conformable arrays.
+
+The transformation is based on the observation that Cartesian array processing involves
+identical processing to be performed on different regions of the Cartesian array.
+
+The library will both geometrically decompose into MPI tasks and across SIMD lanes.
+Local vector loops are parallelised with OpenMP pragmas.
+
+Data parallel array operations can then be specified with a SINGLE data parallel paradigm, but
+optimally use MPI, OpenMP and SIMD parallelism under the hood. This is a significant simplification
+for most programmers.
+
+The layout transformations are parametrised by the SIMD vector length. This adapts according to the architecture.
+Presently SSE4 (128 bit) AVX, AVX2 (256 bit) and IMCI and AVX512 (512 bit) targets are supported (ARM NEON and BG/Q QPX on the way).
+
+These are presented as `vRealF`, `vRealD`, `vComplexF`, and `vComplexD` internal vector data types. These may be useful in themselves for other programmers.
+The corresponding scalar types are named `RealF`, `RealD`, `ComplexF` and `ComplexD`.
+
+MPI, OpenMP, and SIMD parallelism are present in the library.
+Please see [this paper](https://arxiv.org/abs/1512.03487) for more detail.
diff --git a/_pages/docs.md b/_pages/docs.md
new file mode 100644
index 00000000..2690d169
--- /dev/null
+++ b/_pages/docs.md
@@ -0,0 +1,25 @@
+---
+layout: single
+title : "Documentation"
+author_profile: false
+excerpt: "Welcome to the Grid documentation pages"
+header:
+ overlay_color: "#333"
+ cta_label: "Download documentation"
+ cta_url: "https://www.google.com"
+sidebar:
+ nav : docs
+permalink: /docs/
+---
+
+{% include base_path %}
+
+These are the *Grid* documentation pages.
+
+```c_cpp
+void test() {
+ console.log("notice the blank line before this function?");
+}
+```
+
+{% include paginator.html %}
diff --git a/_pages/license.md b/_pages/license.md
new file mode 100644
index 00000000..449ec772
--- /dev/null
+++ b/_pages/license.md
@@ -0,0 +1,361 @@
+---
+layout: splash
+title : "GRID license"
+author_profile: false
+excerpt: "Grid is licensed under GPL 2.0"
+permalink: /license/
+header:
+ overlay_color: "#333"
+ cta_label: "GPL licenses FAQs"
+ cta_url: "https://www.gnu.org/licenses/gpl-faq.html"
+---
+
+{% include base_path %}
+
+GNU General Public License
+==========================
+
+_Version 2, June 1991_
+_Copyright © 1989, 1991 Free Software Foundation, Inc.,_
+_51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA_
+
+Everyone is permitted to copy and distribute verbatim copies
+of this license document, but changing it is not allowed.
+
+### Preamble
+
+The licenses for most software are designed to take away your
+freedom to share and change it. By contrast, the GNU General Public
+License is intended to guarantee your freedom to share and change free
+software--to make sure the software is free for all its users. This
+General Public License applies to most of the Free Software
+Foundation's software and to any other program whose authors commit to
+using it. (Some other Free Software Foundation software is covered by
+the GNU Lesser General Public License instead.) You can apply it to
+your programs, too.
+
+When we speak of free software, we are referring to freedom, not
+price. Our General Public Licenses are designed to make sure that you
+have the freedom to distribute copies of free software (and charge for
+this service if you wish), that you receive source code or can get it
+if you want it, that you can change the software or use pieces of it
+in new free programs; and that you know you can do these things.
+
+To protect your rights, we need to make restrictions that forbid
+anyone to deny you these rights or to ask you to surrender the rights.
+These restrictions translate to certain responsibilities for you if you
+distribute copies of the software, or if you modify it.
+
+For example, if you distribute copies of such a program, whether
+gratis or for a fee, you must give the recipients all the rights that
+you have. You must make sure that they, too, receive or can get the
+source code. And you must show them these terms so they know their
+rights.
+
+We protect your rights with two steps: **(1)** copyright the software, and
+**(2)** offer you this license which gives you legal permission to copy,
+distribute and/or modify the software.
+
+Also, for each author's protection and ours, we want to make certain
+that everyone understands that there is no warranty for this free
+software. If the software is modified by someone else and passed on, we
+want its recipients to know that what they have is not the original, so
+that any problems introduced by others will not reflect on the original
+authors' reputations.
+
+Finally, any free program is threatened constantly by software
+patents. We wish to avoid the danger that redistributors of a free
+program will individually obtain patent licenses, in effect making the
+program proprietary. To prevent this, we have made it clear that any
+patent must be licensed for everyone's free use or not licensed at all.
+
+The precise terms and conditions for copying, distribution and
+modification follow.
+
+### TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
+
+**0.** This License applies to any program or other work which contains
+a notice placed by the copyright holder saying it may be distributed
+under the terms of this General Public License. The “Program”, below,
+refers to any such program or work, and a “work based on the Program”
+means either the Program or any derivative work under copyright law:
+that is to say, a work containing the Program or a portion of it,
+either verbatim or with modifications and/or translated into another
+language. (Hereinafter, translation is included without limitation in
+the term “modification”.) Each licensee is addressed as “you”.
+
+Activities other than copying, distribution and modification are not
+covered by this License; they are outside its scope. The act of
+running the Program is not restricted, and the output from the Program
+is covered only if its contents constitute a work based on the
+Program (independent of having been made by running the Program).
+Whether that is true depends on what the Program does.
+
+**1.** You may copy and distribute verbatim copies of the Program's
+source code as you receive it, in any medium, provided that you
+conspicuously and appropriately publish on each copy an appropriate
+copyright notice and disclaimer of warranty; keep intact all the
+notices that refer to this License and to the absence of any warranty;
+and give any other recipients of the Program a copy of this License
+along with the Program.
+
+You may charge a fee for the physical act of transferring a copy, and
+you may at your option offer warranty protection in exchange for a fee.
+
+**2.** You may modify your copy or copies of the Program or any portion
+of it, thus forming a work based on the Program, and copy and
+distribute such modifications or work under the terms of Section 1
+above, provided that you also meet all of these conditions:
+
+* **a)** You must cause the modified files to carry prominent notices
+stating that you changed the files and the date of any change.
+* **b)** You must cause any work that you distribute or publish, that in
+whole or in part contains or is derived from the Program or any
+part thereof, to be licensed as a whole at no charge to all third
+parties under the terms of this License.
+* **c)** If the modified program normally reads commands interactively
+when run, you must cause it, when started running for such
+interactive use in the most ordinary way, to print or display an
+announcement including an appropriate copyright notice and a
+notice that there is no warranty (or else, saying that you provide
+a warranty) and that users may redistribute the program under
+these conditions, and telling the user how to view a copy of this
+License. (Exception: if the Program itself is interactive but
+does not normally print such an announcement, your work based on
+the Program is not required to print an announcement.)
+
+These requirements apply to the modified work as a whole. If
+identifiable sections of that work are not derived from the Program,
+and can be reasonably considered independent and separate works in
+themselves, then this License, and its terms, do not apply to those
+sections when you distribute them as separate works. But when you
+distribute the same sections as part of a whole which is a work based
+on the Program, the distribution of the whole must be on the terms of
+this License, whose permissions for other licensees extend to the
+entire whole, and thus to each and every part regardless of who wrote it.
+
+Thus, it is not the intent of this section to claim rights or contest
+your rights to work written entirely by you; rather, the intent is to
+exercise the right to control the distribution of derivative or
+collective works based on the Program.
+
+In addition, mere aggregation of another work not based on the Program
+with the Program (or with a work based on the Program) on a volume of
+a storage or distribution medium does not bring the other work under
+the scope of this License.
+
+**3.** You may copy and distribute the Program (or a work based on it,
+under Section 2) in object code or executable form under the terms of
+Sections 1 and 2 above provided that you also do one of the following:
+
+* **a)** Accompany it with the complete corresponding machine-readable
+source code, which must be distributed under the terms of Sections
+1 and 2 above on a medium customarily used for software interchange; or,
+* **b)** Accompany it with a written offer, valid for at least three
+years, to give any third party, for a charge no more than your
+cost of physically performing source distribution, a complete
+machine-readable copy of the corresponding source code, to be
+distributed under the terms of Sections 1 and 2 above on a medium
+customarily used for software interchange; or,
+* **c)** Accompany it with the information you received as to the offer
+to distribute corresponding source code. (This alternative is
+allowed only for noncommercial distribution and only if you
+received the program in object code or executable form with such
+an offer, in accord with Subsection b above.)
+
+The source code for a work means the preferred form of the work for
+making modifications to it. For an executable work, complete source
+code means all the source code for all modules it contains, plus any
+associated interface definition files, plus the scripts used to
+control compilation and installation of the executable. However, as a
+special exception, the source code distributed need not include
+anything that is normally distributed (in either source or binary
+form) with the major components (compiler, kernel, and so on) of the
+operating system on which the executable runs, unless that component
+itself accompanies the executable.
+
+If distribution of executable or object code is made by offering
+access to copy from a designated place, then offering equivalent
+access to copy the source code from the same place counts as
+distribution of the source code, even though third parties are not
+compelled to copy the source along with the object code.
+
+**4.** You may not copy, modify, sublicense, or distribute the Program
+except as expressly provided under this License. Any attempt
+otherwise to copy, modify, sublicense or distribute the Program is
+void, and will automatically terminate your rights under this License.
+However, parties who have received copies, or rights, from you under
+this License will not have their licenses terminated so long as such
+parties remain in full compliance.
+
+**5.** You are not required to accept this License, since you have not
+signed it. However, nothing else grants you permission to modify or
+distribute the Program or its derivative works. These actions are
+prohibited by law if you do not accept this License. Therefore, by
+modifying or distributing the Program (or any work based on the
+Program), you indicate your acceptance of this License to do so, and
+all its terms and conditions for copying, distributing or modifying
+the Program or works based on it.
+
+**6.** Each time you redistribute the Program (or any work based on the
+Program), the recipient automatically receives a license from the
+original licensor to copy, distribute or modify the Program subject to
+these terms and conditions. You may not impose any further
+restrictions on the recipients' exercise of the rights granted herein.
+You are not responsible for enforcing compliance by third parties to
+this License.
+
+**7.** If, as a consequence of a court judgment or allegation of patent
+infringement or for any other reason (not limited to patent issues),
+conditions are imposed on you (whether by court order, agreement or
+otherwise) that contradict the conditions of this License, they do not
+excuse you from the conditions of this License. If you cannot
+distribute so as to satisfy simultaneously your obligations under this
+License and any other pertinent obligations, then as a consequence you
+may not distribute the Program at all. For example, if a patent
+license would not permit royalty-free redistribution of the Program by
+all those who receive copies directly or indirectly through you, then
+the only way you could satisfy both it and this License would be to
+refrain entirely from distribution of the Program.
+
+If any portion of this section is held invalid or unenforceable under
+any particular circumstance, the balance of the section is intended to
+apply and the section as a whole is intended to apply in other
+circumstances.
+
+It is not the purpose of this section to induce you to infringe any
+patents or other property right claims or to contest validity of any
+such claims; this section has the sole purpose of protecting the
+integrity of the free software distribution system, which is
+implemented by public license practices. Many people have made
+generous contributions to the wide range of software distributed
+through that system in reliance on consistent application of that
+system; it is up to the author/donor to decide if he or she is willing
+to distribute software through any other system and a licensee cannot
+impose that choice.
+
+This section is intended to make thoroughly clear what is believed to
+be a consequence of the rest of this License.
+
+**8.** If the distribution and/or use of the Program is restricted in
+certain countries either by patents or by copyrighted interfaces, the
+original copyright holder who places the Program under this License
+may add an explicit geographical distribution limitation excluding
+those countries, so that distribution is permitted only in or among
+countries not thus excluded. In such case, this License incorporates
+the limitation as if written in the body of this License.
+
+**9.** The Free Software Foundation may publish revised and/or new versions
+of the General Public License from time to time. Such new versions will
+be similar in spirit to the present version, but may differ in detail to
+address new problems or concerns.
+
+Each version is given a distinguishing version number. If the Program
+specifies a version number of this License which applies to it and “any
+later version”, you have the option of following the terms and conditions
+either of that version or of any later version published by the Free
+Software Foundation. If the Program does not specify a version number of
+this License, you may choose any version ever published by the Free Software
+Foundation.
+
+**10.** If you wish to incorporate parts of the Program into other free
+programs whose distribution conditions are different, write to the author
+to ask for permission. For software which is copyrighted by the Free
+Software Foundation, write to the Free Software Foundation; we sometimes
+make exceptions for this. Our decision will be guided by the two goals
+of preserving the free status of all derivatives of our free software and
+of promoting the sharing and reuse of software generally.
+
+### NO WARRANTY
+
+**11.** BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
+FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN
+OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
+PROVIDE THE PROGRAM “AS IS” WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
+OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS
+TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE
+PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
+REPAIR OR CORRECTION.
+
+**12.** IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
+WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
+REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
+INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
+OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
+TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
+YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
+PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
+POSSIBILITY OF SUCH DAMAGES.
+
+END OF TERMS AND CONDITIONS
+
+### How to Apply These Terms to Your New Programs
+
+If you develop a new program, and you want it to be of the greatest
+possible use to the public, the best way to achieve this is to make it
+free software which everyone can redistribute and change under these terms.
+
+To do so, attach the following notices to the program. It is safest
+to attach them to the start of each source file to most effectively
+convey the exclusion of warranty; and each file should have at least
+the “copyright” line and a pointer to where the full notice is found.
+
+
+ Copyright (C)
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License along
+ with this program; if not, write to the Free Software Foundation, Inc.,
+ 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+Also add information on how to contact you by electronic and paper mail.
+
+If the program is interactive, make it output a short notice like this
+when it starts in an interactive mode:
+
+ Gnomovision version 69, Copyright (C) year name of author
+ Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
+ This is free software, and you are welcome to redistribute it
+ under certain conditions; type `show c' for details.
+
+The hypothetical commands `show w` and `show c` should show the appropriate
+parts of the General Public License. Of course, the commands you use may
+be called something other than `show w` and `show c`; they could even be
+mouse-clicks or menu items--whatever suits your program.
+
+You should also get your employer (if you work as a programmer) or your
+school, if any, to sign a “copyright disclaimer” for the program, if
+necessary. Here is a sample; alter the names:
+
+ Yoyodyne, Inc., hereby disclaims all copyright interest in the program
+ `Gnomovision' (which makes passes at compilers) written by James Hacker.
+
+ , 1 April 1989
+ Ty Coon, President of Vice
+
+This General Public License does not permit incorporating your program into
+proprietary programs. If your program is a subroutine library, you may
+consider it more useful to permit linking proprietary applications with the
+library. If this is what you want to do, use the GNU Lesser General
+Public License instead of this License.
+
+
+
+
+
+
+{% for post in paginator.posts %}
+ {% include archive-single.html %}
+{% endfor %}
+
+{% include paginator.html %}
\ No newline at end of file
diff --git a/_posts/2016-10-12-welcome-to-jekyll.markdown b/_posts/2016-10-12-welcome-to-jekyll.markdown
deleted file mode 100644
index 3fd6b022..00000000
--- a/_posts/2016-10-12-welcome-to-jekyll.markdown
+++ /dev/null
@@ -1,25 +0,0 @@
----
-layout: post
-title: "Welcome to Jekyll!"
-date: 2016-10-12 12:20:45 +0100
-categories: jekyll update
----
-You’ll find this post in your `_posts` directory. Go ahead and edit it and re-build the site to see your changes. You can rebuild the site in many different ways, but the most common way is to run `jekyll serve`, which launches a web server and auto-regenerates your site when a file is updated.
-
-To add new posts, simply add a file in the `_posts` directory that follows the convention `YYYY-MM-DD-name-of-post.ext` and includes the necessary front matter. Take a look at the source for this post to get an idea about how it works.
-
-Jekyll also offers powerful support for code snippets:
-
-{% highlight ruby %}
-def print_hi(name)
- puts "Hi, #{name}"
-end
-print_hi('Tom')
-#=> prints 'Hi, Tom' to STDOUT.
-{% endhighlight %}
-
-Check out the [Jekyll docs][jekyll-docs] for more info on how to get the most out of Jekyll. File all bugs/feature requests at [Jekyll’s GitHub repo][jekyll-gh]. If you have questions, you can ask them on [Jekyll Talk][jekyll-talk].
-
-[jekyll-docs]: http://jekyllrb.com/docs/home
-[jekyll-gh]: https://github.com/jekyll/jekyll
-[jekyll-talk]: https://talk.jekyllrb.com/
diff --git a/_sass/_animations.scss b/_sass/_animations.scss
new file mode 100644
index 00000000..25ef77fb
--- /dev/null
+++ b/_sass/_animations.scss
@@ -0,0 +1,21 @@
+/* ==========================================================================
+ ANIMATIONS
+ ========================================================================== */
+
+@-webkit-keyframes intro {
+ 0% {
+ opacity: 0;
+ }
+ 100% {
+ opacity: 1;
+ }
+}
+
+@keyframes intro {
+ 0% {
+ opacity: 0;
+ }
+ 100% {
+ opacity: 1;
+ }
+}
\ No newline at end of file
diff --git a/_sass/_archive.scss b/_sass/_archive.scss
new file mode 100644
index 00000000..0509f814
--- /dev/null
+++ b/_sass/_archive.scss
@@ -0,0 +1,238 @@
+/* ==========================================================================
+ ARCHIVE
+ ========================================================================== */
+
+.archive {
+ margin-bottom: 2em;
+
+ @include breakpoint($medium) {
+ @include span(12 of 12);
+ }
+
+ @include breakpoint($large) {
+ @include span(10 of 12 last);
+ @include prefix(0.5 of 12);
+ }
+
+ a {
+ color: inherit;
+ text-decoration: none;
+ }
+}
+
+.archive__subtitle {
+ margin: 1.414em 0 0;
+ padding-bottom: 0.5em;
+ font-size: $type-size-5;
+ color: mix(#fff, $gray, 25%);
+ border-bottom: 1px solid $border-color;
+
+ + .list__item .archive__item-title {
+ margin-top: 0.5em;
+ }
+}
+
+.archive__item-title {
+ margin-bottom: 0.25em;
+ font-family: $sans-serif-narrow;
+
+ a + a {
+ opacity: 0.5;
+ }
+}
+
+/* remove border*/
+.page__content {
+
+ .archive__item-title {
+ margin-top: 1em;
+ border-bottom: none;
+ }
+}
+
+.archive__item-excerpt {
+ margin-top: 0;
+ font-size: $type-size-6;
+
+ & + p {
+ text-indent: 0;
+ }
+}
+
+.archive__item-teaser {
+ border-radius: $border-radius;
+ overflow: hidden;
+ img {
+ width: 100%;
+ }
+}
+
+.archive__item:hover {
+ .archive__item-teaser {
+ box-shadow: 0 0 10px rgba(#000, 0.25);
+ }
+
+ .archive__item-title {
+ text-decoration: underline;
+ }
+}
+
+
+/*
+ List view
+ ========================================================================== */
+
+.list__item {
+ @include breakpoint($medium) {
+ padding-right: $right-sidebar-width-narrow;
+ }
+
+ @include breakpoint($large) {
+ padding-right: $right-sidebar-width;
+ }
+
+ @include breakpoint($x-large) {
+ padding-right: $right-sidebar-width-wide;
+ }
+
+ .page__meta {
+ margin: 0 0 4px;
+ }
+}
+
+
+/*
+ Grid view
+ ========================================================================== */
+
+.grid__item {
+ margin-bottom: 2em;
+
+ .page__meta {
+ margin: 0 0 4px;
+ }
+
+ .archive__item-title {
+ margin-top: 0.5em;
+ font-size: $type-size-5;
+ }
+
+ .archive__item-excerpt {
+ display: none;
+ }
+
+ @include breakpoint($small) {
+ @include gallery(5 of 10);
+ .archive__item-teaser {
+ max-height: 200px;
+ }
+ }
+
+ @include breakpoint($medium) {
+ margin-left: 0; /* reset before mixin does its thing*/
+ margin-right: 0; /* reset before mixin does its thing*/
+ @include gallery(2.5 of 10);
+
+ .archive__item-teaser {
+ max-height: 120px;
+ }
+
+ .archive__item-excerpt {
+ display: block;
+ font-size: $type-size-6;
+ }
+ }
+}
+
+
+/*
+ Features
+ ========================================================================== */
+
+.feature__wrapper {
+ @include clearfix();
+ margin-bottom: 2em;
+ border-bottom: 1px solid $border-color;
+}
+
+.feature__item {
+ margin-bottom: 2em;
+ font-size: 1.25rem;
+
+ @include breakpoint($small) {
+ margin-bottom: 0;
+ @include gallery(4 of 12);
+
+ .feature__item-teaser {
+ max-height: 200px;
+ overflow: hidden;
+ }
+ }
+
+ &--left {
+ @include full();
+ font-size: 1.25rem;
+
+ .archive__item-teaser {
+ margin-bottom: 2em;
+ }
+
+ @include breakpoint($small) {
+ .archive__item-teaser {
+ @include span(5 of 12);
+ }
+
+ .archive__item-body {
+ @include span(7 of 12 last);
+ @include prefix(0.5 of 12);
+ @include suffix(1 of 12);
+ }
+ }
+ }
+
+ &--right {
+ @include full();
+ font-size: 1.25rem;
+
+ .archive__item-teaser {
+ margin-bottom: 2em;
+ }
+
+ @include breakpoint($small) {
+ text-align: right;
+
+ .archive__item-teaser {
+ @include span(5 of 12 rtl);
+ }
+
+ .archive__item-body {
+ @include span(7 of 12 last rtl);
+ @include prefix(0.5 of 12);
+ @include suffix(1 of 12);
+ }
+ }
+ }
+
+ &--center {
+ @include full();
+ font-size: 1.25rem;
+
+ .archive__item-teaser {
+ margin-bottom: 2em;
+ }
+
+ @include breakpoint($small) {
+ text-align: center;
+
+ .archive__item-teaser {
+ margin: 0 auto;
+ width: span(5 of 12);
+ }
+
+ .archive__item-body {
+ margin: 0 auto;
+ width: span(7 of 12);
+ }
+ }
+ }
+}
diff --git a/_sass/_base.scss b/_sass/_base.scss
index 0883c3cd..c5311a29 100644
--- a/_sass/_base.scss
+++ b/_sass/_base.scss
@@ -1,206 +1,315 @@
-/**
- * Reset some basic elements
- */
-body, h1, h2, h3, h4, h5, h6,
-p, blockquote, pre, hr,
-dl, dd, ol, ul, figure {
- margin: 0;
- padding: 0;
+/* ==========================================================================
+ BASE ELEMENTS
+ ========================================================================== */
+
+html {
+ /* sticky footer fix */
+ position: relative;
+ min-height: 100%;
}
-
-
-/**
- * Basic styling
- */
body {
- font: $base-font-weight #{$base-font-size}/#{$base-line-height} $base-font-family;
- color: $text-color;
- background-color: $background-color;
- -webkit-text-size-adjust: 100%;
- -webkit-font-feature-settings: "kern" 1;
- -moz-font-feature-settings: "kern" 1;
- -o-font-feature-settings: "kern" 1;
- font-feature-settings: "kern" 1;
- font-kerning: normal;
+ margin: 0;
+ padding: 0;
+ color: $text-color;
+ font-family: $global-font-family;
+ line-height: 1.5;
+
+ &.overflow--hidden {
+ /* when primary navigation is visible, the content in the background won't scroll */
+ overflow: hidden;
+ }
}
-
-
-/**
- * Set `margin-bottom` to maintain vertical rhythm
- */
-h1, h2, h3, h4, h5, h6,
-p, blockquote, pre,
-ul, ol, dl, figure,
-%vertical-rhythm {
- margin-bottom: $spacing-unit / 2;
-}
-
-
-
-/**
- * Images
- */
-img {
- max-width: 100%;
- vertical-align: middle;
-}
-
-
-
-/**
- * Figures
- */
-figure > img {
- display: block;
-}
-
-figcaption {
- font-size: $small-font-size;
-}
-
-
-
-/**
- * Lists
- */
-ul, ol {
- margin-left: $spacing-unit;
-}
-
-li {
- > ul,
- > ol {
- margin-bottom: 0;
- }
-}
-
-
-
-/**
- * Headings
- */
h1, h2, h3, h4, h5, h6 {
- font-weight: $base-font-weight;
+ margin: 2em 0 0.5em;
+ line-height: 1.2;
+ font-family: $header-font-family;
+ font-weight: bold;
}
-
-
-/**
- * Links
- */
-a {
- color: $brand-color;
- text-decoration: none;
-
- &:visited {
- color: darken($brand-color, 15%);
- }
-
- &:hover {
- color: $text-color;
- text-decoration: underline;
- }
+h1 {
+ margin-top: 0;
+ font-size: $type-size-3;
}
+h2 {
+ font-size: $type-size-4;
+}
+h3 {
+ font-size: $type-size-5;
+}
+
+h4 {
+ font-size: $type-size-6;
+}
+
+h5 {
+ font-size: $type-size-6;
+}
+
+h6 {
+ font-size: $type-size-6;
+}
+
+small, .small {
+ font-size: $type-size-6;
+}
+
+p {
+ margin-bottom: 1.3em;
+}
+
+u,
+ins {
+ text-decoration: none;
+ border-bottom: 1px solid $text-color;
+ a {
+ color: inherit;
+ }
+}
+
+del a {
+ color: inherit;
+}
+
+/* reduce orphans and widows when printing */
+
+p, pre, blockquote, ul, ol, dl, figure, table, fieldset {
+ orphans: 3;
+ widows: 3;
+}
+
+/* abbreviations */
+
+abbr[title],
+abbr[data-original-title] {
+ text-decoration: none;
+ cursor: help;
+ border-bottom: 1px dotted $text-color;
+}
+
+/* blockquotes */
-/**
- * Blockquotes
- */
blockquote {
- color: $grey-color;
- border-left: 4px solid $grey-color-light;
- padding-left: $spacing-unit / 2;
- font-size: 18px;
- letter-spacing: -1px;
+ margin: 2em 1em 2em 0;
+ padding-left: 1em;
+ padding-right: 1em;
+ font-style: italic;
+ border-left: 0.25em solid $primary-color;
+
+ cite {
font-style: italic;
- > :last-child {
- margin-bottom: 0;
+ &:before {
+ content: "\2014";
+ padding-right: 5px;
}
+ }
}
+/* links */
+a {
+ &:focus {
+ @extend %tab-focus;
+ }
-/**
- * Code formatting
- */
-pre,
-code {
- font-size: 15px;
- border: 1px solid $grey-color-light;
- border-radius: 3px;
- background-color: #eef;
+ &:hover,
+ &:active {
+ outline: 0;
+ }
}
-code {
- padding: 1px 5px;
+/* code */
+
+tt, code, kbd, samp, pre {
+ font-family: $monospace;
}
pre {
- padding: 8px 12px;
- overflow-x: auto;
+ overflow-x: auto; /* add scrollbars to wide code blocks*/
+}
- > code {
- border: 0;
- padding-right: 0;
- padding-left: 0;
+p > code,
+a > code,
+li > code,
+figcaption > code,
+td > code {
+ padding-top: 0.1rem;
+ padding-bottom: 0.1rem;
+ font-size: $type-size-6;
+ background: $code-background-color;
+ border: 1px solid $lighter-gray;
+ border-radius: $border-radius;
+ box-shadow: $box-shadow;
+
+ &:before, &:after {
+ letter-spacing: -0.2em;
+ content: "\00a0"; /* non-breaking space*/
+ }
+}
+
+/* horizontal rule */
+
+hr {
+ display: block;
+ margin: 1em 0;
+ border: 0;
+ border-top: 1px solid $border-color;
+}
+
+/* lists */
+
+ul li,
+ol li {
+ margin-bottom: 0.5em;
+}
+
+li ul,
+li ol {
+ margin-top: 0.5em;
+}
+
+/*
+ Media and embeds
+ ========================================================================== */
+
+/* Figures and images */
+
+figure {
+ display: -webkit-box;
+ display: flex;
+ -webkit-box-pack: justify;
+ justify-content: space-between;
+ -webkit-box-align: start;
+ align-items: flex-start;
+ flex-wrap: wrap;
+ margin: 2em 0;
+
+ img,
+ iframe,
+ .fluid-width-video-wrapper {
+ margin-bottom: 1em;
+ }
+
+ img {
+ width: 100%;
+ border-radius: $border-radius;
+ -webkit-transition: $global-transition;
+ transition: $global-transition;
+ }
+
+ > a {
+ display: block;
+ }
+
+ &.half {
+ > a,
+ > img {
+ @include breakpoint($small) {
+ width: calc(50% - 0.5em);
+ }
}
+
+ figcaption {
+ width: 100%;
+ }
+ }
+
+ &.third {
+ > a,
+ > img {
+ @include breakpoint($small) {
+ width: calc(33.3333% - 0.5em);
+ }
+ }
+
+ figcaption {
+ width: 100%;
+ }
+ }
+}
+
+/* Figure captions */
+
+figcaption {
+ margin-bottom: 0.5em;
+ color: mix(#fff, $text-color, 25%);
+ font-family: $caption-font-family;
+ font-size: $type-size-6;
+
+ a {
+ color: inherit;
+ text-decoration: none;
+ border-bottom: 1px solid $light-gray;
+ -webkit-transition: $global-transition;
+ transition: $global-transition;
+
+ &:hover {
+ color: #000;
+ border-bottom-color: #000;
+ }
+ }
}
+/* Fix IE9 SVG bug */
+
+svg:not(:root) {
+ overflow: hidden;
+}
+
+
+/*
+ Navigation lists
+ ========================================================================== */
/**
- * Wrapper
+ * Removes margins, padding, and bullet points from navigation lists
+ *
+ * Example usage:
+ *
+ *
+ *
*/
-.wrapper {
- max-width: -webkit-calc(#{$content-width} - (#{$spacing-unit} * 2));
- max-width: calc(#{$content-width} - (#{$spacing-unit} * 2));
- margin-right: auto;
- margin-left: auto;
- padding-right: $spacing-unit;
- padding-left: $spacing-unit;
- @extend %clearfix;
- @include media-query($on-laptop) {
- max-width: -webkit-calc(#{$content-width} - (#{$spacing-unit}));
- max-width: calc(#{$content-width} - (#{$spacing-unit}));
- padding-right: $spacing-unit / 2;
- padding-left: $spacing-unit / 2;
- }
+nav {
+ ul {
+ margin: 0;
+ padding: 0;
+ }
+
+ li {
+ list-style: none;
+ }
+
+ a {
+ text-decoration: none;
+ }
+
+ /* override white-space for nested lists */
+ ul li,
+ ol li {
+ margin-bottom: 0;
+ }
+
+ li ul,
+ li ol {
+ margin-top: 0;
+ }
}
+/*
+ Global animation transition
+ ========================================================================== */
-
-/**
- * Clearfix
- */
-%clearfix {
-
- &:after {
- content: "";
- display: table;
- clear: both;
- }
-}
-
-
-
-/**
- * Icons
- */
-.icon {
-
- > svg {
- display: inline-block;
- width: 16px;
- height: 16px;
- vertical-align: middle;
-
- path {
- fill: $grey-color;
- }
- }
-}
+b, i, strong, em, blockquote, p, q, span, figure, img, h1, h2, header, input, a, tr, td, form button, input[type="submit"], .btn, .highlight, .archive__item-teaser {
+ -webkit-transition: $global-transition;
+ transition: $global-transition;
+}
\ No newline at end of file
diff --git a/_sass/_buttons.scss b/_sass/_buttons.scss
new file mode 100644
index 00000000..d6cf90ea
--- /dev/null
+++ b/_sass/_buttons.scss
@@ -0,0 +1,153 @@
+/* ==========================================================================
+ BUTTONS
+ ========================================================================== */
+
+/*
+ Default button
+ ========================================================================== */
+
+.btn {
+ /* default button */
+ display: inline-block;
+ margin-bottom: 0.25em;
+ padding: 0.5em 1em;
+ color: #fff !important;
+ font-family: $sans-serif;
+ font-size: $type-size-6;
+ font-weight: bold;
+ text-align: center;
+ text-decoration: none;
+ background-color: $primary-color;
+ border: 0 !important;
+ border-radius: $border-radius;
+ cursor: pointer;
+
+ &:hover {
+ background-color: mix(white, #000, 20%);
+ }
+
+ .icon {
+ margin-right: 0.5em;
+ }
+
+ .icon + .hidden {
+ margin-left: -0.5em; /* override for hidden text*/
+ }
+
+ /* fills width of parent container */
+
+ &--block {
+ display: block;
+ width: 100%;
+
+ + .btn--block {
+ margin-top: 0.25em;
+ }
+ }
+
+ /* for dark backgrounds */
+
+ &--inverse {
+ color: $gray !important;
+ border: 1px solid $light-gray !important; /* override*/
+ background-color: #fff;
+
+ &:hover {
+ color: #fff !important;
+ border-color: $gray;
+ }
+ }
+
+ /* light outline */
+
+ &--light-outline {
+ border: 1px solid #fff !important; /* override*/
+ background-color: transparent;
+ }
+
+ /* information */
+
+ &--info {
+ background-color: $info-color;
+
+ &:hover {
+ background-color: mix(#000, $info-color, 20%);
+ }
+ }
+
+ /* warning */
+
+ &--warning {
+ background-color: $warning-color;
+
+ &:hover {
+ background-color: mix(#000, $warning-color, 20%);
+ }
+ }
+
+ /* success */
+
+ &--success {
+ background-color: $success-color;
+
+ &:hover {
+ background-color: mix(#000, $success-color, 20%);
+ }
+ }
+
+ /* danger */
+
+ &--danger {
+ background-color: $danger-color;
+
+ &:hover {
+ background-color: mix(#000, $danger-color, 20%);
+ }
+ }
+
+ /* disabled */
+
+ &--disabled {
+ pointer-events: none;
+ cursor: not-allowed;
+ filter: alpha(opacity=65);
+ box-shadow: none;
+ opacity: 0.65;
+ }
+
+ /* social buttons */
+
+ $social:
+ (facebook, $facebook-color),
+ (twitter, $twitter-color),
+ (google-plus, $google-plus-color),
+ (linkedin, $linkedin-color);
+
+ @each $socialnetwork, $color in $social {
+ &--#{$socialnetwork} {
+ background-color: $color;
+
+ &:hover {
+ background-color: mix(#000, $color, 20%);
+ }
+ }
+ }
+
+ /* extra large button */
+
+ &--x-large {
+ font-size: $type-size-4;
+ }
+
+ /* large button */
+
+ &--large {
+ font-size: $type-size-5;
+ }
+
+ /* small button */
+
+ &--small {
+ font-size: $type-size-7;
+ }
+}
\ No newline at end of file
diff --git a/_sass/_footer.scss b/_sass/_footer.scss
new file mode 100644
index 00000000..598bd400
--- /dev/null
+++ b/_sass/_footer.scss
@@ -0,0 +1,80 @@
+/* ==========================================================================
+ FOOTER
+ ========================================================================== */
+
+.page__footer {
+ @include full();
+ @include clearfix;
+ /* sticky footer fix start */
+ position: absolute;
+ bottom: 0;
+ width: 100%;
+ clear: both;
+ height: auto;
+ /* sticky footer fix end */
+ margin-top: 3em;
+ color: mix(#fff, $gray, 25%);
+ -webkit-animation: intro 0.3s both;
+ animation: intro 0.3s both;
+ -webkit-animation-delay: 0.45s;
+ animation-delay: 0.45s;
+ background-color: $lighter-gray;
+ border-top: 1px solid $light-gray;
+
+ footer {
+ @include container;
+ @include clearfix;
+ margin-top: 2em;
+ padding: 0 1em 2em;
+
+ @include breakpoint($x-large) {
+ max-width: $x-large;
+ }
+ }
+
+ a {
+ color: inherit;
+ text-decoration: none;
+
+ &:hover {
+ text-decoration: underline;
+ }
+ }
+
+ .fa {
+ color: mix(#fff, $gray, 25%);
+ }
+}
+
+.page__footer-copyright {
+ font-family: $global-font-family;
+ font-size: $type-size-7;
+}
+
+.page__footer-follow {
+
+ ul {
+ margin: 0;
+ padding: 0;
+ list-style-type: none;
+ }
+
+ li {
+ display: inline-block;
+ padding-top: 5px;
+ padding-bottom: 5px;
+ font-family: $sans-serif-narrow;
+ font-size: $type-size-6;
+ text-transform: uppercase;
+ }
+
+ li + li:before {
+ content: "";
+ padding-right: 5px;
+ }
+
+ a {
+ padding-right: 10px;
+ font-weight: bold;
+ }
+}
\ No newline at end of file
diff --git a/_sass/_forms.scss b/_sass/_forms.scss
new file mode 100644
index 00000000..a1f0f146
--- /dev/null
+++ b/_sass/_forms.scss
@@ -0,0 +1,391 @@
+/* ==========================================================================
+ Forms
+ ========================================================================== */
+
+form {
+ margin: 0 0 5px 0;
+
+ fieldset {
+ margin-bottom: 5px;
+ padding: 0;
+ border-width: 0;
+ }
+
+ legend {
+ display: block;
+ width: 100%;
+ margin-bottom: 5px * 2;
+ *margin-left: -7px;
+ padding: 0;
+ color: $text-color;
+ border: 0;
+ border-bottom: 1px solid mix(#fff, #000, 80%);
+ white-space: normal;
+ }
+
+ p {
+ margin-bottom: 5px / 2;
+ }
+
+ ul {
+ list-style-type: none;
+ margin: 0 0 5px 0;
+ padding: 0;
+ }
+
+ br {
+ display: none;
+ }
+}
+
+label,
+input,
+button,
+select,
+textarea {
+ vertical-align: baseline;
+ *vertical-align: middle;
+}
+
+input,
+button,
+select,
+textarea {
+ box-sizing: border-box;
+ font-family: $sans-serif;
+}
+
+label {
+ display: block;
+ margin-bottom: 0.25em;
+ color: $text-color;
+ cursor: pointer;
+
+ small {
+ font-size: $type-size-6;
+ }
+
+ input,
+ textarea,
+ select {
+ display: block;
+ }
+}
+
+input,
+textarea,
+select {
+ display: inline-block;
+ width: 100%;
+ padding: 0.25em;
+ margin-bottom: 0.5em;
+ color: $text-color;
+ background-color: #fff;
+ border: 1px solid mix(#fff, #000, 80%);
+ border-radius: $border-radius;
+ box-shadow: $box-shadow;
+
+ &:hover {
+ border-color: mix(#fff, $primary-color, 50%);
+ }
+}
+
+.input-mini {
+ width: 60px;
+}
+
+.input-small {
+ width: 90px;
+}
+
+input[type="image"],
+input[type="checkbox"],
+input[type="radio"] {
+ width: auto;
+ height: auto;
+ padding: 0;
+ margin: 3px 0;
+ *margin-top: 0;
+ line-height: normal;
+ cursor: pointer;
+ border-radius: 0;
+ border: 0 \9;
+}
+
+input[type="checkbox"],
+input[type="radio"] {
+ box-sizing: border-box;
+ padding: 0;
+ *width: 13px;
+ *height: 13px;
+}
+
+input[type="image"] {
+ border: 0;
+ box-shadow: none;
+}
+
+input[type="file"] {
+ width: auto;
+ padding: initial;
+ line-height: initial;
+ border: initial;
+ background-color: transparent;
+ background-color: initial;
+ box-shadow: none;
+}
+
+input[type="button"],
+input[type="reset"],
+input[type="submit"] {
+ width: auto;
+ height: auto;
+ cursor: pointer;
+ *overflow: visible;
+}
+
+select,
+input[type="file"] {
+ *margin-top: 4px;
+}
+
+select {
+ width: auto;
+ background-color: #fff;
+}
+
+select[multiple],
+select[size] {
+ height: auto;
+}
+
+textarea {
+ resize: vertical;
+ height: auto;
+ overflow: auto;
+ vertical-align: top;
+}
+
+input[type="hidden"] {
+ display: none;
+}
+
+.form {
+ position: relative;
+}
+
+.radio,
+.checkbox {
+ padding-left: 18px;
+ font-weight: normal;
+}
+
+.radio input[type="radio"],
+.checkbox input[type="checkbox"] {
+ float: left;
+ margin-left: -18px;
+}
+
+.radio.inline,
+.checkbox.inline {
+ display: inline-block;
+ padding-top: 5px;
+ margin-bottom: 0;
+ vertical-align: middle;
+}
+
+.radio.inline + .radio.inline,
+.checkbox.inline + .checkbox.inline {
+ margin-left: 10px;
+}
+
+
+/*
+ Disabled state
+ ========================================================================== */
+
+input[disabled],
+select[disabled],
+textarea[disabled],
+input[readonly],
+select[readonly],
+textarea[readonly] {
+ opacity: 0.5;
+ cursor: not-allowed;
+}
+
+
+/*
+ Focus & active state
+ ========================================================================== */
+
+input:focus,
+textarea:focus {
+ border-color: $primary-color;
+ outline: 0;
+ outline: thin dotted \9;
+}
+
+input[type="file"]:focus,
+input[type="radio"]:focus,
+input[type="checkbox"]:focus,
+select:focus {
+ box-shadow: none;
+}
+
+
+/*
+ Help text
+ ========================================================================== */
+
+.help-block,
+.help-inline {
+ color: $info-color;
+}
+
+.help-block {
+ display: block;
+ margin-bottom: 1em;
+ line-height: 1em;
+}
+
+.help-inline {
+ display: inline-block;
+ vertical-align: middle;
+ padding-left: 5px;
+}
+
+
+/*
+ .form-inline
+ ========================================================================== */
+
+.form-inline input,
+.form-inline textarea,
+.form-inline select {
+ display: inline-block;
+ margin-bottom: 0;
+}
+
+.form-inline label {
+ display: inline-block;
+}
+
+.form-inline .radio,
+.form-inline .checkbox,
+.form-inline .radio {
+ padding-left: 0;
+ margin-bottom: 0;
+ vertical-align: middle;
+}
+
+.form-inline .radio input[type="radio"],
+.form-inline .checkbox input[type="checkbox"] {
+ float: left;
+ margin-left: 0;
+ margin-right: 3px; }
+
+
+/*
+ .form-search
+ ========================================================================== */
+
+.form-search input,
+.form-search textarea,
+.form-search select {
+ display: inline-block;
+ margin-bottom: 0;
+}
+
+.form-search .search-query {
+ padding-left: 14px;
+ padding-right: 14px;
+ margin-bottom: 0;
+ border-radius: 14px;
+}
+
+.form-search label {
+ display: inline-block;
+}
+
+.form-search .radio,
+.form-search .checkbox,
+.form-inline .radio {
+ padding-left: 0;
+ margin-bottom: 0;
+ vertical-align: middle;
+}
+
+.form-search .radio input[type="radio"],
+.form-search .checkbox input[type="checkbox"] {
+ float: left;
+ margin-left: 0;
+ margin-right: 3px;
+}
+
+
+/*
+ .form--loading
+ ========================================================================== */
+
+.form--loading:before {
+ content: '';
+}
+
+.form--loading .form__spinner {
+ display: block;
+}
+
+.form:before {
+ position: absolute;
+ top: 0;
+ left: 0;
+ width: 100%;
+ height: 100%;
+ background-color: rgba(255, 255, 255, 0.7);
+ z-index: 10;
+}
+
+.form__spinner {
+ display: none;
+ position: absolute;
+ top: 50%;
+ left: 50%;
+ z-index: 11;
+}
+
+
+
+/*
+ Google search form
+ ========================================================================== */
+
+#goog-fixurl {
+ ul {
+ list-style: none;
+ margin-left: 0;
+ padding-left: 0;
+ li {
+ list-style-type: none;
+ }
+ }
+}
+
+#goog-wm-qt {
+ width: auto;
+ margin-right: 10px;
+ margin-bottom: 20px;
+ padding: 8px 20px;
+ display: inline-block;
+ font-size: $type-size-6;
+ background-color: #fff;
+ color: #000;
+ border-width: 2px !important;
+ border-style: solid !important;
+ border-color: lighten(#000,50);
+ border-radius: $border-radius;
+}
+
+#goog-wm-sb {
+ @extend .btn;
+}
\ No newline at end of file
diff --git a/_sass/_layout.scss b/_sass/_layout.scss
deleted file mode 100644
index 9cbfddef..00000000
--- a/_sass/_layout.scss
+++ /dev/null
@@ -1,242 +0,0 @@
-/**
- * Site header
- */
-.site-header {
- border-top: 5px solid $grey-color-dark;
- border-bottom: 1px solid $grey-color-light;
- min-height: 56px;
-
- // Positioning context for the mobile navigation icon
- position: relative;
-}
-
-.site-title {
- font-size: 26px;
- font-weight: 300;
- line-height: 56px;
- letter-spacing: -1px;
- margin-bottom: 0;
- float: left;
-
- &,
- &:visited {
- color: $grey-color-dark;
- }
-}
-
-.site-nav {
- float: right;
- line-height: 56px;
-
- .menu-icon {
- display: none;
- }
-
- .page-link {
- color: $text-color;
- line-height: $base-line-height;
-
- // Gaps between nav items, but not on the last one
- &:not(:last-child) {
- margin-right: 20px;
- }
- }
-
- @include media-query($on-palm) {
- position: absolute;
- top: 9px;
- right: $spacing-unit / 2;
- background-color: $background-color;
- border: 1px solid $grey-color-light;
- border-radius: 5px;
- text-align: right;
-
- .menu-icon {
- display: block;
- float: right;
- width: 36px;
- height: 26px;
- line-height: 0;
- padding-top: 10px;
- text-align: center;
-
- > svg {
- width: 18px;
- height: 15px;
-
- path {
- fill: $grey-color-dark;
- }
- }
- }
-
- .trigger {
- clear: both;
- display: none;
- }
-
- &:hover .trigger {
- display: block;
- padding-bottom: 5px;
- }
-
- .page-link {
- display: block;
- padding: 5px 10px;
-
- &:not(:last-child) {
- margin-right: 0;
- }
- margin-left: 20px;
- }
- }
-}
-
-
-
-/**
- * Site footer
- */
-.site-footer {
- border-top: 1px solid $grey-color-light;
- padding: $spacing-unit 0;
-}
-
-.footer-heading {
- font-size: 18px;
- margin-bottom: $spacing-unit / 2;
-}
-
-.contact-list,
-.social-media-list {
- list-style: none;
- margin-left: 0;
-}
-
-.footer-col-wrapper {
- font-size: 15px;
- color: $grey-color;
- margin-left: -$spacing-unit / 2;
- @extend %clearfix;
-}
-
-.footer-col {
- float: left;
- margin-bottom: $spacing-unit / 2;
- padding-left: $spacing-unit / 2;
-}
-
-.footer-col-1 {
- width: -webkit-calc(35% - (#{$spacing-unit} / 2));
- width: calc(35% - (#{$spacing-unit} / 2));
-}
-
-.footer-col-2 {
- width: -webkit-calc(20% - (#{$spacing-unit} / 2));
- width: calc(20% - (#{$spacing-unit} / 2));
-}
-
-.footer-col-3 {
- width: -webkit-calc(45% - (#{$spacing-unit} / 2));
- width: calc(45% - (#{$spacing-unit} / 2));
-}
-
-@include media-query($on-laptop) {
- .footer-col-1,
- .footer-col-2 {
- width: -webkit-calc(50% - (#{$spacing-unit} / 2));
- width: calc(50% - (#{$spacing-unit} / 2));
- }
-
- .footer-col-3 {
- width: -webkit-calc(100% - (#{$spacing-unit} / 2));
- width: calc(100% - (#{$spacing-unit} / 2));
- }
-}
-
-@include media-query($on-palm) {
- .footer-col {
- float: none;
- width: -webkit-calc(100% - (#{$spacing-unit} / 2));
- width: calc(100% - (#{$spacing-unit} / 2));
- }
-}
-
-
-
-/**
- * Page content
- */
-.page-content {
- padding: $spacing-unit 0;
-}
-
-.page-heading {
- font-size: 20px;
-}
-
-.post-list {
- margin-left: 0;
- list-style: none;
-
- > li {
- margin-bottom: $spacing-unit;
- }
-}
-
-.post-meta {
- font-size: $small-font-size;
- color: $grey-color;
-}
-
-.post-link {
- display: block;
- font-size: 24px;
-}
-
-
-
-/**
- * Posts
- */
-.post-header {
- margin-bottom: $spacing-unit;
-}
-
-.post-title {
- font-size: 42px;
- letter-spacing: -1px;
- line-height: 1;
-
- @include media-query($on-laptop) {
- font-size: 36px;
- }
-}
-
-.post-content {
- margin-bottom: $spacing-unit;
-
- h2 {
- font-size: 32px;
-
- @include media-query($on-laptop) {
- font-size: 28px;
- }
- }
-
- h3 {
- font-size: 26px;
-
- @include media-query($on-laptop) {
- font-size: 22px;
- }
- }
-
- h4 {
- font-size: 20px;
-
- @include media-query($on-laptop) {
- font-size: 18px;
- }
- }
-}
diff --git a/_sass/_masthead.scss b/_sass/_masthead.scss
new file mode 100644
index 00000000..dec55cd1
--- /dev/null
+++ b/_sass/_masthead.scss
@@ -0,0 +1,53 @@
+/* ==========================================================================
+ MASTHEAD
+ ========================================================================== */
+
+.masthead {
+ position: relative;
+ border-bottom: 1px solid $border-color;
+ -webkit-animation: intro 0.3s both;
+ animation: intro 0.3s both;
+ -webkit-animation-delay: 0.15s;
+ animation-delay: 0.15s;
+ z-index: 20;
+
+ &__inner-wrap {
+ @include container;
+ @include clearfix;
+ padding: 1em 1em 1em;
+ font-family: $sans-serif-narrow;
+
+ @include breakpoint($x-large) {
+ max-width: $x-large;
+ }
+
+ nav {
+ z-index: 10;
+ }
+
+ a {
+ text-decoration: none;
+ }
+ }
+}
+
+.masthead__menu {
+
+ ul {
+ margin: 0;
+ padding: 0;
+ clear: both;
+ list-style-type: none;
+ }
+}
+
+.masthead__menu-item {
+ display: block;
+ list-style-type: none;
+ white-space: nowrap;
+
+ &--lg {
+ padding-right: 2em;
+ font-weight: 700;
+ }
+}
\ No newline at end of file
diff --git a/_sass/_mixins.scss b/_sass/_mixins.scss
new file mode 100644
index 00000000..14782b19
--- /dev/null
+++ b/_sass/_mixins.scss
@@ -0,0 +1,53 @@
+/* ==========================================================================
+ MIXINS
+ ========================================================================== */
+
+%tab-focus {
+ /* Default*/
+ outline: thin dotted $warning-color;
+ /* Webkit*/
+ outline: 5px auto $warning-color;
+ outline-offset: -2px;
+}
+
+/*
+ em function
+ ========================================================================== */
+
+@function em($target, $context: $doc-font-size) {
+ @return ($target / $context) * 1em;
+}
+
+
+/*
+ Bourbon clearfix
+ ========================================================================== */
+
+/*
+ * Provides an easy way to include a clearfix for containing floats.
+ * link http://cssmojo.com/latest_new_clearfix_so_far/
+ *
+ * example scss - Usage
+ *
+ * .element {
+ * @include clearfix;
+ * }
+ *
+ * example css - CSS Output
+ *
+ * .element::after {
+ * clear: both;
+ * content: "";
+ * display: table;
+ * }
+*/
+
+@mixin clearfix {
+ clear: both;
+
+ &::after {
+ clear: both;
+ content: "";
+ display: table;
+ }
+}
\ No newline at end of file
diff --git a/_sass/_navigation.scss b/_sass/_navigation.scss
new file mode 100644
index 00000000..d96735b8
--- /dev/null
+++ b/_sass/_navigation.scss
@@ -0,0 +1,432 @@
+/* ==========================================================================
+ NAVIGATION
+ ========================================================================== */
+
+/*
+ Breadcrumb navigation links
+ ========================================================================== */
+
+.breadcrumbs {
+ @include container;
+ @include clearfix;
+ margin-top: 0;
+ margin-bottom: 0;
+ padding-left: 2em;
+ padding-right: 2em;
+ font-family: $sans-serif;
+ -webkit-animation: intro 0.3s both;
+ animation: intro 0.3s both;
+ -webkit-animation-delay: 0.30s;
+ animation-delay: 0.30s;
+
+ @include breakpoint($large) {
+ padding-left: 1em;
+ padding-right: 1em;
+ }
+
+ @include breakpoint($x-large) {
+ max-width: $x-large;
+ }
+
+ ol {
+ padding: 0;
+ list-style: none;
+ font-size: $type-size-6;
+
+ @include breakpoint($large) {
+ @include span(10 of 12 last);
+ }
+
+ @include breakpoint($x-large) {
+ @include prefix(0.5 of 12);
+ }
+ }
+
+ li {
+ display: inline;
+ }
+
+ .current {
+ font-weight: bold;
+ }
+}
+
+
+/*
+ Post pagination navigation links
+ ========================================================================== */
+
+.pagination {
+ @include full();
+ @include clearfix();
+ margin-top: 1em;
+ padding-top: 1em;
+
+ ul {
+ margin: 0;
+ padding: 0;
+ list-style-type: none;
+ font-family: $sans-serif;
+ }
+
+ li {
+ display: block;
+ float: left;
+ margin-left: -1px;
+
+ a {
+ margin-bottom: 0.25em;
+ padding: 0.5em 1em;
+ font-family: $sans-serif;
+ font-size: 14px;
+ font-weight: bold;
+ line-height: 1.5;
+ text-align: center;
+ text-decoration: none;
+ color: mix(#fff, $gray, 25%);
+ border: 1px solid $light-gray;
+ border-radius: 0;
+
+ &:hover {
+ color: $link-color-hover;
+ }
+
+ &.current {
+ color: #fff;
+ background: $primary-color;
+ }
+
+ &.disabled {
+ color: mix(#fff, $gray, 75%);
+ pointer-events: none;
+ cursor: not-allowed;
+ }
+ }
+
+ &:first-child {
+ margin-left: 0;
+
+ a {
+ border-top-left-radius: $border-radius;
+ border-bottom-left-radius: $border-radius;
+ }
+ }
+
+ &:last-child {
+ a {
+ border-top-right-radius: $border-radius;
+ border-bottom-right-radius: $border-radius;
+ }
+ }
+ }
+
+ /* next/previous buttons */
+ &--pager {
+ display: block;
+ padding: 1em 2em;
+ float: left;
+ width: 50%;
+ font-family: $sans-serif;
+ font-size: $type-size-5;
+ font-weight: bold;
+ text-align: center;
+ text-decoration: none;
+ color: mix(#fff, $gray, 50%);
+ border: 1px solid $light-gray;
+ border-radius: $border-radius;
+
+ &:hover {
+ color: $link-color-hover;
+ }
+
+ &:first-child {
+ border-top-right-radius: 0;
+ border-bottom-right-radius: 0;
+ }
+
+ &:last-child {
+ margin-left: -1px;
+ border-top-left-radius: 0;
+ border-bottom-left-radius: 0;
+ }
+
+ &.disabled {
+ color: mix(#fff, $gray, 75%);
+ pointer-events: none;
+ cursor: not-allowed;
+ }
+ }
+}
+
+.page__content + .pagination,
+.page__meta + .pagination,
+.page__share + .pagination,
+.page__comments + .pagination {
+ margin-top: 2em;
+ padding-top: 2em;
+ border-top: 1px solid $border-color;
+}
+
+
+/*
+ Priority plus navigation
+ ========================================================================== */
+
+.greedy-nav {
+ position: relative;
+ min-width: 250px;
+ background: $background-color;
+
+ a {
+ display: block;
+ margin: 0 1rem;
+ padding: 0.5rem 0;
+ color: $masthead-link-color;
+ text-decoration: none;
+
+ &:hover {
+ color: $masthead-link-color-hover;
+ }
+ }
+
+ button {
+ position: absolute;
+ height: 100%;
+ right: 0;
+ padding: 0 0.5rem;
+ border: 0;
+ outline: none;
+ background-color: $primary-color;
+ color: #fff;
+ cursor: pointer;
+ }
+
+ .visible-links {
+ display: table;
+
+ li {
+ display: table-cell;
+ vertical-align: middle;
+
+ &:first-child {
+ font-weight: bold;
+
+ a {
+ margin-left: 0;
+ }
+ }
+
+ &:last-child {
+ a {
+ margin-right: 0;
+ }
+ }
+ }
+
+ a {
+ position: relative;
+
+ &:before {
+ content: "";
+ position: absolute;
+ left: 0;
+ bottom: 0;
+ height: 4px;
+ background: mix(#fff, $primary-color, 50%);
+ width: 100%;
+ -webkit-transition: $global-transition;
+ transition: $global-transition;
+ -webkit-transform: scaleX(0);
+ -ms-transform: scaleX(0);
+ transform: scaleX(0); /* hide*/
+ }
+
+ &:hover:before {
+ -webkit-transform: scaleX(1);
+ -ms-transform: scaleX(1);
+ transform: scaleX(1); /* reveal*/
+ }
+ }
+ }
+
+ .hidden-links {
+ position: absolute;
+ top: 100%;
+ right: 0;
+ margin-top: 15px;
+ padding: 5px;
+ border: 1px solid $border-color;
+ border-radius: $border-radius;
+ background: #fff;
+ box-shadow: 0 0 10px rgba(#000, 0.25);
+
+ a {
+ margin: 0;
+ padding: 10px 20px;
+ font-size: $type-size-5;
+
+ &:hover {
+ color: $masthead-link-color-hover;
+ background: mix(#fff, $primary-color, 75%);
+ }
+ }
+
+ &:before {
+ content: "";
+ position: absolute;
+ top: -11px;
+ right: 10px;
+ width: 0;
+ border-style: solid;
+ border-width: 0 10px 10px;
+ border-color: $border-color transparent;
+ display: block;
+ z-index: 0;
+ }
+
+ &:after {
+ content: "";
+ position: absolute;
+ top: -10px;
+ right: 10px;
+ width: 0;
+ border-style: solid;
+ border-width: 0 10px 10px;
+ border-color: #fff transparent;
+ display: block;
+ z-index: 1;
+ }
+
+ li {
+ display: block;
+ border-bottom: 1px solid $border-color;
+
+ &:last-child {
+ border-bottom: none;
+ }
+ }
+ }
+}
+
+
+/*
+ Navigation list
+ ========================================================================== */
+
+.nav__list {
+ font-size: 1.25rem;
+
+ ul {
+ margin-bottom: 1em;
+ }
+
+ a {
+ display: block;
+ padding: 0.125em 0;
+ color: inherit;
+
+ &:hover {
+ text-decoration: underline;
+ }
+ }
+
+ .active {
+ margin-left: -0.5em;
+ padding-left: 0.5em;
+ padding-right: 0.5em;
+ color: #fff;
+ font-weight: bold;
+ background: $primary-color;
+ border-radius: $border-radius;
+
+ &:hover {
+ color: #fff;
+ }
+ }
+}
+
+.nav__title {
+ margin: 0;
+ padding: 0.5rem 1rem;
+ font-family: $sans-serif-narrow;
+ font-size: $type-size-5;
+ font-weight: bold;
+}
+
+.nav__sub-title {
+ display: block;
+ margin: 0.5rem 0;
+ padding: 0.5rem 0;
+ font-family: $sans-serif-narrow;
+ font-size: $type-size-6;
+ font-weight: bold;
+ text-transform: uppercase;
+ border-bottom: 1px solid $border-color;
+}
+
+
+/*
+ Table of contents navigation
+ ========================================================================== */
+
+.toc {
+ font-family: $sans-serif-narrow;
+ color: $gray;
+ text-transform: uppercase;
+ letter-spacing: 1px;
+ background-color: #fff;
+ border: 1px solid $border-color;
+ border-radius: $border-radius;
+ box-shadow: $box-shadow;
+
+ .nav__title {
+ color: #fff;
+ font-size: $type-size-6;
+ background: $primary-color;
+ border-top-left-radius: $border-radius;
+ border-top-right-radius: $border-radius;
+ }
+}
+
+.toc__menu {
+ margin: 0;
+ padding: 0;
+ width: 100%;
+ list-style: none;
+ font-size: 0.8rem;
+
+ a {
+ display: block;
+ padding: 0.5rem 1rem;
+ color: $gray;
+ font-size: $type-size-7;
+ font-weight: bold;
+ line-height: 1.5;
+ border-bottom: 1px solid $border-color;
+
+ &:hover {
+ color: #000;
+ background: $lighter-gray;
+ }
+ }
+
+ > li:last-child {
+ a {
+ border-bottom: none;
+ }
+ }
+
+ li ul > li a {
+ padding-left: 2rem;
+ font-weight: normal;
+ }
+
+ /* hide sub sub links on small screens*/
+ li > ul li {
+ display: none;
+
+ @include breakpoint($medium) {
+ display: block;
+ }
+ }
+}
\ No newline at end of file
diff --git a/_sass/_normalize.scss b/_sass/_normalize.scss
deleted file mode 100644
index 08f89507..00000000
--- a/_sass/_normalize.scss
+++ /dev/null
@@ -1,425 +0,0 @@
-/*! normalize.css v3.0.1 | MIT License | git.io/normalize */
-
-/**
- * 1. Set default font family to sans-serif.
- * 2. Prevent iOS text size adjust after orientation change, without disabling
- * user zoom.
- */
-
-html {
- font-family: sans-serif; /* 1 */
- -ms-text-size-adjust: 100%; /* 2 */
- -webkit-text-size-adjust: 100%; /* 2 */
-}
-
-/**
- * Remove default margin.
- */
-
-body {
- margin: 0;
-}
-
-/* HTML5 display definitions
- ========================================================================== */
-
-/**
- * Correct `block` display not defined for any HTML5 element in IE 8/9.
- * Correct `block` display not defined for `details` or `summary` in IE 10/11 and Firefox.
- * Correct `block` display not defined for `main` in IE 11.
- */
-
-article,
-aside,
-details,
-figcaption,
-figure,
-footer,
-header,
-hgroup,
-main,
-nav,
-section,
-summary {
- display: block;
-}
-
-/**
- * 1. Correct `inline-block` display not defined in IE 8/9.
- * 2. Normalize vertical alignment of `progress` in Chrome, Firefox, and Opera.
- */
-
-audio,
-canvas,
-progress,
-video {
- display: inline-block; /* 1 */
- vertical-align: baseline; /* 2 */
-}
-
-/**
- * Prevent modern browsers from displaying `audio` without controls.
- * Remove excess height in iOS 5 devices.
- */
-
-audio:not([controls]) {
- display: none;
- height: 0;
-}
-
-/**
- * Address `[hidden]` styling not present in IE 8/9/10.
- * Hide the `template` element in IE 8/9/11, Safari, and Firefox < 22.
- */
-
-[hidden],
-template {
- display: none;
-}
-
-/* Links
- ========================================================================== */
-
-/**
- * Remove the gray background color from active links in IE 10.
- */
-
-a {
- background: transparent;
-}
-
-/**
- * Improve readability when focused and also mouse hovered in all browsers.
- */
-
-a:active,
-a:hover {
- outline: 0;
-}
-
-/* Text-level semantics
- ========================================================================== */
-
-/**
- * Address styling not present in IE 8/9/10/11, Safari, and Chrome.
- */
-
-abbr[title] {
- border-bottom: 1px dotted;
-}
-
-/**
- * Address style set to `bolder` in Firefox 4+, Safari, and Chrome.
- */
-
-b,
-strong {
- font-weight: bold;
-}
-
-/**
- * Address styling not present in Safari and Chrome.
- */
-
-dfn {
- font-style: italic;
-}
-
-/**
- * Address variable `h1` font-size and margin within `section` and `article`
- * contexts in Firefox 4+, Safari, and Chrome.
- */
-
-h1 {
- font-size: 2em;
- margin: 0.67em 0;
-}
-
-/**
- * Address styling not present in IE 8/9.
- */
-
-mark {
- background: #ff0;
- color: #000;
-}
-
-/**
- * Address inconsistent and variable font size in all browsers.
- */
-
-small {
- font-size: 80%;
-}
-
-/**
- * Prevent `sub` and `sup` affecting `line-height` in all browsers.
- */
-
-sub,
-sup {
- font-size: 75%;
- line-height: 0;
- position: relative;
- vertical-align: baseline;
-}
-
-sup {
- top: -0.5em;
-}
-
-sub {
- bottom: -0.25em;
-}
-
-/* Embedded content
- ========================================================================== */
-
-/**
- * Remove border when inside `a` element in IE 8/9/10.
- */
-
-img {
- border: 0;
-}
-
-/**
- * Correct overflow not hidden in IE 9/10/11.
- */
-
-svg:not(:root) {
- overflow: hidden;
-}
-
-/* Grouping content
- ========================================================================== */
-
-/**
- * Address margin not present in IE 8/9 and Safari.
- */
-
-figure {
- margin: 1em 40px;
-}
-
-/**
- * Address differences between Firefox and other browsers.
- */
-
-hr {
- -moz-box-sizing: content-box;
- box-sizing: content-box;
- height: 0;
-}
-
-/**
- * Contain overflow in all browsers.
- */
-
-pre {
- overflow: auto;
-}
-
-/**
- * Address odd `em`-unit font size rendering in all browsers.
- */
-
-code,
-kbd,
-pre,
-samp {
- font-family: monospace, monospace;
- font-size: 1em;
-}
-
-/* Forms
- ========================================================================== */
-
-/**
- * Known limitation: by default, Chrome and Safari on OS X allow very limited
- * styling of `select`, unless a `border` property is set.
- */
-
-/**
- * 1. Correct color not being inherited.
- * Known issue: affects color of disabled elements.
- * 2. Correct font properties not being inherited.
- * 3. Address margins set differently in Firefox 4+, Safari, and Chrome.
- */
-
-button,
-input,
-optgroup,
-select,
-textarea {
- color: inherit; /* 1 */
- font: inherit; /* 2 */
- margin: 0; /* 3 */
-}
-
-/**
- * Address `overflow` set to `hidden` in IE 8/9/10/11.
- */
-
-button {
- overflow: visible;
-}
-
-/**
- * Address inconsistent `text-transform` inheritance for `button` and `select`.
- * All other form control elements do not inherit `text-transform` values.
- * Correct `button` style inheritance in Firefox, IE 8/9/10/11, and Opera.
- * Correct `select` style inheritance in Firefox.
- */
-
-button,
-select {
- text-transform: none;
-}
-
-/**
- * 1. Avoid the WebKit bug in Android 4.0.* where (2) destroys native `audio`
- * and `video` controls.
- * 2. Correct inability to style clickable `input` types in iOS.
- * 3. Improve usability and consistency of cursor style between image-type
- * `input` and others.
- */
-
-button,
-html input[type="button"], /* 1 */
-input[type="reset"],
-input[type="submit"] {
- -webkit-appearance: button; /* 2 */
- cursor: pointer; /* 3 */
-}
-
-/**
- * Re-set default cursor for disabled elements.
- */
-
-button[disabled],
-html input[disabled] {
- cursor: default;
-}
-
-/**
- * Remove inner padding and border in Firefox 4+.
- */
-
-button::-moz-focus-inner,
-input::-moz-focus-inner {
- border: 0;
- padding: 0;
-}
-
-/**
- * Address Firefox 4+ setting `line-height` on `input` using `!important` in
- * the UA stylesheet.
- */
-
-input {
- line-height: normal;
-}
-
-/**
- * It's recommended that you don't attempt to style these elements.
- * Firefox's implementation doesn't respect box-sizing, padding, or width.
- *
- * 1. Address box sizing set to `content-box` in IE 8/9/10.
- * 2. Remove excess padding in IE 8/9/10.
- */
-
-input[type="checkbox"],
-input[type="radio"] {
- box-sizing: border-box; /* 1 */
- padding: 0; /* 2 */
-}
-
-/**
- * Fix the cursor style for Chrome's increment/decrement buttons. For certain
- * `font-size` values of the `input`, it causes the cursor style of the
- * decrement button to change from `default` to `text`.
- */
-
-input[type="number"]::-webkit-inner-spin-button,
-input[type="number"]::-webkit-outer-spin-button {
- height: auto;
-}
-
-/**
- * 1. Address `appearance` set to `searchfield` in Safari and Chrome.
- * 2. Address `box-sizing` set to `border-box` in Safari and Chrome
- * (include `-moz` to future-proof).
- */
-
-input[type="search"] {
- -webkit-appearance: textfield; /* 1 */
- -moz-box-sizing: content-box;
- -webkit-box-sizing: content-box; /* 2 */
- box-sizing: content-box;
-}
-
-/**
- * Remove inner padding and search cancel button in Safari and Chrome on OS X.
- * Safari (but not Chrome) clips the cancel button when the search input has
- * padding (and `textfield` appearance).
- */
-
-input[type="search"]::-webkit-search-cancel-button,
-input[type="search"]::-webkit-search-decoration {
- -webkit-appearance: none;
-}
-
-/**
- * Define consistent border, margin, and padding.
- */
-
-fieldset {
- border: 1px solid #c0c0c0;
- margin: 0 2px;
- padding: 0.35em 0.625em 0.75em;
-}
-
-/**
- * 1. Correct `color` not being inherited in IE 8/9/10/11.
- * 2. Remove padding so people aren't caught out if they zero out fieldsets.
- */
-
-legend {
- border: 0; /* 1 */
- padding: 0; /* 2 */
-}
-
-/**
- * Remove default vertical scrollbar in IE 8/9/10/11.
- */
-
-textarea {
- overflow: auto;
-}
-
-/**
- * Don't inherit the `font-weight` (applied by a rule above).
- * NOTE: the default cannot safely be changed in Chrome and Safari on OS X.
- */
-
-optgroup {
- font-weight: bold;
-}
-
-/* Tables
- ========================================================================== */
-
-/**
- * Remove most spacing between table cells.
- */
-
-table {
- border-collapse: collapse;
- border-spacing: 0;
-}
-
-td,
-th {
- padding: 0;
-}
diff --git a/_sass/_notices.scss b/_sass/_notices.scss
new file mode 100644
index 00000000..26afa319
--- /dev/null
+++ b/_sass/_notices.scss
@@ -0,0 +1,99 @@
+/* ==========================================================================
+ NOTICE TEXT BLOCKS
+ ========================================================================== */
+
+/**
+ * Default Kramdown usage (no indents!):
+ *
+ * #### Headline for the Notice
+ * Text for the notice
+ *
+ */
+
+@mixin notice($notice-color) {
+ margin: 2em 0 !important; /* override*/
+ padding: 1em;
+ font-family: $global-font-family;
+ font-size: $type-size-6 !important;
+ text-indent: initial; /* override*/
+ background-color: mix(#fff, $notice-color, 90%);
+ border-radius: $border-radius;
+ box-shadow: 0 1px 1px rgba($notice-color, 0.25);
+
+ h4 {
+ margin-top: 0 !important; /* override*/
+ margin-bottom: 0.75em;
+ }
+
+ @at-root .page__content #{&} h4 {
+ /* using at-root to override .page-content h4 font size*/
+ margin-bottom: 0;
+ font-size: 1em;
+ }
+
+ p {
+ &:last-child {
+ margin-bottom: 0 !important; /* override*/
+ }
+ }
+
+ h4 + p {
+ /* remove space above paragraphs that appear directly after notice headline*/
+ margin-top: 0;
+ padding-top: 0;
+ }
+
+ a {
+ color: $notice-color;
+
+ &:hover {
+ color: mix(#000, $notice-color, 40%);
+ }
+ }
+
+ code {
+ background-color: mix(#fff, $notice-color, 95%)
+ }
+
+ ul {
+ &:last-child {
+ margin-bottom: 0; /* override*/
+ }
+ }
+}
+
+/* Default notice */
+
+.notice {
+ @include notice($light-gray);
+}
+
+/* Primary notice */
+
+.notice--primary {
+ @include notice($primary-color);
+}
+
+/* Info notice */
+
+.notice--info {
+ @include notice($info-color);
+}
+
+/* Warning notice */
+
+.notice--warning {
+ @include notice($warning-color);
+}
+
+/* Success notice */
+
+.notice--success {
+ @include notice($success-color);
+}
+
+/* Danger notice */
+
+.notice--danger {
+ @include notice($danger-color);
+}
\ No newline at end of file
diff --git a/_sass/_page.scss b/_sass/_page.scss
new file mode 100644
index 00000000..1c822397
--- /dev/null
+++ b/_sass/_page.scss
@@ -0,0 +1,401 @@
+/* ==========================================================================
+ SINGLE PAGE/POST
+ ========================================================================== */
+
+#main {
+ @include container;
+ @include clearfix;
+ margin-top: 2em;
+ padding-left: 1em;
+ padding-right: 1em;
+ animation: intro 0.3s both;
+ animation-delay: 0.35s;
+
+ @include breakpoint($x-large) {
+ max-width: $x-large;
+ }
+}
+
+.page {
+ @include breakpoint($large) {
+ @include span(10 of 12 last);
+ @include prefix(0.5 of 12);
+ @include suffix(2 of 12);
+ }
+
+ .page__inner-wrap {
+ @include full();
+
+ .page__content,
+ .page__meta,
+ .page__share {
+ @include full();
+ }
+ }
+}
+
+.page__title {
+ margin-top: 0;
+ line-height: 1;
+
+ & + .page__meta {
+ margin-top: -0.5em;
+ }
+}
+
+.page__lead {
+ font-family: $global-font-family;
+ font-size: $type-size-4;
+}
+
+.page__content {
+
+ h2 {
+ padding-bottom: 0.5em;
+ border-bottom: 1px solid $border-color;
+ }
+
+ p, li, dl {
+ font-size: 1em;
+ }
+
+ /* paragraph indents */
+ p {
+ margin: 0 0 $indent-var;
+
+ /* sibling indentation*/
+ @if $paragraph-indent == true {
+ & + p {
+ text-indent: $indent-var;
+ margin-top: -($indent-var);
+ }
+ }
+ }
+
+ a {
+ text-decoration: none;
+
+ &:hover {
+ text-decoration: underline;
+
+ img {
+ box-shadow: 0 0 10px rgba(#000, 0.25);
+ }
+ }
+ }
+
+ dt {
+ margin-top: 1em;
+ font-family: $sans-serif;
+ font-weight: bold;
+ }
+
+ dd {
+ margin-left: 1em;
+ font-family: $sans-serif;
+ font-size: $type-size-6;
+ }
+
+ .small {
+ font-size: $type-size-6;
+ }
+
+ /* blockquote citations */
+ blockquote + .small {
+ margin-top: -1.5em;
+ padding-left: 1.25rem;
+ }
+}
+
+.page__hero {
+ position: relative;
+ margin-bottom: 2em;
+ @include clearfix;
+ animation: intro 0.3s both;
+ animation-delay: 0.25s;
+
+ &--overlay {
+ position: relative;
+ margin-bottom: 2em;
+ padding: 3em 0;
+ @include clearfix;
+ background-size: cover;
+ background-repeat: no-repeat;
+ background-position: center;
+ animation: intro 0.3s both;
+ animation-delay: 0.25s;
+
+ a {
+ color: #fff;
+ }
+
+ .wrapper {
+ padding-left: 1em;
+ padding-right: 1em;
+
+ @include breakpoint($x-large) {
+ max-width: $x-large;
+ }
+ }
+
+ .page__title,
+ .page__meta,
+ .page__lead,
+ .btn {
+ color: #fff;
+ text-shadow: 1px 1px 4px rgba(#000, 0.5);
+ }
+
+ .page__lead {
+ max-width: $medium;
+ }
+
+ .page__title {
+ font-size: $type-size-2;
+
+ @include breakpoint($small) {
+ font-size: $type-size-1;
+ }
+ }
+ }
+}
+
+.page__hero-image {
+ width: 100%;
+ height: auto;
+ -ms-interpolation-mode: bicubic;
+}
+
+.page__hero-caption {
+ position: absolute;
+ bottom: 0;
+ right: 0;
+ margin: 0 auto;
+ padding: 2px 5px;
+ color: #fff;
+ font-family: $caption-font-family;
+ font-size: $type-size-7;
+ background: #000;
+ text-align: right;
+ z-index: 5;
+ opacity: 0.5;
+ border-radius: $border-radius 0 $border-radius 0;
+
+ @include breakpoint($large) {
+ padding: 5px 10px;
+ }
+
+ a {
+ color: #fff;
+ text-decoration: none;
+ }
+}
+
+/*
+ Social sharing
+ ========================================================================== */
+
+.page__share {
+ margin-top: 2em;
+ padding-top: 1em;
+ border-top: 1px solid $border-color;
+
+ @include breakpoint(max-width $small) {
+ .btn span {
+ border: 0;
+ clip: rect(0 0 0 0);
+ height: 1px;
+ margin: -1px;
+ overflow: hidden;
+ padding: 0;
+ position: absolute;
+ width: 1px;
+ }
+ }
+}
+
+.page__share-title {
+ margin-bottom: 10px;
+ font-size: $type-size-6;
+ text-transform: uppercase;
+}
+
+
+/*
+ Page meta
+ ========================================================================== */
+
+.page__meta {
+ margin-top: 2em;
+ color: mix(#fff, $gray, 25%);
+ font-family: $sans-serif;
+ font-size: $type-size-6;
+
+ p {
+ margin: 0;
+ }
+
+ a {
+ color: inherit;
+ }
+}
+
+.page__meta-title {
+ margin-bottom: 10px;
+ font-size: $type-size-6;
+ text-transform: uppercase;
+}
+
+
+/*
+ Page taxonomy
+ ========================================================================== */
+
+.page__taxonomy {
+ .sep {
+ display: none;
+ }
+
+ strong {
+ margin-right: 10px;
+ }
+}
+
+.page__taxonomy-item {
+ display: inline-block;
+ margin-right: 5px;
+ margin-bottom: 8px;
+ padding: 5px 10px;
+ text-decoration: none;
+ border: 1px solid $light-gray;
+ border-radius: $border-radius;
+
+ &:hover {
+ text-decoration: none;
+ color: $link-color-hover;
+ }
+}
+
+
+/*
+ Comments
+ ========================================================================== */
+
+.page__comments {
+ @include full();
+}
+
+.page__comments-title {
+ margin-top: 2rem;
+ margin-bottom: 10px;
+ padding-top: 2rem;
+ font-size: $type-size-6;
+ border-top: 1px solid $border-color;
+ text-transform: uppercase;
+}
+
+.page__comments-form {
+ padding: 1em;
+ background: $lighter-gray;
+ transition: $global-transition;
+
+ &.disabled {
+ input,
+ button,
+ textarea,
+ label {
+ pointer-events: none;
+ cursor: not-allowed;
+ filter: alpha(opacity=65);
+ box-shadow: none;
+ opacity: 0.65;
+ }
+ }
+}
+
+.comment {
+ @include clearfix();
+ margin: 1em 0;
+
+ &:not(:last-child) {
+ border-bottom: 1px solid $border-color;
+ }
+}
+
+.comment__avatar-wrapper {
+ float: left;
+ width: 60px;
+ height: 60px;
+
+ @include breakpoint($large) {
+ width: 100px;
+ height: 100px;
+ }
+}
+
+.comment__avatar {
+ width: 40px;
+ height: 40px;
+ border-radius: 50%;
+
+ @include breakpoint($large) {
+ width: 80px;
+ height: 80px;
+ padding: 5px;
+ border: 1px solid $border-color;
+ }
+}
+
+.comment__content-wrapper {
+ float: right;
+ width: calc(100% - 60px);
+
+ @include breakpoint($large) {
+ width: calc(100% - 100px);
+ }
+}
+
+.comment__author {
+ margin: 0;
+
+ a {
+ text-decoration: none;
+ }
+}
+
+.comment__date {
+ @extend .page__meta;
+ margin: 0;
+
+ a {
+ text-decoration: none;
+ }
+}
+
+
+/*
+ Related
+ ========================================================================== */
+
+.page__related {
+ margin-top: 2em;
+ padding-top: 1em;
+ border-top: 1px solid $border-color;
+ @include clearfix();
+ float: left;
+
+ @include breakpoint($large) {
+ @include pre(2.5 of 12);
+ }
+
+ a {
+ color: inherit;
+ text-decoration: none;
+ }
+}
+
+.page__related-title {
+ margin-bottom: 10px;
+ font-size: $type-size-6;
+ text-transform: uppercase;
+}
\ No newline at end of file
diff --git a/_sass/_print.scss b/_sass/_print.scss
new file mode 100644
index 00000000..09bdb1d8
--- /dev/null
+++ b/_sass/_print.scss
@@ -0,0 +1,18 @@
+/* ==========================================================================
+ PRINT STYLES
+ ========================================================================== */
+
+/*
+ Hide the following elements on print
+ ========================================================================== */
+
+@media print {
+ .masthead,
+ .toc,
+ .page__share,
+ .page__related,
+ .ads,
+ .page__footer {
+ display: none;
+ }
+}
diff --git a/_sass/_reset.scss b/_sass/_reset.scss
new file mode 100644
index 00000000..d9ae7875
--- /dev/null
+++ b/_sass/_reset.scss
@@ -0,0 +1,187 @@
+/* ==========================================================================
+ STYLE RESETS
+ ========================================================================== */
+
+@include border-box-sizing;
+
+html {
+ /* apply a natural box layout model to all elements */
+ box-sizing: border-box;
+ background-color: $background-color;
+ font-size: 16px;
+
+ @include breakpoint($medium) {
+ font-size: 18px;
+ }
+
+ @include breakpoint($large) {
+ font-size: 20px;
+ }
+
+ @include breakpoint($x-large) {
+ font-size: 22px;
+ }
+
+ -webkit-text-size-adjust: 100%;
+ -ms-text-size-adjust: 100%;
+}
+
+/* Remove margin */
+
+body { margin: 0; }
+
+/* Selected elements */
+
+::-moz-selection {
+ color: #fff;
+ background: #000;
+}
+
+::selection {
+ color: #fff;
+ background: #000;
+}
+
+/* Display HTML5 elements in IE6-9 and FF3 */
+
+article,
+aside,
+details,
+figcaption,
+figure,
+footer,
+header,
+hgroup,
+main,
+nav,
+section {
+ display: block;
+}
+
+/* Display block in IE6-9 and FF3 */
+
+audio,
+canvas,
+video {
+ display: inline-block;
+ *display: inline;
+ *zoom: 1;
+}
+
+/* Prevents modern browsers from displaying 'audio' without controls */
+
+audio:not([controls]) {
+ display: none;
+}
+
+a {
+ color: $link-color;
+}
+
+/* Apply focus state */
+
+a:focus {
+ @extend %tab-focus;
+}
+
+/* Remove outline from links */
+
+a:hover,
+a:active {
+ outline: 0;
+}
+
+/* Prevent sub and sup affecting line-height in all browsers */
+
+sub,
+sup {
+ position: relative;
+ font-size: 75%;
+ line-height: 0;
+ vertical-align: baseline;
+}
+
+sup {
+ top: -0.5em;
+}
+
+sub {
+ bottom: -0.25em;
+}
+
+/* img border in anchor's and image quality */
+
+img {
+ /* Responsive images (ensure images don't scale beyond their parents) */
+ max-width: 100%; /* part 1: Set a maximum relative to the parent*/
+ width: auto\9; /* IE7-8 need help adjusting responsive images*/
+ height: auto; /* part 2: Scale the height according to the width, otherwise you get stretching*/
+
+ vertical-align: middle;
+ border: 0;
+ -ms-interpolation-mode: bicubic;
+}
+
+/* Prevent max-width from affecting Google Maps */
+
+#map_canvas img,
+.google-maps img {
+ max-width: none;
+}
+
+/* Consistent form font size in all browsers, margin changes, misc */
+
+button,
+input,
+select,
+textarea {
+ margin: 0;
+ font-size: 100%;
+ vertical-align: middle;
+}
+
+button,
+input {
+ *overflow: visible; /* inner spacing ie IE6/7*/
+ line-height: normal; /* FF3/4 have !important on line-height in UA stylesheet*/
+}
+
+button::-moz-focus-inner,
+input::-moz-focus-inner { /* inner padding and border oddities in FF3/4*/
+ padding: 0;
+ border: 0;
+}
+
+button,
+html input[type="button"], // avoid the WebKit bug in Android 4.0.* where (2) destroys native `audio` and `video` controls
+input[type="reset"],
+input[type="submit"] {
+ -webkit-appearance: button; /* corrects inability to style clickable `input` types in iOS*/
+ cursor: pointer; /* improves usability and consistency of cursor style between image-type `input` and others*/
+}
+
+label,
+select,
+button,
+input[type="button"],
+input[type="reset"],
+input[type="submit"],
+input[type="radio"],
+input[type="checkbox"] {
+ cursor: pointer; /* improves usability and consistency of cursor style between image-type `input` and others*/
+}
+
+input[type="search"] { /* Appearance in Safari/Chrome*/
+ box-sizing: content-box;
+ -webkit-appearance: textfield;
+}
+
+input[type="search"]::-webkit-search-decoration,
+input[type="search"]::-webkit-search-cancel-button {
+ -webkit-appearance: none; /* inner-padding issues in Chrome OSX, Safari 5*/
+}
+
+textarea {
+ overflow: auto; /* remove vertical scrollbar in IE6-9*/
+ vertical-align: top; /* readability and alignment cross-browser*/
+}
diff --git a/_sass/_sidebar.scss b/_sass/_sidebar.scss
new file mode 100644
index 00000000..377c6237
--- /dev/null
+++ b/_sass/_sidebar.scss
@@ -0,0 +1,232 @@
+/* ==========================================================================
+ SIDEBAR
+ ========================================================================== */
+
+/*
+ Default
+ ========================================================================== */
+
+.sidebar {
+ @include clearfix();
+ margin-bottom: 1em;
+
+ @include breakpoint($large) {
+ @include span(2 of 12);
+ opacity: 0.75;
+ -webkit-transition: opacity 0.2s ease-in-out;
+ transition: opacity 0.2s ease-in-out;
+
+ &:hover {
+ opacity: 1;
+ }
+ }
+
+ @include breakpoint($x-large) {
+ padding-right: 0;
+ }
+
+ h2, h3, h4, h5, h6 {
+ margin-bottom: 0;
+ font-family: $sans-serif-narrow;
+ }
+
+ h3, h4 {
+ font-size: $type-size-5;
+ }
+
+ p, li {
+ font-family: $sans-serif;
+ font-size: $type-size-6;
+ line-height: 1.5;
+ }
+
+ img {
+ width: 100%;
+ }
+}
+
+.sidebar__right {
+ margin-bottom: 1em;
+
+ @include breakpoint($large) {
+ position: relative;
+ float: right;
+ width: $right-sidebar-width-narrow;
+ margin-left: span(0.5 of 12);
+ z-index: 10;
+ }
+
+ @include breakpoint($x-large) {
+ width: $right-sidebar-width;
+ }
+}
+
+/*
+ Author profile and links
+ ========================================================================== */
+
+.author__avatar {
+ display: table-cell;
+ vertical-align: top;
+ width: 36px;
+ height: 36px;
+
+ @include breakpoint($large) {
+ display: block;
+ width: auto;
+ height: auto;
+ }
+
+ img {
+ max-width: 110px;
+ border-radius: 50%;
+
+ @include breakpoint($large) {
+ padding: 5px;
+ border: 1px solid $border-color;
+ }
+ }
+}
+
+.author__content {
+ display: table-cell;
+ vertical-align: top;
+ padding-left: 15px;
+ padding-right: 25px;
+ line-height: 1;
+
+ @include breakpoint($large) {
+ display: block;
+ width: 100%;
+ padding-left: 0;
+ padding-right: 0;
+ }
+}
+
+.author__name {
+ margin: 0;
+
+ @include breakpoint($large) {
+ margin-top: 10px;
+ margin-bottom: 10px;
+ }
+}
+.sidebar .author__name {
+ font-family: $sans-serif;
+ font-size: $type-size-5;
+}
+
+.author__bio {
+ margin: 0;
+
+ @include breakpoint($large) {
+ margin-top: 10px;
+ margin-bottom: 20px;
+ }
+}
+
+.author__urls-wrapper {
+ position: relative;
+ display: table-cell;
+ vertical-align: middle;
+ font-family: $sans-serif;
+ z-index: 10;
+ position: relative;
+ cursor: pointer;
+
+ li:last-child {
+ a {
+ margin-bottom: 0;
+ }
+ }
+
+ @include breakpoint($large) {
+ display: block;
+ }
+
+ button {
+ margin-bottom: 0;
+
+ @include breakpoint($large) {
+ display: none;
+ }
+ }
+}
+
+.author__urls {
+ display: none;
+ position: absolute;
+ right: 0;
+ margin-top: 15px;
+ padding: 10px;
+ list-style-type: none;
+ border: 1px solid $border-color;
+ border-radius: $border-radius;
+ background: #fff;
+ z-index: -1;
+ box-shadow: 0 0 10px rgba(#000, 0.25);
+ cursor: default;
+
+ @include breakpoint($large) {
+ display: block;
+ position: relative;
+ margin: 0;
+ padding: 0;
+ border: 0;
+ background: transparent;
+ box-shadow: none;
+ }
+
+ &:before {
+ display: block;
+ content: "";
+ position: absolute;
+ top: -11px;
+ left: calc(50% - 10px);
+ width: 0;
+ border-style: solid;
+ border-width: 0 10px 10px;
+ border-color: $border-color transparent;
+ z-index: 0;
+
+ @include breakpoint($large) {
+ display: none;
+ }
+ }
+
+ &:after {
+ display: block;
+ content: "";
+ position: absolute;
+ top: -10px;
+ left: calc(50% - 10px);
+ width: 0;
+ border-style: solid;
+ border-width: 0 10px 10px;
+ border-color: #fff transparent;
+ z-index: 1;
+
+ @include breakpoint($large) {
+ display: none;
+ }
+ }
+
+ li {
+ white-space: nowrap;
+ }
+
+ a {
+ display: block;
+ margin-bottom: 5px;
+ padding-right: 5px;
+ padding-top: 2px;
+ padding-bottom: 2px;
+ color: inherit;
+ font-size: $type-size-5;
+ text-decoration: none;
+
+ &:hover {
+ text-decoration: underline;
+ }
+ }
+}
\ No newline at end of file
diff --git a/_sass/_syntax-highlighting.scss b/_sass/_syntax-highlighting.scss
deleted file mode 100644
index 8fac5977..00000000
--- a/_sass/_syntax-highlighting.scss
+++ /dev/null
@@ -1,71 +0,0 @@
-/**
- * Syntax highlighting styles
- */
-.highlight {
- background: #fff;
- @extend %vertical-rhythm;
-
- .highlighter-rouge & {
- background: #eef;
- }
-
- .c { color: #998; font-style: italic } // Comment
- .err { color: #a61717; background-color: #e3d2d2 } // Error
- .k { font-weight: bold } // Keyword
- .o { font-weight: bold } // Operator
- .cm { color: #998; font-style: italic } // Comment.Multiline
- .cp { color: #999; font-weight: bold } // Comment.Preproc
- .c1 { color: #998; font-style: italic } // Comment.Single
- .cs { color: #999; font-weight: bold; font-style: italic } // Comment.Special
- .gd { color: #000; background-color: #fdd } // Generic.Deleted
- .gd .x { color: #000; background-color: #faa } // Generic.Deleted.Specific
- .ge { font-style: italic } // Generic.Emph
- .gr { color: #a00 } // Generic.Error
- .gh { color: #999 } // Generic.Heading
- .gi { color: #000; background-color: #dfd } // Generic.Inserted
- .gi .x { color: #000; background-color: #afa } // Generic.Inserted.Specific
- .go { color: #888 } // Generic.Output
- .gp { color: #555 } // Generic.Prompt
- .gs { font-weight: bold } // Generic.Strong
- .gu { color: #aaa } // Generic.Subheading
- .gt { color: #a00 } // Generic.Traceback
- .kc { font-weight: bold } // Keyword.Constant
- .kd { font-weight: bold } // Keyword.Declaration
- .kp { font-weight: bold } // Keyword.Pseudo
- .kr { font-weight: bold } // Keyword.Reserved
- .kt { color: #458; font-weight: bold } // Keyword.Type
- .m { color: #099 } // Literal.Number
- .s { color: #d14 } // Literal.String
- .na { color: #008080 } // Name.Attribute
- .nb { color: #0086B3 } // Name.Builtin
- .nc { color: #458; font-weight: bold } // Name.Class
- .no { color: #008080 } // Name.Constant
- .ni { color: #800080 } // Name.Entity
- .ne { color: #900; font-weight: bold } // Name.Exception
- .nf { color: #900; font-weight: bold } // Name.Function
- .nn { color: #555 } // Name.Namespace
- .nt { color: #000080 } // Name.Tag
- .nv { color: #008080 } // Name.Variable
- .ow { font-weight: bold } // Operator.Word
- .w { color: #bbb } // Text.Whitespace
- .mf { color: #099 } // Literal.Number.Float
- .mh { color: #099 } // Literal.Number.Hex
- .mi { color: #099 } // Literal.Number.Integer
- .mo { color: #099 } // Literal.Number.Oct
- .sb { color: #d14 } // Literal.String.Backtick
- .sc { color: #d14 } // Literal.String.Char
- .sd { color: #d14 } // Literal.String.Doc
- .s2 { color: #d14 } // Literal.String.Double
- .se { color: #d14 } // Literal.String.Escape
- .sh { color: #d14 } // Literal.String.Heredoc
- .si { color: #d14 } // Literal.String.Interpol
- .sx { color: #d14 } // Literal.String.Other
- .sr { color: #009926 } // Literal.String.Regex
- .s1 { color: #d14 } // Literal.String.Single
- .ss { color: #990073 } // Literal.String.Symbol
- .bp { color: #999 } // Name.Builtin.Pseudo
- .vc { color: #008080 } // Name.Variable.Class
- .vg { color: #008080 } // Name.Variable.Global
- .vi { color: #008080 } // Name.Variable.Instance
- .il { color: #099 } // Literal.Number.Integer.Long
-}
diff --git a/_sass/_syntax.scss b/_sass/_syntax.scss
new file mode 100644
index 00000000..fb13b73a
--- /dev/null
+++ b/_sass/_syntax.scss
@@ -0,0 +1,146 @@
+/* ==========================================================================
+ Syntax highlighting
+ ========================================================================== */
+
+div.highlighter-rouge,
+figure.highlight {
+ position: relative;
+ margin-bottom: 1em;
+ font-family: $monospace;
+ font-size: $type-size-7;
+ line-height: 1.8;
+ border: 1px solid $border-color;
+ border-radius: $border-radius;
+ background-color: $code-background-color;
+ box-shadow: $box-shadow;
+
+ &:before {
+ position: absolute;
+ top: 0;
+ right: 0;
+ padding: 0.5em;
+ background-color: $lighter-gray;
+ content: "\f121";
+ font-family: "fontawesome" !important;
+ line-height: 1;
+ text-transform: none;
+ speak: none;
+ }
+
+ .highlight {
+ margin: 0;
+ padding: 1em;
+ }
+}
+
+figure.highlight {
+ padding-left: 1em;
+ padding-right: 1em;
+}
+
+.highlight table {
+ font-size: 1em;
+ border: 0;
+
+ td {
+ padding: 5px;
+ border: 0;
+
+ // line numbers
+ &.gutter {
+ padding-right: 1em;
+ color: $light-gray;
+ }
+ }
+
+ pre {
+ margin: 0;
+ }
+}
+
+.highlight pre { width: 100%; }
+
+/*
+ Solarized Light
+ http://ethanschoonover.com/solarized
+
+ SOLARIZED HEX ROLE
+ --------- -------- ------------------------------------------
+ base01 #586e75 body text / default code / primary content
+ base1 #93a1a1 comments / secondary content
+ base3 #fdf6e3 background
+ orange #cb4b16 constants
+ red #dc322f regex, special keywords
+ blue #22b3eb reserved keywords
+ cyan #2aa198 strings, numbers
+ green #859900 operators, other keywords
+ ========================================================================== */
+
+.highlight .c { color: #93a1a1 } /* Comment */
+.highlight .err { color: #586e75 } /* Error */
+.highlight .g { color: #586e75 } /* Generic */
+.highlight .k { color: #859900 } /* Keyword */
+.highlight .l { color: #586e75 } /* Literal */
+.highlight .n { color: #586e75 } /* Name */
+.highlight .o { color: #859900 } /* Operator */
+.highlight .x { color: #cb4b16 } /* Other */
+.highlight .p { color: #586e75 } /* Punctuation */
+.highlight .cm { color: #93a1a1 } /* Comment.Multiline */
+.highlight .cp { color: #859900 } /* Comment.Preproc */
+.highlight .c1 { color: #93a1a1 } /* Comment.Single */
+.highlight .cs { color: #859900 } /* Comment.Special */
+.highlight .gd { color: #2aa198 } /* Generic.Deleted */
+.highlight .ge { color: #586e75; font-style: italic } /* Generic.Emph */
+.highlight .gr { color: #dc322f } /* Generic.Error */
+.highlight .gh { color: #cb4b16 } /* Generic.Heading */
+.highlight .gi { color: #859900 } /* Generic.Inserted */
+.highlight .go { color: #586e75 } /* Generic.Output */
+.highlight .gp { color: #586e75 } /* Generic.Prompt */
+.highlight .gs { color: #586e75; font-weight: bold } /* Generic.Strong */
+.highlight .gu { color: #cb4b16 } /* Generic.Subheading */
+.highlight .gt { color: #586e75 } /* Generic.Traceback */
+.highlight .kc { color: #cb4b16 } /* Keyword.Constant */
+.highlight .kd { color: #22b3eb } /* Keyword.Declaration */
+.highlight .kn { color: #859900 } /* Keyword.Namespace */
+.highlight .kp { color: #859900 } /* Keyword.Pseudo */
+.highlight .kr { color: #22b3eb } /* Keyword.Reserved */
+.highlight .kt { color: #dc322f } /* Keyword.Type */
+.highlight .ld { color: #586e75 } /* Literal.Date */
+.highlight .m { color: #2aa198 } /* Literal.Number */
+.highlight .s { color: #2aa198 } /* Literal.String */
+.highlight .na { color: #586e75 } /* Name.Attribute */
+.highlight .nb { color: #B58900 } /* Name.Builtin */
+.highlight .nc { color: #22b3eb } /* Name.Class */
+.highlight .no { color: #cb4b16 } /* Name.Constant */
+.highlight .nd { color: #22b3eb } /* Name.Decorator */
+.highlight .ni { color: #cb4b16 } /* Name.Entity */
+.highlight .ne { color: #cb4b16 } /* Name.Exception */
+.highlight .nf { color: #22b3eb } /* Name.Function */
+.highlight .nl { color: #586e75 } /* Name.Label */
+.highlight .nn { color: #586e75 } /* Name.Namespace */
+.highlight .nx { color: #586e75 } /* Name.Other */
+.highlight .py { color: #586e75 } /* Name.Property */
+.highlight .nt { color: #22b3eb } /* Name.Tag */
+.highlight .nv { color: #22b3eb } /* Name.Variable */
+.highlight .ow { color: #859900 } /* Operator.Word */
+.highlight .w { color: #586e75 } /* Text.Whitespace */
+.highlight .mf { color: #2aa198 } /* Literal.Number.Float */
+.highlight .mh { color: #2aa198 } /* Literal.Number.Hex */
+.highlight .mi { color: #2aa198 } /* Literal.Number.Integer */
+.highlight .mo { color: #2aa198 } /* Literal.Number.Oct */
+.highlight .sb { color: #93a1a1 } /* Literal.String.Backtick */
+.highlight .sc { color: #2aa198 } /* Literal.String.Char */
+.highlight .sd { color: #586e75 } /* Literal.String.Doc */
+.highlight .s2 { color: #2aa198 } /* Literal.String.Double */
+.highlight .se { color: #cb4b16 } /* Literal.String.Escape */
+.highlight .sh { color: #586e75 } /* Literal.String.Heredoc */
+.highlight .si { color: #2aa198 } /* Literal.String.Interpol */
+.highlight .sx { color: #2aa198 } /* Literal.String.Other */
+.highlight .sr { color: #dc322f } /* Literal.String.Regex */
+.highlight .s1 { color: #2aa198 } /* Literal.String.Single */
+.highlight .ss { color: #2aa198 } /* Literal.String.Symbol */
+.highlight .bp { color: #22b3eb } /* Name.Builtin.Pseudo */
+.highlight .vc { color: #22b3eb } /* Name.Variable.Class */
+.highlight .vg { color: #22b3eb } /* Name.Variable.Global */
+.highlight .vi { color: #22b3eb } /* Name.Variable.Instance */
+.highlight .il { color: #2aa198 } /* Literal.Number.Integer.Long */
\ No newline at end of file
diff --git a/_sass/_tables.scss b/_sass/_tables.scss
new file mode 100644
index 00000000..d31dc24a
--- /dev/null
+++ b/_sass/_tables.scss
@@ -0,0 +1,38 @@
+/* ==========================================================================
+ TABLES
+ ========================================================================== */
+
+table {
+ margin-bottom: 1em;
+ width: 100%;
+ font-family: $global-font-family;
+ font-size: $type-size-6;
+ border-collapse: collapse;
+ border: 1px solid $light-gray;
+
+ & + table {
+ margin-top: 1em;
+ }
+}
+
+thead {
+ background-color: $lighter-gray;
+ border-bottom: 1px solid $light-gray;
+}
+
+th {
+ padding: 0.5em;
+ font-weight: bold;
+ text-align: left;
+ border-right: 1px solid $light-gray;
+}
+
+td {
+ padding: 0.5em;
+ border-bottom: 1px solid $light-gray;
+ border-right: 1px solid $light-gray;
+}
+
+tr, td, th {
+ vertical-align: middle;
+}
\ No newline at end of file
diff --git a/_sass/_utilities.scss b/_sass/_utilities.scss
new file mode 100644
index 00000000..87536a45
--- /dev/null
+++ b/_sass/_utilities.scss
@@ -0,0 +1,470 @@
+/* ==========================================================================
+ UTILITY CLASSES
+ ========================================================================== */
+
+/*
+ Visibility
+ ========================================================================== */
+
+/* http://www.456bereastreet.com/archive/200711/screen_readers_sometimes_ignore_displaynone/ */
+
+.hidden {
+ display: none;
+ visibility: hidden;
+}
+
+/* for preloading images */
+
+.load {
+ display: none;
+}
+
+.transparent {
+ opacity: 0;
+}
+
+/* https://developer.yahoo.com/blogs/ydn/clip-hidden-content-better-accessibility-53456.html */
+
+.visually-hidden,
+.screen-reader-text,
+.screen-reader-text span,
+.screen-reader-shortcut {
+ position: absolute !important;
+ clip: rect(1px, 1px, 1px, 1px);
+ height: 1px !important;
+ width: 1px !important;
+ border: 0 !important;
+ overflow: hidden;
+}
+
+body:hover .visually-hidden a,
+body:hover .visually-hidden input,
+body:hover .visually-hidden button {
+ display: none !important;
+}
+
+/* screen readers */
+
+.screen-reader-text:focus,
+.screen-reader-shortcut:focus {
+ clip: auto !important;
+ height: auto !important;
+ width: auto !important;
+ display: block;
+ font-size: 1em;
+ font-weight: bold;
+ padding: 15px 23px 14px;
+ background: #fff;
+ z-index: 100000;
+ text-decoration: none;
+ box-shadow: 0 0 2px 2px rgba(0,0,0,.6);
+}
+
+
+/*
+ Skip links
+ ========================================================================== */
+
+.skip-link {
+ position: fixed;
+ z-index: 20;
+ margin: 0;
+ font-family: $sans-serif;
+ white-space: nowrap;
+}
+
+.skip-link li {
+ height: 0;
+ width: 0;
+ list-style: none;
+}
+
+
+/*
+ Type
+ ========================================================================== */
+
+.text-left {
+ text-align: left;
+}
+
+.text-center {
+ text-align: center;
+}
+
+.text-right {
+ text-align: right;
+}
+
+.text-justify {
+ text-align: justify;
+}
+
+.text-nowrap {
+ white-space: nowrap;
+}
+
+
+/*
+ Alignment
+ ========================================================================== */
+
+/* clearfix */
+
+.cf { clear: both; }
+
+.wrapper {
+ @include container();
+}
+
+
+/*
+ Images
+ ========================================================================== */
+
+/* image align left */
+
+.align-left {
+ display: block;
+ margin-left: auto;
+ margin-right: auto;
+
+ @include breakpoint($small) {
+ float: left;
+ margin-right: 1em;
+ }
+}
+
+/* image align right */
+
+.align-right {
+ display: block;
+ margin-left: auto;
+ margin-right: auto;
+
+ @include breakpoint($small) {
+ float: right;
+ margin-left: 1em;
+ }
+}
+
+/* image align center */
+
+.align-center {
+ display: block;
+ margin-left: auto;
+ margin-right: auto;
+}
+
+/* file page content container */
+
+.full {
+ @include breakpoint($large){
+ margin-right: -1 * span(2.5 of 12) !important;
+ }
+}
+
+/*
+ Icons
+ ========================================================================== */
+
+.icon {
+ display: inline-block;
+ fill: currentColor;
+ width: 1em;
+ height: 1.1em;
+ line-height: 1;
+ position: relative;
+ top: -0.1em;
+ vertical-align: middle;
+}
+
+/* social icons*/
+
+.social-icons {
+ .fa {
+ color: #000;
+ }
+
+ .fa-behance,
+ .fa-behance-square {
+ color: $behance-color;
+ }
+
+ .fa-dribbble {
+ color: $dribbble-color;
+ }
+
+ .fa-facebook,
+ .fa-facebook-square {
+ color: $facebook-color;
+ }
+
+ .fa-flickr {
+ color: $flickr-color;
+ }
+
+ .fa-foursquare {
+ color: $foursquare-color;
+ }
+
+ .fa-github,
+ .fa-github-alt,
+ .fa-github-square {
+ color: $github-color;
+ }
+
+ .fa-google-plus,
+ .fa-google-plus-square {
+ color: $google-plus-color;
+ }
+
+ .fa-instagram {
+ color: $instagram-color;
+ }
+
+ .fa-lastfm,
+ .fa-lastfm-square {
+ color: $lastfm-color;
+ }
+
+ .fa-linkedin,
+ .fa-linkedin-square {
+ color: $linkedin-color;
+ }
+
+ .fa-pinterest,
+ .fa-pinterest-p,
+ .fa-pinterest-square {
+ color: $pinterest-color;
+ }
+
+ .fa-rss,
+ .fa-rss-square {
+ color: $rss-color;
+ }
+
+ .fa-soundcloud {
+ color: $soundcloud-color;
+ }
+
+ .fa-stack-exchange,
+ .fa-stack-overflow {
+ color: $stackoverflow-color;
+ }
+
+ .fa-tumblr,
+ .fa-tumblr-square {
+ color: $tumblr-color;
+ }
+
+ .fa-twitter,
+ .fa-twitter-square {
+ color: $twitter-color;
+ }
+
+ .fa-vimeo,
+ .fa-vimeo-square {
+ color: $vimeo-color;
+ }
+
+ .fa-vine {
+ color: $vine-color;
+ }
+
+ .fa-youtube,
+ .fa-youtube-square,
+ .fa-youtube-play {
+ color: $youtube-color;
+ }
+
+ .fa-xing,
+ .fa-xing-square {
+ color: $xing-color;
+ }
+}
+
+
+/*
+ Navicons
+ ========================================================================== */
+
+.navicon {
+ position: relative;
+ width: $navicon-width;
+ height: $navicon-height;
+ background: #fff;
+ margin: auto;
+ -webkit-transition: 0.3s;
+ transition: 0.3s;
+
+ &:before,
+ &:after {
+ content: "";
+ position: absolute;
+ left: 0;
+ width: $navicon-width;
+ height: $navicon-height;
+ background: #fff;
+ -webkit-transition: 0.3s;
+ transition: 0.3s;
+ }
+
+ &:before {
+ top: (-2 * $navicon-height);
+ }
+
+ &:after {
+ bottom: (-2 * $navicon-height);
+ }
+}
+
+.close .navicon {
+ /* hide the middle line*/
+ background: transparent;
+
+ /* overlay the lines by setting both their top values to 0*/
+ &:before, &:after{
+ -webkit-transform-origin: 50% 50%;
+ -ms-transform-origin: 50% 50%;
+ transform-origin: 50% 50%;
+ top: 0;
+ width: $navicon-width;
+ }
+
+ /* rotate the lines to form the x shape*/
+ &:before{
+ -webkit-transform: rotate3d(0,0,1,45deg);
+ transform: rotate3d(0,0,1,45deg);
+ }
+ &:after{
+ -webkit-transform: rotate3d(0,0,1,-45deg);
+ transform: rotate3d(0,0,1,-45deg);
+ }
+}
+
+
+/*
+ Sticky, fixed to top content
+ ========================================================================== */
+
+.sticky {
+ @include breakpoint($large) {
+ @include clearfix();
+ position: -webkit-sticky;
+ position: sticky;
+ top: 2em;
+
+ > * {
+ display: block;
+ }
+ }
+}
+
+
+/*
+ Wells
+ ========================================================================== */
+
+.well {
+ min-height: 20px;
+ padding: 19px;
+ margin-bottom: 20px;
+ background-color: #f5f5f5;
+ border: 1px solid #e3e3e3;
+ border-radius: $border-radius;
+ box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.05);
+}
+
+
+/*
+ Modals
+ ========================================================================== */
+
+.show-modal {
+ overflow: hidden;
+ position: relative;
+
+ &:before {
+ position: absolute;
+ content: "";
+ top: 0;
+ left: 0;
+ width: 100%;
+ height: 100%;
+ z-index: 999;
+ background-color: rgba(255, 255, 255, 0.85);
+ }
+
+ .modal {
+ display: block;
+ }
+}
+
+.modal {
+ display: none;
+ position: fixed;
+ width: 300px;
+ top: 50%;
+ left: 50%;
+ margin-left: -150px;
+ margin-top: -150px;
+ min-height: 0;
+ z-index: 9999;
+ background: #fff;
+ border: 1px solid $border-color;
+ border-radius: $border-radius;
+ box-shadow: $box-shadow;
+
+ &__title {
+ margin: 0;
+ padding: 0.5em 1em;
+ }
+
+ &__supporting-text {
+ padding: 0 1em 0.5em 1em;
+ }
+
+ &__actions {
+ padding: 0.5em 1em;
+ border-top: 1px solid $border-color;
+ }
+}
+
+
+/*
+ Footnotes
+ ========================================================================== */
+
+.footnote {
+ color: mix(#fff, $gray, 25%);
+ text-decoration: none;
+}
+
+.footnotes {
+ color: mix(#fff, $gray, 25%);
+
+ ol, li, p {
+ margin-bottom: 0;
+ font-size: $type-size-6;
+ }
+}
+
+a.reversefootnote {
+ color: $gray;
+ text-decoration: none;
+
+ &:hover {
+ text-decoration: underline;
+ }
+}
+
+
+/*
+ Required
+ ========================================================================== */
+
+.required {
+ color: $danger-color;
+ font-weight: bold;
+}
diff --git a/_sass/_variables.scss b/_sass/_variables.scss
new file mode 100644
index 00000000..a9b09121
--- /dev/null
+++ b/_sass/_variables.scss
@@ -0,0 +1,147 @@
+/* ==========================================================================
+ Variables
+ ========================================================================== */
+
+/*
+ Typography
+ ========================================================================== */
+
+$doc-font-size : 16;
+
+/* paragraph indention */
+$paragraph-indent : false; // true, false (default)
+$indent-var : 1.3em;
+
+/* system typefaces */
+$serif : Georgia, Times, serif;
+$sans-serif : -apple-system, ".SFNSText-Regular", "San Francisco", "Roboto", "Segoe UI", "Helvetica Neue", "Lucida Grande", Arial, sans-serif;
+$monospace : Monaco, Consolas, "Lucida Console", monospace;
+
+/* sans serif typefaces */
+$sans-serif-narrow : $sans-serif;
+$helvetica : Helvetica, "Helvetica Neue", Arial, sans-serif;
+
+/* serif typefaces */
+$georgia : Georgia, serif;
+$times : Times, serif;
+$bodoni : "Bodoni MT", serif;
+$calisto : "Calisto MT", serif;
+$garamond : Garamond, serif;
+
+$global-font-family : $sans-serif;
+$header-font-family : $sans-serif;
+$caption-font-family : $serif;
+
+/* type scale */
+$type-size-1 : 2.441em; // ~39.056px
+$type-size-2 : 1.953em; // ~31.248px
+$type-size-3 : 1.563em; // ~25.008px
+$type-size-4 : 1.25em; // ~20px
+$type-size-5 : 1em; // ~16px
+$type-size-6 : 0.75em; // ~12px
+$type-size-7 : 0.6875em; // ~11px
+$type-size-8 : 0.625em; // ~10px
+
+
+/*
+ Colors
+ ========================================================================== */
+
+$gray : #7a8288;
+$dark-gray : mix(#000, $gray, 40%);
+$darker-gray : mix(#000, $gray, 60%);
+$light-gray : mix(#fff, $gray, 50%);
+$lighter-gray : mix(#fff, $gray, 90%);
+
+$body-color : #fff;
+$background-color : #fff;
+$code-background-color : #fafafa;
+$code-background-color-dark : $light-gray;
+$text-color : $dark-gray;
+$border-color : $lighter-gray;
+
+$primary-color : #7a8288;
+$success-color : #62c462;
+$warning-color : #f89406;
+$danger-color : #ee5f5b;
+$info-color : #52adc8;
+
+/* brands */
+$behance-color : #1769FF;
+$dribbble-color : #ea4c89;
+$facebook-color : #3b5998;
+$flickr-color : #ff0084;
+$foursquare-color : #0072b1;
+$github-color : #171516;
+$google-plus-color : #dd4b39;
+$instagram-color : #517fa4;
+$lastfm-color : #d51007;
+$linkedin-color : #007bb6;
+$pinterest-color : #cb2027;
+$rss-color : #fa9b39;
+$soundcloud-color : #ff3300;
+$stackoverflow-color : #fe7a15;
+$tumblr-color : #32506d;
+$twitter-color : #55acee;
+$vimeo-color : #1ab7ea;
+$vine-color : #00bf8f;
+$youtube-color : #bb0000;
+$xing-color : #006567;
+
+
+/* links */
+$link-color : $info-color;
+$link-color-hover : mix(#000, $link-color, 25%);
+$link-color-visited : mix(#fff, $link-color, 25%);
+$masthead-link-color : $primary-color;
+$masthead-link-color-hover : mix(#000, $primary-color, 25%);
+
+
+/*
+ Breakpoints
+ ========================================================================== */
+
+@include breakpoint-set("to ems", true);
+
+$small : 600px;
+$medium : 768px;
+$medium-wide : 900px;
+$large : 1024px;
+$x-large : 1280px;
+
+
+/*
+ Grid
+ ========================================================================== */
+
+$right-sidebar-width-narrow : 200px;
+$right-sidebar-width : 300px;
+$right-sidebar-width-wide : 400px;
+
+$susy: (
+ columns: 12,
+ // column-width: 90px,
+ gutters: 1/4,
+ math: fluid,
+ output: float,
+ gutter-position: after,
+ container: $large,
+ global-box-sizing: border-box,
+ // debug: (
+ // image: show,
+ // color: blue,
+ // output: overlay,
+ // toggle: top right,
+ // ),
+);
+
+
+/*
+ Other
+ ========================================================================== */
+
+$border-radius : 4px;
+$box-shadow : 0 1px 1px rgba(0, 0, 0, 0.125);
+$navicon-width : 28px;
+$navicon-height : 4px;
+$global-transition : all 0.2s ease-in-out;
diff --git a/_sass/vendor/breakpoint/_breakpoint.scss b/_sass/vendor/breakpoint/_breakpoint.scss
new file mode 100644
index 00000000..a0528eb8
--- /dev/null
+++ b/_sass/vendor/breakpoint/_breakpoint.scss
@@ -0,0 +1,114 @@
+//////////////////////////////
+// Default Variables
+//////////////////////////////
+$Breakpoint-Settings: (
+ 'default media': all,
+ 'default feature': min-width,
+ 'default pair': width,
+
+ 'force all media type': false,
+ 'to ems': false,
+ 'transform resolutions': true,
+
+ 'no queries': false,
+ 'no query fallbacks': false,
+
+ 'base font size': 16px,
+
+ 'legacy syntax': false
+);
+
+$breakpoint: () !default;
+
+//////////////////////////////
+// Imports
+//////////////////////////////
+@import "settings";
+@import "context";
+@import "helpers";
+@import "parsers";
+@import "no-query";
+
+@import "respond-to";
+
+@import "legacy-settings";
+
+//////////////////////////////
+// Breakpoint Mixin
+//////////////////////////////
+
+@mixin breakpoint($query, $no-query: false) {
+ @include legacy-settings-warning;
+
+ // Reset contexts
+ @include private-breakpoint-reset-contexts();
+
+ $breakpoint: breakpoint($query, false);
+
+ $query-string: map-get($breakpoint, 'query');
+ $query-fallback: map-get($breakpoint, 'fallback');
+
+ $private-breakpoint-context-holder: map-get($breakpoint, 'context holder') !global;
+ $private-breakpoint-query-count: map-get($breakpoint, 'query count') !global;
+
+ // Allow for an as-needed override or usage of no query fallback.
+ @if $no-query != false {
+ $query-fallback: $no-query;
+ }
+
+ @if $query-fallback != false {
+ $context-setter: private-breakpoint-set-context('no-query', $query-fallback);
+ }
+
+ // Print Out Query String
+ @if not breakpoint-get('no queries') {
+ @media #{$query-string} {
+ @content;
+ }
+ }
+
+ @if breakpoint-get('no query fallbacks') != false or breakpoint-get('no queries') == true {
+
+ $type: type-of(breakpoint-get('no query fallbacks'));
+ $print: false;
+
+ @if ($type == 'bool') {
+ $print: true;
+ }
+ @else if ($type == 'string') {
+ @if $query-fallback == breakpoint-get('no query fallbacks') {
+ $print: true;
+ }
+ }
+ @else if ($type == 'list') {
+ @each $wrapper in breakpoint-get('no query fallbacks') {
+ @if $query-fallback == $wrapper {
+ $print: true;
+ }
+ }
+ }
+
+ // Write Fallback
+ @if ($query-fallback != false) and ($print == true) {
+ $type-fallback: type-of($query-fallback);
+
+ @if ($type-fallback != 'bool') {
+ #{$query-fallback} & {
+ @content;
+ }
+ }
+ @else {
+ @content;
+ }
+ }
+ }
+
+ @include private-breakpoint-reset-contexts();
+}
+
+
+@mixin mq($query, $no-query: false) {
+ @include breakpoint($query, $no-query) {
+ @content;
+ }
+}
diff --git a/_sass/vendor/breakpoint/_context.scss b/_sass/vendor/breakpoint/_context.scss
new file mode 100644
index 00000000..57947f5c
--- /dev/null
+++ b/_sass/vendor/breakpoint/_context.scss
@@ -0,0 +1,95 @@
+//////////////////////////////
+// Private Breakpoint Variables
+//////////////////////////////
+$private-breakpoint-context-holder: ();
+$private-breakpoint-query-count: 0 !default;
+
+//////////////////////////////
+// Breakpoint Has Context
+// Returns whether or not you are inside a Breakpoint query
+//////////////////////////////
+@function breakpoint-has-context() {
+ @if length($private-breakpoint-query-count) {
+ @return true;
+ }
+ @else {
+ @return false;
+ }
+}
+
+//////////////////////////////
+// Breakpoint Get Context
+// $feature: Input feature to get it's current MQ context. Returns false if no context
+//////////////////////////////
+@function breakpoint-get-context($feature) {
+ @if map-has-key($private-breakpoint-context-holder, $feature) {
+ $get: map-get($private-breakpoint-context-holder, $feature);
+ // Special handling of no-query from get side so /false/ prepends aren't returned
+ @if $feature == 'no-query' {
+ @if type-of($get) == 'list' and length($get) > 1 and nth($get, 1) == false {
+ $get: nth($get, length($get));
+ }
+ }
+ @return $get;
+ }
+ @else {
+ @if breakpoint-has-context() and $feature == 'media' {
+ @return breakpoint-get('default media');
+ }
+ @else {
+ @return false;
+ }
+ }
+}
+
+//////////////////////////////
+// Private function to set context
+//////////////////////////////
+@function private-breakpoint-set-context($feature, $value) {
+ @if $value == 'monochrome' {
+ $feature: 'monochrome';
+ }
+
+ $current: map-get($private-breakpoint-context-holder, $feature);
+ @if $current and length($current) == $private-breakpoint-query-count {
+ @warn "You have already queried against `#{$feature}`. Unexpected things may happen if you query against the same feature more than once in the same `and` query. Breakpoint is overwriting the current context with `#{$value}`";
+ }
+
+ @if not map-has-key($private-breakpoint-context-holder, $feature) {
+ $v-holder: ();
+ @for $i from 1 to $private-breakpoint-query-count {
+ @if $feature == 'media' {
+ $v-holder: append($v-holder, breakpoint-get('default media'));
+ }
+ @else {
+ $v-holder: append($v-holder, false);
+ }
+ }
+ $v-holder: append($v-holder, $value);
+ $private-breakpoint-context-holder: map-merge($private-breakpoint-context-holder, ($feature: $v-holder)) !global;
+ }
+ @else {
+ $v-holder: map-get($private-breakpoint-context-holder, $feature);
+ $length: length($v-holder);
+ @for $i from $length to $private-breakpoint-query-count - 1 {
+ @if $feature == 'media' {
+ $v-holder: append($v-holder, breakpoint-get('default media'));
+ }
+ @else {
+ $v-holder: append($v-holder, false);
+ }
+ }
+ $v-holder: append($v-holder, $value);
+ $private-breakpoint-context-holder: map-merge($private-breakpoint-context-holder, ($feature: $v-holder)) !global;
+ }
+
+ @return true;
+}
+
+//////////////////////////////
+// Private function to reset context
+//////////////////////////////
+@mixin private-breakpoint-reset-contexts {
+ $private-breakpoint-context-holder: () !global;
+ $private-breakpoint-query-count: 0 !global;
+}
\ No newline at end of file
diff --git a/_sass/vendor/breakpoint/_helpers.scss b/_sass/vendor/breakpoint/_helpers.scss
new file mode 100644
index 00000000..97e522d1
--- /dev/null
+++ b/_sass/vendor/breakpoint/_helpers.scss
@@ -0,0 +1,151 @@
+//////////////////////////////
+// Converts the input value to Base EMs
+//////////////////////////////
+@function breakpoint-to-base-em($value) {
+ $value-unit: unit($value);
+
+ // Will convert relative EMs into root EMs.
+ @if breakpoint-get('base font size') and type-of(breakpoint-get('base font size')) == 'number' and $value-unit == 'em' {
+ $base-unit: unit(breakpoint-get('base font size'));
+
+ @if $base-unit == 'px' or $base-unit == '%' or $base-unit == 'em' or $base-unit == 'pt' {
+ @return base-conversion($value) / base-conversion(breakpoint-get('base font size')) * 1em;
+ }
+ @else {
+ @warn '#{breakpoint-get(\'base font size\')} is not set in valid units for font size!';
+ @return false;
+ }
+ }
+ @else {
+ @return base-conversion($value);
+ }
+}
+
+@function base-conversion($value) {
+ $unit: unit($value);
+
+ @if $unit == 'px' {
+ @return $value / 16px * 1em;
+ }
+ @else if $unit == '%' {
+ @return $value / 100% * 1em;
+ }
+ @else if $unit == 'em' {
+ @return $value;
+ }
+ @else if $unit == 'pt' {
+ @return $value / 12pt * 1em;
+ }
+ @else {
+ @return $value;
+// @warn 'Everything is terrible! What have you done?!';
+ }
+}
+
+//////////////////////////////
+// Returns whether the feature can have a min/max pair
+//////////////////////////////
+$breakpoint-min-max-features: 'color',
+ 'color-index',
+ 'aspect-ratio',
+ 'device-aspect-ratio',
+ 'device-height',
+ 'device-width',
+ 'height',
+ 'monochrome',
+ 'resolution',
+ 'width';
+
+@function breakpoint-min-max($feature) {
+ @each $item in $breakpoint-min-max-features {
+ @if $feature == $item {
+ @return true;
+ }
+ }
+ @return false;
+}
+
+//////////////////////////////
+// Returns whether the feature can have a string value
+//////////////////////////////
+$breakpoint-string-features: 'orientation',
+ 'scan',
+ 'color',
+ 'aspect-ratio',
+ 'device-aspect-ratio',
+ 'pointer',
+ 'luminosity';
+
+@function breakpoint-string-value($feature) {
+ @each $item in $breakpoint-string-features {
+ @if breakpoint-min-max($item) {
+ @if $feature == 'min-#{$item}' or $feature == 'max-#{$item}' {
+ @return true;
+ }
+ }
+ @else if $feature == $item {
+ @return true;
+ }
+ }
+ @return false;
+}
+
+//////////////////////////////
+// Returns whether the feature is a media type
+//////////////////////////////
+$breakpoint-media-types: 'all',
+ 'braille',
+ 'embossed',
+ 'handheld',
+ 'print',
+ 'projection',
+ 'screen',
+ 'speech',
+ 'tty',
+ 'tv';
+
+@function breakpoint-is-media($feature) {
+ @each $media in $breakpoint-media-types {
+ @if ($feature == $media) or ($feature == 'not #{$media}') or ($feature == 'only #{$media}') {
+ @return true;
+ }
+ }
+
+ @return false;
+}
+
+//////////////////////////////
+// Returns whether the feature can stand alone
+//////////////////////////////
+$breakpoint-single-string-features: 'color',
+ 'color-index',
+ 'grid',
+ 'monochrome';
+
+@function breakpoint-single-string($feature) {
+ @each $item in $breakpoint-single-string-features {
+ @if $feature == $item {
+ @return true;
+ }
+ }
+ @return false;
+}
+
+//////////////////////////////
+// Returns whether the feature
+//////////////////////////////
+@function breakpoint-is-resolution($feature) {
+ $resolutions: 'device-pixel-ratio', 'dpr';
+
+ @if breakpoint-get('transform resolutions') {
+ $resolutions: append($resolutions, 'resolution');
+ }
+
+ @each $reso in $resolutions {
+ @if index($feature, $reso) or index($feature, 'min-#{$reso}') or index($feature, 'max-#{$reso}') {
+ @return true;
+ }
+ }
+
+ @return false;
+}
diff --git a/_sass/vendor/breakpoint/_legacy-settings.scss b/_sass/vendor/breakpoint/_legacy-settings.scss
new file mode 100644
index 00000000..e060ebe3
--- /dev/null
+++ b/_sass/vendor/breakpoint/_legacy-settings.scss
@@ -0,0 +1,50 @@
+@mixin legacy-settings-warning {
+ $legacyVars: (
+ 'default-media': 'default media',
+ 'default-feature': 'default feature',
+ 'force-media-all': 'force all media type',
+ 'to-ems': 'to ems',
+ 'resolutions': 'transform resolutions',
+ 'no-queries': 'no queries',
+ 'no-query-fallbacks': 'no query fallbacks',
+ 'base-font-size': 'base font size',
+ 'legacy-syntax': 'legacy syntax'
+ );
+
+ @each $legacy, $new in $legacyVars {
+ @if global-variable-exists('breakpoint-' + $legacy) {
+ @warn "In order to avoid variable namspace collisions, we have updated the way to change settings for Breakpoint. Please change all instances of `$breakpoint-#{$legacy}: {{setting}}` to `@include breakpoint-set('#{$new}', {{setting}})`. Variable settings, as well as this warning will be deprecated in a future release."
+ }
+ };
+
+ //////////////////////////////
+ // Hand correct each setting
+ //////////////////////////////
+ @if global-variable-exists('breakpoint-default-media') and $breakpoint-default-media != breakpoint-get('default media') {
+ @include breakpoint-set('default media', $breakpoint-default-media);
+ }
+ @if global-variable-exists('breakpoint-default-feature') and $breakpoint-default-feature != breakpoint-get('default feature') {
+ @include breakpoint-set('default feature', $breakpoint-default-feature);
+ }
+ @if global-variable-exists('breakpoint-force-media-all') and $breakpoint-force-media-all != breakpoint-get('force all media type') {
+ @include breakpoint-set('force all media type', $breakpoint-force-media-all);
+ }
+ @if global-variable-exists('breakpoint-to-ems') and $breakpoint-to-ems != breakpoint-get('to ems') {
+ @include breakpoint-set('to ems', $breakpoint-to-ems);
+ }
+ @if global-variable-exists('breakpoint-resolutions') and $breakpoint-resolutions != breakpoint-get('transform resolutions') {
+ @include breakpoint-set('transform resolutions', $breakpoint-resolutions);
+ }
+ @if global-variable-exists('breakpoint-no-queries') and $breakpoint-no-queries != breakpoint-get('no queries') {
+ @include breakpoint-set('no queries', $breakpoint-no-queries);
+ }
+ @if global-variable-exists('breakpoint-no-query-fallbacks') and $breakpoint-no-query-fallbacks != breakpoint-get('no query fallbacks') {
+ @include breakpoint-set('no query fallbacks', $breakpoint-no-query-fallbacks);
+ }
+ @if global-variable-exists('breakpoint-base-font-size') and $breakpoint-base-font-size != breakpoint-get('base font size') {
+ @include breakpoint-set('base font size', $breakpoint-base-font-size);
+ }
+ @if global-variable-exists('breakpoint-legacy-syntax') and $breakpoint-legacy-syntax != breakpoint-get('legacy syntax') {
+ @include breakpoint-set('legacy syntax', $breakpoint-legacy-syntax);
+ }
+}
\ No newline at end of file
diff --git a/_sass/vendor/breakpoint/_no-query.scss b/_sass/vendor/breakpoint/_no-query.scss
new file mode 100644
index 00000000..0b5a81f6
--- /dev/null
+++ b/_sass/vendor/breakpoint/_no-query.scss
@@ -0,0 +1,15 @@
+@function breakpoint-no-query($query) {
+ @if type-of($query) == 'list' {
+ $keyword: nth($query, 1);
+
+ @if type-of($keyword) == 'string' and ($keyword == 'no-query' or $keyword == 'no query' or $keyword == 'fallback') {
+ @return nth($query, 2);
+ }
+ @else {
+ @return false;
+ }
+ }
+ @else {
+ @return false;
+ }
+}
diff --git a/_sass/vendor/breakpoint/_parsers.scss b/_sass/vendor/breakpoint/_parsers.scss
new file mode 100644
index 00000000..f0b053fe
--- /dev/null
+++ b/_sass/vendor/breakpoint/_parsers.scss
@@ -0,0 +1,215 @@
+//////////////////////////////
+// Import Parser Pieces
+//////////////////////////////
+@import "parsers/query";
+@import "parsers/single";
+@import "parsers/double";
+@import "parsers/triple";
+@import "parsers/resolution";
+
+$Memo-Exists: function-exists(memo-get) and function-exists(memo-set);
+
+//////////////////////////////
+// Breakpoint Function
+//////////////////////////////
+@function breakpoint($query, $contexts...) {
+ $run: true;
+ $return: ();
+
+ // Grab the Memo Output if Memoization can be a thing
+ @if $Memo-Exists {
+ $return: memo-get(breakpoint, breakpoint $query $contexts);
+
+ @if $return != null {
+ $run: false;
+ }
+ }
+
+ @if not $Memo-Exists or $run {
+ // Internal Variables
+ $query-string: '';
+ $query-fallback: false;
+ $return: ();
+
+ // Reserve Global Private Breakpoint Context
+ $holder-context: $private-breakpoint-context-holder;
+ $holder-query-count: $private-breakpoint-query-count;
+
+ // Reset Global Private Breakpoint Context
+ $private-breakpoint-context-holder: () !global;
+ $private-breakpoint-query-count: 0 !global;
+
+
+ // Test to see if it's a comma-separated list
+ $or-list: if(list-separator($query) == 'comma', true, false);
+
+
+ @if ($or-list == false and breakpoint-get('legacy syntax') == false) {
+ $query-string: breakpoint-parse($query);
+ }
+ @else {
+ $length: length($query);
+
+ $last: nth($query, $length);
+ $query-fallback: breakpoint-no-query($last);
+
+ @if ($query-fallback != false) {
+ $length: $length - 1;
+ }
+
+ @if (breakpoint-get('legacy syntax') == true) {
+ $mq: ();
+
+ @for $i from 1 through $length {
+ $mq: append($mq, nth($query, $i), comma);
+ }
+
+ $query-string: breakpoint-parse($mq);
+ }
+ @else {
+ $query-string: '';
+ @for $i from 1 through $length {
+ $query-string: $query-string + if($i == 1, '', ', ') + breakpoint-parse(nth($query, $i));
+ }
+ }
+ }
+
+ $return: ('query': $query-string,
+ 'fallback': $query-fallback,
+ 'context holder': $private-breakpoint-context-holder,
+ 'query count': $private-breakpoint-query-count
+ );
+ @if length($contexts) > 0 and nth($contexts, 1) != false {
+ @if $query-fallback != false {
+ $context-setter: private-breakpoint-set-context('no-query', $query-fallback);
+ }
+ $context-map: ();
+ @each $context in $contexts {
+ $context-map: map-merge($context-map, ($context: breakpoint-get-context($context)));
+ }
+ $return: map-merge($return, (context: $context-map));
+ }
+
+ // Reset Global Private Breakpoint Context
+ $private-breakpoint-context-holder: () !global;
+ $private-breakpoint-query-count: 0 !global;
+
+ @if $Memo-Exists {
+ $holder: memo-set(breakpoint, breakpoint $query $contexts, $return);
+ }
+ }
+
+ @return $return;
+}
+
+//////////////////////////////
+// General Breakpoint Parser
+//////////////////////////////
+@function breakpoint-parse($query) {
+ // Increase number of 'and' queries
+ $private-breakpoint-query-count: $private-breakpoint-query-count + 1 !global;
+
+ // Set up Media Type
+ $query-print: '';
+
+ $force-all: ((breakpoint-get('force all media type') == true) and (breakpoint-get('default media') == 'all'));
+ $empty-media: true;
+ @if ($force-all == true) or (breakpoint-get('default media') != 'all') {
+ // Force the print of the default media type if (force all is true and default media type is all) or (default media type is not all)
+ $query-print: breakpoint-get('default media');
+ $empty-media: false;
+ }
+
+
+ $query-resolution: false;
+
+ $query-holder: breakpoint-parse-query($query);
+
+
+
+ // Loop over each parsed out query and write it to $query-print
+ $first: true;
+
+ @each $feature in $query-holder {
+ $length: length($feature);
+
+ // Parse a single feature
+ @if ($length == 1) {
+ // Feature is currently a list, grab the actual value
+ $feature: nth($feature, 1);
+
+ // Media Type must by convention be the first item, so it's safe to flat override $query-print, which right now should only be the default media type
+ @if (breakpoint-is-media($feature)) {
+ @if ($force-all == true) or ($feature != 'all') {
+ // Force the print of the default media type if (force all is true and default media type is all) or (default media type is not all)
+ $query-print: $feature;
+ $empty-media: false;
+
+ // Set Context
+ $context-setter: private-breakpoint-set-context(media, $query-print);
+ }
+ }
+ @else {
+ $parsed: breakpoint-parse-single($feature, $empty-media, $first);
+ $query-print: '#{$query-print} #{$parsed}';
+ $first: false;
+ }
+ }
+ // Parse a double feature
+ @else if ($length == 2) {
+ @if (breakpoint-is-resolution($feature) != false) {
+ $query-resolution: $feature;
+ }
+ @else {
+ $parsed: null;
+ // If it's a string/number pair,
+ // we check to see if one is a single-string value,
+ // then we parse it as a normal double
+ $alpha: nth($feature, 1);
+ $beta: nth($feature, 2);
+ @if breakpoint-single-string($alpha) or breakpoint-single-string($beta) {
+ $parsed: breakpoint-parse-single($alpha, $empty-media, $first);
+ $query-print: '#{$query-print} #{$parsed}';
+ $first: false;
+ $parsed: breakpoint-parse-single($beta, $empty-media, $first);
+ $query-print: '#{$query-print} #{$parsed}';
+ }
+ @else {
+ $parsed: breakpoint-parse-double($feature, $empty-media, $first);
+ $query-print: '#{$query-print} #{$parsed}';
+ $first: false;
+ }
+ }
+ }
+ // Parse a triple feature
+ @else if ($length == 3) {
+ $parsed: breakpoint-parse-triple($feature, $empty-media, $first);
+ $query-print: '#{$query-print} #{$parsed}';
+ $first: false;
+ }
+
+ }
+
+ @if ($query-resolution != false) {
+ $query-print: breakpoint-build-resolution($query-print, $query-resolution, $empty-media, $first);
+ }
+
+ // Loop through each feature that's been detected so far and append 'false' to the the value list to increment their counters
+ @each $f, $v in $private-breakpoint-context-holder {
+ $v-holder: $v;
+ $length: length($v-holder);
+ @if length($v-holder) < $private-breakpoint-query-count {
+ @for $i from $length to $private-breakpoint-query-count {
+ @if $f == 'media' {
+ $v-holder: append($v-holder, breakpoint-get('default media'));
+ }
+ @else {
+ $v-holder: append($v-holder, false);
+ }
+ }
+ }
+ $private-breakpoint-context-holder: map-merge($private-breakpoint-context-holder, ($f: $v-holder)) !global;
+ }
+
+ @return $query-print;
+}
diff --git a/_sass/vendor/breakpoint/_respond-to.scss b/_sass/vendor/breakpoint/_respond-to.scss
new file mode 100644
index 00000000..e2462c5f
--- /dev/null
+++ b/_sass/vendor/breakpoint/_respond-to.scss
@@ -0,0 +1,82 @@
+////////////////////////
+// Default the Breakpoints variable
+////////////////////////
+$breakpoints: () !default;
+$BREAKPOINTS: () !default;
+
+////////////////////////
+// Respond-to API Mixin
+////////////////////////
+@mixin respond-to($context, $no-query: false) {
+ @if length($breakpoints) > 0 and length($BREAKPOINTS) == 0 {
+ @warn "In order to avoid variable namespace collisions, we have updated the way to add breakpoints for respond-to. Please change all instances of `$breakpoints: add-breakpoint()` to `@include add-breakpoint()`. The `add-breakpoint()` function will be deprecated in a future release.";
+ $BREAKPOINTS: $breakpoints !global;
+ $breakpoints: () !global;
+ }
+
+ @if type-of($BREAKPOINTS) != 'map' {
+ // Just in case someone writes gibberish to the $breakpoints variable.
+ @warn "Your breakpoints aren't a map! `respond-to` expects a map. Please check the value of $BREAKPOINTS variable.";
+ @content;
+ }
+ @else if map-has-key($BREAKPOINTS, $context) {
+ @include breakpoint(map-get($BREAKPOINTS, $context), $no-query) {
+ @content;
+ }
+ }
+ @else if not map-has-key($BREAKPOINTS, $context) {
+ @warn "`#{$context}` isn't a defined breakpoint! Please add it using `$breakpoints: add-breakpoint(`#{$context}`, $value);`";
+ @content;
+ }
+ @else {
+ @warn "You haven't created any breakpoints yet! Make some already! `@include add-breakpoint($name, $bkpt)`";
+ @content;
+ }
+}
+
+//////////////////////////////
+// Add Breakpoint to Breakpoints
+// TODO: Remove function in next release
+//////////////////////////////
+@function add-breakpoint($name, $bkpt, $overwrite: false) {
+ $output: ($name: $bkpt);
+
+ @if length($breakpoints) == 0 {
+ @return $output;
+ }
+ @else {
+ @if map-has-key($breakpoints, $name) and $overwrite != true {
+ @warn "You already have a breakpoint named `#{$name}`, please choose another breakpoint name, or pass in `$overwrite: true` to overwrite the previous breakpoint.";
+ @return $breakpoints;
+ }
+ @else if not map-has-key($breakpoints, $name) or $overwrite == true {
+ @return map-merge($breakpoints, $output);
+ }
+ }
+}
+
+@mixin add-breakpoint($name, $bkpt, $overwrite: false) {
+ $output: ($name: $bkpt);
+
+ @if length($BREAKPOINTS) == 0 {
+ $BREAKPOINTS: $output !global;
+ }
+ @else {
+ @if map-has-key($BREAKPOINTS, $name) and $overwrite != true {
+ @warn "You already have a breakpoint named `#{$name}`, please choose another breakpoint name, or pass in `$overwrite: true` to overwrite the previous breakpoint.";
+ $BREAKPOINTS: $BREAKPOINTS !global;
+ }
+ @else if not map-has-key($BREAKPOINTS, $name) or $overwrite == true {
+ $BREAKPOINTS: map-merge($BREAKPOINTS, $output) !global;
+ }
+ }
+}
+
+@function get-breakpoint($name: false) {
+ @if $name == false {
+ @return $BREAKPOINTS;
+ }
+ @else {
+ @return map-get($BREAKPOINTS, $name);
+ }
+}
diff --git a/_sass/vendor/breakpoint/_settings.scss b/_sass/vendor/breakpoint/_settings.scss
new file mode 100644
index 00000000..05ee6894
--- /dev/null
+++ b/_sass/vendor/breakpoint/_settings.scss
@@ -0,0 +1,71 @@
+//////////////////////////////
+// Has Setting
+//////////////////////////////
+@function breakpoint-has($setting) {
+ @if map-has-key($breakpoint, $setting) {
+ @return true;
+ }
+ @else {
+ @return false;
+ }
+}
+
+//////////////////////////////
+// Get Settings
+//////////////////////////////
+@function breakpoint-get($setting) {
+ @if breakpoint-has($setting) {
+ @return map-get($breakpoint, $setting);
+ }
+ @else {
+ @return map-get($Breakpoint-Settings, $setting);
+ }
+}
+
+//////////////////////////////
+// Set Settings
+//////////////////////////////
+@function breakpoint-set($setting, $value) {
+ @if (str-index($setting, '-') or str-index($setting, '_')) and str-index($setting, ' ') == null {
+ @warn "Words in Breakpoint settings should be separated by spaces, not dashes or underscores. Please replace dashes and underscores between words with spaces. Settings will not work as expected until changed.";
+ }
+ $breakpoint: map-merge($breakpoint, ($setting: $value)) !global;
+ @return true;
+}
+
+@mixin breakpoint-change($setting, $value) {
+ $breakpoint-change: breakpoint-set($setting, $value);
+}
+
+@mixin breakpoint-set($setting, $value) {
+ @include breakpoint-change($setting, $value);
+}
+
+@mixin bkpt-change($setting, $value) {
+ @include breakpoint-change($setting, $value);
+}
+@mixin bkpt-set($setting, $value) {
+ @include breakpoint-change($setting, $value);
+}
+
+//////////////////////////////
+// Remove Setting
+//////////////////////////////
+@function breakpoint-reset($settings...) {
+ @if length($settings) == 1 {
+ $settings: nth($settings, 1);
+ }
+
+ @each $setting in $settings {
+ $breakpoint: map-remove($breakpoint, $setting) !global;
+ }
+ @return true;
+}
+
+@mixin breakpoint-reset($settings...) {
+ $breakpoint-reset: breakpoint-reset($settings);
+}
+
+@mixin bkpt-reset($settings...) {
+ $breakpoint-reset: breakpoint-reset($settings);
+}
\ No newline at end of file
diff --git a/_sass/vendor/breakpoint/parsers/_double.scss b/_sass/vendor/breakpoint/parsers/_double.scss
new file mode 100644
index 00000000..24580c15
--- /dev/null
+++ b/_sass/vendor/breakpoint/parsers/_double.scss
@@ -0,0 +1,33 @@
+//////////////////////////////
+// Import Pieces
+//////////////////////////////
+@import "double/default-pair";
+@import "double/double-string";
+@import "double/default";
+
+@function breakpoint-parse-double($feature, $empty-media, $first) {
+ $parsed: '';
+ $leader: '';
+ // If we're forcing
+ @if not ($empty-media) or not ($first) {
+ $leader: 'and ';
+ }
+
+ $first: nth($feature, 1);
+ $second: nth($feature, 2);
+
+ // If we've got two numbers, we know we need to use the default pair because there are no media queries that has a media feature that is a number
+ @if type-of($first) == 'number' and type-of($second) == 'number' {
+ $parsed: breakpoint-parse-default-pair($first, $second);
+ }
+ // If they are both strings, we send it through the string parser
+ @else if type-of($first) == 'string' and type-of($second) == 'string' {
+ $parsed: breakpoint-parse-double-string($first, $second);
+ }
+ // If it's a string/number pair, we parse it as a normal double
+ @else {
+ $parsed: breakpoint-parse-double-default($first, $second);
+ }
+
+ @return $leader + $parsed;
+}
diff --git a/_sass/vendor/breakpoint/parsers/_query.scss b/_sass/vendor/breakpoint/parsers/_query.scss
new file mode 100644
index 00000000..b138b393
--- /dev/null
+++ b/_sass/vendor/breakpoint/parsers/_query.scss
@@ -0,0 +1,82 @@
+@function breakpoint-parse-query($query) {
+ // Parse features out of an individual query
+ $feature-holder: ();
+ $query-holder: ();
+ $length: length($query);
+
+ @if $length == 2 {
+ // If we've got a string/number, number/string, check to see if it's a valid string/number pair or two singles
+ @if (type-of(nth($query, 1)) == 'string' and type-of(nth($query, 2)) == 'number') or (type-of(nth($query, 1)) == 'number' and type-of(nth($query, 2)) == 'string') {
+
+ $number: '';
+ $value: '';
+
+ @if type-of(nth($query, 1)) == 'string' {
+ $number: nth($query, 2);
+ $value: nth($query, 1);
+ }
+ @else {
+ $number: nth($query, 1);
+ $value: nth($query, 2);
+ }
+
+ // If the string value can be a single value, check to see if the number passed in is a valid input for said single value. Fortunately, all current single-value options only accept unitless numbers, so this check is easy.
+ @if breakpoint-single-string($value) {
+ @if unitless($number) {
+ $feature-holder: append($value, $number, space);
+ $query-holder: append($query-holder, $feature-holder, comma);
+ @return $query-holder;
+ }
+ }
+ // If the string is a media type, split the query
+ @if breakpoint-is-media($value) {
+ $query-holder: append($query-holder, nth($query, 1));
+ $query-holder: append($query-holder, nth($query, 2));
+ @return $query-holder;
+ }
+ // If it's not a single feature, we're just going to assume it's a proper string/value pair, and roll with it.
+ @else {
+ $feature-holder: append($value, $number, space);
+ $query-holder: append($query-holder, $feature-holder, comma);
+ @return $query-holder;
+ }
+
+ }
+ // If they're both numbers, we assume it's a double and roll with that
+ @else if (type-of(nth($query, 1)) == 'number' and type-of(nth($query, 2)) == 'number') {
+ $feature-holder: append(nth($query, 1), nth($query, 2), space);
+ $query-holder: append($query-holder, $feature-holder, comma);
+ @return $query-holder;
+ }
+ // If they're both strings and neither are singles, we roll with that.
+ @else if (type-of(nth($query, 1)) == 'string' and type-of(nth($query, 2)) == 'string') {
+ @if not breakpoint-single-string(nth($query, 1)) and not breakpoint-single-string(nth($query, 2)) {
+ $feature-holder: append(nth($query, 1), nth($query, 2), space);
+ $query-holder: append($query-holder, $feature-holder, comma);
+ @return $query-holder;
+ }
+ }
+ }
+ @else if $length == 3 {
+ // If we've got three items and none is a list, we check to see
+ @if type-of(nth($query, 1)) != 'list' and type-of(nth($query, 2)) != 'list' and type-of(nth($query, 3)) != 'list' {
+ // If none of the items are single string values and none of the values are media values, we're good.
+ @if (not breakpoint-single-string(nth($query, 1)) and not breakpoint-single-string(nth($query, 2)) and not breakpoint-single-string(nth($query, 3))) and ((not breakpoint-is-media(nth($query, 1)) and not breakpoint-is-media(nth($query, 2)) and not breakpoint-is-media(nth($query, 3)))) {
+ $feature-holder: append(nth($query, 1), nth($query, 2), space);
+ $feature-holder: append($feature-holder, nth($query, 3), space);
+ $query-holder: append($query-holder, $feature-holder, comma);
+ @return $query-holder;
+ }
+ // let's check to see if the first item is a media type
+ @else if breakpoint-is-media(nth($query, 1)) {
+ $query-holder: append($query-holder, nth($query, 1));
+ $feature-holder: append(nth($query, 2), nth($query, 3), space);
+ $query-holder: append($query-holder, $feature-holder);
+ @return $query-holder;
+ }
+ }
+ }
+
+ // If it's a single item, or if it's not a special case double or triple, we can simply return the query.
+ @return $query;
+}
diff --git a/_sass/vendor/breakpoint/parsers/_resolution.scss b/_sass/vendor/breakpoint/parsers/_resolution.scss
new file mode 100644
index 00000000..19769adf
--- /dev/null
+++ b/_sass/vendor/breakpoint/parsers/_resolution.scss
@@ -0,0 +1,31 @@
+@import "resolution/resolution";
+
+@function breakpoint-build-resolution($query-print, $query-resolution, $empty-media, $first) {
+ $leader: '';
+ // If we're forcing
+ @if not ($empty-media) or not ($first) {
+ $leader: 'and ';
+ }
+
+ @if breakpoint-get('transform resolutions') and $query-resolution {
+ $resolutions: breakpoint-make-resolutions($query-resolution);
+ $length: length($resolutions);
+ $query-holder: '';
+
+ @for $i from 1 through $length {
+ $query: '#{$query-print} #{$leader}#{nth($resolutions, $i)}';
+ @if $i == 1 {
+ $query-holder: $query;
+ }
+ @else {
+ $query-holder: '#{$query-holder}, #{$query}';
+ }
+ }
+
+ @return $query-holder;
+ }
+ @else {
+ // Return with attached resolution
+ @return $query-print;
+ }
+}
diff --git a/_sass/vendor/breakpoint/parsers/_single.scss b/_sass/vendor/breakpoint/parsers/_single.scss
new file mode 100644
index 00000000..d9fd764a
--- /dev/null
+++ b/_sass/vendor/breakpoint/parsers/_single.scss
@@ -0,0 +1,26 @@
+//////////////////////////////
+// Import Pieces
+//////////////////////////////
+@import "single/default";
+
+@function breakpoint-parse-single($feature, $empty-media, $first) {
+ $parsed: '';
+ $leader: '';
+ // If we're forcing
+ @if not ($empty-media) or not ($first) {
+ $leader: 'and ';
+ }
+
+ // If it's a single feature that can stand alone, we let it
+ @if (breakpoint-single-string($feature)) {
+ $parsed: $feature;
+ // Set Context
+ $context-setter: private-breakpoint-set-context($feature, $feature);
+ }
+ // If it's not a stand alone feature, we pass it off to the default handler.
+ @else {
+ $parsed: breakpoint-parse-default($feature);
+ }
+
+ @return $leader + '(' + $parsed + ')';
+}
diff --git a/_sass/vendor/breakpoint/parsers/_triple.scss b/_sass/vendor/breakpoint/parsers/_triple.scss
new file mode 100644
index 00000000..e2732067
--- /dev/null
+++ b/_sass/vendor/breakpoint/parsers/_triple.scss
@@ -0,0 +1,36 @@
+//////////////////////////////
+// Import Pieces
+//////////////////////////////
+@import "triple/default";
+
+@function breakpoint-parse-triple($feature, $empty-media, $first) {
+ $parsed: '';
+ $leader: '';
+
+ // If we're forcing
+ @if not ($empty-media) or not ($first) {
+ $leader: 'and ';
+ }
+
+ // separate the string features from the value numbers
+ $string: null;
+ $numbers: null;
+ @each $val in $feature {
+ @if type-of($val) == string {
+ $string: $val;
+ }
+ @else {
+ @if type-of($numbers) == 'null' {
+ $numbers: $val;
+ }
+ @else {
+ $numbers: append($numbers, $val);
+ }
+ }
+ }
+
+ $parsed: breakpoint-parse-triple-default($string, nth($numbers, 1), nth($numbers, 2));
+
+ @return $leader + $parsed;
+
+}
diff --git a/_sass/vendor/breakpoint/parsers/double/_default-pair.scss b/_sass/vendor/breakpoint/parsers/double/_default-pair.scss
new file mode 100644
index 00000000..f88432cc
--- /dev/null
+++ b/_sass/vendor/breakpoint/parsers/double/_default-pair.scss
@@ -0,0 +1,21 @@
+@function breakpoint-parse-default-pair($first, $second) {
+ $default: breakpoint-get('default pair');
+ $min: '';
+ $max: '';
+
+ // Sort into min and max
+ $min: min($first, $second);
+ $max: max($first, $second);
+
+ // Set Context
+ $context-setter: private-breakpoint-set-context(min-#{$default}, $min);
+ $context-setter: private-breakpoint-set-context(max-#{$default}, $max);
+
+ // Make them EMs if need be
+ @if (breakpoint-get('to ems') == true) {
+ $min: breakpoint-to-base-em($min);
+ $max: breakpoint-to-base-em($max);
+ }
+
+ @return '(min-#{$default}: #{$min}) and (max-#{$default}: #{$max})';
+}
diff --git a/_sass/vendor/breakpoint/parsers/double/_default.scss b/_sass/vendor/breakpoint/parsers/double/_default.scss
new file mode 100644
index 00000000..73190ed5
--- /dev/null
+++ b/_sass/vendor/breakpoint/parsers/double/_default.scss
@@ -0,0 +1,22 @@
+@function breakpoint-parse-double-default($first, $second) {
+ $feature: '';
+ $value: '';
+
+ @if type-of($first) == 'string' {
+ $feature: $first;
+ $value: $second;
+ }
+ @else {
+ $feature: $second;
+ $value: $first;
+ }
+
+ // Set Context
+ $context-setter: private-breakpoint-set-context($feature, $value);
+
+ @if (breakpoint-get('to ems') == true) {
+ $value: breakpoint-to-base-em($value);
+ }
+
+ @return '(#{$feature}: #{$value})'
+}
diff --git a/_sass/vendor/breakpoint/parsers/double/_double-string.scss b/_sass/vendor/breakpoint/parsers/double/_double-string.scss
new file mode 100644
index 00000000..c6fd0cb0
--- /dev/null
+++ b/_sass/vendor/breakpoint/parsers/double/_double-string.scss
@@ -0,0 +1,22 @@
+@function breakpoint-parse-double-string($first, $second) {
+ $feature: '';
+ $value: '';
+
+ // Test to see which is the feature and which is the value
+ @if (breakpoint-string-value($first) == true) {
+ $feature: $first;
+ $value: $second;
+ }
+ @else if (breakpoint-string-value($second) == true) {
+ $feature: $second;
+ $value: $first;
+ }
+ @else {
+ @warn "Neither #{$first} nor #{$second} is a valid media query name.";
+ }
+
+ // Set Context
+ $context-setter: private-breakpoint-set-context($feature, $value);
+
+ @return '(#{$feature}: #{$value})';
+}
\ No newline at end of file
diff --git a/_sass/vendor/breakpoint/parsers/resolution/_resolution.scss b/_sass/vendor/breakpoint/parsers/resolution/_resolution.scss
new file mode 100644
index 00000000..36804212
--- /dev/null
+++ b/_sass/vendor/breakpoint/parsers/resolution/_resolution.scss
@@ -0,0 +1,60 @@
+@function breakpoint-make-resolutions($resolution) {
+ $length: length($resolution);
+
+ $output: ();
+
+ @if $length == 2 {
+ $feature: '';
+ $value: '';
+
+ // Find which is number
+ @if type-of(nth($resolution, 1)) == 'number' {
+ $value: nth($resolution, 1);
+ }
+ @else {
+ $value: nth($resolution, 2);
+ }
+
+ // Determine min/max/standard
+ @if index($resolution, 'min-resolution') {
+ $feature: 'min-';
+ }
+ @else if index($resolution, 'max-resolution') {
+ $feature: 'max-';
+ }
+
+ $standard: '(#{$feature}resolution: #{$value})';
+
+ // If we're not dealing with dppx,
+ @if unit($value) != 'dppx' {
+ $base: 96dpi;
+ @if unit($value) == 'dpcm' {
+ $base: 243.84dpcm;
+ }
+ // Write out feature tests
+ $webkit: '';
+ $moz: '';
+ $webkit: '(-webkit-#{$feature}device-pixel-ratio: #{$value / $base})';
+ $moz: '(#{$feature}-moz-device-pixel-ratio: #{$value / $base})';
+ // Append to output
+ $output: append($output, $standard, space);
+ $output: append($output, $webkit, space);
+ $output: append($output, $moz, space);
+ }
+ @else {
+ $webkit: '';
+ $moz: '';
+ $webkit: '(-webkit-#{$feature}device-pixel-ratio: #{$value / 1dppx})';
+ $moz: '(#{$feature}-moz-device-pixel-ratio: #{$value / 1dppx})';
+ $fallback: '(#{$feature}resolution: #{$value / 1dppx * 96dpi})';
+ // Append to output
+ $output: append($output, $standard, space);
+ $output: append($output, $webkit, space);
+ $output: append($output, $moz, space);
+ $output: append($output, $fallback, space);
+ }
+
+ }
+
+ @return $output;
+}
diff --git a/_sass/vendor/breakpoint/parsers/single/_default.scss b/_sass/vendor/breakpoint/parsers/single/_default.scss
new file mode 100644
index 00000000..503ef427
--- /dev/null
+++ b/_sass/vendor/breakpoint/parsers/single/_default.scss
@@ -0,0 +1,13 @@
+@function breakpoint-parse-default($feature) {
+ $default: breakpoint-get('default feature');
+
+ // Set Context
+ $context-setter: private-breakpoint-set-context($default, $feature);
+
+ @if (breakpoint-get('to ems') == true) and (type-of($feature) == 'number') {
+ @return '#{$default}: #{breakpoint-to-base-em($feature)}';
+ }
+ @else {
+ @return '#{$default}: #{$feature}';
+ }
+}
diff --git a/_sass/vendor/breakpoint/parsers/triple/_default.scss b/_sass/vendor/breakpoint/parsers/triple/_default.scss
new file mode 100644
index 00000000..7fa418dd
--- /dev/null
+++ b/_sass/vendor/breakpoint/parsers/triple/_default.scss
@@ -0,0 +1,18 @@
+@function breakpoint-parse-triple-default($feature, $first, $second) {
+
+ // Sort into min and max
+ $min: min($first, $second);
+ $max: max($first, $second);
+
+ // Set Context
+ $context-setter: private-breakpoint-set-context(min-#{$feature}, $min);
+ $context-setter: private-breakpoint-set-context(max-#{$feature}, $max);
+
+ // Make them EMs if need be
+ @if (breakpoint-get('to ems') == true) {
+ $min: breakpoint-to-base-em($min);
+ $max: breakpoint-to-base-em($max);
+ }
+
+ @return '(min-#{$feature}: #{$min}) and (max-#{$feature}: #{$max})';
+}
diff --git a/_sass/vendor/font-awesome/_animated.scss b/_sass/vendor/font-awesome/_animated.scss
new file mode 100644
index 00000000..8a020dbf
--- /dev/null
+++ b/_sass/vendor/font-awesome/_animated.scss
@@ -0,0 +1,34 @@
+// Spinning Icons
+// --------------------------
+
+.#{$fa-css-prefix}-spin {
+ -webkit-animation: fa-spin 2s infinite linear;
+ animation: fa-spin 2s infinite linear;
+}
+
+.#{$fa-css-prefix}-pulse {
+ -webkit-animation: fa-spin 1s infinite steps(8);
+ animation: fa-spin 1s infinite steps(8);
+}
+
+@-webkit-keyframes fa-spin {
+ 0% {
+ -webkit-transform: rotate(0deg);
+ transform: rotate(0deg);
+ }
+ 100% {
+ -webkit-transform: rotate(359deg);
+ transform: rotate(359deg);
+ }
+}
+
+@keyframes fa-spin {
+ 0% {
+ -webkit-transform: rotate(0deg);
+ transform: rotate(0deg);
+ }
+ 100% {
+ -webkit-transform: rotate(359deg);
+ transform: rotate(359deg);
+ }
+}
diff --git a/_sass/vendor/font-awesome/_bordered-pulled.scss b/_sass/vendor/font-awesome/_bordered-pulled.scss
new file mode 100644
index 00000000..d4b85a02
--- /dev/null
+++ b/_sass/vendor/font-awesome/_bordered-pulled.scss
@@ -0,0 +1,25 @@
+// Bordered & Pulled
+// -------------------------
+
+.#{$fa-css-prefix}-border {
+ padding: .2em .25em .15em;
+ border: solid .08em $fa-border-color;
+ border-radius: .1em;
+}
+
+.#{$fa-css-prefix}-pull-left { float: left; }
+.#{$fa-css-prefix}-pull-right { float: right; }
+
+.#{$fa-css-prefix} {
+ &.#{$fa-css-prefix}-pull-left { margin-right: .3em; }
+ &.#{$fa-css-prefix}-pull-right { margin-left: .3em; }
+}
+
+/* Deprecated as of 4.4.0 */
+.pull-right { float: right; }
+.pull-left { float: left; }
+
+.#{$fa-css-prefix} {
+ &.pull-left { margin-right: .3em; }
+ &.pull-right { margin-left: .3em; }
+}
diff --git a/_sass/vendor/font-awesome/_core.scss b/_sass/vendor/font-awesome/_core.scss
new file mode 100644
index 00000000..7425ef85
--- /dev/null
+++ b/_sass/vendor/font-awesome/_core.scss
@@ -0,0 +1,12 @@
+// Base Class Definition
+// -------------------------
+
+.#{$fa-css-prefix} {
+ display: inline-block;
+ font: normal normal normal #{$fa-font-size-base}/#{$fa-line-height-base} FontAwesome; // shortening font declaration
+ font-size: inherit; // can't have font-size inherit on line above, so need to override
+ text-rendering: auto; // optimizelegibility throws things off #1094
+ -webkit-font-smoothing: antialiased;
+ -moz-osx-font-smoothing: grayscale;
+
+}
diff --git a/_sass/vendor/font-awesome/_fixed-width.scss b/_sass/vendor/font-awesome/_fixed-width.scss
new file mode 100644
index 00000000..b221c981
--- /dev/null
+++ b/_sass/vendor/font-awesome/_fixed-width.scss
@@ -0,0 +1,6 @@
+// Fixed Width Icons
+// -------------------------
+.#{$fa-css-prefix}-fw {
+ width: (18em / 14);
+ text-align: center;
+}
diff --git a/_sass/vendor/font-awesome/_font-awesome.scss b/_sass/vendor/font-awesome/_font-awesome.scss
new file mode 100644
index 00000000..2308b14c
--- /dev/null
+++ b/_sass/vendor/font-awesome/_font-awesome.scss
@@ -0,0 +1,18 @@
+/*!
+ * Font Awesome 4.6.3 by @davegandy - http://fontawesome.io - @fontawesome
+ * License - http://fontawesome.io/license (Font: SIL OFL 1.1, CSS: MIT License)
+ */
+
+@import "variables";
+@import "mixins";
+@import "path";
+@import "core";
+@import "larger";
+@import "fixed-width";
+@import "list";
+@import "bordered-pulled";
+@import "animated";
+@import "rotated-flipped";
+@import "stacked";
+@import "icons";
+@import "screen-reader";
diff --git a/_sass/vendor/font-awesome/_icons.scss b/_sass/vendor/font-awesome/_icons.scss
new file mode 100644
index 00000000..29443443
--- /dev/null
+++ b/_sass/vendor/font-awesome/_icons.scss
@@ -0,0 +1,733 @@
+/* Font Awesome uses the Unicode Private Use Area (PUA) to ensure screen
+ readers do not read off random characters that represent icons */
+
+.#{$fa-css-prefix}-glass:before { content: $fa-var-glass; }
+.#{$fa-css-prefix}-music:before { content: $fa-var-music; }
+.#{$fa-css-prefix}-search:before { content: $fa-var-search; }
+.#{$fa-css-prefix}-envelope-o:before { content: $fa-var-envelope-o; }
+.#{$fa-css-prefix}-heart:before { content: $fa-var-heart; }
+.#{$fa-css-prefix}-star:before { content: $fa-var-star; }
+.#{$fa-css-prefix}-star-o:before { content: $fa-var-star-o; }
+.#{$fa-css-prefix}-user:before { content: $fa-var-user; }
+.#{$fa-css-prefix}-film:before { content: $fa-var-film; }
+.#{$fa-css-prefix}-th-large:before { content: $fa-var-th-large; }
+.#{$fa-css-prefix}-th:before { content: $fa-var-th; }
+.#{$fa-css-prefix}-th-list:before { content: $fa-var-th-list; }
+.#{$fa-css-prefix}-check:before { content: $fa-var-check; }
+.#{$fa-css-prefix}-remove:before,
+.#{$fa-css-prefix}-close:before,
+.#{$fa-css-prefix}-times:before { content: $fa-var-times; }
+.#{$fa-css-prefix}-search-plus:before { content: $fa-var-search-plus; }
+.#{$fa-css-prefix}-search-minus:before { content: $fa-var-search-minus; }
+.#{$fa-css-prefix}-power-off:before { content: $fa-var-power-off; }
+.#{$fa-css-prefix}-signal:before { content: $fa-var-signal; }
+.#{$fa-css-prefix}-gear:before,
+.#{$fa-css-prefix}-cog:before { content: $fa-var-cog; }
+.#{$fa-css-prefix}-trash-o:before { content: $fa-var-trash-o; }
+.#{$fa-css-prefix}-home:before { content: $fa-var-home; }
+.#{$fa-css-prefix}-file-o:before { content: $fa-var-file-o; }
+.#{$fa-css-prefix}-clock-o:before { content: $fa-var-clock-o; }
+.#{$fa-css-prefix}-road:before { content: $fa-var-road; }
+.#{$fa-css-prefix}-download:before { content: $fa-var-download; }
+.#{$fa-css-prefix}-arrow-circle-o-down:before { content: $fa-var-arrow-circle-o-down; }
+.#{$fa-css-prefix}-arrow-circle-o-up:before { content: $fa-var-arrow-circle-o-up; }
+.#{$fa-css-prefix}-inbox:before { content: $fa-var-inbox; }
+.#{$fa-css-prefix}-play-circle-o:before { content: $fa-var-play-circle-o; }
+.#{$fa-css-prefix}-rotate-right:before,
+.#{$fa-css-prefix}-repeat:before { content: $fa-var-repeat; }
+.#{$fa-css-prefix}-refresh:before { content: $fa-var-refresh; }
+.#{$fa-css-prefix}-list-alt:before { content: $fa-var-list-alt; }
+.#{$fa-css-prefix}-lock:before { content: $fa-var-lock; }
+.#{$fa-css-prefix}-flag:before { content: $fa-var-flag; }
+.#{$fa-css-prefix}-headphones:before { content: $fa-var-headphones; }
+.#{$fa-css-prefix}-volume-off:before { content: $fa-var-volume-off; }
+.#{$fa-css-prefix}-volume-down:before { content: $fa-var-volume-down; }
+.#{$fa-css-prefix}-volume-up:before { content: $fa-var-volume-up; }
+.#{$fa-css-prefix}-qrcode:before { content: $fa-var-qrcode; }
+.#{$fa-css-prefix}-barcode:before { content: $fa-var-barcode; }
+.#{$fa-css-prefix}-tag:before { content: $fa-var-tag; }
+.#{$fa-css-prefix}-tags:before { content: $fa-var-tags; }
+.#{$fa-css-prefix}-book:before { content: $fa-var-book; }
+.#{$fa-css-prefix}-bookmark:before { content: $fa-var-bookmark; }
+.#{$fa-css-prefix}-print:before { content: $fa-var-print; }
+.#{$fa-css-prefix}-camera:before { content: $fa-var-camera; }
+.#{$fa-css-prefix}-font:before { content: $fa-var-font; }
+.#{$fa-css-prefix}-bold:before { content: $fa-var-bold; }
+.#{$fa-css-prefix}-italic:before { content: $fa-var-italic; }
+.#{$fa-css-prefix}-text-height:before { content: $fa-var-text-height; }
+.#{$fa-css-prefix}-text-width:before { content: $fa-var-text-width; }
+.#{$fa-css-prefix}-align-left:before { content: $fa-var-align-left; }
+.#{$fa-css-prefix}-align-center:before { content: $fa-var-align-center; }
+.#{$fa-css-prefix}-align-right:before { content: $fa-var-align-right; }
+.#{$fa-css-prefix}-align-justify:before { content: $fa-var-align-justify; }
+.#{$fa-css-prefix}-list:before { content: $fa-var-list; }
+.#{$fa-css-prefix}-dedent:before,
+.#{$fa-css-prefix}-outdent:before { content: $fa-var-outdent; }
+.#{$fa-css-prefix}-indent:before { content: $fa-var-indent; }
+.#{$fa-css-prefix}-video-camera:before { content: $fa-var-video-camera; }
+.#{$fa-css-prefix}-photo:before,
+.#{$fa-css-prefix}-image:before,
+.#{$fa-css-prefix}-picture-o:before { content: $fa-var-picture-o; }
+.#{$fa-css-prefix}-pencil:before { content: $fa-var-pencil; }
+.#{$fa-css-prefix}-map-marker:before { content: $fa-var-map-marker; }
+.#{$fa-css-prefix}-adjust:before { content: $fa-var-adjust; }
+.#{$fa-css-prefix}-tint:before { content: $fa-var-tint; }
+.#{$fa-css-prefix}-edit:before,
+.#{$fa-css-prefix}-pencil-square-o:before { content: $fa-var-pencil-square-o; }
+.#{$fa-css-prefix}-share-square-o:before { content: $fa-var-share-square-o; }
+.#{$fa-css-prefix}-check-square-o:before { content: $fa-var-check-square-o; }
+.#{$fa-css-prefix}-arrows:before { content: $fa-var-arrows; }
+.#{$fa-css-prefix}-step-backward:before { content: $fa-var-step-backward; }
+.#{$fa-css-prefix}-fast-backward:before { content: $fa-var-fast-backward; }
+.#{$fa-css-prefix}-backward:before { content: $fa-var-backward; }
+.#{$fa-css-prefix}-play:before { content: $fa-var-play; }
+.#{$fa-css-prefix}-pause:before { content: $fa-var-pause; }
+.#{$fa-css-prefix}-stop:before { content: $fa-var-stop; }
+.#{$fa-css-prefix}-forward:before { content: $fa-var-forward; }
+.#{$fa-css-prefix}-fast-forward:before { content: $fa-var-fast-forward; }
+.#{$fa-css-prefix}-step-forward:before { content: $fa-var-step-forward; }
+.#{$fa-css-prefix}-eject:before { content: $fa-var-eject; }
+.#{$fa-css-prefix}-chevron-left:before { content: $fa-var-chevron-left; }
+.#{$fa-css-prefix}-chevron-right:before { content: $fa-var-chevron-right; }
+.#{$fa-css-prefix}-plus-circle:before { content: $fa-var-plus-circle; }
+.#{$fa-css-prefix}-minus-circle:before { content: $fa-var-minus-circle; }
+.#{$fa-css-prefix}-times-circle:before { content: $fa-var-times-circle; }
+.#{$fa-css-prefix}-check-circle:before { content: $fa-var-check-circle; }
+.#{$fa-css-prefix}-question-circle:before { content: $fa-var-question-circle; }
+.#{$fa-css-prefix}-info-circle:before { content: $fa-var-info-circle; }
+.#{$fa-css-prefix}-crosshairs:before { content: $fa-var-crosshairs; }
+.#{$fa-css-prefix}-times-circle-o:before { content: $fa-var-times-circle-o; }
+.#{$fa-css-prefix}-check-circle-o:before { content: $fa-var-check-circle-o; }
+.#{$fa-css-prefix}-ban:before { content: $fa-var-ban; }
+.#{$fa-css-prefix}-arrow-left:before { content: $fa-var-arrow-left; }
+.#{$fa-css-prefix}-arrow-right:before { content: $fa-var-arrow-right; }
+.#{$fa-css-prefix}-arrow-up:before { content: $fa-var-arrow-up; }
+.#{$fa-css-prefix}-arrow-down:before { content: $fa-var-arrow-down; }
+.#{$fa-css-prefix}-mail-forward:before,
+.#{$fa-css-prefix}-share:before { content: $fa-var-share; }
+.#{$fa-css-prefix}-expand:before { content: $fa-var-expand; }
+.#{$fa-css-prefix}-compress:before { content: $fa-var-compress; }
+.#{$fa-css-prefix}-plus:before { content: $fa-var-plus; }
+.#{$fa-css-prefix}-minus:before { content: $fa-var-minus; }
+.#{$fa-css-prefix}-asterisk:before { content: $fa-var-asterisk; }
+.#{$fa-css-prefix}-exclamation-circle:before { content: $fa-var-exclamation-circle; }
+.#{$fa-css-prefix}-gift:before { content: $fa-var-gift; }
+.#{$fa-css-prefix}-leaf:before { content: $fa-var-leaf; }
+.#{$fa-css-prefix}-fire:before { content: $fa-var-fire; }
+.#{$fa-css-prefix}-eye:before { content: $fa-var-eye; }
+.#{$fa-css-prefix}-eye-slash:before { content: $fa-var-eye-slash; }
+.#{$fa-css-prefix}-warning:before,
+.#{$fa-css-prefix}-exclamation-triangle:before { content: $fa-var-exclamation-triangle; }
+.#{$fa-css-prefix}-plane:before { content: $fa-var-plane; }
+.#{$fa-css-prefix}-calendar:before { content: $fa-var-calendar; }
+.#{$fa-css-prefix}-random:before { content: $fa-var-random; }
+.#{$fa-css-prefix}-comment:before { content: $fa-var-comment; }
+.#{$fa-css-prefix}-magnet:before { content: $fa-var-magnet; }
+.#{$fa-css-prefix}-chevron-up:before { content: $fa-var-chevron-up; }
+.#{$fa-css-prefix}-chevron-down:before { content: $fa-var-chevron-down; }
+.#{$fa-css-prefix}-retweet:before { content: $fa-var-retweet; }
+.#{$fa-css-prefix}-shopping-cart:before { content: $fa-var-shopping-cart; }
+.#{$fa-css-prefix}-folder:before { content: $fa-var-folder; }
+.#{$fa-css-prefix}-folder-open:before { content: $fa-var-folder-open; }
+.#{$fa-css-prefix}-arrows-v:before { content: $fa-var-arrows-v; }
+.#{$fa-css-prefix}-arrows-h:before { content: $fa-var-arrows-h; }
+.#{$fa-css-prefix}-bar-chart-o:before,
+.#{$fa-css-prefix}-bar-chart:before { content: $fa-var-bar-chart; }
+.#{$fa-css-prefix}-twitter-square:before { content: $fa-var-twitter-square; }
+.#{$fa-css-prefix}-facebook-square:before { content: $fa-var-facebook-square; }
+.#{$fa-css-prefix}-camera-retro:before { content: $fa-var-camera-retro; }
+.#{$fa-css-prefix}-key:before { content: $fa-var-key; }
+.#{$fa-css-prefix}-gears:before,
+.#{$fa-css-prefix}-cogs:before { content: $fa-var-cogs; }
+.#{$fa-css-prefix}-comments:before { content: $fa-var-comments; }
+.#{$fa-css-prefix}-thumbs-o-up:before { content: $fa-var-thumbs-o-up; }
+.#{$fa-css-prefix}-thumbs-o-down:before { content: $fa-var-thumbs-o-down; }
+.#{$fa-css-prefix}-star-half:before { content: $fa-var-star-half; }
+.#{$fa-css-prefix}-heart-o:before { content: $fa-var-heart-o; }
+.#{$fa-css-prefix}-sign-out:before { content: $fa-var-sign-out; }
+.#{$fa-css-prefix}-linkedin-square:before { content: $fa-var-linkedin-square; }
+.#{$fa-css-prefix}-thumb-tack:before { content: $fa-var-thumb-tack; }
+.#{$fa-css-prefix}-external-link:before { content: $fa-var-external-link; }
+.#{$fa-css-prefix}-sign-in:before { content: $fa-var-sign-in; }
+.#{$fa-css-prefix}-trophy:before { content: $fa-var-trophy; }
+.#{$fa-css-prefix}-github-square:before { content: $fa-var-github-square; }
+.#{$fa-css-prefix}-upload:before { content: $fa-var-upload; }
+.#{$fa-css-prefix}-lemon-o:before { content: $fa-var-lemon-o; }
+.#{$fa-css-prefix}-phone:before { content: $fa-var-phone; }
+.#{$fa-css-prefix}-square-o:before { content: $fa-var-square-o; }
+.#{$fa-css-prefix}-bookmark-o:before { content: $fa-var-bookmark-o; }
+.#{$fa-css-prefix}-phone-square:before { content: $fa-var-phone-square; }
+.#{$fa-css-prefix}-twitter:before { content: $fa-var-twitter; }
+.#{$fa-css-prefix}-facebook-f:before,
+.#{$fa-css-prefix}-facebook:before { content: $fa-var-facebook; }
+.#{$fa-css-prefix}-github:before { content: $fa-var-github; }
+.#{$fa-css-prefix}-unlock:before { content: $fa-var-unlock; }
+.#{$fa-css-prefix}-credit-card:before { content: $fa-var-credit-card; }
+.#{$fa-css-prefix}-feed:before,
+.#{$fa-css-prefix}-rss:before { content: $fa-var-rss; }
+.#{$fa-css-prefix}-hdd-o:before { content: $fa-var-hdd-o; }
+.#{$fa-css-prefix}-bullhorn:before { content: $fa-var-bullhorn; }
+.#{$fa-css-prefix}-bell:before { content: $fa-var-bell; }
+.#{$fa-css-prefix}-certificate:before { content: $fa-var-certificate; }
+.#{$fa-css-prefix}-hand-o-right:before { content: $fa-var-hand-o-right; }
+.#{$fa-css-prefix}-hand-o-left:before { content: $fa-var-hand-o-left; }
+.#{$fa-css-prefix}-hand-o-up:before { content: $fa-var-hand-o-up; }
+.#{$fa-css-prefix}-hand-o-down:before { content: $fa-var-hand-o-down; }
+.#{$fa-css-prefix}-arrow-circle-left:before { content: $fa-var-arrow-circle-left; }
+.#{$fa-css-prefix}-arrow-circle-right:before { content: $fa-var-arrow-circle-right; }
+.#{$fa-css-prefix}-arrow-circle-up:before { content: $fa-var-arrow-circle-up; }
+.#{$fa-css-prefix}-arrow-circle-down:before { content: $fa-var-arrow-circle-down; }
+.#{$fa-css-prefix}-globe:before { content: $fa-var-globe; }
+.#{$fa-css-prefix}-wrench:before { content: $fa-var-wrench; }
+.#{$fa-css-prefix}-tasks:before { content: $fa-var-tasks; }
+.#{$fa-css-prefix}-filter:before { content: $fa-var-filter; }
+.#{$fa-css-prefix}-briefcase:before { content: $fa-var-briefcase; }
+.#{$fa-css-prefix}-arrows-alt:before { content: $fa-var-arrows-alt; }
+.#{$fa-css-prefix}-group:before,
+.#{$fa-css-prefix}-users:before { content: $fa-var-users; }
+.#{$fa-css-prefix}-chain:before,
+.#{$fa-css-prefix}-link:before { content: $fa-var-link; }
+.#{$fa-css-prefix}-cloud:before { content: $fa-var-cloud; }
+.#{$fa-css-prefix}-flask:before { content: $fa-var-flask; }
+.#{$fa-css-prefix}-cut:before,
+.#{$fa-css-prefix}-scissors:before { content: $fa-var-scissors; }
+.#{$fa-css-prefix}-copy:before,
+.#{$fa-css-prefix}-files-o:before { content: $fa-var-files-o; }
+.#{$fa-css-prefix}-paperclip:before { content: $fa-var-paperclip; }
+.#{$fa-css-prefix}-save:before,
+.#{$fa-css-prefix}-floppy-o:before { content: $fa-var-floppy-o; }
+.#{$fa-css-prefix}-square:before { content: $fa-var-square; }
+.#{$fa-css-prefix}-navicon:before,
+.#{$fa-css-prefix}-reorder:before,
+.#{$fa-css-prefix}-bars:before { content: $fa-var-bars; }
+.#{$fa-css-prefix}-list-ul:before { content: $fa-var-list-ul; }
+.#{$fa-css-prefix}-list-ol:before { content: $fa-var-list-ol; }
+.#{$fa-css-prefix}-strikethrough:before { content: $fa-var-strikethrough; }
+.#{$fa-css-prefix}-underline:before { content: $fa-var-underline; }
+.#{$fa-css-prefix}-table:before { content: $fa-var-table; }
+.#{$fa-css-prefix}-magic:before { content: $fa-var-magic; }
+.#{$fa-css-prefix}-truck:before { content: $fa-var-truck; }
+.#{$fa-css-prefix}-pinterest:before { content: $fa-var-pinterest; }
+.#{$fa-css-prefix}-pinterest-square:before { content: $fa-var-pinterest-square; }
+.#{$fa-css-prefix}-google-plus-square:before { content: $fa-var-google-plus-square; }
+.#{$fa-css-prefix}-google-plus:before { content: $fa-var-google-plus; }
+.#{$fa-css-prefix}-money:before { content: $fa-var-money; }
+.#{$fa-css-prefix}-caret-down:before { content: $fa-var-caret-down; }
+.#{$fa-css-prefix}-caret-up:before { content: $fa-var-caret-up; }
+.#{$fa-css-prefix}-caret-left:before { content: $fa-var-caret-left; }
+.#{$fa-css-prefix}-caret-right:before { content: $fa-var-caret-right; }
+.#{$fa-css-prefix}-columns:before { content: $fa-var-columns; }
+.#{$fa-css-prefix}-unsorted:before,
+.#{$fa-css-prefix}-sort:before { content: $fa-var-sort; }
+.#{$fa-css-prefix}-sort-down:before,
+.#{$fa-css-prefix}-sort-desc:before { content: $fa-var-sort-desc; }
+.#{$fa-css-prefix}-sort-up:before,
+.#{$fa-css-prefix}-sort-asc:before { content: $fa-var-sort-asc; }
+.#{$fa-css-prefix}-envelope:before { content: $fa-var-envelope; }
+.#{$fa-css-prefix}-linkedin:before { content: $fa-var-linkedin; }
+.#{$fa-css-prefix}-rotate-left:before,
+.#{$fa-css-prefix}-undo:before { content: $fa-var-undo; }
+.#{$fa-css-prefix}-legal:before,
+.#{$fa-css-prefix}-gavel:before { content: $fa-var-gavel; }
+.#{$fa-css-prefix}-dashboard:before,
+.#{$fa-css-prefix}-tachometer:before { content: $fa-var-tachometer; }
+.#{$fa-css-prefix}-comment-o:before { content: $fa-var-comment-o; }
+.#{$fa-css-prefix}-comments-o:before { content: $fa-var-comments-o; }
+.#{$fa-css-prefix}-flash:before,
+.#{$fa-css-prefix}-bolt:before { content: $fa-var-bolt; }
+.#{$fa-css-prefix}-sitemap:before { content: $fa-var-sitemap; }
+.#{$fa-css-prefix}-umbrella:before { content: $fa-var-umbrella; }
+.#{$fa-css-prefix}-paste:before,
+.#{$fa-css-prefix}-clipboard:before { content: $fa-var-clipboard; }
+.#{$fa-css-prefix}-lightbulb-o:before { content: $fa-var-lightbulb-o; }
+.#{$fa-css-prefix}-exchange:before { content: $fa-var-exchange; }
+.#{$fa-css-prefix}-cloud-download:before { content: $fa-var-cloud-download; }
+.#{$fa-css-prefix}-cloud-upload:before { content: $fa-var-cloud-upload; }
+.#{$fa-css-prefix}-user-md:before { content: $fa-var-user-md; }
+.#{$fa-css-prefix}-stethoscope:before { content: $fa-var-stethoscope; }
+.#{$fa-css-prefix}-suitcase:before { content: $fa-var-suitcase; }
+.#{$fa-css-prefix}-bell-o:before { content: $fa-var-bell-o; }
+.#{$fa-css-prefix}-coffee:before { content: $fa-var-coffee; }
+.#{$fa-css-prefix}-cutlery:before { content: $fa-var-cutlery; }
+.#{$fa-css-prefix}-file-text-o:before { content: $fa-var-file-text-o; }
+.#{$fa-css-prefix}-building-o:before { content: $fa-var-building-o; }
+.#{$fa-css-prefix}-hospital-o:before { content: $fa-var-hospital-o; }
+.#{$fa-css-prefix}-ambulance:before { content: $fa-var-ambulance; }
+.#{$fa-css-prefix}-medkit:before { content: $fa-var-medkit; }
+.#{$fa-css-prefix}-fighter-jet:before { content: $fa-var-fighter-jet; }
+.#{$fa-css-prefix}-beer:before { content: $fa-var-beer; }
+.#{$fa-css-prefix}-h-square:before { content: $fa-var-h-square; }
+.#{$fa-css-prefix}-plus-square:before { content: $fa-var-plus-square; }
+.#{$fa-css-prefix}-angle-double-left:before { content: $fa-var-angle-double-left; }
+.#{$fa-css-prefix}-angle-double-right:before { content: $fa-var-angle-double-right; }
+.#{$fa-css-prefix}-angle-double-up:before { content: $fa-var-angle-double-up; }
+.#{$fa-css-prefix}-angle-double-down:before { content: $fa-var-angle-double-down; }
+.#{$fa-css-prefix}-angle-left:before { content: $fa-var-angle-left; }
+.#{$fa-css-prefix}-angle-right:before { content: $fa-var-angle-right; }
+.#{$fa-css-prefix}-angle-up:before { content: $fa-var-angle-up; }
+.#{$fa-css-prefix}-angle-down:before { content: $fa-var-angle-down; }
+.#{$fa-css-prefix}-desktop:before { content: $fa-var-desktop; }
+.#{$fa-css-prefix}-laptop:before { content: $fa-var-laptop; }
+.#{$fa-css-prefix}-tablet:before { content: $fa-var-tablet; }
+.#{$fa-css-prefix}-mobile-phone:before,
+.#{$fa-css-prefix}-mobile:before { content: $fa-var-mobile; }
+.#{$fa-css-prefix}-circle-o:before { content: $fa-var-circle-o; }
+.#{$fa-css-prefix}-quote-left:before { content: $fa-var-quote-left; }
+.#{$fa-css-prefix}-quote-right:before { content: $fa-var-quote-right; }
+.#{$fa-css-prefix}-spinner:before { content: $fa-var-spinner; }
+.#{$fa-css-prefix}-circle:before { content: $fa-var-circle; }
+.#{$fa-css-prefix}-mail-reply:before,
+.#{$fa-css-prefix}-reply:before { content: $fa-var-reply; }
+.#{$fa-css-prefix}-github-alt:before { content: $fa-var-github-alt; }
+.#{$fa-css-prefix}-folder-o:before { content: $fa-var-folder-o; }
+.#{$fa-css-prefix}-folder-open-o:before { content: $fa-var-folder-open-o; }
+.#{$fa-css-prefix}-smile-o:before { content: $fa-var-smile-o; }
+.#{$fa-css-prefix}-frown-o:before { content: $fa-var-frown-o; }
+.#{$fa-css-prefix}-meh-o:before { content: $fa-var-meh-o; }
+.#{$fa-css-prefix}-gamepad:before { content: $fa-var-gamepad; }
+.#{$fa-css-prefix}-keyboard-o:before { content: $fa-var-keyboard-o; }
+.#{$fa-css-prefix}-flag-o:before { content: $fa-var-flag-o; }
+.#{$fa-css-prefix}-flag-checkered:before { content: $fa-var-flag-checkered; }
+.#{$fa-css-prefix}-terminal:before { content: $fa-var-terminal; }
+.#{$fa-css-prefix}-code:before { content: $fa-var-code; }
+.#{$fa-css-prefix}-mail-reply-all:before,
+.#{$fa-css-prefix}-reply-all:before { content: $fa-var-reply-all; }
+.#{$fa-css-prefix}-star-half-empty:before,
+.#{$fa-css-prefix}-star-half-full:before,
+.#{$fa-css-prefix}-star-half-o:before { content: $fa-var-star-half-o; }
+.#{$fa-css-prefix}-location-arrow:before { content: $fa-var-location-arrow; }
+.#{$fa-css-prefix}-crop:before { content: $fa-var-crop; }
+.#{$fa-css-prefix}-code-fork:before { content: $fa-var-code-fork; }
+.#{$fa-css-prefix}-unlink:before,
+.#{$fa-css-prefix}-chain-broken:before { content: $fa-var-chain-broken; }
+.#{$fa-css-prefix}-question:before { content: $fa-var-question; }
+.#{$fa-css-prefix}-info:before { content: $fa-var-info; }
+.#{$fa-css-prefix}-exclamation:before { content: $fa-var-exclamation; }
+.#{$fa-css-prefix}-superscript:before { content: $fa-var-superscript; }
+.#{$fa-css-prefix}-subscript:before { content: $fa-var-subscript; }
+.#{$fa-css-prefix}-eraser:before { content: $fa-var-eraser; }
+.#{$fa-css-prefix}-puzzle-piece:before { content: $fa-var-puzzle-piece; }
+.#{$fa-css-prefix}-microphone:before { content: $fa-var-microphone; }
+.#{$fa-css-prefix}-microphone-slash:before { content: $fa-var-microphone-slash; }
+.#{$fa-css-prefix}-shield:before { content: $fa-var-shield; }
+.#{$fa-css-prefix}-calendar-o:before { content: $fa-var-calendar-o; }
+.#{$fa-css-prefix}-fire-extinguisher:before { content: $fa-var-fire-extinguisher; }
+.#{$fa-css-prefix}-rocket:before { content: $fa-var-rocket; }
+.#{$fa-css-prefix}-maxcdn:before { content: $fa-var-maxcdn; }
+.#{$fa-css-prefix}-chevron-circle-left:before { content: $fa-var-chevron-circle-left; }
+.#{$fa-css-prefix}-chevron-circle-right:before { content: $fa-var-chevron-circle-right; }
+.#{$fa-css-prefix}-chevron-circle-up:before { content: $fa-var-chevron-circle-up; }
+.#{$fa-css-prefix}-chevron-circle-down:before { content: $fa-var-chevron-circle-down; }
+.#{$fa-css-prefix}-html5:before { content: $fa-var-html5; }
+.#{$fa-css-prefix}-css3:before { content: $fa-var-css3; }
+.#{$fa-css-prefix}-anchor:before { content: $fa-var-anchor; }
+.#{$fa-css-prefix}-unlock-alt:before { content: $fa-var-unlock-alt; }
+.#{$fa-css-prefix}-bullseye:before { content: $fa-var-bullseye; }
+.#{$fa-css-prefix}-ellipsis-h:before { content: $fa-var-ellipsis-h; }
+.#{$fa-css-prefix}-ellipsis-v:before { content: $fa-var-ellipsis-v; }
+.#{$fa-css-prefix}-rss-square:before { content: $fa-var-rss-square; }
+.#{$fa-css-prefix}-play-circle:before { content: $fa-var-play-circle; }
+.#{$fa-css-prefix}-ticket:before { content: $fa-var-ticket; }
+.#{$fa-css-prefix}-minus-square:before { content: $fa-var-minus-square; }
+.#{$fa-css-prefix}-minus-square-o:before { content: $fa-var-minus-square-o; }
+.#{$fa-css-prefix}-level-up:before { content: $fa-var-level-up; }
+.#{$fa-css-prefix}-level-down:before { content: $fa-var-level-down; }
+.#{$fa-css-prefix}-check-square:before { content: $fa-var-check-square; }
+.#{$fa-css-prefix}-pencil-square:before { content: $fa-var-pencil-square; }
+.#{$fa-css-prefix}-external-link-square:before { content: $fa-var-external-link-square; }
+.#{$fa-css-prefix}-share-square:before { content: $fa-var-share-square; }
+.#{$fa-css-prefix}-compass:before { content: $fa-var-compass; }
+.#{$fa-css-prefix}-toggle-down:before,
+.#{$fa-css-prefix}-caret-square-o-down:before { content: $fa-var-caret-square-o-down; }
+.#{$fa-css-prefix}-toggle-up:before,
+.#{$fa-css-prefix}-caret-square-o-up:before { content: $fa-var-caret-square-o-up; }
+.#{$fa-css-prefix}-toggle-right:before,
+.#{$fa-css-prefix}-caret-square-o-right:before { content: $fa-var-caret-square-o-right; }
+.#{$fa-css-prefix}-euro:before,
+.#{$fa-css-prefix}-eur:before { content: $fa-var-eur; }
+.#{$fa-css-prefix}-gbp:before { content: $fa-var-gbp; }
+.#{$fa-css-prefix}-dollar:before,
+.#{$fa-css-prefix}-usd:before { content: $fa-var-usd; }
+.#{$fa-css-prefix}-rupee:before,
+.#{$fa-css-prefix}-inr:before { content: $fa-var-inr; }
+.#{$fa-css-prefix}-cny:before,
+.#{$fa-css-prefix}-rmb:before,
+.#{$fa-css-prefix}-yen:before,
+.#{$fa-css-prefix}-jpy:before { content: $fa-var-jpy; }
+.#{$fa-css-prefix}-ruble:before,
+.#{$fa-css-prefix}-rouble:before,
+.#{$fa-css-prefix}-rub:before { content: $fa-var-rub; }
+.#{$fa-css-prefix}-won:before,
+.#{$fa-css-prefix}-krw:before { content: $fa-var-krw; }
+.#{$fa-css-prefix}-bitcoin:before,
+.#{$fa-css-prefix}-btc:before { content: $fa-var-btc; }
+.#{$fa-css-prefix}-file:before { content: $fa-var-file; }
+.#{$fa-css-prefix}-file-text:before { content: $fa-var-file-text; }
+.#{$fa-css-prefix}-sort-alpha-asc:before { content: $fa-var-sort-alpha-asc; }
+.#{$fa-css-prefix}-sort-alpha-desc:before { content: $fa-var-sort-alpha-desc; }
+.#{$fa-css-prefix}-sort-amount-asc:before { content: $fa-var-sort-amount-asc; }
+.#{$fa-css-prefix}-sort-amount-desc:before { content: $fa-var-sort-amount-desc; }
+.#{$fa-css-prefix}-sort-numeric-asc:before { content: $fa-var-sort-numeric-asc; }
+.#{$fa-css-prefix}-sort-numeric-desc:before { content: $fa-var-sort-numeric-desc; }
+.#{$fa-css-prefix}-thumbs-up:before { content: $fa-var-thumbs-up; }
+.#{$fa-css-prefix}-thumbs-down:before { content: $fa-var-thumbs-down; }
+.#{$fa-css-prefix}-youtube-square:before { content: $fa-var-youtube-square; }
+.#{$fa-css-prefix}-youtube:before { content: $fa-var-youtube; }
+.#{$fa-css-prefix}-xing:before { content: $fa-var-xing; }
+.#{$fa-css-prefix}-xing-square:before { content: $fa-var-xing-square; }
+.#{$fa-css-prefix}-youtube-play:before { content: $fa-var-youtube-play; }
+.#{$fa-css-prefix}-dropbox:before { content: $fa-var-dropbox; }
+.#{$fa-css-prefix}-stack-overflow:before { content: $fa-var-stack-overflow; }
+.#{$fa-css-prefix}-instagram:before { content: $fa-var-instagram; }
+.#{$fa-css-prefix}-flickr:before { content: $fa-var-flickr; }
+.#{$fa-css-prefix}-adn:before { content: $fa-var-adn; }
+.#{$fa-css-prefix}-bitbucket:before { content: $fa-var-bitbucket; }
+.#{$fa-css-prefix}-bitbucket-square:before { content: $fa-var-bitbucket-square; }
+.#{$fa-css-prefix}-tumblr:before { content: $fa-var-tumblr; }
+.#{$fa-css-prefix}-tumblr-square:before { content: $fa-var-tumblr-square; }
+.#{$fa-css-prefix}-long-arrow-down:before { content: $fa-var-long-arrow-down; }
+.#{$fa-css-prefix}-long-arrow-up:before { content: $fa-var-long-arrow-up; }
+.#{$fa-css-prefix}-long-arrow-left:before { content: $fa-var-long-arrow-left; }
+.#{$fa-css-prefix}-long-arrow-right:before { content: $fa-var-long-arrow-right; }
+.#{$fa-css-prefix}-apple:before { content: $fa-var-apple; }
+.#{$fa-css-prefix}-windows:before { content: $fa-var-windows; }
+.#{$fa-css-prefix}-android:before { content: $fa-var-android; }
+.#{$fa-css-prefix}-linux:before { content: $fa-var-linux; }
+.#{$fa-css-prefix}-dribbble:before { content: $fa-var-dribbble; }
+.#{$fa-css-prefix}-skype:before { content: $fa-var-skype; }
+.#{$fa-css-prefix}-foursquare:before { content: $fa-var-foursquare; }
+.#{$fa-css-prefix}-trello:before { content: $fa-var-trello; }
+.#{$fa-css-prefix}-female:before { content: $fa-var-female; }
+.#{$fa-css-prefix}-male:before { content: $fa-var-male; }
+.#{$fa-css-prefix}-gittip:before,
+.#{$fa-css-prefix}-gratipay:before { content: $fa-var-gratipay; }
+.#{$fa-css-prefix}-sun-o:before { content: $fa-var-sun-o; }
+.#{$fa-css-prefix}-moon-o:before { content: $fa-var-moon-o; }
+.#{$fa-css-prefix}-archive:before { content: $fa-var-archive; }
+.#{$fa-css-prefix}-bug:before { content: $fa-var-bug; }
+.#{$fa-css-prefix}-vk:before { content: $fa-var-vk; }
+.#{$fa-css-prefix}-weibo:before { content: $fa-var-weibo; }
+.#{$fa-css-prefix}-renren:before { content: $fa-var-renren; }
+.#{$fa-css-prefix}-pagelines:before { content: $fa-var-pagelines; }
+.#{$fa-css-prefix}-stack-exchange:before { content: $fa-var-stack-exchange; }
+.#{$fa-css-prefix}-arrow-circle-o-right:before { content: $fa-var-arrow-circle-o-right; }
+.#{$fa-css-prefix}-arrow-circle-o-left:before { content: $fa-var-arrow-circle-o-left; }
+.#{$fa-css-prefix}-toggle-left:before,
+.#{$fa-css-prefix}-caret-square-o-left:before { content: $fa-var-caret-square-o-left; }
+.#{$fa-css-prefix}-dot-circle-o:before { content: $fa-var-dot-circle-o; }
+.#{$fa-css-prefix}-wheelchair:before { content: $fa-var-wheelchair; }
+.#{$fa-css-prefix}-vimeo-square:before { content: $fa-var-vimeo-square; }
+.#{$fa-css-prefix}-turkish-lira:before,
+.#{$fa-css-prefix}-try:before { content: $fa-var-try; }
+.#{$fa-css-prefix}-plus-square-o:before { content: $fa-var-plus-square-o; }
+.#{$fa-css-prefix}-space-shuttle:before { content: $fa-var-space-shuttle; }
+.#{$fa-css-prefix}-slack:before { content: $fa-var-slack; }
+.#{$fa-css-prefix}-envelope-square:before { content: $fa-var-envelope-square; }
+.#{$fa-css-prefix}-wordpress:before { content: $fa-var-wordpress; }
+.#{$fa-css-prefix}-openid:before { content: $fa-var-openid; }
+.#{$fa-css-prefix}-institution:before,
+.#{$fa-css-prefix}-bank:before,
+.#{$fa-css-prefix}-university:before { content: $fa-var-university; }
+.#{$fa-css-prefix}-mortar-board:before,
+.#{$fa-css-prefix}-graduation-cap:before { content: $fa-var-graduation-cap; }
+.#{$fa-css-prefix}-yahoo:before { content: $fa-var-yahoo; }
+.#{$fa-css-prefix}-google:before { content: $fa-var-google; }
+.#{$fa-css-prefix}-reddit:before { content: $fa-var-reddit; }
+.#{$fa-css-prefix}-reddit-square:before { content: $fa-var-reddit-square; }
+.#{$fa-css-prefix}-stumbleupon-circle:before { content: $fa-var-stumbleupon-circle; }
+.#{$fa-css-prefix}-stumbleupon:before { content: $fa-var-stumbleupon; }
+.#{$fa-css-prefix}-delicious:before { content: $fa-var-delicious; }
+.#{$fa-css-prefix}-digg:before { content: $fa-var-digg; }
+.#{$fa-css-prefix}-pied-piper-pp:before { content: $fa-var-pied-piper-pp; }
+.#{$fa-css-prefix}-pied-piper-alt:before { content: $fa-var-pied-piper-alt; }
+.#{$fa-css-prefix}-drupal:before { content: $fa-var-drupal; }
+.#{$fa-css-prefix}-joomla:before { content: $fa-var-joomla; }
+.#{$fa-css-prefix}-language:before { content: $fa-var-language; }
+.#{$fa-css-prefix}-fax:before { content: $fa-var-fax; }
+.#{$fa-css-prefix}-building:before { content: $fa-var-building; }
+.#{$fa-css-prefix}-child:before { content: $fa-var-child; }
+.#{$fa-css-prefix}-paw:before { content: $fa-var-paw; }
+.#{$fa-css-prefix}-spoon:before { content: $fa-var-spoon; }
+.#{$fa-css-prefix}-cube:before { content: $fa-var-cube; }
+.#{$fa-css-prefix}-cubes:before { content: $fa-var-cubes; }
+.#{$fa-css-prefix}-behance:before { content: $fa-var-behance; }
+.#{$fa-css-prefix}-behance-square:before { content: $fa-var-behance-square; }
+.#{$fa-css-prefix}-steam:before { content: $fa-var-steam; }
+.#{$fa-css-prefix}-steam-square:before { content: $fa-var-steam-square; }
+.#{$fa-css-prefix}-recycle:before { content: $fa-var-recycle; }
+.#{$fa-css-prefix}-automobile:before,
+.#{$fa-css-prefix}-car:before { content: $fa-var-car; }
+.#{$fa-css-prefix}-cab:before,
+.#{$fa-css-prefix}-taxi:before { content: $fa-var-taxi; }
+.#{$fa-css-prefix}-tree:before { content: $fa-var-tree; }
+.#{$fa-css-prefix}-spotify:before { content: $fa-var-spotify; }
+.#{$fa-css-prefix}-deviantart:before { content: $fa-var-deviantart; }
+.#{$fa-css-prefix}-soundcloud:before { content: $fa-var-soundcloud; }
+.#{$fa-css-prefix}-database:before { content: $fa-var-database; }
+.#{$fa-css-prefix}-file-pdf-o:before { content: $fa-var-file-pdf-o; }
+.#{$fa-css-prefix}-file-word-o:before { content: $fa-var-file-word-o; }
+.#{$fa-css-prefix}-file-excel-o:before { content: $fa-var-file-excel-o; }
+.#{$fa-css-prefix}-file-powerpoint-o:before { content: $fa-var-file-powerpoint-o; }
+.#{$fa-css-prefix}-file-photo-o:before,
+.#{$fa-css-prefix}-file-picture-o:before,
+.#{$fa-css-prefix}-file-image-o:before { content: $fa-var-file-image-o; }
+.#{$fa-css-prefix}-file-zip-o:before,
+.#{$fa-css-prefix}-file-archive-o:before { content: $fa-var-file-archive-o; }
+.#{$fa-css-prefix}-file-sound-o:before,
+.#{$fa-css-prefix}-file-audio-o:before { content: $fa-var-file-audio-o; }
+.#{$fa-css-prefix}-file-movie-o:before,
+.#{$fa-css-prefix}-file-video-o:before { content: $fa-var-file-video-o; }
+.#{$fa-css-prefix}-file-code-o:before { content: $fa-var-file-code-o; }
+.#{$fa-css-prefix}-vine:before { content: $fa-var-vine; }
+.#{$fa-css-prefix}-codepen:before { content: $fa-var-codepen; }
+.#{$fa-css-prefix}-jsfiddle:before { content: $fa-var-jsfiddle; }
+.#{$fa-css-prefix}-life-bouy:before,
+.#{$fa-css-prefix}-life-buoy:before,
+.#{$fa-css-prefix}-life-saver:before,
+.#{$fa-css-prefix}-support:before,
+.#{$fa-css-prefix}-life-ring:before { content: $fa-var-life-ring; }
+.#{$fa-css-prefix}-circle-o-notch:before { content: $fa-var-circle-o-notch; }
+.#{$fa-css-prefix}-ra:before,
+.#{$fa-css-prefix}-resistance:before,
+.#{$fa-css-prefix}-rebel:before { content: $fa-var-rebel; }
+.#{$fa-css-prefix}-ge:before,
+.#{$fa-css-prefix}-empire:before { content: $fa-var-empire; }
+.#{$fa-css-prefix}-git-square:before { content: $fa-var-git-square; }
+.#{$fa-css-prefix}-git:before { content: $fa-var-git; }
+.#{$fa-css-prefix}-y-combinator-square:before,
+.#{$fa-css-prefix}-yc-square:before,
+.#{$fa-css-prefix}-hacker-news:before { content: $fa-var-hacker-news; }
+.#{$fa-css-prefix}-tencent-weibo:before { content: $fa-var-tencent-weibo; }
+.#{$fa-css-prefix}-qq:before { content: $fa-var-qq; }
+.#{$fa-css-prefix}-wechat:before,
+.#{$fa-css-prefix}-weixin:before { content: $fa-var-weixin; }
+.#{$fa-css-prefix}-send:before,
+.#{$fa-css-prefix}-paper-plane:before { content: $fa-var-paper-plane; }
+.#{$fa-css-prefix}-send-o:before,
+.#{$fa-css-prefix}-paper-plane-o:before { content: $fa-var-paper-plane-o; }
+.#{$fa-css-prefix}-history:before { content: $fa-var-history; }
+.#{$fa-css-prefix}-circle-thin:before { content: $fa-var-circle-thin; }
+.#{$fa-css-prefix}-header:before { content: $fa-var-header; }
+.#{$fa-css-prefix}-paragraph:before { content: $fa-var-paragraph; }
+.#{$fa-css-prefix}-sliders:before { content: $fa-var-sliders; }
+.#{$fa-css-prefix}-share-alt:before { content: $fa-var-share-alt; }
+.#{$fa-css-prefix}-share-alt-square:before { content: $fa-var-share-alt-square; }
+.#{$fa-css-prefix}-bomb:before { content: $fa-var-bomb; }
+.#{$fa-css-prefix}-soccer-ball-o:before,
+.#{$fa-css-prefix}-futbol-o:before { content: $fa-var-futbol-o; }
+.#{$fa-css-prefix}-tty:before { content: $fa-var-tty; }
+.#{$fa-css-prefix}-binoculars:before { content: $fa-var-binoculars; }
+.#{$fa-css-prefix}-plug:before { content: $fa-var-plug; }
+.#{$fa-css-prefix}-slideshare:before { content: $fa-var-slideshare; }
+.#{$fa-css-prefix}-twitch:before { content: $fa-var-twitch; }
+.#{$fa-css-prefix}-yelp:before { content: $fa-var-yelp; }
+.#{$fa-css-prefix}-newspaper-o:before { content: $fa-var-newspaper-o; }
+.#{$fa-css-prefix}-wifi:before { content: $fa-var-wifi; }
+.#{$fa-css-prefix}-calculator:before { content: $fa-var-calculator; }
+.#{$fa-css-prefix}-paypal:before { content: $fa-var-paypal; }
+.#{$fa-css-prefix}-google-wallet:before { content: $fa-var-google-wallet; }
+.#{$fa-css-prefix}-cc-visa:before { content: $fa-var-cc-visa; }
+.#{$fa-css-prefix}-cc-mastercard:before { content: $fa-var-cc-mastercard; }
+.#{$fa-css-prefix}-cc-discover:before { content: $fa-var-cc-discover; }
+.#{$fa-css-prefix}-cc-amex:before { content: $fa-var-cc-amex; }
+.#{$fa-css-prefix}-cc-paypal:before { content: $fa-var-cc-paypal; }
+.#{$fa-css-prefix}-cc-stripe:before { content: $fa-var-cc-stripe; }
+.#{$fa-css-prefix}-bell-slash:before { content: $fa-var-bell-slash; }
+.#{$fa-css-prefix}-bell-slash-o:before { content: $fa-var-bell-slash-o; }
+.#{$fa-css-prefix}-trash:before { content: $fa-var-trash; }
+.#{$fa-css-prefix}-copyright:before { content: $fa-var-copyright; }
+.#{$fa-css-prefix}-at:before { content: $fa-var-at; }
+.#{$fa-css-prefix}-eyedropper:before { content: $fa-var-eyedropper; }
+.#{$fa-css-prefix}-paint-brush:before { content: $fa-var-paint-brush; }
+.#{$fa-css-prefix}-birthday-cake:before { content: $fa-var-birthday-cake; }
+.#{$fa-css-prefix}-area-chart:before { content: $fa-var-area-chart; }
+.#{$fa-css-prefix}-pie-chart:before { content: $fa-var-pie-chart; }
+.#{$fa-css-prefix}-line-chart:before { content: $fa-var-line-chart; }
+.#{$fa-css-prefix}-lastfm:before { content: $fa-var-lastfm; }
+.#{$fa-css-prefix}-lastfm-square:before { content: $fa-var-lastfm-square; }
+.#{$fa-css-prefix}-toggle-off:before { content: $fa-var-toggle-off; }
+.#{$fa-css-prefix}-toggle-on:before { content: $fa-var-toggle-on; }
+.#{$fa-css-prefix}-bicycle:before { content: $fa-var-bicycle; }
+.#{$fa-css-prefix}-bus:before { content: $fa-var-bus; }
+.#{$fa-css-prefix}-ioxhost:before { content: $fa-var-ioxhost; }
+.#{$fa-css-prefix}-angellist:before { content: $fa-var-angellist; }
+.#{$fa-css-prefix}-cc:before { content: $fa-var-cc; }
+.#{$fa-css-prefix}-shekel:before,
+.#{$fa-css-prefix}-sheqel:before,
+.#{$fa-css-prefix}-ils:before { content: $fa-var-ils; }
+.#{$fa-css-prefix}-meanpath:before { content: $fa-var-meanpath; }
+.#{$fa-css-prefix}-buysellads:before { content: $fa-var-buysellads; }
+.#{$fa-css-prefix}-connectdevelop:before { content: $fa-var-connectdevelop; }
+.#{$fa-css-prefix}-dashcube:before { content: $fa-var-dashcube; }
+.#{$fa-css-prefix}-forumbee:before { content: $fa-var-forumbee; }
+.#{$fa-css-prefix}-leanpub:before { content: $fa-var-leanpub; }
+.#{$fa-css-prefix}-sellsy:before { content: $fa-var-sellsy; }
+.#{$fa-css-prefix}-shirtsinbulk:before { content: $fa-var-shirtsinbulk; }
+.#{$fa-css-prefix}-simplybuilt:before { content: $fa-var-simplybuilt; }
+.#{$fa-css-prefix}-skyatlas:before { content: $fa-var-skyatlas; }
+.#{$fa-css-prefix}-cart-plus:before { content: $fa-var-cart-plus; }
+.#{$fa-css-prefix}-cart-arrow-down:before { content: $fa-var-cart-arrow-down; }
+.#{$fa-css-prefix}-diamond:before { content: $fa-var-diamond; }
+.#{$fa-css-prefix}-ship:before { content: $fa-var-ship; }
+.#{$fa-css-prefix}-user-secret:before { content: $fa-var-user-secret; }
+.#{$fa-css-prefix}-motorcycle:before { content: $fa-var-motorcycle; }
+.#{$fa-css-prefix}-street-view:before { content: $fa-var-street-view; }
+.#{$fa-css-prefix}-heartbeat:before { content: $fa-var-heartbeat; }
+.#{$fa-css-prefix}-venus:before { content: $fa-var-venus; }
+.#{$fa-css-prefix}-mars:before { content: $fa-var-mars; }
+.#{$fa-css-prefix}-mercury:before { content: $fa-var-mercury; }
+.#{$fa-css-prefix}-intersex:before,
+.#{$fa-css-prefix}-transgender:before { content: $fa-var-transgender; }
+.#{$fa-css-prefix}-transgender-alt:before { content: $fa-var-transgender-alt; }
+.#{$fa-css-prefix}-venus-double:before { content: $fa-var-venus-double; }
+.#{$fa-css-prefix}-mars-double:before { content: $fa-var-mars-double; }
+.#{$fa-css-prefix}-venus-mars:before { content: $fa-var-venus-mars; }
+.#{$fa-css-prefix}-mars-stroke:before { content: $fa-var-mars-stroke; }
+.#{$fa-css-prefix}-mars-stroke-v:before { content: $fa-var-mars-stroke-v; }
+.#{$fa-css-prefix}-mars-stroke-h:before { content: $fa-var-mars-stroke-h; }
+.#{$fa-css-prefix}-neuter:before { content: $fa-var-neuter; }
+.#{$fa-css-prefix}-genderless:before { content: $fa-var-genderless; }
+.#{$fa-css-prefix}-facebook-official:before { content: $fa-var-facebook-official; }
+.#{$fa-css-prefix}-pinterest-p:before { content: $fa-var-pinterest-p; }
+.#{$fa-css-prefix}-whatsapp:before { content: $fa-var-whatsapp; }
+.#{$fa-css-prefix}-server:before { content: $fa-var-server; }
+.#{$fa-css-prefix}-user-plus:before { content: $fa-var-user-plus; }
+.#{$fa-css-prefix}-user-times:before { content: $fa-var-user-times; }
+.#{$fa-css-prefix}-hotel:before,
+.#{$fa-css-prefix}-bed:before { content: $fa-var-bed; }
+.#{$fa-css-prefix}-viacoin:before { content: $fa-var-viacoin; }
+.#{$fa-css-prefix}-train:before { content: $fa-var-train; }
+.#{$fa-css-prefix}-subway:before { content: $fa-var-subway; }
+.#{$fa-css-prefix}-medium:before { content: $fa-var-medium; }
+.#{$fa-css-prefix}-yc:before,
+.#{$fa-css-prefix}-y-combinator:before { content: $fa-var-y-combinator; }
+.#{$fa-css-prefix}-optin-monster:before { content: $fa-var-optin-monster; }
+.#{$fa-css-prefix}-opencart:before { content: $fa-var-opencart; }
+.#{$fa-css-prefix}-expeditedssl:before { content: $fa-var-expeditedssl; }
+.#{$fa-css-prefix}-battery-4:before,
+.#{$fa-css-prefix}-battery-full:before { content: $fa-var-battery-full; }
+.#{$fa-css-prefix}-battery-3:before,
+.#{$fa-css-prefix}-battery-three-quarters:before { content: $fa-var-battery-three-quarters; }
+.#{$fa-css-prefix}-battery-2:before,
+.#{$fa-css-prefix}-battery-half:before { content: $fa-var-battery-half; }
+.#{$fa-css-prefix}-battery-1:before,
+.#{$fa-css-prefix}-battery-quarter:before { content: $fa-var-battery-quarter; }
+.#{$fa-css-prefix}-battery-0:before,
+.#{$fa-css-prefix}-battery-empty:before { content: $fa-var-battery-empty; }
+.#{$fa-css-prefix}-mouse-pointer:before { content: $fa-var-mouse-pointer; }
+.#{$fa-css-prefix}-i-cursor:before { content: $fa-var-i-cursor; }
+.#{$fa-css-prefix}-object-group:before { content: $fa-var-object-group; }
+.#{$fa-css-prefix}-object-ungroup:before { content: $fa-var-object-ungroup; }
+.#{$fa-css-prefix}-sticky-note:before { content: $fa-var-sticky-note; }
+.#{$fa-css-prefix}-sticky-note-o:before { content: $fa-var-sticky-note-o; }
+.#{$fa-css-prefix}-cc-jcb:before { content: $fa-var-cc-jcb; }
+.#{$fa-css-prefix}-cc-diners-club:before { content: $fa-var-cc-diners-club; }
+.#{$fa-css-prefix}-clone:before { content: $fa-var-clone; }
+.#{$fa-css-prefix}-balance-scale:before { content: $fa-var-balance-scale; }
+.#{$fa-css-prefix}-hourglass-o:before { content: $fa-var-hourglass-o; }
+.#{$fa-css-prefix}-hourglass-1:before,
+.#{$fa-css-prefix}-hourglass-start:before { content: $fa-var-hourglass-start; }
+.#{$fa-css-prefix}-hourglass-2:before,
+.#{$fa-css-prefix}-hourglass-half:before { content: $fa-var-hourglass-half; }
+.#{$fa-css-prefix}-hourglass-3:before,
+.#{$fa-css-prefix}-hourglass-end:before { content: $fa-var-hourglass-end; }
+.#{$fa-css-prefix}-hourglass:before { content: $fa-var-hourglass; }
+.#{$fa-css-prefix}-hand-grab-o:before,
+.#{$fa-css-prefix}-hand-rock-o:before { content: $fa-var-hand-rock-o; }
+.#{$fa-css-prefix}-hand-stop-o:before,
+.#{$fa-css-prefix}-hand-paper-o:before { content: $fa-var-hand-paper-o; }
+.#{$fa-css-prefix}-hand-scissors-o:before { content: $fa-var-hand-scissors-o; }
+.#{$fa-css-prefix}-hand-lizard-o:before { content: $fa-var-hand-lizard-o; }
+.#{$fa-css-prefix}-hand-spock-o:before { content: $fa-var-hand-spock-o; }
+.#{$fa-css-prefix}-hand-pointer-o:before { content: $fa-var-hand-pointer-o; }
+.#{$fa-css-prefix}-hand-peace-o:before { content: $fa-var-hand-peace-o; }
+.#{$fa-css-prefix}-trademark:before { content: $fa-var-trademark; }
+.#{$fa-css-prefix}-registered:before { content: $fa-var-registered; }
+.#{$fa-css-prefix}-creative-commons:before { content: $fa-var-creative-commons; }
+.#{$fa-css-prefix}-gg:before { content: $fa-var-gg; }
+.#{$fa-css-prefix}-gg-circle:before { content: $fa-var-gg-circle; }
+.#{$fa-css-prefix}-tripadvisor:before { content: $fa-var-tripadvisor; }
+.#{$fa-css-prefix}-odnoklassniki:before { content: $fa-var-odnoklassniki; }
+.#{$fa-css-prefix}-odnoklassniki-square:before { content: $fa-var-odnoklassniki-square; }
+.#{$fa-css-prefix}-get-pocket:before { content: $fa-var-get-pocket; }
+.#{$fa-css-prefix}-wikipedia-w:before { content: $fa-var-wikipedia-w; }
+.#{$fa-css-prefix}-safari:before { content: $fa-var-safari; }
+.#{$fa-css-prefix}-chrome:before { content: $fa-var-chrome; }
+.#{$fa-css-prefix}-firefox:before { content: $fa-var-firefox; }
+.#{$fa-css-prefix}-opera:before { content: $fa-var-opera; }
+.#{$fa-css-prefix}-internet-explorer:before { content: $fa-var-internet-explorer; }
+.#{$fa-css-prefix}-tv:before,
+.#{$fa-css-prefix}-television:before { content: $fa-var-television; }
+.#{$fa-css-prefix}-contao:before { content: $fa-var-contao; }
+.#{$fa-css-prefix}-500px:before { content: $fa-var-500px; }
+.#{$fa-css-prefix}-amazon:before { content: $fa-var-amazon; }
+.#{$fa-css-prefix}-calendar-plus-o:before { content: $fa-var-calendar-plus-o; }
+.#{$fa-css-prefix}-calendar-minus-o:before { content: $fa-var-calendar-minus-o; }
+.#{$fa-css-prefix}-calendar-times-o:before { content: $fa-var-calendar-times-o; }
+.#{$fa-css-prefix}-calendar-check-o:before { content: $fa-var-calendar-check-o; }
+.#{$fa-css-prefix}-industry:before { content: $fa-var-industry; }
+.#{$fa-css-prefix}-map-pin:before { content: $fa-var-map-pin; }
+.#{$fa-css-prefix}-map-signs:before { content: $fa-var-map-signs; }
+.#{$fa-css-prefix}-map-o:before { content: $fa-var-map-o; }
+.#{$fa-css-prefix}-map:before { content: $fa-var-map; }
+.#{$fa-css-prefix}-commenting:before { content: $fa-var-commenting; }
+.#{$fa-css-prefix}-commenting-o:before { content: $fa-var-commenting-o; }
+.#{$fa-css-prefix}-houzz:before { content: $fa-var-houzz; }
+.#{$fa-css-prefix}-vimeo:before { content: $fa-var-vimeo; }
+.#{$fa-css-prefix}-black-tie:before { content: $fa-var-black-tie; }
+.#{$fa-css-prefix}-fonticons:before { content: $fa-var-fonticons; }
+.#{$fa-css-prefix}-reddit-alien:before { content: $fa-var-reddit-alien; }
+.#{$fa-css-prefix}-edge:before { content: $fa-var-edge; }
+.#{$fa-css-prefix}-credit-card-alt:before { content: $fa-var-credit-card-alt; }
+.#{$fa-css-prefix}-codiepie:before { content: $fa-var-codiepie; }
+.#{$fa-css-prefix}-modx:before { content: $fa-var-modx; }
+.#{$fa-css-prefix}-fort-awesome:before { content: $fa-var-fort-awesome; }
+.#{$fa-css-prefix}-usb:before { content: $fa-var-usb; }
+.#{$fa-css-prefix}-product-hunt:before { content: $fa-var-product-hunt; }
+.#{$fa-css-prefix}-mixcloud:before { content: $fa-var-mixcloud; }
+.#{$fa-css-prefix}-scribd:before { content: $fa-var-scribd; }
+.#{$fa-css-prefix}-pause-circle:before { content: $fa-var-pause-circle; }
+.#{$fa-css-prefix}-pause-circle-o:before { content: $fa-var-pause-circle-o; }
+.#{$fa-css-prefix}-stop-circle:before { content: $fa-var-stop-circle; }
+.#{$fa-css-prefix}-stop-circle-o:before { content: $fa-var-stop-circle-o; }
+.#{$fa-css-prefix}-shopping-bag:before { content: $fa-var-shopping-bag; }
+.#{$fa-css-prefix}-shopping-basket:before { content: $fa-var-shopping-basket; }
+.#{$fa-css-prefix}-hashtag:before { content: $fa-var-hashtag; }
+.#{$fa-css-prefix}-bluetooth:before { content: $fa-var-bluetooth; }
+.#{$fa-css-prefix}-bluetooth-b:before { content: $fa-var-bluetooth-b; }
+.#{$fa-css-prefix}-percent:before { content: $fa-var-percent; }
+.#{$fa-css-prefix}-gitlab:before { content: $fa-var-gitlab; }
+.#{$fa-css-prefix}-wpbeginner:before { content: $fa-var-wpbeginner; }
+.#{$fa-css-prefix}-wpforms:before { content: $fa-var-wpforms; }
+.#{$fa-css-prefix}-envira:before { content: $fa-var-envira; }
+.#{$fa-css-prefix}-universal-access:before { content: $fa-var-universal-access; }
+.#{$fa-css-prefix}-wheelchair-alt:before { content: $fa-var-wheelchair-alt; }
+.#{$fa-css-prefix}-question-circle-o:before { content: $fa-var-question-circle-o; }
+.#{$fa-css-prefix}-blind:before { content: $fa-var-blind; }
+.#{$fa-css-prefix}-audio-description:before { content: $fa-var-audio-description; }
+.#{$fa-css-prefix}-volume-control-phone:before { content: $fa-var-volume-control-phone; }
+.#{$fa-css-prefix}-braille:before { content: $fa-var-braille; }
+.#{$fa-css-prefix}-assistive-listening-systems:before { content: $fa-var-assistive-listening-systems; }
+.#{$fa-css-prefix}-asl-interpreting:before,
+.#{$fa-css-prefix}-american-sign-language-interpreting:before { content: $fa-var-american-sign-language-interpreting; }
+.#{$fa-css-prefix}-deafness:before,
+.#{$fa-css-prefix}-hard-of-hearing:before,
+.#{$fa-css-prefix}-deaf:before { content: $fa-var-deaf; }
+.#{$fa-css-prefix}-glide:before { content: $fa-var-glide; }
+.#{$fa-css-prefix}-glide-g:before { content: $fa-var-glide-g; }
+.#{$fa-css-prefix}-signing:before,
+.#{$fa-css-prefix}-sign-language:before { content: $fa-var-sign-language; }
+.#{$fa-css-prefix}-low-vision:before { content: $fa-var-low-vision; }
+.#{$fa-css-prefix}-viadeo:before { content: $fa-var-viadeo; }
+.#{$fa-css-prefix}-viadeo-square:before { content: $fa-var-viadeo-square; }
+.#{$fa-css-prefix}-snapchat:before { content: $fa-var-snapchat; }
+.#{$fa-css-prefix}-snapchat-ghost:before { content: $fa-var-snapchat-ghost; }
+.#{$fa-css-prefix}-snapchat-square:before { content: $fa-var-snapchat-square; }
+.#{$fa-css-prefix}-pied-piper:before { content: $fa-var-pied-piper; }
+.#{$fa-css-prefix}-first-order:before { content: $fa-var-first-order; }
+.#{$fa-css-prefix}-yoast:before { content: $fa-var-yoast; }
+.#{$fa-css-prefix}-themeisle:before { content: $fa-var-themeisle; }
+.#{$fa-css-prefix}-google-plus-circle:before,
+.#{$fa-css-prefix}-google-plus-official:before { content: $fa-var-google-plus-official; }
+.#{$fa-css-prefix}-fa:before,
+.#{$fa-css-prefix}-font-awesome:before { content: $fa-var-font-awesome; }
diff --git a/_sass/vendor/font-awesome/_larger.scss b/_sass/vendor/font-awesome/_larger.scss
new file mode 100644
index 00000000..41e9a818
--- /dev/null
+++ b/_sass/vendor/font-awesome/_larger.scss
@@ -0,0 +1,13 @@
+// Icon Sizes
+// -------------------------
+
+/* makes the font 33% larger relative to the icon container */
+.#{$fa-css-prefix}-lg {
+ font-size: (4em / 3);
+ line-height: (3em / 4);
+ vertical-align: -15%;
+}
+.#{$fa-css-prefix}-2x { font-size: 2em; }
+.#{$fa-css-prefix}-3x { font-size: 3em; }
+.#{$fa-css-prefix}-4x { font-size: 4em; }
+.#{$fa-css-prefix}-5x { font-size: 5em; }
diff --git a/_sass/vendor/font-awesome/_list.scss b/_sass/vendor/font-awesome/_list.scss
new file mode 100644
index 00000000..7d1e4d54
--- /dev/null
+++ b/_sass/vendor/font-awesome/_list.scss
@@ -0,0 +1,19 @@
+// List Icons
+// -------------------------
+
+.#{$fa-css-prefix}-ul {
+ padding-left: 0;
+ margin-left: $fa-li-width;
+ list-style-type: none;
+ > li { position: relative; }
+}
+.#{$fa-css-prefix}-li {
+ position: absolute;
+ left: -$fa-li-width;
+ width: $fa-li-width;
+ top: (2em / 14);
+ text-align: center;
+ &.#{$fa-css-prefix}-lg {
+ left: -$fa-li-width + (4em / 14);
+ }
+}
diff --git a/_sass/vendor/font-awesome/_mixins.scss b/_sass/vendor/font-awesome/_mixins.scss
new file mode 100644
index 00000000..c3bbd574
--- /dev/null
+++ b/_sass/vendor/font-awesome/_mixins.scss
@@ -0,0 +1,60 @@
+// Mixins
+// --------------------------
+
+@mixin fa-icon() {
+ display: inline-block;
+ font: normal normal normal #{$fa-font-size-base}/#{$fa-line-height-base} FontAwesome; // shortening font declaration
+ font-size: inherit; // can't have font-size inherit on line above, so need to override
+ text-rendering: auto; // optimizelegibility throws things off #1094
+ -webkit-font-smoothing: antialiased;
+ -moz-osx-font-smoothing: grayscale;
+
+}
+
+@mixin fa-icon-rotate($degrees, $rotation) {
+ -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=#{$rotation})";
+ -webkit-transform: rotate($degrees);
+ -ms-transform: rotate($degrees);
+ transform: rotate($degrees);
+}
+
+@mixin fa-icon-flip($horiz, $vert, $rotation) {
+ -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=#{$rotation}, mirror=1)";
+ -webkit-transform: scale($horiz, $vert);
+ -ms-transform: scale($horiz, $vert);
+ transform: scale($horiz, $vert);
+}
+
+
+// Only display content to screen readers. A la Bootstrap 4.
+//
+// See: http://a11yproject.com/posts/how-to-hide-content/
+
+@mixin sr-only {
+ position: absolute;
+ width: 1px;
+ height: 1px;
+ padding: 0;
+ margin: -1px;
+ overflow: hidden;
+ clip: rect(0,0,0,0);
+ border: 0;
+}
+
+// Use in conjunction with .sr-only to only display content when it's focused.
+//
+// Useful for "Skip to main content" links; see http://www.w3.org/TR/2013/NOTE-WCAG20-TECHS-20130905/G1
+//
+// Credit: HTML5 Boilerplate
+
+@mixin sr-only-focusable {
+ &:active,
+ &:focus {
+ position: static;
+ width: auto;
+ height: auto;
+ margin: 0;
+ overflow: visible;
+ clip: auto;
+ }
+}
diff --git a/_sass/vendor/font-awesome/_path.scss b/_sass/vendor/font-awesome/_path.scss
new file mode 100644
index 00000000..bb457c23
--- /dev/null
+++ b/_sass/vendor/font-awesome/_path.scss
@@ -0,0 +1,15 @@
+/* FONT PATH
+ * -------------------------- */
+
+@font-face {
+ font-family: 'FontAwesome';
+ src: url('#{$fa-font-path}/fontawesome-webfont.eot?v=#{$fa-version}');
+ src: url('#{$fa-font-path}/fontawesome-webfont.eot?#iefix&v=#{$fa-version}') format('embedded-opentype'),
+ url('#{$fa-font-path}/fontawesome-webfont.woff2?v=#{$fa-version}') format('woff2'),
+ url('#{$fa-font-path}/fontawesome-webfont.woff?v=#{$fa-version}') format('woff'),
+ url('#{$fa-font-path}/fontawesome-webfont.ttf?v=#{$fa-version}') format('truetype'),
+ url('#{$fa-font-path}/fontawesome-webfont.svg?v=#{$fa-version}#fontawesomeregular') format('svg');
+// src: url('#{$fa-font-path}/FontAwesome.otf') format('opentype'); // used when developing fonts
+ font-weight: normal;
+ font-style: normal;
+}
diff --git a/_sass/vendor/font-awesome/_rotated-flipped.scss b/_sass/vendor/font-awesome/_rotated-flipped.scss
new file mode 100644
index 00000000..a3558fd0
--- /dev/null
+++ b/_sass/vendor/font-awesome/_rotated-flipped.scss
@@ -0,0 +1,20 @@
+// Rotated & Flipped Icons
+// -------------------------
+
+.#{$fa-css-prefix}-rotate-90 { @include fa-icon-rotate(90deg, 1); }
+.#{$fa-css-prefix}-rotate-180 { @include fa-icon-rotate(180deg, 2); }
+.#{$fa-css-prefix}-rotate-270 { @include fa-icon-rotate(270deg, 3); }
+
+.#{$fa-css-prefix}-flip-horizontal { @include fa-icon-flip(-1, 1, 0); }
+.#{$fa-css-prefix}-flip-vertical { @include fa-icon-flip(1, -1, 2); }
+
+// Hook for IE8-9
+// -------------------------
+
+:root .#{$fa-css-prefix}-rotate-90,
+:root .#{$fa-css-prefix}-rotate-180,
+:root .#{$fa-css-prefix}-rotate-270,
+:root .#{$fa-css-prefix}-flip-horizontal,
+:root .#{$fa-css-prefix}-flip-vertical {
+ filter: none;
+}
diff --git a/_sass/vendor/font-awesome/_screen-reader.scss b/_sass/vendor/font-awesome/_screen-reader.scss
new file mode 100644
index 00000000..637426f0
--- /dev/null
+++ b/_sass/vendor/font-awesome/_screen-reader.scss
@@ -0,0 +1,5 @@
+// Screen Readers
+// -------------------------
+
+.sr-only { @include sr-only(); }
+.sr-only-focusable { @include sr-only-focusable(); }
diff --git a/_sass/vendor/font-awesome/_stacked.scss b/_sass/vendor/font-awesome/_stacked.scss
new file mode 100644
index 00000000..aef74036
--- /dev/null
+++ b/_sass/vendor/font-awesome/_stacked.scss
@@ -0,0 +1,20 @@
+// Stacked Icons
+// -------------------------
+
+.#{$fa-css-prefix}-stack {
+ position: relative;
+ display: inline-block;
+ width: 2em;
+ height: 2em;
+ line-height: 2em;
+ vertical-align: middle;
+}
+.#{$fa-css-prefix}-stack-1x, .#{$fa-css-prefix}-stack-2x {
+ position: absolute;
+ left: 0;
+ width: 100%;
+ text-align: center;
+}
+.#{$fa-css-prefix}-stack-1x { line-height: inherit; }
+.#{$fa-css-prefix}-stack-2x { font-size: 2em; }
+.#{$fa-css-prefix}-inverse { color: $fa-inverse; }
diff --git a/_sass/vendor/font-awesome/_variables.scss b/_sass/vendor/font-awesome/_variables.scss
new file mode 100644
index 00000000..a5a89ef9
--- /dev/null
+++ b/_sass/vendor/font-awesome/_variables.scss
@@ -0,0 +1,744 @@
+// Variables
+// --------------------------
+
+$fa-font-path: "../fonts" !default;
+$fa-font-size-base: 14px !default;
+$fa-line-height-base: 1 !default;
+//$fa-font-path: "//netdna.bootstrapcdn.com/font-awesome/4.6.3/fonts" !default; // for referencing Bootstrap CDN font files directly
+$fa-css-prefix: fa !default;
+$fa-version: "4.6.3" !default;
+$fa-border-color: #eee !default;
+$fa-inverse: #fff !default;
+$fa-li-width: (30em / 14) !default;
+
+$fa-var-500px: "\f26e";
+$fa-var-adjust: "\f042";
+$fa-var-adn: "\f170";
+$fa-var-align-center: "\f037";
+$fa-var-align-justify: "\f039";
+$fa-var-align-left: "\f036";
+$fa-var-align-right: "\f038";
+$fa-var-amazon: "\f270";
+$fa-var-ambulance: "\f0f9";
+$fa-var-american-sign-language-interpreting: "\f2a3";
+$fa-var-anchor: "\f13d";
+$fa-var-android: "\f17b";
+$fa-var-angellist: "\f209";
+$fa-var-angle-double-down: "\f103";
+$fa-var-angle-double-left: "\f100";
+$fa-var-angle-double-right: "\f101";
+$fa-var-angle-double-up: "\f102";
+$fa-var-angle-down: "\f107";
+$fa-var-angle-left: "\f104";
+$fa-var-angle-right: "\f105";
+$fa-var-angle-up: "\f106";
+$fa-var-apple: "\f179";
+$fa-var-archive: "\f187";
+$fa-var-area-chart: "\f1fe";
+$fa-var-arrow-circle-down: "\f0ab";
+$fa-var-arrow-circle-left: "\f0a8";
+$fa-var-arrow-circle-o-down: "\f01a";
+$fa-var-arrow-circle-o-left: "\f190";
+$fa-var-arrow-circle-o-right: "\f18e";
+$fa-var-arrow-circle-o-up: "\f01b";
+$fa-var-arrow-circle-right: "\f0a9";
+$fa-var-arrow-circle-up: "\f0aa";
+$fa-var-arrow-down: "\f063";
+$fa-var-arrow-left: "\f060";
+$fa-var-arrow-right: "\f061";
+$fa-var-arrow-up: "\f062";
+$fa-var-arrows: "\f047";
+$fa-var-arrows-alt: "\f0b2";
+$fa-var-arrows-h: "\f07e";
+$fa-var-arrows-v: "\f07d";
+$fa-var-asl-interpreting: "\f2a3";
+$fa-var-assistive-listening-systems: "\f2a2";
+$fa-var-asterisk: "\f069";
+$fa-var-at: "\f1fa";
+$fa-var-audio-description: "\f29e";
+$fa-var-automobile: "\f1b9";
+$fa-var-backward: "\f04a";
+$fa-var-balance-scale: "\f24e";
+$fa-var-ban: "\f05e";
+$fa-var-bank: "\f19c";
+$fa-var-bar-chart: "\f080";
+$fa-var-bar-chart-o: "\f080";
+$fa-var-barcode: "\f02a";
+$fa-var-bars: "\f0c9";
+$fa-var-battery-0: "\f244";
+$fa-var-battery-1: "\f243";
+$fa-var-battery-2: "\f242";
+$fa-var-battery-3: "\f241";
+$fa-var-battery-4: "\f240";
+$fa-var-battery-empty: "\f244";
+$fa-var-battery-full: "\f240";
+$fa-var-battery-half: "\f242";
+$fa-var-battery-quarter: "\f243";
+$fa-var-battery-three-quarters: "\f241";
+$fa-var-bed: "\f236";
+$fa-var-beer: "\f0fc";
+$fa-var-behance: "\f1b4";
+$fa-var-behance-square: "\f1b5";
+$fa-var-bell: "\f0f3";
+$fa-var-bell-o: "\f0a2";
+$fa-var-bell-slash: "\f1f6";
+$fa-var-bell-slash-o: "\f1f7";
+$fa-var-bicycle: "\f206";
+$fa-var-binoculars: "\f1e5";
+$fa-var-birthday-cake: "\f1fd";
+$fa-var-bitbucket: "\f171";
+$fa-var-bitbucket-square: "\f172";
+$fa-var-bitcoin: "\f15a";
+$fa-var-black-tie: "\f27e";
+$fa-var-blind: "\f29d";
+$fa-var-bluetooth: "\f293";
+$fa-var-bluetooth-b: "\f294";
+$fa-var-bold: "\f032";
+$fa-var-bolt: "\f0e7";
+$fa-var-bomb: "\f1e2";
+$fa-var-book: "\f02d";
+$fa-var-bookmark: "\f02e";
+$fa-var-bookmark-o: "\f097";
+$fa-var-braille: "\f2a1";
+$fa-var-briefcase: "\f0b1";
+$fa-var-btc: "\f15a";
+$fa-var-bug: "\f188";
+$fa-var-building: "\f1ad";
+$fa-var-building-o: "\f0f7";
+$fa-var-bullhorn: "\f0a1";
+$fa-var-bullseye: "\f140";
+$fa-var-bus: "\f207";
+$fa-var-buysellads: "\f20d";
+$fa-var-cab: "\f1ba";
+$fa-var-calculator: "\f1ec";
+$fa-var-calendar: "\f073";
+$fa-var-calendar-check-o: "\f274";
+$fa-var-calendar-minus-o: "\f272";
+$fa-var-calendar-o: "\f133";
+$fa-var-calendar-plus-o: "\f271";
+$fa-var-calendar-times-o: "\f273";
+$fa-var-camera: "\f030";
+$fa-var-camera-retro: "\f083";
+$fa-var-car: "\f1b9";
+$fa-var-caret-down: "\f0d7";
+$fa-var-caret-left: "\f0d9";
+$fa-var-caret-right: "\f0da";
+$fa-var-caret-square-o-down: "\f150";
+$fa-var-caret-square-o-left: "\f191";
+$fa-var-caret-square-o-right: "\f152";
+$fa-var-caret-square-o-up: "\f151";
+$fa-var-caret-up: "\f0d8";
+$fa-var-cart-arrow-down: "\f218";
+$fa-var-cart-plus: "\f217";
+$fa-var-cc: "\f20a";
+$fa-var-cc-amex: "\f1f3";
+$fa-var-cc-diners-club: "\f24c";
+$fa-var-cc-discover: "\f1f2";
+$fa-var-cc-jcb: "\f24b";
+$fa-var-cc-mastercard: "\f1f1";
+$fa-var-cc-paypal: "\f1f4";
+$fa-var-cc-stripe: "\f1f5";
+$fa-var-cc-visa: "\f1f0";
+$fa-var-certificate: "\f0a3";
+$fa-var-chain: "\f0c1";
+$fa-var-chain-broken: "\f127";
+$fa-var-check: "\f00c";
+$fa-var-check-circle: "\f058";
+$fa-var-check-circle-o: "\f05d";
+$fa-var-check-square: "\f14a";
+$fa-var-check-square-o: "\f046";
+$fa-var-chevron-circle-down: "\f13a";
+$fa-var-chevron-circle-left: "\f137";
+$fa-var-chevron-circle-right: "\f138";
+$fa-var-chevron-circle-up: "\f139";
+$fa-var-chevron-down: "\f078";
+$fa-var-chevron-left: "\f053";
+$fa-var-chevron-right: "\f054";
+$fa-var-chevron-up: "\f077";
+$fa-var-child: "\f1ae";
+$fa-var-chrome: "\f268";
+$fa-var-circle: "\f111";
+$fa-var-circle-o: "\f10c";
+$fa-var-circle-o-notch: "\f1ce";
+$fa-var-circle-thin: "\f1db";
+$fa-var-clipboard: "\f0ea";
+$fa-var-clock-o: "\f017";
+$fa-var-clone: "\f24d";
+$fa-var-close: "\f00d";
+$fa-var-cloud: "\f0c2";
+$fa-var-cloud-download: "\f0ed";
+$fa-var-cloud-upload: "\f0ee";
+$fa-var-cny: "\f157";
+$fa-var-code: "\f121";
+$fa-var-code-fork: "\f126";
+$fa-var-codepen: "\f1cb";
+$fa-var-codiepie: "\f284";
+$fa-var-coffee: "\f0f4";
+$fa-var-cog: "\f013";
+$fa-var-cogs: "\f085";
+$fa-var-columns: "\f0db";
+$fa-var-comment: "\f075";
+$fa-var-comment-o: "\f0e5";
+$fa-var-commenting: "\f27a";
+$fa-var-commenting-o: "\f27b";
+$fa-var-comments: "\f086";
+$fa-var-comments-o: "\f0e6";
+$fa-var-compass: "\f14e";
+$fa-var-compress: "\f066";
+$fa-var-connectdevelop: "\f20e";
+$fa-var-contao: "\f26d";
+$fa-var-copy: "\f0c5";
+$fa-var-copyright: "\f1f9";
+$fa-var-creative-commons: "\f25e";
+$fa-var-credit-card: "\f09d";
+$fa-var-credit-card-alt: "\f283";
+$fa-var-crop: "\f125";
+$fa-var-crosshairs: "\f05b";
+$fa-var-css3: "\f13c";
+$fa-var-cube: "\f1b2";
+$fa-var-cubes: "\f1b3";
+$fa-var-cut: "\f0c4";
+$fa-var-cutlery: "\f0f5";
+$fa-var-dashboard: "\f0e4";
+$fa-var-dashcube: "\f210";
+$fa-var-database: "\f1c0";
+$fa-var-deaf: "\f2a4";
+$fa-var-deafness: "\f2a4";
+$fa-var-dedent: "\f03b";
+$fa-var-delicious: "\f1a5";
+$fa-var-desktop: "\f108";
+$fa-var-deviantart: "\f1bd";
+$fa-var-diamond: "\f219";
+$fa-var-digg: "\f1a6";
+$fa-var-dollar: "\f155";
+$fa-var-dot-circle-o: "\f192";
+$fa-var-download: "\f019";
+$fa-var-dribbble: "\f17d";
+$fa-var-dropbox: "\f16b";
+$fa-var-drupal: "\f1a9";
+$fa-var-edge: "\f282";
+$fa-var-edit: "\f044";
+$fa-var-eject: "\f052";
+$fa-var-ellipsis-h: "\f141";
+$fa-var-ellipsis-v: "\f142";
+$fa-var-empire: "\f1d1";
+$fa-var-envelope: "\f0e0";
+$fa-var-envelope-o: "\f003";
+$fa-var-envelope-square: "\f199";
+$fa-var-envira: "\f299";
+$fa-var-eraser: "\f12d";
+$fa-var-eur: "\f153";
+$fa-var-euro: "\f153";
+$fa-var-exchange: "\f0ec";
+$fa-var-exclamation: "\f12a";
+$fa-var-exclamation-circle: "\f06a";
+$fa-var-exclamation-triangle: "\f071";
+$fa-var-expand: "\f065";
+$fa-var-expeditedssl: "\f23e";
+$fa-var-external-link: "\f08e";
+$fa-var-external-link-square: "\f14c";
+$fa-var-eye: "\f06e";
+$fa-var-eye-slash: "\f070";
+$fa-var-eyedropper: "\f1fb";
+$fa-var-fa: "\f2b4";
+$fa-var-facebook: "\f09a";
+$fa-var-facebook-f: "\f09a";
+$fa-var-facebook-official: "\f230";
+$fa-var-facebook-square: "\f082";
+$fa-var-fast-backward: "\f049";
+$fa-var-fast-forward: "\f050";
+$fa-var-fax: "\f1ac";
+$fa-var-feed: "\f09e";
+$fa-var-female: "\f182";
+$fa-var-fighter-jet: "\f0fb";
+$fa-var-file: "\f15b";
+$fa-var-file-archive-o: "\f1c6";
+$fa-var-file-audio-o: "\f1c7";
+$fa-var-file-code-o: "\f1c9";
+$fa-var-file-excel-o: "\f1c3";
+$fa-var-file-image-o: "\f1c5";
+$fa-var-file-movie-o: "\f1c8";
+$fa-var-file-o: "\f016";
+$fa-var-file-pdf-o: "\f1c1";
+$fa-var-file-photo-o: "\f1c5";
+$fa-var-file-picture-o: "\f1c5";
+$fa-var-file-powerpoint-o: "\f1c4";
+$fa-var-file-sound-o: "\f1c7";
+$fa-var-file-text: "\f15c";
+$fa-var-file-text-o: "\f0f6";
+$fa-var-file-video-o: "\f1c8";
+$fa-var-file-word-o: "\f1c2";
+$fa-var-file-zip-o: "\f1c6";
+$fa-var-files-o: "\f0c5";
+$fa-var-film: "\f008";
+$fa-var-filter: "\f0b0";
+$fa-var-fire: "\f06d";
+$fa-var-fire-extinguisher: "\f134";
+$fa-var-firefox: "\f269";
+$fa-var-first-order: "\f2b0";
+$fa-var-flag: "\f024";
+$fa-var-flag-checkered: "\f11e";
+$fa-var-flag-o: "\f11d";
+$fa-var-flash: "\f0e7";
+$fa-var-flask: "\f0c3";
+$fa-var-flickr: "\f16e";
+$fa-var-floppy-o: "\f0c7";
+$fa-var-folder: "\f07b";
+$fa-var-folder-o: "\f114";
+$fa-var-folder-open: "\f07c";
+$fa-var-folder-open-o: "\f115";
+$fa-var-font: "\f031";
+$fa-var-font-awesome: "\f2b4";
+$fa-var-fonticons: "\f280";
+$fa-var-fort-awesome: "\f286";
+$fa-var-forumbee: "\f211";
+$fa-var-forward: "\f04e";
+$fa-var-foursquare: "\f180";
+$fa-var-frown-o: "\f119";
+$fa-var-futbol-o: "\f1e3";
+$fa-var-gamepad: "\f11b";
+$fa-var-gavel: "\f0e3";
+$fa-var-gbp: "\f154";
+$fa-var-ge: "\f1d1";
+$fa-var-gear: "\f013";
+$fa-var-gears: "\f085";
+$fa-var-genderless: "\f22d";
+$fa-var-get-pocket: "\f265";
+$fa-var-gg: "\f260";
+$fa-var-gg-circle: "\f261";
+$fa-var-gift: "\f06b";
+$fa-var-git: "\f1d3";
+$fa-var-git-square: "\f1d2";
+$fa-var-github: "\f09b";
+$fa-var-github-alt: "\f113";
+$fa-var-github-square: "\f092";
+$fa-var-gitlab: "\f296";
+$fa-var-gittip: "\f184";
+$fa-var-glass: "\f000";
+$fa-var-glide: "\f2a5";
+$fa-var-glide-g: "\f2a6";
+$fa-var-globe: "\f0ac";
+$fa-var-google: "\f1a0";
+$fa-var-google-plus: "\f0d5";
+$fa-var-google-plus-circle: "\f2b3";
+$fa-var-google-plus-official: "\f2b3";
+$fa-var-google-plus-square: "\f0d4";
+$fa-var-google-wallet: "\f1ee";
+$fa-var-graduation-cap: "\f19d";
+$fa-var-gratipay: "\f184";
+$fa-var-group: "\f0c0";
+$fa-var-h-square: "\f0fd";
+$fa-var-hacker-news: "\f1d4";
+$fa-var-hand-grab-o: "\f255";
+$fa-var-hand-lizard-o: "\f258";
+$fa-var-hand-o-down: "\f0a7";
+$fa-var-hand-o-left: "\f0a5";
+$fa-var-hand-o-right: "\f0a4";
+$fa-var-hand-o-up: "\f0a6";
+$fa-var-hand-paper-o: "\f256";
+$fa-var-hand-peace-o: "\f25b";
+$fa-var-hand-pointer-o: "\f25a";
+$fa-var-hand-rock-o: "\f255";
+$fa-var-hand-scissors-o: "\f257";
+$fa-var-hand-spock-o: "\f259";
+$fa-var-hand-stop-o: "\f256";
+$fa-var-hard-of-hearing: "\f2a4";
+$fa-var-hashtag: "\f292";
+$fa-var-hdd-o: "\f0a0";
+$fa-var-header: "\f1dc";
+$fa-var-headphones: "\f025";
+$fa-var-heart: "\f004";
+$fa-var-heart-o: "\f08a";
+$fa-var-heartbeat: "\f21e";
+$fa-var-history: "\f1da";
+$fa-var-home: "\f015";
+$fa-var-hospital-o: "\f0f8";
+$fa-var-hotel: "\f236";
+$fa-var-hourglass: "\f254";
+$fa-var-hourglass-1: "\f251";
+$fa-var-hourglass-2: "\f252";
+$fa-var-hourglass-3: "\f253";
+$fa-var-hourglass-end: "\f253";
+$fa-var-hourglass-half: "\f252";
+$fa-var-hourglass-o: "\f250";
+$fa-var-hourglass-start: "\f251";
+$fa-var-houzz: "\f27c";
+$fa-var-html5: "\f13b";
+$fa-var-i-cursor: "\f246";
+$fa-var-ils: "\f20b";
+$fa-var-image: "\f03e";
+$fa-var-inbox: "\f01c";
+$fa-var-indent: "\f03c";
+$fa-var-industry: "\f275";
+$fa-var-info: "\f129";
+$fa-var-info-circle: "\f05a";
+$fa-var-inr: "\f156";
+$fa-var-instagram: "\f16d";
+$fa-var-institution: "\f19c";
+$fa-var-internet-explorer: "\f26b";
+$fa-var-intersex: "\f224";
+$fa-var-ioxhost: "\f208";
+$fa-var-italic: "\f033";
+$fa-var-joomla: "\f1aa";
+$fa-var-jpy: "\f157";
+$fa-var-jsfiddle: "\f1cc";
+$fa-var-key: "\f084";
+$fa-var-keyboard-o: "\f11c";
+$fa-var-krw: "\f159";
+$fa-var-language: "\f1ab";
+$fa-var-laptop: "\f109";
+$fa-var-lastfm: "\f202";
+$fa-var-lastfm-square: "\f203";
+$fa-var-leaf: "\f06c";
+$fa-var-leanpub: "\f212";
+$fa-var-legal: "\f0e3";
+$fa-var-lemon-o: "\f094";
+$fa-var-level-down: "\f149";
+$fa-var-level-up: "\f148";
+$fa-var-life-bouy: "\f1cd";
+$fa-var-life-buoy: "\f1cd";
+$fa-var-life-ring: "\f1cd";
+$fa-var-life-saver: "\f1cd";
+$fa-var-lightbulb-o: "\f0eb";
+$fa-var-line-chart: "\f201";
+$fa-var-link: "\f0c1";
+$fa-var-linkedin: "\f0e1";
+$fa-var-linkedin-square: "\f08c";
+$fa-var-linux: "\f17c";
+$fa-var-list: "\f03a";
+$fa-var-list-alt: "\f022";
+$fa-var-list-ol: "\f0cb";
+$fa-var-list-ul: "\f0ca";
+$fa-var-location-arrow: "\f124";
+$fa-var-lock: "\f023";
+$fa-var-long-arrow-down: "\f175";
+$fa-var-long-arrow-left: "\f177";
+$fa-var-long-arrow-right: "\f178";
+$fa-var-long-arrow-up: "\f176";
+$fa-var-low-vision: "\f2a8";
+$fa-var-magic: "\f0d0";
+$fa-var-magnet: "\f076";
+$fa-var-mail-forward: "\f064";
+$fa-var-mail-reply: "\f112";
+$fa-var-mail-reply-all: "\f122";
+$fa-var-male: "\f183";
+$fa-var-map: "\f279";
+$fa-var-map-marker: "\f041";
+$fa-var-map-o: "\f278";
+$fa-var-map-pin: "\f276";
+$fa-var-map-signs: "\f277";
+$fa-var-mars: "\f222";
+$fa-var-mars-double: "\f227";
+$fa-var-mars-stroke: "\f229";
+$fa-var-mars-stroke-h: "\f22b";
+$fa-var-mars-stroke-v: "\f22a";
+$fa-var-maxcdn: "\f136";
+$fa-var-meanpath: "\f20c";
+$fa-var-medium: "\f23a";
+$fa-var-medkit: "\f0fa";
+$fa-var-meh-o: "\f11a";
+$fa-var-mercury: "\f223";
+$fa-var-microphone: "\f130";
+$fa-var-microphone-slash: "\f131";
+$fa-var-minus: "\f068";
+$fa-var-minus-circle: "\f056";
+$fa-var-minus-square: "\f146";
+$fa-var-minus-square-o: "\f147";
+$fa-var-mixcloud: "\f289";
+$fa-var-mobile: "\f10b";
+$fa-var-mobile-phone: "\f10b";
+$fa-var-modx: "\f285";
+$fa-var-money: "\f0d6";
+$fa-var-moon-o: "\f186";
+$fa-var-mortar-board: "\f19d";
+$fa-var-motorcycle: "\f21c";
+$fa-var-mouse-pointer: "\f245";
+$fa-var-music: "\f001";
+$fa-var-navicon: "\f0c9";
+$fa-var-neuter: "\f22c";
+$fa-var-newspaper-o: "\f1ea";
+$fa-var-object-group: "\f247";
+$fa-var-object-ungroup: "\f248";
+$fa-var-odnoklassniki: "\f263";
+$fa-var-odnoklassniki-square: "\f264";
+$fa-var-opencart: "\f23d";
+$fa-var-openid: "\f19b";
+$fa-var-opera: "\f26a";
+$fa-var-optin-monster: "\f23c";
+$fa-var-outdent: "\f03b";
+$fa-var-pagelines: "\f18c";
+$fa-var-paint-brush: "\f1fc";
+$fa-var-paper-plane: "\f1d8";
+$fa-var-paper-plane-o: "\f1d9";
+$fa-var-paperclip: "\f0c6";
+$fa-var-paragraph: "\f1dd";
+$fa-var-paste: "\f0ea";
+$fa-var-pause: "\f04c";
+$fa-var-pause-circle: "\f28b";
+$fa-var-pause-circle-o: "\f28c";
+$fa-var-paw: "\f1b0";
+$fa-var-paypal: "\f1ed";
+$fa-var-pencil: "\f040";
+$fa-var-pencil-square: "\f14b";
+$fa-var-pencil-square-o: "\f044";
+$fa-var-percent: "\f295";
+$fa-var-phone: "\f095";
+$fa-var-phone-square: "\f098";
+$fa-var-photo: "\f03e";
+$fa-var-picture-o: "\f03e";
+$fa-var-pie-chart: "\f200";
+$fa-var-pied-piper: "\f2ae";
+$fa-var-pied-piper-alt: "\f1a8";
+$fa-var-pied-piper-pp: "\f1a7";
+$fa-var-pinterest: "\f0d2";
+$fa-var-pinterest-p: "\f231";
+$fa-var-pinterest-square: "\f0d3";
+$fa-var-plane: "\f072";
+$fa-var-play: "\f04b";
+$fa-var-play-circle: "\f144";
+$fa-var-play-circle-o: "\f01d";
+$fa-var-plug: "\f1e6";
+$fa-var-plus: "\f067";
+$fa-var-plus-circle: "\f055";
+$fa-var-plus-square: "\f0fe";
+$fa-var-plus-square-o: "\f196";
+$fa-var-power-off: "\f011";
+$fa-var-print: "\f02f";
+$fa-var-product-hunt: "\f288";
+$fa-var-puzzle-piece: "\f12e";
+$fa-var-qq: "\f1d6";
+$fa-var-qrcode: "\f029";
+$fa-var-question: "\f128";
+$fa-var-question-circle: "\f059";
+$fa-var-question-circle-o: "\f29c";
+$fa-var-quote-left: "\f10d";
+$fa-var-quote-right: "\f10e";
+$fa-var-ra: "\f1d0";
+$fa-var-random: "\f074";
+$fa-var-rebel: "\f1d0";
+$fa-var-recycle: "\f1b8";
+$fa-var-reddit: "\f1a1";
+$fa-var-reddit-alien: "\f281";
+$fa-var-reddit-square: "\f1a2";
+$fa-var-refresh: "\f021";
+$fa-var-registered: "\f25d";
+$fa-var-remove: "\f00d";
+$fa-var-renren: "\f18b";
+$fa-var-reorder: "\f0c9";
+$fa-var-repeat: "\f01e";
+$fa-var-reply: "\f112";
+$fa-var-reply-all: "\f122";
+$fa-var-resistance: "\f1d0";
+$fa-var-retweet: "\f079";
+$fa-var-rmb: "\f157";
+$fa-var-road: "\f018";
+$fa-var-rocket: "\f135";
+$fa-var-rotate-left: "\f0e2";
+$fa-var-rotate-right: "\f01e";
+$fa-var-rouble: "\f158";
+$fa-var-rss: "\f09e";
+$fa-var-rss-square: "\f143";
+$fa-var-rub: "\f158";
+$fa-var-ruble: "\f158";
+$fa-var-rupee: "\f156";
+$fa-var-safari: "\f267";
+$fa-var-save: "\f0c7";
+$fa-var-scissors: "\f0c4";
+$fa-var-scribd: "\f28a";
+$fa-var-search: "\f002";
+$fa-var-search-minus: "\f010";
+$fa-var-search-plus: "\f00e";
+$fa-var-sellsy: "\f213";
+$fa-var-send: "\f1d8";
+$fa-var-send-o: "\f1d9";
+$fa-var-server: "\f233";
+$fa-var-share: "\f064";
+$fa-var-share-alt: "\f1e0";
+$fa-var-share-alt-square: "\f1e1";
+$fa-var-share-square: "\f14d";
+$fa-var-share-square-o: "\f045";
+$fa-var-shekel: "\f20b";
+$fa-var-sheqel: "\f20b";
+$fa-var-shield: "\f132";
+$fa-var-ship: "\f21a";
+$fa-var-shirtsinbulk: "\f214";
+$fa-var-shopping-bag: "\f290";
+$fa-var-shopping-basket: "\f291";
+$fa-var-shopping-cart: "\f07a";
+$fa-var-sign-in: "\f090";
+$fa-var-sign-language: "\f2a7";
+$fa-var-sign-out: "\f08b";
+$fa-var-signal: "\f012";
+$fa-var-signing: "\f2a7";
+$fa-var-simplybuilt: "\f215";
+$fa-var-sitemap: "\f0e8";
+$fa-var-skyatlas: "\f216";
+$fa-var-skype: "\f17e";
+$fa-var-slack: "\f198";
+$fa-var-sliders: "\f1de";
+$fa-var-slideshare: "\f1e7";
+$fa-var-smile-o: "\f118";
+$fa-var-snapchat: "\f2ab";
+$fa-var-snapchat-ghost: "\f2ac";
+$fa-var-snapchat-square: "\f2ad";
+$fa-var-soccer-ball-o: "\f1e3";
+$fa-var-sort: "\f0dc";
+$fa-var-sort-alpha-asc: "\f15d";
+$fa-var-sort-alpha-desc: "\f15e";
+$fa-var-sort-amount-asc: "\f160";
+$fa-var-sort-amount-desc: "\f161";
+$fa-var-sort-asc: "\f0de";
+$fa-var-sort-desc: "\f0dd";
+$fa-var-sort-down: "\f0dd";
+$fa-var-sort-numeric-asc: "\f162";
+$fa-var-sort-numeric-desc: "\f163";
+$fa-var-sort-up: "\f0de";
+$fa-var-soundcloud: "\f1be";
+$fa-var-space-shuttle: "\f197";
+$fa-var-spinner: "\f110";
+$fa-var-spoon: "\f1b1";
+$fa-var-spotify: "\f1bc";
+$fa-var-square: "\f0c8";
+$fa-var-square-o: "\f096";
+$fa-var-stack-exchange: "\f18d";
+$fa-var-stack-overflow: "\f16c";
+$fa-var-star: "\f005";
+$fa-var-star-half: "\f089";
+$fa-var-star-half-empty: "\f123";
+$fa-var-star-half-full: "\f123";
+$fa-var-star-half-o: "\f123";
+$fa-var-star-o: "\f006";
+$fa-var-steam: "\f1b6";
+$fa-var-steam-square: "\f1b7";
+$fa-var-step-backward: "\f048";
+$fa-var-step-forward: "\f051";
+$fa-var-stethoscope: "\f0f1";
+$fa-var-sticky-note: "\f249";
+$fa-var-sticky-note-o: "\f24a";
+$fa-var-stop: "\f04d";
+$fa-var-stop-circle: "\f28d";
+$fa-var-stop-circle-o: "\f28e";
+$fa-var-street-view: "\f21d";
+$fa-var-strikethrough: "\f0cc";
+$fa-var-stumbleupon: "\f1a4";
+$fa-var-stumbleupon-circle: "\f1a3";
+$fa-var-subscript: "\f12c";
+$fa-var-subway: "\f239";
+$fa-var-suitcase: "\f0f2";
+$fa-var-sun-o: "\f185";
+$fa-var-superscript: "\f12b";
+$fa-var-support: "\f1cd";
+$fa-var-table: "\f0ce";
+$fa-var-tablet: "\f10a";
+$fa-var-tachometer: "\f0e4";
+$fa-var-tag: "\f02b";
+$fa-var-tags: "\f02c";
+$fa-var-tasks: "\f0ae";
+$fa-var-taxi: "\f1ba";
+$fa-var-television: "\f26c";
+$fa-var-tencent-weibo: "\f1d5";
+$fa-var-terminal: "\f120";
+$fa-var-text-height: "\f034";
+$fa-var-text-width: "\f035";
+$fa-var-th: "\f00a";
+$fa-var-th-large: "\f009";
+$fa-var-th-list: "\f00b";
+$fa-var-themeisle: "\f2b2";
+$fa-var-thumb-tack: "\f08d";
+$fa-var-thumbs-down: "\f165";
+$fa-var-thumbs-o-down: "\f088";
+$fa-var-thumbs-o-up: "\f087";
+$fa-var-thumbs-up: "\f164";
+$fa-var-ticket: "\f145";
+$fa-var-times: "\f00d";
+$fa-var-times-circle: "\f057";
+$fa-var-times-circle-o: "\f05c";
+$fa-var-tint: "\f043";
+$fa-var-toggle-down: "\f150";
+$fa-var-toggle-left: "\f191";
+$fa-var-toggle-off: "\f204";
+$fa-var-toggle-on: "\f205";
+$fa-var-toggle-right: "\f152";
+$fa-var-toggle-up: "\f151";
+$fa-var-trademark: "\f25c";
+$fa-var-train: "\f238";
+$fa-var-transgender: "\f224";
+$fa-var-transgender-alt: "\f225";
+$fa-var-trash: "\f1f8";
+$fa-var-trash-o: "\f014";
+$fa-var-tree: "\f1bb";
+$fa-var-trello: "\f181";
+$fa-var-tripadvisor: "\f262";
+$fa-var-trophy: "\f091";
+$fa-var-truck: "\f0d1";
+$fa-var-try: "\f195";
+$fa-var-tty: "\f1e4";
+$fa-var-tumblr: "\f173";
+$fa-var-tumblr-square: "\f174";
+$fa-var-turkish-lira: "\f195";
+$fa-var-tv: "\f26c";
+$fa-var-twitch: "\f1e8";
+$fa-var-twitter: "\f099";
+$fa-var-twitter-square: "\f081";
+$fa-var-umbrella: "\f0e9";
+$fa-var-underline: "\f0cd";
+$fa-var-undo: "\f0e2";
+$fa-var-universal-access: "\f29a";
+$fa-var-university: "\f19c";
+$fa-var-unlink: "\f127";
+$fa-var-unlock: "\f09c";
+$fa-var-unlock-alt: "\f13e";
+$fa-var-unsorted: "\f0dc";
+$fa-var-upload: "\f093";
+$fa-var-usb: "\f287";
+$fa-var-usd: "\f155";
+$fa-var-user: "\f007";
+$fa-var-user-md: "\f0f0";
+$fa-var-user-plus: "\f234";
+$fa-var-user-secret: "\f21b";
+$fa-var-user-times: "\f235";
+$fa-var-users: "\f0c0";
+$fa-var-venus: "\f221";
+$fa-var-venus-double: "\f226";
+$fa-var-venus-mars: "\f228";
+$fa-var-viacoin: "\f237";
+$fa-var-viadeo: "\f2a9";
+$fa-var-viadeo-square: "\f2aa";
+$fa-var-video-camera: "\f03d";
+$fa-var-vimeo: "\f27d";
+$fa-var-vimeo-square: "\f194";
+$fa-var-vine: "\f1ca";
+$fa-var-vk: "\f189";
+$fa-var-volume-control-phone: "\f2a0";
+$fa-var-volume-down: "\f027";
+$fa-var-volume-off: "\f026";
+$fa-var-volume-up: "\f028";
+$fa-var-warning: "\f071";
+$fa-var-wechat: "\f1d7";
+$fa-var-weibo: "\f18a";
+$fa-var-weixin: "\f1d7";
+$fa-var-whatsapp: "\f232";
+$fa-var-wheelchair: "\f193";
+$fa-var-wheelchair-alt: "\f29b";
+$fa-var-wifi: "\f1eb";
+$fa-var-wikipedia-w: "\f266";
+$fa-var-windows: "\f17a";
+$fa-var-won: "\f159";
+$fa-var-wordpress: "\f19a";
+$fa-var-wpbeginner: "\f297";
+$fa-var-wpforms: "\f298";
+$fa-var-wrench: "\f0ad";
+$fa-var-xing: "\f168";
+$fa-var-xing-square: "\f169";
+$fa-var-y-combinator: "\f23b";
+$fa-var-y-combinator-square: "\f1d4";
+$fa-var-yahoo: "\f19e";
+$fa-var-yc: "\f23b";
+$fa-var-yc-square: "\f1d4";
+$fa-var-yelp: "\f1e9";
+$fa-var-yen: "\f157";
+$fa-var-yoast: "\f2b1";
+$fa-var-youtube: "\f167";
+$fa-var-youtube-play: "\f16a";
+$fa-var-youtube-square: "\f166";
+
diff --git a/_sass/vendor/magnific-popup/_magnific-popup.scss b/_sass/vendor/magnific-popup/_magnific-popup.scss
new file mode 100644
index 00000000..27b27bcc
--- /dev/null
+++ b/_sass/vendor/magnific-popup/_magnific-popup.scss
@@ -0,0 +1,649 @@
+/* Magnific Popup CSS */
+
+@import "settings";
+
+////////////////////////
+//
+// Contents:
+//
+// 1. Default Settings
+// 2. General styles
+// - Transluscent overlay
+// - Containers, wrappers
+// - Cursors
+// - Helper classes
+// 3. Appearance
+// - Preloader & text that displays error messages
+// - CSS reset for buttons
+// - Close icon
+// - "1 of X" counter
+// - Navigation (left/right) arrows
+// - Iframe content type styles
+// - Image content type styles
+// - Media query where size of arrows is reduced
+// - IE7 support
+//
+////////////////////////
+
+
+
+////////////////////////
+// 1. Default Settings
+////////////////////////
+
+$mfp-overlay-color: #0b0b0b !default;
+$mfp-overlay-opacity: 0.8 !default;
+$mfp-shadow: 0 0 8px rgba(0, 0, 0, 0.6) !default; // shadow on image or iframe
+$mfp-popup-padding-left: 8px !default; // Padding from left and from right side
+$mfp-popup-padding-left-mobile: 6px !default; // Same as above, but is applied when width of window is less than 800px
+
+$mfp-z-index-base: 1040 !default; // Base z-index of popup
+$mfp-include-arrows: true !default; // include styles for nav arrows
+$mfp-controls-opacity: 0.65 !default;
+$mfp-controls-color: #FFF !default;
+$mfp-controls-border-color: #3F3F3F !default;
+$mfp-inner-close-icon-color: #333 !default;
+$mfp-controls-text-color: #CCC !default; // Color of preloader and "1 of X" indicator
+$mfp-controls-text-color-hover: #FFF !default;
+$mfp-IE7support: true !default; // Very basic IE7 support
+
+// Iframe-type options
+$mfp-include-iframe-type: true !default;
+$mfp-iframe-padding-top: 40px !default;
+$mfp-iframe-background: #000 !default;
+$mfp-iframe-max-width: 900px !default;
+$mfp-iframe-ratio: 9/16 !default;
+
+// Image-type options
+$mfp-include-image-type: true !default;
+$mfp-image-background: #444 !default;
+$mfp-image-padding-top: 40px !default;
+$mfp-image-padding-bottom: 40px !default;
+$mfp-include-mobile-layout-for-image: true !default; // Removes paddings from top and bottom
+
+// Image caption options
+$mfp-caption-title-color: #F3F3F3 !default;
+$mfp-caption-subtitle-color: #BDBDBD !default;
+
+// A11y
+$mfp-use-visuallyhidden: false !default; // Hide content from browsers, but make it available for screen readers
+
+
+
+////////////////////////
+// 2. General styles
+////////////////////////
+
+// Transluscent overlay
+.mfp-bg {
+ top: 0;
+ left: 0;
+ width: 100%;
+ height: 100%;
+ z-index: $mfp-z-index-base + 2;
+ overflow: hidden;
+ position: fixed;
+
+ background: $mfp-overlay-color;
+ opacity: $mfp-overlay-opacity;
+ @if $mfp-IE7support {
+ filter: unquote("alpha(opacity=#{$mfp-overlay-opacity*100})");
+ }
+}
+
+// Wrapper for popup
+.mfp-wrap {
+ top: 0;
+ left: 0;
+ width: 100%;
+ height: 100%;
+ z-index: $mfp-z-index-base + 3;
+ position: fixed;
+ outline: none !important;
+ -webkit-backface-visibility: hidden; // fixes webkit bug that can cause "false" scrollbar
+}
+
+// Root container
+.mfp-container {
+ text-align: center;
+ position: absolute;
+ width: 100%;
+ height: 100%;
+ left: 0;
+ top: 0;
+ padding: 0 $mfp-popup-padding-left;
+ -webkit-box-sizing: border-box;
+ -moz-box-sizing: border-box;
+ box-sizing: border-box;
+}
+
+// Vertical centerer helper
+.mfp-container {
+ &:before {
+ content: '';
+ display: inline-block;
+ height: 100%;
+ vertical-align: middle;
+ }
+}
+
+// Remove vertical centering when popup has class `mfp-align-top`
+.mfp-align-top {
+ .mfp-container {
+ &:before {
+ display: none;
+ }
+ }
+}
+
+// Popup content holder
+.mfp-content {
+ position: relative;
+ display: inline-block;
+ vertical-align: middle;
+ margin: 0 auto;
+ text-align: left;
+ z-index: $mfp-z-index-base + 5;
+}
+.mfp-inline-holder,
+.mfp-ajax-holder {
+ .mfp-content {
+ width: 100%;
+ cursor: auto;
+ }
+}
+
+// Cursors
+.mfp-ajax-cur {
+ cursor: progress;
+}
+.mfp-zoom-out-cur {
+ &, .mfp-image-holder .mfp-close {
+ cursor: -moz-zoom-out;
+ cursor: -webkit-zoom-out;
+ cursor: zoom-out;
+ }
+}
+.mfp-zoom {
+ cursor: pointer;
+ cursor: -webkit-zoom-in;
+ cursor: -moz-zoom-in;
+ cursor: zoom-in;
+}
+.mfp-auto-cursor {
+ .mfp-content {
+ cursor: auto;
+ }
+}
+
+.mfp-close,
+.mfp-arrow,
+.mfp-preloader,
+.mfp-counter {
+ -webkit-user-select:none;
+ -moz-user-select: none;
+ user-select: none;
+}
+
+// Hide the image during the loading
+.mfp-loading {
+ &.mfp-figure {
+ display: none;
+ }
+}
+
+// Helper class that hides stuff
+@if $mfp-use-visuallyhidden {
+ // From HTML5 Boilerplate https://github.com/h5bp/html5-boilerplate/blob/v4.2.0/doc/css.md#visuallyhidden
+ .mfp-hide {
+ border: 0 !important;
+ clip: rect(0 0 0 0) !important;
+ height: 1px !important;
+ margin: -1px !important;
+ overflow: hidden !important;
+ padding: 0 !important;
+ position: absolute !important;
+ width: 1px !important;
+ }
+} @else {
+ .mfp-hide {
+ display: none !important;
+ }
+}
+
+
+////////////////////////
+// 3. Appearance
+////////////////////////
+
+// Preloader and text that displays error messages
+.mfp-preloader {
+ color: $mfp-controls-text-color;
+ position: absolute;
+ top: 50%;
+ width: auto;
+ text-align: center;
+ margin-top: -0.8em;
+ left: 8px;
+ right: 8px;
+ z-index: $mfp-z-index-base + 4;
+ a {
+ color: $mfp-controls-text-color;
+ &:hover {
+ color: $mfp-controls-text-color-hover;
+ }
+ }
+}
+
+// Hide preloader when content successfully loaded
+.mfp-s-ready {
+ .mfp-preloader {
+ display: none;
+ }
+}
+
+// Hide content when it was not loaded
+.mfp-s-error {
+ .mfp-content {
+ display: none;
+ }
+}
+
+// CSS-reset for buttons
+button {
+ &.mfp-close,
+ &.mfp-arrow {
+ overflow: visible;
+ cursor: pointer;
+ background: transparent;
+ border: 0;
+ -webkit-appearance: none;
+ display: block;
+ outline: none;
+ padding: 0;
+ z-index: $mfp-z-index-base + 6;
+ -webkit-box-shadow: none;
+ box-shadow: none;
+ }
+ &::-moz-focus-inner {
+ padding: 0;
+ border: 0
+ }
+}
+
+
+// Close icon
+.mfp-close {
+ width: 44px;
+ height: 44px;
+ line-height: 44px;
+
+ position: absolute;
+ right: 0;
+ top: 0;
+ text-decoration: none;
+ text-align: center;
+ opacity: $mfp-controls-opacity;
+ @if $mfp-IE7support {
+ filter: unquote("alpha(opacity=#{$mfp-controls-opacity*100})");
+ }
+ padding: 0 0 18px 10px;
+ color: $mfp-controls-color;
+
+ font-style: normal;
+ font-size: 28px;
+ font-family: $serif;
+
+ &:hover,
+ &:focus {
+ opacity: 1;
+ @if $mfp-IE7support {
+ filter: unquote("alpha(opacity=#{1*100})");
+ }
+ }
+
+ &:active {
+ top: 1px;
+ }
+}
+.mfp-close-btn-in {
+ .mfp-close {
+ color: $mfp-inner-close-icon-color;
+ }
+}
+.mfp-image-holder,
+.mfp-iframe-holder {
+ .mfp-close {
+ color: $mfp-controls-color;
+ right: -6px;
+ text-align: right;
+ padding-right: 6px;
+ width: 100%;
+ }
+}
+
+// "1 of X" counter
+.mfp-counter {
+ position: absolute;
+ top: 0;
+ right: 0;
+ color: $mfp-controls-text-color;
+ font-size: 12px;
+ line-height: 18px;
+}
+
+// Navigation arrows
+@if $mfp-include-arrows {
+ .mfp-arrow {
+ position: absolute;
+ opacity: $mfp-controls-opacity;
+ @if $mfp-IE7support {
+ filter: unquote("alpha(opacity=#{$mfp-controls-opacity*100})");
+ }
+ margin: 0;
+ top: 50%;
+ margin-top: -55px;
+ padding: 0;
+ width: 90px;
+ height: 110px;
+ -webkit-tap-highlight-color: rgba(0,0,0,0);
+ &:active {
+ margin-top: -54px;
+ }
+ &:hover,
+ &:focus {
+ opacity: 1;
+ @if $mfp-IE7support {
+ filter: unquote("alpha(opacity=#{1*100})");
+ }
+ }
+ &:before,
+ &:after,
+ .mfp-b,
+ .mfp-a {
+ content: '';
+ display: block;
+ width: 0;
+ height: 0;
+ position: absolute;
+ left: 0;
+ top: 0;
+ margin-top: 35px;
+ margin-left: 35px;
+ border: medium inset transparent;
+ }
+
+ &:after,
+ .mfp-a {
+
+ border-top-width: 13px;
+ border-bottom-width: 13px;
+ top:8px;
+ }
+
+ &:before,
+ .mfp-b {
+ border-top-width: 21px;
+ border-bottom-width: 21px;
+ opacity: 0.7;
+ }
+
+ }
+
+ .mfp-arrow-left {
+ left: 0;
+
+ &:after,
+ .mfp-a {
+ border-right: 17px solid $mfp-controls-color;
+ margin-left: 31px;
+ }
+ &:before,
+ .mfp-b {
+ margin-left: 25px;
+ border-right: 27px solid $mfp-controls-border-color;
+ }
+ }
+
+ .mfp-arrow-right {
+ right: 0;
+ &:after,
+ .mfp-a {
+ border-left: 17px solid $mfp-controls-color;
+ margin-left: 39px
+ }
+ &:before,
+ .mfp-b {
+ border-left: 27px solid $mfp-controls-border-color;
+ }
+ }
+}
+
+
+
+// Iframe content type
+@if $mfp-include-iframe-type {
+ .mfp-iframe-holder {
+ padding-top: $mfp-iframe-padding-top;
+ padding-bottom: $mfp-iframe-padding-top;
+ .mfp-content {
+ line-height: 0;
+ width: 100%;
+ max-width: $mfp-iframe-max-width;
+ }
+ .mfp-close {
+ top: -40px;
+ }
+ }
+ .mfp-iframe-scaler {
+ width: 100%;
+ height: 0;
+ overflow: hidden;
+ padding-top: $mfp-iframe-ratio * 100%;
+ iframe {
+ position: absolute;
+ display: block;
+ top: 0;
+ left: 0;
+ width: 100%;
+ height: 100%;
+ box-shadow: $mfp-shadow;
+ background: $mfp-iframe-background;
+ }
+ }
+}
+
+
+
+// Image content type
+@if $mfp-include-image-type {
+
+ /* Main image in popup */
+ img {
+ &.mfp-img {
+ width: auto;
+ max-width: 100%;
+ height: auto;
+ display: block;
+ line-height: 0;
+ -webkit-box-sizing: border-box;
+ -moz-box-sizing: border-box;
+ box-sizing: border-box;
+ padding: $mfp-image-padding-top 0 $mfp-image-padding-bottom;
+ margin: 0 auto;
+ }
+ }
+
+ /* The shadow behind the image */
+ .mfp-figure {
+ line-height: 0;
+ &:after {
+ content: '';
+ position: absolute;
+ left: 0;
+ top: $mfp-image-padding-top;
+ bottom: $mfp-image-padding-bottom;
+ display: block;
+ right: 0;
+ width: auto;
+ height: auto;
+ z-index: -1;
+ box-shadow: $mfp-shadow;
+ background: $mfp-image-background;
+ }
+ small {
+ color: $mfp-caption-subtitle-color;
+ display: block;
+ font-size: 12px;
+ line-height: 14px;
+ }
+ figure {
+ margin: 0;
+ }
+ figcaption {
+ margin-top: 0;
+ margin-bottom: 0; // reset for bottom spacing
+ }
+ }
+ .mfp-bottom-bar {
+ margin-top: -$mfp-image-padding-bottom + 4;
+ position: absolute;
+ top: 100%;
+ left: 0;
+ width: 100%;
+ cursor: auto;
+ }
+ .mfp-title {
+ text-align: left;
+ line-height: 18px;
+ color: $mfp-caption-title-color;
+ word-wrap: break-word;
+ padding-right: 36px; // leave some space for counter at right side
+ }
+
+ .mfp-image-holder {
+ .mfp-content {
+ max-width: 100%;
+ }
+ }
+
+ .mfp-gallery {
+ .mfp-image-holder {
+ .mfp-figure {
+ cursor: pointer;
+ }
+ }
+ }
+
+
+ @if $mfp-include-mobile-layout-for-image {
+ @media screen and (max-width: 800px) and (orientation:landscape), screen and (max-height: 300px) {
+ /**
+ * Remove all paddings around the image on small screen
+ */
+ .mfp-img-mobile {
+ .mfp-image-holder {
+ padding-left: 0;
+ padding-right: 0;
+ }
+ img {
+ &.mfp-img {
+ padding: 0;
+ }
+ }
+ .mfp-figure {
+ // The shadow behind the image
+ &:after {
+ top: 0;
+ bottom: 0;
+ }
+ small {
+ display: inline;
+ margin-left: 5px;
+ }
+ }
+ .mfp-bottom-bar {
+ background: rgba(0,0,0,0.6);
+ bottom: 0;
+ margin: 0;
+ top: auto;
+ padding: 3px 5px;
+ position: fixed;
+ -webkit-box-sizing: border-box;
+ -moz-box-sizing: border-box;
+ box-sizing: border-box;
+ &:empty {
+ padding: 0;
+ }
+ }
+ .mfp-counter {
+ right: 5px;
+ top: 3px;
+ }
+ .mfp-close {
+ top: 0;
+ right: 0;
+ width: 35px;
+ height: 35px;
+ line-height: 35px;
+ background: rgba(0, 0, 0, 0.6);
+ position: fixed;
+ text-align: center;
+ padding: 0;
+ }
+ }
+ }
+ }
+}
+
+
+
+// Scale navigation arrows and reduce padding from sides
+@media all and (max-width: 900px) {
+ .mfp-arrow {
+ -webkit-transform: scale(0.75);
+ transform: scale(0.75);
+ }
+ .mfp-arrow-left {
+ -webkit-transform-origin: 0;
+ transform-origin: 0;
+ }
+ .mfp-arrow-right {
+ -webkit-transform-origin: 100%;
+ transform-origin: 100%;
+ }
+ .mfp-container {
+ padding-left: $mfp-popup-padding-left-mobile;
+ padding-right: $mfp-popup-padding-left-mobile;
+ }
+}
+
+
+
+// IE7 support
+// Styles that make popup look nicier in old IE
+@if $mfp-IE7support {
+ .mfp-ie7 {
+ .mfp-img {
+ padding: 0;
+ }
+ .mfp-bottom-bar {
+ width: 600px;
+ left: 50%;
+ margin-left: -300px;
+ margin-top: 5px;
+ padding-bottom: 5px;
+ }
+ .mfp-container {
+ padding: 0;
+ }
+ .mfp-content {
+ padding-top: 44px;
+ }
+ .mfp-close {
+ top: 0;
+ right: 0;
+ padding-top: 0;
+ }
+ }
+}
diff --git a/_sass/vendor/magnific-popup/_settings.scss b/_sass/vendor/magnific-popup/_settings.scss
new file mode 100644
index 00000000..caaca026
--- /dev/null
+++ b/_sass/vendor/magnific-popup/_settings.scss
@@ -0,0 +1,46 @@
+////////////////////////
+// Settings //
+////////////////////////
+
+// overlay
+$mfp-overlay-color: #000; // Color of overlay screen
+$mfp-overlay-opacity: 0.8; // Opacity of overlay screen
+$mfp-shadow: 0 0 8px rgba(0, 0, 0, 0.6); // Shadow on image or iframe
+
+// spacing
+$mfp-popup-padding-left: 8px; // Padding from left and from right side
+$mfp-popup-padding-left-mobile: 6px; // Same as above, but is applied when width of window is less than 800px
+
+$mfp-z-index-base: 1040; // Base z-index of popup
+
+// controls
+$mfp-include-arrows: true; // Include styles for nav arrows
+$mfp-controls-opacity: 1; // Opacity of controls
+$mfp-controls-color: #fff; // Color of controls
+$mfp-controls-border-color: #fff; // Border color of controls
+$mfp-inner-close-icon-color: #fff; // Color of close button when inside
+$mfp-controls-text-color: #ccc; // Color of preloader and "1 of X" indicator
+$mfp-controls-text-color-hover: #fff; // Hover color of preloader and "1 of X" indicator
+$mfp-IE7support: true; // Very basic IE7 support
+
+// Iframe-type options
+$mfp-include-iframe-type: true; // Enable Iframe-type popups
+$mfp-iframe-padding-top: 40px; // Iframe padding top
+$mfp-iframe-background: #000; // Background color of iframes
+$mfp-iframe-max-width: 900px; // Maximum width of iframes
+$mfp-iframe-ratio: 9/16; // Ratio of iframe (9/16 = widescreen, 3/4 = standard, etc.)
+
+// Image-type options
+$mfp-include-image-type: true; // Enable Image-type popups
+$mfp-image-background: #444 !default;
+$mfp-image-padding-top: 40px; // Image padding top
+$mfp-image-padding-bottom: 40px; // Image padding bottom
+$mfp-include-mobile-layout-for-image: true; // Removes paddings from top and bottom
+
+// Image caption options
+$mfp-caption-title-color: #f3f3f3; // Caption title color
+$mfp-caption-subtitle-color: #bdbdbd; // Caption subtitle color
+.mfp-counter { font-family: $serif; } // Caption font family
+
+// A11y
+$mfp-use-visuallyhidden: false;
diff --git a/_sass/vendor/susy/_su.scss b/_sass/vendor/susy/_su.scss
new file mode 100644
index 00000000..83386adb
--- /dev/null
+++ b/_sass/vendor/susy/_su.scss
@@ -0,0 +1,4 @@
+// Su
+// ==
+
+@import 'susy/su';
diff --git a/_sass/vendor/susy/_susy.scss b/_sass/vendor/susy/_susy.scss
new file mode 100644
index 00000000..224e98ad
--- /dev/null
+++ b/_sass/vendor/susy/_susy.scss
@@ -0,0 +1,4 @@
+// Susy
+// ====
+
+@import 'susy/language/susy';
diff --git a/_sass/vendor/susy/_susyone.scss b/_sass/vendor/susy/_susyone.scss
new file mode 100644
index 00000000..5b934c68
--- /dev/null
+++ b/_sass/vendor/susy/_susyone.scss
@@ -0,0 +1,4 @@
+// Susy
+// ====
+
+@import 'susy/language/susyone';
diff --git a/_sass/vendor/susy/susy/_su.scss b/_sass/vendor/susy/susy/_su.scss
new file mode 100644
index 00000000..a1454157
--- /dev/null
+++ b/_sass/vendor/susy/susy/_su.scss
@@ -0,0 +1,7 @@
+// Su
+// ==
+
+@import "su/utilities";
+@import "su/settings";
+@import "su/validation";
+@import "su/grid";
diff --git a/_sass/vendor/susy/susy/language/_susy.scss b/_sass/vendor/susy/susy/language/_susy.scss
new file mode 100644
index 00000000..0ee9cae2
--- /dev/null
+++ b/_sass/vendor/susy/susy/language/_susy.scss
@@ -0,0 +1,24 @@
+// Susy Next Syntax
+// ================
+
+$susy-version: 2.1;
+
+@import "../su";
+@import "../output/float";
+
+@import "susy/settings";
+@import "susy/validation";
+@import "susy/grids";
+@import "susy/box-sizing";
+@import "susy/context";
+@import "susy/background";
+@import "susy/container";
+@import "susy/span";
+@import "susy/gutters";
+@import "susy/isolate";
+@import "susy/gallery";
+@import "susy/rows";
+@import "susy/margins";
+@import "susy/padding";
+@import "susy/bleed";
+@import "susy/breakpoint-plugin";
diff --git a/_sass/vendor/susy/susy/language/_susyone.scss b/_sass/vendor/susy/susy/language/_susyone.scss
new file mode 100644
index 00000000..a783d3a8
--- /dev/null
+++ b/_sass/vendor/susy/susy/language/_susyone.scss
@@ -0,0 +1,13 @@
+// ---------------------------------------------------------------------------
+// Partials
+
+$susy-version: 1.5;
+
+@import "susyone/settings";
+@import "susyone/functions";
+@import "susyone/grid";
+@import "susyone/isolation";
+@import "susyone/padding";
+@import "susyone/margin";
+@import "susyone/media";
+@import "susyone/background";
diff --git a/_sass/vendor/susy/susy/language/susy/_background.scss b/_sass/vendor/susy/susy/language/susy/_background.scss
new file mode 100644
index 00000000..d39dc721
--- /dev/null
+++ b/_sass/vendor/susy/susy/language/susy/_background.scss
@@ -0,0 +1,385 @@
+// Background Grid Syntax
+// ======================
+
+$susy-overlay-grid-head-exists: false;
+
+
+// Show Grid/s
+// -----------
+// Show grid on any element using either background or overlay.
+// - [$grid] :
+@mixin show-grid(
+ $grid: $susy
+) {
+ $inspect: $grid;
+ $_output: debug-get(output, $grid);
+
+ @include susy-inspect(show-grid, $inspect);
+ @if $_output == overlay and susy-get(debug image, $grid) != hide {
+ @include overlay-grid($grid);
+ } @else {
+ @include background-grid($grid);
+ }
+}
+
+@mixin show-grids(
+ $grid: $susy
+) {
+ @include show-grid($grid);
+}
+
+// Background Grid
+// ---------------
+// Show a grid background on any element.
+// - [$grid] :
+@mixin background-grid(
+ $grid: $susy
+) {
+ $inspect : $grid;
+ $_output : get-background($grid);
+
+ @if length($_output) > 0 {
+ $_flow: susy-get(flow, $grid);
+
+ $_image: ();
+ @each $name, $layer in map-get($_output, image) {
+ $_direction: if($name == baseline, to bottom, to to($_flow));
+ $_image: append($_image, linear-gradient($_direction, $layer), comma);
+ }
+ $_output: map-merge($_output, (image: $_image));
+
+ @include background-grid-output($_output...);
+ @include susy-inspect(background-grid, $inspect);
+ }
+}
+
+
+// Overlay Grid
+// ------------
+// Generate an icon to trigger grid-overlays on any given elements.
+// $grids... : [] [, ]*
+@mixin overlay-grid (
+ $grid: $susy
+) {
+ @if not($susy-overlay-grid-head-exists) {
+ @at-root head { @include overlay-head($grid); }
+ @at-root head:before { @include overlay-trigger; }
+ @at-root head:hover { @include overlay-trigger-hover; }
+ $susy-overlay-grid-head-exists: true !global;
+ }
+
+ head:hover ~ &,
+ head:hover ~ body & {
+ position: relative;
+ &:before {
+ @include grid-overlay-base;
+ @include background-grid($grid);
+ }
+ }
+}
+
+
+// [Private] Overlay Trigger
+// -------------------------
+@mixin overlay-trigger {
+ content: "|||";
+ display: block;
+ padding: 5px 10px;
+ font: {
+ family: sans-serif;
+ size: 16px;
+ weight: bold;
+ }
+}
+
+
+// [Private] Overlay Trigger Hover
+// -------------------------------
+@mixin overlay-trigger-hover {
+ background: rgba(white, .5);
+ color: red;
+}
+
+
+// [Private] Overlay Head
+// ----------------------
+// styles to create grid overlay toggle
+@mixin overlay-head (
+ $grid: $susy
+) {
+ $_toggle: debug-get(toggle, $grid);
+ $_horz: null;
+ $_vert: null;
+
+ @each $side in $_toggle {
+ $_horz: if($side == left or $side == right, $side, $_horz);
+ $_vert: if($side == top or $side == bottom, $side, $_vert);
+ }
+
+ display: block;
+ position: fixed;
+ #{$_horz}: 10px;
+ #{$_vert}: 10px;
+ z-index: 999;
+ color: #333;
+ background: rgba(white, .25);
+}
+
+
+// [Private] Grid Overlay Base
+// ---------------------------
+// Base styles for generating a grid overlay
+@mixin grid-overlay-base() {
+ position: absolute;
+ top: 0;
+ left: 0;
+ bottom: 0;
+ right: 0;
+ content: " ";
+ z-index: 998;
+}
+
+
+// Get Symmetrical Background
+// --------------------------
+// - $grid:
+@function get-background-sym(
+ $grid
+) {
+ $grid : parse-grid($grid);
+ $_gutters : susy-get(gutters, $grid);
+ $_column-width : susy-get(column-width, $grid);
+ $_math : susy-get(math, $grid);
+
+ $_color : debug-get(color);
+ $_trans : transparent;
+ $_light : lighten($_color, 15%);
+
+ $_end : 1 + $_gutters;
+ $_after : percentage(1/$_end);
+ $_stops : ();
+ $_size : span(1 $grid wide);
+
+ @if is-inside($grid) {
+ $_stops: $_color, $_light;
+ } @else if is-split($grid) {
+ $_split: $_gutters/2;
+ $_before: percentage($_split/$_end);
+ $_after: percentage((1 + $_split)/$_end);
+ $_stops: $_trans $_before, $_color $_before, $_light $_after, $_trans $_after;
+ } @else {
+ $_stops: $_color, $_light $_after, $_trans $_after;
+ }
+
+ @if $_math == static {
+ $_size: valid-column-math($_math, $_column-width) * $_end;
+ }
+
+ $_output: (
+ image: (columns: $_stops),
+ size: $_size,
+ );
+
+ @return $_output;
+}
+
+
+// Get Asymmetrical Inside
+// -----------------------
+// - $grid:
+@function get-asym-inside(
+ $grid
+) {
+ $grid : parse-grid($grid);
+ $_columns : susy-get(columns, $grid);
+
+ $_color : debug-get(color);
+ $_light : lighten($_color, 15%);
+ $_stops : ();
+
+ @for $location from 1 through susy-count($_columns) {
+ $this-stop: ();
+
+ @if $location == 1 {
+ $this-stop: append($this-stop, $_color, comma);
+ } @else {
+ $start: parse-span(1 at $location $grid);
+ $start: get-isolation($start);
+ $this-stop: append($this-stop, $_color $start, comma);
+ }
+
+ @if $location == susy-count($_columns) {
+ $this-stop: append($this-stop, $_light, comma);
+ } @else {
+ $_end: parse-span(1 at ($location + 1) $grid);
+ $_end: get-isolation($_end);
+ $this-stop: append($this-stop, $_light $_end, comma);
+ }
+
+ $_stops: join($_stops, $this-stop, comma);
+ }
+
+ @return $_stops;
+}
+
+
+// Get Asymmetrical Split
+// ----------------------
+// - $grid:
+@function get-asym-split(
+ $grid
+) {
+ $grid : parse-grid($grid);
+ $_columns : susy-get(columns, $grid);
+
+ $_color : debug-get(color);
+ $_light : lighten($_color, 15%);
+ $_stops : ();
+
+ @for $location from 1 through susy-count($_columns) {
+ $this-stop: ();
+
+ $start: parse-span(1 at $location $grid);
+ $start: get-isolation($start);
+ $this-stop: append($this-stop, transparent $start, comma);
+ $this-stop: append($this-stop, $_color $start, comma);
+
+ $_end: $start + span(1 at $location $grid);
+ $this-stop: append($this-stop, $_light $_end, comma);
+ $this-stop: append($this-stop, transparent $_end, comma);
+
+ $_stops: join($_stops, $this-stop, comma);
+ }
+
+ @return $_stops;
+}
+
+
+// Get Asymmetrical Outside
+// ------------------------
+// - $grid:
+@function get-asym-outside(
+ $grid
+) {
+ $grid : parse-grid($grid);
+ $_columns : susy-get(columns, $grid);
+
+ $_color : debug-get(color);
+ $_light : lighten($_color, 15%);
+ $_trans : transparent;
+ $_stops : ();
+
+ @for $location from 1 through susy-count($_columns) {
+ $this-stop: ();
+
+ @if $location == 1 {
+ $this-stop: append($this-stop, $_color, comma);
+ } @else {
+ $start: parse-span(1 at $location $grid);
+ $start: get-isolation($start);
+ $this-stop: append($this-stop, $_color $start, comma);
+ }
+
+ @if $location == susy-count($_columns) {
+ $this-stop: append($this-stop, $_light, comma);
+ } @else {
+ $gutter: get-span-width(first $location $grid);
+
+ $_end: parse-span(1 at ($location + 1) $grid);
+ $_end: get-isolation($_end);
+
+ $gutter: $_light $gutter, $_trans $gutter, $_trans $_end;
+ $this-stop: join($this-stop, $gutter, comma);
+ }
+
+ $_stops: join($_stops, $this-stop, comma);
+ }
+
+ @return $_stops;
+}
+
+
+// Get Asymmetrical Background
+// ---------------------------
+// - $grid:
+@function get-background-asym(
+ $grid
+) {
+ $_stops: ();
+
+ @if is-inside($grid) {
+ $_stops: get-asym-inside($grid);
+ } @else if is-split($grid) {
+ $_stops: get-asym-split($grid);
+ } @else {
+ $_stops: get-asym-outside($grid);
+ }
+
+ @return (image: (columns: $_stops));
+}
+
+
+// Get Background
+// --------------
+// - $grid:
+@function get-background(
+ $grid
+) {
+ $grid : parse-grid($grid);
+ $_show : susy-get(debug image, $grid);
+ $_return : ();
+
+ @if $_show and $_show != 'hide' {
+ $_columns: susy-get(columns, $grid);
+
+ @if $_show != 'show-baseline' {
+ $_sym: is-symmetrical($_columns);
+ $_return: if($_sym, get-background-sym($grid), get-background-asym($grid));
+ $_return: map-merge($_return, (clip: content-box));
+ }
+
+ @if $_show != 'show-columns'
+ and global-variable-exists(base-line-height)
+ and type-of($base-line-height) == 'number'
+ and not unitless($base-line-height) {
+ $_color: variable-exists('grid-background-baseline-color');
+ $_color: if($_color, $grid-background-baseline-color, #000);
+
+ $_image: map-get($_return, image);
+ $_size: map-get($_return, size);
+ $_baseline: (baseline: ($_color 1px, transparent 1px));
+ $_baseline-size: 100% $base-line-height;
+
+ $_return: map-merge($_return, (
+ image: if($_image, map-merge($_image, $_baseline), $_baseline),
+ size: if($_size, ($_size, $_baseline-size), $_baseline-size),
+ ));
+
+ @if $_show == 'show' {
+ $_clip: map-get($_return, clip);
+ $_return: map-merge($_return, (clip: join($_clip, border-box, comma)));
+ }
+ } @else if $_show == 'show-baseline' {
+ @warn 'Please provide a $base-line-height with the desired height and units';
+ }
+ }
+
+ @if map-get($_return, image) {
+ $_return: map-merge($_return, (flow: susy-get(flow, $grid)));
+ }
+
+ @return $_return;
+}
+
+
+// Get Debug
+// ---------
+// Return the value of a debug setting
+// - $key:
+@function debug-get(
+ $key,
+ $grid: $susy
+) {
+ $key: join(debug, $key, space);
+ @return susy-get($key, $grid);
+}
diff --git a/_sass/vendor/susy/susy/language/susy/_bleed.scss b/_sass/vendor/susy/susy/language/susy/_bleed.scss
new file mode 100644
index 00000000..8ef59743
--- /dev/null
+++ b/_sass/vendor/susy/susy/language/susy/_bleed.scss
@@ -0,0 +1,200 @@
+// Bleed Syntax
+// ============
+
+// Bleed
+// -----
+// Add negative margins, and equal positive padding to create bleed.
+// - $bleed :
+@mixin bleed(
+ $bleed: 0 gutter()
+) {
+ $inspect : $bleed;
+ $output : get-bleed($bleed);
+
+ @if susy-get(global-box-sizing) != content-box {
+ $output: map-merge((box-sizing: content-box), $output);
+ }
+
+ @include susy-inspect(bleed, $inspect);
+ @include output($output);
+}
+
+
+// Bleed-x
+// -------
+// Shortcut for horizontal bleed.
+// - $bleed :
+@mixin bleed-x(
+ $bleed: gutter()
+) {
+ $bleed : parse-span($bleed);
+ $trbl : susy-get(span, $bleed);
+
+ @if length($trbl) == 1 {
+ $bleed: map-merge($bleed, (span: 0 nth($trbl, 1)));
+ } @else if length($trbl) == 2 {
+ $bleed: map-merge($bleed, (span: 0 nth($trbl, 2) 0 nth($trbl, 1)));
+ } @else {
+ @warn 'bleed-x only takes 2 lengths, but #{length($trbl)} were passed.';
+ }
+
+ @include bleed($bleed);
+}
+
+
+// Bleed-y
+// -------
+// Shortcut for vertical bleed.
+// - $bleed :
+@mixin bleed-y(
+ $bleed: if(function-exists(rhythm), rhythm(1), 1em)
+) {
+ $bleed : parse-span($bleed);
+ $trbl : susy-get(span, $bleed);
+
+ @if length($trbl) == 1 {
+ $bleed: map-merge($bleed, (span: nth($trbl, 1) 0));
+ } @else if length($trbl) == 2 {
+ $bleed: map-merge($bleed, (span: nth($trbl, 1) 0 nth($trbl, 2) 0));
+ } @else {
+ @warn 'bleed-y only takes 2 lengths, but #{length($trbl)} were passed.';
+ }
+
+ @include bleed($bleed);
+}
+
+
+// Get Bleed
+// ---------
+// Return bleed output values
+// - $bleed:
+@function get-bleed(
+ $bleed
+) {
+ $bleed : map-merge((spread: wide), parse-span($bleed));
+ $trbl : susy-get(span, $bleed);
+ $short : null;
+ $output : ();
+
+ @for $i from 1 through length($trbl) {
+ $this: nth($trbl, $i);
+ $new: ();
+ $margin: null;
+ $padding: null;
+ $padding-x: null;
+
+ @if $this > 0 {
+ $this: map-merge($bleed, (span: $this));
+ $margin: span($this);
+ $padding: $margin;
+ $padding-x: $padding;
+ }
+
+ @if $margin and $margin > 0 {
+ $margin: - $margin;
+
+ @if is-inside($this) {
+ $gutter: gutter($this);
+ $join: if($gutter and comparable($padding, $gutter), true, false);
+ $padding-x: if($join and $padding > 0, $padding + $gutter, $padding);
+ }
+ }
+
+ @if $i == 1 {
+ $new: (
+ margin-top: $margin,
+ padding-top: $padding,
+ margin-right: $margin,
+ padding-right: $padding-x,
+ margin-bottom: $margin,
+ padding-bottom: $padding,
+ margin-left: $margin,
+ padding-left: $padding-x,
+ );
+ } @else if $i == 2 {
+ $new: (
+ margin-right: $margin,
+ padding-right: $padding-x,
+ margin-left: $margin,
+ padding-left: $padding-x,
+ );
+ } @else if $i == 3 {
+ $new: (
+ margin-bottom: $margin,
+ padding-bottom: $padding,
+ );
+ } @else if $i == 4 {
+ $new: (
+ margin-left: $margin,
+ padding-left: $padding-x,
+ );
+ }
+
+ $output: map-merge($output, $new);
+ }
+
+ @each $prop, $value in $output {
+ $output: if($value == 0, map-merge($output, ($prop: null)), $output);
+ }
+
+ @return bleed-shorthand($output);
+}
+
+// Bleed Shorthand
+// ---------------
+// Convert bleed output into shorthand when possible.
+// - $bleed:
+@function bleed-shorthand(
+ $bleed
+) {
+ $margin: ();
+ $padding: ();
+ $return: ();
+
+ @each $key, $value in $bleed {
+ @if str-index($key, margin) {
+ $margin: map-merge($margin, ($key: $value));
+ } @else if str-index($key, padding) > 0 {
+ $padding: map-merge($padding, ($key: $value));
+ }
+ }
+
+ $props: (
+ margin: $margin,
+ padding: $padding,
+ );
+
+ @each $name, $map in $props {
+ $four: if(length(map-keys($map)) == 4, true, false);
+ $null: if(index(map-values($map), null), true, false);
+
+ @if $four and not($null) {
+ $top: map-get($map, '#{$name}-top');
+ $right: map-get($map, '#{$name}-right');
+ $bottom: map-get($map, '#{$name}-bottom');
+ $left: map-get($map, '#{$name}-left');
+
+ $tb: if($top == $bottom, $top, null);
+ $rl: if($right == $left, $right, null);
+ $all: if($tb == $rl, $tb, null);
+
+ $new: if($all, $all, null);
+
+ @if not($new) {
+ @if $tb and $rl {
+ $new: $tb $rl;
+ } @else if $rl {
+ $new: $top $rl $bottom;
+ } @else {
+ $new: $top $right $bottom $left;
+ }
+ }
+
+ $return: map-merge($return, ($name: $new));
+ } @else {
+ $return: map-merge($return, $map);
+ }
+ }
+
+ @return $return;
+}
diff --git a/_sass/vendor/susy/susy/language/susy/_box-sizing.scss b/_sass/vendor/susy/susy/language/susy/_box-sizing.scss
new file mode 100644
index 00000000..f551241d
--- /dev/null
+++ b/_sass/vendor/susy/susy/language/susy/_box-sizing.scss
@@ -0,0 +1,47 @@
+// Susy Box Sizing
+// =================
+
+// Global Box Sizing
+// -----------------
+// Set a box model globally on all elements.
+// - [$box]: border-box | content-box
+// - [$inherit]: true | false
+@mixin global-box-sizing(
+ $box: susy-get(global-box-sizing),
+ $inherit: false
+) {
+ $inspect: $box;
+
+ @if $inherit {
+ @at-root {
+ html { @include output((box-sizing: $box)); }
+ *, *:before, *:after { box-sizing: inherit; }
+ }
+ } @else {
+ *, *:before, *:after { @include output((box-sizing: $box)); }
+ }
+
+ @include susy-inspect(global-box-sizing, $inspect);
+ @include update-box-model($box);
+}
+
+// Border Box Sizing
+// -----------------
+// A legacy shortcut...
+// - [$inherit]: true | false
+@mixin border-box-sizing(
+ $inherit: false
+) {
+ @include global-box-sizing(border-box, $inherit);
+}
+
+// Update Box Model
+// ----------------
+// PRIVATE: Updates global box model setting
+@mixin update-box-model(
+ $box
+) {
+ @if $box != susy-get(global-box-sizing) {
+ @include susy-set(global-box-sizing, $box);
+ }
+}
diff --git a/_sass/vendor/susy/susy/language/susy/_breakpoint-plugin.scss b/_sass/vendor/susy/susy/language/susy/_breakpoint-plugin.scss
new file mode 100644
index 00000000..30de288b
--- /dev/null
+++ b/_sass/vendor/susy/susy/language/susy/_breakpoint-plugin.scss
@@ -0,0 +1,185 @@
+// Breakpoint Integration
+// ======================
+
+$susy-media: () !default;
+$susy-media-fallback: false !default;
+
+$_susy-media-context: ();
+
+
+// Susy Breakpoint
+// ---------------
+// Change grids at different media query breakpoints.
+// - $query : [] | |
+// - $layout :
+// - $no-query : |
+@mixin susy-breakpoint(
+ $query,
+ $layout: false,
+ $no-query: $susy-media-fallback
+) {
+ @include susy-media-router($query, $no-query) {
+ @if $layout {
+ @include with-layout($layout) {
+ @content;
+ }
+ } @else {
+ @content;
+ }
+ }
+}
+
+
+// Susy Media
+// ----------
+// - $query: [] |
+// - $no-query: |
+@mixin susy-media(
+ $query,
+ $no-query: $susy-media-fallback
+) {
+ $old-context: $_susy-media-context;
+ $name: if(map-has-key($susy-media, $query), $query, null);
+ $query: susy-get-media($query);
+ $query: susy-parse-media($query);
+
+ @include susy-media-context($query, $name);
+
+ @if $no-query and type-of($no-query) != string {
+ @content;
+ } @else {
+ @media #{susy-render-media($query)} {
+ @content;
+ }
+
+ @if type-of($no-query) == string {
+ #{$no-query} & {
+ @content;
+ }
+ }
+ }
+
+ @include susy-media-context($old-context, $clean: true);
+}
+
+
+// Media Router
+// ------------
+// Rout media arguments to the correct mixin.
+@mixin susy-media-router(
+ $query,
+ $no-query: $susy-media-fallback
+) {
+ @if susy-support(breakpoint, (mixin: breakpoint), $warn: false) {
+ @include breakpoint($query, $no-query) {
+ @content;
+ }
+ } @else {
+ @include susy-media($query, $no-query) {
+ @content;
+ }
+ }
+}
+
+
+// Update Context
+// -------------
+// Set the new media context
+@mixin susy-media-context(
+ $query,
+ $name: null,
+ $clean: false
+) {
+ $query: map-merge((name: $name), $query);
+
+ @if $clean {
+ $_susy-media-context: $query !global;
+ } @else {
+ $_susy-media-context: map-merge($_susy-media-context, $query) !global;
+ }
+}
+
+
+// Media Context
+// -------------
+// Return the full media context, or a single media property (e.g. min-width)
+@function susy-media-context(
+ $property: false
+) {
+ @if $property {
+ @return map-get($_susy-media-context, $property);
+ } @else {
+ @return $_susy-media-context;
+ }
+}
+
+
+// Get Media
+// ---------
+// Return a named media-query from $susy-media.
+// - $name:
+@function susy-get-media(
+ $name
+) {
+ @if map-has-key($susy-media, $name) {
+ $map-value: map-get($susy-media, $name);
+ @if ($name == $map-value) {
+ $name: $map-value;
+ } @else {
+ $name: susy-get-media($map-value);
+ }
+ }
+
+ @return $name;
+}
+
+
+// Render Media
+// ------------
+// Build a media-query string from various media settings
+@function susy-render-media(
+ $query
+) {
+ $output: null;
+ @each $property, $value in $query {
+ $string: null;
+
+ @if $property == media {
+ $string: $value;
+ } @else {
+ $string: '(#{$property}: #{$value})';
+ }
+
+ $output: if($output, '#{$output} and #{$string}', $string);
+ }
+
+ @return $output;
+}
+
+
+// Parse Media
+// -----------
+// Return parsed media-query settings based on shorthand
+@function susy-parse-media(
+ $query
+) {
+ $mq: null;
+ @if type-of($query) == map {
+ $mq: $query;
+ } @else if type-of($query) == number {
+ $mq: (min-width: $query);
+ } @else if type-of($query) == list and length($query) == 2 {
+ @if type-of(nth($query, 1)) == number {
+ $mq: (
+ min-width: min($query...),
+ max-width: max($query...),
+ );
+ } @else {
+ $mq: (nth($query, 1): nth($query, 2));
+ }
+ } @else {
+ $mq: (media: '#{$query}');
+ }
+
+ @return $mq;
+}
diff --git a/_sass/vendor/susy/susy/language/susy/_container.scss b/_sass/vendor/susy/susy/language/susy/_container.scss
new file mode 100644
index 00000000..e5f4a858
--- /dev/null
+++ b/_sass/vendor/susy/susy/language/susy/_container.scss
@@ -0,0 +1,81 @@
+// Container Syntax
+// ================
+
+// Container [mixin]
+// -----------------
+// Set a container element
+// - [$layout] :
+@mixin container(
+ $layout: $susy
+) {
+ $inspect : $layout;
+ $layout : parse-grid($layout);
+
+ $_width : get-container-width($layout);
+ $_justify : parse-container-position(susy-get(container-position, $layout));
+ $_property : if(susy-get(math, $layout) == static, width, max-width);
+
+ $_box : susy-get(box-sizing, $layout);
+
+ @if $_box {
+ @include output((box-sizing: $_box));
+ }
+
+ @include susy-inspect(container, $inspect);
+ @include float-container($_width, $_justify, $_property);
+ @include show-grid($layout);
+}
+
+// Container [function]
+// --------------------
+// Return container width
+// - [$layout] :
+@function container(
+ $layout: $susy
+) {
+ $layout: parse-grid($layout);
+ @return get-container-width($layout);
+}
+
+// Get Container Width
+// -------------------
+// Calculate the container width
+// - [$layout]:
+@function get-container-width(
+ $layout: $susy
+) {
+ $layout : parse-grid($layout);
+ $_width : susy-get(container, $layout);
+ $_column-width : susy-get(column-width, $layout);
+ $_math : susy-get(math, $layout);
+
+ @if not($_width) or $_width == auto {
+ @if valid-column-math($_math, $_column-width) {
+ $_columns : susy-get(columns, $layout);
+ $_gutters : susy-get(gutters, $layout);
+ $_spread : if(is-split($layout), wide, narrow);
+ $_width : susy-sum($_columns, $_gutters, $_spread) * $_column-width;
+ } @else {
+ $_width: 100%;
+ }
+ }
+
+ @return $_width;
+}
+
+// Parse Container Position
+// ------------------------
+// Parse the $container-position into margin values.
+// - [$justify] : left | center | right | []
+@function parse-container-position(
+ $justify: map-get($susy-defaults, container-position)
+) {
+ $_return: if($justify == left, 0, auto) if($justify == right, 0, auto);
+
+ @if not(index(left right center, $justify)) {
+ $_return: nth($justify, 1);
+ $_return: $_return if(length($justify) > 1, nth($justify, 2), $_return);
+ }
+
+ @return $_return;
+}
diff --git a/_sass/vendor/susy/susy/language/susy/_context.scss b/_sass/vendor/susy/susy/language/susy/_context.scss
new file mode 100644
index 00000000..52e12a6c
--- /dev/null
+++ b/_sass/vendor/susy/susy/language/susy/_context.scss
@@ -0,0 +1,36 @@
+// Context Syntax
+// ==============
+
+// Nested [function]
+// -----------------
+// Return a subset grid for nested context.
+// - $context :
+@function nested(
+ $context
+) {
+ $context : parse-span($context);
+ $span : susy-get(span, $context);
+ $location : get-location($context);
+ $columns : susy-get(columns, $context);
+
+ @return susy-slice($span, $location, $columns);
+}
+
+// Nested [mixin]
+// --------------
+// Use a subset grid for a nested context
+// - $context :
+// - @content :
+@mixin nested(
+ $context
+) {
+ $inspect : $context;
+ $context : parse-span($context);
+ $old : susy-get(columns);
+ $susy : map-merge($susy, (columns: nested($context))) !global;
+
+ @include susy-inspect(nested, $inspect);
+ @content;
+
+ $susy : map-merge($susy, (columns: $old)) !global;
+}
diff --git a/_sass/vendor/susy/susy/language/susy/_gallery.scss b/_sass/vendor/susy/susy/language/susy/_gallery.scss
new file mode 100644
index 00000000..e59b9a0c
--- /dev/null
+++ b/_sass/vendor/susy/susy/language/susy/_gallery.scss
@@ -0,0 +1,94 @@
+// Gallery Syntax
+// ==============
+
+// Gallery
+// -------
+// Create an isolated gallery
+// - $span :
+// - [$selector] : child | of-type
+@mixin gallery(
+ $span,
+ $selector: child
+) {
+ $inspect : $span;
+ $span : parse-span($span);
+ $span : map-merge($span, (location: 1));
+
+ $n : susy-get(span, $span);
+ $columns : susy-get(columns, $span);
+ $context : susy-count($columns);
+ $flow : susy-get(flow, $span);
+
+ $inside : is-inside($span);
+ $from : from($flow);
+ $line : floor($context / $n);
+ $symmetrical : is-symmetrical($columns);
+
+ $output: (
+ width : null,
+ float : from,
+ margin-before : null,
+ margin-after : null,
+ padding-before : null,
+ padding-after : null,
+ flow : $flow,
+ );
+
+ @if $inside {
+ $gutters: get-gutters($span);
+ $output: map-merge($output, (
+ padding-before: map-get($gutters, before),
+ padding-after: map-get($gutters, after),
+ ));
+ }
+
+ @if $symmetrical {
+ $output: map-merge($output, (width: get-span-width($span)));
+ }
+
+ $box : susy-get(box-sizing, $span);
+ $global-box : if(susy-get(global-box-sizing) == 'border-box', true, false);
+
+ @include susy-inspect(gallery, $inspect);
+
+ // Collective Output
+ @if $box == border-box or ($inside and not($box) and not($global-box)) {
+ @include output((box-sizing: border-box));
+ } @else if $box == content-box {
+ @include output((box-sizing: content-box));
+ }
+
+ @include float-span-output($output...);
+
+ // Individual Loop
+ @for $item from 1 through $line {
+ $nth: '#{$line}n + #{$item}';
+ &:nth-#{$selector}(#{$nth}) {
+ // Individual Prep
+ $output: (
+ width : if($symmetrical, null, get-span-width($span)),
+ float : null,
+ margin-before : get-isolation($span),
+ margin-after : -100%,
+ padding-before : null,
+ padding-after : null,
+ flow : $flow,
+ );
+
+ // Individual Output
+ @include float-span-output($output...);
+
+ @if get-edge($span) == first {
+ @include break;
+ @include first($span);
+ } @else {
+ @include nobreak;
+ }
+
+ // Individual Location Increment
+ $location: get-location($span) + $n;
+ $location: if($location > $context, 1, $location);
+ $span: map-merge($span, (location: $location));
+ }
+ }
+}
diff --git a/_sass/vendor/susy/susy/language/susy/_grids.scss b/_sass/vendor/susy/susy/language/susy/_grids.scss
new file mode 100644
index 00000000..4fa72edc
--- /dev/null
+++ b/_sass/vendor/susy/susy/language/susy/_grids.scss
@@ -0,0 +1,64 @@
+// Grid Syntax
+// ===========
+
+
+// Layout
+// ------
+// Set a new layout using a shorthand
+// - $layout:
+// - $clean: boolean
+@mixin layout(
+ $layout,
+ $clean: false
+) {
+ $inspect : $layout;
+ $susy : _get-layout($layout, $clean) !global;
+
+ @include susy-inspect(layout, $inspect);
+}
+
+
+// Use Grid
+// --------
+// Use an arbitrary layout for a section of code
+// - $layout:
+// - $clean: boolean
+@mixin with-layout(
+ $layout,
+ $clean: false
+) {
+ $inspect : $layout;
+ $old : $susy;
+ $susy : _get-layout($layout, $clean) !global;
+
+ @include susy-inspect(with-layout, $inspect);
+
+ @content;
+
+ $susy: $old !global;
+}
+
+
+// Layout
+// ------
+// Return a parsed layout map based on shorthand syntax
+// - $layout:
+@function layout(
+ $layout: $susy
+) {
+ @return parse-grid($layout);
+}
+
+
+// Get Layout
+// ----------
+// Return a new layout based on current and given settings
+// - $layout:
+// - $clean: boolean
+@function _get-layout(
+ $layout,
+ $clean: false
+) {
+ $layout: layout($layout);
+ @return if($clean, $layout, _susy-deep-merge($susy, $layout));
+}
diff --git a/_sass/vendor/susy/susy/language/susy/_gutters.scss b/_sass/vendor/susy/susy/language/susy/_gutters.scss
new file mode 100644
index 00000000..efe7ac20
--- /dev/null
+++ b/_sass/vendor/susy/susy/language/susy/_gutters.scss
@@ -0,0 +1,154 @@
+// Gutter Syntax
+// =============
+
+
+// Gutters
+// -------
+// Set gutters on an element.
+// - [$span] :
+@mixin gutters(
+ $span: $susy
+) {
+ $inspect : $span;
+ $span : parse-gutters($span);
+ $_gutters : get-gutters($span);
+
+ $_output: (
+ before: map-get($_gutters, before),
+ after: map-get($_gutters, after),
+ flow: susy-get(flow, $span),
+ );
+
+ @include susy-inspect(gutters, $inspect);
+
+ @if is-inside($span) {
+ @include padding-output($_output...);
+ } @else {
+ @include margin-output($_output...);
+ }
+}
+
+@mixin gutter(
+ $span: $susy
+) {
+ @include gutters($span);
+}
+
+
+// Gutter
+// ------
+// Return the width of a gutter.
+// - [$span] :
+@function gutter(
+ $span: $susy
+) {
+ $span: parse-gutters($span);
+
+ $_gutters: get-gutters($span);
+ $_gutters: map-get($_gutters, before) or map-get($_gutters, after);
+
+ @return $_gutters;
+}
+
+@function gutters(
+ $span: $susy
+) {
+ @return gutter($span);
+}
+
+
+// Get Gutter Width
+// ----------------
+// Return gutter width.
+// - [$context]:
+@function get-gutter-width(
+ $context: $susy
+) {
+ $context : parse-gutters($context);
+
+ $_gutters : susy-get(gutters, $context);
+ $_gutter : susy-get(gutter-override, $context);
+
+ @if $_gutters and ($_gutters > 0) and not($_gutter) {
+ $_column-width: susy-get(column-width, $context);
+ $_math: gutter-math($context);
+ @if $_math == static {
+ $_gutter: $_gutters * valid-column-math($_math, $_column-width);
+ } @else {
+ $_columns : susy-get(columns, $context);
+ $_spread : if(is-split($context), wide, susy-get(spread, $context));
+ $_gutter : percentage($_gutters / susy-sum($_columns, $_gutters, $_spread));
+ }
+ }
+
+ $_gutter: if($_gutter == 'no-gutters' or $_gutter == 'no-gutter', null, $_gutter);
+
+ @return $_gutter;
+}
+
+
+// Get Gutters
+// -----------
+// Return before and after gutter values.
+// - [$context]:
+@function get-gutters(
+ $context: $susy
+) {
+ $context : parse-gutters($context);
+
+ $_gutter-position : susy-get(gutter-position, $context);
+ $_gutter : get-gutter-width($context);
+
+ $_return : (before: null, after: null);
+
+ @if is-split($context) and $_gutter {
+ $_gutter: $_gutter / 2;
+ $_return: map-merge($_return, (before: $_gutter, after: $_gutter));
+ } @else {
+ $_return: map-merge($_return, ($_gutter-position: $_gutter));
+ }
+
+ @return $_return;
+}
+
+
+// Is Inside
+// ---------
+// Returns true if gutters are inside.
+// $context:
+@function is-inside(
+ $context
+) {
+ $_inside: inside inside-static;
+ $_gutter-position: susy-get(gutter-position, $context);
+
+ @return if(index($_inside, $_gutter-position), true, false);
+}
+
+
+// Is Split
+// --------
+// Returns true if gutters are split.
+// $context:
+@function is-split(
+ $context
+) {
+ $_split: split inside inside-static;
+ $_gutter-position: susy-get(gutter-position, $context);
+
+ @return if(index($_split, $_gutter-position), true, false);
+}
+
+
+// Gutter Math
+// -----------
+// Return the math to use for gutter calculations
+// $context:
+@function gutter-math(
+ $context: $susy
+) {
+ $_return : susy-get(math, $context);
+ $_return : if(susy-get(gutter-position, $context) == inside-static, static, $_return);
+
+ @return $_return;
+}
diff --git a/_sass/vendor/susy/susy/language/susy/_isolate.scss b/_sass/vendor/susy/susy/language/susy/_isolate.scss
new file mode 100644
index 00000000..7ddfd7f5
--- /dev/null
+++ b/_sass/vendor/susy/susy/language/susy/_isolate.scss
@@ -0,0 +1,77 @@
+// Isolation Syntax
+// ================
+
+
+// Isolate [Mixin]
+// ---------------
+// Set isolation as an override.
+// - $location:
+@mixin isolate(
+ $isolate: 1
+) {
+ $inspect: $isolate;
+
+ $output: (
+ push: isolate($isolate),
+ flow: susy-get(flow, $isolate),
+ );
+
+ @include susy-inspect(isolate, $inspect);
+ @include isolate-output($output...);
+}
+
+
+// Isolate [function]
+// ------------------
+// Return an isolation offset width.
+// - $location:
+@function isolate(
+ $isolate: 1
+) {
+ $isolate: parse-span($isolate);
+ $isolation: susy-get(span, $isolate);
+
+ @if $isolation and not(get-location($isolate)) {
+ $new: (
+ span: null,
+ location: $isolation,
+ );
+ $isolate: map-merge($isolate, $new);
+ }
+
+ @return get-isolation($isolate);
+}
+
+
+// Get Isolation
+// -------------
+// Return the isolation offset width
+// - $input:
+@function get-isolation(
+ $input
+) {
+ $location : get-location($input);
+ $columns : susy-get(columns, $input);
+ $width : null;
+
+ @if type-of($location) == number and not(unitless($location)) {
+ $width: $location;
+ } @else if $location {
+ $push: $location - 1;
+ @if $push > 0 {
+ $push: map-merge($input, (
+ span: $push,
+ location: 1,
+ spread: wide,
+ ));
+ $width: get-span-width($push);
+ }
+ }
+
+ @if susy-get(gutter-position, $input) == split
+ and susy-get(gutters, $input) > 0 {
+ $width: if($width == null, gutters($input), $width + gutters($input));
+ }
+
+ @return $width or 0;
+}
diff --git a/_sass/vendor/susy/susy/language/susy/_margins.scss b/_sass/vendor/susy/susy/language/susy/_margins.scss
new file mode 100644
index 00000000..cb368399
--- /dev/null
+++ b/_sass/vendor/susy/susy/language/susy/_margins.scss
@@ -0,0 +1,94 @@
+// Margin Syntax
+// =============
+
+// Pre
+// ---
+// Add spanning-margins before an element.
+// - $span :
+@mixin pre(
+ $span
+) {
+ $inspect: $span;
+ $span : map-merge((spread: wide), parse-span($span));
+ $flow : susy-get(flow, $span);
+ $split : if(susy-get(gutter-position, $span) == split, true, false);
+ $gutter : gutter($span);
+ $span : span($span);
+ $width : if($split and $gutter, $span + $gutter, $span);
+
+ @include susy-inspect(pre, $inspect);
+ @include margin-output($width, null, $flow);
+}
+
+// Post
+// ----
+// Add spanning-margins after an element.
+// - $span :
+@mixin post(
+ $span
+) {
+ $inspect : $span;
+ $span : map-merge((spread: wide), parse-span($span));
+ $flow : susy-get(flow, $span);
+ $split : if(susy-get(gutter-position, $span) == split, true, false);
+ $width : if($split, span($span) + gutter($span), span($span));
+
+ @include susy-inspect(post, $inspect);
+ @include margin-output(null, $width, $flow);
+}
+
+// Push
+// ----
+// Simple synonymn for pre.
+// - $span :
+@mixin push(
+ $span
+) {
+ @include pre($span);
+}
+
+// Pull
+// ----
+// Add negative spanning-margins before an element.
+// - $span :
+@mixin pull(
+ $span
+) {
+ $inspect : $span;
+ $span : map-merge((spread: wide), parse-span($span));
+ $flow : susy-get(flow, $span);
+ $split : if(susy-get(gutter-position, $span) == split, true, false);
+ $width : if($split, 0 - span($span) + gutter($span), 0 - span($span));
+
+ @include susy-inspect(pull, $inspect);
+ @include margin-output($width, null, $flow);
+}
+
+// Squish
+// ------
+// Add spanning-margins before and after an element.
+// - $pre :
+// - [$post] :
+@mixin squish(
+ $pre,
+ $post: false
+) {
+ $inspect : ($pre, $post);
+ $pre : map-merge((spread: wide), parse-span($pre));
+
+ @if $post {
+ $post: map-merge((spread: wide), parse-span($post));
+ } @else {
+ $span: susy-get(span, $pre);
+ @if length($span) > 1 {
+ $pre: map-merge($pre, (span: nth($span, 1)));
+ $post: map-merge($pre, (span: nth($span, 2)));
+ } @else {
+ $post: $pre;
+ }
+ }
+
+ @include susy-inspect(squish, $inspect);
+ @include pre($pre);
+ @include post($post);
+}
diff --git a/_sass/vendor/susy/susy/language/susy/_padding.scss b/_sass/vendor/susy/susy/language/susy/_padding.scss
new file mode 100644
index 00000000..cdf75c8b
--- /dev/null
+++ b/_sass/vendor/susy/susy/language/susy/_padding.scss
@@ -0,0 +1,74 @@
+// Padding Syntax
+// ==============
+
+// Prefix
+// ------
+// Add spanning-padding before an element.
+// - $span :
+@mixin prefix(
+ $span
+) {
+ $inspect : $span;
+ $span : map-merge((spread: wide), parse-span($span));
+ $flow : susy-get(flow, $span);
+ $width : span($span);
+
+ @if is-inside($span) {
+ $gutter: gutter($span);
+ $width: if($gutter and comparable($width, $gutter), $width + $gutter, $width);
+ }
+
+ @include susy-inspect(prefix, $inspect);
+ @include padding-output($width, null, $flow);
+}
+
+// Suffix
+// ------
+// Add spanning-padding after an element.
+// - $span :
+@mixin suffix(
+ $span
+) {
+ $inspect : $span;
+ $span : map-merge((spread: wide), parse-span($span));
+ $flow : susy-get(flow, $span);
+ $width : span($span);
+
+ @if is-inside($span) {
+ $gutter: gutter($span);
+ $width: if($gutter and comparable($width, $gutter), $width + $gutter, $width);
+ }
+
+ @include susy-inspect(suffix, $inspect);
+ @include padding-output(null, $width, $flow);
+}
+
+// Pad
+// ---
+// Add spanning-padding before and after an element.
+// - $pre :
+// - [$post] :
+@mixin pad(
+ $pre,
+ $post: false
+) {
+ $inspect : ($pre, $post);
+ $pre : map-merge((spread: wide), parse-span($pre));
+
+ @if $post {
+ $post: map-merge((spread: wide), parse-span($post));
+ } @else {
+ $span: susy-get(span, $pre);
+ @if length($span) > 1 {
+ $pre: map-merge($pre, (span: nth($span, 1)));
+ $post: map-merge($pre, (span: nth($span, 2)));
+ } @else {
+ $post: $pre;
+ }
+ }
+
+ @include susy-inspect(pad, $inspect);
+ @include prefix($pre);
+ @include suffix($post);
+
+}
diff --git a/_sass/vendor/susy/susy/language/susy/_rows.scss b/_sass/vendor/susy/susy/language/susy/_rows.scss
new file mode 100644
index 00000000..d7264313
--- /dev/null
+++ b/_sass/vendor/susy/susy/language/susy/_rows.scss
@@ -0,0 +1,138 @@
+// Row Start & End
+// ===============
+
+// Break
+// -----
+// Apply to any element that should force a line break.
+@mixin break {
+ @include output((clear: both));
+}
+
+
+// NoBreak
+// -------
+// Cancel the break() effect, e.g. when using media queries.
+@mixin nobreak {
+ @include output((clear: none));
+}
+
+
+// Full
+// ----
+// - [$context]:
+@mixin full(
+ $context: $susy
+) {
+ $inspect : $context;
+ @include susy-inspect(full, $inspect);
+ @include span(full of parse-grid($context) break);
+}
+
+
+// First
+// -----
+// - [$context]:
+@mixin first(
+ $context: $susy
+) {
+ $inspect : $context;
+ $context : parse-grid($context);
+ $flow : susy-get(flow, $context);
+
+ @include susy-inspect(first, $inspect);
+ @if not(is-split($context)) {
+ @include float-first($flow);
+ }
+}
+
+@mixin alpha(
+ $context: $susy
+) {
+ @include first($context);
+}
+
+
+// Last
+// ----
+// - [$context]:
+@mixin last(
+ $context: $susy
+) {
+ $inspect : $context;
+ $context : parse-grid($context);
+
+ @include susy-inspect(last, $inspect);
+
+ $output: (
+ flow: susy-get(flow, $context),
+ last-flow: susy-get(last-flow, $context),
+ margin: if(is-split($context), null, 0),
+ );
+
+ @include float-last($output...);
+}
+
+@mixin omega(
+ $context: $susy
+) {
+ @include last($context);
+}
+
+
+// Get Edge
+// --------
+// Calculate edge value based on location, if possible
+@function get-edge(
+ $span
+) {
+ $span : parse-span($span);
+ $edge : susy-get(edge, $span);
+
+ @if not($edge) {
+ $count: susy-count(susy-get(columns, $span));
+ $location: susy-get(location, $span);
+ $n: susy-get(span, $span);
+
+ $number: if(type-of($location) == number, true, false);
+ $index: if($number and unitless($location), true, false);
+
+ @if $n == $count {
+ $edge: full;
+ } @else if $location and $n and $index {
+ @if $location == 1 {
+ $edge: if($n == $count, full, first);
+ } @else if $location + $n - 1 == $count {
+ $edge: last;
+ }
+ }
+ }
+
+ @if $edge == alpha or $edge == omega {
+ $edge: if($edge == alpha, first, last);
+ }
+
+ @return $edge;
+}
+
+
+// Get Location
+// ------------
+// Calculate location value based on edge, if possible
+@function get-location(
+ $span
+) {
+ $span : parse-span($span);
+ $location : susy-get(location, $span);
+ $edge : get-edge($span);
+ $n : susy-get(span, $span);
+
+ @if $edge and not($location) and type-of($n) == number and unitless($n) {
+ @if $edge == first {
+ $location: 1;
+ } @else if $edge == last {
+ $location: susy-count(susy-get(columns, $span)) - $n + 1;
+ }
+ }
+
+ @return $location
+}
diff --git a/_sass/vendor/susy/susy/language/susy/_settings.scss b/_sass/vendor/susy/susy/language/susy/_settings.scss
new file mode 100644
index 00000000..9b5d897d
--- /dev/null
+++ b/_sass/vendor/susy/susy/language/susy/_settings.scss
@@ -0,0 +1,216 @@
+// Susy Settings
+// =============
+
+// Susy Language Defaults
+// ----------------------
+// - PRIVATE
+@include susy-defaults((
+ container: auto,
+ math: fluid,
+ output: float,
+ container-position: center,
+ gutter-position: after,
+ global-box-sizing: content-box,
+ debug: (
+ image: hide,
+ color: rgba(#66f, .25),
+ output: background,
+ toggle: top right,
+ ),
+));
+
+
+// Valid Keyword Values
+// --------------------
+// - PRIVATE: DONT'T TOUCH
+$susy-keywords: (
+ container: auto,
+ math: static fluid,
+ output: isolate float,
+ container-position: left center right,
+ flow: ltr rtl,
+ gutter-position: before after split inside inside-static,
+ box-sizing: border-box content-box,
+ span: full,
+ edge: first alpha last omega full,
+ spread: narrow wide wider,
+ gutter-override: no-gutters no-gutter,
+ role: nest,
+ clear: break nobreak,
+ debug image: show hide show-columns show-baseline,
+ debug output: background overlay,
+);
+
+
+// Parse Susy Keywords and Maps
+// ----------------------------
+@function parse-settings(
+ $short: $susy
+) {
+ $_return: ();
+
+ @if type-of($short) == map {
+ $_return: $short;
+ } @else {
+ @each $item in $short {
+ // strings
+ @if type-of($item) == string {
+ @each $key, $value in $susy-keywords {
+ @if index($value, $item) {
+ $_key-value: append($key, $item);
+ $_return: _susy-deep-set($_return, $_key-value...);
+ }
+ }
+ // maps
+ } @else if type-of($item) == map {
+ $_return: map-merge($_return, $item);
+ }
+ }
+ }
+
+ @return $_return;
+}
+
+
+// Parse Columns & Gutters
+// -----------------------
+@function parse-layout(
+ $short
+) {
+ $_return: ();
+ $_columns: ();
+ $_gutters: null;
+
+ @if not(unitless(nth(nth($short, 1), 1))) {
+ $_gutters: nth($short, 1);
+ } @else {
+ $_columns: (columns: nth($short, 1));
+ $_gutters: if(length($short) > 1, nth($short, 2), $_gutters);
+ }
+
+ @if type-of($_gutters) == list and length($_gutters) > 0 {
+ $_gutters: (
+ gutters: nth($_gutters, 2) / nth($_gutters, 1),
+ column-width: nth($_gutters, 1),
+ );
+ } @else {
+ $_gutters: if($_gutters, (gutters: $_gutters), ());
+ }
+
+ $_return: map-merge($_return, $_columns);
+ $_return: map-merge($_return, $_gutters);
+
+ @return $_return;
+}
+
+
+// Parse Grid/Context
+// ------------------
+@function parse-grid(
+ $short: $susy
+) {
+ $_return: parse-settings($short);
+ $_layout: ();
+
+ @if type-of($short) == map {
+ $_return: $short;
+ } @else {
+ @each $item in $short {
+ // number or list
+ @if type-of($item) == number or type-of($item) == list {
+ @if type-of($item) == list or unitless($item) {
+ $_layout: append($_layout, $item);
+ } @else {
+ $_return: map-merge($_return, (container: $item));
+ }
+ }
+ }
+
+ $_layout: if(length($_layout) > 0, parse-layout($_layout), $_layout);
+ }
+
+ @return map-merge($_return, $_layout);
+}
+
+
+// Parse Span
+// ----------
+@function parse-span(
+ $short,
+ $key: span
+) {
+ $_return: ();
+
+ @if type-of($short) == map {
+ $_return: $short;
+ } @else {
+ $_at: index($short, at);
+
+ @if $_at {
+ $_loci: $_at + 1;
+ $_location: nth($short, $_loci);
+ $_return: map-merge($_return, (location: $_location));
+ $short: set-nth($short, $_at, null);
+ $short: set-nth($short, $_loci, null);
+ }
+
+ $_i: 1;
+ $_span: ();
+
+ @while $_i <= length($short) {
+ $_this: nth($short, $_i);
+
+ @if type-of($_this) == number {
+ $_span: append($_span, $_this);
+ $short: set-nth($short, $_i, null);
+ } @else if $_this == of {
+ $short: set-nth($short, $_i, null);
+ $_i: length($short) + 1;
+ }
+
+ $_i: $_i + 1;
+ }
+
+ @if length($_span) > 0 {
+ $_span: if(length($_span) == 1, nth($_span, 1), $_span);
+ $_return: map-merge($_return, ($key: $_span));
+ }
+
+ $_return: map-merge($_return, parse-grid($short));
+ }
+
+ @return $_return;
+}
+
+
+// Parse Gutters
+// -------------
+@function parse-gutters(
+ $short: $susy
+) {
+ $_gutters: parse-span($short, gutter-override);
+ $_span: susy-get(gutter-override, $_gutters);
+
+ @if $_span and not(map-get($_gutters, columns)) {
+ $_context: ();
+ $_new: ();
+
+ @each $item in $_span {
+ @if type-of($item) == number and unitless($item) {
+ $_context: append($_context, $item);
+ } @else {
+ $_new: append($_new, $item);
+ }
+ }
+
+ $_context: parse-grid($_context);
+ $_new: if(length($_new) == 0, null, $_new);
+ $_new: if(length($_new) == 1, nth($_new, 1), $_new);
+ $_new: (gutter-override: if($_new != $_span, $_new, $_span));
+
+ $_gutters: map-merge($_gutters, $_new);
+ $_gutters: map-merge($_gutters, $_context);
+ }
+
+ @return $_gutters;
+}
diff --git a/_sass/vendor/susy/susy/language/susy/_span.scss b/_sass/vendor/susy/susy/language/susy/_span.scss
new file mode 100644
index 00000000..86ccda91
--- /dev/null
+++ b/_sass/vendor/susy/susy/language/susy/_span.scss
@@ -0,0 +1,163 @@
+// Span Syntax
+// ===========
+
+// Span [mixin]
+// ------------
+// Set a spanning element using shorthand syntax.
+// - $span :
+@mixin span(
+ $span
+) {
+ $inspect: $span;
+ $span: parse-span($span);
+ $output: span-math($span);
+ $nesting: susy-get(span, $span);
+ $clear: susy-get(clear, $span);
+
+ $box: susy-get(box-sizing, $span);
+ $content-box: if(susy-get(global-box-sizing) != 'border-box', true, false);
+ $box: $box or if(is-inside($span) and $content-box, border-box, null);
+
+ @if $clear == break {
+ @include break;
+ } @else if $clear == nobreak {
+ @include nobreak;
+ }
+
+ @include susy-inspect(span, $inspect);
+ @include output((box-sizing: $box));
+ @include float-span-output($output...);
+
+ @if valid-columns($nesting, silent) {
+ @include nested($span) { @content; }
+ } @else {
+ @content;
+ }
+}
+
+// Span [function]
+// ---------------
+// Return the width of a span.
+// - $span :
+@function span(
+ $span
+) {
+ @return get-span-width($span);
+}
+
+// Span Math
+// ---------
+// Get all the span results.
+// - $span:
+@function span-math(
+ $span
+) {
+ $nest : if(susy-get(role, $span) == nest, true, false);
+ $split-nest : if(is-split($span) and $nest, true, false);
+ $edge : get-edge($span);
+ $location : get-location($span);
+
+ $float : from;
+ $padding-before : null;
+ $padding-after : null;
+ $margin-before : null;
+ $margin-after : null;
+
+ // calculate widths
+ $spread: index(map-values($span), spread);
+ $span: if($split-nest and not($spread), map-merge($span, (spread: wide)), $span);
+ $width: get-span-width($span);
+ $gutters: get-gutters($span);
+
+ // apply gutters
+ @if is-inside($span) {
+ @if not(susy-get(role, $span)) {
+ $padding-before: map-get($gutters, before);
+ $padding-after: map-get($gutters, after);
+ }
+ } @else {
+ @if not($split-nest) {
+ $margin-before: map-get($gutters, before);
+ $margin-after: map-get($gutters, after);
+ }
+ }
+
+ // special margin handling
+ @if susy-get(output, $span) == isolate and $location {
+ $margin-before: get-isolation($span);
+ $margin-after: -100%;
+ } @else if $edge {
+ $is-split: is-split($span);
+ $pos: susy-get(gutter-position, $span);
+
+ @if $edge == last {
+ $float: susy-get(last-flow, $span);
+ }
+
+ @if not($is-split) {
+ @if $edge == full or ($edge == first and $pos == before) {
+ $margin-before: 0;
+ }
+ @if $edge == full or ($edge == last and $pos == after) {
+ $margin-after: 0;
+ }
+ }
+
+ }
+
+ @return (
+ width : $width,
+ float : $float,
+ margin-before : $margin-before,
+ margin-after : $margin-after,
+ padding-before : $padding-before,
+ padding-after : $padding-after,
+ flow : susy-get(flow, $span),
+ );
+}
+
+// Get Span Width
+// --------------
+// Return span width.
+// - $span:
+@function get-span-width(
+ $span
+) {
+ $span : parse-span($span);
+
+ $n : susy-get(span, $span);
+ $location : get-location($span);
+ $columns : susy-get(columns, $span);
+ $gutters : susy-get(gutters, $span);
+ $spread : susy-get(spread, $span);
+
+ $context : null;
+ $span-sum : null;
+ $width : null;
+
+ @if $n == 'full' {
+ $pos: susy-get(gutter-position, $span);
+ $role: susy-get(role, $span);
+ $n: if($pos == split and $role != nest, susy-count($columns), 100%);
+ }
+
+ @if type-of($n) != number {
+ @warn "(#{type-of($n)}) #{$n} is not a valid span.";
+ } @else if unitless($n) {
+ $context: susy-sum($columns, $gutters, if(is-split($span), wide, narrow));
+ $spread: if(is-inside($span), $spread or wide, $spread);
+ $span-sum: susy($n, $location, $columns, $gutters, $spread);
+
+ $_math: susy-get(math, $span);
+ $_column-width: susy-get(column-width, $span);
+ @if $_math == static {
+ $width: $span-sum * valid-column-math($_math, $_column-width);
+ } @else {
+ $width: percentage($span-sum / $context);
+ }
+ } @else {
+ $width: $n;
+ }
+
+ @return $width;
+}
diff --git a/_sass/vendor/susy/susy/language/susy/_validation.scss b/_sass/vendor/susy/susy/language/susy/_validation.scss
new file mode 100644
index 00000000..a235b176
--- /dev/null
+++ b/_sass/vendor/susy/susy/language/susy/_validation.scss
@@ -0,0 +1,16 @@
+// Validation
+// ==========
+
+
+// Validate Column Math
+// --------------------
+@function valid-column-math(
+ $math,
+ $column-width
+) {
+ @if $math == static and not($column-width) {
+ @error 'Static math requires a valid column-width setting.';
+ }
+
+ @return $column-width;
+}
diff --git a/_sass/vendor/susy/susy/language/susyone/_background.scss b/_sass/vendor/susy/susy/language/susyone/_background.scss
new file mode 100644
index 00000000..38c6726b
--- /dev/null
+++ b/_sass/vendor/susy/susy/language/susyone/_background.scss
@@ -0,0 +1,18 @@
+// ---------------------------------------------------------------------------
+// Imports
+
+@import "compass/layout/grid-background";
+@import "compass/css3/background-origin";
+@import "compass/css3/background-clip";
+
+// ---------------------------------------------------------------------------
+// Susy Grid Background
+//
+// A wrapper for the compass "column-grid-background" mixin
+// Uses all your settings to create a grid background for a container element.
+// Note: Sub-pixel rounding can lead to several pixels of variation between browsers.
+@mixin susy-grid-background(){
+ @include column-grid-background($total-columns, column(), gutter(), 0);
+ @include background-origin(content-box);
+ @include background-clip(content-box);
+}
diff --git a/_sass/vendor/susy/susy/language/susyone/_functions.scss b/_sass/vendor/susy/susy/language/susyone/_functions.scss
new file mode 100644
index 00000000..68184589
--- /dev/null
+++ b/_sass/vendor/susy/susy/language/susyone/_functions.scss
@@ -0,0 +1,377 @@
+// ---------------------------------------------------------------------------
+// Imports
+
+// We need access to some basic font settings for handling media-queries.
+@import "compass/typography/vertical_rhythm";
+
+// For now, we also need this...
+$browser-default-font-size-px : 16px;
+$browser-default-font-size-percent : 100%;
+$browser-default-font-size-pt : 12pt;
+
+$rem-with-px-fallback : true !default;
+
+// ---------------------------------------------------------------------------
+// Sass list Functions
+
+// Return a list with specific items removed
+//
+// filter($list, $target)
+// - $list : The list to filter.
+// - $target : An item to be removed from the list.
+@function filter($list, $target) {
+ $clean: compact();
+ @if index($list, $target) {
+ @each $item in $list {
+ $clean: if($item == $target, $clean, append($clean, $item));
+ }
+ } @else { $clean: $list; }
+ @return $clean;
+}
+
+// ---------------------------------------------------------------------------
+// Don't use static output when it will break things
+
+// Switch element-level output to fluid, when container-width is wrong for static
+//
+// fix-static-misalignment([$style, $width])
+// - $style: $container-style.
+// - $width: $container-width.
+@function fix-static-misalignment(
+ $style: $container-style,
+ $width: $container-width
+) {
+ @if $container-width and $container-width != container-outer-width($width: false) {
+ $style: fluid;
+ }
+ @return $style;
+}
+
+// ---------------------------------------------------------------------------
+// Grid Functions
+
+// Returns the full width of a grid based on your grid settings.
+//
+// $columns : The number of columns to get width for.
+@function columns-width(
+ $columns : $total-columns
+) {
+ @if round($columns) != $columns {
+ @warn "Susy works best with integer column-spans." +
+ "For partial-columns, you may need to finesse the math by hand using functions directly.";
+ }
+ @return ($columns * $column-width) + (if($columns >= 1, ceil($columns - 1), 0) * $gutter-width);
+}
+
+// Return the grid width after adding or subtracting grid padding
+//
+// $width : the width of the grid without padding;
+// $operation : ( add | subtract ) if padding should be added or subtracted;
+@function handle-grid-padding(
+ $width,
+ $operation : subtract
+) {
+ $pad: $grid-padding*2;
+
+ @if comparable($width, $grid-padding) {
+ $width: if($operation == subtract, $width - $pad, $width + $pad);
+ } @else {
+ @warn "$grid-padding must be set in units comparable to the container width.";
+ }
+
+ @return $width;
+}
+
+// Return the full outer width of a Container element.
+//
+// $columns : The number of columns in the Grid Layout.
+@function container-outer-width(
+ $columns : $total-columns,
+ $width : $container-width
+) {
+ $outerwidth: if($width, $width, columns-width($columns));
+
+ @if $width {
+ @if not($border-box-sizing) { $outerwidth: handle-grid-padding($outerwidth, subtract); }
+ } @else {
+ @if $border-box-sizing { $outerwidth: handle-grid-padding($outerwidth, add); }
+ }
+
+ @return $outerwidth;
+}
+
+// Return the percentage width of a single column in a given 'context'.
+//
+// $context : The grid context in columns, if nested.
+// $style : The container style to use.
+@function column(
+ $context : $total-columns,
+ $style : fix-static-misalignment()
+) {
+ @return if($style == static, $column-width, relative-width($column-width, $context));
+}
+
+// Return the percentage width of multiple 'columns' in a given 'context'.
+//
+// $columns : The number of columns to get relative width for.
+// $context : The grid context in columns, if nested.
+// $style : The container style to use.
+@function columns(
+ $columns,
+ $context : $total-columns,
+ $style : fix-static-misalignment()
+) {
+ @return if($style == static, columns-width($columns), relative-width(columns-width($columns), $context));
+}
+
+// Return the percentage width of a single gutter in a given 'context'.
+//
+// $context : The grid context in columns, if nested.
+// $style : The container style to use.
+@function gutter(
+ $context : $total-columns,
+ $style : fix-static-misalignment()
+) {
+ @return if($style == static, $gutter-width, relative-width($gutter-width, $context));
+}
+
+// Return the percentage width of a given value in a given 'context'.
+//
+// $width : Any given width value.
+// $context : The grid context in columns, if nested.
+@function relative-width(
+ $width,
+ $context : $total-columns
+) {
+ @return percentage($width / columns-width($context));
+}
+
+// Return the total space occupied by multiple columns and associated gutters.
+// Useful for adding padding or margins (prefix, suffix, push, pull, etc.)
+//
+// $columns : The number of columns to get relative space for.
+// $context : The grid context in columns, if nested.
+// $style : The container style to use.
+@function space(
+ $columns,
+ $context : $total-columns,
+ $style : fix-static-misalignment()
+) {
+ @return columns($columns, $context, $style) + if($columns >= 1, gutter($context, $style), 0);
+}
+
+// Accept a list including column-count and (optional) position.
+// Return either the column count or the position alone.
+//
+// $columns : the list to split and interprate.
+// $request : The value to return, either 'columns' or 'position'.
+@function split-columns-value(
+ $columns,
+ $request : columns
+) {
+ $pos : false;
+ $cols : false;
+
+ @each $var in $columns {
+ @if (type-of($var) == 'string') {
+ $pos: $var;
+ } @else {
+ @if (type-of($var) == 'number') and (unitless($var)) {
+ $cols: $var;
+ } @else {
+ @warn '"#{$var}" is not a valid part of "$columns: #{$columns}" in the columns() mixin.';
+ }
+ }
+ }
+
+ @if $request == 'columns' {
+ @return $cols;
+ } @else {
+ @if $request == 'position' {
+ @return $pos;
+ } @else {
+ @warn '"#{$request}" is not a valid value for $request';
+ }
+ }
+}
+
+// Accept nth-selector variables, and format them as a valid CSS3 selector.
+//
+// $n : [first | only | last | ]
+// $selector : [child | last-child | of-type | last-of-type ]
+@function format-nth(
+ $n : last,
+ $selector : child
+) {
+ @if ($n == 'last') or ($n =='first') or ($n =='only') {
+ $selector: '#{$n}-#{$selector}';
+ } @else {
+ $selector: 'nth-#{$selector}(#{$n})';
+ }
+ @return $selector;
+}
+
+// ---------------------------------------------------------------------------
+// Media Functions
+
+// Return an em value adjusted to match the browser default font size.
+// Note: This only works if actual sizes are set relative to browser defaults.
+//
+// $ems : The initial value to be converted.
+// $font-size : The current font-size in.
+@function base-ems(
+ $ems,
+ $font-size: $base-font-size
+){
+ $font-size : if(unit($ems) == 'rem', $base-font-size, $font-size);
+ $unit : unit($font-size);
+ $mult : $ems / ($ems * 0 + 1);
+
+ @if $unit == 'px' {
+ @return $font-size / $browser-default-font-size-px * $mult * 1em;
+ }
+ @else if $unit == '%' {
+ @return $font-size / $browser-default-font-size-percent * $mult * 1em;
+ }
+ @else if $unit == 'em' {
+ @return $font-size / 1em * $mult * 1em;
+ }
+ @else if $unit == 'pt' {
+ @return $font-size / $browser-default-font-size-pt * $mult * 1em;
+ }
+ @else {
+ @warn 'Variable $base-font-size does not have a valid font unit. Valid units for fonts in CSS are px, pt, em, and %.';
+ }
+}
+
+// This name will be deprecated...
+@function absolute-ems(
+ $ems,
+ $font-size: $base-font-size
+){
+ @return base-ems( $ems, $font-size);
+ }
+
+// Return a length, after any em-values have been sent through absolute-ems().
+//
+// $length : The length value to be checked and adjusted if necessary.
+// $font-size : The current font-size in px.
+@function fix-ems(
+ $length,
+ $font-size: $base-font-size
+){
+ @if $length {
+ @if (unit($length) == 'em') or (unit($length) == 'rem') {
+ $length: absolute-ems($length,$font-size);
+ }
+ }
+ @return $length;
+}
+
+// Sort a list of arguments into "$min $layout $max $ie" order, and return the list.
+//
+// $media-layout : a list of values [$min $layout $max $ie] including...
+// : - one unitless number (columns in a layout)
+// : - two optional lengths (min and max-width media-query breakpoints).
+// : - one optional boolean or string to trigger fallback support for IE.
+// $font-size : [optional] The base font-size of your layout, if you are using ems.
+// : - defaults to $base-font-size
+@function medialayout(
+ $media-layout,
+ $font-size: $base-font-size
+) {
+ $media : false;
+ $min : false;
+ $layout : false;
+ $max : false;
+ $ie : false;
+ $has-layout : false;
+
+ @each $val in $media-layout {
+ @if (type-of($val) == "number") {
+ @if unitless($val) {
+ $layout : $val;
+ $has-layout : true;
+ } @else {
+ @if ($has-layout) and not($media) {
+ $max: $val;
+ } @else {
+ @if $media {
+ $media: join($media,$val);
+ } @else {
+ $media: $val;
+ }
+ }
+ }
+ } @else {
+ $ie: $val;
+ }
+ }
+ @if (length($media) > 0) {
+ @if (length($media) == 1) {
+ $min: nth($media,1);
+ } @else {
+ $min: nth($media,1);
+ $max: nth($media,2);
+ @if comparable($min, $max) {
+ @if ($min > $max) {
+ $max: nth($media,1);
+ $min: nth($media,2);
+ }
+ } @else {
+ @warn "Can't compare incompatible units." +
+ "Using #{$min} for min-width, and #{$max} for max-width";
+ }
+ @if (length($media) > 2) {
+ @warn "You can only send two lengths: a min-width and an (optional) max-width." +
+ "You sent #{length($media)}: #{$media}";
+ }
+ }
+ }
+
+ // media-queries must be set in ems relative to the browser default
+ // rather than the font-size set in CSS.
+ $min: fix-ems($min,$font-size);
+ $max: fix-ems($max,$font-size);
+
+ @return $min $layout $max $ie;
+}
+
+// Return the nearest layout (column-count) above a given breakpoint.
+//
+// $min : The min-width media-query breakpoint above which to establish a new layout.
+@function get-layout(
+ $min
+) {
+ $min : fix-ems($min);
+ $return : false;
+
+ @if comparable($min, $column-width) {
+ $return : ceil(($min + $gutter-width) / ($column-width + $gutter-width));
+ } @else {
+ @warn "Can't determine a layout, becuse #{$min} and #{$column-width} are not comparable.";
+ }
+
+ @return $return;
+}
+
+// Check to see if a given $media-layout list is simply the default.
+//
+// $media-layout : a list of values including -
+// : One unitless number (columns in a layout)
+// : Two optional lengths (min and max-width media-query breakpoints).
+// : One optional boolean or string to trigger fallback support for IE.
+@function is-default-layout(
+ $media-layout
+) {
+ $media-layout : medialayout($media-layout);
+ $min : nth($media-layout,1);
+ $layout-cols : nth($media-layout,2);
+ $max : nth($media-layout,3);
+
+ @if $min or $max {
+ @return false;
+ } @else {
+ @return if($layout-cols == $total-columns,true,false);
+ }
+}
diff --git a/_sass/vendor/susy/susy/language/susyone/_grid.scss b/_sass/vendor/susy/susy/language/susyone/_grid.scss
new file mode 100644
index 00000000..491c6229
--- /dev/null
+++ b/_sass/vendor/susy/susy/language/susyone/_grid.scss
@@ -0,0 +1,312 @@
+// ---------------------------------------------------------------------------
+// Imports
+
+@import "compass/utilities/general/clearfix";
+@import "compass/css3/box-sizing";
+
+// ---------------------------------------------------------------------------
+// Border-Box Sizing
+
+// Apply the border-box sizing model to all elements
+// and adjust the grid math appropriately.
+@mixin border-box-sizing {
+ $border-box-sizing: true !global;
+ * { @include box-sizing(border-box); }
+}
+
+// ---------------------------------------------------------------------------
+// Container
+
+// Set the width of a container
+//
+// $columns : The number of columns in the Grid Layout.
+@mixin set-container-width(
+ $columns : $total-columns,
+ $style : $container-style,
+ $px-vals : $pixel-values-only
+){
+ $width: container-outer-width($columns);
+
+ @if $style == 'static' {
+ @if $px-vals == true {
+ width: round(convert-length($width, px));
+ } @else {
+ @include rem(width, $width);
+ }
+ } @else {
+ @if $style == 'fluid' {
+ @if unit($width) == '%' {
+ @if $px-vals == true {
+ width: round(convert-length($width, px));
+ } @else {
+ @include rem(width, $width);
+ }
+ }
+ } @else {
+ @if $px-vals == true {
+ max-width: round(convert-length($width, px));
+ } @else {
+ @include rem(max-width, $width);
+ }
+
+ @include for-legacy-browser(ie,"6") {
+ @if unit($width) == 'rem' {
+ _width: round(convert-length($width, px));
+ } @else {
+ _width: $width;
+ }
+ }
+ }
+ }
+}
+
+// Set the outer grid-containing element(s).
+//
+// $columns : The number of columns in the container.
+@mixin apply-container(
+ $columns : $total-columns,
+ $px-vals : $pixel-values-only
+){
+ @include pie-clearfix;
+ @include set-container-width($columns);
+ @if $px-vals == true {
+ padding-left: round(convert-length($grid-padding, px));
+ padding-right: round(convert-length($grid-padding, px));
+ } @else {
+ @include rem(padding-left, $grid-padding);
+ @include rem(padding-right, $grid-padding);
+ }
+ margin: { left: auto; right: auto; }
+}
+
+// Set one or more layouts on a grid-containing element at any number of media-query breakpoints.
+//
+// $media-layout-1 : [default:$total-columns] A list of values including -
+// : One unitless number (representing columns in a layout)
+// : Two optional lengths (representing min and max-width media-query breakpoints).
+// $media-layout-2 ...-10 : [optional] Same as $media-layout-1
+@mixin container(
+ $media-layouts...
+){
+ $media-layouts: if(length($media-layouts) > 0, $media-layouts, $total-columns);
+
+ @each $ml in $media-layouts {
+ @if is-default-layout($ml) {
+ @include apply-container;
+ } @else {
+ @include at-breakpoint($ml) {
+ @include apply-container;
+ }
+ }
+ }
+}
+
+// ---------------------------------------------------------------------------
+// Columns
+
+// Create a grid element spanning any number of 'columns' in a grid 'context'.
+// $columns : The number of columns to span.
+// $context : [optional] The context (columns spanned by parent).
+// : Context is required on any nested elements.
+// : Context MUST NOT be declared on a root element.
+// $padding : [optional] Padding applied to the inside of individual grid columns.
+// : Padding is only output if one or two values are specified (e.g. 1em or 10px 20px)
+// : Padding values are applied only on the horizontal axis in from-to order
+// $from : The start direction of your layout (e.g. 'left' for ltr languages)
+// $style : The container style to use.
+@mixin span-columns(
+ $columns,
+ $context : $total-columns,
+ $padding : false,
+ $from : $from-direction,
+ $style : fix-static-misalignment()
+) {
+ $from : unquote($from);
+ $to : opposite-position($from);
+ $pos : split-columns-value($columns,position);
+ $cols : split-columns-value($columns,columns);
+ $pad-from : if($style == static, 0 * $gutter-width, relative-width(0 * $gutter-width, $context));
+ $pad-to : if($style == static, 0 * $gutter-width, relative-width(0 * $gutter-width, $context));
+
+ @if $padding != false {
+ $pad-from : nth($padding, 1);
+
+ @if length($padding) > 1 {
+ $pad-to: nth($padding, 2);
+ } @else {
+ $pad-to: $pad-from;
+ }
+
+ $pad-from : if($style == static, $pad-from, relative-width($pad-from, $context));
+ $pad-to : if($style == static, $pad-to, relative-width($pad-to, $context));
+
+ padding-#{$from}: $pad-from;
+ padding-#{$to}: $pad-to;
+ }
+
+ width: columns($cols, $context, $style) - if($border-box-sizing, 0, $pad-to + $pad-from);
+
+ @if ($pos == 'omega') {
+ @include omega($from);
+ } @else {
+ float: $from;
+ margin-#{$to}: gutter($context, $style);
+ @include for-legacy-browser(ie, "6") {
+ display: inline;
+ }
+ }
+}
+
+// Apply to elements spanning the last column, to account for the page edge.
+// Only needed as an override. Normally 'omega' can just be called by `columns`.
+//
+// $from : The start-direction for your document.
+@mixin omega(
+ $from : $from-direction
+) {
+ $from : unquote($from);
+ $to : opposite-position($from);
+ $hack : opposite-position($omega-float);
+
+ float: $omega-float;
+ margin-#{$to}: 0;
+
+ @include for-legacy-browser(ie, "6", "7") {
+ *margin-#{$hack}: - $gutter-width;
+ @include for-legacy-browser(ie, "6") {
+ display: inline;
+ }
+ }
+}
+
+// Shortcut to apply omega to a specific subset of elements.
+//
+// $n : [first | only | last | ]
+// $selector : [child | last-child | of-type | last-of-type ]
+// $from : The start-direction for your document.
+@mixin nth-omega(
+ $n : last,
+ $selector : child,
+ $from : $from-direction
+) {
+ $from : unquote($from);
+
+ &:#{format-nth($n,$selector)} {
+ @if $n == "first" {
+ @include omega($from);
+ } @else {
+ @include with-browser-ranges(css-sel3) {
+ @include omega($from);
+ }
+ }
+ }
+}
+
+
+
+// ---------------------------------------------------------------------------
+// Resets
+
+// Reset a '+columns' grid element to default block behavior
+//
+// $from : The start direction of your layout (e.g. 'left' for ltr languages)
+@mixin reset-columns(
+ $from: $from-direction
+) {
+ $from : unquote($from);
+ $to : opposite-position($from);
+ $hack : opposite-position($omega-float);
+
+ float: none;
+ width: auto;
+ margin-#{$to}: auto;
+
+ @include for-legacy-browser(ie, "6", "7") {
+ *margin-#{$hack}: auto;
+ @include for-legacy-browser(ie, "6") {
+ display: block;
+ }
+ }
+}
+
+// Apply to elements previously set as omega.
+// This will return floats and margins back to non-omega settigns.
+//
+// $context : [optional] The context (columns spanned by parent).
+// $from : The start-direction for your document.
+// $style : The container style to use.
+@mixin remove-omega(
+ $context : $total-columns,
+ $from : $from-direction,
+ $style : fix-static-misalignment()
+) {
+ $from : unquote($from);
+ $to : opposite-position($from);
+ $hack : opposite-position($omega-float);
+
+ float: $from;
+ margin-#{$to}: gutter($context, $style);
+
+ @include for-legacy-browser(ie, "6", "7") {
+ *margin-#{$hack}: auto;
+ }
+}
+
+// Shortcut to apply remove-omega to a specific subset of elements.
+//
+// $n : [first | only | last | ]
+// $selector : [child | last-child | of-type | last-of-type ]
+// $context : [optional] The context (columns spanned by parent).
+// $from : The start-direction for your document.
+// $style : The container style to use.
+@mixin remove-nth-omega(
+ $n : last,
+ $selector : child,
+ $context : $total-columns,
+ $from : $from-direction,
+ $style : fix-static-misalignment()
+) {
+ $from : unquote($from);
+
+ &:#{format-nth($n,$selector)} {
+ @if $n == "first" {
+ @include remove-omega($context, $from, $style);
+ } @else {
+ @include with-browser-ranges(css-sel3) {
+ @include remove-omega($context, $from, $style);
+ }
+ }
+ }
+}
+
+
+// ---------------------------------------------------------------------------
+// Change Settings
+
+@mixin with-grid-settings(
+ $columns: $total-columns,
+ $width: $column-width,
+ $gutter: $gutter-width,
+ $padding: $grid-padding
+) {
+ // keep the defaults around
+ $default-columns: $total-columns;
+ $default-width: $column-width;
+ $default-gutter: $gutter-width;
+ $default-padding: $grid-padding;
+
+ // use the new settings
+ $total-columns: $columns !global;
+ $column-width: $width !global;
+ $gutter-width: $gutter !global;
+ $grid-padding: $padding !global;
+
+ // apply to contents
+ @content;
+
+ // re-instate the defaults
+ $total-columns: $default-columns !global;
+ $column-width: $default-width !global;
+ $gutter-width: $default-gutter !global;
+ $grid-padding: $default-padding !global;
+}
diff --git a/_sass/vendor/susy/susy/language/susyone/_isolation.scss b/_sass/vendor/susy/susy/language/susyone/_isolation.scss
new file mode 100644
index 00000000..2b70038b
--- /dev/null
+++ b/_sass/vendor/susy/susy/language/susyone/_isolation.scss
@@ -0,0 +1,51 @@
+// ---------------------------------------------------------------------------
+// Isolation
+
+// Isolate the position of a grid element (use in addition to span-columns)
+//
+// $location : The grid column to isolate in, relative to the container;
+// $context : [optional] The context (columns spanned by parent).
+// $from : The start direction of your layout (e.g. 'left' for ltr languages)
+@mixin isolate(
+ $location,
+ $context: $total-columns,
+ $from: $from-direction,
+ $style: fix-static-misalignment()
+) {
+ $to: opposite-position($from);
+ margin-#{$to}: -100%;
+ margin-#{$from}: space($location - 1, $context, $style);
+}
+
+// Isolate a group of elements in a grid, using nth-child selectors
+//
+// $columns : The column-width of each item on the grid;
+// $context : [optional] The context (columns spanned by parent).
+// $selector : [child | of-type | last-of-type ] (default is 'child')
+// $from : The start direction of your layout (e.g. 'left' for ltr languages)
+@mixin isolate-grid(
+ $columns,
+ $context: $total-columns,
+ $selector: 'child',
+ $from: $from-direction,
+ $style: fix-static-misalignment()
+) {
+ $to: opposite-position($from);
+ $location: 1;
+ $line: floor($context / $columns);
+
+ @include span-columns($columns, $context, $from: $from, $style: $style);
+ margin-#{$to}: -100%;
+
+ @for $item from 1 through $line {
+ $nth: '#{$line}n + #{$item}';
+ &:#{format-nth($nth,$selector)} {
+ margin-#{$from}: space($location - 1, $context, $style);
+ @if $location == 1 { clear: $from; }
+ @else { clear: none; }
+
+ $location: $location + $columns;
+ @if $location > $context { $location: 1; }
+ }
+ }
+}
diff --git a/_sass/vendor/susy/susy/language/susyone/_margin.scss b/_sass/vendor/susy/susy/language/susyone/_margin.scss
new file mode 100644
index 00000000..accbbe65
--- /dev/null
+++ b/_sass/vendor/susy/susy/language/susyone/_margin.scss
@@ -0,0 +1,93 @@
+// ---------------------------------------------------------------------------
+// Margin Mixins
+
+// Apply 'columns' margin before an element to push it along the grid.
+//
+// $columns : The number of columns to span.
+// $context : [optional] The context (columns spanned by parent).
+// : Context is required on any nested elements.
+// : Context MUST NOT be declared on a root element.
+// $from : The start direction of your layout (e.g. 'left' for ltr languages)
+// $style : The container style to use.
+@mixin pre(
+ $columns,
+ $context : $total-columns,
+ $from : $from-direction,
+ $style : fix-static-misalignment()
+) {
+ $from : unquote($from);
+ margin-#{$from}: space($columns, $context, $style);
+}
+
+// 'push' is a synonymn for 'pre'
+@mixin push(
+ $columns,
+ $context : $total-columns,
+ $from : $from-direction,
+ $style : fix-static-misalignment()
+) {
+ $from : unquote($from);
+ @include pre($columns, $context, $from, $style);
+}
+
+// Apply negative 'columns' margin before an element to pull it along the grid.
+//
+// $columns : The number of columns to span.
+// $context : [optional] The context (columns spanned by parent).
+// : Context is required on any nested elements.
+// : Context MUST NOT be declared on a root element.
+// $from : The start direction of your layout (e.g. 'left' for ltr languages)
+// $style : The container style to use.
+@mixin pull(
+ $columns,
+ $context : $total-columns,
+ $from : $from-direction,
+ $style : fix-static-misalignment()
+) {
+ $from : unquote($from);
+ margin-#{$from}: 0 - space($columns, $context, $style);
+}
+
+// Apply 'columns' margin after an element to contain it in a grid.
+//
+// $columns : The number of columns to span.
+// $context : [optional] The context (columns spanned by parent).
+// : Context is required on any nested elements.
+// : Context MUST NOT be declared on a root element.
+// $from : The start direction of your layout (e.g. 'left' for ltr languages)
+// $style : The container style to use.
+@mixin post(
+ $columns,
+ $context : $total-columns,
+ $from : $from-direction,
+ $style : fix-static-misalignment()
+) {
+ $from : unquote($from);
+ $to : opposite-position($from);
+ margin-#{$to}: space($columns, $context, $style);
+}
+
+// Apply 'columns' before and/or after an element to contain it on a grid.
+//
+// $pre : The number of columns to add as margin before.
+// $post : The number of columns to add as margin after.
+// $context : [optional] The context (columns spanned by parent).
+// : Context is required on any nested elements.
+// : Context MUST NOT be declared on a root element.
+// $from : The start direction of your layout (e.g. 'left' for ltr languages)
+// $style : The container style to use.
+@mixin squish(
+ $pre : false,
+ $post : false,
+ $context : $total-columns,
+ $from : $from-direction,
+ $style : fix-static-misalignment()
+) {
+ $from : unquote($from);
+ @if $pre {
+ @include pre($pre, $context, $from, $style)
+ }
+ @if $post {
+ @include post($post, $context, $from, $style)
+ }
+}
diff --git a/_sass/vendor/susy/susy/language/susyone/_media.scss b/_sass/vendor/susy/susy/language/susyone/_media.scss
new file mode 100644
index 00000000..ca860fc9
--- /dev/null
+++ b/_sass/vendor/susy/susy/language/susyone/_media.scss
@@ -0,0 +1,105 @@
+// ---------------------------------------------------------------------------
+// Media Mixins
+
+// Create a new layout context for (@content) descendants.
+//
+// $layout-cols : a (unitless) number of columns to use for this layout.
+@mixin layout(
+ $layout-cols
+) {
+ // store default $total-columns setting for later, then change it.
+ $default-layout : $total-columns;
+ $total-columns : $layout-cols !global;
+
+ // apply children in this new layout context.
+ @content;
+
+ // return to default $total-columns setting.
+ $total-columns : $default-layout !global;
+}
+
+// Nest a block of code inside a new media-query and layout context.
+//
+// $media-layout : a list of values [$min $layout $max $ie] including...
+// : - one unitless number (columns in a layout)
+// : - two optional lengths (min and max-width media-query breakpoints).
+// : - one optional boolean or string to trigger fallback support for IE.
+// $font-size : [optional] The base font-size of your layout, if you are using ems.
+// : - defaults to $base-font-size
+@mixin at-breakpoint(
+ $media-layout,
+ $font-size: $base-font-size
+) {
+ $media-layout : medialayout($media-layout,$font-size);
+ $min : nth($media-layout,1);
+ $layout : nth($media-layout,2);
+ $max : nth($media-layout,3);
+ $ie : nth($media-layout,4);
+
+ @if not($breakpoint-media-output) and not($breakpoint-ie-output) and not($breakpoint-raw-output) {
+ @warn "Either $breakpoint-media-output, $breakpoint-ie-output, or $breakpoint-raw-output must be true for at-breakpoint to work.";
+ }
+
+ // We need to have either a min-width breakpoint or a layout in order to proceed.
+ @if $min or $layout or $max {
+
+ // If we don't have a layout, we create one based on the min-width.
+ @if not($layout) {
+ $layout: get-layout($min);
+ }
+
+ // If we still don't have a layout, we have a problem.
+ @if $layout {
+ // Set our new layout context.
+ @include layout($layout) {
+ @if $breakpoint-media-output {
+ @include with-browser-ranges(css-mediaqueries) {
+ @if $min and $max {
+ // Both $min and $max
+ @media (min-width: $min) and (max-width: $max) {
+ @content;
+ }
+ } @else {
+ @if not($min) and not($max) {
+ // Neither $min nor $max:
+ // We can create a breakpoint based on the number of columns in the layout.
+ $min: fix-ems(container-outer-width($width: false));
+ }
+ @if $min {
+ // Min only:
+ @media (min-width: $min) {
+ @content;
+ }
+ } @else {
+ // Max only:
+ @media (max-width: $max) {
+ @content;
+ }
+ }
+ }
+ }
+ }
+ // Set an IE fallback
+ @if $ie and $breakpoint-ie-output {
+ @if (type-of($ie) == 'bool') {
+ $ie: 'lt-ie9';
+ }
+ .#{$ie} & {
+ @content;
+ }
+ }
+
+ @if $breakpoint-raw-output {
+ @content;
+ }
+ }
+ } @else {
+ @warn "We were unable to determine a layout for your breakpoint.";
+ }
+
+ } @else {
+ @warn "You need to provide either a valid layout (number of columns)"
+ + "or a valid media-query min-width breakpoint (length).";
+ }
+
+}
diff --git a/_sass/vendor/susy/susy/language/susyone/_padding.scss b/_sass/vendor/susy/susy/language/susyone/_padding.scss
new file mode 100644
index 00000000..8e6394a4
--- /dev/null
+++ b/_sass/vendor/susy/susy/language/susyone/_padding.scss
@@ -0,0 +1,92 @@
+// ---------------------------------------------------------------------------
+// Padding Mixins
+
+// add empty colums as padding before an element.
+// $columns : The number of columns to prefix.
+// $context : [optional] The context (columns spanned by parent).
+// : Context is required on any nested elements.
+// : Context MUST NOT be declared on a root element.
+// $from : The start direction of your layout (e.g. 'left' for ltr languages)
+// $style : The container style to use.
+@mixin prefix(
+ $columns,
+ $context : $total-columns,
+ $from : $from-direction,
+ $style : fix-static-misalignment()
+) {
+ $from : unquote($from);
+ padding-#{$from}: space($columns, $context, $style);
+}
+
+// add empty colums as padding after an element.
+// $columns : The number of columns to suffix.
+// $context : [optional] The context (columns spanned by parent).
+// : Context is required on any nested elements.
+// : Context MUST NOT be declared on a root element.
+// $from : The start direction of your layout (e.g. 'left' for ltr languages)
+// $style : The container style to use.
+@mixin suffix(
+ $columns,
+ $context : $total-columns,
+ $from : $from-direction,
+ $style : fix-static-misalignment()
+) {
+ $from : unquote($from);
+ $to : opposite-position($from);
+ padding-#{$to}: space($columns, $context, $style);
+}
+
+// add empty colums as padding before and after an element.
+// $columns : The number of columns to pad.
+// $context : [optional] The context (columns spanned by parent).
+// : Context is required on any nested elements.
+// : Context MUST NOT be declared on a root element.
+// $from : The start direction of your layout (e.g. 'left' for ltr languages)
+// $style : The container style to use.
+@mixin pad(
+ $prefix : false,
+ $suffix : false,
+ $context : $total-columns,
+ $from : $from-direction,
+ $style : fix-static-misalignment()
+) {
+ $from : unquote($from);
+ @if $prefix {
+ @include prefix($prefix, $context, $from, $style);
+ }
+ @if $suffix {
+ @include suffix($suffix, $context, $from, $style);
+ }
+}
+
+// Bleed into colums with margin/padding on any side of an element.
+// $width : The side of the bleed.
+// : Any unit-length will be used directly.
+// : Any unitless number will be used as a column-count.
+// : Use "2 of 6" format to represent 2 cals in a 6-col nested context.
+// $sides : One or more sides to bleed [ top | right | bottom | left | all ].
+// $style : The container style to use.
+@mixin bleed(
+ $width: $grid-padding,
+ $sides: left right,
+ $style: fix-static-misalignment()
+) {
+ @if $border-box-sizing { @include box-sizing(content-box) }
+
+ @if type-of($width) == 'list' {
+ $width: filter($width, of);
+ $width: space(nth($width,1), nth($width,2), $style);
+ } @else if unitless($width) {
+ $width: space($width, $style: $style);
+ }
+
+ @if $sides == 'all' {
+ margin: - $width;
+ padding: $width;
+ } @else {
+ @each $side in $sides {
+ margin-#{$side}: - $width;
+ padding-#{$side}: $width;
+ }
+ }
+}
diff --git a/_sass/vendor/susy/susy/language/susyone/_settings.scss b/_sass/vendor/susy/susy/language/susyone/_settings.scss
new file mode 100644
index 00000000..e8ff9c84
--- /dev/null
+++ b/_sass/vendor/susy/susy/language/susyone/_settings.scss
@@ -0,0 +1,60 @@
+// ---------------------------------------------------------------------------
+// Susy Settings
+
+// The total number of columns in the grid
+$total-columns : 12 !default;
+
+// The width of columns and gutters.
+// These must all be set with the comparable units.
+$column-width : 4em !default;
+$gutter-width : 1em !default;
+
+// Padding on the left and right of a Grid Container.
+$grid-padding : $gutter-width !default;
+
+// ---------------------------------------------------------------------------
+// Advanced Settings
+
+// From Direction:
+// Controls for right-to-left or bi-directional sites.
+$from-direction : left !default;
+
+// Omega Float Direction:
+// The direction that +omega elements are floated by deafult.
+$omega-float : opposite-position($from-direction) !default;
+
+// Container Width:
+// Override the total width of your grid, using any length (50em, 75%, etc.)
+$container-width : false !default;
+
+// Container Style:
+// 'magic' - Static (fixed or elastic) when there's enough space,
+// fluid when there isn't. This is the SUSY MAGIC SAUCE(TM).
+// 'static' - Forces the grid container to remain static at all times.
+// 'fluid' - Forces the grid to remain fluid at all times.
+// (this will overrule any static $container-width settings)
+$container-style : magic !default;
+
+// Border-Box Sizing
+// Adjust the grid math appropriately for box-sizing: border-box;
+// Warning: This does not actually apply the new box model!
+// In most cases you can ignore this setting,
+// and simply apply the border-box-sizing mixin.
+$border-box-sizing : false !default;
+
+// Pixel Values only:
+// Make sure only pixel values are set for the container width.
+$pixel-values-only : false !default;
+
+// ---------------------------------------------------------------------------
+// IE Settings
+
+// When you are using a seperate IE stylesheet,
+// you can use these settings to control the output of at-breakpoint.
+// By default, at-breakpoint will output media-queries as well as
+// any defined ie-fallback classes.
+$breakpoint-media-output : true !default;
+$breakpoint-ie-output : true !default;
+
+// Danger Zone! Only set as 'true' in IE-specific style sheets.
+$breakpoint-raw-output : false !default;
diff --git a/_sass/vendor/susy/susy/output/_float.scss b/_sass/vendor/susy/susy/output/_float.scss
new file mode 100644
index 00000000..9c24051c
--- /dev/null
+++ b/_sass/vendor/susy/susy/output/_float.scss
@@ -0,0 +1,9 @@
+// Float API
+// =========
+
+@import "shared";
+
+@import "float/container";
+@import "float/span";
+@import "float/end";
+@import "float/isolate";
diff --git a/_sass/vendor/susy/susy/output/_shared.scss b/_sass/vendor/susy/susy/output/_shared.scss
new file mode 100644
index 00000000..dd9df4ed
--- /dev/null
+++ b/_sass/vendor/susy/susy/output/_shared.scss
@@ -0,0 +1,15 @@
+// Shared API
+// ==========
+
+@import "support";
+
+@import "shared/inspect";
+@import "shared/output";
+@import "shared/direction";
+@import "shared/background";
+@import "shared/container";
+@import "shared/margins";
+@import "shared/padding";
+
+
+
diff --git a/_sass/vendor/susy/susy/output/_support.scss b/_sass/vendor/susy/susy/output/_support.scss
new file mode 100644
index 00000000..53dbc9c3
--- /dev/null
+++ b/_sass/vendor/susy/susy/output/_support.scss
@@ -0,0 +1,9 @@
+// Susy Browser Support
+// ====================
+
+@import "support/support";
+@import "support/prefix";
+@import "support/background";
+@import "support/box-sizing";
+@import "support/rem";
+@import "support/clearfix";
diff --git a/_sass/vendor/susy/susy/output/float/_container.scss b/_sass/vendor/susy/susy/output/float/_container.scss
new file mode 100644
index 00000000..121eb11a
--- /dev/null
+++ b/_sass/vendor/susy/susy/output/float/_container.scss
@@ -0,0 +1,16 @@
+// Float Container API
+// ===================
+
+// Float Container
+// ---------------
+// - [$width] :
+// - [$justify] : left | center | right
+// - [$math] : fluid | static
+@mixin float-container(
+ $width,
+ $justify: auto auto,
+ $property: max-width
+) {
+ @include susy-clearfix;
+ @include container-output($width, $justify, $property);
+}
diff --git a/_sass/vendor/susy/susy/output/float/_end.scss b/_sass/vendor/susy/susy/output/float/_end.scss
new file mode 100644
index 00000000..3369997f
--- /dev/null
+++ b/_sass/vendor/susy/susy/output/float/_end.scss
@@ -0,0 +1,40 @@
+// Float Ends API
+// ==============
+
+// Susy End Defaults
+// -----------------
+// - PRIVATE
+@include susy-defaults((
+ last-flow: to,
+));
+
+// Float Last
+// ----------
+// - [$flow] : ltr | rtl
+@mixin float-last(
+ $flow: map-get($susy-defaults, flow),
+ $last-flow: map-get($susy-defaults, last-flow),
+ $margin: 0
+) {
+ $to: to($flow);
+
+ $output: (
+ float: if($last-flow == to, $to, null),
+ margin-#{$to}: $margin,
+ );
+
+ @include output($output);
+}
+
+// Float First
+// -----------
+// - [$flow] : ltr | rtl
+@mixin float-first(
+ $flow: map-get($susy-defaults, flow)
+) {
+ $output: (
+ margin-#{from($flow)}: 0,
+ );
+
+ @include output($output);
+}
diff --git a/_sass/vendor/susy/susy/output/float/_isolate.scss b/_sass/vendor/susy/susy/output/float/_isolate.scss
new file mode 100644
index 00000000..4dd3c230
--- /dev/null
+++ b/_sass/vendor/susy/susy/output/float/_isolate.scss
@@ -0,0 +1,22 @@
+// Float Isolation API
+// ===================
+
+// Isolate Output
+// --------------
+// - $push :
+// - [$flow] : ltr | rtl
+@mixin isolate-output(
+ $push,
+ $flow: map-get($susy-defaults, flow)
+) {
+ $to: to($flow);
+ $from: from($flow);
+
+ $output: (
+ float: $from,
+ margin-#{$from}: $push,
+ margin-#{$to}: -100%,
+ );
+
+ @include output($output);
+}
diff --git a/_sass/vendor/susy/susy/output/float/_span.scss b/_sass/vendor/susy/susy/output/float/_span.scss
new file mode 100644
index 00000000..5b732ccb
--- /dev/null
+++ b/_sass/vendor/susy/susy/output/float/_span.scss
@@ -0,0 +1,35 @@
+// Float Span API
+// ==============
+
+// Float Span Output
+// -----------------
+// - $width :
+// - [$float] : from | to
+// - [$margin-before] :
+// - [$margin-after] :
+// - [$padding-before] :
+// - [$padding-after] :
+// - [$flow] : ltr | rtl
+@mixin float-span-output(
+ $width,
+ $float : from,
+ $margin-before : null,
+ $margin-after : null,
+ $padding-before : null,
+ $padding-after : null,
+ $flow : map-get($susy-defaults, flow)
+) {
+ $to : to($flow);
+ $from : from($flow);
+
+ $output: (
+ width: $width,
+ float: if($float == to, $to, null) or if($float == from, $from, null),
+ margin-#{$from}: $margin-before,
+ margin-#{$to}: $margin-after,
+ padding-#{$from}: $padding-before,
+ padding-#{$to}: $padding-after,
+ );
+
+ @include output($output);
+}
diff --git a/_sass/vendor/susy/susy/output/shared/_background.scss b/_sass/vendor/susy/susy/output/shared/_background.scss
new file mode 100644
index 00000000..c230f613
--- /dev/null
+++ b/_sass/vendor/susy/susy/output/shared/_background.scss
@@ -0,0 +1,26 @@
+// Grid Background API
+// ===================
+// - Sub-pixel rounding can lead to several pixels variation between browsers.
+
+// Grid Background Output
+// ----------------------
+// - $image: background-image
+// - $size: background-size
+// - $clip: background-clip
+// - [$flow]: ltr | rtl
+@mixin background-grid-output (
+ $image,
+ $size: null,
+ $clip: null,
+ $flow: map-get($susy-defaults, flow)
+) {
+ $output: (
+ background-image: $image,
+ background-size: $size,
+ background-origin: $clip,
+ background-clip: $clip,
+ background-position: from($flow) top,
+ );
+
+ @include output($output);
+}
diff --git a/_sass/vendor/susy/susy/output/shared/_container.scss b/_sass/vendor/susy/susy/output/shared/_container.scss
new file mode 100644
index 00000000..7c7d4f17
--- /dev/null
+++ b/_sass/vendor/susy/susy/output/shared/_container.scss
@@ -0,0 +1,21 @@
+// Shared Container API
+// ====================
+
+// Container Output
+// ----------------
+// - [$width] :
+// - [$justify] : left | center | right
+// - [$math] : fluid | static
+@mixin container-output(
+ $width,
+ $justify: auto auto,
+ $property: max-width
+) {
+ $output: (
+ #{$property}: $width or 100%,
+ margin-left: nth($justify, 1),
+ margin-right: nth($justify, 2),
+ );
+
+ @include output($output);
+}
diff --git a/_sass/vendor/susy/susy/output/shared/_direction.scss b/_sass/vendor/susy/susy/output/shared/_direction.scss
new file mode 100644
index 00000000..abb9c36f
--- /dev/null
+++ b/_sass/vendor/susy/susy/output/shared/_direction.scss
@@ -0,0 +1,42 @@
+// Direction Helpers
+// =================
+
+// Susy Flow Defaults
+// ------------------
+// - PRIVATE
+@include susy-defaults((
+ flow: ltr,
+));
+
+// Get Direction
+// -------------
+// Return the 'from' or 'to' direction of a ltr or rtl flow.
+// - [$flow] : ltr | rtl
+// - [$key] : from | to
+@function get-direction(
+ $flow: map-get($susy-defaults, flow),
+ $key: from
+) {
+ $return: if($flow == rtl, (from: right, to: left), (from: left, to: right));
+ @return map-get($return, $key);
+}
+
+// To
+// --
+// Return the 'to' direction of a flow
+// - [$flow] : ltr | rtl
+@function to(
+ $flow: map-get($susy-defaults, flow)
+) {
+ @return get-direction($flow, to);
+}
+
+// From
+// ----
+// Return the 'from' direction of a flow
+// - [$flow] : ltr | rtl
+@function from(
+ $flow: map-get($susy-defaults, flow)
+) {
+ @return get-direction($flow, from);
+}
diff --git a/_sass/vendor/susy/susy/output/shared/_inspect.scss b/_sass/vendor/susy/susy/output/shared/_inspect.scss
new file mode 100644
index 00000000..b0af9b6d
--- /dev/null
+++ b/_sass/vendor/susy/susy/output/shared/_inspect.scss
@@ -0,0 +1,25 @@
+// Debugging
+// =========
+
+// Susy Inspect
+// ------------
+// Output arguments passed to a inspect.
+// - $mixin :
+// - $inspec :
+
+@mixin susy-inspect(
+ $mixin,
+ $inspect
+) {
+ $show: false;
+
+ @each $item in $inspect {
+ @if index($item, inspect) {
+ $show: true;
+ }
+ }
+
+ @if $show or susy-get(debug inspect) {
+ -susy-#{$mixin}: inspect($inspect);
+ }
+}
diff --git a/_sass/vendor/susy/susy/output/shared/_margins.scss b/_sass/vendor/susy/susy/output/shared/_margins.scss
new file mode 100644
index 00000000..cd73e8cf
--- /dev/null
+++ b/_sass/vendor/susy/susy/output/shared/_margins.scss
@@ -0,0 +1,23 @@
+// Margins API
+// ===========
+
+// Margin Output
+// -------------
+// - $before :
+// - $after :
+// - [$flow] : ltr | rtl
+@mixin margin-output(
+ $before,
+ $after,
+ $flow: map-get($susy-defaults, flow)
+) {
+ $to: to($flow);
+ $from: from($flow);
+
+ $output: (
+ margin-#{$from}: $before,
+ margin-#{$to}: $after,
+ );
+
+ @include output($output);
+}
diff --git a/_sass/vendor/susy/susy/output/shared/_output.scss b/_sass/vendor/susy/susy/output/shared/_output.scss
new file mode 100644
index 00000000..20fc2d61
--- /dev/null
+++ b/_sass/vendor/susy/susy/output/shared/_output.scss
@@ -0,0 +1,14 @@
+// Output
+// ======
+
+// Output
+// ------
+// Output CSS with proper browser support.
+// - $styles :
+@mixin output(
+ $styles
+) {
+ @each $prop, $val in $styles {
+ @include susy-support($prop, $val);
+ }
+}
diff --git a/_sass/vendor/susy/susy/output/shared/_padding.scss b/_sass/vendor/susy/susy/output/shared/_padding.scss
new file mode 100644
index 00000000..5069d0cb
--- /dev/null
+++ b/_sass/vendor/susy/susy/output/shared/_padding.scss
@@ -0,0 +1,23 @@
+// Padding API
+// ===========
+
+// Padding Output
+// --------------
+// - $before :
+// - $after :
+// - [$flow] : ltr | rtl
+@mixin padding-output(
+ $before,
+ $after,
+ $flow: map-get($susy-defaults, flow)
+) {
+ $to: to($flow);
+ $from: from($flow);
+
+ $output: (
+ padding-#{$from}: $before,
+ padding-#{$to}: $after,
+ );
+
+ @include output($output);
+}
diff --git a/_sass/vendor/susy/susy/output/support/_background.scss b/_sass/vendor/susy/susy/output/support/_background.scss
new file mode 100644
index 00000000..b1415028
--- /dev/null
+++ b/_sass/vendor/susy/susy/output/support/_background.scss
@@ -0,0 +1,58 @@
+// Background Properties
+// =====================
+
+// Susy Background Image
+// ---------------------
+// Check for an existing support mixin, or provide a simple fallback.
+// - $image:
+@mixin susy-background-image(
+ $image
+) {
+ @if susy-support(background-image, (mixin: background-image), $warn: false) {
+ @include background-image($image...);
+ } @else {
+ background-image: $image;
+ }
+}
+
+// Susy Background Size
+// ---------------------
+// Check for an existing support mixin, or provide a simple fallback.
+// - $image:
+@mixin susy-background-size(
+ $size
+) {
+ @if susy-support(background-options, (mixin: background-size)) {
+ @include background-size($size);
+ } @else {
+ background-size: $size;
+ }
+}
+
+// Susy Background Origin
+// ----------------------
+// Check for an existing support mixin, or provide a simple fallback.
+// - $image:
+@mixin susy-background-origin(
+ $origin
+) {
+ @if susy-support(background-options, (mixin: background-origin)) {
+ @include background-origin($origin);
+ } @else {
+ background-origin: $origin;
+ }
+}
+
+// Susy Background Clip
+// --------------------
+// Check for an existing support mixin, or provide a simple fallback.
+// - $image:
+@mixin susy-background-clip(
+ $clip
+) {
+ @if susy-support(background-options, (mixin: background-clip)) {
+ @include background-clip($clip);
+ } @else {
+ background-clip: $clip;
+ }
+}
diff --git a/_sass/vendor/susy/susy/output/support/_box-sizing.scss b/_sass/vendor/susy/susy/output/support/_box-sizing.scss
new file mode 100644
index 00000000..bf50bbc9
--- /dev/null
+++ b/_sass/vendor/susy/susy/output/support/_box-sizing.scss
@@ -0,0 +1,19 @@
+// Box Sizing
+// ==========
+
+// Box Sizing
+// ----------
+// Check for an existing support mixin, or provide a simple fallback.
+// - $model:
+@mixin susy-box-sizing(
+ $model: content-box
+) {
+ @if $model {
+ @if susy-support(box-sizing, (mixin: box-sizing), $warn: false) {
+ @include box-sizing($model);
+ } @else {
+ $prefix: (moz, webkit, official);
+ @include susy-prefix(box-sizing, $model, $prefix);
+ }
+ }
+}
diff --git a/_sass/vendor/susy/susy/output/support/_clearfix.scss b/_sass/vendor/susy/susy/output/support/_clearfix.scss
new file mode 100644
index 00000000..48c6e7b7
--- /dev/null
+++ b/_sass/vendor/susy/susy/output/support/_clearfix.scss
@@ -0,0 +1,18 @@
+// Susy Fallback Clearfix
+// ======================
+
+
+// Clearfix
+// --------
+// Check for an existing support mixin, or provide a simple fallback.
+@mixin susy-clearfix {
+ @if susy-support(clearfix, (mixin: clearfix)) {
+ @include clearfix;
+ } @else {
+ &:after {
+ content: " ";
+ display: block;
+ clear: both;
+ }
+ }
+}
diff --git a/_sass/vendor/susy/susy/output/support/_prefix.scss b/_sass/vendor/susy/susy/output/support/_prefix.scss
new file mode 100644
index 00000000..f4e26ecc
--- /dev/null
+++ b/_sass/vendor/susy/susy/output/support/_prefix.scss
@@ -0,0 +1,19 @@
+// Susy Prefix
+// ===========
+
+// Prefix
+// ------
+// Output simple prefixed properties.
+// - $prop :
+// - $val :
+// - [$prefix] :
+@mixin susy-prefix(
+ $prop,
+ $val,
+ $prefix: official
+) {
+ @each $fix in $prefix {
+ $fix: if($fix == official or not($fix), $prop, '-#{$fix}-#{$prop}');
+ @include susy-rem($fix, $val);
+ }
+}
diff --git a/_sass/vendor/susy/susy/output/support/_rem.scss b/_sass/vendor/susy/susy/output/support/_rem.scss
new file mode 100644
index 00000000..0a807f79
--- /dev/null
+++ b/_sass/vendor/susy/susy/output/support/_rem.scss
@@ -0,0 +1,22 @@
+// rem Support
+// ===========
+
+// rem
+// ---
+// Check for an existing support mixin, or output directly.
+// - $prop :
+// - $val :
+@mixin susy-rem(
+ $prop,
+ $val
+) {
+ $_reqs: (
+ variable: rhythm-unit rem-with-px-fallback,
+ mixin: rem,
+ );
+ @if susy-support(rem, $_reqs, $warn: false) and $rhythm-unit == rem {
+ @include rem($prop, $val);
+ } @else {
+ #{$prop}: $val;
+ }
+}
diff --git a/_sass/vendor/susy/susy/output/support/_support.scss b/_sass/vendor/susy/susy/output/support/_support.scss
new file mode 100644
index 00000000..96991135
--- /dev/null
+++ b/_sass/vendor/susy/susy/output/support/_support.scss
@@ -0,0 +1,85 @@
+// Browser Support
+// ===============
+
+// Susy Support Defaults
+// ---------------------
+@include susy-defaults((
+ use-custom: (
+ clearfix: false,
+ background-image: true,
+ background-options: false,
+ breakpoint: true,
+ box-sizing: true,
+ rem: true,
+ ),
+));
+
+
+// Susy Support [mixin]
+// --------------------
+// Send property-value pairs to the proper support modules.
+// - $prop :
+// - $val :
+@mixin susy-support(
+ $prop,
+ $val
+) {
+ // Background Support
+ @if $prop == background-image {
+ @include susy-background-image($val);
+ } @else if $prop == background-size {
+ @include susy-background-size($val);
+ } @else if $prop == background-origin {
+ @include susy-background-origin($val);
+ } @else if $prop == background-clip {
+ @include susy-background-clip($val);
+ }
+
+ // Box-Sizing Support
+ @else if $prop == box-sizing {
+ @include susy-box-sizing($val);
+ }
+
+ // Rem Support
+ @else {
+ @include susy-rem($prop, $val);
+ }
+}
+
+
+// Susy Support [function]
+// -----------------------
+// Check for support of a feature.
+// - $feature :
+// - e.g "rem" or "box-sizing"
+// - $requirements :
+// - e.g (variable: rem-with-px-fallback, mixin: rem)
+// - $warn :
+@function susy-support(
+ $feature,
+ $requirements: (),
+ $warn: true
+) {
+ $_support: susy-get(use-custom $feature);
+
+ @if $_support {
+ $_fail: false;
+
+ @each $_type, $_req in $requirements {
+ @each $_i in $_req {
+ $_pass: call(unquote("#{$_type}-exists"), $_i);
+
+ @if not($_pass) {
+ $_fail: true;
+ @if $warn {
+ @warn "You requested custom support of #{$feature}, but the #{$_i} #{$_type} is not available.";
+ }
+ }
+ }
+ }
+
+ $_support: if($_fail, false, $_support);
+ }
+
+ @return $_support;
+}
diff --git a/_sass/vendor/susy/susy/su/_grid.scss b/_sass/vendor/susy/susy/su/_grid.scss
new file mode 100644
index 00000000..7fe2a02d
--- /dev/null
+++ b/_sass/vendor/susy/susy/su/_grid.scss
@@ -0,0 +1,103 @@
+// Column math
+// ===========
+
+
+// Is Symmetrical
+// --------------
+// Returns true if a grid is symmetrical.
+// - [$columns] : |
+@function is-symmetrical(
+ $columns: susy-get(columns)
+) {
+ $columns: valid-columns($columns);
+ @return if(type-of($columns) == number, $columns, null);
+}
+
+
+// Susy Count
+// ----------
+// Find the number of columns in a given layout
+// - [$columns] : |
+@function susy-count(
+ $columns: susy-get(columns)
+) {
+ $columns: valid-columns($columns);
+ @return is-symmetrical($columns) or length($columns);
+}
+
+
+// Susy Sum
+// --------
+// Find the total sum of column-units in a layout
+// - [$columns] : |
+// - [$gutters] :
+// - [$spread] : false/narrow | wide | wider
+@function susy-sum(
+ $columns : susy-get(columns),
+ $gutters : susy-get(gutters),
+ $spread : false
+) {
+ $columns: valid-columns($columns);
+ $gutters: valid-gutters($gutters);
+
+ $spread: if($spread == wide, 0, if($spread == wider, 1, -1));
+ $gutter-sum: (susy-count($columns) + $spread) * $gutters;
+ $column-sum: is-symmetrical($columns);
+
+ @if not($column-sum) {
+ @each $column in $columns {
+ $column-sum: ($column-sum or 0) + $column;
+ }
+ }
+
+ @return $column-sum + $gutter-sum;
+}
+
+
+// Susy Slice
+// ----------
+// Return a subset of columns at a given location.
+// - $span :
+// - $location :
+// - [$columns] : |
+@function susy-slice(
+ $span,
+ $location,
+ $columns: susy-get(columns)
+) {
+ $columns: valid-columns($columns);
+ $sub-columns: $span;
+
+ @if not(is-symmetrical($columns)) {
+ $location: $location or 1;
+ $sub-columns: ();
+ @for $i from $location to ($location + $span) {
+ $sub-columns: append($sub-columns, nth($columns, $i));
+ }
+ }
+
+ @return $sub-columns;
+}
+
+
+// Susy
+// ----
+// Find the sum of a column-span.
+// - $span :
+// - $location :
+// - [$columns] : |
+// - [$gutters] :
+// - [$spread] : false/narrow | wide | wider
+@function susy(
+ $span,
+ $location : false,
+ $columns : susy-get(columns),
+ $gutters : susy-get(gutters),
+ $spread : false
+) {
+ $columns: valid-columns($columns);
+ $gutters: valid-gutters($gutters);
+ $span: susy-slice($span, $location, $columns);
+
+ @return susy-sum($span, $gutters, $spread);
+}
diff --git a/_sass/vendor/susy/susy/su/_settings.scss b/_sass/vendor/susy/susy/su/_settings.scss
new file mode 100644
index 00000000..8b439aaa
--- /dev/null
+++ b/_sass/vendor/susy/susy/su/_settings.scss
@@ -0,0 +1,73 @@
+// Settings
+// ========
+
+// Version
+// -------
+$su-version: 1.1;
+
+
+// Default Settings
+// ----------------
+// PRIVATE: The basic settings
+$susy-defaults: (
+ columns: 4,
+ gutters: .25,
+);
+
+
+// User Settings
+// -------------
+// - Define the $susy variable with a map of your own settings.
+// - Set EITHER $column-width OR $container
+// - Use $column-width for static layouts
+$susy: () !default;
+
+
+// Susy Defaults
+// -------------
+// PRIVATE: Add defaults to Susy
+@mixin susy-defaults(
+ $defaults
+) {
+ $susy-defaults: map-merge($susy-defaults, $defaults) !global;
+}
+
+
+// Susy Set
+// --------
+// Change one setting
+// - $key : setting name
+// - $value : setting value
+@mixin susy-set(
+ $key-value...
+) {
+ $susy: _susy-deep-set($susy, $key-value...) !global;
+}
+
+
+// Susy Get
+// --------
+// Return one setting from a grid
+// - $key :
+// - $layout :
+@function susy-get(
+ $key,
+ $layout: map-merge($susy-defaults, $susy)
+) {
+ $layout: parse-grid($layout);
+ $_options: $layout $susy $susy-defaults;
+ $_break: false;
+ $_return: null;
+
+ @each $opt in $_options {
+ @if type-of($opt) == map and not($_break) {
+ $_keyset: _susy-deep-has-key($opt, $key...);
+ @if $_keyset {
+ $_return: _susy-deep-get($opt, $key...);
+ $_break: true;
+ }
+ }
+ }
+
+ @return $_return;
+}
diff --git a/_sass/vendor/susy/susy/su/_utilities.scss b/_sass/vendor/susy/susy/su/_utilities.scss
new file mode 100644
index 00000000..b737f212
--- /dev/null
+++ b/_sass/vendor/susy/susy/su/_utilities.scss
@@ -0,0 +1,111 @@
+// Map Functions
+// =============
+
+
+// Truncate List
+// -------------
+// - Return a list, truncated to a given length
+@function _susy-truncate-list(
+ $list,
+ $length
+) {
+ $_return: ();
+
+ @for $i from 1 through length($list) {
+ $_return: if($i <= $length, append($_return, nth($list, $i)), $_return);
+ }
+
+ @return $_return;
+}
+
+
+// Deep Get
+// --------
+// - Return a value deep in nested maps
+@function _susy-deep-get(
+ $map,
+ $keys...
+) {
+ $_return: $map;
+
+ @each $key in $keys {
+ @if type-of($_return) == map {
+ $_return: map-get($_return, $key);
+ }
+ }
+
+ @return $_return;
+}
+
+
+// Deep Set
+// --------
+// - Set a value deep in nested maps
+@function _susy-deep-set(
+ $map,
+ $keys-value...
+) {
+ $_value: nth($keys-value, -1);
+ $_keys: _susy-truncate-list($keys-value, length($keys-value) - 1);
+ $_length: length($_keys);
+ $_return: ();
+
+ @for $i from 1 through $_length {
+ $_n: 0 - $i;
+ $_level: _susy-truncate-list($_keys, $_length + $_n);
+ $_level: _susy-deep-get($map, $_level...);
+ $_merge: nth($_keys, $_n);
+ $_merge: ($_merge: $_value);
+ $_return: if($_level, map-merge($_level, $_merge), $_merge);
+ $_value: $_return;
+ }
+
+ @return $_return;
+}
+
+
+// Deep Merge
+// ----------
+// Return 2 objects of any depth, merged
+@function _susy-deep-merge(
+ $map1,
+ $map2
+) {
+
+ @if type-of($map1) != map or type-of($map2) != map {
+ $map1: $map2;
+ } @else {
+ @each $key, $value in $map2 {
+ $_new: ($key: _susy_deep-merge(map-get($map1, $key), $value));
+ $map1: map-merge($map1, $_new);
+ }
+ }
+
+ @return $map1;
+}
+
+
+// Deep Has-Key
+// ------------
+// - Return true if a deep key exists
+@function _susy-deep-has-key(
+ $map,
+ $keys...
+) {
+ $_return: null;
+ $_stop: false;
+
+ @each $key in $keys {
+ @if not($_stop) {
+ $_return: map-has-key($map, $key);
+ }
+
+ @if $_return {
+ $map: map-get($map, $key);
+ } @else {
+ $_stop: true;
+ }
+ }
+
+ @return $_return;
+}
diff --git a/_sass/vendor/susy/susy/su/_validation.scss b/_sass/vendor/susy/susy/su/_validation.scss
new file mode 100644
index 00000000..4c6ab8da
--- /dev/null
+++ b/_sass/vendor/susy/susy/su/_validation.scss
@@ -0,0 +1,57 @@
+// Math Validation
+// ===============
+
+
+// Valid Columns
+// -------------
+// Check that a column setting is valid.
+@function valid-columns(
+ $columns,
+ $silent: false
+) {
+ $type: type-of($columns);
+ $return: null;
+
+ @if $type == number and unitless($columns) {
+ $return: $columns;
+ } @else if $type == list {
+ $fail: null;
+ @each $col in $columns {
+ @if type-of($col) == number {
+ $fail: $fail or if(unitless($col), null, true);
+ } @else {
+ $fail: true;
+ }
+ }
+ $return: if($fail, $return, $columns);
+ }
+
+ @if $return != $columns and not($silent) {
+ $return: null;
+ $warn: '$columns must be a unitless number or list of unitless numbers.';
+ @warn $warn + ' Current value [#{$type}]: #{$columns}';
+ }
+
+ @return $return;
+}
+
+
+// Valid Gutters
+// -------------
+// Check that a gutter setting is valid.
+@function valid-gutters(
+ $gutters,
+ $silent: false
+) {
+ $type: type-of($gutters);
+ $return: null;
+
+ @if $type == number and unitless($gutters) {
+ $return: $gutters;
+ } @else if not($silent) {
+ $warn: '$gutters must be a unitless number.';
+ @warn $warn + ' Current value [#{$type}]: #{$gutters}';
+ }
+
+ @return $return;
+}
diff --git a/about.md b/about.md
deleted file mode 100644
index d0e6de5e..00000000
--- a/about.md
+++ /dev/null
@@ -1,15 +0,0 @@
----
-layout: page
-title: About
-permalink: /about/
----
-
-This is the base Jekyll theme. You can find out more info about customizing your Jekyll theme, as well as basic Jekyll usage documentation at [jekyllrb.com](http://jekyllrb.com/)
-
-You can find the source code for the Jekyll new theme at:
-{% include icon-github.html username="jglovier" %} /
-[jekyll-new](https://github.com/jglovier/jekyll-new)
-
-You can find the source code for Jekyll at
-{% include icon-github.html username="jekyll" %} /
-[jekyll](https://github.com/jekyll/jekyll)
diff --git a/assets/css/main.scss b/assets/css/main.scss
new file mode 100644
index 00000000..fbc2a31c
--- /dev/null
+++ b/assets/css/main.scss
@@ -0,0 +1,39 @@
+---
+---
+
+/*
+ * Minimal Mistakes Jekyll Theme
+ *
+ * - Michael Rose
+ * - mademistakes.com
+ * - https://twitter.com/mmistakes
+ *
+*/
+
+@import "vendor/breakpoint/breakpoint"; // media query mixins
+@import "variables";
+@import "mixins";
+@import "vendor/susy/susy";
+
+@import "reset";
+@import "base";
+
+@import "utilities";
+@import "animations";
+@import "tables";
+@import "buttons";
+@import "notices";
+@import "masthead";
+@import "navigation";
+@import "footer";
+@import "syntax";
+
+@import "forms";
+
+@import "page";
+@import "archive";
+@import "sidebar";
+
+@import "vendor/font-awesome/font-awesome";
+@import "vendor/magnific-popup/magnific-popup";
+@import "print";
\ No newline at end of file
diff --git a/assets/fonts/FontAwesome.otf b/assets/fonts/FontAwesome.otf
new file mode 100644
index 00000000..d4de13e8
Binary files /dev/null and b/assets/fonts/FontAwesome.otf differ
diff --git a/assets/fonts/fontawesome-webfont.eot b/assets/fonts/fontawesome-webfont.eot
new file mode 100644
index 00000000..c7b00d2b
Binary files /dev/null and b/assets/fonts/fontawesome-webfont.eot differ
diff --git a/assets/fonts/fontawesome-webfont.svg b/assets/fonts/fontawesome-webfont.svg
new file mode 100644
index 00000000..8b66187f
--- /dev/null
+++ b/assets/fonts/fontawesome-webfont.svg
@@ -0,0 +1,685 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/assets/fonts/fontawesome-webfont.ttf b/assets/fonts/fontawesome-webfont.ttf
new file mode 100644
index 00000000..f221e50a
Binary files /dev/null and b/assets/fonts/fontawesome-webfont.ttf differ
diff --git a/assets/fonts/fontawesome-webfont.woff b/assets/fonts/fontawesome-webfont.woff
new file mode 100644
index 00000000..6e7483cf
Binary files /dev/null and b/assets/fonts/fontawesome-webfont.woff differ
diff --git a/assets/fonts/fontawesome-webfont.woff2 b/assets/fonts/fontawesome-webfont.woff2
new file mode 100644
index 00000000..7eb74fd1
Binary files /dev/null and b/assets/fonts/fontawesome-webfont.woff2 differ
diff --git a/assets/icons/octicons/LICENSE b/assets/icons/octicons/LICENSE
new file mode 100644
index 00000000..4cf2020c
--- /dev/null
+++ b/assets/icons/octicons/LICENSE
@@ -0,0 +1,21 @@
+MIT License
+
+Copyright (c) 2012-2016 GitHub, Inc.
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+SOFTWARE.
diff --git a/assets/icons/octicons/font/_octicons.scss b/assets/icons/octicons/font/_octicons.scss
new file mode 100644
index 00000000..7341044e
--- /dev/null
+++ b/assets/icons/octicons/font/_octicons.scss
@@ -0,0 +1,380 @@
+$octicons-font-path: "./" !default;
+
+
+@font-face {
+ font-family:"Octicons";
+ src:url("#{$octicons-font-path}octicons.eot?9a80b0fcce5ace0475f72ac5567f9158");
+ src:url("#{$octicons-font-path}octicons.eot?#iefix") format("embedded-opentype"),
+ url("#{$octicons-font-path}octicons.woff2?9a80b0fcce5ace0475f72ac5567f9158") format("woff2"),
+ url("#{$octicons-font-path}octicons.woff?9a80b0fcce5ace0475f72ac5567f9158") format("woff"),
+ url("#{$octicons-font-path}octicons.ttf?9a80b0fcce5ace0475f72ac5567f9158") format("truetype"),
+ url("#{$octicons-font-path}octicons.svg?9a80b0fcce5ace0475f72ac5567f9158#octicons") format("svg");
+ font-weight:normal;
+ font-style:normal;
+}
+
+
+/*
+
+.octicon is optimized for 16px.
+.mega-octicon is optimized for 32px but can be used larger.
+
+*/
+.octicon, .mega-octicon {
+ font: normal normal normal 16px/1 Octicons;
+ display: inline-block;
+ text-decoration: none;
+ text-rendering: auto;
+ -webkit-font-smoothing: antialiased;
+ -moz-osx-font-smoothing: grayscale;
+ -webkit-user-select: none;
+ -ms-user-select: none;
+ user-select: none;
+ speak: none;
+}
+.mega-octicon { font-size: 32px; }
+
+.octicon-alert:before { content:"\f02d"; }
+
+.octicon-arrow-down:before { content:"\f03f"; }
+
+.octicon-arrow-left:before { content:"\f040"; }
+
+.octicon-arrow-right:before { content:"\f03e"; }
+
+.octicon-arrow-small-down:before { content:"\f0a0"; }
+
+.octicon-arrow-small-left:before { content:"\f0a1"; }
+
+.octicon-arrow-small-right:before { content:"\f071"; }
+
+.octicon-arrow-small-up:before { content:"\f09f"; }
+
+.octicon-arrow-up:before { content:"\f03d"; }
+
+.octicon-beaker:before { content:"\f0dd"; }
+
+.octicon-bell:before { content:"\f0de"; }
+
+.octicon-bold:before { content:"\f0e2"; }
+
+.octicon-book:before { content:"\f007"; }
+
+.octicon-bookmark:before { content:"\f07b"; }
+
+.octicon-briefcase:before { content:"\f0d3"; }
+
+.octicon-broadcast:before { content:"\f048"; }
+
+.octicon-browser:before { content:"\f0c5"; }
+
+.octicon-bug:before { content:"\f091"; }
+
+.octicon-calendar:before { content:"\f068"; }
+
+.octicon-check:before { content:"\f03a"; }
+
+.octicon-checklist:before { content:"\f076"; }
+
+.octicon-chevron-down:before { content:"\f0a3"; }
+
+.octicon-chevron-left:before { content:"\f0a4"; }
+
+.octicon-chevron-right:before { content:"\f078"; }
+
+.octicon-chevron-up:before { content:"\f0a2"; }
+
+.octicon-circle-slash:before { content:"\f084"; }
+
+.octicon-circuit-board:before { content:"\f0d6"; }
+
+.octicon-clippy:before { content:"\f035"; }
+
+.octicon-clock:before { content:"\f046"; }
+
+.octicon-cloud-download:before { content:"\f00b"; }
+
+.octicon-cloud-upload:before { content:"\f00c"; }
+
+.octicon-code:before { content:"\f05f"; }
+
+.octicon-comment-discussion:before { content:"\f04f"; }
+
+.octicon-comment:before { content:"\f02b"; }
+
+.octicon-credit-card:before { content:"\f045"; }
+
+.octicon-dash:before { content:"\f0ca"; }
+
+.octicon-dashboard:before { content:"\f07d"; }
+
+.octicon-database:before { content:"\f096"; }
+
+.octicon-desktop-download:before { content:"\f0dc"; }
+
+.octicon-device-camera-video:before { content:"\f057"; }
+
+.octicon-device-camera:before { content:"\f056"; }
+
+.octicon-device-desktop:before { content:"\f27c"; }
+
+.octicon-device-mobile:before { content:"\f038"; }
+
+.octicon-diff-added:before { content:"\f06b"; }
+
+.octicon-diff-ignored:before { content:"\f099"; }
+
+.octicon-diff-modified:before { content:"\f06d"; }
+
+.octicon-diff-removed:before { content:"\f06c"; }
+
+.octicon-diff-renamed:before { content:"\f06e"; }
+
+.octicon-diff:before { content:"\f04d"; }
+
+.octicon-ellipses:before { content:"\f101"; }
+
+.octicon-ellipsis:before { content:"\f09a"; }
+
+.octicon-eye:before { content:"\f04e"; }
+
+.octicon-file-binary:before { content:"\f094"; }
+
+.octicon-file-code:before { content:"\f010"; }
+
+.octicon-file-directory:before { content:"\f016"; }
+
+.octicon-file-media:before { content:"\f012"; }
+
+.octicon-file-pdf:before { content:"\f014"; }
+
+.octicon-file-submodule:before { content:"\f017"; }
+
+.octicon-file-symlink-directory:before { content:"\f0b1"; }
+
+.octicon-file-symlink-file:before { content:"\f0b0"; }
+
+.octicon-file-text:before { content:"\f011"; }
+
+.octicon-file-zip:before { content:"\f013"; }
+
+.octicon-file:before { content:"\f102"; }
+
+.octicon-flame:before { content:"\f0d2"; }
+
+.octicon-fold:before { content:"\f0cc"; }
+
+.octicon-gear:before { content:"\f02f"; }
+
+.octicon-gift:before { content:"\f042"; }
+
+.octicon-gist-secret:before { content:"\f08c"; }
+
+.octicon-gist:before { content:"\f00e"; }
+
+.octicon-git-branch:before { content:"\f020"; }
+
+.octicon-git-commit:before { content:"\f01f"; }
+
+.octicon-git-compare:before { content:"\f0ac"; }
+
+.octicon-git-merge:before { content:"\f023"; }
+
+.octicon-git-pull-request:before { content:"\f009"; }
+
+.octicon-globe:before { content:"\f0b6"; }
+
+.octicon-grabber:before { content:"\f103"; }
+
+.octicon-graph:before { content:"\f043"; }
+
+.octicon-heart:before { content:"\2665"; }
+
+.octicon-history:before { content:"\f07e"; }
+
+.octicon-home:before { content:"\f08d"; }
+
+.octicon-horizontal-rule:before { content:"\f070"; }
+
+.octicon-hubot:before { content:"\f09d"; }
+
+.octicon-inbox:before { content:"\f0cf"; }
+
+.octicon-info:before { content:"\f059"; }
+
+.octicon-issue-closed:before { content:"\f028"; }
+
+.octicon-issue-opened:before { content:"\f026"; }
+
+.octicon-issue-reopened:before { content:"\f027"; }
+
+.octicon-italic:before { content:"\f0e4"; }
+
+.octicon-jersey:before { content:"\f019"; }
+
+.octicon-key:before { content:"\f049"; }
+
+.octicon-keyboard:before { content:"\f00d"; }
+
+.octicon-law:before { content:"\f0d8"; }
+
+.octicon-light-bulb:before { content:"\f000"; }
+
+.octicon-link-external:before { content:"\f07f"; }
+
+.octicon-link:before { content:"\f05c"; }
+
+.octicon-list-ordered:before { content:"\f062"; }
+
+.octicon-list-unordered:before { content:"\f061"; }
+
+.octicon-location:before { content:"\f060"; }
+
+.octicon-lock:before { content:"\f06a"; }
+
+.octicon-logo-gist:before { content:"\f0ad"; }
+
+.octicon-logo-github:before { content:"\f092"; }
+
+.octicon-mail-read:before { content:"\f03c"; }
+
+.octicon-mail-reply:before { content:"\f051"; }
+
+.octicon-mail:before { content:"\f03b"; }
+
+.octicon-mark-github:before { content:"\f00a"; }
+
+.octicon-markdown:before { content:"\f0c9"; }
+
+.octicon-megaphone:before { content:"\f077"; }
+
+.octicon-mention:before { content:"\f0be"; }
+
+.octicon-milestone:before { content:"\f075"; }
+
+.octicon-mirror:before { content:"\f024"; }
+
+.octicon-mortar-board:before { content:"\f0d7"; }
+
+.octicon-mute:before { content:"\f080"; }
+
+.octicon-no-newline:before { content:"\f09c"; }
+
+.octicon-octoface:before { content:"\f008"; }
+
+.octicon-organization:before { content:"\f037"; }
+
+.octicon-package:before { content:"\f0c4"; }
+
+.octicon-paintcan:before { content:"\f0d1"; }
+
+.octicon-pencil:before { content:"\f058"; }
+
+.octicon-person:before { content:"\f018"; }
+
+.octicon-pin:before { content:"\f041"; }
+
+.octicon-plug:before { content:"\f0d4"; }
+
+.octicon-plus-small:before { content:"\f104"; }
+
+.octicon-plus:before { content:"\f05d"; }
+
+.octicon-primitive-dot:before { content:"\f052"; }
+
+.octicon-primitive-square:before { content:"\f053"; }
+
+.octicon-pulse:before { content:"\f085"; }
+
+.octicon-question:before { content:"\f02c"; }
+
+.octicon-quote:before { content:"\f063"; }
+
+.octicon-radio-tower:before { content:"\f030"; }
+
+.octicon-reply:before { content:"\f105"; }
+
+.octicon-repo-clone:before { content:"\f04c"; }
+
+.octicon-repo-force-push:before { content:"\f04a"; }
+
+.octicon-repo-forked:before { content:"\f002"; }
+
+.octicon-repo-pull:before { content:"\f006"; }
+
+.octicon-repo-push:before { content:"\f005"; }
+
+.octicon-repo:before { content:"\f001"; }
+
+.octicon-rocket:before { content:"\f033"; }
+
+.octicon-rss:before { content:"\f034"; }
+
+.octicon-ruby:before { content:"\f047"; }
+
+.octicon-search:before { content:"\f02e"; }
+
+.octicon-server:before { content:"\f097"; }
+
+.octicon-settings:before { content:"\f07c"; }
+
+.octicon-shield:before { content:"\f0e1"; }
+
+.octicon-sign-in:before { content:"\f036"; }
+
+.octicon-sign-out:before { content:"\f032"; }
+
+.octicon-smiley:before { content:"\f0e7"; }
+
+.octicon-squirrel:before { content:"\f0b2"; }
+
+.octicon-star:before { content:"\f02a"; }
+
+.octicon-stop:before { content:"\f08f"; }
+
+.octicon-sync:before { content:"\f087"; }
+
+.octicon-tag:before { content:"\f015"; }
+
+.octicon-tasklist:before { content:"\f0e5"; }
+
+.octicon-telescope:before { content:"\f088"; }
+
+.octicon-terminal:before { content:"\f0c8"; }
+
+.octicon-text-size:before { content:"\f0e3"; }
+
+.octicon-three-bars:before { content:"\f05e"; }
+
+.octicon-thumbsdown:before { content:"\f0db"; }
+
+.octicon-thumbsup:before { content:"\f0da"; }
+
+.octicon-tools:before { content:"\f031"; }
+
+.octicon-trashcan:before { content:"\f0d0"; }
+
+.octicon-triangle-down:before { content:"\f05b"; }
+
+.octicon-triangle-left:before { content:"\f044"; }
+
+.octicon-triangle-right:before { content:"\f05a"; }
+
+.octicon-triangle-up:before { content:"\f0aa"; }
+
+.octicon-unfold:before { content:"\f039"; }
+
+.octicon-unmute:before { content:"\f0ba"; }
+
+.octicon-unverified:before { content:"\f0e8"; }
+
+.octicon-verified:before { content:"\f0e6"; }
+
+.octicon-versions:before { content:"\f064"; }
+
+.octicon-watch:before { content:"\f0e0"; }
+
+.octicon-x:before { content:"\f081"; }
+
+.octicon-zap:before { content:"\26a1"; }
+
diff --git a/assets/icons/octicons/font/octicons.css b/assets/icons/octicons/font/octicons.css
new file mode 100644
index 00000000..cb378a59
--- /dev/null
+++ b/assets/icons/octicons/font/octicons.css
@@ -0,0 +1,378 @@
+
+@font-face {
+ font-family:"Octicons";
+ src:url("octicons.eot?ef21c39f0ca9b1b5116e5eb7ac5eabe6");
+ src:url("octicons.eot?#iefix") format("embedded-opentype"),
+ url("octicons.woff2?ef21c39f0ca9b1b5116e5eb7ac5eabe6") format("woff2"),
+ url("octicons.woff?ef21c39f0ca9b1b5116e5eb7ac5eabe6") format("woff"),
+ url("octicons.ttf?ef21c39f0ca9b1b5116e5eb7ac5eabe6") format("truetype"),
+ url("octicons.svg?ef21c39f0ca9b1b5116e5eb7ac5eabe6#octicons") format("svg");
+ font-weight:normal;
+ font-style:normal;
+}
+
+
+/*
+
+.octicon is optimized for 16px.
+.mega-octicon is optimized for 32px but can be used larger.
+
+*/
+.octicon, .mega-octicon {
+ font: normal normal normal 16px/1 Octicons;
+ display: inline-block;
+ text-decoration: none;
+ text-rendering: auto;
+ -webkit-font-smoothing: antialiased;
+ -moz-osx-font-smoothing: grayscale;
+ -webkit-user-select: none;
+ -ms-user-select: none;
+ user-select: none;
+ speak: none;
+}
+.mega-octicon { font-size: 32px; }
+
+.octicon-alert:before { content:"\f02d"; }
+
+.octicon-arrow-down:before { content:"\f03f"; }
+
+.octicon-arrow-left:before { content:"\f040"; }
+
+.octicon-arrow-right:before { content:"\f03e"; }
+
+.octicon-arrow-small-down:before { content:"\f0a0"; }
+
+.octicon-arrow-small-left:before { content:"\f0a1"; }
+
+.octicon-arrow-small-right:before { content:"\f071"; }
+
+.octicon-arrow-small-up:before { content:"\f09f"; }
+
+.octicon-arrow-up:before { content:"\f03d"; }
+
+.octicon-beaker:before { content:"\f0dd"; }
+
+.octicon-bell:before { content:"\f0de"; }
+
+.octicon-bold:before { content:"\f0e2"; }
+
+.octicon-book:before { content:"\f007"; }
+
+.octicon-bookmark:before { content:"\f07b"; }
+
+.octicon-briefcase:before { content:"\f0d3"; }
+
+.octicon-broadcast:before { content:"\f048"; }
+
+.octicon-browser:before { content:"\f0c5"; }
+
+.octicon-bug:before { content:"\f091"; }
+
+.octicon-calendar:before { content:"\f068"; }
+
+.octicon-check:before { content:"\f03a"; }
+
+.octicon-checklist:before { content:"\f076"; }
+
+.octicon-chevron-down:before { content:"\f0a3"; }
+
+.octicon-chevron-left:before { content:"\f0a4"; }
+
+.octicon-chevron-right:before { content:"\f078"; }
+
+.octicon-chevron-up:before { content:"\f0a2"; }
+
+.octicon-circle-slash:before { content:"\f084"; }
+
+.octicon-circuit-board:before { content:"\f0d6"; }
+
+.octicon-clippy:before { content:"\f035"; }
+
+.octicon-clock:before { content:"\f046"; }
+
+.octicon-cloud-download:before { content:"\f00b"; }
+
+.octicon-cloud-upload:before { content:"\f00c"; }
+
+.octicon-code:before { content:"\f05f"; }
+
+.octicon-comment-discussion:before { content:"\f04f"; }
+
+.octicon-comment:before { content:"\f02b"; }
+
+.octicon-credit-card:before { content:"\f045"; }
+
+.octicon-dash:before { content:"\f0ca"; }
+
+.octicon-dashboard:before { content:"\f07d"; }
+
+.octicon-database:before { content:"\f096"; }
+
+.octicon-desktop-download:before { content:"\f0dc"; }
+
+.octicon-device-camera-video:before { content:"\f057"; }
+
+.octicon-device-camera:before { content:"\f056"; }
+
+.octicon-device-desktop:before { content:"\f27c"; }
+
+.octicon-device-mobile:before { content:"\f038"; }
+
+.octicon-diff-added:before { content:"\f06b"; }
+
+.octicon-diff-ignored:before { content:"\f099"; }
+
+.octicon-diff-modified:before { content:"\f06d"; }
+
+.octicon-diff-removed:before { content:"\f06c"; }
+
+.octicon-diff-renamed:before { content:"\f06e"; }
+
+.octicon-diff:before { content:"\f04d"; }
+
+.octicon-ellipses:before { content:"\f101"; }
+
+.octicon-ellipsis:before { content:"\f09a"; }
+
+.octicon-eye:before { content:"\f04e"; }
+
+.octicon-file-binary:before { content:"\f094"; }
+
+.octicon-file-code:before { content:"\f010"; }
+
+.octicon-file-directory:before { content:"\f016"; }
+
+.octicon-file-media:before { content:"\f012"; }
+
+.octicon-file-pdf:before { content:"\f014"; }
+
+.octicon-file-submodule:before { content:"\f017"; }
+
+.octicon-file-symlink-directory:before { content:"\f0b1"; }
+
+.octicon-file-symlink-file:before { content:"\f0b0"; }
+
+.octicon-file-text:before { content:"\f011"; }
+
+.octicon-file-zip:before { content:"\f013"; }
+
+.octicon-file:before { content:"\f102"; }
+
+.octicon-flame:before { content:"\f0d2"; }
+
+.octicon-fold:before { content:"\f0cc"; }
+
+.octicon-gear:before { content:"\f02f"; }
+
+.octicon-gift:before { content:"\f042"; }
+
+.octicon-gist-secret:before { content:"\f08c"; }
+
+.octicon-gist:before { content:"\f00e"; }
+
+.octicon-git-branch:before { content:"\f020"; }
+
+.octicon-git-commit:before { content:"\f01f"; }
+
+.octicon-git-compare:before { content:"\f0ac"; }
+
+.octicon-git-merge:before { content:"\f023"; }
+
+.octicon-git-pull-request:before { content:"\f009"; }
+
+.octicon-globe:before { content:"\f0b6"; }
+
+.octicon-grabber:before { content:"\f103"; }
+
+.octicon-graph:before { content:"\f043"; }
+
+.octicon-heart:before { content:"\2665"; }
+
+.octicon-history:before { content:"\f07e"; }
+
+.octicon-home:before { content:"\f08d"; }
+
+.octicon-horizontal-rule:before { content:"\f070"; }
+
+.octicon-hubot:before { content:"\f09d"; }
+
+.octicon-inbox:before { content:"\f0cf"; }
+
+.octicon-info:before { content:"\f059"; }
+
+.octicon-issue-closed:before { content:"\f028"; }
+
+.octicon-issue-opened:before { content:"\f026"; }
+
+.octicon-issue-reopened:before { content:"\f027"; }
+
+.octicon-italic:before { content:"\f0e4"; }
+
+.octicon-jersey:before { content:"\f019"; }
+
+.octicon-key:before { content:"\f049"; }
+
+.octicon-keyboard:before { content:"\f00d"; }
+
+.octicon-law:before { content:"\f0d8"; }
+
+.octicon-light-bulb:before { content:"\f000"; }
+
+.octicon-link-external:before { content:"\f07f"; }
+
+.octicon-link:before { content:"\f05c"; }
+
+.octicon-list-ordered:before { content:"\f062"; }
+
+.octicon-list-unordered:before { content:"\f061"; }
+
+.octicon-location:before { content:"\f060"; }
+
+.octicon-lock:before { content:"\f06a"; }
+
+.octicon-logo-gist:before { content:"\f0ad"; }
+
+.octicon-logo-github:before { content:"\f092"; }
+
+.octicon-mail-read:before { content:"\f03c"; }
+
+.octicon-mail-reply:before { content:"\f051"; }
+
+.octicon-mail:before { content:"\f03b"; }
+
+.octicon-mark-github:before { content:"\f00a"; }
+
+.octicon-markdown:before { content:"\f0c9"; }
+
+.octicon-megaphone:before { content:"\f077"; }
+
+.octicon-mention:before { content:"\f0be"; }
+
+.octicon-milestone:before { content:"\f075"; }
+
+.octicon-mirror:before { content:"\f024"; }
+
+.octicon-mortar-board:before { content:"\f0d7"; }
+
+.octicon-mute:before { content:"\f080"; }
+
+.octicon-no-newline:before { content:"\f09c"; }
+
+.octicon-octoface:before { content:"\f008"; }
+
+.octicon-organization:before { content:"\f037"; }
+
+.octicon-package:before { content:"\f0c4"; }
+
+.octicon-paintcan:before { content:"\f0d1"; }
+
+.octicon-pencil:before { content:"\f058"; }
+
+.octicon-person:before { content:"\f018"; }
+
+.octicon-pin:before { content:"\f041"; }
+
+.octicon-plug:before { content:"\f0d4"; }
+
+.octicon-plus-small:before { content:"\f104"; }
+
+.octicon-plus:before { content:"\f05d"; }
+
+.octicon-primitive-dot:before { content:"\f052"; }
+
+.octicon-primitive-square:before { content:"\f053"; }
+
+.octicon-pulse:before { content:"\f085"; }
+
+.octicon-question:before { content:"\f02c"; }
+
+.octicon-quote:before { content:"\f063"; }
+
+.octicon-radio-tower:before { content:"\f030"; }
+
+.octicon-reply:before { content:"\f105"; }
+
+.octicon-repo-clone:before { content:"\f04c"; }
+
+.octicon-repo-force-push:before { content:"\f04a"; }
+
+.octicon-repo-forked:before { content:"\f002"; }
+
+.octicon-repo-pull:before { content:"\f006"; }
+
+.octicon-repo-push:before { content:"\f005"; }
+
+.octicon-repo:before { content:"\f001"; }
+
+.octicon-rocket:before { content:"\f033"; }
+
+.octicon-rss:before { content:"\f034"; }
+
+.octicon-ruby:before { content:"\f047"; }
+
+.octicon-search:before { content:"\f02e"; }
+
+.octicon-server:before { content:"\f097"; }
+
+.octicon-settings:before { content:"\f07c"; }
+
+.octicon-shield:before { content:"\f0e1"; }
+
+.octicon-sign-in:before { content:"\f036"; }
+
+.octicon-sign-out:before { content:"\f032"; }
+
+.octicon-smiley:before { content:"\f0e7"; }
+
+.octicon-squirrel:before { content:"\f0b2"; }
+
+.octicon-star:before { content:"\f02a"; }
+
+.octicon-stop:before { content:"\f08f"; }
+
+.octicon-sync:before { content:"\f087"; }
+
+.octicon-tag:before { content:"\f015"; }
+
+.octicon-tasklist:before { content:"\f0e5"; }
+
+.octicon-telescope:before { content:"\f088"; }
+
+.octicon-terminal:before { content:"\f0c8"; }
+
+.octicon-text-size:before { content:"\f0e3"; }
+
+.octicon-three-bars:before { content:"\f05e"; }
+
+.octicon-thumbsdown:before { content:"\f0db"; }
+
+.octicon-thumbsup:before { content:"\f0da"; }
+
+.octicon-tools:before { content:"\f031"; }
+
+.octicon-trashcan:before { content:"\f0d0"; }
+
+.octicon-triangle-down:before { content:"\f05b"; }
+
+.octicon-triangle-left:before { content:"\f044"; }
+
+.octicon-triangle-right:before { content:"\f05a"; }
+
+.octicon-triangle-up:before { content:"\f0aa"; }
+
+.octicon-unfold:before { content:"\f039"; }
+
+.octicon-unmute:before { content:"\f0ba"; }
+
+.octicon-unverified:before { content:"\f0e8"; }
+
+.octicon-verified:before { content:"\f0e6"; }
+
+.octicon-versions:before { content:"\f064"; }
+
+.octicon-watch:before { content:"\f0e0"; }
+
+.octicon-x:before { content:"\f081"; }
+
+.octicon-zap:before { content:"\26a1"; }
+
diff --git a/assets/icons/octicons/font/octicons.eot b/assets/icons/octicons/font/octicons.eot
new file mode 100644
index 00000000..b4c7a989
Binary files /dev/null and b/assets/icons/octicons/font/octicons.eot differ
diff --git a/assets/icons/octicons/font/octicons.min.css b/assets/icons/octicons/font/octicons.min.css
new file mode 100644
index 00000000..a000669c
--- /dev/null
+++ b/assets/icons/octicons/font/octicons.min.css
@@ -0,0 +1 @@
+@font-face{font-family:Octicons;src:url(octicons.eot?ef21c39f0ca9b1b5116e5eb7ac5eabe6);src:url(octicons.eot?#iefix) format("embedded-opentype"),url(octicons.woff2?ef21c39f0ca9b1b5116e5eb7ac5eabe6) format("woff2"),url(octicons.woff?ef21c39f0ca9b1b5116e5eb7ac5eabe6) format("woff"),url(octicons.ttf?ef21c39f0ca9b1b5116e5eb7ac5eabe6) format("truetype"),url(octicons.svg?ef21c39f0ca9b1b5116e5eb7ac5eabe6#octicons) format("svg");font-weight:400;font-style:normal}.mega-octicon,.octicon{font:normal normal normal 16px/1 Octicons;display:inline-block;text-decoration:none;text-rendering:auto;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;-webkit-user-select:none;-ms-user-select:none;user-select:none;speak:none}.mega-octicon{font-size:32px}.octicon-alert:before{content:"\f02d"}.octicon-arrow-down:before{content:"\f03f"}.octicon-arrow-left:before{content:"\f040"}.octicon-arrow-right:before{content:"\f03e"}.octicon-arrow-small-down:before{content:"\f0a0"}.octicon-arrow-small-left:before{content:"\f0a1"}.octicon-arrow-small-right:before{content:"\f071"}.octicon-arrow-small-up:before{content:"\f09f"}.octicon-arrow-up:before{content:"\f03d"}.octicon-beaker:before{content:"\f0dd"}.octicon-bell:before{content:"\f0de"}.octicon-bold:before{content:"\f0e2"}.octicon-book:before{content:"\f007"}.octicon-bookmark:before{content:"\f07b"}.octicon-briefcase:before{content:"\f0d3"}.octicon-broadcast:before{content:"\f048"}.octicon-browser:before{content:"\f0c5"}.octicon-bug:before{content:"\f091"}.octicon-calendar:before{content:"\f068"}.octicon-check:before{content:"\f03a"}.octicon-checklist:before{content:"\f076"}.octicon-chevron-down:before{content:"\f0a3"}.octicon-chevron-left:before{content:"\f0a4"}.octicon-chevron-right:before{content:"\f078"}.octicon-chevron-up:before{content:"\f0a2"}.octicon-circle-slash:before{content:"\f084"}.octicon-circuit-board:before{content:"\f0d6"}.octicon-clippy:before{content:"\f035"}.octicon-clock:before{content:"\f046"}.octicon-cloud-download:before{content:"\f00b"}.octicon-cloud-upload:before{content:"\f00c"}.octicon-code:before{content:"\f05f"}.octicon-comment-discussion:before{content:"\f04f"}.octicon-comment:before{content:"\f02b"}.octicon-credit-card:before{content:"\f045"}.octicon-dash:before{content:"\f0ca"}.octicon-dashboard:before{content:"\f07d"}.octicon-database:before{content:"\f096"}.octicon-desktop-download:before{content:"\f0dc"}.octicon-device-camera-video:before{content:"\f057"}.octicon-device-camera:before{content:"\f056"}.octicon-device-desktop:before{content:"\f27c"}.octicon-device-mobile:before{content:"\f038"}.octicon-diff-added:before{content:"\f06b"}.octicon-diff-ignored:before{content:"\f099"}.octicon-diff-modified:before{content:"\f06d"}.octicon-diff-removed:before{content:"\f06c"}.octicon-diff-renamed:before{content:"\f06e"}.octicon-diff:before{content:"\f04d"}.octicon-ellipses:before{content:"\f101"}.octicon-ellipsis:before{content:"\f09a"}.octicon-eye:before{content:"\f04e"}.octicon-file-binary:before{content:"\f094"}.octicon-file-code:before{content:"\f010"}.octicon-file-directory:before{content:"\f016"}.octicon-file-media:before{content:"\f012"}.octicon-file-pdf:before{content:"\f014"}.octicon-file-submodule:before{content:"\f017"}.octicon-file-symlink-directory:before{content:"\f0b1"}.octicon-file-symlink-file:before{content:"\f0b0"}.octicon-file-text:before{content:"\f011"}.octicon-file-zip:before{content:"\f013"}.octicon-file:before{content:"\f102"}.octicon-flame:before{content:"\f0d2"}.octicon-fold:before{content:"\f0cc"}.octicon-gear:before{content:"\f02f"}.octicon-gift:before{content:"\f042"}.octicon-gist-secret:before{content:"\f08c"}.octicon-gist:before{content:"\f00e"}.octicon-git-branch:before{content:"\f020"}.octicon-git-commit:before{content:"\f01f"}.octicon-git-compare:before{content:"\f0ac"}.octicon-git-merge:before{content:"\f023"}.octicon-git-pull-request:before{content:"\f009"}.octicon-globe:before{content:"\f0b6"}.octicon-grabber:before{content:"\f103"}.octicon-graph:before{content:"\f043"}.octicon-heart:before{content:"\2665"}.octicon-history:before{content:"\f07e"}.octicon-home:before{content:"\f08d"}.octicon-horizontal-rule:before{content:"\f070"}.octicon-hubot:before{content:"\f09d"}.octicon-inbox:before{content:"\f0cf"}.octicon-info:before{content:"\f059"}.octicon-issue-closed:before{content:"\f028"}.octicon-issue-opened:before{content:"\f026"}.octicon-issue-reopened:before{content:"\f027"}.octicon-italic:before{content:"\f0e4"}.octicon-jersey:before{content:"\f019"}.octicon-key:before{content:"\f049"}.octicon-keyboard:before{content:"\f00d"}.octicon-law:before{content:"\f0d8"}.octicon-light-bulb:before{content:"\f000"}.octicon-link-external:before{content:"\f07f"}.octicon-link:before{content:"\f05c"}.octicon-list-ordered:before{content:"\f062"}.octicon-list-unordered:before{content:"\f061"}.octicon-location:before{content:"\f060"}.octicon-lock:before{content:"\f06a"}.octicon-logo-gist:before{content:"\f0ad"}.octicon-logo-github:before{content:"\f092"}.octicon-mail-read:before{content:"\f03c"}.octicon-mail-reply:before{content:"\f051"}.octicon-mail:before{content:"\f03b"}.octicon-mark-github:before{content:"\f00a"}.octicon-markdown:before{content:"\f0c9"}.octicon-megaphone:before{content:"\f077"}.octicon-mention:before{content:"\f0be"}.octicon-milestone:before{content:"\f075"}.octicon-mirror:before{content:"\f024"}.octicon-mortar-board:before{content:"\f0d7"}.octicon-mute:before{content:"\f080"}.octicon-no-newline:before{content:"\f09c"}.octicon-octoface:before{content:"\f008"}.octicon-organization:before{content:"\f037"}.octicon-package:before{content:"\f0c4"}.octicon-paintcan:before{content:"\f0d1"}.octicon-pencil:before{content:"\f058"}.octicon-person:before{content:"\f018"}.octicon-pin:before{content:"\f041"}.octicon-plug:before{content:"\f0d4"}.octicon-plus-small:before{content:"\f104"}.octicon-plus:before{content:"\f05d"}.octicon-primitive-dot:before{content:"\f052"}.octicon-primitive-square:before{content:"\f053"}.octicon-pulse:before{content:"\f085"}.octicon-question:before{content:"\f02c"}.octicon-quote:before{content:"\f063"}.octicon-radio-tower:before{content:"\f030"}.octicon-reply:before{content:"\f105"}.octicon-repo-clone:before{content:"\f04c"}.octicon-repo-force-push:before{content:"\f04a"}.octicon-repo-forked:before{content:"\f002"}.octicon-repo-pull:before{content:"\f006"}.octicon-repo-push:before{content:"\f005"}.octicon-repo:before{content:"\f001"}.octicon-rocket:before{content:"\f033"}.octicon-rss:before{content:"\f034"}.octicon-ruby:before{content:"\f047"}.octicon-search:before{content:"\f02e"}.octicon-server:before{content:"\f097"}.octicon-settings:before{content:"\f07c"}.octicon-shield:before{content:"\f0e1"}.octicon-sign-in:before{content:"\f036"}.octicon-sign-out:before{content:"\f032"}.octicon-smiley:before{content:"\f0e7"}.octicon-squirrel:before{content:"\f0b2"}.octicon-star:before{content:"\f02a"}.octicon-stop:before{content:"\f08f"}.octicon-sync:before{content:"\f087"}.octicon-tag:before{content:"\f015"}.octicon-tasklist:before{content:"\f0e5"}.octicon-telescope:before{content:"\f088"}.octicon-terminal:before{content:"\f0c8"}.octicon-text-size:before{content:"\f0e3"}.octicon-three-bars:before{content:"\f05e"}.octicon-thumbsdown:before{content:"\f0db"}.octicon-thumbsup:before{content:"\f0da"}.octicon-tools:before{content:"\f031"}.octicon-trashcan:before{content:"\f0d0"}.octicon-triangle-down:before{content:"\f05b"}.octicon-triangle-left:before{content:"\f044"}.octicon-triangle-right:before{content:"\f05a"}.octicon-triangle-up:before{content:"\f0aa"}.octicon-unfold:before{content:"\f039"}.octicon-unmute:before{content:"\f0ba"}.octicon-unverified:before{content:"\f0e8"}.octicon-verified:before{content:"\f0e6"}.octicon-versions:before{content:"\f064"}.octicon-watch:before{content:"\f0e0"}.octicon-x:before{content:"\f081"}.octicon-zap:before{content:"\26a1"}
\ No newline at end of file
diff --git a/assets/icons/octicons/font/octicons.svg b/assets/icons/octicons/font/octicons.svg
new file mode 100644
index 00000000..41cbd3f1
--- /dev/null
+++ b/assets/icons/octicons/font/octicons.svg
@@ -0,0 +1,429 @@
+
+
+
+
+Created by FontForge 20150913 at Mon Jul 11 12:02:11 2016
+ By Aaron Shekey
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/assets/icons/octicons/font/octicons.ttf b/assets/icons/octicons/font/octicons.ttf
new file mode 100644
index 00000000..ff0dda18
Binary files /dev/null and b/assets/icons/octicons/font/octicons.ttf differ
diff --git a/assets/icons/octicons/font/octicons.woff b/assets/icons/octicons/font/octicons.woff
new file mode 100644
index 00000000..01aa43d7
Binary files /dev/null and b/assets/icons/octicons/font/octicons.woff differ
diff --git a/assets/icons/octicons/font/octicons.woff2 b/assets/icons/octicons/font/octicons.woff2
new file mode 100644
index 00000000..69e7b2a4
Binary files /dev/null and b/assets/icons/octicons/font/octicons.woff2 differ
diff --git a/assets/icons/octicons/octicons.css b/assets/icons/octicons/octicons.css
new file mode 100644
index 00000000..210c3ca6
--- /dev/null
+++ b/assets/icons/octicons/octicons.css
@@ -0,0 +1,4 @@
+.octicon {
+ display: inline-block;
+ vertical-align: text-top;
+ fill: currentColor; }
diff --git a/assets/icons/octicons/octicons.min.css b/assets/icons/octicons/octicons.min.css
new file mode 100644
index 00000000..2e092635
--- /dev/null
+++ b/assets/icons/octicons/octicons.min.css
@@ -0,0 +1 @@
+.octicon{display:inline-block;vertical-align:text-top;fill:currentColor}
\ No newline at end of file
diff --git a/assets/icons/octicons/sprite.octicons.svg b/assets/icons/octicons/sprite.octicons.svg
new file mode 100644
index 00000000..d967386e
--- /dev/null
+++ b/assets/icons/octicons/sprite.octicons.svg
@@ -0,0 +1 @@
+alert arrow-down arrow-left arrow-right arrow-small-down arrow-small-left arrow-small-right arrow-small-up arrow-up beaker bell bold book bookmark briefcase broadcast browser bug calendar check checklist chevron-down chevron-left chevron-right chevron-up circle-slash circuit-board clippy clock cloud-download cloud-upload code credit-card dash dashboard database desktop-download device-camera device-camera-video device-desktop device-mobile diff diff-added diff-ignored diff-modified diff-removed diff-renamed ellipses eye file file-binary file-code file-directory file-media file-pdf file-submodule file-symlink-directory file-symlink-file file-zip flame fold gear gift gist gist-secret git-branch git-commit git-compare git-merge git-pull-request globe grabber graph heart history home horizontal-rule hubot inbox info issue-closed issue-opened issue-reopened italic jersey key keyboard law light-bulb link link-external list-ordered list-unordered location lock logo-gist logo-github mail mail-read mail-reply mark-github markdown megaphone mention milestone mirror mortar-board mute no-newline octoface organization package paintcan pencil person pin plug plus plus-small primitive-dot primitive-square pulse question quote radio-tower reply repo repo-clone repo-force-push repo-forked repo-pull repo-push rocket ruby search server settings shield sign-in sign-out smiley squirrel star stop sync tag tasklist telescope terminal text-size three-bars thumbsdown thumbsup tools trashcan triangle-down triangle-left triangle-right triangle-up unfold unmute unverified verified versions watch x zap
\ No newline at end of file
diff --git a/assets/icons/octicons/svg.json b/assets/icons/octicons/svg.json
new file mode 100644
index 00000000..9f789071
--- /dev/null
+++ b/assets/icons/octicons/svg.json
@@ -0,0 +1 @@
+{"alert":" ","arrow-down":" ","arrow-left":" ","arrow-right":" ","arrow-small-down":" ","arrow-small-left":" ","arrow-small-right":" ","arrow-small-up":" ","arrow-up":" ","beaker":" ","bell":" ","bold":" ","book":" ","bookmark":" ","briefcase":" ","broadcast":" ","browser":" ","bug":" ","calendar":" ","check":" ","checklist":" ","chevron-down":" ","chevron-left":" ","chevron-right":" ","chevron-up":" ","circle-slash":" ","circuit-board":" ","clippy":" ","clock":" ","cloud-download":" ","cloud-upload":" ","code":" ","comment-discussion":" ","comment":" ","credit-card":" ","dash":" ","dashboard":" ","database":" ","desktop-download":" ","device-camera-video":" ","device-camera":" ","device-desktop":" ","device-mobile":" ","diff-added":" ","diff-ignored":" ","diff-modified":" ","diff-removed":" ","diff-renamed":" ","diff":" ","ellipses":" ","ellipsis":" ","eye":" ","file-binary":" ","file-code":" ","file-directory":" ","file-media":" ","file-pdf":" ","file-submodule":" ","file-symlink-directory":" ","file-symlink-file":" ","file-text":" ","file-zip":" ","file":" ","flame":" ","fold":" ","gear":" ","gift":" ","gist-secret":" ","gist":" ","git-branch":" ","git-commit":" ","git-compare":" ","git-merge":" ","git-pull-request":" ","globe":" ","grabber":" ","graph":" ","heart":" ","history":" ","home":" ","horizontal-rule":" ","hubot":" ","inbox":" ","info":" ","issue-closed":" ","issue-opened":" ","issue-reopened":" ","italic":" ","jersey":" ","key":" ","keyboard":" ","law":" ","light-bulb":" ","link-external":" ","link":" ","list-ordered":" ","list-unordered":" ","location":" ","lock":" ","logo-gist":" ","logo-github":" ","mail-read":" ","mail-reply":" ","mail":" ","mark-github":" ","markdown":" ","megaphone":" ","mention":" ","milestone":" ","mirror":" ","mortar-board":" ","mute":" ","no-newline":" ","octoface":" ","organization":" ","package":" ","paintcan":" ","pencil":" ","person":" ","pin":" ","plug":" ","plus-small":" ","plus":" ","primitive-dot":" ","primitive-square":" ","pulse":" ","question":" ","quote":" ","radio-tower":" ","reply":" ","repo-clone":" ","repo-force-push":" ","repo-forked":" ","repo-pull":" ","repo-push":" ","repo":" ","rocket":" ","rss":" ","ruby":" ","search":" ","server":" ","settings":" ","shield":" ","sign-in":" ","sign-out":" ","smiley":" ","squirrel":" ","star":" ","stop":" ","sync":" ","tag":" ","tasklist":" ","telescope":" ","terminal":" ","text-size":" ","three-bars":" ","thumbsdown":" ","thumbsup":" ","tools":" ","trashcan":" ","triangle-down":" ","triangle-left":" ","triangle-right":" ","triangle-up":" ","unfold":" ","unmute":" ","unverified":" ","verified":" ","versions":" ","watch":" ","x":" ","zap":" "}
\ No newline at end of file
diff --git a/assets/icons/octicons/svg/alert.svg b/assets/icons/octicons/svg/alert.svg
new file mode 100644
index 00000000..bc2bae37
--- /dev/null
+++ b/assets/icons/octicons/svg/alert.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/assets/icons/octicons/svg/arrow-down.svg b/assets/icons/octicons/svg/arrow-down.svg
new file mode 100644
index 00000000..8985ffbe
--- /dev/null
+++ b/assets/icons/octicons/svg/arrow-down.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/assets/icons/octicons/svg/arrow-left.svg b/assets/icons/octicons/svg/arrow-left.svg
new file mode 100644
index 00000000..dc5f4bfd
--- /dev/null
+++ b/assets/icons/octicons/svg/arrow-left.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/assets/icons/octicons/svg/arrow-right.svg b/assets/icons/octicons/svg/arrow-right.svg
new file mode 100644
index 00000000..286aaa7b
--- /dev/null
+++ b/assets/icons/octicons/svg/arrow-right.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/assets/icons/octicons/svg/arrow-small-down.svg b/assets/icons/octicons/svg/arrow-small-down.svg
new file mode 100644
index 00000000..3c98bfcd
--- /dev/null
+++ b/assets/icons/octicons/svg/arrow-small-down.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/assets/icons/octicons/svg/arrow-small-left.svg b/assets/icons/octicons/svg/arrow-small-left.svg
new file mode 100644
index 00000000..fcd8d022
--- /dev/null
+++ b/assets/icons/octicons/svg/arrow-small-left.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/assets/icons/octicons/svg/arrow-small-right.svg b/assets/icons/octicons/svg/arrow-small-right.svg
new file mode 100644
index 00000000..713d0a13
--- /dev/null
+++ b/assets/icons/octicons/svg/arrow-small-right.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/assets/icons/octicons/svg/arrow-small-up.svg b/assets/icons/octicons/svg/arrow-small-up.svg
new file mode 100644
index 00000000..3491f947
--- /dev/null
+++ b/assets/icons/octicons/svg/arrow-small-up.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/assets/icons/octicons/svg/arrow-up.svg b/assets/icons/octicons/svg/arrow-up.svg
new file mode 100644
index 00000000..7a2511db
--- /dev/null
+++ b/assets/icons/octicons/svg/arrow-up.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/assets/icons/octicons/svg/beaker.svg b/assets/icons/octicons/svg/beaker.svg
new file mode 100644
index 00000000..9f5b8f0c
--- /dev/null
+++ b/assets/icons/octicons/svg/beaker.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/assets/icons/octicons/svg/bell.svg b/assets/icons/octicons/svg/bell.svg
new file mode 100644
index 00000000..cd682be2
--- /dev/null
+++ b/assets/icons/octicons/svg/bell.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/assets/icons/octicons/svg/bold.svg b/assets/icons/octicons/svg/bold.svg
new file mode 100644
index 00000000..f03c2eec
--- /dev/null
+++ b/assets/icons/octicons/svg/bold.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/assets/icons/octicons/svg/book.svg b/assets/icons/octicons/svg/book.svg
new file mode 100644
index 00000000..3b48a51d
--- /dev/null
+++ b/assets/icons/octicons/svg/book.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/assets/icons/octicons/svg/bookmark.svg b/assets/icons/octicons/svg/bookmark.svg
new file mode 100644
index 00000000..cff47562
--- /dev/null
+++ b/assets/icons/octicons/svg/bookmark.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/assets/icons/octicons/svg/briefcase.svg b/assets/icons/octicons/svg/briefcase.svg
new file mode 100644
index 00000000..5c8155cf
--- /dev/null
+++ b/assets/icons/octicons/svg/briefcase.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/assets/icons/octicons/svg/broadcast.svg b/assets/icons/octicons/svg/broadcast.svg
new file mode 100644
index 00000000..e9f65e62
--- /dev/null
+++ b/assets/icons/octicons/svg/broadcast.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/assets/icons/octicons/svg/browser.svg b/assets/icons/octicons/svg/browser.svg
new file mode 100644
index 00000000..9a1f8953
--- /dev/null
+++ b/assets/icons/octicons/svg/browser.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/assets/icons/octicons/svg/bug.svg b/assets/icons/octicons/svg/bug.svg
new file mode 100644
index 00000000..409a5711
--- /dev/null
+++ b/assets/icons/octicons/svg/bug.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/assets/icons/octicons/svg/calendar.svg b/assets/icons/octicons/svg/calendar.svg
new file mode 100644
index 00000000..8e047fe7
--- /dev/null
+++ b/assets/icons/octicons/svg/calendar.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/assets/icons/octicons/svg/check.svg b/assets/icons/octicons/svg/check.svg
new file mode 100644
index 00000000..63be1930
--- /dev/null
+++ b/assets/icons/octicons/svg/check.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/assets/icons/octicons/svg/checklist.svg b/assets/icons/octicons/svg/checklist.svg
new file mode 100644
index 00000000..0a2b7e6d
--- /dev/null
+++ b/assets/icons/octicons/svg/checklist.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/assets/icons/octicons/svg/chevron-down.svg b/assets/icons/octicons/svg/chevron-down.svg
new file mode 100644
index 00000000..3cd761b4
--- /dev/null
+++ b/assets/icons/octicons/svg/chevron-down.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/assets/icons/octicons/svg/chevron-left.svg b/assets/icons/octicons/svg/chevron-left.svg
new file mode 100644
index 00000000..ad1fbeb9
--- /dev/null
+++ b/assets/icons/octicons/svg/chevron-left.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/assets/icons/octicons/svg/chevron-right.svg b/assets/icons/octicons/svg/chevron-right.svg
new file mode 100644
index 00000000..3b924ce8
--- /dev/null
+++ b/assets/icons/octicons/svg/chevron-right.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/assets/icons/octicons/svg/chevron-up.svg b/assets/icons/octicons/svg/chevron-up.svg
new file mode 100644
index 00000000..4490c8e6
--- /dev/null
+++ b/assets/icons/octicons/svg/chevron-up.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/assets/icons/octicons/svg/circle-slash.svg b/assets/icons/octicons/svg/circle-slash.svg
new file mode 100644
index 00000000..ba2698c1
--- /dev/null
+++ b/assets/icons/octicons/svg/circle-slash.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/assets/icons/octicons/svg/circuit-board.svg b/assets/icons/octicons/svg/circuit-board.svg
new file mode 100644
index 00000000..d358510b
--- /dev/null
+++ b/assets/icons/octicons/svg/circuit-board.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/assets/icons/octicons/svg/clippy.svg b/assets/icons/octicons/svg/clippy.svg
new file mode 100644
index 00000000..532472cc
--- /dev/null
+++ b/assets/icons/octicons/svg/clippy.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/assets/icons/octicons/svg/clock.svg b/assets/icons/octicons/svg/clock.svg
new file mode 100644
index 00000000..b1719b60
--- /dev/null
+++ b/assets/icons/octicons/svg/clock.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/assets/icons/octicons/svg/cloud-download.svg b/assets/icons/octicons/svg/cloud-download.svg
new file mode 100644
index 00000000..d07db135
--- /dev/null
+++ b/assets/icons/octicons/svg/cloud-download.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/assets/icons/octicons/svg/cloud-upload.svg b/assets/icons/octicons/svg/cloud-upload.svg
new file mode 100644
index 00000000..42c99bcf
--- /dev/null
+++ b/assets/icons/octicons/svg/cloud-upload.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/assets/icons/octicons/svg/code.svg b/assets/icons/octicons/svg/code.svg
new file mode 100644
index 00000000..12c77d4f
--- /dev/null
+++ b/assets/icons/octicons/svg/code.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/assets/icons/octicons/svg/comment-discussion.svg b/assets/icons/octicons/svg/comment-discussion.svg
new file mode 100644
index 00000000..795c5c18
--- /dev/null
+++ b/assets/icons/octicons/svg/comment-discussion.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/assets/icons/octicons/svg/comment.svg b/assets/icons/octicons/svg/comment.svg
new file mode 100644
index 00000000..35b9e8b3
--- /dev/null
+++ b/assets/icons/octicons/svg/comment.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/assets/icons/octicons/svg/credit-card.svg b/assets/icons/octicons/svg/credit-card.svg
new file mode 100644
index 00000000..79622c48
--- /dev/null
+++ b/assets/icons/octicons/svg/credit-card.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/assets/icons/octicons/svg/dash.svg b/assets/icons/octicons/svg/dash.svg
new file mode 100644
index 00000000..30e7ca07
--- /dev/null
+++ b/assets/icons/octicons/svg/dash.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/assets/icons/octicons/svg/dashboard.svg b/assets/icons/octicons/svg/dashboard.svg
new file mode 100644
index 00000000..248937a2
--- /dev/null
+++ b/assets/icons/octicons/svg/dashboard.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/assets/icons/octicons/svg/database.svg b/assets/icons/octicons/svg/database.svg
new file mode 100644
index 00000000..013dfde6
--- /dev/null
+++ b/assets/icons/octicons/svg/database.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/assets/icons/octicons/svg/desktop-download.svg b/assets/icons/octicons/svg/desktop-download.svg
new file mode 100644
index 00000000..83bc0a06
--- /dev/null
+++ b/assets/icons/octicons/svg/desktop-download.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/assets/icons/octicons/svg/device-camera-video.svg b/assets/icons/octicons/svg/device-camera-video.svg
new file mode 100644
index 00000000..6cd3d65c
--- /dev/null
+++ b/assets/icons/octicons/svg/device-camera-video.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/assets/icons/octicons/svg/device-camera.svg b/assets/icons/octicons/svg/device-camera.svg
new file mode 100644
index 00000000..efb890db
--- /dev/null
+++ b/assets/icons/octicons/svg/device-camera.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/assets/icons/octicons/svg/device-desktop.svg b/assets/icons/octicons/svg/device-desktop.svg
new file mode 100644
index 00000000..27e9d1f0
--- /dev/null
+++ b/assets/icons/octicons/svg/device-desktop.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/assets/icons/octicons/svg/device-mobile.svg b/assets/icons/octicons/svg/device-mobile.svg
new file mode 100644
index 00000000..5258dd3b
--- /dev/null
+++ b/assets/icons/octicons/svg/device-mobile.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/assets/icons/octicons/svg/diff-added.svg b/assets/icons/octicons/svg/diff-added.svg
new file mode 100644
index 00000000..a7b00fa2
--- /dev/null
+++ b/assets/icons/octicons/svg/diff-added.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/assets/icons/octicons/svg/diff-ignored.svg b/assets/icons/octicons/svg/diff-ignored.svg
new file mode 100644
index 00000000..d8590344
--- /dev/null
+++ b/assets/icons/octicons/svg/diff-ignored.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/assets/icons/octicons/svg/diff-modified.svg b/assets/icons/octicons/svg/diff-modified.svg
new file mode 100644
index 00000000..01b86c2b
--- /dev/null
+++ b/assets/icons/octicons/svg/diff-modified.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/assets/icons/octicons/svg/diff-removed.svg b/assets/icons/octicons/svg/diff-removed.svg
new file mode 100644
index 00000000..7cad33df
--- /dev/null
+++ b/assets/icons/octicons/svg/diff-removed.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/assets/icons/octicons/svg/diff-renamed.svg b/assets/icons/octicons/svg/diff-renamed.svg
new file mode 100644
index 00000000..56abd20b
--- /dev/null
+++ b/assets/icons/octicons/svg/diff-renamed.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/assets/icons/octicons/svg/diff.svg b/assets/icons/octicons/svg/diff.svg
new file mode 100644
index 00000000..53482664
--- /dev/null
+++ b/assets/icons/octicons/svg/diff.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/assets/icons/octicons/svg/ellipses.svg b/assets/icons/octicons/svg/ellipses.svg
new file mode 100644
index 00000000..87d905bd
--- /dev/null
+++ b/assets/icons/octicons/svg/ellipses.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/assets/icons/octicons/svg/ellipsis.svg b/assets/icons/octicons/svg/ellipsis.svg
new file mode 100644
index 00000000..87d905bd
--- /dev/null
+++ b/assets/icons/octicons/svg/ellipsis.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/assets/icons/octicons/svg/eye.svg b/assets/icons/octicons/svg/eye.svg
new file mode 100644
index 00000000..b77d169a
--- /dev/null
+++ b/assets/icons/octicons/svg/eye.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/assets/icons/octicons/svg/file-binary.svg b/assets/icons/octicons/svg/file-binary.svg
new file mode 100644
index 00000000..dca5155b
--- /dev/null
+++ b/assets/icons/octicons/svg/file-binary.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/assets/icons/octicons/svg/file-code.svg b/assets/icons/octicons/svg/file-code.svg
new file mode 100644
index 00000000..2329b2ee
--- /dev/null
+++ b/assets/icons/octicons/svg/file-code.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/assets/icons/octicons/svg/file-directory.svg b/assets/icons/octicons/svg/file-directory.svg
new file mode 100644
index 00000000..b05db406
--- /dev/null
+++ b/assets/icons/octicons/svg/file-directory.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/assets/icons/octicons/svg/file-media.svg b/assets/icons/octicons/svg/file-media.svg
new file mode 100644
index 00000000..ecc9ee85
--- /dev/null
+++ b/assets/icons/octicons/svg/file-media.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/assets/icons/octicons/svg/file-pdf.svg b/assets/icons/octicons/svg/file-pdf.svg
new file mode 100644
index 00000000..7d8e3ac1
--- /dev/null
+++ b/assets/icons/octicons/svg/file-pdf.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/assets/icons/octicons/svg/file-submodule.svg b/assets/icons/octicons/svg/file-submodule.svg
new file mode 100644
index 00000000..32c61197
--- /dev/null
+++ b/assets/icons/octicons/svg/file-submodule.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/assets/icons/octicons/svg/file-symlink-directory.svg b/assets/icons/octicons/svg/file-symlink-directory.svg
new file mode 100644
index 00000000..075aecae
--- /dev/null
+++ b/assets/icons/octicons/svg/file-symlink-directory.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/assets/icons/octicons/svg/file-symlink-file.svg b/assets/icons/octicons/svg/file-symlink-file.svg
new file mode 100644
index 00000000..1d0480d9
--- /dev/null
+++ b/assets/icons/octicons/svg/file-symlink-file.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/assets/icons/octicons/svg/file-text.svg b/assets/icons/octicons/svg/file-text.svg
new file mode 100644
index 00000000..8b326ca0
--- /dev/null
+++ b/assets/icons/octicons/svg/file-text.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/assets/icons/octicons/svg/file-zip.svg b/assets/icons/octicons/svg/file-zip.svg
new file mode 100644
index 00000000..415f4c46
--- /dev/null
+++ b/assets/icons/octicons/svg/file-zip.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/assets/icons/octicons/svg/file.svg b/assets/icons/octicons/svg/file.svg
new file mode 100644
index 00000000..8b326ca0
--- /dev/null
+++ b/assets/icons/octicons/svg/file.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/assets/icons/octicons/svg/flame.svg b/assets/icons/octicons/svg/flame.svg
new file mode 100644
index 00000000..810a5df0
--- /dev/null
+++ b/assets/icons/octicons/svg/flame.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/assets/icons/octicons/svg/fold.svg b/assets/icons/octicons/svg/fold.svg
new file mode 100644
index 00000000..1f7aa104
--- /dev/null
+++ b/assets/icons/octicons/svg/fold.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/assets/icons/octicons/svg/gear.svg b/assets/icons/octicons/svg/gear.svg
new file mode 100644
index 00000000..8cfe2f8b
--- /dev/null
+++ b/assets/icons/octicons/svg/gear.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/assets/icons/octicons/svg/gift.svg b/assets/icons/octicons/svg/gift.svg
new file mode 100644
index 00000000..78bbb486
--- /dev/null
+++ b/assets/icons/octicons/svg/gift.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/assets/icons/octicons/svg/gist-secret.svg b/assets/icons/octicons/svg/gist-secret.svg
new file mode 100644
index 00000000..3acfea2f
--- /dev/null
+++ b/assets/icons/octicons/svg/gist-secret.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/assets/icons/octicons/svg/gist.svg b/assets/icons/octicons/svg/gist.svg
new file mode 100644
index 00000000..aae8725c
--- /dev/null
+++ b/assets/icons/octicons/svg/gist.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/assets/icons/octicons/svg/git-branch.svg b/assets/icons/octicons/svg/git-branch.svg
new file mode 100644
index 00000000..2047baa3
--- /dev/null
+++ b/assets/icons/octicons/svg/git-branch.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/assets/icons/octicons/svg/git-commit.svg b/assets/icons/octicons/svg/git-commit.svg
new file mode 100644
index 00000000..b80404c5
--- /dev/null
+++ b/assets/icons/octicons/svg/git-commit.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/assets/icons/octicons/svg/git-compare.svg b/assets/icons/octicons/svg/git-compare.svg
new file mode 100644
index 00000000..5ea2d18b
--- /dev/null
+++ b/assets/icons/octicons/svg/git-compare.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/assets/icons/octicons/svg/git-merge.svg b/assets/icons/octicons/svg/git-merge.svg
new file mode 100644
index 00000000..0860da19
--- /dev/null
+++ b/assets/icons/octicons/svg/git-merge.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/assets/icons/octicons/svg/git-pull-request.svg b/assets/icons/octicons/svg/git-pull-request.svg
new file mode 100644
index 00000000..15cd1348
--- /dev/null
+++ b/assets/icons/octicons/svg/git-pull-request.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/assets/icons/octicons/svg/globe.svg b/assets/icons/octicons/svg/globe.svg
new file mode 100644
index 00000000..44a34594
--- /dev/null
+++ b/assets/icons/octicons/svg/globe.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/assets/icons/octicons/svg/grabber.svg b/assets/icons/octicons/svg/grabber.svg
new file mode 100644
index 00000000..3c3cc87e
--- /dev/null
+++ b/assets/icons/octicons/svg/grabber.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/assets/icons/octicons/svg/graph.svg b/assets/icons/octicons/svg/graph.svg
new file mode 100644
index 00000000..5a808515
--- /dev/null
+++ b/assets/icons/octicons/svg/graph.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/assets/icons/octicons/svg/heart.svg b/assets/icons/octicons/svg/heart.svg
new file mode 100644
index 00000000..19b9da89
--- /dev/null
+++ b/assets/icons/octicons/svg/heart.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/assets/icons/octicons/svg/history.svg b/assets/icons/octicons/svg/history.svg
new file mode 100644
index 00000000..f5e704e9
--- /dev/null
+++ b/assets/icons/octicons/svg/history.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/assets/icons/octicons/svg/home.svg b/assets/icons/octicons/svg/home.svg
new file mode 100644
index 00000000..95750a1d
--- /dev/null
+++ b/assets/icons/octicons/svg/home.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/assets/icons/octicons/svg/horizontal-rule.svg b/assets/icons/octicons/svg/horizontal-rule.svg
new file mode 100644
index 00000000..7335ea36
--- /dev/null
+++ b/assets/icons/octicons/svg/horizontal-rule.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/assets/icons/octicons/svg/hubot.svg b/assets/icons/octicons/svg/hubot.svg
new file mode 100644
index 00000000..cf67b3f5
--- /dev/null
+++ b/assets/icons/octicons/svg/hubot.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/assets/icons/octicons/svg/inbox.svg b/assets/icons/octicons/svg/inbox.svg
new file mode 100644
index 00000000..23b8a56f
--- /dev/null
+++ b/assets/icons/octicons/svg/inbox.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/assets/icons/octicons/svg/info.svg b/assets/icons/octicons/svg/info.svg
new file mode 100644
index 00000000..94c9294f
--- /dev/null
+++ b/assets/icons/octicons/svg/info.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/assets/icons/octicons/svg/issue-closed.svg b/assets/icons/octicons/svg/issue-closed.svg
new file mode 100644
index 00000000..67bb00ec
--- /dev/null
+++ b/assets/icons/octicons/svg/issue-closed.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/assets/icons/octicons/svg/issue-opened.svg b/assets/icons/octicons/svg/issue-opened.svg
new file mode 100644
index 00000000..cd363c8d
--- /dev/null
+++ b/assets/icons/octicons/svg/issue-opened.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/assets/icons/octicons/svg/issue-reopened.svg b/assets/icons/octicons/svg/issue-reopened.svg
new file mode 100644
index 00000000..937f67d7
--- /dev/null
+++ b/assets/icons/octicons/svg/issue-reopened.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/assets/icons/octicons/svg/italic.svg b/assets/icons/octicons/svg/italic.svg
new file mode 100644
index 00000000..4f2e3b37
--- /dev/null
+++ b/assets/icons/octicons/svg/italic.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/assets/icons/octicons/svg/jersey.svg b/assets/icons/octicons/svg/jersey.svg
new file mode 100644
index 00000000..8791b2d7
--- /dev/null
+++ b/assets/icons/octicons/svg/jersey.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/assets/icons/octicons/svg/key.svg b/assets/icons/octicons/svg/key.svg
new file mode 100644
index 00000000..9749e1b3
--- /dev/null
+++ b/assets/icons/octicons/svg/key.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/assets/icons/octicons/svg/keyboard.svg b/assets/icons/octicons/svg/keyboard.svg
new file mode 100644
index 00000000..44dd5825
--- /dev/null
+++ b/assets/icons/octicons/svg/keyboard.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/assets/icons/octicons/svg/law.svg b/assets/icons/octicons/svg/law.svg
new file mode 100644
index 00000000..22261cca
--- /dev/null
+++ b/assets/icons/octicons/svg/law.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/assets/icons/octicons/svg/light-bulb.svg b/assets/icons/octicons/svg/light-bulb.svg
new file mode 100644
index 00000000..4b480a03
--- /dev/null
+++ b/assets/icons/octicons/svg/light-bulb.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/assets/icons/octicons/svg/link-external.svg b/assets/icons/octicons/svg/link-external.svg
new file mode 100644
index 00000000..efa88348
--- /dev/null
+++ b/assets/icons/octicons/svg/link-external.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/assets/icons/octicons/svg/link.svg b/assets/icons/octicons/svg/link.svg
new file mode 100644
index 00000000..34067f2d
--- /dev/null
+++ b/assets/icons/octicons/svg/link.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/assets/icons/octicons/svg/list-ordered.svg b/assets/icons/octicons/svg/list-ordered.svg
new file mode 100644
index 00000000..176a3b77
--- /dev/null
+++ b/assets/icons/octicons/svg/list-ordered.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/assets/icons/octicons/svg/list-unordered.svg b/assets/icons/octicons/svg/list-unordered.svg
new file mode 100644
index 00000000..e537395e
--- /dev/null
+++ b/assets/icons/octicons/svg/list-unordered.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/assets/icons/octicons/svg/location.svg b/assets/icons/octicons/svg/location.svg
new file mode 100644
index 00000000..397ac303
--- /dev/null
+++ b/assets/icons/octicons/svg/location.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/assets/icons/octicons/svg/lock.svg b/assets/icons/octicons/svg/lock.svg
new file mode 100644
index 00000000..a1dafaad
--- /dev/null
+++ b/assets/icons/octicons/svg/lock.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/assets/icons/octicons/svg/logo-gist.svg b/assets/icons/octicons/svg/logo-gist.svg
new file mode 100644
index 00000000..a496f901
--- /dev/null
+++ b/assets/icons/octicons/svg/logo-gist.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/assets/icons/octicons/svg/logo-github.svg b/assets/icons/octicons/svg/logo-github.svg
new file mode 100644
index 00000000..e65b202c
--- /dev/null
+++ b/assets/icons/octicons/svg/logo-github.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/assets/icons/octicons/svg/mail-read.svg b/assets/icons/octicons/svg/mail-read.svg
new file mode 100644
index 00000000..05baf5ba
--- /dev/null
+++ b/assets/icons/octicons/svg/mail-read.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/assets/icons/octicons/svg/mail-reply.svg b/assets/icons/octicons/svg/mail-reply.svg
new file mode 100644
index 00000000..381716e0
--- /dev/null
+++ b/assets/icons/octicons/svg/mail-reply.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/assets/icons/octicons/svg/mail.svg b/assets/icons/octicons/svg/mail.svg
new file mode 100644
index 00000000..78332b95
--- /dev/null
+++ b/assets/icons/octicons/svg/mail.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/assets/icons/octicons/svg/mark-github.svg b/assets/icons/octicons/svg/mark-github.svg
new file mode 100644
index 00000000..65031372
--- /dev/null
+++ b/assets/icons/octicons/svg/mark-github.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/assets/icons/octicons/svg/markdown.svg b/assets/icons/octicons/svg/markdown.svg
new file mode 100644
index 00000000..7762b3c7
--- /dev/null
+++ b/assets/icons/octicons/svg/markdown.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/assets/icons/octicons/svg/megaphone.svg b/assets/icons/octicons/svg/megaphone.svg
new file mode 100644
index 00000000..89f37676
--- /dev/null
+++ b/assets/icons/octicons/svg/megaphone.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/assets/icons/octicons/svg/mention.svg b/assets/icons/octicons/svg/mention.svg
new file mode 100644
index 00000000..d7163515
--- /dev/null
+++ b/assets/icons/octicons/svg/mention.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/assets/icons/octicons/svg/milestone.svg b/assets/icons/octicons/svg/milestone.svg
new file mode 100644
index 00000000..18fdfa4a
--- /dev/null
+++ b/assets/icons/octicons/svg/milestone.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/assets/icons/octicons/svg/mirror.svg b/assets/icons/octicons/svg/mirror.svg
new file mode 100644
index 00000000..1863d616
--- /dev/null
+++ b/assets/icons/octicons/svg/mirror.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/assets/icons/octicons/svg/mortar-board.svg b/assets/icons/octicons/svg/mortar-board.svg
new file mode 100644
index 00000000..3535eb4a
--- /dev/null
+++ b/assets/icons/octicons/svg/mortar-board.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/assets/icons/octicons/svg/mute.svg b/assets/icons/octicons/svg/mute.svg
new file mode 100644
index 00000000..e66a152b
--- /dev/null
+++ b/assets/icons/octicons/svg/mute.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/assets/icons/octicons/svg/no-newline.svg b/assets/icons/octicons/svg/no-newline.svg
new file mode 100644
index 00000000..8e71ccc3
--- /dev/null
+++ b/assets/icons/octicons/svg/no-newline.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/assets/icons/octicons/svg/octoface.svg b/assets/icons/octicons/svg/octoface.svg
new file mode 100644
index 00000000..bf839f43
--- /dev/null
+++ b/assets/icons/octicons/svg/octoface.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/assets/icons/octicons/svg/organization.svg b/assets/icons/octicons/svg/organization.svg
new file mode 100644
index 00000000..7351e4a0
--- /dev/null
+++ b/assets/icons/octicons/svg/organization.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/assets/icons/octicons/svg/package.svg b/assets/icons/octicons/svg/package.svg
new file mode 100644
index 00000000..1a802987
--- /dev/null
+++ b/assets/icons/octicons/svg/package.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/assets/icons/octicons/svg/paintcan.svg b/assets/icons/octicons/svg/paintcan.svg
new file mode 100644
index 00000000..5eed372f
--- /dev/null
+++ b/assets/icons/octicons/svg/paintcan.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/assets/icons/octicons/svg/pencil.svg b/assets/icons/octicons/svg/pencil.svg
new file mode 100644
index 00000000..7434bbce
--- /dev/null
+++ b/assets/icons/octicons/svg/pencil.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/assets/icons/octicons/svg/person.svg b/assets/icons/octicons/svg/person.svg
new file mode 100644
index 00000000..8aafcd54
--- /dev/null
+++ b/assets/icons/octicons/svg/person.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/assets/icons/octicons/svg/pin.svg b/assets/icons/octicons/svg/pin.svg
new file mode 100644
index 00000000..2389039b
--- /dev/null
+++ b/assets/icons/octicons/svg/pin.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/assets/icons/octicons/svg/plug.svg b/assets/icons/octicons/svg/plug.svg
new file mode 100644
index 00000000..1e571da6
--- /dev/null
+++ b/assets/icons/octicons/svg/plug.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/assets/icons/octicons/svg/plus-small.svg b/assets/icons/octicons/svg/plus-small.svg
new file mode 100644
index 00000000..9c3323e8
--- /dev/null
+++ b/assets/icons/octicons/svg/plus-small.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/assets/icons/octicons/svg/plus.svg b/assets/icons/octicons/svg/plus.svg
new file mode 100644
index 00000000..bcc48b2a
--- /dev/null
+++ b/assets/icons/octicons/svg/plus.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/assets/icons/octicons/svg/primitive-dot.svg b/assets/icons/octicons/svg/primitive-dot.svg
new file mode 100644
index 00000000..d0e79813
--- /dev/null
+++ b/assets/icons/octicons/svg/primitive-dot.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/assets/icons/octicons/svg/primitive-square.svg b/assets/icons/octicons/svg/primitive-square.svg
new file mode 100644
index 00000000..05c6994b
--- /dev/null
+++ b/assets/icons/octicons/svg/primitive-square.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/assets/icons/octicons/svg/pulse.svg b/assets/icons/octicons/svg/pulse.svg
new file mode 100644
index 00000000..01e54df6
--- /dev/null
+++ b/assets/icons/octicons/svg/pulse.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/assets/icons/octicons/svg/question.svg b/assets/icons/octicons/svg/question.svg
new file mode 100644
index 00000000..99924157
--- /dev/null
+++ b/assets/icons/octicons/svg/question.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/assets/icons/octicons/svg/quote.svg b/assets/icons/octicons/svg/quote.svg
new file mode 100644
index 00000000..c3be3e56
--- /dev/null
+++ b/assets/icons/octicons/svg/quote.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/assets/icons/octicons/svg/radio-tower.svg b/assets/icons/octicons/svg/radio-tower.svg
new file mode 100644
index 00000000..258ff3cb
--- /dev/null
+++ b/assets/icons/octicons/svg/radio-tower.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/assets/icons/octicons/svg/reply.svg b/assets/icons/octicons/svg/reply.svg
new file mode 100644
index 00000000..71e2fbd2
--- /dev/null
+++ b/assets/icons/octicons/svg/reply.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/assets/icons/octicons/svg/repo-clone.svg b/assets/icons/octicons/svg/repo-clone.svg
new file mode 100644
index 00000000..3b016fe6
--- /dev/null
+++ b/assets/icons/octicons/svg/repo-clone.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/assets/icons/octicons/svg/repo-force-push.svg b/assets/icons/octicons/svg/repo-force-push.svg
new file mode 100644
index 00000000..4308de20
--- /dev/null
+++ b/assets/icons/octicons/svg/repo-force-push.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/assets/icons/octicons/svg/repo-forked.svg b/assets/icons/octicons/svg/repo-forked.svg
new file mode 100644
index 00000000..e03e5968
--- /dev/null
+++ b/assets/icons/octicons/svg/repo-forked.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/assets/icons/octicons/svg/repo-pull.svg b/assets/icons/octicons/svg/repo-pull.svg
new file mode 100644
index 00000000..6274ce34
--- /dev/null
+++ b/assets/icons/octicons/svg/repo-pull.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/assets/icons/octicons/svg/repo-push.svg b/assets/icons/octicons/svg/repo-push.svg
new file mode 100644
index 00000000..49b9af8b
--- /dev/null
+++ b/assets/icons/octicons/svg/repo-push.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/assets/icons/octicons/svg/repo.svg b/assets/icons/octicons/svg/repo.svg
new file mode 100644
index 00000000..336b9dab
--- /dev/null
+++ b/assets/icons/octicons/svg/repo.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/assets/icons/octicons/svg/rocket.svg b/assets/icons/octicons/svg/rocket.svg
new file mode 100644
index 00000000..a26b933a
--- /dev/null
+++ b/assets/icons/octicons/svg/rocket.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/assets/icons/octicons/svg/rss.svg b/assets/icons/octicons/svg/rss.svg
new file mode 100644
index 00000000..4a5b9f56
--- /dev/null
+++ b/assets/icons/octicons/svg/rss.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/assets/icons/octicons/svg/ruby.svg b/assets/icons/octicons/svg/ruby.svg
new file mode 100644
index 00000000..a2010f46
--- /dev/null
+++ b/assets/icons/octicons/svg/ruby.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/assets/icons/octicons/svg/search.svg b/assets/icons/octicons/svg/search.svg
new file mode 100644
index 00000000..40a0e6e7
--- /dev/null
+++ b/assets/icons/octicons/svg/search.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/assets/icons/octicons/svg/server.svg b/assets/icons/octicons/svg/server.svg
new file mode 100644
index 00000000..e63ae7c6
--- /dev/null
+++ b/assets/icons/octicons/svg/server.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/assets/icons/octicons/svg/settings.svg b/assets/icons/octicons/svg/settings.svg
new file mode 100644
index 00000000..8923d8f5
--- /dev/null
+++ b/assets/icons/octicons/svg/settings.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/assets/icons/octicons/svg/shield.svg b/assets/icons/octicons/svg/shield.svg
new file mode 100644
index 00000000..8f28fdae
--- /dev/null
+++ b/assets/icons/octicons/svg/shield.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/assets/icons/octicons/svg/sign-in.svg b/assets/icons/octicons/svg/sign-in.svg
new file mode 100644
index 00000000..4977c3a2
--- /dev/null
+++ b/assets/icons/octicons/svg/sign-in.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/assets/icons/octicons/svg/sign-out.svg b/assets/icons/octicons/svg/sign-out.svg
new file mode 100644
index 00000000..e2cc652e
--- /dev/null
+++ b/assets/icons/octicons/svg/sign-out.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/assets/icons/octicons/svg/smiley.svg b/assets/icons/octicons/svg/smiley.svg
new file mode 100644
index 00000000..f7d4fbd7
--- /dev/null
+++ b/assets/icons/octicons/svg/smiley.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/assets/icons/octicons/svg/squirrel.svg b/assets/icons/octicons/svg/squirrel.svg
new file mode 100644
index 00000000..bc7fe0f6
--- /dev/null
+++ b/assets/icons/octicons/svg/squirrel.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/assets/icons/octicons/svg/star.svg b/assets/icons/octicons/svg/star.svg
new file mode 100644
index 00000000..1e328354
--- /dev/null
+++ b/assets/icons/octicons/svg/star.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/assets/icons/octicons/svg/stop.svg b/assets/icons/octicons/svg/stop.svg
new file mode 100644
index 00000000..f06ef1cd
--- /dev/null
+++ b/assets/icons/octicons/svg/stop.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/assets/icons/octicons/svg/sync.svg b/assets/icons/octicons/svg/sync.svg
new file mode 100644
index 00000000..cabeb73b
--- /dev/null
+++ b/assets/icons/octicons/svg/sync.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/assets/icons/octicons/svg/tag.svg b/assets/icons/octicons/svg/tag.svg
new file mode 100644
index 00000000..ef86e781
--- /dev/null
+++ b/assets/icons/octicons/svg/tag.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/assets/icons/octicons/svg/tasklist.svg b/assets/icons/octicons/svg/tasklist.svg
new file mode 100644
index 00000000..99ad4a3c
--- /dev/null
+++ b/assets/icons/octicons/svg/tasklist.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/assets/icons/octicons/svg/telescope.svg b/assets/icons/octicons/svg/telescope.svg
new file mode 100644
index 00000000..030d7310
--- /dev/null
+++ b/assets/icons/octicons/svg/telescope.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/assets/icons/octicons/svg/terminal.svg b/assets/icons/octicons/svg/terminal.svg
new file mode 100644
index 00000000..6a372fc9
--- /dev/null
+++ b/assets/icons/octicons/svg/terminal.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/assets/icons/octicons/svg/text-size.svg b/assets/icons/octicons/svg/text-size.svg
new file mode 100644
index 00000000..8d4dfb95
--- /dev/null
+++ b/assets/icons/octicons/svg/text-size.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/assets/icons/octicons/svg/three-bars.svg b/assets/icons/octicons/svg/three-bars.svg
new file mode 100644
index 00000000..d72c8e54
--- /dev/null
+++ b/assets/icons/octicons/svg/three-bars.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/assets/icons/octicons/svg/thumbsdown.svg b/assets/icons/octicons/svg/thumbsdown.svg
new file mode 100644
index 00000000..dc551dfa
--- /dev/null
+++ b/assets/icons/octicons/svg/thumbsdown.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/assets/icons/octicons/svg/thumbsup.svg b/assets/icons/octicons/svg/thumbsup.svg
new file mode 100644
index 00000000..7fba2323
--- /dev/null
+++ b/assets/icons/octicons/svg/thumbsup.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/assets/icons/octicons/svg/tools.svg b/assets/icons/octicons/svg/tools.svg
new file mode 100644
index 00000000..caf2a97d
--- /dev/null
+++ b/assets/icons/octicons/svg/tools.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/assets/icons/octicons/svg/trashcan.svg b/assets/icons/octicons/svg/trashcan.svg
new file mode 100644
index 00000000..d3dc1e08
--- /dev/null
+++ b/assets/icons/octicons/svg/trashcan.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/assets/icons/octicons/svg/triangle-down.svg b/assets/icons/octicons/svg/triangle-down.svg
new file mode 100644
index 00000000..8b51f9a2
--- /dev/null
+++ b/assets/icons/octicons/svg/triangle-down.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/assets/icons/octicons/svg/triangle-left.svg b/assets/icons/octicons/svg/triangle-left.svg
new file mode 100644
index 00000000..377d3065
--- /dev/null
+++ b/assets/icons/octicons/svg/triangle-left.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/assets/icons/octicons/svg/triangle-right.svg b/assets/icons/octicons/svg/triangle-right.svg
new file mode 100644
index 00000000..ba640d32
--- /dev/null
+++ b/assets/icons/octicons/svg/triangle-right.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/assets/icons/octicons/svg/triangle-up.svg b/assets/icons/octicons/svg/triangle-up.svg
new file mode 100644
index 00000000..6b387545
--- /dev/null
+++ b/assets/icons/octicons/svg/triangle-up.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/assets/icons/octicons/svg/unfold.svg b/assets/icons/octicons/svg/unfold.svg
new file mode 100644
index 00000000..204ed685
--- /dev/null
+++ b/assets/icons/octicons/svg/unfold.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/assets/icons/octicons/svg/unmute.svg b/assets/icons/octicons/svg/unmute.svg
new file mode 100644
index 00000000..26d5a725
--- /dev/null
+++ b/assets/icons/octicons/svg/unmute.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/assets/icons/octicons/svg/unverified.svg b/assets/icons/octicons/svg/unverified.svg
new file mode 100644
index 00000000..ded21bf9
--- /dev/null
+++ b/assets/icons/octicons/svg/unverified.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/assets/icons/octicons/svg/verified.svg b/assets/icons/octicons/svg/verified.svg
new file mode 100644
index 00000000..f2c62341
--- /dev/null
+++ b/assets/icons/octicons/svg/verified.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/assets/icons/octicons/svg/versions.svg b/assets/icons/octicons/svg/versions.svg
new file mode 100644
index 00000000..6094d42a
--- /dev/null
+++ b/assets/icons/octicons/svg/versions.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/assets/icons/octicons/svg/watch.svg b/assets/icons/octicons/svg/watch.svg
new file mode 100644
index 00000000..2947b571
--- /dev/null
+++ b/assets/icons/octicons/svg/watch.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/assets/icons/octicons/svg/x.svg b/assets/icons/octicons/svg/x.svg
new file mode 100644
index 00000000..e43bfb17
--- /dev/null
+++ b/assets/icons/octicons/svg/x.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/assets/icons/octicons/svg/zap.svg b/assets/icons/octicons/svg/zap.svg
new file mode 100644
index 00000000..277eb397
--- /dev/null
+++ b/assets/icons/octicons/svg/zap.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/assets/js/_main.js b/assets/js/_main.js
new file mode 100644
index 00000000..4f71a5dd
--- /dev/null
+++ b/assets/js/_main.js
@@ -0,0 +1,100 @@
+/* ==========================================================================
+ jQuery plugin settings and other scripts
+ ========================================================================== */
+
+$(document).ready(function(){
+
+ // Sticky footer
+ var bumpIt = function() {
+ $('body').css('margin-bottom', $('.page__footer').outerHeight(true));
+ },
+ didResize = false;
+
+ bumpIt();
+
+ $(window).resize(function() {
+ didResize = true;
+ });
+ setInterval(function() {
+ if(didResize) {
+ didResize = false;
+ bumpIt();
+ }
+ }, 250);
+
+ // FitVids init
+ $("#main").fitVids();
+
+ // init sticky sidebar
+ $(".sticky").Stickyfill();
+
+ var stickySideBar = function(){
+ var show = $(".author__urls-wrapper button").length === 0 ? $(window).width() > 1024 : !$(".author__urls-wrapper button").is(":visible");
+ // console.log("has button: " + $(".author__urls-wrapper button").length === 0);
+ // console.log("Window Width: " + windowWidth);
+ // console.log("show: " + show);
+ //old code was if($(window).width() > 1024)
+ if (show) {
+ // fix
+ Stickyfill.rebuild();
+ Stickyfill.init();
+ $(".author__urls").show();
+ } else {
+ // unfix
+ Stickyfill.stop();
+ $(".author__urls").hide();
+ }
+ };
+
+ stickySideBar();
+
+ $(window).resize(function(){
+ stickySideBar();
+ });
+
+ // Follow menu drop down
+
+ $(".author__urls-wrapper button").on("click", function() {
+ $(".author__urls").fadeToggle("fast", function() {});
+ $(".author__urls-wrapper button").toggleClass("open");
+ });
+
+ // init smooth scroll
+ $("a").smoothScroll({offset: -20});
+
+ // add lightbox class to all image links
+ $("a[href$='.jpg'],a[href$='.jpeg'],a[href$='.JPG'],a[href$='.png'],a[href$='.gif']").addClass("image-popup");
+
+ // Magnific-Popup options
+ $(".image-popup").magnificPopup({
+ // disableOn: function() {
+ // if( $(window).width() < 500 ) {
+ // return false;
+ // }
+ // return true;
+ // },
+ type: 'image',
+ tLoading: 'Loading image #%curr%...',
+ gallery: {
+ enabled: true,
+ navigateByImgClick: true,
+ preload: [0,1] // Will preload 0 - before current, and 1 after the current image
+ },
+ image: {
+ tError: 'Image #%curr% could not be loaded.',
+ },
+ removalDelay: 500, // Delay in milliseconds before popup is removed
+ // Class that is added to body when popup is open.
+ // make it unique to apply your CSS animations just to this exact popup
+ mainClass: 'mfp-zoom-in',
+ callbacks: {
+ beforeOpen: function() {
+ // just a hack that adds mfp-anim class to markup
+ this.st.image.markup = this.st.image.markup.replace('mfp-figure', 'mfp-figure mfp-with-anim');
+ }
+ },
+ closeOnContentClick: true,
+ midClick: true // allow opening popup on middle mouse click. Always set it to true if you don't provide alternative source.
+ });
+
+});
diff --git a/assets/js/main.min.js b/assets/js/main.min.js
new file mode 100644
index 00000000..7c4f130e
--- /dev/null
+++ b/assets/js/main.min.js
@@ -0,0 +1,5 @@
+function updateNav(){var e=$btn.hasClass("hidden")?$nav.width():$nav.width()-$btn.width()-30;$vlinks.width()>e?(breaks.push($vlinks.width()),$vlinks.children().last().prependTo($hlinks),$btn.hasClass("hidden")&&$btn.removeClass("hidden")):(e>breaks[breaks.length-1]&&($hlinks.children().first().appendTo($vlinks),breaks.pop()),breaks.length<1&&($btn.addClass("hidden"),$hlinks.addClass("hidden"))),$btn.attr("count",breaks.length),$vlinks.width()>e&&updateNav()}!function(e,t){"object"==typeof module&&"object"==typeof module.exports?module.exports=e.document?t(e,!0):function(e){if(!e.document)throw new Error("jQuery requires a window with a document");return t(e)}:t(e)}("undefined"!=typeof window?window:this,function(e,t){function n(e){var t=!!e&&"length"in e&&e.length,n=pe.type(e);return"function"===n||pe.isWindow(e)?!1:"array"===n||0===t||"number"==typeof t&&t>0&&t-1 in e}function i(e,t,n){if(pe.isFunction(t))return pe.grep(e,function(e,i){return!!t.call(e,i,e)!==n});if(t.nodeType)return pe.grep(e,function(e){return e===t!==n});if("string"==typeof t){if(Te.test(t))return pe.filter(t,e,n);t=pe.filter(t,e)}return pe.grep(e,function(e){return pe.inArray(e,t)>-1!==n})}function r(e,t){do e=e[t];while(e&&1!==e.nodeType);return e}function o(e){var t={};return pe.each(e.match(Ae)||[],function(e,n){t[n]=!0}),t}function a(){ie.addEventListener?(ie.removeEventListener("DOMContentLoaded",s),e.removeEventListener("load",s)):(ie.detachEvent("onreadystatechange",s),e.detachEvent("onload",s))}function s(){(ie.addEventListener||"load"===e.event.type||"complete"===ie.readyState)&&(a(),pe.ready())}function l(e,t,n){if(void 0===n&&1===e.nodeType){var i="data-"+t.replace(He,"-$1").toLowerCase();if(n=e.getAttribute(i),"string"==typeof n){try{n="true"===n?!0:"false"===n?!1:"null"===n?null:+n+""===n?+n:De.test(n)?pe.parseJSON(n):n}catch(r){}pe.data(e,t,n)}else n=void 0}return n}function u(e){var t;for(t in e)if(("data"!==t||!pe.isEmptyObject(e[t]))&&"toJSON"!==t)return!1;return!0}function c(e,t,n,i){if(Ie(e)){var r,o,a=pe.expando,s=e.nodeType,l=s?pe.cache:e,u=s?e[a]:e[a]&&a;if(u&&l[u]&&(i||l[u].data)||void 0!==n||"string"!=typeof t)return u||(u=s?e[a]=ne.pop()||pe.guid++:a),l[u]||(l[u]=s?{}:{toJSON:pe.noop}),"object"!=typeof t&&"function"!=typeof t||(i?l[u]=pe.extend(l[u],t):l[u].data=pe.extend(l[u].data,t)),o=l[u],i||(o.data||(o.data={}),o=o.data),void 0!==n&&(o[pe.camelCase(t)]=n),"string"==typeof t?(r=o[t],null==r&&(r=o[pe.camelCase(t)])):r=o,r}}function d(e,t,n){if(Ie(e)){var i,r,o=e.nodeType,a=o?pe.cache:e,s=o?e[pe.expando]:pe.expando;if(a[s]){if(t&&(i=n?a[s]:a[s].data)){pe.isArray(t)?t=t.concat(pe.map(t,pe.camelCase)):t in i?t=[t]:(t=pe.camelCase(t),t=t in i?[t]:t.split(" ")),r=t.length;for(;r--;)delete i[t[r]];if(n?!u(i):!pe.isEmptyObject(i))return}(n||(delete a[s].data,u(a[s])))&&(o?pe.cleanData([e],!0):de.deleteExpando||a!=a.window?delete a[s]:a[s]=void 0)}}}function f(e,t,n,i){var r,o=1,a=20,s=i?function(){return i.cur()}:function(){return pe.css(e,t,"")},l=s(),u=n&&n[3]||(pe.cssNumber[t]?"":"px"),c=(pe.cssNumber[t]||"px"!==u&&+l)&&Me.exec(pe.css(e,t));if(c&&c[3]!==u){u=u||c[3],n=n||[],c=+l||1;do o=o||".5",c/=o,pe.style(e,t,c+u);while(o!==(o=s()/l)&&1!==o&&--a)}return n&&(c=+c||+l||0,r=n[1]?c+(n[1]+1)*n[2]:+n[2],i&&(i.unit=u,i.start=c,i.end=r)),r}function p(e){var t=We.split("|"),n=e.createDocumentFragment();if(n.createElement)for(;t.length;)n.createElement(t.pop());return n}function h(e,t){var n,i,r=0,o="undefined"!=typeof e.getElementsByTagName?e.getElementsByTagName(t||"*"):"undefined"!=typeof e.querySelectorAll?e.querySelectorAll(t||"*"):void 0;if(!o)for(o=[],n=e.childNodes||e;null!=(i=n[r]);r++)!t||pe.nodeName(i,t)?o.push(i):pe.merge(o,h(i,t));return void 0===t||t&&pe.nodeName(e,t)?pe.merge([e],o):o}function m(e,t){for(var n,i=0;null!=(n=e[i]);i++)pe._data(n,"globalEval",!t||pe._data(t[i],"globalEval"))}function g(e){qe.test(e.type)&&(e.defaultChecked=e.checked)}function v(e,t,n,i,r){for(var o,a,s,l,u,c,d,f=e.length,v=p(t),y=[],b=0;f>b;b++)if(a=e[b],a||0===a)if("object"===pe.type(a))pe.merge(y,a.nodeType?[a]:a);else if(Ye.test(a)){for(l=l||v.appendChild(t.createElement("div")),u=($e.exec(a)||["",""])[1].toLowerCase(),d=Xe[u]||Xe._default,l.innerHTML=d[1]+pe.htmlPrefilter(a)+d[2],o=d[0];o--;)l=l.lastChild;if(!de.leadingWhitespace&&Re.test(a)&&y.push(t.createTextNode(Re.exec(a)[0])),!de.tbody)for(a="table"!==u||Ue.test(a)?""!==d[1]||Ue.test(a)?0:l:l.firstChild,o=a&&a.childNodes.length;o--;)pe.nodeName(c=a.childNodes[o],"tbody")&&!c.childNodes.length&&a.removeChild(c);for(pe.merge(y,l.childNodes),l.textContent="";l.firstChild;)l.removeChild(l.firstChild);l=v.lastChild}else y.push(t.createTextNode(a));for(l&&v.removeChild(l),de.appendChecked||pe.grep(h(y,"input"),g),b=0;a=y[b++];)if(i&&pe.inArray(a,i)>-1)r&&r.push(a);else if(s=pe.contains(a.ownerDocument,a),l=h(v.appendChild(a),"script"),s&&m(l),n)for(o=0;a=l[o++];)ze.test(a.type||"")&&n.push(a);return l=null,v}function y(){return!0}function b(){return!1}function x(){try{return ie.activeElement}catch(e){}}function w(e,t,n,i,r,o){var a,s;if("object"==typeof t){"string"!=typeof n&&(i=i||n,n=void 0);for(s in t)w(e,s,n,i,t[s],o);return e}if(null==i&&null==r?(r=n,i=n=void 0):null==r&&("string"==typeof n?(r=i,i=void 0):(r=i,i=n,n=void 0)),r===!1)r=b;else if(!r)return e;return 1===o&&(a=r,r=function(e){return pe().off(e),a.apply(this,arguments)},r.guid=a.guid||(a.guid=pe.guid++)),e.each(function(){pe.event.add(this,t,r,i,n)})}function C(e,t){return pe.nodeName(e,"table")&&pe.nodeName(11!==t.nodeType?t:t.firstChild,"tr")?e.getElementsByTagName("tbody")[0]||e.appendChild(e.ownerDocument.createElement("tbody")):e}function T(e){return e.type=(null!==pe.find.attr(e,"type"))+"/"+e.type,e}function k(e){var t=rt.exec(e.type);return t?e.type=t[1]:e.removeAttribute("type"),e}function E(e,t){if(1===t.nodeType&&pe.hasData(e)){var n,i,r,o=pe._data(e),a=pe._data(t,o),s=o.events;if(s){delete a.handle,a.events={};for(n in s)for(i=0,r=s[n].length;r>i;i++)pe.event.add(t,n,s[n][i])}a.data&&(a.data=pe.extend({},a.data))}}function S(e,t){var n,i,r;if(1===t.nodeType){if(n=t.nodeName.toLowerCase(),!de.noCloneEvent&&t[pe.expando]){r=pe._data(t);for(i in r.events)pe.removeEvent(t,i,r.handle);t.removeAttribute(pe.expando)}"script"===n&&t.text!==e.text?(T(t).text=e.text,k(t)):"object"===n?(t.parentNode&&(t.outerHTML=e.outerHTML),de.html5Clone&&e.innerHTML&&!pe.trim(t.innerHTML)&&(t.innerHTML=e.innerHTML)):"input"===n&&qe.test(e.type)?(t.defaultChecked=t.checked=e.checked,t.value!==e.value&&(t.value=e.value)):"option"===n?t.defaultSelected=t.selected=e.defaultSelected:"input"!==n&&"textarea"!==n||(t.defaultValue=e.defaultValue)}}function N(e,t,n,i){t=oe.apply([],t);var r,o,a,s,l,u,c=0,d=e.length,f=d-1,p=t[0],m=pe.isFunction(p);if(m||d>1&&"string"==typeof p&&!de.checkClone&&it.test(p))return e.each(function(r){var o=e.eq(r);m&&(t[0]=p.call(this,r,o.html())),N(o,t,n,i)});if(d&&(u=v(t,e[0].ownerDocument,!1,e,i),r=u.firstChild,1===u.childNodes.length&&(u=r),r||i)){for(s=pe.map(h(u,"script"),T),a=s.length;d>c;c++)o=u,c!==f&&(o=pe.clone(o,!0,!0),a&&pe.merge(s,h(o,"script"))),n.call(e[c],o,c);if(a)for(l=s[s.length-1].ownerDocument,pe.map(s,k),c=0;a>c;c++)o=s[c],ze.test(o.type||"")&&!pe._data(o,"globalEval")&&pe.contains(l,o)&&(o.src?pe._evalUrl&&pe._evalUrl(o.src):pe.globalEval((o.text||o.textContent||o.innerHTML||"").replace(ot,"")));u=r=null}return e}function L(e,t,n){for(var i,r=t?pe.filter(t,e):e,o=0;null!=(i=r[o]);o++)n||1!==i.nodeType||pe.cleanData(h(i)),i.parentNode&&(n&&pe.contains(i.ownerDocument,i)&&m(h(i,"script")),i.parentNode.removeChild(i));return e}function A(e,t){var n=pe(t.createElement(e)).appendTo(t.body),i=pe.css(n[0],"display");return n.detach(),i}function j(e){var t=ie,n=ut[e];return n||(n=A(e,t),"none"!==n&&n||(lt=(lt||pe("")).appendTo(t.documentElement),t=(lt[0].contentWindow||lt[0].contentDocument).document,t.write(),t.close(),n=A(e,t),lt.detach()),ut[e]=n),n}function _(e,t){return{get:function(){return e()?void delete this.get:(this.get=t).apply(this,arguments)}}}function I(e){if(e in kt)return e;for(var t=e.charAt(0).toUpperCase()+e.slice(1),n=Tt.length;n--;)if(e=Tt[n]+t,e in kt)return e}function D(e,t){for(var n,i,r,o=[],a=0,s=e.length;s>a;a++)i=e[a],i.style&&(o[a]=pe._data(i,"olddisplay"),n=i.style.display,t?(o[a]||"none"!==n||(i.style.display=""),""===i.style.display&&Be(i)&&(o[a]=pe._data(i,"olddisplay",j(i.nodeName)))):(r=Be(i),(n&&"none"!==n||!r)&&pe._data(i,"olddisplay",r?n:pe.css(i,"display"))));for(a=0;s>a;a++)i=e[a],i.style&&(t&&"none"!==i.style.display&&""!==i.style.display||(i.style.display=t?o[a]||"":"none"));return e}function H(e,t,n){var i=xt.exec(t);return i?Math.max(0,i[1]-(n||0))+(i[2]||"px"):t}function O(e,t,n,i,r){for(var o=n===(i?"border":"content")?4:"width"===t?1:0,a=0;4>o;o+=2)"margin"===n&&(a+=pe.css(e,n+Pe[o],!0,r)),i?("content"===n&&(a-=pe.css(e,"padding"+Pe[o],!0,r)),"margin"!==n&&(a-=pe.css(e,"border"+Pe[o]+"Width",!0,r))):(a+=pe.css(e,"padding"+Pe[o],!0,r),"padding"!==n&&(a+=pe.css(e,"border"+Pe[o]+"Width",!0,r)));return a}function M(e,t,n){var i=!0,r="width"===t?e.offsetWidth:e.offsetHeight,o=ht(e),a=de.boxSizing&&"border-box"===pe.css(e,"boxSizing",!1,o);if(0>=r||null==r){if(r=mt(e,t,o),(0>r||null==r)&&(r=e.style[t]),dt.test(r))return r;i=a&&(de.boxSizingReliable()||r===e.style[t]),r=parseFloat(r)||0}return r+O(e,t,n||(a?"border":"content"),i,o)+"px"}function P(e,t,n,i,r){return new P.prototype.init(e,t,n,i,r)}function B(){return e.setTimeout(function(){Et=void 0}),Et=pe.now()}function F(e,t){var n,i={height:e},r=0;for(t=t?1:0;4>r;r+=2-t)n=Pe[r],i["margin"+n]=i["padding"+n]=e;return t&&(i.opacity=i.width=e),i}function q(e,t,n){for(var i,r=(R.tweeners[t]||[]).concat(R.tweeners["*"]),o=0,a=r.length;a>o;o++)if(i=r[o].call(n,t,e))return i}function $(e,t,n){var i,r,o,a,s,l,u,c,d=this,f={},p=e.style,h=e.nodeType&&Be(e),m=pe._data(e,"fxshow");n.queue||(s=pe._queueHooks(e,"fx"),null==s.unqueued&&(s.unqueued=0,l=s.empty.fire,s.empty.fire=function(){s.unqueued||l()}),s.unqueued++,d.always(function(){d.always(function(){s.unqueued--,pe.queue(e,"fx").length||s.empty.fire()})})),1===e.nodeType&&("height"in t||"width"in t)&&(n.overflow=[p.overflow,p.overflowX,p.overflowY],u=pe.css(e,"display"),c="none"===u?pe._data(e,"olddisplay")||j(e.nodeName):u,"inline"===c&&"none"===pe.css(e,"float")&&(de.inlineBlockNeedsLayout&&"inline"!==j(e.nodeName)?p.zoom=1:p.display="inline-block")),n.overflow&&(p.overflow="hidden",de.shrinkWrapBlocks()||d.always(function(){p.overflow=n.overflow[0],p.overflowX=n.overflow[1],p.overflowY=n.overflow[2]}));for(i in t)if(r=t[i],Nt.exec(r)){if(delete t[i],o=o||"toggle"===r,r===(h?"hide":"show")){if("show"!==r||!m||void 0===m[i])continue;h=!0}f[i]=m&&m[i]||pe.style(e,i)}else u=void 0;if(pe.isEmptyObject(f))"inline"===("none"===u?j(e.nodeName):u)&&(p.display=u);else{m?"hidden"in m&&(h=m.hidden):m=pe._data(e,"fxshow",{}),o&&(m.hidden=!h),h?pe(e).show():d.done(function(){pe(e).hide()}),d.done(function(){var t;pe._removeData(e,"fxshow");for(t in f)pe.style(e,t,f[t])});for(i in f)a=q(h?m[i]:0,i,d),i in m||(m[i]=a.start,h&&(a.end=a.start,a.start="width"===i||"height"===i?1:0))}}function z(e,t){var n,i,r,o,a;for(n in e)if(i=pe.camelCase(n),r=t[i],o=e[n],pe.isArray(o)&&(r=o[1],o=e[n]=o[0]),n!==i&&(e[i]=o,delete e[n]),a=pe.cssHooks[i],a&&"expand"in a){o=a.expand(o),delete e[i];for(n in o)n in e||(e[n]=o[n],t[n]=r)}else t[i]=r}function R(e,t,n){var i,r,o=0,a=R.prefilters.length,s=pe.Deferred().always(function(){delete l.elem}),l=function(){if(r)return!1;for(var t=Et||B(),n=Math.max(0,u.startTime+u.duration-t),i=n/u.duration||0,o=1-i,a=0,l=u.tweens.length;l>a;a++)u.tweens[a].run(o);return s.notifyWith(e,[u,o,n]),1>o&&l?n:(s.resolveWith(e,[u]),!1)},u=s.promise({elem:e,props:pe.extend({},t),opts:pe.extend(!0,{specialEasing:{},easing:pe.easing._default},n),originalProperties:t,originalOptions:n,startTime:Et||B(),duration:n.duration,tweens:[],createTween:function(t,n){var i=pe.Tween(e,u.opts,t,n,u.opts.specialEasing[t]||u.opts.easing);return u.tweens.push(i),i},stop:function(t){var n=0,i=t?u.tweens.length:0;if(r)return this;for(r=!0;i>n;n++)u.tweens[n].run(1);return t?(s.notifyWith(e,[u,1,0]),s.resolveWith(e,[u,t])):s.rejectWith(e,[u,t]),this}}),c=u.props;for(z(c,u.opts.specialEasing);a>o;o++)if(i=R.prefilters[o].call(u,e,c,u.opts))return pe.isFunction(i.stop)&&(pe._queueHooks(u.elem,u.opts.queue).stop=pe.proxy(i.stop,i)),i;return pe.map(c,q,u),pe.isFunction(u.opts.start)&&u.opts.start.call(e,u),pe.fx.timer(pe.extend(l,{elem:e,anim:u,queue:u.opts.queue})),u.progress(u.opts.progress).done(u.opts.done,u.opts.complete).fail(u.opts.fail).always(u.opts.always)}function W(e){return pe.attr(e,"class")||""}function X(e){return function(t,n){"string"!=typeof t&&(n=t,t="*");var i,r=0,o=t.toLowerCase().match(Ae)||[];if(pe.isFunction(n))for(;i=o[r++];)"+"===i.charAt(0)?(i=i.slice(1)||"*",(e[i]=e[i]||[]).unshift(n)):(e[i]=e[i]||[]).push(n)}}function Y(e,t,n,i){function r(s){var l;return o[s]=!0,pe.each(e[s]||[],function(e,s){var u=s(t,n,i);return"string"!=typeof u||a||o[u]?a?!(l=u):void 0:(t.dataTypes.unshift(u),r(u),!1)}),l}var o={},a=e===Jt;return r(t.dataTypes[0])||!o["*"]&&r("*")}function U(e,t){var n,i,r=pe.ajaxSettings.flatOptions||{};for(i in t)void 0!==t[i]&&((r[i]?e:n||(n={}))[i]=t[i]);return n&&pe.extend(!0,e,n),e}function V(e,t,n){for(var i,r,o,a,s=e.contents,l=e.dataTypes;"*"===l[0];)l.shift(),void 0===r&&(r=e.mimeType||t.getResponseHeader("Content-Type"));if(r)for(a in s)if(s[a]&&s[a].test(r)){l.unshift(a);break}if(l[0]in n)o=l[0];else{for(a in n){if(!l[0]||e.converters[a+" "+l[0]]){o=a;break}i||(i=a)}o=o||i}return o?(o!==l[0]&&l.unshift(o),n[o]):void 0}function G(e,t,n,i){var r,o,a,s,l,u={},c=e.dataTypes.slice();if(c[1])for(a in e.converters)u[a.toLowerCase()]=e.converters[a];for(o=c.shift();o;)if(e.responseFields[o]&&(n[e.responseFields[o]]=t),!l&&i&&e.dataFilter&&(t=e.dataFilter(t,e.dataType)),l=o,o=c.shift())if("*"===o)o=l;else if("*"!==l&&l!==o){if(a=u[l+" "+o]||u["* "+o],!a)for(r in u)if(s=r.split(" "),s[1]===o&&(a=u[l+" "+s[0]]||u["* "+s[0]])){a===!0?a=u[r]:u[r]!==!0&&(o=s[0],c.unshift(s[1]));break}if(a!==!0)if(a&&e["throws"])t=a(t);else try{t=a(t)}catch(d){return{state:"parsererror",error:a?d:"No conversion from "+l+" to "+o}}}return{state:"success",data:t}}function Q(e){return e.style&&e.style.display||pe.css(e,"display")}function Z(e){if(!pe.contains(e.ownerDocument||ie,e))return!0;for(;e&&1===e.nodeType;){if("none"===Q(e)||"hidden"===e.type)return!0;e=e.parentNode}return!1}function J(e,t,n,i){var r;if(pe.isArray(t))pe.each(t,function(t,r){n||rn.test(e)?i(e,r):J(e+"["+("object"==typeof r&&null!=r?t:"")+"]",r,n,i)});else if(n||"object"!==pe.type(t))i(e,t);else for(r in t)J(e+"["+r+"]",t[r],n,i)}function K(){try{return new e.XMLHttpRequest}catch(t){}}function ee(){try{return new e.ActiveXObject("Microsoft.XMLHTTP")}catch(t){}}function te(e){return pe.isWindow(e)?e:9===e.nodeType?e.defaultView||e.parentWindow:!1}var ne=[],ie=e.document,re=ne.slice,oe=ne.concat,ae=ne.push,se=ne.indexOf,le={},ue=le.toString,ce=le.hasOwnProperty,de={},fe="1.12.4",pe=function(e,t){return new pe.fn.init(e,t)},he=/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,me=/^-ms-/,ge=/-([\da-z])/gi,ve=function(e,t){return t.toUpperCase()};pe.fn=pe.prototype={jquery:fe,constructor:pe,selector:"",length:0,toArray:function(){return re.call(this)},get:function(e){return null!=e?0>e?this[e+this.length]:this[e]:re.call(this)},pushStack:function(e){var t=pe.merge(this.constructor(),e);return t.prevObject=this,t.context=this.context,t},each:function(e){return pe.each(this,e)},map:function(e){return this.pushStack(pe.map(this,function(t,n){return e.call(t,n,t)}))},slice:function(){return this.pushStack(re.apply(this,arguments))},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},eq:function(e){var t=this.length,n=+e+(0>e?t:0);return this.pushStack(n>=0&&t>n?[this[n]]:[])},end:function(){return this.prevObject||this.constructor()},push:ae,sort:ne.sort,splice:ne.splice},pe.extend=pe.fn.extend=function(){var e,t,n,i,r,o,a=arguments[0]||{},s=1,l=arguments.length,u=!1;for("boolean"==typeof a&&(u=a,a=arguments[s]||{},s++),"object"==typeof a||pe.isFunction(a)||(a={}),s===l&&(a=this,s--);l>s;s++)if(null!=(r=arguments[s]))for(i in r)e=a[i],n=r[i],a!==n&&(u&&n&&(pe.isPlainObject(n)||(t=pe.isArray(n)))?(t?(t=!1,o=e&&pe.isArray(e)?e:[]):o=e&&pe.isPlainObject(e)?e:{},a[i]=pe.extend(u,o,n)):void 0!==n&&(a[i]=n));return a},pe.extend({expando:"jQuery"+(fe+Math.random()).replace(/\D/g,""),isReady:!0,error:function(e){throw new Error(e)},noop:function(){},isFunction:function(e){return"function"===pe.type(e)},isArray:Array.isArray||function(e){return"array"===pe.type(e)},isWindow:function(e){return null!=e&&e==e.window},isNumeric:function(e){var t=e&&e.toString();return!pe.isArray(e)&&t-parseFloat(t)+1>=0},isEmptyObject:function(e){var t;for(t in e)return!1;return!0},isPlainObject:function(e){var t;if(!e||"object"!==pe.type(e)||e.nodeType||pe.isWindow(e))return!1;try{if(e.constructor&&!ce.call(e,"constructor")&&!ce.call(e.constructor.prototype,"isPrototypeOf"))return!1}catch(n){return!1}if(!de.ownFirst)for(t in e)return ce.call(e,t);for(t in e);return void 0===t||ce.call(e,t)},type:function(e){return null==e?e+"":"object"==typeof e||"function"==typeof e?le[ue.call(e)]||"object":typeof e},globalEval:function(t){t&&pe.trim(t)&&(e.execScript||function(t){e.eval.call(e,t)})(t)},camelCase:function(e){return e.replace(me,"ms-").replace(ge,ve)},nodeName:function(e,t){return e.nodeName&&e.nodeName.toLowerCase()===t.toLowerCase()},each:function(e,t){var i,r=0;if(n(e))for(i=e.length;i>r&&t.call(e[r],r,e[r])!==!1;r++);else for(r in e)if(t.call(e[r],r,e[r])===!1)break;return e},trim:function(e){return null==e?"":(e+"").replace(he,"")},makeArray:function(e,t){var i=t||[];return null!=e&&(n(Object(e))?pe.merge(i,"string"==typeof e?[e]:e):ae.call(i,e)),i},inArray:function(e,t,n){var i;if(t){if(se)return se.call(t,e,n);for(i=t.length,n=n?0>n?Math.max(0,i+n):n:0;i>n;n++)if(n in t&&t[n]===e)return n}return-1},merge:function(e,t){for(var n=+t.length,i=0,r=e.length;n>i;)e[r++]=t[i++];if(n!==n)for(;void 0!==t[i];)e[r++]=t[i++];return e.length=r,e},grep:function(e,t,n){for(var i,r=[],o=0,a=e.length,s=!n;a>o;o++)i=!t(e[o],o),i!==s&&r.push(e[o]);return r},map:function(e,t,i){var r,o,a=0,s=[];if(n(e))for(r=e.length;r>a;a++)o=t(e[a],a,i),null!=o&&s.push(o);else for(a in e)o=t(e[a],a,i),null!=o&&s.push(o);return oe.apply([],s)},guid:1,proxy:function(e,t){var n,i,r;return"string"==typeof t&&(r=e[t],t=e,e=r),pe.isFunction(e)?(n=re.call(arguments,2),i=function(){return e.apply(t||this,n.concat(re.call(arguments)))},i.guid=e.guid=e.guid||pe.guid++,i):void 0},now:function(){return+new Date},support:de}),"function"==typeof Symbol&&(pe.fn[Symbol.iterator]=ne[Symbol.iterator]),pe.each("Boolean Number String Function Array Date RegExp Object Error Symbol".split(" "),function(e,t){le["[object "+t+"]"]=t.toLowerCase()});var ye=function(e){function t(e,t,n,i){var r,o,a,s,l,u,d,p,h=t&&t.ownerDocument,m=t?t.nodeType:9;if(n=n||[],"string"!=typeof e||!e||1!==m&&9!==m&&11!==m)return n;if(!i&&((t?t.ownerDocument||t:q)!==I&&_(t),t=t||I,H)){if(11!==m&&(u=ve.exec(e)))if(r=u[1]){if(9===m){if(!(a=t.getElementById(r)))return n;if(a.id===r)return n.push(a),n}else if(h&&(a=h.getElementById(r))&&B(t,a)&&a.id===r)return n.push(a),n}else{if(u[2])return J.apply(n,t.getElementsByTagName(e)),n;if((r=u[3])&&w.getElementsByClassName&&t.getElementsByClassName)return J.apply(n,t.getElementsByClassName(r)),n}if(w.qsa&&!X[e+" "]&&(!O||!O.test(e))){if(1!==m)h=t,p=e;else if("object"!==t.nodeName.toLowerCase()){for((s=t.getAttribute("id"))?s=s.replace(be,"\\$&"):t.setAttribute("id",s=F),d=E(e),o=d.length,l=fe.test(s)?"#"+s:"[id='"+s+"']";o--;)d[o]=l+" "+f(d[o]);p=d.join(","),h=ye.test(e)&&c(t.parentNode)||t}if(p)try{return J.apply(n,h.querySelectorAll(p)),n}catch(g){}finally{s===F&&t.removeAttribute("id")}}}return N(e.replace(se,"$1"),t,n,i)}function n(){function e(n,i){return t.push(n+" ")>C.cacheLength&&delete e[t.shift()],e[n+" "]=i}var t=[];return e}function i(e){return e[F]=!0,e}function r(e){var t=I.createElement("div");try{return!!e(t)}catch(n){return!1}finally{t.parentNode&&t.parentNode.removeChild(t),t=null}}function o(e,t){for(var n=e.split("|"),i=n.length;i--;)C.attrHandle[n[i]]=t}function a(e,t){var n=t&&e,i=n&&1===e.nodeType&&1===t.nodeType&&(~t.sourceIndex||U)-(~e.sourceIndex||U);if(i)return i;if(n)for(;n=n.nextSibling;)if(n===t)return-1;return e?1:-1}function s(e){return function(t){var n=t.nodeName.toLowerCase();return"input"===n&&t.type===e}}function l(e){return function(t){var n=t.nodeName.toLowerCase();return("input"===n||"button"===n)&&t.type===e}}function u(e){return i(function(t){return t=+t,i(function(n,i){for(var r,o=e([],n.length,t),a=o.length;a--;)n[r=o[a]]&&(n[r]=!(i[r]=n[r]))})})}function c(e){return e&&"undefined"!=typeof e.getElementsByTagName&&e}function d(){}function f(e){for(var t=0,n=e.length,i="";n>t;t++)i+=e[t].value;return i}function p(e,t,n){var i=t.dir,r=n&&"parentNode"===i,o=z++;return t.first?function(t,n,o){for(;t=t[i];)if(1===t.nodeType||r)return e(t,n,o)}:function(t,n,a){var s,l,u,c=[$,o];if(a){for(;t=t[i];)if((1===t.nodeType||r)&&e(t,n,a))return!0}else for(;t=t[i];)if(1===t.nodeType||r){if(u=t[F]||(t[F]={}),l=u[t.uniqueID]||(u[t.uniqueID]={}),(s=l[i])&&s[0]===$&&s[1]===o)return c[2]=s[2];if(l[i]=c,c[2]=e(t,n,a))return!0}}}function h(e){return e.length>1?function(t,n,i){for(var r=e.length;r--;)if(!e[r](t,n,i))return!1;return!0}:e[0]}function m(e,n,i){for(var r=0,o=n.length;o>r;r++)t(e,n[r],i);return i}function g(e,t,n,i,r){for(var o,a=[],s=0,l=e.length,u=null!=t;l>s;s++)(o=e[s])&&(n&&!n(o,i,r)||(a.push(o),u&&t.push(s)));return a}function v(e,t,n,r,o,a){return r&&!r[F]&&(r=v(r)),o&&!o[F]&&(o=v(o,a)),i(function(i,a,s,l){var u,c,d,f=[],p=[],h=a.length,v=i||m(t||"*",s.nodeType?[s]:s,[]),y=!e||!i&&t?v:g(v,f,e,s,l),b=n?o||(i?e:h||r)?[]:a:y;if(n&&n(y,b,s,l),r)for(u=g(b,p),r(u,[],s,l),c=u.length;c--;)(d=u[c])&&(b[p[c]]=!(y[p[c]]=d));if(i){if(o||e){if(o){for(u=[],c=b.length;c--;)(d=b[c])&&u.push(y[c]=d);o(null,b=[],u,l)}for(c=b.length;c--;)(d=b[c])&&(u=o?ee(i,d):f[c])>-1&&(i[u]=!(a[u]=d))}}else b=g(b===a?b.splice(h,b.length):b),o?o(null,a,b,l):J.apply(a,b)})}function y(e){for(var t,n,i,r=e.length,o=C.relative[e[0].type],a=o||C.relative[" "],s=o?1:0,l=p(function(e){return e===t},a,!0),u=p(function(e){return ee(t,e)>-1},a,!0),c=[function(e,n,i){var r=!o&&(i||n!==L)||((t=n).nodeType?l(e,n,i):u(e,n,i));return t=null,r}];r>s;s++)if(n=C.relative[e[s].type])c=[p(h(c),n)];else{if(n=C.filter[e[s].type].apply(null,e[s].matches),n[F]){for(i=++s;r>i&&!C.relative[e[i].type];i++);return v(s>1&&h(c),s>1&&f(e.slice(0,s-1).concat({value:" "===e[s-2].type?"*":""})).replace(se,"$1"),n,i>s&&y(e.slice(s,i)),r>i&&y(e=e.slice(i)),r>i&&f(e))}c.push(n)}return h(c)}function b(e,n){var r=n.length>0,o=e.length>0,a=function(i,a,s,l,u){var c,d,f,p=0,h="0",m=i&&[],v=[],y=L,b=i||o&&C.find.TAG("*",u),x=$+=null==y?1:Math.random()||.1,w=b.length;for(u&&(L=a===I||a||u);h!==w&&null!=(c=b[h]);h++){if(o&&c){for(d=0,a||c.ownerDocument===I||(_(c),s=!H);f=e[d++];)if(f(c,a||I,s)){l.push(c);break}u&&($=x)}r&&((c=!f&&c)&&p--,i&&m.push(c))}if(p+=h,r&&h!==p){for(d=0;f=n[d++];)f(m,v,a,s);if(i){if(p>0)for(;h--;)m[h]||v[h]||(v[h]=Q.call(l));v=g(v)}J.apply(l,v),u&&!i&&v.length>0&&p+n.length>1&&t.uniqueSort(l)}return u&&($=x,L=y),m};return r?i(a):a}var x,w,C,T,k,E,S,N,L,A,j,_,I,D,H,O,M,P,B,F="sizzle"+1*new Date,q=e.document,$=0,z=0,R=n(),W=n(),X=n(),Y=function(e,t){return e===t&&(j=!0),0},U=1<<31,V={}.hasOwnProperty,G=[],Q=G.pop,Z=G.push,J=G.push,K=G.slice,ee=function(e,t){for(var n=0,i=e.length;i>n;n++)if(e[n]===t)return n;return-1},te="checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped",ne="[\\x20\\t\\r\\n\\f]",ie="(?:\\\\.|[\\w-]|[^\\x00-\\xa0])+",re="\\["+ne+"*("+ie+")(?:"+ne+"*([*^$|!~]?=)"+ne+"*(?:'((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\"|("+ie+"))|)"+ne+"*\\]",oe=":("+ie+")(?:\\((('((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\")|((?:\\\\.|[^\\\\()[\\]]|"+re+")*)|.*)\\)|)",ae=new RegExp(ne+"+","g"),se=new RegExp("^"+ne+"+|((?:^|[^\\\\])(?:\\\\.)*)"+ne+"+$","g"),le=new RegExp("^"+ne+"*,"+ne+"*"),ue=new RegExp("^"+ne+"*([>+~]|"+ne+")"+ne+"*"),ce=new RegExp("="+ne+"*([^\\]'\"]*?)"+ne+"*\\]","g"),de=new RegExp(oe),fe=new RegExp("^"+ie+"$"),pe={ID:new RegExp("^#("+ie+")"),CLASS:new RegExp("^\\.("+ie+")"),TAG:new RegExp("^("+ie+"|[*])"),ATTR:new RegExp("^"+re),PSEUDO:new RegExp("^"+oe),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+ne+"*(even|odd|(([+-]|)(\\d*)n|)"+ne+"*(?:([+-]|)"+ne+"*(\\d+)|))"+ne+"*\\)|)","i"),bool:new RegExp("^(?:"+te+")$","i"),needsContext:new RegExp("^"+ne+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+ne+"*((?:-\\d)?\\d*)"+ne+"*\\)|)(?=[^-]|$)","i")},he=/^(?:input|select|textarea|button)$/i,me=/^h\d$/i,ge=/^[^{]+\{\s*\[native \w/,ve=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,ye=/[+~]/,be=/'|\\/g,xe=new RegExp("\\\\([\\da-f]{1,6}"+ne+"?|("+ne+")|.)","ig"),we=function(e,t,n){var i="0x"+t-65536;return i!==i||n?t:0>i?String.fromCharCode(i+65536):String.fromCharCode(i>>10|55296,1023&i|56320)},Ce=function(){_()};try{J.apply(G=K.call(q.childNodes),q.childNodes),G[q.childNodes.length].nodeType}catch(Te){J={apply:G.length?function(e,t){Z.apply(e,K.call(t))}:function(e,t){for(var n=e.length,i=0;e[n++]=t[i++];);e.length=n-1}}}w=t.support={},k=t.isXML=function(e){var t=e&&(e.ownerDocument||e).documentElement;return t?"HTML"!==t.nodeName:!1},_=t.setDocument=function(e){var t,n,i=e?e.ownerDocument||e:q;return i!==I&&9===i.nodeType&&i.documentElement?(I=i,D=I.documentElement,H=!k(I),(n=I.defaultView)&&n.top!==n&&(n.addEventListener?n.addEventListener("unload",Ce,!1):n.attachEvent&&n.attachEvent("onunload",Ce)),w.attributes=r(function(e){return e.className="i",!e.getAttribute("className")}),w.getElementsByTagName=r(function(e){return e.appendChild(I.createComment("")),!e.getElementsByTagName("*").length}),w.getElementsByClassName=ge.test(I.getElementsByClassName),w.getById=r(function(e){return D.appendChild(e).id=F,!I.getElementsByName||!I.getElementsByName(F).length}),w.getById?(C.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&H){var n=t.getElementById(e);return n?[n]:[]}},C.filter.ID=function(e){var t=e.replace(xe,we);return function(e){return e.getAttribute("id")===t}}):(delete C.find.ID,C.filter.ID=function(e){var t=e.replace(xe,we);return function(e){var n="undefined"!=typeof e.getAttributeNode&&e.getAttributeNode("id");return n&&n.value===t}}),C.find.TAG=w.getElementsByTagName?function(e,t){return"undefined"!=typeof t.getElementsByTagName?t.getElementsByTagName(e):w.qsa?t.querySelectorAll(e):void 0}:function(e,t){var n,i=[],r=0,o=t.getElementsByTagName(e);if("*"===e){for(;n=o[r++];)1===n.nodeType&&i.push(n);return i}return o},C.find.CLASS=w.getElementsByClassName&&function(e,t){return"undefined"!=typeof t.getElementsByClassName&&H?t.getElementsByClassName(e):void 0},M=[],O=[],(w.qsa=ge.test(I.querySelectorAll))&&(r(function(e){D.appendChild(e).innerHTML=" ",e.querySelectorAll("[msallowcapture^='']").length&&O.push("[*^$]="+ne+"*(?:''|\"\")"),e.querySelectorAll("[selected]").length||O.push("\\["+ne+"*(?:value|"+te+")"),e.querySelectorAll("[id~="+F+"-]").length||O.push("~="),e.querySelectorAll(":checked").length||O.push(":checked"),e.querySelectorAll("a#"+F+"+*").length||O.push(".#.+[+~]")}),r(function(e){var t=I.createElement("input");t.setAttribute("type","hidden"),e.appendChild(t).setAttribute("name","D"),e.querySelectorAll("[name=d]").length&&O.push("name"+ne+"*[*^$|!~]?="),e.querySelectorAll(":enabled").length||O.push(":enabled",":disabled"),e.querySelectorAll("*,:x"),O.push(",.*:")})),(w.matchesSelector=ge.test(P=D.matches||D.webkitMatchesSelector||D.mozMatchesSelector||D.oMatchesSelector||D.msMatchesSelector))&&r(function(e){w.disconnectedMatch=P.call(e,"div"),P.call(e,"[s!='']:x"),M.push("!=",oe)}),O=O.length&&new RegExp(O.join("|")),M=M.length&&new RegExp(M.join("|")),t=ge.test(D.compareDocumentPosition),B=t||ge.test(D.contains)?function(e,t){var n=9===e.nodeType?e.documentElement:e,i=t&&t.parentNode;return e===i||!(!i||1!==i.nodeType||!(n.contains?n.contains(i):e.compareDocumentPosition&&16&e.compareDocumentPosition(i)))}:function(e,t){if(t)for(;t=t.parentNode;)if(t===e)return!0;return!1},Y=t?function(e,t){if(e===t)return j=!0,0;var n=!e.compareDocumentPosition-!t.compareDocumentPosition;return n?n:(n=(e.ownerDocument||e)===(t.ownerDocument||t)?e.compareDocumentPosition(t):1,1&n||!w.sortDetached&&t.compareDocumentPosition(e)===n?e===I||e.ownerDocument===q&&B(q,e)?-1:t===I||t.ownerDocument===q&&B(q,t)?1:A?ee(A,e)-ee(A,t):0:4&n?-1:1)}:function(e,t){if(e===t)return j=!0,0;var n,i=0,r=e.parentNode,o=t.parentNode,s=[e],l=[t];if(!r||!o)return e===I?-1:t===I?1:r?-1:o?1:A?ee(A,e)-ee(A,t):0;if(r===o)return a(e,t);for(n=e;n=n.parentNode;)s.unshift(n);for(n=t;n=n.parentNode;)l.unshift(n);for(;s[i]===l[i];)i++;return i?a(s[i],l[i]):s[i]===q?-1:l[i]===q?1:0},I):I},t.matches=function(e,n){return t(e,null,null,n)},t.matchesSelector=function(e,n){if((e.ownerDocument||e)!==I&&_(e),n=n.replace(ce,"='$1']"),w.matchesSelector&&H&&!X[n+" "]&&(!M||!M.test(n))&&(!O||!O.test(n)))try{var i=P.call(e,n);if(i||w.disconnectedMatch||e.document&&11!==e.document.nodeType)return i}catch(r){}return t(n,I,null,[e]).length>0},t.contains=function(e,t){return(e.ownerDocument||e)!==I&&_(e),B(e,t)},t.attr=function(e,t){(e.ownerDocument||e)!==I&&_(e);var n=C.attrHandle[t.toLowerCase()],i=n&&V.call(C.attrHandle,t.toLowerCase())?n(e,t,!H):void 0;return void 0!==i?i:w.attributes||!H?e.getAttribute(t):(i=e.getAttributeNode(t))&&i.specified?i.value:null},t.error=function(e){throw new Error("Syntax error, unrecognized expression: "+e)},t.uniqueSort=function(e){var t,n=[],i=0,r=0;if(j=!w.detectDuplicates,A=!w.sortStable&&e.slice(0),e.sort(Y),j){for(;t=e[r++];)t===e[r]&&(i=n.push(r));for(;i--;)e.splice(n[i],1)}return A=null,e},T=t.getText=function(e){var t,n="",i=0,r=e.nodeType;if(r){if(1===r||9===r||11===r){if("string"==typeof e.textContent)return e.textContent;for(e=e.firstChild;e;e=e.nextSibling)n+=T(e)}else if(3===r||4===r)return e.nodeValue}else for(;t=e[i++];)n+=T(t);return n},C=t.selectors={cacheLength:50,createPseudo:i,match:pe,attrHandle:{},find:{},relative:{">":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(e){return e[1]=e[1].replace(xe,we),e[3]=(e[3]||e[4]||e[5]||"").replace(xe,we),"~="===e[2]&&(e[3]=" "+e[3]+" "),e.slice(0,4)},CHILD:function(e){return e[1]=e[1].toLowerCase(),"nth"===e[1].slice(0,3)?(e[3]||t.error(e[0]),e[4]=+(e[4]?e[5]+(e[6]||1):2*("even"===e[3]||"odd"===e[3])),e[5]=+(e[7]+e[8]||"odd"===e[3])):e[3]&&t.error(e[0]),e},PSEUDO:function(e){var t,n=!e[6]&&e[2];return pe.CHILD.test(e[0])?null:(e[3]?e[2]=e[4]||e[5]||"":n&&de.test(n)&&(t=E(n,!0))&&(t=n.indexOf(")",n.length-t)-n.length)&&(e[0]=e[0].slice(0,t),e[2]=n.slice(0,t)),e.slice(0,3))}},filter:{TAG:function(e){var t=e.replace(xe,we).toLowerCase();return"*"===e?function(){return!0}:function(e){return e.nodeName&&e.nodeName.toLowerCase()===t}},CLASS:function(e){var t=R[e+" "];return t||(t=new RegExp("(^|"+ne+")"+e+"("+ne+"|$)"))&&R(e,function(e){return t.test("string"==typeof e.className&&e.className||"undefined"!=typeof e.getAttribute&&e.getAttribute("class")||"")})},ATTR:function(e,n,i){return function(r){var o=t.attr(r,e);return null==o?"!="===n:n?(o+="","="===n?o===i:"!="===n?o!==i:"^="===n?i&&0===o.indexOf(i):"*="===n?i&&o.indexOf(i)>-1:"$="===n?i&&o.slice(-i.length)===i:"~="===n?(" "+o.replace(ae," ")+" ").indexOf(i)>-1:"|="===n?o===i||o.slice(0,i.length+1)===i+"-":!1):!0}},CHILD:function(e,t,n,i,r){var o="nth"!==e.slice(0,3),a="last"!==e.slice(-4),s="of-type"===t;
+return 1===i&&0===r?function(e){return!!e.parentNode}:function(t,n,l){var u,c,d,f,p,h,m=o!==a?"nextSibling":"previousSibling",g=t.parentNode,v=s&&t.nodeName.toLowerCase(),y=!l&&!s,b=!1;if(g){if(o){for(;m;){for(f=t;f=f[m];)if(s?f.nodeName.toLowerCase()===v:1===f.nodeType)return!1;h=m="only"===e&&!h&&"nextSibling"}return!0}if(h=[a?g.firstChild:g.lastChild],a&&y){for(f=g,d=f[F]||(f[F]={}),c=d[f.uniqueID]||(d[f.uniqueID]={}),u=c[e]||[],p=u[0]===$&&u[1],b=p&&u[2],f=p&&g.childNodes[p];f=++p&&f&&f[m]||(b=p=0)||h.pop();)if(1===f.nodeType&&++b&&f===t){c[e]=[$,p,b];break}}else if(y&&(f=t,d=f[F]||(f[F]={}),c=d[f.uniqueID]||(d[f.uniqueID]={}),u=c[e]||[],p=u[0]===$&&u[1],b=p),b===!1)for(;(f=++p&&f&&f[m]||(b=p=0)||h.pop())&&((s?f.nodeName.toLowerCase()!==v:1!==f.nodeType)||!++b||(y&&(d=f[F]||(f[F]={}),c=d[f.uniqueID]||(d[f.uniqueID]={}),c[e]=[$,b]),f!==t)););return b-=r,b===i||b%i===0&&b/i>=0}}},PSEUDO:function(e,n){var r,o=C.pseudos[e]||C.setFilters[e.toLowerCase()]||t.error("unsupported pseudo: "+e);return o[F]?o(n):o.length>1?(r=[e,e,"",n],C.setFilters.hasOwnProperty(e.toLowerCase())?i(function(e,t){for(var i,r=o(e,n),a=r.length;a--;)i=ee(e,r[a]),e[i]=!(t[i]=r[a])}):function(e){return o(e,0,r)}):o}},pseudos:{not:i(function(e){var t=[],n=[],r=S(e.replace(se,"$1"));return r[F]?i(function(e,t,n,i){for(var o,a=r(e,null,i,[]),s=e.length;s--;)(o=a[s])&&(e[s]=!(t[s]=o))}):function(e,i,o){return t[0]=e,r(t,null,o,n),t[0]=null,!n.pop()}}),has:i(function(e){return function(n){return t(e,n).length>0}}),contains:i(function(e){return e=e.replace(xe,we),function(t){return(t.textContent||t.innerText||T(t)).indexOf(e)>-1}}),lang:i(function(e){return fe.test(e||"")||t.error("unsupported lang: "+e),e=e.replace(xe,we).toLowerCase(),function(t){var n;do if(n=H?t.lang:t.getAttribute("xml:lang")||t.getAttribute("lang"))return n=n.toLowerCase(),n===e||0===n.indexOf(e+"-");while((t=t.parentNode)&&1===t.nodeType);return!1}}),target:function(t){var n=e.location&&e.location.hash;return n&&n.slice(1)===t.id},root:function(e){return e===D},focus:function(e){return e===I.activeElement&&(!I.hasFocus||I.hasFocus())&&!!(e.type||e.href||~e.tabIndex)},enabled:function(e){return e.disabled===!1},disabled:function(e){return e.disabled===!0},checked:function(e){var t=e.nodeName.toLowerCase();return"input"===t&&!!e.checked||"option"===t&&!!e.selected},selected:function(e){return e.parentNode&&e.parentNode.selectedIndex,e.selected===!0},empty:function(e){for(e=e.firstChild;e;e=e.nextSibling)if(e.nodeType<6)return!1;return!0},parent:function(e){return!C.pseudos.empty(e)},header:function(e){return me.test(e.nodeName)},input:function(e){return he.test(e.nodeName)},button:function(e){var t=e.nodeName.toLowerCase();return"input"===t&&"button"===e.type||"button"===t},text:function(e){var t;return"input"===e.nodeName.toLowerCase()&&"text"===e.type&&(null==(t=e.getAttribute("type"))||"text"===t.toLowerCase())},first:u(function(){return[0]}),last:u(function(e,t){return[t-1]}),eq:u(function(e,t,n){return[0>n?n+t:n]}),even:u(function(e,t){for(var n=0;t>n;n+=2)e.push(n);return e}),odd:u(function(e,t){for(var n=1;t>n;n+=2)e.push(n);return e}),lt:u(function(e,t,n){for(var i=0>n?n+t:n;--i>=0;)e.push(i);return e}),gt:u(function(e,t,n){for(var i=0>n?n+t:n;++i2&&"ID"===(a=o[0]).type&&w.getById&&9===t.nodeType&&H&&C.relative[o[1].type]){if(t=(C.find.ID(a.matches[0].replace(xe,we),t)||[])[0],!t)return n;u&&(t=t.parentNode),e=e.slice(o.shift().value.length)}for(r=pe.needsContext.test(e)?0:o.length;r--&&(a=o[r],!C.relative[s=a.type]);)if((l=C.find[s])&&(i=l(a.matches[0].replace(xe,we),ye.test(o[0].type)&&c(t.parentNode)||t))){if(o.splice(r,1),e=i.length&&f(o),!e)return J.apply(n,i),n;break}}return(u||S(e,d))(i,t,!H,n,!t||ye.test(e)&&c(t.parentNode)||t),n},w.sortStable=F.split("").sort(Y).join("")===F,w.detectDuplicates=!!j,_(),w.sortDetached=r(function(e){return 1&e.compareDocumentPosition(I.createElement("div"))}),r(function(e){return e.innerHTML=" ","#"===e.firstChild.getAttribute("href")})||o("type|href|height|width",function(e,t,n){return n?void 0:e.getAttribute(t,"type"===t.toLowerCase()?1:2)}),w.attributes&&r(function(e){return e.innerHTML=" ",e.firstChild.setAttribute("value",""),""===e.firstChild.getAttribute("value")})||o("value",function(e,t,n){return n||"input"!==e.nodeName.toLowerCase()?void 0:e.defaultValue}),r(function(e){return null==e.getAttribute("disabled")})||o(te,function(e,t,n){var i;return n?void 0:e[t]===!0?t.toLowerCase():(i=e.getAttributeNode(t))&&i.specified?i.value:null}),t}(e);pe.find=ye,pe.expr=ye.selectors,pe.expr[":"]=pe.expr.pseudos,pe.uniqueSort=pe.unique=ye.uniqueSort,pe.text=ye.getText,pe.isXMLDoc=ye.isXML,pe.contains=ye.contains;var be=function(e,t,n){for(var i=[],r=void 0!==n;(e=e[t])&&9!==e.nodeType;)if(1===e.nodeType){if(r&&pe(e).is(n))break;i.push(e)}return i},xe=function(e,t){for(var n=[];e;e=e.nextSibling)1===e.nodeType&&e!==t&&n.push(e);return n},we=pe.expr.match.needsContext,Ce=/^<([\w-]+)\s*\/?>(?:<\/\1>|)$/,Te=/^.[^:#\[\.,]*$/;pe.filter=function(e,t,n){var i=t[0];return n&&(e=":not("+e+")"),1===t.length&&1===i.nodeType?pe.find.matchesSelector(i,e)?[i]:[]:pe.find.matches(e,pe.grep(t,function(e){return 1===e.nodeType}))},pe.fn.extend({find:function(e){var t,n=[],i=this,r=i.length;if("string"!=typeof e)return this.pushStack(pe(e).filter(function(){for(t=0;r>t;t++)if(pe.contains(i[t],this))return!0}));for(t=0;r>t;t++)pe.find(e,i[t],n);return n=this.pushStack(r>1?pe.unique(n):n),n.selector=this.selector?this.selector+" "+e:e,n},filter:function(e){return this.pushStack(i(this,e||[],!1))},not:function(e){return this.pushStack(i(this,e||[],!0))},is:function(e){return!!i(this,"string"==typeof e&&we.test(e)?pe(e):e||[],!1).length}});var ke,Ee=/^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]*))$/,Se=pe.fn.init=function(e,t,n){var i,r;if(!e)return this;if(n=n||ke,"string"==typeof e){if(i="<"===e.charAt(0)&&">"===e.charAt(e.length-1)&&e.length>=3?[null,e,null]:Ee.exec(e),!i||!i[1]&&t)return!t||t.jquery?(t||n).find(e):this.constructor(t).find(e);if(i[1]){if(t=t instanceof pe?t[0]:t,pe.merge(this,pe.parseHTML(i[1],t&&t.nodeType?t.ownerDocument||t:ie,!0)),Ce.test(i[1])&&pe.isPlainObject(t))for(i in t)pe.isFunction(this[i])?this[i](t[i]):this.attr(i,t[i]);return this}if(r=ie.getElementById(i[2]),r&&r.parentNode){if(r.id!==i[2])return ke.find(e);this.length=1,this[0]=r}return this.context=ie,this.selector=e,this}return e.nodeType?(this.context=this[0]=e,this.length=1,this):pe.isFunction(e)?"undefined"!=typeof n.ready?n.ready(e):e(pe):(void 0!==e.selector&&(this.selector=e.selector,this.context=e.context),pe.makeArray(e,this))};Se.prototype=pe.fn,ke=pe(ie);var Ne=/^(?:parents|prev(?:Until|All))/,Le={children:!0,contents:!0,next:!0,prev:!0};pe.fn.extend({has:function(e){var t,n=pe(e,this),i=n.length;return this.filter(function(){for(t=0;i>t;t++)if(pe.contains(this,n[t]))return!0})},closest:function(e,t){for(var n,i=0,r=this.length,o=[],a=we.test(e)||"string"!=typeof e?pe(e,t||this.context):0;r>i;i++)for(n=this[i];n&&n!==t;n=n.parentNode)if(n.nodeType<11&&(a?a.index(n)>-1:1===n.nodeType&&pe.find.matchesSelector(n,e))){o.push(n);break}return this.pushStack(o.length>1?pe.uniqueSort(o):o)},index:function(e){return e?"string"==typeof e?pe.inArray(this[0],pe(e)):pe.inArray(e.jquery?e[0]:e,this):this[0]&&this[0].parentNode?this.first().prevAll().length:-1},add:function(e,t){return this.pushStack(pe.uniqueSort(pe.merge(this.get(),pe(e,t))))},addBack:function(e){return this.add(null==e?this.prevObject:this.prevObject.filter(e))}}),pe.each({parent:function(e){var t=e.parentNode;return t&&11!==t.nodeType?t:null},parents:function(e){return be(e,"parentNode")},parentsUntil:function(e,t,n){return be(e,"parentNode",n)},next:function(e){return r(e,"nextSibling")},prev:function(e){return r(e,"previousSibling")},nextAll:function(e){return be(e,"nextSibling")},prevAll:function(e){return be(e,"previousSibling")},nextUntil:function(e,t,n){return be(e,"nextSibling",n)},prevUntil:function(e,t,n){return be(e,"previousSibling",n)},siblings:function(e){return xe((e.parentNode||{}).firstChild,e)},children:function(e){return xe(e.firstChild)},contents:function(e){return pe.nodeName(e,"iframe")?e.contentDocument||e.contentWindow.document:pe.merge([],e.childNodes)}},function(e,t){pe.fn[e]=function(n,i){var r=pe.map(this,t,n);return"Until"!==e.slice(-5)&&(i=n),i&&"string"==typeof i&&(r=pe.filter(i,r)),this.length>1&&(Le[e]||(r=pe.uniqueSort(r)),Ne.test(e)&&(r=r.reverse())),this.pushStack(r)}});var Ae=/\S+/g;pe.Callbacks=function(e){e="string"==typeof e?o(e):pe.extend({},e);var t,n,i,r,a=[],s=[],l=-1,u=function(){for(r=e.once,i=t=!0;s.length;l=-1)for(n=s.shift();++l-1;)a.splice(n,1),l>=n&&l--}),this},has:function(e){return e?pe.inArray(e,a)>-1:a.length>0},empty:function(){return a&&(a=[]),this},disable:function(){return r=s=[],a=n="",this},disabled:function(){return!a},lock:function(){return r=!0,n||c.disable(),this},locked:function(){return!!r},fireWith:function(e,n){return r||(n=n||[],n=[e,n.slice?n.slice():n],s.push(n),t||u()),this},fire:function(){return c.fireWith(this,arguments),this},fired:function(){return!!i}};return c},pe.extend({Deferred:function(e){var t=[["resolve","done",pe.Callbacks("once memory"),"resolved"],["reject","fail",pe.Callbacks("once memory"),"rejected"],["notify","progress",pe.Callbacks("memory")]],n="pending",i={state:function(){return n},always:function(){return r.done(arguments).fail(arguments),this},then:function(){var e=arguments;return pe.Deferred(function(n){pe.each(t,function(t,o){var a=pe.isFunction(e[t])&&e[t];r[o[1]](function(){var e=a&&a.apply(this,arguments);e&&pe.isFunction(e.promise)?e.promise().progress(n.notify).done(n.resolve).fail(n.reject):n[o[0]+"With"](this===i?n.promise():this,a?[e]:arguments)})}),e=null}).promise()},promise:function(e){return null!=e?pe.extend(e,i):i}},r={};return i.pipe=i.then,pe.each(t,function(e,o){var a=o[2],s=o[3];i[o[1]]=a.add,s&&a.add(function(){n=s},t[1^e][2].disable,t[2][2].lock),r[o[0]]=function(){return r[o[0]+"With"](this===r?i:this,arguments),this},r[o[0]+"With"]=a.fireWith}),i.promise(r),e&&e.call(r,r),r},when:function(e){var t,n,i,r=0,o=re.call(arguments),a=o.length,s=1!==a||e&&pe.isFunction(e.promise)?a:0,l=1===s?e:pe.Deferred(),u=function(e,n,i){return function(r){n[e]=this,i[e]=arguments.length>1?re.call(arguments):r,i===t?l.notifyWith(n,i):--s||l.resolveWith(n,i)}};if(a>1)for(t=new Array(a),n=new Array(a),i=new Array(a);a>r;r++)o[r]&&pe.isFunction(o[r].promise)?o[r].promise().progress(u(r,n,t)).done(u(r,i,o)).fail(l.reject):--s;return s||l.resolveWith(i,o),l.promise()}});var je;pe.fn.ready=function(e){return pe.ready.promise().done(e),this},pe.extend({isReady:!1,readyWait:1,holdReady:function(e){e?pe.readyWait++:pe.ready(!0)},ready:function(e){(e===!0?--pe.readyWait:pe.isReady)||(pe.isReady=!0,e!==!0&&--pe.readyWait>0||(je.resolveWith(ie,[pe]),pe.fn.triggerHandler&&(pe(ie).triggerHandler("ready"),pe(ie).off("ready"))))}}),pe.ready.promise=function(t){if(!je)if(je=pe.Deferred(),"complete"===ie.readyState||"loading"!==ie.readyState&&!ie.documentElement.doScroll)e.setTimeout(pe.ready);else if(ie.addEventListener)ie.addEventListener("DOMContentLoaded",s),e.addEventListener("load",s);else{ie.attachEvent("onreadystatechange",s),e.attachEvent("onload",s);var n=!1;try{n=null==e.frameElement&&ie.documentElement}catch(i){}n&&n.doScroll&&!function r(){if(!pe.isReady){try{n.doScroll("left")}catch(t){return e.setTimeout(r,50)}a(),pe.ready()}}()}return je.promise(t)},pe.ready.promise();var _e;for(_e in pe(de))break;de.ownFirst="0"===_e,de.inlineBlockNeedsLayout=!1,pe(function(){var e,t,n,i;n=ie.getElementsByTagName("body")[0],n&&n.style&&(t=ie.createElement("div"),i=ie.createElement("div"),i.style.cssText="position:absolute;border:0;width:0;height:0;top:0;left:-9999px",n.appendChild(i).appendChild(t),"undefined"!=typeof t.style.zoom&&(t.style.cssText="display:inline;margin:0;border:0;padding:1px;width:1px;zoom:1",de.inlineBlockNeedsLayout=e=3===t.offsetWidth,e&&(n.style.zoom=1)),n.removeChild(i))}),function(){var e=ie.createElement("div");de.deleteExpando=!0;try{delete e.test}catch(t){de.deleteExpando=!1}e=null}();var Ie=function(e){var t=pe.noData[(e.nodeName+" ").toLowerCase()],n=+e.nodeType||1;return 1!==n&&9!==n?!1:!t||t!==!0&&e.getAttribute("classid")===t},De=/^(?:\{[\w\W]*\}|\[[\w\W]*\])$/,He=/([A-Z])/g;pe.extend({cache:{},noData:{"applet ":!0,"embed ":!0,"object ":"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"},hasData:function(e){return e=e.nodeType?pe.cache[e[pe.expando]]:e[pe.expando],!!e&&!u(e)},data:function(e,t,n){return c(e,t,n)},removeData:function(e,t){return d(e,t)},_data:function(e,t,n){return c(e,t,n,!0)},_removeData:function(e,t){return d(e,t,!0)}}),pe.fn.extend({data:function(e,t){var n,i,r,o=this[0],a=o&&o.attributes;if(void 0===e){if(this.length&&(r=pe.data(o),1===o.nodeType&&!pe._data(o,"parsedAttrs"))){for(n=a.length;n--;)a[n]&&(i=a[n].name,0===i.indexOf("data-")&&(i=pe.camelCase(i.slice(5)),l(o,i,r[i])));pe._data(o,"parsedAttrs",!0)}return r}return"object"==typeof e?this.each(function(){pe.data(this,e)}):arguments.length>1?this.each(function(){pe.data(this,e,t)}):o?l(o,e,pe.data(o,e)):void 0},removeData:function(e){return this.each(function(){pe.removeData(this,e)})}}),pe.extend({queue:function(e,t,n){var i;return e?(t=(t||"fx")+"queue",i=pe._data(e,t),n&&(!i||pe.isArray(n)?i=pe._data(e,t,pe.makeArray(n)):i.push(n)),i||[]):void 0},dequeue:function(e,t){t=t||"fx";var n=pe.queue(e,t),i=n.length,r=n.shift(),o=pe._queueHooks(e,t),a=function(){pe.dequeue(e,t)};"inprogress"===r&&(r=n.shift(),i--),r&&("fx"===t&&n.unshift("inprogress"),delete o.stop,r.call(e,a,o)),!i&&o&&o.empty.fire()},_queueHooks:function(e,t){var n=t+"queueHooks";return pe._data(e,n)||pe._data(e,n,{empty:pe.Callbacks("once memory").add(function(){pe._removeData(e,t+"queue"),pe._removeData(e,n)})})}}),pe.fn.extend({queue:function(e,t){var n=2;return"string"!=typeof e&&(t=e,e="fx",n--),arguments.lengths;s++)t(e[s],n,a?i:i.call(e[s],s,t(e[s],n)));return r?e:u?t.call(e):l?t(e[0],n):o},qe=/^(?:checkbox|radio)$/i,$e=/<([\w:-]+)/,ze=/^$|\/(?:java|ecma)script/i,Re=/^\s+/,We="abbr|article|aside|audio|bdi|canvas|data|datalist|details|dialog|figcaption|figure|footer|header|hgroup|main|mark|meter|nav|output|picture|progress|section|summary|template|time|video";!function(){var e=ie.createElement("div"),t=ie.createDocumentFragment(),n=ie.createElement("input");e.innerHTML=" a ",de.leadingWhitespace=3===e.firstChild.nodeType,de.tbody=!e.getElementsByTagName("tbody").length,de.htmlSerialize=!!e.getElementsByTagName("link").length,de.html5Clone="<:nav>"!==ie.createElement("nav").cloneNode(!0).outerHTML,n.type="checkbox",n.checked=!0,t.appendChild(n),de.appendChecked=n.checked,e.innerHTML="",de.noCloneChecked=!!e.cloneNode(!0).lastChild.defaultValue,t.appendChild(e),n=ie.createElement("input"),n.setAttribute("type","radio"),n.setAttribute("checked","checked"),n.setAttribute("name","t"),e.appendChild(n),de.checkClone=e.cloneNode(!0).cloneNode(!0).lastChild.checked,de.noCloneEvent=!!e.addEventListener,e[pe.expando]=1,de.attributes=!e.getAttribute(pe.expando)}();var Xe={option:[1,""," "],legend:[1,""," "],area:[1,""," "],param:[1,""," "],thead:[1,""],tr:[2,""],col:[2,""],td:[3,""],_default:de.htmlSerialize?[0,"",""]:[1,"X","
"]};Xe.optgroup=Xe.option,Xe.tbody=Xe.tfoot=Xe.colgroup=Xe.caption=Xe.thead,Xe.th=Xe.td;var Ye=/<|?\w+;/,Ue=/-1&&(h=p.split("."),p=h.shift(),h.sort()),a=p.indexOf(":")<0&&"on"+p,t=t[pe.expando]?t:new pe.Event(p,"object"==typeof t&&t),t.isTrigger=r?2:3,t.namespace=h.join("."),t.rnamespace=t.namespace?new RegExp("(^|\\.)"+h.join("\\.(?:.*\\.|)")+"(\\.|$)"):null,t.result=void 0,t.target||(t.target=i),n=null==n?[t]:pe.makeArray(n,[t]),u=pe.event.special[p]||{},r||!u.trigger||u.trigger.apply(i,n)!==!1)){if(!r&&!u.noBubble&&!pe.isWindow(i)){for(l=u.delegateType||p,Ze.test(l+p)||(s=s.parentNode);s;s=s.parentNode)f.push(s),c=s;c===(i.ownerDocument||ie)&&f.push(c.defaultView||c.parentWindow||e)}for(d=0;(s=f[d++])&&!t.isPropagationStopped();)t.type=d>1?l:u.bindType||p,o=(pe._data(s,"events")||{})[t.type]&&pe._data(s,"handle"),o&&o.apply(s,n),o=a&&s[a],o&&o.apply&&Ie(s)&&(t.result=o.apply(s,n),t.result===!1&&t.preventDefault());if(t.type=p,!r&&!t.isDefaultPrevented()&&(!u._default||u._default.apply(f.pop(),n)===!1)&&Ie(i)&&a&&i[p]&&!pe.isWindow(i)){c=i[a],c&&(i[a]=null),pe.event.triggered=p;try{i[p]()}catch(m){}pe.event.triggered=void 0,c&&(i[a]=c)}return t.result}},dispatch:function(e){e=pe.event.fix(e);var t,n,i,r,o,a=[],s=re.call(arguments),l=(pe._data(this,"events")||{})[e.type]||[],u=pe.event.special[e.type]||{};if(s[0]=e,e.delegateTarget=this,!u.preDispatch||u.preDispatch.call(this,e)!==!1){for(a=pe.event.handlers.call(this,e,l),t=0;(r=a[t++])&&!e.isPropagationStopped();)for(e.currentTarget=r.elem,n=0;(o=r.handlers[n++])&&!e.isImmediatePropagationStopped();)e.rnamespace&&!e.rnamespace.test(o.namespace)||(e.handleObj=o,e.data=o.data,i=((pe.event.special[o.origType]||{}).handle||o.handler).apply(r.elem,s),void 0!==i&&(e.result=i)===!1&&(e.preventDefault(),e.stopPropagation()));return u.postDispatch&&u.postDispatch.call(this,e),e.result}},handlers:function(e,t){var n,i,r,o,a=[],s=t.delegateCount,l=e.target;if(s&&l.nodeType&&("click"!==e.type||isNaN(e.button)||e.button<1))for(;l!=this;l=l.parentNode||this)if(1===l.nodeType&&(l.disabled!==!0||"click"!==e.type)){for(i=[],n=0;s>n;n++)o=t[n],r=o.selector+" ",void 0===i[r]&&(i[r]=o.needsContext?pe(r,this).index(l)>-1:pe.find(r,this,null,[l]).length),i[r]&&i.push(o);i.length&&a.push({elem:l,handlers:i})}return s ]","i"),tt=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:-]+)[^>]*)\/>/gi,nt=/
{{ site.data.ui-text[site.locale].comments_title | default: "Comments" }}
+ {% assign comments = site.data.comments[page.slug] | sort %} + + {% for comment in comments %} + {% assign email = comment[1].email %} + {% assign name = comment[1].name %} + {% assign url = comment[1].url %} + {% assign date = comment[1].date %} + {% assign message = comment[1].message %} + {% include comment.html index=forloop.index email=email name=name url=url date=date message=message %} + {% endfor %} + {% endif %} +{{ site.data.ui-text[site.locale].comments_label | default: "Leave a Comment" }}
+{{ site.data.ui-text[site.locale].comment_form_info | default: "Your email address will not be published. Required fields are marked" }} *
+ + + {% endif %} +