diff --git a/case/top.scad b/case/top.scad
index 7299fac..0279fd7 100644
--- a/case/top.scad
+++ b/case/top.scad
@@ -14,8 +14,8 @@ include <keyboard.scad>
  * Ridge thickness: 1.25mm
  * First horizontal ridge: Starts at keyboard X offset
  * Ridge height: 11.5mm
- * Ridge upper aspect: 8mm
- * Ridge lower aspect: 5mm
+ * Ridge upper aspect: 12mm
+ * Ridge lower aspect:  3.75mm
  * First vertical ridge Y offset: 8mm
  */
 
@@ -78,7 +78,48 @@ module top_case(key_switch_sizes, pcb_screw_holes) {
             cube([accent_depth, accent_width, wall_height], false);
         }
     }
+    
+    module support(dimensions, width) {
+        length = dimensions[0];
+        height = dimensions[1];
+        
+        module right_triangle(base) {
+            length = sqrt((base ^ 2) / 2.0);
 
+            intersection() {
+                rotate([0, 0, -45])
+                square([length*2, length*2], true);
+            
+                square([length*2, length*2]);
+            }
+        }
+        
+        module shape() {
+            /* Height ratio of lower aspect to upper aspect */
+            aspect_ratio = 3.75 / 12.0;
+            
+            aspect_upper_height = height;
+            aspect_lower_height = aspect_ratio * height;
+            
+            /* The length of each individual support aspect */
+            aspect_length = 1/3 * length;
+
+            hypotenuse     = sqrt(2*(aspect_length^2));
+            lower_x_offset = aspect_length - (hypotenuse - aspect_length);
+            
+            right_triangle(aspect_length);
+            
+            translate([lower_x_offset, 0, 0])
+            square([1.5 * hypotenuse, aspect_lower_height]);
+            
+            translate([3 * aspect_length, 0, 0])
+            mirror([1, 0, 0])
+            right_triangle(aspect_length);
+        }
+        
+        linear_extrude(width) shape();
+    }
+    
     module body() {
         translate([0, 0, wall_height - wall_width])
         fascia();