diff --git a/app/lib/surface/Mark.coffee b/app/lib/surface/Mark.coffee
index 54cead432..8cbaf080b 100644
--- a/app/lib/surface/Mark.coffee
+++ b/app/lib/surface/Mark.coffee
@@ -166,7 +166,7 @@ module.exports = class Mark extends CocoClass
       size += 60 if @name is 'selection'
       size += 60 if @name is 'repair'
       scale = size / {selection: 128, target: 128, repair: 320, highlight: 160}[@name]
-      if @sprite?.thang.spriteName.search(/dungeon.wall/i) isnt -1
+      if @sprite?.thang.spriteName.search(/(dungeon|indoor).wall/i) isnt -1
         scale *= 2
     @mark.scaleX = @mark.scaleY = Math.min 1, scale
     if @name in ['selection', 'target', 'repair']
diff --git a/app/lib/surface/SpriteBoss.coffee b/app/lib/surface/SpriteBoss.coffee
index 632302f63..319449141 100644
--- a/app/lib/surface/SpriteBoss.coffee
+++ b/app/lib/surface/SpriteBoss.coffee
@@ -76,7 +76,7 @@ module.exports = class SpriteBoss extends CocoClass
     id ?= sprite.thang.id
     console.error "Sprite collision! Already have:", id if @sprites[id]
     @sprites[id] = sprite
-    layer ?= @spriteLayers["Obstacle"] if sprite.thang?.spriteName.search(/dungeon.wall/i) isnt -1
+    layer ?= @spriteLayers["Obstacle"] if sprite.thang?.spriteName.search(/(dungeon|indoor).wall/i) isnt -1
     layer ?= @layerForChild sprite.displayObject, sprite
     layer.addChild sprite.displayObject
     layer.updateLayerOrder()
@@ -177,7 +177,7 @@ module.exports = class SpriteBoss extends CocoClass
 
   cache: (update=false) ->
     return if @cached and not update
-    wallSprites = (sprite for thangID, sprite of @sprites when sprite.thangType?.get('name') is 'Dungeon Wall')
+    wallSprites = (sprite for thangID, sprite of @sprites when sprite.thangType?.get('name').search(/(dungeon|indoor).wall/i) isnt -1)
     walls = (sprite.thang for sprite in wallSprites)
     @world.calculateBounds()
     wallGrid = new Grid walls, @world.size()...
diff --git a/app/styles/mixins.sass b/app/styles/mixins.sass
new file mode 100644
index 000000000..4ce11a4fe
--- /dev/null
+++ b/app/styles/mixins.sass
@@ -0,0 +1,40 @@
+@import "app/styles/bootstrap/mixins"
+
+@mixin gradient-radial-custom-stops($innerColor: #555, $innerStop: 20%, $outerColor: #333, $outerStop: 70%)
+  background-color: $outerColor
+  @include gradient-vertical($innerColor, $outerColor)  // IE6-9 fallback on vertical gradient
+  background-image: -webkit-gradient(radial, center center, 0, center center, 460, from($innerColor $innerStop), to($outerColor $outerStop))
+  background-image: -webkit-radial-gradient(circle, $innerColor $innerStop, $outerColor $outerStop)
+  background-image: -moz-radial-gradient(circle, $innerColor $innerStop, $outerColor $outerStop)
+  background-image: -o-radial-gradient(circle, $innerColor $innerStop, $outerColor $outerStop)
+  background-image: radial-gradient(circle, $innerColor $innerStop, $outerColor $outerStop)
+  background-repeat: no-repeat
+
+@mixin gradient-banner-button($topBottomColor: #2C446A, $middleColor: #3A537F)
+  background-color: mix($topBottomColor, $middleColor, 80%)
+  background-image: -webkit-gradient(linear, 0 0, 0 100%, from($topBottomColor), color-stop(16%, $topBottomColor), color-stop(17%, $middleColor), color-stop(83%, $middleColor), color-stop(84%, $topBottomColor), to($topBottomColor))
+  background-image: -webkit-linear-gradient($topBottomColor, $topBottomColor 16%, $middleColor 16%, $middleColor 83%, $topBottomColor 84%, $topBottomColor)
+  background-image: -moz-linear-gradient(top, $topBottomColor, $topBottomColor 16%, $middleColor 16%, $middleColor 83%, $topBottomColor 84%, $topBottomColor)
+  background-image: -o-linear-gradient($topBottomColor, $topBottomColor 16%, $middleColor 16%, $middleColor 83%, $topBottomColor 84%, $topBottomColor)
+  background-image: linear-gradient($topBottomColor, $topBottomColor 16%, $middleColor 16%, $middleColor 83%, $topBottomColor 84%, $topBottomColor)
+  background-repeat: no-repeat
+
+@mixin banner-button($backgroundColor: #3A537F, $textColor: #FFF)
+  $topBottomColor: darken($backgroundColor, 9%)
+  @include gradient-banner-button($topBottomColor, $backgroundColor)
+  color: $textColor
+
+  &:hover:not(.disabled):not([disabled]), &:focus:not(.disabled):not([disabled])
+    @include gradient-banner-button(lighten($topBottomColor, 6%), lighten($backgroundColor, 6%))
+
+  &.active, &:active
+    background-image: none
+    outline: 0
+    @include box-shadow(inset 0 2px 4px rgba(0,0,0,.15), 0 1px 2px rgba(0,0,0,.05))
+
+  // Disabled state
+  &.disabled, &[disabled]
+    cursor: default
+    background-image: none
+    @include opacity(0.65)
+    @include box-shadow(none)