diff --git a/assets/css/error.scss b/assets/css/error.scss
new file mode 100644
index 0000000..ee6519e
--- /dev/null
+++ b/assets/css/error.scss
@@ -0,0 +1,12 @@
+main {
+ display: grid;
+ justify-content: center;
+ align-content: center;
+ height: 100%;
+ width: 100%;
+ text-align: center;
+}
+
+.note {
+ font-size: 2em;
+}
diff --git a/content/502.md b/content/502.md
new file mode 100644
index 0000000..b70bf43
--- /dev/null
+++ b/content/502.md
@@ -0,0 +1,5 @@
+---
+layout: error
+status: 502
+error: Bad Gateway
+---
diff --git a/content/503.md b/content/503.md
new file mode 100644
index 0000000..5bc1580
--- /dev/null
+++ b/content/503.md
@@ -0,0 +1,5 @@
+---
+layout: error
+status: 503
+error: Service Unavailable
+---
diff --git a/layouts/502.html b/layouts/502.html
deleted file mode 100644
index 3de3a9a..0000000
--- a/layouts/502.html
+++ /dev/null
@@ -1,20 +0,0 @@
-{{ define "main" }}
-
- 502
- Bad Gateway
-
-
-{{ end }}
diff --git a/layouts/503.html b/layouts/503.html
deleted file mode 100644
index c5cfc5e..0000000
--- a/layouts/503.html
+++ /dev/null
@@ -1,20 +0,0 @@
-{{ define "main" }}
-
- 503
- Service Unavailable
-
-
-{{ end }}
diff --git a/layouts/_default/error.html b/layouts/_default/error.html
new file mode 100644
index 0000000..841e665
--- /dev/null
+++ b/layouts/_default/error.html
@@ -0,0 +1,6 @@
+{{ define "main" }}
+
+ {{ .Param "status" }}
+ {{ .Param "error" }}
+
+{{ end }}
diff --git a/layouts/partials/base.stylesheet.html b/layouts/partials/base.stylesheet.html
index 03937e8..fe309fd 100644
--- a/layouts/partials/base.stylesheet.html
+++ b/layouts/partials/base.stylesheet.html
@@ -24,6 +24,10 @@
{{ $styles = $styles | append "page" "note" }}
{{ end }}
+{{ with eq .Layout "error" }}
+ {{ $styles = $styles | append "error" }}
+{{ end }}
+
{{ $scss := slice }}
{{ range $style := $styles }}