diff --git a/node_modules/material-design-lite/dist/styles/index.html b/node_modules/material-design-lite/dist/styles/index.html
new file mode 100644
index 0000000..3ea5d5e
--- /dev/null
+++ b/node_modules/material-design-lite/dist/styles/index.html
@@ -0,0 +1,388 @@
+<!doctype html>
+<html lang="en">
+  <head>
+    <meta charset="utf-8">
+    <meta http-equiv="X-UA-Compatible" content="IE=edge">
+    <meta name="description" content="A front-end template that helps you build fast, modern mobile web apps.">
+    <meta name="viewport" content="width=device-width, initial-scale=1.0, minimum-scale=1.0">
+    <title>Material Design Lite</title>
+
+    <!-- Add to homescreen -->
+    <link rel="manifest" href="manifest.json">
+
+    <!-- Fallback to homescreen for Chrome <39 on Android -->
+    <meta name="mobile-web-app-capable" content="yes">
+    <meta name="application-name" content="Material Design Lite">
+    <link rel="icon" sizes="192x192" href="../assets/android-desktop.png">
+
+    <!-- Add to homescreen for Safari on iOS -->
+    <meta name="apple-mobile-web-app-capable" content="yes">
+    <meta name="apple-mobile-web-app-status-bar-style" content="black">
+    <meta name="apple-mobile-web-app-title" content="Material Design Lite">
+    <link rel="apple-touch-icon" href="../assets/ios-desktop.png">
+
+    <!-- TODO: Tile icon for Win8 (144x144 + tile color) -->
+    <!-- <meta name="msapplication-TileImage" content="images/touch/ms-touch-icon-144x144-precomposed.png"> -->
+    <!-- <meta name="msapplication-TileColor" content="#3372DF"> -->
+
+    <meta name="theme-color" content="#263238">
+
+    <link rel="shortcut icon" href="../assets/favicon.png">
+    <!-- SEO: If your mobile URL is different from the desktop URL, add a canonical link to the desktop page https://developers.google.com/webmasters/smartphone-sites/feature-phones -->
+    <!--
+    <link rel="canonical" href="http://www.example.com/">
+    -->
+
+    <!-- Page styles -->
+    <link rel="stylesheet" href="../assets/prism-default.css">
+    <link rel="stylesheet" href="../material.min.css">
+    <link rel="stylesheet" href="../assets/main.css">
+
+    <!-- Fonts -->
+    <link href='https://fonts.googleapis.com/css?family=Roboto:regular,bold,italic,thin,light,bolditalic,black,medium&amp;lang=en' rel='stylesheet' type='text/css'>
+    <link href="https://fonts.googleapis.com/icon?family=Material+Icons" rel="stylesheet">
+  </head>
+  <body class="styles">
+  <!-- Google Analytics: change UA-XXXXX-X to be your site's ID -->
+  <script>
+    // if (document.location.hostname !== 'localhost' &&
+    //     document.location.hostname !== '127.0.0.1' &&
+    //     document.location.hostname.search('.corp.') === -1) {
+      (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', 'UA-25993200-9', 'auto');
+      // If a specific component page is loaded directly we'll attribute the
+      // page view to the specific component's page
+      if (window.location.pathname.indexOf('/components/') !== -1 &&
+          window.location.hash.indexOf('-section') !== -1) {
+        ga('send', 'pageview', '/components/' +
+            window.location.hash.split('#')[1].split('/')[0]);
+      } else {
+        ga('send', 'pageview');
+      }
+    // }
+
+    // Setup error tracking before anything else runs.
+  window.onerror = function(message, file, lineNumber, columnNumber, error) {
+    try {
+      if (error !== undefined) {
+        message = error.stack;
+      }
+       ga('send', 'event', 'error', file + ':' + lineNumber, String(message));
+    } catch (e) {
+      // no-op
+    }
+  };
+  </script>
+  <div class="image-preloader"></div>
+  <div class="docs-layout mdl-layout mdl-js-layout">
+    <header class="docs-layout-header mdl-layout__header">
+      <div class="mdl-layout__header-row">
+        <span class="docs-layout-title mdl-layout-title"><a href="../">Material<br>Design<br>Lite</a></span>
+      </div>
+      <div class="docs-navigation__container">
+        <nav class="docs-navigation mdl-navigation">
+          <a href="../index.html" class="mdl-navigation__link about">About</a>
+          <a href="../started/index.html" class="mdl-navigation__link started">Getting Started</a>
+          <a href="../templates/index.html" class="mdl-navigation__link templates">Templates</a>
+          <a href="../components/index.html" class="mdl-navigation__link components">Components</a>
+          <a href="../styles/index.html" class="mdl-navigation__link styles">Styles</a>
+          <a href="../customize/index.html" class="mdl-navigation__link customize">Customize</a>
+          <a href="../showcase/index.html" class="mdl-navigation__link showcase">Showcase</a>
+          <a href="../faq/index.html" class="mdl-navigation__link faq">FAQ</a>
+          <div class="spacer"></div>
+          <a href="https://github.com/google/material-design-lite" class="mdl-navigation__link mdl-navigation__link--icon github"><i class="material-icons">link</i><span>GitHub</span></a>
+          <a href="../started/index.html#download" class="mdl-navigation__link mdl-navigation__link--icon download">
+            <i class="material-icons">&#xE2C4;</i><span>Download</span>
+            <button class="mdl-button mdl-js-button mdl-js-ripple-effect mdl-button--fab mdl-button--mini-fab mdl-color--lime-A200">
+              <i class="material-icons">&#xE2C4;</i>
+            </button>
+          </a>
+        </nav>
+      </div>
+      <i class="material-icons scrollindicator scrollindicator--right">&#xE315;</i>
+      <i class="material-icons scrollindicator scrollindicator--left">&#xE314;</i>
+    </header>
+    <main class="docs-layout-content mdl-layout__content mdl-color-text--grey-600">
+      <div class="content mdl-grid mdl-grid--no-spacing" id="content">
+        <div class="subpageheader mdl-cell--12-col">Styles</div>
+        
+
+<div class="docs-text-styling">
+  <section id="include">
+    <div class="styles__content">
+    <p>
+      Material Design Lite is a light-weight implementation of Material Design,
+      specifically crafted for the web. For more detailed guidelines and
+      specifications for other platforms please refer to the
+      <a href="https://www.google.com/design/spec/material-design">
+        Material Design site
+      </a>
+    </p>
+
+    <h2 class="mdl-typography--subhead">Typography</h2>
+    <dl class="typo-styles">
+      <dt>h1</dt>
+      <dd>
+        <div class="typo-styles__demo mdl-typography--display-4">Light 112sp</div>
+        <div class="typo-styles__desc">
+          <span class="typo-styles__name">display-4</span>
+          <span class="typo-styles__weight">font weight 300</span>
+        </div>
+      </dd>
+      <dt>h2</dt>
+      <dd>
+        <div class="typo-styles__demo mdl-typography--display-3">Regular 56sp</div>
+        <div class="typo-styles__desc">
+          <span class="typo-styles__name">display-3</span>
+          <span class="typo-styles__weight">font weight 400</span>
+        </div>
+      </dd>
+      <dt>h3</dt>
+      <dd>
+        <div class="typo-styles__demo mdl-typography--display-2">Regular 45sp</div>
+        <div class="typo-styles__desc">
+          <span class="typo-styles__name">display-2</span>
+          <span class="typo-styles__weight">font weight 400</span>
+        </div>
+      </dd>
+      <dt>h4</dt>
+      <dd>
+        <div class="typo-styles__demo mdl-typography--display-1">Regular 34sp</div>
+        <div class="typo-styles__desc">
+          <span class="typo-styles__name">display-1</span>
+          <span class="typo-styles__weight">font weight 400</span>
+        </div>
+      </dd>
+      <dt>h5</dt>
+      <dd>
+        <div class="typo-styles__demo mdl-typography--headline">Regular 24sp</div>
+        <div class="typo-styles__desc">
+          <span class="typo-styles__name">headline</span>
+          <span class="typo-styles__weight">font weight 400</span>
+        </div>
+      </dd>
+      <dt>h6</dt>
+      <dd>
+        <div class="typo-styles__demo mdl-typography--title">Regular 20sp</div>
+        <div class="typo-styles__desc">
+          <span class="typo-styles__name">title</span>
+          <span class="typo-styles__weight">font weight 500</span>
+        </div>
+      </dd>
+    </dl>
+    <div class="code-with-text">
+      <strong>Note</strong>: This portion is only to demonstrate header and display styles for out CSS. For more typography guidelines, please refer to the <a href="https://www.google.com/design/spec/material-design">Material Design spec</a>.
+    </div>
+    <div class="styles__download">
+      <a class="download-btn download-btn--font" href="http://material-design.storage.googleapis.com/publish/material_v_4/material_ext_publish/0B0J8hsRkk91LRjU4U1NSeXdjd1U/RobotoTTF.zip">
+        <i class="material-icons">file_download</i>
+        Download Roboto Font
+      </a>
+      <span class="download__size">1.21 MB (.zip)</span>
+    </div>
+    <div class="code-with-text">
+      To embed Roboto into your web page, copy the code as the first element in the <code>&lt;head&gt;</code> of your HTML document.
+      <pre class="language-markup"><code>&lt;link rel=&quot;stylesheet&quot; href=&quot;<a href="http://fonts.googleapis.com/css?family=Roboto:300,400,500,700">http://fonts.googleapis.com/css?family=Roboto:300,400,500,700</a>&quot; type=&quot;text/css&quot;&gt;</code></pre>
+    </div>
+  </div>
+
+  <div class="styles__ribbon styles__ribbon--icons">
+    <a href="http://google.github.io/material-design-icons/" class="ribbon__imagecontainer">
+      <img src="../assets/icons.svg" class="ribbon__image">
+      <div class="ribbon__caption ribbon__caption--split">
+        Preview icons <i class="material-icons">arrow_forward</i>
+      </div>
+    </a>
+  </div>
+
+  <div class="styles__content mdl-grid mdl-grid--no-spacing">
+    <div class="mdl-cell mdl-cell--8-col mdl-cell--5-col-desktop left-col">
+      <h3>Icons</h3>
+      <p>Material Design Icons are the official open-source icons featured in the Google Material Design specification. What’s included:</p>
+    </div>
+    <div class="mdl-cell mdl-cell--8-col mdl-cell--7-col-desktop right-col">
+      <ul>
+        <li>SVG versions of all icons in both 24px and 48px flavours</li>
+        <li>SVG and CSS sprites of all icons</li>
+        <li>1x, 2x icons targeted at the Web (PNG)</li>
+        <li>1x, 2x, 3x icons targeted at iOS (PNG)</li>
+        <li>Hi-dpi version of all icons (hdpi, mdpi, xhdpi, xxhdpi, xxxhdpi) (PNG)</li>
+      </ul>
+    </div>
+    <div class="mdl-cell mdl-cell--8-col mdl-cell--5-col-desktop left-col">
+      <h3>Getting Started</h3>
+      <p>You have a few options for getting the icons.</p>
+      <h3>Download the Zip</h3>
+      <p>Grab the latest stable zip archive (~57MB) of all icons of the bleeding-edge version from master.</p>
+      <div class="styles__download">
+        <a class="download-btn download-btn--icons" href="https://github.com/google/material-design-icons/releases/download/2.0.0/material-design-icons-2.0.0.zip">
+          <i class="material-icons">file_download</i>
+          Download
+        </a>
+      </div>
+    </div>
+    <div class="mdl-cell mdl-cell--8-col mdl-cell--7-col-desktop right-col">
+      <h3>Bower</h3>
+      <div class="code-with-text">
+        Install the icons using the <strong>Bower</strong> package manager.
+        <pre class="language-markup"><code>$ bower install material-design-icons --save</code></pre>
+      </div>
+      <h3>npm</h3>
+      <div class="code-with-text">
+        You can also find all the icons on <strong>npm</strong>.
+        <pre class="language-markup"><code>$ npm install material-design-icons --save</code></pre>
+      </div>
+      <h3>Usage</h3>
+      <p>Take a look at the included index.html file for a preview of all icons included in the set. You are free to use the icons in the way that makes most sense to your project.</p>
+      <h3>Structure</h3>
+      <p>In general, an icon category (e.g. action) will include the following directories, containing multiple resolutions of our icons.</p>
+      <ul>
+        <li>1x, 2x Web</li>
+        <li>1x, 2x, 3x iOS</li>
+        <li>drawable hdpi, mdpi, xhdpi, xxhdpi, xxxhdpi</li>
+        <li>svg</li>
+      </ul>
+      <p>Decide on the icon resolution required for your project and copy, then reference the icons you wish to use.</p>
+    </div>
+    <div class="mdl-cell mdl-cell--8-col mdl-cell--5-col-desktop left-col">
+      <h3>Spritesheets</h3>
+      <p>Material Design icons come with SVG and CSS sprites for each category of icon we include. These can be found in the sprites directory, under svg-sprite and css-sprite.</p>
+      <h3>Using CSS Sprites</h3>
+      <p>To use a CSS spritesheet, reference the stylesheet for the icon category you wish to use, then include the icon definition in your markup. E.g. to use one of the play icons in css-sprite-av.</p>
+      <p>That’s it! Don’t forget to publish the corresponding CSS and SVG/PNG files when deploying your project.</p>
+    </div>
+    <div class="mdl-cell mdl-cell--8-col mdl-cell--7-col-desktop right-col">
+      <div class="code-with-text">
+        Reference the stylesheet:
+        <pre class="language-markup"><code>&lt;link href=&quot;css-sprite/sprite-av-black.css&quot; rel=&quot;stylesheet&quot;&gt;</code></pre>
+      </div>
+      <div class="code-with-text">
+        Create an element which will use the icon as a background:
+        <pre class="language-markup"><code>&lt;div&gt;&lt;/div&gt;</code></pre>
+      </div>
+      <div class="code-with-text">
+        Add a class referencing the <code>icon</code> spritesheet and specific <code>icon icon-ic_play-circle_outline_black_24dp</code>, which you can get from the above stylesheet.
+        <pre class="language-markup"><code>&lt;div class=&quot;icon icon-ic_play-circle_outline_black_24dp&quot;&gt;&lt;/div&gt;</code></pre>
+      </div>
+    </div>
+    <div class="mdl-cell mdl-cell--8-col mdl-cell--5-col-desktop left-col">
+      <h3>Using SVG Sprites</h3>
+      <p>Similarly, to use an SVG spritesheet, reference the stylesheet for the icon category, then include the icon definition in your markup.</p>
+    </div>
+    <div class="mdl-cell mdl-cell--8-col mdl-cell--7-col-desktop right-col">
+      <div class="code-with-text">
+        E.g: to use one of the play icons in <code>svg-sprite-av</code>, reference the stylesheet:
+        <pre class="language-markup"><code>&lt;link href=&quot;svg-sprite/svg-sprite-av.css&quot; rel=&quot;stylesheet&quot;&gt;</code></pre>
+      </div>
+      <div class="code-with-text">
+        Create an element which will use the icon as a background:
+        <pre class="language-markup"><code>&lt;div&gt;&lt;/div&gt;</code></pre>
+      </div>
+      <div class="code-with-text">
+        Next, make sure to set a dimension for the icon. This can either be done inline or via a class. We’ll use a class for this example.
+        <pre class="language-markup"><code>&lt;style&gt;
+  .svg-ic_play_circle_outline_24px-dims { width: 24px; height: 24px; }
+&lt;/style&gt;</code></pre>
+      </div>
+      <div class="code-with-text">
+        Finally, set the dimension and specific ifcon <code>svg-ic_play_circle_outline_24px</code>, which you can get from the above stylesheet.
+        <pre class="language-markup"><code>&lt;div class=&quot;svg-ic_play_circle_outline_24px svg-ic_play_circle_outline_24px-dims&quot;&gt; &lt;/div&gt;</code></pre>
+       </div>
+      <h3>Polymer Icons</h3>
+      <p>If you wish to use the icon set with Polymer, we recommend consuming them via the <strong>&lt;iron-icons&gt;-element</strong>.
+      <h3>License</h3>
+      <p>All icons are released under <strong>Attribution 4.0 International license</strong>.</p>
+    </div>
+  </div>
+  <div class="styles__ribbon styles__ribbon--colors">
+    <a class="ribbon__imagecontainer">
+      <img src="../assets/colors.svg" class="ribbon__image">
+      <div class="ribbon__caption">
+        Color palette
+      </div>
+    </a>
+  </div>
+  <div class="styles__content mdl-grid mdl-grid--no-spacing">
+    <div class="mdl-cell mdl-cell--8-col mdl-cell--5-col-desktop left-col">
+      <h3>Color palette</h3>
+      <p>If you’re using the extended color palette, use the first color as the primary color in your app and the other colors as accents.</p>
+      <p><strong>See all colors and their accessibility ratios</strong>. This resource includes info on the appropriate contrast ratios and alpha values when using white or black text on a colored background.</p>
+      <div class="styles__download">
+        <a class="download-btn download-btn--swatches" href="http://material-design.storage.googleapis.com/publish/material_v_4/material_ext_publish/0B0J8hsRkk91LSGx6b0w3WWpMQ1k/color_swatches.zip">
+          <i class="material-icons">file_download</i>
+          Download color swatches
+        </a>
+        <span class="download__size">0.02 MB (.zip)</span>
+      </div>
+      <div class="styles__download">
+        <a class="download-btn download-btn--customizer" href="../customize/index.html">
+          <i class="material-icons">arrow_forward</i>
+          Try the custom CSS Theme Builder
+        </a>
+      </div>
+    </div>
+    <div class="mdl-cell mdl-cell--8-col mdl-cell--7-col-desktop right-col">
+      <a href="../customize/index.html"><img class="customizer" src="../assets/customizer.png"></a>
+    </div>
+  </div>
+
+  </section>
+</div>
+
+
+      </div>
+      <section class="docs-text-styling download mdl-color--grey-800">
+        <a href="../started/index.html#download" class="mdl-color-text--grey-50">Download Kit</a>
+      </section>
+      <footer class="docs-text-styling docs-footer mdl-mini-footer mdl-color--grey-900">
+        <ul>
+          <li class="mdl-mini-footer--social-btn">
+            <a href="https://twitter.com/googledesign" class="social-btn social-btn__twitter" role="button" title="Twitter"></a>
+          </li>
+          <li class="mdl-mini-footer--social-btn">
+            <a href="https://github.com/google/material-design-lite" class="social-btn social-btn__github" role="button" title="GitHub"></a>
+          </li>
+          <li class="mdl-mini-footer--social-btn">
+            <a href="https://plus.google.com/+googledesign" class="social-btn social-btn__gplus" role="button" title="Google+"></a>
+          </li>
+        </ul>
+        <ul class="docs-link-list">
+          <li><a class="mdl-color-text--grey-600" href="https://developers.google.com/web/starter-kit/">Web Starter Kit</a></li>
+          <li><a class="mdl-color-text--grey-600" href="https://github.com/google/material-design-lite/issues">Help</a></li>
+        </ul>
+      </footer>
+    </main>
+  </div>
+
+    <!-- IE Compatibility shims -->
+      <!--[if lt IE 9]>
+        <script src="//cdnjs.cloudflare.com/ajax/libs/html5shiv/3.7.2/html5shiv.min.js""></script>
+      <![endif]-->
+
+      <!--[if IE]>
+        <script src="//cdnjs.cloudflare.com/ajax/libs/es5-shim/4.1.7/es5-shim.min.js"></script>
+        <script src="//cdnjs.cloudflare.com/ajax/libs/classlist/2014.01.31/classList.min.js"></script>
+        <script src="//cdnjs.cloudflare.com/ajax/libs/selectivizr/1.0.2/selectivizr-min.js"></script>
+        <script src="//cdnjs.cloudflare.com/ajax/libs/flexie/1.0.3/flexie.min.js"></script>
+        <link href="../assets/ie.css" rel="stylesheet">
+      <![endif]-->
+    <!-- end shims -->
+
+
+    <!-- Material Design Lite -->
+    <script src="../material.min.js"></script>
+    <!-- Add Copy-to-CodePen buttons to code blocks -->
+    <script src="../assets/codepen.js"></script>
+    <!-- Enable Prism syntax highlighting -->
+    <script src="../assets/prism.js"></script>
+    <script src="../assets/prism-markup.min.js"></script>
+    <script src="../assets/prism-javascript.min.js"></script>
+    <script src="../assets/prism-css.min.js"></script>
+    <script src="../assets/prism-bash.min.js"></script>
+    <script src="../assets/main.js"></script>
+    <!-- Built with love using Material Design Lite -->
+  </body>
+</html>
