diff --git a/Gemfile b/Gemfile
deleted file mode 100644
index ae4e0259..00000000
--- a/Gemfile
+++ /dev/null
@@ -1,16 +0,0 @@
-source 'https://rubygems.org'
-
-ruby '2.1.1'
-
-gem 'sinatra', '~> 1.4.3'
-gem 'sinatra-contrib', '~> 1.4.1'
-gem 'kss', '~> 0.5.0'
-gem 'thin', '~> 1.6.0'
-
-gem 'scss-lint', '0.15.0'
-
-group :development do
- gem "pry"
- gem "pry-nav"
-end
-
diff --git a/Gemfile.lock b/Gemfile.lock
deleted file mode 100644
index 59368bfd..00000000
--- a/Gemfile.lock
+++ /dev/null
@@ -1,66 +0,0 @@
-GEM
- remote: https://rubygems.org/
- specs:
- backports (3.4.0)
- coderay (1.1.0)
- colorize (0.5.8)
- daemons (1.1.9)
- eventmachine (1.0.3)
- ffi (1.9.3)
- kss (0.5.0)
- listen (1.1.6)
- rb-fsevent (>= 0.9.3)
- rb-inotify (>= 0.9)
- rb-kqueue (>= 0.2)
- method_source (0.8.2)
- multi_json (1.8.2)
- pry (0.9.12.4)
- coderay (~> 1.0)
- method_source (~> 0.8)
- slop (~> 3.4)
- pry-nav (0.2.3)
- pry (~> 0.9.10)
- rack (1.5.2)
- rack-protection (1.5.1)
- rack
- rack-test (0.6.2)
- rack (>= 1.0)
- rb-fsevent (0.9.4)
- rb-inotify (0.9.3)
- ffi (>= 0.5.0)
- rb-kqueue (0.2.0)
- ffi (>= 0.5.0)
- sass (3.3.0.rc.1)
- listen (~> 1.1.0)
- scss-lint (0.15.0)
- colorize (= 0.5.8)
- sass (= 3.3.0.rc.1)
- sinatra (1.4.4)
- rack (~> 1.4)
- rack-protection (~> 1.4)
- tilt (~> 1.3, >= 1.3.4)
- sinatra-contrib (1.4.2)
- backports (>= 2.0)
- multi_json
- rack-protection
- rack-test
- sinatra (~> 1.4.0)
- tilt (~> 1.3)
- slop (3.4.7)
- thin (1.6.1)
- daemons (>= 1.0.9)
- eventmachine (>= 1.0.0)
- rack (>= 1.0.0)
- tilt (1.4.1)
-
-PLATFORMS
- ruby
-
-DEPENDENCIES
- kss (~> 0.5.0)
- pry
- pry-nav
- scss-lint (= 0.15.0)
- sinatra (~> 1.4.3)
- sinatra-contrib (~> 1.4.1)
- thin (~> 1.6.0)
diff --git a/Gruntfile.js b/Gruntfile.js
deleted file mode 100644
index 701483b4..00000000
--- a/Gruntfile.js
+++ /dev/null
@@ -1,17 +0,0 @@
-/* jshint node:true */
-"use strict";
-
-module.exports = function(grunt) {
- // Load tasks from `/tasks`
- grunt.loadTasks('tasks');
-
- // Load plugin configuration from `tasks/options`.
- require('load-grunt-config')(grunt, {
- configPath: require('path').join(process.cwd(), 'tasks/options'),
- init: true,
- config: {
- pkg: grunt.file.readJSON("package.json")
- }
- });
-};
-
diff --git a/Procfile b/Procfile
deleted file mode 100644
index 3e0040e1..00000000
--- a/Procfile
+++ /dev/null
@@ -1 +0,0 @@
-web: bundle exec thin -R config.ru start -p $PORT -e $RACK_ENV
diff --git a/amd.js b/amd.js
deleted file mode 100644
index 5a4f0002..00000000
--- a/amd.js
+++ /dev/null
@@ -1,5 +0,0 @@
-// Export Neue as an AMD module
-
-if ( typeof define === "function" && define.amd ) {
- define( ["jquery"], function ($) { return NEUE; } );
-}
diff --git a/app.rb b/app.rb
deleted file mode 100644
index 26925467..00000000
--- a/app.rb
+++ /dev/null
@@ -1,66 +0,0 @@
-require 'sinatra'
-require 'sinatra/content_for'
-require 'kss'
-
-set :public_folder, Proc.new { File.join(root, "dist") }
-
-get '/' do
- @styleguide = Kss::Parser.new('scss/')
- erb :styleguide
-end
-
-get '/example/*.html' do
- send_file "views/examples/#{params[:splat].first}.html"
-end
-
-get '/example/*' do
- render_layout
-end
-
-helpers do
- # Layout Handling (parse path and serve proper layout)
- def render_layout
- splat = params[:splat][0]
- render :erb, :"examples/#{splat}", layout: :drupal_layout
- end
-
- # Generates a styleguide block. A little bit evil with @_out_buf, but
- # if you're using something like Rails, you can write a much cleaner helper
- # very easily.
- def styleguide_block(section, &block)
- @section = @styleguide.section(section)
- @example_html = capture{ block.call }
- @escaped_html = ERB::Util.html_escape @example_html
- @_out_buf << erb(:_styleguide_block)
- end
-
- def styleguide_block_without_preview(section, &block)
- @section = @styleguide.section(section)
- @example_html = capture{ block.call }
- @escaped_html = ERB::Util.html_escape @example_html
- @_out_buf << erb(:_styleguide_block_without_preview)
- end
-
- def styleguide_block_without_modifiers(section, &block)
- @section = @styleguide.section(section)
- @example_html = capture{ block.call }
- @escaped_html = ERB::Util.html_escape @example_html
- @_out_buf << erb(:_styleguide_block_without_modifiers)
- end
-
- def styleguide_block_custom_example(section)
- @section = @styleguide.section(section)
- @_out_buf << erb(:_styleguide_block_custom_example)
- end
-
- # Captures the result of a block within an erb template without spitting it
- # to the output buffer.
- def capture(&block)
- out, @_out_buf = @_out_buf, ""
- yield
- @_out_buf
- ensure
- @_out_buf = out
- end
-end
-
diff --git a/assets/fonts/covered-grace/CoveredGrace-Regular.eot b/assets/fonts/covered-grace/CoveredGrace-Regular.eot
old mode 100755
new mode 100644
diff --git a/assets/fonts/covered-grace/CoveredGrace-Regular.svg b/assets/fonts/covered-grace/CoveredGrace-Regular.svg
old mode 100755
new mode 100644
diff --git a/assets/fonts/covered-grace/CoveredGrace-Regular.ttf b/assets/fonts/covered-grace/CoveredGrace-Regular.ttf
old mode 100755
new mode 100644
diff --git a/assets/fonts/covered-grace/CoveredGrace-Regular.woff b/assets/fonts/covered-grace/CoveredGrace-Regular.woff
old mode 100755
new mode 100644
diff --git a/assets/fonts/icomoon/icomoon.eot b/assets/fonts/icomoon/icomoon.eot
old mode 100755
new mode 100644
diff --git a/assets/fonts/icomoon/icomoon.svg b/assets/fonts/icomoon/icomoon.svg
old mode 100755
new mode 100644
diff --git a/assets/fonts/icomoon/icomoon.ttf b/assets/fonts/icomoon/icomoon.ttf
old mode 100755
new mode 100644
diff --git a/assets/fonts/icomoon/icomoon.woff b/assets/fonts/icomoon/icomoon.woff
old mode 100755
new mode 100644
diff --git a/config.ru b/config.ru
deleted file mode 100644
index 785bf5cf..00000000
--- a/config.ru
+++ /dev/null
@@ -1,2 +0,0 @@
-require './app'
-run Sinatra::Application
\ No newline at end of file
diff --git a/ie.css b/ie.css
new file mode 100644
index 00000000..c43db441
--- /dev/null
+++ b/ie.css
@@ -0,0 +1 @@
+form.search input[type=search]{color:#444;padding-top:8px;padding-bottom:6px;background:#999 url(images/search.png) no-repeat 12px 6px}form.search input[type=search]:hover{background-position:12px -21px}form.search input[type=search]:focus{background-position:12px 6px}.timeline li:before{display:none}
\ No newline at end of file
diff --git a/neue.css b/neue.css
new file mode 100644
index 00000000..3b474244
--- /dev/null
+++ b/neue.css
@@ -0,0 +1 @@
+@font-face{font-family:"Proxima Nova";font-weight:400;src:url(assets/fonts/proxima-nova/ProximaNova-Regular.eot);src:url(assets/fonts/proxima-nova/ProximaNova-Regular.eot?) format("eot"),url(assets/fonts/proxima-nova/ProximaNova-Regular.woff) format("woff")}@font-face{font-family:"Proxima Nova";font-weight:600;src:url(assets/fonts/proxima-nova/ProximaNova-SBold.eot);src:url(assets/fonts/proxima-nova/ProximaNova-SBold.eot?) format("eot"),url(assets/fonts/proxima-nova/ProximaNova-SBold.woff) format("woff")}@font-face{font-family:"Proxima Nova";font-weight:700;src:url(assets/fonts/proxima-nova/ProximaNova-Bold.eot);src:url(assets/fonts/proxima-nova/ProximaNova-Bold.eot?) format("eot"),url(assets/fonts/proxima-nova/ProximaNova-Bold.woff) format("woff")}@font-face{font-family:CoveredGrace;src:url(assets/fonts/covered-grace/CoveredGrace-Regular.eot);src:url(assets/fonts/covered-grace/CoveredGrace-Regular.eot?#iefix) format('embedded-opentype'),url(assets/fonts/covered-grace/CoveredGrace-Regular.woff) format('woff'),url(assets/fonts/covered-grace/CoveredGrace-Regular.ttf) format('truetype');font-style:normal;font-weight:400}@font-face{font-family:icomoon;src:url(assets/fonts/icomoon/icomoon.eot?1);src:url(assets/fonts/icomoon/icomoon.eot?1#iefix) format("embedded-opentype"),url(assets/fonts/icomoon/icomoon.ttf?1) format("truetype"),url(assets/fonts/icomoon/icomoon.woff?1) format("woff"),url(assets/fonts/icomoon/icomoon.svg?1#icomoon) format("svg");font-weight:400;font-style:normal}.icon-pencil:before{font-family:icomoon;speak:none;font-style:normal;font-weight:400;font-variant:normal;text-transform:none;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;content:"\e600"}.icon-lock:before{font-family:icomoon;speak:none;font-style:normal;font-weight:400;font-variant:normal;text-transform:none;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;content:"\e601"}.icon-search:before{font-family:icomoon;speak:none;font-style:normal;font-weight:400;font-variant:normal;text-transform:none;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;content:"\e602"}a,abbr,acronym,address,applet,article,aside,audio,b,big,blockquote,body,canvas,caption,center,cite,code,dd,del,details,dfn,div,dl,dt,em,embed,fieldset,figcaption,figure,footer,form,h1,h2,h3,h4,h5,h6,header,hgroup,html,i,iframe,img,ins,kbd,label,legend,li,mark,menu,nav,object,ol,output,p,pre,q,ruby,s,samp,section,small,span,strike,strong,sub,summary,sup,table,tbody,td,tfoot,th,thead,time,tr,tt,u,ul,var,video{margin:0;padding:0;border:0;font:inherit;vertical-align:baseline}article,aside,details,figcaption,figure,footer,header,hgroup,menu,nav,section{display:block}ol,ul{list-style:none}blockquote,q{quotes:none}blockquote:after,blockquote:before,q:after,q:before{content:'';content:none}table{border-collapse:collapse;border-spacing:0}*{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}html{height:100%;font-size:18px;background:#ddd}body{width:100%;max-width:1440px;background:#fff;color:#444;font-family:"Proxima Nova","Trebuchet MS",sans-serif;font-size:1rem;font-weight:400;line-height:1.5;margin:0 auto;box-shadow:0 0 10px rgba(0,0,0,.5)}h1,h2,h3,h4{clear:both;font-weight:700;margin:1.5rem 0}h1.banner,h2.banner,h3.banner,h4.banner{background:#000;color:#fff;line-height:1.5;text-transform:uppercase;padding:.75rem 1.25rem}h1,h2{color:#4e2b63}h3,h4{color:#444}h1{font-size:3rem}h1.hero{font-size:4rem}h2{font-size:1.75rem}h3{font-size:1.25rem;font-weight:600}h4{color:#444;font-size:1rem;font-weight:600;margin:1.5rem 0 .5rem}ul{list-style-type:disc;padding-left:2em}ol{list-style-type:decimal;padding-left:2em}p{font-size:1rem;color:#444;margin:0 0 1.5rem}small{font-size:.75rem;margin:0 0 1.5rem}a{color:#23b7fb;font-weight:600;text-decoration:none}a:hover{color:#55cafc;text-decoration:underline}a:active{color:#04a3e7}a.secondary{color:#999;font-weight:400;text-decoration:underline}b,strong{font-weight:600}em{font-style:italic}mark{background:#fdfbbd}code{font-family:Menlo,Consolas,"Courier New",serif;font-weight:700;font-size:.8em}sup{display:inline-block;position:relative;top:-.4rem;font-size:.6em;padding:0}.chrome--nav{display:block;width:100%;margin-bottom:2rem;overflow:hidden}@media screen and (max-width:768px){body .chrome--nav.is-visible{display:block;position:fixed;top:0;width:100%;height:100%;background:#222;z-index:9997}body .chrome--nav.is-visible .menu{clear:both;display:block;position:static;width:auto;height:auto;background:0 0;margin-top:4rem}@media screen and (min-device-height:960px){body .chrome--nav.is-visible .menu{margin-top:5rem}}body .chrome--nav.is-visible .hamburger{color:#fff}}@media screen and (min-width:768px){.chrome--nav{padding:1rem 0}}.chrome--nav .logo{float:left;padding:.5rem}@media screen and (min-width:768px){.chrome--nav .logo{position:static;min-width:96px;padding:0 1rem;text-align:center;float:left;display:block;margin-right:2.22222%;width:10.55556%}.chrome--nav .logo:last-child{margin-right:0}}.chrome--nav .logo img{width:80px;height:70px}.chrome--nav .hamburger{float:right;color:#222;font-size:32px;text-decoration:none;margin:.5rem;padding:1rem .5rem;font-family:icomoon;speak:none;font-style:normal;font-weight:400;font-variant:normal;text-transform:none;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}@media screen and (min-width:768px){.chrome--nav .hamburger{display:none}}.chrome--nav .menu{display:none}@media screen and (min-width:768px){.chrome--nav .menu{display:block}}.chrome--nav .primary-nav{list-style-type:none;padding:0}.chrome--nav .primary-nav li{line-height:1.4;font-size:1rem;text-align:center;padding:1rem 0}@media screen and (min-device-height:960px){.chrome--nav .primary-nav li{padding:.75rem 0}}@media screen and (min-width:768px){.chrome--nav .primary-nav li{float:left;display:block;text-align:left;margin:0 3.5% 0 0;padding:1.25rem 0;border-bottom:0}}@media screen and (min-width:1080px){.chrome--nav .primary-nav li{padding:.75rem 0;margin:0 5% 0 0}}.chrome--nav .primary-nav a{display:block;color:#fff;text-decoration:none}@media screen and (min-width:768px){.chrome--nav .primary-nav a{color:#222}}.chrome--nav .primary-nav strong{display:block;font-size:1rem}.chrome--nav .primary-nav span{font-size:.6rem}@media screen and (min-width:768px){.chrome--nav .primary-nav span{display:none}}@media screen and (min-width:1080px){.chrome--nav .primary-nav span{display:block}}.chrome--nav .secondary-nav{position:fixed;bottom:0;width:100%;margin-right:1rem}@media screen and (min-width:768px){.chrome--nav .secondary-nav{position:static;float:right;width:auto}}.chrome--nav .secondary-nav ul{display:block;list-style-type:none;padding:0}.chrome--nav .secondary-nav li{line-height:1.4;font-size:1rem;text-align:center;padding:1.5rem 0;margin:1rem;box-sizing:border-box}@media screen and (min-width:768px){.chrome--nav .secondary-nav li{float:left;display:block;text-align:left;padding:.75rem 0;margin:0 0 0 1rem;border-bottom:0}}@media screen and (min-width:1080px){.chrome--nav .secondary-nav li{padding:.75rem 0}}.chrome--nav .secondary-nav .searchfield{margin-left:0}.chrome--nav .secondary-nav input[type=search]{margin:.2rem 0;padding-top:.3rem;padding-bottom:.3rem;background-image:url(assets/images/search_dark.png);-webkit-transition:width .5s;-moz-transition:width .5s;transition:width .5s}@media only screen and (-webkit-min-device-pixel-ratio:1.3),only screen and (min--moz-device-pixel-ratio:1.3),only screen and (-o-min-device-pixel-ratio:1.3/1),only screen and (min-resolution:125dpi),only screen and (min-resolution:1.3dppx){.chrome--nav .secondary-nav input[type=search]{background-image:url(/assets/images/search_dark@2x.png)}}@media screen and (min-width:768px){.chrome--nav .secondary-nav input[type=search]{width:110px;border:1px solid #222;background-color:transparent}}@media screen and (min-width:1080px){.chrome--nav .secondary-nav input[type=search]{width:200px}}.chrome--nav .secondary-nav a{display:block;color:#fff;font-weight:700;text-decoration:none;padding:.5rem}@media screen and (min-width:768px){.chrome--nav .secondary-nav a{color:#222}}.chrome--wrapper{position:relative;display:block;width:100%}.chrome--footer{display:block;width:100%;background:#000;margin:0 auto}@media screen and (min-width:768px){.chrome--footer{padding:1rem}}.chrome--footer h4{position:relative;color:#fff;padding:0 1rem;margin:0;cursor:pointer}.chrome--footer h4:after{font-family:icomoon;speak:none;font-style:normal;font-weight:400;font-variant:normal;text-transform:none;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;content:"\e609";color:#999;font-size:32px;position:absolute;right:.25rem;top:-.2rem;-webkit-transform:rotate(0);-moz-transform:rotate(0);-ms-transform:rotate(0);-o-transform:rotate(0);transform:rotate(0);-webkit-transition-property:-webkit-transform;-moz-transition-property:-moz-transform;transition-property:transform;-webkit-transition-duration:.25s;-moz-transition-duration:.25s;transition-duration:.25s}@media screen and (min-width:768px){.chrome--footer h4{cursor:auto;margin:1rem 0 .5rem;padding:0}.chrome--footer h4:after{content:""}}.chrome--footer ul{height:auto;list-style-type:none;padding:.25rem;-webkit-transition:height .25s,padding .5s;-moz-transition:height .25s,padding .5s;transition:height .25s,padding .5s}@media screen and (min-width:768px){.chrome--footer ul{padding:0}}.chrome--footer li{line-height:1rem;margin-bottom:.25rem}.chrome--footer a{display:block;color:#ddd;font-family:"Proxima Nova";font-size:.9rem;text-decoration:none;padding:.25rem .75rem}.chrome--footer a:hover{color:#fff;text-decoration:underline}@media screen and (min-width:768px){.chrome--footer a{padding:0}}.col{padding:.5rem 0}@media screen and (min-width:768px){.col{float:left;display:block;margin-right:2.22222%;width:16.94444%;margin-bottom:2rem}.col:last-child{margin-right:0}}.col.is-collapsed h4:after{-webkit-transform:rotate(-90deg);-moz-transform:rotate(-90deg);-ms-transform:rotate(-90deg);-o-transform:rotate(-90deg);transform:rotate(-90deg)}.col.is-collapsed ul{overflow:hidden;padding:0 .25rem;height:0}@media screen and (min-width:768px){.col.is-collapsed h4:after{content:""}.col.is-collapsed ul{height:auto;padding:0;-webkit-transition:none;-moz-transition:none;transition:none}}.about,.help,.knowus{border-top:1px solid #444}@media screen and (min-width:768px){.about,.help,.knowus{border-top:0;border-bottom:0}}.about{border-bottom:1px solid #444}@media screen and (min-width:768px){.about{border-bottom:0;margin-right:0}}.social{text-align:center}.social.mobile{padding:.5rem 0}@media screen and (min-width:768px){.social.mobile{display:none}}.social.tablet{display:none}@media screen and (min-width:768px){.social.tablet{display:block}}@media screen and (min-width:768px){.social{border-top:0;margin-top:1.65rem;text-align:left;float:left;display:block;margin-right:2.22222%;width:42.5%}.social:last-child{margin-right:0}}.social li{display:inline-block;margin-right:0}@media screen and (min-width:768px){.social li{margin-right:16px}}.social .social-link{font-family:icomoon;speak:none;font-style:normal;font-weight:400;font-variant:normal;text-transform:none;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-size:24px;color:#999;text-decoration:none}.social .social-link:hover{color:#ddd;text-decoration:none}.subfooter{clear:both;font-size:.75rem;border-top:1px solid #444;padding:.5rem 0;*zoom:1;display:block}.subfooter:after,.subfooter:before{content:" ";display:table}.subfooter:after{clear:both}.subfooter a{display:inline;color:#999;font-size:1em}.subfooter .utility{text-align:center;list-style-type:none}@media screen and (min-width:768px){.subfooter .utility{float:right;text-align:left;margin-right:.75rem}}.subfooter .utility li{display:inline}.subfooter .utility a{margin:0 .5rem}@media screen and (min-width:768px){.subfooter .utility a{margin:0 1rem 0 0}}.page{margin-bottom:3rem}@media screen and (min-width:768px){.page{float:left;display:block;margin-right:2.22222%;width:74.44444%;margin-left:12.77778%}.page:last-child{margin-right:0}}.sidebar{margin-top:4rem;margin-bottom:3rem}@media screen and (min-width:768px){.sidebar{float:left;display:block;width:16.94444%;margin-right:0}.sidebar:last-child{margin-right:0}.sidebar nav.is-stuck{position:fixed;top:0}}.sidebar-content{margin-top:0;margin-bottom:3rem}@media screen and (min-width:768px){.sidebar-content{margin-left:12.77778%;float:left;display:block;margin-right:2.22222%;width:61.66667%}.sidebar-content:last-child{margin-right:0}}.fade-in,.fade-in-up,.fade-out,.fade-out-down,.rotation,.shake,.tada,.wobble{-webkit-animation-fill-mode:both;-moz-animation-fill-mode:both;animation-fill-mode:both;-webkit-animation-duration:.5s;-moz-animation-duration:.5s;animation-duration:.5s}.fade-in{-webkit-animation-name:fadeIn;-moz-animation-name:fadeIn;animation-name:fadeIn}@-webkit-keyframes fadeIn{0%{opacity:0}100%{opacity:1}}@-moz-keyframes fadeIn{0%{opacity:0}100%{opacity:1}}@-o-keyframes fadeIn{0%{opacity:0}100%{opacity:1}}@keyframes fadeIn{0%{opacity:0}100%{opacity:1}}.fade-in-up{-webkit-animation-name:fadeInUp;-moz-animation-name:fadeInUp;animation-name:fadeInUp}@-webkit-keyframes fadeInUp{0%{opacity:0;-webkit-transform:translateY(20px)}100%{opacity:1;-webkit-transform:translateY(0)}}@-moz-keyframes fadeInUp{0%{opacity:0;-moz-transform:translateY(20px)}100%{opacity:1;-moz-transform:translateY(0)}}@-o-keyframes fadeInUp{0%{opacity:0;-o-transform:translateY(20px)}100%{opacity:1;-o-transform:translateY(0)}}@keyframes fadeInUp{0%{opacity:0;transform:translateY(20px)}100%{opacity:1;transform:translateY(0)}}.fade-out{-webkit-animation-name:fadeOut;-moz-animation-name:fadeOut;animation-name:fadeOut}@-webkit-keyframes fadeOut{0%{opacity:1}100%{opacity:0}}@-moz-keyframes fadeOut{0%{opacity:1}100%{opacity:0}}@-o-keyframes fadeOut{0%{opacity:1}100%{opacity:0}}@keyframes fadeOut{0%{opacity:1}100%{opacity:0}}.fade-out-down{-webkit-animation-name:fadeOutDown;-moz-animation-name:fadeOutDown;animation-name:fadeOutDown}@-webkit-keyframes fadeOutDown{0%{opacity:1;-webkit-transform:translateY(0)}100%{opacity:0;-webkit-transform:translateY(20px)}}@-moz-keyframes fadeOutDown{0%{opacity:1;-moz-transform:translateY(0)}100%{opacity:0;-moz-transform:translateY(20px)}}@-o-keyframes fadeOutDown{0%{opacity:1;-o-transform:translateY(0)}100%{opacity:0;-o-transform:translateY(20px)}}@keyframes fadeOutDown{0%{opacity:1;transform:translateY(0)}100%{opacity:0;transform:translateY(20px)}}.tada{-webkit-animation-name:tada;-moz-animation-name:tada;animation-name:tada}@-webkit-keyframes tada{0%{transform:scale(1)}10%,20%{transform:scale(0.9) rotate(-3deg)}30%,50%,70%,90%{transform:scale(1.1) rotate(3deg)}40%,60%,80%{transform:scale(1.1) rotate(-3deg)}100%{transform:scale(1) rotate(0)}}@-moz-keyframes tada{0%{transform:scale(1)}10%,20%{transform:scale(0.9) rotate(-3deg)}30%,50%,70%,90%{transform:scale(1.1) rotate(3deg)}40%,60%,80%{transform:scale(1.1) rotate(-3deg)}100%{transform:scale(1) rotate(0)}}@-o-keyframes tada{0%{transform:scale(1)}10%,20%{transform:scale(0.9) rotate(-3deg)}30%,50%,70%,90%{transform:scale(1.1) rotate(3deg)}40%,60%,80%{transform:scale(1.1) rotate(-3deg)}100%{transform:scale(1) rotate(0)}}@keyframes tada{0%{transform:scale(1)}10%,20%{transform:scale(0.9) rotate(-3deg)}30%,50%,70%,90%{transform:scale(1.1) rotate(3deg)}40%,60%,80%{transform:scale(1.1) rotate(-3deg)}100%{transform:scale(1) rotate(0)}}.wobble{-webkit-animation-duration:1s;-moz-animation-duration:1s;animation-duration:1s;-webkit-animation-name:wobble;-moz-animation-name:wobble;animation-name:wobble}@-webkit-keyframes wobble{0%{-webkit-transform:translateX(0)}15%{-webkit-transform:translateX(-25%) rotate(-5deg)}30%{-webkit-transform:translateX(20%) rotate(3deg)}45%{-webkit-transform:translateX(-15%) rotate(-3deg)}60%{-webkit-transform:translateX(10%) rotate(2deg)}75%{-webkit-transform:translateX(-5%) rotate(-1deg)}100%{-webkit-transform:translateX(0)}}@-moz-keyframes wobble{0%{-moz-transform:translateX(0)}15%{-moz-transform:translateX(-25%) rotate(-5deg)}30%{-moz-transform:translateX(20%) rotate(3deg)}45%{-moz-transform:translateX(-15%) rotate(-3deg)}60%{-moz-transform:translateX(10%) rotate(2deg)}75%{-moz-transform:translateX(-5%) rotate(-1deg)}100%{-moz-transform:translateX(0)}}@-o-keyframes wobble{0%{-o-transform:translateX(0)}15%{-o-transform:translateX(-25%) rotate(-5deg)}30%{-o-transform:translateX(20%) rotate(3deg)}45%{-o-transform:translateX(-15%) rotate(-3deg)}60%{-o-transform:translateX(10%) rotate(2deg)}75%{-o-transform:translateX(-5%) rotate(-1deg)}100%{-o-transform:translateX(0)}}@keyframes wobble{0%{transform:translateX(0)}15%{transform:translateX(-25%) rotate(-5deg)}30%{transform:translateX(20%) rotate(3deg)}45%{transform:translateX(-15%) rotate(-3deg)}60%{transform:translateX(10%) rotate(2deg)}75%{transform:translateX(-5%) rotate(-1deg)}100%{transform:translateX(0)}}@-webkit-keyframes shake{0%,100%{-webkit-transform:translateX(0)}10%,30%,50%,70%,90%{-webkit-transform:translateX(-10px)}20%,40%,60%,80%{-webkit-transform:translateX(10px)}}@-moz-keyframes shake{0%,100%{-moz-transform:translateX(0)}10%,30%,50%,70%,90%{-moz-transform:translateX(-10px)}20%,40%,60%,80%{-moz-transform:translateX(10px)}}@-o-keyframes shake{0%,100%{-o-transform:translateX(0)}10%,30%,50%,70%,90%{-o-transform:translateX(-10px)}20%,40%,60%,80%{-o-transform:translateX(10px)}}@keyframes shake{0%,100%{transform:translateX(0)}10%,30%,50%,70%,90%{transform:translateX(-10px)}20%,40%,60%,80%{transform:translateX(10px)}}.shake{-webkit-animation-duration:1s;-moz-animation-duration:1s;animation-duration:1s;-webkit-animation-name:shake;-moz-animation-name:shake;animation-name:shake}@-webkit-keyframes rotation{from{-webkit-transform:rotate(0)}to{-webkit-transform:rotate(359deg)}}@-moz-keyframes rotation{from{-moz-transform:rotate(0)}to{-moz-transform:rotate(359deg)}}@-o-keyframes rotation{from{-o-transform:rotate(0)}to{-o-transform:rotate(359deg)}}@keyframes rotation{from{transform:rotate(0)}to{transform:rotate(359deg)}}.rotation{-webkit-animation-duration:1s;-moz-animation-duration:1s;animation-duration:1s;-webkit-animation-name:rotation;-moz-animation-name:rotation;animation-name:rotation}body.show-visual-grid:before{content:'';display:inline-block;background-image:deprecated-webkit-gradient(linear,left top,left bottom,rgba(0,0,0,0) 0,#fcc 0,#fcc 8.52273%,rgba(0,0,0,0) 8.52273%,rgba(0,0,0,0) 13.06818%,#fcc 13.06818%,#fcc 21.59091%,rgba(0,0,0,0) 21.59091%,rgba(0,0,0,0) 26.13636%,#fcc 26.13636%,#fcc 34.65909%,rgba(0,0,0,0) 34.65909%,rgba(0,0,0,0) 39.20455%,#fcc 39.20455%,#fcc 47.72727%,rgba(0,0,0,0) 47.72727%,rgba(0,0,0,0) 52.27273%,#fcc 52.27273%,#fcc 60.79545%,rgba(0,0,0,0) 60.79545%,rgba(0,0,0,0) 65.34091%,#fcc 65.34091%,#fcc 73.86364%,rgba(0,0,0,0) 73.86364%,rgba(0,0,0,0) 78.40909%,#fcc 78.40909%,#fcc 86.93182%,rgba(0,0,0,0) 86.93182%,rgba(0,0,0,0) 91.47727%,#fcc 91.47727%,#fcc 100%,rgba(0,0,0,0) 100%);background-image:-webkit-linear-gradient(left,rgba(0,0,0,0) 0,#fcc 0,#fcc 8.52273%,rgba(0,0,0,0) 8.52273%,rgba(0,0,0,0) 13.06818%,#fcc 13.06818%,#fcc 21.59091%,rgba(0,0,0,0) 21.59091%,rgba(0,0,0,0) 26.13636%,#fcc 26.13636%,#fcc 34.65909%,rgba(0,0,0,0) 34.65909%,rgba(0,0,0,0) 39.20455%,#fcc 39.20455%,#fcc 47.72727%,rgba(0,0,0,0) 47.72727%,rgba(0,0,0,0) 52.27273%,#fcc 52.27273%,#fcc 60.79545%,rgba(0,0,0,0) 60.79545%,rgba(0,0,0,0) 65.34091%,#fcc 65.34091%,#fcc 73.86364%,rgba(0,0,0,0) 73.86364%,rgba(0,0,0,0) 78.40909%,#fcc 78.40909%,#fcc 86.93182%,rgba(0,0,0,0) 86.93182%,rgba(0,0,0,0) 91.47727%,#fcc 91.47727%,#fcc 100%,rgba(0,0,0,0) 100%);background-image:-moz-linear-gradient(left,rgba(0,0,0,0) 0,#fcc 0,#fcc 8.52273%,rgba(0,0,0,0) 8.52273%,rgba(0,0,0,0) 13.06818%,#fcc 13.06818%,#fcc 21.59091%,rgba(0,0,0,0) 21.59091%,rgba(0,0,0,0) 26.13636%,#fcc 26.13636%,#fcc 34.65909%,rgba(0,0,0,0) 34.65909%,rgba(0,0,0,0) 39.20455%,#fcc 39.20455%,#fcc 47.72727%,rgba(0,0,0,0) 47.72727%,rgba(0,0,0,0) 52.27273%,#fcc 52.27273%,#fcc 60.79545%,rgba(0,0,0,0) 60.79545%,rgba(0,0,0,0) 65.34091%,#fcc 65.34091%,#fcc 73.86364%,rgba(0,0,0,0) 73.86364%,rgba(0,0,0,0) 78.40909%,#fcc 78.40909%,#fcc 86.93182%,rgba(0,0,0,0) 86.93182%,rgba(0,0,0,0) 91.47727%,#fcc 91.47727%,#fcc 100%,rgba(0,0,0,0) 100%);background-image:-ms-linear-gradient(left,rgba(0,0,0,0) 0,#fcc 0,#fcc 8.52273%,rgba(0,0,0,0) 8.52273%,rgba(0,0,0,0) 13.06818%,#fcc 13.06818%,#fcc 21.59091%,rgba(0,0,0,0) 21.59091%,rgba(0,0,0,0) 26.13636%,#fcc 26.13636%,#fcc 34.65909%,rgba(0,0,0,0) 34.65909%,rgba(0,0,0,0) 39.20455%,#fcc 39.20455%,#fcc 47.72727%,rgba(0,0,0,0) 47.72727%,rgba(0,0,0,0) 52.27273%,#fcc 52.27273%,#fcc 60.79545%,rgba(0,0,0,0) 60.79545%,rgba(0,0,0,0) 65.34091%,#fcc 65.34091%,#fcc 73.86364%,rgba(0,0,0,0) 73.86364%,rgba(0,0,0,0) 78.40909%,#fcc 78.40909%,#fcc 86.93182%,rgba(0,0,0,0) 86.93182%,rgba(0,0,0,0) 91.47727%,#fcc 91.47727%,#fcc 100%,rgba(0,0,0,0) 100%);background-image:-o-linear-gradient(left,rgba(0,0,0,0) 0,#fcc 0,#fcc 8.52273%,rgba(0,0,0,0) 8.52273%,rgba(0,0,0,0) 13.06818%,#fcc 13.06818%,#fcc 21.59091%,rgba(0,0,0,0) 21.59091%,rgba(0,0,0,0) 26.13636%,#fcc 26.13636%,#fcc 34.65909%,rgba(0,0,0,0) 34.65909%,rgba(0,0,0,0) 39.20455%,#fcc 39.20455%,#fcc 47.72727%,rgba(0,0,0,0) 47.72727%,rgba(0,0,0,0) 52.27273%,#fcc 52.27273%,#fcc 60.79545%,rgba(0,0,0,0) 60.79545%,rgba(0,0,0,0) 65.34091%,#fcc 65.34091%,#fcc 73.86364%,rgba(0,0,0,0) 73.86364%,rgba(0,0,0,0) 78.40909%,#fcc 78.40909%,#fcc 86.93182%,rgba(0,0,0,0) 86.93182%,rgba(0,0,0,0) 91.47727%,#fcc 91.47727%,#fcc 100%,rgba(0,0,0,0) 100%);background-image:linear-gradient(left,rgba(0,0,0,0) 0,#fcc 0,#fcc 8.52273%,rgba(0,0,0,0) 8.52273%,rgba(0,0,0,0) 13.06818%,#fcc 13.06818%,#fcc 21.59091%,rgba(0,0,0,0) 21.59091%,rgba(0,0,0,0) 26.13636%,#fcc 26.13636%,#fcc 34.65909%,rgba(0,0,0,0) 34.65909%,rgba(0,0,0,0) 39.20455%,#fcc 39.20455%,#fcc 47.72727%,rgba(0,0,0,0) 47.72727%,rgba(0,0,0,0) 52.27273%,#fcc 52.27273%,#fcc 60.79545%,rgba(0,0,0,0) 60.79545%,rgba(0,0,0,0) 65.34091%,#fcc 65.34091%,#fcc 73.86364%,rgba(0,0,0,0) 73.86364%,rgba(0,0,0,0) 78.40909%,#fcc 78.40909%,#fcc 86.93182%,rgba(0,0,0,0) 86.93182%,rgba(0,0,0,0) 91.47727%,#fcc 91.47727%,#fcc 100%,rgba(0,0,0,0) 100%);height:100%;left:0;margin:0 auto;max-width:1440px;opacity:.4;position:fixed;right:0;width:100%;pointer-events:none;z-index:9999}@media screen and (max-width:768px){body.show-visual-grid:before{background-image:deprecated-webkit-gradient(linear,left top,left bottom,rgba(0,0,0,0) 0,#fcc 0,#fcc 8.52273%,rgba(0,0,0,0) 8.52273%,rgba(0,0,0,0) 13.06818%,#fcc 13.06818%,#fcc 21.59091%,rgba(0,0,0,0) 21.59091%,rgba(0,0,0,0) 26.13636%,#fcc 26.13636%,#fcc 34.65909%,rgba(0,0,0,0) 34.65909%,rgba(0,0,0,0) 39.20455%,#fcc 39.20455%,#fcc 47.72727%,rgba(0,0,0,0) 47.72727%,rgba(0,0,0,0) 52.27273%,#fcc 52.27273%,#fcc 60.79545%,rgba(0,0,0,0) 60.79545%,rgba(0,0,0,0) 65.34091%,#fcc 65.34091%,#fcc 73.86364%,rgba(0,0,0,0) 73.86364%,rgba(0,0,0,0) 78.40909%,#fcc 78.40909%,#fcc 86.93182%,rgba(0,0,0,0) 86.93182%,rgba(0,0,0,0) 91.47727%,#fcc 91.47727%,#fcc 100%,rgba(0,0,0,0) 100%);background-image:-webkit-linear-gradient(left,rgba(0,0,0,0) 0,#fcc 0,#fcc 8.52273%,rgba(0,0,0,0) 8.52273%,rgba(0,0,0,0) 13.06818%,#fcc 13.06818%,#fcc 21.59091%,rgba(0,0,0,0) 21.59091%,rgba(0,0,0,0) 26.13636%,#fcc 26.13636%,#fcc 34.65909%,rgba(0,0,0,0) 34.65909%,rgba(0,0,0,0) 39.20455%,#fcc 39.20455%,#fcc 47.72727%,rgba(0,0,0,0) 47.72727%,rgba(0,0,0,0) 52.27273%,#fcc 52.27273%,#fcc 60.79545%,rgba(0,0,0,0) 60.79545%,rgba(0,0,0,0) 65.34091%,#fcc 65.34091%,#fcc 73.86364%,rgba(0,0,0,0) 73.86364%,rgba(0,0,0,0) 78.40909%,#fcc 78.40909%,#fcc 86.93182%,rgba(0,0,0,0) 86.93182%,rgba(0,0,0,0) 91.47727%,#fcc 91.47727%,#fcc 100%,rgba(0,0,0,0) 100%);background-image:-moz-linear-gradient(left,rgba(0,0,0,0) 0,#fcc 0,#fcc 8.52273%,rgba(0,0,0,0) 8.52273%,rgba(0,0,0,0) 13.06818%,#fcc 13.06818%,#fcc 21.59091%,rgba(0,0,0,0) 21.59091%,rgba(0,0,0,0) 26.13636%,#fcc 26.13636%,#fcc 34.65909%,rgba(0,0,0,0) 34.65909%,rgba(0,0,0,0) 39.20455%,#fcc 39.20455%,#fcc 47.72727%,rgba(0,0,0,0) 47.72727%,rgba(0,0,0,0) 52.27273%,#fcc 52.27273%,#fcc 60.79545%,rgba(0,0,0,0) 60.79545%,rgba(0,0,0,0) 65.34091%,#fcc 65.34091%,#fcc 73.86364%,rgba(0,0,0,0) 73.86364%,rgba(0,0,0,0) 78.40909%,#fcc 78.40909%,#fcc 86.93182%,rgba(0,0,0,0) 86.93182%,rgba(0,0,0,0) 91.47727%,#fcc 91.47727%,#fcc 100%,rgba(0,0,0,0) 100%);background-image:-ms-linear-gradient(left,rgba(0,0,0,0) 0,#fcc 0,#fcc 8.52273%,rgba(0,0,0,0) 8.52273%,rgba(0,0,0,0) 13.06818%,#fcc 13.06818%,#fcc 21.59091%,rgba(0,0,0,0) 21.59091%,rgba(0,0,0,0) 26.13636%,#fcc 26.13636%,#fcc 34.65909%,rgba(0,0,0,0) 34.65909%,rgba(0,0,0,0) 39.20455%,#fcc 39.20455%,#fcc 47.72727%,rgba(0,0,0,0) 47.72727%,rgba(0,0,0,0) 52.27273%,#fcc 52.27273%,#fcc 60.79545%,rgba(0,0,0,0) 60.79545%,rgba(0,0,0,0) 65.34091%,#fcc 65.34091%,#fcc 73.86364%,rgba(0,0,0,0) 73.86364%,rgba(0,0,0,0) 78.40909%,#fcc 78.40909%,#fcc 86.93182%,rgba(0,0,0,0) 86.93182%,rgba(0,0,0,0) 91.47727%,#fcc 91.47727%,#fcc 100%,rgba(0,0,0,0) 100%);background-image:-o-linear-gradient(left,rgba(0,0,0,0) 0,#fcc 0,#fcc 8.52273%,rgba(0,0,0,0) 8.52273%,rgba(0,0,0,0) 13.06818%,#fcc 13.06818%,#fcc 21.59091%,rgba(0,0,0,0) 21.59091%,rgba(0,0,0,0) 26.13636%,#fcc 26.13636%,#fcc 34.65909%,rgba(0,0,0,0) 34.65909%,rgba(0,0,0,0) 39.20455%,#fcc 39.20455%,#fcc 47.72727%,rgba(0,0,0,0) 47.72727%,rgba(0,0,0,0) 52.27273%,#fcc 52.27273%,#fcc 60.79545%,rgba(0,0,0,0) 60.79545%,rgba(0,0,0,0) 65.34091%,#fcc 65.34091%,#fcc 73.86364%,rgba(0,0,0,0) 73.86364%,rgba(0,0,0,0) 78.40909%,#fcc 78.40909%,#fcc 86.93182%,rgba(0,0,0,0) 86.93182%,rgba(0,0,0,0) 91.47727%,#fcc 91.47727%,#fcc 100%,rgba(0,0,0,0) 100%);background-image:linear-gradient(left,rgba(0,0,0,0) 0,#fcc 0,#fcc 8.52273%,rgba(0,0,0,0) 8.52273%,rgba(0,0,0,0) 13.06818%,#fcc 13.06818%,#fcc 21.59091%,rgba(0,0,0,0) 21.59091%,rgba(0,0,0,0) 26.13636%,#fcc 26.13636%,#fcc 34.65909%,rgba(0,0,0,0) 34.65909%,rgba(0,0,0,0) 39.20455%,#fcc 39.20455%,#fcc 47.72727%,rgba(0,0,0,0) 47.72727%,rgba(0,0,0,0) 52.27273%,#fcc 52.27273%,#fcc 60.79545%,rgba(0,0,0,0) 60.79545%,rgba(0,0,0,0) 65.34091%,#fcc 65.34091%,#fcc 73.86364%,rgba(0,0,0,0) 73.86364%,rgba(0,0,0,0) 78.40909%,#fcc 78.40909%,#fcc 86.93182%,rgba(0,0,0,0) 86.93182%,rgba(0,0,0,0) 91.47727%,#fcc 91.47727%,#fcc 100%,rgba(0,0,0,0) 100%)}}@media screen and (min-width:768px){body.show-visual-grid:before{background-image:deprecated-webkit-gradient(linear,left top,left bottom,rgba(0,0,0,0) 0,#fcc 0,#fcc 4.16667%,rgba(0,0,0,0) 4.16667%,rgba(0,0,0,0) 6.38889%,#fcc 6.38889%,#fcc 10.55556%,rgba(0,0,0,0) 10.55556%,rgba(0,0,0,0) 12.77778%,#fcc 12.77778%,#fcc 16.94444%,rgba(0,0,0,0) 16.94444%,rgba(0,0,0,0) 19.16667%,#fcc 19.16667%,#fcc 23.33333%,rgba(0,0,0,0) 23.33333%,rgba(0,0,0,0) 25.55556%,#fcc 25.55556%,#fcc 29.72222%,rgba(0,0,0,0) 29.72222%,rgba(0,0,0,0) 31.94444%,#fcc 31.94444%,#fcc 36.11111%,rgba(0,0,0,0) 36.11111%,rgba(0,0,0,0) 38.33333%,#fcc 38.33333%,#fcc 42.5%,rgba(0,0,0,0) 42.5%,rgba(0,0,0,0) 44.72222%,#fcc 44.72222%,#fcc 48.88889%,rgba(0,0,0,0) 48.88889%,rgba(0,0,0,0) 51.11111%,#fcc 51.11111%,#fcc 55.27778%,rgba(0,0,0,0) 55.27778%,rgba(0,0,0,0) 57.5%,#fcc 57.5%,#fcc 61.66667%,rgba(0,0,0,0) 61.66667%,rgba(0,0,0,0) 63.88889%,#fcc 63.88889%,#fcc 68.05556%,rgba(0,0,0,0) 68.05556%,rgba(0,0,0,0) 70.27778%,#fcc 70.27778%,#fcc 74.44444%,rgba(0,0,0,0) 74.44444%,rgba(0,0,0,0) 76.66667%,#fcc 76.66667%,#fcc 80.83333%,rgba(0,0,0,0) 80.83333%,rgba(0,0,0,0) 83.05556%,#fcc 83.05556%,#fcc 87.22222%,rgba(0,0,0,0) 87.22222%,rgba(0,0,0,0) 89.44444%,#fcc 89.44444%,#fcc 93.61111%,rgba(0,0,0,0) 93.61111%,rgba(0,0,0,0) 95.83333%,#fcc 95.83333%,#fcc 100%,rgba(0,0,0,0) 100%);background-image:-webkit-linear-gradient(left,rgba(0,0,0,0) 0,#fcc 0,#fcc 4.16667%,rgba(0,0,0,0) 4.16667%,rgba(0,0,0,0) 6.38889%,#fcc 6.38889%,#fcc 10.55556%,rgba(0,0,0,0) 10.55556%,rgba(0,0,0,0) 12.77778%,#fcc 12.77778%,#fcc 16.94444%,rgba(0,0,0,0) 16.94444%,rgba(0,0,0,0) 19.16667%,#fcc 19.16667%,#fcc 23.33333%,rgba(0,0,0,0) 23.33333%,rgba(0,0,0,0) 25.55556%,#fcc 25.55556%,#fcc 29.72222%,rgba(0,0,0,0) 29.72222%,rgba(0,0,0,0) 31.94444%,#fcc 31.94444%,#fcc 36.11111%,rgba(0,0,0,0) 36.11111%,rgba(0,0,0,0) 38.33333%,#fcc 38.33333%,#fcc 42.5%,rgba(0,0,0,0) 42.5%,rgba(0,0,0,0) 44.72222%,#fcc 44.72222%,#fcc 48.88889%,rgba(0,0,0,0) 48.88889%,rgba(0,0,0,0) 51.11111%,#fcc 51.11111%,#fcc 55.27778%,rgba(0,0,0,0) 55.27778%,rgba(0,0,0,0) 57.5%,#fcc 57.5%,#fcc 61.66667%,rgba(0,0,0,0) 61.66667%,rgba(0,0,0,0) 63.88889%,#fcc 63.88889%,#fcc 68.05556%,rgba(0,0,0,0) 68.05556%,rgba(0,0,0,0) 70.27778%,#fcc 70.27778%,#fcc 74.44444%,rgba(0,0,0,0) 74.44444%,rgba(0,0,0,0) 76.66667%,#fcc 76.66667%,#fcc 80.83333%,rgba(0,0,0,0) 80.83333%,rgba(0,0,0,0) 83.05556%,#fcc 83.05556%,#fcc 87.22222%,rgba(0,0,0,0) 87.22222%,rgba(0,0,0,0) 89.44444%,#fcc 89.44444%,#fcc 93.61111%,rgba(0,0,0,0) 93.61111%,rgba(0,0,0,0) 95.83333%,#fcc 95.83333%,#fcc 100%,rgba(0,0,0,0) 100%);background-image:-moz-linear-gradient(left,rgba(0,0,0,0) 0,#fcc 0,#fcc 4.16667%,rgba(0,0,0,0) 4.16667%,rgba(0,0,0,0) 6.38889%,#fcc 6.38889%,#fcc 10.55556%,rgba(0,0,0,0) 10.55556%,rgba(0,0,0,0) 12.77778%,#fcc 12.77778%,#fcc 16.94444%,rgba(0,0,0,0) 16.94444%,rgba(0,0,0,0) 19.16667%,#fcc 19.16667%,#fcc 23.33333%,rgba(0,0,0,0) 23.33333%,rgba(0,0,0,0) 25.55556%,#fcc 25.55556%,#fcc 29.72222%,rgba(0,0,0,0) 29.72222%,rgba(0,0,0,0) 31.94444%,#fcc 31.94444%,#fcc 36.11111%,rgba(0,0,0,0) 36.11111%,rgba(0,0,0,0) 38.33333%,#fcc 38.33333%,#fcc 42.5%,rgba(0,0,0,0) 42.5%,rgba(0,0,0,0) 44.72222%,#fcc 44.72222%,#fcc 48.88889%,rgba(0,0,0,0) 48.88889%,rgba(0,0,0,0) 51.11111%,#fcc 51.11111%,#fcc 55.27778%,rgba(0,0,0,0) 55.27778%,rgba(0,0,0,0) 57.5%,#fcc 57.5%,#fcc 61.66667%,rgba(0,0,0,0) 61.66667%,rgba(0,0,0,0) 63.88889%,#fcc 63.88889%,#fcc 68.05556%,rgba(0,0,0,0) 68.05556%,rgba(0,0,0,0) 70.27778%,#fcc 70.27778%,#fcc 74.44444%,rgba(0,0,0,0) 74.44444%,rgba(0,0,0,0) 76.66667%,#fcc 76.66667%,#fcc 80.83333%,rgba(0,0,0,0) 80.83333%,rgba(0,0,0,0) 83.05556%,#fcc 83.05556%,#fcc 87.22222%,rgba(0,0,0,0) 87.22222%,rgba(0,0,0,0) 89.44444%,#fcc 89.44444%,#fcc 93.61111%,rgba(0,0,0,0) 93.61111%,rgba(0,0,0,0) 95.83333%,#fcc 95.83333%,#fcc 100%,rgba(0,0,0,0) 100%);background-image:-ms-linear-gradient(left,rgba(0,0,0,0) 0,#fcc 0,#fcc 4.16667%,rgba(0,0,0,0) 4.16667%,rgba(0,0,0,0) 6.38889%,#fcc 6.38889%,#fcc 10.55556%,rgba(0,0,0,0) 10.55556%,rgba(0,0,0,0) 12.77778%,#fcc 12.77778%,#fcc 16.94444%,rgba(0,0,0,0) 16.94444%,rgba(0,0,0,0) 19.16667%,#fcc 19.16667%,#fcc 23.33333%,rgba(0,0,0,0) 23.33333%,rgba(0,0,0,0) 25.55556%,#fcc 25.55556%,#fcc 29.72222%,rgba(0,0,0,0) 29.72222%,rgba(0,0,0,0) 31.94444%,#fcc 31.94444%,#fcc 36.11111%,rgba(0,0,0,0) 36.11111%,rgba(0,0,0,0) 38.33333%,#fcc 38.33333%,#fcc 42.5%,rgba(0,0,0,0) 42.5%,rgba(0,0,0,0) 44.72222%,#fcc 44.72222%,#fcc 48.88889%,rgba(0,0,0,0) 48.88889%,rgba(0,0,0,0) 51.11111%,#fcc 51.11111%,#fcc 55.27778%,rgba(0,0,0,0) 55.27778%,rgba(0,0,0,0) 57.5%,#fcc 57.5%,#fcc 61.66667%,rgba(0,0,0,0) 61.66667%,rgba(0,0,0,0) 63.88889%,#fcc 63.88889%,#fcc 68.05556%,rgba(0,0,0,0) 68.05556%,rgba(0,0,0,0) 70.27778%,#fcc 70.27778%,#fcc 74.44444%,rgba(0,0,0,0) 74.44444%,rgba(0,0,0,0) 76.66667%,#fcc 76.66667%,#fcc 80.83333%,rgba(0,0,0,0) 80.83333%,rgba(0,0,0,0) 83.05556%,#fcc 83.05556%,#fcc 87.22222%,rgba(0,0,0,0) 87.22222%,rgba(0,0,0,0) 89.44444%,#fcc 89.44444%,#fcc 93.61111%,rgba(0,0,0,0) 93.61111%,rgba(0,0,0,0) 95.83333%,#fcc 95.83333%,#fcc 100%,rgba(0,0,0,0) 100%);background-image:-o-linear-gradient(left,rgba(0,0,0,0) 0,#fcc 0,#fcc 4.16667%,rgba(0,0,0,0) 4.16667%,rgba(0,0,0,0) 6.38889%,#fcc 6.38889%,#fcc 10.55556%,rgba(0,0,0,0) 10.55556%,rgba(0,0,0,0) 12.77778%,#fcc 12.77778%,#fcc 16.94444%,rgba(0,0,0,0) 16.94444%,rgba(0,0,0,0) 19.16667%,#fcc 19.16667%,#fcc 23.33333%,rgba(0,0,0,0) 23.33333%,rgba(0,0,0,0) 25.55556%,#fcc 25.55556%,#fcc 29.72222%,rgba(0,0,0,0) 29.72222%,rgba(0,0,0,0) 31.94444%,#fcc 31.94444%,#fcc 36.11111%,rgba(0,0,0,0) 36.11111%,rgba(0,0,0,0) 38.33333%,#fcc 38.33333%,#fcc 42.5%,rgba(0,0,0,0) 42.5%,rgba(0,0,0,0) 44.72222%,#fcc 44.72222%,#fcc 48.88889%,rgba(0,0,0,0) 48.88889%,rgba(0,0,0,0) 51.11111%,#fcc 51.11111%,#fcc 55.27778%,rgba(0,0,0,0) 55.27778%,rgba(0,0,0,0) 57.5%,#fcc 57.5%,#fcc 61.66667%,rgba(0,0,0,0) 61.66667%,rgba(0,0,0,0) 63.88889%,#fcc 63.88889%,#fcc 68.05556%,rgba(0,0,0,0) 68.05556%,rgba(0,0,0,0) 70.27778%,#fcc 70.27778%,#fcc 74.44444%,rgba(0,0,0,0) 74.44444%,rgba(0,0,0,0) 76.66667%,#fcc 76.66667%,#fcc 80.83333%,rgba(0,0,0,0) 80.83333%,rgba(0,0,0,0) 83.05556%,#fcc 83.05556%,#fcc 87.22222%,rgba(0,0,0,0) 87.22222%,rgba(0,0,0,0) 89.44444%,#fcc 89.44444%,#fcc 93.61111%,rgba(0,0,0,0) 93.61111%,rgba(0,0,0,0) 95.83333%,#fcc 95.83333%,#fcc 100%,rgba(0,0,0,0) 100%);background-image:linear-gradient(left,rgba(0,0,0,0) 0,#fcc 0,#fcc 4.16667%,rgba(0,0,0,0) 4.16667%,rgba(0,0,0,0) 6.38889%,#fcc 6.38889%,#fcc 10.55556%,rgba(0,0,0,0) 10.55556%,rgba(0,0,0,0) 12.77778%,#fcc 12.77778%,#fcc 16.94444%,rgba(0,0,0,0) 16.94444%,rgba(0,0,0,0) 19.16667%,#fcc 19.16667%,#fcc 23.33333%,rgba(0,0,0,0) 23.33333%,rgba(0,0,0,0) 25.55556%,#fcc 25.55556%,#fcc 29.72222%,rgba(0,0,0,0) 29.72222%,rgba(0,0,0,0) 31.94444%,#fcc 31.94444%,#fcc 36.11111%,rgba(0,0,0,0) 36.11111%,rgba(0,0,0,0) 38.33333%,#fcc 38.33333%,#fcc 42.5%,rgba(0,0,0,0) 42.5%,rgba(0,0,0,0) 44.72222%,#fcc 44.72222%,#fcc 48.88889%,rgba(0,0,0,0) 48.88889%,rgba(0,0,0,0) 51.11111%,#fcc 51.11111%,#fcc 55.27778%,rgba(0,0,0,0) 55.27778%,rgba(0,0,0,0) 57.5%,#fcc 57.5%,#fcc 61.66667%,rgba(0,0,0,0) 61.66667%,rgba(0,0,0,0) 63.88889%,#fcc 63.88889%,#fcc 68.05556%,rgba(0,0,0,0) 68.05556%,rgba(0,0,0,0) 70.27778%,#fcc 70.27778%,#fcc 74.44444%,rgba(0,0,0,0) 74.44444%,rgba(0,0,0,0) 76.66667%,#fcc 76.66667%,#fcc 80.83333%,rgba(0,0,0,0) 80.83333%,rgba(0,0,0,0) 83.05556%,#fcc 83.05556%,#fcc 87.22222%,rgba(0,0,0,0) 87.22222%,rgba(0,0,0,0) 89.44444%,#fcc 89.44444%,#fcc 93.61111%,rgba(0,0,0,0) 93.61111%,rgba(0,0,0,0) 95.83333%,#fcc 95.83333%,#fcc 100%,rgba(0,0,0,0) 100%)}}@media screen and (min-width:1080px){body.show-visual-grid:before{background-image:deprecated-webkit-gradient(linear,left top,left bottom,rgba(0,0,0,0) 0,#fcc 0,#fcc 4.16667%,rgba(0,0,0,0) 4.16667%,rgba(0,0,0,0) 6.38889%,#fcc 6.38889%,#fcc 10.55556%,rgba(0,0,0,0) 10.55556%,rgba(0,0,0,0) 12.77778%,#fcc 12.77778%,#fcc 16.94444%,rgba(0,0,0,0) 16.94444%,rgba(0,0,0,0) 19.16667%,#fcc 19.16667%,#fcc 23.33333%,rgba(0,0,0,0) 23.33333%,rgba(0,0,0,0) 25.55556%,#fcc 25.55556%,#fcc 29.72222%,rgba(0,0,0,0) 29.72222%,rgba(0,0,0,0) 31.94444%,#fcc 31.94444%,#fcc 36.11111%,rgba(0,0,0,0) 36.11111%,rgba(0,0,0,0) 38.33333%,#fcc 38.33333%,#fcc 42.5%,rgba(0,0,0,0) 42.5%,rgba(0,0,0,0) 44.72222%,#fcc 44.72222%,#fcc 48.88889%,rgba(0,0,0,0) 48.88889%,rgba(0,0,0,0) 51.11111%,#fcc 51.11111%,#fcc 55.27778%,rgba(0,0,0,0) 55.27778%,rgba(0,0,0,0) 57.5%,#fcc 57.5%,#fcc 61.66667%,rgba(0,0,0,0) 61.66667%,rgba(0,0,0,0) 63.88889%,#fcc 63.88889%,#fcc 68.05556%,rgba(0,0,0,0) 68.05556%,rgba(0,0,0,0) 70.27778%,#fcc 70.27778%,#fcc 74.44444%,rgba(0,0,0,0) 74.44444%,rgba(0,0,0,0) 76.66667%,#fcc 76.66667%,#fcc 80.83333%,rgba(0,0,0,0) 80.83333%,rgba(0,0,0,0) 83.05556%,#fcc 83.05556%,#fcc 87.22222%,rgba(0,0,0,0) 87.22222%,rgba(0,0,0,0) 89.44444%,#fcc 89.44444%,#fcc 93.61111%,rgba(0,0,0,0) 93.61111%,rgba(0,0,0,0) 95.83333%,#fcc 95.83333%,#fcc 100%,rgba(0,0,0,0) 100%);background-image:-webkit-linear-gradient(left,rgba(0,0,0,0) 0,#fcc 0,#fcc 4.16667%,rgba(0,0,0,0) 4.16667%,rgba(0,0,0,0) 6.38889%,#fcc 6.38889%,#fcc 10.55556%,rgba(0,0,0,0) 10.55556%,rgba(0,0,0,0) 12.77778%,#fcc 12.77778%,#fcc 16.94444%,rgba(0,0,0,0) 16.94444%,rgba(0,0,0,0) 19.16667%,#fcc 19.16667%,#fcc 23.33333%,rgba(0,0,0,0) 23.33333%,rgba(0,0,0,0) 25.55556%,#fcc 25.55556%,#fcc 29.72222%,rgba(0,0,0,0) 29.72222%,rgba(0,0,0,0) 31.94444%,#fcc 31.94444%,#fcc 36.11111%,rgba(0,0,0,0) 36.11111%,rgba(0,0,0,0) 38.33333%,#fcc 38.33333%,#fcc 42.5%,rgba(0,0,0,0) 42.5%,rgba(0,0,0,0) 44.72222%,#fcc 44.72222%,#fcc 48.88889%,rgba(0,0,0,0) 48.88889%,rgba(0,0,0,0) 51.11111%,#fcc 51.11111%,#fcc 55.27778%,rgba(0,0,0,0) 55.27778%,rgba(0,0,0,0) 57.5%,#fcc 57.5%,#fcc 61.66667%,rgba(0,0,0,0) 61.66667%,rgba(0,0,0,0) 63.88889%,#fcc 63.88889%,#fcc 68.05556%,rgba(0,0,0,0) 68.05556%,rgba(0,0,0,0) 70.27778%,#fcc 70.27778%,#fcc 74.44444%,rgba(0,0,0,0) 74.44444%,rgba(0,0,0,0) 76.66667%,#fcc 76.66667%,#fcc 80.83333%,rgba(0,0,0,0) 80.83333%,rgba(0,0,0,0) 83.05556%,#fcc 83.05556%,#fcc 87.22222%,rgba(0,0,0,0) 87.22222%,rgba(0,0,0,0) 89.44444%,#fcc 89.44444%,#fcc 93.61111%,rgba(0,0,0,0) 93.61111%,rgba(0,0,0,0) 95.83333%,#fcc 95.83333%,#fcc 100%,rgba(0,0,0,0) 100%);background-image:-moz-linear-gradient(left,rgba(0,0,0,0) 0,#fcc 0,#fcc 4.16667%,rgba(0,0,0,0) 4.16667%,rgba(0,0,0,0) 6.38889%,#fcc 6.38889%,#fcc 10.55556%,rgba(0,0,0,0) 10.55556%,rgba(0,0,0,0) 12.77778%,#fcc 12.77778%,#fcc 16.94444%,rgba(0,0,0,0) 16.94444%,rgba(0,0,0,0) 19.16667%,#fcc 19.16667%,#fcc 23.33333%,rgba(0,0,0,0) 23.33333%,rgba(0,0,0,0) 25.55556%,#fcc 25.55556%,#fcc 29.72222%,rgba(0,0,0,0) 29.72222%,rgba(0,0,0,0) 31.94444%,#fcc 31.94444%,#fcc 36.11111%,rgba(0,0,0,0) 36.11111%,rgba(0,0,0,0) 38.33333%,#fcc 38.33333%,#fcc 42.5%,rgba(0,0,0,0) 42.5%,rgba(0,0,0,0) 44.72222%,#fcc 44.72222%,#fcc 48.88889%,rgba(0,0,0,0) 48.88889%,rgba(0,0,0,0) 51.11111%,#fcc 51.11111%,#fcc 55.27778%,rgba(0,0,0,0) 55.27778%,rgba(0,0,0,0) 57.5%,#fcc 57.5%,#fcc 61.66667%,rgba(0,0,0,0) 61.66667%,rgba(0,0,0,0) 63.88889%,#fcc 63.88889%,#fcc 68.05556%,rgba(0,0,0,0) 68.05556%,rgba(0,0,0,0) 70.27778%,#fcc 70.27778%,#fcc 74.44444%,rgba(0,0,0,0) 74.44444%,rgba(0,0,0,0) 76.66667%,#fcc 76.66667%,#fcc 80.83333%,rgba(0,0,0,0) 80.83333%,rgba(0,0,0,0) 83.05556%,#fcc 83.05556%,#fcc 87.22222%,rgba(0,0,0,0) 87.22222%,rgba(0,0,0,0) 89.44444%,#fcc 89.44444%,#fcc 93.61111%,rgba(0,0,0,0) 93.61111%,rgba(0,0,0,0) 95.83333%,#fcc 95.83333%,#fcc 100%,rgba(0,0,0,0) 100%);background-image:-ms-linear-gradient(left,rgba(0,0,0,0) 0,#fcc 0,#fcc 4.16667%,rgba(0,0,0,0) 4.16667%,rgba(0,0,0,0) 6.38889%,#fcc 6.38889%,#fcc 10.55556%,rgba(0,0,0,0) 10.55556%,rgba(0,0,0,0) 12.77778%,#fcc 12.77778%,#fcc 16.94444%,rgba(0,0,0,0) 16.94444%,rgba(0,0,0,0) 19.16667%,#fcc 19.16667%,#fcc 23.33333%,rgba(0,0,0,0) 23.33333%,rgba(0,0,0,0) 25.55556%,#fcc 25.55556%,#fcc 29.72222%,rgba(0,0,0,0) 29.72222%,rgba(0,0,0,0) 31.94444%,#fcc 31.94444%,#fcc 36.11111%,rgba(0,0,0,0) 36.11111%,rgba(0,0,0,0) 38.33333%,#fcc 38.33333%,#fcc 42.5%,rgba(0,0,0,0) 42.5%,rgba(0,0,0,0) 44.72222%,#fcc 44.72222%,#fcc 48.88889%,rgba(0,0,0,0) 48.88889%,rgba(0,0,0,0) 51.11111%,#fcc 51.11111%,#fcc 55.27778%,rgba(0,0,0,0) 55.27778%,rgba(0,0,0,0) 57.5%,#fcc 57.5%,#fcc 61.66667%,rgba(0,0,0,0) 61.66667%,rgba(0,0,0,0) 63.88889%,#fcc 63.88889%,#fcc 68.05556%,rgba(0,0,0,0) 68.05556%,rgba(0,0,0,0) 70.27778%,#fcc 70.27778%,#fcc 74.44444%,rgba(0,0,0,0) 74.44444%,rgba(0,0,0,0) 76.66667%,#fcc 76.66667%,#fcc 80.83333%,rgba(0,0,0,0) 80.83333%,rgba(0,0,0,0) 83.05556%,#fcc 83.05556%,#fcc 87.22222%,rgba(0,0,0,0) 87.22222%,rgba(0,0,0,0) 89.44444%,#fcc 89.44444%,#fcc 93.61111%,rgba(0,0,0,0) 93.61111%,rgba(0,0,0,0) 95.83333%,#fcc 95.83333%,#fcc 100%,rgba(0,0,0,0) 100%);background-image:-o-linear-gradient(left,rgba(0,0,0,0) 0,#fcc 0,#fcc 4.16667%,rgba(0,0,0,0) 4.16667%,rgba(0,0,0,0) 6.38889%,#fcc 6.38889%,#fcc 10.55556%,rgba(0,0,0,0) 10.55556%,rgba(0,0,0,0) 12.77778%,#fcc 12.77778%,#fcc 16.94444%,rgba(0,0,0,0) 16.94444%,rgba(0,0,0,0) 19.16667%,#fcc 19.16667%,#fcc 23.33333%,rgba(0,0,0,0) 23.33333%,rgba(0,0,0,0) 25.55556%,#fcc 25.55556%,#fcc 29.72222%,rgba(0,0,0,0) 29.72222%,rgba(0,0,0,0) 31.94444%,#fcc 31.94444%,#fcc 36.11111%,rgba(0,0,0,0) 36.11111%,rgba(0,0,0,0) 38.33333%,#fcc 38.33333%,#fcc 42.5%,rgba(0,0,0,0) 42.5%,rgba(0,0,0,0) 44.72222%,#fcc 44.72222%,#fcc 48.88889%,rgba(0,0,0,0) 48.88889%,rgba(0,0,0,0) 51.11111%,#fcc 51.11111%,#fcc 55.27778%,rgba(0,0,0,0) 55.27778%,rgba(0,0,0,0) 57.5%,#fcc 57.5%,#fcc 61.66667%,rgba(0,0,0,0) 61.66667%,rgba(0,0,0,0) 63.88889%,#fcc 63.88889%,#fcc 68.05556%,rgba(0,0,0,0) 68.05556%,rgba(0,0,0,0) 70.27778%,#fcc 70.27778%,#fcc 74.44444%,rgba(0,0,0,0) 74.44444%,rgba(0,0,0,0) 76.66667%,#fcc 76.66667%,#fcc 80.83333%,rgba(0,0,0,0) 80.83333%,rgba(0,0,0,0) 83.05556%,#fcc 83.05556%,#fcc 87.22222%,rgba(0,0,0,0) 87.22222%,rgba(0,0,0,0) 89.44444%,#fcc 89.44444%,#fcc 93.61111%,rgba(0,0,0,0) 93.61111%,rgba(0,0,0,0) 95.83333%,#fcc 95.83333%,#fcc 100%,rgba(0,0,0,0) 100%);background-image:linear-gradient(left,rgba(0,0,0,0) 0,#fcc 0,#fcc 4.16667%,rgba(0,0,0,0) 4.16667%,rgba(0,0,0,0) 6.38889%,#fcc 6.38889%,#fcc 10.55556%,rgba(0,0,0,0) 10.55556%,rgba(0,0,0,0) 12.77778%,#fcc 12.77778%,#fcc 16.94444%,rgba(0,0,0,0) 16.94444%,rgba(0,0,0,0) 19.16667%,#fcc 19.16667%,#fcc 23.33333%,rgba(0,0,0,0) 23.33333%,rgba(0,0,0,0) 25.55556%,#fcc 25.55556%,#fcc 29.72222%,rgba(0,0,0,0) 29.72222%,rgba(0,0,0,0) 31.94444%,#fcc 31.94444%,#fcc 36.11111%,rgba(0,0,0,0) 36.11111%,rgba(0,0,0,0) 38.33333%,#fcc 38.33333%,#fcc 42.5%,rgba(0,0,0,0) 42.5%,rgba(0,0,0,0) 44.72222%,#fcc 44.72222%,#fcc 48.88889%,rgba(0,0,0,0) 48.88889%,rgba(0,0,0,0) 51.11111%,#fcc 51.11111%,#fcc 55.27778%,rgba(0,0,0,0) 55.27778%,rgba(0,0,0,0) 57.5%,#fcc 57.5%,#fcc 61.66667%,rgba(0,0,0,0) 61.66667%,rgba(0,0,0,0) 63.88889%,#fcc 63.88889%,#fcc 68.05556%,rgba(0,0,0,0) 68.05556%,rgba(0,0,0,0) 70.27778%,#fcc 70.27778%,#fcc 74.44444%,rgba(0,0,0,0) 74.44444%,rgba(0,0,0,0) 76.66667%,#fcc 76.66667%,#fcc 80.83333%,rgba(0,0,0,0) 80.83333%,rgba(0,0,0,0) 83.05556%,#fcc 83.05556%,#fcc 87.22222%,rgba(0,0,0,0) 87.22222%,rgba(0,0,0,0) 89.44444%,#fcc 89.44444%,#fcc 93.61111%,rgba(0,0,0,0) 93.61111%,rgba(0,0,0,0) 95.83333%,#fcc 95.83333%,#fcc 100%,rgba(0,0,0,0) 100%)}}label{float:left;clear:both;width:100%;font-size:.9rem;font-weight:600;margin:1em 0 .25em;height:1.5em;overflow:hidden}label .inner-label{position:relative;-webkit-transition:top .5s;-moz-transition:top .5s;transition:top .5s}label.show-message .inner-label{top:-1.5em}label em{font-style:normal;color:#999}label .message.error{color:#ff4747}label .message.success,label .message.warning{color:#4e2b63}input[type=password],input[type=search],input[type=text]{width:100%;font-family:"Proxima Nova";font-size:1rem;border:1px solid #ddd;border-radius:5px;padding:.5em 1em;margin:0 0 .5em;-webkit-transition:border .5s;-moz-transition:border .5s;transition:border .5s;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;-webkit-appearance:none}input[type=password]:focus,input[type=search]:focus,input[type=text]:focus{outline:0;border:1px solid #23b7fb;box-shadow:0 0 3px #23b7fb}input[type=password].short,input[type=search].short,input[type=text].short{max-width:80px}input[type=password].medium,input[type=search].medium,input[type=text].medium{max-width:200px}input[type=password].error,input[type=search].error,input[type=text].error{border-color:#ff4747}input[type=search]{padding-left:32px;background:#fff no-repeat 12px 50%;background-image:url(assets/images/search.png)}@media only screen and (-webkit-min-device-pixel-ratio:1.3),only screen and (min--moz-device-pixel-ratio:1.3),only screen and (-o-min-device-pixel-ratio:1.3/1),only screen and (min-resolution:125dpi),only screen and (min-resolution:1.3dppx){input[type=search]{background-image:url(assets/images/search@2x.png);background-size:18px 18px}}textarea{width:100%;font-family:"Proxima Nova";font-size:1rem;border:1px solid #ddd;border-radius:5px;padding:.5em 1em .3em;margin:0 0 .5em;resize:vertical;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}textarea:focus{outline:0;border:1px solid #23b7fb;box-shadow:0 0 3px #23b7fb}.btn{display:inline-block;clear:both;background:#23b7fb;border:0;margin:.25rem 0;padding:.5em 1em .4em;cursor:pointer;color:#fff;font-family:"Proxima Nova";font-weight:700;font-size:1.25rem;text-align:center;text-decoration:none;text-transform:uppercase;text-shadow:none;border-radius:5px;-webkit-appearance:none}.btn:focus{outline:0;border:1px solid #23b7fb;box-shadow:0 0 3px #23b7fb}.btn:hover{background:#55cafc}.btn:active{outline:0;background:#04a3e7}.btn:active,.btn:hover,.btn:link{color:#fff;text-decoration:none}.btn.secondary{background:#444;font-weight:700;color:#fff;text-transform:uppercase;text-decoration:none;border:0}.btn.secondary:hover{background:#3c3c3c;box-shadow:none}.btn.secondary:active{outline:0;background:#090909;box-shadow:none}.btn.tertiary{background:0 0;color:#444;font-weight:500;text-transform:none;text-decoration:underline;border:0}.btn.tertiary:hover{color:#222;background-color:none;box-shadow:none;text-decoration:underline}.btn.tertiary:active{outline:0;background-color:none;box-shadow:none}.btn.tiny{font-size:.75rem}.btn.small{font-size:1rem}.btn.medium{font-size:1.25rem}.btn.large{font-size:1.75rem}.btn.disabled,.btn[disabled=disabled]{clear:both;background:#ddd;border:1px solid #ddd;margin:0 auto;margin:.25rem;padding:.4rem 1em .25rem;cursor:default;color:#f7f7f7;font-family:"Proxima Nova";font-weight:600;text-align:center;text-decoration:none;text-transform:uppercase;border-radius:5px}.btn.disabled:hover,.btn[disabled=disabled]:hover{background:#ddd;box-shadow:none}.btn.disabled:active,.btn[disabled=disabled]:active{outline:0;background:#ddd;color:#f7f7f7;box-shadow:none}.btn.loading{position:relative;background:#ddd;border:2px solid #ddd;color:#ddd;box-shadow:none;cursor:default;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.btn.loading:hover{background:#ddd}.btn.loading:active{color:#ddd}.btn.loading:before{content:"";display:block;height:1.5em;width:1.5em;margin:0 auto;position:absolute;top:50%;left:50%;margin-top:-.75em;margin-left:-.75em;border:.3em solid #ddd;border-radius:100%;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.btn.loading:after{content:"";display:block;height:1.5em;width:1.5em;margin:0 auto;position:absolute;top:50%;left:50%;margin-top:-.75em;margin-left:-.75em;border:.3em solid #c4c4c4;border-left:.3em solid transparent;border-bottom:.3em solid transparent;border-right:.3em solid transparent;border-radius:100%;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;-webkit-animation:rotation 1.5s infinite linear;-moz-animation:rotation 1.5s infinite linear;animation:rotation 1.5s infinite linear}input[type=submit]{white-space:normal}select{display:block;width:100%;height:34px;border:1px solid #ddd;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}select:focus{outline:0;border:1px solid #23b7fb;box-shadow:0 0 3px #23b7fb}.spinner{height:30px;width:30px;margin:0 auto;position:relative;-webkit-animation:rotation 1.5s infinite linear;-moz-animation:rotation 1.5s infinite linear;animation:rotation 1.5s infinite linear;border:6px solid #ddd;border-radius:100%}.spinner:before{content:"";display:block;position:absolute;left:-6px;top:-6px;height:100%;width:100%;border:6px solid #c4c4c4;border-left:6px solid transparent;border-bottom:6px solid transparent;border-right:6px solid transparent;border-radius:100%}.messages{position:relative;width:100%;background:#4e2b63;text-align:left;margin:0;padding:1rem 4rem 1rem 1.5rem;color:#fff;color:rgba(255,255,255,.7);*zoom:1;max-width:1440px;margin-left:auto;margin-right:auto}.messages:after,.messages:before{content:" ";display:table}.messages:after{clear:both}.messages b,.messages strong{font-weight:800;color:#fff;padding:0 .3rem}.messages a{font-weight:800;color:#fff}.messages.error{background:#ff4747}.messages .message-close-button{position:absolute;right:1.5rem;font-size:2rem;font-weight:700;color:#333;text-decoration:none;top:.4rem;opacity:.7}.messages .message-close-button:hover{opacity:1}.messages .message-close-button.white{color:#fff}figure{padding:2.5% 0}figure img{max-width:100%}figcaption{color:#999;font-size:.8rem;text-align:center;padding:0 1rem 1.5rem}img.bordered{border:5px solid #fff;box-shadow:0 2px 10px 0 rgba(0,0,0,.1);-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.legal{font-size:.75rem;color:#999}.legal a,.legal p,.legal small,.legal strong,.legal sup{font-size:.75rem;color:#999;margin:0}.legal a{color:#999}.legal a:hover{color:#b3b3b3}.legal a:active{color:gray}.pullquote{color:#4e2b63;width:95%;font-size:1.25rem}@media screen and (min-width:768px){.pullquote{width:auto;font-size:1.5rem}}.pullquote cite{color:#ddd}.embed-container{position:relative;padding-bottom:54%;padding-top:30px;overflow:hidden;max-width:100%;height:auto}.embed-container embed,.embed-container iframe,.embed-container object{position:absolute;top:0;left:0;width:100%;height:100%}.full-link{position:absolute;background:url(data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7);top:0;left:0;width:100%;height:100%;z-index:10}.full-link span{display:none}.full-link:hover~.full-link-delegate a{text-decoration:underline}.visually-hidden{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.visually-hidden.focusable:active,.visually-hidden.focusable:focus{clip:auto;height:auto;margin:0;overflow:visible;position:static;width:auto}nav.breadcrumbs{margin:1.65rem;text-align:center}nav.breadcrumbs ul{list-style-type:none;margin-left:auto;padding-left:0}nav.breadcrumbs li{display:inline}nav.breadcrumbs li:after{font-family:"Proxima Nova";content:">";color:#ddd;padding:0 1em}nav.breadcrumbs li:last-of-type:after{display:none}nav.breadcrumbs a{color:#999;text-decoration:none}nav.breadcrumbs a:hover{text-decoration:underline}.tabs{padding:3.25rem 0;font-size:1.1rem;text-align:center;overflow:hidden}.tabs ul{font-size:.9em;margin:1rem;padding:0}.tabs li{display:inline;margin:0 1rem}.tabs a{text-decoration:none;padding:0 .5rem}.tabs a:hover{text-decoration:underline}.tabs a.active,.tabs a.is-active{color:#000;font-weight:700}.tabs.vertical{font-size:1.1em;text-align:left}.tabs.vertical ul{font-size:.9em;margin:.5rem 1rem 1rem}.tabs.vertical li{display:block;margin:.5rem 0}.modal{display:none;position:fixed;top:0;right:0;bottom:0;left:0;background:rgba(0,0,0,.5);z-index:9998;overflow:auto;overflow-y:scroll;-webkit-overflow-scrolling:touch}.modal .modal-content{position:relative;background:#fff;z-index:1050;width:auto;padding:2rem 1.5rem;margin-right:auto;margin-left:auto}.modal .modal-content .modal-close-button{position:absolute;top:.5rem;right:1.5rem;font-size:2rem;font-weight:700;color:#333;opacity:.5;text-decoration:none}.modal .modal-content .modal-close-button:hover{opacity:1}.modal .modal-content .modal-close-button.white{color:#fff}.modal .modal-content .modal-secure-button{position:absolute;top:1rem;left:1rem;text-decoration:none;font-size:16px;font-weight:700;color:#333;opacity:.5;-webkit-transition:opacity .5s;-moz-transition:opacity .5s;transition:opacity .5s}.modal .modal-content .modal-secure-button span{display:none;font-size:.75rem;background:#333;color:#fff;padding:.15rem .5rem .3rem;border-radius:2px;opacity:0;-webkit-transition:opacity .5s;-moz-transition:opacity .5s;transition:opacity .5s}.modal .modal-content .modal-secure-button span:after{content:"";position:absolute;display:block;border-style:solid;border-width:6px;border-color:transparent #333 transparent transparent;top:6px;left:6px}.modal .modal-content .modal-secure-button:hover{opacity:1}.modal .modal-content .modal-secure-button:hover span{display:inline-block;opacity:1}.modal .modal-content h2{margin-bottom:1rem}@media screen and (min-width:768px){.modal .modal-content{box-shadow:0 0 15px rgba(0,0,0,.5);max-width:600px;margin-top:5rem;margin-bottom:5rem;min-height:0}}body.modal-open{overflow:hidden}.carousel-wrapper{position:relative}.carousel-wrapper .slide-wrapper{float:left;width:100%}.carousel-wrapper .next-wrapper,.carousel-wrapper .prev-wrapper{position:absolute;width:25px;height:100%;cursor:pointer}.carousel-wrapper .prev-wrapper{left:-25px}.carousel-wrapper .next-wrapper{right:0}.carousel-wrapper .next-button,.carousel-wrapper .prev-button{position:relative;top:33.3333%;height:0;width:0;border:25px solid #fff;border-radius:25px;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.carousel-wrapper .next-button span.arrow,.carousel-wrapper .prev-button span.arrow{font-size:40px;color:#4e2b63;position:absolute;top:-18px;font-family:icomoon;speak:none;font-style:normal;font-weight:400;font-variant:normal;text-transform:none;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.carousel-wrapper .prev-button{left:0}.carousel-wrapper .prev-button .arrow{left:-22px}.carousel-wrapper .next-button{right:0}.carousel-wrapper .next-button .arrow{right:-24px}.carousel-wrapper figure.slide{display:none;border:6px solid #fff;padding:0}.carousel-wrapper .slide.visible,.carousel-wrapper figure.slide img{display:block}.homepage-sponsors h4{color:#ddd;text-align:center;padding-top:2em}.homepage-sponsors img{margin:0 1rem}.homepage-sponsors p{text-align:center;padding-bottom:1em}.homepage-sponsors .sprite{background-image:url(images/sponsors.png);background-repeat:no-repeat;display:inline-block;background-size:175px 160px;width:50px;height:35px;margin:0 1rem}@media screen and (min-width:768px){.homepage-sponsors .sprite{background-size:350px 320px;width:100px;height:70px}}.homepage-sponsors .sprite-hrb{width:60px;background-position:-2.5px -2.5px}@media screen and (min-width:768px){.homepage-sponsors .sprite-hrb{width:120px}}@media screen and (min-width:768px){.homepage-sponsors .sprite-hrb{background-position:-5px -5px}}.homepage-sponsors .sprite-aeropostale{background-position:-67.5px -2.5px}@media screen and (min-width:768px){.homepage-sponsors .sprite-aeropostale{background-position:-135px -5px}}.homepage-sponsors .sprite-channel-one{background-position:-2.5px -42.5px}@media screen and (min-width:768px){.homepage-sponsors .sprite-channel-one{background-position:-5px -85px}}.homepage-sponsors .sprite-fastweb{background-position:-57.5px -42.5px}@media screen and (min-width:768px){.homepage-sponsors .sprite-fastweb{background-position:-115px -85px}}.homepage-sponsors .sprite-toyota{background-position:-2.5px -82.5px}@media screen and (min-width:768px){.homepage-sponsors .sprite-toyota{background-position:-5px -165px}}.homepage-sponsors .sprite-jetblue{background-position:-57.5px -82.5px}@media screen and (min-width:768px){.homepage-sponsors .sprite-jetblue{background-position:-115px -165px}}.homepage-sponsors .sprite-aarp{background-position:-122.5px -2.5px}@media screen and (min-width:768px){.homepage-sponsors .sprite-aarp{background-position:-245px -5px}}.homepage-sponsors .sprite-sprint{background-position:-112.5px -42.5px}@media screen and (min-width:768px){.homepage-sponsors .sprite-sprint{background-position:-225px -85px}}.homepage-sponsors .sprite-vh1{background-position:-112.5px -82.5px}@media screen and (min-width:768px){.homepage-sponsors .sprite-vh1{background-position:-225px -165px}}.homepage-sponsors .sprite-walmart{background-position:-2.5px -122.5px}@media screen and (min-width:768px){.homepage-sponsors .sprite-walmart{background-position:-5px -245px}}.homepage-sponsors .sprite-amex{background-position:-57.5px -122.5px}@media screen and (min-width:768px){.homepage-sponsors .sprite-amex{background-position:-115px -245px}}
\ No newline at end of file
diff --git a/neue.js b/neue.js
new file mode 100644
index 00000000..91629198
--- /dev/null
+++ b/neue.js
@@ -0,0 +1,1278 @@
+(function () {/**
+ * @license almond 0.2.9 Copyright (c) 2011-2014, The Dojo Foundation All Rights Reserved.
+ * Available via the MIT or new BSD license.
+ * see: http://github.com/jrburke/almond for details
+ */
+//Going sloppy to avoid 'use strict' string cost, but strict practices should
+//be followed.
+/*jslint sloppy: true */
+/*global setTimeout: false */
+
+var requirejs, require, define;
+(function (undef) {
+ var main, req, makeMap, handlers,
+ defined = {},
+ waiting = {},
+ config = {},
+ defining = {},
+ hasOwn = Object.prototype.hasOwnProperty,
+ aps = [].slice,
+ jsSuffixRegExp = /\.js$/;
+
+ function hasProp(obj, prop) {
+ return hasOwn.call(obj, prop);
+ }
+
+ /**
+ * Given a relative module name, like ./something, normalize it to
+ * a real name that can be mapped to a path.
+ * @param {String} name the relative name
+ * @param {String} baseName a real name that the name arg is relative
+ * to.
+ * @returns {String} normalized name
+ */
+ function normalize(name, baseName) {
+ var nameParts, nameSegment, mapValue, foundMap, lastIndex,
+ foundI, foundStarMap, starI, i, j, part,
+ baseParts = baseName && baseName.split("/"),
+ map = config.map,
+ starMap = (map && map['*']) || {};
+
+ //Adjust any relative paths.
+ if (name && name.charAt(0) === ".") {
+ //If have a base name, try to normalize against it,
+ //otherwise, assume it is a top-level require that will
+ //be relative to baseUrl in the end.
+ if (baseName) {
+ //Convert baseName to array, and lop off the last part,
+ //so that . matches that "directory" and not name of the baseName's
+ //module. For instance, baseName of "one/two/three", maps to
+ //"one/two/three.js", but we want the directory, "one/two" for
+ //this normalization.
+ baseParts = baseParts.slice(0, baseParts.length - 1);
+ name = name.split('/');
+ lastIndex = name.length - 1;
+
+ // Node .js allowance:
+ if (config.nodeIdCompat && jsSuffixRegExp.test(name[lastIndex])) {
+ name[lastIndex] = name[lastIndex].replace(jsSuffixRegExp, '');
+ }
+
+ name = baseParts.concat(name);
+
+ //start trimDots
+ for (i = 0; i < name.length; i += 1) {
+ part = name[i];
+ if (part === ".") {
+ name.splice(i, 1);
+ i -= 1;
+ } else if (part === "..") {
+ if (i === 1 && (name[2] === '..' || name[0] === '..')) {
+ //End of the line. Keep at least one non-dot
+ //path segment at the front so it can be mapped
+ //correctly to disk. Otherwise, there is likely
+ //no path mapping for a path starting with '..'.
+ //This can still fail, but catches the most reasonable
+ //uses of ..
+ break;
+ } else if (i > 0) {
+ name.splice(i - 1, 2);
+ i -= 2;
+ }
+ }
+ }
+ //end trimDots
+
+ name = name.join("/");
+ } else if (name.indexOf('./') === 0) {
+ // No baseName, so this is ID is resolved relative
+ // to baseUrl, pull off the leading dot.
+ name = name.substring(2);
+ }
+ }
+
+ //Apply map config if available.
+ if ((baseParts || starMap) && map) {
+ nameParts = name.split('/');
+
+ for (i = nameParts.length; i > 0; i -= 1) {
+ nameSegment = nameParts.slice(0, i).join("/");
+
+ if (baseParts) {
+ //Find the longest baseName segment match in the config.
+ //So, do joins on the biggest to smallest lengths of baseParts.
+ for (j = baseParts.length; j > 0; j -= 1) {
+ mapValue = map[baseParts.slice(0, j).join('/')];
+
+ //baseName segment has config, find if it has one for
+ //this name.
+ if (mapValue) {
+ mapValue = mapValue[nameSegment];
+ if (mapValue) {
+ //Match, update name to the new value.
+ foundMap = mapValue;
+ foundI = i;
+ break;
+ }
+ }
+ }
+ }
+
+ if (foundMap) {
+ break;
+ }
+
+ //Check for a star map match, but just hold on to it,
+ //if there is a shorter segment match later in a matching
+ //config, then favor over this star map.
+ if (!foundStarMap && starMap && starMap[nameSegment]) {
+ foundStarMap = starMap[nameSegment];
+ starI = i;
+ }
+ }
+
+ if (!foundMap && foundStarMap) {
+ foundMap = foundStarMap;
+ foundI = starI;
+ }
+
+ if (foundMap) {
+ nameParts.splice(0, foundI, foundMap);
+ name = nameParts.join('/');
+ }
+ }
+
+ return name;
+ }
+
+ function makeRequire(relName, forceSync) {
+ return function () {
+ //A version of a require function that passes a moduleName
+ //value for items that may need to
+ //look up paths relative to the moduleName
+ return req.apply(undef, aps.call(arguments, 0).concat([relName, forceSync]));
+ };
+ }
+
+ function makeNormalize(relName) {
+ return function (name) {
+ return normalize(name, relName);
+ };
+ }
+
+ function makeLoad(depName) {
+ return function (value) {
+ defined[depName] = value;
+ };
+ }
+
+ function callDep(name) {
+ if (hasProp(waiting, name)) {
+ var args = waiting[name];
+ delete waiting[name];
+ defining[name] = true;
+ main.apply(undef, args);
+ }
+
+ if (!hasProp(defined, name) && !hasProp(defining, name)) {
+ throw new Error('No ' + name);
+ }
+ return defined[name];
+ }
+
+ //Turns a plugin!resource to [plugin, resource]
+ //with the plugin being undefined if the name
+ //did not have a plugin prefix.
+ function splitPrefix(name) {
+ var prefix,
+ index = name ? name.indexOf('!') : -1;
+ if (index > -1) {
+ prefix = name.substring(0, index);
+ name = name.substring(index + 1, name.length);
+ }
+ return [prefix, name];
+ }
+
+ /**
+ * Makes a name map, normalizing the name, and using a plugin
+ * for normalization if necessary. Grabs a ref to plugin
+ * too, as an optimization.
+ */
+ makeMap = function (name, relName) {
+ var plugin,
+ parts = splitPrefix(name),
+ prefix = parts[0];
+
+ name = parts[1];
+
+ if (prefix) {
+ prefix = normalize(prefix, relName);
+ plugin = callDep(prefix);
+ }
+
+ //Normalize according
+ if (prefix) {
+ if (plugin && plugin.normalize) {
+ name = plugin.normalize(name, makeNormalize(relName));
+ } else {
+ name = normalize(name, relName);
+ }
+ } else {
+ name = normalize(name, relName);
+ parts = splitPrefix(name);
+ prefix = parts[0];
+ name = parts[1];
+ if (prefix) {
+ plugin = callDep(prefix);
+ }
+ }
+
+ //Using ridiculous property names for space reasons
+ return {
+ f: prefix ? prefix + '!' + name : name, //fullName
+ n: name,
+ pr: prefix,
+ p: plugin
+ };
+ };
+
+ function makeConfig(name) {
+ return function () {
+ return (config && config.config && config.config[name]) || {};
+ };
+ }
+
+ handlers = {
+ require: function (name) {
+ return makeRequire(name);
+ },
+ exports: function (name) {
+ var e = defined[name];
+ if (typeof e !== 'undefined') {
+ return e;
+ } else {
+ return (defined[name] = {});
+ }
+ },
+ module: function (name) {
+ return {
+ id: name,
+ uri: '',
+ exports: defined[name],
+ config: makeConfig(name)
+ };
+ }
+ };
+
+ main = function (name, deps, callback, relName) {
+ var cjsModule, depName, ret, map, i,
+ args = [],
+ callbackType = typeof callback,
+ usingExports;
+
+ //Use name if no relName
+ relName = relName || name;
+
+ //Call the callback to define the module, if necessary.
+ if (callbackType === 'undefined' || callbackType === 'function') {
+ //Pull out the defined dependencies and pass the ordered
+ //values to the callback.
+ //Default to [require, exports, module] if no deps
+ deps = !deps.length && callback.length ? ['require', 'exports', 'module'] : deps;
+ for (i = 0; i < deps.length; i += 1) {
+ map = makeMap(deps[i], relName);
+ depName = map.f;
+
+ //Fast path CommonJS standard dependencies.
+ if (depName === "require") {
+ args[i] = handlers.require(name);
+ } else if (depName === "exports") {
+ //CommonJS module spec 1.1
+ args[i] = handlers.exports(name);
+ usingExports = true;
+ } else if (depName === "module") {
+ //CommonJS module spec 1.1
+ cjsModule = args[i] = handlers.module(name);
+ } else if (hasProp(defined, depName) ||
+ hasProp(waiting, depName) ||
+ hasProp(defining, depName)) {
+ args[i] = callDep(depName);
+ } else if (map.p) {
+ map.p.load(map.n, makeRequire(relName, true), makeLoad(depName), {});
+ args[i] = defined[depName];
+ } else {
+ throw new Error(name + ' missing ' + depName);
+ }
+ }
+
+ ret = callback ? callback.apply(defined[name], args) : undefined;
+
+ if (name) {
+ //If setting exports via "module" is in play,
+ //favor that over return value and exports. After that,
+ //favor a non-undefined return value over exports use.
+ if (cjsModule && cjsModule.exports !== undef &&
+ cjsModule.exports !== defined[name]) {
+ defined[name] = cjsModule.exports;
+ } else if (ret !== undef || !usingExports) {
+ //Use the return value from the function.
+ defined[name] = ret;
+ }
+ }
+ } else if (name) {
+ //May just be an object definition for the module. Only
+ //worry about defining if have a module name.
+ defined[name] = callback;
+ }
+ };
+
+ requirejs = require = req = function (deps, callback, relName, forceSync, alt) {
+ if (typeof deps === "string") {
+ if (handlers[deps]) {
+ //callback in this case is really relName
+ return handlers[deps](callback);
+ }
+ //Just return the module wanted. In this scenario, the
+ //deps arg is the module name, and second arg (if passed)
+ //is just the relName.
+ //Normalize module name, if it contains . or ..
+ return callDep(makeMap(deps, callback).f);
+ } else if (!deps.splice) {
+ //deps is a config object, not an array.
+ config = deps;
+ if (config.deps) {
+ req(config.deps, config.callback);
+ }
+ if (!callback) {
+ return;
+ }
+
+ if (callback.splice) {
+ //callback is an array, which means it is a dependency list.
+ //Adjust args if there are dependencies
+ deps = callback;
+ callback = relName;
+ relName = null;
+ } else {
+ deps = undef;
+ }
+ }
+
+ //Support require(['a'])
+ callback = callback || function () {};
+
+ //If relName is a function, it is an errback handler,
+ //so remove it.
+ if (typeof relName === 'function') {
+ relName = forceSync;
+ forceSync = alt;
+ }
+
+ //Simulate async callback;
+ if (forceSync) {
+ main(undef, deps, callback, relName);
+ } else {
+ //Using a non-zero value because of concern for what old browsers
+ //do, and latest browsers "upgrade" to 4 if lower value is used:
+ //http://www.whatwg.org/specs/web-apps/current-work/multipage/timers.html#dom-windowtimers-settimeout:
+ //If want a value immediately, use require('id') instead -- something
+ //that works in almond on the global level, but not guaranteed and
+ //unlikely to work in other AMD implementations.
+ setTimeout(function () {
+ main(undef, deps, callback, relName);
+ }, 4);
+ }
+
+ return req;
+ };
+
+ /**
+ * Just drops the config on the floor, but returns req in case
+ * the config return value is used.
+ */
+ req.config = function (cfg) {
+ return req(cfg);
+ };
+
+ /**
+ * Expose module registry for debugging and tooling
+ */
+ requirejs._defined = defined;
+
+ define = function (name, deps, callback) {
+
+ //This module may not have dependencies
+ if (!deps.splice) {
+ //deps is not an array, so probably means
+ //an object literal or factory function for
+ //the value. Adjust args.
+ callback = deps;
+ deps = [];
+ }
+
+ if (!hasProp(defined, name) && !hasProp(waiting, name)) {
+ waiting[name] = [name, deps, callback];
+ }
+ };
+
+ define.amd = {
+ jQuery: true
+ };
+}());
+
+define("bower_components/almond/almond", function(){});
+
+/* Modernizr 2.7.1 (Custom Build) | MIT & BSD
+ * Build: http://modernizr.com/download/#-rgba-cssanimations-cssgradients-geolocation-touch-cssclasses-teststyles-testprop-testallprops-prefixes-domprefixes-load
+ */
+;window.Modernizr=function(a,b,c){function z(a){j.cssText=a}function A(a,b){return z(m.join(a+";")+(b||""))}function B(a,b){return typeof a===b}function C(a,b){return!!~(""+a).indexOf(b)}function D(a,b){for(var d in a){var e=a[d];if(!C(e,"-")&&j[e]!==c)return b=="pfx"?e:!0}return!1}function E(a,b,d){for(var e in a){var f=b[a[e]];if(f!==c)return d===!1?a[e]:B(f,"function")?f.bind(d||b):f}return!1}function F(a,b,c){var d=a.charAt(0).toUpperCase()+a.slice(1),e=(a+" "+o.join(d+" ")+d).split(" ");return B(b,"string")||B(b,"undefined")?D(e,b):(e=(a+" "+p.join(d+" ")+d).split(" "),E(e,b,c))}var d="2.7.1",e={},f=!0,g=b.documentElement,h="modernizr",i=b.createElement(h),j=i.style,k,l={}.toString,m=" -webkit- -moz- -o- -ms- ".split(" "),n="Webkit Moz O ms",o=n.split(" "),p=n.toLowerCase().split(" "),q={},r={},s={},t=[],u=t.slice,v,w=function(a,c,d,e){var f,i,j,k,l=b.createElement("div"),m=b.body,n=m||b.createElement("body");if(parseInt(d,10))while(d--)j=b.createElement("div"),j.id=e?e[d]:h+(d+1),l.appendChild(j);return f=["",'"].join(""),l.id=h,(m?l:n).innerHTML+=f,n.appendChild(l),m||(n.style.background="",n.style.overflow="hidden",k=g.style.overflow,g.style.overflow="hidden",g.appendChild(n)),i=c(l,a),m?l.parentNode.removeChild(l):(n.parentNode.removeChild(n),g.style.overflow=k),!!i},x={}.hasOwnProperty,y;!B(x,"undefined")&&!B(x.call,"undefined")?y=function(a,b){return x.call(a,b)}:y=function(a,b){return b in a&&B(a.constructor.prototype[b],"undefined")},Function.prototype.bind||(Function.prototype.bind=function(b){var c=this;if(typeof c!="function")throw new TypeError;var d=u.call(arguments,1),e=function(){if(this instanceof e){var a=function(){};a.prototype=c.prototype;var f=new a,g=c.apply(f,d.concat(u.call(arguments)));return Object(g)===g?g:f}return c.apply(b,d.concat(u.call(arguments)))};return e}),q.touch=function(){var c;return"ontouchstart"in a||a.DocumentTouch&&b instanceof DocumentTouch?c=!0:w(["@media (",m.join("touch-enabled),("),h,")","{#modernizr{top:9px;position:absolute}}"].join(""),function(a){c=a.offsetTop===9}),c},q.geolocation=function(){return"geolocation"in navigator},q.rgba=function(){return z("background-color:rgba(150,255,150,.5)"),C(j.backgroundColor,"rgba")},q.cssanimations=function(){return F("animationName")},q.cssgradients=function(){var a="background-image:",b="gradient(linear,left top,right bottom,from(#9f9),to(white));",c="linear-gradient(left top,#9f9, white);";return z((a+"-webkit- ".split(" ").join(b+a)+m.join(c+a)).slice(0,-a.length)),C(j.backgroundImage,"gradient")};for(var G in q)y(q,G)&&(v=G.toLowerCase(),e[v]=q[G](),t.push((e[v]?"":"no-")+v));return e.addTest=function(a,b){if(typeof a=="object")for(var d in a)y(a,d)&&e.addTest(d,a[d]);else{a=a.toLowerCase();if(e[a]!==c)return e;b=typeof b=="function"?b():b,typeof f!="undefined"&&f&&(g.className+=" "+(b?"":"no-")+a),e[a]=b}return e},z(""),i=k=null,e._version=d,e._prefixes=m,e._domPrefixes=p,e._cssomPrefixes=o,e.testProp=function(a){return D([a])},e.testAllProps=F,e.testStyles=w,g.className=g.className.replace(/(^|\s)no-js(\s|$)/,"$1$2")+(f?" js "+t.join(" "):""),e}(this,this.document),function(a,b,c){function d(a){return"[object Function]"==o.call(a)}function e(a){return"string"==typeof a}function f(){}function g(a){return!a||"loaded"==a||"complete"==a||"uninitialized"==a}function h(){var a=p.shift();q=1,a?a.t?m(function(){("c"==a.t?B.injectCss:B.injectJs)(a.s,0,a.a,a.x,a.e,1)},0):(a(),h()):q=0}function i(a,c,d,e,f,i,j){function k(b){if(!o&&g(l.readyState)&&(u.r=o=1,!q&&h(),l.onload=l.onreadystatechange=null,b)){"img"!=a&&m(function(){t.removeChild(l)},50);for(var d in y[c])y[c].hasOwnProperty(d)&&y[c][d].onload()}}var j=j||B.errorTimeout,l=b.createElement(a),o=0,r=0,u={t:d,s:c,e:f,a:i,x:j};1===y[c]&&(r=1,y[c]=[]),"object"==a?l.data=c:(l.src=c,l.type=a),l.width=l.height="0",l.onerror=l.onload=l.onreadystatechange=function(){k.call(this,r)},p.splice(e,0,u),"img"!=a&&(r||2===y[c]?(t.insertBefore(l,s?null:n),m(k,j)):y[c].push(l))}function j(a,b,c,d,f){return q=0,b=b||"j",e(a)?i("c"==b?v:u,a,b,this.i++,c,d,f):(p.splice(this.i++,0,a),1==p.length&&h()),this}function k(){var a=B;return a.loader={load:j,i:0},a}var l=b.documentElement,m=a.setTimeout,n=b.getElementsByTagName("script")[0],o={}.toString,p=[],q=0,r="MozAppearance"in l.style,s=r&&!!b.createRange().compareNode,t=s?l:n.parentNode,l=a.opera&&"[object Opera]"==o.call(a.opera),l=!!b.attachEvent&&!l,u=r?"object":l?"script":"img",v=l?"script":u,w=Array.isArray||function(a){return"[object Array]"==o.call(a)},x=[],y={},z={timeout:function(a,b){return b.length&&(a.timeout=b[0]),a}},A,B;B=function(a){function b(a){var a=a.split("!"),b=x.length,c=a.pop(),d=a.length,c={url:c,origUrl:c,prefixes:a},e,f,g;for(f=0;f`.
+ *
+ * Validations can be added later by using the registerValidationFunction
+ * method and referencing the function by name in the `data-validate` attribute.
+ *
+ * Validations give a JSON response to the `done()` callback when they've
+ * finished validating with a boolean `success` and a plain-text `message`
+ * value. (Alternatively, a `suggestion` value can be passed which will
+ * prompt the user "Did you mean {suggestion}?".
+ *
+ * ## Usage Notes:
+ * - Input field must have `.js-validate` class.
+ * - Adding a `data-validate-trigger` attribute to *any* field will trigger
+ * another field's validation on blur (by specifying the ID of the other field).
+ * - Use `data-validate-match` attribute to ID of field to check equality with
+ * "match" validator.
+ * - Use `js-validate-required` attribute to validate field before submission.
+ * - If adding input fields to the DOM after load, run `prepareFormLabels`
+ */
+
+define('neue/validation',[],function() {
+
+
+ var $ = window.jQuery;
+
+ var validationFunctions = [];
+
+ /**
+ * Prepares form label DOM to display validation messages
+ * @param {jQuery} $parent Parent element to find & initialize labels within.
+ */
+ var prepareFormLabels = function($parent) {
+ var $fields = $parent.find(".js-validate");
+
+ $fields.each(function() {
+ var field = $(this);
+ var $fieldLabel = $("label[for='" + field.attr("id") + "']");
+
+ if($fieldLabel.find(".inner-label").length === 0) {
+ var $innerLabel = $("");
+ $innerLabel.append("
" + $fieldLabel.html() + "
");
+ $innerLabel.append("");
+
+ $fieldLabel.html($innerLabel);
+ }
+ });
+ };
+
+
+ /**
+ * Register a new validation function.
+ *
+ * @param {String} name The name function will be referenced by in `data-validate` attribute.
+ * @param {function} fn The validation function. Must accept a string and return `done()` callback.
+ *
+ */
+ var registerValidationFunction = function (name, fn) {
+ if(validationFunctions[name]) {
+ throw "A validation function with that name has already been registered";
+ }
+
+ if(typeof(fn) !== "function") {
+ throw "Must attach a function as second parameter";
+ }
+
+ validationFunctions[name] = fn;
+ };
+
+
+ /**
+ * Validate field with given function.
+ *
+ * @param {jQuery} $field Field to validate contents of.
+ * @param {function} validationFunction Function to validate field contents with
+ * @param {function} [cb=showValidationMessage] Callback function that receives validation result.
+ */
+ function validate($field, validationFunction, cb) {
+ var callback = cb || function($fieldLabel, result) {
+ showValidationMessage($fieldLabel, result);
+ };
+
+ var fieldValue = $field.val();
+ var $fieldLabel = $("label[for='" + $field.attr("id") + "']");
+
+ // Don't validate if we don't have a label to show results in / validation function doesn't exist
+ if( $fieldLabel && hasValidationFunction(validationFunction) ) {
+ if(validationFunction === "match") {
+ // the "match" validation function requires an extra argument
+ var secondFieldValue = $($field.data("validate-match")).val();
+ validationFunctions[validationFunction](fieldValue, secondFieldValue, function(result) {
+ callback($fieldLabel, result);
+ });
+ } else {
+ // once we know this is a valid validation (heh), let's do it.
+ validationFunctions[validationFunction](fieldValue, function(result) {
+ callback($fieldLabel, result);
+ });
+ }
+ }
+ }
+
+ /**
+ * Show validation message in markup.
+ *
+ * @param {jQuery} $fieldLabel Label to display validation message within.
+ * @param {Object} result Object containing `success` and either `message` or `suggestion`
+ */
+ function showValidationMessage($fieldLabel, result) {
+ var $field = $("#" + $fieldLabel.attr("for"));
+ var $fieldMessage = $fieldLabel.find(".message");
+
+ $field.removeClass("success error warning shake");
+ $fieldMessage.removeClass("success error warning");
+
+ if(result.message) {
+ $fieldMessage.text(result.message);
+
+ if(result.success === true) {
+ $field.addClass("success");
+ $fieldMessage.addClass("success");
+ } else {
+ $field.addClass("shake");
+ $field.addClass("error");
+ $fieldMessage.addClass("error");
+ }
+
+ // If Google Analytics is set up, we fire an event to
+ // mark that a suggestion has been made
+ if(typeof(_gaq) !== "undefined" && _gaq !== null) {
+ _gaq.push(["_trackEvent", "Form", "Inline Validation Error", $fieldLabel.attr("for"), null, true]);
+ }
+ }
+
+ if(result.suggestion) {
+ $fieldMessage.html("Did you mean " + result.suggestion.full + "? Fix it!");
+ $field.addClass("warning");
+ $fieldMessage.addClass("warning");
+
+
+ // If Google Analytics is set up, we fire an event to
+ // mark that a suggestion has been made
+ if(typeof(_gaq) !== "undefined" && _gaq !== null) {
+ _gaq.push(["_trackEvent", "Form", "Mailcheck Suggestion", result.suggestion.domain, null, true]);
+ }
+ }
+
+ $fieldLabel.addClass("show-message");
+
+ $(".js-mailcheck-fix").on("click", function(e) {
+ e.preventDefault();
+
+ var $field = $("#" + $(this).closest("label").attr("for"));
+ $field.val($(this).data("suggestion"));
+ $field.trigger("blur");
+
+ // If Google Analytics is set up, we fire an event to
+ // mark that a suggestion has been made
+ if(typeof(_gaq) !== "undefined" && _gaq !== null) {
+ _gaq.push(["_trackEvent", "Form", "Mailcheck Suggestion Used", $(this).text(), null, true]);
+ }
+
+ });
+
+ $field.on("focus", function() {
+ $field.removeClass("warning error success shake");
+ $fieldLabel.removeClass("show-message");
+ });
+
+ return result.success;
+ }
+
+
+ /**
+ * Checks if function exists in the validationFunctions object.
+ *
+ * @param {string} name Name of validation function
+ */
+ function hasValidationFunction(name) {
+ if( name !== "" && validationFunctions[name] && typeof( validationFunctions[name] ) === "function" ) {
+ return true;
+ } else {
+ return false;
+ }
+ }
+
+
+ /**
+ * Validate form on submit.
+ */
+ $("body").on("submit", "form", function(e, isValidated) {
+ if(isValidated === true) {
+ // we're ready to submit the form
+
+ // If Google Analytics is set up, we fire an event to
+ // mark that the form has been successfully submitted
+ if(typeof(_gaq) !== "undefined" && _gaq !== null) {
+ _gaq.push(["_trackEvent", "Form", "Submitted", $(this).attr("id"), null, false]);
+ }
+
+ return true;
+ } else {
+ var $form = $(this);
+ var $validationFields = $form.find(".js-validate").filter("[data-validate-required]");
+ var validatedResults = [];
+
+ $validationFields.each(function() {
+ validate($(this), $(this).data("validate"), function($fieldLabel, result) {
+ if( showValidationMessage($fieldLabel, result) ) {
+ validatedResults.push(true);
+ }
+
+ if(validatedResults.length === $validationFields.length) {
+ // we've validated all that can be validated
+ $form.trigger("submit", true);
+ } else {
+ // some validation errors exist on the form
+
+ // If Google Analytics is set up, we fire an event to
+ // mark that the form had some errors
+ if(typeof(_gaq) !== "undefined" && _gaq !== null) {
+ _gaq.push(["_trackEvent", "Form", "Validation Error on submit", $(this).attr("id"), null, true]);
+ }
+
+ }
+ });
+ });
+
+ if($validationFields.length === 0) {
+ // if there are no fields to be validated, submit!
+ $form.trigger("submit", true);
+ }
+
+ return false; // don't submit form, wait for callback with `true` parameter
+ }
+ });
+
+
+ $(function() {
+ // Prepare the labels on any `.js-validate` fields in the DOM at load
+ var $body = $("body");
+ prepareFormLabels($body);
+
+ // Validate on blur
+ $body.on("blur", ".js-validate", function(e) {
+ e.preventDefault();
+
+ // Don't validate empty form fields, that's just rude.
+ if($(this).val() !== "") {
+ validate($(this), $(this).data("validate"));
+ }
+
+ if( $(this).data("validate-trigger") ) {
+ var $otherField = $($(this).data("validate-trigger"));
+
+ if($otherField.val() !== "") {
+ validate($otherField, $otherField.data("validate"));
+ }
+ }
+ });
+ });
+
+ // Register the "match" validation.
+ registerValidationFunction("match", function(string, secondString, done) {
+ if(string === secondString && string !== "") {
+ return done({
+ success: true,
+ message: "Looks good!"
+ });
+ } else {
+ return done({
+ success: false,
+ message: "That doesn't match."
+ });
+ }
+ });
+
+ return {
+ prepareFormLabels: prepareFormLabels,
+ registerValidationFunction: registerValidationFunction,
+ Functions: validationFunctions
+ };
+});
+
+/**
+ * @module neue/modal
+ * Show/hide modals. Link should have `.js-modal-link` class, and
+ * it's `href` should point to the hash of the modal. By convention, the
+ * modal ID should be prefixed with `modal--` like so:
+ *
+ * @example
+ * //
+ *
+ */
+
+define('neue/modal',['require','neue/validation'],function(require) {
+
+
+ var $ = window.jQuery;
+ var Modernizr = window.Modernizr;
+
+ var Validation = require("neue/validation");
+
+ // We can only have one modal open at a time; we track that here.
+ var modalIsOpen = false;
+
+ // The modal container (including background overlay).
+ var $modal = null;
+
+ // The content of the modal.
+ var $modalContent = null;
+
+ // Reference to current modal source
+ var $reference = null;
+
+ // Return a boolean if modal is open or not
+ var isOpen = function() {
+ return modalIsOpen;
+ };
+
+ // Click handler for opening a new modal
+ var _openHandler = function(event) {
+ event.preventDefault();
+ var href = "";
+
+ if( $(this).data("cached-modal") ) {
+ // Preferred method: We load the modal specified in the `data-cached-modal` attribute.
+ // This allows `href` to act as a backup if JS is disabled. For example,
+ // `Click`
+ // would open a modal with the contents of ``.
+ href = $($(this).data("cached-modal"));
+ } else if ( event.target.hash.charAt(0) === "#" ) {
+ // We find the modal based on the ID in the link"s `href`. For example,
+ // `Click me` would open
+ // ``.
+ href = $(event.target.hash);
+ } else {
+ // @TODO: We should handle AJAX loading things in.
+ }
+
+ open(href);
+ };
+
+ /**
+ * Open a new modal
+ * @param {jQuery} el Element that will be placed inside the modal.
+ * @param {boolean} [animated=true] Use animation for opening the modal.
+ */
+ var open = function($el, animated) {
+ // Default arguments
+ animated = typeof animated !== "undefined" ? animated : true;
+
+ var id = $el.attr("id");
+ if(id) {
+ // Save ID of modal for future reference
+ $reference = "#" + id;
+
+ // Set URL hash in the browser
+ window.location.hash = "#" + id;
+ } else {
+ $reference = "";
+ }
+
+ // If Google Analytics is set up, we fire an event to track that a
+ // modal has been opened.
+ if(typeof(_gaq) !== "undefined" && _gaq !== null) {
+ _gaq.push(["_trackEvent", "Modal", "Open", $reference, null, true]);
+ }
+
+ if( !modalIsOpen ) {
+ // create modal in DOM
+ $modal = $("");
+ $modalContent = $("");
+ $modal.append($modalContent);
+ $modalContent.html( $el.html() );
+
+ // set up overlay and show modal
+ $("body").addClass("modal-open");
+ $("body").append($modal);
+
+ if(animated && Modernizr.cssanimations) {
+ $modal.addClass("fade-in");
+ $modalContent.addClass("fade-in-up");
+ $modalContent.addClass( $el.attr("class") );
+ }
+
+ $modal.show();
+
+ // Bind events to close Modal
+ $modal.on("click", ".js-close-modal", _closeHandler);
+ $modal.on("click", _closeHandler);
+
+ modalIsOpen = true;
+
+ // **This fixes an issue with `position:fixed` and the virtual keyboard
+ // on Mobile Safari.** Since this is a browser bug, we're forced to use
+ // browser-detection here, and should look into removing this as soon
+ // as this is fixed in the future. Yes, it is gross.
+ if( /iPhone|iPad|iPod/i.test(window.navigator.userAgent) ) {
+ setTimeout(function () {
+ $modal.css({ "position": "absolute", "overflow": "visible", "height": $(document).height() + "px" });
+ $modalContent.css({ "margin-top": $(document).scrollTop() + "px" });
+ }, 0);
+ }
+ } else {
+ // modal is already open, so just replace current content
+ $modalContent.html( $($el).html() );
+ }
+
+ // We'll set up form validation markup for anything in the modal (since it isn't in the DOM on load)
+ // @TODO: Should be providing an event that other modules can hook into (so the Validation Module would take care of this).
+ Validation.prepareFormLabels($modalContent);
+
+ // If Drupal has some messages on the screen, move them inside the modal
+ // @TODO: We need a better solution for this.
+ var $messages = $(".messages");
+ var $messagesClone = $modalContent.find(".js-messages-clone");
+ if($messagesClone && $messages.length ) {
+ $messagesClone.addClass("modal-messages");
+ $messagesClone.html( $messages[0].outerHTML );
+ }
+ };
+
+ var _closeHandler = function(event) {
+ // Don't let the event bubble.
+ if(event.target !== this) {
+ return;
+ }
+
+ // Only close if this modal has a close button
+ if($modalContent.find(".js-close-modal").length === 0) {
+ return;
+ }
+
+ // Override default link behavior.
+ event.preventDefault();
+
+ close();
+ };
+
+ /**
+ * Close the active modal.
+ * @param {boolean} [animated=true] Use animation for closing the modal.
+ */
+ var close = function(animated) {
+ // Default arguments
+ animated = typeof animated !== "undefined" ? animated : true;
+
+ // Remove URL hash for modal from browser
+ if(window.location.hash === $reference) {
+ window.location.hash = "_";
+ }
+
+ // If Google Analytics is set up, we fire an event to track that a
+ // modal has been closed.
+ if(typeof(_gaq) !== "undefined" && _gaq !== null) {
+ _gaq.push(["_trackEvent", "Modal", "Close", $reference, null, true]);
+ }
+
+ if(animated && Modernizr.cssanimations) {
+ $modalContent.addClass("fade-out-down");
+ $modal.addClass("fade-out");
+
+ $("body").removeClass("modal-open");
+
+ $modal.one("webkitAnimationEnd oanimationend msAnimationEnd animationend", function() {
+ $modal.remove();
+ modalIsOpen = false;
+ });
+ } else {
+ $("body").removeClass("modal-open");
+ $modal.remove();
+ modalIsOpen = false;
+ }
+ };
+
+ $(document).ready(function() {
+ // Attach modal handler to `.js-modal-link` elements on click
+ $("body").on("click", ".js-modal-link", _openHandler);
+
+ //If there's a hash in the URL, let's check if its a modal and load it
+ var hash = window.location.hash;
+ if(hash && $(hash) && $(hash).attr("type") === "text/cached-modal" ) {
+ open($(hash), false);
+ }
+
+ // Close modal events are bound on modal initialization.
+ });
+
+
+ // Return public API for controlling modals
+ return {
+ isOpen: isOpen,
+ open: open,
+ close: close
+ };
+
+});
+
+/**
+ * @module neue/messages
+ * System Messages. Will create a close ("X") button
+ * for users with JavaScript enabled that uses the following
+ * syntax to hook into this function:
+ *
+ * @example
+ * //
a",n=d.getElementsByTagName("*")||[],r=d.getElementsByTagName("a")[0],!r||!r.style||!n.length)return t;s=a.createElement("select"),u=s.appendChild(a.createElement("option")),o=d.getElementsByTagName("input")[0],r.style.cssText="top:1px;float:left;opacity:.5",t.getSetAttribute="t"!==d.className,t.leadingWhitespace=3===d.firstChild.nodeType,t.tbody=!d.getElementsByTagName("tbody").length,t.htmlSerialize=!!d.getElementsByTagName("link").length,t.style=/top/.test(r.getAttribute("style")),t.hrefNormalized="/a"===r.getAttribute("href"),t.opacity=/^0.5/.test(r.style.opacity),t.cssFloat=!!r.style.cssFloat,t.checkOn=!!o.value,t.optSelected=u.selected,t.enctype=!!a.createElement("form").enctype,t.html5Clone="<:nav>"!==a.createElement("nav").cloneNode(!0).outerHTML,t.inlineBlockNeedsLayout=!1,t.shrinkWrapBlocks=!1,t.pixelPosition=!1,t.deleteExpando=!0,t.noCloneEvent=!0,t.reliableMarginRight=!0,t.boxSizingReliable=!0,o.checked=!0,t.noCloneChecked=o.cloneNode(!0).checked,s.disabled=!0,t.optDisabled=!u.disabled;try{delete d.test}catch(h){t.deleteExpando=!1}o=a.createElement("input"),o.setAttribute("value",""),t.input=""===o.getAttribute("value"),o.value="t",o.setAttribute("type","radio"),t.radioValue="t"===o.value,o.setAttribute("checked","t"),o.setAttribute("name","t"),l=a.createDocumentFragment(),l.appendChild(o),t.appendChecked=o.checked,t.checkClone=l.cloneNode(!0).cloneNode(!0).lastChild.checked,d.attachEvent&&(d.attachEvent("onclick",function(){t.noCloneEvent=!1}),d.cloneNode(!0).click());for(f in{submit:!0,change:!0,focusin:!0})d.setAttribute(c="on"+f,"t"),t[f+"Bubbles"]=c in e||d.attributes[c].expando===!1;d.style.backgroundClip="content-box",d.cloneNode(!0).style.backgroundClip="",t.clearCloneStyle="content-box"===d.style.backgroundClip;for(f in x(t))break;return t.ownLast="0"!==f,x(function(){var n,r,o,s="padding:0;margin:0;border:0;display:block;box-sizing:content-box;-moz-box-sizing:content-box;-webkit-box-sizing:content-box;",l=a.getElementsByTagName("body")[0];l&&(n=a.createElement("div"),n.style.cssText="border:0;width:0;height:0;position:absolute;top:0;left:-9999px;margin-top:1px",l.appendChild(n).appendChild(d),d.innerHTML="
Far far away, behind the word mountains, far from the countries Vokalia and Consonantia, there live the blind texts. Separated they live in Bookmarksgrove right at the coast of the Semantics, a large language ocean.
-
Knight Rider, a shadowy flight into the dangerous world of a man who does not exist. Michael Knight, a young loner on a crusade to champion the cause of the innocent, the helpless in a world of criminals who operate above the law.
-
-
Subheading
-
Ten years ago a crack commando unit was sent to prison by a military court for a crime they didn't commit. These men promptly escaped from a maximum security stockade to the Los Angeles underground. Today, still wanted by the government, they survive as soldiers of fortune. If you have a problem and no one else can help, and if you can find them, maybe you can hire the A-team.
-
Ten years ago a crack commando unit was sent to prison by a military court for a crime they didn't commit.
-
Hong Kong Phooey, number one super guy. Hong Kong Phooey, quicker than the human eye. He's got style, a groovy style, and a car that just won't stop. When the going gets tough, he's really rough, with a Hong Kong Phooey chop (Hi-Ya!). Hong Kong Phooey, number one super guy. Hong Kong Phooey, quicker than the human eye. Hong Kong Phooey, he's fan-riffic!
-
-
-
-
One for all and all for one, Muskehounds are always ready. One for all and all for one, helping everybody. One for all and all for one, it's a pretty story. Sharing everything with fun, that's the way to be. One for all and all for one, Muskehounds are always ready. One for all and all for one, helping everybody. One for all and all for one, can sound pretty corny. If you've got a problem chum, think how it could be.
-
-
80 days around the world, we'll find a pot of gold just sitting where the rainbow's ending. Time - we'll fight against the time, and we'll fly on the white wings of the wind. 80 days around the world, no we won't say a word before the ship is really back. Round, round, all around the world. Round, all around the world. Round, all around the world. Round, all around the world.
-
Mutley, you snickering, floppy eared hound. When courage is needed, you're never around. Those medals you wear on your moth-eaten chest should be there for bungling at which you are best. So, stop that pigeon, stop that pigeon, stop that pigeon, stop that pigeon, stop that pigeon, stop that pigeon, stop that pigeon. Howwww! Nab him, jab him, tab him, grab him, stop that pigeon now.
Join 2.5 million young people. Any cause, anytime, anywhere. *mic drop*
-
-
DoSomething.org makes the world suck less. The largest org for young people and social change, our 2.5 million members tackle campaigns that impact every cause, from poverty to violence to the environment to literally everything else. Any cause, anytime, anywhere. *mic drop*
This is Neue, our interface framework and pattern library. Neue is made up of four pillars: typography, a fluid grid-based layout system, re-usable interface patterns, and animations. It's a strong foundation for building beautiful interfaces.
-
-
-
-
Fonts & Colors
-
-
Fonts
-
We use Proxima Nova for all of our text and headings.
-
- Lorem ipsum dolor sit amet. ($font-proxima-nova, 400)
-
-
-
- Lorem ipsum dolor sit amet. ($font-proxima-nova, 600)
-
-
-
- Lorem ipsum dolor sit amet. ($font-proxima-nova, 700)
-
-
-
Brand Colors
-
- Blue($blue)
- …
-
-
-
- Purple($purple)
- …
-
-
-
- Yellow($yellow)
- …
-
-
-
Gray Tones
-
- Off Black($off-black)
- …
-
-
-
- Dark Gray($dark-gray)
- …
-
-
-
- Medium Gray($med-gray)
- …
-
-
-
- Light Gray($light-gray)
- …
-
-
-
System Colors
-
They're not part of our brand, but we use these guys in special cases.
-
- Red($red)
- …
-
-
-
-
Tip: Click on a swatch to switch between color formats.
-
-
-
-
-
Typography
- <% styleguide_block '1.1 - Headings' do %>
-
Heading
-
Lorem ipsum dolor sit amet.
-
-
Heading
-
Lorem ipsum dolor sit amet.
-
-
Heading
-
Lorem ipsum dolor sit amet.
-
-
Heading
-
Lorem ipsum dolor sit amet.
- <% end %>
-
- <% styleguide_block '1.2.1 - Unordered Lists' do %>
-
-
Norway
-
Sweden
-
Finland
-
- <% end %>
-
- <% styleguide_block '1.2.2 - Ordered Lists' do %>
-
-
Norway
-
Sweden
-
Finland
-
- <% end %>
-
- <% styleguide_block '1.3 - Inline Elements' do %>
-
Lorem italic dolor important amet.
- This is some bold text, a link, and a secondary link.
- <% end %>
-
-
-
-
Layout
-
-
We use Bourbon Neat to build our interface on a fluid 16-column grid. See the documentation for implementation details. See _grid-settings.scss for grid settings and breakpoints.
-
Drag the Grid Bookmarklet to your bookmarks toolbar and click to toggle a grid overlay on any Neue-powered DoSomething.org website. Or just click to try it out on this page!
-
-
-
-
Patterns
-
-
-
4.1 Forms
-
- <% styleguide_block '4.1.1 - Form Labels' do %>
-
-
-
- <% end %>
-
- <% styleguide_block '4.1.2 - Text Input Fields' do %>
-
-
- <% end %>
-
- <% styleguide_block '4.1.3 - Search Fields' do %>
-
- <% end %>
-
- <% styleguide_block '4.1.4 - Text Area Fields' do %>
-
- <% end %>
-
- <% styleguide_block '4.1.5 - Buttons' do %>
- Example Button
- <% end %>
-
- <% styleguide_block '4.1.6 - Select Boxes' do %>
-
- <% end %>
-
- <% styleguide_block '4.1.7 - Loading Spinner' do %>
-
- <% end %>
-
- <% styleguide_block '4.1.8 - Status Banners' do %>
-
There's something I need to tell you.
- <% end %>
-
-
-
-
4.2 Inline
-
- <% styleguide_block '4.2.1 - Figures' do %>
-
- <% end %>
-
- <% styleguide_block '4.2.2 - Bordered image style' do %>
-
- <% end %>
-
- <% styleguide_block '4.2.3 - Legal Text' do %>
-
By clicking submit, you agree to sell your soul to the lorem ipsum dolor sit amet.
- <% end %>
-
- <% styleguide_block '4.2.4 - Pullquote' do %>
-
Lorem ipsum dolor sit aquote.
- <% end %>
-
-
-
-
4.3 Navigation
-
- <% styleguide_block '4.3.1 - Breadcrumbs' do %>
-
- <% end %>
-
- <% styleguide_block '4.3.2 - Tabs' do %>
-
- <% end %>
-
- <% styleguide_block '4.5.1 - Full Container Link' do %>
- Do This
- <% end %>
-
-
-
-
-
-
Animation
-
We use animation to add a sense of playfulness and delight to our interface. Animation also has a functional aspect – helping to build a user's mental model of an interface by indicating
Neue includes some helper scripts for interactivity. While any application-specific logic should live within its own codebase, you can find the logic that powers some of our reusable patterns here:
-
-
jump-scroll.js: Applies a smooth-scroll animation on links with the .js-jumpscroll class.