Full Code of bencentra/centrarium for AI

master 1e4531eb63e6 cached
146 files
192.3 KB
59.9k tokens
1 requests
Download .txt
Showing preview only (224K chars total). Download the full file or copy to clipboard to get everything.
Repository: bencentra/centrarium
Branch: master
Commit: 1e4531eb63e6
Files: 146
Total size: 192.3 KB

Directory structure:
gitextract_k1zahj9n/

├── .editorconfig
├── .gitignore
├── .ruby-version
├── Gemfile
├── LICENSE.md
├── README.md
├── _config.yml
├── _includes/
│   ├── footer.html
│   ├── head.html
│   ├── header.html
│   ├── nav_links.html
│   ├── page_divider.html
│   └── tooltips/
│       ├── .editorconfig
│       └── example.html
├── _layouts/
│   ├── archive.html
│   ├── default.html
│   ├── page.html
│   └── post.html
├── _posts/
│   ├── 2015-04-18-dummy.md
│   ├── 2015-04-18-dummy2.md
│   ├── 2015-04-18-dummy3.md
│   ├── 2015-04-18-dummy4.md
│   ├── 2015-04-18-dummy5.md
│   ├── 2015-04-18-dummy6.md
│   ├── 2015-04-18-welcome-to-jekyll.md
│   ├── 2015-04-19-dummy6.markdown
│   └── 2015-04-20-welcome-to-jekyll.markdown
├── _sass/
│   ├── _layout.scss
│   ├── base/
│   │   ├── _base.scss
│   │   ├── _buttons.scss
│   │   ├── _forms.scss
│   │   ├── _grid-settings.scss
│   │   ├── _lists.scss
│   │   ├── _tables.scss
│   │   ├── _typography.scss
│   │   └── _variables.scss
│   ├── bourbon/
│   │   ├── _bourbon-deprecated-upcoming.scss
│   │   ├── _bourbon.scss
│   │   ├── addons/
│   │   │   ├── _border-color.scss
│   │   │   ├── _border-radius.scss
│   │   │   ├── _border-style.scss
│   │   │   ├── _border-width.scss
│   │   │   ├── _buttons.scss
│   │   │   ├── _clearfix.scss
│   │   │   ├── _ellipsis.scss
│   │   │   ├── _font-stacks.scss
│   │   │   ├── _hide-text.scss
│   │   │   ├── _margin.scss
│   │   │   ├── _padding.scss
│   │   │   ├── _position.scss
│   │   │   ├── _prefixer.scss
│   │   │   ├── _retina-image.scss
│   │   │   ├── _size.scss
│   │   │   ├── _text-inputs.scss
│   │   │   ├── _timing-functions.scss
│   │   │   ├── _triangle.scss
│   │   │   └── _word-wrap.scss
│   │   ├── css3/
│   │   │   ├── _animation.scss
│   │   │   ├── _appearance.scss
│   │   │   ├── _backface-visibility.scss
│   │   │   ├── _background-image.scss
│   │   │   ├── _background.scss
│   │   │   ├── _border-image.scss
│   │   │   ├── _calc.scss
│   │   │   ├── _columns.scss
│   │   │   ├── _filter.scss
│   │   │   ├── _flex-box.scss
│   │   │   ├── _font-face.scss
│   │   │   ├── _font-feature-settings.scss
│   │   │   ├── _hidpi-media-query.scss
│   │   │   ├── _hyphens.scss
│   │   │   ├── _image-rendering.scss
│   │   │   ├── _keyframes.scss
│   │   │   ├── _linear-gradient.scss
│   │   │   ├── _perspective.scss
│   │   │   ├── _placeholder.scss
│   │   │   ├── _radial-gradient.scss
│   │   │   ├── _selection.scss
│   │   │   ├── _text-decoration.scss
│   │   │   ├── _transform.scss
│   │   │   ├── _transition.scss
│   │   │   └── _user-select.scss
│   │   ├── functions/
│   │   │   ├── _assign-inputs.scss
│   │   │   ├── _contains-falsy.scss
│   │   │   ├── _contains.scss
│   │   │   ├── _is-length.scss
│   │   │   ├── _is-light.scss
│   │   │   ├── _is-number.scss
│   │   │   ├── _is-size.scss
│   │   │   ├── _modular-scale.scss
│   │   │   ├── _px-to-em.scss
│   │   │   ├── _px-to-rem.scss
│   │   │   ├── _shade.scss
│   │   │   ├── _strip-units.scss
│   │   │   ├── _tint.scss
│   │   │   ├── _transition-property-name.scss
│   │   │   └── _unpack.scss
│   │   ├── helpers/
│   │   │   ├── _convert-units.scss
│   │   │   ├── _directional-values.scss
│   │   │   ├── _font-source-declaration.scss
│   │   │   ├── _gradient-positions-parser.scss
│   │   │   ├── _linear-angle-parser.scss
│   │   │   ├── _linear-gradient-parser.scss
│   │   │   ├── _linear-positions-parser.scss
│   │   │   ├── _linear-side-corner-parser.scss
│   │   │   ├── _radial-arg-parser.scss
│   │   │   ├── _radial-gradient-parser.scss
│   │   │   ├── _radial-positions-parser.scss
│   │   │   ├── _render-gradients.scss
│   │   │   ├── _shape-size-stripper.scss
│   │   │   └── _str-to-num.scss
│   │   └── settings/
│   │       ├── _asset-pipeline.scss
│   │       ├── _prefixer.scss
│   │       └── _px-to-em.scss
│   └── neat/
│       ├── _neat-helpers.scss
│       ├── _neat.scss
│       ├── functions/
│       │   ├── _new-breakpoint.scss
│       │   └── _private.scss
│       ├── grid/
│       │   ├── _box-sizing.scss
│       │   ├── _direction-context.scss
│       │   ├── _display-context.scss
│       │   ├── _fill-parent.scss
│       │   ├── _media.scss
│       │   ├── _omega.scss
│       │   ├── _outer-container.scss
│       │   ├── _pad.scss
│       │   ├── _private.scss
│       │   ├── _row.scss
│       │   ├── _shift.scss
│       │   ├── _span-columns.scss
│       │   ├── _to-deprecate.scss
│       │   └── _visual-grid.scss
│       └── settings/
│           ├── _disable-warnings.scss
│           ├── _grid.scss
│           └── _visual-grid.scss
├── about.md
├── assets/
│   └── icons/
│       ├── browserconfig.xml
│       └── manifest.json
├── circle.yml
├── css/
│   └── main.scss
├── feed.xml
├── index.html
├── js/
│   └── .gitkeep
├── posts.md
├── stackbit.yaml
└── typography.md

================================================
FILE CONTENTS
================================================

================================================
FILE: .editorconfig
================================================
# EditorConfig is awesome: http://EditorConfig.org

root = true

[*]
end_of_line = lf
insert_final_newline = true

[*.{html,js,scss}]
charset = utf-8
indent_style = tab
indent_size = 2

[*.{md,markdown,yml}]
indent_style = spaces
indent_size = 2


================================================
FILE: .gitignore
================================================
.DS_Store

# Compiled site
_site
.jekyll-cache/

# Sass garbage
.sass-cache

# Bundler
.bundle/
vendor/


================================================
FILE: .ruby-version
================================================
2.6.3


================================================
FILE: Gemfile
================================================
source 'https://rubygems.org'
gem 'jekyll', '<4'
gem 'jekyll-archives'
gem 'jekyll-sitemap'
gem 'jekyll-paginate-v2'


================================================
FILE: LICENSE.md
================================================
The MIT License (MIT)

Copyright (c) 2015 Ben Centra

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.


================================================
FILE: README.md
================================================
# Centrarium [![Circle CI](https://circleci.com/gh/bencentra/centrarium/tree/master.svg?style=svg)](https://circleci.com/gh/bencentra/centrarium/tree/master)

A simple yet classy theme for your Jekyll website or blog. Customizable to fit your style or brand.

Built with these awesome libraries:
* [Bourbon][bourbon]
* [Neat][neat]
* [Bitters][bitters]
* [Refills][refills]
* [Font Awesome][fontawesome]
* [HighlightJS][highlightjs]
* [Lightbox][lightbox]

Here's a [demo](http://bencentra.com/centrarium). It also works on [GitHub Pages](http://bencentra.github.io/centrarium/). I also use it for [my own website][bencentra].

Inspired by dirkfabisch's [Mediator](https://github.com/dirkfabisch/mediator) theme, which I previously used for my own blog, as well as [Type Theme](http://rohanchandra.github.io/type-theme/).

Cover image by Chris M. Morris ([flickr][cover]).

## Features

This theme comes with a number of features, including:
* Easily customizable fonts and colors
* Cover images for your homepage and blog posts
* Pagination enabled by default
* Archiving of posts by categories and tags
* Syntax highlighting for code snippets
* Disqus integration for post comments
* Lightbox for viewing full-screen photos and albums
* Google Analytics with custom page name tracking
* Social media integration (Twitter, Facebook, LinkedIn, GitHub, and more)

## Installation

If you're just getting started with Jekyll, you can use this repository as a starting point for your own site. Just [download this project](https://github.com/bencentra/centrarium/archive/master.zip) and add all the files to your project. Add your blog posts to the `posts/` directory, and create your pages with the proper Jekyll front matter (see `posts.html` for an example).

If your site already uses Jekyll, follow these steps:

1. Replace the files in the `_includes`, `_layouts`, and `_sass` directories with those from this project.
2. Replace your `index.html` with the one from this project, and copy over the `posts.html` file as well.
3. Copy the contents of the `_config.yml` from this project in to yours, and update the necessary information.

Don't forget to install Jekyll and other dependencies:
```bash
# cd into project directory
cd centrarium
# install Bundler if you don't have it already
gem install bundler
# install jekyll, jekyll-archives, jekyll-sitemap, and jekyll-paginate
bundle install
```

## Stackbit Deploy

This theme is ready to import into Stackbit. This theme can be deployed to Netlify and you can connect any headless CMS including Forestry, NetlifyCMS, DatoCMS or Contentful. 

