From fc8a5c7976847c1263116aa7d68b9a3279bee0d1 Mon Sep 17 00:00:00 2001
From: Shane Tomlinson <stomlinson@mozilla.com>
Date: Mon, 28 May 2012 11:34:43 +0100
Subject: [PATCH] A lot of cleanup to make the site smoother, IE8 fixes,
 removing dead code, make the arrow transition smoother.

* On the main page, update card with new design.
* Simplify a lot of styles and layout.
* Clean up the "about page"
* Using css transitions for the arrow slide.
* Change all BrowserID text to Persona.
* Fix a problem on the main site where the footer would was not at the bottom in Webkit and Opera browsers.
* Fix the background color or IE8 in the signUpForm and congrats messages.
* When signing in to the main site, use a tooltip instead of error message on incorrect password.
---
 resources/static/css/common.css               |  26 +-
 resources/static/css/m.css                    |  17 +-
 resources/static/css/style.css                | 226 ++++--------------
 resources/static/dialog/css/m.css             |   5 +-
 resources/static/dialog/css/popup.css         |  33 +--
 resources/static/dialog/resources/helpers.js  |  14 +-
 .../dialog/resources/screen_size_hacks.js     |   8 +-
 resources/static/dialog/views/error.ejs       |   4 +-
 .../static/dialog/views/set_password.ejs      |   6 +-
 resources/static/i/badge.png                  | Bin 0 -> 6178 bytes
 resources/static/i/card.png                   | Bin 5906 -> 0 bytes
 resources/static/pages/index.js               |   7 +-
 resources/static/pages/signin.js              |   3 +-
 resources/static/pages/start.js               |  53 +++-
 resources/static/shared/tooltip.js            |   2 -
 resources/views/about.ejs                     |  12 +-
 resources/views/add_email_address.ejs         |  16 +-
 resources/views/cookies_disabled.ejs          |   2 +-
 resources/views/dialog.ejs                    |   8 +-
 resources/views/forgot.ejs                    |  14 +-
 resources/views/index.ejs                     |   9 +-
 resources/views/layout.ejs                    |   4 +-
 resources/views/privacy.ejs                   |  38 +--
 resources/views/signin.ejs                    |  20 +-
 resources/views/signup.ejs                    |  20 +-
 resources/views/test.ejs                      |   4 +-
 resources/views/tos.ejs                       |  16 +-
 resources/views/unsupported_dialog.ejs        |   2 +-
 resources/views/verify_email_address.ejs      |  18 +-
 29 files changed, 235 insertions(+), 352 deletions(-)
 create mode 100644 resources/static/i/badge.png
 delete mode 100644 resources/static/i/card.png

diff --git a/resources/static/css/common.css b/resources/static/css/common.css
index b438d2616..c57cde324 100644
--- a/resources/static/css/common.css
+++ b/resources/static/css/common.css
@@ -95,16 +95,6 @@ a:hover {
   color: #000;
 }
 
-/*
-a.action, #error a {
-  color: #549FDC;
-}
-
-a.action:hover, #error a:hover {
-  color: #58a7e7;
-}
-*/
-
 p:last-child {
   margin-bottom: 0 !important;
 }
@@ -167,7 +157,7 @@ button,
     border-radius: 3px;
     border-bottom: 1px solid #888;
 
-    background-color: #3ea5d9;
+    background-color: #4eb5e5;
     background-image: -webkit-linear-gradient(top, #4eb5e5, #3196cf);
     background-image:    -moz-linear-gradient(top, #4eb5e5, #3196cf);
     background-image:      -ms-linear-gradient(top, #4eb5e5, #3196cf);
@@ -208,7 +198,7 @@ button::-moz-focus-inner, .button::-moz-focus-inner {
 
 .submit button {
     padding: 6px 45px 7px 10px;
-    background-color: #3ea5d9;
+    background-color: #4eb5e5;
     background-image: url("/i/button-arrow.png"), -webkit-linear-gradient(top, #4eb5e5, #3196cf);
     background-image: url("/i/button-arrow.png"),    -moz-linear-gradient(top, #4eb5e5, #3196cf);
     background-image: url("/i/button-arrow.png"),     -ms-linear-gradient(top, #4eb5e5, #3196cf);
@@ -290,18 +280,14 @@ a.secondary[disabled], .submit_disabled a.secondary, .submit_disabled a.secondar
   color: #999;
 }
 
-hr {
-  height: 1px;
-  border: none;
-  background-color: #eee;
-  width: 700px;
-}
-
-
 .right {
   float: right;
 }
 
+.center {
+  text-align: center;
+}
+
 .headline-main, h1, h2, h3, h4 {
   font-family: 'Open Sans', "Lucida Sans", "Lucida Grande", "Lucida Sans Unicode", Verdana, sans-serif;
   font-weight: normal;
diff --git a/resources/static/css/m.css b/resources/static/css/m.css
index 50e242e19..fde9db521 100644
--- a/resources/static/css/m.css
+++ b/resources/static/css/m.css
@@ -49,38 +49,29 @@
     width: 320px;
   }
 
-  header ul.nav {
+  header ul {
     margin: 20px 0 0 0;
     float: none;
     display: block;
     text-align: center;
   }
 
-  header ul.nav li {
+  header ul li {
     margin: 0 10px 0 0;
   }
 
-  /*
-  header ul a {
-    padding: 0 5px;
-  }
-  */
-
   #signUp {
     padding: 0;
     font-size: 16px;
-    line-height: 21px;
-    margin: 0 0 90px;  /* Add a bottom margin so the footer is never overlapped. */
   }
 
   #card {
-    width: 260px;
-    height: 80px;
     background-position: center top;
     background-size: 50%;
     position: relative;
-    margin: 0 20px 20px;
+    margin: 0 auto;
     top: auto;
+    height: 120px;
 
     -webkit-transition: none;
        -moz-transition: none;
diff --git a/resources/static/css/style.css b/resources/static/css/style.css
index 32d45df48..5d6a0c826 100644
--- a/resources/static/css/style.css
+++ b/resources/static/css/style.css
@@ -23,15 +23,6 @@ body {
   color: #fff;
 }
 
-a {
-  color: #6dc7ff;
-  text-shadow: 0 1px 0 #555;
-}
-
-a:hover {
-  color: #58a7e7;
-}
-
 #errorBackground {
   position: fixed;
   top: 0;
@@ -107,64 +98,42 @@ a:hover {
 #wrapper {
   width: 896px;
   margin: 0 auto;
-  /*
-  min-height: 100%;
-  position: relative;
-  */
 }
 
 #content {
-  padding: 84px 0;
+  padding: 50px 0;
 }
 
 #about {
-  font-size: 14px;
-  line-height: 21px;
   color: #444;
-
   text-shadow: 1px 1px 0 rgba(255,255,255,0.5);
-  padding: 0 0 50px 0;
+  padding: 50px 75px;
   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;
+  box-shadow: 0 1px 2px rgba(0, 0, 0, 0.25);
+  border-radius: 5px;
 }
 
 h1 {
-  color: #fff;
-  text-shadow: 0px 1px 0px rgba(0,0,0,0.25);
-  font-weight: 300;
+  margin-bottom: 35px;
 }
 
-#about h1 {
-  margin: 0;
-  padding: 25px 0;
-  text-align: center;
+.headline-main, h1 {
+  font-weight: 300;
 }
 
 .row {
-  margin: 0 0 25px 0;
-  padding: 25px 50px 0 50px;
+  margin: 25px 0 0 0;
+  padding: 0 0 25px 0;
   position: relative;
+  border-bottom: 1px solid #eee;
 }
 
-.row:last-child {
-  margin: 0;
-}
 
-.row h2 {
-  font-size: 21px;
-  font-weight: normal;
-  color: #222;
-  line-height: 32px;
-  display: inline-block;
+
+
+.row:last-child {
+  padding-bottom: 0;
+  border-bottom: none;
 }
 
 .row div {
@@ -211,39 +180,11 @@ div.steps {
   background-position: left -48px;
 }
 
-/*
-
-.sumo {
-  text-align: center;
-}
 
-.sumo > a {
-  color: #444;
-  border-bottom: 1px dotted;
-}
-*/
 #legal {
   padding: 75px 125px;
 }
 
-#newuser {
-  margin: 0;
-  height: 0;
-  -ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=0)";
-  opacity: 0;
-}
-
-.newuser #newuser {
-  height: 32px;
-  -ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=100)";
-  opacity: 1;
-  -webkit-transition: all 500ms;
-     -moz-transition: all 500ms;
-      -ms-transition: all 500ms;
-       -o-transition: all 500ms;
-          transition: all 500ms;
-}
-
 #manage {
   padding: 75px;
 }
@@ -341,7 +282,6 @@ div.steps {
 }
 
 #manage #emailList {
-  list-style-type: none;
   border-top: 1px solid #eee;
 }
 
@@ -448,10 +388,6 @@ button.delete:active {
   text-align: right;
 }
 
-h1 {
-  margin-bottom: 35px;
-}
-
 #hAlign {
   width: 700px;
   margin: 0 auto;
@@ -466,15 +402,17 @@ h1 {
 }
 
 #signUp {
-  /*
-  font-size: 24px;
-  line-height: 32px;
-  text-shadow: 1px 1px 0 rgba(255,255,255,0.5);
-  position: relative;
-  */
   padding: 0 0 0 250px;
 }
 
