From f731b84eb28e5a687a40ab8c47f41fc7c72b659e Mon Sep 17 00:00:00 2001
From: Bryan Clark <clarkbw@gmail.com>
Date: Tue, 30 Aug 2011 13:48:41 -0700
Subject: [PATCH] initial push toward the new design.  this is only for the
 site and does not include the popup.  serveral places are broken and marked
 with a XXX for fixing.

---
 browserid/app.js                      |  16 +-
 browserid/static/css/github.css       | 129 ----
 browserid/static/css/m.css            | 210 ++++++
 browserid/static/css/style.css        | 890 +++++++++++++++++++-------
 browserid/static/i/bg.png             | Bin 0 -> 6998 bytes
 browserid/static/i/blink.gif          | Bin 0 -> 123 bytes
 browserid/static/i/browserid_logo.png | Bin 3726 -> 0 bytes
 browserid/static/i/card.png           | Bin 0 -> 5906 bytes
 browserid/static/i/count.png          | Bin 0 -> 868 bytes
 browserid/static/i/developers.png     | Bin 889 -> 0 bytes
 browserid/static/i/hint.png           | Bin 0 -> 9534 bytes
 browserid/static/i/icon.png           | Bin 0 -> 2401 bytes
 browserid/static/i/id.png             | Bin 1027 -> 0 bytes
 browserid/static/i/labs-logo.png      | Bin 1158 -> 0 bytes
 browserid/static/i/people.png         | Bin 1083 -> 0 bytes
 browserid/static/i/slit.png           | Bin 0 -> 327 bytes
 browserid/static/js/browserid.js      | 163 +++--
 browserid/views/about.ejs             |  48 ++
 browserid/views/developers.ejs        | 105 ---
 browserid/views/index.ejs             |  66 +-
 browserid/views/layout.ejs            |  78 +--
 browserid/views/manage.ejs            |  10 -
 browserid/views/primaries.ejs         |  12 -
 browserid/views/privacy.ejs           |   6 +-
 browserid/views/prove.ejs             |  14 +-
 browserid/views/signin.ejs            |  38 ++
 browserid/views/signup.ejs            |  34 +
 browserid/views/tos.ejs               |   7 +-
 browserid/views/users.ejs             |   8 -
 29 files changed, 1248 insertions(+), 586 deletions(-)
 delete mode 100644 browserid/static/css/github.css
 create mode 100644 browserid/static/css/m.css
 create mode 100644 browserid/static/i/bg.png
 create mode 100644 browserid/static/i/blink.gif
 delete mode 100644 browserid/static/i/browserid_logo.png
 create mode 100644 browserid/static/i/card.png
 create mode 100644 browserid/static/i/count.png
 delete mode 100644 browserid/static/i/developers.png
 create mode 100644 browserid/static/i/hint.png
 create mode 100644 browserid/static/i/icon.png
 delete mode 100644 browserid/static/i/id.png
 delete mode 100644 browserid/static/i/labs-logo.png
 delete mode 100644 browserid/static/i/people.png
 create mode 100644 browserid/static/i/slit.png
 create mode 100644 browserid/views/about.ejs
 delete mode 100644 browserid/views/developers.ejs
 delete mode 100644 browserid/views/manage.ejs
 delete mode 100644 browserid/views/primaries.ejs
 create mode 100644 browserid/views/signin.ejs
 create mode 100644 browserid/views/signup.ejs
 delete mode 100644 browserid/views/users.ejs

diff --git a/browserid/app.js b/browserid/app.js
index d15177098..d712890dd 100644
--- a/browserid/app.js
+++ b/browserid/app.js
@@ -93,20 +93,16 @@ function router(app) {
     res.render('prove.ejs', {title: 'Verify Email Address', fullpage: false});
   });
 
-  app.get(/^\/users(\.html)?$/, function(req,res) {
-    res.render('users.ejs', {title: 'for Users', fullpage: false});
+  app.get(/^\/signup(\.html)?$/, function(req, res) {
+    res.render('signup.ejs', {title: 'Sign Up', fullpage: false});
   });
 
-  app.get(/^\/developers(\.html)?$/, function(req,res) {
-    res.render('developers.ejs', {title: 'for Developers', fullpage: false});
+  app.get(/^\/signin(\.html)?$/, function(req, res) {
+    res.render('signin.ejs', {title: 'Sign In', fullpage: false});
   });
 
-  app.get(/^\/primaries(\.html)?$/, function(req,res) {
-    res.render('primaries.ejs', {title: 'for Primary Authorities', fullpage: false});
-  });
-
-  app.get(/^\/manage(\.html)?$/, function(req,res) {
-    res.render('manage.ejs', {title: 'My Account', fullpage: false});
+  app.get(/^\/about(\.html)?$/, function(req, res) {
+    res.render('about.ejs', {title: 'About', fullpage: false});
   });
 
   app.get(/^\/tos(\.html)?$/, function(req, res) {
diff --git a/browserid/static/css/github.css b/browserid/static/css/github.css
deleted file mode 100644
index 52bad17aa..000000000
--- a/browserid/static/css/github.css
+++ /dev/null
@@ -1,129 +0,0 @@
-/*
-
-github.com style (c) Vasily Polovnyov <vast@whiteants.net>
-
-*/
-
-pre code {
-  display: block; padding: 0.5em;
-  color: #000;
-  background: #f1f1f1;
-}
-
-pre .comment,
-pre .template_comment,
-pre .diff .header,
-pre .javadoc {
-  color: #998;
-  font-style: italic
-}
-
-pre .keyword,
-pre .css .rule .keyword,
-pre .winutils,
-pre .javascript .title,
-pre .lisp .title,
-pre .subst {
-  color: #000;
-  font-weight: bold
-}
-
-pre .number,
-pre .hexcolor {
-  color: #40a070
-}
-
-pre .string,
-pre .tag .value,
-pre .phpdoc,
-pre .tex .formula {
-  color: #d14
-}
-
-pre .title,
-pre .id {
-  color: #900;
-  font-weight: bold
-}
-
-pre .javascript .title,
-pre .lisp .title,
-pre .subst {
-  font-weight: normal
-}
-
-pre .class .title,
-pre .haskell .label,
-pre .tex .command {
-  color: #458;
-  font-weight: bold
-}
-
-pre .tag,
-pre .tag .title,
-pre .rules .property,
-pre .django .tag .keyword {
-  color: #000080;
-  font-weight: normal
-}
-
-pre .attribute,
-pre .variable,
-pre .instancevar,
-pre .lisp .body {
-  color: #008080
-}
-
-pre .regexp {
-  color: #009926
-}
-
-pre .class {
-  color: #458;
-  font-weight: bold
-}
-
-pre .symbol,
-pre .ruby .symbol .string,
-pre .ruby .symbol .keyword,
-pre .ruby .symbol .keymethods,
-pre .lisp .keyword,
-pre .tex .special,
-pre .input_number {
-  color: #990073
-}
-
-pre .builtin,
-pre .built_in,
-pre .lisp .title {
-  color: #0086b3
-}
-
-pre .preprocessor,
-pre .pi,
-pre .doctype,
-pre .shebang,
-pre .cdata {
-  color: #999;
-  font-weight: bold
-}
-
-pre .deletion {
-  background: #fdd
-}
-
-pre .addition {
-  background: #dfd
-}
-
-pre .diff .change {
-  background: #0086b3
-}
-
-pre .chunk {
-  color: #aaa
-}
-
-pre .tex .formula {
-  opacity: 0.5;
-}
diff --git a/browserid/static/css/m.css b/browserid/static/css/m.css
new file mode 100644
index 000000000..a4b9b6b93
--- /dev/null
+++ b/browserid/static/css/m.css
@@ -0,0 +1,210 @@
+body #wrapper {
+  width: 320px;
+}
+
+body hr {
+  width: 300px;
+}
+
+body #content {
+  padding: 122px 0 84px;
+  margin: 0 10px;
+}
+
+body #header {
+  padding: 20px 30px;
+}
+
+body #header ul.nav {
+  float: left;
+  width: 260px;
+  margin-top: 10px;
+}
+
+body #header ul.nav li {
+  margin: 0 1px 0 0;
+  text-align: center;
+}
+
+body #header ul.nav li:nth-child(1) {
+  width: 102px;
+}
+
+body #header ul.nav li:nth-child(2) {
+  width: 91px;
+}
+
+body #header ul.nav li:nth-child(3) {
+  width: 65px;
+  margin: 0;
+}
+
+body #header ul.nav li a {
+  padding: 3px 0;
+  background-color: #549FDC;
+  color: #fff;
+  display: block;
+  
+  -webkit-border-radius: 3px;
+     -moz-border-radius: 3px;
+       -o-border-radius: 3px;
+          border-radius: 3px;
+}
+
+body #header ul.nav li:nth-child(1) a {
+  
+  -webkit-border-radius: 3px 0 0 3px;
+     -moz-border-radius: 3px 0 0 3px;
+       -o-border-radius: 3px 0 0 3px;
+          border-radius: 3px 0 0 3px;
+}
+
+body #header ul.nav li:nth-child(2) a {
+  -webkit-border-radius: 0px;
+     -moz-border-radius: 0px;
+       -o-border-radius: 0px;
+          border-radius: 0px;
+}
+
+body #header ul.nav li:nth-child(3) a {
+  -webkit-border-radius: 0 3px 3px 0;
+     -moz-border-radius: 0 3px 3px 0;
+       -o-border-radius: 0 3px 3px 0;
+          border-radius: 0 3px 3px 0;
+}
+
+body #header ul.nav li a.signIn {
+  background-color: rgba(0,0,0,0.1);
+  color: #222;
+}
+
+body #header ul.nav li a:hover {
+  text-decoration: none;
+}
+
+body #signUp {
+  width: 320px;
+  padding: 0 10px;
+  font-size: 16px;
+  line-height: 21px;
+  margin: 122px 0 122px;
+}
+
+body #signUp p {
+  padding: 0 20px;
+}
+
+body #card {
+  width: 260px;
+  height: 80px;
+  background-position: center top;
+  background-size: 50%;
+  position: relative;
+  margin: 0 20px 20px;
+  top: auto;
+  
+  -webkit-transition: none;
+     -moz-transition: none;
+       -o-transition: none;
+          transition: none;
+}
+
+body button.create {
+  font-size: 14px;
+  height: 28px;
+  padding: 0 12px;
+}
+
+body #card.insert {
+  background-position: center top;
+}
+
+body #card img {
+  display: none;
+}
+
+body #hint,
+body #status {
+  display: none;
+}
+
+body #legal {
+  padding: 20px;
+  text-align: left;
+} 
+
+body #legal li {
+  list-style-position: inside;
+}
+
+body #about {
+  padding: 0;
+}
+
+body #about .video,
+body #about .video img {
+  width: 300px;
+  height: auto;
+}
+
+body .row {
+  padding: 20px 20px 0;
+  margin: 0;
+}
+
+body .row div {
+  width: auto;
+  height: auto;
+  vertical-align: inherit;
+  display: block;
+  padding: 20px 0;
+}
+
+body .row img {
+  float: none;
+  width: 260px;
+  height: auto;
+}
+
+body .row p {
+  float: none;
+  display: block;
+  width: 260px;
+  text-indent: -33px;
+  padding-left: 33px;
+}
+
+body #signUpFormWrap {
+  margin: 122px 10px 122px;
+}
+
+body #manage {
+  padding: 20px;
+  text-align: left;
+}
+
+body #manage .edit {
+  margin: 36px 0 14px;
+}
+
+body #manage #emails {
+  margin: 0 0 36px;
+}
+
+body #emails .email, 
+body #emails .activity {
+  display: block;
+  width: 260px;
+}
+
+body #emails .activity span {
+  float: left;
+}
+
+body #disclaimer {
+  text-align: left;
+}
+
+body #footer {
+  padding: 20px 30px;
+}
diff --git a/browserid/static/css/style.css b/browserid/static/css/style.css
index 09e35763d..6cd4cf166 100644
--- a/browserid/static/css/style.css
+++ b/browserid/static/css/style.css
@@ -1,320 +1,774 @@
-@font-face {
-  font-family: 'Shadows Into Light';
-  font-style: normal;
+@import url("m.css") screen and (max-width: 640px);
+
+* {
+  margin: 0;
+  padding: 0;
+
+  -webkit-box-sizing: border-box;
+     -moz-box-sizing: border-box;
+       -o-box-sizing: border-box;
+          box-sizing: border-box;
+}
+
+html, body {
+  height: 100%;
+}
+
+body {
+  font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif;
+  font-size: 13px;
+  line-height: 21px;
+  background-image: url('/i/bg.png');
+  overflow-y: scroll;
+}
+
+.sans {
+  font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif;
+}
+
+.serif {
+  font-family: 'Droid Serif', Georgia, serif;
+}
+
+.mono {
+  font-family: 'Monaco', monospace;
+}
+
+a {
+  color: #222;
+  text-decoration: none;
+}
+
+a:hover {
+  text-decoration: underline;
+}
+
+p:last-child {
+  margin-bottom: 0 !important;
+}
+
+button::-moz-focus-inner {
+  padding: 0;
+  border: 0
+}
+
+hr {
+  height: 1px;
+  border: none;
+  background-color: #eee;
+  width: 700px;
+}
+
+.right {
+  text-align: right;
+}
+
+#wrapper {
+  width: 700px;
+  min-height: 100%;
+  margin: 0 auto;
+  position: relative;
+}
+
+#content {
+  padding: 84px 0;
+}
+
+#about {
+  font-family: 'Droid Serif', Georgia, serif;
+  font-size: 14px;
+  line-height: 21px;
+  color: #444;
+
+  text-shadow: 1px 1px 0 rgba(255,255,255,0.5);
+  padding: 0 0 50px 0;
+  background-color: #fff;
+
+  -webkit-box-shadow: 0 1px 2px rgba(0, 0, 0, 0.25);
+     -moz-box-shadow: 0 1px 2px rgba(0, 0, 0, 0.25);
+       -o-box-shadow: 0 1px 2px rgba(0, 0, 0, 0.25);
+          box-shadow: 0 1px 2px rgba(0, 0, 0, 0.25);
+
+  -webkit-border-radius: 0 0 5px 5px;
+     -moz-border-radius: 0 0 5px 5px;
+       -o-border-radius: 0 0 5px 5px;
+          border-radius: 0 0 5px 5px;
+}
+
+.video {
+  margin: 0 0 25px 0;
+  width: 700px;
+}
+
+.video img, .video iframe {
+  display: block;
+}
+
+.row {
+  margin: 0 0 25px 0;
+  padding: 25px 50px 0 50px;
+  position: relative;
+}
+
+.row:last-child {
+  margin: 0;
+}
+
+.row h2 {
+  font-size: 21px;
   font-weight: normal;
-  src: local('Shadows Into Light'), local('ShadowsIntoLight'), url('sil.ttf') format('truetype');
+  color: #222;
+  line-height: 32px;
+  display: inline-block;
+}
+
+.row div {
+  height: 140px;
+  width: 500px;
+  padding: 0 0 0 20px;
+  display: table-cell;
+  vertical-align: middle;
+}
+
+.row p {
+  width: 380px;
+  text-shadow: 1px 1px 0 rgba(255,255,255,0.5);
+  float: left;
+}
+
+.row img {
+  float: left;
+}
+
+.row button {
+  float: right;
+  display: inline-block;
+}
+
+.steps {
+  width: 24px;
+  height: 24px;
+  display: inline-block;
+  vertical-align: bottom;
+  margin-right: 5px;
+  background-image: url('/i/count.png');
+}
+
+.one .steps {
+  background-position: left 0;
+}
+
+.two .steps {
+  background-position: left -24px;
+}
+
+.three .steps {
+  background-position: left -48px;
+}
+
+#legal {
+  padding: 75px 125px;
+}
+
+#manage {
+  padding: 75px;
+}
+
+#legal, #manage {
+  text-shadow: 1px 1px 0 rgba(255,255,255,0.5);
+  background-color: #fff;
+  text-align: justify;
+
+  -webkit-box-shadow: 0 1px 2px rgba(0, 0, 0, 0.25);
+     -moz-box-shadow: 0 1px 2px rgba(0, 0, 0, 0.25);
+       -o-box-shadow: 0 1px 2px rgba(0, 0, 0, 0.25);
+          box-shadow: 0 1px 2px rgba(0, 0, 0, 0.25);
+
+  -webkit-border-radius: 5px;
+     -moz-border-radius: 5px;
+       -o-border-radius: 5px;
+          border-radius: 5px;
+}
+
+#legal p,
+#legal h2,
+#legal ul {
+  padding: 0 0 21px 0;
+}
+
+#legal li {
+  border-bottom: 1px solid #EEEEEE;
+  margin: 7px 0 0;
+  padding: 0 0 7px;
+  list-style-type: square;
+}
+
+#legal li:last-child {
+  border: none;
 }
 