[![Create with Stackbit](https://assets.stackbit.com/badge/create-with-stackbit.svg)](https://app.stackbit.com/create?theme=https://github.com/bencentra/centrarium)

## Updating Header and Footer Links

Links in the header and footer are auto-generated. Links will be made for all files marked `category: page`, that have a title, and have the custom `main_nav` front-matter variable set to `true`. You can modify the rules for link generation in `_layouts/nav_links.html`.

## Updating Styles

If you want change the CSS of the theme, you'll probably want to check out these files in the `_sass/` directory:

* `base/_variables.scss`: Common values found throughout the project, including base font size, font families, colors, and more.
* `base/_typography.scss`: Base typography values for the site (see `typography.html` for a demonstration)
* `_layout.scss`: The primary styles for the layout and design of the theme.

### Important Variables

Here are the important variables from `base/_variables.scss` you can tweak to customize the theme to your liking:

* `$base-font-family`: The font-family of the body text. Make sure to `@import` any new fonts!
* `$heading-font-family`: The font-family of the headers. Make sure to `@import` any new fonts!
* `$base-font-size`: The base font-size. Defaults to $em-base from Bourbon (`bourbon/settings/_px-to-em.scss`).
* `$base-font-color`: The color for the body text.
* `$action-color`: The color for links in the body text.
* `$highlight-color`: The color for the footer and page headers (when no cover image provided).

## Configuration

All configuration options can be found in `_config.yml`.

### Site Settings

* __title:__ The title for your site. Displayed in the navigation menu, the `index.html` header, and the footer.
* __subtitle:__ The subtitle of your site. Displayed in the `index.html` header.
* __email:__ Your email address, displayed with the Contact info in the footer.
* __name:__ Your name. _Currently unused._
* __description:__ The description of your site. Used for search engine results and displayed in the footer.
* __baseurl:__ The subpath of your site (e.g. /blog/).
* __url:__ The base hostname and protocol for your site.
* __cover:__ The relative path to your site's cover image.
* __logo:__ The relative path to your site's logo. Used in the navigation menu instead of the title if provided.

### Build Settings

* __markdown:__ Markdown parsing engine. Default is kramdown.
* __inter_post_navigation:__ Whether to render links to the next and previous post on each post.

### Pagination settings

See the documentation for [jekyll-paginate-v2](https://github.com/sverrirs/jekyll-paginate-v2/blob/master/README-GENERATOR.md#site-configuration) for more details.

### Archive Settings

Although this theme comes with a combined, categorized archive (see `posts.html`), you can enable further archive creation thanks to [jekyll-archives][archives]. Support for category and tag archive pages is included, but you can also add your own archive pages for years, months, and days.

To change archive settings, see the __jekyll-archives__ section of `_config.yml`:

```yml
jekyll-archives:
  enabled:
    - categories
    - tags
  layout: 'archive'
  permalinks:
    category: '/category/:name/'
    tag: '/tag/:name/'
```

To fully disable the archive, remove the __jekyll-archives__ section AND remove it from the __gems__ list.

__NOTE:__ the Jekyll Archive gem is NOT included with GitHub pages! Disable the archive feature if you intend to deploy your site to GitHub pages. [Here is a guide](http://ixti.net/software/2013/01/28/using-jekyll-plugins-on-github-pages.html) on how you can use the `jekyll archive` gem with GitHub pages. The general gist: compile the Jekyll site locally and then push that compiled site to GitHub.

A sitemap is also generated using [jekyll-sitemap][sitemap].

### Syntax Highlighting Settings

Inside of a post, you can enable syntax highlighting with the `{% highlight <language> %}` Liquid tag. For example:

```
{% highlight javascript %}
function demo(string, times) {
  for (var i = 0; i < times; i++) {
    console.log(string);
  }
}
demo("hello, world!", 10);
{% endhighlight %}
```

You can change the [HighlightJS theme][highlightjs_theme] in `_config.yml`:

```yml
highlightjs_theme: "monokai_sublime"
```

### Disqus Settings

You can enable [Disqus][disqus] comments for you site by including one config option:

* __disqus_shortname:__ Your Disqus username. If the property is set, Disqus comments will be included with your blog posts.

If you want to disable Disqus for only a specific page, add __disqus_disabled: true__ to the page's front matter.

### Google Analytics Settings

You can enable basic [Google Analytics][ga] pageview tracking by including your site's tracking ID:

* __ga_tracking_id__: The Tracking ID for your website. You can find it on your Google Analytics dashboard. If the property is set, Google Analytics will be added to the footer of each page.

### Social Settings

Your personal social network settings are combined with the social sharing options. In the __social__ section of `_config.yml`, include an entry for each network you want to include. For example:

```yml
social:
  - name: Twitter                         # Name of the service
    icon: twitter                         # Font Awesome icon to use (minus fa- prefix)
    username: TheBenCentra                # (User) Name to display in the footer link
    url: https://twitter.com/TheBenCentra # URL of your profile (leave blank to not display in footer)
    desc: Follow me on Twitter            # Description to display as link title, etc
    share: true                           # Include in the "Share" section of posts
```

### Social Protocols

Using the Open Graph Protocol or Twitter Card metadata, you can automatically set the images and text used when people share your site on Twitter or Facebook. These take a bit of setup, but are well worth it. The relevant fields are at the end of the `_config.yml` file.

Also there is another protocol, the Open Source protocol, for saying where your site is hosted if the source is open. This helps develops more easily see your code if they are interested, or if they have issues. For more, see http://osprotocol.com.

### Category Descriptions

You can enhance the `posts.html` archive page with descriptions of your post categories. See the __descriptions__ section of `_config.yml`:

```yml
# Category descriptions (for archive pages)
descriptions:
  - cat: jekyll
    desc: "Posts describing Jekyll setup techniques."
```

### Custom Page-Specific Javascript

You can add page-specific javascript files by adding them to the top-level `/js` directory and including the filename in the __custom_js__ page's configuration file:

```yml
# Custom js (for individual pages)
---
layout: post
title:  "Dummy Post"
date:   2015-04-18 08:43:59
author: Ben Centra
categories: Dummy
custom_js:
- Popmotion
- Vue
---
```

The `/js/` directory would contain the corresponding files:

```bash
$ ls js/
Popmotion.js Vue.js
```

## Contributing

Want to help make this theme even better? Contributions from the community are welcome!

Please follow these steps:

1. Fork/clone this repository.
2. Develop (and test!) your changes.
3. Open a pull request on GitHub. A description and/or screenshot of changes would be appreciated!
4. I ([Ben Centra](https://github.com/bencentra)) will review and merge the pull request.

## License

MIT. See [LICENSE.MD](https://github.com/bencentra/centrarium/blob/master/LICENSE.md).

[bencentra]: http://bencentra.com
[bourbon]: http://bourbon.io/
[neat]: http://neat.bourbon.io/
[bitters]: http://bitters.bourbon.io/
[refills]: http://refills.bourbon.io/
[fontawesome]: http://fortawesome.github.io/Font-Awesome/
[highlightjs]: https://highlightjs.org/
[highlightjs_theme]: https://highlightjs.org/static/demo/
[lightbox]: http://lokeshdhakar.com/projects/lightbox2/
[cover]: https://www.flickr.com/photos/79666107@N00/3796678503/in/photolist-6MuYfc-61Rtft-8XzPmY-a6Cozm-54eSMs-6oMJmk-aepZQq-9YkPHp-fiAEGE-dVP4Z5-oxPyJP-atKUFJ-9YHWA5-9YF2f2-9YF2gR-9YHVGN-9YHVvs-qZYYQ6-4JqP2i-a2peGy-9YHVUm-9YHVF7-9YHVCL-9YF3NK-cYteMo-aiPmb9-69dtAi-9YF21x-4aWpmn-7SLiUL-77pqVX-8vXbYv-4HGDSH-a2h5P1-8LsZrQ-9aj1ez-auPZ7q-9YHVMd-9YF2bi-9YF23D-8LpWpn-9an6KL-9YHVZL-dqZ3Cz-2GuvnX-9YHWUo-9YHVWd-p5Roh5-i1zTbv-6sYrUT
[disqus]: https://disqus.com/
[ga]: http://www.google.com/analytics/
[archives]: https://github.com/jekyll/jekyll-archives
[sitemap]: https://github.com/jekyll/jekyll-sitemap


================================================
FILE: _config.yml
================================================
# External plugins
# See http://ixti.net/software/2013/01/28/using-jekyll-plugins-on-github-pages.html for making `jekyll archives` work.
plugins:
  - jekyll-archives # Sorry, not GitHub pages friendly!
  - jekyll-sitemap
  - jekyll-paginate-v2

exclude:
  - "/vendor/"

# Site settings
title: Centrarium
subtitle: "A simple yet classy theme for your Jekyll website or blog"
email: blcentra@gmail.com
name: Ben Centra
description: >
  A simple yet classy theme for your Jekyll website or blog.
# Base URL of site (i.e. /blog). It should always start with a slash,
# and never end with a slash. Set it to a blank value if hosting at the
# root of your server.
baseurl: "" # the subpath of your site, e.g. /blog/
url: "" # the base hostname & protocol for your site
cover: "/assets/header_image.jpg"
logo: "/assets/logo.png"

# Build settings
markdown: kramdown
inter_post_navigation: false
highlightjs_theme: "monokai-sublime"

# Pagination Settings
# https://github.com/sverrirs/jekyll-paginate-v2/blob/master/README-GENERATOR.md#site-configuration
pagination:
  enabled: true
  per_page: 5
  permalink: "/page/:num/"
  sort_reverse: true

# Archive settings (see https://github.com/jekyll/jekyll-archives/)
jekyll-archives:
  enabled:
    - categories
    - tags
  layout: 'archive'
  permalinks:
    category: '/category/:name/'
    tag: '/tag/:name/'

# Disqus comments
# disqus_shortname: bencentra

# Google analytics
# ga_tracking_id: "UA-XXXX-1"

# Category descriptions (for archive pages)
descriptions:
  - cat: jekyll
    desc: "Posts describing Jekyll setup techniques."

  - cat: dummy
    desc: "Just some placeholder posts, lorem ipsum and the rest."

# Social icons and sharing options
#
# Social settings are used in two places:
# * In the footer, as links to your personal profiles
# * After each blog post for sharing widgets
#
# Example:
#
# social:
#   - name: Twitter                         # Name of the service
#     icon: twitter                         # Font Awesome icon to use (minus fa- prefix)
#     username: "@TheBenCentra"             # (User) Name to display in the footer link
#     url: https://twitter.com/TheBenCentra # URL of your profile (leave blank to not display in footer)
#     desc: Follow me on Twitter            # Description to display as link title, etc
#     share: true                           # Include in the "Share" section of posts
social:
  - name: Twitter
    icon: twitter
    username: TheBenCentra
    url: https://twitter.com/TheBenCentra
    desc: Follow me on Twitter
    share: true

  - name: Facebook
    icon: facebook
    username: thebencentra
    url: ""
    desc: Friend me on Facebook
    share: true

  - name: GitHub
    icon: github
    username: bencentra
    url: https://github.com/bencentra
    desc: Fork me on GitHub
    share: false

  - name: LinkedIn
    icon: linkedin
    username: Ben Centra
    url: https://www.linkedin.com/pub/ben-centra/47/769/60a
    desc: Connect with me on LinkedIn
    share: true

  - name: Google+
    icon: google-plus
    username: ""
    url: ""
    desc: Add me to your Circles
    share: true

  - name: YouTube
    icon: youtube
    username: ""
    url: ""
    desc: Subscribe on YouTube
    share: false

  - name: Instagram
    icon: instagram
    username: ""
    url: ""
    desc: Follow me on Instagram
    share: false

  - name: Pinterest
    icon: pinterest
    username: ""
    url: ""
    desc: Follow me on Pinterest
    share: true

  - name: SoundCloud
    icon: soundcloud
    username: ""
    url: ""
    desc: Follow me on SoundCloud
    share: false

  - name: Tumblr
    icon: tumblr
    username: ""
    url: ""
    desc: Follow me on Tumblr
    share: false

  - name: Steam
    icon: steam
    username: ""
    url: ""
    desc: Friend me on Steam
    share: false

  - name: Dribbble
    icon: dribbble
    username: ""
    url: ""
    desc: Follow me on Dribble
    share: false

  - name: Vimeo
    icon: vimeo-square
    username: ""
    url: ""
    desc: Follow me on Vimeo
    share: false

  - name: Vine
    icon: vine
    username: ""
    url: ""
    desc: Follow me on Vine
    share: false

  - name: Reddit
    icon: reddit
    username: ""
    url: ""
    desc: Share to Reddit
    share: true

  - name: "Hacker News"
    icon: hacker-news
    username: ""
    url: ""
    desc: Share to Hacker News
    share: false

# Social sharing protocols
# These are for automatically generating sharing metadata for FB and Twitter
# OS Protocol is for sharing the source of your site, if you're interested. For more, see osprotocol.com
protocols:
    fb_image: "/assets/logo.png"
    fb_image_width: 612
    fb_image_height: 605
    fb_image_type: "image/png"

    twitter_image: "/assets/logo.png"

    os_repo: "https://github.com/bencentra/centrarium.com"
    os_rcs_type: "git"
    os_src: "git@github.com:bencentra/centrarium.com.git"


================================================
FILE: _includes/footer.html
================================================
<footer class="site-footer">

  <div class="wrapper">

    <h3 class="footer-heading">{{ site.title }}</h3>

    <div class="site-navigation">

      <p><strong>Site Map</strong></p>
      <ul class="pages">
				{% include nav_links.html %}
      </ul>
    </div>

    <div class="site-contact">

      <p><strong>Contact</strong></p>
      <ul class="social-media-list">
        <li>
          <a href="mailto:{{ site.email }}">
            <i class="fa fa-envelope-o"></i>
            <span class="username">{{ site.email }}</span>
          </a>
        </li>

        {% for social in site.social %}
          {% if social.url != "" %}
          <li>
            <a href="{{ social.url }}" title="{{ social.desc }}">
              <i class="fa fa-{{ social.icon }}"></i>
              <span class="username">{% if social.username %}{{ social.username }}{% else %}{{ social.name }}{% endif %}</span>
            </a>
          </li>
          {% endif %}
        {% endfor %}

      </ul>
    </div>

    <div class="site-signature">
      <p class="rss-subscribe text"><strong>Subscribe <a href="{{ "/feed.xml" | prepend: site.baseurl }}">via RSS</a></strong></p>
      <p class="text">{{ site.description }}</p>
    </div>

  </div>

</footer>

<!-- Scripts -->
<script src="//code.jquery.com/jquery-3.4.1.min.js"></script>
<script src="//cdnjs.cloudflare.com/ajax/libs/highlight.js/9.15.10/highlight.min.js"></script>
<script src="//cdnjs.cloudflare.com/ajax/libs/lightbox2/2.11.1/js/lightbox.min.js"></script>
<script src="//unpkg.com/popper.js@1"></script>
<script src="//unpkg.com/tippy.js@5"></script>

<script type="text/javascript">
$(document).ready(function() {
  // Default syntax highlighting
  hljs.initHighlightingOnLoad();

  // Header
  var menuToggle = $('#js-mobile-menu').unbind();
  $('#js-navigation-menu').removeClass("show");
  menuToggle.on('click', function(e) {
    e.preventDefault();
    $('#js-navigation-menu').slideToggle(function(){
      if($('#js-navigation-menu').is(':hidden')) {
        $('#js-navigation-menu').removeAttr('style');
      }
    });
  });

	// Enable tooltips via Tippy.js
	if (Array.isArray(window.tooltips)) {
		window.tooltips.forEach(function(tooltip) {
			var selector = tooltip[0];
			var config = tooltip[1];
			tippy(selector, config);
		})
	}
});

</script>

{% if page.custom_js %}
<!-- Custom page specific js files -->
  {% for js_file in page.custom_js %}
    <script src='/js/{{ js_file }}.js' type="text/javascript"></script>
  {% endfor %}
{% endif %}

{% if site.ga_tracking_id %}
<!-- Google Analytics -->
<script>
  (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
  (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
  m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
  })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
  ga('create', '{{ site.ga_tracking_id }}', 'auto');
  ga('send', 'pageview', {
    'page': '{{ page.url }}',
    'title': '{% if page.title %}{{ page.title }}{% else %}{{ site.title }}{% endif %}'
  });
</script>
{% endif %}


================================================
FILE: _includes/head.html
================================================
<head>
  <meta charset="utf-8">
  <meta http-equiv="X-UA-Compatible" content="IE=edge">
  <meta name="viewport" content="width=device-width, initial-scale=1">

  <title>{% if page.title %}{{ page.title }}{% else %}{{ site.title }}{% endif %}</title>
  <meta name="description" content="{% if page.excerpt %}{{ page.excerpt | strip_html | strip_newlines | truncate: 160 }}{% else %}{{ site.description }}{% endif %}">
  {% if site.name %}
  <meta name="author" content="{{ site.name }}">
  <meta name="copyright" content="&copy; {{ site.name }} {{ site.time | date: '%Y' }}">
  {% endif %}

  <!-- External libraries -->
  <link rel="stylesheet" href="//maxcdn.bootstrapcdn.com/font-awesome/4.6.3/css/font-awesome.min.css">
  <link rel="stylesheet" href="//cdnjs.cloudflare.com/ajax/libs/highlight.js/9.9.0/styles/{{ site.highlightjs_theme }}.min.css">
  <link rel="stylesheet" href="//cdnjs.cloudflare.com/ajax/libs/lightbox2/2.7.1/css/lightbox.css">

  <!-- Favicon and other icons (made with http://www.favicon-generator.org/) -->
  <link rel="shortcut icon" href="{{ "/assets/icons/favicon.ico" | prepend: site.baseurl }}" type="image/x-icon">
  <link rel="icon" href="{{ "/assets/icons/favicon.ico" | prepend: site.baseurl }}" type="image/x-icon">
  <link rel="apple-touch-icon" sizes="57x57" href="{{ "/assets/icons/apple-icon-57x57.png" | prepend: site.baseurl }}">
  <link rel="apple-touch-icon" sizes="60x60" href="{{ "/assets/icons/apple-icon-60x60.png" | prepend: site.baseurl }}">
  <link rel="apple-touch-icon" sizes="72x72" href="{{ "/assets/icons/apple-icon-72x72.png" | prepend: site.baseurl }}">
  <link rel="apple-touch-icon" sizes="76x76" href="{{ "/assets/icons/apple-icon-76x76.png" | prepend: site.baseurl }}">
  <link rel="apple-touch-icon" sizes="114x114" href="{{ "/assets/icons/apple-icon-114x114.png" | prepend: site.baseurl }}">
  <link rel="apple-touch-icon" sizes="120x120" href="{{ "/assets/icons/apple-icon-120x120.png" | prepend: site.baseurl }}">
  <link rel="apple-touch-icon" sizes="144x144" href="{{ "/assets/icons/apple-icon-144x144.png" | prepend: site.baseurl }}">
  <link rel="apple-touch-icon" sizes="152x152" href="{{ "/assets/icons/apple-icon-152x152.png" | prepend: site.baseurl }}">
  <link rel="apple-touch-icon" sizes="180x180" href="{{ "/assets/icons/apple-icon-180x180.png" | prepend: site.baseurl }}">
  <link rel="icon" type="image/png" sizes="192x192"  href="{{ "/assets/icons/android-icon-192x192.png" | prepend: site.baseurl }}">
  <link rel="icon" type="image/png" sizes="32x32" href="{{ "/assets/icons/favicon-32x32.png" | prepend: site.baseurl }}">
  <link rel="icon" type="image/png" sizes="96x96" href="{{ "/assets/icons/favicon-96x96.png" | prepend: site.baseurl }}">
  <link rel="icon" type="image/png" sizes="16x16" href="{{ "/assets/icons/favicon-16x16.png" | prepend: site.baseurl }}">
  <link rel="manifest" href="{{ "/assets/icons/manifest.json" | prepend: site.baseurl }}">
  <meta name="msapplication-TileColor" content="#ffffff">
  <meta name="msapplication-TileImage" content="{{ "/assets/icons/ms-icon-144x144.png" | prepend: site.baseurl }}">
  <meta name="theme-color" content="#ffffff">

  {% if site.protocols.fb_image %}
  <!-- Facebook OGP cards -->
  <meta property="og:description" content="{% if page.excerpt %}{{ page.excerpt | strip_html | strip_newlines | truncate: 160 }}{% else %}{{ site.description }}{% endif %}" />
  <meta property="og:url" content="{% if page.url %}{{ site.url }}{{ page.url }}{% else %}{{ site.url }}{% endif %}">
  <meta property="og:site_name" content="{{ site.title }}" />
  <meta property="og:title" content="{% if page.title %}{{ page.title }}{% else %}{{ site.title }}{% endif %}" />
  <meta property="og:type" content="website" />
  <meta property="og:image" content="{% if page.cover %}{{ page.cover | prepend: site.baseurl | prepend: site.url }}{% else %}{{ site.protocols.fb_image | prepend: site.baseurl | prepend: site.url }}{% endif %}" />
  <meta property="og:image:type" content="{{ site.protocols.fb_image_type }}" />
  <meta property="og:image:width" content="{{ site.protocols.fb_image_width }}" />
  <meta property="og:image:height" content="{{ site.protocols.fb_image_height }}" />
  {% endif %}

  {% if site.protocols.twitter_image %}
  <!-- Twitter: card tags -->
  <meta name="twitter:card" content="summary">
  <meta name="twitter:title" content="{% if page.title %}{{ page.title }}{% else %}{{ site.title }}{% endif %}">
  <meta name="twitter:description" content="{% if page.excerpt %}{{ page.excerpt | strip_html | strip_newlines | truncate: 160 }}{% else %}{{ site.description }}{% endif %}">
  <meta name="twitter:image" content="{% if page.cover %}{{ page.cover | prepend: site.baseurl | prepend: site.url }}{% else %}{{ site.protocols.twitter_image | prepend: site.baseurl | prepend: site.url }}{% endif %}">
  <meta name="twitter:url" content="{% if page.url %}{{ site.url }}{{ page.url }}{% else %}{{ site.url }}{% endif %}">
  {% endif %}

  {% if protocols.os_repo and protocols.os_rcs_type and protocols.os_src %}
  <!-- Open Source Protocol -->
  <link rel="profile" href="http://osprotocol.com" />
  <meta property="os:repo" content="{{ protocols.os_repo }}" />
  <meta property="os:rcs_type" content="{{ protocols.os_rcs_type }}" />
  <meta property="os:src" content="{{ protocols.os_src }}" />
  {% endif %}

  <!-- Site styles -->
  <link rel="stylesheet" href="{{ "/css/main.css" | prepend: site.baseurl }}">
  <link rel="canonical" href="{{ page.url | replace:'index.html','' | prepend: site.baseurl | prepend: site.url }}">
	<link rel="alternate" type="application/rss+xml" title="{{ site.title }}" href="{{ "/feed.xml" | prepend: site.baseurl | prepend: site.url }}" />
	
	<!-- Tooltips -->
	<script type="text/javascript">
		window.tooltips = []
	</script>
</head>


================================================
FILE: _includes/header.html
================================================
<header class="navigation" role="banner">
  <div class="navigation-wrapper">
    <a href="{{ site.baseurl }}/" class="logo">
      {% if site.logo %}
      <img src="{{ site.logo | prepend: site.baseurl }}" alt="{{ site.title }}">
      {% else %}
      <span>{{ site.title }}</span>
      {% endif %}
    </a>
    <a href="javascript:void(0)" class="navigation-menu-button" id="js-mobile-menu">
      <i class="fa fa-bars"></i>
    </a>
    <nav role="navigation">
      <ul id="js-navigation-menu" class="navigation-menu show">
				{% include nav_links.html %}
      </ul>
    </nav>
  </div>
</header>


================================================
FILE: _includes/nav_links.html
================================================
{% for page in site.pages %}
	{% if page.title and page.main_nav == true %}
	<li class="nav-link"><a href="{{ page.url | prepend: site.baseurl }}">{{ page.title }}</a>
	{% endif %}
{% endfor %}


================================================
FILE: _includes/page_divider.html
================================================
<span class="page-divider">
  <span class="one"></span>
  <span class="two"></span>
</span>


================================================
FILE: _includes/tooltips/.editorconfig
================================================
root = false

[*]
insert_final_newline = false


================================================
FILE: _includes/tooltips/example.html
================================================
Put your tooltip content here. <em>It</em> <strong>can</strong> <u>even</u> be <span style=\"font-size: 2em\">HTML</span>

================================================
FILE: _layouts/archive.html
================================================
---
layout: default
---
<div class="wrapper">
<div class="page">

  <header class="post-header">
    <h1 class="post-title">Posts in "{{ page.title | capitalize }}"</h1>
  </header>

  {% include page_divider.html %}

  <article class="post-content">
    <ul class="posts-list">
      {% for post in page.posts %}
      <li><strong><a class="post-link" href="{{ post.url | prepend: site.baseurl }}">{{ post.title }}</a></strong><span class="post-date"> - {{ post.date | date: "%B %-d, %Y" }}</span></li>
      {% endfor %}
    </ul>
  </article>

</div>
</div>
<br>


================================================
FILE: _layouts/default.html
================================================
<!DOCTYPE html>
<html>

  {% include head.html %}

  <body>

    {% include header.html %}

    <div class="page-content">
        {{ content }}
    </div>

    {% include footer.html %}

  </body>

</html>


================================================
FILE: _layouts/page.html
================================================
---
layout: default
---
<div class="wrapper">
<div class="page">

  <header class="post-header">
    <h1 class="post-title">{{ page.title }}</h1>
  </header>

  {% include page_divider.html %}

  <article class="post-content">
    {{ content }}
  </article>

</div>
</div>


================================================
FILE: _layouts/post.html
================================================
---
layout: default
---
<div class="post">

<div class="post-header-container {% if page.cover %}has-cover{% endif %}" {% if page.cover %}style="background-image: url({{ page.cover | prepend: site.baseurl }});"{% endif %}>
  <div class="scrim {% if page.cover %}has-cover{% endif %}">
    <header class="post-header">
      <h1 class="title">{{ page.title }}</h1>
      <p class="info">by <strong>{{ page.author }}</strong></p>
    </header>
  </div>
</div>

<div class="wrapper">

{% unless page.cover %} {% include page_divider.html %} {% endunless %}

<section class="post-meta">
  <div class="post-date">{{ page.date | date: "%B %-d, %Y" }}</div>
  <div class="post-categories">
  {% if page.categories.size > 0 %}in {% for cat in page.categories %}
    {% if site.jekyll-archives %}
    <a href="{{ site.baseurl }}/category/{{ cat }}">{{ cat | capitalize }}</a>{% if forloop.last == false %}, {% endif %}
    {% else %}
    <a href="{{ site.baseurl }}/posts/#{{ cat }}">{{ cat | capitalize }}</a>{% if forloop.last == false %}, {% endif %}
    {% endif %}
  {% endfor %}{% endif %}
  </div>
</section>

<article class="post-content">
  {{ content }}
</article>

{% if site.jekyll-archives %}
{% if page.tags.size > 0 %}
<section class="tags">
  <strong>Tags:</strong> {% for tag in page.tags %}<a href="{{ site.baseurl }}/tag/{{ tag }}">{{ tag }}</a>{% if forloop.last == false %},&nbsp;{% endif %}{% endfor %}
</section>
{% endif %}
{% endif %}

<section class="rss">
  <p class="rss-subscribe text"><strong>Subscribe <a href="{{ "/feed.xml" | prepend: site.baseurl }}">via RSS</a></strong></p>
</section>

<section class="share">
  <span>Share: </span>
  {% for social in site.social %}
    {% capture full_url %}{{ site.url }}{{ site.baseurl }}{{ page.url }}{% endcapture %}
    {% if social.name == "Twitter" and social.share == true %}
      <a href="//twitter.com/share?text={{ page.title | cgi_escape }}&url={{ full_url | cgi_escape}}&via={{social.username}}"
        onclick="window.open(this.href, '{{ social.icon }}-share', 'width=550,height=255');return false;">
        <i class="fa fa-{{ social.icon | remove_first: '-square' }}-square fa-lg"></i>
      </a>
    {% endif %}
    {% if social.name == "Facebook" and social.share == true %}
      <a href="//www.facebook.com/sharer.php?t={{ page.title | cgi_escape }}&u={{ full_url | cgi_escape}}"
        onclick="window.open(this.href, '{{ social.icon }}-share', 'width=550,height=255');return false;">
        <i class="fa fa-{{ social.icon | remove_first: '-square' }}-square fa-lg"></i>
      </a>
    {% endif %}
    {% if social.name == "Google+" and social.share == true %}
      <a href="//plus.google.com/share?title={{ page.title | cgi_escape }}&url={{ full_url | cgi_escape}}"
        onclick="window.open(this.href, '{{ social.icon }}-share', 'width=550,height=255');return false;">
        <i class="fa fa-{{ social.icon | remove_first: '-square' }}-square fa-lg"></i>
      </a>
    {% endif %}
    {% if social.name == "LinkedIn" and social.share == true %}
      <a href="//www.linkedin.com/shareArticle?mini=true&url={{ full_url | cgi_escape}}"
        onclick="window.open(this.href, '{{ social.icon }}-share', 'width=550,height=255');return false;">
        <i class="fa fa-{{ social.icon | remove_first: '-square' }}-square fa-lg"></i>
      </a>
    {% endif %}
    {% if social.name == "Pinterest" and social.share == true %}
      <a href="//www.pinterest.com/pin/create/button/?description={{ page.title | cgi_escape }}&url={{ full_url | cgi_escape}}&media={{ site.url }}{% if page.cover %}{{ page.cover | prepend: site.baseurl  }}{% elsif site.cover %}{{ site.cover | prepend: site.baseurl }}{% else %}{{ site.logo | prepend: site.baseurl }}{% endif %}"
        onclick="window.open(this.href, '{{ social.icon }}-share', 'width=550,height=255');return false;">
        <i class="fa fa-{{ social.icon | remove_first: '-square' }}-square fa-lg"></i>
      </a>
    {% endif %}
    {% if social.name == "Reddit" and social.share == true %}
      <a href="//www.reddit.com/submit" onclick="window.location = '//www.reddit.com/submit?url=' + encodeURIComponent('{{ full_url }}') + '&title={{page.title}}'; return false">
        <i class="fa fa-{{ social.icon | remove_first: '-square' }}-square fa-lg"></i>
      </a>
    {% endif %}
    {% if social.name == "Hacker News" and social.share == true %}
      <a href="//news.ycombinator.com/submitlink" onclick="window.location = '//news.ycombinator.com/submitlink?u=' + encodeURIComponent('{{ full_url }}') + '&t={{page.title}}'; return false">
        <i class="fa fa-{{ social.icon | remove_first: '-square' }} fa-lg"></i>
      </a>
    {% endif %}
  {% endfor %}
</section>
{% if site.inter_post_navigation == true %}
	<section class="post-navigation">
		<span class="prev-post">
			{% if page.previous.url %}
				<a href="{{page.previous.url | prepend: site.baseurl}}">
					<span class="fa-stack fa-lg">
						<i class="fa fa-square fa-stack-2x"></i>
						<i class="fa fa-angle-double-left fa-stack-1x fa-inverse"></i>
					</span>
					<span class="page-number">{{page.previous.title}}</span>
				</a>
			{% endif %}
		</span>
		<span class="next-post">
			{% if page.next.url %}
				<a href="{{page.next.url | prepend: site.baseurl}}">
					<span class="page-number">{{page.next.title}}</span>
					<span class="fa-stack fa-lg">
						<i class="fa fa-square fa-stack-2x"></i>
						<i class="fa fa-angle-double-right fa-stack-1x fa-inverse"></i>
					</span>
				</a>
			{% endif %}
		</span>
	</section>
{% endif %}

{% if site.disqus_shortname %}
{% unless page.disqus_disabled %}
<section class="disqus">
  <div id="disqus_thread"></div>
  <script type="text/javascript">
    var disqus_shortname = '{{ site.disqus_shortname }}';

    /* * * DON'T EDIT BELOW THIS LINE * * */
    (function() {
        var dsq = document.createElement('script'); dsq.type = 'text/javascript'; dsq.async = true;
        dsq.src = '//' + disqus_shortname + '.disqus.com/embed.js';
        (document.getElementsByTagName('head')[0] || document.getElementsByTagName('body')[0]).appendChild(dsq);
    })();
  </script>
  <noscript>Please enable JavaScript to view the <a href="http://disqus.com/?ref_noscript">comments powered by Disqus.</a></noscript>
  <a href="http://disqus.com" class="dsq-brlink">comments powered by <span class="logo-disqus">Disqus</span></a>
</section>
{% endunless %}
{% endif %}

</div>
</div>


================================================
FILE: _posts/2015-04-18-dummy.md
================================================
---
layout: post
title:  "Dummy Post"
date:   2015-04-18T14:25:52-05:00
author: Ben Centra
categories: Dummy
---

This is just a dummy post. Lorem ipsum and all the rest.

Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod
tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam,
quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo
consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse
cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non
proident, sunt in culpa qui officia deserunt mollit anim id est laborum.


================================================
FILE: _posts/2015-04-18-dummy2.md
================================================
---
layout: post
title:  "Dummy Post 2"
date:   2015-04-18T14:25:52-05:00
author: Ben Centra
categories: Dummy
---

This is just a dummy post. Lorem ipsum and all the rest.

Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod
tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam,
quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo
consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse
cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non
proident, sunt in culpa qui officia deserunt mollit anim id est laborum.


================================================
FILE: _posts/2015-04-18-dummy3.md
================================================
---
layout: post
title:  "Dummy Post 3"
date:   2015-04-18T14:25:52-05:00
author: Ben Centra
categories: Dummy
---

This is just a dummy post. Lorem ipsum and all the rest.

Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod
tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam,
quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo
consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse
cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non
proident, sunt in culpa qui officia deserunt mollit anim id est laborum.


================================================
FILE: _posts/2015-04-18-dummy4.md
================================================
---
layout: post
title:  "Dummy Post 4"
date:   2015-04-18T14:25:52-05:00
author: Ben Centra
categories: Dummy
tags: ipsum
---

This is just a dummy post. Lorem ipsum and all the rest.

Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod
tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam,
quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo
consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse
cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non
proident, sunt in culpa qui officia deserunt mollit anim id est laborum.


================================================
FILE: _posts/2015-04-18-dummy5.md
================================================
---
layout: post
title:  "Dummy Post 5"
date:   2015-04-18T14:25:52-05:00
author: Ben Centra
categories: Dummy
tags: lorem
---

This is just a dummy post. Lorem ipsum and all the rest.

Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod
tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam,
quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo
consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse
cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non
proident, sunt in culpa qui officia deserunt mollit anim id est laborum.


================================================
FILE: _posts/2015-04-18-dummy6.md
================================================
---
layout: post
title:  "Dummy Post 6"
date:   2015-04-18T14:25:52-05:00
author: Ben Centra
categories: Dummy
tags: lorem ipsum
---

This is just a dummy post. Lorem ipsum and all the rest.

Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod
tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam,
quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo
consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse
cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non
proident, sunt in culpa qui officia deserunt mollit anim id est laborum.


================================================
FILE: _posts/2015-04-18-welcome-to-jekyll.md
================================================
---
layout: post
title:  "Welcome to Jekyll!"
date:   2015-04-18T14:25:52-05:00
author: Ben Centra
categories: Jekyll
tags:	jekyll welcome
cover:  "/assets/instacode.png"
---

You’ll find this post in your `_posts` directory. Go ahead and edit it and re-build the site to see your changes. You can rebuild the site in many different ways, but the most common way is to run `jekyll serve`, which launches a web server and auto-regenerates your site when a file is updated.

## Adding New Posts

To add new posts, simply add a file in the `_posts` directory that follows the convention `YYYY-MM-DD-name-of-post.ext` and includes the necessary front matter. Take a look at the source for this post to get an idea about how it works.

### Tags and Categories

If you list one or more categories or tags in the front matter of your post, they will be included with the post on the page as links. Clicking the link will bring you to an auto-generated archive page for the category or tag, created using the [jekyll-archive][jekyll-archive] gem.

### Cover Images

To add a cover image to your post, set the "cover" property in the front matter with the relative URL of the image (i.e. <code>cover: "/assets/cover_image.jpg"</code>).

### Code Snippets

You can use [highlight.js][highlight] to add syntax highlight code snippets:

Use the [Liquid][liquid] `{% raw %}{% highlight <language> %}{% endraw %}` tag to add syntax highlighting to code snippets.

For instance, this template...
{% highlight html %}
{% raw %}{% highlight javascript %}    
function demo(string, times) {    
  for (var i = 0; i < times; i++) {    
    console.log(string);    
  }    
}    
demo("hello, world!", 10);
{% endhighlight %}{% endraw %}
{% endhighlight %}

...will come out looking like this:

{% highlight javascript %}
function demo(string, times) {
  for (var i = 0; i < times; i++) {
    console.log(string);
  }
}
demo("hello, world!", 10);
{% endhighlight %}

Syntax highlighting is done using [highlight.js][highlight]. You can change the active theme in [head.html](https://github.com/bencentra/centrarium/blob/2dcd73d09e104c3798202b0e14c1db9fa6e77bc7/_includes/head.html#L15).

### Images

Lightbox has been enabled for images. To create the link that'll launch the lightbox, add <code>data-lightbox</code> and <code>data-title</code> attributes to an <code>&lt;a&gt;</code> tag around your <code>&lt;img&gt;</code> tag. The result is:

<a href="//bencentra.com/assets/images/falcon9_large.jpg" data-lightbox="falcon9-large" data-title="Check out the Falcon 9 from SpaceX">
  <img src="//bencentra.com/assets/images/falcon9_small.jpg" title="Check out the Falcon 9 from SpaceX">
</a>

For more information, check out the [Lightbox][lightbox] website.

Check out the [Jekyll docs][jekyll] for more info on how to get the most out of Jekyll. File all bugs/feature requests at [Jekyll’s GitHub repo][jekyll-gh]. If you have questions, you can ask them on [Jekyll’s dedicated Help repository][jekyll-help].

[jekyll]:      http://jekyllrb.com
[jekyll-gh]:   https://github.com/jekyll/jekyll
[jekyll-help]: https://github.com/jekyll/jekyll-help
[highlight]:   https://highlightjs.org/
[lightbox]:    http://lokeshdhakar.com/projects/lightbox2/
[jekyll-archive]: https://github.com/jekyll/jekyll-archives
[liquid]: https://github.com/Shopify/liquid/wiki/Liquid-for-Designers


================================================
FILE: _posts/2015-04-19-dummy6.markdown
================================================
---
layout: post
title:  "Dummy Post 6"
date:   2015-04-19 08:43:59
author: Ben Centra
categories: Dummy
tags: lorem ipsum
---

This is just a dummy post. Lorem ipsum and all the rest.

Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod
tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam,
quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo
consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse
cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non
proident, sunt in culpa qui officia deserunt mollit anim id est laborum.


================================================
FILE: _posts/2015-04-20-welcome-to-jekyll.markdown
================================================
---
layout: post
title:  "Welcome to Jekyll!"
date:   2015-04-20 08:43:59
author: Ben Centra
categories: Jekyll
tags:	jekyll welcome
cover:  "/assets/instacode.png"
---

You’ll find this post in your `_posts` directory. Go ahead and edit it and re-build the site to see your changes. You can rebuild the site in many different ways, but the most common way is to run `jekyll serve`, which launches a web server and auto-regenerates your site when a file is updated.

## Adding New Posts

To add new posts, simply add a file in the `_posts` directory that follows the convention `YYYY-MM-DD-name-of-post.ext` and includes the necessary front matter. Take a look at the source for this post to get an idea about how it works.

### Tags and Categories

If you list one or more categories or tags in the front matter of your post, they will be included with the post on the page as links. Clicking the link will bring you to an auto-generated archive page for the category or tag, created using the [jekyll-archive][jekyll-archive] gem.

### Cover Images

To add a cover image to your post, set the "cover" property in the front matter with the relative URL of the image (i.e. <code>cover: "/assets/cover_image.jpg"</code>).

### Code Snippets

You can use [highlight.js][highlight] to add syntax highlight code snippets:

Use the [Liquid][liquid] `{% raw %}{% highlight <language> %}{% endraw %}` tag to add syntax highlighting to code snippets.

For instance, this template...
{% highlight html %}
{% raw %}{% highlight javascript %}    
function demo(string, times) {    
  for (var i = 0; i < times; i++) {    
    console.log(string);    
  }    
}    
demo("hello, world!", 10);
{% endhighlight %}{% endraw %}
{% endhighlight %}

...will come out looking like this:

{% highlight javascript %}
function demo(string, times) {
  for (var i = 0; i < times; i++) {
    console.log(string);
  }
}
demo("hello, world!", 10);
{% endhighlight %}

Syntax highlighting is done using [highlight.js][highlight]. You can change the active theme in [head.html](https://github.com/bencentra/centrarium/blob/2dcd73d09e104c3798202b0e14c1db9fa6e77bc7/_includes/head.html#L15).

### Blockquotes

> "Blockquotes will be indented, italicized, and given a subdued light gray font. These are good for side comments not directly related to your content, or long quotations from external sources." - Some Smart Guy

### Images

Lightbox has been enabled for images. To create the link that'll launch the lightbox, add <code>data-lightbox</code> and <code>data-title</code> attributes to an <code>&lt;a&gt;</code> tag around your <code>&lt;img&gt;</code> tag. The result is:

<a href="//bencentra.com/assets/images/falcon9_large.jpg" data-lightbox="falcon9-large" data-title="Check out the Falcon 9 from SpaceX">
  <img src="//bencentra.com/assets/images/falcon9_small.jpg" title="Check out the Falcon 9 from SpaceX">
</a>

For more information, check out the [Lightbox][lightbox] website.

### Tooltips

With Tippy.js, you can add tooltips to your text with a little bit of HTML and JavaScript. First, create the tooltip trigger: `<span class="tooltip" id="someId">trigger</span>`. Then in a `<script>` tag at the bottom of your page, add some code to initialize the tooltip when the document is ready: `window.tooltips.push(['#someId', { content: "Content" }])`

See the [Tippy.js docs](https://atomiks.github.io/tippyjs/) for additional configuration that you can provide for your tooltips.

You can also use a Liquid `include` to import tooltip text or HTML from an external file: 

```
window.tooltips.push(['#someOtherId', { content: "{% raw %}{% include tooltips/example.html %}{% endraw %}" }])
```

To modify the styles for tooltip triggers, find the `.tooltip` class in `_layout.scss`.

Here's an <span class="tooltip" id="someId">example tooltip</span>, and <span class="tooltip" id="someOtherId">here's another</span>.

<br/>
{% include page_divider.html %}

Check out the [Jekyll docs][jekyll] for more info on how to get the most out of Jekyll. File all bugs/feature requests at [Jekyll’s GitHub repo][jekyll-gh]. If you have questions, you can ask them on [Jekyll’s dedicated Help repository][jekyll-help].

[jekyll]:      http://jekyllrb.com
[jekyll-gh]:   https://github.com/jekyll/jekyll
[jekyll-help]: https://github.com/jekyll/jekyll-help
[highlight]:   https://highlightjs.org/
[lightbox]:    http://lokeshdhakar.com/projects/lightbox2/
[jekyll-archive]: https://github.com/jekyll/jekyll-archives
[liquid]: https://github.com/Shopify/liquid/wiki/Liquid-for-Designers

<script>
window.tooltips = window.tooltips || []
window.tooltips.push(['#someId', { content: "This is the text of the tooltip!" }])
window.tooltips.push(['#someOtherId', { content: "{% include tooltips/example.html %}", placement: "right" }])
</script>


================================================
FILE: _sass/_layout.scss
================================================
// Primary site layout for Centrarium Theme

/*
*	Variables
*/
$b3: 480px;
$mobile: $b3;
$b2: 768px;
$tablet: $b2;
$b1: 960px;
$desktop: $b1;

/*
*	Globals
*/
html, body {
	margin: 0;
	padding: 0;
	width: 100%;
}

ol.default {
  @extend %default-ol;
}

ul.default {
	@extend %default-ul;
}

code {
	background-color: #eee;
	display: inline-block;
	border-radius: 3px;
	padding: 0 3px;
}

blockquote {
	color: $medium-gray;
	font-style: italic;
	border-left: 2px solid $light-gray;
	margin-left: 0;
	padding-left: 3em;
}

pre code.hljs {
	font-size: modular-scale(-1);
}

.page-divider {
	$divider-color: $light-gray;
  display: block;
  width: 50%;
  margin-left: auto;
  margin-right: auto;
  border-top: 1px solid $divider-color;
  .one {
    position: relative;
    top: -9px;
    display: block;
    background: $divider-color;
    width: 18px;
    height: 18px;
    margin-left: auto;
    margin-right: auto;
    border-radius: 50%;
  }
  .two {
    position: relative;
    top: -26px;
    display: block;
    background: $white;
    width: 16px;
    height: 16px;
    margin-left: auto;
    margin-right: auto;
    border-radius: 50%;
  }
}

.tooltip {
	border-bottom: 1px dotted $medium-gray;
}


.site-header-container, .post-header-container {
	width: 100%;
	text-align: center;
	&.has-cover {
		color: $white;
		text-shadow: 0 2px 1px rgba(0,0,0,0.67) !important;
		background-position: 50% 50%;
		background-size: cover;
		.title {
			font-size: modular-scale(6);
		}
		.subtitle, .info {
			font-size: modular-scale(1);
		}
	}
	.scrim {
		padding: 3em 1em;
		&.has-cover {
			background-color: rgba(0,0,0,0.2);
			padding: 6em 1em !important;
			@include media($tablet) {
				padding: 9em 1em !important;
			}
		}
	}
}

/*
*	Header
*/
.navigation {
	box-shadow: 0 2px $highlight-color;
	padding: 0 1em;
	margin: 0;
	// Remove this to make header scrollable again
	position: fixed;
	top: 0;
	left: 0;
	right: 0;
	background: $white;
	z-index: 1;
	/*
	*	Navigation Menu - http://refills.bourbon.io/unstyled/ (see "Navigation")
	*/
  // Mobile view
  .navigation-menu-button {
    display: block;
    float: right;
    margin: 0;
    font-size: 1.5em;
    padding-top: 0.5em;
    @include media ($tablet) {
      display: none;
    }
  }
  // Nav menu
  .navigation-wrapper {
  	@include outer-container;
    @include clearfix;
    position: relative;
  }
  .logo {
    float: left;
    height: 4em;
    @include media ($tablet) {
    	padding-left: $em-base;
    }
    img {
      max-height: 2.5em;
      margin-top: 0.75em;
      padding-right: 1em;
    }
    span {
    	font-size: 1.25em;
    }
  }
  nav {
    float: none;
    padding: 1.25em 0;
    @include media ($tablet) {
      float: right;
      line-height: 1.5em;
    }
  }
  ul.navigation-menu {
    clear: both;
    display: none;
    margin: 0 auto;
    overflow: visible;
    padding: 0;
    width: 100%;
    @include media ($tablet) {
      display: block;
      margin: 0;
      padding: 0;
    }
    &.show {
      display: block;
    }
  }
  // Nav items
  ul li.nav-link {
    display: block;
    text-align: right;
    width: 100%;
    padding: 0.25em 0;
    @include media ($tablet) {
      background: transparent;
      display: inline;
      text-decoration: none;
      width: auto;
    }
  }
  li.nav-link {
  	a {
	    display: inline-block;
	    @include media ($tablet) {
	      padding-right: 1.5em;
	    }
	  }
	  &:last-child a {
	  	@include media ($tablet) {
    		padding-right: 1em;
    	}
    }
  }
}

/*
*	Body
*/
.page-content {
	// Remove this to make header scrollable again
	margin-top: 66px;
	.wrapper {
		@include outer-container;
		padding: 1em;
	}
	/*
	*	index.html
	*/
	.post-list {
		padding-top: 1em !important;
		@extend %default-ul;
	}
	.post-meta {
		@include outer-container;
		// padding: 1em 0;
		color: $medium-gray;
		.post-date {
			@include span-columns(6);
			text-align: left;
			font-size: 0.9em;
		}
		.post-categories {
			@include span-columns(6);
			margin-right: 0;
			text-align: right;
			font-size: 0.9em;
		}
	}
	.pagination {
		padding-top: 2em;
		text-align: center;
		color: $medium-gray;
		.page-number {
			padding: 0 1em;
		}
    a.newer-posts {
      text-decoration: none;
    }
	}
	.site-header-container {
		color: $white;
		text-shadow: 0 2px 1px rgba(0,0,0,0.33);
		background-color: $highlight-color;
		.site-header{
			.title {
				font-size: modular-scale(6);
			}
			.subtitle {
				font-style: italic;
				font-size: modular-scale(1);
			}
		}
	}
	img {
		display: block;
		margin: auto;
		width: 90%;
	}
	/*
	*	Posts
	*/
	.post {
		ul {
			margin-bottom: 1em;
		}
		.post-header-container {
			.scrim {
				padding: 2em 1em 1em 1em;
			}
		}
		.post-meta {
			padding-bottom: 1em;
		}
		.post-content {
			padding: 1em 0;
		}
		.tags {
			font-size: 0.9em;
		}
		.rss {
			margin: 1em 0 0 0;
			@include span-columns(12);
			@include media ($tablet) {
				margin: 1em 0;
				@include span-columns(6);
			}
		}
		.share {
			font-weight: bold;
			margin: 0 0 1em 0;
			@include span-columns(12);
			@include media ($tablet) {
				@include span-columns(6);
				margin: 1em 0;
				text-align: right;
			}
			a {
				width: 1em;
				padding: 0 0.25em;
				text-decoration: none;
			}
		}
		.disqus {
			@include span-columns(12);
		}
		.post-navigation {
			font-size: 0.9em;
			display: block;
			width: auto;
			.prev-post {
				display: block;
				width: 50%;
				float: left;
				margin: 1em 0;
			}
			.next-post {
				display: block;
				width: 50%;
				float: left;
				margin: 1em 0;
				text-align: right;
			}
		}
	}
	/*
	*	Pages
	*/
	.page {
		.post-header {
			padding: 0.5em 1em 1em 1em;
			text-align: center;
		}
		.posts-list {
			@extend %default-ul;
			li {
				padding: modular-scale(-4);
				padding-left: 0;
			}
			.desc {
				font-size: 0.9em;
			}
			.post-date {
				color: $medium-gray;
			}
		}
		.profile {
			max-width: 320px;
			margin: auto;
			padding-bottom: 0.5em;
 		}
	}
}

/*
*	Footer
*/
.site-footer {
	$link-color: $white;
	padding: 1em 1em 2em 1em;
	background-color: $highlight-color;
	color: $white;
	a {
	  color: $link-color;
	  &:active,
	  &:focus,
	  &:hover {
	    color: darken($link-color, 10%);
	  }
	  &:active,
	  &:focus {
	    outline: none;
	  }
	}
	.wrapper {
		@include outer-container;
	}
	.footer-heading {

	}
	/*
	*	Site Navigation (left)
	*/
	.site-navigation {
		@include span-columns(12);
		@include media ($mobile) {
			@include span-columns(6);
		}
		@include media ($tablet) {
			@include span-columns(4);
		}
		font-size: 0.9em;
		ul {
			@extend %default-ul;
		}
	}
	/*
	*	Contact Info (center)
	*/
	.site-contact {
		margin-top: 1em;
		@include span-columns(12);
		@include media ($mobile) {
			@include span-columns(6);
			margin-top: 0;
			margin-right: 0;
		}
		@include media ($tablet) {
			@include span-columns(4);
			margin-top: 0;
		}
		font-size: 0.9em;
		i {
			width: 1.25em;
			text-align: center;
		}
		ul {
			@extend %default-ul;
		}
	}
	/*
	*	Site Description/Signature (right)
	*/
	.site-signature {
		margin-top: 1em;
		@include span-columns(12);
		@include media ($tablet) {
			@include span-columns(4);
			margin-right: 0;
			margin-top: 0;
		}
		font-size: 0.9em;
		a {
			text-decoration: underline;
		}
	}
}


================================================
FILE: _sass/base/_base.scss
================================================
// Bitters 1.0.0
// http://bitters.bourbon.io
// Copyright 2013-2015 thoughtbot, inc.
// MIT License

@import "variables";

// Neat Settings -- uncomment if using Neat -- must be imported before Neat
// @import "grid-settings";

@import "buttons";
@import "forms";
@import "lists";
@import "tables";
@import "typography";


================================================
FILE: _sass/base/_buttons.scss
================================================
#{$all-button-inputs},
button {
  @include appearance(none);
  -webkit-font-smoothing: antialiased;
  background-color: $action-color;
  border-radius: $base-border-radius;
  border: none;
  color: #fff;
  cursor: pointer;
  display: inline-block;
  font-family: $base-font-family;
  font-size: $base-font-size;
  font-weight: 600;
  line-height: 1;
  padding: 0.75em 1em;
  text-decoration: none;
  user-select: none;
  vertical-align: middle;
  white-space: nowrap;

  &:hover,
  &:focus {
    background-color: darken($action-color, 15%);
    color: #fff;
  }

  &:disabled {
    cursor: not-allowed;
    opacity: 0.5;
  }
}


================================================
FILE: _sass/base/_forms.scss
================================================
fieldset {
  background-color: lighten($base-border-color, 10%);
  border: $base-border;
  margin: 0 0 $small-spacing;
  padding: $base-spacing;
}

input,
label,
select {
  display: block;
  font-family: $base-font-family;
  font-size: $base-font-size;
}

label {
  font-weight: 600;
  margin-bottom: $small-spacing / 2;

  &.required::after {
    content: "*";
  }

  abbr {
    display: none;
  }
}

#{$all-text-inputs},
select[multiple=multiple],
textarea {
  background-color: $base-background-color;
  border: $base-border;
  border-radius: $base-border-radius;
  box-shadow: $form-box-shadow;
  box-sizing: border-box;
  font-family: $base-font-family;
  font-size: $base-font-size;
  margin-bottom: $base-spacing / 2;
  padding: $base-spacing / 3;
  transition: border-color;
  width: 100%;

  &:hover {
    border-color: darken($base-border-color, 10%);
  }

  &:focus {
    border-color: $action-color;
    box-shadow: $form-box-shadow-focus;
    outline: none;
  }
}

textarea {
  resize: vertical;
}

input[type="search"] {
  @include appearance(none);
}

input[type="checkbox"],
input[type="radio"] {
  display: inline;
  margin-right: $small-spacing / 2;
}

input[type="file"] {
  padding-bottom: $small-spacing;
  width: 100%;
}

select {
  margin-bottom: $base-spacing;
  max-width: 100%;
  width: auto;
}


================================================
FILE: _sass/base/_grid-settings.scss
================================================
@import "neat-helpers"; // or "../neat/neat-helpers" when not in Rails

// Neat Overrides
// $column: 90px;
// $gutter: 30px;
// $grid-columns: 12;
// $max-width: em(1088);

// Neat Breakpoints
$medium-screen: em(640);
$large-screen: em(860);

$medium-screen-up: new-breakpoint(min-width $medium-screen 4);
$large-screen-up: new-breakpoint(min-width $large-screen 8);


================================================
FILE: _sass/base/_lists.scss
================================================
ul,
ol {

  &%default-ul,
  &%default-ol {
  	list-style-type: none;
	  margin: 0;
	  padding: 0;
  }
  
}

ul {
	list-style-type: disc;
  margin-bottom: $small-spacing;
  padding-left: $base-spacing;
}

ol {
	list-style-type: decimal;
  margin-bottom: $small-spacing;
  padding-left: $base-spacing;
}

dl {
  margin-bottom: $small-spacing;

  dt {
    font-weight: bold;
    margin-top: $small-spacing;
  }

  dd {
    margin: 0;
  }
}


================================================
FILE: _sass/base/_tables.scss
================================================
table {
  @include font-feature-settings("kern", "liga", "tnum");
  border-collapse: collapse;
  margin: $small-spacing 0;
  table-layout: fixed;
  width: 100%;
}

th {
  border-bottom: 1px solid darken($base-border-color, 15%);
  font-weight: 600;
  padding: $small-spacing 0;
  text-align: left;
}

td {
  border-bottom: $base-border;
  padding: $small-spacing 0;
}

tr,
td,
th {
  vertical-align: middle;
}


================================================
FILE: _sass/base/_typography.scss
================================================
body {
  @include font-feature-settings("kern", "liga", "pnum");
  -webkit-font-smoothing: antialiased;
  color: $base-font-color;
  font-family: $base-font-family;
  font-size: $base-font-size;
  line-height: $base-line-height;
}

h1,
h2,
h3,
h4,
h5,
h6 {
  font-family: $heading-font-family;
  font-size: $base-font-size;
  line-height: $heading-line-height;
  margin: 0 0 $base-font-size;
  margin: 0 0 rem($base-font-size);
}
h1 {
	font-size: modular-scale(4);
}
h2 {
	font-size: modular-scale(3);
}
h3 {
	font-size: modular-scale(2);
}
h4 {
	font-size: modular-scale(1);
}
h5 {
	font-size: modular-scale(-1);
}
h6 {
	font-size: modular-scale(-2);
}

p {
  margin: 0 0 $small-spacing;
}

a {
  color: $action-color;
  text-decoration: none;
  // transition: color 0.1s linear;

  &:active,
  &:focus,
  &:hover {
    color: darken($action-color, 10%);
    text-decoration: underline;
  }

  &:active,
  &:focus {
    outline: none;
  }
}

hr {
  border-bottom: $base-border;
  border-left: none;
  border-right: none;
  border-top: none;
  margin: $base-spacing 0;
}

img,
picture {
  margin: 0;
  max-width: 100%;
}

code {

}


================================================
FILE: _sass/base/_variables.scss
================================================
// Google Fonts
@import url(//fonts.googleapis.com/css?family=Roboto+Slab:400,700,300|Roboto:400,700,300|Open+Sans:300italic,400italic,600italic,700italic,800italic,400,800,700,600,300);

// Typography
$base-font-family: "Open Sans", "Helvetica Neue", "Helvetica", "Roboto", "Arial", sans-serif; // $helvetica;
$heading-font-family: "Roboto Slab", "Helvetica Neue", "Helvetica", "Arial", sans-serif; // $base-font-family;

// Font Sizes
$base-font-size: $em-base; // 16px

// Adjust modular scale ratio
$modular-scale-ratio: $minor-third;

// Line height
$base-line-height: 1.8;
$heading-line-height: 1.8;

// Other Sizes
$base-border-radius: 3px;
$base-spacing: $base-line-height * $em-base;
$small-spacing: $base-spacing / 2;
$base-z-index: 0;

// Colors
$dark-gray: #333;
$medium-gray: #999;
$light-gray: #ddd;
$white: #fff;
// Flat UI Colors. For more, see http://flatuicolors.com/
$turquoise: #1abc9c;	// Turqoise
$green: #27ae60;	  	// Nephritis
$blue: #2980b9;				// Belize Hole
$purple: #8e44ad;			// Wisteria
$orange: #d35400;			// Pumpkin
$red:	#c0392b;				// Pomegranate
$gray: #7f8c8d;				// Asbestos
// Even more colors
$bc-red: #bc0000;

// Font Colors
$base-background-color: #fff;
$base-font-color: $dark-gray;
$action-color: $blue;
$highlight-color: tint($action-color, 33%);

// Border
$base-border-color: $light-gray;
$base-border: 1px solid $base-border-color;

// Forms
$form-box-shadow: inset 0 1px 3px rgba(#000, 0.06);
$form-box-shadow-focus: $form-box-shadow, 0 0 5px adjust-color($action-color, $lightness: -5%, $alpha: -0.3);


================================================
FILE: _sass/bourbon/_bourbon-deprecated-upcoming.scss
================================================
// 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.";
}


================================================
FILE: _sass/bourbon/_bourbon.scss
================================================
// Bourbon 4.2.2
// 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";


================================================
FILE: _sass/bourbon/addons/_border-color.scss
================================================
@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...);
}


================================================
FILE: _sass/bourbon/addons/_border-radius.scss
================================================
@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;
}


================================================
FILE: _sass/bourbon/addons/_border-style.scss
================================================
@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...);
}


================================================
FILE: _sass/bourbon/addons/_border-width.scss
================================================
@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...);
}


================================================
FILE: _sass/bourbon/addons/_buttons.scss
================================================
@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;


================================================
FILE: _sass/bourbon/addons/_clearfix.scss
================================================
@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;
  }
}


================================================
FILE: _sass/bourbon/addons/_ellipsis.scss
================================================
@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;
}


================================================
FILE: _sass/bourbon/addons/_font-stacks.scss
================================================
@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;


================================================
FILE: _sass/bourbon/addons/_hide-text.scss
================================================
/// 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";
  }
}