+.tour a[href="/about"] {
+  color: #6dc7ff;
+}
+
+.tour a[href="/about"]:hover {
+  color: #58a7e7;
+}
+
 #signUp h1 {
   max-width: 390px;
 }
@@ -486,14 +424,8 @@ h1 {
 
 .tour a {
   margin: 0 7px;
-}
-
-  /*
-#signUpForm a, .tour .action {
-  color: #6dc7ff;
   text-shadow: 0 1px 0 #555;
 }
-*/
 
 .tour .button {
   font-size: 19px;
@@ -511,17 +443,14 @@ h1 {
 
 .tour .button:hover {
   color: #fff;
+  border-color: #338fd1 #277ec4 #0e6bb6 #277ec4;
+  background-image: -webkit-linear-gradient(top, #338fd1, #0e6bb6);
+  background-image:    -moz-linear-gradient(top, #338fd1, #0e6bb6);
+  background-image:     -ms-linear-gradient(top, #338fd1, #0e6bb6);
+  background-image:      -o-linear-gradient(top, #338fd1, #0e6bb6);
+  background-image:         linear-gradient(top, #338fd1, #0e6bb6);
 }
 
-  /*
-#signUp .tour {
-  border-bottom: 1px dotted #90c0db;
-}
-#signUp p {
-  margin: 0 0 16px 0;
-}
-*/
-
 .create {
   float: none;
   vertical-align: middle;
@@ -530,13 +459,10 @@ h1 {
 #card {
   width: 200px;
   height: 200px;
-  display: block;
   position: absolute;
   z-index: 1;
-  top: 50%;
   left: 0;
-  margin-top: -119px;
-  background-image: url('/i/card.png');
+  background-image: url('/i/badge.png');
   background-position: 0px center;
   background-repeat: no-repeat;
 
@@ -555,31 +481,11 @@ h1 {
 }
 
 
-#hint { /* put hints on rollover */
-  width: 200px;
-  height: 200px;
-  display: block;
-  position: absolute;
-  top: 50%;
-  left: 0;
-  margin-top: -119px;
-  z-index: 0;
-  background-image: url('/i/hint.png');
-  background-repeat: no-repeat;
-}
-
-#hint.info{
-  background-position: left center;
-}
-
-#hint.signUp {
-  background-position: right center;
-}
-
 #signUpForm, #congrats {
   margin: 0 auto;
   width: 475px;
   padding: 20px;
+  background-color: #556875;
   background-color: rgba(0,0,0,0.1);
 
   -webkit-border-radius: 5px;
@@ -589,11 +495,16 @@ h1 {
 }
 
 #signUpForm a {
+  color: #6dc7ff;
   text-shadow: 0 1px 0 #888;
 }
 
+#signUpForm a:hover {
+  color: #58a7e7;
+}
+
+
 #signUpForm ul {
-  list-style-type: none;
   margin: 0 0 20px;
 }
 
@@ -643,11 +554,6 @@ h1 {
   display: block;
 }
 
-#congrats p {
-    color: #62615F;
-    text-shadow: 1px 1px 0 rgba(255, 255, 255, 0.5);
-}
-
 #congrats .siteinfo {
     margin-top: 10px;
 }
@@ -658,28 +564,12 @@ h1 {
 }
 
 
-.notifications {
-  list-style-type: none;
-}
-
 .notifications > .notification {
-  margin-top: 20px;
-  padding: 5px;
-  line-height: 21px;
-  color: #62615F;
-  text-shadow: 1px 1px 0 rgba(255, 255, 255, 0.5);
-  -webkit-border-radius: 3px;
-     -moz-border-radius: 3px;
-       -o-border-radius: 3px;
-          border-radius: 3px;
+  border-radius: 3px;
   display: none;
   text-align: center;
 }
 
-.notifications > .notification strong {
-  color: #222;
-}
-
 .notifications .notification.error {
   color: red;
   background-color: rgba(255,0,0,0.25);
@@ -687,10 +577,6 @@ h1 {
 
 
 #wrapper > header {
-  /*
-  position: absolute;
-  top: 0;
-  */
   font-weight: bold;
   z-index: 1;
 }
@@ -752,10 +638,6 @@ section > header {
 }
 
 footer {
-  /*
-  position: absolute;
-  bottom: 0;
-  */
   background-color: #eff1f3;
 }
 
@@ -772,41 +654,31 @@ footer ul li:first-child a {
   color: #484848;
 }
 
-footer a {
-  text-shadow: 0 1px 0 #fff;
-}
-/*
-footer a {
-  color: #aaa;
-  border-bottom: 1px dotted #ccc;
+footer ul li:first-child a:hover {
+  border-bottom: 1px dotted #000;
 }
 
-footer a:hover {
-  color: #777;
-}
-*/
-
 .newsbanner {
-  margin-top: 60px; /* put a margin-top on so that it does not go under the header */
+  display: none;
   background-color: #faca33;
   line-height: 32px;
   border-radius: 4px;
-  margin-bottom: 20px;
   text-align: center;
   color: #626160;
   text-shadow: 1px 1px 0 rgba(255,255,255,0.5);
-  -webkit-transition: all 500ms;
-     -moz-transition: all 500ms;
-      -ms-transition: all 500ms;
-       -o-transition: all 500ms;
-          transition: all 500ms;
 }
 
+.newuser .newsbanner {
+  margin-bottom: 50px;
+  display: block;
+}
+
+/*
 .newsbanner a {
-  border-bottom: 1px dotted;
+  color: #348fd0;
 }
 
 .newsbanner a:hover {
   color: #000;
 }
-
+*/
diff --git a/resources/static/dialog/css/m.css b/resources/static/dialog/css/m.css
index 698c66bfe..7596c5b76 100644
--- a/resources/static/dialog/css/m.css
+++ b/resources/static/dialog/css/m.css
@@ -63,12 +63,11 @@
     padding: 10px;
   }
 
-  #signIn .container {
+  #signIn .table {
       width: 100%;
-      padding: 20px;
   }
 
-  .pickemail #signIn .container {
+  .pickemail #signIn .table {
       padding-top: 0;
   }
 
diff --git a/resources/static/dialog/css/popup.css b/resources/static/dialog/css/popup.css
index b7a187d89..ac5e50568 100644
--- a/resources/static/dialog/css/popup.css
+++ b/resources/static/dialog/css/popup.css
@@ -14,15 +14,27 @@ body {
 }
 
 #signIn {
-    background-color: #eff0f2;
     position: absolute;
     left: 0;
     top: 0;
     bottom: 0;
