diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..d0722bc
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1,4 @@
+_site
+.jekyll-metadata
+.sass-cache
+.idea
diff --git a/.gitmodules b/.gitmodules
new file mode 100644
index 0000000..12123b5
--- /dev/null
+++ b/.gitmodules
@@ -0,0 +1,3 @@
+[submodule "reveal.js"]
+ path = reveal.js
+ url = https://github.com/hakimel/reveal.js.git
diff --git a/.idea/vcs.xml b/.idea/vcs.xml
new file mode 100644
index 0000000..35eb1dd
--- /dev/null
+++ b/.idea/vcs.xml
@@ -0,0 +1,6 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/CNAME_RENAMED b/CNAME_RENAMED
new file mode 100644
index 0000000..37ccd5b
--- /dev/null
+++ b/CNAME_RENAMED
@@ -0,0 +1 @@
+www.codeforbaltimore.org
diff --git a/LICENSE b/LICENSE
new file mode 100644
index 0000000..a679734
--- /dev/null
+++ b/LICENSE
@@ -0,0 +1,21 @@
+MIT License
+
+Copyright (c) 2017 Code for Boston
+
+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/README.md b/README.md
deleted file mode 100644
index 3311948..0000000
--- a/README.md
+++ /dev/null
@@ -1,2 +0,0 @@
-# codeforbaltimore.org
-Repo for our Wordpress based website
diff --git a/_config.yml b/_config.yml
new file mode 100644
index 0000000..cd428c0
--- /dev/null
+++ b/_config.yml
@@ -0,0 +1,28 @@
+---
+title: Code For Baltimore
+timezone: UTC
+markdown: kramdown
+collections:
+ posts:
+ title: Posts
+ output: true
+ uploads:
+ title: Uploads
+ output: true
+email: code4baltimore@gmail.com
+description: 'Part of the Code for America Brigade network, we are a volunteer group
+ of developers, designers, data geeks, and citizen activists who use creative technology
+ to solve civic and social problems.'
+baseurl: '/codeforbaltimore.org'
+url: http://codeforbaltimore.org
+hackpad_url: http://codeforbaltimore.org
+twitter_url: https://twitter.com/@codeforbmore
+github_url: https://github.com/CodeForBaltimore
+meetup_url: https://www.meetup.com/Code-for-Baltimore/
+blog_url: http://codeforbaltimore.org
+events_url: http://codeforbaltimore.org
+slack_url: https://communityinviter.com/apps/
+reveal_path: /reveal.js/
+reveal_theme_path: /reveal.js/css/theme/
+reveal_theme: sky.css
+ga_id: INSERT_GA_ID
diff --git a/_data/events/active.yml b/_data/events/active.yml
new file mode 100644
index 0000000..d73bcfe
--- /dev/null
+++ b/_data/events/active.yml
@@ -0,0 +1,13 @@
+- name: Hack Night
+ date: Wednesday, June 6, 2018
+ time: 7:00 PM to 9:00 PM
+ location: TBD
+ meetup_url: https://www.meetup.com/Code-for-Baltimore/events/251233022/
+ description: >
+ Join us for a fun Hack Night to work on the projects with your team.
+
+ Haven't previously joined us? That's ok! Teams are always growing and in need of people who want to dedicate some of their time to improving Baltimore through tech projects.
+
+ Some of our current work includes hospital/health department emergency weather notifications, kinetic data sculptures, and the Idea Hub.
+
+ We also love new ideas! Feel free to share anything you're working on or would like to explore.
diff --git a/_data/jobs.yml b/_data/jobs.yml
new file mode 100644
index 0000000..c4a97b2
--- /dev/null
+++ b/_data/jobs.yml
@@ -0,0 +1,8 @@
+#- title: "Civic Technology Fellow"
+# org:
+# name: "Metropolitan Area Planning Council"
+# link: "http://mapc.ma/civictechjob"
+# description: >
+# Lead the development of civic web applications, including services to help the City of Boston's youth jobs program
+# place thousands more local youth into meaningful employment. Work with an inclusive, multidisciplinary team
+# to create 21st century government services, from conception to delivery.
diff --git a/_data/projects/active.yml b/_data/projects/active.yml
new file mode 100644
index 0000000..7d24820
--- /dev/null
+++ b/_data/projects/active.yml
@@ -0,0 +1,26 @@
+-
+ name: Hospital Notifications
+ url: https://github.com/CodeForBaltimore
+ news: >
+ * Dev/ Tech Lead: Jeremy Neal
+ * Design Lead: Joseph C
+-
+ name: Data Sculptures
+ url: https://github.com/CodeForBaltimore
+ news: >
+ * Project Manager: Derek Fields
+-
+ name: Idea hub
+ url: https://github.com/CodeForBaltimore
+ news: >
+ * Project Manager: Derek Fields
+-
+ name: CfB Website
+ url: https://github.com/CodeForBaltimore
+ news: >
+ * Project Manager: Bryan Connor
+-
+ name: Sincronicity
+ url: https://github.com/CodeForBaltimore
+ news: >
+ * Project Manager: Karina Mandell
diff --git a/_data/projects/inactive.yml b/_data/projects/inactive.yml
new file mode 100644
index 0000000..8a40de4
--- /dev/null
+++ b/_data/projects/inactive.yml
@@ -0,0 +1,43 @@
+-
+ name: Ungentry
+ url: https://github.com/codeforboston/ungentry
+-
+ name: MBTA.ninja
+ url: https://github.com/codeforboston/mbta-ninja
+-
+ name: CornerWise
+ url: https://github.com/cityofsomerville/cornerwise
+-
+ name: Finda
+ url: https://github.com/codeforboston/finda
+-
+ name: Cambridge Open Data Challenges
+ news: >
+ Public data sets with problem statements from the City of Cambridge
+ https://data.cambridgema.gov/General-Government/Civic-Innovation-Challenge-Inventory/x96z-hdnh/about
+ Kent Johnson's answer to one of the problem statements (this was demo'd at the 2017 Bloomberg What Works Cities conference):
+ http://kentsj.com/Misc/Board_of_Zoning_Appeal_Requests_CT.html
+-
+ name: Tools and Rules for Blockchain-Backed Individual Identity
+ news: >
+ https://www.meetup.com/Massachusetts-Legal-Hackers/events/239091160
+ In the Prome Conference Room, 4th Floor CIC.
+ Tonight is the third of five Legal Hack Nights dedicated to building out a reference implementation blockchain-backed individual identity digital signature app. The app is intended to be a working prototype we can use to evaluate and work with individual identity innovation and to better understand how legal, technical and other requirements can be addressed in an integrated manner.
+ Massachusetts Legal Hackers is grateful to hack along with Code for Boston during this special 5-part series!
+-
+ name: Inman Square Intersection VM
+ news: >
+ Urban Planning with Virtual Reality: Inman Square Intersection
+
+ We're looking to create a moderately realistic model of the Inman Square intersection redesign as a way to communicate the City's plans and progress to the public. We'll also be testing how VR affects public opinion on a contentious planning issue.
+
+ Need skills:
+
+ - Sketchup or 3D modeling software in general
+ - Unity or AFrame
+ - Research / survey design
+
+ No VR experience required.
+-
+ name: EnerSave
+ url: https://github.com/codeforboston/cambridge_energy_app
diff --git a/_data/resources/tools.yml b/_data/resources/tools.yml
new file mode 100644
index 0000000..e482dd3
--- /dev/null
+++ b/_data/resources/tools.yml
@@ -0,0 +1,39 @@
+-
+ category: "Discovery"
+ tools:
+ -
+ name: "Human Centered Design Toolkit"
+ url: "http://ideo.com"
+-
+ category: "Organizing"
+ tools:
+ -
+ name: "Meetup"
+ url: "http://meetup.ocom/code-for-boston"
+ -
+ name: "Facebook"
+ url: "https://www.facebook.com/codeforboston/"
+-
+ category: "Prototyping"
+ tools:
+ -
+ name: "invision App"
+ url: "http://invisionapp.com"
+-
+ category: "Designing"
+ tools:
+ -
+ name: "Sketch"
+ url: "http://sketch.com"
+-
+ category: "Building"
+ tools:
+ -
+ name: "jekyll"
+ url: "http://jekyll.io"
+-
+ category: "Analyzing"
+ tools:
+ -
+ name: "Google Analytics"
+ url: "http://analytics.google.com"
diff --git a/_data/team.yml b/_data/team.yml
new file mode 100644
index 0000000..44cd894
--- /dev/null
+++ b/_data/team.yml
@@ -0,0 +1,24 @@
+- name: Kelsey Krach
+ image: default-headshot.jpg
+ email: code4baltimore@gmail.com
+ role: Brigade Co-Captain
+
+- name: Mike Fried
+ image: default-headshot.jpg
+ email: code4baltimore@gmail.com
+ role: Brigade Co-Captain
+
+- name: Byran Connor
+ image: default-headshot.jpg
+ email: code4baltimore@gmail.com
+ role: Delivery Lead
+
+- name: Sean Astro
+ image: default-headshot.jpg
+ email: code4baltimore@gmail.com
+ role: Tech Lead
+
+- name: Angelina Millare
+ image: default-headshot.jpg
+ email: code4baltimore@gmail.com`
+ role: Community Manager
diff --git a/_includes/footer.html b/_includes/footer.html
new file mode 100644
index 0000000..4d5a6ef
--- /dev/null
+++ b/_includes/footer.html
@@ -0,0 +1,53 @@
+
+
+
+
diff --git a/_includes/head.html b/_includes/head.html
new file mode 100644
index 0000000..708a7df
--- /dev/null
+++ b/_includes/head.html
@@ -0,0 +1,23 @@
+
+
+
+
+
+
+
+
+
+ {% if page.title %}{{ page.title }}{% else %}{{ site.title }}{% endif %}
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/_includes/header.html b/_includes/header.html
new file mode 100644
index 0000000..a6e8e62
--- /dev/null
+++ b/_includes/header.html
@@ -0,0 +1,23 @@
+
diff --git a/_includes/icon/corner_bottom.html b/_includes/icon/corner_bottom.html
new file mode 100644
index 0000000..ccc60b6
--- /dev/null
+++ b/_includes/icon/corner_bottom.html
@@ -0,0 +1,8 @@
+
+
+
+
+
+
+
+
diff --git a/_includes/icon/corner_top.html b/_includes/icon/corner_top.html
new file mode 100644
index 0000000..9bddce0
--- /dev/null
+++ b/_includes/icon/corner_top.html
@@ -0,0 +1,8 @@
+
+
+
+
+
+
+
+
diff --git a/_includes/icon/github.html b/_includes/icon/github.html
new file mode 100644
index 0000000..10ffdae
--- /dev/null
+++ b/_includes/icon/github.html
@@ -0,0 +1,11 @@
+
+
+ github-icon
+ Created with Sketch.
+
+
+
+
+
+
+
diff --git a/_includes/icon/slack.html b/_includes/icon/slack.html
new file mode 100644
index 0000000..72c15bb
--- /dev/null
+++ b/_includes/icon/slack.html
@@ -0,0 +1,31 @@
+
+background
+Layer 1
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/_includes/pages-list.html b/_includes/pages-list.html
new file mode 100644
index 0000000..9dc0dce
--- /dev/null
+++ b/_includes/pages-list.html
@@ -0,0 +1,11 @@
+
+
+ {% for page in site.pages %}
+ {% if page.title and page.type == 'inNavBar' %}
+
+ {{ page.title }}
+
+ {% endif %}
+ {% endfor %}
+
+
diff --git a/_includes/team-grid.html b/_includes/team-grid.html
new file mode 100644
index 0000000..89056ce
--- /dev/null
+++ b/_includes/team-grid.html
@@ -0,0 +1,5 @@
+
+ {% for member in site.data.team %}
+ {{member.role}}: {{member.name}}
+ {% endfor %}
+
diff --git a/_includes/team-list.html b/_includes/team-list.html
new file mode 100644
index 0000000..93e2c6f
--- /dev/null
+++ b/_includes/team-list.html
@@ -0,0 +1,6 @@
+
diff --git a/_layouts/app.html b/_layouts/app.html
new file mode 100644
index 0000000..e4ab96f
--- /dev/null
+++ b/_layouts/app.html
@@ -0,0 +1,20 @@
+
+
+
+ {% include head.html %}
+
+
+
+ {% include header.html %}
+
+
+
+ {% include footer.html %}
+
+
+
+
diff --git a/_layouts/default.html b/_layouts/default.html
new file mode 100644
index 0000000..c8f1822
--- /dev/null
+++ b/_layouts/default.html
@@ -0,0 +1,18 @@
+
+
+
+ {% include head.html %}
+
+
+
+ {% include header.html %}
+
+
+ {{ content }}
+
+
+ {% include footer.html %}
+
+
+
+
diff --git a/_layouts/hacknight.html b/_layouts/hacknight.html
new file mode 100644
index 0000000..9a44878
--- /dev/null
+++ b/_layouts/hacknight.html
@@ -0,0 +1,51 @@
+
+
+
+
+
+
+
+ {% if page.title %}{{ page.title }}{% else %}{{ site.title }}{% endif %}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/_layouts/one_off.html b/_layouts/one_off.html
new file mode 100644
index 0000000..3e2a615
--- /dev/null
+++ b/_layouts/one_off.html
@@ -0,0 +1,6 @@
+
+
+
+{{content}}
+
+
diff --git a/_layouts/page.html b/_layouts/page.html
new file mode 100644
index 0000000..b77957d
--- /dev/null
+++ b/_layouts/page.html
@@ -0,0 +1,7 @@
+---
+layout: default
+---
+
+
+ {{ content }}
+
diff --git a/_layouts/post.html b/_layouts/post.html
new file mode 100644
index 0000000..b52104b
--- /dev/null
+++ b/_layouts/post.html
@@ -0,0 +1,16 @@
+---
+layout: default
+---
+
+
+
+
+
+
+ {{ content }}
+
+
+
diff --git a/_sass/_base.scss b/_sass/_base.scss
new file mode 100644
index 0000000..05fc1cf
--- /dev/null
+++ b/_sass/_base.scss
@@ -0,0 +1,264 @@
+/**
+ * Reset some basic elements
+ */
+body, h1, h2, h3, h4, h5, h6,
+p, blockquote, pre, hr,
+dl, dd, ol, ul, figure {
+ margin: 0;
+ padding: 0;
+}
+
+html, body {
+ width: 100%;
+ overflow-x: hidden;
+}
+
+
+/**
+ * Basic styling
+ */
+body {
+ font-family: $base-font-family;
+ font-size: $base-font-size;
+ line-height: $base-line-height;
+ font-weight: 300;
+ color: $text-color;
+ background-color: $background-color;
+ -webkit-font-smoothing: antialiased;
+ -webkit-text-size-adjust: 100%;
+
+ @include media-query(768px) {
+ font-size: $base-font-size * 0.8;
+ }
+}
+
+
+
+/**
+ * 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;
+}
+
+.t-serif {
+ font-family: $headline-font-family;
+}
+.t-serif-italic {
+ font-family: $headline-font-family;
+ font-style: italic;
+}
+.t-sans {
+ font-family: $base-font-family;
+ font-weight: 400;
+}
+.t-sans-bold {
+ font-family: $base-font-family;
+ font-weight: 700;
+}
+
+.t-h5,
+h5 {
+ font-size: $base-font-size;
+}
+
+.t-h4,
+h4 {
+ font-size: $base-font-size;
+}
+
+.t-h3,
+h3 {
+ font-size: $base-font-size * $font-ratio;
+}
+
+.t-h2,
+h2 {
+ font-size: $base-font-size * $font-ratio * $font-ratio;
+ position: relative;
+}
+
+.t-h1,
+h1 {
+ font-size: $base-font-size * $font-ratio * $font-ratio * $font-ratio * $font-ratio;
+}
+
+@include media-query(768px) {
+ .t-h5,
+ h5 {
+ font-size: $base-font-size;
+ }
+
+ .t-h4,
+ h4 {
+ font-size: $base-font-size;
+ }
+
+ .t-h3,
+ h3 {
+ font-size: $base-font-size * $small-font-ratio;
+ }
+
+ .t-h2,
+ h2 {
+ font-size: $base-font-size * $small-font-ratio * $small-font-ratio;
+ }
+
+ .t-h1,
+ h1 {
+ font-size: $base-font-size * $small-font-ratio * $small-font-ratio * $small-font-ratio * $small-font-ratio;
+ }
+
+}
+
+
+.t-lead {
+ @extend .t-h3;
+}
+
+
+
+// Readable line length
+
+li, p, .t-line-length {
+ max-width: 50em;
+}
+
+
+/**
+ * Images
+ */
+img {
+ max-width: 100%;
+ vertical-align: middle;
+}
+
+hr {
+ border-top: 1px solid darken($white-color, 10%);
+ border-bottom: none;
+}
+
+address {
+ font-size: 0.9rem;
+}
+
+/**
+ * Figures
+ */
+figure > img {
+ display: block;
+}
+
+figcaption {
+ font-size: $small-font-size;
+}
+
+
+
+/**
+ * Lists
+ */
+ul, ol {
+ margin-left: $spacing-unit;
+}
+
+li {
+ margin-bottom: 0.5em;
+
+ > ul,
+ > ol {
+ margin-bottom: 0;
+ }
+}
+
+
+
+/**
+ * Headings
+ */
+h1, h2, h3, h4, h5, h6 {
+ font-family: $headline-font-family;
+ line-height: 1.2;
+}
+
+/**
+ * Links
+ */
+
+
+
+
+
+/**
+ * Blockquotes
+ */
+blockquote {
+ color: $grey-color;
+ padding-left: $spacing-unit / 2;
+ font-size: 1.3em;
+ font-style: italic;
+ padding: 2em 0;
+ font-family: $headline-font-family;
+
+ &:before {
+ content: "\"";
+ font-size: 5em;
+ vertical-align: bottom;
+ line-height: 0;
+ padding-right: 0.25em;
+ opacity: 0.2;
+ }
+}
+
+
+
+/**
+ * Code formatting
+ */
+pre,
+code {
+ font-size: 15px;
+ border: 1px solid $grey-color-light;
+ border-radius: 3px;
+ background-color: #eef;
+}
+
+code {
+ padding: 1px 5px;
+}
+
+pre {
+ padding: 8px 12px;
+ overflow-x: scroll;
+
+ > code {
+ border: 0;
+ padding-right: 0;
+ padding-left: 0;
+ }
+}
+
+
+
+
+
+/**
+ * Clearfix
+ */
+%clearfix {
+
+ &:after {
+ content: "";
+ display: table;
+ clear: both;
+ }
+}
+
+
+
+.svg-icon {
+ height: 5rem;
+}
diff --git a/_sass/_buttons.scss b/_sass/_buttons.scss
new file mode 100644
index 0000000..358c713
--- /dev/null
+++ b/_sass/_buttons.scss
@@ -0,0 +1,73 @@
+
+/**
+ * Buttons
+ */
+%btn {
+ font-size: 1.2rem;
+ padding: 0.75em 1.5em;
+ border: none;
+ box-shadow: 0px 2px 2px 0px rgba(0, 0, 0, 0.2);
+ border-bottom: 4px solid rgba(0,0,0,0.2);
+ border-radius: 2px;
+ cursor: pointer;
+ transition: all 250ms ease-in-out;
+ text-decoration: none;
+ margin-top: 0;
+ margin-bottom: 1rem;
+ display: inline-block;
+}
+
+.btn-default,
+a.btn-default {
+ @extend %btn;
+ background: $grey-color-dark;
+ color: $white-color;
+ &:hover,
+ &:focus {
+ background: darken($grey-color-dark, 12%);
+ color: $white-color;
+ }
+}
+
+
+.btn-primary,
+a.btn-primary {
+ @extend %btn;
+ background: $brand-color;
+ color: $white-color !important;
+ &:hover,
+ &:focus {
+ background: darken($brand-color, 10%);
+ }
+}
+
+.btn-secondary,
+a.btn-secondary {
+ @extend %btn;
+ background: $blue-color;
+ color: $white-color;
+ &:hover,
+ &:focus {
+ background: darken($blue-color, 12%);
+ color: $white-color;
+ }
+}
+
+
+
+
+
+.btn--small,
+a.btn--small {
+ font-size: 0.9em;
+ line-height: 1.2;
+ padding: 0.5em 1em;
+ border-bottom-width: 2px;
+}
+
+.btn--large,
+a.btn--large {
+ font-size: 1.3em;
+ padding: 0.75em 2.5em;
+ border-bottom-width: 6px;
+}
diff --git a/_sass/_components.scss b/_sass/_components.scss
new file mode 100644
index 0000000..f33a818
--- /dev/null
+++ b/_sass/_components.scss
@@ -0,0 +1,208 @@
+.card {
+ margin-bottom: 1rem;
+ //box-shadow: 0 0 6px 1px rgba(0,0,0,0.2);
+}
+
+.card--map {
+ //background: $white-color;
+ margin: 0 auto;
+ width: 80%;
+ max-width: 50rem;
+ overflow: auto;
+ text-align: left;
+ @include media-query(767px) {
+ width: 95%;
+ }
+
+ .card-content {
+ float:left;
+ padding: 1.5rem;
+ width: calc(100% - 15rem);
+ @include media-query(767px) {
+ width: 100%;
+ }
+ }
+
+ .card-img {
+ float:right;
+ width: 15rem;
+ @include media-query(767px) {
+ display: none;
+ }
+ }
+}
+
+.card--no-map {
+ //background: $white-color;
+ margin: 0 auto;
+ width: 80%;
+ max-width: 50rem;
+ overflow: auto;
+ text-align: center;
+ @include media-query(767px) {
+ width: 95%;
+ }
+
+ .card-content {
+ float:left;
+ padding: 1.5rem;
+ width: 100%;
+ @include media-query(767px) {
+ width: 100%;
+ }
+ }
+
+
+}
+
+.hero {
+ padding: 2rem 0;
+ h1 {
+ font-size: 6rem;
+ line-height: 1;
+ font-weight: 700;
+ }
+ .subheadline-above {
+ font-size: 1.5rem;
+ margin: 0;
+ }
+ a.cta {
+ margin: 2rem 0;
+ padding: 1.5rem 2.5rem;
+ border-radius: 4px;
+ background: $brand-color;
+ color: $white-color;
+ text-decoration: none;
+ box-shadow: 0 2px 4px rgba(0,0,0,0.5);
+ &:hover {
+ background: darken($brand-color, 10%);
+
+ }
+ }
+}
+
+.call-out {
+ position: relative;
+ background: white;
+ z-index: 0;
+}
+.call-out::after {
+ content: '';
+ position: absolute;
+ top: -10px;
+ left: -10px;
+ border-color: transparent;
+ border-style: solid;
+ border-width: 20px;
+ border-left-color: $blue-color;
+ border-top-color: $blue-color;
+ z-index: -1;
+}
+
+.call-out::before {
+ content: '';
+ position: absolute;
+ bottom: -10px;
+ right: -10px;
+ border-color: transparent;
+ border-style: solid;
+ border-width: 20px;
+ border-right-color: $blue-color;
+ border-bottom-color: $blue-color;
+ z-index: -1;
+}
+.call-out-inner {
+ background: $brand-color;
+ padding: 10px;
+ color:white;
+}
+
+.call-out-red {
+ background: $red-color;
+ padding: 10px;
+ color:white;
+}
+
+
+
+.panel {
+ padding-top: 5rem;
+ padding-bottom: 5rem;
+}
+
+
+.hacknight-banner {
+ background: $brand-color;
+ color: $white-color;
+
+ .cta-section {
+ text-align: right;
+ }
+
+}
+
+
+.page-title {
+ text-align: center;
+ margin: 2rem 0;
+}
+
+
+.notice {
+ padding: 1.4rem;
+ margin: 2rem 0;
+
+ &.inline {
+ display: inline-block;
+ }
+
+ &.notice-positive {
+ border: 1px solid $blue-color;
+ border-left: 1em solid $blue-color;
+ }
+}
+
+
+
+.three-up {
+ article p {
+ min-height: 10rem;
+ }
+}
+
+
+
+
+
+
+
+.t-section-headline {
+ padding: $spacing-unit*2 0;
+ text-align: center;
+ @include media-query(768px) {
+ padding: $spacing-unit 0;
+ }
+}
+
+
+
+.team-grid {
+ margin: 0 auto;
+ text-align: center;
+ li {
+ width: 10%;
+ display: inline-block;
+ vertical-align: top;
+ text-align: left;
+ line-height: 1.2;
+ @media (max-width: 700px) {
+ width: 20%;
+ }
+ @media (max-width: 500px) {
+ width: 30%;
+ }
+ }
+ img {
+ padding-bottom: 0.25em;
+ }
+}
diff --git a/_sass/_footer.scss b/_sass/_footer.scss
new file mode 100644
index 0000000..0cfd4ce
--- /dev/null
+++ b/_sass/_footer.scss
@@ -0,0 +1,14 @@
+.corner_btm {
+ position: absolute;
+ bottom: 0;
+ right: 0;
+ width:400px;
+ height: 400px;
+ //z-index: -100;
+}
+
+.corner-bg-btm {
+ background-image: url(#corner_btm);
+ background-position: right bottom;
+ color: #fff;
+}
\ No newline at end of file
diff --git a/_sass/_forms.scss b/_sass/_forms.scss
new file mode 100644
index 0000000..7eb978e
--- /dev/null
+++ b/_sass/_forms.scss
@@ -0,0 +1,14 @@
+label[for] {
+ cursor: pointer;
+}
+
+input {
+ font-size: 0.8rem;
+ padding: 0.5rem;
+ display: block;
+
+ &:not([type="checkbox"]),
+ &:not([type="radio"]) {
+ display: inline-block;
+ }
+}
diff --git a/_sass/_header.scss b/_sass/_header.scss
new file mode 100644
index 0000000..c53febd
--- /dev/null
+++ b/_sass/_header.scss
@@ -0,0 +1,92 @@
+
+
+/**
+ * Site header
+ */
+.site-header {
+ border-top: 5px solid $brand-color;
+ border-bottom: 1px solid $grey-color-light;
+ min-height: 56px;
+ padding: 1rem;
+ // Positioning context for the mobile navigation icon
+ position: relative;
+ .logo {
+ float: left;
+ text-decoration: none;
+ border: none;
+ }
+ .logo img {
+ height: 3rem;
+ }
+}
+
+
+.site-nav {
+ float: right;
+ line-height: 56px;
+
+ .menu-icon {
+ display: none;
+ }
+
+ [class*="btn-"] {
+ margin: 0;
+ }
+
+ .page-link {
+ text-decoration: none;
+ margin: 0 0.5rem;
+ }
+
+ @include media-query(768px) {
+ position: absolute;
+ top: 1rem;
+ right: 2rem;
+ background-color: $background-color;
+ border: 1px solid $grey-color-light;
+ border-radius: 4px;
+ text-align: right;
+ z-index: 1;
+
+ .menu-icon {
+ display: block;
+ float: right;
+ width: 4rem;
+ height: 3rem;
+ line-height: 0;
+ text-align: center;
+
+ > svg {
+ width: 50%;
+ margin-top: 15%;
+ path {
+ fill: $grey-color;
+ }
+ }
+ }
+
+ .trigger {
+ clear: both;
+ display: none;
+ }
+ &:hover {
+ left: 2rem;
+ }
+
+ &:hover .trigger {
+ display: block;
+ padding-bottom: 5px;
+ text-align: center;
+ padding: 1rem;
+ }
+
+ .page-link {
+ display: block;
+ padding: 0.5em 0;
+ font-size: 1.5em;
+ &:not(:last-child){
+ margin-right: 0;
+ }
+ }
+ }
+}
diff --git a/_sass/_jobs.scss b/_sass/_jobs.scss
new file mode 100644
index 0000000..5291b2c
--- /dev/null
+++ b/_sass/_jobs.scss
@@ -0,0 +1,29 @@
+.jobs {
+ list-style: none;
+ margin-left: 0;
+ min-height: 25rem;
+ .job-listing {
+ border-left: 10px solid $grey-color-light;
+ padding-left: 1.5rem;
+ margin-bottom: 4rem;
+ max-height: 20rem;
+ overflow: hidden;
+ opacity: 1;
+ transition: max-height 500ms ease-in, opacity 250ms ease-in;
+
+ &.hidden {
+ max-height: 0;
+ margin: 0;
+ opacity: 0;
+ }
+ }
+
+ .listing {
+ text-align: right;
+ }
+}
+
+
+.job-controls {
+ padding-bottom: 1.5rem;
+}
diff --git a/_sass/_layout.scss b/_sass/_layout.scss
new file mode 100644
index 0000000..4635dd7
--- /dev/null
+++ b/_sass/_layout.scss
@@ -0,0 +1,158 @@
+html {
+ background: $brand-color;
+}
+
+body {
+ background: #fff;
+}
+
+
+/**
+ * Wrapper
+ */
+.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;
+ }
+}
+
+
+// Typography
+//
+a {
+ color: inherit;
+ color: darken($blue-color, 20%);
+ font-weight: 700;
+ transition: all 250ms ease-in-out;
+ &:hover {
+ color: darken($blue-color, 30%);
+ }
+}
+
+
+.site-title {
+ font-size: 26px;
+ line-height: 56px;
+ letter-spacing: -1px;
+ margin-bottom: 0;
+ float: left;
+
+ &,
+ &:visited {
+ color: $grey-color-dark;
+ }
+}
+
+
+/**
+ * Site footer
+ */
+.site-footer {
+ padding: $spacing-unit 0;
+ background: $grey-color-light;
+ position: relative;
+ margin-top: 6rem;
+ padding-top: 3rem;
+ color: $black-color;
+}
+
+
+.contact-list,
+.social-media-list {
+ list-style: none;
+ margin-left: 0;
+}
+
+
+/**
+ * Page content
+ */
+.page-content {
+ min-height: 30rem;
+
+ section {
+ margin-bottom: 4rem;
+ }
+}
+
+.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/_lists.scss b/_sass/_lists.scss
new file mode 100644
index 0000000..3617fb9
--- /dev/null
+++ b/_sass/_lists.scss
@@ -0,0 +1,31 @@
+.walkthrough-list {
+ list-style: none;
+ margin: 2rem 0;
+
+ li {
+ counter-increment: step-counter;
+ margin-left: 6rem;
+ margin-bottom: 6rem;
+ position: relative;
+
+ &:before {
+ content: counter(step-counter);
+ color: $red-color;
+ font-weight: 700;
+ font-size: 6rem;
+ display: block;
+ border-radius: 50%;
+ position: absolute;
+ left: -5rem;
+ top: 0;
+ }
+
+ @include media-query($on-palm) {
+ margin-left: 0;
+
+ &:before {
+ position: static;
+ }
+ }
+ }
+}
diff --git a/_sass/_page-link-nav.scss b/_sass/_page-link-nav.scss
new file mode 100644
index 0000000..d458b6a
--- /dev/null
+++ b/_sass/_page-link-nav.scss
@@ -0,0 +1,28 @@
+.page-link {
+ // color: $text-color;
+ // line-height: $base-line-height;
+ // text-decoration: none;
+ // border-bottom: 1px solid transparent;
+ // transition: all 250ms ease-in-out;
+ // // Gaps between nav items, but not on the first one
+ // &:not(:last-child) {
+ // margin-right: 20px;
+ // }
+
+ // &:hover {
+ // border-bottom: 1px solid $text-color;
+ // }
+}
+
+.page-links ul {
+ margin: 0;
+ list-style: none;
+
+ .site-header & li {
+ display: inline-block;
+
+ @include media-query(768px) {
+ display: block;
+ }
+ }
+}
diff --git a/_sass/_syntax-highlighting.scss b/_sass/_syntax-highlighting.scss
new file mode 100644
index 0000000..e36627d
--- /dev/null
+++ b/_sass/_syntax-highlighting.scss
@@ -0,0 +1,67 @@
+/**
+ * Syntax highlighting styles
+ */
+.highlight {
+ background: #fff;
+ @extend %vertical-rhythm;
+
+ .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/_utility.scss b/_sass/_utility.scss
new file mode 100644
index 0000000..b59faa5
--- /dev/null
+++ b/_sass/_utility.scss
@@ -0,0 +1,143 @@
+$grid-columns: 12;
+
+.row {
+ @include row();
+}
+.row--centered {
+ text-align: center;
+ > [class*="col-"] {
+ float: none;
+ text-align: initial;
+ display: inline-block;
+ }
+}
+
+@for $i from 1 through 12 {
+ [class*=col-#{$i}] {
+ @include span-columns($i);
+
+ @include media-query($on-palm) {
+ @include span-columns(12);
+ }
+ }
+
+}
+
+.col--padded {
+ padding: 2rem;
+}
+
+
+.pull-right {
+ float: right;
+}
+
+
+.t-center {
+ text-align: center;
+}
+.t-right {
+ text-align: right;
+}
+.t-left {
+ text-align: left;
+}
+
+.t-indented {
+ p {
+ text-indent: 1.5em;
+ }
+}
+
+.l-pad--top {
+ padding-top: $spacing-unit * 2;
+}
+.l-pad--bottom {
+ padding-bottom: $spacing-unit * 2;
+}
+
+.l-margin--top {
+ margin-top: $spacing-unit * 2;
+}
+.l-margin--bottom {
+ margin-bottom: $spacing-unit * 2;
+}
+
+
+// Color utilites
+.t-red {
+ color: $red-color;
+}
+.t-blue {
+ color: $blue-color;
+}
+.t-white {
+ color: $white-color;
+}
+.t-black {
+ color: $black-color;
+}
+.t-grey {
+ color: $grey-color;
+}
+.bg-red {
+ background-color: $red-color;
+}
+.bg-blue {
+ background-color: $blue-color;
+}
+.bg-white {
+ background-color: $white-color;
+}
+.bg-black {
+ background-color: $black-color;
+}
+.bg-grey {
+ background-color: $grey-color;
+}
+
+
+// Aspect ratio helpers
+// Note: these must only contain a single child.
+[class*="aspect-"] {
+ position: relative;
+ &:before {
+ display: block;
+ content: "";
+ width: 100%;
+ }
+ > * {
+ position: absolute;
+ top: 0;
+ left: 0;
+ right: 0;
+ bottom: 0;
+ }
+}
+
+.aspect-1-1:before {
+ padding-top: 100%;
+}
+
+.aspect-2-1:before {
+ padding-top: 50%;
+}
+
+.aspect-16-9:before {
+ padding-top: (9/16) * 100%;
+}
+
+
+
+.u-shadowed {
+ box-shadow: 0 0 4px 4px rgba(0,0,0,0.5);
+}
+
+
+
+// Yank!
+.yank--north {
+ position: relative;
+ top: -4rem;
+ margin-bottom: -4rem;
+}
diff --git a/_sass/vendor/bourbon/_bourbon-deprecated-upcoming.scss b/_sass/vendor/bourbon/_bourbon-deprecated-upcoming.scss
new file mode 100644
index 0000000..e6d1b8c
--- /dev/null
+++ b/_sass/vendor/bourbon/_bourbon-deprecated-upcoming.scss
@@ -0,0 +1,411 @@
+// The following features have been deprecated and will be removed in the next MAJOR version release
+
+@mixin inline-block {
+ display: inline-block;
+
+ @warn "The inline-block mixin is deprecated and will be removed in the next major version release";
+}
+
+@mixin button ($style: simple, $base-color: #4294f0, $text-size: inherit, $padding: 7px 18px) {
+
+ @if type-of($style) == string and type-of($base-color) == color {
+ @include buttonstyle($style, $base-color, $text-size, $padding);
+ }
+
+ @if type-of($style) == string and type-of($base-color) == number {
+ $padding: $text-size;
+ $text-size: $base-color;
+ $base-color: #4294f0;
+
+ @if $padding == inherit {
+ $padding: 7px 18px;
+ }
+
+ @include buttonstyle($style, $base-color, $text-size, $padding);
+ }
+
+ @if type-of($style) == color and type-of($base-color) == color {
+ $base-color: $style;
+ $style: simple;
+ @include buttonstyle($style, $base-color, $text-size, $padding);
+ }
+
+ @if type-of($style) == color and type-of($base-color) == number {
+ $padding: $text-size;
+ $text-size: $base-color;
+ $base-color: $style;
+ $style: simple;
+
+ @if $padding == inherit {
+ $padding: 7px 18px;
+ }
+
+ @include buttonstyle($style, $base-color, $text-size, $padding);
+ }
+
+ @if type-of($style) == number {
+ $padding: $base-color;
+ $text-size: $style;
+ $base-color: #4294f0;
+ $style: simple;
+
+ @if $padding == #4294f0 {
+ $padding: 7px 18px;
+ }
+
+ @include buttonstyle($style, $base-color, $text-size, $padding);
+ }
+
+ &:disabled {
+ cursor: not-allowed;
+ opacity: 0.5;
+ }
+
+ @warn "The button mixin is deprecated and will be removed in the next major version release";
+}
+
+// Selector Style Button
+@mixin buttonstyle($type, $b-color, $t-size, $pad) {
+ // Grayscale button
+ @if $type == simple and $b-color == grayscale($b-color) {
+ @include simple($b-color, true, $t-size, $pad);
+ }
+
+ @if $type == shiny and $b-color == grayscale($b-color) {
+ @include shiny($b-color, true, $t-size, $pad);
+ }
+
+ @if $type == pill and $b-color == grayscale($b-color) {
+ @include pill($b-color, true, $t-size, $pad);
+ }
+
+ @if $type == flat and $b-color == grayscale($b-color) {
+ @include flat($b-color, true, $t-size, $pad);
+ }
+
+ // Colored button
+ @if $type == simple {
+ @include simple($b-color, false, $t-size, $pad);
+ }
+
+ @else if $type == shiny {
+ @include shiny($b-color, false, $t-size, $pad);
+ }
+
+ @else if $type == pill {
+ @include pill($b-color, false, $t-size, $pad);
+ }
+
+ @else if $type == flat {
+ @include flat($b-color, false, $t-size, $pad);
+ }
+}
+
+// Simple Button
+@mixin simple($base-color, $grayscale: false, $textsize: inherit, $padding: 7px 18px) {
+ $color: hsl(0, 0, 100%);
+ $border: adjust-color($base-color, $saturation: 9%, $lightness: -14%);
+ $inset-shadow: adjust-color($base-color, $saturation: -8%, $lightness: 15%);
+ $stop-gradient: adjust-color($base-color, $saturation: 9%, $lightness: -11%);
+ $text-shadow: adjust-color($base-color, $saturation: 15%, $lightness: -18%);
+
+ @if is-light($base-color) {
+ $color: hsl(0, 0, 20%);
+ $text-shadow: adjust-color($base-color, $saturation: 10%, $lightness: 4%);
+ }
+
+ @if $grayscale == true {
+ $border: grayscale($border);
+ $inset-shadow: grayscale($inset-shadow);
+ $stop-gradient: grayscale($stop-gradient);
+ $text-shadow: grayscale($text-shadow);
+ }
+
+ border: 1px solid $border;
+ border-radius: 3px;
+ box-shadow: inset 0 1px 0 0 $inset-shadow;
+ color: $color;
+ display: inline-block;
+ font-size: $textsize;
+ font-weight: bold;
+ @include linear-gradient ($base-color, $stop-gradient);
+ padding: $padding;
+ text-decoration: none;
+ text-shadow: 0 1px 0 $text-shadow;
+ background-clip: padding-box;
+
+ &:hover:not(:disabled) {
+ $base-color-hover: adjust-color($base-color, $saturation: -4%, $lightness: -5%);
+ $inset-shadow-hover: adjust-color($base-color, $saturation: -7%, $lightness: 5%);
+ $stop-gradient-hover: adjust-color($base-color, $saturation: 8%, $lightness: -14%);
+
+ @if $grayscale == true {
+ $base-color-hover: grayscale($base-color-hover);
+ $inset-shadow-hover: grayscale($inset-shadow-hover);
+ $stop-gradient-hover: grayscale($stop-gradient-hover);
+ }
+
+ @include linear-gradient ($base-color-hover, $stop-gradient-hover);
+
+ box-shadow: inset 0 1px 0 0 $inset-shadow-hover;
+ cursor: pointer;
+ }
+
+ &:active:not(:disabled),
+ &:focus:not(:disabled) {
+ $border-active: adjust-color($base-color, $saturation: 9%, $lightness: -14%);
+ $inset-shadow-active: adjust-color($base-color, $saturation: 7%, $lightness: -17%);
+
+ @if $grayscale == true {
+ $border-active: grayscale($border-active);
+ $inset-shadow-active: grayscale($inset-shadow-active);
+ }
+
+ border: 1px solid $border-active;
+ box-shadow: inset 0 0 8px 4px $inset-shadow-active, inset 0 0 8px 4px $inset-shadow-active;
+ }
+}
+
+// Shiny Button
+@mixin shiny($base-color, $grayscale: false, $textsize: inherit, $padding: 7px 18px) {
+ $color: hsl(0, 0, 100%);
+ $border: adjust-color($base-color, $red: -117, $green: -111, $blue: -81);
+ $border-bottom: adjust-color($base-color, $red: -126, $green: -127, $blue: -122);
+ $fourth-stop: adjust-color($base-color, $red: -79, $green: -70, $blue: -46);
+ $inset-shadow: adjust-color($base-color, $red: 37, $green: 29, $blue: 12);
+ $second-stop: adjust-color($base-color, $red: -56, $green: -50, $blue: -33);
+ $text-shadow: adjust-color($base-color, $red: -140, $green: -141, $blue: -114);
+ $third-stop: adjust-color($base-color, $red: -86, $green: -75, $blue: -48);
+
+ @if is-light($base-color) {
+ $color: hsl(0, 0, 20%);
+ $text-shadow: adjust-color($base-color, $saturation: 10%, $lightness: 4%);
+ }
+
+ @if $grayscale == true {
+ $border: grayscale($border);
+ $border-bottom: grayscale($border-bottom);
+ $fourth-stop: grayscale($fourth-stop);
+ $inset-shadow: grayscale($inset-shadow);
+ $second-stop: grayscale($second-stop);
+ $text-shadow: grayscale($text-shadow);
+ $third-stop: grayscale($third-stop);
+ }
+
+ @include linear-gradient(top, $base-color 0%, $second-stop 50%, $third-stop 50%, $fourth-stop 100%);
+
+ border: 1px solid $border;
+ border-bottom: 1px solid $border-bottom;
+ border-radius: 5px;
+ box-shadow: inset 0 1px 0 0 $inset-shadow;
+ color: $color;
+ display: inline-block;
+ font-size: $textsize;
+ font-weight: bold;
+ padding: $padding;
+ text-align: center;
+ text-decoration: none;
+ text-shadow: 0 -1px 1px $text-shadow;
+
+ &:hover:not(:disabled) {
+ $first-stop-hover: adjust-color($base-color, $red: -13, $green: -15, $blue: -18);
+ $second-stop-hover: adjust-color($base-color, $red: -66, $green: -62, $blue: -51);
+ $third-stop-hover: adjust-color($base-color, $red: -93, $green: -85, $blue: -66);
+ $fourth-stop-hover: adjust-color($base-color, $red: -86, $green: -80, $blue: -63);
+
+ @if $grayscale == true {
+ $first-stop-hover: grayscale($first-stop-hover);
+ $second-stop-hover: grayscale($second-stop-hover);
+ $third-stop-hover: grayscale($third-stop-hover);
+ $fourth-stop-hover: grayscale($fourth-stop-hover);
+ }
+
+ @include linear-gradient(top, $first-stop-hover 0%,
+ $second-stop-hover 50%,
+ $third-stop-hover 50%,
+ $fourth-stop-hover 100%);
+ cursor: pointer;
+ }
+
+ &:active:not(:disabled),
+ &:focus:not(:disabled) {
+ $inset-shadow-active: adjust-color($base-color, $red: -111, $green: -116, $blue: -122);
+
+ @if $grayscale == true {
+ $inset-shadow-active: grayscale($inset-shadow-active);
+ }
+
+ box-shadow: inset 0 0 20px 0 $inset-shadow-active;
+ }
+}
+
+// Pill Button
+@mixin pill($base-color, $grayscale: false, $textsize: inherit, $padding: 7px 18px) {
+ $color: hsl(0, 0, 100%);
+ $border-bottom: adjust-color($base-color, $hue: 8, $saturation: -11%, $lightness: -26%);
+ $border-sides: adjust-color($base-color, $hue: 4, $saturation: -21%, $lightness: -21%);
+ $border-top: adjust-color($base-color, $hue: -1, $saturation: -30%, $lightness: -15%);
+ $inset-shadow: adjust-color($base-color, $hue: -1, $saturation: -1%, $lightness: 7%);
+ $stop-gradient: adjust-color($base-color, $hue: 8, $saturation: 14%, $lightness: -10%);
+ $text-shadow: adjust-color($base-color, $hue: 5, $saturation: -19%, $lightness: -15%);
+
+ @if is-light($base-color) {
+ $color: hsl(0, 0, 20%);
+ $text-shadow: adjust-color($base-color, $saturation: 10%, $lightness: 4%);
+ }
+
+ @if $grayscale == true {
+ $border-bottom: grayscale($border-bottom);
+ $border-sides: grayscale($border-sides);
+ $border-top: grayscale($border-top);
+ $inset-shadow: grayscale($inset-shadow);
+ $stop-gradient: grayscale($stop-gradient);
+ $text-shadow: grayscale($text-shadow);
+ }
+
+ border: 1px solid $border-top;
+ border-color: $border-top $border-sides $border-bottom;
+ border-radius: 16px;
+ box-shadow: inset 0 1px 0 0 $inset-shadow;
+ color: $color;
+ display: inline-block;
+ font-size: $textsize;
+ font-weight: normal;
+ line-height: 1;
+ @include linear-gradient ($base-color, $stop-gradient);
+ padding: $padding;
+ text-align: center;
+ text-decoration: none;
+ text-shadow: 0 -1px 1px $text-shadow;
+ background-clip: padding-box;
+
+ &:hover:not(:disabled) {
+ $base-color-hover: adjust-color($base-color, $lightness: -4.5%);
+ $border-bottom: adjust-color($base-color, $hue: 8, $saturation: 13.5%, $lightness: -32%);
+ $border-sides: adjust-color($base-color, $hue: 4, $saturation: -2%, $lightness: -27%);
+ $border-top: adjust-color($base-color, $hue: -1, $saturation: -17%, $lightness: -21%);
+ $inset-shadow-hover: adjust-color($base-color, $saturation: -1%, $lightness: 3%);
+ $stop-gradient-hover: adjust-color($base-color, $hue: 8, $saturation: -4%, $lightness: -15.5%);
+ $text-shadow-hover: adjust-color($base-color, $hue: 5, $saturation: -5%, $lightness: -22%);
+
+ @if $grayscale == true {
+ $base-color-hover: grayscale($base-color-hover);
+ $border-bottom: grayscale($border-bottom);
+ $border-sides: grayscale($border-sides);
+ $border-top: grayscale($border-top);
+ $inset-shadow-hover: grayscale($inset-shadow-hover);
+ $stop-gradient-hover: grayscale($stop-gradient-hover);
+ $text-shadow-hover: grayscale($text-shadow-hover);
+ }
+
+ @include linear-gradient ($base-color-hover, $stop-gradient-hover);
+
+ background-clip: padding-box;
+ border: 1px solid $border-top;
+ border-color: $border-top $border-sides $border-bottom;
+ box-shadow: inset 0 1px 0 0 $inset-shadow-hover;
+ cursor: pointer;
+ text-shadow: 0 -1px 1px $text-shadow-hover;
+ }
+
+ &:active:not(:disabled),
+ &:focus:not(:disabled) {
+ $active-color: adjust-color($base-color, $hue: 4, $saturation: -12%, $lightness: -10%);
+ $border-active: adjust-color($base-color, $hue: 6, $saturation: -2.5%, $lightness: -30%);
+ $border-bottom-active: adjust-color($base-color, $hue: 11, $saturation: 6%, $lightness: -31%);
+ $inset-shadow-active: adjust-color($base-color, $hue: 9, $saturation: 2%, $lightness: -21.5%);
+ $text-shadow-active: adjust-color($base-color, $hue: 5, $saturation: -12%, $lightness: -21.5%);
+
+ @if $grayscale == true {
+ $active-color: grayscale($active-color);
+ $border-active: grayscale($border-active);
+ $border-bottom-active: grayscale($border-bottom-active);
+ $inset-shadow-active: grayscale($inset-shadow-active);
+ $text-shadow-active: grayscale($text-shadow-active);
+ }
+
+ background: $active-color;
+ border: 1px solid $border-active;
+ border-bottom: 1px solid $border-bottom-active;
+ box-shadow: inset 0 0 6px 3px $inset-shadow-active;
+ text-shadow: 0 -1px 1px $text-shadow-active;
+ }
+}
+
+// Flat Button
+@mixin flat($base-color, $grayscale: false, $textsize: inherit, $padding: 7px 18px) {
+ $color: hsl(0, 0, 100%);
+
+ @if is-light($base-color) {
+ $color: hsl(0, 0, 20%);
+ }
+
+ background-color: $base-color;
+ border-radius: 3px;
+ border: 0;
+ color: $color;
+ display: inline-block;
+ font-size: $textsize;
+ font-weight: bold;
+ padding: $padding;
+ text-decoration: none;
+ background-clip: padding-box;
+
+ &:hover:not(:disabled){
+ $base-color-hover: adjust-color($base-color, $saturation: 4%, $lightness: 5%);
+
+ @if $grayscale == true {
+ $base-color-hover: grayscale($base-color-hover);
+ }
+
+ background-color: $base-color-hover;
+ cursor: pointer;
+ }
+
+ &:active:not(:disabled),
+ &:focus:not(:disabled) {
+ $base-color-active: adjust-color($base-color, $saturation: -4%, $lightness: -5%);
+
+ @if $grayscale == true {
+ $base-color-active: grayscale($base-color-active);
+ }
+
+ background-color: $base-color-active;
+ cursor: pointer;
+ }
+}
+
+// Flexible grid
+@function flex-grid($columns, $container-columns: $fg-max-columns) {
+ $width: $columns * $fg-column + ($columns - 1) * $fg-gutter;
+ $container-width: $container-columns * $fg-column + ($container-columns - 1) * $fg-gutter;
+ @return percentage($width / $container-width);
+
+ @warn "The flex-grid function is deprecated and will be removed in the next major version release";
+}
+
+// Flexible gutter
+@function flex-gutter($container-columns: $fg-max-columns, $gutter: $fg-gutter) {
+ $container-width: $container-columns * $fg-column + ($container-columns - 1) * $fg-gutter;
+ @return percentage($gutter / $container-width);
+
+ @warn "The flex-gutter function is deprecated and will be removed in the next major version release";
+}
+
+@function grid-width($n) {
+ @return $n * $gw-column + ($n - 1) * $gw-gutter;
+
+ @warn "The grid-width function is deprecated and will be removed in the next major version release";
+}
+
+@function golden-ratio($value, $increment) {
+ @return modular-scale($increment, $value, $ratio: $golden);
+
+ @warn "The golden-ratio function is deprecated and will be removed in the next major version release. Please use the modular-scale function, instead.";
+}
+
+@mixin box-sizing($box) {
+ @include prefixer(box-sizing, $box, webkit moz spec);
+
+ @warn "The box-sizing mixin is deprecated and will be removed in the next major version release. This property can now be used un-prefixed.";
+}
diff --git a/_sass/vendor/bourbon/_bourbon.scss b/_sass/vendor/bourbon/_bourbon.scss
new file mode 100644
index 0000000..28bb404
--- /dev/null
+++ b/_sass/vendor/bourbon/_bourbon.scss
@@ -0,0 +1,87 @@
+// Bourbon 4.2.0
+// http://bourbon.io
+// Copyright 2011-2015 thoughtbot, inc.
+// MIT License
+
+@import "settings/prefixer";
+@import "settings/px-to-em";
+@import "settings/asset-pipeline";
+
+@import "functions/assign-inputs";
+@import "functions/contains";
+@import "functions/contains-falsy";
+@import "functions/is-length";
+@import "functions/is-light";
+@import "functions/is-number";
+@import "functions/is-size";
+@import "functions/px-to-em";
+@import "functions/px-to-rem";
+@import "functions/shade";
+@import "functions/strip-units";
+@import "functions/tint";
+@import "functions/transition-property-name";
+@import "functions/unpack";
+@import "functions/modular-scale";
+
+@import "helpers/convert-units";
+@import "helpers/directional-values";
+@import "helpers/font-source-declaration";
+@import "helpers/gradient-positions-parser";
+@import "helpers/linear-angle-parser";
+@import "helpers/linear-gradient-parser";
+@import "helpers/linear-positions-parser";
+@import "helpers/linear-side-corner-parser";
+@import "helpers/radial-arg-parser";
+@import "helpers/radial-positions-parser";
+@import "helpers/radial-gradient-parser";
+@import "helpers/render-gradients";
+@import "helpers/shape-size-stripper";
+@import "helpers/str-to-num";
+
+@import "css3/animation";
+@import "css3/appearance";
+@import "css3/backface-visibility";
+@import "css3/background";
+@import "css3/background-image";
+@import "css3/border-image";
+@import "css3/calc";
+@import "css3/columns";
+@import "css3/filter";
+@import "css3/flex-box";
+@import "css3/font-face";
+@import "css3/font-feature-settings";
+@import "css3/hidpi-media-query";
+@import "css3/hyphens";
+@import "css3/image-rendering";
+@import "css3/keyframes";
+@import "css3/linear-gradient";
+@import "css3/perspective";
+@import "css3/placeholder";
+@import "css3/radial-gradient";
+@import "css3/selection";
+@import "css3/text-decoration";
+@import "css3/transform";
+@import "css3/transition";
+@import "css3/user-select";
+
+@import "addons/border-color";
+@import "addons/border-radius";
+@import "addons/border-style";
+@import "addons/border-width";
+@import "addons/buttons";
+@import "addons/clearfix";
+@import "addons/ellipsis";
+@import "addons/font-stacks";
+@import "addons/hide-text";
+@import "addons/margin";
+@import "addons/padding";
+@import "addons/position";
+@import "addons/prefixer";
+@import "addons/retina-image";
+@import "addons/size";
+@import "addons/text-inputs";
+@import "addons/timing-functions";
+@import "addons/triangle";
+@import "addons/word-wrap";
+
+@import "bourbon-deprecated-upcoming";
diff --git a/_sass/vendor/bourbon/addons/_border-color.scss b/_sass/vendor/bourbon/addons/_border-color.scss
new file mode 100644
index 0000000..6f6ab36
--- /dev/null
+++ b/_sass/vendor/bourbon/addons/_border-color.scss
@@ -0,0 +1,26 @@
+@charset "UTF-8";
+
+/// Provides a quick method for targeting `border-color` on specific sides of a box. Use a `null` value to “skip” a side.
+///
+/// @param {Arglist} $vals
+/// List of arguments
+///
+/// @example scss - Usage
+/// .element {
+/// @include border-color(#a60b55 #76cd9c null #e8ae1a);
+/// }
+///
+/// @example css - CSS Output
+/// .element {
+/// border-left-color: #e8ae1a;
+/// border-right-color: #76cd9c;
+/// border-top-color: #a60b55;
+/// }
+///
+/// @require {mixin} directional-property
+///
+/// @output `border-color`
+
+@mixin border-color($vals...) {
+ @include directional-property(border, color, $vals...);
+}
diff --git a/_sass/vendor/bourbon/addons/_border-radius.scss b/_sass/vendor/bourbon/addons/_border-radius.scss
new file mode 100644
index 0000000..1f65863
--- /dev/null
+++ b/_sass/vendor/bourbon/addons/_border-radius.scss
@@ -0,0 +1,48 @@
+@charset "UTF-8";
+
+/// Provides a quick method for targeting `border-radius` on both corners on the side of a box.
+///
+/// @param {Number} $radii
+/// List of arguments
+///
+/// @example scss - Usage
+/// .element-one {
+/// @include border-top-radius(5px);
+/// }
+///
+/// .element-two {
+/// @include border-left-radius(3px);
+/// }
+///
+/// @example css - CSS Output
+/// .element-one {
+/// border-top-left-radius: 5px;
+/// border-top-right-radius: 5px;
+/// }
+///
+/// .element-two {
+/// border-bottom-left-radius: 3px;
+/// border-top-left-radius: 3px;
+/// }
+///
+/// @output `border-radius`
+
+@mixin border-top-radius($radii) {
+ border-top-left-radius: $radii;
+ border-top-right-radius: $radii;
+}
+
+@mixin border-right-radius($radii) {
+ border-bottom-right-radius: $radii;
+ border-top-right-radius: $radii;
+}
+
+@mixin border-bottom-radius($radii) {
+ border-bottom-left-radius: $radii;
+ border-bottom-right-radius: $radii;
+}
+
+@mixin border-left-radius($radii) {
+ border-bottom-left-radius: $radii;
+ border-top-left-radius: $radii;
+}
diff --git a/_sass/vendor/bourbon/addons/_border-style.scss b/_sass/vendor/bourbon/addons/_border-style.scss
new file mode 100644
index 0000000..d86ee79
--- /dev/null
+++ b/_sass/vendor/bourbon/addons/_border-style.scss
@@ -0,0 +1,25 @@
+@charset "UTF-8";
+
+/// Provides a quick method for targeting `border-style` on specific sides of a box. Use a `null` value to “skip” a side.
+///
+/// @param {Arglist} $vals
+/// List of arguments
+///
+/// @example scss - Usage
+/// .element {
+/// @include border-style(dashed null solid);
+/// }
+///
+/// @example css - CSS Output
+/// .element {
+/// border-bottom-style: solid;
+/// border-top-style: dashed;
+/// }
+///
+/// @require {mixin} directional-property
+///
+/// @output `border-style`
+
+@mixin border-style($vals...) {
+ @include directional-property(border, style, $vals...);
+}
diff --git a/_sass/vendor/bourbon/addons/_border-width.scss b/_sass/vendor/bourbon/addons/_border-width.scss
new file mode 100644
index 0000000..0ea2d4b
--- /dev/null
+++ b/_sass/vendor/bourbon/addons/_border-width.scss
@@ -0,0 +1,25 @@
+@charset "UTF-8";
+
+/// Provides a quick method for targeting `border-width` on specific sides of a box. Use a `null` value to “skip” a side.
+///
+/// @param {Arglist} $vals
+/// List of arguments
+///
+/// @example scss - Usage
+/// .element {
+/// @include border-width(1em null 20px);
+/// }
+///
+/// @example css - CSS Output
+/// .element {
+/// border-bottom-width: 20px;
+/// border-top-width: 1em;
+/// }
+///
+/// @require {mixin} directional-property
+///
+/// @output `border-width`
+
+@mixin border-width($vals...) {
+ @include directional-property(border, width, $vals...);
+}
diff --git a/_sass/vendor/bourbon/addons/_buttons.scss b/_sass/vendor/bourbon/addons/_buttons.scss
new file mode 100644
index 0000000..debeabc
--- /dev/null
+++ b/_sass/vendor/bourbon/addons/_buttons.scss
@@ -0,0 +1,64 @@
+@charset "UTF-8";
+
+/// Generates variables for all buttons. Please note that you must use interpolation on the variable: `#{$all-buttons}`.
+///
+/// @example scss - Usage
+/// #{$all-buttons} {
+/// background-color: #f00;
+/// }
+///
+/// #{$all-buttons-focus},
+/// #{$all-buttons-hover} {
+/// background-color: #0f0;
+/// }
+///
+/// #{$all-buttons-active} {
+/// background-color: #00f;
+/// }
+///
+/// @example css - CSS Output
+/// button,
+/// input[type="button"],
+/// input[type="reset"],
+/// input[type="submit"] {
+/// background-color: #f00;
+/// }
+///
+/// button:focus,
+/// input[type="button"]:focus,
+/// input[type="reset"]:focus,
+/// input[type="submit"]:focus,
+/// button:hover,
+/// input[type="button"]:hover,
+/// input[type="reset"]:hover,
+/// input[type="submit"]:hover {
+/// background-color: #0f0;
+/// }
+///
+/// button:active,
+/// input[type="button"]:active,
+/// input[type="reset"]:active,
+/// input[type="submit"]:active {
+/// background-color: #00f;
+/// }
+///
+/// @require assign-inputs
+///
+/// @type List
+///
+/// @todo Remove double assigned variables (Lines 59–62) in v5.0.0
+
+$buttons-list: 'button',
+ 'input[type="button"]',
+ 'input[type="reset"]',
+ 'input[type="submit"]';
+
+$all-buttons: assign-inputs($buttons-list);
+$all-buttons-active: assign-inputs($buttons-list, active);
+$all-buttons-focus: assign-inputs($buttons-list, focus);
+$all-buttons-hover: assign-inputs($buttons-list, hover);
+
+$all-button-inputs: $all-buttons;
+$all-button-inputs-active: $all-buttons-active;
+$all-button-inputs-focus: $all-buttons-focus;
+$all-button-inputs-hover: $all-buttons-hover;
diff --git a/_sass/vendor/bourbon/addons/_clearfix.scss b/_sass/vendor/bourbon/addons/_clearfix.scss
new file mode 100644
index 0000000..11313d6
--- /dev/null
+++ b/_sass/vendor/bourbon/addons/_clearfix.scss
@@ -0,0 +1,25 @@
+@charset "UTF-8";
+
+/// 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 {
+ &::after {
+ clear: both;
+ content: "";
+ display: table;
+ }
+}
diff --git a/_sass/vendor/bourbon/addons/_ellipsis.scss b/_sass/vendor/bourbon/addons/_ellipsis.scss
new file mode 100644
index 0000000..a367f65
--- /dev/null
+++ b/_sass/vendor/bourbon/addons/_ellipsis.scss
@@ -0,0 +1,30 @@
+@charset "UTF-8";
+
+/// Truncates text and adds an ellipsis to represent overflow.
+///
+/// @param {Number} $width [100%]
+/// Max-width for the string to respect before being truncated
+///
+/// @example scss - Usage
+/// .element {
+/// @include ellipsis;
+/// }
+///
+/// @example css - CSS Output
+/// .element {
+/// display: inline-block;
+/// max-width: 100%;
+/// overflow: hidden;
+/// text-overflow: ellipsis;
+/// white-space: nowrap;
+/// word-wrap: normal;
+/// }
+
+@mixin ellipsis($width: 100%) {
+ display: inline-block;
+ max-width: $width;
+ overflow: hidden;
+ text-overflow: ellipsis;
+ white-space: nowrap;
+ word-wrap: normal;
+}
diff --git a/_sass/vendor/bourbon/addons/_font-stacks.scss b/_sass/vendor/bourbon/addons/_font-stacks.scss
new file mode 100644
index 0000000..57128f4
--- /dev/null
+++ b/_sass/vendor/bourbon/addons/_font-stacks.scss
@@ -0,0 +1,31 @@
+@charset "UTF-8";
+
+/// Georgia font stack.
+///
+/// @type List
+
+$georgia: "Georgia", "Cambria", "Times New Roman", "Times", serif;
+
+/// Helvetica font stack.
+///
+/// @type List
+
+$helvetica: "Helvetica Neue", "Helvetica", "Roboto", "Arial", sans-serif;
+
+/// Lucida Grande font stack.
+///
+/// @type List
+
+$lucida-grande: "Lucida Grande", "Tahoma", "Verdana", "Arial", sans-serif;
+
+/// Monospace font stack.
+///
+/// @type List
+
+$monospace: "Bitstream Vera Sans Mono", "Consolas", "Courier", monospace;
+
+/// Verdana font stack.
+///
+/// @type List
+
+$verdana: "Verdana", "Geneva", sans-serif;
diff --git a/_sass/vendor/bourbon/addons/_hide-text.scss b/_sass/vendor/bourbon/addons/_hide-text.scss
new file mode 100644
index 0000000..4caf20e
--- /dev/null
+++ b/_sass/vendor/bourbon/addons/_hide-text.scss
@@ -0,0 +1,27 @@
+/// Hides the text in an element, commonly used to show an image. Some elements will need block-level styles applied.
+///
+/// @link http://zeldman.com/2012/03/01/replacing-the-9999px-hack-new-image-replacement
+///
+/// @example scss - Usage
+/// .element {
+/// @include hide-text;
+/// }
+///
+/// @example css - CSS Output
+/// .element {
+/// overflow: hidden;
+/// text-indent: 101%;
+/// white-space: nowrap;
+/// }
+///
+/// @todo Remove height argument in v5.0.0
+
+@mixin hide-text($height: null) {
+ overflow: hidden;
+ text-indent: 101%;
+ white-space: nowrap;
+
+ @if $height {
+ @warn "The `hide-text` mixin has changed and no longer requires a height. The height argument will no longer be accepted in v5.0.0";
+ }
+}
diff --git a/_sass/vendor/bourbon/addons/_margin.scss b/_sass/vendor/bourbon/addons/_margin.scss
new file mode 100644
index 0000000..674f4e5
--- /dev/null
+++ b/_sass/vendor/bourbon/addons/_margin.scss
@@ -0,0 +1,26 @@
+@charset "UTF-8";
+
+/// Provides a quick method for targeting `margin` on specific sides of a box. Use a `null` value to “skip” a side.
+///
+/// @param {Arglist} $vals
+/// List of arguments
+///
+/// @example scss - Usage
+/// .element {
+/// @include margin(null 10px 3em 20vh);
+/// }
+///
+/// @example css - CSS Output
+/// .element {
+/// margin-bottom: 3em;
+/// margin-left: 20vh;
+/// margin-right: 10px;
+/// }
+///
+/// @require {mixin} directional-property
+///
+/// @output `margin`
+
+@mixin margin($vals...) {
+ @include directional-property(margin, false, $vals...);
+}
diff --git a/_sass/vendor/bourbon/addons/_padding.scss b/_sass/vendor/bourbon/addons/_padding.scss
new file mode 100644
index 0000000..40a5f00
--- /dev/null
+++ b/_sass/vendor/bourbon/addons/_padding.scss
@@ -0,0 +1,26 @@
+@charset "UTF-8";
+
+/// Provides a quick method for targeting `padding` on specific sides of a box. Use a `null` value to “skip” a side.
+///
+/// @param {Arglist} $vals
+/// List of arguments
+///
+/// @example scss - Usage
+/// .element {
+/// @include padding(12vh null 10px 5%);
+/// }
+///
+/// @example css - CSS Output
+/// .element {
+/// padding-bottom: 10px;
+/// padding-left: 5%;
+/// padding-top: 12vh;
+/// }
+///
+/// @require {mixin} directional-property
+///
+/// @output `padding`
+
+@mixin padding($vals...) {
+ @include directional-property(padding, false, $vals...);
+}
diff --git a/_sass/vendor/bourbon/addons/_position.scss b/_sass/vendor/bourbon/addons/_position.scss
new file mode 100644
index 0000000..e460f3f
--- /dev/null
+++ b/_sass/vendor/bourbon/addons/_position.scss
@@ -0,0 +1,48 @@
+@charset "UTF-8";
+
+/// Provides a quick method for setting an element’s position. Use a `null` value to “skip” a side.
+///
+/// @param {Position} $position [relative]
+/// A CSS position value
+///
+/// @param {Arglist} $coordinates [null null null null]
+/// List of values that correspond to the 4-value syntax for the edges of a box
+///
+/// @example scss - Usage
+/// .element {
+/// @include position(absolute, 0 null null 10em);
+/// }
+///
+/// @example css - CSS Output
+/// .element {
+/// left: 10em;
+/// position: absolute;
+/// top: 0;
+/// }
+///
+/// @require {function} is-length
+/// @require {function} unpack
+
+@mixin position($position: relative, $coordinates: null null null null) {
+ @if type-of($position) == list {
+ $coordinates: $position;
+ $position: relative;
+ }
+
+ $coordinates: unpack($coordinates);
+
+ $offsets: (
+ top: nth($coordinates, 1),
+ right: nth($coordinates, 2),
+ bottom: nth($coordinates, 3),
+ left: nth($coordinates, 4)
+ );
+
+ position: $position;
+
+ @each $offset, $value in $offsets {
+ @if is-length($value) {
+ #{$offset}: $value;
+ }
+ }
+}
diff --git a/_sass/vendor/bourbon/addons/_prefixer.scss b/_sass/vendor/bourbon/addons/_prefixer.scss
new file mode 100644
index 0000000..2b6f731
--- /dev/null
+++ b/_sass/vendor/bourbon/addons/_prefixer.scss
@@ -0,0 +1,66 @@
+@charset "UTF-8";
+
+/// A mixin for generating vendor prefixes on non-standardized properties.
+///
+/// @param {String} $property
+/// Property to prefix
+///
+/// @param {*} $value
+/// Value to use
+///
+/// @param {List} $prefixes
+/// Prefixes to define
+///
+/// @example scss - Usage
+/// .element {
+/// @include prefixer(border-radius, 10px, webkit ms spec);
+/// }
+///
+/// @example css - CSS Output
+/// .element {
+/// -webkit-border-radius: 10px;
+/// -moz-border-radius: 10px;
+/// border-radius: 10px;
+/// }
+///
+/// @require {variable} $prefix-for-webkit
+/// @require {variable} $prefix-for-mozilla
+/// @require {variable} $prefix-for-microsoft
+/// @require {variable} $prefix-for-opera
+/// @require {variable} $prefix-for-spec
+
+@mixin prefixer($property, $value, $prefixes) {
+ @each $prefix in $prefixes {
+ @if $prefix == webkit {
+ @if $prefix-for-webkit {
+ -webkit-#{$property}: $value;
+ }
+ } @else if $prefix == moz {
+ @if $prefix-for-mozilla {
+ -moz-#{$property}: $value;
+ }
+ } @else if $prefix == ms {
+ @if $prefix-for-microsoft {
+ -ms-#{$property}: $value;
+ }
+ } @else if $prefix == o {
+ @if $prefix-for-opera {
+ -o-#{$property}: $value;
+ }
+ } @else if $prefix == spec {
+ @if $prefix-for-spec {
+ #{$property}: $value;
+ }
+ } @else {
+ @warn "Unrecognized prefix: #{$prefix}";
+ }
+ }
+}
+
+@mixin disable-prefix-for-all() {
+ $prefix-for-webkit: false !global;
+ $prefix-for-mozilla: false !global;
+ $prefix-for-microsoft: false !global;
+ $prefix-for-opera: false !global;
+ $prefix-for-spec: false !global;
+}
diff --git a/_sass/vendor/bourbon/addons/_retina-image.scss b/_sass/vendor/bourbon/addons/_retina-image.scss
new file mode 100644
index 0000000..3995c19
--- /dev/null
+++ b/_sass/vendor/bourbon/addons/_retina-image.scss
@@ -0,0 +1,31 @@
+@mixin retina-image($filename, $background-size, $extension: png, $retina-filename: null, $retina-suffix: _2x, $asset-pipeline: $asset-pipeline) {
+ @if $asset-pipeline {
+ background-image: image-url("#{$filename}.#{$extension}");
+ }
+ @else {
+ background-image: url("#{$filename}.#{$extension}");
+ }
+
+ @include hidpi {
+ @if $asset-pipeline {
+ @if $retina-filename {
+ background-image: image-url("#{$retina-filename}.#{$extension}");
+ }
+ @else {
+ background-image: image-url("#{$filename}#{$retina-suffix}.#{$extension}");
+ }
+ }
+
+ @else {
+ @if $retina-filename {
+ background-image: url("#{$retina-filename}.#{$extension}");
+ }
+ @else {
+ background-image: url("#{$filename}#{$retina-suffix}.#{$extension}");
+ }
+ }
+
+ background-size: $background-size;
+
+ }
+}
diff --git a/_sass/vendor/bourbon/addons/_size.scss b/_sass/vendor/bourbon/addons/_size.scss
new file mode 100644
index 0000000..922fd12
--- /dev/null
+++ b/_sass/vendor/bourbon/addons/_size.scss
@@ -0,0 +1,55 @@
+@charset "UTF-8";
+
+/// Sets the `width` and `height` of the element.
+///
+/// @param {List} $size
+/// A list of at most 2 size values.
+///
+/// If there is only a single value in `$size` it is used for both width and height. All units are supported.
+///
+/// @example scss - Usage
+/// .first-element {
+/// @include size(2em);
+/// }
+///
+/// .second-element {
+/// @include size(auto 10em);
+/// }
+///
+/// @example css - CSS Output
+/// .first-element {
+/// width: 2em;
+/// height: 2em;
+/// }
+///
+/// .second-element {
+/// width: auto;
+/// height: 10em;
+/// }
+///
+/// @todo Refactor in 5.0.0 to use a comma-separated argument
+
+@mixin size($value) {
+ $width: nth($value, 1);
+ $height: $width;
+
+ @if length($value) > 1 {
+ $height: nth($value, 2);
+ }
+
+ @if is-size($height) {
+ height: $height;
+ }
+
+ @else {
+ @warn "`#{$height}` is not a valid length for the `$height` parameter in the `size` mixin.";
+ }
+
+ @if is-size($width) {
+ width: $width;
+ }
+
+ @else {
+ @warn "`#{$width}` is not a valid length for the `$width` parameter in the `size` mixin.";
+ }
+}
diff --git a/_sass/vendor/bourbon/addons/_text-inputs.scss b/_sass/vendor/bourbon/addons/_text-inputs.scss
new file mode 100644
index 0000000..20164d4
--- /dev/null
+++ b/_sass/vendor/bourbon/addons/_text-inputs.scss
@@ -0,0 +1,112 @@
+@charset "UTF-8";
+
+/// Generates variables for all text-based inputs. Please note that you must use interpolation on the variable: `#{$all-text-inputs}`.
+///
+/// @example scss - Usage
+/// #{$all-text-inputs} {
+/// border: 1px solid #f00;
+/// }
+///
+/// #{$all-text-inputs-focus},
+/// #{$all-text-inputs-hover} {
+/// border: 1px solid #0f0;
+/// }
+///
+/// #{$all-text-inputs-active} {
+/// border: 1px solid #00f;
+/// }
+///
+/// @example css - CSS Output
+/// input[type="color"],
+/// input[type="date"],
+/// input[type="datetime"],
+/// input[type="datetime-local"],
+/// input[type="email"],
+/// input[type="month"],
+/// input[type="number"],
+/// input[type="password"],
+/// input[type="search"],
+/// input[type="tel"],
+/// input[type="text"],
+/// input[type="time"],
+/// input[type="url"],
+/// input[type="week"],
+/// textarea {
+/// border: 1px solid #f00;
+/// }
+///
+/// input[type="color"]:focus,
+/// input[type="date"]:focus,
+/// input[type="datetime"]:focus,
+/// input[type="datetime-local"]:focus,
+/// input[type="email"]:focus,
+/// input[type="month"]:focus,
+/// input[type="number"]:focus,
+/// input[type="password"]:focus,
+/// input[type="search"]:focus,
+/// input[type="tel"]:focus,
+/// input[type="text"]:focus,
+/// input[type="time"]:focus,
+/// input[type="url"]:focus,
+/// input[type="week"]:focus,
+/// textarea:focus,
+/// input[type="color"]:hover,
+/// input[type="date"]:hover,
+/// input[type="datetime"]:hover,
+/// input[type="datetime-local"]:hover,
+/// input[type="email"]:hover,
+/// input[type="month"]:hover,
+/// input[type="number"]:hover,
+/// input[type="password"]:hover,
+/// input[type="search"]:hover,
+/// input[type="tel"]:hover,
+/// input[type="text"]:hover,
+/// input[type="time"]:hover,
+/// input[type="url"]:hover,
+/// input[type="week"]:hover,
+/// textarea:hover {
+/// border: 1px solid #0f0;
+/// }
+///
+/// input[type="color"]:active,
+/// input[type="date"]:active,
+/// input[type="datetime"]:active,
+/// input[type="datetime-local"]:active,
+/// input[type="email"]:active,
+/// input[type="month"]:active,
+/// input[type="number"]:active,
+/// input[type="password"]:active,
+/// input[type="search"]:active,
+/// input[type="tel"]:active,
+/// input[type="text"]:active,
+/// input[type="time"]:active,
+/// input[type="url"]:active,
+/// input[type="week"]:active,
+/// textarea:active {
+/// border: 1px solid #00f;
+/// }
+///
+/// @require assign-inputs
+///
+/// @type List
+
+$text-inputs-list: 'input[type="color"]',
+ 'input[type="date"]',
+ 'input[type="datetime"]',
+ 'input[type="datetime-local"]',
+ 'input[type="email"]',
+ 'input[type="month"]',
+ 'input[type="number"]',
+ 'input[type="password"]',
+ 'input[type="search"]',
+ 'input[type="tel"]',
+ 'input[type="text"]',
+ 'input[type="time"]',
+ 'input[type="url"]',
+ 'input[type="week"]',
+ 'textarea';
+
+$all-text-inputs: assign-inputs($text-inputs-list);
+$all-text-inputs-active: assign-inputs($text-inputs-list, active);
+$all-text-inputs-focus: assign-inputs($text-inputs-list, focus);
+$all-text-inputs-hover: assign-inputs($text-inputs-list, hover);
diff --git a/_sass/vendor/bourbon/addons/_timing-functions.scss b/_sass/vendor/bourbon/addons/_timing-functions.scss
new file mode 100644
index 0000000..20e5f1d
--- /dev/null
+++ b/_sass/vendor/bourbon/addons/_timing-functions.scss
@@ -0,0 +1,34 @@
+@charset "UTF-8";
+
+/// CSS cubic-bezier timing functions. Timing functions courtesy of jquery.easie (github.com/jaukia/easie)
+///
+/// Timing functions are the same as demoed here: http://jqueryui.com/resources/demos/effect/easing.html
+///
+/// @type cubic-bezier
+
+$ease-in-quad: cubic-bezier(0.550, 0.085, 0.680, 0.530);
+$ease-in-cubic: cubic-bezier(0.550, 0.055, 0.675, 0.190);
+$ease-in-quart: cubic-bezier(0.895, 0.030, 0.685, 0.220);
+$ease-in-quint: cubic-bezier(0.755, 0.050, 0.855, 0.060);
+$ease-in-sine: cubic-bezier(0.470, 0.000, 0.745, 0.715);
+$ease-in-expo: cubic-bezier(0.950, 0.050, 0.795, 0.035);
+$ease-in-circ: cubic-bezier(0.600, 0.040, 0.980, 0.335);
+$ease-in-back: cubic-bezier(0.600, -0.280, 0.735, 0.045);
+
+$ease-out-quad: cubic-bezier(0.250, 0.460, 0.450, 0.940);
+$ease-out-cubic: cubic-bezier(0.215, 0.610, 0.355, 1.000);
+$ease-out-quart: cubic-bezier(0.165, 0.840, 0.440, 1.000);
+$ease-out-quint: cubic-bezier(0.230, 1.000, 0.320, 1.000);
+$ease-out-sine: cubic-bezier(0.390, 0.575, 0.565, 1.000);
+$ease-out-expo: cubic-bezier(0.190, 1.000, 0.220, 1.000);
+$ease-out-circ: cubic-bezier(0.075, 0.820, 0.165, 1.000);
+$ease-out-back: cubic-bezier(0.175, 0.885, 0.320, 1.275);
+
+$ease-in-out-quad: cubic-bezier(0.455, 0.030, 0.515, 0.955);
+$ease-in-out-cubic: cubic-bezier(0.645, 0.045, 0.355, 1.000);
+$ease-in-out-quart: cubic-bezier(0.770, 0.000, 0.175, 1.000);
+$ease-in-out-quint: cubic-bezier(0.860, 0.000, 0.070, 1.000);
+$ease-in-out-sine: cubic-bezier(0.445, 0.050, 0.550, 0.950);
+$ease-in-out-expo: cubic-bezier(1.000, 0.000, 0.000, 1.000);
+$ease-in-out-circ: cubic-bezier(0.785, 0.135, 0.150, 0.860);
+$ease-in-out-back: cubic-bezier(0.680, -0.550, 0.265, 1.550);
diff --git a/_sass/vendor/bourbon/addons/_triangle.scss b/_sass/vendor/bourbon/addons/_triangle.scss
new file mode 100644
index 0000000..9fe9eec
--- /dev/null
+++ b/_sass/vendor/bourbon/addons/_triangle.scss
@@ -0,0 +1,83 @@
+@mixin triangle ($size, $color, $direction) {
+ height: 0;
+ width: 0;
+
+ $width: nth($size, 1);
+ $height: nth($size, length($size));
+
+ $foreground-color: nth($color, 1);
+ $background-color: if(length($color) == 2, nth($color, 2), transparent);
+
+ @if ($direction == up) or ($direction == down) or ($direction == right) or ($direction == left) {
+
+ $width: $width / 2;
+ $height: if(length($size) > 1, $height, $height/2);
+
+ @if $direction == up {
+ border-bottom: $height solid $foreground-color;
+ border-left: $width solid $background-color;
+ border-right: $width solid $background-color;
+
+ } @else if $direction == right {
+ border-bottom: $width solid $background-color;
+ border-left: $height solid $foreground-color;
+ border-top: $width solid $background-color;
+
+ } @else if $direction == down {
+ border-left: $width solid $background-color;
+ border-right: $width solid $background-color;
+ border-top: $height solid $foreground-color;
+
+ } @else if $direction == left {
+ border-bottom: $width solid $background-color;
+ border-right: $height solid $foreground-color;
+ border-top: $width solid $background-color;
+ }
+ }
+
+ @else if ($direction == up-right) or ($direction == up-left) {
+ border-top: $height solid $foreground-color;
+
+ @if $direction == up-right {
+ border-left: $width solid $background-color;
+
+ } @else if $direction == up-left {
+ border-right: $width solid $background-color;
+ }
+ }
+
+ @else if ($direction == down-right) or ($direction == down-left) {
+ border-bottom: $height solid $foreground-color;
+
+ @if $direction == down-right {
+ border-left: $width solid $background-color;
+
+ } @else if $direction == down-left {
+ border-right: $width solid $background-color;
+ }
+ }
+
+ @else if ($direction == inset-up) {
+ border-color: $background-color $background-color $foreground-color;
+ border-style: solid;
+ border-width: $height $width;
+ }
+
+ @else if ($direction == inset-down) {
+ border-color: $foreground-color $background-color $background-color;
+ border-style: solid;
+ border-width: $height $width;
+ }
+
+ @else if ($direction == inset-right) {
+ border-color: $background-color $background-color $background-color $foreground-color;
+ border-style: solid;
+ border-width: $width $height;
+ }
+
+ @else if ($direction == inset-left) {
+ border-color: $background-color $foreground-color $background-color $background-color;
+ border-style: solid;
+ border-width: $width $height;
+ }
+}
diff --git a/_sass/vendor/bourbon/addons/_word-wrap.scss b/_sass/vendor/bourbon/addons/_word-wrap.scss
new file mode 100644
index 0000000..64856a9
--- /dev/null
+++ b/_sass/vendor/bourbon/addons/_word-wrap.scss
@@ -0,0 +1,29 @@
+@charset "UTF-8";
+
+/// Provides an easy way to change the `word-wrap` property.
+///
+/// @param {String} $wrap [break-word]
+/// Value for the `word-break` property.
+///
+/// @example scss - Usage
+/// .wrapper {
+/// @include word-wrap(break-word);
+/// }
+///
+/// @example css - CSS Output
+/// .wrapper {
+/// overflow-wrap: break-word;
+/// word-break: break-all;
+/// word-wrap: break-word;
+/// }
+
+@mixin word-wrap($wrap: break-word) {
+ overflow-wrap: $wrap;
+ word-wrap: $wrap;
+
+ @if $wrap == break-word {
+ word-break: break-all;
+ } @else {
+ word-break: $wrap;
+ }
+}
diff --git a/_sass/vendor/bourbon/css3/_animation.scss b/_sass/vendor/bourbon/css3/_animation.scss
new file mode 100644
index 0000000..aac675f
--- /dev/null
+++ b/_sass/vendor/bourbon/css3/_animation.scss
@@ -0,0 +1,43 @@
+// http://www.w3.org/TR/css3-animations/#the-animation-name-property-
+// Each of these mixins support comma separated lists of values, which allows different transitions for individual properties to be described in a single style rule. Each value in the list corresponds to the value at that same position in the other properties.
+
+@mixin animation($animations...) {
+ @include prefixer(animation, $animations, webkit moz spec);
+}
+
+@mixin animation-name($names...) {
+ @include prefixer(animation-name, $names, webkit moz spec);
+}
+
+@mixin animation-duration($times...) {
+ @include prefixer(animation-duration, $times, webkit moz spec);
+}
+
+@mixin animation-timing-function($motions...) {
+ // ease | linear | ease-in | ease-out | ease-in-out
+ @include prefixer(animation-timing-function, $motions, webkit moz spec);
+}
+
+@mixin animation-iteration-count($values...) {
+ // infinite |
+ @include prefixer(animation-iteration-count, $values, webkit moz spec);
+}
+
+@mixin animation-direction($directions...) {
+ // normal | alternate
+ @include prefixer(animation-direction, $directions, webkit moz spec);
+}
+
+@mixin animation-play-state($states...) {
+ // running | paused
+ @include prefixer(animation-play-state, $states, webkit moz spec);
+}
+
+@mixin animation-delay($times...) {
+ @include prefixer(animation-delay, $times, webkit moz spec);
+}
+
+@mixin animation-fill-mode($modes...) {
+ // none | forwards | backwards | both
+ @include prefixer(animation-fill-mode, $modes, webkit moz spec);
+}
diff --git a/_sass/vendor/bourbon/css3/_appearance.scss b/_sass/vendor/bourbon/css3/_appearance.scss
new file mode 100644
index 0000000..abddc02
--- /dev/null
+++ b/_sass/vendor/bourbon/css3/_appearance.scss
@@ -0,0 +1,3 @@
+@mixin appearance($value) {
+ @include prefixer(appearance, $value, webkit moz ms o spec);
+}
diff --git a/_sass/vendor/bourbon/css3/_backface-visibility.scss b/_sass/vendor/bourbon/css3/_backface-visibility.scss
new file mode 100644
index 0000000..fc68e2d
--- /dev/null
+++ b/_sass/vendor/bourbon/css3/_backface-visibility.scss
@@ -0,0 +1,3 @@
+@mixin backface-visibility($visibility) {
+ @include prefixer(backface-visibility, $visibility, webkit spec);
+}
diff --git a/_sass/vendor/bourbon/css3/_background-image.scss b/_sass/vendor/bourbon/css3/_background-image.scss
new file mode 100644
index 0000000..d09f9b8
--- /dev/null
+++ b/_sass/vendor/bourbon/css3/_background-image.scss
@@ -0,0 +1,42 @@
+//************************************************************************//
+// Background-image property for adding multiple background images with
+// gradients, or for stringing multiple gradients together.
+//************************************************************************//
+
+@mixin background-image($images...) {
+ $webkit-images: ();
+ $spec-images: ();
+
+ @each $image in $images {
+ $webkit-image: ();
+ $spec-image: ();
+
+ @if (type-of($image) == string) {
+ $url-str: str-slice($image, 0, 3);
+ $gradient-type: str-slice($image, 0, 6);
+
+ @if $url-str == "url" {
+ $webkit-image: $image;
+ $spec-image: $image;
+ }
+
+ @else if $gradient-type == "linear" {
+ $gradients: _linear-gradient-parser($image);
+ $webkit-image: map-get($gradients, webkit-image);
+ $spec-image: map-get($gradients, spec-image);
+ }
+
+ @else if $gradient-type == "radial" {
+ $gradients: _radial-gradient-parser($image);
+ $webkit-image: map-get($gradients, webkit-image);
+ $spec-image: map-get($gradients, spec-image);
+ }
+ }
+
+ $webkit-images: append($webkit-images, $webkit-image, comma);
+ $spec-images: append($spec-images, $spec-image, comma);
+ }
+
+ background-image: $webkit-images;
+ background-image: $spec-images;
+}
diff --git a/_sass/vendor/bourbon/css3/_background.scss b/_sass/vendor/bourbon/css3/_background.scss
new file mode 100644
index 0000000..efb4285
--- /dev/null
+++ b/_sass/vendor/bourbon/css3/_background.scss
@@ -0,0 +1,55 @@
+//************************************************************************//
+// Background property for adding multiple backgrounds using shorthand
+// notation.
+//************************************************************************//
+
+@mixin background($backgrounds...) {
+ $webkit-backgrounds: ();
+ $spec-backgrounds: ();
+
+ @each $background in $backgrounds {
+ $webkit-background: ();
+ $spec-background: ();
+ $background-type: type-of($background);
+
+ @if $background-type == string or $background-type == list {
+ $background-str: if($background-type == list, nth($background, 1), $background);
+
+ $url-str: str-slice($background-str, 0, 3);
+ $gradient-type: str-slice($background-str, 0, 6);
+
+ @if $url-str == "url" {
+ $webkit-background: $background;
+ $spec-background: $background;
+ }
+
+ @else if $gradient-type == "linear" {
+ $gradients: _linear-gradient-parser("#{$background}");
+ $webkit-background: map-get($gradients, webkit-image);
+ $spec-background: map-get($gradients, spec-image);
+ }
+
+ @else if $gradient-type == "radial" {
+ $gradients: _radial-gradient-parser("#{$background}");
+ $webkit-background: map-get($gradients, webkit-image);
+ $spec-background: map-get($gradients, spec-image);
+ }
+
+ @else {
+ $webkit-background: $background;
+ $spec-background: $background;
+ }
+ }
+
+ @else {
+ $webkit-background: $background;
+ $spec-background: $background;
+ }
+
+ $webkit-backgrounds: append($webkit-backgrounds, $webkit-background, comma);
+ $spec-backgrounds: append($spec-backgrounds, $spec-background, comma);
+ }
+
+ background: $webkit-backgrounds;
+ background: $spec-backgrounds;
+}
diff --git a/_sass/vendor/bourbon/css3/_border-image.scss b/_sass/vendor/bourbon/css3/_border-image.scss
new file mode 100644
index 0000000..e74efc0
--- /dev/null
+++ b/_sass/vendor/bourbon/css3/_border-image.scss
@@ -0,0 +1,59 @@
+@mixin border-image($borders...) {
+ $webkit-borders: ();
+ $spec-borders: ();
+
+ @each $border in $borders {
+ $webkit-border: ();
+ $spec-border: ();
+ $border-type: type-of($border);
+
+ @if $border-type == string or list {
+ $border-str: if($border-type == list, nth($border, 1), $border);
+
+ $url-str: str-slice($border-str, 0, 3);
+ $gradient-type: str-slice($border-str, 0, 6);
+
+ @if $url-str == "url" {
+ $webkit-border: $border;
+ $spec-border: $border;
+ }
+
+ @else if $gradient-type == "linear" {
+ $gradients: _linear-gradient-parser("#{$border}");
+ $webkit-border: map-get($gradients, webkit-image);
+ $spec-border: map-get($gradients, spec-image);
+ }
+
+ @else if $gradient-type == "radial" {
+ $gradients: _radial-gradient-parser("#{$border}");
+ $webkit-border: map-get($gradients, webkit-image);
+ $spec-border: map-get($gradients, spec-image);
+ }
+
+ @else {
+ $webkit-border: $border;
+ $spec-border: $border;
+ }
+ }
+
+ @else {
+ $webkit-border: $border;
+ $spec-border: $border;
+ }
+
+ $webkit-borders: append($webkit-borders, $webkit-border, comma);
+ $spec-borders: append($spec-borders, $spec-border, comma);
+ }
+
+ -webkit-border-image: $webkit-borders;
+ border-image: $spec-borders;
+ border-style: solid;
+}
+
+//Examples:
+// @include border-image(url("image.png"));
+// @include border-image(url("image.png") 20 stretch);
+// @include border-image(linear-gradient(45deg, orange, yellow));
+// @include border-image(linear-gradient(45deg, orange, yellow) stretch);
+// @include border-image(linear-gradient(45deg, orange, yellow) 20 30 40 50 stretch round);
+// @include border-image(radial-gradient(top, cover, orange, yellow, orange));
diff --git a/_sass/vendor/bourbon/css3/_calc.scss b/_sass/vendor/bourbon/css3/_calc.scss
new file mode 100644
index 0000000..0bfc738
--- /dev/null
+++ b/_sass/vendor/bourbon/css3/_calc.scss
@@ -0,0 +1,4 @@
+@mixin calc($property, $value) {
+ #{$property}: -webkit-calc(#{$value});
+ #{$property}: calc(#{$value});
+}
diff --git a/_sass/vendor/bourbon/css3/_columns.scss b/_sass/vendor/bourbon/css3/_columns.scss
new file mode 100644
index 0000000..9611767
--- /dev/null
+++ b/_sass/vendor/bourbon/css3/_columns.scss
@@ -0,0 +1,47 @@
+@mixin columns($arg: auto) {
+ // ||
+ @include prefixer(columns, $arg, webkit moz spec);
+}
+
+@mixin column-count($int: auto) {
+ // auto || integer
+ @include prefixer(column-count, $int, webkit moz spec);
+}
+
+@mixin column-gap($length: normal) {
+ // normal || length
+ @include prefixer(column-gap, $length, webkit moz spec);
+}
+
+@mixin column-fill($arg: auto) {
+ // auto || length
+ @include prefixer(column-fill, $arg, webkit moz spec);
+}
+
+@mixin column-rule($arg) {
+ // || ||
+ @include prefixer(column-rule, $arg, webkit moz spec);
+}
+
+@mixin column-rule-color($color) {
+ @include prefixer(column-rule-color, $color, webkit moz spec);
+}
+
+@mixin column-rule-style($style: none) {
+ // none | hidden | dashed | dotted | double | groove | inset | inset | outset | ridge | solid
+ @include prefixer(column-rule-style, $style, webkit moz spec);
+}
+
+@mixin column-rule-width ($width: none) {
+ @include prefixer(column-rule-width, $width, webkit moz spec);
+}
+
+@mixin column-span($arg: none) {
+ // none || all
+ @include prefixer(column-span, $arg, webkit moz spec);
+}
+
+@mixin column-width($length: auto) {
+ // auto || length
+ @include prefixer(column-width, $length, webkit moz spec);
+}
diff --git a/_sass/vendor/bourbon/css3/_filter.scss b/_sass/vendor/bourbon/css3/_filter.scss
new file mode 100644
index 0000000..b8f8ffb
--- /dev/null
+++ b/_sass/vendor/bourbon/css3/_filter.scss
@@ -0,0 +1,4 @@
+@mixin filter($function: none) {
+ // [
+ @include prefixer(perspective, $depth, webkit moz spec);
+}
+
+@mixin perspective-origin($value: 50% 50%) {
+ @include prefixer(perspective-origin, $value, webkit moz spec);
+}
diff --git a/_sass/vendor/bourbon/css3/_placeholder.scss b/_sass/vendor/bourbon/css3/_placeholder.scss
new file mode 100644
index 0000000..5682fd0
--- /dev/null
+++ b/_sass/vendor/bourbon/css3/_placeholder.scss
@@ -0,0 +1,8 @@
+@mixin placeholder {
+ $placeholders: ":-webkit-input" ":-moz" "-moz" "-ms-input";
+ @each $placeholder in $placeholders {
+ &:#{$placeholder}-placeholder {
+ @content;
+ }
+ }
+}
diff --git a/_sass/vendor/bourbon/css3/_radial-gradient.scss b/_sass/vendor/bourbon/css3/_radial-gradient.scss
new file mode 100644
index 0000000..8da076e
--- /dev/null
+++ b/_sass/vendor/bourbon/css3/_radial-gradient.scss
@@ -0,0 +1,39 @@
+// Requires Sass 3.1+
+@mixin radial-gradient($g1, $g2,
+ $g3: null, $g4: null,
+ $g5: null, $g6: null,
+ $g7: null, $g8: null,
+ $g9: null, $g10: null,
+ $pos: null,
+ $shape-size: null,
+ $fallback: null) {
+
+ $data: _radial-arg-parser($g1, $g2, $pos, $shape-size);
+ $g1: nth($data, 1);
+ $g2: nth($data, 2);
+ $pos: nth($data, 3);
+ $shape-size: nth($data, 4);
+
+ $full: $g1, $g2, $g3, $g4, $g5, $g6, $g7, $g8, $g9, $g10;
+
+ // Strip deprecated cover/contain for spec
+ $shape-size-spec: _shape-size-stripper($shape-size);
+
+ // Set $g1 as the default fallback color
+ $first-color: nth($full, 1);
+ $fallback-color: nth($first-color, 1);
+
+ @if (type-of($fallback) == color) or ($fallback == "transparent") {
+ $fallback-color: $fallback;
+ }
+
+ // Add Commas and spaces
+ $shape-size: if($shape-size, "#{$shape-size}, ", null);
+ $pos: if($pos, "#{$pos}, ", null);
+ $pos-spec: if($pos, "at #{$pos}", null);
+ $shape-size-spec: if(($shape-size-spec != " ") and ($pos == null), "#{$shape-size-spec}, ", "#{$shape-size-spec} ");
+
+ background-color: $fallback-color;
+ background-image: -webkit-radial-gradient(unquote(#{$pos}#{$shape-size}#{$full}));
+ background-image: unquote("radial-gradient(#{$shape-size-spec}#{$pos-spec}#{$full})");
+}
diff --git a/_sass/vendor/bourbon/css3/_selection.scss b/_sass/vendor/bourbon/css3/_selection.scss
new file mode 100644
index 0000000..23303ab
--- /dev/null
+++ b/_sass/vendor/bourbon/css3/_selection.scss
@@ -0,0 +1,42 @@
+@charset "UTF-8";
+
+/// Outputs the spec and prefixed versions of the `::selection` pseudo-element.
+///
+/// @param {Bool} $current-selector [false]
+/// If set to `true`, it takes the current element into consideration.
+///
+/// @example scss - Usage
+/// .element {
+/// @include selection(true) {
+/// background-color: #ffbb52;
+/// }
+/// }
+///
+/// @example css - CSS Output
+/// .element::-moz-selection {
+/// background-color: #ffbb52;
+/// }
+///
+/// .element::selection {
+/// background-color: #ffbb52;
+/// }
+
+@mixin selection($current-selector: false) {
+ @if $current-selector {
+ &::-moz-selection {
+ @content;
+ }
+
+ &::selection {
+ @content;
+ }
+ } @else {
+ ::-moz-selection {
+ @content;
+ }
+
+ ::selection {
+ @content;
+ }
+ }
+}
diff --git a/_sass/vendor/bourbon/css3/_text-decoration.scss b/_sass/vendor/bourbon/css3/_text-decoration.scss
new file mode 100644
index 0000000..9222746
--- /dev/null
+++ b/_sass/vendor/bourbon/css3/_text-decoration.scss
@@ -0,0 +1,19 @@
+@mixin text-decoration($value) {
+// || ||
+ @include prefixer(text-decoration, $value, moz);
+}
+
+@mixin text-decoration-line($line: none) {
+// none || underline || overline || line-through
+ @include prefixer(text-decoration-line, $line, moz);
+}
+
+@mixin text-decoration-style($style: solid) {
+// solid || double || dotted || dashed || wavy
+ @include prefixer(text-decoration-style, $style, moz webkit);
+}
+
+@mixin text-decoration-color($color: currentColor) {
+// currentColor ||
+ @include prefixer(text-decoration-color, $color, moz);
+}
diff --git a/_sass/vendor/bourbon/css3/_transform.scss b/_sass/vendor/bourbon/css3/_transform.scss
new file mode 100644
index 0000000..8ee6509
--- /dev/null
+++ b/_sass/vendor/bourbon/css3/_transform.scss
@@ -0,0 +1,15 @@
+@mixin transform($property: none) {
+ // none |
+ @include prefixer(transform, $property, webkit moz ms o spec);
+}
+
+@mixin transform-origin($axes: 50%) {
+ // x-axis - left | center | right | length | %
+ // y-axis - top | center | bottom | length | %
+ // z-axis - length
+ @include prefixer(transform-origin, $axes, webkit moz ms o spec);
+}
+
+@mixin transform-style($style: flat) {
+ @include prefixer(transform-style, $style, webkit moz ms o spec);
+}
diff --git a/_sass/vendor/bourbon/css3/_transition.scss b/_sass/vendor/bourbon/css3/_transition.scss
new file mode 100644
index 0000000..3c785ed
--- /dev/null
+++ b/_sass/vendor/bourbon/css3/_transition.scss
@@ -0,0 +1,71 @@
+// Shorthand mixin. Supports multiple parentheses-deliminated values for each variable.
+// Example: @include transition (all 2s ease-in-out);
+// @include transition (opacity 1s ease-in 2s, width 2s ease-out);
+// @include transition-property (transform, opacity);
+
+@mixin transition($properties...) {
+ // Fix for vendor-prefix transform property
+ $needs-prefixes: false;
+ $webkit: ();
+ $moz: ();
+ $spec: ();
+
+ // Create lists for vendor-prefixed transform
+ @each $list in $properties {
+ @if nth($list, 1) == "transform" {
+ $needs-prefixes: true;
+ $list1: -webkit-transform;
+ $list2: -moz-transform;
+ $list3: ();
+
+ @each $var in $list {
+ $list3: join($list3, $var);
+
+ @if $var != "transform" {
+ $list1: join($list1, $var);
+ $list2: join($list2, $var);
+ }
+ }
+
+ $webkit: append($webkit, $list1);
+ $moz: append($moz, $list2);
+ $spec: append($spec, $list3);
+ } @else {
+ $webkit: append($webkit, $list, comma);
+ $moz: append($moz, $list, comma);
+ $spec: append($spec, $list, comma);
+ }
+ }
+
+ @if $needs-prefixes {
+ -webkit-transition: $webkit;
+ -moz-transition: $moz;
+ transition: $spec;
+ } @else {
+ @if length($properties) >= 1 {
+ @include prefixer(transition, $properties, webkit moz spec);
+ } @else {
+ $properties: all 0.15s ease-out 0s;
+ @include prefixer(transition, $properties, webkit moz spec);
+ }
+ }
+}
+
+@mixin transition-property($properties...) {
+ -webkit-transition-property: transition-property-names($properties, "webkit");
+ -moz-transition-property: transition-property-names($properties, "moz");
+ transition-property: transition-property-names($properties, false);
+}
+
+@mixin transition-duration($times...) {
+ @include prefixer(transition-duration, $times, webkit moz spec);
+}
+
+@mixin transition-timing-function($motions...) {
+ // ease | linear | ease-in | ease-out | ease-in-out | cubic-bezier()
+ @include prefixer(transition-timing-function, $motions, webkit moz spec);
+}
+
+@mixin transition-delay($times...) {
+ @include prefixer(transition-delay, $times, webkit moz spec);
+}
diff --git a/_sass/vendor/bourbon/css3/_user-select.scss b/_sass/vendor/bourbon/css3/_user-select.scss
new file mode 100644
index 0000000..d4e5551
--- /dev/null
+++ b/_sass/vendor/bourbon/css3/_user-select.scss
@@ -0,0 +1,3 @@
+@mixin user-select($value: none) {
+ @include prefixer(user-select, $value, webkit moz ms spec);
+}
diff --git a/_sass/vendor/bourbon/functions/_assign-inputs.scss b/_sass/vendor/bourbon/functions/_assign-inputs.scss
new file mode 100644
index 0000000..f8aba96
--- /dev/null
+++ b/_sass/vendor/bourbon/functions/_assign-inputs.scss
@@ -0,0 +1,11 @@
+@function assign-inputs($inputs, $pseudo: null) {
+ $list: ();
+
+ @each $input in $inputs {
+ $input: unquote($input);
+ $input: if($pseudo, $input + ":" + $pseudo, $input);
+ $list: append($list, $input, comma);
+ }
+
+ @return $list;
+}
diff --git a/_sass/vendor/bourbon/functions/_contains-falsy.scss b/_sass/vendor/bourbon/functions/_contains-falsy.scss
new file mode 100644
index 0000000..c096fdb
--- /dev/null
+++ b/_sass/vendor/bourbon/functions/_contains-falsy.scss
@@ -0,0 +1,20 @@
+@charset "UTF-8";
+
+/// Checks if a list does not contains a value.
+///
+/// @access private
+///
+/// @param {List} $list
+/// The list to check against.
+///
+/// @return {Bool}
+
+@function contains-falsy($list) {
+ @each $item in $list {
+ @if not $item {
+ @return true;
+ }
+ }
+
+ @return false;
+}
diff --git a/_sass/vendor/bourbon/functions/_contains.scss b/_sass/vendor/bourbon/functions/_contains.scss
new file mode 100644
index 0000000..3dec27d
--- /dev/null
+++ b/_sass/vendor/bourbon/functions/_contains.scss
@@ -0,0 +1,26 @@
+@charset "UTF-8";
+
+/// Checks if a list contains a value(s).
+///
+/// @access private
+///
+/// @param {List} $list
+/// The list to check against.
+///
+/// @param {List} $values
+/// A single value or list of values to check for.
+///
+/// @example scss - Usage
+/// contains($list, $value)
+///
+/// @return {Bool}
+
+@function contains($list, $values...) {
+ @each $value in $values {
+ @if type-of(index($list, $value)) != "number" {
+ @return false;
+ }
+ }
+
+ @return true;
+}
diff --git a/_sass/vendor/bourbon/functions/_is-length.scss b/_sass/vendor/bourbon/functions/_is-length.scss
new file mode 100644
index 0000000..f56aa8b
--- /dev/null
+++ b/_sass/vendor/bourbon/functions/_is-length.scss
@@ -0,0 +1,11 @@
+@charset "UTF-8";
+
+/// Checks for a valid CSS length.
+///
+/// @param {String} $value
+
+@function is-length($value) {
+ @return type-of($value) != "null" and (str-slice($value + "", 1, 4) == 'calc'
+ or index(auto inherit initial 0, $value)
+ or (type-of($value) == "number" and not(unitless($value))));
+}
diff --git a/_sass/vendor/bourbon/functions/_is-light.scss b/_sass/vendor/bourbon/functions/_is-light.scss
new file mode 100644
index 0000000..92d90ac
--- /dev/null
+++ b/_sass/vendor/bourbon/functions/_is-light.scss
@@ -0,0 +1,21 @@
+@charset "UTF-8";
+
+/// Programatically determines whether a color is light or dark.
+///
+/// @link http://robots.thoughtbot.com/closer-look-color-lightness
+///
+/// @param {Color (Hex)} $color
+///
+/// @example scss - Usage
+/// is-light($color)
+///
+/// @return {Bool}
+
+@function is-light($hex-color) {
+ $-local-red: red(rgba($hex-color, 1));
+ $-local-green: green(rgba($hex-color, 1));
+ $-local-blue: blue(rgba($hex-color, 1));
+ $-local-lightness: ($-local-red * 0.2126 + $-local-green * 0.7152 + $-local-blue * 0.0722) / 255;
+
+ @return $-local-lightness > 0.6;
+}
diff --git a/_sass/vendor/bourbon/functions/_is-number.scss b/_sass/vendor/bourbon/functions/_is-number.scss
new file mode 100644
index 0000000..a64e0bf
--- /dev/null
+++ b/_sass/vendor/bourbon/functions/_is-number.scss
@@ -0,0 +1,11 @@
+@charset "UTF-8";
+
+/// Checks for a valid number.
+///
+/// @param {Number} $value
+///
+/// @require {function} contains
+
+@function is-number($value) {
+ @return contains("0" "1" "2" "3" "4" "5" "6" "7" "8" "9" 0 1 2 3 4 5 6 7 8 9, $value);
+}
diff --git a/_sass/vendor/bourbon/functions/_is-size.scss b/_sass/vendor/bourbon/functions/_is-size.scss
new file mode 100644
index 0000000..661789a
--- /dev/null
+++ b/_sass/vendor/bourbon/functions/_is-size.scss
@@ -0,0 +1,13 @@
+@charset "UTF-8";
+
+/// Checks for a valid CSS size.
+///
+/// @param {String} $value
+///
+/// @require {function} contains
+/// @require {function} is-length
+
+@function is-size($value) {
+ @return is-length($value)
+ or contains("fill" "fit-content" "min-content" "max-content", $value);
+}
diff --git a/_sass/vendor/bourbon/functions/_modular-scale.scss b/_sass/vendor/bourbon/functions/_modular-scale.scss
new file mode 100644
index 0000000..20fa388
--- /dev/null
+++ b/_sass/vendor/bourbon/functions/_modular-scale.scss
@@ -0,0 +1,69 @@
+// Scaling Variables
+$golden: 1.618;
+$minor-second: 1.067;
+$major-second: 1.125;
+$minor-third: 1.2;
+$major-third: 1.25;
+$perfect-fourth: 1.333;
+$augmented-fourth: 1.414;
+$perfect-fifth: 1.5;
+$minor-sixth: 1.6;
+$major-sixth: 1.667;
+$minor-seventh: 1.778;
+$major-seventh: 1.875;
+$octave: 2;
+$major-tenth: 2.5;
+$major-eleventh: 2.667;
+$major-twelfth: 3;
+$double-octave: 4;
+
+$modular-scale-ratio: $perfect-fourth !default;
+$modular-scale-base: em($em-base) !default;
+
+@function modular-scale($increment, $value: $modular-scale-base, $ratio: $modular-scale-ratio) {
+ $v1: nth($value, 1);
+ $v2: nth($value, length($value));
+ $value: $v1;
+
+ // scale $v2 to just above $v1
+ @while $v2 > $v1 {
+ $v2: ($v2 / $ratio); // will be off-by-1
+ }
+ @while $v2 < $v1 {
+ $v2: ($v2 * $ratio); // will fix off-by-1
+ }
+
+ // check AFTER scaling $v2 to prevent double-counting corner-case
+ $double-stranded: $v2 > $v1;
+
+ @if $increment > 0 {
+ @for $i from 1 through $increment {
+ @if $double-stranded and ($v1 * $ratio) > $v2 {
+ $value: $v2;
+ $v2: ($v2 * $ratio);
+ } @else {
+ $v1: ($v1 * $ratio);
+ $value: $v1;
+ }
+ }
+ }
+
+ @if $increment < 0 {
+ // adjust $v2 to just below $v1
+ @if $double-stranded {
+ $v2: ($v2 / $ratio);
+ }
+
+ @for $i from $increment through -1 {
+ @if $double-stranded and ($v1 / $ratio) < $v2 {
+ $value: $v2;
+ $v2: ($v2 / $ratio);
+ } @else {
+ $v1: ($v1 / $ratio);
+ $value: $v1;
+ }
+ }
+ }
+
+ @return $value;
+}
diff --git a/_sass/vendor/bourbon/functions/_px-to-em.scss b/_sass/vendor/bourbon/functions/_px-to-em.scss
new file mode 100644
index 0000000..ae81a44
--- /dev/null
+++ b/_sass/vendor/bourbon/functions/_px-to-em.scss
@@ -0,0 +1,13 @@
+// Convert pixels to ems
+// eg. for a relational value of 12px write em(12) when the parent is 16px
+// if the parent is another value say 24px write em(12, 24)
+
+@function em($pxval, $base: $em-base) {
+ @if not unitless($pxval) {
+ $pxval: strip-units($pxval);
+ }
+ @if not unitless($base) {
+ $base: strip-units($base);
+ }
+ @return ($pxval / $base) * 1em;
+}
diff --git a/_sass/vendor/bourbon/functions/_px-to-rem.scss b/_sass/vendor/bourbon/functions/_px-to-rem.scss
new file mode 100644
index 0000000..0ac941e
--- /dev/null
+++ b/_sass/vendor/bourbon/functions/_px-to-rem.scss
@@ -0,0 +1,15 @@
+// Convert pixels to rems
+// eg. for a relational value of 12px write rem(12)
+// Assumes $em-base is the font-size of
+
+@function rem($pxval) {
+ @if not unitless($pxval) {
+ $pxval: strip-units($pxval);
+ }
+
+ $base: $em-base;
+ @if not unitless($base) {
+ $base: strip-units($base);
+ }
+ @return ($pxval / $base) * 1rem;
+}
diff --git a/_sass/vendor/bourbon/functions/_shade.scss b/_sass/vendor/bourbon/functions/_shade.scss
new file mode 100644
index 0000000..8aaf2c6
--- /dev/null
+++ b/_sass/vendor/bourbon/functions/_shade.scss
@@ -0,0 +1,24 @@
+@charset "UTF-8";
+
+/// Mixes a color with black.
+///
+/// @param {Color} $color
+///
+/// @param {Number (Percentage)} $percent
+/// The amount of black to be mixed in.
+///
+/// @example scss - Usage
+/// .element {
+/// background-color: shade(#ffbb52, 60%);
+/// }
+///
+/// @example css - CSS Output
+/// .element {
+/// background-color: #664a20;
+/// }
+///
+/// @return {Color}
+
+@function shade($color, $percent) {
+ @return mix(#000, $color, $percent);
+}
diff --git a/_sass/vendor/bourbon/functions/_strip-units.scss b/_sass/vendor/bourbon/functions/_strip-units.scss
new file mode 100644
index 0000000..6c5f3e8
--- /dev/null
+++ b/_sass/vendor/bourbon/functions/_strip-units.scss
@@ -0,0 +1,17 @@
+@charset "UTF-8";
+
+/// Strips the unit from a number.
+///
+/// @param {Number (With Unit)} $value
+///
+/// @example scss - Usage
+/// $dimension: strip-units(10em);
+///
+/// @example css - CSS Output
+/// $dimension: 10;
+///
+/// @return {Number (Unitless)}
+
+@function strip-units($value) {
+ @return ($value / ($value * 0 + 1));
+}
diff --git a/_sass/vendor/bourbon/functions/_tint.scss b/_sass/vendor/bourbon/functions/_tint.scss
new file mode 100644
index 0000000..2e33814
--- /dev/null
+++ b/_sass/vendor/bourbon/functions/_tint.scss
@@ -0,0 +1,24 @@
+@charset "UTF-8";
+
+/// Mixes a color with white.
+///
+/// @param {Color} $color
+///
+/// @param {Number (Percentage)} $percent
+/// The amount of white to be mixed in.
+///
+/// @example scss - Usage
+/// .element {
+/// background-color: tint(#6ecaa6, 40%);
+/// }
+///
+/// @example css - CSS Output
+/// .element {
+/// background-color: #a8dfc9;
+/// }
+///
+/// @return {Color}
+
+@function tint($color, $percent) {
+ @return mix(#fff, $color, $percent);
+}
diff --git a/_sass/vendor/bourbon/functions/_transition-property-name.scss b/_sass/vendor/bourbon/functions/_transition-property-name.scss
new file mode 100644
index 0000000..18348b9
--- /dev/null
+++ b/_sass/vendor/bourbon/functions/_transition-property-name.scss
@@ -0,0 +1,22 @@
+// Return vendor-prefixed property names if appropriate
+// Example: transition-property-names((transform, color, background), moz) -> -moz-transform, color, background
+//************************************************************************//
+@function transition-property-names($props, $vendor: false) {
+ $new-props: ();
+
+ @each $prop in $props {
+ $new-props: append($new-props, transition-property-name($prop, $vendor), comma);
+ }
+
+ @return $new-props;
+}
+
+@function transition-property-name($prop, $vendor: false) {
+ // put other properties that need to be prefixed here aswell
+ @if $vendor and $prop == transform {
+ @return unquote('-'+$vendor+'-'+$prop);
+ }
+ @else {
+ @return $prop;
+ }
+}
diff --git a/_sass/vendor/bourbon/functions/_unpack.scss b/_sass/vendor/bourbon/functions/_unpack.scss
new file mode 100644
index 0000000..4367935
--- /dev/null
+++ b/_sass/vendor/bourbon/functions/_unpack.scss
@@ -0,0 +1,27 @@
+@charset "UTF-8";
+
+/// Converts shorthand to the 4-value syntax.
+///
+/// @param {List} $shorthand
+///
+/// @example scss - Usage
+/// .element {
+/// margin: unpack(1em 2em);
+/// }
+///
+/// @example css - CSS Output
+/// .element {
+/// margin: 1em 2em 1em 2em;
+/// }
+
+@function unpack($shorthand) {
+ @if length($shorthand) == 1 {
+ @return nth($shorthand, 1) nth($shorthand, 1) nth($shorthand, 1) nth($shorthand, 1);
+ } @else if length($shorthand) == 2 {
+ @return nth($shorthand, 1) nth($shorthand, 2) nth($shorthand, 1) nth($shorthand, 2);
+ } @else if length($shorthand) == 3 {
+ @return nth($shorthand, 1) nth($shorthand, 2) nth($shorthand, 3) nth($shorthand, 2);
+ } @else {
+ @return $shorthand;
+ }
+}
diff --git a/_sass/vendor/bourbon/helpers/_convert-units.scss b/_sass/vendor/bourbon/helpers/_convert-units.scss
new file mode 100644
index 0000000..efae7c3
--- /dev/null
+++ b/_sass/vendor/bourbon/helpers/_convert-units.scss
@@ -0,0 +1,15 @@
+//************************************************************************//
+// Helper function for str-to-num fn.
+// Source: http://sassmeister.com/gist/9647408
+//************************************************************************//
+@function _convert-units($number, $unit) {
+ $strings: "px" "cm" "mm" "%" "ch" "pica" "in" "em" "rem" "pt" "pc" "ex" "vw" "vh" "vmin" "vmax", "deg", "rad", "grad", "turn";
+ $units: 1px 1cm 1mm 1% 1ch 1pica 1in 1em 1rem 1pt 1pc 1ex 1vw 1vh 1vmin 1vmax, 1deg, 1rad, 1grad, 1turn;
+ $index: index($strings, $unit);
+
+ @if not $index {
+ @warn "Unknown unit `#{$unit}`.";
+ @return false;
+ }
+ @return $number * nth($units, $index);
+}
diff --git a/_sass/vendor/bourbon/helpers/_directional-values.scss b/_sass/vendor/bourbon/helpers/_directional-values.scss
new file mode 100644
index 0000000..6ee538d
--- /dev/null
+++ b/_sass/vendor/bourbon/helpers/_directional-values.scss
@@ -0,0 +1,96 @@
+@charset "UTF-8";
+
+/// Directional-property mixins are shorthands for writing properties like the following
+///
+/// @ignore You can also use `false` instead of `null`.
+///
+/// @param {List} $vals
+/// List of directional values
+///
+/// @example scss - Usage
+/// .element {
+/// @include border-style(dotted null);
+/// @include margin(null 0 10px);
+/// }
+///
+/// @example css - CSS Output
+/// .element {
+/// border-bottom-style: dotted;
+/// border-top-style: dotted;
+/// margin-bottom: 10px;
+/// margin-left: 0;
+/// margin-right: 0;
+/// }
+///
+/// @require {function} contains-falsy
+///
+/// @return {List}
+
+@function collapse-directionals($vals) {
+ $output: null;
+
+ $a: nth($vals, 1);
+ $b: if(length($vals) < 2, $a, nth($vals, 2));
+ $c: if(length($vals) < 3, $a, nth($vals, 3));
+ $d: if(length($vals) < 2, $a, nth($vals, if(length($vals) < 4, 2, 4)));
+
+ @if $a == 0 { $a: 0; }
+ @if $b == 0 { $b: 0; }
+ @if $c == 0 { $c: 0; }
+ @if $d == 0 { $d: 0; }
+
+ @if $a == $b and $a == $c and $a == $d { $output: $a; }
+ @else if $a == $c and $b == $d { $output: $a $b; }
+ @else if $b == $d { $output: $a $b $c; }
+ @else { $output: $a $b $c $d; }
+
+ @return $output;
+}
+
+/// Output directional properties, for instance `margin`.
+///
+/// @access private
+///
+/// @param {String} $pre
+/// Prefix to use
+/// @param {String} $suf
+/// Suffix to use
+/// @param {List} $vals
+/// List of values
+///
+/// @require {function} collapse-directionals
+/// @require {function} contains-falsy
+
+@mixin directional-property($pre, $suf, $vals) {
+ // Property Names
+ $top: $pre + "-top" + if($suf, "-#{$suf}", "");
+ $bottom: $pre + "-bottom" + if($suf, "-#{$suf}", "");
+ $left: $pre + "-left" + if($suf, "-#{$suf}", "");
+ $right: $pre + "-right" + if($suf, "-#{$suf}", "");
+ $all: $pre + if($suf, "-#{$suf}", "");
+
+ $vals: collapse-directionals($vals);
+
+ @if contains-falsy($vals) {
+ @if nth($vals, 1) { #{$top}: nth($vals, 1); }
+
+ @if length($vals) == 1 {
+ @if nth($vals, 1) { #{$right}: nth($vals, 1); }
+ } @else {
+ @if nth($vals, 2) { #{$right}: nth($vals, 2); }
+ }
+
+ @if length($vals) == 2 {
+ @if nth($vals, 1) { #{$bottom}: nth($vals, 1); }
+ @if nth($vals, 2) { #{$left}: nth($vals, 2); }
+ } @else if length($vals) == 3 {
+ @if nth($vals, 3) { #{$bottom}: nth($vals, 3); }
+ @if nth($vals, 2) { #{$left}: nth($vals, 2); }
+ } @else if length($vals) == 4 {
+ @if nth($vals, 3) { #{$bottom}: nth($vals, 3); }
+ @if nth($vals, 4) { #{$left}: nth($vals, 4); }
+ }
+ } @else {
+ #{$all}: $vals;
+ }
+}
diff --git a/_sass/vendor/bourbon/helpers/_font-source-declaration.scss b/_sass/vendor/bourbon/helpers/_font-source-declaration.scss
new file mode 100644
index 0000000..cca54f9
--- /dev/null
+++ b/_sass/vendor/bourbon/helpers/_font-source-declaration.scss
@@ -0,0 +1,44 @@
+// Used for creating the source string for fonts using @font-face
+// Reference: http://goo.gl/Ru1bKP
+
+@function font-url-prefixer($asset-pipeline) {
+ @if $asset-pipeline == true {
+ @return font-url;
+ }
+ @else {
+ @return url;
+ }
+}
+
+@function font-source-declaration(
+ $font-family,
+ $file-path,
+ $asset-pipeline,
+ $file-formats,
+ $font-url) {
+
+ $src: null;
+
+ $formats-map: (
+ eot: "#{$file-path}.eot?#iefix" format("embedded-opentype"),
+ woff2: "#{$file-path}.woff2" format("woff2"),
+ woff: "#{$file-path}.woff" format("woff"),
+ ttf: "#{$file-path}.ttf" format("truetype"),
+ svg: "#{$file-path}.svg##{$font-family}" format("svg")
+ );
+
+ @each $key, $values in $formats-map {
+ @if contains($file-formats, $key) {
+ $file-path: nth($values, 1);
+ $font-format: nth($values, 2);
+
+ @if $asset-pipeline == true {
+ $src: append($src, font-url($file-path) $font-format, comma);
+ } @else {
+ $src: append($src, url($file-path) $font-format, comma);
+ }
+ }
+ }
+
+ @return $src;
+}
diff --git a/_sass/vendor/bourbon/helpers/_gradient-positions-parser.scss b/_sass/vendor/bourbon/helpers/_gradient-positions-parser.scss
new file mode 100644
index 0000000..07d30b6
--- /dev/null
+++ b/_sass/vendor/bourbon/helpers/_gradient-positions-parser.scss
@@ -0,0 +1,13 @@
+@function _gradient-positions-parser($gradient-type, $gradient-positions) {
+ @if $gradient-positions
+ and ($gradient-type == linear)
+ and (type-of($gradient-positions) != color) {
+ $gradient-positions: _linear-positions-parser($gradient-positions);
+ }
+ @else if $gradient-positions
+ and ($gradient-type == radial)
+ and (type-of($gradient-positions) != color) {
+ $gradient-positions: _radial-positions-parser($gradient-positions);
+ }
+ @return $gradient-positions;
+}
diff --git a/_sass/vendor/bourbon/helpers/_linear-angle-parser.scss b/_sass/vendor/bourbon/helpers/_linear-angle-parser.scss
new file mode 100644
index 0000000..e0401ed
--- /dev/null
+++ b/_sass/vendor/bourbon/helpers/_linear-angle-parser.scss
@@ -0,0 +1,25 @@
+// Private function for linear-gradient-parser
+@function _linear-angle-parser($image, $first-val, $prefix, $suffix) {
+ $offset: null;
+ $unit-short: str-slice($first-val, str-length($first-val) - 2, str-length($first-val));
+ $unit-long: str-slice($first-val, str-length($first-val) - 3, str-length($first-val));
+
+ @if ($unit-long == "grad") or
+ ($unit-long == "turn") {
+ $offset: if($unit-long == "grad", -100grad * 3, -0.75turn);
+ }
+
+ @else if ($unit-short == "deg") or
+ ($unit-short == "rad") {
+ $offset: if($unit-short == "deg", -90 * 3, 1.6rad);
+ }
+
+ @if $offset {
+ $num: _str-to-num($first-val);
+
+ @return (
+ webkit-image: -webkit- + $prefix + ($offset - $num) + $suffix,
+ spec-image: $image
+ );
+ }
+}
diff --git a/_sass/vendor/bourbon/helpers/_linear-gradient-parser.scss b/_sass/vendor/bourbon/helpers/_linear-gradient-parser.scss
new file mode 100644
index 0000000..3d25931
--- /dev/null
+++ b/_sass/vendor/bourbon/helpers/_linear-gradient-parser.scss
@@ -0,0 +1,41 @@
+@function _linear-gradient-parser($image) {
+ $image: unquote($image);
+ $gradients: ();
+ $start: str-index($image, "(");
+ $end: str-index($image, ",");
+ $first-val: str-slice($image, $start + 1, $end - 1);
+
+ $prefix: str-slice($image, 0, $start);
+ $suffix: str-slice($image, $end, str-length($image));
+
+ $has-multiple-vals: str-index($first-val, " ");
+ $has-single-position: unquote(_position-flipper($first-val) + "");
+ $has-angle: is-number(str-slice($first-val, 0, 0));
+
+ @if $has-multiple-vals {
+ $gradients: _linear-side-corner-parser($image, $first-val, $prefix, $suffix, $has-multiple-vals);
+ }
+
+ @else if $has-single-position != "" {
+ $pos: unquote($has-single-position + "");
+
+ $gradients: (
+ webkit-image: -webkit- + $image,
+ spec-image: $prefix + "to " + $pos + $suffix
+ );
+ }
+
+ @else if $has-angle {
+ // Rotate degree for webkit
+ $gradients: _linear-angle-parser($image, $first-val, $prefix, $suffix);
+ }
+
+ @else {
+ $gradients: (
+ webkit-image: -webkit- + $image,
+ spec-image: $image
+ );
+ }
+
+ @return $gradients;
+}
diff --git a/_sass/vendor/bourbon/helpers/_linear-positions-parser.scss b/_sass/vendor/bourbon/helpers/_linear-positions-parser.scss
new file mode 100644
index 0000000..6d5cb6e
--- /dev/null
+++ b/_sass/vendor/bourbon/helpers/_linear-positions-parser.scss
@@ -0,0 +1,61 @@
+@function _linear-positions-parser($pos) {
+ $type: type-of(nth($pos, 1));
+ $spec: null;
+ $degree: null;
+ $side: null;
+ $corner: null;
+ $length: length($pos);
+ // Parse Side and corner positions
+ @if ($length > 1) {
+ @if nth($pos, 1) == "to" { // Newer syntax
+ $side: nth($pos, 2);
+
+ @if $length == 2 { // eg. to top
+ // Swap for backwards compatability
+ $degree: _position-flipper(nth($pos, 2));
+ }
+ @else if $length == 3 { // eg. to top left
+ $corner: nth($pos, 3);
+ }
+ }
+ @else if $length == 2 { // Older syntax ("top left")
+ $side: _position-flipper(nth($pos, 1));
+ $corner: _position-flipper(nth($pos, 2));
+ }
+
+ @if ("#{$side} #{$corner}" == "left top") or ("#{$side} #{$corner}" == "top left") {
+ $degree: _position-flipper(#{$side}) _position-flipper(#{$corner});
+ }
+ @else if ("#{$side} #{$corner}" == "right top") or ("#{$side} #{$corner}" == "top right") {
+ $degree: _position-flipper(#{$side}) _position-flipper(#{$corner});
+ }
+ @else if ("#{$side} #{$corner}" == "right bottom") or ("#{$side} #{$corner}" == "bottom right") {
+ $degree: _position-flipper(#{$side}) _position-flipper(#{$corner});
+ }
+ @else if ("#{$side} #{$corner}" == "left bottom") or ("#{$side} #{$corner}" == "bottom left") {
+ $degree: _position-flipper(#{$side}) _position-flipper(#{$corner});
+ }
+ $spec: to $side $corner;
+ }
+ @else if $length == 1 {
+ // Swap for backwards compatability
+ @if $type == string {
+ $degree: $pos;
+ $spec: to _position-flipper($pos);
+ }
+ @else {
+ $degree: -270 - $pos; //rotate the gradient opposite from spec
+ $spec: $pos;
+ }
+ }
+ $degree: unquote($degree + ",");
+ $spec: unquote($spec + ",");
+ @return $degree $spec;
+}
+
+@function _position-flipper($pos) {
+ @return if($pos == left, right, null)
+ if($pos == right, left, null)
+ if($pos == top, bottom, null)
+ if($pos == bottom, top, null);
+}
diff --git a/_sass/vendor/bourbon/helpers/_linear-side-corner-parser.scss b/_sass/vendor/bourbon/helpers/_linear-side-corner-parser.scss
new file mode 100644
index 0000000..86ad88f
--- /dev/null
+++ b/_sass/vendor/bourbon/helpers/_linear-side-corner-parser.scss
@@ -0,0 +1,31 @@
+// Private function for linear-gradient-parser
+@function _linear-side-corner-parser($image, $first-val, $prefix, $suffix, $has-multiple-vals) {
+ $val-1: str-slice($first-val, 0, $has-multiple-vals - 1 );
+ $val-2: str-slice($first-val, $has-multiple-vals + 1, str-length($first-val));
+ $val-3: null;
+ $has-val-3: str-index($val-2, " ");
+
+ @if $has-val-3 {
+ $val-3: str-slice($val-2, $has-val-3 + 1, str-length($val-2));
+ $val-2: str-slice($val-2, 0, $has-val-3 - 1);
+ }
+
+ $pos: _position-flipper($val-1) _position-flipper($val-2) _position-flipper($val-3);
+ $pos: unquote($pos + "");
+
+ // Use old spec for webkit
+ @if $val-1 == "to" {
+ @return (
+ webkit-image: -webkit- + $prefix + $pos + $suffix,
+ spec-image: $image
+ );
+ }
+
+ // Bring the code up to spec
+ @else {
+ @return (
+ webkit-image: -webkit- + $image,
+ spec-image: $prefix + "to " + $pos + $suffix
+ );
+ }
+}
diff --git a/_sass/vendor/bourbon/helpers/_radial-arg-parser.scss b/_sass/vendor/bourbon/helpers/_radial-arg-parser.scss
new file mode 100644
index 0000000..56c6030
--- /dev/null
+++ b/_sass/vendor/bourbon/helpers/_radial-arg-parser.scss
@@ -0,0 +1,69 @@
+@function _radial-arg-parser($g1, $g2, $pos, $shape-size) {
+ @each $value in $g1, $g2 {
+ $first-val: nth($value, 1);
+ $pos-type: type-of($first-val);
+ $spec-at-index: null;
+
+ // Determine if spec was passed to mixin
+ @if type-of($value) == list {
+ $spec-at-index: if(index($value, at), index($value, at), false);
+ }
+ @if $spec-at-index {
+ @if $spec-at-index > 1 {
+ @for $i from 1 through ($spec-at-index - 1) {
+ $shape-size: $shape-size nth($value, $i);
+ }
+ @for $i from ($spec-at-index + 1) through length($value) {
+ $pos: $pos nth($value, $i);
+ }
+ }
+ @else if $spec-at-index == 1 {
+ @for $i from ($spec-at-index + 1) through length($value) {
+ $pos: $pos nth($value, $i);
+ }
+ }
+ $g1: null;
+ }
+
+ // If not spec calculate correct values
+ @else {
+ @if ($pos-type != color) or ($first-val != "transparent") {
+ @if ($pos-type == number)
+ or ($first-val == "center")
+ or ($first-val == "top")
+ or ($first-val == "right")
+ or ($first-val == "bottom")
+ or ($first-val == "left") {
+
+ $pos: $value;
+
+ @if $pos == $g1 {
+ $g1: null;
+ }
+ }
+
+ @else if
+ ($first-val == "ellipse")
+ or ($first-val == "circle")
+ or ($first-val == "closest-side")
+ or ($first-val == "closest-corner")
+ or ($first-val == "farthest-side")
+ or ($first-val == "farthest-corner")
+ or ($first-val == "contain")
+ or ($first-val == "cover") {
+
+ $shape-size: $value;
+
+ @if $value == $g1 {
+ $g1: null;
+ }
+
+ @else if $value == $g2 {
+ $g2: null;
+ }
+ }
+ }
+ }
+ }
+ @return $g1, $g2, $pos, $shape-size;
+}
diff --git a/_sass/vendor/bourbon/helpers/_radial-gradient-parser.scss b/_sass/vendor/bourbon/helpers/_radial-gradient-parser.scss
new file mode 100644
index 0000000..1895db0
--- /dev/null
+++ b/_sass/vendor/bourbon/helpers/_radial-gradient-parser.scss
@@ -0,0 +1,50 @@
+@function _radial-gradient-parser($image) {
+ $image: unquote($image);
+ $gradients: ();
+ $start: str-index($image, "(");
+ $end: str-index($image, ",");
+ $first-val: str-slice($image, $start + 1, $end - 1);
+
+ $prefix: str-slice($image, 0, $start);
+ $suffix: str-slice($image, $end, str-length($image));
+
+ $is-spec-syntax: str-index($first-val, "at");
+
+ @if $is-spec-syntax and $is-spec-syntax > 1 {
+ $keyword: str-slice($first-val, 1, $is-spec-syntax - 2);
+ $pos: str-slice($first-val, $is-spec-syntax + 3, str-length($first-val));
+ $pos: append($pos, $keyword, comma);
+
+ $gradients: (
+ webkit-image: -webkit- + $prefix + $pos + $suffix,
+ spec-image: $image
+ );
+ }
+
+ @else if $is-spec-syntax == 1 {
+ $pos: str-slice($first-val, $is-spec-syntax + 3, str-length($first-val));
+
+ $gradients: (
+ webkit-image: -webkit- + $prefix + $pos + $suffix,
+ spec-image: $image
+ );
+ }
+
+ @else if str-index($image, "cover") or str-index($image, "contain") {
+ @warn "Radial-gradient needs to be updated to conform to latest spec.";
+
+ $gradients: (
+ webkit-image: null,
+ spec-image: $image
+ );
+ }
+
+ @else {
+ $gradients: (
+ webkit-image: -webkit- + $image,
+ spec-image: $image
+ );
+ }
+
+ @return $gradients;
+}
diff --git a/_sass/vendor/bourbon/helpers/_radial-positions-parser.scss b/_sass/vendor/bourbon/helpers/_radial-positions-parser.scss
new file mode 100644
index 0000000..3c552ad
--- /dev/null
+++ b/_sass/vendor/bourbon/helpers/_radial-positions-parser.scss
@@ -0,0 +1,18 @@
+@function _radial-positions-parser($gradient-pos) {
+ $shape-size: nth($gradient-pos, 1);
+ $pos: nth($gradient-pos, 2);
+ $shape-size-spec: _shape-size-stripper($shape-size);
+
+ $pre-spec: unquote(if($pos, "#{$pos}, ", null))
+ unquote(if($shape-size, "#{$shape-size},", null));
+ $pos-spec: if($pos, "at #{$pos}", null);
+
+ $spec: "#{$shape-size-spec} #{$pos-spec}";
+
+ // Add comma
+ @if ($spec != " ") {
+ $spec: "#{$spec},";
+ }
+
+ @return $pre-spec $spec;
+}
diff --git a/_sass/vendor/bourbon/helpers/_render-gradients.scss b/_sass/vendor/bourbon/helpers/_render-gradients.scss
new file mode 100644
index 0000000..5765676
--- /dev/null
+++ b/_sass/vendor/bourbon/helpers/_render-gradients.scss
@@ -0,0 +1,26 @@
+// User for linear and radial gradients within background-image or border-image properties
+
+@function _render-gradients($gradient-positions, $gradients, $gradient-type, $vendor: false) {
+ $pre-spec: null;
+ $spec: null;
+ $vendor-gradients: null;
+ @if $gradient-type == linear {
+ @if $gradient-positions {
+ $pre-spec: nth($gradient-positions, 1);
+ $spec: nth($gradient-positions, 2);
+ }
+ }
+ @else if $gradient-type == radial {
+ $pre-spec: nth($gradient-positions, 1);
+ $spec: nth($gradient-positions, 2);
+ }
+
+ @if $vendor {
+ $vendor-gradients: -#{$vendor}-#{$gradient-type}-gradient(#{$pre-spec} $gradients);
+ }
+ @else if $vendor == false {
+ $vendor-gradients: "#{$gradient-type}-gradient(#{$spec} #{$gradients})";
+ $vendor-gradients: unquote($vendor-gradients);
+ }
+ @return $vendor-gradients;
+}
diff --git a/_sass/vendor/bourbon/helpers/_shape-size-stripper.scss b/_sass/vendor/bourbon/helpers/_shape-size-stripper.scss
new file mode 100644
index 0000000..ee5eda4
--- /dev/null
+++ b/_sass/vendor/bourbon/helpers/_shape-size-stripper.scss
@@ -0,0 +1,10 @@
+@function _shape-size-stripper($shape-size) {
+ $shape-size-spec: null;
+ @each $value in $shape-size {
+ @if ($value == "cover") or ($value == "contain") {
+ $value: null;
+ }
+ $shape-size-spec: "#{$shape-size-spec} #{$value}";
+ }
+ @return $shape-size-spec;
+}
diff --git a/_sass/vendor/bourbon/helpers/_str-to-num.scss b/_sass/vendor/bourbon/helpers/_str-to-num.scss
new file mode 100644
index 0000000..3ef1d87
--- /dev/null
+++ b/_sass/vendor/bourbon/helpers/_str-to-num.scss
@@ -0,0 +1,50 @@
+//************************************************************************//
+// Helper function for linear/radial-gradient-parsers.
+// Source: http://sassmeister.com/gist/9647408
+//************************************************************************//
+@function _str-to-num($string) {
+ // Matrices
+ $strings: "0" "1" "2" "3" "4" "5" "6" "7" "8" "9";
+ $numbers: 0 1 2 3 4 5 6 7 8 9;
+
+ // Result
+ $result: 0;
+ $divider: 0;
+ $minus: false;
+
+ // Looping through all characters
+ @for $i from 1 through str-length($string) {
+ $character: str-slice($string, $i, $i);
+ $index: index($strings, $character);
+
+ @if $character == "-" {
+ $minus: true;
+ }
+
+ @else if $character == "." {
+ $divider: 1;
+ }
+
+ @else {
+ @if not $index {
+ $result: if($minus, $result * -1, $result);
+ @return _convert-units($result, str-slice($string, $i));
+ }
+
+ $number: nth($numbers, $index);
+
+ @if $divider == 0 {
+ $result: $result * 10;
+ }
+
+ @else {
+ // Move the decimal dot to the left
+ $divider: $divider * 10;
+ $number: $number / $divider;
+ }
+
+ $result: $result + $number;
+ }
+ }
+ @return if($minus, $result * -1, $result);
+}
diff --git a/_sass/vendor/bourbon/settings/_asset-pipeline.scss b/_sass/vendor/bourbon/settings/_asset-pipeline.scss
new file mode 100644
index 0000000..4c6afc5
--- /dev/null
+++ b/_sass/vendor/bourbon/settings/_asset-pipeline.scss
@@ -0,0 +1,7 @@
+@charset "UTF-8";
+
+/// A global setting to enable or disable the `$asset-pipeline` variable for all functions that accept it.
+///
+/// @type Bool
+
+$asset-pipeline: false !default;
diff --git a/_sass/vendor/bourbon/settings/_prefixer.scss b/_sass/vendor/bourbon/settings/_prefixer.scss
new file mode 100644
index 0000000..8c39051
--- /dev/null
+++ b/_sass/vendor/bourbon/settings/_prefixer.scss
@@ -0,0 +1,9 @@
+@charset "UTF-8";
+
+/// Global variables to enable or disable vendor prefixes
+
+$prefix-for-webkit: true !default;
+$prefix-for-mozilla: true !default;
+$prefix-for-microsoft: true !default;
+$prefix-for-opera: true !default;
+$prefix-for-spec: true !default;
diff --git a/_sass/vendor/bourbon/settings/_px-to-em.scss b/_sass/vendor/bourbon/settings/_px-to-em.scss
new file mode 100644
index 0000000..f2f9a3e
--- /dev/null
+++ b/_sass/vendor/bourbon/settings/_px-to-em.scss
@@ -0,0 +1 @@
+$em-base: 16px !default;
diff --git a/_sass/vendor/neat/_neat-helpers.scss b/_sass/vendor/neat/_neat-helpers.scss
new file mode 100644
index 0000000..9c182d2
--- /dev/null
+++ b/_sass/vendor/neat/_neat-helpers.scss
@@ -0,0 +1,8 @@
+// Functions
+@import "functions/private";
+@import "functions/new-breakpoint";
+
+// Settings
+@import "settings/grid";
+@import "settings/visual-grid";
+@import "settings/disable-warnings";
diff --git a/_sass/vendor/neat/_neat.scss b/_sass/vendor/neat/_neat.scss
new file mode 100644
index 0000000..9d9477d
--- /dev/null
+++ b/_sass/vendor/neat/_neat.scss
@@ -0,0 +1,23 @@
+// Neat 1.7.1
+// http://neat.bourbon.io
+// Copyright 2012-2015 thoughtbot, inc.
+// MIT License
+
+// Helpers
+@import "neat-helpers";
+
+// Grid
+@import "grid/private";
+@import "grid/box-sizing";
+@import "grid/omega";
+@import "grid/outer-container";
+@import "grid/span-columns";
+@import "grid/row";
+@import "grid/shift";
+@import "grid/pad";
+@import "grid/fill-parent";
+@import "grid/media";
+@import "grid/to-deprecate";
+@import "grid/visual-grid";
+@import "grid/display-context";
+@import "grid/direction-context";
diff --git a/_sass/vendor/neat/functions/_new-breakpoint.scss b/_sass/vendor/neat/functions/_new-breakpoint.scss
new file mode 100644
index 0000000..1bebad5
--- /dev/null
+++ b/_sass/vendor/neat/functions/_new-breakpoint.scss
@@ -0,0 +1,49 @@
+@charset "UTF-8";
+
+/// Returns a media context (media query / grid context) that can be stored in a variable and passed to `media()` as a single-keyword argument. Media contexts defined using `new-breakpoint` are used by the visual grid, as long as they are defined before importing Neat.
+///
+/// @param {List} $query
+/// A list of media query features and values. Each `$feature` should have a corresponding `$value`.
+///
+/// If there is only a single `$value` in `$query`, `$default-feature` is going to be used.
+///
+/// The number of total columns in the grid can be set by passing `$columns` at the end of the list (overrides `$total-columns`). For a list of valid values for `$feature`, click [here](http://www.w3.org/TR/css3-mediaqueries/#media1).
+///
+/// @param {Number (unitless)} $total-columns ($grid-columns)
+/// - Number of columns to use in the new grid context. Can be set as a shorthand in the first parameter.
+///
+/// @example scss - Usage
+/// $mobile: new-breakpoint(max-width 480px 4);
+///
+/// .element {
+/// @include media($mobile) {
+/// @include span-columns(4);
+/// }
+/// }
+///
+/// @example css - CSS Output
+/// @media screen and (max-width: 480px) {
+/// .element {
+/// display: block;
+/// float: left;
+/// margin-right: 7.42297%;
+/// width: 100%;
+/// }
+/// .element:last-child {
+/// margin-right: 0;
+/// }
+/// }
+
+@function new-breakpoint($query: $feature $value $columns, $total-columns: $grid-columns) {
+ @if length($query) == 1 {
+ $query: $default-feature nth($query, 1) $total-columns;
+ } @else if is-even(length($query)) {
+ $query: append($query, $total-columns);
+ }
+
+ @if is-not(belongs-to($query, $visual-grid-breakpoints)) {
+ $visual-grid-breakpoints: append($visual-grid-breakpoints, $query, comma) !global;
+ }
+
+ @return $query;
+}
diff --git a/_sass/vendor/neat/functions/_private.scss b/_sass/vendor/neat/functions/_private.scss
new file mode 100644
index 0000000..872d4dc
--- /dev/null
+++ b/_sass/vendor/neat/functions/_private.scss
@@ -0,0 +1,114 @@
+// Not function for Libsass compatibility
+// https://github.com/sass/libsass/issues/368
+@function is-not($value) {
+ @return if($value, false, true);
+}
+
+// Checks if a number is even
+@function is-even($int) {
+ @return $int % 2 == 0;
+}
+
+// Checks if an element belongs to a list or not
+@function belongs-to($tested-item, $list) {
+ @return is-not(not-belongs-to($tested-item, $list));
+}
+
+@function not-belongs-to($tested-item, $list) {
+ @return is-not(index($list, $tested-item));
+}
+
+// Contains display value
+@function contains-display-value($query) {
+ @return belongs-to(table, $query)
+ or belongs-to(block, $query)
+ or belongs-to(inline-block, $query)
+ or belongs-to(inline, $query);
+}
+
+// Parses the first argument of span-columns()
+@function container-span($span: $span) {
+ @if length($span) == 3 {
+ $container-columns: nth($span, 3);
+ @return $container-columns;
+ } @else if length($span) == 2 {
+ $container-columns: nth($span, 2);
+ @return $container-columns;
+ }
+
+ @return $grid-columns;
+}
+
+@function container-shift($shift: $shift) {
+ $parent-columns: $grid-columns !default !global;
+
+ @if length($shift) == 3 {
+ $container-columns: nth($shift, 3);
+ @return $container-columns;
+ } @else if length($shift) == 2 {
+ $container-columns: nth($shift, 2);
+ @return $container-columns;
+ }
+
+ @return $parent-columns;
+}
+
+// Generates a striped background
+@function gradient-stops($grid-columns, $color: $visual-grid-color) {
+ $transparent: transparent;
+
+ $column-width: flex-grid(1, $grid-columns);
+ $gutter-width: flex-gutter($grid-columns);
+ $column-offset: $column-width;
+
+ $values: ($transparent 0, $color 0);
+
+ @for $i from 1 to $grid-columns*2 {
+ @if is-even($i) {
+ $values: append($values, $transparent $column-offset, comma);
+ $values: append($values, $color $column-offset, comma);
+ $column-offset: $column-offset + $column-width;
+ } @else {
+ $values: append($values, $color $column-offset, comma);
+ $values: append($values, $transparent $column-offset, comma);
+ $column-offset: $column-offset + $gutter-width;
+ }
+ }
+
+ @return $values;
+}
+
+// Layout direction
+@function get-direction($layout, $default) {
+ $direction: null;
+
+ @if to-upper-case($layout) == "LTR" or to-upper-case($layout) == "RTL" {
+ $direction: direction-from-layout($layout);
+ } @else {
+ $direction: direction-from-layout($default);
+ }
+
+ @return $direction;
+}
+
+@function direction-from-layout($layout) {
+ $direction: null;
+
+ @if to-upper-case($layout) == "LTR" {
+ $direction: right;
+ } @else {
+ $direction: left;
+ }
+
+ @return $direction;
+}
+
+@function get-opposite-direction($direction) {
+ $opposite-direction: left;
+
+ @if $direction == "left" {
+ $opposite-direction: right;
+ }
+
+ @return $opposite-direction;
+}
diff --git a/_sass/vendor/neat/grid/_box-sizing.scss b/_sass/vendor/neat/grid/_box-sizing.scss
new file mode 100644
index 0000000..9ce3219
--- /dev/null
+++ b/_sass/vendor/neat/grid/_box-sizing.scss
@@ -0,0 +1,15 @@
+@charset "UTF-8";
+
+@if $border-box-sizing == true {
+ html { // http://bit.ly/1qk2tVR
+ @include box-sizing(border-box);
+ }
+
+ * {
+ &,
+ &:before,
+ &:after {
+ @include box-sizing(inherit);
+ }
+ }
+}
diff --git a/_sass/vendor/neat/grid/_direction-context.scss b/_sass/vendor/neat/grid/_direction-context.scss
new file mode 100644
index 0000000..99c0faf
--- /dev/null
+++ b/_sass/vendor/neat/grid/_direction-context.scss
@@ -0,0 +1,33 @@
+@charset "UTF-8";
+
+/// Changes the direction property used by other mixins called in the code block argument.
+///
+/// @param {String} $direction (left-to-right)
+/// Layout direction to be used within the block. Can be `left-to-right` or `right-to-left`.
+///
+/// @example scss - Usage
+/// @include direction-context(right-to-left) {
+/// .right-to-left-block {
+/// @include span-columns(6);
+/// }
+/// }
+///
+/// @example css - CSS Output
+/// .right-to-left-block {
+/// float: right;
+/// ...
+/// }
+
+@mixin direction-context($direction: left-to-right) {
+ $scope-direction: $layout-direction;
+
+ @if to-lower-case($direction) == "left-to-right" {
+ $layout-direction: LTR !global;
+ } @else if to-lower-case($direction) == "right-to-left" {
+ $layout-direction: RTL !global;
+ }
+
+ @content;
+
+ $layout-direction: $scope-direction !global;
+}
diff --git a/_sass/vendor/neat/grid/_display-context.scss b/_sass/vendor/neat/grid/_display-context.scss
new file mode 100644
index 0000000..6970a27
--- /dev/null
+++ b/_sass/vendor/neat/grid/_display-context.scss
@@ -0,0 +1,28 @@
+@charset "UTF-8";
+
+/// Changes the display property used by other mixins called in the code block argument.
+///
+/// @param {String} $display (block)
+/// Display value to be used within the block. Can be `table` or `block`.
+///
+/// @example scss
+/// @include display-context(table) {
+/// .display-table {
+/// @include span-columns(6);
+/// }
+/// }
+///
+/// @example css
+/// .display-table {
+/// display: table-cell;
+/// ...
+/// }
+
+@mixin display-context($display: block) {
+ $scope-display: $container-display-table;
+ $container-display-table: $display == table !global;
+
+ @content;
+
+ $container-display-table: $scope-display !global;
+}
diff --git a/_sass/vendor/neat/grid/_fill-parent.scss b/_sass/vendor/neat/grid/_fill-parent.scss
new file mode 100644
index 0000000..93fdacf
--- /dev/null
+++ b/_sass/vendor/neat/grid/_fill-parent.scss
@@ -0,0 +1,24 @@
+@charset "UTF-8";
+
+/// Forces the element to fill its parent container.
+///
+/// @example scss - Usage
+/// .element {
+/// @include fill-parent;
+/// }
+///
+/// @example css - CSS Output
+/// .element {
+/// width: 100%;
+/// -webkit-box-sizing: border-box;
+/// -moz-box-sizing: border-box;
+/// box-sizing: border-box;
+/// }
+
+@mixin fill-parent() {
+ width: 100%;
+
+ @if $border-box-sizing == false {
+ @include box-sizing(border-box);
+ }
+}
diff --git a/_sass/vendor/neat/grid/_media.scss b/_sass/vendor/neat/grid/_media.scss
new file mode 100644
index 0000000..2c23fb6
--- /dev/null
+++ b/_sass/vendor/neat/grid/_media.scss
@@ -0,0 +1,92 @@
+@charset "UTF-8";
+
+/// Outputs a media-query block with an optional grid context (the total number of columns used in the grid).
+///
+/// @param {List} $query
+/// A list of media query features and values, where each `$feature` should have a corresponding `$value`.
+/// For a list of valid values for `$feature`, click [here](http://www.w3.org/TR/css3-mediaqueries/#media1).
+///
+/// If there is only a single `$value` in `$query`, `$default-feature` is going to be used.
+///
+/// The number of total columns in the grid can be set by passing `$columns` at the end of the list (overrides `$total-columns`).
+///
+///
+/// @param {Number (unitless)} $total-columns ($grid-columns)
+/// - Number of columns to use in the new grid context. Can be set as a shorthand in the first parameter.
+///
+/// @example scss - Usage
+/// .responsive-element {
+/// @include media(769px) {
+/// @include span-columns(6);
+/// }
+/// }
+///
+/// .new-context-element {
+/// @include media(min-width 320px max-width 480px, 6) {
+/// @include span-columns(6);
+/// }
+/// }
+///
+/// @example css - CSS Output
+/// @media screen and (min-width: 769px) {
+/// .responsive-element {
+/// display: block;
+/// float: left;
+/// margin-right: 2.35765%;
+/// width: 48.82117%;
+/// }
+///
+/// .responsive-element:last-child {
+/// margin-right: 0;
+/// }
+/// }
+///
+/// @media screen and (min-width: 320px) and (max-width: 480px) {
+/// .new-context-element {
+/// display: block;
+/// float: left;
+/// margin-right: 4.82916%;
+/// width: 100%;
+/// }
+///
+/// .new-context-element:last-child {
+/// margin-right: 0;
+/// }
+/// }
+
+@mixin media($query: $feature $value $columns, $total-columns: $grid-columns) {
+ @if length($query) == 1 {
+ @media screen and ($default-feature: nth($query, 1)) {
+ $default-grid-columns: $grid-columns;
+ $grid-columns: $total-columns !global;
+ @content;
+ $grid-columns: $default-grid-columns !global;
+ }
+ } @else {
+ $loop-to: length($query);
+ $media-query: "screen and ";
+ $default-grid-columns: $grid-columns;
+ $grid-columns: $total-columns !global;
+
+ @if is-not(is-even(length($query))) {
+ $grid-columns: nth($query, $loop-to) !global;
+ $loop-to: $loop-to - 1;
+ }
+
+ $i: 1;
+ @while $i <= $loop-to {
+ $media-query: $media-query + "(" + nth($query, $i) + ": " + nth($query, $i + 1) + ") ";
+
+ @if ($i + 1) != $loop-to {
+ $media-query: $media-query + "and ";
+ }
+
+ $i: $i + 2;
+ }
+
+ @media #{$media-query} {
+ @content;
+ $grid-columns: $default-grid-columns !global;
+ }
+ }
+}
diff --git a/_sass/vendor/neat/grid/_omega.scss b/_sass/vendor/neat/grid/_omega.scss
new file mode 100644
index 0000000..075c2ee
--- /dev/null
+++ b/_sass/vendor/neat/grid/_omega.scss
@@ -0,0 +1,87 @@
+@charset "UTF-8";
+
+/// Removes the element's gutter margin, regardless of its position in the grid hierarchy or display property. It can target a specific element, or every `nth-child` occurrence. Works only with `block` layouts.
+///
+/// @param {List} $query (block)
+/// List of arguments. Supported arguments are `nth-child` selectors (targets a specific pseudo element) and `auto` (targets `last-child`).
+///
+/// When passed an `nth-child` argument of type `*n` with `block` display, the omega mixin automatically adds a clear to the `*n+1` th element. Note that composite arguments such as `2n+1` do not support this feature.
+///
+/// **Deprecation warning**: The omega mixin will no longer take a `$direction` argument. To change the layout direction, use `row($direction)` or set `$default-layout-direction` instead.
+///
+/// @example scss - Usage
+/// .element {
+/// @include omega;
+/// }
+///
+/// .nth-element {
+/// @include omega(4n);
+/// }
+///
+/// @example css - CSS Output
+/// .element {
+/// margin-right: 0;
+/// }
+///
+/// .nth-element:nth-child(4n) {
+/// margin-right: 0;
+/// }
+///
+/// .nth-element:nth-child(4n+1) {
+/// clear: left;
+/// }
+
+@mixin omega($query: block, $direction: default) {
+ $table: belongs-to(table, $query);
+ $auto: belongs-to(auto, $query);
+
+ @if $direction != default {
+ @include -neat-warn("The omega mixin will no longer take a $direction argument. To change the layout direction, use the direction(){...} mixin.");
+ } @else {
+ $direction: get-direction($layout-direction, $default-layout-direction);
+ }
+
+ @if $table {
+ @include -neat-warn("The omega mixin no longer removes padding in table layouts.");
+ }
+
+ @if length($query) == 1 {
+ @if $auto {
+ &:last-child {
+ margin-#{$direction}: 0;
+ }
+ }
+
+ @else if contains-display-value($query) and $table == false {
+ margin-#{$direction}: 0;
+ }
+
+ @else {
+ @include nth-child($query, $direction);
+ }
+ } @else if length($query) == 2 {
+ @if $auto {
+ &:last-child {
+ margin-#{$direction}: 0;
+ }
+ } @else {
+ @include nth-child(nth($query, 1), $direction);
+ }
+ } @else {
+ @include -neat-warn("Too many arguments passed to the omega() mixin.");
+ }
+}
+
+@mixin nth-child($query, $direction) {
+ $opposite-direction: get-opposite-direction($direction);
+
+ &:nth-child(#{$query}) {
+ margin-#{$direction}: 0;
+ }
+
+ @if type-of($query) == number and unit($query) == "n" {
+ &:nth-child(#{$query}+1) {
+ clear: $opposite-direction;
+ }
+ }
+}
diff --git a/_sass/vendor/neat/grid/_outer-container.scss b/_sass/vendor/neat/grid/_outer-container.scss
new file mode 100644
index 0000000..8ed32e4
--- /dev/null
+++ b/_sass/vendor/neat/grid/_outer-container.scss
@@ -0,0 +1,38 @@
+@charset "UTF-8";
+
+/// Makes an element a outer container by centring it in the viewport, clearing its floats, and setting its `max-width`.
+/// Although optional, using `outer-container` is recommended. The mixin can be called on more than one element per page, as long as they are not nested.
+///
+/// @param {Number (unit)} $local-max-width ($max-width)
+/// Max width to be applied to the element. Can be a percentage or a measure.
+///
+/// @example scss - Usage
+/// .element {
+/// @include outer-container(100%);
+/// }
+///
+/// @example css - CSS Output
+/// .element {
+/// *zoom: 1;
+/// max-width: 100%;
+/// margin-left: auto;
+/// margin-right: auto;
+/// }
+///
+/// .element:before, .element:after {
+/// content: " ";
+/// display: table;
+/// }
+///
+/// .element:after {
+/// clear: both;
+/// }
+
+@mixin outer-container($local-max-width: $max-width) {
+ @include clearfix;
+ max-width: $local-max-width;
+ margin: {
+ left: auto;
+ right: auto;
+ }
+}
diff --git a/_sass/vendor/neat/grid/_pad.scss b/_sass/vendor/neat/grid/_pad.scss
new file mode 100644
index 0000000..77fd338
--- /dev/null
+++ b/_sass/vendor/neat/grid/_pad.scss
@@ -0,0 +1,25 @@
+@charset "UTF-8";
+
+/// Adds padding to the element.
+///
+/// @param {List} $padding (flex-gutter())
+/// A list of padding value(s) to use. Passing `default` in the list will result in using the gutter width as a padding value.
+///
+/// @example scss - Usage
+/// .element {
+/// @include pad(30px -20px 10px default);
+/// }
+///
+/// @example css - CSS Output
+/// .element {
+/// padding: 30px -20px 10px 2.35765%;
+/// }
+
+@mixin pad($padding: flex-gutter()) {
+ $padding-list: null;
+ @each $value in $padding {
+ $value: if($value == 'default', flex-gutter(), $value);
+ $padding-list: join($padding-list, $value);
+ }
+ padding: $padding-list;
+}
diff --git a/_sass/vendor/neat/grid/_private.scss b/_sass/vendor/neat/grid/_private.scss
new file mode 100644
index 0000000..4c4e18c
--- /dev/null
+++ b/_sass/vendor/neat/grid/_private.scss
@@ -0,0 +1,35 @@
+$parent-columns: $grid-columns !default;
+$fg-column: $column;
+$fg-gutter: $gutter;
+$fg-max-columns: $grid-columns;
+$container-display-table: false !default;
+$layout-direction: LTR !default;
+
+@function flex-grid($columns, $container-columns: $fg-max-columns) {
+ $width: $columns * $fg-column + ($columns - 1) * $fg-gutter;
+ $container-width: $container-columns * $fg-column + ($container-columns - 1) * $fg-gutter;
+ @return percentage($width / $container-width);
+}
+
+@function flex-gutter($container-columns: $fg-max-columns, $gutter: $fg-gutter) {
+ $container-width: $container-columns * $fg-column + ($container-columns - 1) * $fg-gutter;
+ @return percentage($gutter / $container-width);
+}
+
+@function grid-width($n) {
+ @return $n * $gw-column + ($n - 1) * $gw-gutter;
+}
+
+@function get-parent-columns($columns) {
+ @if $columns != $grid-columns {
+ $parent-columns: $columns !global;
+ } @else {
+ $parent-columns: $grid-columns !global;
+ }
+
+ @return $parent-columns;
+}
+
+@function is-display-table($container-is-display-table, $display) {
+ @return $container-is-display-table == true or $display == table;
+}
diff --git a/_sass/vendor/neat/grid/_row.scss b/_sass/vendor/neat/grid/_row.scss
new file mode 100644
index 0000000..e7a6549
--- /dev/null
+++ b/_sass/vendor/neat/grid/_row.scss
@@ -0,0 +1,52 @@
+@charset "UTF-8";
+
+/// Designates the element as a row of columns in the grid layout. It clears the floats on the element and sets its display property. Rows can't be nested, but there can be more than one row element—with different display properties—per layout.
+///
+/// @param {String} $display (default)
+/// Sets the display property of the element and the display context that will be used by its children. Can be `block` or `table`.
+///
+/// @param {String} $direction ($default-layout-direction)
+/// Sets the layout direction. Can be `LTR` (left-to-right) or `RTL` (right-to-left).
+///
+/// @example scss - Usage
+/// .element {
+/// @include row();
+/// }
+///
+/// @example css - CSS Output
+/// .element {
+/// *zoom: 1;
+/// display: block;
+/// }
+///
+/// .element:before, .element:after {
+/// content: " ";
+/// display: table;
+/// }
+///
+/// .element:after {
+/// clear: both;
+/// }
+
+@mixin row($display: default, $direction: $default-layout-direction) {
+ @if $direction != $default-layout-direction {
+ @include -neat-warn("The $direction argument will be deprecated in future versions in favor of the direction(){...} mixin.");
+ }
+
+ $layout-direction: $direction !global;
+
+ @if $display != default {
+ @include -neat-warn("The $display argument will be deprecated in future versions in favor of the display(){...} mixin.");
+ }
+
+ @if $display == table {
+ display: table;
+ @include fill-parent;
+ table-layout: fixed;
+ $container-display-table: true !global;
+ } @else {
+ @include clearfix;
+ display: block;
+ $container-display-table: false !global;
+ }
+}
diff --git a/_sass/vendor/neat/grid/_shift.scss b/_sass/vendor/neat/grid/_shift.scss
new file mode 100644
index 0000000..24a267b
--- /dev/null
+++ b/_sass/vendor/neat/grid/_shift.scss
@@ -0,0 +1,50 @@
+@charset "UTF-8";
+
+/// Translates an element horizontally by a number of columns. Positive arguments shift the element to the active layout direction, while negative ones shift it to the opposite direction.
+///
+/// @param {Number (unitless)} $n-columns (1)
+/// Number of columns by which the element shifts.
+///
+/// @example scss - Usage
+/// .element {
+/// @include shift(-3);
+/// }
+///
+/// @example css - CSS output
+/// .element {
+/// margin-left: -25.58941%;
+/// }
+
+@mixin shift($n-columns: 1) {
+ @include shift-in-context($n-columns);
+}
+
+/// Translates an element horizontally by a number of columns, in a specific nesting context.
+///
+/// @param {List} $shift
+/// A list containing the number of columns to shift (`$columns`) and the number of columns of the parent element (`$container-columns`).
+///
+/// The two values can be separated with any string such as `of`, `/`, etc.
+///
+/// @example scss - Usage
+/// .element {
+/// @include shift(-3 of 6);
+/// }
+///
+/// @example css - CSS output
+/// .element {
+/// margin-left: -52.41458%;
+/// }
+
+@mixin shift-in-context($shift: $columns of $container-columns) {
+ $n-columns: nth($shift, 1);
+ $parent-columns: container-shift($shift) !global;
+
+ $direction: get-direction($layout-direction, $default-layout-direction);
+ $opposite-direction: get-opposite-direction($direction);
+
+ margin-#{$opposite-direction}: $n-columns * flex-grid(1, $parent-columns) + $n-columns * flex-gutter($parent-columns);
+
+ // Reset nesting context
+ $parent-columns: $grid-columns !global;
+}
diff --git a/_sass/vendor/neat/grid/_span-columns.scss b/_sass/vendor/neat/grid/_span-columns.scss
new file mode 100644
index 0000000..c8f0a37
--- /dev/null
+++ b/_sass/vendor/neat/grid/_span-columns.scss
@@ -0,0 +1,92 @@
+@charset "UTF-8";
+
+/// Specifies the number of columns an element should span. If the selector is nested the number of columns of its parent element should be passed as an argument as well.
+///
+/// @param {List} $span
+/// A list containing `$columns`, the unitless number of columns the element spans (required), and `$container-columns`, the number of columns the parent element spans (optional).
+///
+/// If only one value is passed, it is assumed that it's `$columns` and that that `$container-columns` is equal to `$grid-columns`, the total number of columns in the grid.
+///
+/// The values can be separated with any string such as `of`, `/`, etc.
+///
+/// @param {String} $display (block)
+/// Sets the display property of the element. By default it sets the display propert of the element to `block`.
+///
+/// If passed `block-collapse`, it also removes the margin gutter by adding it to the element width.
+///
+/// If passed `table`, it sets the display property to `table-cell` and calculates the width of the element without taking gutters into consideration. The result does not align with the block-based grid.
+///
+/// @example scss - Usage
+/// .element {
+/// @include span-columns(6);
+///
+/// .nested-element {
+/// @include span-columns(2 of 6);
+/// }
+/// }
+///
+/// @example css - CSS Output
+/// .element {
+/// display: block;
+/// float: left;
+/// margin-right: 2.35765%;
+/// width: 48.82117%;
+/// }
+///
+/// .element:last-child {
+/// margin-right: 0;
+/// }
+///
+/// .element .nested-element {
+/// display: block;
+/// float: left;
+/// margin-right: 4.82916%;
+/// width: 30.11389%;
+/// }
+///
+/// .element .nested-element:last-child {
+/// margin-right: 0;
+/// }
+
+@mixin span-columns($span: $columns of $container-columns, $display: block) {
+ $columns: nth($span, 1);
+ $container-columns: container-span($span);
+
+ $parent-columns: get-parent-columns($container-columns) !global;
+
+ $direction: get-direction($layout-direction, $default-layout-direction);
+ $opposite-direction: get-opposite-direction($direction);
+
+ $display-table: is-display-table($container-display-table, $display);
+
+ @if $display-table {
+ display: table-cell;
+ width: percentage($columns / $container-columns);
+ } @else {
+ float: #{$opposite-direction};
+
+ @if $display != no-display {
+ display: block;
+ }
+
+ @if $display == collapse {
+ @include -neat-warn("The 'collapse' argument will be deprecated. Use 'block-collapse' instead.");
+ }
+
+ @if $display == collapse or $display == block-collapse {
+ width: flex-grid($columns, $container-columns) + flex-gutter($container-columns);
+
+ &:last-child {
+ width: flex-grid($columns, $container-columns);
+ }
+
+ } @else {
+ margin-#{$direction}: flex-gutter($container-columns);
+ width: flex-grid($columns, $container-columns);
+
+ &:last-child {
+ margin-#{$direction}: 0;
+ }
+ }
+ }
+}
diff --git a/_sass/vendor/neat/grid/_to-deprecate.scss b/_sass/vendor/neat/grid/_to-deprecate.scss
new file mode 100644
index 0000000..aeea079
--- /dev/null
+++ b/_sass/vendor/neat/grid/_to-deprecate.scss
@@ -0,0 +1,97 @@
+@charset "UTF-8";
+
+@mixin breakpoint($query:$feature $value $columns, $total-columns: $grid-columns) {
+ @include -neat-warn("The breakpoint() mixin was renamed to media() in Neat 1.0. Please update your project with the new syntax before the next version bump.");
+
+ @if length($query) == 1 {
+ @media screen and ($default-feature: nth($query, 1)) {
+ $default-grid-columns: $grid-columns;
+ $grid-columns: $total-columns;
+ @content;
+ $grid-columns: $default-grid-columns;
+ }
+ } @else if length($query) == 2 {
+ @media screen and (nth($query, 1): nth($query, 2)) {
+ $default-grid-columns: $grid-columns;
+ $grid-columns: $total-columns;
+ @content;
+ $grid-columns: $default-grid-columns;
+ }
+ } @else if length($query) == 3 {
+ @media screen and (nth($query, 1): nth($query, 2)) {
+ $default-grid-columns: $grid-columns;
+ $grid-columns: nth($query, 3);
+ @content;
+ $grid-columns: $default-grid-columns;
+ }
+ } @else if length($query) == 4 {
+ @media screen and (nth($query, 1): nth($query, 2)) and (nth($query, 3): nth($query, 4)) {
+ $default-grid-columns: $grid-columns;
+ $grid-columns: $total-columns;
+ @content;
+ $grid-columns: $default-grid-columns;
+ }
+ } @else if length($query) == 5 {
+ @media screen and (nth($query, 1): nth($query, 2)) and (nth($query, 3): nth($query, 4)) {
+ $default-grid-columns: $grid-columns;
+ $grid-columns: nth($query, 5);
+ @content;
+ $grid-columns: $default-grid-columns;
+ }
+ } @else {
+ @include -neat-warn("Wrong number of arguments for breakpoint(). Read the documentation for more details.");
+ }
+}
+
+@mixin nth-omega($nth, $display: block, $direction: default) {
+ @include -neat-warn("The nth-omega() mixin is deprecated. Please use omega() instead.");
+ @include omega($nth $display, $direction);
+}
+
+/// Resets the active display property to `block`. Particularly useful when changing the display property in a single row.
+///
+/// @example scss - Usage
+/// .element {
+/// @include row(table);
+/// // Context changed to table display
+/// }
+///
+/// @include reset-display;
+/// // Context is reset to block display
+
+@mixin reset-display {
+ $container-display-table: false !global;
+ @include -neat-warn("Resetting $display will be deprecated in future versions in favor of the display(){...} mixin.");
+}
+
+/// Resets the active layout direction to the default value set in `$default-layout-direction`. Particularly useful when changing the layout direction in a single row.
+///
+/// @example scss - Usage
+/// .element {
+/// @include row($direction: RTL);
+/// // Context changed to right-to-left
+/// }
+///
+/// @include reset-layout-direction;
+/// // Context is reset to left-to-right
+
+@mixin reset-layout-direction {
+ $layout-direction: $default-layout-direction !global;
+ @include -neat-warn("Resetting $direction will be deprecated in future versions in favor of the direction(){...} mixin.");
+}
+
+/// Resets both the active layout direction and the active display property.
+///
+/// @example scss - Usage
+/// .element {
+/// @include row(table, RTL);
+/// // Context changed to table table and right-to-left
+/// }
+///
+/// @include reset-all;
+/// // Context is reset to block display and left-to-right
+
+@mixin reset-all {
+ @include reset-display;
+ @include reset-layout-direction;
+}
diff --git a/_sass/vendor/neat/grid/_visual-grid.scss b/_sass/vendor/neat/grid/_visual-grid.scss
new file mode 100644
index 0000000..1192d82
--- /dev/null
+++ b/_sass/vendor/neat/grid/_visual-grid.scss
@@ -0,0 +1,42 @@
+@charset "UTF-8";
+
+@mixin grid-column-gradient($values...) {
+ background-image: -webkit-linear-gradient(left, $values);
+ background-image: -moz-linear-gradient(left, $values);
+ background-image: -ms-linear-gradient(left, $values);
+ background-image: -o-linear-gradient(left, $values);
+ background-image: unquote("linear-gradient(to left, #{$values})");
+}
+
+@if $visual-grid == true or $visual-grid == yes {
+ body:before {
+ @include grid-column-gradient(gradient-stops($grid-columns));
+ content: "";
+ display: inline-block;
+ height: 100%;
+ left: 0;
+ margin: 0 auto;
+ max-width: $max-width;
+ opacity: $visual-grid-opacity;
+ pointer-events: none;
+ position: fixed;
+ right: 0;
+ width: 100%;
+
+ @if $visual-grid-index == back {
+ z-index: -1;
+ }
+
+ @else if $visual-grid-index == front {
+ z-index: 9999;
+ }
+
+ @each $breakpoint in $visual-grid-breakpoints {
+ @if $breakpoint {
+ @include media($breakpoint) {
+ @include grid-column-gradient(gradient-stops($grid-columns));
+ }
+ }
+ }
+ }
+}
diff --git a/_sass/vendor/neat/settings/_disable-warnings.scss b/_sass/vendor/neat/settings/_disable-warnings.scss
new file mode 100644
index 0000000..3f9b92a
--- /dev/null
+++ b/_sass/vendor/neat/settings/_disable-warnings.scss
@@ -0,0 +1,13 @@
+@charset "UTF-8";
+
+/// Disable all deprecation warnings. Defaults to `false`. Set with a `!global` flag.
+///
+/// @type Bool
+
+$disable-warnings: false !default;
+
+@mixin -neat-warn($message) {
+ @if $disable-warnings == false {
+ @warn "#{$message}";
+ }
+}
diff --git a/_sass/vendor/neat/settings/_grid.scss b/_sass/vendor/neat/settings/_grid.scss
new file mode 100644
index 0000000..f519144
--- /dev/null
+++ b/_sass/vendor/neat/settings/_grid.scss
@@ -0,0 +1,55 @@
+@charset "UTF-8";
+
+/// Sets the relative width of a single grid column. The unit used should be the same one used to define `$gutter`. To learn more about golden-ratio() see [Bourbon docs](http://bourbon.io/docs/#golden-ratio). Set with a `!global` flag.
+///
+/// @type Number (Unit)
+
+$column: golden-ratio(1em, 3) !default;
+
+/// Sets the relative width of a single grid gutter. The unit used should be the same one used to define `$column`. To learn more about golden-ratio() see [Bourbon docs](http://bourbon.io/docs/#golden-ratio). Set with the `!global` flag.
+///
+/// @type Number (Unit)
+
+$gutter: golden-ratio(1em, 1) !default;
+
+/// Sets the total number of columns in the grid. Its value can be overridden inside a media query using the `media()` mixin. Set with the `!global` flag.
+///
+/// @type Number (Unitless)
+
+$grid-columns: 12 !default;
+
+/// Sets the max-width property of the element that includes `outer-container()`. To learn more about `em()` see [Bourbon docs](http://bourbon.io/docs/#px-to-em). Set with the `!global` flag.
+///
+/// @type Number (Unit)
+///
+$max-width: em(1088) !default;
+
+/// When set to true, it sets the box-sizing property of all elements to `border-box`. Set with a `!global` flag.
+///
+/// @type Bool
+///
+/// @example css - CSS Output
+/// html {
+/// -webkit-box-sizing: border-box;
+/// -moz-box-sizing: border-box;
+/// box-sizing: border-box; }
+///
+/// *, *:before, *:after {
+/// -webkit-box-sizing: inherit;
+/// -moz-box-sizing: inherit;
+/// box-sizing: inherit;
+/// }
+
+$border-box-sizing: true !default;
+
+/// Sets the default [media feature](http://www.w3.org/TR/css3-mediaqueries/#media) that `media()` and `new-breakpoint()` revert to when only a breakpoint value is passed. Set with a `!global` flag.
+///
+/// @type String
+
+$default-feature: min-width; // Default @media feature for the breakpoint() mixin
+
+///Sets the default layout direction of the grid. Can be `LTR` or `RTL`. Set with a `!global` flag.
+///
+///@type String
+
+$default-layout-direction: LTR !default;
diff --git a/_sass/vendor/neat/settings/_visual-grid.scss b/_sass/vendor/neat/settings/_visual-grid.scss
new file mode 100644
index 0000000..9cd1815
--- /dev/null
+++ b/_sass/vendor/neat/settings/_visual-grid.scss
@@ -0,0 +1,27 @@
+@charset "UTF-8";
+
+/// Displays the visual grid when set to true. The overlaid grid may be few pixels off depending on the browser's rendering engine and pixel rounding algorithm. Set with the `!global` flag.
+///
+/// @type Bool
+
+$visual-grid: false !default;
+
+/// Sets the visual grid color. Set with `!global` flag.
+///
+/// @type Color
+
+$visual-grid-color: #eee !default;
+
+/// Sets the `z-index` property of the visual grid. Can be `back` (behind content) or `front` (in front of content). Set with `!global` flag.
+///
+/// @type String
+
+$visual-grid-index: back !default;
+
+/// Sets the opacity property of the visual grid. Set with `!global` flag.
+///
+/// @type Number (unitless)
+
+$visual-grid-opacity: 0.4 !default;
+
+$visual-grid-breakpoints: () !default;
diff --git a/about_us.md b/about_us.md
new file mode 100644
index 0000000..e50fe8c
--- /dev/null
+++ b/about_us.md
@@ -0,0 +1,21 @@
+---
+title: About Us
+permalink: "/about-us/"
+layout: page
+type: inNavBar
+---
+
+## ABOUT US:
+While we always need more developers, Code for Baltimore welcomes designers,
+content creators, copywriters, storytellers, researchers, project managers, marketing
+specialists, and any other tech or government enthusiast!
+
+We have two types of meetups:
+ * Hack Nights: project nights where our members work on
+ select projects to benefit Baltimore communities.
+ * Community Nights: networking events with members of
+ the community and the group to discuss issues that could be solved with civic tech.
+
+## NEW MEMBER?
+New to our community and interested in joining a project?
+Fill out [this survey](https://goo.gl/forms/zZ2TYVAs23FHuXly1) so that we can learn more about you.
diff --git a/code-of-conduct.md b/code-of-conduct.md
new file mode 100644
index 0000000..65aabce
--- /dev/null
+++ b/code-of-conduct.md
@@ -0,0 +1,69 @@
+---
+title: Code of Conduct
+permalink: "/code-of-conduct/"
+layout: page
+type: inNavBar
+---
+
+{: .t-section-headline }
+# Our Code Of Conduct
+
+## The Code for Baltimore community expects that Code for Baltimore network activities, events, and digital forums:
+
+- Are a safe and respectful environment for all participants.
+- Are a place where people are free to fully express their identities.
+- Presume the value of others. Everyone’s ideas, skills, and contributions have value.
+- Don’t assume everyone has the same context, and encourage questions.
+- Find a way for people to be productive with their skills (technical and not) and energy. Use language such as “yes/and," not “no/but.”
+- Encourage members and participants to listen as much as they speak.
+- Organize activities to empower public collaboration.
+- Build tools that are open, free technology for public use.
+- Prioritize access for and input from those who are traditionally excluded from the civic process.
+- Work to ensure that the community is well- represented in the planning, design, and implementation of civic tech. This includes encouraging participation from women, minorities, and traditionally marginalized groups.
+- Actively involve community groups and those with subject matter expertise in the decision-making process.
+- Ensure that the relationships and conversations between community members, the local government staff, and community partners remain respectful, participatory, and productive.
+- Provide an environment where people are free from discrimination and harassment.
+
+
+Code for Baltimore reserves the right to remove anyone in violation of these policies from any Code for Baltimore event, network activity, or digital forum. Repeated offenses may mean not being welcomed back to future Code for Baltimore events.
+
+{: .l-pad--top }
+## Code for Baltimore's Anti-Harassment Policy
+
+All Code for Baltimore network activities, events, and digital forums and their staff, presenters, and participants are held to an anti-harassment policy, included below.
+
+In addition to governing our own events by this policy, Code for Baltimore will only collaborate with groups that offer an anti-harassment policy to their attendees, or are willing to implement one. For information on how to offer an anti-harassment policy to your group, see this guide.
+
+Code for Baltimore is dedicated to providing a harassment-free experience for everyone regardless of gender, gender identity and expression, sexual orientation, disability, physical appearance, body size, race, age, religion, or any other identifying characteristics. We do not tolerate harassment of staff, presenters, or participants in any form. Sexual language and imagery is not appropriate for any Code for Baltimore event or network activity, including talks.
+
+Harassment includes but is not limited to: offensive verbal or written comments related to gender, gender identity and expression, sexual orientation, disability, physical appearance, body size, race, religion, or other identifying characteristics; sexual images in public spaces; deliberate intimidation; stalking; following; harassing photography or recording; sustained disruption of talks or other events; inappropriate physical contact; unwelcome sexual attention; unwarranted exclusion; patronizing language or action; or conversation topics that make others uncomfortable.
+
+If a participant engages in harassing behavior, the organizers may take any action they deem appropriate, including warning the offender or expulsion from Code for Baltimore network activities, events, and digital forums. Participants asked to stop any harassing behavior are expected to comply immediately. Anyone in violation of these policies may expelled from Code for Baltimore network activities, events, and digital forums, at the discretion of the Brigade Core Team.
+
+If you are being harassed, notice that someone else is being harassed, or have any other concerns, please contact a member of the Brigade Core Team immediately. You can contact them using the contact information listed below or in person, if you are comfortable doing so.
+
+Event staff or forum administrators will be happy to help participants contact security or local law enforcement, provide escorts, or otherwise assist those experiencing harassment to feel safe for the duration of the event. While all of our organizers and facilitators are ready to help, please let them know if you would prefer to be assisted by someone of your choosing.
+
+You can also contact Code for Baltimore about harassment at [{{site.email}}](mailto:{{site.email}}) and feel free to use the email template below. The Code for Baltimore Brigade Core Team acknowledge that we are not always in a position to evaluate a given situation. However, we are hopeful that by providing these guidelines we are establishing a community that jointly adheres to these values and can provide an environment that is welcoming to all.
+
+If you cannot reach member of the Brigade Core Team and/or it is an emergency, please call 911 and/or remove yourself from the situation. We value your attendance and hope that by communicating these expectations widely we can all enjoy a harassment-free environment.
+
+This policy is based on several other policies, including the Ohio LinuxFest anti-harassment policy, written by Esther Filderman and Beth Lynn Eicher, and the Con Anti-Harassment Project. Mary Gardiner, Valerie Aurora, Sarah Smith, and Donna Benjamin generalized the policies and added supporting material. Many members of LinuxChix, Geek Feminism and other groups contributed to this work. Special thanks to Ashe Dryden for compiling accessible Code of Conduct reference materials.
+
+{: .l-pad--top }
+## Email Template for Anti-Harassment Reporting
+
+**SUBJECT**: Safe Space alert at [EVENT NAME]
+
+
+I am writing because of harassment at a Code for Baltimore event, [NAME, PLACE, DATE OF EVENT].
+
+You can reach me at [CONTACT INFO]. Thank you.
+
+Default contact information for Code for Baltimore events.
+
+{: .l-pad--top }
+## Code for Baltimore Brigade Core Team & Organizers
+
+{% include team-list.html %}
+
diff --git a/css/main.scss b/css/main.scss
new file mode 100644
index 0000000..ac4129e
--- /dev/null
+++ b/css/main.scss
@@ -0,0 +1,74 @@
+---
+---
+
+@charset "utf-8";
+
+
+
+// Our variables
+$base-font-family:'Poppins', sans-serif;
+$headline-font-family: 'Poppins', sans-serif;
+$base-font-size: 18px;
+$font-ratio: 1.3;
+$small-font-ratio: 1.2;
+$small-font-size: $base-font-size / $font-ratio;
+$base-line-height: 1.5;
+
+$spacing-unit: 30px;
+
+$white-color: #ffffff;
+$offwhite-color: #fdfdfd;
+$grey-color: #6d6e71;
+$black-color: #111111;
+
+$blue-color: #399fd3;
+$red-color: #cf1f42;
+$purple-color: #71499d;
+
+// color alias
+$text-color: $black-color;
+$background-color: $white-color;
+$brand-color: $purple-color;
+$grey-color-light: #b7b7b7;
+$grey-color-dark: darken($grey-color, 15%);
+
+
+// Width of the content area
+$content-width: 1200px;
+$on-palm: 600px;
+$on-laptop: 800px;
+
+
+
+// Using media queries with like this:
+// @include media-query($on-palm) {
+// .wrapper {
+// padding-right: $spacing-unit / 2;
+// padding-left: $spacing-unit / 2;
+// }
+// }
+@mixin media-query($device) {
+ @media screen and (max-width: $device) {
+ @content;
+ }
+}
+
+
+
+// Import partials from `sass_dir` (defaults to `_sass`)
+@import
+ "vendor/bourbon/bourbon",
+ "vendor/neat/neat",
+ "utility",
+ "base",
+ "layout",
+ "buttons",
+ "lists",
+ "header",
+ "footer",
+ "forms",
+ "page-link-nav",
+ "components",
+ "jobs",
+ "syntax-highlighting"
+;
diff --git a/donate.md b/donate.md
new file mode 100644
index 0000000..60bb1d1
--- /dev/null
+++ b/donate.md
@@ -0,0 +1,16 @@
+---
+title: Donate
+permalink: "/donate/"
+layout: page
+type: inNavBar
+---
+
+Love what we do? Please consider [donating](https://secure.codeforamerica.org/page/contribute/donate-to-a-brigade-today?source_codes=Brigade-page&brigade=Code%20for%20Baltimore) to our community so that we can continue growing.
+Any level of donation ensures that we can accomplish our mission.
+
+
+[Donate](https://secure.codeforamerica.org/page/contribute/donate-to-a-brigade-today?source_codes=Brigade-page&brigade=Code%20for%20Baltimore){:.btn-primary btn--small}
+
+While not required by any means, we strongly encourage members to commit to a $5 monthly
+donation to support both Community and Hack Nights (snacks and drinks) along with other logistics
+(website management, Slack, etc.). We commit to being transparent about our finances, check them out [here](https://docs.google.com/spreadsheets/d/15gDSzLBlnxXVBoo_pD55G8oTnr30B_GUs_07TbMDZAI/edit?usp=sharing).
\ No newline at end of file
diff --git a/events.md b/events.md
new file mode 100644
index 0000000..6c0f68a
--- /dev/null
+++ b/events.md
@@ -0,0 +1,18 @@
+---
+title: Events
+permalink: "/events/"
+layout: page
+type: inNavBar
+---
+# Events
+
+{% for event in site.data.events.active %}
+## {{ event.name }}
+* Date: {{ event.date }}
+* Time: {{ event.time }}
+* Location: {{ event.location }}
+* [RSVP on Meetup]({{event.meetup_url }} )
+
+{{ event.description }}
+
+{% endfor %}
\ No newline at end of file
diff --git a/favicon.ico b/favicon.ico
new file mode 100644
index 0000000..eb8b497
Binary files /dev/null and b/favicon.ico differ
diff --git a/hacknight.html b/hacknight.html
new file mode 100644
index 0000000..a8730dc
--- /dev/null
+++ b/hacknight.html
@@ -0,0 +1,110 @@
+---
+title: Hack Night
+permalink: "/hacknight/"
+layout: hacknight
+type: hidden
+---
+
+
+
+
+
+
+
+ {% for event in site.data.events.active %}
+
+ {% endfor %}
+
+
+
+
+ {% assign active_newsworthy_projects = site.data.projects.active | where_exp:"proj", "proj.news" %}
+ {% for proj in active_newsworthy_projects %}
+
+
+ {% if proj.media %}
+
+ {% endif %}
+
+ {% endfor %}
+
+
+
+
+
diff --git a/img/donors/code_for_america.png b/img/donors/code_for_america.png
new file mode 100644
index 0000000..4299926
Binary files /dev/null and b/img/donors/code_for_america.png differ
diff --git a/img/logo_full.png b/img/logo_full.png
new file mode 100644
index 0000000..e574acf
Binary files /dev/null and b/img/logo_full.png differ
diff --git a/img/logo_small.png b/img/logo_small.png
new file mode 100644
index 0000000..519c1f6
Binary files /dev/null and b/img/logo_small.png differ
diff --git a/img/team/default-headshot.jpg b/img/team/default-headshot.jpg
new file mode 100644
index 0000000..19803e7
Binary files /dev/null and b/img/team/default-headshot.jpg differ
diff --git a/index.html b/index.html
new file mode 100644
index 0000000..b59373e
--- /dev/null
+++ b/index.html
@@ -0,0 +1,56 @@
+---
+layout: default
+---
+
+
+
+
+
Code for Baltimore
+
+
+
+
+
+
+
+
+
Join us for our next event, learn more on Meetup
+
+
Meetup
+
+
+
+
+
+
+
+
+
+
+
+
Keep up to date with our projects by joining the Code for Baltimore Slack
+
Slack
+
+
+
+
+
+
+
+
+
+
+
+ Government can work for the people, by the people, in the digital age.
+
+
+
+
+ We are a community of volunteers who develop open-source projects as a
+ Code for America Brigade by focusing on open government, open data, great design,
+ and social good in Baltimore.
+
+
+
+
+
diff --git a/js/main.js b/js/main.js
new file mode 100644
index 0000000..6a434a0
--- /dev/null
+++ b/js/main.js
@@ -0,0 +1,31 @@
+(function(window, document, $, undefined) {
+
+ var $jobs = $('#jobs-listing li');
+ // Jobs filtering
+ $('#filter-jobs').on('keyup', function(e) {
+ var filterText = e.target.value.toLowerCase();
+
+ if (filterText.length) {
+
+ $.each($jobs, function(i, jobEl) {
+ var $job = $(jobEl);
+ var text = $job.text().toLowerCase();
+
+ if (text.indexOf(filterText) > -1) {
+ $job.removeClass('hidden');
+ } else {
+ $job.addClass('hidden');
+ }
+
+ });
+
+ } else {
+ $jobs.removeClass('hidden');
+ }
+
+
+
+ });
+
+
+})(window, document, $);
diff --git a/new-member.html b/new-member.html
new file mode 100644
index 0000000..059ce8e
--- /dev/null
+++ b/new-member.html
@@ -0,0 +1,29 @@
+---
+title: New Members
+permalink: "/new-members/"
+layout: page
+type: hidden
+---
+
+Welcome to Code for Baltimore!
+
+The best way to dive into the Code for Baltimore community is to join us at our weekly Tuesday night meetups . Here are a few things to do if you're new to our community.
+
+
+
+ Get set up with Slack
+ We use slack to keep in touch when we aren't hanging out in person.
+ We also track ongoing conversations, research, and project development there. Once you're in Slack,
+ feel free to say hi in our #general channel and maybe tell everyone what makes you
+ excited about civic tech and how you'd prefer to get involved. If you have any specific questions about Code for Boston, ask them over in the #ask-cfb channel.
+ Join our Slack community
+
+
+ Join Github (even if you don't code!)
+ We use github to share and work on code-related projects.
+ Many of our projects center around technology and therefore involve code, but you don't need to be able to
+ write code to get involved! Github offers a range of ways to be part of the development process such as assisting
+ in writing documentation or helping project managers keep track of work to be done.
+ See our Github organization
+
+
diff --git a/projects-balt.md b/projects-balt.md
new file mode 100644
index 0000000..713a96d
--- /dev/null
+++ b/projects-balt.md
@@ -0,0 +1,40 @@
+---
+title: Projects
+permalink: "/projects/"
+layout: page
+type: inNavBar
+
+---
+
+{:.t-section-headline}
+# Projects
+
+## Active projects
+
+{% for proj in site.data.projects.active %}
+{:.btn-secondary btn--small}
+[{{ proj.name }}]({{proj.url}})
+{% endfor %}
+
+## How Do Code for Baltimore Projects Work?
+Project selection is typically a “bottom-up” process: volunteers identify and initiate projects that match their interests and skills – in line with addressing local issues or ideas for social good.
+Volunteers are frequently looking for project ideas from local government. Core team keeps a pulse on topics of interest to the city partners.
+Project success depends on the skills, commitment and organization of volunteer team.
+Core team may champion a few promising project ideas, based on government partnership or other city interests.
+
+## City Partnerships
+City Partners interested in partnering with Code for Baltimore (CfB) can participate in the following ways:
+Come to a community night to pitch the idea to other volunteers. Ideas are always welcome — no advance notice needed.
+Discuss the idea with the Delivery Lead or Brigade Captains, who will share idea with the volunteer network to see if it’s a good match and if there are skills to complete the project. You’re always welcome to email us.
+Consult on important issues of interest to the City of Baltimore.
+
+## Making Project Partnerships Work:
+For projects on which the two organizations are officially partnering, we will make sure to set expectations about the roles and responsibilities on both sides. Before the project begins, the following items should be clear:
+ * Which City office/department is the project sponsor?
+ * What is the goal of this tool, and who will be using it?
+ * What is the anticipated timeline for this project?
+ * Do we have a team of CfB volunteers with the skills and availability to make this project happen?
+ * Who will manage the project? Who are the main points of contact at CfB and the City of Baltimore?
+ * Who will support and maintain this project after it is completed?
+ * Once a project is underway, communication is handled by the project leads on both sides.
+ * The Community Organizer will check in on a monthly basis for updates.
diff --git a/readme_bost.md b/readme_bost.md
new file mode 100644
index 0000000..53fd427
--- /dev/null
+++ b/readme_bost.md
@@ -0,0 +1,20 @@
+# Code For Boston Website
+
+This is a pretty standard [Jekyll](https://jekyllrb.com/) website at http://www.codeforboston.org/; there are a number of datasets in `_data` that build various lists displayed on the site.
+
+We have a [Guide for New Members](http://www.codeforboston.org/new-members/). Please be sure to read our [Code of Conduct](http://www.codeforboston.org/code-of-conduct/). CFB is a [Code for America Brigade](http://www.codeforamerica.org/brigade/about).
+
+## First time? Download some dependencies.
+This repository makes use of [reveal.js](https://github.com/hakimel/reveal.js). In order to synchronize the dependencies within this repository, run the following:
+```bash
+git submodule update --init
+```
+
+## I want to update the wesite. How do I do that?
+- To add/update jobs, edit `_data/jobs.yml`
+- To add/update events, edit [`_data/events/active.yml`](https://github.com/codeforboston/CFB_static/edit/master/_data/events/active.yml)
+- To edit normal site pages, edit the `html` or `markdown` files in `_pages/`
+- To edit the homepage content, edit `index.html`
+
+## Deploy to codeforboston.org
+This site is hosted via [GitHub Pages](https://pages.github.com/), so all you need to do to deploy is to push updates to the `master` branch in GitHub. Within minutes, http://www.codeforboston.org/ will reflect the new changes.
diff --git a/style_guide.html b/style_guide.html
new file mode 100644
index 0000000..41e1a95
--- /dev/null
+++ b/style_guide.html
@@ -0,0 +1,255 @@
+---
+title: styleguide
+permalink: "/style_guide/"
+layout: page
+type: hidden
+---
+
+Core
+
+
+
+
+Color
+
+
+
+
+
+
+
+
+
+
+Type
+
+
+
Merriweather
+
+
+
Merriweather Italic
+
+
+
Open Sans
+
+
+
Open Sans Bold
+
+
+
+
+Font Sizing
+
+This is a Headline (h1)
+This is a Headline (h2)
+This is a Headline (h3)
+This is a Headline (h4)
+This is a Headline (h5)
+This is a Headline (h6)
+
+This is a large body of text. This is a large body of text. This is a large body of text. This is a large body of text. This is a large body of text. This is a large body of text. This is a large body of text. This is a large body of text. This is a large body of text. This is a large body of text. This is a large body of text. This is a large body of text. This is a large body of text.
+
+
+ This is a quote.
+
+
+
+
+Grid
+Note: .col-* always go directly inside a .row
+
+
+
+ .col-6
+
+
+ .col-6
+
+
+
+
+ .col-4
+
+
+ .col-4
+
+
+ .col-4
+
+
+
+
+ .col-3
+
+
+ .col-3
+
+
+ .col-3
+
+
+ .col-3
+
+
+Grid colums can be centered with .row.row--centered
+
+
+ .col-3
+
+
+ .col-3
+
+
+ .col-3
+
+
+
+
+
+
+UI Controls
+
+
+Buttons
+
+
+
+ .btn-default
+ .btn-primary
+ .btn-secondary
+
+
+ .btn--large
+ .btn--small
+
+
+
+
+
+Text Links
+
+
+
+
+
+Input Controls
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Content Components
+
+
+
+
+
+
+
content callout
+
Here is some content about the above image and headline
+
Optional CTA
+
+
+
+
+
content callout
+
Here is some content about the above image and headline
+
Optional CTA
+
+
+
+
+
content callout
+
Here is some content about the above image and headline
+
Optional CTA
+
+
+
+
+
+
+
+
+Larger Components
+
+{% include header.html %}
diff --git a/team.md b/team.md
new file mode 100644
index 0000000..32ac5ba
--- /dev/null
+++ b/team.md
@@ -0,0 +1,14 @@
+---
+title: Team
+permalink: "/team/"
+layout: page
+type: inNavBar
+---
+
+# Core Team
+
+{% include team-grid.html %}
+
+We are always looking for more support! Currently, we need a Community Manager and Tech Lead to join our Core Team.
+Check out the position descriptions [here](https://docs.google.com/document/d/1sZN4Ct-JjMgDASn_QNjWur7SY0M_6rst5BnxKXV4qn8/edit?usp=sharing).
+If you are interested in these positions, please [email](mailto:{{ site.email }}) us.
\ No newline at end of file
diff --git a/tools.html b/tools.html
new file mode 100644
index 0000000..7ed91b9
--- /dev/null
+++ b/tools.html
@@ -0,0 +1,24 @@
+---
+title: Tools
+permalink: "/tools/"
+layout: page
+type: hidden
+---
+
+We build a lot of stuff here, this is what we often like to use.
+
+
+
+{% for cat in site.data.resources.tools %}
+
+ {{ cat.category }}
+
+ {% for tool in cat.tools %}
+
+ {{ tool.name }}
+ {{ tool.description }}
+
+ {% endfor %}
+
+
+{% endfor %}