================================================
FILE: _sass/bourbon/addons/_margin.scss
================================================
@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...);
}


================================================
FILE: _sass/bourbon/addons/_padding.scss
================================================
@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...);
}


================================================
FILE: _sass/bourbon/addons/_position.scss
================================================
@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;
    }
  }
}


================================================
FILE: _sass/bourbon/addons/_prefixer.scss
================================================
@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;
}


================================================
FILE: _sass/bourbon/addons/_retina-image.scss
================================================
@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;
  }
}


================================================
FILE: _sass/bourbon/addons/_size.scss
================================================
@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.";
  }
}


================================================
FILE: _sass/bourbon/addons/_text-inputs.scss
================================================
@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);


================================================
FILE: _sass/bourbon/addons/_timing-functions.scss
================================================
@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);


================================================
FILE: _sass/bourbon/addons/_triangle.scss
================================================
@mixin triangle($size, $color, $direction) {
  $width: nth($size, 1);
  $height: nth($size, length($size));
  $foreground-color: nth($color, 1);
  $background-color: if(length($color) == 2, nth($color, 2), transparent);
  height: 0;
  width: 0;

  @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;
  }
}


================================================
FILE: _sass/bourbon/addons/_word-wrap.scss
================================================
@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;
  }
}


================================================
FILE: _sass/bourbon/css3/_animation.scss
================================================
// 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 | <number>
  @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);
}