-    width: 275px;
+    width: 393px;
+    padding-right: 105px;
+}
+
+.completing #signIn {
+    /**
+     * The width is set in helpers.js->animateClose
+     */
+    -webkit-transition: all 750ms ease;
+       -moz-transition: all 750ms ease;
+        -ms-transition: all 750ms ease;
+         -o-transition: all 750ms ease;
+            transition: all 750ms ease;
 }
 
 
+
 header, footer {
     position: absolute;
     z-index: 2;
@@ -111,14 +123,6 @@ section {
     vertical-align: middle;
 }
 
-/*
-.contents {
-    max-height: 210px;
-    overflow-x: hidden;
-    overflow-y: auto;
-}*/
-
-
 section > .contents {
     display: table-cell;
     vertical-align: middle;
@@ -236,13 +240,14 @@ section > .contents {
 
 
 #signIn .table {
+    background-color: #eff0f2;
     padding: 20px;
 }
 
 .arrowContainer {
     position: absolute;
     width: 105px;
-    right:  -105px;
+    right:  0;
     top: 0;
     bottom: 0;
 }
@@ -262,7 +267,7 @@ section > .contents {
 
 #favicon {
     position: absolute;
-    left: 375px;
+    left: 400px;
     top: 0;
     bottom: 0;
     right: 0;
@@ -302,7 +307,7 @@ div#required_email {
     overflow-y: auto;
 }
 
-#selectEmail.center {
+#selectEmail.vcenter {
     position: static;
     overflow-y: visible;
     /* The below 1px padding is part of a fix for a bug in webkit where there
@@ -374,12 +379,12 @@ div#required_email {
 a.emphasize {
   border-bottom: 1px solid #b8babc;
   border-radius: 2px;
-  background-color: #F0EFED;
   color: #484848;
   font-size: 11px;
   padding: 0 5px;
   display: inline-block;
   line-height: 22px;
+  background-color: #e5e9eb;
   background-image: -webkit-linear-gradient(top, #e5e9eb, #d8dbde);
   background-image:    -moz-linear-gradient(top, #e5e9eb, #d8dbde);
   background-image:     -ms-linear-gradient(top, #e5e9eb, #d8dbde);
diff --git a/resources/static/dialog/resources/helpers.js b/resources/static/dialog/resources/helpers.js
index b08ed3223..64225604a 100644
--- a/resources/static/dialog/resources/helpers.js
+++ b/resources/static/dialog/resources/helpers.js
@@ -19,11 +19,15 @@
         doAnimation = $("#signIn").length && bodyWidth > 640;
 
     if (doAnimation) {
-      var endWidth = bodyWidth - $(".arrowContainer").outerWidth() - 10;
-
-      $("#signIn").animate({"width" : endWidth + "px"}, 750, function () {
-         body.delay(500).animate({ "opacity" : "0.5"}, 500);
-      });
+      var endWidth = bodyWidth - 10;
+
+      body.addClass("completing");
+      /**
+       * CSS transitions are used to do the slide effect.  jQuery has a bug
+       * where it does not do transitions correctly if the box-sizing is set to
+       * border-box and the element has a padding
+       */
+      $("#signIn").css("width", endWidth + "px");
 
       // Call setTimeout here because on Android default browser, sometimes the
       // callback is not correctly called, it seems as if jQuery does not know
diff --git a/resources/static/dialog/resources/screen_size_hacks.js b/resources/static/dialog/resources/screen_size_hacks.js
index 66b14865f..503d84852 100644
--- a/resources/static/dialog/resources/screen_size_hacks.js
+++ b/resources/static/dialog/resources/screen_size_hacks.js
@@ -29,7 +29,7 @@
       // re-introduce constraints
 
       if(height < $("#signIn .vertical").innerHeight()) {
-        selectEmailEl.addClass("center");
+        selectEmailEl.addClass("vcenter");
 
         /* The below width adjustment is part of a fix for a bug in webkit where
          * there is a ghost padding-right to accommodate the scroll bar that is
@@ -44,12 +44,12 @@
         selectEmailEl.width(width);
       }
       else {
-        selectEmailEl.removeClass("center");
+        selectEmailEl.removeClass("vcenter");
       }
     }
     else {
         // First, remove the desktop hacks
-        selectEmailEl.removeClass("center");
+        selectEmailEl.removeClass("vcenter");
 
         // Hack to make sure the email addresses stay within their container.
         // We have to do this ghettoness because table-cells (which are used to
@@ -57,7 +57,7 @@
         // and the ellipsis never show up as expected.
 
         // First, find the maximum width that emails can be.
-        selectEmailEl.css("width", "10px").removeClass("center");
+        selectEmailEl.css("width", "10px").removeClass("vcenter");
         var constrainedWidth = $("#signIn .contents").innerWidth();
 
         // Find the real maximum width.
diff --git a/resources/static/dialog/views/error.ejs b/resources/static/dialog/views/error.ejs
index 4d5b4a8e8..0b35cd680 100644
--- a/resources/static/dialog/views/error.ejs
+++ b/resources/static/dialog/views/error.ejs
@@ -7,11 +7,11 @@
 
   <% if (typeof network !== "undefined" && network.status == 503) { %>
     <h2 id="error_503">
-      <%= gettext("We are very sorry.") %><span class="emphasis"> <%= getttext("The server is under extreme load!") %></span>
+      <%= gettext("We are very sorry.") %><span class="emphasis"> <%= gettext("The server is under extreme load!") %></span>
     </h2>
   <% } else if (typeof network !== "undefined" && network.status == 403) { %>
     <h2 id="error_403">
-      <%= gettext("BrowserID requires cookies") %>
+      <%= gettext("Persona requires cookies") %>
     </h2>
     <%= format(gettext("Please close this window, <a %s>enable cookies</a> and try again"), [" target='_blank' href='http://support.mozilla.org/en-US/kb/Websites%20say%20cookies%20are%20blocked'"]) %>
   <% } else { %>
diff --git a/resources/static/dialog/views/set_password.ejs b/resources/static/dialog/views/set_password.ejs
index 750764e20..3cc5e014c 100644
--- a/resources/static/dialog/views/set_password.ejs
+++ b/resources/static/dialog/views/set_password.ejs
@@ -2,15 +2,15 @@
    - License, v. 2.0. If a copy of the MPL was not distributed with this
    - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
 
-  <strong><%= gettext('Welcome to BrowserID!') %></strong>
+  <strong><%= gettext('Welcome to Persona!') %></strong>
 
   <div class="form_section" id="set_password">
       <ul class="inputs">
           <li>
             <% if(password_reset || !cancelable) { %>
-              <%= gettext("Choose a new password you'll use when you sign in with BrowserID.") %>
+              <%= gettext("Choose a new password you'll use when you sign in with Persona.") %>
             <% } else { %>
-              <%= gettext("Next, choose a new password you'll use when you sign in with BrowserID.") %>
+              <%= gettext("Next, choose a new password you'll use when you sign in with Persona.") %>
             <% } %>
           </li>
 
diff --git a/resources/static/i/badge.png b/resources/static/i/badge.png
new file mode 100644
index 0000000000000000000000000000000000000000..1af14efe525f3e2291cd88d37d195b147801d504
GIT binary patch
literal 6178
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

literal 0
HcmV?d00001

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

literal 5906
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
ZKZtBqaksBSn4jEODvBBkFnNohe*xQkgn|G7

diff --git a/resources/static/pages/index.js b/resources/static/pages/index.js
index 6e4a0b8e9..cd2250ce1 100644
--- a/resources/static/pages/index.js
+++ b/resources/static/pages/index.js
@@ -7,17 +7,12 @@
   "use strict";
 
   BrowserID.index = function () {
-    $('.granted').hover(function() {
+    $('.tour a').hover(function() {
       $('#card').toggleClass('insert');
-      $('#status').delay(400).toggleClass('green');
     });
 
     $('.create').hover(function() {
       $('#hint').addClass('signUp').removeClass('info');
     });
-
-    $('.info').hover(function() {
-      $('#hint').removeClass('signUp').addClass('info');
-    });
   };
 }());
diff --git a/resources/static/pages/signin.js b/resources/static/pages/signin.js
index 813cce5cd..8a487f82f 100644
--- a/resources/static/pages/signin.js
+++ b/resources/static/pages/signin.js
@@ -13,6 +13,7 @@ BrowserID.signIn = (function() {
       helpers = bid.Helpers,
       errors = bid.Errors,
       pageHelpers = bid.PageHelpers,
+      tooltip = bid.Tooltip,
       doc = document,
       winchan = window.WinChan,
       verifyEmail,
@@ -97,7 +98,7 @@ BrowserID.signIn = (function() {
         }
         else {
           // bad authentication
-          $(".notifications .notification.badlogin").fadeIn();
+          tooltip.showTooltip("#cannot_authenticate");
         }
         complete(oncomplete);
       }, pageHelpers.getFailure(errors.authenticate, oncomplete));
diff --git a/resources/static/pages/start.js b/resources/static/pages/start.js
index f44bd5d49..421b11052 100644
--- a/resources/static/pages/start.js
+++ b/resources/static/pages/start.js
@@ -37,16 +37,50 @@ $(function() {
     }
   }
 
+  // Firefox and IE have rendering bugs where if the box-sizing is set to
+  // border-box and a min-height is set, padding is added on top of the
+  // min-height, making elements render using the normal W3C box model.  Use
+  // a bit of bug detection here in case the bugs are fixed.
+  function paddingAddedToMinHeight() {
+    var div = document.createElement("div");
+    $(div).css({
+      "box-sizing": "border-box",
+      "min-height": "100px",
+      "padding-top": "10px",
+      "position": "absolute",
+      "top": "-2000px"
+    });
+
+    $("body").append(div);
+
+    var divHeight = parseInt($(div).outerHeight(), 10);
+    $(div).remove();
+    return divHeight === 110;
+  }
+
   xhr.init({ time_until_delay: 10 * 1000 });
   network.init();
 
   $(".display_always,.display_auth,.display_nonauth").hide();
-  if ($('#vAlign').length) {
-    $(window).bind('resize', function() {
-      var height = $(window).height() - $("header").outerHeight() - $("footer").outerHeight();
-      $('#vAlign').css({'height' : height });
-    }).trigger('resize');
-  }
+  $(window).bind('resize', function() {
+    var height = $(window).height() - $("header").outerHeight() - $("footer").outerHeight();
+    $("#vAlign").css({ "height": height });
+
+
+    // On the manage page, the content element sometimes does not take up the
+    // full height of the screen, leaving the footer to float somewhere in the
+    // middle.  To compensate, force the min-height of the content so that the
+    // footer remains at the bottom of the screen.
+
+    var paddingTop = 0, paddingBottom = 0;
+
+    if(paddingAddedToMinHeight()) {
+      paddingTop = parseInt($("#content").css("padding-top") || 0, 10);
+      paddingBottom = parseInt($("#content").css("padding-bottom") || 0, 10);
+    }
+
+    $("#content").css({ "min-height": height - paddingTop - paddingBottom });
+  }).trigger('resize');
 
   moduleManager.register("xhr_delay", XHRDelay);
   moduleManager.start("xhr_delay");
@@ -69,7 +103,6 @@ $(function() {
     // instead just show the error message.
     if(!status) return;
 
-    dom.addClass("body", "ready");
 
     if (!path || path === "/") {
       bid.index();
@@ -112,6 +145,11 @@ $(function() {
       else {
         displayNonAuthenticated();
       }
+
+      // The footer is initially tied to the bottom while the page is loading
+      // so that it does not appear to flicker.  Untie the footer and let it
+      // rest in its natural position.
+      $("footer").css({ position: "", bottom: "" });
     });
 
     function displayAuthenticated() {
@@ -120,6 +158,7 @@ $(function() {
 
       if (!path || path === "/") {
         bid.manageAccount();
+        $(window).trigger("resize");
       }
 
       $("a.signOut").click(function(event) {
diff --git a/resources/static/shared/tooltip.js b/resources/static/shared/tooltip.js
index db697e4c6..912595e49 100644
--- a/resources/static/shared/tooltip.js
+++ b/resources/static/shared/tooltip.js
@@ -44,12 +44,10 @@ BrowserID.Tooltip = (function() {
     bid.Tooltip.shown = true;
     el.fadeIn(ANIMATION_TIME, function() {
       hideTimer = setTimeout(function() {
-        /*
         el.fadeOut(ANIMATION_TIME, function() {
           bid.Tooltip.shown = false;
           if(complete) complete();
         });
-        */
       }, displayTimeMS);
     });
   }
