diff --git a/bower_components/polymer-element-catalog/.firebaserc.enc b/bower_components/polymer-element-catalog/.firebaserc.enc
new file mode 100644
index 0000000..2f3d3ba
--- /dev/null
+++ b/bower_components/polymer-element-catalog/.firebaserc.enc
@@ -0,0 +1,2 @@
+KDp'NJ߮y24/wN>i)⥭H
+ JDE4mdj3r$K]m!t`wtxp\c姎9,Ǿ
\ No newline at end of file
diff --git a/bower_components/polymer-element-catalog/.gitignore b/bower_components/polymer-element-catalog/.gitignore
new file mode 100644
index 0000000..c03f88d
--- /dev/null
+++ b/bower_components/polymer-element-catalog/.gitignore
@@ -0,0 +1,6 @@
+.tmp
+node_modules
+bower_components
+dist
+npm-debug.log
+.divshot-cache
diff --git a/bower_components/polymer-element-catalog/.travis.yml b/bower_components/polymer-element-catalog/.travis.yml
new file mode 100644
index 0000000..23aa55b
--- /dev/null
+++ b/bower_components/polymer-element-catalog/.travis.yml
@@ -0,0 +1,19 @@
+language: node_js
+sudo: false
+node_js:
+- 0.12
+before_install:
+- openssl aes-256-cbc -K $encrypted_430815991462_key -iv $encrypted_430815991462_iv
+ -in .firebaserc.enc -out $HOME/.firebaserc -d
+install:
+- npm install
+- "./node_modules/.bin/bower update"
+script: npm run build
+cache:
+ directories:
+ - node_modules
+ - bower_components
+after_success:
+- "./scripts/travis_deploy"
+notifications:
+ slack: polymer:j3IJDjBbXxqzuGRCIDYJ7tIA
diff --git a/bower_components/polymer-element-catalog/LICENSE.txt b/bower_components/polymer-element-catalog/LICENSE.txt
new file mode 100644
index 0000000..b42e58d
--- /dev/null
+++ b/bower_components/polymer-element-catalog/LICENSE.txt
@@ -0,0 +1,27 @@
+// Copyright (c) 2015 The Polymer Authors. All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+// * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+// * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+// * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
diff --git a/bower_components/polymer-element-catalog/README.md b/bower_components/polymer-element-catalog/README.md
new file mode 100644
index 0000000..7d50196
--- /dev/null
+++ b/bower_components/polymer-element-catalog/README.md
@@ -0,0 +1,215 @@
+# Polymer Element Catalog
+
+## Getting Started
+
+To work on the Polymer Elements Catalog, clone the repository.
+
+To install dependencies:
+
+ npm run deps
+
+To start a local development server:
+
+ npm run serve
+
+To start a local development server with `fixtures` turned on:
+
+ FIXTURES=true npm run serve
+
+To prepare the repo for publication:
+
+ npm run build
+
+Note: Make sure that you're running chrome 42 or later!
+
+### Fixtures
+
+While parts of the system are still in flux, it will be necessary to have stubbed
+data and other bits to be able to work against. Anything in the `fixtures`
+directory will be available when running a development server. By the time
+the catalog ships, the `fixtures` directory should be empty.
+
+## Managing Catalog Data
+
+Data for the catalog is compiled by intelligently composing together information
+from multiple sources:
+
+1. The `catalog.json` file in this repository
+2. The `bower.json` for each element package and individual element
+3. Metadata parsed directly elements' source using [hydrolysis](https://github.com/PolymerLabs/hydrolysis)
+4. Other files in package and element repositories, such as guide markdown files
+
+Each of these inputs is combined and compiled into a static format easily loaded
+by the catalog application. Outputs of the catalog compilation process include:
+
+1. A `/data/catalog.json` file heavily annotated with parsed metadata
+2. Pre-parsed element documentation in `/data/docs`
+3. The compiled HTML output of guide markdown files in `/data/guides`
+
+### How `catalog.json` is Created
+
+The final `catalog.json` file can be thought of as the repo's initial file
+decorated substantially with metadata. For instance, a package in the initial
+file:
+
+```json
+{
+ "packages": [
+ {"title":"Iron Elements", "name":"iron-elements"}
+ ]
+}
+```
+
+Gets decorated with metadata parsed from its' `bower.json`:
+
+```json
+{
+ "packages": [
+ {
+ "title":"Iron Elements",
+ "name":"iron-elements",
+ "description":"Polymer core elements",
+ "version":"1.0.0",
+ "tags":["utility","scaffolding","user-input"]
+ }
+ ]
+}
+```
+
+This decoration occurs in steps and can be considered a series of merges.
+
+### Packages
+
+Each set of elements (henceforth "package") is responsible for maintaining its
+own documentation according to the conventions established elsewhere in this
+document. Each package is represented in `catalog.json` as an entry in an array.
+This array corresponds to the order in which packages are presented in nav
+contexts in the element catalog. Each package has the following associated data:
+
+* **name:** the corresponding package name from `bower.json`
+* **title:** the human-friendly name of the package for nav display
+
+Each named package should be declared as a dependency in the `bower.json` for
+this repository. Additionally, each package's version number should be explicit,
+as the version declared in `bower.json` is used as display text in the catalog.
+
+```js
+{
+ // correct example
+ "iron-elements": "PolymerElements/iron-elements#1.0.0"
+ // incorrect example
+ "paper-elements": "PolymerElements/paper-elements#^1.0"
+}
+```
+
+By maintaining strict versioning in the catalog, updating a package's data
+becomes as easy as a pull request to `bower.json`.
+
+### Package Metadata
+
+As much as possible, the element catalog uses existing conventions from systems
+such as Bower as a repository for metadata.
+
+#### bower.json
+
+The `bower.json` for a package should contain a `dependencies` entry for each of
+its child elements. A declared dependency will be considered a child element of
+the package if and only if its name is identical to the package name before the
+first dash. As an example, if the package is `iron-elements`, `iron-ajax` would
+be considered a child but `polymer` would not.
+
+The element catalog uses the following information from `bower.json`:
+
+* **name:** The package name should correspond to a `packages` entry in the
+ `catalog.json` file in this repository for it to be displayed.
+* **description:** The package description should be phrased such that it can
+ be used as descriptive summary text in the catalog when the package is
+ presented along-side other packages. It should be less than 200 characters
+ in length but adequately descriptive of the primary use cases for the package.
+* **keywords:** Excluding `web-components` and `polymer`, these keywords will be
+ used as **tags** in the final catalog data.
+
+### Elements
+
+Elements behave much like packages: they are responsible for maintaining their
+own documentation in `bower.json`. In addition, the source `.html` files for
+elements should be documented in accordance with the [Polymer Elements style guide](http://polymerelements.github.io/style-guide/).
+
+#### bower.json
+
+The catalog uses the following information from an element's `bower.json`:
+
+* **name:** The element name. Except in rare cases, this should match a `.html`
+ file of the same name that contains the element or imports all default elements
+ for element repos with multiple elements.
+* **description:** A less-than-200 character description of what the element
+ does and how it should be used.
+* **keywords:** Except for `web-components` and `polymer`, these keywords will
+ be used as **tags** in the final catalog data.
+* **main:** This field should represent **every .html file that a user might
+ directly import**. For instance, in `iron-icons` each icon set might be imported
+ separately, so each set should be included in main. For many (most) elements
+ this can just be a string with the `.html` filename matching the `name` field.
+
+### Guides
+
+Guides are in-depth articles that allow for article-style documentation in
+addition to the API documentation for each element parsed using hydrolysis.
+
+Guides are simply Markdown files with YAML front-matter and can be included
+in the repository for the catalog, a package, or an individual element. To
+avoid namespace collisions, guides for packages and individual elements are
+identified with `repo-name/guide-name`, while guides in this repository are
+identified simply with `guide-name`.
+
+Each guide will be listed and accessible in the **Guides** section of the
+catalog, and will additionally be associated with each element and package
+it references.
+
+#### Example Markdown File (e.g. `bower_components/gold-elements/guides/ecommerce.md`)
+
+```markdown
+---
+title: How to Build an E-Commerce Site with Gold Elements
+summary: "Learn how to add drop-in E-commerce components to quickly build a web presence for your business."
+tags: ['ecommerce','beginner']
+elements: ['gold-checkout','paper-input']
+updated: 2015-04-10
+---
+
+Actual article content starts here.
+
+## Example Section
+
+Etc. etc.
+```
+
+#### Example compiled `catalog.json`
+
+```js
+{
+ // guides with associated packages should also be referenced in the package metadata
+ "packages": [
+ {"name":"gold-elements","guides":["gold-elements/ecommerce"]}
+ ],
+ "guides": [
+ {
+ "name":"gold-elements/ecommerce",
+ "title":"How to Build an E-Commerce Site with Gold Elements",
+ "tags":["ecommerce","beginner"],
+ "elements":["gold-checkout","paper-input"],
+ "package":"gold-elements"
+ }
+ ],
+ "elements": [
+ {"name":"paper-input","guides":["gold-elements/ecommerce"]}
+ ]
+}
+```
+
+#### Assets in Guides
+
+If a guide needs images or other assets, those should be stored in `/guides/assets`
+in the repository and always referenced with relative URLs (e.g. `assets/filename.jpg`).
+By maintaining this convention the catalog compilation process will automatically
+ensure that images and other assets are properly accessible to the guide.
\ No newline at end of file
diff --git a/bower_components/polymer-element-catalog/app/elements/app-bar/app-bar.css b/bower_components/polymer-element-catalog/app/elements/app-bar/app-bar.css
new file mode 100644
index 0000000..0fff5af
--- /dev/null
+++ b/bower_components/polymer-element-catalog/app/elements/app-bar/app-bar.css
@@ -0,0 +1,51 @@
+:host * {
+ box-sizing: border-box;
+}
+
+:host(.search-on) {
+ left: 0;
+ background: inherit;
+ z-index: 1001;
+}
+
+:host ::content iron-icon {
+ margin-right: 15px;
+ cursor: pointer;
+}
+
+#search {
+ position: relative;
+}
+
+#search iron-icon {
+ margin-right: 0;
+}
+
+#search[show] {
+ position: absolute;
+ width: 100%;
+ height: 100%;
+ left: 0;
+ top: 0;
+ padding: 0 16px;
+ background: #fff;
+}
+
+#search input {
+ display: none;
+ font-family: var(--primary-font-family);
+ font-size: 15px;
+ width: 100%;
+ padding: 10px;
+ border: 0;
+ border-radius: 2px;
+ -webkit-appearance: none;
+}
+
+#search[show] input {
+ display: block;
+}
+
+#search input:focus {
+ outline: 0;
+}
\ No newline at end of file
diff --git a/bower_components/polymer-element-catalog/app/elements/app-bar/app-bar.html b/bower_components/polymer-element-catalog/app/elements/app-bar/app-bar.html
new file mode 100644
index 0000000..791193f
--- /dev/null
+++ b/bower_components/polymer-element-catalog/app/elements/app-bar/app-bar.html
@@ -0,0 +1,124 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/bower_components/polymer-element-catalog/app/elements/app-cart/app-cart.html b/bower_components/polymer-element-catalog/app/elements/app-cart/app-cart.html
new file mode 100644
index 0000000..d72e841
--- /dev/null
+++ b/bower_components/polymer-element-catalog/app/elements/app-cart/app-cart.html
@@ -0,0 +1,224 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ My Collection
+
+
+
+ Elements ([[items.length]])
+ Download
+
+
+
+
+
+
+
+
+
+
Download Options
+
+
+
+ elements folder - the full source for the latest
+ version of all your selected elements
+
+
+ bower.json - just the bower.json file, from which
+ you can run bower install to fetch your elements
+
+
+
+ Download
+
+
+
Bower Command
+
+
You can copy the command below and paste it into the terminal to
+ install the elements from your cart into a project that already uses
+ Bower.
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/bower_components/polymer-element-catalog/app/elements/app-link/app-link.html b/bower_components/polymer-element-catalog/app/elements/app-link/app-link.html
new file mode 100644
index 0000000..6e7fa51
--- /dev/null
+++ b/bower_components/polymer-element-catalog/app/elements/app-link/app-link.html
@@ -0,0 +1,21 @@
+
\ No newline at end of file
diff --git a/bower_components/polymer-element-catalog/app/elements/app-logo/app-logo.html b/bower_components/polymer-element-catalog/app/elements/app-logo/app-logo.html
new file mode 100644
index 0000000..8387e4c
--- /dev/null
+++ b/bower_components/polymer-element-catalog/app/elements/app-logo/app-logo.html
@@ -0,0 +1,60 @@
+
+
+
+
+
+
+
+
This is an example guide, it would normally be generated from Markdown found
+in /guides but in the interest of getting something in the repo
+it isn't this time.
\ No newline at end of file
diff --git a/bower_components/polymer-element-catalog/guides/assets/custom-header.html b/bower_components/polymer-element-catalog/guides/assets/custom-header.html
new file mode 100644
index 0000000..08767c7
--- /dev/null
+++ b/bower_components/polymer-element-catalog/guides/assets/custom-header.html
@@ -0,0 +1,28 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/bower_components/polymer-element-catalog/guides/assets/zip-file-contents.png b/bower_components/polymer-element-catalog/guides/assets/zip-file-contents.png
new file mode 100644
index 0000000..5851ea2
--- /dev/null
+++ b/bower_components/polymer-element-catalog/guides/assets/zip-file-contents.png
diff --git a/bower_components/polymer-element-catalog/guides/flex-layout.md b/bower_components/polymer-element-catalog/guides/flex-layout.md
new file mode 100644
index 0000000..d78f451
--- /dev/null
+++ b/bower_components/polymer-element-catalog/guides/flex-layout.md
@@ -0,0 +1,793 @@
+---
+title: Flexbox layout with iron-flex-layout
+summary: "Simple flexbox layout"
+tags: ['beginner']
+elements: ['iron-flex-layout']
+updated: 2015-05-03
+---
+
+
+
+## Overview
+
+The `iron-flex-layout` component provides simple ways to use [CSS flexible box layout](https://developer.mozilla.org/en-US/docs/Web/Guide/CSS/Flexible_boxes), also known as _flexbox_. This component provides two different ways to use flexbox:
+
+* Layout classes. The layout class stylesheet provides a simple set of class-based flexbox rules. Layout classes
+ let you specify layout properties directly in markup.
+
+* Custom CSS mixins. The mixin stylesheet includes custom CSS mixins that can be applied
+ inside a CSS rule using the `@apply` function.
+
+Using the classes or CSS mixins is largely a matter of preference. The following sections discuss
+how to use the each of the stylesheets.
+
+
+
+### Using layout classes
+
+To use layout classes import the `classes/iron-flex-layout` file.
+
+
+
+Then simply apply the classes to any element.
+
+
+
+Many of the layout rules involve combinations of multiple classes (such as `layout horizontal wrap` above).
+The order in which the classes are specified doesn't matter, so `layout horizontal` and `horizontal layout`
+are equivalent.
+
+_Currently_, the layout class stylesheet uses the `/deep/` combinator
+and therefore, works across all local DOM boundaries.
+
+Because `/deep/` is slated to be removed from the shadow DOM spec, this
+stylesheet will eventually be replaced by a set of rules that do not use
+`/deep/`. When that happens, the stylesheet will need to be imported into each
+scope where it's used.
+
+### Using layout mixins
+
+Custom mixins can be applied inside a Polymer
+custom element's stylesheet, **or** inside a `custom-style` stylesheet to apply styles to the
+main document. (They cannot be applied in the main document without a `custom-style` stylesheet.)
+
+**Example: using mixins in the main document**
+
+
+
+ ...
+
+
+
+ ...
+
+
+
+
+
+
+
+
+
One
+
Two
+
Three
+
+
+
+
+**Example: using mixins in a Polymer element**
+
+
+
+ ...
+
+
+
+
+
+
+
+
+
One
+
Two
+
Three
+
+
+
+
+
+
+
+
+In general the mixins require a little more code to use, but they can be preferable if you
+don't want to use the classes, or if you want to switch layouts based on a media query.
+
+Custom CSS properties and mixins are features provided by the Polymer library.
+See [Cross-scope styling](https://www.polymer-project.org/1.0/docs/devguide/styling.html#xscope-styling)
+in the Polymer developer guide.
+
+## Horizontal and vertical layout
+
+Create a flex container that lays out its children vertically or horizontally.
+
+Class | Mixin | Result
+:-|:-|:-
+layout horizontal| ‑‑layout-horizontal | Horizontal layout container.
+layout vertical | ‑‑layout-verical | Vertical layout container.
+
+**Example: classes**
+
+
+
One
+
Two
+
Three
+
+
+**Example: mixins**
+
+
+
+
+
+
+
+
+
One
+
Two
+
Three
+
+
+ ...
+
+**Example output**
+
+
+
One
+
Two
+
Three
+
+
+### Flexible children
+
+Children of a flex container can use flex to control their own sizing.
+
+Class | Mixin | Result
+:-|:-|:-
+flex| ‑‑layout-flex | Expand the child to fill available space in the main axis.
+flex-ratio| ‑‑layout-flex-ratio | Assign a flex ratio of 1 to 12.
+flex-none| ‑‑layout-flex-none | Don't flex the child.
+flex-auto| ‑‑layout-flex-auto | Sets flex `flex-basis` to `auto` and `flex-grow` and `flex-shrink` to 1.
+
+
+**Example: classes**
+
+
+
Alpha
+
Beta (flex)
+
Gamma
+
+
+**Example: mixins**
+
+
+
+
+
+
+
+
+
One
+
Two
+
Three
+
+
+ ...
+
+**Example output**
+
+
+
Alpha
+
Beta (flex)
+
Gamma
+
+
+#### Flexible children in vertical layouts
+
+The same rules can be used for children in vertical layouts.
+
+**Example: classes**
+
+
+
Alpha
+
Beta (flex)
+
Gamma
+
+
+**Example: mixins**
+
+
+
+
+
+
+
+
+
One
+
Two
+
Three
+
+
+ ...
+
+**Example output**
+
+
+
Alpha
+
Beta (flex)
+
Gamma
+
+
+**Note**: for vertical layouts, the container needs to have a height for the
+children to flex correctly.
+
+#### Flex ratios
+
+Children elements can be told to take up more space by including a "flex ratio"
+from 1 to 12. This is equivalent to specifying the CSS `flex-grow` property.
+
+For example, the following examples make "Gamma" 2x larger than "Beta" and "Alpha" 3x larger, use
+`flex-2` and `flex-3`, respectively.
+
+**Example: classes**
+
+
+
Alpha
+
Beta
+
Gamma
+
+
+**Example: mixins**
+
+
+
+
+
+
+
+
+
One
+
Two
+
Three
+
+
+ ...
+
+**Example output**
+
+
+
Alpha
+
Beta
+
Gamma
+
+
+
+
+### Cross-axis alignment
+
+By default, children stretch to fit the cross-axis (e.g. _vertical_ stretching in a _horizontal_ layout).
+
+
+
Stretch Fill
+
+
+
+
Stretch Fill
+
+
+Center _across_ the main axis (e.g. _vertical_ centering elements in a _horizontal_ layout)
+by adding the `center` class or applying the `--layout-center` mixin.
+
+**Example: classes, cross-axis center**
+
+
+
+You can also position at the top/bottom (or left/right in `vertical` layouts) using the `start` or `end`
+classes, or by applying the `--layout-start` or `--layout-end` mixins.
+
+
+**Example: classes, cross-axis start**
+
+
+
+
+### Justification
+
+Justifying aligns contents along the **main axis**. Justify the layout
+by specifying one of the following.
+
+
+Class | Mixin | Result
+:-|:-|:-
+`start-justified`| ‑‑layout-start-justified | Aligns contents at the start of the main axis.
+`center-justified` | ‑‑layout-center-justified | Centers contents along the main axis.
+`end-justified` | ‑‑layout-end-justified | Aligns contents to the end of the main axis.
+`justified` | ‑‑layout-justified | Aligns contents with equal spaces between children.
+`around-justified` | ‑‑layout-around-justified | Aligns contents with equal spaces arround children.
+
+
+
+**Example: classes, start justified**
+
+
+
+ ...
+
+**Example output, center justified**
+
+
+
center-justified
+
+
+**Example: classes, end justified**
+
+
+
end-justified
+
+
+**Example output, end justified**
+
+
+
end-justified
+
+
+**Example: mixins, equal space between elements**
+
+
+
+
+
+
+
+
+
justified
+
justified
+
justified
+
+
+ ...
+
+**Example output, equal space between elements**
+
+
+
justified
+
justified
+
justified
+
+
+**Example: classes, equal space around each element**
+
+
+
around-justified
+
around-justified
+
+
+
+
around-justified
+
around-justified
+
+
+## Self alignment
+
+Alignment can also be set per-child (instead of using the layout container's rules).
+
+Class | Mixin | Result
+:-|:-|:-
+`self-start`| ‑‑layout-self-start | Aligns the child at the start of the cross-axis.
+`self-center` | ‑‑layout-self-center | Centers the child along the cross-axis.
+`self-end` | ‑‑layout-self-end | Aligns the child at the end of the cross-axis.
+`self-stretch` | ‑‑self-stretch | Stretches the child to fit the cross-axis.
+
+**Example: classes**
+
+
+
Alpha
+
Beta
+
Gamma
+
Delta
+
+
+**Example: mixins**
+
+
+
+
+
+
+
+
+
Alpha
+
Beta
+
Gamma
+
Delta
+
+
+ ...
+
+**Example output**
+
+
+
Alpha
+
Beta
+
Gamma
+
Delta
+
+
+
+
+
+## Wrapping
+
+Wrapped layouts can be enabled with the `wrap` class or `--layout-wrap` mixin.
+
+**Example: classes**
+
+
+
Alpha
+
Beta
+
Gamma
+
Delta
+
+
+**Example output**
+
+
+
Alpha
+
Beta
+
Gamma
+
Delta
+
+
+## Reversed layouts
+
+Layout direction can be mirrored using the following rules:
+
+Class | Mixin | Result
+:-|:-|:-
+layout horizontal‑reverse| ‑‑layout-horizontal-reverse | Horizontal layout with children laid out in reverse order (last-to-first).
+layout verical‑reverse | ‑‑layout-verical-reverse | Vertical layout with children laid out in reverse order.
+layout wrap‑reverse | ‑‑layout-wrap-reverse | Wrap layout with wrapped rows placed in the reverse order (for example, in a vertical layout, the second row is placed above the first row, instead of below).
+
+**Example: mixins**
+
+
+
+
+
+
+
+
+
Alpha
+
Beta
+
Gamma
+
Delta
+
+
+ ...
+
+**Example output**
+
+
+
Alpha
+
Beta
+
Gamma
+
Delta
+
+
+## Full bleed <body>
+
+It's common to want the entire `` to fit to the viewport. By themselves, Polymer's layout features on
+`` don't achieve the result. You can make `` take up the entire viewport by adding the `fullbleed` class:
+
+
+
Fitting a fullbleed body.
+
+
+This removes its margins and maximizes its height to the viewport. There is no equivalent mixin, but the same result can
+be achieved in CSS very simply:
+
+ body {
+ margin: 0;
+ height: 100vh;
+ }
+
+Note that the `fullbleed` class **only works on the `` tag.** This is the only rule in the
+stylesheet that is scoped to a particular tag.
+
+
+## General purpose rules
+
+Polymer also includes other general purpose rules for basic positioning:
+
+Class | Mixin | Result
+:-|:-|:-
+`block`| `--layout-block` | Assigns `display: block`
+`invisible` | `--layout-invisible` | Assigns `visibility: hidden`
+`relative` | `--layout-relative` | Assigns `position: relative`
+`fit` | `--layout-fit` | Sets `position: absolute` and sets `top:0;right:0;bottom:0;left:0;` (aka "trbl fitting").
+
+
+
+
+**Example: classes**
+
+
Before [A Span] After
+
+
Before [A Block Span] After
+
Before invisible span Not displayed After invisible span
+
+
Fit
+
+
+**Example output**
+
+
Before [A Span] After
+
Before [A Block Span] After
+
Before invisible span Not displayed After invisible span
+
+
Fit
+
diff --git a/bower_components/polymer-element-catalog/guides/responsive-material-design-layouts.md b/bower_components/polymer-element-catalog/guides/responsive-material-design-layouts.md
new file mode 100644
index 0000000..f5fce26
--- /dev/null
+++ b/bower_components/polymer-element-catalog/guides/responsive-material-design-layouts.md
@@ -0,0 +1,345 @@
+---
+title: Responsive Material Design layouts
+summary: "How to create responsive Material Design layouts
+with Paper and Iron elements."
+tags: ['layout']
+elements: ['paper-header-panel','paper-toolbar','paper-drawer-panel',
+'paper-icon-button','paper-tabs','paper-tab','paper-drawer-panel', 'iron-icons',
+'iron-flex-layout']
+updated: 2015-07-23
+---
+
+
+
+## Introduction
+
+This guide teaches you how to use Paper and Iron elements to create a
+responsive layout.
+
+## Installation
+
+Below is a list of commands for installing all of the elements mentioned
+in this document. You probably
+do not need to install all of these elements. Read the guide and decide
+how you want to implement your layout, and then install only the elements
+that you need.
+
+```bash
+bower install --save PolymerElements/paper-header-panel
+bower install --save PolymerElements/paper-toolbar
+bower install --save PolymerElements/paper-drawer-panel
+bower install --save PolymerElements/paper-icon-button
+bower install --save PolymerElements/paper-tabs
+bower install --save PolymerElements/paper-tab
+bower install --save PolymerElements/iron-icons
+bower install --save PolymerElements/iron-flex-layout
+```
+
+We'll assume that you can import these elements from `/bower_components/`.
+
+## Creating a header
+
+This section shows you how to:
+
+* Create a standard layout with `paper-header-panel` and `paper-toolbar`,
+ which is probably the most common and easiest layout.
+* Use a custom element for a header.
+* Add icons to a header.
+* Set the height of a header.
+* Add tabs to a header.
+* Modify the disply and behavior of a header.
+
+### Creating a header with `paper-toolbar`
+
+The code below uses a `paper-header-panel` as the container of the
+page and a `paper-toolbar` as a header. When a `paper-toolbar` is a
+child of `paper-header-panel`, the panel automatically displays
+the toolbar as the header. All other
+children are placed in the content area.
+
+```hmtl
+...
+
+...
+
+
+
+...
+
+
+
+
+
Header
+
+
Content
+
+
+...
+```
+
+
+ Demonstration
+
+
+`paper-header-panel` **must have an explicit height**. See the list item
+on `flex` below for an explanation of why the code above works.
+
+`fullbleed`, `vertical`, `layout`, and `flex` are helper classes from
+`iron-flex-layout.html`. We use them in our examples as an easy way
+to create a responsive design with [Flexbox](http://www.smashingmagazine.com/2015/08/flexible-future-for-web-design-with-flexbox/),
+but the `paper` elements do not depend
+on them. Below is a description of each class used in the example above:
+
+* `fullbleed` instructs `body` to occupy the entire viewport.
+* `vertical` and `layout` instruct `body` to stack elements
+ vertically (use `vertical horizontal` to stack horizontally). `layout`
+ must be accompanied by `vertical` or `horizontal`. It is meaningless
+ on its own.
+* `flex` instructs `paper-panel-header` to stretch to the entire
+ size of its parent, in this case `body` (which is set to fill the entire
+ viewport, hence achieving a responsive design).
+
+See [Flexbox layout with iron-flex-layout](/guides/flex-layout) for more
+on `iron-flex-layout`.
+
+### Using other elements for the header
+
+You can use another element as a header by adding the
+`paper-header` class to the element.
+
+```html
+
+
+
+...
+
+
+
+ Header
+
+
Content
+
+
+```
+
+
+ Demonstration
+
+
+### Adding icons
+
+Use `paper-icon-button` and `iron-icons` to add icons to your header:
+
+```html
+...
+
+...
+
+
+
+
+
+...
+
+
+
+
Header
+
+
+
+
Content
+
+
+```
+
+
+ Demonstration
+
+
+`paper-icon-button` displays the icon and handles the icon's behavior.
+`iron-icons` is a collection of SVG icons which you can use for free
+in your project.
+
+How does the search icon display on the right side? The trick
+is the `span` between the `div` and the `paper-icon-button`.
+The `div` containing the text `Header` only takes up as
+much space as is needed to display
+the text content. Same with the `paper-icon-button`; it only takes up
+as much space as is needed to display the icon. The `flex`
+class forces the `span` to fill the entire space between the `div` and
+the `paper-icon-button`.
+
+### Setting the height
+
+Use the `medium-tall` (2x regular height) and `tall` (3x regular height) style
+classes to change the height of your header.
+
+```hmtl
+...
+
+...
+
+
+
+...
+
+
+
+
Header
+
+
Content
+
+
+...
+```
+
+
+ Demonstration
+
+
+### Adding tabs
+
+Use `paper-tabs` to add tabs to your header:
+
+```hmtl
+...
+
+...
+
+
+
+
+
+
+...
+
+
+
+
+
+ Title
+
+
+
+ ONE
+ TWO
+
+
+
Content
+
+
+...
+```
+
+
+ Demonstration
+
+
+### Modifying header display and behavior
+
+Use the `mode` attribute of `paper-header-panel` to control how the
+header displays and responds to scrolling. The list below describes
+the different valid values for `mode`. See the link below for a
+demonstration of all modes.
+
+* `standard`: The header appears at a higher level than the content area,
+ with a drop shadow. Content scrolls under the header.
+* `seamed`: The header appears at the same level as the content area,
+ with a seam between the two (no drop shadow). Content scrolls under the header.
+* `waterfall`: The header initially presents as seamed. When content scrolls
+ under the header, the header raises up and casts a drop shadow (as in
+ standard mode).
+* `waterfall-tall`: Like waterfall, except that the toolbar starts off
+ tall (3x standard height) and condenses to a standard-height
+ toolbar as the user scrolls. In this mode, `paper-header-panel` controls
+ the height of the toolbar, so you should not set it yourself (via
+ `medium-tall` or `tall`).
+* `scroll`: The header is seamed with the content and scrolls with the content.
+* `cover`: The content scrolls over the header. This mode is designed to
+ be used with narrow content (for example cards).
+
+
+ Demonstration
+
+
+## Creating a responsive navigation drawer
+
+Use `paper-drawer-panel` to create a left-side or right-side
+navigation menu.
+
+```html
+
+
+
+
+
+
+
+...
+
+
+
+
+
Application
+
+
Drawer content...
+
+
+
+
+
Title
+
+
Main content...
+
+
+
+```
+
+
+ Demonstration
+
+
+On narrow screens, the drawer is hidden by default. The user can
+touch the button or swipe in order to display the drawer.
+On wide screens, the drawer is always open and the button to open
+the drawer is hidden.
+
+Use the `togglePanel` method to hide or reveal the drawer
+programmatically. Or, add the `paper-drawer-toggle` attribute to an
+element. This attribute makes the element act as an open / close button and
+removes the need to call `togglePanel` explicitly.
+
+Any children with the `drawer` attribute set are placed in the navigation area.
+Any children with the `main` attribute are placed in the main panel.
diff --git a/bower_components/polymer-element-catalog/guides/using-elements.md b/bower_components/polymer-element-catalog/guides/using-elements.md
new file mode 100644
index 0000000..da07d5a
--- /dev/null
+++ b/bower_components/polymer-element-catalog/guides/using-elements.md
@@ -0,0 +1,317 @@
+---
+title: Using Elements
+summary: "Learn how to install and use Polymer Elements in your own projects."
+tags: ['beginner']
+elements: ['paper-checkbox']
+updated: 2015-05-03
+---
+
+
+## Introduction
+
+The Polymer element sets provide elements that you can use in your web pages
+and apps. These elements are built with the [Polymer library](https://www.polymer-project.org).
+
+**You don't need to use Polymer directly** to use these elements.
+However, using Polymer you can take advantage of special
+features such as data binding.
+
+## Installing Elements
+
+You can install elements one at a time, or install a whole collection of elements.
+
+Polymer contains a few primary collections of elements:
+
+- [Iron elements](/browse?package=iron-elements). A set of utility
+ elements including generic UI elements (such as icons, input and layout
+ components), as well as non-UI elements providing features like AJAX, signaling and storage.
+
+- [Paper elements](/browse?package=paper-elements). A set of UI elements that implement the
+ [material design system](http://www.google.com/design/spec/material-design/).
+
+- [Gold elements](/browse?package=gold-elements). Form elements for ecommerce.
+
+- [Neon elements](/browse?package=neon-elements). Animation-related elements.
+
+- [Platinum elements](/browse?package=platinum-elements). Elements for app-like features,
+ like push notifications, offline caching and bluetooth.
+
+
+If you find a component you want while browsing the docs, simply click the
+star to add it to
+your collection.
+
+When you've selected some components, you can download either a `bower.json` file or a ZIP file.
+
+* `bower.json` file. Just the metadata you need to install the components using
+ Bower.
+
+ Bower is the recommended way to manage components. Bower also handles installing
+ the components' dependencies and updating installed components. For more information,
+ see [Installing with Bower](#installing-with-bower).
+
+* ZIP file. A single file containing your selected components and all their dependencies,
+ so you can unzip and start using them immediately. The ZIP file requires no extra tools,
+ but doesn't provide a built-in method for updating dependencies. For more information, see
+ [Installing from ZIP files](#installing-from-zip-files).
+
+To download the components in your collection:
+
+1. Click and
+ select the **Download** tab.
+
+2. Choose a download format and click **Download**.
+
+Pick your method and follow the instructions in the download dialog.
+
+If you install one or more elements, you also get the
+[Polymer library](https://www.polymer-project.org), as well as the [web components polyfills](http://webcomponents.org/polyfills/),
+which allow you to run Polymer on browsers that don't yet support
+the web components standards.
+
+### Installing with Bower
+
+The recommended way to install **Polymer** elements
+is through Bower. To install Bower, see the [Bower web site](http://bower.io/).
+
+Bower removes the hassle of dependency management when developing or consuming
+elements. When you install a component, Bower makes sure any dependencies are
+installed as well.
+
+#### Project setup
+
+If you haven't created a `bower.json` file for your application,
+download the `bower.json` from the catalog and edit it to add your
+own project name and version.
+
+If you already have a `bower.json` file, merge the
+`dependencies` section of the downloaded file into your existing
+`bower.json` file.
+
+The resulting file should look something like this:
+
+```
+{
+ "name": "my-project",
+ "version": "0.0.0",
+ "dependencies": {
+ "iron-a11y-keys": "PolymerElements/iron-a11y-keys#^1.0.0",
+ "iron-ajax": "PolymerElements/iron-ajax#^1.0.0",
+ "paper-button": "PolymerElements/paper-button#^1.0.0"
+ }
+}
+```
+
+The next step is to install your selected components:
+
+ bower install
+
+Bower adds a `bower_components/` folder in the root of your project and
+fills it with your selected elements and their dependencies.
+
+
+#### Installing from the command line
+
+You can also install components from the command line using the `bower install` command.
+
+You can also choose one of the commonly-used packages:
+
+- `PolymerElements/iron-elements`
+
+- `PolymerElements/paper-elements`
+
+- `PolymerElements/gold-elements`
+
+For example:
+
+ bower install --save PolymerElements/iron-elements
+
+
+
+
+#### Updating packages
+
+When a new version of Polymer is available, run `bower update`
+in your app directory to update your copy:
+
+ bower update
+
+This updates all packages in `bower_components/`.
+
+### Installing from a ZIP file
+
+When you download a component or component set as a ZIP file, you get all of
+the dependencies bundled into a single archive. It's a great way to get
+started because you don't need to install any additional tools.
+
+Expand the ZIP file in your project directory to create a `bower_components` folder.
+
+![Example Zip Contents](assets/zip-file-contents.png)
+
+Unlike Bower, the ZIP file doesn't provide a built-in method
+for updating dependencies. You can manually update components with a new ZIP
+file, or you can update the files using Bower.
+
+#### Migrating from a ZIP file to Bower
+
+If you downloaded a ZIP file and subsequently install Bower, you can
+use `bower init` to create a new `bower.json` file with your existing
+dependencies in it:
+
+ bower init
+
+This generates a basic `bower.json` file.
+
+Enter **Y** when prompted to set currently installed components as dependencies.
+
+Some of the questions, like "What kind of modules do you expose," can be skipped
+by pressing Enter.
+
+
+## Using elements
+
+To use elements, first load the web components polyfill library, `webcomponents-lite.min.js`.
+Many browsers have yet toimplement the various web components APIs. Until they do, `webcomponents-lite`
+provides [polyfill support](http://webcomponents.org/polyfills/). **Be sure to include
+this file before any code that touches the DOM.**
+
+Once you have some elements installed and you've loaded `webcomponents-lite.min.js`,
+using an element is simply a matter of loading the element file using an
+[HTML Import](http://webcomponents.org/articles/introduction-to-html-imports/).
+
+An example `index.html` file:
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Say Hello
+
+
+
+
+
+
+
+
+
+If you aren't using the polyfill, you can't rely on the `WebComponentsReady` event. Instead,
+simply place script at the end of the file (after any custom elements).
+
+## Polymer element APIs
+
+To use Polymer elements effectively, it's important to be familiar with a
+few of the common Polymer element APIs.
+
+### Attribute and properties
+
+The Polymer element docs list element _properties_, but not element attributes. Unless otherwise
+noted, every property on a Polymer element has a corresponding _attribute_. Use the attribute name
+when configuring a property from markup, or when creating a Polymer data binding to a property.
+
+When mapping attribute names to property names:
+
+* Attribute names are converted to lowercase property names. For example,
+ the _attribute_ `firstName` maps to the property `firstname`.
+
+* Attribute names with _dashes_ are converted to _camelCase_ property names
+ by capitalizing the character following each dash, then removing the dashes.
+ For example, the _attribute_ `first-name` maps to the property `firstName`.
+
+#### Passing object and array values in attributes
+
+[HTML attributes](https://developer.mozilla.org/en-US/docs/Web/HTML/Attributes) are string values, but sometimes you need to pass more complicated values into a custom element, such as objects or arrays. Ultimately, it's up to the element author to decide how to decode values passed in as attributes, but many Polymer elements understand attribute values that are a JSON-serialized object or array. For example:
+
+
+
+For Polymer elements, you can find the expected type for each attribute listed in the API docs. If you pass the wrong type, it may be decoded incorrectly.
+
+The same mappings happen in reverse when converting property names to attribute
+names (for example, if a property is defined using `reflectToAttribute: true`.)
+
+#### Data binding
+
+Polymer elements also support data binding, using a format like this:
+
+
+
+These data binding annotations are only supported in two places:
+
+- In the [local DOM template](https://www.polymer-project.org/1.0/docs/devguide/local-dom.html#template-stamping) of a Polymer element.
+
+- Inside an [autobinding template](https://www.polymer-project.org/1.0/docs/devguide/templates.html#dom-bind).
+
+For more information see [Data binding](https://www.polymer-project.org/1.0/docs/devguide/data-binding.html).
+
+### DOM manipulation
+
+Because not all browsers support shadow DOM natively, Polymer uses a shim called shady DOM
+to achieve shadow DOM's goals of composition and style encapsulation.
+
+As a result, if you are manipulating a Polymer element, you need to use the `Polymer.dom`
+APIs to maintain the correct DOM structure. This is particularly important when adding or removing
+children from a Polymer element, for example.
+
+For more information, see [DOM API](https://www.polymer-project.org/1.0/docs/devguide/local-dom.html#dom-api).
+
+### Custom CSS properties and mixins
+
+Many of the Polymer elements can be styled using custom CSS properties and mixins.
+
+Property and mixin values can be specified:
+
+- Inside a Polymer element's `