================================================
FILE: _sass/bourbon/css3/_appearance.scss
================================================
@mixin appearance($value) {
  @include prefixer(appearance, $value, webkit moz ms o spec);
}


================================================
FILE: _sass/bourbon/css3/_backface-visibility.scss
================================================
@mixin backface-visibility($visibility) {
  @include prefixer(backface-visibility, $visibility, webkit spec);
}


================================================
FILE: _sass/bourbon/css3/_background-image.scss
================================================
//************************************************************************//
// 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;
}


================================================
FILE: _sass/bourbon/css3/_background.scss
================================================
//************************************************************************//
// 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;
}


================================================
FILE: _sass/bourbon/css3/_border-image.scss
================================================
@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));


================================================
FILE: _sass/bourbon/css3/_calc.scss
================================================
@mixin calc($property, $value) {
  #{$property}: -webkit-calc(#{$value});
  #{$property}: calc(#{$value});
}


================================================
FILE: _sass/bourbon/css3/_columns.scss
================================================
@mixin columns($arg: auto) {
  // <column-count> || <column-width>
  @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) {
  // <border-width> || <border-style> || <color>
  @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);
}


================================================
FILE: _sass/bourbon/css3/_filter.scss
================================================
@mixin filter($function: none) {
  // <filter-function> [<filter-function]* | none
  @include prefixer(filter, $function, webkit spec);
}