diff --git a/resources/views/about.ejs b/resources/views/about.ejs
index 358f315a0..a7eb8dea4 100644
--- a/resources/views/about.ejs
+++ b/resources/views/about.ejs
@@ -5,9 +5,9 @@
 <div id="content" class="display_always">
     <div id="about">
 
-        <h2>
+        <h1 class="center">
           <strong>Persona</strong> is an <strong>easier</strong> way to sign in
-        </h2>
+        </h1>
 
 
         <div class="row one cf">
@@ -17,8 +17,6 @@
             </div>
         </div>
 
-        <hr />
-
         <div class="row two cf">
             <img src="/i/tutorial_2.png">
             <div>
@@ -27,8 +25,6 @@
 
         </div>
 
-        <hr />
-
         <div class="row three cf">
             <img src="/i/tutorial_3.png">
             <div>
@@ -36,9 +32,7 @@
             </div>
         </div>
 
-        <hr />
-
-        <div class="row cf sumo">
+        <div class="row cf center">
             If you need some help with Persona, head over to our <a href="https://support.mozilla.com/en-US/kb/what-browserid-and-how-does-it-work" target="_blank">support center</a>.
         </div>
     </div>
diff --git a/resources/views/add_email_address.ejs b/resources/views/add_email_address.ejs
index a9de2a302..22d36ab73 100644
--- a/resources/views/add_email_address.ejs
+++ b/resources/views/add_email_address.ejs
@@ -12,16 +12,16 @@
         <form id="signUpForm" class="cf">
             <p class="hint siteinfo"><%= gettext('Finish signing into:') %> <strong><span class="website"></span></strong></p>
 
-            <h1 class="serif"><%= gettext('Email Verification') %></h1>
+            <h1><%= gettext('Email Verification') %></h1>
 
             <ul class="inputs">
                 <li>
-                    <label class="serif" for="email"><%= gettext('Email Address') %></label>
-                    <input class="youraddress sans" id="email" placeholder="<%= gettext('Your Email') %>" type="email" value="" disabled="disabled" maxlength="254" />
+                    <label for="email"><%= gettext('Email Address') %></label>
+                    <input class="youraddress" id="email" placeholder="<%= gettext('Your Email') %>" type="email" value="" disabled="disabled" maxlength="254" />
                 </li>
                 <li class="password_entry">
-                    <label class="serif" for="password"><%= gettext('Password') %></label>
-                    <input class="sans" id="password" placeholder="<%= gettext('Your Password') %>" type="password" autofocus maxlength=80 />
+                    <label for="password"><%= gettext('Password') %></label>
+                    <input id="password" placeholder="<%= gettext('Your Password') %>" type="password" autofocus maxlength=80 />
 
                     <div class="tooltip" id="password_required" for="password">
                       <%= gettext('Password is required.') %>
@@ -37,8 +37,8 @@
                 </li>
 
                 <li class="password_entry" id="verify_password">
-                    <label class="serif" for="vpassword"><%= gettext('Verify Password') %></label>
-                    <input class="sans" id="vpassword" placeholder="<%= gettext('Repeat Password') %>" type="password" maxlength="80">
+                    <label for="vpassword"><%= gettext('Verify Password') %></label>
+                    <input id="vpassword" placeholder="<%= gettext('Repeat Password') %>" type="password" maxlength="80">
 
                     <div id="vpassword_required" class="tooltip" for="vpassword">
                       <%= gettext('Verification password is required.') %>
@@ -59,7 +59,7 @@
         </form>
 
         <div id="congrats">
-            <p class="serif">
+            <p>
                 <%- gettext('<strong class="email">Your address</strong> has been verified!') %>
 
                 <p class="siteinfo">