-@font-face {
-  font-family: 'Tenor Sans';
-  font-style: normal;
+#legal h2 {
+  font-size: 21px;
+  color: #222;
+}
+
+#legal h3 {
+  font-size: 18px;
+  color: #222;
+  padding: 49px 0 7px;
+}
+
+#legal h4 {
+  font-size: 14px;
+  margin: 14px 0 7px 0;
+  color: #222;
+}
+
+#legal h5,
+#legal strong {
+  font-size: 12px;
+  color: #666;
+}
+
+#legal p,
+#legal ul {
+  color: #666;
+}
+
+#legal h2,
+#legal h3 {
+  font-family: 'Droid Serif', Georgia, serif;
   font-weight: normal;
-  src: local('Tenor Sans'), local('TenorSans'), url('ts.ttf') format('truetype');
 }
 
-body {
-    padding: 0;
-    margin: 0;
-    font-size: 12px;
-    font-family: 'Tenor Sans', arial, serif;
+#manage .edit {
+  margin: 72px 0 14px;
 }
 
-header {
-    border-top: 4px solid #333;
-    background-color: #333;
-    padding: 0 20% 0 20%;
-    margin: 0;
-    background: #008;
-    height: 230px;
-    color #fff;
-    min-width: 800px;
+#manageAccounts,
+#cancelManage {
+  float: right;
+  display: inline-block;
+  text-align: center;
+  line-height: 21px;
+  font-weight: bold;
+  width: 48px;
+  font-size: 12px;
+  font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif;
+  color: #fff;
+
+  -webkit-border-radius: 5px;
+     -moz-border-radius: 5px;
+       -o-border-radius: 5px;
+          border-radius: 5px;
 }
 
-header.quarter {
-    height: 50px;
+#manage .edit a:hover {
+  text-decoration: none;
 }
 