================================================
FILE: _sass/bourbon/css3/_flex-box.scss
================================================
// CSS3 Flexible Box Model and property defaults

// Custom shorthand notation for flexbox
@mixin box($orient: inline-axis, $pack: start, $align: stretch) {
  @include display-box;
  @include box-orient($orient);
  @include box-pack($pack);
  @include box-align($align);
}

@mixin display-box {
  display: -webkit-box;
  display: -moz-box;
  display: -ms-flexbox; // IE 10
  display: box;
}

@mixin box-orient($orient: inline-axis) {
// horizontal|vertical|inline-axis|block-axis|inherit
  @include prefixer(box-orient, $orient, webkit moz spec);
}

@mixin box-pack($pack: start) {
// start|end|center|justify
  @include prefixer(box-pack, $pack, webkit moz spec);
  -ms-flex-pack: $pack; // IE 10
}

@mixin box-align($align: stretch) {
// start|end|center|baseline|stretch
  @include prefixer(box-align, $align, webkit moz spec);
  -ms-flex-align: $align; // IE 10
}

@mixin box-direction($direction: normal) {
// normal|reverse|inherit
  @include prefixer(box-direction, $direction, webkit moz spec);
  -ms-flex-direction: $direction; // IE 10
}

@mixin box-lines($lines: single) {
// single|multiple
  @include prefixer(box-lines, $lines, webkit moz spec);
}

@mixin box-ordinal-group($int: 1) {
  @include prefixer(box-ordinal-group, $int, webkit moz spec);
  -ms-flex-order: $int; // IE 10
}

@mixin box-flex($value: 0) {
  @include prefixer(box-flex, $value, webkit moz spec);
  -ms-flex: $value; // IE 10
}

@mixin box-flex-group($int: 1) {
  @include prefixer(box-flex-group, $int, webkit moz spec);
}

// CSS3 Flexible Box Model and property defaults
// Unified attributes for 2009, 2011, and 2012 flavours.

// 2009 - display (box | inline-box)
// 2011 - display (flexbox | inline-flexbox)
// 2012 - display (flex | inline-flex)
@mixin display($value) {
// flex | inline-flex
  @if $value == "flex" {
    // 2009
    display: -webkit-box;
    display: -moz-box;
    display: box;

    // 2012
    display: -webkit-flex;
    display: -moz-flex;
    display: -ms-flexbox; // 2011 (IE 10)
    display: flex;
  } @else if $value == "inline-flex" {
    display: -webkit-inline-box;
    display: -moz-inline-box;
    display: inline-box;

    display: -webkit-inline-flex;
    display: -moz-inline-flex;
    display: -ms-inline-flexbox;
    display: inline-flex;
  } @else {
    display: $value;
  }
}

// 2009 - box-flex (integer)
// 2011 - flex (decimal | width decimal)
// 2012 - flex (integer integer width)
@mixin flex($value) {

  // Grab flex-grow for older browsers.
  $flex-grow: nth($value, 1);

  // 2009
  @include prefixer(box-flex, $flex-grow, webkit moz spec);

  // 2011 (IE 10), 2012
  @include prefixer(flex, $value, webkit moz ms spec);
}

// 2009 - box-orient ( horizontal | vertical | inline-axis | block-axis)
//      - box-direction (normal | reverse)
// 2011 - flex-direction (row | row-reverse | column | column-reverse)
// 2012 - flex-direction (row | row-reverse | column | column-reverse)
@mixin flex-direction($value: row) {

  // Alt values.
  $value-2009: $value;
  $value-2011: $value;
  $direction: normal;

  @if $value == row {
    $value-2009: horizontal;
  } @else if $value == "row-reverse" {
    $value-2009: horizontal;
    $direction: reverse;
  } @else if $value == column {
    $value-2009: vertical;
  } @else if $value == "column-reverse" {
    $value-2009: vertical;
    $direction: reverse;
  }

  // 2009
  @include prefixer(box-orient, $value-2009, webkit moz spec);
  @include prefixer(box-direction, $direction, webkit moz spec);

  // 2012
  @include prefixer(flex-direction, $value, webkit moz spec);

  // 2011 (IE 10)
  -ms-flex-direction: $value;
}

// 2009 - box-lines (single | multiple)
// 2011 - flex-wrap (nowrap | wrap | wrap-reverse)
// 2012 - flex-wrap (nowrap | wrap | wrap-reverse)
@mixin flex-wrap($value: nowrap) {
  // Alt values
  $alt-value: $value;
  @if $value == nowrap {
    $alt-value: single;
  } @else if $value == wrap {
    $alt-value: multiple;
  } @else if $value == "wrap-reverse" {
    $alt-value: multiple;
  }

  @include prefixer(box-lines, $alt-value, webkit moz spec);
  @include prefixer(flex-wrap, $value, webkit moz ms spec);
}

// 2009 - TODO: parse values into flex-direction/flex-wrap
// 2011 - TODO: parse values into flex-direction/flex-wrap
// 2012 - flex-flow (flex-direction || flex-wrap)
@mixin flex-flow($value) {
  @include prefixer(flex-flow, $value, webkit moz spec);
}

// 2009 - box-ordinal-group (integer)
// 2011 - flex-order (integer)
// 2012 - order (integer)
@mixin order($int: 0) {
  // 2009
  @include prefixer(box-ordinal-group, $int, webkit moz spec);

  // 2012
  @include prefixer(order, $int, webkit moz spec);

  // 2011 (IE 10)
  -ms-flex-order: $int;
}

// 2012 - flex-grow (number)
@mixin flex-grow($number: 0) {
  @include prefixer(flex-grow, $number, webkit moz spec);
  -ms-flex-positive: $number;
}

// 2012 - flex-shrink (number)
@mixin flex-shrink($number: 1) {
  @include prefixer(flex-shrink, $number, webkit moz spec);
  -ms-flex-negative: $number;
}

// 2012 - flex-basis (number)
@mixin flex-basis($width: auto) {
  @include prefixer(flex-basis, $width, webkit moz spec);
  -ms-flex-preferred-size: $width;
}

// 2009 - box-pack (start | end | center | justify)
// 2011 - flex-pack (start | end | center | justify)
// 2012 - justify-content (flex-start | flex-end | center | space-between | space-around)
@mixin justify-content($value: flex-start) {

  // Alt values.
  $alt-value: $value;
  @if $value == "flex-start" {
    $alt-value: start;
  } @else if $value == "flex-end" {
    $alt-value: end;
  } @else if $value == "space-between" {
    $alt-value: justify;
  } @else if $value == "space-around" {
    $alt-value: distribute;
  }

  // 2009
  @include prefixer(box-pack, $alt-value, webkit moz spec);

  // 2012
  @include prefixer(justify-content, $value, webkit moz ms o spec);

  // 2011 (IE 10)
  -ms-flex-pack: $alt-value;
}

// 2009 - box-align (start | end | center | baseline | stretch)
// 2011 - flex-align (start | end | center | baseline | stretch)
// 2012 - align-items (flex-start | flex-end | center | baseline | stretch)
@mixin align-items($value: stretch) {

  $alt-value: $value;

  @if $value == "flex-start" {
    $alt-value: start;
  } @else if $value == "flex-end" {
    $alt-value: end;
  }

  // 2009
  @include prefixer(box-align, $alt-value, webkit moz spec);

  // 2012
  @include prefixer(align-items, $value, webkit moz ms o spec);

  // 2011 (IE 10)
  -ms-flex-align: $alt-value;
}

// 2011 - flex-item-align (auto | start | end | center | baseline | stretch)
// 2012 - align-self (auto | flex-start | flex-end | center | baseline | stretch)
@mixin align-self($value: auto) {

  $value-2011: $value;
  @if $value == "flex-start" {
    $value-2011: start;
  } @else if $value == "flex-end" {
    $value-2011: end;
  }

  // 2012
  @include prefixer(align-self, $value, webkit moz spec);

  // 2011 (IE 10)
  -ms-flex-item-align: $value-2011;
}

// 2011 - flex-line-pack (start | end | center | justify | distribute | stretch)
// 2012 - align-content (flex-start | flex-end | center | space-between | space-around | stretch)
@mixin align-content($value: stretch) {

  $value-2011: $value;
  @if $value == "flex-start" {
    $value-2011: start;
  } @else if $value == "flex-end" {
    $value-2011: end;
  } @else if $value == "space-between" {
    $value-2011: justify;
  } @else if $value == "space-around" {
    $value-2011: distribute;
  }

  // 2012
  @include prefixer(align-content, $value, webkit moz spec);

  // 2011 (IE 10)
  -ms-flex-line-pack: $value-2011;
}


================================================
FILE: _sass/bourbon/css3/_font-face.scss
================================================
@mixin font-face(
  $font-family,
  $file-path,
  $weight: normal,
  $style: normal,
  $asset-pipeline: $asset-pipeline,
  $file-formats: eot woff2 woff ttf svg) {

  $font-url-prefix: font-url-prefixer($asset-pipeline);

  @font-face {
    font-family: $font-family;
    font-style: $style;
    font-weight: $weight;

    src: font-source-declaration(
      $font-family,
      $file-path,
      $asset-pipeline,
      $file-formats,
      $font-url-prefix
    );
  }
}


================================================
FILE: _sass/bourbon/css3/_font-feature-settings.scss
================================================
@mixin font-feature-settings($settings...) {
  @if length($settings) == 0 { $settings: none; }
  @include prefixer(font-feature-settings, $settings, webkit moz ms spec);
}


================================================
FILE: _sass/bourbon/css3/_hidpi-media-query.scss
================================================
// HiDPI mixin. Default value set to 1.3 to target Google Nexus 7 (http://bjango.com/articles/min-device-pixel-ratio/)
@mixin hidpi($ratio: 1.3) {
  @media only screen and (-webkit-min-device-pixel-ratio: $ratio),
  only screen and (min--moz-device-pixel-ratio: $ratio),
  only screen and (-o-min-device-pixel-ratio: #{$ratio}/1),
  only screen and (min-resolution: round($ratio * 96dpi)),
  only screen and (min-resolution: $ratio * 1dppx) {
    @content;
  }
}


================================================
FILE: _sass/bourbon/css3/_hyphens.scss
================================================
@mixin hyphens($hyphenation: none) {
  // none | manual | auto
  @include prefixer(hyphens, $hyphenation, webkit moz ms spec);
}


================================================
FILE: _sass/bourbon/css3/_image-rendering.scss
================================================
@mixin image-rendering ($mode:auto) {

  @if ($mode == crisp-edges) {
    -ms-interpolation-mode: nearest-neighbor; // IE8+
    image-rendering: -moz-crisp-edges;
    image-rendering: -o-crisp-edges;
    image-rendering: -webkit-optimize-contrast;
    image-rendering: crisp-edges;
  }

  @else {
    image-rendering: $mode;
  }
}


================================================
FILE: _sass/bourbon/css3/_keyframes.scss
================================================
// Adds keyframes blocks for supported prefixes, removing redundant prefixes in the block's content
@mixin keyframes($name) {
  $original-prefix-for-webkit:    $prefix-for-webkit;
  $original-prefix-for-mozilla:   $prefix-for-mozilla;
  $original-prefix-for-microsoft: $prefix-for-microsoft;
  $original-prefix-for-opera:     $prefix-for-opera;
  $original-prefix-for-spec:      $prefix-for-spec;

  @if $original-prefix-for-webkit {
    @include disable-prefix-for-all();
    $prefix-for-webkit: true !global;
    @-webkit-keyframes #{$name} {
      @content;
    }
  }

  @if $original-prefix-for-mozilla {
    @include disable-prefix-for-all();
    $prefix-for-mozilla: true !global;
    @-moz-keyframes #{$name} {
      @content;
    }
  }

  $prefix-for-webkit:    $original-prefix-for-webkit    !global;
  $prefix-for-mozilla:   $original-prefix-for-mozilla   !global;
  $prefix-for-microsoft: $original-prefix-for-microsoft !global;
  $prefix-for-opera:     $original-prefix-for-opera     !global;
  $prefix-for-spec:      $original-prefix-for-spec      !global;

  @if $original-prefix-for-spec {
    @keyframes #{$name} {
      @content;
    }
  }
}


================================================
FILE: _sass/bourbon/css3/_linear-gradient.scss
================================================
@mixin linear-gradient($pos, $g1, $g2: null,
                       $g3: null, $g4: null,
                       $g5: null, $g6: null,
                       $g7: null, $g8: null,
                       $g9: null, $g10: null,
                       $fallback: null) {
  // Detect what type of value exists in $pos
  $pos-type: type-of(nth($pos, 1));
  $pos-spec: null;
  $pos-degree: null;

  // If $pos is missing from mixin, reassign vars and add default position
  @if ($pos-type == color) or (nth($pos, 1) == "transparent")  {
    $g10: $g9; $g9: $g8; $g8: $g7; $g7: $g6; $g6: $g5;
    $g5: $g4; $g4: $g3; $g3: $g2; $g2: $g1; $g1: $pos;
    $pos: null;
  }

  @if $pos {
    $positions: _linear-positions-parser($pos);
    $pos-degree: nth($positions, 1);
    $pos-spec:   nth($positions, 2);
  }

  $full: $g1, $g2, $g3, $g4, $g5, $g6, $g7, $g8, $g9, $g10;

  // Set $g1 as the default fallback color
  $fallback-color: nth($g1, 1);

  // If $fallback is a color use that color as the fallback color
  @if (type-of($fallback) == color) or ($fallback == "transparent") {
    $fallback-color: $fallback;
  }

  background-color: $fallback-color;
  background-image: -webkit-linear-gradient($pos-degree $full); // Safari 5.1+, Chrome
  background-image: unquote("linear-gradient(#{$pos-spec}#{$full})");
}


================================================
FILE: _sass/bourbon/css3/_perspective.scss
================================================
@mixin perspective($depth: none) {
  // none | <length>
  @include prefixer(perspective, $depth, webkit moz spec);
}

@mixin perspective-origin($value: 50% 50%) {
  @include prefixer(perspective-origin, $value, webkit moz spec);
}


================================================
FILE: _sass/bourbon/css3/_placeholder.scss
================================================
@mixin placeholder {
  $placeholders: ":-webkit-input" ":-moz" "-moz" "-ms-input";
  @each $placeholder in $placeholders {
    &:#{$placeholder}-placeholder {
      @content;
    }
  }
}


================================================
FILE: _sass/bourbon/css3/_radial-gradient.scss
================================================
// 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})");
}


================================================
FILE: _sass/bourbon/css3/_selection.scss
================================================
@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;
    }
  }
}


================================================
FILE: _sass/bourbon/css3/_text-decoration.scss
================================================
@mixin text-decoration($value) {
// <text-decoration-line> || <text-decoration-style> || <text-decoration-color>
  @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 || <color>
  @include prefixer(text-decoration-color, $color, moz);
}