diff --git a/resources/views/cookies_disabled.ejs b/resources/views/cookies_disabled.ejs
index 01fb4baea..1116dcf84 100644
--- a/resources/views/cookies_disabled.ejs
+++ b/resources/views/cookies_disabled.ejs
@@ -6,7 +6,7 @@
       <div class="table">
         <div class="vertical contents">
           <h2 id="reason">
-            <%= gettext("BrowserID requires cookies") %>
+            <%= gettext("Persona requires cookies") %>
           </h2>
 
           <p>
diff --git a/resources/views/dialog.ejs b/resources/views/dialog.ejs
index 5e9b7ebe6..1752efdd3 100644
--- a/resources/views/dialog.ejs
+++ b/resources/views/dialog.ejs
@@ -12,15 +12,15 @@
         </div>
 
         <div id="signIn">
-            <div class="arrowContainer">
-              <div class="arrow"></div>
-            </div>
-            <div class="table container">
+            <div class="table">
               <div class="vertical">
                 <div class="contents">
                 </div>
               </div>
             </div>
+            <div class="arrowContainer">
+              <div class="arrow"></div>
+            </div>
         </div>
       </form>
     </section>
diff --git a/resources/views/forgot.ejs b/resources/views/forgot.ejs
index ba5450fa1..a69d963f8 100644
--- a/resources/views/forgot.ejs
+++ b/resources/views/forgot.ejs
@@ -6,7 +6,7 @@
     <div id="vAlign">
         <!-- XXX this form submits to nowhere -->
         <form id="signUpForm" class="cf authform" novalidate>
-            <h1 class="serif">Forgot Password</h1>
+            <h1>Forgot Password</h1>
             <div class="notifications">
                 <div class="notification emailsent">
                   <p>
@@ -26,8 +26,8 @@
 
             <ul class="inputs forminputs">
                 <li>
-                    <label class="serif" for="email">Email Address</label>
-                    <input class="sans" id="email" autofocus required placeholder="Your Email" type="email" autocapitalize="off" autocorrect="off" maxlength="254" />
+                    <label for="email">Email Address</label>
+                    <input id="email" autofocus required placeholder="Your Email" type="email" autocapitalize="off" autocorrect="off" maxlength="254" />
 
                     <div id="email_format" class="tooltip" for="email">
                       This field must be an email address.
@@ -47,8 +47,8 @@
                 </li>
 
                 <li>
-                    <label class="serif" for="password">Password</label>
-                    <input class="sans" id="password" placeholder="Password" type="password" maxlength="80">
+                    <label for="password">Password</label>
+                    <input id="password" placeholder="Password" type="password" maxlength="80">
 
                     <div id="password_required" class="tooltip" for="password">
                         Password is required.
@@ -64,8 +64,8 @@
                 </li>
 
                 <li>
-                    <label class="serif" for="vpassword">Verify Password</label>
-                    <input class="sans" id="vpassword" placeholder="Repeat Password" type="password" maxlength="80">
+                    <label for="vpassword">Verify Password</label>
+                    <input id="vpassword" placeholder="Repeat Password" type="password" maxlength="80">
 
                     <div id="password_required" class="tooltip" for="vpassword">
                       Verification password is required.
diff --git a/resources/views/index.ejs b/resources/views/index.ejs
index 7396a4500..654475f4d 100644
--- a/resources/views/index.ejs
+++ b/resources/views/index.ejs
@@ -6,13 +6,12 @@
       <div id="vAlign">
           <div id="signUp">
               <div id="card"><img src="/i/slit.png"></div>
-              <div id="hint"></div>
 
-              <h1 class="white headline-main thin">Connect with Mozilla Persona, the safest &amp; easiest way to sign in.</h1>
+              <h1 class="white headline-main">Connect with Mozilla Persona, the safest &amp; easiest way to sign in.</h1>
               <p class="tour white">
-                <a class="granted action" href="/about">Take the tour</a>
+                <a href="/about">Take the tour</a>
                 or
-                <a href="/signup" class="button granted create">Sign up &rarr;</a>
+                <a href="/signup" class="button create">Sign up &rarr;</a>
               </p>
           </div>
       </div>
@@ -32,7 +31,7 @@
         </div>
 
         <div id="manage">
-            <h2>Account Manager</h2>
+            <h1>Account Manager</h1>
 
             <section>
               <header class="buttonrow cf">
diff --git a/resources/views/layout.ejs b/resources/views/layout.ejs
index 929277983..16b5eaa3e 100644
--- a/resources/views/layout.ejs
+++ b/resources/views/layout.ejs
@@ -15,7 +15,7 @@
   <%- cachify_js(util.format('/production/%s/browserid.js', locale)) %>
   <title><%= format(gettext("Mozilla Person: %s"), [title]) %></title>
 </head>
-<body>
+<body class="loading">
 
 <div id="errorBackground"></div>
 
@@ -41,7 +41,7 @@
 
 </div>
 
-<footer id="footer">
+<footer style="position: absolute; bottom: 0;">
     <ul class="cf">
         <li><%- format(gettext('By the <a %s>Identity Team</a> @ <a %s>Mozilla Labs</a>'),
                        [" href='http://identity.mozilla.com' target='_blank'", " href='http://mozillalabs.com' target='_blank'"]) %></li>
diff --git a/resources/views/privacy.ejs b/resources/views/privacy.ejs
index 789f7c344..f1046b72a 100644
--- a/resources/views/privacy.ejs
+++ b/resources/views/privacy.ejs
@@ -4,29 +4,29 @@
 
 <div id="content" class="display_always">
     <div id="legal">
-      <h2>Privacy & BrowserID</h2>
+      <h1>Privacy & Persona</h1>
 
       <ul>
-        <li>We need your verified email address to register a BrowserID Account, but we don't ask for other personal information.</li>
+        <li>We need your verified email address to register a Persona Account, but we don't ask for other personal information.</li>
 
         <li>Your email address is shared with sites you visit to help you sign in, but is never given to anyone without your express consent.</li>
 
-        <li>As part of the normal operation of the BrowserID service, Mozilla will retain a log of which sites you have disclosed your email to.</li>
+        <li>As part of the normal operation of the Persona service, Mozilla will retain a log of which sites you have disclosed your email to.</li>
 
-        <li>We don't sell your data or use ad networks on the BrowserID webpages or service.</li>
+        <li>We don't sell your data or use ad networks on the Persona webpages or service.</li>
 
         <li>In the future, Mozilla will seek to bring email providers into this system, at which point their privacy policies and terms of service will apply (if you use an email provided by them).</li>
 
         <li>For the full text of our privacy practices and all the "legalese" and details, please read our privacy policy below.</li>
 </ul>
 
-      <h3>BrowserID Privacy Policy</h3>
+      <h3>Persona Privacy Policy</h3>
       <p><em>Last Updated: 13 July 2011</em></p>
 
-      <p>This privacy policy explains to what extent Mozilla Corporation  (*) ("Mozilla") collects and uses information about users of BrowserID ("BrowserID Service"), where such users use the Mozilla-created servers and client.</p>
+      <p>This privacy policy explains to what extent Mozilla Corporation  (*) ("Mozilla") collects and uses information about users of Persona ("Persona Service"), where such users use the Mozilla-created servers and client.</p>
 
       <h4>Definitions</h4>
-      <p>"<b>Personal Information</b>" is information that  you provide to us that personally identifies you, such as your name, phone number, or email address. Except for your email address, Mozilla  does not collect or require end-users of the BrowserID Service to furnish Personal Information.</p>
+      <p>"<b>Personal Information</b>" is information that  you provide to us that personally identifies you, such as your name, phone number, or email address. Except for your email address, Mozilla  does not collect or require end-users of the Persona Service to furnish Personal Information.</p>
 
       <p>"<b>Non-Personal Information</b>" is information  that cannot by itself be directly associated with a specific person or entity. Non-Personal Information includes but is not limited to your  computer's configuration and the version of Firefox you use.</p>
 