-#labslogo  {
-    margin: auto;
-    text-align: left;
-    background: url("/i/labs-logo.png") 0 0 no-repeat;
-    width: 161px;
-    height: 34px;
-    margin: 10px 0 0 110px;
-    color: transparent;
-    display: inline-block;
+#manageAccounts {
+  background-color: #37A6FF;
+  border: 1px solid #37A6FF;
+  text-shadow: -1px -1px 0 #37A6FF;
+  cursor: pointer;
+
+  -webkit-box-shadow: 0 0 0 1px #76C2FF inset;
+     -moz-box-shadow: 0 0 0 1px #76C2FF inset;
+       -o-box-shadow: 0 0 0 1px #76C2FF inset;
+          box-shadow: 0 0 0 1px #76C2FF inset;
+
+  background-image: -moz-linear-gradient(center top , #76C2FF 0pt, #37A6FF 100%);
+  background-image: -webkit-gradient(linear, left top, left bottom, color-stop(0%, #76C2FF), color-stop(100%, #37A6FF));
 }
 
-.half h1 {
-    padding-top: .2em;
-    font-size: 3em;
-    font-weight: bold;
-    background: url("/i/browserid_logo.png") 0 0 no-repeat;
-    width: 366px;
-    height: 72px;
-    margin: 43px auto 0 auto;
-    clear: left;
-    color: transparent;
+#cancelManage {
+  display: none;
+  background-color: #006EC6;
+  border: 1px solid #003E70;
+  color: #EEEEEE;
+  text-shadow: -1px -1px 0 #006EC6;
+
+  -webkit-box-shadow: 0 0 5px #003763 inset;
+     -moz-box-shadow: 0 0 5px #003763 inset;
+       -o-box-shadow: 0 0 5px #003763 inset;
+          box-shadow: 0 0 5px #003763 inset;
+
+  background-image: -moz-linear-gradient(center top , #3AA7FF 0%, #006EC6 100%);
+  background-image: -webkit-gradient(linear, left top, left bottom, color-stop(0%, #3AA7FF), color-stop(100%, #006EC6));
+}
+
+#manage #emailList {
+  list-style-type: none;
+  margin: 0 0 72px 0;
+  border-top: 1px solid #eee;
 }
 
-.quarter h1 {
-    float: left;
-    width: 135px;
-    height: 35px;
-    margin: 7px 0 0 10px;
+#emailList li {
+  padding: 10px 0;
+  line-height: 24px;
+  border-bottom: 1px solid #eee;
+  overflow: hidden;
 }
 
-.quarter h1 > a {
-    color: transparent;
+#emailList .email,
+#emailList .activity {
+  display: inline-block;
+  float: left;
+  white-space: nowrap;
 }
 
+#emailList .email {
+  width: 275px;
+}
 
-h2 {
-    font-family: 'Shadows Into Light', arial, serif;
-    font-size: 3em;
-    font-weight: normal;
-    color: #fff;
-    margin: -4px auto 0 auto;
-    text-align: center;
+#emailList .activity {
+  width: 275px;
+  color: #aaa;
+  text-align: right;
 }
 
-.quarter h2 {
-    font-size: 2em;
-    margin: .2em 0 0 .5em;
-    float: left;
+#emailList .activity button,
+#emailList .activity abbr {
+  float: right;
+  display: inline-block;
 }
 
+#emailList .activity button {
+  width: 60px;
+  margin-left: 10px;
+  margin-right: -70px;
 
-header > #manageLink {
-    float: right;
-    background-color: #333;
-    color: #fff;
-    padding: 1px 10px 5px 10px;
-    -webkit-border-radius: 0 0 10px 10px;
-    -moz-border-radius: 0 0 10px 10px;
-    border-radius: 0 0 10px 10px;
-    display: none;
+  -webkit-transition: margin 0.4s ease;
+     -moz-transition: margin 0.4s ease;
+       -o-transition: margin 0.4s ease;
+          transition: margin 0.4s ease;
 }
 
-.authenticated header > #manageLink {
-    display: block;
+#emailList.remove .activity button {
+  margin-right: 0;
 }
 
-header > #manageLink:hover {
-    opacity:1;
-    color: #AAA;
+button.delete {
+  background-color: #37A6FF;
+  height: 24px;
+  vertical-align: middle;
+  border: 1px solid #B13D3D;
+  font-size: 12px;
+  font-weight: bold;
+  font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif;
+  color: #fff;
+  text-shadow: -1px -1px 0 #C84343;
+  cursor: pointer;
+
+  -webkit-box-shadow: 0 0 0 1px #EA7676 inset;
+     -moz-box-shadow: 0 0 0 1px #EA7676 inset;
+       -o-box-shadow: 0 0 0 1px #EA7676 inset;
+          box-shadow: 0 0 0 1px #EA7676 inset;
+
+  -webkit-border-radius: 5px;
+     -moz-border-radius: 5px;
+       -o-border-radius: 5px;
+          border-radius: 5px;
+
+  background-image: -moz-linear-gradient(center top , #EA7676 0pt, #C84343 100%);
+  background-image: -webkit-gradient(linear, left top, left bottom, color-stop(0%, #EA7676), color-stop(100%, #C84343));
 }
 
-.why {
-    width: 600px;
-    height: 130px;
-    padding: 10px 0;
-    margin: 0 auto;
+button.delete:active {
+  background-color: #C84343;
+  border: 1px solid #672424;
+  color: #EEEEEE;
+  text-shadow: -1px -1px 0 #AA3D3D;
+
+  -webkit-box-shadow: 0 0 5px #003763 inset;
+     -moz-box-shadow: 0 0 5px #003763 inset;
+       -o-box-shadow: 0 0 5px #003763 inset;
+          box-shadow: 0 0 5px #003763 inset;
+
+  background-image: -moz-linear-gradient(center top , #C84343 0%, #AA3D3D 100%);
+  background-image: -webkit-gradient(linear, left top, left bottom, color-stop(0%, #C84343), color-stop(100%, #AA3D3D));
 }
 
-.why p {
-    font-size: 2em;
-    text-align: center;
+#disclaimer {
+  color: #888;
+  text-align: right;
 }
 
-.why a, #cancellink {
-    color: #666;
-    text-decoration: none;
-    border-bottom: 1px dotted black;
+#disclaimer a {
+  color: #549FDC;
 }
 
-.why a:hover {
-    color: #000;
-    opacity: 1;
+h1 {
+  font-size: 24px;
+  font-weight: normal;
+  text-shadow: 1px 1px 0 rgba(255, 255, 255, 0.5);
 }
 
-a {
-    color: #fff;
-    text-decoration: none;
+#vAlign {
+  width: 700px;
+  display: table-cell;
+  vertical-align: middle;
+}
+
+#signUp {
+  margin: 122px 0;
+  width: 700px;
+  font-family: 'Droid Serif', Georgia, serif;
+  font-size: 24px;
+  line-height: 32px;
+  text-shadow: 1px 1px 0 rgba(255,255,255,0.5);
+  position: relative;
+  padding: 0 0 0 250px;
 }
 
-a:hover {
-    opacity: .6;
+#signUp a {
+  color: #549FDC;
+  text-decoration: underline;
 }
 
-footer {
-    background-color: #F1F1F1;
-    border-top: 2px solid #ddd;
-    margin: 0;
-    margin-top: 100px;
-    padding: 0;
-    height: 200px;
-    font-size: 1.1em;
+#signUp p {
+  margin: 0 0 16px 0;
 }
 
-footer > div {
-    width: 800px;
-    margin: auto;
+.create {
+  background-color: #37A6FF;
+  height: 32px;
+  padding: 0 16px;
+  vertical-align: middle;
+  border: 1px solid #37A6FF;
+  font-size: 16px;
+  font-family: 'Droid Serif', Georgia, serif;
+  color: #fff;
+  text-shadow: -1px -1px 0 #37A6FF;
+  cursor: pointer;
+
+  -webkit-box-shadow: 0 0 0 1px #76C2FF inset;
+     -moz-box-shadow: 0 0 0 1px #76C2FF inset;
+       -o-box-shadow: 0 0 0 1px #76C2FF inset;
+          box-shadow: 0 0 0 1px #76C2FF inset;
+
+  -webkit-border-radius: 5px;
+     -moz-border-radius: 5px;
+       -o-border-radius: 5px;
+          border-radius: 5px;
+
+  background-image: -moz-linear-gradient(center top , #76C2FF 0pt, #37A6FF 100%);
+  background-image: -webkit-gradient(linear, left top, left bottom, color-stop(0%, #76C2FF), color-stop(100%, #37A6FF));
 }
 
-footer > div > div {
-    width: 400px;
-    padding: 10px;
+.create:active {
+  background-color: #006EC6;
+  border: 1px solid #003E70;
+  color: #EEEEEE;
+  text-shadow: -1px -1px 0 #006EC6;
+
+  -webkit-box-shadow: 0 0 5px #003763 inset;
+     -moz-box-shadow: 0 0 5px #003763 inset;
+       -o-box-shadow: 0 0 5px #003763 inset;
+          box-shadow: 0 0 5px #003763 inset;
+
+  background-image: -moz-linear-gradient(center top , #3AA7FF 0%, #006EC6 100%);
+  background-image: -webkit-gradient(linear, left top, left bottom, color-stop(0%, #3AA7FF), color-stop(100%, #006EC6));
 }
 
-footer .right {
-    padding-top: 13px;
-    float: right;
+#card {
+  width: 200px;
+  height: 200px;
+  display: block;
+  position: absolute;
+  z-index: 1;
+  top: 50%;
+  left: 0;
+  margin-top: -100px;
+  background-image: url('/i/card.png');
+  background-position: 0px center;
+  background-repeat: no-repeat;
+
+  -webkit-transition: background-position 0.4s ease;
+     -moz-transition: background-position 0.4s ease;
+       -o-transition: background-position 0.4s ease;
+          transition: background-position 0.4s ease;
 }
 
-footer .right img {
-    margin-bottom: -5px;
+#card.insert {
+  background-position: 170px center;
 }
 
-footer a {
-    color: #666;
+#card img {
+  float: right;
 }
 
-footer .right p {
-    text-align: right;
+#status {
+  width: 6px;
+  height: 16px;
+  display: block;
+  position: absolute;
+  top: 50%;
+  margin-top: -13px;
+  left: 214px;
+  background-image: url('/i/blink.gif');
+  background-position: left center;
+  background-repeat: no-repeat;
+
+  -webkit-border-radius: 8px;
+     -moz-border-radius: 8px;
+       -o-border-radius: 8px;
+          border-radius: 8px;
+
+  -webkit-box-shadow: 0 0 4px #c15151;
+     -moz-box-shadow: 0 0 4px #c15151;
+       -o-box-shadow: 0 0 4px #c15151;
+          box-shadow: 0 0 4px #c15151;
 }
 
-footer .copyright {
-    font-weight: bold;
-    font-size: .8em;
+#status.green {
+  background-position: right center;
+
+  -webkit-box-shadow: 0 0 4px #3bb421;
+     -moz-box-shadow: 0 0 4px #3bb421;
+       -o-box-shadow: 0 0 4px #3bb421;
+          box-shadow: 0 0 4px #3bb421;
 }
 
-#steps {
-    list-style: none;
-    width: 800px;
-    margin: 0 auto;
-    padding: 0;
+#hint { /* put hints on rollover */
+  width: 200px;
+  height: 200px;
+  display: block;
+  position: absolute;
+  top: 50%;
+  left: 0;
+  margin-top: -100px;
+  z-index: 0;
+  background-image: url('/i/hint.png');
+  background-repeat: no-repeat;
 }
 
-#steps a {
-    color: #666;
-    text-decoration: none;
-    border-bottom: 1px dotted #666;
+#hint.info{
+  background-position: left center;
 }
 
-.step  {
-    margin: 1em 0 2em 0;
-    padding: 0 0 0 50px;
-    font-size: 14px;
-    position: relative;
+#hint.signUp {
+  background-position: right center;
 }
 
-.step .number {
-    position: absolute;
-    top: -5px;
-    left: 0;
-    font-family: 'Shadows Into Light', arial, serif;
-    font-size: 4em;
-    font-weight: bold;
-    line-height: 1em;
+#signUpFormWrap {
+  margin: 122px 160px;
 }
 
-.step > h3 {
-    font-size: 1em;
-    margin: 0;
-    display: inline;
+#signUpFormWrap a.signUpIn {
+  color: #549FDC;
+  text-shadow: 1px 1px 0 rgba(255, 255, 255, 0.5);
 }
 
-.step > pre {
-    clear: both;
+#signUpFormWrap a.space {
+  margin: 10px 20px 0;
+  display: inline-block;
 }
 
-.step > p,  .step > ol {
-    margin-left: 50px;
+#signUpForm {
+  padding: 20px;
+  background-color: rgba(0,0,0,0.035);
+
+  -webkit-border-radius: 5px;
+     -moz-border-radius: 5px;
+       -o-border-radius: 5px;
+          border-radius: 5px;
 }
 
-.prose {
-    font-size: 1.5em;
+#signUpForm ul {
+  margin: 20px 0;
+  list-style-type: none;
 }
 
-.status {
-    margin: 0 auto;
-    width: 600px;
-    font-size: 1.2em;
+#signUpForm li {
+  padding: 0 0 10px 0;
 }
 
-pre code {
-    padding: 10px 15px 10px 15px;
-    margin: .75em;
-    -webkit-border-radius: 10px;
-    -moz-border-radius: 10px;
-    border-radius: 10px 10px 10px 10px;
-    width: 650px;
+#signUpForm label {
+  display: block;
+  color: #62615F;
+  text-shadow: 1px 1px 0 rgba(255,255,255,0.5);
 }
 
-#emailList {
-  font-size: 1.0em; 
-  width: 4x00px; 
-  margin: auto; 
-  font-weight:bold;
-  margin-top:32px;
+#signUpForm label.half,
+.half {
+  width: 50%;
+  display: inline-block;
+  float: left;
 }
 
-#cancelaccount {
-  font-size: 1.0em; 
-  width: 500px; 
-  margin: auto; 
-  margin-top:35px;
+a.forgot {
+  color: #888784;
+  text-shadow: 1px 1px 0 rgba(255, 255, 255, 0.5);
+  font-size: 11px;
 }
 
-.email {
-  display:inline-block;
+#signUpForm .error {
+  margin-top: 20px;
+  color: red;
+  background-color: rgba(255,0,0,0.25);
+  padding: 5px;
+  line-height: 16px;
+
+  -webkit-border-radius: 3px;
+     -moz-border-radius: 3px;
+       -o-border-radius: 3px;
+          border-radius: 3px;
 }
-.emailblock a {
-  font-size:0.7em;
-  color:#405090;
+
+#signUpForm .red {
+  color: red;
 }
-.emailblock {
-  border: 1px solid #ddd;
-  -moz-border-radius: 4px;
-  -webkit-border-radius: 4px;
-  background-color:#f0f0f0;
-  width:500px;
-  padding:8px;
-  min-height:48px;
-  margin:16px auto;
+
+#signUpForm input[type=text] {
+  width: 100%;
+  font-size: 14px;
+  padding: 5px;
+  border-width: 1px;
+  border-style: solid;
+  border-color: #A3A29D #C6C3B4 #C6C3B4 #A3A29D;
+  outline: none;
+
+  -webkit-border-radius: 3px;
+     -moz-border-radius: 3px;
+       -o-border-radius: 3px;
+          border-radius: 3px;
+
+  -webkit-box-shadow: 1px 1px 0 rgba(255,255,255,0.5);
+     -moz-box-shadow: 1px 1px 0 rgba(255,255,255,0.5);
+       -o-box-shadow: 1px 1px 0 rgba(255,255,255,0.5);
+          box-shadow: 1px 1px 0 rgba(255,255,255,0.5);
 }
-.meta {
-  display:inline-block;
-  float:right;
-  font:8pt Arial;  
+
+#signUpForm input[type=text]:focus {
+  border: 1px solid #549FDC;
+
+  -webkit-border-radius: 0;
+     -moz-border-radius: 0;
+       -o-border-radius: 0;
+          border-radius: 0;
+
+  -webkit-box-shadow: 0 0 0 1px #549FDC inset;
+     -moz-box-shadow: 0 0 0 1px #549FDC inset;
+       -o-box-shadow: 0 0 0 1px #549FDC inset;
+          box-shadow: 0 0 0 1px #549FDC inset;
 }
-.meta a {
-  cursor:pointer;
+
+#signUpForm .submit {
+  height: 28px;
 }
-.keyblock {
-  font:8pt Arial;
+
+#signUpForm .remember {
+  display: inline-block;
+  line-height: 28px;
 }
-.date {
-  font:8pt Arial;
+
+#signUpForm .remember .checkAlign {
+  float: left;
 }
 
-.buttonbox {
-    height: 25px;
-    width: 460px;
-    margin: auto;
+#signUpForm .remember label {
+  margin-left: 5px;
+  float: left;
 }
-.buttonbox > div {
-    float: left;
-    margin-right: 10px;
+
+#signUpForm .create {
+  font-size: 14px;
+  height: 28px;
+  padding: 0 10px;
+  float: right;
+}
+
+#header {
+  position: absolute;
+  top: 0;
+  font-weight: bold;
+}
+
+#header ul {
+  display: inline-block;
+}
+
+#header ul.nav {
+  float: right;
+}
+
+#header ul li {
+  display: inline-block;
+  float: left;
 }
 
-.legal {
-   font-size: 1.3em;
-   width: 800px;
-   margin: 0 auto;
+#header ul.nav li {
+  margin: 0 0 0 10px;
 }
 
-.legal li {
-  margin-bottom: 7px;
+#header a {
+  color: #222;
+}
+
+#header a.home {
+  width: 80px;
+  height: 21px;
+  background-image: url('/i/icon.png');
+  display: block;
+  background-position: left 4px;
+  background-repeat: no-repeat;
+}
+
+#header a.signIn {
+  background-color: rgba(0,0,0,0.1);
+  padding: 4px 8px;
+
+  -webkit-border-radius: 3px;
+     -moz-border-radius: 3px;
+       -o-border-radius: 3px;
+          border-radius: 3px;
+}
+
+#header a.signIn:hover {
+  background-color: rgba(0,0,0,0.25);
+  text-decoration: none;
+}
+
+#header,
+#footer {
+  display: block;
+  width: 100%;
+  padding: 20px 0;
+}
+
+#footer ul li {
+  display: inline-block;
+  float: left;
+  margin: 0 10px 0 0;
+}
+
+#footer {
+  position: absolute;
+  bottom: 0;
+  color: #aaa;
+}
+
+#footer a {
+  color: #aaa;
+}
+
+
+/* for floats */
+.cf:after {
+  content: ".";
+  display: block;
+  clear: both;
+  visibility: hidden;
+  line-height: 0;
+  height: 0;
 }
 
-.legal h5 {
-  margin-bottom: 1px;
-  padding-bottom: 1px;
-  line-height: 100%;
+html[xmlns] .cf {
+  display: block;
 }
 
-.legal p {
-    margin-top : 1px;
+* html .cf {
+  height: 1%;
 }
diff --git a/browserid/static/i/bg.png b/browserid/static/i/bg.png
new file mode 100644
index 0000000000000000000000000000000000000000..e367c9b811d0d8b191b19d756a666aaeef0aa02e
GIT binary patch
literal 6998
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

literal 0
HcmV?d00001

diff --git a/browserid/static/i/blink.gif b/browserid/static/i/blink.gif
new file mode 100644
index 0000000000000000000000000000000000000000..b0a5fbf3626cc6f2291a69b48393eb4256271e8f
GIT binary patch
literal 123
zcmZ?wbhEHb<Y5qCn8?g<Ffh>Ts*d#*#sB~REB@#9a}5c0b_{Se(lcOYWME)W{K>+~
z#lXy<17tIRv@kHqw8*b)pOtf`*~lRve_2rZy9&h}6NEP}oNu+sixHuL4XA+)tbt=n
N|H{*E`IEI6tN~PpA$<S<

literal 0
HcmV?d00001

diff --git a/browserid/static/i/browserid_logo.png b/browserid/static/i/browserid_logo.png
deleted file mode 100644
index b80d82f2880c2118e3f5c6860dc48e4099084600..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 3726
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

diff --git a/browserid/static/i/card.png b/browserid/static/i/card.png
new file mode 100644
index 0000000000000000000000000000000000000000..eac93fc8481e85d226d934eaa30a2b3b4737837d
GIT binary patch
literal 5906
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
ZKZtBqaksBSn4jEODvBBkFnNohe*xQkgn|G7

literal 0
HcmV?d00001

diff --git a/browserid/static/i/count.png b/browserid/static/i/count.png
new file mode 100644
index 0000000000000000000000000000000000000000..2f031bd84fd4528f74782eb417fef154e3c7f811
GIT binary patch
literal 868
zcmV-q1DpJbP)<h;3K|Lk000e1NJLTq000;O002k`1^@s6?D;hh0000PbVXQnQ*UN;
zcVTj606}DLVr3vnZDD6+Qe|Oed2z{QJOBU#21!IgRCwC#m`P|9K@^5x+J=Y<aUtSD
z1{B0WBL;FbcnAnWFu{YD$x(2@Lvm9*L<~XjkV6jQ0&^1~co0TH1R)2BH-(4`isHbC
z3kH>df&qj6zg6Wl1Km~KQ*)7i@Mk7X&;PorUe){Pw%_yXB_Xy$N1*|z6Y9~|7obIG
z2D&2$zP*n#Xp2d(1-b|whgL~)tUzVx0up_4NpKjt4Xu-O@f|vbB=@2hgNB<%pxF%O
zqJJ|h4>yd&B^ZPzrTLgdlEKC);$l9BI>b*bL3_FQW&~p%%|&~SnGqE5`PQLYL^h#X
zx1JLD@l>RGUL2}xXNW%~t9ghA+Hpx_b1BUz=vm?v9kSlK?X)uIlc$S*CfMzCE2qRh
zEse1!)JH&ae7Gv|3x(0qmo`CX;B*_!Ge)2ftyaY%6TE6+f)`A1zl90rm|$9O3g1D`
zX(p)Z^W1H*m*!pfLm6jLHG0^+%y>-4^@d{fuw%;`_BcJmrj17TK?NH1U_J`-N?b>q
zf`;@EvrNkn%%_rCrWr|5FZ_yQwUqUoS6rzg4qJNl^~bK*5@x9FRFQL0&P6)b?i1<0
zEBJv@@ungTFI+^U-Y4qQoT5y~?+XX5TohQjXybq~|9ndsQZ#20%ECpVm5X@(KRY7w
zvz7%0`a>%hE!UKy5XL8G;^mr^ivlMu`nPm_3L*LAZV=|kMP^}HJ&ZSJoH5dki@3<U
zuBgw~F#j^+nTxmwI09A@<&}%fqB2O>X0uUtR-Fqq7fr<O1%oQ-ne{IhnX~9Rbiy-u
z-M}bMnkpL4*yxjb!+7+#&bcV(qMVCzF7nPrrulg1A|BhTaeI5AP8&^g5t|In-(6OQ
zkM=8?V6*YUMeM(9@X;pEM$_*0z9=0R70$u9tIkDsvT%G~WTNYAeFWaQh`}`=wiwdj
zVmHl2G~t4pDk8Rgyr%x=Tgaxlh$ehm;){tj-LCNKz(ssw8gc%asON!7%4=V(gy-<S
uh(?@ymaD0Ke&@BEi*hddKe*_R00RIPv3-+f#aKW90000<MNUMnLSTaWxRm?=

literal 0
HcmV?d00001

diff --git a/browserid/static/i/developers.png b/browserid/static/i/developers.png
deleted file mode 100644
index 2ce054467eef5ae8dc937efa10167d3a344ffc71..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 889
zcmeAS@N?(olHy`uVBq!ia0vp^4Is?H1|$#LC7xzrV0Q3yaSW-r_4clJhi{?Gfsd~x
z&E&XGF5b9N;N-F7#HAu#qTbR@Jri$Ks4hx-y7hyOw%I2?&WXL74171KaEtg(l2D!U
z(faJnOGoZxzuVbY{O)=D{kuNjzx}VDW&FJU-`(h!FJG=)QEAM{FoT7GrGY_!fyse^
zgMm?jfd#@j%dK#1(F)yLi=3vcx!R<|xW)bMMRn0dDQmx_a6X8*ve>EAz?;F{C*z?N
z16~lI-(Y_6>x;G`&6&TaS2FF0G5jQ#{)wgF?4Rd$=NKVc57e_HM3`94TIDlKs8>U%
z;fe45QY-V#b}q)<ED2Fxj;8r6JF6$vkk>se^8VsTsC5BC4E&4K#kN;6uJL}K8}44d
zSYB+`PKGUCf6x7S@#KrStoeQnwaPag@5tG1{qU4+!@g5;-%n(umKe`vVDMslP`5=#
zD)umQ|IUjSOR6OsCf#MT>*sUlUaT0Z;L{Ven2+JqPW}lxZ`Lu&)qLq)c=6H;uP>4f
zpK@7hd*8WAUsmsC?!C(}rCQyfQe>8lU99ldKhKOdN;W*Z!Bsc)o)zEw?@_r7Q^XIv
zevz|9Me1w&^;--MI~n%$>$$C7R2aJM|Kr8M3?lLlMO81#e$^y+@&0By8S7MC6<Hu1
z5x{VNk^9BI3^(5Hc`?7IyNA#Iup?5FQD()*8=seCL|^$iy*}`ooA#x*PY!-#YB<Jt
zBP8|Vb6536>l}R|iYApgv8BJWX85t)pZWNb=gjY}RN5`DuI2yQ=f@z$zToTh`Sa!8
z_RdQ+Nt}Plx~1xPGEg)j`xnEDnlFZrIlccK+%w^x(!6zx%Nb1g9Hu8Hd}Cz6k~Z*0
zIJ)Fcri_glGtHNKFdPf3vOiL}-zYPF>G#E-xS0?9C})PM{=`sl5||+To^w7(+!C>~
zOxvH~S3Oj+L5D%cd|~VBglP<Xp;i0OcplA6Ph$wV=flLH#>l`3Pq9eJS1aD0vFOgN
Uiqp^RKv{~x)78&qol`;+03NYVC;$Ke

diff --git a/browserid/static/i/hint.png b/browserid/static/i/hint.png
new file mode 100644
index 0000000000000000000000000000000000000000..3ff8bf5314769e16ad6e44cbfa0f0839c321ab47
GIT binary patch
literal 9534
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%0AiC@cCLrE>-m#E9{$*oFb7sU`<n|`0f
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

literal 0
HcmV?d00001

diff --git a/browserid/static/i/icon.png b/browserid/static/i/icon.png
new file mode 100644
index 0000000000000000000000000000000000000000..68fb1e165c72824c3e74a7c6190ab2a5cb8e612c
GIT binary patch
literal 2401
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
T5^5go00000NkvXXu0mjf0m+pR

literal 0
HcmV?d00001

diff --git a/browserid/static/i/id.png b/browserid/static/i/id.png
deleted file mode 100644
index 8986681adfc3a44b16ab73df12cb24ed5e8be691..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 1027
zcmeAS@N?(olHy`uVBq!ia0vp^4Is?H1|$#LC7xzrU_RyP;uunK>+K!y4&OwE10VlS
zEq4y|*eD<-CKMDAq0yg`{Ce*Pt;mEG7oSX=+B(UdBl4D@QI|)~45N9xN}pna4j(b-
zIXb7+@AHo7#p{08ey@MMe|PQj_jB&Qo%efgv7W4~Y{b`RegX~FjtpuH!VR1USQ3~F
z7-ul}5af3AFc|Q!*!<uY-<fkv2LcxyZptYaW8mAN-26s*gEIq@Km!Ad0s|w50}As5
z?*ab@oCW)N?lRA-+@Q^UAUr`SfZ^AZ7{(dT4z9Cdc&u?hyNiAICx#w<<%X4VZ#FRc
zFkDl+ZOOBS*^NV?j$v}cXNPR@<ULH&m=CiEs5eYJ>G&>pP4~%@an~568tyh;6Jc)n
zC8TC(#?Fw<@x9c9jltYoBEO1{!HkvXLC6b+U(Dx${ACP}m<$*y0-r>@J&?k9gmnRf
ziI`;=w}Bcv!)s=?0-Ltt24htQiK)yDe@}*ccf|HQ)LyW%<zv`RK7s324!j@swS45`
zQqW^)eG-(n@$pq|g?&>G)T;U<wJ|(mHrUXy`KDRI#Oq9t_DXD7Hoee}p|+T*fbRxV
z4(}S>19Kx7&b&{Z<9+g{lN`eyu>eK}t^-%|j{RUfbMj*yLpYN*!vUuU!gudS+=@A(
zG=YJMHGuh!ZqgcOrVj1{TT&#q?QHp&$FSA*j`#<2hHF4SMPx9rF?cteK6!QT{=bo*
z1uZzwoMJejn2@)?G{mYQEWu>1dG$5M{^B3K)w~hBJj*{zvebVMmuTQVFx|-Klkca@
zf6o}#ze{JXuRKs|aRnaxIHK=|JVTtSdEp=L>y76b-~33IJoDA9C_U7Kp)9q;{?1+o
zhMW@#^H?9G`Y?P;+Y&6t!l2M?-NznyXa9;&(FVIvmV^xqECQkpwvuz1@9;AmIL7nr
zrv0|!hT4;t9h`%Bebr`Pv)?lNyB!yULoR>u+v`VT+Dk5aJSg>Hh-%m#`=#-meb>Lw
zrPI#spWwOwyX*&B28Q{&X1@OYgmI?*{!8n=7+fz~m7=)9jP*g;k#1w{Ack3msuRv?
zGHh33+pwlbeJk8k3yK(R&J;%HMlxDV`s{ae8q);{!-lDv4F1LU?w!+N&|&p^expgG
zLDn+=eZ84>X<>GL-)$>Koqy>JV&(5x7<UN6!->dDvth$8-tYbiMNF>FmB7r+;OXk;
Jvd$@?2>^8Khd}@U

diff --git a/browserid/static/i/labs-logo.png b/browserid/static/i/labs-logo.png
deleted file mode 100644
index 696c5d5d126202682d651c6a9ecf633d5b804703..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 1158
zcmV;11bO?3P)<h;3K|Lk000e1NJLTq005x?001Hg1^@s6H+8wd000C{Nkl<Zc-rlp
z?Qw)45QeV=O0Wb<pae^x1WTX;ORxk=umnr61WF+H11Ds&AK<BHa_r2`B;oWxp4(+#
zxIAKvkLJza>FpsjZxA-WrFTzX;<xz*Ve_lq$KN(I2%BH&o7tyN>F2pY*!)VLkw`dZ
z?J5E4o^Be1&ChWC^pF9#B=8;yz5oEt+Z%+<4|A2GoB;*PW&uRZxk1?c3U>*(HH&<G
z24dGBY<`q)>pct7tRp0w%}j%^`4K62Vb*&VRL(l9p5xwi;eURZQ?_=oU|q9G4@*id
z52AfNQ<}J;4`7YAnPVV@uW1m1w2_-e)-aoK*M<*V^G)gZ5h*$ph<@P}0RJ<Dn9jAW
zSBwCm1nDP4!jM1<h(_4N>OvoxNGL&QJ{UqQ-G;qYZ(9@ojD}+cWS<P-_Uwj~Vux2m
z=vE!m-XOgBQ7)b6pRx%VQ&jPw%6w#1<kl{Ia<)&IPuI-p{)RbH<SHDh{Vwa@84z~J
zc>K-?GNkMKodw0rxYVbu*qD&{&BrzsXn{F1Tz?b>A>0r2L@B-`SQn;U5dvt4w9UwM
zCe~RANJl_uh~fvXrSy)ID|;lNQlt80z|zGgd5SVi^kb^%i^CwC<8kH?080!4d`Ad}
zivFw@K{yGK2R`GHB?`O;3?NFF<3;FGhe0?oV5~v}3&`K{logQ4am0I$1?hMsKIK<H
zsEF~*#B<UYKv;V!Ml)kxiA<)z_zZIpw(0;ZC(<riXBF~reMYloAjE)Cg0L(}0$xZF
zXQ$&K8>ayiMd_38gb)T9Bc$V!O#s7av+5`aoge@kX5#V(xgzjBh~q)hnuAJ*z5=A9
z3KLT(l-~tHR|ugi)L%IWySqVHvd37u52=w<7zzuTGpgersZ7HgAaqEfID?A#RS1oc
z((~*z-3dZ{AcWNBxvA6wkAScj*2z~wC{?5(JB(2RVTnzI`cZ02E=8RUp*ax3Q7B@r
zg0ObN&V*1S&mAk|7NJiyW7?org>%GN|CiEnU!g~y4WTC@Lr+|LCWJ#p3S0^yoSDsl
zwV<C}{Qg=1bQ_WHGhYE=5JEXtQ4WH{BS{};LMWxCD<O0+s+?SyKzZubZPWQG2q!_n
zwSq)5R}?PqfY99pLURFxa6bMFgocP79a3?@YaOu*L4|v@6GAPtcMN1});<VP{Y(fY
zc>GNwVgC*YYxWd_FyWGQJEK{iRu$1cGHXI<Ou7QXh53+ej-3(@DXU<wcNK-nMBJkX
z>$wo=uZVKKz-M|Dgr!n~j{7#|;hv}j;VA6$dglJR5WKw*mKs)YaQz7fN;DWBe#bow
zgwO)f)glv@w`(93<ZUApiaj#<BT?zj6>gdS%tR^+L|Rp;Pl17aAwaf3RJZZilQ1v}
zsYo9_@!9(uW=Eq|qH%>=soXtmY+w02{J#`vq^;&`psDb#KpIiRYqT(ql4ZavWB7HC
YFVih&kuBK5;s5{u07*qoM6N<$f+d#;JOBUy

diff --git a/browserid/static/i/people.png b/browserid/static/i/people.png
deleted file mode 100644
index 9260e8edc9ec89be7a56d6ae3e98db28de49ded4..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 1083
zcmeAS@N?(olHy`uVBq!ia0vp^4Is?H1|$#LC7xzrU}5rfaSW-r^>(g*hghmi!~FHr
zjLKTiioLwBFk(WMsF{$WtC@<He^73_#-sz2OA4&HFD>m}?w}HQAwf`(_l=VDlupkJ
zUb{<I@J(C&Mrobrsa>vH-j>XGsr2UE^Y3TRSii41&wN;JpZ)&w`<2hWp92cK&sOnl
zD$(P=!OEq83}v0ed3tk9q$+EC<qf9fG9P&CV7`Il4CCbkEFVNa=za*_&6vF7<h71P
z6W?-v;4xs@!)J5tN%}el_eTGQ*<1q48CEye9{7FWux{Ht)^AMhq6&J9*O-qt@>-fc
zG}*wtV=co~@dWJ;k!H`HpS0M(yki~1RnZ5P54aP29escDRV=;fBj9}h+DoGkfe$V-
zmD?Rqd(iNman(upn@?je?%~}NJ>75hX@L(+AACEV{&VHTWNH*}X!K8<^nZF?!g9$4
zQj!bge>8qs7dO)<B{Jb6kHEBW<~KDB&o`Z&eBi(y34?E9tQ_9rA94=-Xyy`_7I!If
zZ-C88hQyc4zIM*Dc@fAE*wAo>xt_hJKAiDT5&I57gMXo{9H;FMoM(LOujNp&k5A(F
zBBqw-Iv>&(EUtHAJX9<x!7WfO^27Ywxz(pjK7>86xuCJqGkA%x<MwIQlP5bqEo8I^
zO4`F8e(PsiLy<AVlJkG!6=K-~RMZ=`&#GL^-#Sg3Au>vC@s8(A#~Y`ATzKJB5vK&(
zKaCe_{+qrl&TU|ta^5mQ`a^Kv{Yth9&KWDC)325qWeDBisqv}Wz9F=Zy)51R-&(7(
z5Op2CSpJ#`Z;#wlvoGegV3S$WyOYhIX|>{k|7*@(`XTVa<Ylu;KLh8>HTO(DD1S&T
zGc~-Q=fJvR8pHQb0ozoU1fSxrWDjV_;tsGd{E{nPcxig<=kKZR1sUs@?hB^{ty;|T
zLRI(12f3qqOu4Pv2kIUOoYoO5<jAPys9^dr=av33iL)%RAN&&f_$FL?)0wDx&U(pY
z*R%#1;{&q~oa|^@Wtm{$IqCixhMxv9H+P=ON~q@H?R9M^6^vWSqv24urYoQ!kM%^q
zME!L&U?h+YU)nGx>4-?U&Q8`8{_g#)e5HJ649mPlKcf!3HFAz}{&7$>?!DSt^O#z1
zWlf>2LCd08{2246Tv=kfWa^3O+2NC1F6`Wx(vZfbuf}*w*w@j+pUIWc1qF&YkN_7b
znY`Kld--ZNCLhM>jX#?ne_`0X)iNtdLr{5{5vngU=l^GT*ZcOY7Jq6Duux#|boFyt
I=akR{0PC-`Gynhq

diff --git a/browserid/static/i/slit.png b/browserid/static/i/slit.png
new file mode 100644
index 0000000000000000000000000000000000000000..f406cf593bd63bfd0e28e58f4d90dfa8fd8f7d37
GIT binary patch
literal 327
zcmV-N0l5B&P)<h;3K|Lk000e1NJLTq000F50077c1^@s6AQ>x<0000PbVXQnQ*UN;
zcVTj606}DLVr3vnZDD6+Qe|Oed2z{QJOBUy=}AOERCwC#mg^3JFbsuhSv0{5`u=ag
z>w$n6nKapwd8mZwKk1T_v5(Vs7a*|rK0|S)wDr&tk@OTnRaHBe7$~T4$$&$DWN<M;
zxy~n@8C;@Lb6!%I2VF6I=Hw;kRm(XG=LkugJQgaowV$+Q9vJph#s!9p_CKDc!R<ly
zBOq_J?UF%*1`U1%y#{F;)oq>z4X%Pd=)nL)JvzrpcLtZJ!*Fr7Y50gRbvBrD=8WOB
zmQxLH7Q-WaE;=!%TD{g*baMa*3%xnhoY|*cYGckU>3gS~X6L{qZE*6h4L64Wd%Rx)
Z3;?<GcbMcun!f-5002ovPDHLkV1kq3hi3o)

literal 0
HcmV?d00001

diff --git a/browserid/static/js/browserid.js b/browserid/static/js/browserid.js
index e3e9f1fa9..04064ebfa 100644
--- a/browserid/static/js/browserid.js
+++ b/browserid/static/js/browserid.js
@@ -35,14 +35,104 @@
  * ***** END LICENSE BLOCK ***** */
 
 $(function() {
+
+  if ($('#vAlign').length) {
+    $(window).bind('resize', function() { $('#vAlign').css({'height' : $(window).height() }); }).trigger('resize');
+  }
+
   BrowserIDNetwork.checkAuth(function(authenticated) {
     if (authenticated) {
-      $("body").addClass("authenticated");
+      //$("body").addClass("authenticated");
       if ($('#emailList').length) {
         display_saved_ids();
       }
     }
   });
+
+  _.mixin({
+    relative: function(date) {
+      var diff = (((new Date()).getTime() - date.getTime()) / 1000),
+          day_diff = Math.floor(diff / 86400),
+          dObj = { "friendly" : date.toLocaleDateString(),
+                  "additional" : date.toLocaleTimeString(),
+                  "utc" : date.toUTCString(),
+                  "locale" : date.toLocaleString() };
+
+      /* some kind of error */
+      if (day_diff < 0) {
+          dObj.friendly = "in the future!?!";
+          return dObj;
+      } else if (isNaN(day_diff)) {
+          dObj.friendly = dObj.additional = "unknown";
+          return dObj;
+      }
+
+      if (day_diff === 0) {
+          if (diff < 60) {
+              dObj.friendly = "just now";
+              return dObj;
+          }
+          if (diff < 120 + 30) { /* 1 minute plus some fuzz */
+              dObj.friendly = "a minute ago";
+              return dObj;
+          }
+          if (diff < 3600) {
+              dObj.friendly = Math.floor(diff / 60) + " minutes ago";
+              return dObj;
+          }
+          if (diff < (60 * 60) * 2) {
+              dObj.friendly = "1 hour ago";
+              return dObj;
+          }
+          if (diff < 24 * 60 * 60) {
+              dObj.friendly = Math.floor(diff / 3600) + " hours ago";
+              return dObj;
+          }
+      }
+      if (day_diff === 1) {
+          dObj.friendly = "yesterday";
+          return dObj;
+      }
+      if (day_diff < 7) {
+          dObj.friendly = day_diff + " days ago";
+          return dObj;
+      }
+      if (day_diff < 8) {
+          dObj.friendly = "last week";
+          return dObj;
+      }
+      /* for this scope: we want day of week and the date
+           plus the month (if different) */
+      if (day_diff < 31) {
+          dObj.friendly = Math.ceil(day_diff / 7) + " weeks ago";
+          return dObj;
+      }
+
+      /* for this scope: we want month + date */
+      if (day_diff < 62) {
+          dObj.friendly = "a month ago";
+          return dObj;
+      }
+      if (day_diff < 365) {
+          dObj.friendly = Math.ceil(day_diff / 31) + " months ago";
+          return dObj;
+      }
+
+      /* for this scope: we want month + year */
+      if (day_diff >= 365 && day_diff < 730) {
+          dObj.additional = date.toLocaleDateString();
+          dObj.friendly = "a year ago";
+          return dObj;
+      }
+      if (day_diff >= 365) {
+          dObj.additional = date.toLocaleDateString();
+          dObj.friendly = Math.ceil(day_diff / 365) + " years ago";
+          return dObj;
+      }
+      return dObj;
+    }
+  });
+
 });
 
 function display_saved_ids()
@@ -50,11 +140,19 @@ function display_saved_ids()
   var emails = {};
   BrowserIDIdentities.syncIdentities(function() {
     emails = getEmails();
-    displayEmails();
+    if (_.isEmpty(emails)) {
+      console.log(emails);
+      $("#content").hide();
+      $("#vAlign").show();
+    } else {
+      $("#content").show();
+      $("#vAlign").hide();
+      displayEmails();
+    }
   });
 
-
   function displayEmails() {
+    // XXX: this is currently not displayed
     $('#cancellink').click(function() {
       if (confirm('Are you sure you want to cancel your account?')) {
         BrowserIDNetwork.cancelUser(function() {
@@ -63,42 +161,35 @@ function display_saved_ids()
       }
     });
 
+    $('#manageAccounts').click(function() {
+        $('#emailList').addClass('remove');
+        $(this).hide();
+        $("#cancelManage").show();
+    });
+    
+    $('#cancelManage').click(function() {
+        $('#emailList').removeClass('remove');
+        $(this).hide();
+        $("#manageAccounts").show();
+    });
+
     $("#emailList").empty();
       _(emails).each(function(data, e) {
-        var block = $("<div>").addClass("emailblock");
-        var label = $("<div>").addClass("email").text(e);
-        var meta = $("<div>").addClass("meta");
-
-        var pub = $("<div class='keyblock'>").text(data.pub);
-        pub.hide();
-        var linkblock = $("<div>");
-        var puba = $("<a>").text("[show public key]");
-        // var priva = $("<a>").text("[show private key]");
-        puba.click(function() {pub.show()});
-        // priva.click(function() {priv.show()});
-        linkblock.append(puba);
-        // linkblock.append(" / ");
-        // linkblock.append(priva);
-        
-        var deauth = $("<button>").text("Forget this Email");
-        meta.append(deauth);
-        deauth.click(function() {
-          // remove email from server
-          BrowserIDNetwork.removeEmail(e, display_saved_ids);
-        });
-      
-        var d = new Date(data.created);
-        var datestamp = $("<div class='date'>").text("Signed in at " + d.toLocaleString());
+       var date = _.relative(new Date(data.created));
 
-        meta.append(datestamp);
-        meta.append(linkblock);
-                    
-        block.append(label);
-        block.append(meta);
-        // block.append(priv);
-        block.append(pub);
-        
-        $("#emailList").append(block);
+       $("<li class='identity cf'/>").append(
+            _.template("<div class='email'><%= email %></div>", { email : e }),
+           $("<div class='activity cf'/>").append(
+             $("<button class='delete'>remove</button>").click(function() {
+               if (confirm("Remove " + e + " from your BrowserID?")) {
+                 // XXX this callback is not working as expected
+                 BrowserIDNetwork.removeEmail(e, display_saved_ids);
+               }
+             }),
+             _.template("<abbr class='status' title='Registered: <%= created %>'>Registered <%= relative %></abbr>",
+                       { relative: date.friendly, created : date.locale } )
+           )
+       ).appendTo($("#emailList"));
     });
   }
 }
diff --git a/browserid/views/about.ejs b/browserid/views/about.ejs
new file mode 100644
index 000000000..165be9c6f
--- /dev/null
+++ b/browserid/views/about.ejs
@@ -0,0 +1,48 @@
+<div id="content">
+    <div id="about">
+
+        <div class="video">
+            <!-- <iframe width="700" height="300" src="https://www.youtube.com/embed/l0t9yDLAmFo" frameborder="0" allowfullscreen></iframe> -->
+            <img src="http://placehold.it/700x300/eee/ccc">
+        </div>
+
+        <div class="row cf">
+            <h2>Sign In. Simply.</h2>
+            <button class="create signIn">sign in</button> <!-- XXX: remove this button if user is signed in -->
+        </div>
+        <div class="row one cf">
+            <img src="http://placehold.it/200x140/eee/ccc">
+            <div>
+                <p><span class="steps"></span> Click the <em>BrowserID</em> &lsquo;Sign In&rsquo; button.</p>
+            </div>
+        </div>
+
+        <hr>
+
+        <div class="row two cf">
+            <img src="http://placehold.it/200x140/eee/ccc">
+            <div>
+                <p><span class="steps"></span> Select your preferred Email.</p>
+            </div>
+
+        </div>
+
+        <hr>
+
+        <div class="row three cf">
+                <img src="http://placehold.it/200x140/eee/ccc">
+            <div>
+                <p><span class="steps"></span> No passwords necessary, you're done!</p>
+            </div>
+        </div>
+    </div>
+
+</div>
+
+<script type="text/javascript">
+  $(document).ready(function () {
+    $(".signIn").click(function () {
+        document.location = "/signin";
+    });
+  });
+</script>
diff --git a/browserid/views/developers.ejs b/browserid/views/developers.ejs
deleted file mode 100644
index 88deb4475..000000000
--- a/browserid/views/developers.ejs
+++ /dev/null
@@ -1,105 +0,0 @@
-  <script src="js/highlight.js"></script>
-  <script>hljs.initHighlightingOnLoad();</script>
-    <div class="why">
-      <p>
-        BrowserID provides a <strong>simple</strong> and <strong>sophisticated</strong>
-        sign-in process that your <strong>users will love</strong>.  It can be
-        integrated in three easy steps:
-      </p>
-    </div>
-    <ol id="steps">
-      <li class="step">
-        <div class="number">1.</div>
-        <h3>Enable BrowserID:</h3>
-        Include the BrowserID JavaScript library in your site by adding a script tag to your <tt>&lt;head&gt;</tt>
-
-        <pre><code>&lt;script src="https://browserid.org/include.js" type="text/javascript"&gt;&lt;/script&gt;</code></pre>
-      </li>
-      <li class="step">
-        <div class="number">2.</div>
-        <h3>Identify the User:</h3>
-        Instead of displaying a form on your
-          site which takes a username and password, use the BrowserID
-          JavaScript API when the user clicks your sign-in button:
-<pre><code class="javascript">navigator.id.getVerifiedEmail(function(assertion) {
-    if (assertion) {
-        // This code will be invoked once the user has successfully
-        // selected an email address they control to sign in with.
-    } else {
-        // something went wrong!  the user isn't logged in.
-    }
-});
-</code></pre>
-        <p>
-          Upon a successful sign-in, you'll be called back with
-          an <i>assertion</i>, a string containing a signed claim that proves
-          the user is who they say they are.
-        </p>
-        <p>
-          <strong>NOTE:</strong> While completely optional, you might consider
-          replacing your sign-in button with a pretty BrowserID button:
-
-          <div class="buttonbox">
-            <div><img src="i/sign_in_red.png"></div>
-            <div><img src="i/sign_in_blue.png"></div>
-            <div><img src="i/sign_in_orange.png"></div>
-            <div><img src="i/sign_in_green.png"></div>
-            <div><img src="i/sign_in_grey.png"></div>
-          </div>
-        </p>
-      </li>
-      <li class="step">
-        <div class="number">3.</div>
-        <h3>Verify the User's Identity:</h3> 
-          You must verify the <i>assertion</i>
-          is authentic, and extract the user's email address from it.
-          The easiest way to do these is to use the
-          free verification service provided by BrowserID.
-        <p>
-          To use it, you send a request
-          to <tt>https://browserid.org/verify</tt> with two POST parameters:
-        </p>
-        <ol>
-          <li> <tt>assertion</tt>: The encoded assertion
-          <li> <tt>audience</tt>: The hostname and optional port of your site
-        </ol>
-        <p>
-          The verifier will check the the assertion was meant for your site and
-          is valid, here's an example:
-        </p>
-        <pre><code>$ curl -d "assertion=&lt;ASSERTION&gt;&audience=mysite.com" "https://browserid.org/verify"
-{
-    "status": "okay",
-    "email": "lloyd@mozilla.com",
-    "audience": "mysite.com",
-    "valid-until": 1308859352261,
-    "issuer": "browserid.org:443"
-}
-</pre></code>
-        </p>
-        <p>
-          <strong>NOTE:</strong> You may choose to validate assertions on your own
-          server.  While a bit more complicated you can reduce your
-          dependencies on others.  Refer
-          to <a href="https://wiki.mozilla.org/Identity/Verified_Email_Protocol">the
-          specification</a> and the <a href="https://github.com/mozilla/browserid/tree/master/verifier">source for the reference
-          validator</a>.
-        </p>
-      </li>
-      <li class="step">
-        <h3>Complete the sign in!</h3>
-        Having completed the steps
-          above, you can trust that the present user really owns the
-          email address returned by the verifier.  You don't need to
-          perform any additional authentication unless you want to!
-          From here, you can perform whatever post-authentication steps
-          you like.
-      </li>
-    </ol>
-    <div class="why">
-      <p>
-        You're done!  <strong>Welcome to BrowserID!</strong>  For more details, have a look at
-        our <a href="http://myfavoritebeer.org/">demonstration</a>, and view
-        <a href="https://github.com/lloyd/myfavoritebeer.org/">the code</a> behind it.
-      </p>
-    </div>
diff --git a/browserid/views/index.ejs b/browserid/views/index.ejs
index a12cdc093..30474ac87 100644
--- a/browserid/views/index.ejs
+++ b/browserid/views/index.ejs
@@ -1,12 +1,58 @@
-    <div class="why">
-      <img style="float: right;" src="i/people.png">
-      <p>For <b>users</b>, BrowserID provides a <b>safer and easier</b> way to sign in.  <a href="/users">How it works.</a></p>
+    <div id="content" style="display:none;">
+        <div id="manage">
+            <h1 class="serif">Account Manager</h1>
+            <div class="edit cf">
+                <strong>Your Accounts</strong>
+
+                <a id="manageAccounts" href="javascript:void(0);">edit</a>
+                <a id="cancelManage" href="javascript:void(0);">done</a>
+            </div>
+            <ul id="emailList">
+                <li class="cf">
+                    <div class="email">me@andychung.ca</div>
+                    <div class="activity cf">
+                        <button class="delete">remove</button>
+                        <span class="status">Last login at 15:55:57, 6/2/2011</span>
+                    </div>
+                </li>
+                <li class="cf">
+                    <div class="email">animalyouth@gmail.com</div>
+                    <div class="activity cf">
+                        <button class="delete">remove</button>
+                        <span class="status">Last login at 8:34:31, 6/1/2011</span>
+                    </div>
+                </li>
+            </ul>
+            <!-- <div id="disclaimer">You may, at any time, <a href="#">cancel your account</a></div> -->
+        </div>
     </div>
-    <div class="why">
-      <img style="float: left;" src="i/developers.png">
-      <p>For <b>developers</b>, BrowserID offers a world class sign-in experience with only a couple lines of code. <a href="developers">Get Started.</a></p>
-    </div>
-    <div class="why">
-      <img style="float: right;" src="i/id.png">
-      <p>For <b>identity providers</b>, BrowserID lets you give your users an identity they can <b>use everywhere</b>. <a href="primaries">Dig Deeper.</a> </p>
+
+    <div id="vAlign">
+        <div id="signUp">
+            <div id="card"><img src="/i/slit.png"></div>
+            <div id="hint"></div>
+            <div id="status"></div>
+
+            <p>Connect with <em>BrowserID</em>, the safest &amp; easiest way to sign in.</p>
+            <p><a class="granted info" href="/about">Take the tour</a> or <button class="granted create">sign up</button></p>
+        </div>
     </div>
+
+<script type="text/javascript">
+$(document).ready(function () {
+    $('.granted').hover(function() {
+        $('#card').toggleClass('insert');
+        $('#status').delay(400).toggleClass('green');
+    });
+
+    $('.create').hover(function() {
+        $('#hint').addClass('signUp').removeClass('info');
+    }).click(function () {
+        document.location = '/signup';
+    });
+
+    $('.info').hover(function() {
+        $('#hint').removeClass('signUp').addClass('info');
+    });
+});
+</script>
diff --git a/browserid/views/layout.ejs b/browserid/views/layout.ejs
index 969eaad11..50df1e2da 100644
--- a/browserid/views/layout.ejs
+++ b/browserid/views/layout.ejs
@@ -1,48 +1,54 @@
 <!DOCTYPE html>
 <html>
 <head>
-  <meta charset=utf-8">
+  <meta charset='utf-8'>
+  <meta name="viewport" content="initial-scale=1.0; maximum-scale=1.0; width=device-width;">
   <title><%- title %></title>
+
   <% if (production) { %>
-      <link rel="stylesheet" type="text/css" href="/css/browserid.min.css">
-      <script src="/js/lib.min.js" type="text/javascript"></script>
+    <link rel="stylesheet" type="text/css" href="/css/browserid.min.css">
+    <script src="/js/lib.min.js" type="text/javascript"></script>
   <% } else { %>
-      <link rel="stylesheet" type="text/css" href="/css/github.css">
-      <link rel="stylesheet" type="text/css" href="/css/style.css">
-      <script src="/js/jquery-1.6.2.min.js" type="text/javascript"></script>
-      <script src="/dialog/resources/storage.js" type="text/javascript"></script>
-      <script src="/dialog/resources/browserid-network.js" type="text/javascript"></script>
-      <script src="/dialog/resources/browserid-identities.js" type="text/javascript"></script>
-      <script src="/dialog/resources/underscore-min.js" type="text/javascript"></script>
-      <script src="/js/browserid.js" type="text/javascript"></script>
+    <link href='http://fonts.googleapis.com/css?family=Droid+Serif:400,400italic,700,700italic' rel='stylesheet' type='text/css'>
+    <link rel="stylesheet" href="/css/style.css" type="text/css" media="screen">
+
+    <script src="/js/jquery-1.6.2.min.js" type="text/javascript"></script>
+    <script src="/dialog/resources/storage.js" type="text/javascript"></script>
+    <script src="/dialog/resources/browserid-network.js" type="text/javascript"></script>
+    <script src="/dialog/resources/browserid-identities.js" type="text/javascript"></script>
+    <script src="/dialog/resources/underscore-min.js" type="text/javascript"></script>
+    <script src="/js/browserid.js" type="text/javascript"></script>
   <% } %>
 </head>
 <body>
-    <header class="<% if(fullpage) { %> half <% } else { %> quarter <% } %>">
-    <a id="manageLink" href="manage">my account</a>
-      <hgroup>
-  <% if (fullpage) { %>
-        <span id="labslogo">Mozilla Labs</span>
-        <h1>BrowserID</h1>
-        <h2>A better way to sign in.</h2>
-  <% } else { %>
-        <h1><a href="/"><img src="i/browserid_logo_lil.png">BrowserID</a></h1>
-        <h2><%- title %></h2>
-  <% } %>
-      </hgroup>
-  </header>
+
+<div id="wrapper">
+
+    <header id="header">
+        <ul class="cf">
+            <li><a class="home" href="/"></a></li>
+        </ul>
+        <ul class="nav cf">
+            <li><a href="/about">How it works</a></li>
+            <li><a href="https://github.com/mozilla/browserid/wiki/How-to-Use-BrowserID-on-Your-Site" target="_blank">Developers</a></li>
+
+            <li><a class="signIn" href="/signin">Sign In</a></li>
+        </ul>
+    </header>
+
     <%- body %>
-  <footer>
-    <div>
-      <div class="right">
-        <p><img src="i/browserid_logo_sm.png"> is an <b>open source experiment</b><br />from the <a href="http://identity.mozilla.com">Identity Team</a> at
-          <a href="https://mozillalabs.com">Mozilla Labs</a>.</p>
-      </div>
-      <div class="left">
-        <p> <a href="https://github.com/mozilla/browserid">Code</a>&nbsp;&nbsp;&nbsp;<a href="http://lloyd.io/how-browserid-works">Documentation</a>&nbsp;&nbsp;&nbsp;<a href="https://lists.mozilla.org/listinfo/dev-identity">Mailing list</a>&nbsp;&nbsp;&nbsp;<a href="/privacy">Privacy</a>&nbsp;&nbsp;&nbsp;<a href="/tos">TOS</a>  </p>
-        <p class="copyright">Copyright © 2011 Mozilla.  All rights reserved. </p>
-      </div>
-    </div>
-  </footer>
+
+    <footer id="footer">
+        <ul class="cf">
+            <li>By the <a href="http://identity.mozilla.com">Identity Team</a> @ <a href="http://mozillalabs.com">Mozilla Labs</a></li>
+            <li>&mdash;</li>
+            <li><a href="/privacy">Privacy</a></li>
+            <li><a href="/tos">TOS</a></li>
+            <!--<li>Copyright © 2011 Mozilla.  All rights reserved</li>-->
+        </ul>
+    </footer>
+
+</div>
+
 </body>
 </html>
diff --git a/browserid/views/manage.ejs b/browserid/views/manage.ejs
deleted file mode 100644
index f48ac42d9..000000000
--- a/browserid/views/manage.ejs
+++ /dev/null
@@ -1,10 +0,0 @@
-    <div class="why">
-      <p>
-        Manage your email addresses in BrowserID.
-      </p>
-    </div>
-    <div id="emailList">
-    </div>
-    <div id="cancelaccount">
-      You may, at any time, <a href="#" id="cancellink">cancel your account</a>.
-    </div>
diff --git a/browserid/views/primaries.ejs b/browserid/views/primaries.ejs
deleted file mode 100644
index 93a1c4617..000000000
--- a/browserid/views/primaries.ejs
+++ /dev/null
@@ -1,12 +0,0 @@
-    <div class="why">
-      <p>
-        This page is dedicated to the <b>Identity Providers</b> who certify users' email addresses without requiring a mailback. These are dudes like Yahoo!, Google, Twitter, Facebook, and
-        even github.  If someone new wants to join they party, hey,
-        they <a href="http://www.mozilla.org/about/manifesto">should
-        be able to</a>.
-      </p>
-      <p>
-      We'll have more information on this in the near future.
-      </p>
-      <br><br><br>
-    </div>
diff --git a/browserid/views/privacy.ejs b/browserid/views/privacy.ejs
index e3fe25f09..d775425d4 100644
--- a/browserid/views/privacy.ejs
+++ b/browserid/views/privacy.ejs
@@ -1,5 +1,6 @@
-    <div class="legal">
-      <h3>What You Should Know About Privacy & BrowserID</h3>
+<div id="content">
+    <div id="legal">
+      <h2>Privacy & BrowserID</h2>
       
       <ul>
         <li>We need your verified email address to register a BrowserID Account, but we don't ask for other personal information.</li>
@@ -88,3 +89,4 @@
         </pre>
       </blockquote>
     </div>
+</div>
diff --git a/browserid/views/prove.ejs b/browserid/views/prove.ejs
index d3fdddbd3..ef2d767fb 100644
--- a/browserid/views/prove.ejs
+++ b/browserid/views/prove.ejs
@@ -1,3 +1,4 @@
+<div id="content">
     <div class="why">
       <p>
         Email Verification
@@ -6,6 +7,7 @@
     <div class="status">
       One moment while we attempt to confirm your email address...
     </div>
+</div>
 <script>
 function getParameterByName( name )
 {
@@ -21,13 +23,11 @@ function getParameterByName( name )
 
 function success() {
   $("div.status").text("Address confirmed!");
-  setTimeout(function() {
-    $("body").fadeOut(1500, function() {
-      // if the close didn't work, then let's redirect the the management page where they'll
-      // get to see the ids that they've created.
-      document.location = '/manage';
-    });
-  }, 1000);
+  $("body").delay(1000).fadeOut(1500, function() {
+    // if the close didn't work, then let's redirect the the main page where they'll
+    // get to see the ids that they've created.
+    document.location = '/';
+  });
 }
 
 function failure(why) {
diff --git a/browserid/views/signin.ejs b/browserid/views/signin.ejs
new file mode 100644
index 000000000..3eae1fd67
--- /dev/null
+++ b/browserid/views/signin.ejs
@@ -0,0 +1,38 @@
+<div id="vAlign">
+    <div id="signUpFormWrap">
+        <!-- XXX this form submits to nowhere -->
+        <form id="signUpForm" class="cf">
+            <h1 class="serif">Sign In</h1>
+            <ul class="inputs">
+                <li>
+                    <label class="serif" for="email">Email Address</label>
+                    <input class="sans" id="email" placeholder="Your Email" type="text">
+                </li>
+                <li>
+                    <label class="serif half" for="password">Password</label>
+                    <div class="half right">
+                        <!-- XXX: this needs to be fixed -->
+                        <a class="forgot" href="/signup">forgot your password?</a>
+                    </div>
+                    <input class="sans" id="password" placeholder="Your Password" type="text">
+                </li>
+            </ul>
+            <div class="submit cf">
+                <div class="remember cf">
+                    <div class="checkAlign">
+                        <input id="memorize" type="checkbox">
+                    </div>
+                    <label for="memorize">remember me</label>
+                </div>
+                <input type="submit" class="create" value="Sign In"/>
+            </div>
+        </form>
+        <a class="signUpIn space" href="/signup">New to BrowserID? Sign up today.</a>
+    </div>
+</div>
+
+<script type="text/javascript">
+  $(document).ready(function () {
+    $('form input:visible:first').focus();
+  });
+</script>
diff --git a/browserid/views/signup.ejs b/browserid/views/signup.ejs
new file mode 100644
index 000000000..6207496ff
--- /dev/null
+++ b/browserid/views/signup.ejs
@@ -0,0 +1,34 @@
+<div id="vAlign">   
+    <div id="signUpFormWrap">
+        <!-- XXX this form submits to nowhere -->
+        <form id="signUpForm" class="cf">
+            <h1 class="serif">Create Account</h1>
+            <ul class="inputs">
+                <li>
+                    <label class="serif" for="email">Email Address</label>
+                    <input class="sans" id="email" placeholder="Your Email" type="text">
+                </li>
+                <li>
+                    <label class="serif" for="password">New Password</label>
+                    <input class="sans" id="password" placeholder="Enter a Password" type="text">
+                </li>
+                <li>
+                    <label class="serif" for="vpassword">Verify Password</label>
+                    <input class="sans" id="vpassword" placeholder="Repeat Password" type="text">
+                </li>
+            </ul>
+            <div class="submit cf">
+                <div class="remember cf">
+                    <a class="signUpIn" href="/signin">Existing account? Sign in.</a>
+                </div>
+                <input type="submit" class="create" value="Create Account"/>
+            </div>
+        </form>
+    </div>
+</div>
+
+<script type="text/javascript">
+  $(document).ready(function () {
+    $('form input:visible:first').focus();
+  });
+</script>
diff --git a/browserid/views/tos.ejs b/browserid/views/tos.ejs
index 3a194fd99..53bae5ecb 100644
--- a/browserid/views/tos.ejs
+++ b/browserid/views/tos.ejs
@@ -1,5 +1,6 @@
-<div class="legal">
-  <h3>Terms of Service &mdash; Overview</h3>
+<div id="content">
+  <div id="legal">
+  <h2>Terms of Service &mdash; Overview</h2>
   
   <ul>
     <li>
@@ -88,5 +89,5 @@
   <h4>Miscellaneous</h4>
   <p>This TOS constitutes the entire agreement between you and Mozilla Corporation (“Mozilla” or we) concerning the Services. These terms are governed by the laws of the state of California, U.S.A., excluding its conflict of law provisions.  The United Nations Convention on Contracts for the International Sale of Goods is expressly disclaimed.  If any portion of these terms is held to be invalid or unenforceable, the remaining portions will remain in full force and effect. In the event of a conflict between a translated version of these terms and the English language version, the English language version shall control.</p>  
 
-  
+  </div>
 </div>
diff --git a/browserid/views/users.ejs b/browserid/views/users.ejs
deleted file mode 100644
index 97b25729d..000000000
--- a/browserid/views/users.ejs
+++ /dev/null
@@ -1,8 +0,0 @@
-    <div class="why" style="height:500px;">
-      <p>
-      As a user of BrowserID, you confirm your email addresses once. Then, you can sign into any web site that supports BrowserID with just two clicks.
-      </p>
-
-      <center><iframe width="480" height="390" src="https://www.youtube.com/embed/l0t9yDLAmFo" frameborder="0" allowfullscreen></iframe></center>
-      
-    </div>
-- 
GitLab