================================================
FILE: _sass/bourbon/css3/_transform.scss
================================================
@mixin transform($property: none) {
  // none | <transform-function>
  @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);
}


================================================
FILE: _sass/bourbon/css3/_transition.scss
================================================
// 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);
}


================================================
FILE: _sass/bourbon/css3/_user-select.scss
================================================
@mixin user-select($value: none) {
  @include prefixer(user-select, $value, webkit moz ms spec);
}


================================================
FILE: _sass/bourbon/functions/_assign-inputs.scss
================================================
@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;
}


================================================
FILE: _sass/bourbon/functions/_contains-falsy.scss
================================================
@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;
}


================================================
FILE: _sass/bourbon/functions/_contains.scss
================================================
@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;
}


================================================
FILE: _sass/bourbon/functions/_is-length.scss
================================================
@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))));
}


================================================
FILE: _sass/bourbon/functions/_is-light.scss
================================================
@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;
}


================================================
FILE: _sass/bourbon/functions/_is-number.scss
================================================
@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);
}


================================================
FILE: _sass/bourbon/functions/_is-size.scss
================================================
@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);
}


================================================
FILE: _sass/bourbon/functions/_modular-scale.scss
================================================
// 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;
}


================================================
FILE: _sass/bourbon/functions/_px-to-em.scss
================================================
// 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;
}


================================================
FILE: _sass/bourbon/functions/_px-to-rem.scss
================================================
// Convert pixels to rems
// eg. for a relational value of 12px write rem(12)
// Assumes $em-base is the font-size of <html>

@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;
}


================================================
FILE: _sass/bourbon/functions/_shade.scss
================================================
@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);
}


================================================
FILE: _sass/bourbon/functions/_strip-units.scss
================================================
@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));
}


================================================
FILE: _sass/bourbon/functions/_tint.scss
================================================
@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);
}


================================================
FILE: _sass/bourbon/functions/_transition-property-name.scss
================================================
// 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;
  }
}


================================================
FILE: _sass/bourbon/functions/_unpack.scss
================================================
@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;
  }
}


================================================
FILE: _sass/bourbon/helpers/_convert-units.scss
================================================
//************************************************************************//
// 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;
  }

  @if type-of($number) != "number" {
    @warn "`#{$number} is not a number`";
    @return false;
  }

  @return $number * nth($units, $index);
}


================================================
FILE: _sass/bourbon/helpers/_directional-values.scss
================================================
@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;
  }
}


================================================
FILE: _sass/bourbon/helpers/_font-source-declaration.scss
================================================
// 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;
}


================================================
FILE: _sass/bourbon/helpers/_gradient-positions-parser.scss
================================================
@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;
}


================================================
FILE: _sass/bourbon/helpers/_linear-angle-parser.scss
================================================
// 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
    );
  }
}


================================================
FILE: _sass/bourbon/helpers/_linear-gradient-parser.scss
================================================
@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;
}


================================================
FILE: _sass/bourbon/helpers/_linear-positions-parser.scss
================================================
@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);
}


================================================
FILE: _sass/bourbon/helpers/_linear-side-corner-parser.scss
================================================
// 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
    );
  }
}


================================================
FILE: _sass/bourbon/helpers/_radial-arg-parser.scss
================================================
@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;
}


================================================
FILE: _sass/bourbon/helpers/_radial-gradient-parser.scss
================================================
@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;
}


================================================
FILE: _sass/bourbon/helpers/_radial-positions-parser.scss
================================================
@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;
}


================================================
FILE: _sass/bourbon/helpers/_render-gradients.scss
================================================
// 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;
}


================================================
FILE: _sass/bourbon/helpers/_shape-size-stripper.scss
================================================
@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;
}


================================================
FILE: _sass/bourbon/helpers/_str-to-num.scss
================================================
//************************************************************************//
// 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);
}


================================================
FILE: _sass/bourbon/settings/_asset-pipeline.scss
================================================
@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;


================================================
FILE: _sass/bourbon/settings/_prefixer.scss
================================================
@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;


================================================
FILE: _sass/bourbon/settings/_px-to-em.scss
================================================
$em-base: 16px !default;


================================================
FILE: _sass/neat/_neat-helpers.scss
================================================
// Functions
@import "functions/private";
@import "functions/new-breakpoint";

// Settings
@import "settings/grid";
@import "settings/visual-grid";
@import "settings/disable-warnings";


================================================
FILE: _sass/neat/_neat.scss
================================================
// Neat 1.7.2
// 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";


================================================
FILE: _sass/neat/functions/_new-breakpoint.scss
================================================
@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;
}


================================================
FILE: _sass/neat/functions/_private.scss
================================================
// 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;
}


================================================
FILE: _sass/neat/grid/_box-sizing.scss
================================================
@charset "UTF-8";

@if $border-box-sizing == true {
  html { // http://bit.ly/1qk2tVR
    box-sizing: border-box;
  }

  * {
    &,
    &::after,
    &::before {
      box-sizing: inherit;
    }
  }
}


================================================
FILE: _sass/neat/grid/_direction-context.scss
================================================
@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;
}


================================================
FILE: _sass/neat/grid/_display-context.scss
================================================
@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;
}


================================================
FILE: _sass/neat/grid/_fill-parent.scss
================================================
@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%;
///     box-sizing: border-box;
///   }

@mixin fill-parent() {
  width: 100%;

  @if $border-box-sizing == false {
    box-sizing: border-box;
  }
}


================================================
FILE: _sass/neat/grid/_media.scss
================================================
@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;
    }
  }
}


================================================
FILE: _sass/neat/grid/_omega.scss
================================================
@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;
    }
  }
}


================================================
FILE: _sass/neat/grid/_outer-container.scss
================================================
@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;
  }
}


================================================
FILE: _sass/neat/grid/_pad.scss
================================================
@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;
}


================================================
FILE: _sass/neat/grid/_private.scss
================================================
$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;
}


================================================
FILE: _sass/neat/grid/_row.scss
================================================
@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;
  }
}


================================================
FILE: _sass/neat/grid/_shift.scss
================================================
@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;
}


================================================
FILE: _sass/neat/grid/_span-columns.scss
================================================
@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.
///
///   `$columns` also accepts decimals for when it's necessary to break out of the standard grid. E.g. Passing `2.4` in a standard 12 column grid will divide the row into 5 columns.
///
/// @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;
      }
    }
  }
}


================================================
FILE: _sass/neat/grid/_to-deprecate.scss
================================================
@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;
}


================================================
FILE: _sass/neat/grid/_visual-grid.scss
================================================
@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));
        }
      }
    }
  }
}


================================================
FILE: _sass/neat/settings/_disable-warnings.scss
================================================
@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}";
  }
}