@@ -39,47 +39,47 @@
 
       <h4>Gathering, Use and Disclosure of Transmission Data</h4>
       <h5>Account Information</h5>
-      <p>Before you are able to access BrowserID, you will be required to register. To register, the BrowserID Service will require the following Personal Information and Potentially Personal Information from you: your email address, and password. Your username and email address are  transferred to Mozilla using encryption called SSL. Your email address is used by us to provide you the services, such as allowing us to help you recover your account if you lose your password. Your password is transferred to Mozilla using SSL encryption but is only retained by Mozilla's servers in a hash format (which means a low level of encryption is applied).</p>
+      <p>Before you are able to access Persona, you will be required to register. To register, the Persona Service will require the following Personal Information and Potentially Personal Information from you: your email address, and password. Your username and email address are  transferred to Mozilla using encryption called SSL. Your email address is used by us to provide you the services, such as allowing us to help you recover your account if you lose your password. Your password is transferred to Mozilla using SSL encryption but is only retained by Mozilla's servers in a hash format (which means a low level of encryption is applied).</p>
 
       <p>Once you have registered, your password is used to help prevent unauthorized access to your account. </p>
 
       <h5>Data Used to Provide the Services</h5>
-      <p>Mozilla receives and uses the following information for the purpose of providing and improving the BrowserID Service: IP address, email, date and time of accessing the BrowserID Service, and various operational data such as the type of client OS and Firefox version (which are also known as the user agent string).</p>
+      <p>Mozilla receives and uses the following information for the purpose of providing and improving the Persona Service: IP address, email, date and time of accessing the Persona Service, and various operational data such as the type of client OS and Firefox version (which are also known as the user agent string).</p>
 
       <h5>Disclosure to Third Parties</h5>
-      <p>The BrowserID Service will disclose your verified email address to a Web site of your choosing, only after you have expressly consented to such disclosure. A Web site is allowed to request a verified email address, which results in you being prompted about the site's request. After you have agreed, the service may remember your choice, so that you may remain signed-in on the site on subsequent visits.</p>
+      <p>The Persona Service will disclose your verified email address to a Web site of your choosing, only after you have expressly consented to such disclosure. A Web site is allowed to request a verified email address, which results in you being prompted about the site's request. After you have agreed, the service may remember your choice, so that you may remain signed-in on the site on subsequent visits.</p>
 
       <p>Mozilla will not otherwise knowingly disclose Personal Information or Potentially Personal Information to other third parties, except when required to do so, such as in order to comply with any law, regulation, or valid legal process, such as a search warrant, subpoena, statute, court order, or if necessary or appropriate to address an unlawful or harmful activity.</p>
 
       <h5>What Data is Analyzed by Mozilla?</h5>
-      <p>Without your explicit approval and opt-in, Mozilla will only use the Usage Statistics to understand your use of the BrowserID Service.</p>
+      <p>Without your explicit approval and opt-in, Mozilla will only use the Usage Statistics to understand your use of the Persona Service.</p>
 
       <h5>How Are the Usage Statistics Used?</h5>
-      <p>Mozilla will use the Usage Statistics gathered through the operation of the BrowserID Service to improve the service and other related Mozilla products and services. By identifying patterns and trends in usage, Mozilla and its community is able to better design products and services to improve users' experiences, both in terms of content and ease of use.</p>
+      <p>Mozilla will use the Usage Statistics gathered through the operation of the Persona Service to improve the service and other related Mozilla products and services. By identifying patterns and trends in usage, Mozilla and its community is able to better design products and services to improve users' experiences, both in terms of content and ease of use.</p>
 
       <h5>Where is the Operational Data Available?</h5>
-      <p>Mozilla is an open organization that believes in sharing as much information as possible about its products, its operations, and its  associations with its wider community. As such, BrowserID Service users should expect that Mozilla will make all Usage Statistics publicly  available at some point. However, any publicly available Usage Statistics will only be reported on an aggregate, anonymous basis. No Personal Information or Potentially Personal Information will be  available in any of these public reports.</p>
+      <p>Mozilla is an open organization that believes in sharing as much information as possible about its products, its operations, and its  associations with its wider community. As such, Persona Service users should expect that Mozilla will make all Usage Statistics publicly  available at some point. However, any publicly available Usage Statistics will only be reported on an aggregate, anonymous basis. No Personal Information or Potentially Personal Information will be  available in any of these public reports.</p>
 
-      <h5>How to Disable or Opt-Out of BrowserID</h5>
-      <p>If at any time, you decide you no longer want to use the BrowserID Service, you may cancel your BrowserID Account by visiting <kbd>https://browserid.org/</kbd>, signing in using any of your email addresses and your password, clicking the "edit" button, and clicking "remove" next to each of your email addresses.</p>
+      <h5>How to Disable or Opt-Out of Persona</h5>
+      <p>If at any time, you decide you no longer want to use the Persona Service, you may cancel your Persona Account by visiting <kbd>https://browserid.org/</kbd>, signing in using any of your email addresses and your password, clicking the "edit" button, and clicking "remove" next to each of your email addresses.</p>
 
       <h5>Other Disclosures</h5>
       <p>In certain other limited situations, Mozilla may disclose your Personal Information, such as when necessary to protect our  websites and operations (e.g., against attacks); to protect the rights, privacy, safety, or property of Mozilla or its users; to enforce our  terms of service; and to pursue available legal remedies. Additionally, Mozilla may need to transfer Personal Information to an affiliate or successor in the event of a change of our corporate structure or status, such as in the event of a restructuring, sale, or bankruptcy.</p>
 
       <h5>Service Providers</h5>
-      <p>We work with third parties who provide services (such as companies that help us determine the number of users of BrowserID) and content delivery networks and other services of an administrative nature. We may share Personal Information and Potentially Personal Information about you with such third parties for the purpose of enabling these third parties to provide such services.</p>
+      <p>We work with third parties who provide services (such as companies that help us determine the number of users of Persona) and content delivery networks and other services of an administrative nature. We may share Personal Information and Potentially Personal Information about you with such third parties for the purpose of enabling these third parties to provide such services.</p>
 
       <h5>Transfer of Data to the U.S.</h5>
-      <p>Mozilla is a global organization and operates in different countries. Privacy laws and common practices vary from country to country. Some countries may provide for less legal protection of your personal data; others may provide more legal protection. By using the BrowserID Service, you consent to the transfer of the information collected, as outlined by this Policy, to Mozilla in the United States, which may provide a lesser level of data security than in your country of residence.</p>
+      <p>Mozilla is a global organization and operates in different countries. Privacy laws and common practices vary from country to country. Some countries may provide for less legal protection of your personal data; others may provide more legal protection. By using the Persona Service, you consent to the transfer of the information collected, as outlined by this Policy, to Mozilla in the United States, which may provide a lesser level of data security than in your country of residence.</p>
 
       <h5>Data Retention</h5>
       <p>We will retain any information collected for the period necessary to fulfill the purposes outlined in this Policy unless a longer retention period is required by law and/or regulations.</p>
 
       <h5>Privacy Policy Changes</h5>
-      <p>Mozilla may change this Privacy Policy from time to time.  Each time you use the BrowserID Service the current version of this Privacy Policy will apply. Any and all changes will be reflected on this page. You should periodically check this page for any changes to the current policy. To make your review more convenient, we will post an effective date at the top of this page. Material changes will also be announced through the standard mechanisms through which Mozilla communicates with the Mozilla community. It is your responsibility to ensure that you understand the terms of this Privacy Policy.</p>
+      <p>Mozilla may change this Privacy Policy from time to time.  Each time you use the Persona Service the current version of this Privacy Policy will apply. Any and all changes will be reflected on this page. You should periodically check this page for any changes to the current policy. To make your review more convenient, we will post an effective date at the top of this page. Material changes will also be announced through the standard mechanisms through which Mozilla communicates with the Mozilla community. It is your responsibility to ensure that you understand the terms of this Privacy Policy.</p>
 
       <h5>What This Privacy Policy Doesn't Cover</h5>
