diff --git a/themes/default/assets/css/main.css b/themes/default/assets/css/main.css
index cdfe209e..a367c366 100644
--- a/themes/default/assets/css/main.css
+++ b/themes/default/assets/css/main.css
@@ -781,3 +781,11 @@ kbd .cmd { font-family: Monaco, Helvetica; }
font-weight: bold;
}
+/* -- Platform/OS-specific Styles ------------------------------------------- */
+.mac-only, .pc-only { visibility: hidden; }
+
+.pc .mac-only,
+.mac .pc-only { display: none; }
+
+.mac .mac-only,
+.pc .pc-only { visibility: visible; }
diff --git a/themes/default/assets/js/ua.js b/themes/default/assets/js/ua.js
new file mode 100644
index 00000000..16cd9cc1
--- /dev/null
+++ b/themes/default/assets/js/ua.js
@@ -0,0 +1,33 @@
+// Quick and dirty platform/os sniff, used only to influence non-critical
+// design elements in CSS.
+(function () {
+ var ua = navigator.userAgent,
+ os = '',
+ platform = '';
+
+ if (/windows/i.test(ua)) {
+ platform = 'pc';
+ os = 'win';
+ } else if (/macintosh/i.test(ua)) {
+ platform = 'mac';
+ os = 'osx';
+ } else if (/ios/i.test(ua)) {
+ os = 'ios';
+
+ if (/(?:iphone|ipod)/i.test(ua)) {
+ platform = 'iphone mac';
+ } else if (/ipad/i.test(ua)) {
+ platform = 'ipad mac';
+ }
+ } else if (/linux/i.test(ua)) {
+ if (/android/i.test(ua)) {
+ platform = 'android pc';
+ } else {
+ platform = 'pc';
+ }
+
+ os = 'linux';
+ }
+
+ document.documentElement.className += ' ' + platform + ' ' + os;
+}());
diff --git a/themes/default/layouts/main.handlebars b/themes/default/layouts/main.handlebars
index d0a03141..55936dd7 100644
--- a/themes/default/layouts/main.handlebars
+++ b/themes/default/layouts/main.handlebars
@@ -45,6 +45,7 @@
+