================================================
FILE: _sass/neat/settings/_grid.scss
================================================
@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 modular-scale() see [Bourbon docs](http://bourbon.io/docs/#modular-scale). Set with a `!global` flag.
///
/// @type Number (Unit)

$column: modular-scale(3, 1em, $golden) !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 modular-scale() see [Bourbon docs](http://bourbon.io/docs/#modular-scale). Set with the `!global` flag.
///
/// @type Number (Unit)

$gutter: modular-scale(1, 1em, $golden) !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(768) !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 {
///     box-sizing: border-box; }
///
///   *, *::after, *::before {
///     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;


================================================
FILE: _sass/neat/settings/_visual-grid.scss
================================================
@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;


================================================
FILE: about.md
================================================
---
layout: page
title: About
permalink: /about/
main_nav: true
---

![alt text]({{ site.baseurl }}/assets/profile-placeholder.gif "Profile Picture"){:.profile}

Centrarium is a custom theme for Jekyll, made by [Ben Centra][bencentra] for his own blog. He'd be humbled if you liked it enough to use it as well! Installation and configuration instructions can be found in the [GitHub repository](https://github.com/bencentra/centrarium).

This page is a good place to write about yourself, your project, your product, or whatever it is your site is for. You can replace the image above, or you can get rid of it entirely. 

You can find out more info about customizing your Jekyll theme, as well as basic Jekyll usage documentation at [jekyllrb.com](http://jekyllrb.com/). And you can find the source code for Jekyll at [github.com/jekyll/jekyll](https://github.com/jekyll/jekyll)

[centrarium]: https://github.com/bencentra/centrarium
[bencentra]: http://bencentra.com
[jekyll]: https://github.com/jekyll/jekyll


================================================
FILE: assets/icons/browserconfig.xml
================================================
<?xml version="1.0" encoding="utf-8"?>
<browserconfig><msapplication><tile><square70x70logo src="/ms-icon-70x70.png"/><square150x150logo src="/ms-icon-150x150.png"/><square310x310logo src="/ms-icon-310x310.png"/><TileColor>#ffffff</TileColor></tile></msapplication></browserconfig>

================================================
FILE: assets/icons/manifest.json
================================================
{
 "name": "App",
 "icons": [
  {
   "src": "\/android-icon-36x36.png",
   "sizes": "36x36",
   "type": "image\/png",
   "density": "0.75"
  },
  {
   "src": "\/android-icon-48x48.png",
   "sizes": "48x48",
   "type": "image\/png",
   "density": "1.0"
  },
  {
   "src": "\/android-icon-72x72.png",
   "sizes": "72x72",
   "type": "image\/png",
   "density": "1.5"
  },
  {
   "src": "\/android-icon-96x96.png",
   "sizes": "96x96",
   "type": "image\/png",
   "density": "2.0"
  },
  {
   "src": "\/android-icon-144x144.png",
   "sizes": "144x144",
   "type": "image\/png",
   "density": "3.0"
  },
  {
   "src": "\/android-icon-192x192.png",
   "sizes": "192x192",
   "type": "image\/png",
   "density": "4.0"
  }
 ]
}

================================================
FILE: circle.yml
================================================
machine:
  ruby:
    version:
      2.2.2
test:
  override:
    - bundle exec jekyll build


================================================
FILE: css/main.scss
================================================
---
# Only the main Sass file needs front mat
Download .txt
gitextract_k1zahj9n/

├── .editorconfig
├── .gitignore
├── .ruby-version
├── Gemfile
├── LICENSE.md
├── README.md
├── _config.yml
├── _includes/
│   ├── footer.html
│   ├── head.html
│   ├── header.html
│   ├── nav_links.html
│   ├── page_divider.html
│   └── tooltips/
│       ├── .editorconfig
│       └── example.html
├── _layouts/
│   ├── archive.html
│   ├── default.html
│   ├── page.html
│   └── post.html
├── _posts/
│   ├── 2015-04-18-dummy.md
│   ├── 2015-04-18-dummy2.md
│   ├── 2015-04-18-dummy3.md
│   ├── 2015-04-18-dummy4.md
│   ├── 2015-04-18-dummy5.md
│   ├── 2015-04-18-dummy6.md
│   ├── 2015-04-18-welcome-to-jekyll.md
│   ├── 2015-04-19-dummy6.markdown
│   └── 2015-04-20-welcome-to-jekyll.markdown
├── _sass/
│   ├── _layout.scss
│   ├── base/
│   │   ├── _base.scss
│   │   ├── _buttons.scss
│   │   ├── _forms.scss
│   │   ├── _grid-settings.scss
│   │   ├── _lists.scss
│   │   ├── _tables.scss
│   │   ├── _typography.scss
│   │   └── _variables.scss
│   ├── bourbon/
│   │   ├── _bourbon-deprecated-upcoming.scss
│   │   ├── _bourbon.scss
│   │   ├── addons/
│   │   │   ├── _border-color.scss
│   │   │   ├── _border-radius.scss
│   │   │   ├── _border-style.scss
│   │   │   ├── _border-width.scss
│   │   │   ├── _buttons.scss
│   │   │   ├── _clearfix.scss
│   │   │   ├── _ellipsis.scss
│   │   │   ├── _font-stacks.scss
│   │   │   ├── _hide-text.scss
│   │   │   ├── _margin.scss
│   │   │   ├── _padding.scss
│   │   │   ├── _position.scss
│   │   │   ├── _prefixer.scss
│   │   │   ├── _retina-image.scss
│   │   │   ├── _size.scss
│   │   │   ├── _text-inputs.scss
│   │   │   ├── _timing-functions.scss
│   │   │   ├── _triangle.scss
│   │   │   └── _word-wrap.scss
│   │   ├── css3/
│   │   │   ├── _animation.scss
│   │   │   ├── _appearance.scss
│   │   │   ├── _backface-visibility.scss
│   │   │   ├── _background-image.scss
│   │   │   ├── _background.scss
│   │   │   ├── _border-image.scss
│   │   │   ├── _calc.scss
│   │   │   ├── _columns.scss
│   │   │   ├── _filter.scss
│   │   │   ├── _flex-box.scss
│   │   │   ├── _font-face.scss
│   │   │   ├── _font-feature-settings.scss
│   │   │   ├── _hidpi-media-query.scss
│   │   │   ├── _hyphens.scss
│   │   │   ├── _image-rendering.scss
│   │   │   ├── _keyframes.scss
│   │   │   ├── _linear-gradient.scss
│   │   │   ├── _perspective.scss
│   │   │   ├── _placeholder.scss
│   │   │   ├── _radial-gradient.scss
│   │   │   ├── _selection.scss
│   │   │   ├── _text-decoration.scss
│   │   │   ├── _transform.scss
│   │   │   ├── _transition.scss
│   │   │   └── _user-select.scss
│   │   ├── functions/
│   │   │   ├── _assign-inputs.scss
│   │   │   ├── _contains-falsy.scss
│   │   │   ├── _contains.scss
│   │   │   ├── _is-length.scss
│   │   │   ├── _is-light.scss
│   │   │   ├── _is-number.scss
│   │   │   ├── _is-size.scss
│   │   │   ├── _modular-scale.scss
│   │   │   ├── _px-to-em.scss
│   │   │   ├── _px-to-rem.scss
│   │   │   ├── _shade.scss
│   │   │   ├── _strip-units.scss
│   │   │   ├── _tint.scss
│   │   │   ├── _transition-property-name.scss
│   │   │   └── _unpack.scss
│   │   ├── helpers/
│   │   │   ├── _convert-units.scss
│   │   │   ├── _directional-values.scss
│   │   │   ├── _font-source-declaration.scss
│   │   │   ├── _gradient-positions-parser.scss
│   │   │   ├── _linear-angle-parser.scss
│   │   │   ├── _linear-gradient-parser.scss
│   │   │   ├── _linear-positions-parser.scss
│   │   │   ├── _linear-side-corner-parser.scss
│   │   │   ├── _radial-arg-parser.scss
│   │   │   ├── _radial-gradient-parser.scss
│   │   │   ├── _radial-positions-parser.scss
│   │   │   ├── _render-gradients.scss
│   │   │   ├── _shape-size-stripper.scss
│   │   │   └── _str-to-num.scss
│   │   └── settings/
│   │       ├── _asset-pipeline.scss
│   │       ├── _prefixer.scss
│   │       └── _px-to-em.scss
│   └── neat/
│       ├── _neat-helpers.scss
│       ├── _neat.scss
│       ├── functions/
│       │   ├── _new-breakpoint.scss
│       │   └── _private.scss
│       ├── grid/
│       │   ├── _box-sizing.scss
│       │   ├── _direction-context.scss
│       │   ├── _display-context.scss
│       │   ├── _fill-parent.scss
│       │   ├── _media.scss
│       │   ├── _omega.scss
│       │   ├── _outer-container.scss
│       │   ├── _pad.scss
│       │   ├── _private.scss
│       │   ├── _row.scss
│       │   ├── _shift.scss
│       │   ├── _span-columns.scss
│       │   ├── _to-deprecate.scss
│       │   └── _visual-grid.scss
│       └── settings/
│           ├── _disable-warnings.scss
│           ├── _grid.scss
│           └── _visual-grid.scss
├── about.md
├── assets/
│   └── icons/
│       ├── browserconfig.xml
│       └── manifest.json
├── circle.yml
├── css/
│   └── main.scss
├── feed.xml
├── index.html
├── js/
│   └── .gitkeep
├── posts.md
├── stackbit.yaml
└── typography.md
Condensed preview — 146 files, each showing path, character count, and a content snippet. Download the .json file or copy for the full structured content (216K chars).
[
  {
    "path": ".editorconfig",
    "chars": 246,
    "preview": "# EditorConfig is awesome: http://EditorConfig.org\n\nroot = true\n\n[*]\nend_of_line = lf\ninsert_final_newline = true\n\n[*.{h"
  },
  {
    "path": ".gitignore",
    "chars": 104,
    "preview": ".DS_Store\n\n# Compiled site\n_site\n.jekyll-cache/\n\n# Sass garbage\n.sass-cache\n\n# Bundler\n.bundle/\nvendor/\n"
  },
  {
    "path": ".ruby-version",
    "chars": 6,
    "preview": "2.6.3\n"
  },
  {
    "path": "Gemfile",
    "chars": 117,
    "preview": "source 'https://rubygems.org'\ngem 'jekyll', '<4'\ngem 'jekyll-archives'\ngem 'jekyll-sitemap'\ngem 'jekyll-paginate-v2'\n"
  },
  {
    "path": "LICENSE.md",
    "chars": 1077,
    "preview": "The MIT License (MIT)\n\nCopyright (c) 2015 Ben Centra\n\nPermission is hereby granted, free of charge, to any person obtain"
  },
  {
    "path": "README.md",
    "chars": 11173,
    "preview": "# Centrarium [![Circle CI](https://circleci.com/gh/bencentra/centrarium/tree/master.svg?style=svg)](https://circleci.com"
  },
  {
    "path": "_config.yml",
    "chars": 4892,
    "preview": "# External plugins\n# See http://ixti.net/software/2013/01/28/using-jekyll-plugins-on-github-pages.html for making `jekyl"
  },
  {
    "path": "_includes/footer.html",
    "chars": 3137,
    "preview": "<footer class=\"site-footer\">\n\n  <div class=\"wrapper\">\n\n    <h3 class=\"footer-heading\">{{ site.title }}</h3>\n\n    <div cl"
  },
  {
    "path": "_includes/head.html",
    "chars": 5819,
    "preview": "<head>\n  <meta charset=\"utf-8\">\n  <meta http-equiv=\"X-UA-Compatible\" content=\"IE=edge\">\n  <meta name=\"viewport\" content="
  },
  {
    "path": "_includes/header.html",
    "chars": 605,
    "preview": "<header class=\"navigation\" role=\"banner\">\n  <div class=\"navigation-wrapper\">\n    <a href=\"{{ site.baseurl }}/\" class=\"lo"
  },
  {
    "path": "_includes/nav_links.html",
    "chars": 194,
    "preview": "{% for page in site.pages %}\n\t{% if page.title and page.main_nav == true %}\n\t<li class=\"nav-link\"><a href=\"{{ page.url |"
  },
  {
    "path": "_includes/page_divider.html",
    "chars": 92,
    "preview": "<span class=\"page-divider\">\n  <span class=\"one\"></span>\n  <span class=\"two\"></span>\n</span>\n"
  },
  {
    "path": "_includes/tooltips/.editorconfig",
    "chars": 47,
    "preview": "root = false\n\n[*]\ninsert_final_newline = false\n"
  },
  {
    "path": "_includes/tooltips/example.html",
    "chars": 121,
    "preview": "Put your tooltip content here. <em>It</em> <strong>can</strong> <u>even</u> be <span style=\\\"font-size: 2em\\\">HTML</span"
  },
  {
    "path": "_layouts/archive.html",
    "chars": 566,
    "preview": "---\nlayout: default\n---\n<div class=\"wrapper\">\n<div class=\"page\">\n\n  <header class=\"post-header\">\n    <h1 class=\"post-tit"
  },
  {
    "path": "_layouts/default.html",
    "chars": 207,
    "preview": "<!DOCTYPE html>\n<html>\n\n  {% include head.html %}\n\n  <body>\n\n    {% include header.html %}\n\n    <div class=\"page-content"
  },
  {
    "path": "_layouts/page.html",
    "chars": 273,
    "preview": "---\nlayout: default\n---\n<div class=\"wrapper\">\n<div class=\"page\">\n\n  <header class=\"post-header\">\n    <h1 class=\"post-tit"
  },
  {
    "path": "_layouts/post.html",
    "chars": 6447,
    "preview": "---\nlayout: default\n---\n<div class=\"post\">\n\n<div class=\"post-header-container {% if page.cover %}has-cover{% endif %}\" {"
  },
  {
    "path": "_posts/2015-04-18-dummy.md",
    "chars": 619,
    "preview": "---\nlayout: post\ntitle:  \"Dummy Post\"\ndate:   2015-04-18T14:25:52-05:00\nauthor: Ben Centra\ncategories: Dummy\n---\n\nThis i"
  },
  {
    "path": "_posts/2015-04-18-dummy2.md",
    "chars": 621,
    "preview": "---\nlayout: post\ntitle:  \"Dummy Post 2\"\ndate:   2015-04-18T14:25:52-05:00\nauthor: Ben Centra\ncategories: Dummy\n---\n\nThis"
  },
  {
    "path": "_posts/2015-04-18-dummy3.md",
    "chars": 621,
    "preview": "---\nlayout: post\ntitle:  \"Dummy Post 3\"\ndate:   2015-04-18T14:25:52-05:00\nauthor: Ben Centra\ncategories: Dummy\n---\n\nThis"
  },
  {
    "path": "_posts/2015-04-18-dummy4.md",
    "chars": 633,
    "preview": "---\nlayout: post\ntitle:  \"Dummy Post 4\"\ndate:   2015-04-18T14:25:52-05:00\nauthor: Ben Centra\ncategories: Dummy\ntags: ips"
  },
  {
    "path": "_posts/2015-04-18-dummy5.md",
    "chars": 633,
    "preview": "---\nlayout: post\ntitle:  \"Dummy Post 5\"\ndate:   2015-04-18T14:25:52-05:00\nauthor: Ben Centra\ncategories: Dummy\ntags: lor"
  },
  {
    "path": "_posts/2015-04-18-dummy6.md",
    "chars": 639,
    "preview": "---\nlayout: post\ntitle:  \"Dummy Post 6\"\ndate:   2015-04-18T14:25:52-05:00\nauthor: Ben Centra\ncategories: Dummy\ntags: lor"
  },
  {
    "path": "_posts/2015-04-18-welcome-to-jekyll.md",
    "chars": 3359,
    "preview": "---\nlayout: post\ntitle:  \"Welcome to Jekyll!\"\ndate:   2015-04-18T14:25:52-05:00\nauthor: Ben Centra\ncategories: Jekyll\nta"
  },
  {
    "path": "_posts/2015-04-19-dummy6.markdown",
    "chars": 633,
    "preview": "---\nlayout: post\ntitle:  \"Dummy Post 6\"\ndate:   2015-04-19 08:43:59\nauthor: Ben Centra\ncategories: Dummy\ntags: lorem ips"
  },
  {
    "path": "_posts/2015-04-20-welcome-to-jekyll.markdown",
    "chars": 4818,
    "preview": "---\nlayout: post\ntitle:  \"Welcome to Jekyll!\"\ndate:   2015-04-20 08:43:59\nauthor: Ben Centra\ncategories: Jekyll\ntags:\tje"
  },
  {
    "path": "_sass/_layout.scss",
    "chars": 7251,
    "preview": "// Primary site layout for Centrarium Theme\n\n/*\n*\tVariables\n*/\n$b3: 480px;\n$mobile: $b3;\n$b2: 768px;\n$tablet: $b2;\n$b1: "
  },
  {
    "path": "_sass/base/_base.scss",
    "chars": 322,
    "preview": "// Bitters 1.0.0\n// http://bitters.bourbon.io\n// Copyright 2013-2015 thoughtbot, inc.\n// MIT License\n\n@import \"variables"
  },
  {
    "path": "_sass/base/_buttons.scss",
    "chars": 628,
    "preview": "#{$all-button-inputs},\nbutton {\n  @include appearance(none);\n  -webkit-font-smoothing: antialiased;\n  background-color: "
  },
  {
    "path": "_sass/base/_forms.scss",
    "chars": 1321,
    "preview": "fieldset {\n  background-color: lighten($base-border-color, 10%);\n  border: $base-border;\n  margin: 0 0 $small-spacing;\n "
  },
  {
    "path": "_sass/base/_grid-settings.scss",
    "chars": 368,
    "preview": "@import \"neat-helpers\"; // or \"../neat/neat-helpers\" when not in Rails\n\n// Neat Overrides\n// $column: 90px;\n// $gutter: "
  },
  {
    "path": "_sass/base/_lists.scss",
    "chars": 437,
    "preview": "ul,\nol {\n\n  &%default-ul,\n  &%default-ol {\n  \tlist-style-type: none;\n\t  margin: 0;\n\t  padding: 0;\n  }\n  \n}\n\nul {\n\tlist-s"
  },
  {
    "path": "_sass/base/_tables.scss",
    "chars": 410,
    "preview": "table {\n  @include font-feature-settings(\"kern\", \"liga\", \"tnum\");\n  border-collapse: collapse;\n  margin: $small-spacing "
  },
  {
    "path": "_sass/base/_typography.scss",
    "chars": 1132,
    "preview": "body {\n  @include font-feature-settings(\"kern\", \"liga\", \"pnum\");\n  -webkit-font-smoothing: antialiased;\n  color: $base-f"
  },
  {
    "path": "_sass/base/_variables.scss",
    "chars": 1553,
    "preview": "// Google Fonts\n@import url(//fonts.googleapis.com/css?family=Roboto+Slab:400,700,300|Roboto:400,700,300|Open+Sans:300it"
  },
  {
    "path": "_sass/bourbon/_bourbon-deprecated-upcoming.scss",
    "chars": 14536,
    "preview": "// The following features have been deprecated and will be removed in the next MAJOR version release\n\n@mixin inline-bloc"
  },
  {
    "path": "_sass/bourbon/_bourbon.scss",
    "chars": 2516,
    "preview": "// Bourbon 4.2.2\n// http://bourbon.io\n// Copyright 2011-2015 thoughtbot, inc.\n// MIT License\n\n@import \"settings/prefixer"
  },
  {
    "path": "_sass/bourbon/addons/_border-color.scss",
    "chars": 649,
    "preview": "@charset \"UTF-8\";\n\n/// Provides a quick method for targeting `border-color` on specific sides of a box. Use a `null` val"
  },
  {
    "path": "_sass/bourbon/addons/_border-radius.scss",
    "chars": 1071,
    "preview": "@charset \"UTF-8\";\n\n/// Provides a quick method for targeting `border-radius` on both corners on the side of a box.\n///\n/"
  },
  {
    "path": "_sass/bourbon/addons/_border-style.scss",
    "chars": 600,
    "preview": "@charset \"UTF-8\";\n\n/// Provides a quick method for targeting `border-style` on specific sides of a box. Use a `null` val"
  },
  {
    "path": "_sass/bourbon/addons/_border-width.scss",
    "chars": 592,
    "preview": "@charset \"UTF-8\";\n\n/// Provides a quick method for targeting `border-width` on specific sides of a box. Use a `null` val"
  },
  {
    "path": "_sass/bourbon/addons/_buttons.scss",
    "chars": 1715,
    "preview": "@charset \"UTF-8\";\n\n/// Generates variables for all buttons. Please note that you must use interpolation on the variable:"
  },
  {
    "path": "_sass/bourbon/addons/_clearfix.scss",
    "chars": 456,
    "preview": "@charset \"UTF-8\";\n\n/// Provides an easy way to include a clearfix for containing floats.\n///\n/// @link http://cssmojo.co"
  },
  {
    "path": "_sass/bourbon/addons/_ellipsis.scss",
    "chars": 669,
    "preview": "@charset \"UTF-8\";\n\n/// Truncates text and adds an ellipsis to represent overflow.\n///\n/// @param {Number} $width [100%]\n"
  },
  {
    "path": "_sass/bourbon/addons/_font-stacks.scss",
    "chars": 586,
    "preview": "@charset \"UTF-8\";\n\n/// Georgia font stack.\n///\n/// @type List\n\n$georgia: \"Georgia\", \"Cambria\", \"Times New Roman\", \"Times"
  },
  {
    "path": "_sass/bourbon/addons/_hide-text.scss",
    "chars": 740,
    "preview": "/// Hides the text in an element, commonly used to show an image. Some elements will need block-level styles applied.\n//"
  },
  {
    "path": "_sass/bourbon/addons/_margin.scss",
    "chars": 590,
    "preview": "@charset \"UTF-8\";\n\n/// Provides a quick method for targeting `margin` on specific sides of a box. Use a `null` value to "
  },
  {
    "path": "_sass/bourbon/addons/_padding.scss",
    "chars": 594,
    "preview": "@charset \"UTF-8\";\n\n/// Provides a quick method for targeting `padding` on specific sides of a box. Use a `null` value to"
  },
  {
    "path": "_sass/bourbon/addons/_position.scss",
    "chars": 1128,
    "preview": "@charset \"UTF-8\";\n\n/// Provides a quick method for setting an element’s position. Use a `null` value to “skip” a side.\n/"
  },
  {
    "path": "_sass/bourbon/addons/_prefixer.scss",
    "chars": 1664,
    "preview": "@charset \"UTF-8\";\n\n/// A mixin for generating vendor prefixes on non-standardized properties.\n///\n/// @param {String} $p"
  },
  {
    "path": "_sass/bourbon/addons/_retina-image.scss",
    "chars": 835,
    "preview": "@mixin retina-image($filename, $background-size, $extension: png, $retina-filename: null, $retina-suffix: _2x, $asset-pi"
  },
  {
    "path": "_sass/bourbon/addons/_size.scss",
    "chars": 1108,
    "preview": "@charset \"UTF-8\";\n\n/// Sets the `width` and `height` of the element.\n///\n/// @param {List} $size\n///   A list of at most"
  },
  {
    "path": "_sass/bourbon/addons/_text-inputs.scss",
    "chars": 3442,
    "preview": "@charset \"UTF-8\";\n\n/// Generates variables for all text-based inputs. Please note that you must use interpolation on the"
  },
  {
    "path": "_sass/bourbon/addons/_timing-functions.scss",
    "chars": 1777,
    "preview": "@charset \"UTF-8\";\n\n/// CSS cubic-bezier timing functions. Timing functions courtesy of jquery.easie (github.com/jaukia/e"
  },
  {
    "path": "_sass/bourbon/addons/_triangle.scss",
    "chars": 2537,
    "preview": "@mixin triangle($size, $color, $direction) {\n  $width: nth($size, 1);\n  $height: nth($size, length($size));\n  $foregroun"
  },
  {
    "path": "_sass/bourbon/addons/_word-wrap.scss",
    "chars": 597,
    "preview": "@charset \"UTF-8\";\n\n/// Provides an easy way to change the `word-wrap` property.\n///\n/// @param {String} $wrap [break-wor"
  },
  {
    "path": "_sass/bourbon/css3/_animation.scss",
    "chars": 1500,
    "preview": "// http://www.w3.org/TR/css3-animations/#the-animation-name-property-\n// Each of these mixins support comma separated li"
  },
  {
    "path": "_sass/bourbon/css3/_appearance.scss",
    "chars": 93,
    "preview": "@mixin appearance($value) {\n  @include prefixer(appearance, $value, webkit moz ms o spec);\n}\n"
  },
  {
    "path": "_sass/bourbon/css3/_backface-visibility.scss",
    "chars": 112,
    "preview": "@mixin backface-visibility($visibility) {\n  @include prefixer(backface-visibility, $visibility, webkit spec);\n}\n"
  },
  {
    "path": "_sass/bourbon/css3/_background-image.scss",
    "chars": 1332,
    "preview": "//************************************************************************//\n// Background-image property for adding mul"
  },
  {
    "path": "_sass/bourbon/css3/_background.scss",
    "chars": 1778,
    "preview": "//************************************************************************//\n// Background property for adding multiple "
  },
  {
    "path": "_sass/bourbon/css3/_border-image.scss",
    "chars": 1827,
    "preview": "@mixin border-image($borders...) {\n  $webkit-borders: ();\n  $spec-borders: ();\n\n  @each $border in $borders {\n    $webki"
  },
  {
    "path": "_sass/bourbon/css3/_calc.scss",
    "chars": 109,
    "preview": "@mixin calc($property, $value) {\n  #{$property}: -webkit-calc(#{$value});\n  #{$property}: calc(#{$value});\n}\n"
  },
  {
    "path": "_sass/bourbon/css3/_columns.scss",
    "chars": 1257,
    "preview": "@mixin columns($arg: auto) {\n  // <column-count> || <column-width>\n  @include prefixer(columns, $arg, webkit moz spec);\n"
  },
  {
    "path": "_sass/bourbon/css3/_filter.scss",
    "chars": 138,
    "preview": "@mixin filter($function: none) {\n  // <filter-function> [<filter-function]* | none\n  @include prefixer(filter, $function"
  },
  {
    "path": "_sass/bourbon/css3/_flex-box.scss",
    "chars": 7544,
    "preview": "// CSS3 Flexible Box Model and property defaults\n\n// Custom shorthand notation for flexbox\n@mixin box($orient: inline-ax"
  },
  {
    "path": "_sass/bourbon/css3/_font-face.scss",
    "chars": 471,
    "preview": "@mixin font-face(\n  $font-family,\n  $file-path,\n  $weight: normal,\n  $style: normal,\n  $asset-pipeline: $asset-pipeline,"
  },
  {
    "path": "_sass/bourbon/css3/_font-feature-settings.scss",
    "chars": 172,
    "preview": "@mixin font-feature-settings($settings...) {\n  @if length($settings) == 0 { $settings: none; }\n  @include prefixer(font-"
  },
  {
    "path": "_sass/bourbon/css3/_hidpi-media-query.scss",
    "chars": 463,
    "preview": "// HiDPI mixin. Default value set to 1.3 to target Google Nexus 7 (http://bjango.com/articles/min-device-pixel-ratio/)\n@"
  },
  {
    "path": "_sass/bourbon/css3/_hyphens.scss",
    "chars": 129,
    "preview": "@mixin hyphens($hyphenation: none) {\n  // none | manual | auto\n  @include prefixer(hyphens, $hyphenation, webkit moz ms "
  },
  {
    "path": "_sass/bourbon/css3/_image-rendering.scss",
    "chars": 331,
    "preview": "@mixin image-rendering ($mode:auto) {\n\n  @if ($mode == crisp-edges) {\n    -ms-interpolation-mode: nearest-neighbor; // I"
  },
  {
    "path": "_sass/bourbon/css3/_keyframes.scss",
    "chars": 1159,
    "preview": "// Adds keyframes blocks for supported prefixes, removing redundant prefixes in the block's content\n@mixin keyframes($na"
  },
  {
    "path": "_sass/bourbon/css3/_linear-gradient.scss",
    "chars": 1308,
    "preview": "@mixin linear-gradient($pos, $g1, $g2: null,\n                       $g3: null, $g4: null,\n                       $g5: nu"
  },
  {
    "path": "_sass/bourbon/css3/_perspective.scss",
    "chars": 231,
    "preview": "@mixin perspective($depth: none) {\n  // none | <length>\n  @include prefixer(perspective, $depth, webkit moz spec);\n}\n\n@m"
  },
  {
    "path": "_sass/bourbon/css3/_placeholder.scss",
    "chars": 187,
    "preview": "@mixin placeholder {\n  $placeholders: \":-webkit-input\" \":-moz\" \"-moz\" \"-ms-input\";\n  @each $placeholder in $placeholders"
  },
  {
    "path": "_sass/bourbon/css3/_radial-gradient.scss",
    "chars": 1407,
    "preview": "// Requires Sass 3.1+\n@mixin radial-gradient($g1, $g2,\n                       $g3: null, $g4: null,\n                    "
  },
  {
    "path": "_sass/bourbon/css3/_selection.scss",
    "chars": 848,
    "preview": "@charset \"UTF-8\";\r\n\r\n/// Outputs the spec and prefixed versions of the `::selection` pseudo-element.\r\n///\r\n/// @param {B"
  },
  {
    "path": "_sass/bourbon/css3/_text-decoration.scss",
    "chars": 616,
    "preview": "@mixin text-decoration($value) {\n// <text-decoration-line> || <text-decoration-style> || <text-decoration-color>\n  @incl"
  },
  {
    "path": "_sass/bourbon/css3/_transform.scss",
    "chars": 501,
    "preview": "@mixin transform($property: none) {\n  // none | <transform-function>\n  @include prefixer(transform, $property, webkit mo"
  },
  {
    "path": "_sass/bourbon/css3/_transition.scss",
    "chars": 2202,
    "preview": "// Shorthand mixin. Supports multiple parentheses-deliminated values for each variable.\n// Example: @include transition "
  },
  {
    "path": "_sass/bourbon/css3/_user-select.scss",
    "chars": 99,
    "preview": "@mixin user-select($value: none) {\n  @include prefixer(user-select, $value, webkit moz ms spec);\n}\n"
  },
  {
    "path": "_sass/bourbon/functions/_assign-inputs.scss",
    "chars": 243,
    "preview": "@function assign-inputs($inputs, $pseudo: null) {\n  $list: ();\n\n  @each $input in $inputs {\n    $input: unquote($input);"
  },
  {
    "path": "_sass/bourbon/functions/_contains-falsy.scss",
    "chars": 305,
    "preview": "@charset \"UTF-8\";\n\n/// Checks if a list does not contains a value.\n///\n/// @access private\n///\n/// @param {List} $list\n/"
  },
  {
    "path": "_sass/bourbon/functions/_contains.scss",
    "chars": 483,
    "preview": "@charset \"UTF-8\";\n\n/// Checks if a list contains a value(s).\n///\n/// @access private\n///\n/// @param {List} $list\n///   T"
  },
  {
    "path": "_sass/bourbon/functions/_is-length.scss",
    "chars": 314,
    "preview": "@charset \"UTF-8\";\n\n/// Checks for a valid CSS length.\n///\n/// @param {String} $value\n\n@function is-length($value) {\n  @r"
  },
  {
    "path": "_sass/bourbon/functions/_is-light.scss",
    "chars": 568,
    "preview": "@charset \"UTF-8\";\n\n/// Programatically determines whether a color is light or dark.\n///\n/// @link http://robots.thoughtb"
  },
  {
    "path": "_sass/bourbon/functions/_is-number.scss",
    "chars": 240,
    "preview": "@charset \"UTF-8\";\n\n/// Checks for a valid number.\n///\n/// @param {Number} $value\n///\n/// @require {function} contains\n\n@"
  },
  {
    "path": "_sass/bourbon/functions/_is-size.scss",
    "chars": 294,
    "preview": "@charset \"UTF-8\";\n\n/// Checks for a valid CSS size.\n///\n/// @param {String} $value\n///\n/// @require {function} contains\n"
  },
  {
    "path": "_sass/bourbon/functions/_modular-scale.scss",
    "chars": 1605,
    "preview": "// Scaling Variables\n$golden:           1.618;\n$minor-second:     1.067;\n$major-second:     1.125;\n$minor-third:      1."
  },
  {
    "path": "_sass/bourbon/functions/_px-to-em.scss",
    "chars": 366,
    "preview": "// Convert pixels to ems\n// eg. for a relational value of 12px write em(12) when the parent is 16px\n// if the parent is "
  },
  {
    "path": "_sass/bourbon/functions/_px-to-rem.scss",
    "chars": 336,
    "preview": "// Convert pixels to rems\n// eg. for a relational value of 12px write rem(12)\n// Assumes $em-base is the font-size of <h"
  },
  {
    "path": "_sass/bourbon/functions/_shade.scss",
    "chars": 465,
    "preview": "@charset \"UTF-8\";\n\n/// Mixes a color with black.\n///\n/// @param {Color} $color\n///\n/// @param {Number (Percentage)} $per"
  },
  {
    "path": "_sass/bourbon/functions/_strip-units.scss",
    "chars": 330,
    "preview": "@charset \"UTF-8\";\n\n/// Strips the unit from a number.\n///\n/// @param {Number (With Unit)} $value\n///\n/// @example scss -"
  },
  {
    "path": "_sass/bourbon/functions/_tint.scss",
    "chars": 463,
    "preview": "@charset \"UTF-8\";\n\n/// Mixes a color with white.\n///\n/// @param {Color} $color\n///\n/// @param {Number (Percentage)} $per"
  },
  {
    "path": "_sass/bourbon/functions/_transition-property-name.scss",
    "chars": 712,
    "preview": "// Return vendor-prefixed property names if appropriate\n// Example: transition-property-names((transform, color, backgro"
  },
  {
    "path": "_sass/bourbon/functions/_unpack.scss",
    "chars": 729,
    "preview": "@charset \"UTF-8\";\n\n/// Converts shorthand to the 4-value syntax.\n///\n/// @param {List} $shorthand\n///\n/// @example scss "
  },
  {
    "path": "_sass/bourbon/helpers/_convert-units.scss",
    "chars": 812,
    "preview": "//************************************************************************//\n// Helper function for str-to-num fn.\n// So"
  },
  {
    "path": "_sass/bourbon/helpers/_directional-values.scss",
    "chars": 2699,
    "preview": "@charset \"UTF-8\";\n\n/// Directional-property mixins are shorthands for writing properties like the following\n///\n/// @ign"
  },
  {
    "path": "_sass/bourbon/helpers/_font-source-declaration.scss",
    "chars": 1049,
    "preview": "// Used for creating the source string for fonts using @font-face\n// Reference: http://goo.gl/Ru1bKP\n\n@function font-url"
  },
  {
    "path": "_sass/bourbon/helpers/_gradient-positions-parser.scss",
    "chars": 480,
    "preview": "@function _gradient-positions-parser($gradient-type, $gradient-positions) {\n  @if $gradient-positions\n  and ($gradient-t"
  },
  {
    "path": "_sass/bourbon/helpers/_linear-angle-parser.scss",
    "chars": 757,
    "preview": "// Private function for linear-gradient-parser\n@function _linear-angle-parser($image, $first-val, $prefix, $suffix) {\n  "
  },
  {
    "path": "_sass/bourbon/helpers/_linear-gradient-parser.scss",
    "chars": 1089,
    "preview": "@function _linear-gradient-parser($image) {\n  $image: unquote($image);\n  $gradients: ();\n  $start: str-index($image, \"(\""
  },
  {
    "path": "_sass/bourbon/helpers/_linear-positions-parser.scss",
    "chars": 1993,
    "preview": "@function _linear-positions-parser($pos) {\n  $type: type-of(nth($pos, 1));\n  $spec: null;\n  $degree: null;\n  $side: null"
  },
  {
    "path": "_sass/bourbon/helpers/_linear-side-corner-parser.scss",
    "chars": 916,
    "preview": "// Private function for linear-gradient-parser\n@function _linear-side-corner-parser($image, $first-val, $prefix, $suffix"
  },
  {
    "path": "_sass/bourbon/helpers/_radial-arg-parser.scss",
    "chars": 1828,
    "preview": "@function _radial-arg-parser($g1, $g2, $pos, $shape-size) {\n  @each $value in $g1, $g2 {\n    $first-val: nth($value, 1);"
  },
  {
    "path": "_sass/bourbon/helpers/_radial-gradient-parser.scss",
    "chars": 1282,
    "preview": "@function _radial-gradient-parser($image) {\n  $image: unquote($image);\n  $gradients: ();\n  $start: str-index($image, \"(\""
  },
  {
    "path": "_sass/bourbon/helpers/_radial-positions-parser.scss",
    "chars": 485,
    "preview": "@function _radial-positions-parser($gradient-pos) {\n  $shape-size: nth($gradient-pos, 1);\n  $pos:        nth($gradient-p"
  },
  {
    "path": "_sass/bourbon/helpers/_render-gradients.scss",
    "chars": 845,
    "preview": "// User for linear and radial gradients within background-image or border-image properties\n\n@function _render-gradients("
  },
  {
    "path": "_sass/bourbon/helpers/_shape-size-stripper.scss",
    "chars": 274,
    "preview": "@function _shape-size-stripper($shape-size) {\n  $shape-size-spec: null;\n  @each $value in $shape-size {\n    @if ($value "
  },
  {
    "path": "_sass/bourbon/helpers/_str-to-num.scss",
    "chars": 1245,
    "preview": "//************************************************************************//\n// Helper function for linear/radial-gradie"
  },
  {
    "path": "_sass/bourbon/settings/_asset-pipeline.scss",
    "chars": 179,
    "preview": "@charset \"UTF-8\";\n\n/// A global setting to enable or disable the `$asset-pipeline` variable for all functions that accep"
  },
  {
    "path": "_sass/bourbon/settings/_prefixer.scss",
    "chars": 268,
    "preview": "@charset \"UTF-8\";\n\n/// Global variables to enable or disable vendor prefixes\n\n$prefix-for-webkit:    true !default;\n$pre"
  },
  {
    "path": "_sass/bourbon/settings/_px-to-em.scss",
    "chars": 25,
    "preview": "$em-base: 16px !default;\n"
  },
  {
    "path": "_sass/neat/_neat-helpers.scss",
    "chars": 185,
    "preview": "// Functions\n@import \"functions/private\";\n@import \"functions/new-breakpoint\";\n\n// Settings\n@import \"settings/grid\";\n@imp"
  },
  {
    "path": "_sass/neat/_neat.scss",
    "chars": 509,
    "preview": "// Neat 1.7.2\n// http://neat.bourbon.io\n// Copyright 2012-2015 thoughtbot, inc.\n// MIT License\n\n// Helpers\n@import \"neat"
  },
  {
    "path": "_sass/neat/functions/_new-breakpoint.scss",
    "chars": 1854,
    "preview": "@charset \"UTF-8\";\n\n/// Returns a media context (media query / grid context) that can be stored in a variable and passed "
  },
  {
    "path": "_sass/neat/functions/_private.scss",
    "chars": 2813,
    "preview": "// Not function for Libsass compatibility\n// https://github.com/sass/libsass/issues/368\n@function is-not($value) {\n  @re"
  },
  {
    "path": "_sass/neat/grid/_box-sizing.scss",
    "chars": 201,
    "preview": "@charset \"UTF-8\";\n\n@if $border-box-sizing == true {\n  html { // http://bit.ly/1qk2tVR\n    box-sizing: border-box;\n  }\n\n "
  },
  {
    "path": "_sass/neat/grid/_direction-context.scss",
    "chars": 872,
    "preview": "@charset \"UTF-8\";\n\n/// Changes the direction property used by other mixins called in the code block argument.\n///\n/// @p"
  },
  {
    "path": "_sass/neat/grid/_display-context.scss",
    "chars": 669,
    "preview": "@charset \"UTF-8\";\n\n/// Changes the display property used by other mixins called in the code block argument.\n///\n/// @par"
  },
  {
    "path": "_sass/neat/grid/_fill-parent.scss",
    "chars": 379,
    "preview": "@charset \"UTF-8\";\n\n/// Forces the element to fill its parent container.\n///\n/// @example scss - Usage\n///   .element {\n/"
  },
  {
    "path": "_sass/neat/grid/_media.scss",
    "chars": 2666,
    "preview": "@charset \"UTF-8\";\n\n/// Outputs a media-query block with an optional grid context (the total number of columns used in th"
  },
  {
    "path": "_sass/neat/grid/_omega.scss",
    "chars": 2559,
    "preview": "@charset \"UTF-8\";\n\n/// Removes the element's gutter margin, regardless of its position in the grid hierarchy or display "
  },
  {
    "path": "_sass/neat/grid/_outer-container.scss",
    "chars": 1000,
    "preview": "@charset \"UTF-8\";\n\n/// Makes an element a outer container by centring it in the viewport, clearing its floats, and setti"
  },
  {
    "path": "_sass/neat/grid/_pad.scss",
    "chars": 663,
    "preview": "@charset \"UTF-8\";\n\n/// Adds padding to the element.\n///\n/// @param {List} $padding [flex-gutter()]\n///   A list of paddi"
  },
  {
    "path": "_sass/neat/grid/_private.scss",
    "chars": 1120,
    "preview": "$parent-columns: $grid-columns !default;\n$fg-column: $column;\n$fg-gutter: $gutter;\n$fg-max-columns: $grid-columns;\n$cont"
  },
  {
    "path": "_sass/neat/grid/_row.scss",
    "chars": 1605,
    "preview": "@charset \"UTF-8\";\n\n/// Designates the element as a row of columns in the grid layout. It clears the floats on the elemen"
  },
  {
    "path": "_sass/neat/grid/_shift.scss",
    "chars": 1563,
    "preview": "@charset \"UTF-8\";\n\n/// Translates an element horizontally by a number of columns. Positive arguments shift the element t"
  },
  {
    "path": "_sass/neat/grid/_span-columns.scss",
    "chars": 3160,
    "preview": "@charset \"UTF-8\";\n\n/// Specifies the number of columns an element should span. If the selector is nested the number of c"
  },
  {
    "path": "_sass/neat/grid/_to-deprecate.scss",
    "chars": 3392,
    "preview": "@charset \"UTF-8\";\n\n@mixin breakpoint($query:$feature $value $columns, $total-columns: $grid-columns) {\n  @include -neat-"
  },
  {
    "path": "_sass/neat/grid/_visual-grid.scss",
    "chars": 1079,
    "preview": "@charset \"UTF-8\";\n\n@mixin grid-column-gradient($values...) {\n  background-image: -webkit-linear-gradient(left, $values);"
  },
  {
    "path": "_sass/neat/settings/_disable-warnings.scss",
    "chars": 257,
    "preview": "@charset \"UTF-8\";\n\n/// Disable all deprecation warnings. Defaults to `false`. Set with a `!global` flag.\n///\n/// @type B"
  },
  {
    "path": "_sass/neat/settings/_grid.scss",
    "chars": 1918,
    "preview": "@charset \"UTF-8\";\n\n/// Sets the relative width of a single grid column. The unit used should be the same one used to def"
  },
  {
    "path": "_sass/neat/settings/_visual-grid.scss",
    "chars": 758,
    "preview": "@charset \"UTF-8\";\n\n/// Displays the visual grid when set to true. The overlaid grid may be few pixels off depending on t"
  },
  {
    "path": "about.md",
    "chars": 1012,
    "preview": "---\nlayout: page\ntitle: About\npermalink: /about/\nmain_nav: true\n---\n\n![alt text]({{ site.baseurl }}/assets/profile-place"
  },
  {
    "path": "assets/icons/browserconfig.xml",
    "chars": 281,
    "preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<browserconfig><msapplication><tile><square70x70logo src=\"/ms-icon-70x70.png\"/><s"
  },
  {
    "path": "assets/icons/manifest.json",
    "chars": 720,
    "preview": "{\n \"name\": \"App\",\n \"icons\": [\n  {\n   \"src\": \"\\/android-icon-36x36.png\",\n   \"sizes\": \"36x36\",\n   \"type\": \"image\\/png\",\n  "
  },
  {
    "path": "circle.yml",
    "chars": 91,
    "preview": "machine:\n  ruby:\n    version:\n      2.2.2\ntest:\n  override:\n    - bundle exec jekyll build\n"
  },
  {
    "path": "css/main.scss",
    "chars": 286,
    "preview": "---\n# Only the main Sass file needs front matter (the dashes are enough)\n---\n@charset \"utf-8\";\n\n// Import partials from "
  },
  {
    "path": "feed.xml",
    "chars": 1311,
    "preview": "---\nlayout: null\n---\n<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<rss version=\"2.0\" xmlns:atom=\"http://www.w3.org/2005/Atom\">"
  },
  {
    "path": "index.html",
    "chars": 2991,
    "preview": "---\nlayout: default\npagination: \n  enabled: true\n---\n<div class=\"home\">\n\n<div class=\"site-header-container {% if site.co"
  },
  {
    "path": "js/.gitkeep",
    "chars": 0,
    "preview": ""
  },
  {
    "path": "posts.md",
    "chars": 724,
    "preview": "---\nlayout: page\ntitle: \"Posts\"\npermalink: /posts/\nmain_nav: true\n---\n\n{% for category in site.categories %}\n  {% captur"
  },
  {
    "path": "stackbit.yaml",
    "chars": 5868,
    "preview": "stackbitVersion: ~0.2.0\nssgName: custom\npublishDir: _site\nbuildCommand: bundle install && bundle exec jekyll build\nuploa"
  },
  {
    "path": "typography.md",
    "chars": 5369,
    "preview": "---\nlayout: page\ntitle: Typography\npermalink: /typography/\nmain_nav: true\n---\n\n<p>The purpose of this HTML is to help de"
  }
]

About this extraction

This page contains the full source code of the bencentra/centrarium GitHub repository, extracted and formatted as plain text for AI agents and large language models (LLMs). The extraction includes 146 files (192.3 KB), approximately 59.9k tokens. Use this with OpenClaw, Claude, ChatGPT, Cursor, Windsurf, or any other AI tool that accepts text input. You can copy the full output to your clipboard or download it as a .txt file.

Extracted by GitExtract — free GitHub repo to text converter for AI. Built by Nikandr Surkov.

Copied to clipboard!