-      <p>This policy does not apply to other Mozilla websites, products, or services. It also does not apply to your use of third-party clients or use of non-Mozilla servers. If you choose to use a third-party BrowserID client or servers provided by an entity other than Mozilla, this policy does not apply and Mozilla assumes no liability whatsoever for such products or services.</p>
+      <p>This policy does not apply to other Mozilla websites, products, or services. It also does not apply to your use of third-party clients or use of non-Mozilla servers. If you choose to use a third-party Persona client or servers provided by an entity other than Mozilla, this policy does not apply and Mozilla assumes no liability whatsoever for such products or services.</p>
 
       <h5>For More Information</h5>
 <p>You may request access, correction, or deletion of Personal Information or Potentially Personal Information, as permitted by law. We will seek to comply with such requests, provided that we have sufficient information to identify the Personal Information or Potentially Personal Information related to you. Any such requests or other questions or concerns regarding this Policy and Mozilla's data protection practices should be addressed to:</p>
diff --git a/resources/views/signin.ejs b/resources/views/signin.ejs
index 4fdc9f326..70b16f426 100644
--- a/resources/views/signin.ejs
+++ b/resources/views/signin.ejs
@@ -6,11 +6,9 @@
     <div id="vAlign">
         <!-- XXX this form submits to nowhere -->
         <form id="signUpForm" class="cf authform" novalidate>
-            <h1 class="serif">Sign In</h1>
+            <h1>Sign In</h1>
 
             <ul class="notifications">
-                <li class="notification error badlogin">Bad Login. Check your email and password.</li>
-
                 <li class="notification" id="unknown_secondary">
                   <strong id="unknown_email">Email</strong> is not registered.
                   Would you like to <a class="action" href="/signup">sign up</a> instead?
@@ -20,8 +18,8 @@
 
             <ul class="inputs">
                 <li>
-                    <label class="serif" for="email">Email Address</label>
-                    <input class="sans" id="email" autofocus placeholder="Your Email" type="email" autocapitalize="off" autocorrect="off" tabindex="1" maxlength="254" />
+                    <label for="email">Email Address</label>
+                    <input id="email" autofocus placeholder="Your Email" type="email" autocapitalize="off" autocorrect="off" tabindex="1" maxlength="254" />
 
                     <div id="email_format" class="tooltip" for="email">
                       This field must be an email address.
@@ -36,18 +34,22 @@
               <ul class="inputs password_entry">
                 <li class="password_section">
                     <a class="forgot right" href="/forgot" tabindex="4">forgot your password?</a>
-                    <label class="serif" for="password">Password</label>
-                    <input class="sans" id="password" placeholder="Your Password" type="password" tabindex="2" maxlength="80">
+                    <label for="password">Password</label>
+                    <input id="password" placeholder="Your Password" type="password" tabindex="2" maxlength="80">
 
                     <div id="password_required" class="tooltip" for="password">
                       The password field is required.
                     </div>
+
+                    <div id="cannot_authenticate" class="tooltip" for="password">
+                      The account cannot be logged in with this username and password.')
+
                 </li>
             </ul>
 
             <div class="submit cf forminputs">
                 <div class="remember cf">
-                    <a class="action" href="/signup">New to BrowserID? Sign up today.</a>
+                    <a class="action" href="/signup">New to Persona? Sign up today.</a>
                 </div>
                 <button tabindex="5">Sign In</button>
             </div>
@@ -69,6 +71,6 @@
 </div>
 
 <noscript>
-  We're sorry, but to sign in to BrowserID, you must have Javascript enabled.
+  We're sorry, Persona requires Javascript to be enabled.
 </noscript>
 
diff --git a/resources/views/signup.ejs b/resources/views/signup.ejs
index 4b134686a..111991faf 100644
--- a/resources/views/signup.ejs
+++ b/resources/views/signup.ejs
@@ -6,11 +6,9 @@
     <div id="vAlign">
         <!-- XXX this form submits to nowhere -->
         <form id="signUpForm" class="cf authform" novalidate>
-            <h1 class="serif">Create Account</h1>
+            <h1>Create Account</h1>
 
             <ul class="notifications">
