diff --git a/content/error/403.md b/content/error/403.md
new file mode 100644
index 0000000..2af897e
--- /dev/null
+++ b/content/error/403.md
@@ -0,0 +1,5 @@
+---
+title: 403 Forbidden
+layout: gandalf_forbid
+hidden_from_navbar: true
+---
diff --git a/layouts/_default/gandalf_forbid.html b/layouts/_default/gandalf_forbid.html
new file mode 100644
index 0000000..9ba3708
--- /dev/null
+++ b/layouts/_default/gandalf_forbid.html
@@ -0,0 +1,238 @@
+{{ define "head_extra" }}
+ {{ partial "style.html" "scss/forbid_style.scss" }}
+{{ end }}
+
+{{ define "main" }}
+
+
{{ .Title }}
+
You shall not pass!
+
+
+
+{{ end }}
diff --git a/static/src/scss/forbid_style.scss b/static/src/scss/forbid_style.scss
new file mode 100644
index 0000000..5329852
--- /dev/null
+++ b/static/src/scss/forbid_style.scss
@@ -0,0 +1,149 @@
+$color__black: #121111;
+$color__white: #fcffff;
+$color__brown: #8b4513;
+
+$color__gray--lighter: #efeeee;
+$color__gray--light: #dcdddd;
+$color__gray: #c3c4c4;
+$color__gray--dark: #969999;
+$color__gray--darker: #323333;
+$color__gray--darkest: #121111;
+
+$color__red--lightest: #f8979c;
+$color__red--lighter: #FF888D;
+$color__red--light: #F14950;
+$color__red: #FF190D;
+$color__red--dark: #c51104;
+$color__red--darker: #A00309;
+$color__red--darkest: #800007;
+
+$color__orange--lightest: #ffcf9a;
+$color__orange--lighter: #feac68;
+$color__orange--light: #fc9a46;
+$color__orange: #fa6824;
+$color__orange--dark: #bb4a19;
+$color__orange--darker: #992807;
+$color__orange--darkest: #770505;
+
+$color__blue--lightest: #afedff;
+$color__blue--lighter: #6edbff;
+$color__blue--light: #3ca9ff;
+$color__blue: #2196f3;
+$color__blue--dark: #0b62a6;
+$color__blue--darker: #044475;
+$color__blue--darkest: #142633;
+
+$stroke__width: 0.5;
+
+path {
+ fill: transparent;
+ stroke: rgba($color__blue, 0.2);
+ stroke-width: $stroke__width;
+}
+
+.wrapper_forbid {
+ display: flex;
+ justify-content: center;
+ align-items: center;
+
+ h1, p {
+ color: $color__gray--light;
+ font-family: monospace;
+ font-size: 16px;
+ position: absolute;
+ z-index: 999;
+ }
+
+ h1 {
+ font-size: 2em;
+ top: 80%;
+ }
+
+ p {
+ font-weight: 600;
+ top: calc(80% + 2.5em);
+ }
+}
+
+.grid-lines__line {
+ stroke-width: $stroke__width / 3;
+}
+.grid-lines__line--cir {
+ stroke: rgba($color__gray--light, 0.25);
+}
+.grid-lines__line--diag {
+ stroke: rgba($color__gray--light, 0.15);
+}
+.grid-lines__line--hor {
+ stroke: rgba($color__gray--light, 0.15);
+}
+.grid-lines__line--ver {
+ stroke: rgba($color__gray--light, 0.2);
+}
+
+.wiz {
+ fill: transparent;
+ stroke: rgba($color__red, 0.5);
+}
+
+.wiz--beard,
+.wiz--eye,
+.wiz--eye-brow,
+.wiz--hair,
+.wiz--hair-bg,
+.wiz--head,
+.wiz--mouth,
+.wiz--mustache,
+.wiz--staff,
+.wiz--sword {
+ stroke: transparent;
+}
+
+.wiz--beard {
+ fill: $color__gray--lighter;
+ stroke: rgba($color__gray--dark, 0.5);
+}
+
+.wiz--eye {
+ fill: $color__blue--dark;
+ stroke: $color__blue--darker;
+}
+
+.wiz--eye-brow {
+ fill: $color__gray--light;
+ stroke: rgba($color__gray--darker, 0.5);
+}
+
+.wiz--hair {
+ fill: $color__gray--lighter;
+ stroke: rgba($color__gray--dark, 0.5);
+}
+
+.wiz--hair-bg {
+ fill: $color__gray--darker;
+}
+
+.wiz--head {
+ fill: $color__orange--lightest;
+}
+
+.wiz--mouth {
+ fill: $color__black;
+}
+
+.wiz--mustache {
+ fill: $color__gray--light;
+ stroke: rgba($color__gray--darker, 0.5);
+}
+
+.wiz--staff {
+ fill: $color__brown;
+ transform: rotate(-45deg) translateX(30%) translateY(-10%);
+ transform-origin: 50% 50%;
+}
+
+.wiz--sword {
+ fill: $color__gray--dark;
+ transform: rotate(45deg) translateX(-35%) translateY(-5%);
+ transform-origin: 50% 50%;
+}