diff --git a/config.sample.json b/config.sample.json
index 9cb2b5e7..016517cd 100644
--- a/config.sample.json
+++ b/config.sample.json
@@ -1,6 +1,10 @@
 {
     "default_hs_url": "https://matrix.org",
     "default_is_url": "https://vector.im",
+    "disable_custom_urls": false,
+    "disable_guests": false,
+    "disable_login_language_selector": false,
+    "disable_3pid_login": false,
     "brand": "Riot",
     "integrations_ui_url": "https://scalar.vector.im/",
     "integrations_rest_url": "https://scalar.vector.im/api",
@@ -10,6 +14,8 @@
         "feature_pinning": "labs"
     },
     "default_federate": true,
+    "welcomePageUrl": "home.html",
+    "default_theme": "light",
     "roomDirectory": {
         "servers": [
             "matrix.org"
diff --git a/docs/skinning thoughts.md b/docs/skinning thoughts.md
new file mode 100644
index 00000000..bbaf18a2
--- /dev/null
+++ b/docs/skinning thoughts.md	
@@ -0,0 +1,68 @@
+== Skinning refactor ==
+
+matrix-react-sdk
+  - base images
+  - base CSS
+  - all the components needed to build a workable app (including the top layer)
+
+riot-web: the riot skin
+  - riot-specific classes (e.g. login header/footer)
+  - riot-specific themes
+    - light
+    - dark
+
+i.e. the only things which should go into riot-web are bits which apply vector-specific skinning
+specifically "Stuff that any other brand would not want to use. (e.g. riot logos, links, T&Cs)"
+ - Questions:
+   - Electron app?  (should probably be a separate repo in its own right?  but might as well go here for now)
+   - index.html & index.js?  (should be in matrix-react-sdk, given the SDK is useless without them?)
+
+ideally matrix-react-sdk itself should ship with a default skin which actually works built in.
+
+status skin (can go in the same app for now)
+  - has status theme
+    - which inherits from riot light theme
+    - how do we share graphics between skins?
+      - shove them into react-sdk, or...
+      - guess we do ../../vector/img 
+      - this means keeping the skin name in the images (unless /img is a shortcut to the right skin's images)
+
+out of scope:
+  - making the components more independent, so they can be used in isolation.
+  - that said, the bits which should probably be used by being embeded into a different app:
+    - login/reg
+    - RoomView + RoomSettings
+    - MessageComposer
+    - RoomList
+    - MemberList
+    - MemberInfo
+    - Voip UI
+    - UserSettings
+  - sharing different js-sdks between the different isolated modules
+
+other changes:
+  - how do we handle i18n?
+    - each skin should really be its own i18n project.  As long as all the commonality stuff is in matrix-react-sdk this shouldn't be too bad.
+  - ability to associate components with a given skin
+    - skins/vector/src <-- components
+    - skins/vector/css
+    - skins/vector/img
+    - skins/vector/fonts
+  - gather together themes (per skin) into a single place too
+    - skins/vector/themes/foo/css
+    - skins/vector/themes/foo/img
+    - skins/vector/themes/foo/fonts
+  - ideally riot-web would contain almost nothing but skins/vector directory. 
+  - ability to entirely replace CSS rather than override it for a given theme
+    - e.g. if we replace `Login.js` with `StatusLogin.js`, then we should similarly be able to replace `_Login.scss` with `_StatusLogin.scss`.
+
+random thoughts;
+   - should we be able to change the entire skin at runtime (more like wordpress) - to the extent of replacing entire components?
+     - might pose security issues if a theme can be swapped out to replace MatrixChat or other fundamental functionality at runtime
+   - if so, perhaps skins & themes should converge...
+
+-----------------
+
+Immediate plan for Status:
+ * Implement it as a theme for the riot skin
+ * Ideally move skins to a sensible level (possibly even including src?)
diff --git a/res/home-status.html b/res/home-status.html
new file mode 100644
index 00000000..7d50470a
--- /dev/null
+++ b/res/home-status.html
@@ -0,0 +1,192 @@
+<style type="text/css">
+
+/* we deliberately inline style here to avoid flash-of-CSS problems, and to avoid
+ * voodoo where we have to set display: none by default
+ */
+
+.mx_HomePage_container {
+    text-align: center;
+    display: block ! important;
+    width: 690px;
+    margin: 20px;
+}
+
+.mx_HomePage_header {
+    margin-top: 37px;
+    margin-left: 10px;
+    width: 670px;
+    box-sizing: border-box;
+    font-size: 18px;
+    background-color: #fff;
+    box-shadow: 0px 2px 10px 0px rgba(48,55,81,0.05);
+    border-radius: 5px;
+    padding: 20px 80px 20px 80px;
+    align-items: center;
+}
+
+.mx_HomePage_header h1 {
+    font-size: 29px;
+    margin-bottom: 10px;
+}
+
+.mx_HomePage_intro h2 {
+    margin-top: 32px;
+    font-size: 25px;
+    color: #49555F;
+}
+
+.mx_HomePage_intro {
+    margin: auto;
+    width: 600px;
+    margin-top: 40px;
+    margin-bottom: 40px;
+    font-size: 18px;
+}
+
+.mx_HomePage_coc {
+    font-size: 16px;
+}
+
+.mx_HomePage_coc a {
+    color: #4360DF;
+}
+
+.mx_HomePage_room, .mx_HomePage_telegram {
+    float: left;
+    background-color: #fff;
+    box-shadow: 0px 2px 10px 0px rgba(48,55,81,0.05);
+    border-radius: 5px;
+    margin: 10px;
+    width: 210px;
+    height: 250px;
+    display: flex;
+    flex-direction: column;
+    align-items: center;
+}
+
+.mx_HomePage_telegram {
+    background-color: transparent;
+    border: 1px solid rgba(113, 129, 142, 0.2);
+    box-shadow: none;
+    display: flex;
+    align-items: center;
+    justify-content: center;
+    flex-direction: column;
+    font-size: 16px;
+    line-height: 25px;
+    box-sizing: border-box;
+}
+
+.mx_HomePage_telegram a {
+    text-transform: uppercase;
+    color: #4360DF;
+    font-size: 13px;
+    font-family: PostGrotesk-Medium, Arial, Helvetica, Sans-Serif;
+    font-weight: 600;
+    opacity: 1.0;
+    transition: opacity .2s ease;
+}
+
+.mx_HomePage_telegram a:hover {
+    opacity: 0.5;
+}
+
+.mx_HomePage_room .mx_HomePage_icon {
+    margin-top: 24px;
+    margin-bottom: 16px;
+    width: 50px;
+    height: 50px;
+}
+
+.mx_HomePage_room .mx_HomePage_name {
+    display: block;
+    font-family: PostGrotesk-Medium, Arial, Helvetica, Sans-Serif;
+    font-weight: 600;
+    font-size: 15px;
+    color: #49555F;
+    line-height: 25px;
+    margin: 0px 12px 0px 12px;
+}
+
+.mx_HomePage_room .mx_HomePage_desc {
+    flex: 1;
+    display: block;
+    margin: 0px 12px 0px 12px;
+    font-size: 14px;
+    line-height: 20px;
+}
+
+.mx_HomePage_button {
+    align-self: normal;
+    margin: 12px;
+    border-radius: 8px;
+    border: 1px solid rgba(199, 206, 209, 0.12);
+    background-color: #6CC1F6;
+    font-size: 13px;
+    font-family: PostGrotesk-Medium, Arial, Helvetica, Sans-Serif;
+    font-weight: 600;
+    text-transform: uppercase;
+    letter-spacing: 1px;
+    color: #fff ! important;
+    cursor: pointer;
+    outline: none;
+    padding: 14px;
+    box-sizing: border-box;
+    padding-left: 1.5em;
+    padding-right: 1.5em;
+}
+
+</style>
+
+<div class="mx_HomePage_container">
+    <div class="mx_HomePage_header">
+        <div>
+            <h1>Welcome to Status Community Chat, powered by Riot.</h1>
+            <p>For contributors, developers and Ethereum-enthusiasts who care about the movement for decentralization.</p>
+        </div>
+    </div>
+
+    <div class="mx_HomePage_intro">
+        <h2>Our rooms</h2>
+        <p>Please abide by the channels discussion categories and remain on topic to the specific category details listed.</p>
+        <p class="mx_HomePage_coc">Before posting please refer to our <a href="https://wiki.status.im/Code_of_conduct">Code of Conduct</a></p>
+    </div>
+
+
+    <div class="mx_HomePage_room">
+        <img class="mx_HomePage_icon" src="themes/status/img/a.png">
+        <span class="mx_HomePage_name">#announcements</span>
+        <span class="mx_HomePage_desc">Company wide announcements.</span>
+        <a class="mx_HomePage_button" href="#/room/#announcements:status.im">Join</a>
+    </div>
+    <div class="mx_HomePage_room">
+        <img class="mx_HomePage_icon" src="themes/status/img/i.png">
+        <span class="mx_HomePage_name">#introductions</span>
+        <span class="mx_HomePage_desc">Newcomer introductions.</span>
+        <a class="mx_HomePage_button" href="#/room/#introductions:status.im">Join</a>
+    </div>
+    <div class="mx_HomePage_room">
+        <img class="mx_HomePage_icon" src="themes/status/img/g.png">
+        <span class="mx_HomePage_name">#general</span>
+        <span class="mx_HomePage_desc">General discussions of Status.</span>
+        <a class="mx_HomePage_button" href="#/room/#general:status.im">Join</a>
+    </div>
+    <div class="mx_HomePage_room">
+        <img class="mx_HomePage_icon" src="themes/status/img/d.png">
+        <span class="mx_HomePage_name">#dev-status</span>
+        <span class="mx_HomePage_desc">Contributing to our codebase? Building a DApp or a chatbot? We're here to help.</span>
+        <a class="mx_HomePage_button" href="#/room/#dev-status:status.im">Join</a>
+    </div>
+    <div class="mx_HomePage_room">
+        <img class="mx_HomePage_icon" src="themes/status/img/n.png">
+        <span class="mx_HomePage_name">#news-articles</span>
+        <span class="mx_HomePage_desc">Share news, articles related to Ethereum or projects you're excited about</span>
+        <a class="mx_HomePage_button" href="#/room/#news-articles:status.im">Join</a>
+    </div>
+    <div class="mx_HomePage_telegram">
+        <p>
+            Interested in market and cryptocurrency type discussions?
+        </p>
+        <a href="https://t.me/StatusNetworkChat">Join Telegram</a>
+    </div>
+</div>
diff --git a/scripts/copy-res.js b/scripts/copy-res.js
index b461d030..1a685814 100755
--- a/scripts/copy-res.js
+++ b/scripts/copy-res.js
@@ -42,10 +42,11 @@ const INCLUDE_LANGS = [
 const COPY_LIST = [
     ["res/manifest.json", "webapp"],
     ["res/home.html", "webapp"],
+    ["res/home-status.html", "webapp"],
     ["res/home/**", "webapp/home"],
     ["res/{media,vector-icons}/**", "webapp"],
     ["res/flags/*", "webapp/flags/"],
-    ["src/skins/vector/{fonts,img}/**", "webapp"],
+    ["src/skins/vector/{fonts,img,themes}/**", "webapp"],
     ["node_modules/emojione/assets/svg/*", "webapp/emojione/svg/"],
     ["node_modules/emojione/assets/png/*", "webapp/emojione/png/"],
     ["./config.json", "webapp", { directwatch: 1 }],
diff --git a/src/components/views/globals/NewVersionBar.js b/src/components/views/globals/NewVersionBar.js
index f56d1a51..2aedf392 100644
--- a/src/components/views/globals/NewVersionBar.js
+++ b/src/components/views/globals/NewVersionBar.js
@@ -42,7 +42,7 @@ export default React.createClass({
         const QuestionDialog = sdk.getComponent('dialogs.QuestionDialog');
         Modal.createTrackedDialog('Display release notes', '', QuestionDialog, {
             title: _t("What's New"),
-            description: <pre className="changelog_text">{releaseNotes}</pre>,
+            description: <div className="mx_MatrixToolbar_changelog">{releaseNotes}</div>,
             button: _t("Update"),
             onFinished: (update) => {
                 if(update && PlatformPeg.get()) {
diff --git a/src/components/views/login/VectorLoginFooter.js b/src/components/views/login/VectorLoginFooter.js
index b04dcdb5..e5243f8e 100644
--- a/src/components/views/login/VectorLoginFooter.js
+++ b/src/components/views/login/VectorLoginFooter.js
@@ -18,6 +18,7 @@ limitations under the License.
 
 var React = require('react');
 import { _t } from 'matrix-react-sdk/lib/languageHandler';
+import UserSettingsStore from 'matrix-react-sdk/lib/UserSettingsStore';
 
 module.exports = React.createClass({
     displayName: 'VectorLoginFooter',
@@ -26,6 +27,9 @@ module.exports = React.createClass({
     },
 
     render: function() {
+        // FIXME: replace this with a proper Status skin
+        if (UserSettingsStore.getTheme() === 'status') return <div/>;
+        
         return (
             <div className="mx_Login_links">
                 <a href="https://medium.com/@RiotChat">blog</a>&nbsp;&nbsp;&middot;&nbsp;&nbsp;
diff --git a/src/components/views/login/VectorLoginHeader.js b/src/components/views/login/VectorLoginHeader.js
index 3aa8811c..71093a96 100644
--- a/src/components/views/login/VectorLoginHeader.js
+++ b/src/components/views/login/VectorLoginHeader.js
@@ -33,8 +33,10 @@ module.exports = React.createClass({
 
     render: function() {
         return (
-            <div className="mx_Login_logo">
-                <img src={this.props.icon || DEFAULT_LOGO_URI} alt="Riot"/>
+            <div className="mx_Login_header">
+                <div className="mx_Login_logo">
+                    <img src={this.props.icon || DEFAULT_LOGO_URI} alt="Riot"/>
+                </div>
             </div>
         );
     }
diff --git a/src/header b/src/header
index 060709b8..6d367b04 100644
--- a/src/header
+++ b/src/header
@@ -1,5 +1,5 @@
 /*
-Copyright 2015, 2016 OpenMarket Ltd
+Copyright 2017 New Vector Ltd
 
 Licensed under the Apache License, Version 2.0 (the "License");
 you may not use this file except in compliance with the License.
diff --git a/src/skins/vector/css/_common.scss b/src/skins/vector/css/_common.scss
index a9b80928..8a333071 100644
--- a/src/skins/vector/css/_common.scss
+++ b/src/skins/vector/css/_common.scss
@@ -1,6 +1,7 @@
 /*
 Copyright 2015, 2016 OpenMarket Ltd
 Copyright 2017 Vector Creations Ltd
+Copyright 2017 New Vector Ltd
 
 Licensed under the Apache License, Version 2.0 (the "License");
 you may not use this file except in compliance with the License.
@@ -23,12 +24,7 @@ html {
 }
 
 body {
-    /* Open Sans lacks combining diacritics, so these will fall through
-       to the next font.  Helevetica's diacritics however do not combine
-       nicely with Open Sans (on OSX, at least) and result in a huge
-       horizontal mess.  Arial empirically gets it right, hence prioritising
-       Arial here. */
-    font-family: 'Open Sans', Arial, Helvetica, Sans-Serif;
+    font-family: $font-family;
     font-size: 15px;
     background-color: $primary-bg-color;
     color: $primary-fg-color;
@@ -73,7 +69,7 @@ input[type=text]:focus, input[type=password]:focus, textarea:focus {
 
 /* Required by Firefox */
 textarea {
-    font-family: 'Open Sans', Arial, Helvetica, Sans-Serif;
+    font-family: $font-family;
 }
 
 /* Prevent ugly dotted highlight around selected elements in Firefox */
@@ -123,6 +119,19 @@ textarea {
     transition: height 120ms ease-out ! important;
 }
 
+// These are magic constants which are excluded from tinting, to let themes
+// (which only have CSS, unlike skins) tell the app what their non-tinted
+// colourscheme is by inspecting the stylesheet DOM.
+//
+// They are not used for layout!!
+#mx_theme_accentColor {
+    color: $accent-color;
+}
+
+#mx_theme_secondaryAccentColor {
+    color: $secondary-accent-color;
+}
+
 .mx_Dialog_wrapper {
     position: fixed;
     z-index: 4000;
@@ -210,24 +219,19 @@ textarea {
 }
 
 .mx_Dialog button, .mx_Dialog input[type="submit"] {
-    border: 0px;
-    height: 36px;
-    border-radius: 40px;
-    border: solid 1px $accent-color;
-    font-weight: 600;
-    font-size: 14px;
-    font-family: 'Open Sans', Arial, Helvetica, Sans-Serif;
+    @mixin mx_DialogButton;
     margin-left: 0px;
     margin-right: 8px;
-    padding-left: 1.5em;
-    padding-right: 1.5em;
-    outline: none;
-    cursor: pointer;
-    color: $accent-color;
-    background-color: $primary-bg-color;
 
-    /* align images in buttons (eg spinners) */
-    vertical-align: middle;
+    // flip colours for the secondary ones
+    font-weight: 600;
+    border: 1px solid $accent-color ! important;
+    color: $accent-color;
+    background-color: $accent-fg-color;
+}
+
+.mx_Dialog button:hover, .mx_Dialog input[type="submit"]:hover {
+    @mixin mx_DialogButton_hover;
 }
 
 .mx_Dialog button:focus, .mx_Dialog input[type="submit"]:focus {
@@ -292,26 +296,18 @@ textarea {
     color: $selection-fg-color;
 }
 
-/** green button with rounded corners */
 .mx_textButton {
-    color: $accent-fg-color;
-    background-color: $accent-color;
-    border-radius: 17px;
-    text-align: center;
-    padding-left: 1em;
-    padding-right: 1em;
-    cursor: pointer;
-    display: inline;
+    @mixin mx_DialogButton_small;    
+}
+
+.mx_textButton:hover {
+    @mixin mx_DialogButton_hover;
 }
 
 .mx_button_row {
     margin-top: 69px;
 }
 
-.changelog_text {
-    font-family: 'Open Sans', Arial, Helvetica, Sans-Serif;
-}
-
 .mx_Beta {
     color: red;
     margin-right: 10px;
diff --git a/src/skins/vector/css/matrix-react-sdk/structures/_SearchBox.scss b/src/skins/vector/css/matrix-react-sdk/structures/_SearchBox.scss
index 0f34f056..64dec826 100644
--- a/src/skins/vector/css/matrix-react-sdk/structures/_SearchBox.scss
+++ b/src/skins/vector/css/matrix-react-sdk/structures/_SearchBox.scss
@@ -38,7 +38,7 @@ limitations under the License.
 .mx_SearchBox_search {
     flex: 1 1 auto;
     width: 0px;
-    font-family: 'Open Sans', Arial, Helvetica, Sans-Serif;
+    font-family: $font-family;
     font-size: 12px;
     margin-top: -2px;
     height: 24px;
diff --git a/src/skins/vector/css/matrix-react-sdk/structures/_UserSettings.scss b/src/skins/vector/css/matrix-react-sdk/structures/_UserSettings.scss
index 66072538..f6341dd6 100644
--- a/src/skins/vector/css/matrix-react-sdk/structures/_UserSettings.scss
+++ b/src/skins/vector/css/matrix-react-sdk/structures/_UserSettings.scss
@@ -64,30 +64,13 @@ limitations under the License.
 }
 
 .mx_UserSettings_button {
+    @mixin mx_DialogButton;
     display: inline;
-    vertical-align: middle;
-    border: 0px;
-    border-radius: 36px;
-    font-weight: 400;
-    font-size: 16px;
-    color: $accent-fg-color;
-    background-color: $accent-color;
-    width: auto;
     margin: auto;
-    padding: 7px;
-    padding-left: 1.5em;
-    padding-right: 1.5em;
-    cursor: pointer;
 }
 
-.mx_UserSettings_button.mx_UserSettings_buttonSmall {
-    height: 36px;
-    padding: 4px;
-    padding-left: 7px;
-    padding-right: 7px;
-    font-size: 12px;
-    margin-right: 5px;
-    line-height: 12px;
+.mx_UserSettings_button:hover {
+    @mixin mx_DialogButton_hover;
 }
 
 .mx_UserSettings_button.danger {
diff --git a/src/skins/vector/css/matrix-react-sdk/structures/login/_Login.scss b/src/skins/vector/css/matrix-react-sdk/structures/login/_Login.scss
index 86ab39be..84b8306a 100644
--- a/src/skins/vector/css/matrix-react-sdk/structures/login/_Login.scss
+++ b/src/skins/vector/css/matrix-react-sdk/structures/login/_Login.scss
@@ -26,7 +26,6 @@ limitations under the License.
 }
 
 .mx_Login h2 {
-    color: $primary-fg-color;
     font-weight: 300;
     margin-top: 32px;
     margin-bottom: 20px;
@@ -80,15 +79,14 @@ limitations under the License.
 }
 
 .mx_Login_submit {
+    @mixin mx_DialogButton;
+    width: 100%;
     margin-top: 35px;
     margin-bottom: 24px;
-    width: 100%;
-    border-radius: 40px;
-    height: 40px;
-    border: 0px;
-    background-color: $accent-color;
-    font-size: 15px;
-    color: $accent-fg-color;
+}
+
+.mx_Login_submit:hover {
+    @mixin mx_DialogButton_hover;
 }
 
 .mx_Login_submit:disabled {
@@ -137,8 +135,7 @@ limitations under the License.
 }
 
 .mx_Login_forgot {
-    font-size: 13px;
-    opacity: 0.8;
+    font-size: 15px;
 }
 
 .mx_Login_forgot:link {
@@ -224,7 +221,6 @@ limitations under the License.
     height: 16px;
     flex-shrink: 1;
     min-width: 0px;
-    border-radius: 3px;
 }
 
 .mx_Login_phoneNumberField {
diff --git a/src/skins/vector/css/matrix-react-sdk/views/avatars/_BaseAvatar.scss b/src/skins/vector/css/matrix-react-sdk/views/avatars/_BaseAvatar.scss
index 320efda0..ee2d9c19 100644
--- a/src/skins/vector/css/matrix-react-sdk/views/avatars/_BaseAvatar.scss
+++ b/src/skins/vector/css/matrix-react-sdk/views/avatars/_BaseAvatar.scss
@@ -31,5 +31,5 @@ limitations under the License.
 .mx_BaseAvatar_image {
     border-radius: 40px;
     vertical-align: top;
-    background-color: #fff;
+    background-color: $avatar-bg-color;
 }
diff --git a/src/skins/vector/css/matrix-react-sdk/views/dialogs/_ChatInviteDialog.scss b/src/skins/vector/css/matrix-react-sdk/views/dialogs/_ChatInviteDialog.scss
index 8730c94f..6fc21174 100644
--- a/src/skins/vector/css/matrix-react-sdk/views/dialogs/_ChatInviteDialog.scss
+++ b/src/skins/vector/css/matrix-react-sdk/views/dialogs/_ChatInviteDialog.scss
@@ -28,7 +28,7 @@ limitations under the License.
 {
     height: 26px;
     font-size: 14px;
-    font-family: 'Open Sans', Arial, Helvetica, Sans-Serif;
+    font-family: $font-family;
     padding-left: 12px;
     padding-right: 12px;
     margin: 0 !important;
diff --git a/src/skins/vector/css/matrix-react-sdk/views/dialogs/_ConfirmUserActionDialog.scss b/src/skins/vector/css/matrix-react-sdk/views/dialogs/_ConfirmUserActionDialog.scss
index d12bcd37..b859d6bf 100644
--- a/src/skins/vector/css/matrix-react-sdk/views/dialogs/_ConfirmUserActionDialog.scss
+++ b/src/skins/vector/css/matrix-react-sdk/views/dialogs/_ConfirmUserActionDialog.scss
@@ -34,7 +34,7 @@ limitations under the License.
 }
 
 .mx_ConfirmUserActionDialog_reasonField {
-    font-family: 'Open Sans', Arial, Helvetica, Sans-Serif;
+    font-family: $font-family;
     font-size: 14px;
     color: $primary-fg-color;
     background-color: $primary-bg-color;
diff --git a/src/skins/vector/css/matrix-react-sdk/views/dialogs/_EncryptedEventDialog.scss b/src/skins/vector/css/matrix-react-sdk/views/dialogs/_EncryptedEventDialog.scss
index cbc0195c..9fb2bf52 100644
--- a/src/skins/vector/css/matrix-react-sdk/views/dialogs/_EncryptedEventDialog.scss
+++ b/src/skins/vector/css/matrix-react-sdk/views/dialogs/_EncryptedEventDialog.scss
@@ -27,7 +27,7 @@ limitations under the License.
     border: solid 1px $accent-color;
     font-weight: 600;
     font-size: 14px;
-    font-family: 'Open Sans', Arial, Helvetica, Sans-Serif;
+    font-family: $font-family;
     margin-left: 0px;
     margin-right: 8px;
     padding-left: 1.5em;
diff --git a/src/skins/vector/css/matrix-react-sdk/views/dialogs/_UnknownDeviceDialog.scss b/src/skins/vector/css/matrix-react-sdk/views/dialogs/_UnknownDeviceDialog.scss
index 804b3f41..332cd571 100644
--- a/src/skins/vector/css/matrix-react-sdk/views/dialogs/_UnknownDeviceDialog.scss
+++ b/src/skins/vector/css/matrix-react-sdk/views/dialogs/_UnknownDeviceDialog.scss
@@ -49,7 +49,7 @@ limitations under the License.
     border: solid 1px $accent-color;
     font-weight: 600;
     font-size: 13px;
-    font-family: 'Open Sans', Arial, Helvetica, Sans-Serif;
+    font-family: $font-family;
     margin-left: 0px;
     margin-right: 8px;
     padding-left: 0.5em;
diff --git a/src/skins/vector/css/matrix-react-sdk/views/rooms/_EventTile.scss b/src/skins/vector/css/matrix-react-sdk/views/rooms/_EventTile.scss
index bb0ca959..cfc46e85 100644
--- a/src/skins/vector/css/matrix-react-sdk/views/rooms/_EventTile.scss
+++ b/src/skins/vector/css/matrix-react-sdk/views/rooms/_EventTile.scss
@@ -156,18 +156,17 @@ limitations under the License.
 .mx_EventTile_redacted .mx_EventTile_line .mx_UnknownBody {
     display: block;
     width: 100%;
-    height: 36px;
-    background-image: $event-redacted-img;
-    background-repeat: no-repeat;
-    background-size: contain;
-}
-
-.mx_EventTile.mx_EventTile_redacted .mx_EventTile_line {
-    /*
-       Prevent changing colour of the background because
-       $event-redacted-img matches $primary-bg-color
-    */
-    background-color: initial !important;
+    height: 22px;
+    width: 250px;
+    border-radius: 11px;
+    background: repeating-linear-gradient(
+        -45deg,
+        $event-redacted-fg-color,
+        $event-redacted-fg-color 3px,
+        transparent 3px,
+        transparent 6px
+    );
+    box-shadow: 0px 0px 3px $event-redacted-border-color inset;
 }
 
 .mx_EventTile_highlight,
diff --git a/src/skins/vector/css/matrix-react-sdk/views/rooms/_MemberDeviceInfo.scss b/src/skins/vector/css/matrix-react-sdk/views/rooms/_MemberDeviceInfo.scss
index 2a5be325..5888820e 100644
--- a/src/skins/vector/css/matrix-react-sdk/views/rooms/_MemberDeviceInfo.scss
+++ b/src/skins/vector/css/matrix-react-sdk/views/rooms/_MemberDeviceInfo.scss
@@ -26,19 +26,15 @@ limitations under the License.
 }
 
 .mx_MemberDeviceInfo_textButton {
-    color: $accent-fg-color;
-    background-color: $accent-color;
-    border-radius: 17px;
-    text-align: center;
-    padding-left: 1em;
-    padding-right: 1em;
-    border: 0px;
-    font-size: 14px;
-    cursor: pointer;
+    @mixin mx_DialogButton_small;
     margin: 2px;
     flex: 1;
 }
 
+.mx_MemberDeviceInfo_textButton:hover {
+    @mixin mx_DialogButton_hover;
+}
+
 .mx_MemberDeviceInfo_deviceId {
     font-size: 13px;
 }
diff --git a/src/skins/vector/css/matrix-react-sdk/views/rooms/_MemberList.scss b/src/skins/vector/css/matrix-react-sdk/views/rooms/_MemberList.scss
index dd41483b..83fc70ae 100644
--- a/src/skins/vector/css/matrix-react-sdk/views/rooms/_MemberList.scss
+++ b/src/skins/vector/css/matrix-react-sdk/views/rooms/_MemberList.scss
@@ -49,7 +49,7 @@ limitations under the License.
 .mx_MemberList_query,
 .mx_GroupMemberList_query,
 .mx_GroupRoomList_query {
-    font-family: 'Open Sans', Arial, Helvetica, Sans-Serif;
+    font-family: $font-family;
     border-radius: 3px;
     border: 1px solid $input-border-color;
     padding: 9px;
diff --git a/src/skins/vector/css/matrix-react-sdk/views/rooms/_MessageComposer.scss b/src/skins/vector/css/matrix-react-sdk/views/rooms/_MessageComposer.scss
index 14e75853..4a84d161 100644
--- a/src/skins/vector/css/matrix-react-sdk/views/rooms/_MessageComposer.scss
+++ b/src/skins/vector/css/matrix-react-sdk/views/rooms/_MessageComposer.scss
@@ -55,9 +55,11 @@ limitations under the License.
 .mx_MessageComposer_noperm_error {
     width: 100%;
     height: 60px;
-    text-align: center;
     font-style: italic;
     color: $greyed-fg-color;
+    display: flex;
+    align-items: center;
+    justify-content: center;
 }
 
 .mx_MessageComposer_input_wrapper {
@@ -138,7 +140,7 @@ limitations under the License.
     max-height: 120px;
     overflow: auto;
     /* needed for FF */
-    font-family: 'Open Sans', Arial, Helvetica, Sans-Serif;
+    font-family: $font-family;
 }
 
 /* hack for FF as vertical alignment of custom placeholder text is broken */
@@ -175,6 +177,8 @@ limitations under the License.
 .mx_MessageComposer_formatting {
     cursor: pointer;
     margin: 0 11px;
+    width: 24px;
+    height: 18px;
 }
 
 .mx_MessageComposer_formatbar_wrapper {
diff --git a/src/skins/vector/css/matrix-react-sdk/views/rooms/_RoomHeader.scss b/src/skins/vector/css/matrix-react-sdk/views/rooms/_RoomHeader.scss
index 79ada70b..9c1349ad 100644
--- a/src/skins/vector/css/matrix-react-sdk/views/rooms/_RoomHeader.scss
+++ b/src/skins/vector/css/matrix-react-sdk/views/rooms/_RoomHeader.scss
@@ -42,22 +42,14 @@ limitations under the License.
 }
 
 .mx_RoomHeader_textButton {
-    height: 36px;
-    background-color: $accent-color;
-    border-radius: 36px;
+    @mixin mx_DialogButton;
     margin-right: 8px;
-    color: $accent-fg-color;
-    line-height: 34px;
-    margin-top: -2px;
-    text-align: center;
+    margin-top: -5px;
     order: 2;
-    cursor: pointer;
+}
 
-/*
-    flex: 0 0 90px;
-*/
-    padding-left: 12px;
-    padding-right: 12px;
+.mx_RoomHeader_textButton:hover {
+    @mixin mx_DialogButton_hover;
 }
 
 .mx_RoomHeader_textButton_danger {
diff --git a/src/skins/vector/css/matrix-react-sdk/views/rooms/_RoomList.scss b/src/skins/vector/css/matrix-react-sdk/views/rooms/_RoomList.scss
index 35787ca0..d8a8d58a 100644
--- a/src/skins/vector/css/matrix-react-sdk/views/rooms/_RoomList.scss
+++ b/src/skins/vector/css/matrix-react-sdk/views/rooms/_RoomList.scss
@@ -50,10 +50,11 @@ limitations under the License.
     color: $primary-fg-color;
     background-color: $droptarget-bg-color;
     border-radius: 4px;
+    line-height: 16px;
 }
 
 .mx_RoomList_emptySubListTip .mx_RoleButton {
-    vertical-align: -3px;
+    vertical-align: -2px;
 }
 
 .mx_RoomList_headerButtons {
diff --git a/src/skins/vector/css/matrix-react-sdk/views/rooms/_RoomSettings.scss b/src/skins/vector/css/matrix-react-sdk/views/rooms/_RoomSettings.scss
index 9e269ac2..4013af4c 100644
--- a/src/skins/vector/css/matrix-react-sdk/views/rooms/_RoomSettings.scss
+++ b/src/skins/vector/css/matrix-react-sdk/views/rooms/_RoomSettings.scss
@@ -22,18 +22,16 @@ limitations under the License.
 
 .mx_RoomSettings_leaveButton,
 .mx_RoomSettings_unbanButton {
+    @mixin mx_DialogButton;
     position: relative;
-    height: 36px;
-    background-color: $accent-color;
-    border-radius: 36px;
     margin-right: 8px;
-    color: $accent-fg-color;
-    line-height: 34px;
-    text-align: center;
-    cursor: pointer;
-    padding-left: 12px;
-    padding-right: 12px;
 }
+
+.mx_RoomSettings_leaveButton:hover,
+.mx_RoomSettings_unbanButton:hover {
+    @mixin mx_DialogButton_hover;
+}
+
 .mx_RoomSettings_integrationsButton_error {
     position: relative;
     cursor: not-allowed;
diff --git a/src/skins/vector/css/matrix-react-sdk/views/rooms/_SearchableEntityList.scss b/src/skins/vector/css/matrix-react-sdk/views/rooms/_SearchableEntityList.scss
index 6116dd92..37a66312 100644
--- a/src/skins/vector/css/matrix-react-sdk/views/rooms/_SearchableEntityList.scss
+++ b/src/skins/vector/css/matrix-react-sdk/views/rooms/_SearchableEntityList.scss
@@ -21,7 +21,7 @@ limitations under the License.
 }
 
 .mx_SearchableEntityList_query {
-    font-family: 'Open Sans', Arial, Helvetica, Sans-Serif;
+    font-family: $font-family;
     border-radius: 3px;
     border: 1px solid $input-border-color;
     padding: 9px;
diff --git a/src/skins/vector/css/themes/_base.scss b/src/skins/vector/css/themes/_base.scss
index 3a7eac56..a3346d10 100644
--- a/src/skins/vector/css/themes/_base.scss
+++ b/src/skins/vector/css/themes/_base.scss
@@ -1,3 +1,9 @@
+/* Open Sans lacks combining diacritics, so these will fall through
+   to the next font.  Helevetica's diacritics however do not combine
+   nicely with Open Sans (on OSX, at least) and result in a huge
+   horizontal mess.  Arial empirically gets it right, hence prioritising
+   Arial here. */
+$font-family: 'Open Sans', Arial, Helvetica, Sans-Serif;
 
 // typical text (dark-on-white in light skin)
 $primary-fg-color: #454545;
@@ -65,6 +71,7 @@ $menu-border-color: rgba(187, 187, 187, 0.5);
 $menu-bg-color: #f6f6f6;
 
 $avatar-initial-color: #ffffff;
+$avatar-bg-color: #ffffff;
 
 $h3-color: #3d3b39;
 
@@ -98,6 +105,9 @@ $roomtile-focused-bg-color: rgba(255, 255, 255, 0.9);
 
 $roomsublist-label-fg-color: $h3-color;
 $roomsublist-label-bg-color: #d3efe1;
+$roomsublist-chevron-color: $accent-color;
+
+$panel-divider-color: rgba(118, 207, 166, 0.2);
 
 // ********************
 
@@ -107,7 +117,8 @@ $event-sending-color: #ddd;
 $event-notsent-color: #f44;
 
 // event redaction
-$event-redacted-img: url('../../img/redacted.jpg');
+$event-redacted-fg-color: #e2e2e2;
+$event-redacted-border-color: #cccccc;
 
 // event timestamp
 $event-timestamp-color: #acacac;
@@ -127,3 +138,31 @@ $lightbox-border-color: #ffffff;
 
 // unused?
 $progressbar-color: #000;
+
+// ***** Mixins! *****
+
+@define-mixin mx_DialogButton {
+    /* align images in buttons (eg spinners) */
+    vertical-align: middle;
+    border: 0px;
+    border-radius: 36px;
+    font-family: $font-family;
+    font-size: 14px;
+    color: $accent-fg-color;
+    background-color: $accent-color;
+    width: auto;
+    padding: 7px;
+    padding-left: 1.5em;
+    padding-right: 1.5em;
+    cursor: pointer;
+    display: inline-block;
+}
+
+@define-mixin mx_DialogButton_hover {
+}
+
+@define-mixin mx_DialogButton_small {
+    @mixin mx_DialogButton;
+    font-size: 15px;
+    padding: 0px 1.5em 0px 1.5em;
+}
diff --git a/src/skins/vector/css/themes/_dark.scss b/src/skins/vector/css/themes/_dark.scss
index d6fa88d6..595783c3 100644
--- a/src/skins/vector/css/themes/_dark.scss
+++ b/src/skins/vector/css/themes/_dark.scss
@@ -60,6 +60,7 @@ $menu-border-color: rgba(187, 187, 187, 0.5);
 $menu-bg-color: #373737;
 
 $avatar-initial-color: #2d2d2d;
+$avatar-bg-color: #ffffff;
 
 $h3-color: $primary-fg-color;
 
@@ -92,6 +93,9 @@ $roomtile-focused-bg-color: rgba(255, 255, 255, 0.2);
 
 $roomsublist-label-fg-color: $h3-color;
 $roomsublist-label-bg-color: #454545;
+$roomsublist-chevron-color: $accent-color;
+
+$panel-divider-color: rgba(118, 207, 166, 0.2);
 
 // ********************
 
@@ -101,7 +105,8 @@ $event-sending-color: #888;
 $event-notsent-color: #f44;
 
 // event redaction
-$event-redacted-img: url('../../img/redacted-dark.jpg');
+$event-redacted-fg-color: #606060;
+$event-redacted-border-color: #000000;
 
 // event timestamp
 $event-timestamp-color: #acacac;
diff --git a/src/skins/vector/css/vector-web/structures/_LeftPanel.scss b/src/skins/vector/css/vector-web/structures/_LeftPanel.scss
index 418358dd..29786fad 100644
--- a/src/skins/vector/css/vector-web/structures/_LeftPanel.scss
+++ b/src/skins/vector/css/vector-web/structures/_LeftPanel.scss
@@ -49,7 +49,7 @@ limitations under the License.
 .mx_LeftPanel .mx_BottomLeftMenu {
     order: 3;
 
-    border-top: 1px solid rgba(118, 207, 166, 0.2);
+    border-top: 1px solid $panel-divider-color;
     margin-left: 16px; /* gutter */
     margin-right: 16px; /* gutter */
     flex: 0 0 60px;
diff --git a/src/skins/vector/css/vector-web/structures/_RoomSubList.scss b/src/skins/vector/css/vector-web/structures/_RoomSubList.scss
index 0d56d6c3..1a78e517 100644
--- a/src/skins/vector/css/vector-web/structures/_RoomSubList.scss
+++ b/src/skins/vector/css/vector-web/structures/_RoomSubList.scss
@@ -129,7 +129,7 @@ limitations under the License.
     height: 0;
     border-left: 5px solid transparent;
     border-right: 5px solid transparent;
-    border-top: 6px solid $accent-color;
+    border-top: 6px solid $roomsublist-chevron-color;
 }
 
 .mx_RoomSubList_chevronUp {
@@ -137,14 +137,14 @@ limitations under the License.
     height: 0;
     border-left: 5px solid transparent;
     border-right: 5px solid transparent;
-    border-bottom: 6px solid $accent-color;
+    border-bottom: 6px solid $roomsublist-chevron-color;
 }
 
 .mx_RoomSubList_chevronRight {
     width: 0;
     height: 0;
     border-top: 5px solid transparent;
-    border-left: 6px solid $accent-color;
+    border-left: 6px solid $roomsublist-chevron-color;
     border-bottom: 5px solid transparent;
 }
 
diff --git a/src/skins/vector/css/vector-web/views/globals/_MatrixToolbar.scss b/src/skins/vector/css/vector-web/views/globals/_MatrixToolbar.scss
index 1a7b1c16..be69b15f 100644
--- a/src/skins/vector/css/vector-web/views/globals/_MatrixToolbar.scss
+++ b/src/skins/vector/css/vector-web/views/globals/_MatrixToolbar.scss
@@ -56,3 +56,7 @@ limitations under the License.
 .mx_MatrixToolbar_action {
     margin-right: 16px;
 }
+
+.mx_MatrixToolbar_changelog {
+    white-space: pre;
+}
\ No newline at end of file
diff --git a/src/skins/vector/img/button-text-formatting.svg b/src/skins/vector/img/button-text-formatting.svg
index d3fc3f5f..d697010d 100644
--- a/src/skins/vector/img/button-text-formatting.svg
+++ b/src/skins/vector/img/button-text-formatting.svg
@@ -1,18 +1,21 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<svg width="24px" height="18px" viewBox="0 0 24 18" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
-    <!-- Generator: sketchtool 39 (31667) - http://www.bohemiancoding.com/sketch -->
-    <title>F69CBF5F-0BEC-47E8-B1DF-125D6376C0C9</title>
-    <desc>Created with sketchtool.</desc>
-    <defs></defs>
-    <g id="Screens-revised" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
-        <g id="02_x-Chat-text-input-" transform="translate(-829.000000, -729.000000)">
-            <g id="button_text_formatting" transform="translate(829.000000, 729.000000)">
-                <rect id="Rectangle-111" fill="#F6F6F6" x="0" y="0" width="24" height="18" rx="9"></rect>
-                <text id="Aa" font-family="OpenSans-Bold, Open Sans" font-size="12" font-weight="bold" letter-spacing="-1.20000005" fill="#4A4A4A">
-                    <tspan x="5" y="13">A</tspan>
-                    <tspan x="12.0792968" y="13" font-family="OpenSans-Italic, Open Sans" font-style="italic" font-weight="normal">a</tspan>
-                </text>
-            </g>
-        </g>
-    </g>
-</svg>
\ No newline at end of file
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Generator: Adobe Illustrator 21.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0)  -->
+<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
+	 viewBox="0 0 24 18" style="enable-background:new 0 0 24 18;" xml:space="preserve">
+<style type="text/css">
+	.st0{fill:#F6F6F6;}
+	.st1{enable-background:new    ;}
+	.st2{fill:#4A4A4A;}
+</style>
+<path id="Rectangle-111" class="st0" d="M9,0h6c5,0,9,4,9,9l0,0c0,5-4,9-9,9H9c-5,0-9-4-9-9l0,0C0,4,4,0,9,0z"/>
+<g class="st1">
+	<path class="st2" d="M11.3,13l-0.6-2H7.6L7,13H5l3-8.6h2.2l3,8.6H11.3z M10.3,9.4c-0.6-1.8-0.9-2.9-1-3.1S9.2,5.9,9.1,5.7
+		C9,6.2,8.6,7.5,8,9.4H10.3z"/>
+</g>
+<g class="st1">
+	<path class="st2" d="M15.8,6.5c0.4,0,0.7,0.1,1,0.3s0.5,0.5,0.7,0.8h0.1l0.4-1h0.7L17.3,13h-0.8l0.2-1.2h0
+		c-0.7,0.9-1.4,1.3-2.2,1.3c-0.5,0-1-0.2-1.3-0.6s-0.5-0.9-0.5-1.6c0-0.8,0.1-1.6,0.4-2.3s0.7-1.2,1.1-1.6S15.2,6.5,15.8,6.5z
+		 M14.7,12.3c0.4,0,0.8-0.2,1.1-0.5s0.7-0.8,0.9-1.4s0.4-1.2,0.4-1.7c0-0.4-0.1-0.7-0.3-1s-0.5-0.4-0.9-0.4c-0.4,0-0.8,0.2-1.1,0.5
+		S14.2,8.6,14,9.2s-0.3,1.2-0.3,1.8c0,0.4,0.1,0.8,0.3,1S14.4,12.3,14.7,12.3z"/>
+</g>
+</svg>
diff --git a/src/skins/vector/img/logos/riot-im-logo-1.png b/src/skins/vector/img/logos/riot-im-logo-1.png
new file mode 100644
index 00000000..768679da
Binary files /dev/null and b/src/skins/vector/img/logos/riot-im-logo-1.png differ
diff --git a/src/skins/vector/themes/status/css/_StatusLogin.scss b/src/skins/vector/themes/status/css/_StatusLogin.scss
new file mode 100644
index 00000000..68727274
--- /dev/null
+++ b/src/skins/vector/themes/status/css/_StatusLogin.scss
@@ -0,0 +1,232 @@
+/*
+Copyright 2017 New Vector Ltd
+
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+
+    http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+*/
+
+// overrides for mx_Login* specific to Status.
+// Ideally this would be all Status prefixes for a Status specific version of the component
+// but given we're not doing Status as a dedicated 'skin' yet...
+
+.mx_StatusLogin {
+
+    width: 100%;
+    height: 100%;
+
+    display: flex;
+    align-items: center;
+    justify-content: center;
+
+    overflow: auto;
+
+    .mx_StatusLogin_brand {
+        position: absolute;
+        top: 30px;
+        left: 30px;
+    }
+
+    .mx_StatusLogin_content {
+        margin: auto;
+    }
+
+    .mx_StatusLogin_header {
+        text-align: center;
+        margin-top: 70px;
+        margin-bottom: 50px;
+    }
+
+    .mx_StatusLogin_header h1 {
+        font-size: 29px;
+        margin-bottom: 3px;
+    }
+
+    .mx_StatusLogin_subtitle {
+        font-size: 18px;
+    }
+
+    .mx_StatusLogin_subtitle a {
+        color: $riot-link-color;
+    }
+
+    .mx_StatusLogin_footer {
+        margin-top: 30px;
+        margin-bottom: 30px;
+        text-align: center;
+        font-size: 16px;
+        color: $footer-color;
+    }
+
+    .mx_StatusLogin_footer p {
+        margin-top: 0.5em;
+        margin-bottom: 0.5em;
+    }
+
+    .mx_StatusLogin_footer_cta {
+        color: $callout-color;
+        font-family: $header-font-family;
+        letter-spacing: 1px;
+        font-size: 13px;
+        text-transform: uppercase;
+        opacity: 1.0;
+        transition: opacity .2s ease;        
+    }
+
+    .mx_StatusLogin_footer_cta:hover {
+        opacity: 0.5;
+        text-decoration: none;
+    }
+
+    // overrides of .mx_Login
+
+    .mx_Login_box {
+        width: 330px;
+        min-height: initial;
+        padding-top: 40px;
+        padding-bottom: 20px;
+        padding-left: 10px;
+        padding-right: 10px;
+        border-radius: 8px;
+        color: $form-fg-color;
+        font-size: 16px;
+        line-height: 25px;
+        background-color: $form-bg-color;
+        background-image: url(../../themes/status/img/dot.svg);
+        box-shadow: 0px 5px 16px 0px rgba(25,12,46,0.16);    
+        position: relative;
+        text-align: center;
+    }
+
+    .mx_Login_logo {
+        background-color: #fff;
+        width: 74px;
+        height: 74px;
+        border-radius: 37px;
+        box-shadow: 0px 5px 16px 0px rgba(0,0,0,0.2);
+        position: absolute;
+        top: -36px;
+        left: 50%;
+        margin-left: -36px;
+    }
+
+    .mx_Login_logo img {
+        width: 36px;
+        height: 36px;
+        padding: 19px;
+    }
+
+    .mx_Login_box h2 {
+        text-align: center;
+        color: $form-fg-color;
+        font-size: 25px;
+        margin-bottom: 24px;
+    }
+
+    .mx_Login_field {
+        width: 260px;
+        height: 27px;
+        padding: 8px 20px 10px 20px;
+        border-radius: 10px;
+        text-align: left;
+        border: 1px solid transparent;
+        background-color: $form-field-bg-color;
+        color: $form-field-fg-color;
+        font-weight: 300;
+        font-size: 15px;
+        margin-bottom: 14px;
+        transition: background-color .2s ease;
+    }
+
+    .mx_Login_field:focus {
+        border: 1px solid transparent;
+        background-color: $form-field-bg-hover-color;
+    }
+
+    .mx_Login_field::-webkit-input-placeholder {
+        font-family: $font-family;
+        color: $form-field-fg-color;
+        opacity: 0.6;
+    }
+
+    .mx_Login_field::-moz-placeholder {
+        font-family: $font-family;
+        color: $form-field-fg-color;
+        opacity: 0.6;        
+    }
+
+    .mx_Login_field_disabled {
+        opacity: 0.3;
+    }
+
+    .mx_Login_prompt {
+        font-size: 16px;
+    }
+
+    .mx_Login_submit {
+        min-width: 200px;
+        width: auto;
+        margin-top: 13px;
+        margin-bottom: 10px;
+    }
+
+    .mx_Login_submit:disabled {
+        opacity: 0.3;
+    }
+
+    .mx_Login_create {
+        margin-top: 10px;
+        display: block;
+        text-align: center;
+        width: 100%;
+        font-size: 15px;
+        opacity: 1.0;
+    }
+
+    .mx_Login_create:link,
+    .mx_Login_create:hover,
+    .mx_Login_create:visited
+    {
+        color: $form-fg-color;
+    }
+
+    .mx_Login_forgot {
+        display: block;
+        font-size: 15px;
+    }
+
+    .mx_Login_forgot:link,
+    .mx_Login_forgot:hover,
+    .mx_Login_forgot:visited
+    {
+        color: $form-fg-color;
+    }
+
+    .mx_Login_error {
+        color: $warning-color;
+        font-size: 18px;
+        width: 300px;
+        height: 44px;
+        display: flex;
+        justify-content: center;
+        align-items: center;
+        margin: auto;
+        text-align: center;
+        margin-top: 12px;
+        margin-bottom: 16px;
+    }
+
+    .mx_Login_smallError {
+        font-size: 13px;
+        line-height: initial;
+    }
+
+}
diff --git a/src/skins/vector/themes/status/css/_status.scss b/src/skins/vector/themes/status/css/_status.scss
new file mode 100644
index 00000000..2962ee9d
--- /dev/null
+++ b/src/skins/vector/themes/status/css/_status.scss
@@ -0,0 +1,276 @@
+@font-face {
+    font-family:PostGrotesk-Medium;
+    src:url('https://status.im/fonts/PostGrotesk-Medium.eot');
+    src:url('https://status.im/fonts/PostGrotesk-Medium.eot?#iefix') format("embedded-opentype"),url('https://status.im/fonts/PostGrotesk-Medium.woff') format("woff"),url('https://status.im/fonts/PostGrotesk-Medium.svg#PostGrotesk-Medium') format("svg");
+    font-weight: 400;
+    font-style: normal;
+}
+
+@font-face {
+    font-family:PostGrotesk-Book;
+    src:url('https://status.im/fonts/PostGrotesk-Book.eot');
+    src:url('https://status.im/fonts/PostGrotesk-Book.eot?#iefix') format("embedded-opentype"),url('https://status.im/fonts/PostGrotesk-Book.woff') format("woff"),url('https://status.im/fonts/PostGrotesk-Book.svg#PostGrotesk-Book') format("svg");
+    font-weight: 400;
+    font-style: normal;
+}
+
+// We deliberately prioritise Arial over Helvetica here due to diacritic problems (see _base.scss)
+// N.B. that the status.im website uses:
+// font-family:PostGrotesk-Book,-apple-system,BlinkMacSystemFont,"Segoe UI",Helvetica,Arial,sans-serif;
+// ...but can't be bothered to work out how the apple fonts & segoe interact, so keepingn it simple for now.
+
+$font-family: PostGrotesk-Book, Arial, Helvetica, Sans-Serif;
+
+// typical text (dark-on-white in light skin)
+$primary-fg-color: #70808D;
+$primary-bg-color: #EEF2F5;
+
+// ***** Start of Status theme specifics ******
+$header-color: #49555F;
+$header-font-family: PostGrotesk-Medium, Arial, Helvetica, Sans-Serif;
+
+$footer-color: #8D99A4;
+
+$riot-link-color: #A26988;
+
+a {
+    text-decoration: none;
+}
+
+a:hover {
+    text-decoration: underline;
+}
+
+h1,h2,h3,h4,h5 {
+    color: $header-color;
+    font-family: $header-font-family;
+    font-weight: 400 ! important;
+}
+
+$callout-color: #4360DF; // or #4957b8 from status.im homepage
+
+$form-bg-color: $callout-color;
+$form-fg-color: #ffffff;
+
+$form-field-bg-color: rgba(244, 242, 247, 0.12);
+$form-field-bg-hover-color: rgba(255, 255, 255, 0.2);
+$form-field-fg-color: #ffffff;
+
+// ***** End of Status theme specifics ******
+
+
+// used for dialog box text
+$light-fg-color: #747474;
+
+// used for focusing form controls
+$focus-bg-color: #dddddd;
+
+// button UI (white-on-green in light skin)
+$accent-fg-color: #ffffff;
+$accent-color: #6CC1F6;
+$accent-hover-color: #84cfff;
+
+$selection-fg-color: $primary-bg-color;
+
+$focus-brightness: 125%;
+
+// red warning colour
+$warning-color: #F69E98;
+$mention-user-pill-bg-color: #ff0064;
+$other-user-pill-bg-color: rgba(0, 0, 0, 0.1);
+
+$group-alert-color: #774f7e;
+
+$preview-bar-bg-color: #f7f7f7;
+
+// left-panel style muted accent color
+$secondary-accent-color: #586C7B;
+
+// stop the tinter trying to change the secondary accent color
+// by overriding the key to something untintable
+// XXX: this is a bit of a hack.
+#mx_theme_secondaryAccentColor {
+    color: #586C7C ! important; // deliberately off by one
+}
+
+// used by RoomDirectory permissions
+$plinth-bg-color: $secondary-accent-color;
+
+// used by RoomDropTarget
+$droptarget-bg-color: rgba(255,255,255,0.5);
+
+// used by AddressSelector
+$selected-color: #eaf5f0;
+
+// selected for hoverover & selected event tiles
+$event-selected-color: #f7f7f7;
+
+// used for the hairline dividers in RoomView
+$primary-hairline-color: #e5e5e5;
+
+// used for the border of input text fields
+$input-border-color: #c9cfd4;
+
+// apart from login forms, which have stronger border
+$strong-input-border-color: #c7c7c7;
+
+// used for UserSettings EditableText
+$input-underline-color: rgba(151, 151, 151, 0.5);
+$input-fg-color: rgba(74, 74, 74, 0.9);
+
+// context menus
+$menu-border-color: rgba(187, 187, 187, 0.5);
+$menu-bg-color: #f6f6f6;
+
+$avatar-initial-color: #ffffff;
+$avatar-bg-color: transparent;
+
+$h3-color: #3d3b39;
+
+$dialog-background-bg-color: #e9e9e9;
+$lightbox-background-bg-color: #000;
+
+$greyed-fg-color: #888;
+
+$neutral-badge-color: #dbdbdb;
+
+$preview-widget-bar-color: #ddd;
+$preview-widget-fg-color: $greyed-fg-color;
+
+$blockquote-bar-color: #ddd;
+$blockquote-fg-color: #777;
+
+$settings-grey-fg-color: #a2a2a2;
+
+$voip-decline-color: #f48080;
+$voip-accept-color: #80f480;
+
+$rte-bg-color: #e9e9e9;
+$rte-code-bg-color: rgba(0, 0, 0, 0.04);
+$rte-room-pill-color: #aaa;
+
+// ********************
+
+$roomtile-name-color: #ffffff;
+$roomtile-selected-bg-color: #465561;
+$roomtile-focused-bg-color: #6d8597;
+
+$roomsublist-label-fg-color: #ffffff;
+$roomsublist-label-bg-color: $secondary-accent-color;
+$roomsublist-chevron-color: #ffffff;
+
+$panel-divider-color: rgba(0, 0, 0, 0.2);
+
+// ********************
+
+// event tile lifecycle
+$event-encrypting-color: #abddbc;
+$event-sending-color: #ddd;
+$event-notsent-color: #f44;
+
+// event redaction
+$event-redacted-fg-color: #e2e2e2;
+$event-redacted-border-color: #cccccc;
+
+// event timestamp
+$event-timestamp-color: #acacac;
+
+$edit-button-url: "../../img/icon_context_message.svg";
+$copy-button-url: "../../img/icon_copy_message.svg";
+
+// e2e
+$e2e-verified-color: #76cfa5; // N.B. *NOT* the same as $accent-color
+$e2e-unverified-color: #e8bf37;
+$e2e-warning-color: #ba6363;
+
+/*** ImageView ***/
+$lightbox-bg-color: #454545;
+$lightbox-fg-color: #ffffff;
+$lightbox-border-color: #ffffff;
+
+// unused?
+$progressbar-color: #000;
+
+@define-mixin mx_DialogButton {
+    /* align images in buttons (eg spinners) */
+    vertical-align: middle;
+    border-radius: 8px;
+    border: 1px solid rgba(199, 206, 209, 0.12);
+    background-color: $accent-color;
+    font-size: 13px;
+    font-family: $header-font-family;
+    text-transform: uppercase;
+    letter-spacing: 1px;
+    color: $accent-fg-color;
+    cursor: pointer;
+    outline: none;
+    padding: 14px;
+    box-sizing: border-box;
+    padding-left: 1.5em;
+    padding-right: 1.5em;
+    display: inline-block;
+    transition: background-color .2s ease;
+}
+
+@define-mixin mx_DialogButton_hover {
+    background-color: $accent-hover-color;
+}
+
+@define-mixin mx_DialogButton_small {
+    @mixin mx_DialogButton;
+    height: auto;
+    padding-top: 7px;
+    padding-bottom: 7px;
+    padding-left: 1em;
+    padding-right: 1em;
+}
+
+.mx_RoomSubList_label {
+    font-size: 13px;
+    font-family: $header-font-family;
+    letter-spacing: 1px;    
+}
+
+// FIXME: all these ! importants are horrid - we should instead go and define
+// variables or something.
+.mx_SearchBox_search {
+    color: #fff ! important;
+}
+
+.mx_SearchBox_search::-webkit-input-placeholder  {
+    color: rgba(255, 255, 255, 0.6) ! important;
+}
+
+.mx_SearchBox_search::-moz-placeholder  {
+    color: rgba(255, 255, 255, 0.6) ! important;
+}
+
+.mx_RoomList_emptySubListTip,
+.mx_RoomDropTarget {
+    font-size: 14px ! important;
+    border: 1.5px dashed rgba(0,0,0,0.2) ! important;
+    color: #fff ! important;
+    background-color: transparent ! important;
+    border-radius: 6px ! important;
+    margin-left: 6px ! important;
+    margin-right: 6px ! important;
+    margin-top: 8px ! important;
+    margin-bottom: 7px ! important;
+    padding: 8px ! important;
+}
+
+.mx_RoomDirectory_perm {
+    font-family: $header-font-family ! important;
+    background-color: #fff ! important;
+}
+
+.mx_RoomTile_badge,
+.mx_RoomSubList_badge {
+    height: 12px ! important;
+    padding-top: 1px ! important;
+    padding-bottom: 1px ! important;
+}
+
+.mx_RoomSubList_chevron {
+    top: 8px ! important;
+}
\ No newline at end of file
diff --git a/src/skins/vector/themes/status/css/status.scss b/src/skins/vector/themes/status/css/status.scss
new file mode 100644
index 00000000..09f5c78f
--- /dev/null
+++ b/src/skins/vector/themes/status/css/status.scss
@@ -0,0 +1,4 @@
+@import "../../../css/themes/_base.scss";
+@import "_status.scss";
+@import "../../../css/_components.scss";
+@import "_StatusLogin.scss";
diff --git a/src/skins/vector/themes/status/fonts/README b/src/skins/vector/themes/status/fonts/README
new file mode 100644
index 00000000..d7900145
--- /dev/null
+++ b/src/skins/vector/themes/status/fonts/README
@@ -0,0 +1 @@
+We link out to status.im for fonts, although ideally we'd put them here.
diff --git a/src/skins/vector/themes/status/img/a.png b/src/skins/vector/themes/status/img/a.png
new file mode 100644
index 00000000..defbcc4b
Binary files /dev/null and b/src/skins/vector/themes/status/img/a.png differ
diff --git a/src/skins/vector/themes/status/img/d.png b/src/skins/vector/themes/status/img/d.png
new file mode 100644
index 00000000..daeb0b07
Binary files /dev/null and b/src/skins/vector/themes/status/img/d.png differ
diff --git a/src/skins/vector/themes/status/img/dot.svg b/src/skins/vector/themes/status/img/dot.svg
new file mode 100644
index 00000000..45df23c0
--- /dev/null
+++ b/src/skins/vector/themes/status/img/dot.svg
@@ -0,0 +1 @@
+<svg width="20" height="20" viewBox="0 0 20 20" xmlns="http://www.w3.org/2000/svg"><title>Artboard</title><circle cx="10" cy="10" r="1" fill="#FFF" fill-rule="evenodd" opacity=".11"/></svg>
\ No newline at end of file
diff --git a/src/skins/vector/themes/status/img/g.png b/src/skins/vector/themes/status/img/g.png
new file mode 100644
index 00000000..f675a330
Binary files /dev/null and b/src/skins/vector/themes/status/img/g.png differ
diff --git a/src/skins/vector/themes/status/img/i.png b/src/skins/vector/themes/status/img/i.png
new file mode 100644
index 00000000..b63eeae1
Binary files /dev/null and b/src/skins/vector/themes/status/img/i.png differ
diff --git a/src/skins/vector/themes/status/img/logo.svg b/src/skins/vector/themes/status/img/logo.svg
new file mode 100644
index 00000000..68e4a77a
--- /dev/null
+++ b/src/skins/vector/themes/status/img/logo.svg
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg width="211px" height="53px" viewBox="0 0 211 53" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+    <!-- Generator: Sketch 47 (45396) - http://www.bohemiancoding.com/sketch -->
+    <title>Status logo</title>
+    <desc>Created with Sketch.</desc>
+    <defs></defs>
+    <g id="Symbols" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
+        <g id="Status-logo">
+            <g>
+                <path d="M66.843,12.101 C66.843,12.7730034 67.0914975,13.2699984 67.5885,13.592 C68.0855025,13.9140016 68.9849935,14.179999 70.287,14.39 C72.0510088,14.6840015 73.3494958,15.1599967 74.1825,15.818 C75.0155042,16.4760033 75.432,17.4559935 75.432,18.758 C75.432,20.1160068 74.9140052,21.2079959 73.878,22.034 C72.8419948,22.8600041 71.4770085,23.273 69.783,23.273 C68.0329912,23.273 66.6400052,22.8495042 65.604,22.0025 C64.5679948,21.1554958 64.0220003,20.1020063 63.966,18.842 L66.423,18.464 C66.4930004,19.2760041 66.8044972,19.9479973 67.3575,20.48 C67.9105028,21.0120027 68.7189947,21.278 69.783,21.278 C70.7350048,21.278 71.4874972,21.0715021 72.0405,20.6585 C72.5935028,20.2454979 72.87,19.6610038 72.87,18.905 C72.87,18.2329966 72.6180025,17.7150018 72.114,17.351 C71.6099975,16.9869982 70.7280063,16.7140009 69.468,16.532 C67.7739915,16.2799987 66.4895044,15.8320032 65.6145,15.188 C64.7394956,14.5439968 64.302,13.5850064 64.302,12.311 C64.302,10.9669933 64.7919951,9.91700378 65.772,9.161 C66.7520049,8.40499622 68.039992,8.027 69.636,8.027 C71.1340075,8.027 72.3729951,8.3769965 73.353,9.077 C74.3330049,9.7770035 74.9349989,10.7429938 75.159,11.975 L72.66,12.542 C72.4079987,10.8619916 71.379009,10.022 69.573,10.022 C68.6769955,10.022 67.9980023,10.2074981 67.536,10.5785 C67.0739977,10.9495019 66.843,11.4569968 66.843,12.101 Z M82.803,20.984 L83.454,22.853 C82.8939972,23.1330014 82.215004,23.273 81.417,23.273 C80.4789953,23.273 79.7475026,23.0280025 79.2225,22.538 C78.6974974,22.0479976 78.435,21.3480046 78.435,20.438 L78.435,14.81 L76.755,14.81 L76.755,13.046 L78.435,13.046 L78.435,10.211 L80.808,9.119 L80.808,13.046 L83.055,13.046 L83.055,14.81 L80.808,14.81 L80.808,20.144 C80.808,20.9280039 81.1229968,21.32 81.753,21.32 C82.0330014,21.32 82.3829979,21.2080011 82.803,20.984 Z M91.392,23 C91.2519993,22.7479987 91.182,22.321003 91.182,21.719 C90.4539964,22.7550052 89.3970069,23.273 88.011,23.273 C87.002995,23.273 86.194503,23.0175026 85.5855,22.5065 C84.976497,21.9954974 84.672,21.3060043 84.672,20.438 C84.672,19.7939968 84.8434983,19.2410023 85.1865,18.779 C85.5295017,18.3169977 86.0124969,17.9565013 86.6355,17.6975 C87.2585031,17.4384987 87.9409963,17.2530006 88.683,17.141 C89.4250037,17.0289994 90.2439955,16.973 91.14,16.973 L91.14,16.343 C91.14,15.7969973 90.9860015,15.3630016 90.678,15.041 C90.3699985,14.7189984 89.915003,14.558 89.313,14.558 C88.710997,14.558 88.2490016,14.7049985 87.927,14.999 C87.6049984,15.2930015 87.4370001,15.6639978 87.423,16.112 L85.113,15.776 C85.2110005,14.8379953 85.662496,14.1030027 86.4675,13.571 C87.272504,13.0389973 88.2489943,12.773 89.397,12.773 C90.6290062,12.773 91.6159963,13.0844969 92.358,13.7075 C93.1000037,14.3305031 93.471,15.2229942 93.471,16.385 L93.471,21.635 C93.471,22.0830022 93.5479992,22.5379977 93.702,23 L91.392,23 Z M88.662,21.509 C89.3340034,21.509 89.9149976,21.309502 90.405,20.9105 C90.8950025,20.511498 91.14,19.9830033 91.14,19.325 L91.14,18.506 C88.3959863,18.506 87.024,19.1009941 87.024,20.291 C87.024,20.683002 87.1744985,20.983999 87.4755,21.194 C87.7765015,21.404001 88.1719976,21.509 88.662,21.509 Z M101.199,20.984 L101.85,22.853 C101.289997,23.1330014 100.611004,23.273 99.813,23.273 C98.8749953,23.273 98.1435026,23.0280025 97.6185,22.538 C97.0934974,22.0479976 96.831,21.3480046 96.831,20.438 L96.831,14.81 L95.151,14.81 L95.151,13.046 L96.831,13.046 L96.831,10.211 L99.204,9.119 L99.204,13.046 L101.451,13.046 L101.451,14.81 L99.204,14.81 L99.204,20.144 C99.204,20.9280039 99.5189969,21.32 100.149,21.32 C100.429001,21.32 100.778998,21.2080011 101.199,20.984 Z M112.56,13.046 L112.56,23 L110.292,23 L110.292,21.509 C109.591997,22.6850059 108.563007,23.273 107.205,23.273 C106.210995,23.273 105.385003,22.9825029 104.727,22.4015 C104.068997,21.8204971 103.74,20.9980053 103.74,19.934 L103.74,13.046 L106.113,13.046 L106.113,19.346 C106.113,20.0180034 106.284498,20.5149984 106.6275,20.837 C106.970502,21.1590016 107.400997,21.32 107.919,21.32 C108.535003,21.32 109.066998,21.0540027 109.515,20.522 C109.963002,19.9899973 110.187,19.2550047 110.187,18.317 L110.187,13.046 L112.56,13.046 Z M117.39,15.692 C117.39,16.098002 117.557998,16.3919991 117.894,16.574 C118.230002,16.7560009 118.747996,16.9029994 119.448,17.015 C120.022003,17.0990004 120.522498,17.2039994 120.9495,17.33 C121.376502,17.4560006 121.785998,17.6309989 122.178,17.855 C122.570002,18.0790011 122.867499,18.3764981 123.0705,18.7475 C123.273501,19.1185019 123.375,19.5559975 123.375,20.06 C123.375,21.054005 122.986504,21.8379971 122.2095,22.412 C121.432496,22.9860029 120.393007,23.273 119.091,23.273 C117.844994,23.273 116.833504,23.0140026 116.0565,22.496 C115.279496,21.9779974 114.835001,21.2360048 114.723,20.27 L117.033,19.934 C117.131,20.9980053 117.823994,21.53 119.112,21.53 C119.686003,21.53 120.140998,21.4215011 120.477,21.2045 C120.813002,20.9874989 120.981,20.6620022 120.981,20.228 C120.981,19.835998 120.823502,19.5455009 120.5085,19.3565 C120.193498,19.1674991 119.616004,19.0100006 118.776,18.884 C117.543994,18.7019991 116.606003,18.3800023 115.962,17.918 C115.317997,17.4559977 114.996,16.7700045 114.996,15.86 C114.996,14.865995 115.391496,14.1030027 116.1825,13.571 C116.973504,13.0389973 117.942994,12.773 119.091,12.773 C120.197006,12.773 121.127996,13.0179976 121.884,13.508 C122.640004,13.9980025 123.087999,14.6629958 123.228,15.503 L120.918,15.986 C120.791999,14.991995 120.169006,14.495 119.049,14.495 C118.572998,14.495 118.177502,14.5999989 117.8625,14.81 C117.547498,15.020001 117.39,15.3139981 117.39,15.692 Z" id="Status" fill="#49555F"></path>
+                <path d="M68.31,32.5 L72.135,43 L70.77,43 L69.75,40.15 L65.58,40.15 L64.56,43 L63.285,43 L67.11,32.5 L68.31,32.5 Z M67.665,34.195 L67.635,34.195 L65.94,39.13 L69.39,39.13 C68.4299952,36.4099864 67.855001,34.7650029 67.665,34.195 Z M82.905,43 L81.78,43 C80.1199917,38.8699794 79.0300026,35.9650084 78.51,34.285 L78.48,34.285 L78.48,43 L77.295,43 L77.295,32.5 L79.02,32.5 C80.9700098,37.6500257 82.0949985,40.619996 82.395,41.41 L85.68,32.5 L87.39,32.5 L87.39,43 L86.205,43 L86.205,34.285 L86.175,34.285 C85.5449969,36.2050096 84.4550077,39.1099806 82.905,43 Z M92.805,35.74 C93.8650053,35.74 94.697497,36.0849965 95.3025,36.775 C95.907503,37.4650034 96.21,38.3599945 96.21,39.46 C96.21,40.5600055 95.907503,41.4549966 95.3025,42.145 C94.697497,42.8350035 93.8650053,43.18 92.805,43.18 C91.7449947,43.18 90.912503,42.8350035 90.3075,42.145 C89.702497,41.4549966 89.4,40.5600055 89.4,39.46 C89.4,38.3599945 89.702497,37.4650034 90.3075,36.775 C90.912503,36.0849965 91.7449947,35.74 92.805,35.74 Z M92.805,42.175 C93.4850034,42.175 94.0049982,41.9175026 94.365,41.4025 C94.7250018,40.8874974 94.905,40.2400039 94.905,39.46 C94.905,38.6799961 94.7250018,38.0325026 94.365,37.5175 C94.0049982,37.0024974 93.4850034,36.745 92.805,36.745 C92.1249966,36.745 91.6050018,37.0024974 91.245,37.5175 C90.8849982,38.0325026 90.705,38.6799961 90.705,39.46 C90.705,40.2400039 90.8849982,40.8874974 91.245,41.4025 C91.6050018,41.9175026 92.1249966,42.175 92.805,42.175 Z M101.58,35.74 C102.530005,35.74 103.309997,36.0774966 103.92,36.7525 C104.530003,37.4275034 104.835,38.3299943 104.835,39.46 C104.835,40.5900057 104.530003,41.4924966 103.92,42.1675 C103.309997,42.8425034 102.530005,43.18 101.58,43.18 C100.549995,43.18 99.7750026,42.7650041 99.255,41.935 L99.255,43 L98.07,43 L98.07,32.5 L99.33,32.5 L99.33,36.82 C99.9000029,36.0999964 100.649995,35.74 101.58,35.74 Z M99.33,38.98 L99.33,39.94 C99.33,40.6700036 99.5474978,41.2199982 99.9825,41.59 C100.417502,41.9600018 100.904997,42.145 101.445,42.145 C102.075003,42.145 102.579998,41.8925025 102.96,41.3875 C103.340002,40.8824975 103.53,40.2400039 103.53,39.46 C103.53,38.6799961 103.340002,38.0375025 102.96,37.5325 C102.579998,37.0274975 102.075003,36.775 101.445,36.775 C100.904997,36.775 100.417502,36.9599982 99.9825,37.33 C99.5474978,37.7000018 99.33,38.2499964 99.33,38.98 Z M106.5,33.16 C106.5,32.9099987 106.577499,32.7100007 106.7325,32.56 C106.887501,32.4099992 107.084999,32.335 107.325,32.335 C107.565001,32.335 107.762499,32.4099992 107.9175,32.56 C108.072501,32.7100007 108.15,32.9099987 108.15,33.16 C108.15,33.3800011 108.072501,33.5699992 107.9175,33.73 C107.762499,33.8900008 107.565001,33.97 107.325,33.97 C107.084999,33.97 106.887501,33.8900008 106.7325,33.73 C106.577499,33.5699992 106.5,33.3800011 106.5,33.16 Z M106.695,43 L106.695,35.92 L107.955,35.92 L107.955,43 L106.695,43 Z M110.355,43 L110.355,32.5 L111.615,32.5 L111.615,43 L110.355,43 Z M118.65,40.93 L119.76,41.38 C119.159997,42.580006 118.190007,43.18 116.85,43.18 C115.809995,43.18 114.987503,42.8325035 114.3825,42.1375 C113.777497,41.4424965 113.475,40.5450055 113.475,39.445 C113.475,38.3649946 113.777497,37.4775035 114.3825,36.7825 C114.987503,36.0874965 115.794995,35.74 116.805,35.74 C117.825005,35.74 118.612497,36.0824966 119.1675,36.7675 C119.722503,37.4525034 120,38.2849951 120,39.265 L120,39.685 L114.765,39.685 C114.795,40.4150037 114.982498,41.0174976 115.3275,41.4925 C115.672502,41.9675024 116.184997,42.205 116.865,42.205 C117.325002,42.205 117.689999,42.1000011 117.96,41.89 C118.230001,41.6799989 118.459999,41.3600021 118.65,40.93 Z M116.775,36.715 C116.224997,36.715 115.775002,36.9024981 115.425,37.2775 C115.074998,37.6525019 114.87,38.139997 114.81,38.74 L118.71,38.74 C118.68,38.1199969 118.487502,37.6275018 118.1325,37.2625 C117.777498,36.8974982 117.325003,36.715 116.775,36.715 Z M131.67,43 L125.415,43 L125.415,32.5 L131.565,32.5 L131.565,33.55 L126.72,33.55 L126.72,37.06 L131.25,37.06 L131.25,38.11 L126.72,38.11 L126.72,41.95 L131.67,41.95 L131.67,43 Z M136.605,41.905 L137.01,42.895 C136.679998,43.085001 136.255003,43.18 135.735,43.18 C135.144997,43.18 134.692502,43.0150017 134.3775,42.685 C134.062498,42.3549984 133.905,41.9400025 133.905,41.44 L133.905,36.88 L132.705,36.88 L132.705,35.92 L133.905,35.92 L133.905,33.895 L135.165,33.325 L135.165,35.92 L136.815,35.92 L136.815,36.88 L135.165,36.88 L135.165,41.32 C135.165,41.5700013 135.229999,41.7674993 135.36,41.9125 C135.490001,42.0575007 135.669999,42.13 135.9,42.13 C136.150001,42.13 136.384999,42.0550007 136.605,41.905 Z M138.585,43 L138.585,32.5 L139.845,32.5 L139.845,36.895 C140.345002,36.1249962 141.064995,35.74 142.005,35.74 C142.725004,35.74 143.324998,35.944998 143.805,36.355 C144.285002,36.765002 144.525,37.3449963 144.525,38.095 L144.525,43 L143.265,43 L143.265,38.29 C143.265,37.7899975 143.115002,37.4125013 142.815,37.1575 C142.514998,36.9024987 142.160002,36.775 141.75,36.775 C141.229997,36.775 140.782502,36.9924978 140.4075,37.4275 C140.032498,37.8625022 139.845,38.4349964 139.845,39.145 L139.845,43 L138.585,43 Z M151.485,40.93 L152.595,41.38 C151.994997,42.580006 151.025007,43.18 149.685,43.18 C148.644995,43.18 147.822503,42.8325035 147.2175,42.1375 C146.612497,41.4424965 146.31,40.5450055 146.31,39.445 C146.31,38.3649946 146.612497,37.4775035 147.2175,36.7825 C147.822503,36.0874965 148.629995,35.74 149.64,35.74 C150.660005,35.74 151.447497,36.0824966 152.0025,36.7675 C152.557503,37.4525034 152.835,38.2849951 152.835,39.265 L152.835,39.685 L147.6,39.685 C147.63,40.4150037 147.817498,41.0174976 148.1625,41.4925 C148.507502,41.9675024 149.019997,42.205 149.7,42.205 C150.160002,42.205 150.524999,42.1000011 150.795,41.89 C151.065001,41.6799989 151.294999,41.3600021 151.485,40.93 Z M149.61,36.715 C149.059997,36.715 148.610002,36.9024981 148.26,37.2775 C147.909998,37.6525019 147.705,38.139997 147.645,38.74 L151.545,38.74 C151.515,38.1199969 151.322502,37.6275018 150.9675,37.2625 C150.612498,36.8974982 150.160003,36.715 149.61,36.715 Z M158.7,35.905 L158.415,37.075 C158.194999,36.874999 157.925002,36.775 157.605,36.775 C157.114998,36.775 156.697502,36.9999977 156.3525,37.45 C156.007498,37.9000023 155.835,38.4749965 155.835,39.175 L155.835,43 L154.575,43 L154.575,35.92 L155.76,35.92 L155.76,37.03 C155.940001,36.6099979 156.214998,36.2900011 156.585,36.07 C156.955002,35.8499989 157.369998,35.74 157.83,35.74 C158.180002,35.74 158.469999,35.7949994 158.7,35.905 Z M164.61,40.93 L165.72,41.38 C165.119997,42.580006 164.150007,43.18 162.81,43.18 C161.769995,43.18 160.947503,42.8325035 160.3425,42.1375 C159.737497,41.4424965 159.435,40.5450055 159.435,39.445 C159.435,38.3649946 159.737497,37.4775035 160.3425,36.7825 C160.947503,36.0874965 161.754995,35.74 162.765,35.74 C163.785005,35.74 164.572497,36.0824966 165.1275,36.7675 C165.682503,37.4525034 165.96,38.2849951 165.96,39.265 L165.96,39.685 L160.725,39.685 C160.755,40.4150037 160.942498,41.0174976 161.2875,41.4925 C161.632502,41.9675024 162.144997,42.205 162.825,42.205 C163.285002,42.205 163.649999,42.1000011 163.92,41.89 C164.190001,41.6799989 164.419999,41.3600021 164.61,40.93 Z M162.735,36.715 C162.184997,36.715 161.735002,36.9024981 161.385,37.2775 C161.034998,37.6525019 160.83,38.139997 160.77,38.74 L164.67,38.74 C164.64,38.1199969 164.447502,37.6275018 164.0925,37.2625 C163.737498,36.8974982 163.285003,36.715 162.735,36.715 Z M173.505,35.92 L173.505,43 L172.32,43 L172.32,41.935 C171.779997,42.7650041 171.045005,43.18 170.115,43.18 C169.404996,43.18 168.812502,42.9750021 168.3375,42.565 C167.862498,42.154998 167.625,41.5750038 167.625,40.825 L167.625,35.92 L168.885,35.92 L168.885,40.63 C168.885,41.1300025 169.032499,41.5074987 169.3275,41.7625 C169.622501,42.0175013 169.969998,42.145 170.37,42.145 C170.880003,42.145 171.319998,41.9275022 171.69,41.4925 C172.060002,41.0574978 172.245,40.4850036 172.245,39.775 L172.245,35.92 L173.505,35.92 Z M175.905,43 L175.905,35.92 L177.09,35.92 L177.09,36.985 C177.590002,36.1549958 178.299995,35.74 179.22,35.74 C179.720002,35.74 180.157498,35.8524989 180.5325,36.0775 C180.907502,36.3025011 181.179999,36.6199979 181.35,37.03 C181.560001,36.6799982 181.872498,36.3775013 182.2875,36.1225 C182.702502,35.8674987 183.154998,35.74 183.645,35.74 C184.315003,35.74 184.872498,35.944998 185.3175,36.355 C185.762502,36.765002 185.985,37.3449963 185.985,38.095 L185.985,43 L184.725,43 L184.725,38.29 C184.725,37.7899975 184.592501,37.4125013 184.3275,37.1575 C184.062499,36.9024987 183.740002,36.775 183.36,36.775 C182.869998,36.775 182.450002,36.9924978 182.1,37.4275 C181.749998,37.8625022 181.575,38.4349964 181.575,39.145 L181.575,43 L180.315,43 L180.315,38.29 C180.315,37.7899975 180.180001,37.4125013 179.91,37.1575 C179.639999,36.9024987 179.315002,36.775 178.935,36.775 C178.454998,36.775 178.040002,36.9924978 177.69,37.4275 C177.339998,37.8625022 177.165,38.4349964 177.165,39.145 L177.165,43 L175.905,43 Z M191.43,37.75 C191.43,36.0899917 191.859996,34.7700049 192.72,33.79 C193.580004,32.8099951 194.709993,32.32 196.11,32.32 C197.510007,32.32 198.639996,32.8099951 199.5,33.79 C200.360004,34.7700049 200.79,36.0899917 200.79,37.75 C200.79,39.4100083 200.360004,40.7299951 199.5,41.71 C198.639996,42.6900049 197.510007,43.18 196.11,43.18 C194.709993,43.18 193.580004,42.6900049 192.72,41.71 C191.859996,40.7299951 191.43,39.4100083 191.43,37.75 Z M192.78,37.75 C192.78,39.0300064 193.067497,40.0774959 193.6425,40.8925 C194.217503,41.7075041 195.039995,42.115 196.11,42.115 C197.180005,42.115 198.002497,41.7075041 198.5775,40.8925 C199.152503,40.0774959 199.44,39.0300064 199.44,37.75 C199.44,36.4699936 199.152503,35.4225041 198.5775,34.6075 C198.002497,33.7924959 197.180005,33.385 196.11,33.385 C195.039995,33.385 194.217503,33.7924959 193.6425,34.6075 C193.067497,35.4225041 192.78,36.4699936 192.78,37.75 Z M203.955,35.17 C203.955,35.7100027 204.129998,36.1049988 204.48,36.355 C204.830002,36.6050013 205.484995,36.8099992 206.445,36.97 C207.695006,37.170001 208.624997,37.4974977 209.235,37.9525 C209.845003,38.4075023 210.15,39.0949954 210.15,40.015 C210.15,40.9650047 209.807503,41.7299971 209.1225,42.31 C208.437497,42.8900029 207.505006,43.18 206.325,43.18 C205.094994,43.18 204.132503,42.8875029 203.4375,42.3025 C202.742497,41.7174971 202.375,40.9650046 202.335,40.045 L203.625,39.85 C203.665,40.4900032 203.899998,41.0324978 204.33,41.4775 C204.760002,41.9225022 205.424995,42.145 206.325,42.145 C207.105004,42.145 207.707498,41.9650018 208.1325,41.605 C208.557502,41.2449982 208.77,40.7500031 208.77,40.12 C208.77,39.5399971 208.575002,39.1025015 208.185,38.8075 C207.794998,38.5124985 207.110005,38.2950007 206.13,38.155 C204.939994,37.9849992 204.055003,37.6750022 203.475,37.225 C202.894997,36.7749977 202.605,36.1300042 202.605,35.29 C202.605,34.3799954 202.934997,33.6575027 203.595,33.1225 C204.255003,32.5874973 205.124995,32.32 206.205,32.32 C207.235005,32.32 208.077497,32.5649976 208.7325,33.055 C209.387503,33.5450024 209.784999,34.2199957 209.925,35.08 L208.635,35.41 C208.444999,34.0499932 207.630007,33.37 206.19,33.37 C205.449996,33.37 204.892502,33.5324984 204.5175,33.8575 C204.142498,34.1825016 203.955,34.6199972 203.955,35.17 Z" id="A-Mobile-Ethereum-OS" fill="#49555F" opacity="0.400000006"></path>
+                <path d="M32.4973501,25.5505037 C38.4424686,25.2185283 42.0452893,22.1564608 41.7899347,17.5784494 C41.5299374,12.9215068 36.7362358,10.0521244 31.9425343,10.3214192 C24.1286847,10.7578625 18.383207,17.6411301 17.7378564,25.5063951 C18.7987386,25.2579939 19.9153344,25.1094174 20.9692523,25.0513798 C25.356708,24.8053 28.107573,25.7965834 32.4973501,25.5505037 M20.5026499,27.6653964 C14.5575314,27.9973719 10.9547107,31.0594393 11.2100653,35.6374507 C11.472384,40.2943933 16.2637642,43.1614542 21.0574657,42.8944809 C28.8713153,42.4580377 34.616793,35.57477 35.2621436,27.7071835 C34.2012614,27.9579063 33.0846656,28.1064827 32.0330691,28.1645204 C27.643292,28.4106001 24.892427,27.4193167 20.5026499,27.6653964 M18.0210678,0 L34.9789322,0 C40.8544085,0 42.7277824,0 45.3765056,0.88217258 C48.4686172,1.98720981 51.0128772,4.52693824 52.1155447,7.61918528 C53,10.2680245 53,12.1461235 53,18.0195357 L53,34.9804643 C53,40.8538765 53,42.7319755 52.1155447,45.3831362 C51.0128772,48.5055629 48.5034383,51.0127902 45.3811484,52.1178274 C42.7301038,53 40.8544085,53 34.9789322,53 L18.0210678,53 C12.1455915,53 10.2698962,53 7.61885156,52.1178274 C4.49656169,51.0127902 1.98944418,48.5055629 0.884455346,45.3831362 C0,42.7319755 0,40.8538765 0,34.9804643 L0,18.0195357 C0,12.1461235 0,10.2680245 0.884455346,7.61918528 C1.98712277,4.49675865 4.49656169,1.98720981 7.61885156,0.88217258 C10.2698962,0 12.1455915,0 18.0210678,0" id="Fill-1" fill="#4360DF"></path>
+            </g>
+        </g>
+    </g>
+</svg>
\ No newline at end of file
diff --git a/src/skins/vector/themes/status/img/n.png b/src/skins/vector/themes/status/img/n.png
new file mode 100644
index 00000000..b8e33d41
Binary files /dev/null and b/src/skins/vector/themes/status/img/n.png differ
diff --git a/src/vector/index.html b/src/vector/index.html
index 49c2979e..36047aca 100644
--- a/src/vector/index.html
+++ b/src/vector/index.html
@@ -20,15 +20,14 @@
     <meta name="msapplication-TileImage" content="vector-icons/mstile-144x144.png">
     <meta name="msapplication-config" content="vector-icons/browserconfig.xml">
     <meta name="theme-color" content="#ffffff">
+    <meta property="og:image" content="https://chat.status.im/img/logos/riot-im-logo-1.png" />
     <% for (var i=0; i < htmlWebpackPlugin.files.css.length; i++) {
         var file = htmlWebpackPlugin.files.css[i];
         var match = file.match(/^bundles\/.*?\/theme-(.*)\.css$/);
         if (match) {
             var title = match[1].charAt(0).toUpperCase() + match[1].slice(1);
-            var light = match[1] == 'light';
         %>
-           <link rel="<%= light ? '' : 'alternate ' %>stylesheet" title="<%= title %>"
-               href="<%= file %>">
+           <link rel="stylesheet" disabled title="<%= title %>" href="<%= file %>">
         <% } else { %>
            <link rel="stylesheet" href="<%= file %>">
         <% }
@@ -73,5 +72,7 @@
         <source src="media/busy.mp3" type="audio/mpeg" />
     </audio>
     <audio id="remoteAudio"/>
+    <!-- let CSS themes pass constants to the app -->
+    <div id="mx_theme_accentColor"></div><div id="mx_theme_secondaryAccentColor"/></div>
   </body>
 </html>
diff --git a/src/vector/index.js b/src/vector/index.js
index a08397ce..18c0d74f 100644
--- a/src/vector/index.js
+++ b/src/vector/index.js
@@ -78,6 +78,7 @@ import {parseQs, parseQsFromFragment} from './url_utils';
 import Platform from './platform';
 
 import MatrixClientPeg from 'matrix-react-sdk/lib/MatrixClientPeg';
+import Tinter from 'matrix-react-sdk/lib/Tinter';
 
 var lastLocationHashSet = null;
 
@@ -250,16 +251,30 @@ async function loadApp() {
 
     if (!preventRedirect) {
         if (/iPad|iPhone|iPod/.test(navigator.userAgent) && !window.MSStream) {
-            if (confirm(_t("Riot is not supported on mobile web. Install the app?"))) {
-                window.location = "https://itunes.apple.com/us/app/vector.im/id1083446067";
+            // FIXME: ugly status hardcoding
+            if (UserSettingsStore.getTheme() === 'status') {
+                window.location = "https://status.im/join-riot.html";
                 return;
             }
+            else {
+                if (confirm(_t("Riot is not supported on mobile web. Install the app?"))) {
+                    window.location = "https://itunes.apple.com/us/app/vector.im/id1083446067";
+                    return;
+                }
+            }
         }
         else if (/Android/.test(navigator.userAgent)) {
-            if (confirm(_t("Riot is not supported on mobile web. Install the app?"))) {
-                window.location = "https://play.google.com/store/apps/details?id=im.vector.alpha";
+            // FIXME: ugly status hardcoding
+            if (UserSettingsStore.getTheme() === 'status') {
+                window.location = "https://status.im/join-riot.html";
                 return;
             }
+            else {
+                if (confirm(_t("Riot is not supported on mobile web. Install the app?"))) {
+                    window.location = "https://play.google.com/store/apps/details?id=im.vector.alpha";
+                    return;
+                }
+            }
         }
     }
 
@@ -281,6 +296,29 @@ async function loadApp() {
         configError = e;
     }
 
+    // as quickly as we possibly can, set a default theme...
+    const styleElements = Object.create(null);
+    let a;
+    const theme = configJson.default_theme || 'light';
+    for (let i = 0; (a = document.getElementsByTagName("link")[i]); i++) {
+        const href = a.getAttribute("href");
+        // shouldn't we be using the 'title' tag rather than the href?
+        const match = href.match(/^bundles\/.*\/theme-(.*)\.css$/);
+        if (match) {
+            if (match[1] === theme) {
+                // remove the disabled flag off the stylesheet
+                a.removeAttribute("disabled");
+
+                // in case the Tinter.tint() in MatrixChat fires before the
+                // CSS has actually loaded (which in practice happens)
+                a.onload = () => { 
+                    Tinter.setTheme(theme);
+                    Tinter.tint();
+                };
+            }
+        }
+    }
+
     if (window.localStorage && window.localStorage.getItem('mx_accepts_unsupported_browser')) {
         console.log('User has previously accepted risks in using an unsupported browser');
         validBrowser = true;
@@ -304,7 +342,7 @@ async function loadApp() {
                 config={configJson}
                 realQueryParams={params}
                 startingFragmentQueryParams={fragparts.params}
-                enableGuest={true}
+                enableGuest={!configJson.disable_guests}
                 onTokenLoginCompleted={onTokenLoginCompleted}
                 initialScreenAfterLogin={getScreenFromLocation(window.location)}
                 defaultDeviceDisplayName={platform.getDefaultDeviceDisplayName()}
diff --git a/test/app-tests/loading.js b/test/app-tests/loading.js
index 21619876..a7e7c985 100644
--- a/test/app-tests/loading.js
+++ b/test/app-tests/loading.js
@@ -546,6 +546,8 @@ describe('loading:', function () {
                 );
             });
 
+            /*
+            // ILAG renders this obsolete. I think.
             it('should allow us to return to the app', function() {
                 const login = ReactTestUtils.findRenderedComponentWithType(
                     matrixChat, sdk.getComponent('structures.login.Login')
@@ -568,6 +570,7 @@ describe('loading:', function () {
                         matrixChat, sdk.getComponent('structures.HomePage'));
                 });
             });
+            */
         });
     });
 
diff --git a/webpack.config.js b/webpack.config.js
index 5d4fef72..2df82d9b 100644
--- a/webpack.config.js
+++ b/webpack.config.js
@@ -20,6 +20,7 @@ module.exports = {
         // CSS themes
         "theme-light": "./src/skins/vector/css/themes/light.scss",
         "theme-dark": "./src/skins/vector/css/themes/dark.scss",
+        "theme-status": "./src/skins/vector/themes/status/css/status.scss",
     },
     module: {
         preLoaders: [