-                <li class="notification error doh">Doh! Something went wrong :-( </li>
-
                 <li class="notification alreadyRegistered">
                   <strong id="registeredEmail"></strong> is already registered.
                   Would you like to <a class="action" href="/signin">sign in</a> instead?
@@ -35,8 +33,8 @@
 
             <ul class="inputs forminputs">
                 <li>
-                    <label class="serif" for="email">Email Address</label>
-                    <input class="sans" id="email" autofocus placeholder="Your Email" type="email" autocapitalize="off" autocorrect="off" maxlength="254" />
+                    <label for="email">Email Address</label>
+                    <input id="email" autofocus placeholder="Your Email" type="email" autocapitalize="off" autocorrect="off" maxlength="254" />
 
                     <div id="email_format" class="tooltip" for="email">
                       This field must be an email address.
@@ -52,8 +50,8 @@
                 </li>
 
                 <li class="password_entry">
-                    <label class="serif" for="password">Password</label>
-                    <input class="sans" id="password" placeholder="Password" type="password" maxlength="80">
+                    <label for="password">Password</label>
+                    <input id="password" placeholder="Password" type="password" maxlength="80">
 
                     <div id="password_required" class="tooltip" for="password">
                         Password is required.
@@ -69,8 +67,8 @@
                 </li>
 
                 <li class="password_entry">
-                    <label class="serif" for="vpassword">Verify Password</label>
-                    <input class="sans" id="vpassword" placeholder="Repeat Password" type="password" maxlength="80">
+                    <label for="vpassword">Verify Password</label>
+                    <input id="vpassword" placeholder="Repeat Password" type="password" maxlength="80">
 
                     <div id="password_required" class="tooltip" for="vpassword">
                       Verification password is required.
@@ -108,7 +106,7 @@
         </form>
 
         <div class="notification" id="congrats">
-            <p class="serif">Thank you for signing up with <strong>BrowserID</strong>. You can now use your <strong>BrowserID</strong> account to <em>Sign In</em> or <em>Sign Up</em> to websites all across the web!
+            <p>Thank you for signing up with <strong>Persona</strong>. You can now use your Persona account to <em>Sign In</em> or <em>Sign Up</em> to websites all across the web!
             </p>
         </div>
 
@@ -116,7 +114,7 @@
 </div>
 
 <noscript>
-  We're sorry, but to sign up for BrowserID, you must have Javascript enabled.
+  We're sorry, but to sign up for Persona, you must have Javascript enabled.
 </noscript>
 
 
diff --git a/resources/views/test.ejs b/resources/views/test.ejs
index aed2e8431..dd25eca2f 100644
--- a/resources/views/test.ejs
+++ b/resources/views/test.ejs
@@ -7,14 +7,14 @@
 	<head>
     <meta charset="utf-8">
 		<link rel="stylesheet" type="text/css" href="qunit/qunit.css" />
-		<title>BrowserID QUnit Test</title>
+		<title>Persona QUnit Test</title>
   <!--[if lt IE 9]>
     <script src="/lib/html5shim.js"></script>
   <![endif]-->
 	</head>
 	<body>
 
-		<h1 id="qunit-header">BrowserID Test Suite</h1>
+		<h1 id="qunit-header">Persona Test Suite</h1>
 		<h2 id="qunit-banner"></h2>
 		<div id="qunit-testrunner-toolbar"></div>
 		<h2 id="qunit-userAgent"></h2>
diff --git a/resources/views/tos.ejs b/resources/views/tos.ejs
index 9a5b35e41..6a5e888b6 100644
--- a/resources/views/tos.ejs
+++ b/resources/views/tos.ejs
@@ -1,18 +1,18 @@
 <div id="content" class="display_always">
   <div id="legal">
-  <h2>Terms of Service &mdash; Overview</h2>
+  <h1>Terms of Service &mdash; Overview</h1>
 
   <ul>
     <li>
-      The BrowserID service allows a logged-in user to verify that he is the owner of a certain email address.  Once the user has made this verification and uses that email address at websites utilizing the BrowserID service, the website can request that Mozilla confirm that the user has verified the email address exists and is owned by him.
+      The Persona service allows a logged-in user to verify that he is the owner of a certain email address.  Once the user has made this verification and uses that email address at websites utilizing the Persona service, the website can request that Mozilla confirm that the user has verified the email address exists and is owned by him.
     </li>
     <li>
-      The BrowserID service works with websites to confirm that a user has verified a certain email address and with email providers to make the initial user verification.  These Terms of Service apply to both the websites and the email providers who use BrowserID.
+      The Persona service works with websites to confirm that a user has verified a certain email address and with email providers to make the initial user verification.  These Terms of Service apply to both the websites and the email providers who use Persona.
     </li>
     <li>
-      You are responsible for the third party software or APIs that you use or have developed to access the BrowserID Service.  the BrowserID service are  provided “as is” and there are no warranties of any kind.</li>
+      You are responsible for the third party software or APIs that you use or have developed to access the Persona Service.  the Persona service are  provided “as is” and there are no warranties of any kind.</li>
     <li>
-      There are significant limits on Mozilla’s liability for any damages arising from your use of the BrowserID service.
+      There are significant limits on Mozilla’s liability for any damages arising from your use of the Persona service.
     </li>
   </ul>
 
@@ -21,7 +21,7 @@
   <h4>Acceptance</h4>
 
   <p>
-    These Terms of Service (“TOS”) govern your use of the BrowserID service (the “Services”). By accessing the materials and APIs necessary to use the Services, and by using the Services you are agreeing to abide by the terms and conditions described below.
+    These Terms of Service (“TOS”) govern your use of the Persona service (the “Services”). By accessing the materials and APIs necessary to use the Services, and by using the Services you are agreeing to abide by the terms and conditions described below.
   </p>
 
   <h4>Use of the Services as a Requesting Website or Email Provider</h4>
@@ -43,7 +43,7 @@
       trade or resell the Services for any purpose, unless you have been specifically permitted to do so in writing by Mozilla, or
     </li>
     <li>
-      access (or attempt to access) the Services by any means other than the BrowserID site itself (at browserid.org), official Mozilla-branded software (Firefox, Firefox for Mobile, and Firefox Home, referred to in this document as “Firefox Clients”), or third party software that utilizes APIs authorized and provided by Mozilla (“Third Party Clients”), unless you have been specifically allowed to do so in writing by Mozilla.
+      access (or attempt to access) the Services by any means other than the Persona site itself (at browserid.org), official Mozilla-branded software (Firefox, Firefox for Mobile, and Firefox Home, referred to in this document as “Firefox Clients”), or third party software that utilizes APIs authorized and provided by Mozilla (“Third Party Clients”), unless you have been specifically allowed to do so in writing by Mozilla.
     </li>
   </ul>
 
@@ -78,7 +78,7 @@
 
   <h4>Updates to the Terms</h4>
 
-  <p>Mozilla may update this TOS from time to time, for example to address a new feature of the Services or to clarify a provision. The updated TOS will be posted on the BrowserID site. If the changes are substantive, we will announce the update through Mozilla’s usual channels for such announcements such as blog posts and forums. Your continued use of the Services after the effective date of such changes constitutes your acceptance of such changes. To make your review more convenient, we will post an effective date at the top of this page. These terms may not be modified or cancelled without Mozilla’s written agreement.</p>
+  <p>Mozilla may update this TOS from time to time, for example to address a new feature of the Services or to clarify a provision. The updated TOS will be posted on the Persona site. If the changes are substantive, we will announce the update through Mozilla’s usual channels for such announcements such as blog posts and forums. Your continued use of the Services after the effective date of such changes constitutes your acceptance of such changes. To make your review more convenient, we will post an effective date at the top of this page. These terms may not be modified or cancelled without Mozilla’s written agreement.</p>
 
   <h4>Disclaimer of Warranty</h4>
   <p><b>The Services are provided “as is” with all faults. To the extent permitted by law, Mozilla, its distributors, contributors, and licensors hereby disclaim all warranties, whether express or implied, including without limitation warranties that the Services are free of defects, merchantable, fit for a particular purpose, and non-infringing. You bear the entire risk as to selecting the Services for your purposes and as to the quality and performance of the Services, including without limitation the risk that your User Data is deleted or corrupted or that someone else uses your username and password to access confirmations of your identity. This limitation will apply notwithstanding the failure of essential purpose of any remedy. Some jurisdictions do not allow the exclusion or limitation of implied warranties, so this disclaimer may not apply to you.</b></p>
diff --git a/resources/views/unsupported_dialog.ejs b/resources/views/unsupported_dialog.ejs
index fc39f468a..549ba2ae2 100644
--- a/resources/views/unsupported_dialog.ejs
+++ b/resources/views/unsupported_dialog.ejs
@@ -13,7 +13,7 @@
       </a>
 
       <p>
-        BrowserID works with <a href="http://getfirefox.com" target="_blank" title="Get Firefox">Firefox</a>
+        Persona works with <a href="http://getfirefox.com" target="_blank" title="Get Firefox">Firefox</a>
       </p>
 
       <p class="lighter">
diff --git a/resources/views/verify_email_address.ejs b/resources/views/verify_email_address.ejs
index 8ec58b83a..cf38f704a 100644
--- a/resources/views/verify_email_address.ejs
+++ b/resources/views/verify_email_address.ejs
@@ -11,17 +11,17 @@
 
         <form id="signUpForm" class="cf">
             <p class="hint siteinfo"><%= gettext('Finish signing into:') %> <strong><span class="website"></span></strong></p>
-            <h1 class="serif"><%= gettext('Last step!') %></h1>
+            <h1><%= gettext('Last step!') %></h1>
 
             <ul class="inputs">
                 <li>
-                    <label class="serif" for="email"><%= gettext('Email Address') %></label>
-                    <input class="youraddress sans" id="email" placeholder="<%= gettext('Your Email') %>" type="email" value="" disabled="disabled" maxlength="254" />
+                    <label for="email"><%= gettext('Email Address') %></label>
+                    <input class="youraddress" id="email" placeholder="<%= gettext('Your Email') %>" type="email" value="" disabled="disabled" maxlength="254" />
                 </li>
 
                 <li class="password_entry">
-                    <label class="serif" for="password"><%= gettext('Password') %></label>
-                    <input class="sans" id="password" placeholder="<%= gettext('Your Password') %>" type="password" autofocus maxlength=80 />
+                    <label for="password"><%= gettext('Password') %></label>
+                    <input id="password" placeholder="<%= gettext('Your Password') %>" type="password" autofocus maxlength=80 />
 
                     <div class="tooltip" id="password_required" for="password">
                       <%= gettext('Password is required.') %>
@@ -37,8 +37,8 @@
                 </li>
 
                 <li class="password_entry" id="verify_password">
-                    <label class="serif" for="vpassword"><%= gettext('Verify Password') %></label>
-                    <input class="sans" id="vpassword" placeholder="<%= gettext('Repeat Password') %>" type="password" maxlength="80">
+                    <label for="vpassword"><%= gettext('Verify Password') %></label>
+                    <input id="vpassword" placeholder="<%= gettext('Repeat Password') %>" type="password" maxlength="80">
 
                     <div id="vpassword_required" class="tooltip" for="vpassword">
                       <%= gettext('Verification password is required.') %>
@@ -58,10 +58,10 @@
         </form>
 
         <div id="congrats">
-            <p class="serif"><%- gettext('Thank you for signing up with <strong>BrowserID</strong>. You can now use your <strong>BrowserID</strong> account to <em>Sign In</em> or <em>Sign Up</em> to websites all across the web!') %>
+            <p><%- gettext('Thank you for signing up with <strong>Persona</strong>. You can now use your Persona account to <em>Sign In</em> or <em>Sign Up</em> to websites all across the web!') %>
             </p>
 
-            <p class="serif siteinfo">
+            <p class="siteinfo">
               <%= gettext('Your new address is set up and you should now be signed in. You may now close this window and go back to') %> <strong class="website"></strong>
             </p>
         </div>
-- 
GitLab