diff --git a/saturn/main.fnl b/saturn/main.fnl
index 40e0bb5..1120ca3 100644
--- a/saturn/main.fnl
+++ b/saturn/main.fnl
@@ -4,6 +4,24 @@
 (local inspect (require :inspect))
 
 (local ICON_SIZE 64)
+(local CSS "
+    * {
+      color: rgb(255, 255, 255);
+      text-shadow:
+           0px  1px rgba(0, 0, 0, 255)
+        ,  1px  0px rgba(0, 0, 0, 255)
+        ,  0px -1px rgba(0, 0, 0, 255)
+        , -1px  0px rgba(0, 0, 0, 255)
+        ,  1px  1px rgba(0, 0, 0, 255)
+        ,  1px -1px rgba(0, 0, 0, 255)
+        , -1px  1px rgba(0, 0, 0, 255)
+        , -1px -1px rgba(0, 0, 0, 255)
+      ;
+    }
+    #toplevel {
+      background-color: rgba(0, 0, 0, 0.6);
+    }
+  ")
 
 (local dbus-service-attrs
        {
@@ -78,17 +96,39 @@
              :absolute? (fn [str] (= (str:sub 1 1) "/"))
              })
 (local Gtk lgi.Gtk)
+
 (local GdkPixbuf lgi.GdkPixbuf)
+
+(local Gdk lgi.Gdk)
+
 (local Pango lgi.Pango)
 
 (local icon-theme (Gtk.IconTheme.get_default))
 
+;; Use the declared CSS for this app
+(let [style_provider (Gtk.CssProvider)]
+  (style_provider:load_from_data CSS)
+  (Gtk.StyleContext.add_provider_for_screen
+    (Gdk.Screen.get_default)
+    style_provider
+    Gtk.STYLE_PROVIDER_PRIORITY_APPLICATION
+    ))
+
+
 (local window (Gtk.Window {
                            :title "Saturn V"
+                           :name "toplevel"
                            :default_width 720
                            :default_height 800
                            :on_destroy Gtk.main_quit
                            }))
+
+;; Using RGBA visual for semi-transparent backgrounds
+;; Requires compositing (e.g. a compositor on X11)
+(let [screen (window:get_screen)
+      visual (screen:get_rgba_visual)]
+  (window:set_visual visual))
+
 (fn find-icon [name]
   (var found false)
   (if (path.absolute? name)