diff --git a/app/assets/stylesheets/errors.scss b/app/assets/stylesheets/errors.scss
index 4b540a467cae318e3160172286a431bd3d5f0807..722c27b05a2a4b81984705b4ae2b22bfdc1c6e98 100644
--- a/app/assets/stylesheets/errors.scss
+++ b/app/assets/stylesheets/errors.scss
@@ -14,36 +14,24 @@
 @import '@gitlab/ui/src/components/base/button/button';
 
 body {
-  color: $gl-text-color-subtle;
+  color: $gl-text-primary;
   text-align: center;
-  font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif;
-  margin: auto;
-  font-size: 0.875rem;
+  font-family: "Nunito Sans", -apple-system, ".SFNSText-Regular", "San Francisco", BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", Helvetica, Arial, sans-serif;
 }
 
 h1 {
-  font-size: 56px;
-  line-height: 100px;
-  font-weight: 400;
-  color: $gl-text-color-default;
-}
-
-h2 {
-  font-size: 24px;
-  line-height: $gl-line-height-24;
+  font-size: 1.75rem;
+  line-height: 2.25rem;
+  margin: 1rem 0;
 }
 
-h3 {
-  color: $gl-text-color-default;
-  font-size: 20px;
-  font-weight: 400;
-  line-height: $gl-line-height-28;
+p {
+  margin-bottom: .5rem;
 }
 
 img {
-  max-width: 80vw;
   display: block;
-  margin: 40px auto;
+  margin: 0 auto;
 }
 
 a {
@@ -55,50 +43,35 @@ a {
   margin: auto 20px;
 }
 
-.container {
+.error-container {
+  max-width: 65ch;
   margin: auto;
-  max-width: 600px;
-  border-bottom: 1px solid $border-color;
-  padding-bottom: 1em;
+  padding: $gl-spacing-scale-5 0;
 }
 
 .action-container {
-  padding: 0.5em 0;
+  margin-top: $gl-spacing-scale-6;
 }
 
 .form-inline-flex {
   display: flex;
-  flex-wrap: wrap;
-
-  button {
-    display: block;
-    width: 100%;
-  }
+  flex-direction: column;
+  flex-wrap: nowrap;
+  gap: $gl-spacing-scale-3;
 
   .field {
-    display: block;
-    width: 100%;
-    margin-bottom: 1em;
+    flex-grow: 1;
   }
 
   @include media-breakpoint-up(sm) {
-    flex-wrap: nowrap;
-
-    button {
-      width: auto;
-    }
-
-    .field {
-      margin-bottom: 0;
-      margin-right: 0.5em;
-      flex: 1;
-    }
+    flex-direction: row;
   }
 }
 
 .error-nav {
-  padding: $gl-padding 0 0;
-  text-align: center;
+  margin: $gl-spacing-scale-6 0 0 0;
+  padding: $gl-spacing-scale-4 0 0 0;
+  border-top: 1px solid $border-color;
 
   li {
     display: block;
@@ -113,16 +86,8 @@ a {
       &:not(:first-child)::before {
         content: '\00B7';
         display: inline-block;
-        padding: 0 1em;
+        padding: 0 $gl-spacing-scale-3;
       }
     }
   }
 }
-
-.tanuki-logo {
-  width: 210px;
-  height: 210px;
-  max-width: 40vw;
-  display: block;
-  margin: map-get($spacing-scale, 4) auto;
-}
diff --git a/app/views/errors/access_denied.html.haml b/app/views/errors/access_denied.html.haml
index 56c26f934024d5fc9f1b7eefe00ca867e004e6b2..afe9b333ebb7f0d081e5780414251e8116b89f91 100644
--- a/app/views/errors/access_denied.html.haml
+++ b/app/views/errors/access_denied.html.haml
@@ -1,10 +1,10 @@
 - message = local_assigns.fetch(:message, nil)
 - content_for(:title, 'Access Denied')
 
-= image_tag('illustrations/error-403.svg', alt: '403', lazy: false)
-.container
-  %h3
-    = s_("403|You don't have the permission to access this page.")
+.error-container
+  = image_tag('illustrations/error/error-403-lg.svg', alt: '403', lazy: false)
+  %h1
+    = s_("403|403: You do not have the permission to access this page")
   - if message
     %p
       = message
@@ -13,4 +13,4 @@
   .action-container.js-go-back{ hidden: true }
     = render Pajamas::ButtonComponent.new(variant: :confirm) do
       = _('Go Back')
-= render "errors/footer"
+  = render "errors/footer"
diff --git a/app/views/errors/encoding.html.haml b/app/views/errors/encoding.html.haml
index 64f7f8e083678a68732091f1f15a226bab1a81ad..8595345801d1964ea1fe0086d748d43307fef8ef 100644
--- a/app/views/errors/encoding.html.haml
+++ b/app/views/errors/encoding.html.haml
@@ -1,8 +1,8 @@
 - content_for(:title, 'Encoding Error')
-%img{ :alt => "GitLab Logo", :src => image_path('logo.svg') }
+
+.error-container
+  = image_tag('illustrations/error/error-500-lg.svg', alt: '500', lazy: false)
   %h1
-    500
-.container
-  %h3 Encoding Error
-  %hr
-  %p Page can't be loaded because of an encoding error.
+    = s_('500|500: Encoding error')
+  %p
+    = s_("500|Page cannot be loaded because of an encoding error.")
diff --git a/app/views/errors/git_not_found.html.haml b/app/views/errors/git_not_found.html.haml
index d860957665bb90a2ec76ce13366052264df34900..7a9f0648fadde0223c0ef633b02a4727ffc42543 100644
--- a/app/views/errors/git_not_found.html.haml
+++ b/app/views/errors/git_not_found.html.haml
@@ -1,9 +1,8 @@
 - content_for(:title, 'Git Resource Not Found')
-%img{ :alt => "GitLab Logo", :src => image_path('logo.svg') }
+
+.error-container
+  = image_tag('illustrations/error/error-404-lg.svg', alt: '404', lazy: false)
   %h1
-    404
-.container
-  %h3 Git Resource Not found
-  %hr
-  %p Application can't get access to some branch or commit in your repository. It
-  may have been moved
+    = s_('404|404: Git resource not found')
+  %p
+    = s_("404|Application cannot get access to a branch or commit in your repository. It might have been moved")
diff --git a/app/views/errors/not_found.html.haml b/app/views/errors/not_found.html.haml
index 54291cd9abc47dc869e4ab8bdfa72d95acdeb281..f7b3d2b17b7f38978b2d2775ad79a68d0ef6382b 100644
--- a/app/views/errors/not_found.html.haml
+++ b/app/views/errors/not_found.html.haml
@@ -1,16 +1,16 @@
 - content_for(:title, 'Not Found')
-= image_tag('illustrations/error-404.svg', alt: '404', lazy: false)
-.container
-  %h3
-    = s_('404|Page Not Found')
+.error-container
+  = image_tag('illustrations/error/error-404-lg.svg', alt: '404', lazy: false)
+  %h1
+    = s_('404|404: Page not found')
   %p
-    = s_("404|Make sure the address is correct and the page hasn't moved.")
+    = s_("404|Make sure the address is correct and the page has not moved.")
   %p
     = s_('404|Please contact your GitLab administrator if you think this is a mistake.')
   .action-container
     = form_tag search_path, method: :get, class: 'form-inline-flex' do |f|
       .field
         = search_field_tag :search, '', placeholder: _('Search for projects, issues, etc.'), class: 'form-control'
-      = render Pajamas::ButtonComponent.new(variant: :confirm, size: :small, type: :submit) do
+      = render Pajamas::ButtonComponent.new(variant: :confirm, type: :submit) do
         = _('Search')
-= render 'errors/footer'
+  = render 'errors/footer'
diff --git a/app/views/errors/omniauth_error.html.haml b/app/views/errors/omniauth_error.html.haml
index c48e12561a71a72adbf0066c8c32678091693296..ca095637b8ca7a8b57b7d43e2ea444e267365d10 100644
--- a/app/views/errors/omniauth_error.html.haml
+++ b/app/views/errors/omniauth_error.html.haml
@@ -1,17 +1,15 @@
 - content_for(:title, 'Auth Error')
 
-.container
-  = render partial: "shared/errors/graphic_422", formats: :svg
-  %h2
-    = _('Sign-in using %{provider} auth failed') % { provider: @provider }
-  .gl-mb-5
-    = @error
-  .gl-mb-5
+.error-container
+  = image_tag('illustrations/error/error-422-lg.svg', alt: '422', lazy: false)
+  %h1
+    = _('422: Sign-in using %{provider} auth failed') % { provider: @provider }
+  %p
+    = _('If you are unable to sign in or recover your password, contact a GitLab administrator.')
+  .action-container
     = render Pajamas::ButtonComponent.new(variant: :confirm,
       href: new_session_path(:user),
       button_options: { class: 'gl-mr-2' }) do
       = _('Sign in')
     = render Pajamas::ButtonComponent.new(href: new_password_path(:user)) do
       = _('Recover password')
-  %div
-    = _('If you are unable to sign in or recover your password, contact a GitLab administrator.')
diff --git a/app/views/errors/precondition_failed.html.haml b/app/views/errors/precondition_failed.html.haml
index aa3869f33a95d5e487f8eec230ed96408a5e9232..bc23e81870fdf4c984561d7a45b5f19f674618ac 100644
--- a/app/views/errors/precondition_failed.html.haml
+++ b/app/views/errors/precondition_failed.html.haml
@@ -1,8 +1,8 @@
 - content_for(:title, 'Encoding Error')
-%img{ :alt => "GitLab Logo", :src => image_path('logo.svg') }
+
+.error-container
+  = image_tag('illustrations/error/error-422-lg.svg', alt: '412', lazy: false)
   %h1
-    412
-.container
-  %h3 Precondition failed
-  %hr
-  %p Page can't be loaded because of invalid parameters.
+    = s_('412|412: Precondition failed')
+  %p
+    = s_("412|Page cannot be loaded because of invalid parameters.")
diff --git a/app/views/errors/request_conflict.html.haml b/app/views/errors/request_conflict.html.haml
index 040aa880e1c94c90e237b3ce4b8fcaaf8bfbbd81..c08d29a7fe5220c7d2a32c14868ec8e09dd02d1a 100644
--- a/app/views/errors/request_conflict.html.haml
+++ b/app/views/errors/request_conflict.html.haml
@@ -1,12 +1,10 @@
 - message = local_assigns.fetch(:message, nil)
 - content_for(:title, 'Request Conflict')
 
-%img{ :alt => "", :src => image_path('logo.svg') }
-%h1
-  409
-.container
-  %h2
-    = s_("409|There was a conflict with your request.")
+.error-container
+  = image_tag('illustrations/error/error-409-lg.svg', alt: '409', lazy: false)
+  %h1
+    = s_("409|409: There was a conflict with your request")
   - if message
     %p
       = message
@@ -15,4 +13,4 @@
   .action-container.js-go-back{ hidden: true }
     = render Pajamas::ButtonComponent.new(variant: :confirm) do
       = _('Go Back')
-= render "errors/footer"
+  = render 'errors/footer'
diff --git a/app/views/shared/errors/_graphic_422.svg b/app/views/shared/errors/_graphic_422.svg
deleted file mode 100644
index 87128ecd69d54828a9738a67e4f8e645b4b9fc37..0000000000000000000000000000000000000000
--- a/app/views/shared/errors/_graphic_422.svg
+++ /dev/null
@@ -1 +0,0 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 260 246" xmlns:xlink="http://www.w3.org/1999/xlink"><defs><rect id="0" width="178" height="136" rx="10"/><mask id="1" width="178" height="136" x="0" y="0" fill="#fff"><use xlink:href="#0"/></mask></defs><g fill="none" fill-rule="evenodd"><g fill="#e5e5e5" fill-rule="nonzero"><path d="m109.88 37.634c5.587-3.567 12.225-5.634 19.345-5.634 7.445 0 14.363 2.26 20.1 6.132l21.435-37.13c.554-.959 1.771-1.292 2.734-.736.957.552 1.284 1.777.73 2.736l-21.496 37.23c-.065.112-.138.215-.219.309 3.686 3.13 6.733 6.988 8.919 11.353l-3.393.002c-5.775-10.322-16.705-16.901-28.814-16.901-12.12 0-23.06 6.594-28.833 16.935l-3.393.002c2.32-4.646 5.616-8.72 9.618-11.954l-21.349-36.977c-.554-.959-.227-2.184.73-2.736.963-.556 2.181-.223 2.734.736l21.15 36.629"/><path d="m3 70v134c0 9.389 7.611 17 16.997 17h220.01c9.389 0 16.997-7.611 16.997-17v-134c0-9.389-7.611-17-16.997-17h-220.01c-9.389 0-16.997 7.611-16.997 17m-3 0c0-11.05 8.95-20 19.997-20h220.01c11.04 0 19.997 8.958 19.997 20v134c0 11.05-8.95 20-19.997 20h-220.01c-11.04 0-19.997-8.958-19.997-20v-134"/></g><ellipse cx="129" cy="241.5" fill="#f9f9f9" rx="89" ry="4.5"/><g fill-rule="nonzero" transform="translate(210 70)"><path fill="#eaeaea" d="m16 29c7.18 0 13-5.82 13-13 0-7.18-5.82-13-13-13-7.18 0-13 5.82-13 13 0 7.18 5.82 13 13 13m0 3c-8.837 0-16-7.163-16-16 0-8.837 7.163-16 16-16 8.837 0 16 7.163 16 16 0 8.837-7.163 16-16 16" id="2"/><path fill="#6b4fbb" d="m16 21c2.761 0 5-2.239 5-5 0-2.761-2.239-5-5-5-2.761 0-5 2.239-5 5 0 2.761 2.239 5 5 5m0 3c-4.418 0-8-3.582-8-8 0-4.418 3.582-8 8-8 4.418 0 8 3.582 8 8 0 4.418-3.582 8-8 8" id="3"/></g><g fill-rule="nonzero" transform="translate(210 109)"><use xlink:href="#2"/><use xlink:href="#3"/></g><g transform="translate(210 147)"><path fill="#e5e5e5" fill-rule="nonzero" d="m3 5.992v45.02c0 1.647 1.346 2.992 3 2.992h20c1.657 0 3-1.341 3-2.992v-45.02c0-1.647-1.346-2.992-3-2.992h-20c-1.657 0-3 1.341-3 2.992m-3 0c0-3.309 2.687-5.992 6-5.992h20c3.314 0 6 2.692 6 5.992v45.02c0 3.309-2.687 5.992-6 5.992h-20c-3.314 0-6-2.692-6-5.992v-45.02"/><rect width="16" height="4" x="8" y="27" fill="#fdb692" rx="2"/><rect width="16" height="4" x="8" y="19" fill="#fc9867" rx="2"/><rect width="16" height="4" x="8" y="11" fill="#fc6d26" rx="2"/><rect width="16" height="4" x="8" y="35" fill="#fed3bd" rx="2"/><rect width="16" height="4" x="8" y="43" fill="#fef0e9" rx="2"/></g><g transform="translate(16 69)"><use fill="#6b4fbb" fill-opacity=".1" stroke="#e5e5e5" stroke-width="6" mask="url(#1)" xlink:href="#0"/><g class="tv-screen" fill="#fff"><path opacity=".4" mix-blend-mode="overlay" d="m3 17h172v16h-172z"/><path opacity=".6" mix-blend-mode="overlay" d="m3 70h172v24h-172z"/><path opacity=".3" mix-blend-mode="overlay" d="m3 107h172v16h-172z"/><path opacity=".4" mix-blend-mode="overlay" d="m3 40h172v8h-172z"/><path opacity=".3" mix-blend-mode="overlay" d="m3 55h172v8h-172z"/></g></g><path class="text-422" d="m.693 19h5.808c.277 0 .498-.224.498-.5 0-.268-.223-.5-.498-.5h-5.808v-2.094l3.777-5.906h3.916l-4.124 6.454h6.259v-6.454h.978c.273 0 .5-.224.5-.5 0-.268-.224-.5-.5-.5h-.978v-2h4.698v6h-2.721c-.277 0-.498.224-.498.5 0 .268.223.5.498.5h2.721v2.454h2.723v4.2h-2.723v5.346h-4.698v-5.346h-9.828v-1.654m4.417-10l1.279-2h3.914l-1.278 2h-3.916m1.919-3l1.279-2h4.192c.27 0 .5-.224.5-.5 0-.268-.224-.5-.5-.5h-3.552l1.142-1.786h5.13v4.786h-8.191m31.09 19v1h-15.738v-2h5.118c.271 0 .503-.224.503-.5 0-.268-.225-.5-.503-.5h-5.118v-1.184l2.656-2.822c.682-.725 1.306-1.39 1.872-1.994h5.428c-.389.394-.808.815-1.256 1.264-1.428 1.428-2.562 2.568-3.403 3.42h10.442v2.316h-4.614c-.271 0-.503.224-.503.5 0 .268.225.5.503.5h4.614m-6.674-13c.493-.631.87-1.208 1.129-1.73.365-.736.548-1.464.548-2.183 0-1.107-.335-1.962-1-2.565-.67-.603-1.619-.905-2.847-.905-.874 0-1.857.174-2.947.523-1.09.349-2.227.855-3.412 1.519v-2.659h3.589c.27 0 .5-.224.5-.5 0-.268-.224-.5-.5-.5h-3.589v-.906c1.184-.432 2.344-.761 3.478-.988 1.134-.227 2.222-.34 3.262-.34 2.623 0 4.684.611 6.184 1.834.157.128.307.262.448.4h-2.782c-.27 0-.5.224-.5.5 0 .268.224.5.5.5h3.602c.654 1.01.981 2.209.981 3.605 0 .974-.163 1.887-.49 2.739-.326.852-.888 1.798-1.685 2.839-.397.509-1.261 1.448-2.594 2.816h-5.474c1.34-1.436 2.261-2.436 2.763-3h4.396c.271 0 .499-.224.499-.5 0-.268-.223-.5-.499-.5h-3.557m28.14 12v2h-15.738v-4.184l2.651-2.816h5.313c-1.087 1.089-1.976 1.983-2.668 2.684h10.442v1.316h-4.083c-.271 0-.503.224-.503.5 0 .268.225.5.503.5h4.083m-2.069-11c-.045.061-.092.122-.139.184-.567.727-2.089 2.333-4.568 4.816h-5.372c2.601-2.77 4.204-4.503 4.81-5.198.83-.952 1.428-1.796 1.793-2.532.365-.736.548-1.464.548-2.183 0-1.107-.335-1.962-1-2.565-.67-.603-1.619-.905-2.847-.905-.874 0-1.857.174-2.947.523-1.09.349-2.227.855-3.412 1.519v-2.659h3.117c.271 0 .503-.224.503-.5 0-.268-.225-.5-.503-.5h-3.117v-.906c1.184-.432 2.344-.761 3.478-.988 1.134-.227 2.222-.34 3.262-.34 2.623 0 4.684.611 6.184 1.834.157.128.307.262.448.4h-1.248c-.271 0-.503.224-.503.5 0 .268.225.5.503.5h2.069c.654 1.01.981 2.209.981 3.605 0 .844-.123 1.642-.368 2.395h-2.683c-.271 0-.503.224-.503.5 0 .268.225.5.503.5h2.272c-.159.321-.347.655-.566 1h-3.706c-.271 0-.503.224-.503.5 0 .268.225.5.503.5h3.01" transform="translate(75 124)" fill="#5c5c5c"/></g></svg>
diff --git a/ee/spec/features/groups/analytics/dashboards_spec.rb b/ee/spec/features/groups/analytics/dashboards_spec.rb
index 61f81c0f15a6ae81ce13b67cb35267f20edfd677..5e38d413f01fe09b9e49cf031c1480d6935d7a4d 100644
--- a/ee/spec/features/groups/analytics/dashboards_spec.rb
+++ b/ee/spec/features/groups/analytics/dashboards_spec.rb
@@ -15,7 +15,7 @@
     sign_in(user)
     visit group_analytics_dashboards_path(group)
 
-    expect(page).to have_content _("You don't have the permission to access this page")
+    expect(page).to have_content _(" You do not have the permission to access this page")
   end
 
   context 'with a valid user' do
diff --git a/ee/spec/features/groups/compliance_framework_report_spec.rb b/ee/spec/features/groups/compliance_framework_report_spec.rb
index 37664dfd119e6fc0ae2396ba1d9e58d02ad2cf18..89d1364931c914120cf3e5b22c15175cede7762b 100644
--- a/ee/spec/features/groups/compliance_framework_report_spec.rb
+++ b/ee/spec/features/groups/compliance_framework_report_spec.rb
@@ -160,7 +160,7 @@
 
       it 'renders 404 for compliance center path' do
         visit group_security_compliance_framework_reports_path(group)
-        expect(page).to have_content('Not Found')
+        expect(page).to have_content('Page not found')
       end
     end
   end
diff --git a/ee/spec/features/groups/iterations/user_views_iteration_spec.rb b/ee/spec/features/groups/iterations/user_views_iteration_spec.rb
index 0a87f921caf49202749d79edf99259bee8029207..316d40e97ade7da9e8fbe3328d0c8e481c31a1d6 100644
--- a/ee/spec/features/groups/iterations/user_views_iteration_spec.rb
+++ b/ee/spec/features/groups/iterations/user_views_iteration_spec.rb
@@ -154,7 +154,7 @@
       visit_iteration(iteration)
 
       expect(page).to have_title('Not Found')
-      expect(page).to have_content('Page Not Found')
+      expect(page).to have_content('Page not found')
     end
   end
 
diff --git a/ee/spec/features/groups/saml_enforcement_spec.rb b/ee/spec/features/groups/saml_enforcement_spec.rb
index 873f733774432659b49ed6d65724c5ff55cd519e..c7a5799bcfde53ab4926c59e59d34943d02f7396 100644
--- a/ee/spec/features/groups/saml_enforcement_spec.rb
+++ b/ee/spec/features/groups/saml_enforcement_spec.rb
@@ -102,7 +102,7 @@
       end
 
       it 'allows access to resource' do
-        expect(page).not_to have_content('Page Not Found')
+        expect(page).not_to have_content('Page not found')
         expect(page.title).not_to have_content(
           format(_('SAML single sign-on for %{group_name}'), group_name: group.name)
         )
diff --git a/ee/spec/features/groups/settings/user_configures_vsd_aggregation_spec.rb b/ee/spec/features/groups/settings/user_configures_vsd_aggregation_spec.rb
index d53ff601584893621e1be26c8b6a880b6dbcb98e..e5499c6b36b18b734c27cd02003b96a4a667b907 100644
--- a/ee/spec/features/groups/settings/user_configures_vsd_aggregation_spec.rb
+++ b/ee/spec/features/groups/settings/user_configures_vsd_aggregation_spec.rb
@@ -63,7 +63,7 @@
       it 'renders 404 not found' do
         visit group_settings_analytics_path(group)
 
-        expect(page).to have_content('Page Not Found')
+        expect(page).to have_content('Page not found')
       end
     end
 
diff --git a/ee/spec/features/pending_group_memberships_spec.rb b/ee/spec/features/pending_group_memberships_spec.rb
index 791abd1300650127f7231b509b14e9b11e47ed21..ed2de72291413444bca4a28a1f58e0a4cfde8027 100644
--- a/ee/spec/features/pending_group_memberships_spec.rb
+++ b/ee/spec/features/pending_group_memberships_spec.rb
@@ -53,7 +53,7 @@
 
       visit project_path(project)
 
-      expect(page).to have_content "Page Not Found"
+      expect(page).to have_content "Page not found"
     end
 
     it 'a group member can see a private project in the group once the pending membership transitions to active' do
@@ -77,7 +77,7 @@
 
       visit group_path(group)
 
-      expect(page).to have_content 'Page Not Found'
+      expect(page).to have_content 'Page not found'
     end
 
     it 'a pending member gets a 404 for a private group with a project' do
@@ -86,7 +86,7 @@
 
       visit group_path(group)
 
-      expect(page).to have_content 'Page Not Found'
+      expect(page).to have_content 'Page not found'
     end
   end
 
@@ -99,7 +99,7 @@
 
       visit group_path(group)
 
-      expect(page).to have_content 'Page Not Found'
+      expect(page).to have_content 'Page not found'
     end
 
     it 'a pending member of the root group sees a subgroup as if not a member' do
@@ -107,7 +107,7 @@
 
       visit group_path(subgroup)
 
-      expect(page).to have_content 'Page Not Found'
+      expect(page).to have_content 'Page not found'
     end
 
     it 'a pending member of the root group sees a subgroup project as if not a member' do
@@ -116,7 +116,7 @@
 
       visit project_path(project)
 
-      expect(page).to have_content 'Page Not Found'
+      expect(page).to have_content 'Page not found'
     end
 
     it 'a pending member of a subgroup sees a root group as if not a member' do
@@ -124,7 +124,7 @@
 
       visit group_path(group)
 
-      expect(page).to have_content 'Page Not Found'
+      expect(page).to have_content 'Page not found'
     end
 
     it 'a pending member of a subgroup sees a project as if not a member' do
@@ -133,7 +133,7 @@
 
       visit project_path(project)
 
-      expect(page).to have_content 'Page Not Found'
+      expect(page).to have_content 'Page not found'
     end
 
     it 'a member with an active group membership and a pending subgroup membership sees a subgroup project as if the pending membership does not exist' do
@@ -163,7 +163,7 @@
 
       visit group_path(other_group)
 
-      expect(page).to have_content 'Page Not Found'
+      expect(page).to have_content 'Page not found'
     end
 
     it 'a pending member of the invited group sees the shared group as if not a member when the shared group has a project' do
@@ -172,7 +172,7 @@
 
       visit group_path(other_group)
 
-      expect(page).to have_content 'Page Not Found'
+      expect(page).to have_content 'Page not found'
     end
 
     it 'a pending member of the invited group sees a project in the shared group as if not a member' do
@@ -181,7 +181,7 @@
 
       visit project_path(project)
 
-      expect(page).to have_content 'Page Not Found'
+      expect(page).to have_content 'Page not found'
     end
   end
 
@@ -199,7 +199,7 @@
 
       visit group_path(other_group)
 
-      expect(page).to have_content 'Page Not Found'
+      expect(page).to have_content 'Page not found'
     end
 
     it "a pending member of the invited group sees the shared project as if not a member" do
@@ -207,7 +207,7 @@
 
       visit project_path(project)
 
-      expect(page).to have_content 'Page Not Found'
+      expect(page).to have_content 'Page not found'
     end
   end
 end
diff --git a/ee/spec/features/pending_project_memberships_spec.rb b/ee/spec/features/pending_project_memberships_spec.rb
index bfbc53258a30a24d425349a44da2f676d28268ef..d125985f47b703b37716eae9899f74460ee59495 100644
--- a/ee/spec/features/pending_project_memberships_spec.rb
+++ b/ee/spec/features/pending_project_memberships_spec.rb
@@ -17,13 +17,13 @@
     it 'a pending project member gets a 404 for a private project' do
       visit project_path(project)
 
-      expect(page).to have_content "Page Not Found"
+      expect(page).to have_content "Page not found"
     end
 
     it "a pending project member gets a 404 for the project's private group" do
       visit group_path(group)
 
-      expect(page).to have_content "Page Not Found"
+      expect(page).to have_content "Page not found"
     end
 
     it "a project member can see the project's private group once the membership transitions to active" do
@@ -42,7 +42,7 @@
 
         visit group_path(group)
 
-        expect(page).to have_content "Page Not Found"
+        expect(page).to have_content "Page not found"
       end
     end
   end
@@ -84,7 +84,7 @@
     it 'a pending project member sees the root group as if not a member' do
       visit group_path(group)
 
-      expect(page).to have_content "Page Not Found"
+      expect(page).to have_content "Page not found"
     end
   end
 end
diff --git a/ee/spec/features/profiles/account_spec.rb b/ee/spec/features/profiles/account_spec.rb
index f84349c8c3bc491f56a7172775070478f04bd9cf..3bdda1fc95791cfb85d740b3bd3475109677846e 100644
--- a/ee/spec/features/profiles/account_spec.rb
+++ b/ee/spec/features/profiles/account_spec.rb
@@ -47,7 +47,7 @@ def create_linked_identity
       click_link "Disconnect"
 
       visit group_path(group)
-      expect(page).to have_content('Page Not Found')
+      expect(page).to have_content('Page not found')
     end
 
     context 'group has disabled SAML' do
diff --git a/ee/spec/features/projects/analytics/dashboards_spec.rb b/ee/spec/features/projects/analytics/dashboards_spec.rb
index 584abe695994f0e2d7c4c7e05aff5c2add9674a9..5be0ac954fa6606c61cba6bee953b68f7ebb8557 100644
--- a/ee/spec/features/projects/analytics/dashboards_spec.rb
+++ b/ee/spec/features/projects/analytics/dashboards_spec.rb
@@ -43,7 +43,7 @@
     sign_in(user)
     visit_project_analytics_dashboards_list(project)
 
-    expect(page).to have_content _("Page Not Found")
+    expect(page).to have_content _("Page not found")
   end
 
   context 'with a valid user' do
diff --git a/ee/spec/features/projects/iterations/user_views_iteration_spec.rb b/ee/spec/features/projects/iterations/user_views_iteration_spec.rb
index 2d98c85a519b70f0d40a76681642463a9e002492..bb8c4fa5ac71e08af588953756bf17152e9a7354 100644
--- a/ee/spec/features/projects/iterations/user_views_iteration_spec.rb
+++ b/ee/spec/features/projects/iterations/user_views_iteration_spec.rb
@@ -81,7 +81,7 @@
       visit project_iteration_path(project, iteration.id)
 
       expect(page).to have_title('Not Found')
-      expect(page).to have_content('Page Not Found')
+      expect(page).to have_content('Page not found')
     end
   end
 end
diff --git a/ee/spec/features/projects/pipelines/pipelines_spec.rb b/ee/spec/features/projects/pipelines/pipelines_spec.rb
index 15db9675f0fd01634b9c087c99d4058e456a6375..dcca5a27af0a2c5800d621d2cf426510aca519b4 100644
--- a/ee/spec/features/projects/pipelines/pipelines_spec.rb
+++ b/ee/spec/features/projects/pipelines/pipelines_spec.rb
@@ -35,7 +35,7 @@
         end
 
         visit new_project_pipeline_path(project)
-        expect(page).to have_content('Page Not Found')
+        expect(page).to have_content('Page not found')
       end
     end
   end
diff --git a/ee/spec/features/trials/saas/creation_with_no_existing_namespace_flow_spec.rb b/ee/spec/features/trials/saas/creation_with_no_existing_namespace_flow_spec.rb
index 47a71643e1136dbb557a930b0f1df871022a0229..7d976ab7a8ed46e5a3ff576490d5012d035af57e 100644
--- a/ee/spec/features/trials/saas/creation_with_no_existing_namespace_flow_spec.rb
+++ b/ee/spec/features/trials/saas/creation_with_no_existing_namespace_flow_spec.rb
@@ -184,7 +184,7 @@
 
       click_button 'Start your free trial'
 
-      expect(page).to have_content('Page Not Found')
+      expect(page).to have_content('Page not found')
     end
   end
 
diff --git a/locale/gitlab.pot b/locale/gitlab.pot
index 3bb07e6bcc8d414be7143a8fb96c2ef3136f1bfa..0ce4ec7f9e79279f7c38411b92fe00f0e453e682 100644
--- a/locale/gitlab.pot
+++ b/locale/gitlab.pot
@@ -1844,28 +1844,49 @@ msgstr ""
 msgid "30+ contributions"
 msgstr ""
 
+msgid "403|403: You do not have the permission to access this page"
+msgstr ""
+
 msgid "403|Please contact your GitLab administrator to get permission."
 msgstr ""
 
-msgid "403|You don't have the permission to access this page."
+msgid "404|404: Git resource not found"
 msgstr ""
 
-msgid "404|Make sure the address is correct and the page hasn't moved."
+msgid "404|404: Page not found"
 msgstr ""
 
-msgid "404|Not found"
+msgid "404|Application cannot get access to a branch or commit in your repository. It might have been moved"
 msgstr ""
 
-msgid "404|Page Not Found"
+msgid "404|Make sure the address is correct and the page has not moved."
+msgstr ""
+
+msgid "404|Not found"
 msgstr ""
 
 msgid "404|Please contact your GitLab administrator if you think this is a mistake."
 msgstr ""
 
+msgid "409|409: There was a conflict with your request"
+msgstr ""
+
 msgid "409|Please contact your GitLab administrator if you think this is a mistake."
 msgstr ""
 
-msgid "409|There was a conflict with your request."
+msgid "412|412: Precondition failed"
+msgstr ""
+
+msgid "412|Page cannot be loaded because of invalid parameters."
+msgstr ""
+
+msgid "422: Sign-in using %{provider} auth failed"
+msgstr ""
+
+msgid "500|500: Encoding error"
+msgstr ""
+
+msgid "500|Page cannot be loaded because of an encoding error."
 msgstr ""
 
 msgid ":%{startLine} to %{endLine}"
@@ -50316,9 +50337,6 @@ msgstr ""
 msgid "Sign-in restrictions"
 msgstr ""
 
-msgid "Sign-in using %{provider} auth failed"
-msgstr ""
-
 msgid "Sign-out page URL"
 msgstr ""
 
diff --git a/public/-/error-illustrations/error-404-lg.svg b/public/-/error-illustrations/error-404-lg.svg
new file mode 100644
index 0000000000000000000000000000000000000000..273b2ed3538dd42d4b28be53d0b0751d762f90f1
--- /dev/null
+++ b/public/-/error-illustrations/error-404-lg.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="288" height="288" fill="none" viewBox="0 0 288 288"><path d="M287 181c0 22.41-15.768 42.89-41.676 57.823C219.443 253.741 183.621 263 144 263c-39.621 0-75.443-9.259-101.324-24.177C16.768 223.89 1 203.41 1 181v-18h286v18Z" fill="#AEA5D6" stroke="#171321" stroke-width="2"/><ellipse cx="144" cy="161" rx="144" ry="83" fill="#E7E4F2"/><path d="M53.632 225.442C21.51 210.314 1 187.289 1 161.5 1 115.937 65.023 79 144 79s143 36.937 143 82.5S222.977 244 144 244c-29.826 0-57.52-5.268-80.438-14.28" stroke="#171321" stroke-width="2"/><path d="M231 116.788 215 126v-16.2l-14 8.08L180 130v-25.643L210 38l17.662-10L196 99v5.357L215 93.5V74l16-9v51.788Z" fill="#fff"/><path d="m231 65-16 9-6.212-3.675 6.518-14.617L227.662 28 210 38l-17-10 17.662-10 17 10-12.356 27.708L231 65ZM196 104.357 215 93.5 199.568 91 196 99v5.357Z" fill="#C5F4EC"/><path d="M180 104.357 210 38l-17-10-30 66.357 17 10Z" fill="#6FDAC9"/><path d="M215 74v19.5L199.568 91l2.332-5.23 6.888-15.445L215 74ZM180 130v-25.643l-17-10V120l17 10ZM215 126v-16.2l-14 8.08 14 8.12Z" fill="#10B1B1"/><path d="m215 126 16-9.212V114m-16 12v-16.2l-14 8.08m14 8.12-14-8.12M231 65l-16 9m16-9-15.694-9.292M231 65v41m-16-32v19.5m0-19.5-6.212-3.675M215 93.5l-19 10.857V99l3.568-8 2.332-5.23M215 93.5l-13.1-7.73M227.662 28 210 38m17.662-10-12.356 27.708M227.662 28l-17-10L193 28m17 10-30 66.357M210 38l-17-10m-13 76.357V130m0-25.643-17-10M180 130l21-12.12M180 130l-17-10V94.357M193 28l-30 66.357m38.9-8.588 6.888-15.444m0 0 6.518-14.617" stroke="#171321" stroke-width="2"/><path d="M143 164.5v-22.078c-3.376 1.747-6.751 2.91-10 3.364V164.5c0 1.5 2 3 6 3 3.2 0 4-2 4-3Z" fill="#FFC2A8"/><path d="M178 85.5c0 23.14-17.509 47.872-35 56.922-3.376 1.747-6.751 2.91-10 3.364a21.627 21.627 0 0 1-3 .214c-3.653 0-6.609-.762-9-2.033-9.061-4.816-10-16.928-10-22.467 0-8.995 2.382-18.125 6.312-26.5 9.175-19.558 26.784-35 42.188-35 2.541 0 5.921.535 9.098 2.5 4.949 3.063 9.402 9.6 9.402 23Z" fill="#FFC2A8"/><path d="M173 87.942c0 11.32-4.815 23.084-11.705 32.558-8.297 11.41-19.602 19.5-29.131 19.5-4.876 0-8.292-1.615-10.682-4-4.905-4.895-5.482-13.031-5.482-17.081 0-20.075 13.635-40.93 28.5-49.212C148.75 67.34 153.1 66 157.261 66 162.791 66 173 69.012 173 87.942Z" fill="#FFC2A8"/><path d="M147.5 53c2.382 0 5.502.47 8.5 2.148l11.892 6.94c.236.13.472.267.706.412l-.706-.411C164.928 60.459 161.853 60 159.5 60c-15.404 0-33.013 15.442-42.189 35l-11.999-7c9.175-19.558 26.784-35 42.188-35ZM121.482 136c2.39 2.384 5.806 4 10.682 4 9.529 0 20.834-8.09 29.131-19.5l-4.542-2.695c-8.041 10.926-19.507 19.064-28.253 19.195-3.999.06-6.345-.667-7.018-1Z" fill="#FF9D73"/><path d="M109.5 137.221C99.973 132.592 99 120.139 99 114.5c0-8.995 2.382-18.125 6.311-26.5l12 7c-3.929 8.375-6.311 17.505-6.311 26.5 0 5.304.861 16.638 8.893 21.818l1.107.649a15.749 15.749 0 0 1-1.107-.649l-10.393-6.097ZM173 87.942C173 69.012 162.791 66 157.261 66c-4.161 0-8.511 1.34-12.761 3.707C162 66 166.5 78 166.5 92c0 8.755-3.998 17.993-9.747 25.805l4.542 2.695C168.185 111.026 173 99.262 173 87.942Z" fill="#FF7B42"/><path d="M116 118.919c0 4.05.577 12.186 5.482 17.081.673.333 3.018 1.06 7.018 1 8.746-.131 20.212-8.269 28.253-19.195 5.749-7.812 9.747-17.05 9.747-25.805 0-14-4.5-26-22-22.293-14.865 8.281-28.5 29.137-28.5 49.212Z" fill="#fff"/><path d="M168.598 62.5c-3.177-1.965-6.558-2.5-9.098-2.5-15.404 0-33.013 15.442-42.189 35m51.287-32.5c4.949 3.063 9.402 9.6 9.402 23 0 23.14-17.509 47.872-35 56.922M168.598 62.5 156 55.148C153.002 53.47 149.882 53 147.5 53c-15.404 0-33.013 15.442-42.189 35M121 143.967c2.391 1.271 5.347 2.033 9 2.033.985 0 1.986-.073 3-.214m-12-1.819c-9.061-4.816-10-16.928-10-22.467 0-8.995 2.382-18.125 6.311-26.5M121 143.967l-11.5-6.746C99.973 132.592 99 120.139 99 114.5c0-8.995 2.382-18.125 6.311-26.5m16.171 48c2.389 2.384 5.806 4 10.682 4 9.528 0 20.834-8.09 29.131-19.5M121.482 136c-4.905-4.895-5.482-13.031-5.482-17.081 0-20.075 13.635-40.93 28.5-49.212M121.482 136c.673.333 3.018 1.06 7.018 1 8.746-.131 20.212-8.269 28.253-19.195M144.5 69.707C148.75 67.34 153.1 66 157.261 66 162.791 66 173 69.012 173 87.942c0 11.32-4.815 23.084-11.705 32.558M144.5 69.707C162 66 166.5 78 166.5 92c0 8.755-3.998 17.993-9.747 25.805M143 142.422V164.5c0 1-.8 3-4 3-4 0-6-1.5-6-3v-18.714m10-3.364c-3.376 1.747-6.751 2.91-10 3.364M117.311 95l-12-7m55.984 32.5-4.542-2.695M154 93.5 133 123m18.5-16.5-8.5 12.419" stroke="#171321" stroke-width="2"/><path d="M109 187.788 93 197v-16.2l-14 8.08L58 201v-25.643L88 109l17.662-10L74 170v5.357L93 164.5V145l16-9v51.788Z" fill="#fff"/><path d="m109 136-16 9-6.212-3.675 6.518-14.617L105.662 99 88 109 71 99l17.662-10 17 10-12.356 27.708L109 136ZM74 175.357 93 164.5 77.568 162 74 170v5.357Z" fill="#C5F4EC"/><path d="M58 175.357 88 109 71 99l-30 66.357 17 10Z" fill="#6FDAC9"/><path d="M93 145v19.5L77.568 162l2.332-5.23 6.888-15.445L93 145ZM58 201v-25.643l-17-10V191l17 10ZM93 197v-16.2l-14 8.08L93 197Z" fill="#10B1B1"/><path d="m93 197 16-9.212V136m-16 61v-16.2l-14 8.08M93 197l-14-8.12M109 136l-16 9m16-9-15.694-9.292M93 145v19.5m0-19.5-6.212-3.675M93 164.5l-19 10.857V170l3.568-8 2.332-5.231M93 164.5l-13.1-7.731M105.662 99 88 109m17.662-10-12.356 27.708M105.662 99l-17-10L71 99m17 10-30 66.357M88 109 71 99m-13 76.357V201m0-25.643-17-10M58 201l21-12.12M58 201l-17-10v-25.643M71 99l-30 66.357m38.9-8.588 6.888-15.444m0 0 6.518-14.617" stroke="#171321" stroke-width="2"/></svg>
\ No newline at end of file
diff --git a/public/-/error-illustrations/error-422-lg.svg b/public/-/error-illustrations/error-422-lg.svg
new file mode 100644
index 0000000000000000000000000000000000000000..654751f0be9afa76b7579bee2d044b70d65c7449
--- /dev/null
+++ b/public/-/error-illustrations/error-422-lg.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="288" height="288" fill="none" viewBox="0 0 288 288"><path d="M287 181c0 22.41-15.768 42.89-41.676 57.823C219.443 253.741 183.621 263 144 263c-39.621 0-75.443-9.259-101.324-24.177C16.768 223.89 1 203.41 1 181v-18h286v18Z" fill="#AEA5D6" stroke="#171321" stroke-width="2"/><ellipse cx="144" cy="161" rx="144" ry="83" fill="#E7E4F2"/><path d="M53.632 225.442C21.51 210.314 1 187.289 1 161.5 1 115.937 65.023 79 144 79s143 36.937 143 82.5S222.977 244 144 244c-29.826 0-57.52-5.268-80.438-14.28" stroke="#171321" stroke-width="2"/><path d="m243 111.181-52 30v-16.5l30.5-52.5a71.622 71.622 0 0 0 2-4.307c.927-2.213 1.737-4.592 2-6.693.5-4 1-12.5-6.5-11.5-6 .8-13 10-13 19.5l-2.685 1.5-5.557 3.106L189 78.68c0-4.085 1.501-12.902 6-22.126 4.864-9.972 13.233-20.42 27-25.874 5.467-2.166 9.774-2.13 13-.516 5.103 2.553 7.5 9.05 7.5 17.016 0 10.4-6.333 24-9.5 29.5l-5.127 8.666L212 112.181l31-18v17Z" fill="#fff"/><path d="m212 112.181 31-18-15.127-8.834L212 112.181ZM222 30.68c5.467-2.165 9.774-2.129 13-.515l-16.5-9.732c-3.276-1.871-7.746-2.032-13.5.248-13.767 5.455-22.136 15.902-27 25.874l17 10c4.864-9.972 13.233-20.42 27-25.874Z" fill="#C5F4EC"/><path d="m221.5 72.18-30.5 52.5-17-9.999 23.758-40.894 5.557-3.106 20.185-2.808a71.622 71.622 0 0 1-2 4.307ZM172 68.68l17 10c0-4.084 1.501-12.901 6-22.125l-17-10c-4.499 9.224-6 18.042-6 22.126Z" fill="#6FDAC9"/><path d="M191 124.68v16.5l-17-9.999v-16.5l17 9.999ZM219 49.68c7.5-1 7 7.5 6.5 11.5-.263 2.102-1.073 4.48-2 6.693l-20.185 2.808 2.685-1.5c0-9.5 7-18.7 13-19.5Z" fill="#10B1B1"/><path d="m191 141.181 52-30v-17m-52 47v-16.5m0 16.5-17-10v-16.5m69-20.5-31 18 15.873-26.834M243 94.181l-15.127-8.834M242.5 47.181c0-7.965-2.397-14.463-7.5-17.016m-46 48.516-17-10c0-4.084 1.501-12.902 6-22.126 4.864-9.972 13.233-20.42 27-25.874 5.754-2.28 10.224-2.12 13.5-.248l16.5 9.732m-46 48.516 8.758-4.894M189 78.68c0-4.085 1.501-12.902 6-22.126 4.864-9.972 13.233-20.42 27-25.874 5.467-2.166 9.774-2.13 13-.516m-44 94.516 30.5-52.5a71.622 71.622 0 0 0 2-4.307c.927-2.213 1.737-4.592 2-6.693.5-4 1-12.5-6.5-11.5-6 .8-13 10-13 19.5l-2.685 1.5-5.557 3.106M191 124.68l-17-10m0 0 23.758-40.894m30.115 11.56L233 76.681c2.413-4.191 6.664-13.084 8.551-21.681" stroke="#171321" stroke-width="2"/><path d="M176.619 151.097s-57.5 33.5-59.5 34.5c-1.756.878-3.899 1.371-5.749.123a5.102 5.102 0 0 1-.751-.623c-1.649-1.649-1.166-6.833-.5-9.5.667-2.667 29.5-91.5 29.5-91.5.22-.659.56-1.438.999-2.274 1.562-2.973 4.38-6.665 7.501-8.226 1.797-.898 3.325-.687 4.539 0 1.487.842 2.502 2.399 2.961 3.5l27.5 54c1 2 2.278 5 1.5 8.5-1.388 6.248-5.166 9.667-8 11.5Z" fill="#FFC2A8"/><path d="M110.119 175.597c.667-2.666 29.5-91.5 29.5-91.5.22-.659.56-1.438.999-2.274l-17.38-10.226c-.498.922-.88 1.782-1.12 2.5 0 0-28.833 88.833-29.5 91.5-.666 2.667-1.149 7.851.5 9.5.189.188.381.355.578.5l17.674 10.123a5.102 5.102 0 0 1-.751-.623c-1.649-1.649-1.166-6.833-.5-9.5Z" fill="#FF7B42"/><path d="M148.119 73.597c1.797-.898 3.325-.687 4.539 0l-18.04-10.263c-1.116-.462-2.459-.507-4 .263-3.043 1.522-5.797 5.07-7.38 8l17.38 10.226c1.562-2.973 4.38-6.665 7.501-8.226Z" fill="#FF9D73"/><path d="M111.37 185.72a5.102 5.102 0 0 1-.751-.623c-1.649-1.649-1.167-6.833-.5-9.5.667-2.666 29.5-91.5 29.5-91.5.22-.659.56-1.438.999-2.274M111.37 185.72c1.85 1.248 3.993.755 5.749-.123 2-1 59.5-34.5 59.5-34.5 2.834-1.833 6.612-5.252 8-11.5.778-3.5-.5-6.5-1.5-8.5l-27.5-54c-.459-1.101-1.474-2.658-2.961-3.5M111.37 185.72l-17.674-10.123a5.156 5.156 0 0 1-.578-.5c-1.649-1.649-1.166-6.833-.5-9.5.667-2.667 29.5-91.5 29.5-91.5.24-.718.622-1.578 1.12-2.5m29.42 2c-1.214-.687-2.742-.898-4.539 0-3.121 1.561-5.939 5.253-7.501 8.226m12.04-8.226-18.04-10.263c-1.116-.462-2.459-.507-4 .263-3.043 1.522-5.797 5.07-7.38 8m17.38 10.226-17.38-10.226" stroke="#171321" stroke-width="2"/><path d="m142.618 102.897 10.5-5.8-1 38-8.5 4.5-1-36.7ZM150.118 143.597c2-1 4 .5 4 2.5 0 2.5-1.5 6-4 7.5-1.724 1.034-4.5 2.5-4.5 2.5-1 .5-3.1.6-3.5-3-.4-3.6 2.167-6.166 3.5-7 .833-.5 2.9-1.7 4.5-2.5Z" fill="#171321"/><path d="M102 192.788 86 202v-16.2l-14 8.08L51 206v-25.643L81 114l17.662-10L67 175v5.357L86 169.5V150l16-9v51.788Z" fill="#fff"/><path d="m102 141-16 9-6.212-3.675 6.518-14.617L98.662 104 81 114l-17-10 17.662-10 17 10-12.356 27.708L102 141ZM67 180.357 86 169.5 70.568 167 67 175v5.357Z" fill="#C5F4EC"/><path d="M51 180.357 81 114l-17-10-30 66.357 17 10Z" fill="#6FDAC9"/><path d="M86 150v19.5L70.568 167l2.332-5.23 6.888-15.445L86 150ZM51 206v-25.643l-17-10V196l17 10ZM86 202v-16.2l-14 8.08L86 202Z" fill="#10B1B1"/><path d="m86 202 16-9.212V141m-16 61v-16.2l-14 8.08M86 202l-14-8.12M102 141l-16 9m16-9-15.694-9.292M86 150v19.5m0-19.5-6.212-3.675M86 169.5l-19 10.857V175l3.568-8 2.332-5.231M86 169.5l-13.1-7.731M98.662 104 81 114m17.662-10-12.356 27.708M98.662 104l-17-10L64 104m17 10-30 66.357M81 114l-17-10m-13 76.357V206m0-25.643-17-10M51 206l21-12.12M51 206l-17-10v-25.643M64 104l-30 66.357m38.9-8.588 6.888-15.444m0 0 6.518-14.617" stroke="#171321" stroke-width="2"/></svg>
\ No newline at end of file
diff --git a/public/-/error-illustrations/error-500-lg.svg b/public/-/error-illustrations/error-500-lg.svg
new file mode 100644
index 0000000000000000000000000000000000000000..60ad7e7e2aa328a0a7f6ff6bae12e13092808177
--- /dev/null
+++ b/public/-/error-illustrations/error-500-lg.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="288" height="288" fill="none" viewBox="0 0 288 288"><path d="M287.941 181.184c0 22.411-15.768 42.89-41.676 57.824-25.882 14.917-61.703 24.176-101.324 24.176-39.622 0-75.443-9.259-101.324-24.176C17.709 224.074 1.94 203.595 1.94 181.184v-18h286v18Z" fill="#AEA5D6" stroke="#171321" stroke-width="2"/><ellipse cx="144.941" cy="161.184" rx="144" ry="83" fill="#E7E4F2"/><path d="M54.573 225.626C22.45 210.498 1.94 187.473 1.94 161.684c0-45.563 64.023-82.5 143-82.5 78.976 0 143 36.937 143 82.5 0 45.564-64.024 82.5-143 82.5-29.827 0-57.52-5.268-80.438-14.279" stroke="#171321" stroke-width="2"/><path fill-rule="evenodd" clip-rule="evenodd" d="M200.941 78.407v39c0 4.429.981 11.038 6 14.195 1.78 1.119 4.068 1.805 7 1.805 6.5 0 14.9-3.936 24-12.5 8.5-8 15-18.5 15-31.5v-43c0-3.996-.639-10.547-6-14.038-1.347-.877-2.992-1.56-5-1.962-10.5-2.1-25.62 11.02-33 22.5a54.428 54.428 0 0 0-2.598 4.5c-3.18 6.177-5.402 13.43-5.402 21Zm37-20v36c0 1.78-.337 4.787-1.486 8-1.433 4.008-4.13 8.336-9.014 11-8.8 4.8-11.5 0-11.5-3v-39.5c0-4.15 1.291-9.783 5-14.318a19.693 19.693 0 0 1 6.5-5.182c8.8-4.4 10.5 0 10.5 7Z" fill="#fff"/><path d="M241.941 30.407c-10.5-2.1-25.62 11.02-33 22.5a54.428 54.428 0 0 0-2.598 4.5l-16.999-10a54.147 54.147 0 0 1 2.597-4.5c7.38-11.48 22.5-24.6 33-22.5 1.536.308 2.859.78 4 1.378l17.046 10.023c.334.177.651.364.954.561l-.954-.56c-1.151-.61-2.489-1.09-4.046-1.402ZM215.941 110.407c0 3 2.7 7.8 11.5 3 4.884-2.664 7.581-6.992 9.014-11 0 0-3.514 1-10.014 1s-10.5-.5-10.5-.5v7.5Z" fill="#C5F4EC"/><path d="M200.941 117.407v-39c0-7.57 2.222-14.823 5.402-21l-16.999-10c-3.181 6.177-5.403 13.43-5.403 21v39c0 4.573 1.045 11.468 6.5 14.491l16.5 9.704c-5.019-3.157-6-9.766-6-14.195ZM237.941 94.407v-36c0-7-1.7-11.4-10.5-7a19.693 19.693 0 0 0-6.5 5.182v27.818c0 2.965-.934 9.335-5 14.389v4.111s4 .5 10.5.5 10.014-1 10.014-1c1.149-3.213 1.486-6.22 1.486-8Z" fill="#10B1B1"/><path d="M252.941 89.407c0 13-6.5 23.5-15 31.5-9.1 8.564-17.5 12.5-24 12.5-2.932 0-5.22-.686-7-1.805m0 0c-5.019-3.157-6-9.766-6-14.195v-39c0-7.57 2.222-14.823 5.402-21a54.428 54.428 0 0 1 2.598-4.5c7.38-11.48 22.5-24.6 33-22.5 2.008.401 3.653 1.085 5 1.962m-40 99.233-16.5-9.704c-5.455-3.023-6.5-9.918-6.5-14.491v-39c0-7.57 2.222-14.823 5.403-21a54.147 54.147 0 0 1 2.597-4.5c7.38-11.48 22.5-24.6 33-22.5 1.536.308 2.859.78 4 1.378l18 10.584m0 0c5.361 3.49 6 10.042 6 14.038v34.777m-37 17.612c4.066-5.054 5-11.424 5-14.389V56.59m-5 42.207v-27.89c0-4.149 1.291-9.782 5-14.317m-5 42.207v11.611c0 3 2.7 7.8 11.5 3 4.884-2.664 7.581-6.992 9.014-11 1.149-3.213 1.486-6.22 1.486-8v-36c0-7-1.7-11.4-10.5-7a19.691 19.691 0 0 0-6.5 5.182" stroke="#171321" stroke-width="2"/><path d="M133.85 184.184c27.778 0 59.091-48.352 59.091-83.773 0-18.452-5.875-27.7-12.627-31.876-3.534-2.186-7.308-2.983-10.606-2.983-24.747 0-59.09 44.417-59.091 87.147 0 13.552 4.312 23.372 11.617 28.172 3.301 2.169 7.214 3.313 11.616 3.313Z" fill="#FFC2A8"/><path d="M110.617 152.576c0 13.552 4.312 23.372 11.617 28.171l-17.448-11.096c-7.443-4.744-11.845-14.626-11.845-28.32 0-13.253 3.303-26.668 8.6-38.871l17.658 11.289c-5.286 12.19-8.582 25.59-8.582 38.827Z" fill="#FF7B42"/><path d="M180.315 68.412c-3.535-2.187-7.309-2.983-10.606-2.983-17.081 0-38.734 21.16-50.51 48.32l-17.658-11.289c11.781-27.139 33.419-48.276 50.491-48.276 3.297 0 7.072.797 10.606 2.983l17.677 11.245Z" fill="#FF9D73"/><path d="m171.345 94.025-13.932 27.378c4.325 2.772 12.527 8.057 13.064 8.399 1.945 1.237 1.76 4.67.198 7.282-1.549 2.592-3.766 3.587-5.261 2.702l-13.244-8.465c-4.474 8.61-13.5 25.969-13.807 26.524-.763 1.381-2.791 4.188-5.034 3.042-1.644-.84-1.258-4.139-.431-5.604l13.903-27.378c-4.379-2.9-12.669-8.21-13.163-8.624-1.681-1.409-1.906-4.062-.644-6.586 1.573-3.148 3.947-4.499 5.755-3.425l13.469 8.602L166.36 90.44c1.031-1.81 3.036-3.237 4.647-2.212 1.611 1.025 1.302 3.811.338 5.797Z" fill="#171321"/><path d="M180.314 68.535c-3.534-2.186-7.308-2.983-10.606-2.983-17.093 0-38.763 21.19-50.534 48.377m61.14-45.394c6.752 4.176 12.627 13.424 12.627 31.876 0 35.421-31.313 83.773-59.091 83.773-4.402 0-8.315-1.144-11.616-3.314m58.08-112.335L162.638 57.29c-3.535-2.186-7.309-2.983-10.606-2.983-17.057 0-38.673 21.1-50.46 48.205m20.662 78.358c-7.305-4.8-11.617-14.619-11.617-28.171 0-13.217 3.286-26.595 8.557-38.77m3.06 66.941-17.448-11.096c-7.443-4.745-11.845-14.627-11.845-28.32 0-13.279 3.316-26.721 8.631-38.942m17.602 11.417-17.602-11.417" stroke="#171321" stroke-width="2"/><path d="m55.975 135.576 47-27.211v17l-23.739 13.784-7.261 4.216v16c4.5-4 12.5-9 18.5-10 4.178-.696 7.25-.27 9.5.9 5.129 2.666 6 9.193 6 15.1v9.5c0 25.5-28 44.5-41 44.5-2.439 0-4.412-.586-6-1.553-5.182-3.156-6.256-10.364-6-14.447l16-9c1.5 4.5 4 7 10.5 4 4.122-1.903 7.401-5.911 9.138-10 .878-2.066 1.362-4.154 1.362-6v-7c0-8.5-5.5-7.5-8-6l-9.228 5.324-16.772 9.676v-48.789Z" fill="#fff"/><path d="m56.006 135.395 47-27.211-17-10-47 27.211 17 10ZM72.006 159.184c4.5-4 12.5-9 18.5-10 4.178-.696 7.25-.27 9.501.9l-17-10c-1.056-.549-2.293-.934-3.74-1.116l-7.26 4.216v16ZM52.975 204.684l-17-10 15.997-9.5 7 4.174 10.61 6.326-16.607 9Z" fill="#C5F4EC"/><path d="M68.975 194.365c1.5 4.5 4 7 10.5 4 4.122-1.903 7.401-5.911 9.138-10 0 0-4.138.866-12.638.866s-13-1.109-13-1.109a17.767 17.767 0 0 1-2.729 1.109l8.729 5.134Z" fill="#6FDAC9"/><path d="M55.975 135.575v48.79l16.772-9.677 9.228-5.323c2.5-1.5 8-2.5 8 6v7c0 1.846-.484 3.933-1.362 6 0 0-4.138.866-12.638.866s-13-1.109-13-1.109c5.113-2.613 8.838-8.446 9.772-13.434l-16.772 9.677-17-10v-48.79l17 10ZM52.975 203.365l-17-10c-.255 4.082.818 11.29 6 14.446l17 10.001c-5.182-3.156-6.256-10.364-6-14.447Z" fill="#10B1B1"/><path d="m103.006 108.184-47 27.211m47-27.211v17l-23.738 13.784m23.738-30.784-17-10-47 27.211m17 10v48.789m0-48.789-17-10m17 58.789-17-10v-48.789m17 58.789 16.773-9.676m-13.772 43.123c1.587.967 3.56 1.553 6 1.553 13 0 40.999-19 40.999-44.5v-9.5c0-5.907-.871-12.433-5.999-15.1m-41 67.547-17-10.001c-4.594-2.798-5.959-8.78-6.032-12.946m23.032 22.947c-4.595-2.798-5.96-8.781-6.032-12.947m47.032-54.6c-2.251-1.17-5.323-1.596-9.5-.9-6 1-14 6-18.5 10v-16l7.26-4.216m20.74 11.116-17-10c-1.056-.549-2.293-.934-3.74-1.116m-6.488 35.54 9.227-5.324c2.5-1.5 8-2.5 8 6v7c0 1.846-.484 3.934-1.362 6-1.737 4.089-5.015 8.097-9.138 10-5.735 2.647-8.356 1.012-9.924-2.5m3.197-21.176c-.934 4.987-4.659 10.82-9.772 13.433-.165.084-.332.166-.5.243-1.15.531-2.308.885-3.535 1.174m10.61 6.326-16.607 9m16.607-9-10.61-6.326m-5.997 15.326-17-10m0 0 15.997-9.5 7 4.174" stroke="#171321" stroke-width="2"/></svg>
\ No newline at end of file
diff --git a/public/-/error-illustrations/error-502-lg.svg b/public/-/error-illustrations/error-502-lg.svg
new file mode 100644
index 0000000000000000000000000000000000000000..554e7d11f6940f09392a7b75af458a6fb20cefd3
--- /dev/null
+++ b/public/-/error-illustrations/error-502-lg.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="288" height="288" fill="none" viewBox="0 0 288 288"><path d="M287.941 181.184c0 22.411-15.768 42.89-41.676 57.824-25.882 14.917-61.703 24.176-101.324 24.176-39.622 0-75.443-9.259-101.324-24.176C17.709 224.074 1.94 203.595 1.94 181.184v-18h286v18Z" fill="#AEA5D6" stroke="#171321" stroke-width="2"/><ellipse cx="144.941" cy="161.184" rx="144" ry="83" fill="#E7E4F2"/><path d="M54.573 225.626C22.45 210.498 1.94 187.473 1.94 161.684c0-45.563 64.023-82.5 143-82.5 78.976 0 143 36.937 143 82.5 0 45.564-64.024 82.5-143 82.5-29.827 0-57.52-5.268-80.438-14.279" stroke="#171321" stroke-width="2"/><path d="m253.941 108.365-52 30v-16.5l30.5-52.5a71.65 71.65 0 0 0 2-4.307c.927-2.213 1.737-4.592 2-6.693.5-4 1-12.5-6.5-11.5-6 .8-13 10-13 19.5l-2.685 1.5-5.558 3.106-8.757 4.894c0-4.085 1.5-12.902 6-22.126 4.864-9.972 13.233-20.42 27-25.874 5.466-2.166 9.774-2.13 13-.516 5.103 2.553 7.5 9.05 7.5 17.016 0 10.4-6.334 24-9.5 29.5l-5.127 8.666-15.873 26.834 31-18v17Z" fill="#fff"/><path d="m222.941 109.365 31-18-15.127-8.834-15.873 26.834ZM232.941 27.865c5.466-2.166 9.774-2.13 13-.516l-16.5-9.732c-3.276-1.871-7.746-2.032-13.5.248-13.767 5.455-22.136 15.902-27 25.874l17 10c4.864-9.972 13.233-20.42 27-25.874Z" fill="#C5F4EC"/><path d="m232.441 69.365-30.5 52.5-17-10 23.757-40.894 5.558-3.106 20.185-2.807a71.622 71.622 0 0 1-2 4.307ZM182.941 65.865l17 10c0-4.085 1.5-12.902 6-22.126l-17-10c-4.5 9.224-6 18.042-6 22.126Z" fill="#6FDAC9"/><path d="M201.941 121.865v16.5l-17-10v-16.5l17 10ZM229.941 46.865c7.5-1 7 7.5 6.5 11.5-.263 2.1-1.073 4.48-2 6.693l-20.185 2.807 2.685-1.5c0-9.5 7-18.7 13-19.5Z" fill="#10B1B1"/><path d="m201.941 138.365 52-30v-17m-52 47v-16.5m0 16.5-17-10v-16.5m69-20.5-31 18 15.873-26.834m15.127 8.834-15.127-8.834m14.627-38.166c0-7.965-2.397-14.463-7.5-17.016m-46 48.516-17-10c0-4.084 1.5-12.902 6-22.126 4.864-9.972 13.233-20.42 27-25.874 5.754-2.28 10.224-2.12 13.5-.248l16.5 9.732m-46 48.516 8.757-4.894m-8.757 4.894c0-4.085 1.5-12.902 6-22.126 4.864-9.972 13.233-20.42 27-25.874 5.466-2.166 9.774-2.13 13-.516m-44 94.516 30.5-52.5a71.622 71.622 0 0 0 2-4.307c.927-2.213 1.737-4.592 2-6.693.5-4 1-12.5-6.5-11.5-6 .8-13 10-13 19.5l-2.685 1.5-5.558 3.106m-6.757 50.894-17-10m0 0 23.757-40.894m30.116 11.56 5.127-8.666c2.412-4.19 6.664-13.084 8.551-21.68" stroke="#171321" stroke-width="2"/><path d="M133.85 180.184c27.778 0 59.091-48.398 59.091-83.853 0-18.47-5.875-27.725-12.627-31.906-3.534-2.188-7.308-2.985-10.606-2.985-24.747 0-59.09 44.458-59.091 87.229 0 13.565 4.312 23.394 11.617 28.198 3.301 2.172 7.214 3.317 11.616 3.317Z" fill="#FFC2A8"/><path fill-rule="evenodd" clip-rule="evenodd" d="M169.709 61.44c3.297 0 7.071.797 10.606 2.985L162.638 53.17c-3.534-2.189-7.309-2.986-10.606-2.986-17.072 0-38.71 21.157-50.491 48.322l17.658 11.299c11.776-27.186 33.429-48.366 50.51-48.366Zm-36.457 105.8c-2.314 0-4.463-.386-6.422-1.132 2.896 2.21 6.429 3.384 10.462 3.384 12.778 0 26.465-12.496 36.044-28.625l-5.895.747c-9.442 14.653-22.215 25.626-34.189 25.626Z" fill="#FF9D73"/><path d="M172.729 72.662c4.993 3.798 9.101 11.383 9.101 25.43 0 13.907-5.824 30.229-14.389 43.522l5.895-.747c7.54-12.697 12.534-27.646 12.534-40.524 0-17.72-6.537-25.156-13.141-27.681ZM122.234 176.867c-7.305-4.804-11.617-14.632-11.617-28.198 0-13.25 3.296-26.662 8.582-38.863l-17.658-11.3c-5.296 12.214-8.6 25.642-8.6 38.908 0 13.706 4.402 23.597 11.845 28.346l17.448 11.107Z" fill="#FF7B42"/><path d="M166.771 71.57c-20.345 0-48.578 36.662-48.578 71.933 0 10.607 3.188 18.444 8.637 22.605 1.959.746 4.108 1.132 6.422 1.132 12.485 0 25.84-11.931 35.38-27.525 7.909-12.927 13.198-28.372 13.198-41.623 0-14.047-4.109-21.632-9.101-25.43a16.727 16.727 0 0 0-5.958-1.093Z" fill="#fff"/><path d="M180.314 64.425c-3.534-2.188-7.308-2.985-10.606-2.985-17.085 0-38.745 21.191-50.519 48.388m61.125-45.403c6.752 4.18 12.627 13.437 12.627 31.906 0 35.455-31.313 83.853-59.091 83.853-4.402 0-8.315-1.145-11.616-3.317m58.08-112.442L162.638 53.17c-3.535-2.189-7.309-2.986-10.606-2.986-16.985 0-38.49 20.942-50.31 47.908m20.512 78.775c-7.305-4.804-11.617-14.633-11.617-28.198 0-13.242 3.292-26.645 8.572-38.841m3.045 67.039-17.448-11.107c-7.443-4.749-11.845-14.64-11.845-28.346 0-13.416 3.379-26.998 8.781-39.322m71.007-25.43c4.992 3.798 9.101 11.383 9.101 25.43 0 13.251-5.289 28.696-13.198 41.623m4.097-67.053a16.727 16.727 0 0 0-5.958-1.093c-20.345 0-48.578 36.663-48.578 71.934 0 10.607 3.188 18.444 8.637 22.605m45.899-93.446c6.603 2.525 13.141 9.96 13.141 27.681 0 13.22-5.263 28.623-13.141 41.531m-45.899 24.234c1.959.746 4.108 1.132 6.422 1.132 12.485 0 25.84-11.931 35.38-27.525m-41.802 26.393c2.895 2.21 6.429 3.383 10.462 3.383 12.51 0 25.892-11.978 35.437-27.617m-53.54-32.046-17.467-11.736m71.007 43.782-4.097-2.159" stroke="#171321" stroke-width="2"/><path d="M148.284 95.15v24.392l-12.723 30.881c-.623 1.66-.517 4.003.756 4.824l.041.026a2.542 2.542 0 0 1-.041-.026l-3.696-2.314c-1.158-.889-1.237-3.134-.635-4.738l12.723-30.882V92.921c0-1.719.227-3.266.643-4.59l3.655 1.982c-.468 1.378-.723 3.01-.723 4.836Z" fill="#2B2838"/><path d="M153.048 85.804a1.666 1.666 0 0 1 1.15.086l-3.539-2.213a1.675 1.675 0 0 0-1.186-.102c-1.885.565-3.339 2.266-4.122 4.756l3.656 1.982c.799-2.355 2.218-3.963 4.041-4.509Z" fill="#45424D"/><path d="M155.567 88.33v29.386l-13.596 33.33c-.726 1.869-2.316 4.5-4.578 4.5-.405 0-.748-.099-1.034-.273-1.313-.797-1.427-3.173-.798-4.85l12.723-30.881V95.149c0-4.95 1.876-8.48 4.764-9.345a1.666 1.666 0 0 1 1.15.086c.745.327 1.369 1.174 1.369 2.44Z" fill="#74717A"/><path d="M136.358 155.273c-1.312-.797-1.426-3.173-.797-4.85l12.723-30.881V95.149c0-1.868.268-3.535.756-4.932m-12.682 65.056c.287.174.63.273 1.035.273 2.262 0 3.852-2.631 4.578-4.5l13.596-33.329V88.331c0-1.267-.624-2.114-1.369-2.44m-17.84 69.382-3.737-2.34c-1.158-.889-1.237-3.134-.635-4.738l12.723-30.882V92.921c0-1.719.227-3.266.643-4.59m8.846-2.44a1.667 1.667 0 0 0-1.15-.087c-1.798.539-3.203 2.11-4.008 4.413m5.158-4.327-3.539-2.213a1.672 1.672 0 0 0-1.185-.102c-1.886.565-3.34 2.266-4.122 4.756m3.688 1.886-3.688-1.886" stroke="#171321" stroke-width="2"/><path d="m55.975 130.576 47-27.211v17l-23.739 13.784-7.261 4.216v16c4.5-4 12.5-9 18.5-10 4.178-.696 7.25-.27 9.5.9 5.129 2.666 6 9.193 6 15.1v9.5c0 25.5-28 44.5-41 44.5-2.44 0-4.412-.586-6-1.553-5.183-3.156-6.256-10.364-6-14.447l16-9c1.5 4.5 4 7 10.5 4 4.122-1.903 7.401-5.911 9.138-10 .878-2.066 1.362-4.154 1.362-6v-7c0-8.5-5.5-7.5-8-6l-9.228 5.324-16.772 9.676v-48.789Z" fill="#fff"/><path d="m56.006 130.395 47-27.211-17-10-47 27.211 17 10ZM72.006 154.184c4.5-4 12.5-9 18.5-10 4.178-.696 7.25-.27 9.501.9l-17-10c-1.056-.549-2.293-.934-3.74-1.116l-7.26 4.216v16ZM52.975 199.684l-17-10 15.997-9.5 7 4.174 10.61 6.326-16.607 9Z" fill="#C5F4EC"/><path d="M68.975 189.365c1.5 4.5 4 7 10.5 4 4.122-1.903 7.401-5.911 9.138-10 0 0-4.138.866-12.638.866s-13-1.109-13-1.109a17.767 17.767 0 0 1-2.729 1.109l8.729 5.134Z" fill="#6FDAC9"/><path d="M55.974 130.575v48.79l16.773-9.677 9.228-5.323c2.5-1.5 8-2.5 8 6v7c0 1.846-.484 3.933-1.362 6 0 0-4.138.866-12.638.866s-13-1.109-13-1.109c5.113-2.613 8.838-8.446 9.772-13.434l-16.773 9.677-16.999-10v-48.79l17 10ZM52.974 198.365l-16.999-10c-.255 4.082.818 11.29 6 14.446l17 10.001c-5.183-3.156-6.256-10.364-6-14.447Z" fill="#10B1B1"/><path d="m103.006 103.184-47 27.211m47-27.211v17l-23.738 13.784m23.738-30.784-17-10-47 27.211m17 10v48.789m0-48.789-17-10m17 58.789-17-10v-48.789m17 58.789 16.773-9.676m-13.772 43.123c1.587.967 3.56 1.553 6 1.553 13 0 40.999-19 40.999-44.5v-9.5c0-5.907-.871-12.433-5.999-15.1m-41 67.547-17-10.001c-4.594-2.798-5.959-8.78-6.032-12.946m23.032 22.947c-4.595-2.798-5.96-8.781-6.032-12.947m47.032-54.6c-2.251-1.17-5.323-1.596-9.5-.9-6 1-14 6-18.5 10v-16l7.26-4.216m20.74 11.116-17-10c-1.056-.549-2.293-.934-3.74-1.116m-6.488 35.54 9.227-5.324c2.5-1.5 8-2.5 8 6v7c0 1.846-.484 3.934-1.362 6-1.737 4.089-5.015 8.097-9.138 10-5.735 2.647-8.356 1.012-9.924-2.5m3.197-21.176c-.934 4.987-4.659 10.82-9.772 13.433-.165.084-.332.166-.5.243-1.15.531-2.308.885-3.535 1.174m10.61 6.326-16.607 9m16.607-9-10.61-6.326m-5.997 15.326-17-10m0 0 15.997-9.5 7 4.174" stroke="#171321" stroke-width="2"/></svg>
\ No newline at end of file
diff --git a/public/-/error-illustrations/error-503-lg.svg b/public/-/error-illustrations/error-503-lg.svg
new file mode 100644
index 0000000000000000000000000000000000000000..d35c3b5417c82a22979916bb2262859fe795dc39
--- /dev/null
+++ b/public/-/error-illustrations/error-503-lg.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="288" height="288" fill="none" viewBox="0 0 288 288"><path d="M287.941 181.184c0 22.411-15.768 42.89-41.676 57.824-25.882 14.917-61.703 24.176-101.324 24.176-39.622 0-75.443-9.259-101.324-24.176C17.709 224.074 1.94 203.595 1.94 181.184v-18h286v18Z" fill="#AEA5D6" stroke="#171321" stroke-width="2"/><ellipse cx="144.941" cy="161.184" rx="144" ry="83" fill="#E7E4F2"/><path d="M54.573 225.626C22.45 210.498 1.94 187.473 1.94 161.684c0-45.563 64.023-82.5 143-82.5 78.976 0 143 36.937 143 82.5 0 45.564-64.024 82.5-143 82.5-29.827 0-57.52-5.268-80.438-14.279" stroke="#171321" stroke-width="2"/><path d="m203.076 53.6 47-27.416v16.5l-13.231 21.5-2.769 4.5c5.712-.714 9.895-.153 13.094 1.5 1.281.662 2.405 1.5 3.406 2.5 3.335 3.335 3.5 14.5 2.5 23.5s-5.334 16-9 21.5c-3.21 4.815-18 20.5-32 20.5-2.695 0-4.826-.617-6.5-1.629-5.283-3.195-6.007-10.321-5.5-14.371l16-9c1.5 8 7.5 5.5 11 3.5s7-5.5 8.5-9.5c.841-2.244.5-15 .5-15 0-6-7-5-9.5-3.5l-7.52 4.25-3.98 2.25v-14l17.5-28-29.5 17V53.601Z" fill="#fff"/><path d="m203.076 53.6 47-27.416-17-10-47 27.417 17 10ZM200.076 122.184l16-9-8.769-5.158-8.231-4.842-16 9 17 10ZM234.076 68.684c5.712-.714 9.895-.153 13.094 1.5l-10.325-6-2.769 4.5Z" fill="#C5F4EC"/><path d="m232.576 53.184-29.5 17-3.199-1.882-1.801 2.882 17 10 17.5-28ZM227.076 116.684c3.5-2 7-5.5 8.5-9.5 0 0-5.5.5-13 .5s-12.5-1-12.5-1c-.817.467-1.769.961-2.769 1.342l8.769 5.158c1.5 8 7.5 5.5 11 3.5Z" fill="#6FDAC9"/><path d="M203.076 70.184V53.601l-17-10v16.583l13.801 8.119 3.199 1.881ZM215.076 81.184v14l3.98-2.25 7.52-4.25c2.5-1.5 9.5-2.5 9.5 3.5 0 0 .341 12.756-.5 15 0 0-5.5.5-13 .5s-12.5-1-12.5-1c3.5-2 7-5.5 8.5-9.5.253-.675.399-2.304.48-4.25l-3.98 2.25-17-10v-14l17 10ZM205.576 136.555c-5.283-3.195-6.007-10.321-5.5-14.371l-17-10c-.522 4.175.263 11.617 6 14.654l16.5 9.717Z" fill="#10B1B1"/><path d="M203.076 53.6v16.584m0-16.583-17-10m17 10 38.865-22.672m-38.865 39.255 29.5-17-17.5 28m-12-11-3.199-1.882m15.199 12.882v14m0-14-17-10m17 24-17-10v-14m17 24 3.98-2.25m-2.98 20.25c1.5 8 7.5 5.5 11 3.5s7-5.5 8.5-9.5c.841-2.244.5-15 .5-15 0-6-7-5-9.5-3.5l-7.52 4.25m-2.98 20.25-16 9m16-9-8.769-5.158m-7.231 14.158c-.507 4.05.217 11.176 5.5 14.371m-5.5-14.371-17-10m3-68.583 47-27.417 17 10v16.5l-13.231 21.5m-50.769-20.583v16.583l13.801 8.118m-1.801 2.882 1.801-2.882m-16.801 43.882 16-9 8.231 4.842m-24.231 4.158c-.522 4.175.263 11.617 6 14.653l16.5 9.718m41.594-66.37c1.282.661 2.405 1.498 3.406 2.5 3.335 3.334 3.5 14.5 2.5 23.5-1 8.999-5.334 15.999-9 21.499-3.21 4.815-18 20.5-32 20.5-2.695 0-4.826-.617-6.5-1.629m41.594-66.37c-3.199-1.654-7.382-2.215-13.094-1.5l2.769-4.5m10.325 6-10.325-6m-29.538 43.841c1-.381 1.952-.875 2.769-1.342 3.5-2 7-5.5 8.5-9.5.253-.675.399-2.304.48-4.25" stroke="#171321" stroke-width="2"/><path d="M133.85 184.184c27.778 0 59.091-48.352 59.091-83.773 0-18.452-5.875-27.7-12.627-31.876-3.534-2.186-7.308-2.983-10.606-2.983-24.747 0-59.09 44.417-59.091 87.147 0 13.552 4.312 23.372 11.617 28.172 3.301 2.169 7.214 3.313 11.616 3.313Z" fill="#FFC2A8"/><path d="M110.617 152.576c0 13.552 4.312 23.372 11.617 28.171l-17.448-11.096c-7.443-4.744-11.845-14.626-11.845-28.32 0-13.253 3.303-26.668 8.6-38.871l17.658 11.289c-5.286 12.19-8.582 25.59-8.582 38.827Z" fill="#FF7B42"/><path d="M180.315 68.412c-3.535-2.187-7.309-2.983-10.606-2.983-17.081 0-38.734 21.16-50.51 48.32l-17.658-11.289c11.781-27.139 33.419-48.276 50.491-48.276 3.297 0 7.072.797 10.606 2.983l17.677 11.245Z" fill="#FF9D73"/><path d="m171.345 94.025-13.932 27.378c4.325 2.772 12.527 8.057 13.064 8.399 1.945 1.237 1.76 4.67.198 7.282-1.549 2.592-3.766 3.587-5.261 2.702l-13.244-8.465c-4.474 8.61-13.5 25.969-13.807 26.524-.763 1.381-2.791 4.188-5.034 3.042-1.644-.84-1.258-4.139-.431-5.604l13.903-27.378c-4.379-2.9-12.669-8.21-13.163-8.624-1.681-1.409-1.906-4.062-.644-6.586 1.573-3.148 3.947-4.499 5.755-3.425l13.469 8.602L166.36 90.44c1.031-1.81 3.036-3.237 4.647-2.212 1.611 1.025 1.302 3.811.338 5.797Z" fill="#171321"/><path d="M180.314 68.535c-3.534-2.186-7.308-2.983-10.606-2.983-17.093 0-38.763 21.19-50.534 48.377m61.14-45.394c6.752 4.176 12.627 13.424 12.627 31.876 0 35.421-31.313 83.773-59.091 83.773-4.402 0-8.315-1.144-11.616-3.314m58.08-112.335L162.638 57.29c-3.535-2.186-7.309-2.983-10.606-2.983-17.057 0-38.673 21.1-50.46 48.205m20.662 78.358c-7.305-4.8-11.617-14.619-11.617-28.171 0-13.217 3.286-26.595 8.557-38.77m3.06 66.941-17.448-11.096c-7.443-4.745-11.845-14.627-11.845-28.32 0-13.279 3.316-26.721 8.631-38.942m17.602 11.417-17.602-11.417" stroke="#171321" stroke-width="2"/><path d="m55.975 135.576 47-27.211v17l-23.739 13.784-7.261 4.216v16c4.5-4 12.5-9 18.5-10 4.178-.696 7.25-.27 9.5.9 5.129 2.666 6 9.193 6 15.1v9.5c0 25.5-28 44.5-41 44.5-2.44 0-4.412-.586-6-1.553-5.183-3.156-6.256-10.364-6-14.447l16-9c1.5 4.5 4 7 10.5 4 4.122-1.903 7.401-5.911 9.138-10 .878-2.066 1.362-4.154 1.362-6v-7c0-8.5-5.5-7.5-8-6l-9.228 5.324-16.772 9.676v-48.789Z" fill="#fff"/><path d="m56.006 135.395 47-27.211-17-10-47 27.211 17 10ZM72.006 159.184c4.5-4 12.5-9 18.5-10 4.178-.696 7.25-.27 9.501.9l-17-10c-1.056-.549-2.293-.934-3.74-1.116l-7.26 4.216v16ZM52.975 204.684l-17-10 15.997-9.5 7 4.174 10.61 6.326-16.607 9Z" fill="#C5F4EC"/><path d="M68.975 194.365c1.5 4.5 4 7 10.5 4 4.122-1.903 7.401-5.911 9.138-10 0 0-4.138.866-12.638.866s-13-1.109-13-1.109a17.767 17.767 0 0 1-2.729 1.109l8.729 5.134Z" fill="#6FDAC9"/><path d="M55.974 135.575v48.79l16.773-9.677 9.228-5.323c2.5-1.5 8-2.5 8 6v7c0 1.846-.484 3.933-1.362 6 0 0-4.138.866-12.638.866s-13-1.109-13-1.109c5.113-2.613 8.838-8.446 9.772-13.434l-16.773 9.677-16.999-10v-48.79l17 10ZM52.974 203.365l-16.999-10c-.255 4.082.818 11.29 6 14.446l17 10.001c-5.183-3.156-6.256-10.364-6-14.447Z" fill="#10B1B1"/><path d="m103.006 108.184-47 27.211m47-27.211v17l-23.738 13.784m23.738-30.784-17-10-47 27.211m17 10v48.789m0-48.789-17-10m17 58.789-17-10v-48.789m17 58.789 16.773-9.676m-13.772 43.123c1.587.967 3.56 1.553 6 1.553 13 0 40.999-19 40.999-44.5v-9.5c0-5.907-.871-12.433-5.999-15.1m-41 67.547-17-10.001c-4.594-2.798-5.959-8.78-6.032-12.946m23.032 22.947c-4.595-2.798-5.96-8.781-6.032-12.947m47.032-54.6c-2.251-1.17-5.323-1.596-9.5-.9-6 1-14 6-18.5 10v-16l7.26-4.216m20.74 11.116-17-10c-1.056-.549-2.293-.934-3.74-1.116m-6.488 35.54 9.227-5.324c2.5-1.5 8-2.5 8 6v7c0 1.846-.484 3.934-1.362 6-1.737 4.089-5.015 8.097-9.138 10-5.735 2.647-8.356 1.012-9.924-2.5m3.197-21.176c-.934 4.987-4.659 10.82-9.772 13.433-.165.084-.332.166-.5.243-1.15.531-2.308.885-3.535 1.174m10.61 6.326-16.607 9m16.607-9-10.61-6.326m-5.997 15.326-17-10m0 0 15.997-9.5 7 4.174" stroke="#171321" stroke-width="2"/></svg>
\ No newline at end of file
diff --git a/public/404.html b/public/404.html
index 847476683e04dc4c225b42ef597476f2eca03eb7..4313eac14827c60868c5a0fa99380bde31ba59f2 100644
--- a/public/404.html
+++ b/public/404.html
@@ -5,80 +5,60 @@
   <title>The page you're looking for could not be found (404)</title>
   <style>
     body {
-      color: #666;
+      color: #333238;
       text-align: center;
-      font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
-      margin: auto;
-      font-size: 14px;
+      font-family: "Nunito Sans", -apple-system, ".SFNSText-Regular", "San Francisco", BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", Helvetica, Arial, sans-serif;
     }
 
     h1 {
-      font-size: 56px;
-      line-height: 100px;
-      font-weight: 400;
-      color: #456;
-    }
-
-    h2 {
-      font-size: 24px;
-      color: #666;
-      line-height: 1.5em;
+      font-size: 1.75rem;
+      line-height: 2.25rem;
+      margin: 1rem 0;
     }
 
-    h3 {
-      color: #456;
-      font-size: 20px;
-      font-weight: 400;
-      line-height: 28px;
-    }
-
-    hr {
-      max-width: 800px;
-      margin: 18px auto;
-      border: 0;
-      border-top: 1px solid #EEE;
-      border-bottom: 1px solid white;
+    p {
+      margin-bottom: .5rem;
     }
 
     img {
-      max-width: 40vw;
       display: block;
-      margin: 40px auto;
+      margin: 0 auto;
     }
 
     a {
-      line-height: 100px;
-      font-weight: 400;
-      color: #4A8BEE;
-      font-size: 18px;
       text-decoration: none;
+      color: #1068bf;
     }
 
-    .container {
-      margin: auto 20px;
+    a:hover {
+      text-decoration: underline;
+    }
+
+    .error-container {
+      max-width: 65ch;
+      margin: auto;
+      padding: 1rem 0;
+    }
+
+    .action-container {
+      margin-top: 1.5rem;
     }
 
     .go-back {
       display: none;
     }
-
   </style>
 </head>
 
 <body>
-  <a href="/">
-    <img src='data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjAwIiBoZWlnaHQ9IjE5MiIgdmlld0JveD0iMCAwIDI1IDI0IiBmaWxsPSJub25lIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPgogIDxwYXRoIGQ9Im0yNC41MDcgOS41LS4wMzQtLjA5TDIxLjA4Mi41NjJhLjg5Ni44OTYgMCAwIDAtMS42OTQuMDkxbC0yLjI5IDcuMDFINy44MjVMNS41MzUuNjUzYS44OTguODk4IDAgMCAwLTEuNjk0LS4wOUwuNDUxIDkuNDExLjQxNiA5LjVhNi4yOTcgNi4yOTcgMCAwIDAgMi4wOSA3LjI3OGwuMDEyLjAxLjAzLjAyMiA1LjE2IDMuODY3IDIuNTYgMS45MzUgMS41NTQgMS4xNzZhMS4wNTEgMS4wNTEgMCAwIDAgMS4yNjggMGwxLjU1NS0xLjE3NiAyLjU2LTEuOTM1IDUuMTk3LTMuODkuMDE0LS4wMUE2LjI5NyA2LjI5NyAwIDAgMCAyNC41MDcgOS41WiIKICAgICAgICBmaWxsPSIjRTI0MzI5Ii8+CiAgPHBhdGggZD0ibTI0LjUwNyA5LjUtLjAzNC0uMDlhMTEuNDQgMTEuNDQgMCAwIDAtNC41NiAyLjA1MWwtNy40NDcgNS42MzIgNC43NDIgMy41ODQgNS4xOTctMy44OS4wMTQtLjAxQTYuMjk3IDYuMjk3IDAgMCAwIDI0LjUwNyA5LjVaIgogICAgICAgIGZpbGw9IiNGQzZEMjYiLz4KICA8cGF0aCBkPSJtNy43MDcgMjAuNjc3IDIuNTYgMS45MzUgMS41NTUgMS4xNzZhMS4wNTEgMS4wNTEgMCAwIDAgMS4yNjggMGwxLjU1NS0xLjE3NiAyLjU2LTEuOTM1LTQuNzQzLTMuNTg0LTQuNzU1IDMuNTg0WiIKICAgICAgICBmaWxsPSIjRkNBMzI2Ii8+CiAgPHBhdGggZD0iTTUuMDEgMTEuNDYxYTExLjQzIDExLjQzIDAgMCAwLTQuNTYtMi4wNUwuNDE2IDkuNWE2LjI5NyA2LjI5NyAwIDAgMCAyLjA5IDcuMjc4bC4wMTIuMDEuMDMuMDIyIDUuMTYgMy44NjcgNC43NDUtMy41ODQtNy40NDQtNS42MzJaIgogICAgICAgIGZpbGw9IiNGQzZEMjYiLz4KPC9zdmc+Cg==' alt="GitLab"/>
-  </a>
-  <h1>
-    404
-  </h1>
-  <div class="container">
-    <h3>The page could not be found or you don't have permission to view it.</h3>
-    <hr />
-    <p>The resource that you are attempting to access does not exist or you don't have the necessary permissions to view it.</p>
-    <p>Make sure the address is correct and that the page hasn't moved.</p>
+  <div class="error-container">
+    <img src='./-/error-illustrations/error-404-lg.svg' alt="404 error"/>
+    <h1>404: Page not found</h1>
+    <p>Make sure the address is correct and the page has not moved.</p>
     <p>Please contact your GitLab administrator if you think this is a mistake.</p>
-    <a href="javascript:history.back()" class="js-go-back go-back">Go back</a>
+    <div class="action-container">
+      <a href="javascript:history.back()" class="js-go-back go-back">Go back</a>
+    </div>
   </div>
   <script>
     (function () {
diff --git a/public/422.html b/public/422.html
index aaea6fe4f5e24eb2bdb00c9842cff34b2179e61c..8713d471fc2df3862e5b7e4878b7bde26a590a14 100644
--- a/public/422.html
+++ b/public/422.html
@@ -5,79 +5,60 @@
   <title>The change you requested was rejected (422)</title>
   <style>
     body {
-      color: #666;
+      color: #333238;
       text-align: center;
-      font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
-      margin: auto;
-      font-size: 14px;
+      font-family: "Nunito Sans", -apple-system, ".SFNSText-Regular", "San Francisco", BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", Helvetica, Arial, sans-serif;
     }
 
     h1 {
-      font-size: 56px;
-      line-height: 100px;
-      font-weight: 400;
-      color: #456;
-    }
-
-    h2 {
-      font-size: 24px;
-      color: #666;
-      line-height: 1.5em;
+      font-size: 1.75rem;
+      line-height: 2.25rem;
+      margin: 1rem 0;
     }
 
-    h3 {
-      color: #456;
-      font-size: 20px;
-      font-weight: 400;
-      line-height: 28px;
-    }
-
-    hr {
-      max-width: 800px;
-      margin: 18px auto;
-      border: 0;
-      border-top: 1px solid #EEE;
-      border-bottom: 1px solid white;
+    p {
+      margin-bottom: .5rem;
     }
 
     img {
-      max-width: 40vw;
       display: block;
-      margin: 40px auto;
+      margin: 0 auto;
     }
 
     a {
-      line-height: 100px;
-      font-weight: 400;
-      color: #4A8BEE;
-      font-size: 18px;
       text-decoration: none;
+      color: #1068bf;
     }
 
-    .container {
-      margin: auto 20px;
+    a:hover {
+      text-decoration: underline;
+    }
+
+    .error-container {
+      max-width: 65ch;
+      margin: auto;
+      padding: 1rem 0;
+    }
+
+    .action-container {
+      margin-top: 1.5rem;
     }
 
     .go-back {
       display: none;
     }
-
   </style>
 </head>
 
 <body>
-  <a href="/">
-    <img src='data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjAwIiBoZWlnaHQ9IjE5MiIgdmlld0JveD0iMCAwIDI1IDI0IiBmaWxsPSJub25lIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPgogIDxwYXRoIGQ9Im0yNC41MDcgOS41LS4wMzQtLjA5TDIxLjA4Mi41NjJhLjg5Ni44OTYgMCAwIDAtMS42OTQuMDkxbC0yLjI5IDcuMDFINy44MjVMNS41MzUuNjUzYS44OTguODk4IDAgMCAwLTEuNjk0LS4wOUwuNDUxIDkuNDExLjQxNiA5LjVhNi4yOTcgNi4yOTcgMCAwIDAgMi4wOSA3LjI3OGwuMDEyLjAxLjAzLjAyMiA1LjE2IDMuODY3IDIuNTYgMS45MzUgMS41NTQgMS4xNzZhMS4wNTEgMS4wNTEgMCAwIDAgMS4yNjggMGwxLjU1NS0xLjE3NiAyLjU2LTEuOTM1IDUuMTk3LTMuODkuMDE0LS4wMUE2LjI5NyA2LjI5NyAwIDAgMCAyNC41MDcgOS41WiIKICAgICAgICBmaWxsPSIjRTI0MzI5Ii8+CiAgPHBhdGggZD0ibTI0LjUwNyA5LjUtLjAzNC0uMDlhMTEuNDQgMTEuNDQgMCAwIDAtNC41NiAyLjA1MWwtNy40NDcgNS42MzIgNC43NDIgMy41ODQgNS4xOTctMy44OS4wMTQtLjAxQTYuMjk3IDYuMjk3IDAgMCAwIDI0LjUwNyA5LjVaIgogICAgICAgIGZpbGw9IiNGQzZEMjYiLz4KICA8cGF0aCBkPSJtNy43MDcgMjAuNjc3IDIuNTYgMS45MzUgMS41NTUgMS4xNzZhMS4wNTEgMS4wNTEgMCAwIDAgMS4yNjggMGwxLjU1NS0xLjE3NiAyLjU2LTEuOTM1LTQuNzQzLTMuNTg0LTQuNzU1IDMuNTg0WiIKICAgICAgICBmaWxsPSIjRkNBMzI2Ii8+CiAgPHBhdGggZD0iTTUuMDEgMTEuNDYxYTExLjQzIDExLjQzIDAgMCAwLTQuNTYtMi4wNUwuNDE2IDkuNWE2LjI5NyA2LjI5NyAwIDAgMCAyLjA5IDcuMjc4bC4wMTIuMDEuMDMuMDIyIDUuMTYgMy44NjcgNC43NDUtMy41ODQtNy40NDQtNS42MzJaIgogICAgICAgIGZpbGw9IiNGQzZEMjYiLz4KPC9zdmc+Cg==' alt="GitLab"/>
-  </a>
-  <h1>
-    422
-  </h1>
-  <div class="container">
-    <h3>The change you requested was rejected.</h3>
-    <hr />
+  <div class="error-container">
+    <img src='./-/error-illustrations/error-422-lg.svg' alt="422 error"/>
+    <h1>422: The change you requested was rejected</h1>
     <p>Make sure you have access to the thing you tried to change.</p>
     <p>Please contact your GitLab administrator if you think this is a mistake.</p>
-    <a href="javascript:history.back()" class="js-go-back go-back">Go back</a>
+    <div class="action-container">
+      <a href="javascript:history.back()" class="js-go-back go-back">Go back</a>
+    </div>
   </div>
   <script>
     (function () {
diff --git a/public/500.html b/public/500.html
index 56af1654ed726650b03cf37a644b09f7a453cdfa..93a09b9f649f4c4f3a7046ca30c3caeef1ed8074 100644
--- a/public/500.html
+++ b/public/500.html
@@ -5,80 +5,61 @@
   <title>Something went wrong (500)</title>
   <style>
     body {
-      color: #666;
+      color: #333238;
       text-align: center;
-      font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
-      margin: auto;
-      font-size: 14px;
+      font-family: "Nunito Sans", -apple-system, ".SFNSText-Regular", "San Francisco", BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", Helvetica, Arial, sans-serif;
     }
 
     h1 {
-      font-size: 56px;
-      line-height: 100px;
-      font-weight: 400;
-      color: #456;
-    }
-
-    h2 {
-      font-size: 24px;
-      color: #666;
-      line-height: 1.5em;
+      font-size: 1.75rem;
+      line-height: 2.25rem;
+      margin: 1rem 0;
     }
 
-    h3 {
-      color: #456;
-      font-size: 20px;
-      font-weight: 400;
-      line-height: 28px;
-    }
-
-    hr {
-      max-width: 800px;
-      margin: 18px auto;
-      border: 0;
-      border-top: 1px solid #EEE;
-      border-bottom: 1px solid white;
+    p {
+      margin-bottom: .5rem;
     }
 
     img {
-      max-width: 40vw;
       display: block;
-      margin: 40px auto;
+      margin: 0 auto;
     }
 
     a {
-      line-height: 100px;
-      font-weight: 400;
-      color: #4A8BEE;
-      font-size: 18px;
       text-decoration: none;
+      color: #1068bf;
     }
 
-    .container {
-      margin: auto 20px;
+    a:hover {
+      text-decoration: underline;
+    }
+
+    .error-container {
+      max-width: 65ch;
+      margin: auto;
+      padding: 1rem 0;
+    }
+
+    .action-container {
+      margin-top: 1.5rem;
     }
 
     .go-back {
       display: none;
     }
-
   </style>
 </head>
 
 <body>
-  <a href="/">
-    <img src='data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjAwIiBoZWlnaHQ9IjE5MiIgdmlld0JveD0iMCAwIDI1IDI0IiBmaWxsPSJub25lIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPgogIDxwYXRoIGQ9Im0yNC41MDcgOS41LS4wMzQtLjA5TDIxLjA4Mi41NjJhLjg5Ni44OTYgMCAwIDAtMS42OTQuMDkxbC0yLjI5IDcuMDFINy44MjVMNS41MzUuNjUzYS44OTguODk4IDAgMCAwLTEuNjk0LS4wOUwuNDUxIDkuNDExLjQxNiA5LjVhNi4yOTcgNi4yOTcgMCAwIDAgMi4wOSA3LjI3OGwuMDEyLjAxLjAzLjAyMiA1LjE2IDMuODY3IDIuNTYgMS45MzUgMS41NTQgMS4xNzZhMS4wNTEgMS4wNTEgMCAwIDAgMS4yNjggMGwxLjU1NS0xLjE3NiAyLjU2LTEuOTM1IDUuMTk3LTMuODkuMDE0LS4wMUE2LjI5NyA2LjI5NyAwIDAgMCAyNC41MDcgOS41WiIKICAgICAgICBmaWxsPSIjRTI0MzI5Ii8+CiAgPHBhdGggZD0ibTI0LjUwNyA5LjUtLjAzNC0uMDlhMTEuNDQgMTEuNDQgMCAwIDAtNC41NiAyLjA1MWwtNy40NDcgNS42MzIgNC43NDIgMy41ODQgNS4xOTctMy44OS4wMTQtLjAxQTYuMjk3IDYuMjk3IDAgMCAwIDI0LjUwNyA5LjVaIgogICAgICAgIGZpbGw9IiNGQzZEMjYiLz4KICA8cGF0aCBkPSJtNy43MDcgMjAuNjc3IDIuNTYgMS45MzUgMS41NTUgMS4xNzZhMS4wNTEgMS4wNTEgMCAwIDAgMS4yNjggMGwxLjU1NS0xLjE3NiAyLjU2LTEuOTM1LTQuNzQzLTMuNTg0LTQuNzU1IDMuNTg0WiIKICAgICAgICBmaWxsPSIjRkNBMzI2Ii8+CiAgPHBhdGggZD0iTTUuMDEgMTEuNDYxYTExLjQzIDExLjQzIDAgMCAwLTQuNTYtMi4wNUwuNDE2IDkuNWE2LjI5NyA2LjI5NyAwIDAgMCAyLjA5IDcuMjc4bC4wMTIuMDEuMDMuMDIyIDUuMTYgMy44NjcgNC43NDUtMy41ODQtNy40NDQtNS42MzJaIgogICAgICAgIGZpbGw9IiNGQzZEMjYiLz4KPC9zdmc+Cg==' alt="GitLab"/>
-  </a>
-  <h1>
-    500
-  </h1>
-  <div class="container">
-    <h3>We're sorry. Something went wrong on our end.</h3>
-    <hr />
+  <div class="error-container">
+    <img src='./-/error-illustrations/error-500-lg.svg' alt="500 error"/>
+    <h1>500: We're sorry, something went wrong on our end</h1>
     <!-- REQUEST_ID -->
     <p>Try refreshing the page, or going back and attempting the action again.</p>
     <p>Please contact your GitLab administrator if this problem persists.</p>
-    <a href="javascript:history.back()" class="js-go-back go-back">Go back</a>
+    <div class="action-container">
+      <a href="javascript:history.back()" class="js-go-back go-back">Go back</a>
+    </div>
   </div>
   <script>
     (function () {
diff --git a/public/502.html b/public/502.html
index 5c2af3498b9678a2c87164d458de7433584c5ef0..876e74d0009ed3e64b92c22656898449566d90df 100644
--- a/public/502.html
+++ b/public/502.html
@@ -5,87 +5,77 @@
   <title>Waiting for GitLab to boot</title>
   <style>
     body {
-      color: #666;
+      color: #333238;
       text-align: center;
-      font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
-      margin: auto;
-      font-size: 14px;
+      font-family: "Nunito Sans", -apple-system, ".SFNSText-Regular", "San Francisco", BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", Helvetica, Arial, sans-serif;
     }
 
     h1 {
-      font-size: 56px;
-      line-height: 100px;
-      font-weight: 400;
-      color: #456;
-    }
-
-    h2 {
-      font-size: 24px;
-      color: #666;
-      line-height: 1.5em;
-    }
-
-    h3 {
-      color: #456;
-      font-size: 20px;
-      font-weight: 400;
-      line-height: 28px;
+      font-size: 1.75rem;
+      line-height: 2.25rem;
+      margin: 1rem 0;
     }
 
-    hr {
-      max-width: 800px;
-      margin: 18px auto;
-      border: 0;
-      border-top: 1px solid #EEE;
-      border-bottom: 1px solid white;
+    p {
+      margin-bottom: .5rem;
     }
 
     img {
-      max-width: 40vw;
       display: block;
-      margin: 40px auto;
+      margin: 0 auto;
     }
 
     a {
-      line-height: 100px;
-      font-weight: 400;
-      color: #4A8BEE;
-      font-size: 18px;
       text-decoration: none;
+      color: #1068bf;
+    }
+
+    a:hover {
+      text-decoration: underline;
+    }
+
+    .error-container {
+      max-width: 65ch;
+      margin: auto;
+      padding: 1rem 0;
     }
 
-    .container {
-      margin: auto 20px;
+    .action-container {
+      margin-top: 1.5rem;
     }
 
     .go-back {
       display: none;
     }
 
+    .footer {
+      margin: 1rem 0 0 0;
+      padding: 1rem 0 0 0;
+      border-top: 1px solid #dcdcde;
+      color: #737278;
+      font-size: 0.75rem;
+    }
+    .footer p {
+      margin: 0;
+    }
   </style>
 </head>
 
 <body>
-  <a href="/">
-    <img src='data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjAwIiBoZWlnaHQ9IjE5MiIgdmlld0JveD0iMCAwIDI1IDI0IiBmaWxsPSJub25lIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPgogIDxwYXRoIGQ9Im0yNC41MDcgOS41LS4wMzQtLjA5TDIxLjA4Mi41NjJhLjg5Ni44OTYgMCAwIDAtMS42OTQuMDkxbC0yLjI5IDcuMDFINy44MjVMNS41MzUuNjUzYS44OTguODk4IDAgMCAwLTEuNjk0LS4wOUwuNDUxIDkuNDExLjQxNiA5LjVhNi4yOTcgNi4yOTcgMCAwIDAgMi4wOSA3LjI3OGwuMDEyLjAxLjAzLjAyMiA1LjE2IDMuODY3IDIuNTYgMS45MzUgMS41NTQgMS4xNzZhMS4wNTEgMS4wNTEgMCAwIDAgMS4yNjggMGwxLjU1NS0xLjE3NiAyLjU2LTEuOTM1IDUuMTk3LTMuODkuMDE0LS4wMUE2LjI5NyA2LjI5NyAwIDAgMCAyNC41MDcgOS41WiIKICAgICAgICBmaWxsPSIjRTI0MzI5Ii8+CiAgPHBhdGggZD0ibTI0LjUwNyA5LjUtLjAzNC0uMDlhMTEuNDQgMTEuNDQgMCAwIDAtNC41NiAyLjA1MWwtNy40NDcgNS42MzIgNC43NDIgMy41ODQgNS4xOTctMy44OS4wMTQtLjAxQTYuMjk3IDYuMjk3IDAgMCAwIDI0LjUwNyA5LjVaIgogICAgICAgIGZpbGw9IiNGQzZEMjYiLz4KICA8cGF0aCBkPSJtNy43MDcgMjAuNjc3IDIuNTYgMS45MzUgMS41NTUgMS4xNzZhMS4wNTEgMS4wNTEgMCAwIDAgMS4yNjggMGwxLjU1NS0xLjE3NiAyLjU2LTEuOTM1LTQuNzQzLTMuNTg0LTQuNzU1IDMuNTg0WiIKICAgICAgICBmaWxsPSIjRkNBMzI2Ii8+CiAgPHBhdGggZD0iTTUuMDEgMTEuNDYxYTExLjQzIDExLjQzIDAgMCAwLTQuNTYtMi4wNUwuNDE2IDkuNWE2LjI5NyA2LjI5NyAwIDAgMCAyLjA5IDcuMjc4bC4wMTIuMDEuMDMuMDIyIDUuMTYgMy44NjcgNC43NDUtMy41ODQtNy40NDQtNS42MzJaIgogICAgICAgIGZpbGw9IiNGQzZEMjYiLz4KPC9zdmc+Cg==' alt="GitLab"/>
-  </a>
-
-  <h1>Waiting for GitLab to boot</h1>
-  <h2>HTTP 502</h2>
-
-  <div class="container">
+  <div class="error-container">
+    <img src='./-/error-illustrations/error-502-lg.svg' alt="502 error"/>
+    <h1>HTTP 502: Waiting for GitLab to boot</h1>
     <p>It can take up to a few minutes for GitLab to boot completely.</p>
     <p>This page will automatically reload every 5 seconds.</p>
+    <div class="action-container">
+      <a href="javascript:history.back()" class="js-go-back go-back">Go back</a>
+    </div>
 
-    <a href="javascript:history.back()" class="js-go-back go-back">Go back</a>
+    <div class="footer">
+      <p>Refreshed at <span id="refreshedAt"></span></p>
+    </div>
   </div>
 
-  <hr/>
-
-  <footer>
-    <p>Refreshed at <span id="refreshedAt"></span></p>
-  </footer>
-
   <script>
     const now = new Date();
     const refreshedAt = now.toLocaleTimeString();
diff --git a/public/503.html b/public/503.html
index 2f09c7a15e148261108d974e94ea6668ed4d7761..a3568727efc32567959b2c46a96dd74bc6056848 100644
--- a/public/503.html
+++ b/public/503.html
@@ -5,79 +5,60 @@
   <title>GitLab is not responding (503)</title>
   <style>
     body {
-      color: #666;
+      color: #333238;
       text-align: center;
-      font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
-      margin: auto;
-      font-size: 14px;
+      font-family: "Nunito Sans", -apple-system, ".SFNSText-Regular", "San Francisco", BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", Helvetica, Arial, sans-serif;
     }
 
     h1 {
-      font-size: 56px;
-      line-height: 100px;
-      font-weight: 400;
-      color: #456;
-    }
-
-    h2 {
-      font-size: 24px;
-      color: #666;
-      line-height: 1.5em;
+      font-size: 1.75rem;
+      line-height: 2.25rem;
+      margin: 1rem 0;
     }
 
-    h3 {
-      color: #456;
-      font-size: 20px;
-      font-weight: 400;
-      line-height: 28px;
-    }
-
-    hr {
-      max-width: 800px;
-      margin: 18px auto;
-      border: 0;
-      border-top: 1px solid #EEE;
-      border-bottom: 1px solid white;
+    p {
+      margin-bottom: .5rem;
     }
 
     img {
-      max-width: 40vw;
       display: block;
-      margin: 40px auto;
+      margin: 0 auto;
     }
 
     a {
-      line-height: 100px;
-      font-weight: 400;
-      color: #4A8BEE;
-      font-size: 18px;
       text-decoration: none;
+      color: #1068bf;
     }
 
-    .container {
-      margin: auto 20px;
+    a:hover {
+      text-decoration: underline;
+    }
+
+    .error-container {
+      max-width: 65ch;
+      margin: auto;
+      padding: 1rem 0;
+    }
+
+    .action-container {
+      margin-top: 1.5rem;
     }
 
     .go-back {
       display: none;
     }
-
   </style>
 </head>
 
 <body>
-  <a href="/">
-    <img src='data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjAwIiBoZWlnaHQ9IjE5MiIgdmlld0JveD0iMCAwIDI1IDI0IiBmaWxsPSJub25lIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPgogIDxwYXRoIGQ9Im0yNC41MDcgOS41LS4wMzQtLjA5TDIxLjA4Mi41NjJhLjg5Ni44OTYgMCAwIDAtMS42OTQuMDkxbC0yLjI5IDcuMDFINy44MjVMNS41MzUuNjUzYS44OTguODk4IDAgMCAwLTEuNjk0LS4wOUwuNDUxIDkuNDExLjQxNiA5LjVhNi4yOTcgNi4yOTcgMCAwIDAgMi4wOSA3LjI3OGwuMDEyLjAxLjAzLjAyMiA1LjE2IDMuODY3IDIuNTYgMS45MzUgMS41NTQgMS4xNzZhMS4wNTEgMS4wNTEgMCAwIDAgMS4yNjggMGwxLjU1NS0xLjE3NiAyLjU2LTEuOTM1IDUuMTk3LTMuODkuMDE0LS4wMUE2LjI5NyA2LjI5NyAwIDAgMCAyNC41MDcgOS41WiIKICAgICAgICBmaWxsPSIjRTI0MzI5Ii8+CiAgPHBhdGggZD0ibTI0LjUwNyA5LjUtLjAzNC0uMDlhMTEuNDQgMTEuNDQgMCAwIDAtNC41NiAyLjA1MWwtNy40NDcgNS42MzIgNC43NDIgMy41ODQgNS4xOTctMy44OS4wMTQtLjAxQTYuMjk3IDYuMjk3IDAgMCAwIDI0LjUwNyA5LjVaIgogICAgICAgIGZpbGw9IiNGQzZEMjYiLz4KICA8cGF0aCBkPSJtNy43MDcgMjAuNjc3IDIuNTYgMS45MzUgMS41NTUgMS4xNzZhMS4wNTEgMS4wNTEgMCAwIDAgMS4yNjggMGwxLjU1NS0xLjE3NiAyLjU2LTEuOTM1LTQuNzQzLTMuNTg0LTQuNzU1IDMuNTg0WiIKICAgICAgICBmaWxsPSIjRkNBMzI2Ii8+CiAgPHBhdGggZD0iTTUuMDEgMTEuNDYxYTExLjQzIDExLjQzIDAgMCAwLTQuNTYtMi4wNUwuNDE2IDkuNWE2LjI5NyA2LjI5NyAwIDAgMCAyLjA5IDcuMjc4bC4wMTIuMDEuMDMuMDIyIDUuMTYgMy44NjcgNC43NDUtMy41ODQtNy40NDQtNS42MzJaIgogICAgICAgIGZpbGw9IiNGQzZEMjYiLz4KPC9zdmc+Cg==' alt="GitLab"/>
-  </a>
-  <h1>
-    503
-  </h1>
-  <div class="container">
-    <h3>We're sorry. GitLab is currently unavailable.</h3>
-    <hr />
+  <div class="error-container">
+    <img src='./-/error-illustrations/error-503-lg.svg' alt="503 error"/>
+    <h1>503: We're sorry, GitLab is currently unavailable</h1>
     <p>Try refreshing the page, or going back and attempting the action again.</p>
     <p>Please contact your GitLab administrator if this problem persists.</p>
-    <a href="javascript:history.back()" class="js-go-back go-back">Go back</a>
+    <div class="action-container">
+      <a href="javascript:history.back()" class="js-go-back go-back">Go back</a>
+    </div>
   </div>
   <script>
     (function () {
diff --git a/qa/qa/specs/features/browser_ui/9_data_stores/cells/demo3_spec.rb b/qa/qa/specs/features/browser_ui/9_data_stores/cells/demo3_spec.rb
index ee6fe03f935d26a522aa5d6b77d294846093ddae..fab66663e1a19ac6c709cc7cf9eb3182f9b97992 100644
--- a/qa/qa/specs/features/browser_ui/9_data_stores/cells/demo3_spec.rb
+++ b/qa/qa/specs/features/browser_ui/9_data_stores/cells/demo3_spec.rb
@@ -68,7 +68,7 @@ def create_project(group_name, project_name)
 
         # Cell 1 project does not show
         page.visit "#{cell2_url}#{cell1_group_name}/#{cell1_project_name}"
-        expect(page).to have_text('Page Not Found')
+        expect(page).to have_text('Page not found')
 
         page.visit cell2_url
         Page::Main::Menu.perform(&:go_to_groups)
@@ -112,7 +112,7 @@ def create_project(group_name, project_name)
 
         # Cell 2 Project does not show
         page.visit "#{cell1_url}#{cell2_group_name}/#{cell2_project_name}"
-        expect(page).to have_text('Page Not Found')
+        expect(page).to have_text('Page not found')
 
         # Visit Cell 2
         page.visit cell2_url
@@ -127,7 +127,7 @@ def create_project(group_name, project_name)
 
         # Cell 1 project does not show
         page.visit "#{cell2_url}#{cell1_group_name}/#{cell1_project_name}"
-        expect(page).to have_text('Page Not Found')
+        expect(page).to have_text('Page not found')
 
         # Cell 2 group does show
         page.visit cell2_url
diff --git a/qa/qa/specs/features/ee/browser_ui/10_govern/group/restrict_by_ip_address_spec.rb b/qa/qa/specs/features/ee/browser_ui/10_govern/group/restrict_by_ip_address_spec.rb
index 8a60cc58479957449aa19aecaab67d110ecd60b4..55d2b21c5fb0f7553dd74b9655f971bc7b13d296 100644
--- a/qa/qa/specs/features/ee/browser_ui/10_govern/group/restrict_by_ip_address_spec.rb
+++ b/qa/qa/specs/features/ee/browser_ui/10_govern/group/restrict_by_ip_address_spec.rb
@@ -41,11 +41,11 @@ module QA
             Flow::Login.sign_in(as: user)
 
             group.sandbox.visit!(skip_resp_code_check: true)
-            expect(page).to have_text('Page Not Found')
+            expect(page).to have_text('Page not found')
             page.go_back
 
             group.visit!(skip_resp_code_check: true)
-            expect(page).to have_text('Page Not Found')
+            expect(page).to have_text('Page not found')
             page.go_back
           end
         end
diff --git a/qa/qa/support/page_error_checker.rb b/qa/qa/support/page_error_checker.rb
index 1d791a83037cecde8cfb1cae1e0215a7ba00f7b0..90fc2644435e5e93099faf072941193fa599b7f0 100644
--- a/qa/qa/support/page_error_checker.rb
+++ b/qa/qa/support/page_error_checker.rb
@@ -37,7 +37,7 @@ def return_chrome_errors(page, error_code)
           if severe_errors.none?
             status_code_report(error_code)
           else
-            "There #{severe_errors.count == 1 ? 'was' : 'were'} #{severe_errors.count} "\
+            "There #{severe_errors.count == 1 ? 'was' : 'were'} #{severe_errors.count} " \
               "SEVERE level error#{severe_errors.count == 1 ? '' : 's'}:\n\n#{error_report_for(severe_errors)}"
           end
         end
@@ -51,7 +51,8 @@ def check_page_for_error_code(page)
           QA::Runtime::Logger.debug "Performing page error check!"
 
           # Test for 404 img alt
-          return report!(page, 404) if page_html(page).xpath("//img").map { |t| t[:alt] }.first.eql?('404')
+          error_code = page_html(page).xpath("//img").map { |t| t[:alt] }.first
+          return report!(page, 404) if error_code && error_code.include?('404')
 
           # 500 error page in header surrounded by newlines, try to match
           five_hundred_test = page_html(page).xpath("//h1/text()").map.first
@@ -67,6 +68,7 @@ def check_page_for_error_code(page)
 
           QA::Runtime::Logger.error("Page error check raised error `#{e.class}`: #{e.message}")
         end
+
         # rubocop:enable Rails/Pluck
 
         # Log request errors triggered from async api calls from the browser
@@ -102,8 +104,8 @@ def log_request_errors(page)
 
         def error_report_for(logs)
           logs
-              .map(&:message)
-              .map { |message| message.gsub('\\n', "\n") }
+            .map(&:message)
+            .map { |message| message.gsub('\\n', "\n") }
         end
 
         def logs(page)
diff --git a/qa/spec/support/page_error_checker_spec.rb b/qa/spec/support/page_error_checker_spec.rb
index d6a1ccb43070a7f4a214faab5d8f9aa52f5a7f31..316dcab4db42b1788e7f9d6dfdf7557a78488e95 100644
--- a/qa/spec/support/page_error_checker_spec.rb
+++ b/qa/spec/support/page_error_checker_spec.rb
@@ -97,15 +97,15 @@ def self.parse(str)
       end
 
       let(:error_500_str) do
-        "<html><body><div><p><code>"\
-        "req678"\
-        "</code></p></div></body></html>"
+        "<html><body><div><p><code>" \
+          "req678" \
+          "</code></p></div></body></html>"
       end
 
       let(:error_500_no_code_str) do
-        "<html><body>"\
-        "The code you are looking for is not here"\
-        "</body></html>"
+        "<html><body>" \
+          "The code you are looking for is not here" \
+          "</body></html>"
       end
 
       it 'returns code is present' do
@@ -154,15 +154,15 @@ def self.select
       end
 
       let(:expected_single_error) do
-        "There was 1 SEVERE level error:\n\n"\
-        "bar foo"
+        "There was 1 SEVERE level error:\n\n" \
+          "bar foo"
       end
 
       let(:expected_multiple_error) do
-        "There were 3 SEVERE level errors:\n\n"\
-        "bar foo\n"\
-        "foo\n"\
-        "bar"
+        "There were 3 SEVERE level errors:\n\n" \
+          "bar foo\n" \
+          "foo\n" \
+          "bar"
       end
 
       it 'returns status code report on no severe errors found' do
@@ -182,7 +182,7 @@ def self.select
 
       it 'returns report on multiple severe errors found' do
         allow(QA::Support::PageErrorChecker).to receive(:error_report_for)
-                                                    .with([SingleLog, SingleLog, SingleLog]).and_return("bar foo\nfoo\nbar")
+                                                  .with([SingleLog, SingleLog, SingleLog]).and_return("bar foo\nfoo\nbar")
         allow(QA::Support::PageErrorChecker).to receive(:logs).with(page).and_return(ThreeErrorsMockedLogs)
         allow(page).to receive(:current_path).and_return(test_path)
 
@@ -203,12 +203,15 @@ def self.parse(str)
     end
 
     let(:error_404_str) do
-      "<div class=\"error\">"\
-        "<img src=\"404.png\" alt=\"404\" />"\
-      "</div>"
+      "<div class=\"error-container\">" \
+        "<img src=\".\/-\/error-illustrations\/error-404-lg.svg\" alt=\"404 error\" \/>" \
+        "<h1>404: Page not found</h1>" \
+        "<p>Make sure the address is correct and the page has not moved.</p>" \
+        "<p>Please contact your GitLab administrator if you think this is a mistake.</p>" \
+        "</div>"
     end
 
-    let(:error_500_str) { "<head><title>Something went wrong (500)</title></head><body><h1>   500   </h1></body>" }
+    let(:error_500_str) { '<head><title>Something went wrong (500)</title></head><body><img src="./-/error-illustrations/error-500-lg.svg" alt="500 error"><h1>500: We\'re sorry, something went wrong on our end</h1></body>' }
     let(:project_name_500_str) { "<head><title>Project</title></head><h1 class=\"home-panel-title gl-mt-3 gl-mb-2\" itemprop=\"name\">qa-test-2022-05-25-12-12-16-d4500c2e79c37289</h1>" }
     let(:backtrace_str) { "<head><title>Error::Backtrace</title></head><body><section class=\"backtrace\">foo</section></body>" }
     let(:no_error_str) { "<head><title>Nothing wrong here</title></head><body>no 404 or 500 or backtrace</body>" }
@@ -272,7 +275,7 @@ def self.message
 
     it 'returns error report array of log messages' do
       expect(QA::Support::PageErrorChecker.error_report_for([LogOne, LogTwo]))
-          .to eq(%W[foo\n bar])
+        .to eq(%W[foo\n bar])
     end
   end
 
diff --git a/spec/features/commits/user_view_commits_spec.rb b/spec/features/commits/user_view_commits_spec.rb
index 41437580ae1c3143674690ab47cb080718189036..a9bbea580d4a90e3da74047a5dd79ebe7f7bfde0 100644
--- a/spec/features/commits/user_view_commits_spec.rb
+++ b/spec/features/commits/user_view_commits_spec.rb
@@ -52,7 +52,7 @@
 
           it 'renders not found' do
             expect(page).to have_title('Not Found')
-            expect(page).to have_content('Page Not Found')
+            expect(page).to have_content('Page not found')
           end
         end
       end
diff --git a/spec/features/error_tracking/user_sees_error_details_spec.rb b/spec/features/error_tracking/user_sees_error_details_spec.rb
index 8fcf5df41c71a569611a0b8f3ee072e5c9491ffc..90b5fbdd513e1846f7327dd2ca90b1a1eb6db01c 100644
--- a/spec/features/error_tracking/user_sees_error_details_spec.rb
+++ b/spec/features/error_tracking/user_sees_error_details_spec.rb
@@ -27,7 +27,7 @@
     end
 
     it 'renders not found' do
-      expect(page).to have_content('Page Not Found')
+      expect(page).to have_content('Page not found')
     end
   end
 end
diff --git a/spec/features/error_tracking/user_sees_error_index_spec.rb b/spec/features/error_tracking/user_sees_error_index_spec.rb
index e86e89ad058d33e31c2739c699257f93cf50e051..f98839c6e2bc2bb04d7ab87d74861905e76cdf9d 100644
--- a/spec/features/error_tracking/user_sees_error_index_spec.rb
+++ b/spec/features/error_tracking/user_sees_error_index_spec.rb
@@ -65,7 +65,7 @@
     end
 
     it 'renders not found' do
-      expect(page).to have_content('Page Not Found')
+      expect(page).to have_content('Page not found')
     end
   end
 end
diff --git a/spec/features/explore/catalog/catalog_details_spec.rb b/spec/features/explore/catalog/catalog_details_spec.rb
index 30e718967c0dae6271c02c70be5c69eb3b5459df..ad3ebc584a19b620859dfbf9585e216d8271fb2c 100644
--- a/spec/features/explore/catalog/catalog_details_spec.rb
+++ b/spec/features/explore/catalog/catalog_details_spec.rb
@@ -29,7 +29,7 @@
 
       it 'returns a 404' do
         expect(page).to have_title('Not Found')
-        expect(page).to have_content('Page Not Found')
+        expect(page).to have_content('Page not found')
       end
     end
   end
diff --git a/spec/features/groups/import_export/export_file_spec.rb b/spec/features/groups/import_export/export_file_spec.rb
index 885cfa0f595adc45ea323bd0fc9eef7bcf37bf80..c671fae751110e8f04462214fac658403471b5d5 100644
--- a/spec/features/groups/import_export/export_file_spec.rb
+++ b/spec/features/groups/import_export/export_file_spec.rb
@@ -36,7 +36,7 @@
     it 'does not let the user export the group' do
       visit edit_group_path(group)
 
-      expect(page).to have_content('Page Not Found')
+      expect(page).to have_content('Page not found')
       expect(page).not_to have_content('Export group')
     end
   end
diff --git a/spec/features/groups/integrations/group_integrations_spec.rb b/spec/features/groups/integrations/group_integrations_spec.rb
index de6403210bb00115b6964046b526ce5189a28541..0067ae389ecefa9d3c88307ae763aadf12eea438 100644
--- a/spec/features/groups/integrations/group_integrations_spec.rb
+++ b/spec/features/groups/integrations/group_integrations_spec.rb
@@ -25,7 +25,7 @@ def navigate_to_integration(integration)
     it 'returns a 404 for the prometheus edit page' do
       visit edit_group_settings_integration_path(group, :prometheus)
 
-      expect(page).to have_content "Page Not Found"
+      expect(page).to have_content "Page not found"
     end
   end
 end
diff --git a/spec/features/groups/settings/packages_and_registries_spec.rb b/spec/features/groups/settings/packages_and_registries_spec.rb
index b500f9342f284f98908a620607a6322d3f129f65..e941bc9708f1ba9c9872dbc8d434945d1210df05 100644
--- a/spec/features/groups/settings/packages_and_registries_spec.rb
+++ b/spec/features/groups/settings/packages_and_registries_spec.rb
@@ -32,7 +32,7 @@
     it 'renders 404 when navigating to page' do
       visit_settings_page
 
-      expect(page).to have_content('Not Found')
+      expect(page).to have_content('Page not found')
     end
   end
 
diff --git a/spec/features/groups_spec.rb b/spec/features/groups_spec.rb
index 3163f47ff7dfc7bc59b2bab56f0a5bf100ecd64c..1e964b9ee0cc5fa7842dc52b2d1bba528db39dd0 100644
--- a/spec/features/groups_spec.rb
+++ b/spec/features/groups_spec.rb
@@ -338,7 +338,7 @@
     visit new_group_path(parent_id: group.id, anchor: 'create-group-pane')
 
     expect(page).to have_title('Not Found')
-    expect(page).to have_content('Page Not Found')
+    expect(page).to have_content('Page not found')
   end
 
   describe 'group edit', :js do
diff --git a/spec/features/merge_request/user_creates_merge_request_spec.rb b/spec/features/merge_request/user_creates_merge_request_spec.rb
index 5283f15ee7f88363127622ff0c19031c91c1f20a..c279397fc2690aaad183f2850e6950f66a66a627 100644
--- a/spec/features/merge_request/user_creates_merge_request_spec.rb
+++ b/spec/features/merge_request/user_creates_merge_request_spec.rb
@@ -30,7 +30,7 @@
       visit project_new_merge_request_path(project)
 
       expect(page).to have_title('Not Found')
-      expect(page).to have_content('Page Not Found')
+      expect(page).to have_content('Page not found')
     end
   end
 
diff --git a/spec/features/milestones/user_creates_milestone_spec.rb b/spec/features/milestones/user_creates_milestone_spec.rb
index 281a7114f66d8dd3bd16289b10e220dfaa73f6a2..0ad6868069d458b34653b33e2f2eb9342f27c34b 100644
--- a/spec/features/milestones/user_creates_milestone_spec.rb
+++ b/spec/features/milestones/user_creates_milestone_spec.rb
@@ -29,7 +29,7 @@
   shared_examples 'renders not found' do
     specify do
       expect(page).to have_title('Not Found')
-      expect(page).to have_content('Page Not Found')
+      expect(page).to have_content('Page not found')
     end
   end
 
diff --git a/spec/features/projects/branches/user_creates_branch_spec.rb b/spec/features/projects/branches/user_creates_branch_spec.rb
index 859798b932dae9296846d662f3ecb93feda6bb3f..01912e88a2af6d562395f5d34909ad9fa09c98fb 100644
--- a/spec/features/projects/branches/user_creates_branch_spec.rb
+++ b/spec/features/projects/branches/user_creates_branch_spec.rb
@@ -21,7 +21,7 @@
   shared_examples 'renders not found page' do
     specify do
       expect(page).to have_title('Not Found')
-      expect(page).to have_content('Page Not Found')
+      expect(page).to have_content('Page not found')
     end
   end
 
diff --git a/spec/features/projects/integrations/project_integrations_spec.rb b/spec/features/projects/integrations/project_integrations_spec.rb
index 94dbc40172612426f1209eb3a070d2d85b45552a..3f51378c90128712229ad2fc2d3793197b0fe5a7 100644
--- a/spec/features/projects/integrations/project_integrations_spec.rb
+++ b/spec/features/projects/integrations/project_integrations_spec.rb
@@ -21,7 +21,7 @@ def navigate_to_integration(integration)
     it 'returns a 404 for the prometheus edit page' do
       visit edit_project_settings_integration_path(project, :prometheus)
 
-      expect(page).to have_content "Page Not Found"
+      expect(page).to have_content "Page not found"
     end
   end
 end
diff --git a/spec/features/projects/jobs/permissions_spec.rb b/spec/features/projects/jobs/permissions_spec.rb
index d1fb20386623030f4bbe0de52b415d20c5b37ea6..43407b012a1a49602dc6d003538020d10a26b0ee 100644
--- a/spec/features/projects/jobs/permissions_spec.rb
+++ b/spec/features/projects/jobs/permissions_spec.rb
@@ -158,16 +158,16 @@
     where(:public_builds, :user_project_role, :debug_mode, :expected_status_code, :expected_msg) do
       true         | 'developer'      | true  | 200 | ''
       true         | 'guest'          | true  | 403 | 'You must have developer or higher permissions'
-      true         | nil              | true  | 404 | 'Page Not Found Make sure the address is correct'
+      true         | nil              | true  | 404 | 'Page not found Make sure the address is correct'
       true         | 'developer'      | false | 200 | ''
       true         | 'guest'          | false | 200 | ''
-      true         | nil              | false | 404 | 'Page Not Found Make sure the address is correct'
+      true         | nil              | false | 404 | 'Page not found Make sure the address is correct'
       false        | 'developer'      | true  | 200 | ''
       false        | 'guest'          | true  | 403 | 'You must have developer or higher permissions'
-      false        | nil              | true  | 404 | 'Page Not Found Make sure the address is correct'
+      false        | nil              | true  | 404 | 'Page not found Make sure the address is correct'
       false        | 'developer'      | false | 200 | ''
       false        | 'guest'          | false | 403 | 'The current user is not authorized to access the job log'
-      false        | nil              | false | 404 | 'Page Not Found Make sure the address is correct'
+      false        | nil              | false | 404 | 'Page not found Make sure the address is correct'
     end
 
     with_them do
diff --git a/spec/features/projects/new_project_spec.rb b/spec/features/projects/new_project_spec.rb
index 351ca9baf5293cd31c0973737860b465221bfba5..2bfd9435c8913fdcbf29c3677f8e00b6ac8a7c87 100644
--- a/spec/features/projects/new_project_spec.rb
+++ b/spec/features/projects/new_project_spec.rb
@@ -243,7 +243,7 @@
           it 'is not allowed' do
             visit new_project_path(namespace_id: group.id)
 
-            expect(page).to have_content('Not Found')
+            expect(page).to have_content('Page not found')
           end
         end
       end
@@ -270,7 +270,7 @@
           it 'is not allowed' do
             visit new_project_path(namespace_id: group.id, project: { visibility_level: Gitlab::VisibilityLevel::PRIVATE })
 
-            expect(page).to have_content('Not Found')
+            expect(page).to have_content('Page not found')
           end
         end
       end
diff --git a/spec/features/projects/pipeline_schedules_spec.rb b/spec/features/projects/pipeline_schedules_spec.rb
index 7a882aa77965b53c422216f419e98a45da51445f..f714b7fa773c23ccd880963168c2eb8c123f1c01 100644
--- a/spec/features/projects/pipeline_schedules_spec.rb
+++ b/spec/features/projects/pipeline_schedules_spec.rb
@@ -325,7 +325,7 @@
             end
 
             it 'shows Not Found page' do
-              expect(page).to have_content('Page Not Found')
+              expect(page).to have_content('Page not found')
             end
           end
         end
diff --git a/spec/features/projects/pipelines/pipeline_spec.rb b/spec/features/projects/pipelines/pipeline_spec.rb
index 2f3fbeb83df59458af6e19c5b749ab96cf487ce7..a4558dcae08d68bb94c1a60a9c4c6df8c54a484e 100644
--- a/spec/features/projects/pipelines/pipeline_spec.rb
+++ b/spec/features/projects/pipelines/pipeline_spec.rb
@@ -514,7 +514,7 @@
         let(:role) { :guest }
 
         it 'does not show the pipeline details page' do
-          expect(page).to have_content('Not Found')
+          expect(page).to have_content('Page not found')
         end
       end
     end
diff --git a/spec/features/projects/settings/merge_requests_settings_spec.rb b/spec/features/projects/settings/merge_requests_settings_spec.rb
index 1227767683156b1b9c438a6fe02a20f5b0ed9352..8ab894db126f2e3d3d19f956ea366e74852b804d 100644
--- a/spec/features/projects/settings/merge_requests_settings_spec.rb
+++ b/spec/features/projects/settings/merge_requests_settings_spec.rb
@@ -65,7 +65,7 @@
 
         visit project_settings_merge_requests_path(project)
 
-        expect(page).to have_content('Not Found')
+        expect(page).to have_content('Page not found')
       end
     end
 
@@ -112,7 +112,7 @@
     end
 
     it 'does not show the Merge Requests settings' do
-      expect(page).to have_content('Not Found')
+      expect(page).to have_content('Page not found')
 
       visit edit_project_path(project)
 
diff --git a/spec/features/projects/settings/user_manages_merge_requests_settings_spec.rb b/spec/features/projects/settings/user_manages_merge_requests_settings_spec.rb
index 3ace5f3f9520a0d80b2c9d53def4cd8028a70a4d..4c98aace2d8fe03e66c0b39815fb549dd50c4018 100644
--- a/spec/features/projects/settings/user_manages_merge_requests_settings_spec.rb
+++ b/spec/features/projects/settings/user_manages_merge_requests_settings_spec.rb
@@ -59,7 +59,7 @@
 
         visit project_settings_merge_requests_path(project)
 
-        expect(page).to have_content "Page Not Found"
+        expect(page).to have_content "Page not found"
       end
     end
 
diff --git a/spec/features/registrations/registration_spec.rb b/spec/features/registrations/registration_spec.rb
index b408ef268f260635df09fed130708052991cd711..88cbf8145bb498724c74c7231c738f79f658a514 100644
--- a/spec/features/registrations/registration_spec.rb
+++ b/spec/features/registrations/registration_spec.rb
@@ -38,7 +38,7 @@
       visit polymorphic_path(group)
 
       expect(page).to have_content(group.name)
-      expect(page).not_to have_content('Page Not Found')
+      expect(page).not_to have_content('Page not found')
     end
   end
 end
diff --git a/spec/features/user_settings/password_spec.rb b/spec/features/user_settings/password_spec.rb
index 60d03b2c2c9390d507f093613293aee4939c2525..0dd1127e2a098a0d81f405c58ac87d07ab1543ec 100644
--- a/spec/features/user_settings/password_spec.rb
+++ b/spec/features/user_settings/password_spec.rb
@@ -90,7 +90,7 @@ def fill_passwords(password, confirmation)
         visit edit_user_settings_password_path
 
         expect(page).to have_title('Not Found')
-        expect(page).to have_content('Page Not Found')
+        expect(page).to have_content('Page not found')
       end
     end
   end
diff --git a/spec/support/shared_examples/features/access_tokens_shared_examples.rb b/spec/support/shared_examples/features/access_tokens_shared_examples.rb
index c1a2fc52fe83a61501cc06fcf2ce41869d6e7570..a494b7721bab673486b5e7202edc0c060ab0aabd 100644
--- a/spec/support/shared_examples/features/access_tokens_shared_examples.rb
+++ b/spec/support/shared_examples/features/access_tokens_shared_examples.rb
@@ -4,7 +4,7 @@
   it 'does not show access token page' do
     visit resource_settings_access_tokens_path
 
-    expect(page).to have_content("Page Not Found")
+    expect(page).to have_content("Page not found")
   end
 end
 
diff --git a/spec/support/shared_examples/features/wiki/user_views_wiki_empty_shared_examples.rb b/spec/support/shared_examples/features/wiki/user_views_wiki_empty_shared_examples.rb
index b069fb934dffb8eec5d8353a7ae56da8cb482f0d..b90d77f68e6f5adbbe714d21daf6b558f9a2ff74 100644
--- a/spec/support/shared_examples/features/wiki/user_views_wiki_empty_shared_examples.rb
+++ b/spec/support/shared_examples/features/wiki/user_views_wiki_empty_shared_examples.rb
@@ -12,7 +12,7 @@
       visit wiki_path(wiki)
 
       if @current_user
-        expect(page).to have_content('Page Not Found')
+        expect(page).to have_content('Page not found')
       else
         expect(page).to have_content('You need to sign in')
       end
diff --git a/spec/views/errors/omniauth_error.html.haml_spec.rb b/spec/views/errors/omniauth_error.html.haml_spec.rb
index 487dd9f066f65817c54d02f824efd7b0e49a7dc6..927e87eef8cbf6742e4693ab8841d780347dda8c 100644
--- a/spec/views/errors/omniauth_error.html.haml_spec.rb
+++ b/spec/views/errors/omniauth_error.html.haml_spec.rb
@@ -8,14 +8,12 @@
 
   before do
     assign(:provider, provider)
-    assign(:error, error)
   end
 
   it 'renders template' do
     render
 
     expect(rendered).to have_content(provider)
-    expect(rendered).to have_content(error)
     expect(rendered).to have_link('Sign in')
     expect(rendered).to have_content(
       _('If you are unable to sign in or recover your password, contact a GitLab administrator.')
diff --git a/workhorse/internal/badgateway/embed/gdk-lg.svg b/workhorse/internal/badgateway/embed/gdk-lg.svg
new file mode 100644
index 0000000000000000000000000000000000000000..160e11acb9a9effb1aa30b9463d1b5bbfcd27edb
--- /dev/null
+++ b/workhorse/internal/badgateway/embed/gdk-lg.svg
@@ -0,0 +1 @@
+<svg width="288" height="288" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M287 181c0 22.41-15.768 42.89-41.676 57.823C219.443 253.741 183.621 263 144 263c-39.621 0-75.443-9.259-101.324-24.177C16.768 223.89 1 203.41 1 181v-18h286v18Z" fill="#AEA5D6" stroke="#171321" stroke-width="2"/><ellipse cx="144" cy="161" rx="144" ry="83" fill="#E7E4F2"/><path d="M53.632 225.442C21.51 210.314 1 187.289 1 161.5 1 115.937 65.023 79 144 79s143 36.937 143 82.5S222.977 244 144 244c-29.826 0-57.52-5.268-80.438-14.28" stroke="#171321" stroke-width="2"/><path d="M182.769 102.686V62.014l14.985-8.99v35.962l25.688-50.519 17.981-10.275-25.688 51.375 25.688 29.113-17.553 10.275-18.838-21.834-2.84 5.513-4.438 8.615v23.119l-14.985 8.991v-40.673Z" fill="#fff"/><path d="m241.423 28.192-17.981 10.275-14.985-8.563-11.518 22.654.815.465-14.985 8.991-14.984-8.562 14.984-8.991 14.17 8.097 11.518-22.654 17.982-10.275 14.984 8.563Z" fill="#C5F4EC"/><path d="M182.769 102.686V62.014l-14.984-8.563v81.345l14.984 8.563v-40.673ZM223.87 118.955l-18.838-21.834-2.84 5.513 6.693 7.759 14.985 8.562Z" fill="#10B1B1"/><path d="m197.754 88.986 25.688-50.52-14.985-8.562-11.518 22.653.815.466v35.963Z" fill="#6FDAC9"/><path d="M182.769 62.014v81.345m0-81.345 14.985-8.99m-14.985 8.99-14.984-8.562m14.984 89.907 14.985-8.991v-23.119l4.438-8.615m-19.423 40.725-14.984-8.563m56.085-15.841-18.838-21.834-2.84 5.513m21.678 16.321 17.553-10.275-25.688-29.113L235.269 40.5m-11.399 78.455-14.985-8.562-6.693-7.759m39.231-74.442-17.981 10.275m17.981-10.275-14.984-8.563-17.982 10.275m32.966-1.712L240.5 30m-17.058 8.467-25.688 50.52V53.023m25.688-14.557-14.985-8.563m-10.703 23.12-.815-.466m-29.154.894v81.344m0-81.344 14.984-8.991 14.17 8.097m-29.154 82.238.713-.428m14.271-8.563v-23.119m25.688-72.782-11.518 22.654" stroke="#171321" stroke-width="2"/><path d="M124.466 178.893c23.785 0 50.597-41.441 50.597-71.799 0-15.815-5.031-23.74-10.811-27.32-3.027-1.874-6.259-2.557-9.082-2.557-21.19 0-50.597 38.069-50.597 74.691 0 11.616 3.692 20.031 9.946 24.145 2.827 1.86 6.178 2.84 9.947 2.84Z" fill="#FFC2A8"/><path fill-rule="evenodd" clip-rule="evenodd" d="M155.17 77.217c2.824 0 6.056.683 9.082 2.557l-15.136-9.638c-3.026-1.873-6.258-2.556-9.082-2.556-14.617 0-33.145 18.116-43.232 41.376l15.119 9.675c10.083-23.278 28.624-41.414 43.249-41.414Zm-31.216 90.593c-1.981 0-3.821-.33-5.499-.969 2.479 1.892 5.505 2.897 8.959 2.897 10.94 0 22.66-10.699 30.862-24.51l-5.048.639c-8.085 12.547-19.021 21.943-29.274 21.943Z" fill="#FF9D73"/><path d="M157.757 86.827c4.274 3.252 7.792 9.746 7.792 21.774 0 11.908-4.987 25.884-12.321 37.266l5.048-.639c6.456-10.872 10.733-23.672 10.733-34.699 0-15.173-5.598-21.54-11.252-23.702ZM114.519 176.054c-6.254-4.114-9.946-12.53-9.946-24.146 0-11.345 2.822-22.829 7.348-33.277l-15.12-9.675c-4.535 10.458-7.364 21.956-7.364 33.315 0 11.736 3.77 20.206 10.142 24.272l14.94 9.511Z" fill="#FF7B42"/><path d="M152.655 85.891c-17.42 0-41.595 31.393-41.595 61.594 0 9.082 2.729 15.793 7.395 19.355 1.677.64 3.518.97 5.499.97 10.691 0 22.125-10.216 30.295-23.569 6.772-11.069 11.3-24.293 11.3-35.64 0-12.028-3.518-18.522-7.793-21.775a14.317 14.317 0 0 0-5.101-.935Z" fill="#fff"/><path d="M164.251 79.774c-3.026-1.874-6.258-2.557-9.081-2.557-14.63 0-33.176 18.146-43.257 41.433m52.338-38.876c5.781 3.58 10.812 11.505 10.812 27.32 0 30.358-26.812 71.799-50.597 71.799-3.77 0-7.12-.98-9.947-2.84m49.732-96.279-15.135-9.638c-3.027-1.873-6.259-2.556-9.082-2.556-14.543 0-32.957 17.932-43.078 41.021m17.563 67.452c-6.254-4.113-9.946-12.529-9.946-24.145 0-11.338 2.819-22.815 7.34-33.258m2.606 57.403-14.94-9.51c-6.373-4.066-10.142-12.536-10.142-24.272 0-11.488 2.893-23.117 7.519-33.67m60.8-21.774c4.275 3.252 7.793 9.746 7.793 21.774 0 11.347-4.528 24.571-11.3 35.64m3.507-57.414a14.319 14.319 0 0 0-5.101-.936c-17.42 0-41.595 31.393-41.595 61.594 0 9.083 2.729 15.793 7.395 19.356m39.301-80.014c5.655 2.162 11.252 8.528 11.252 23.702 0 11.32-4.506 24.508-11.252 35.561m-39.301 20.751c1.677.639 3.518.969 5.499.969 10.691 0 22.125-10.216 30.295-23.569m-35.794 22.6c2.479 1.892 5.505 2.897 8.958 2.897 10.712 0 22.171-10.257 30.343-23.648m-45.843-27.44-14.957-10.049m60.8 37.489-3.507-1.849" stroke="#171321" stroke-width="2"/><path d="M136.825 106.082v20.886l-10.894 26.443c-.533 1.42-.443 3.427.648 4.13l.035.022a.413.413 0 0 1-.035-.022l-3.166-1.982c-.991-.761-1.059-2.683-.543-4.057l10.894-26.442v-20.887c0-1.471.194-2.796.55-3.93l3.13 1.698c-.4 1.179-.619 2.577-.619 4.141Z" fill="#2B2838"/><path d="M140.905 98.08c.317-.095.664-.067.984.073l-3.03-1.894a1.432 1.432 0 0 0-1.015-.088c-1.615.484-2.86 1.94-3.53 4.072l3.13 1.698c.684-2.017 1.9-3.393 3.461-3.861Z" fill="#45424D"/><path d="M143.061 100.243v25.162l-11.641 28.538c-.622 1.601-1.983 3.854-3.92 3.854-.347 0-.641-.085-.886-.234-1.124-.683-1.222-2.717-.683-4.152l10.894-26.443v-20.886c0-4.238 1.606-7.261 4.08-8.002.318-.095.664-.067.984.073.638.28 1.172 1.005 1.172 2.09Z" fill="#74717A"/><path d="M126.614 157.563c-1.124-.683-1.222-2.717-.683-4.152l10.894-26.443v-20.886c0-1.6.229-3.028.647-4.224m-10.858 55.705c.245.149.539.234.886.234 1.937 0 3.298-2.253 3.92-3.854l11.641-28.538v-25.162c0-1.084-.534-1.81-1.172-2.09m-15.275 59.41-3.201-2.004c-.991-.761-1.059-2.683-.543-4.057l10.894-26.442v-20.887c0-1.471.194-2.796.55-3.93m7.575-2.09a1.425 1.425 0 0 0-.984-.073c-1.54.461-2.743 1.806-3.433 3.778m4.417-3.705-3.03-1.894a1.432 1.432 0 0 0-1.015-.088c-1.615.484-2.86 1.94-3.53 4.072m3.158 1.615-3.158-1.615" stroke="#171321" stroke-width="2"/><path d="M101.425 159.2c0 24.403-22.691 54.8-46.238 54.8-2.106 0-4.718-.46-7.278-1.924-5.247-3.001-10.276-10.219-10.276-26.332 0-8 1.196-15.282 3.23-21.835 8.852-28.52 33.58-43.241 44.721-43.241 3.188 0 5.861.833 8.05 2.141 5.336 3.188 7.791 9.2 7.791 12.843l-9.862 5.331-5.979 3.232c0-2.141-2.569-5.994-6.85-5.994-.879 0-1.798.119-2.745.35-6.069 1.481-13.26 7.566-18.048 16.42a45.63 45.63 0 0 0-.614 1.176c-2.853 5.677-4.709 12.402-4.709 19.73 0 2.974 0 7.159.911 10.943 1.188 4.93 3.922 9.179 10.22 9.179 13.272 0 23.12-17.125 23.12-28.257l-14.985 8.991v-12.844l29.541-17.125V159.2Z" fill="#fff"/><path d="M71.884 163.909v12.844l14.984-8.991c0 3.249-.838 7.008-2.356 10.703-3.735.735-12.975 1.899-20.051.674a34.74 34.74 0 0 0 3.318-4.801l-10.451-6.148v-12.023c.106-.212.214-.422.323-.63l14.233 8.372Z" fill="#10B1B1"/><path d="M78.734 138.221c4.281 0 6.85 3.853 6.85 5.994l5.98-3.232 9.861-5.331c0-3.643-2.455-9.655-7.791-12.843-2.19-1.308-4.862-2.141-8.05-2.141-9.914 0-30.588 11.657-41.259 34.323a68.796 68.796 0 0 0-3.462 8.918c-2.034 6.553-3.23 13.835-3.23 21.835 0 15.78 4.823 23.029 9.951 26.14l.325.192a13.365 13.365 0 0 1-.325-.192l-13.848-8.159c-5.383-2.866-10.659-10.038-10.659-26.544 0-8.144 1.24-15.545 3.341-22.19a68.765 68.765 0 0 1 3.185-8.207l14.722 8.207c10.671-22.666 31.345-34.323 41.259-34.323 3.188 0 5.86.833 8.05 2.141 5.336 3.188 7.791 9.2 7.791 12.843l-9.862 5.331-5.979 3.232-4.494-2.644-5.1-3c.946-.231 1.865-.35 2.744-.35Z" fill="#10B1B1"/><path d="m71.884 163.909 29.541-17.125-9.862-5.801-5.979 3.232-4.494-2.644-23.149 13.42c-.098.18-.195.362-.29.545l14.233 8.373ZM53.53 186.84c1.187 4.93 3.922 9.179 10.22 9.179 9.398 0 17.079-8.588 20.762-17.554-3.735.735-12.975 1.898-20.051.674-3.004 3.632-6.73 6.497-10.931 7.701ZM93.456 122.704l.178.104-.178-.104c-2.155-1.247-4.77-2.036-7.872-2.036-9.913 0-30.588 11.657-41.258 34.323l-14.723-8.207c10.62-22.9 31.46-34.679 41.425-34.679 3.229 0 5.93.855 8.134 2.192l14.294 8.407Z" fill="#C5F4EC"/><path d="M101.425 146.784v12.415c0 24.404-22.691 54.801-46.238 54.801-2.106 0-4.718-.46-7.278-1.925m53.516-65.291-29.541 17.125m29.541-17.125-9.862-5.801m-19.68 22.926v12.844m0-12.844-14.232-8.373m14.233 21.217 14.984-8.991c0 3.249-.838 7.008-2.356 10.703m-12.628-1.712-4.105-2.415m17.805-30.123c0-2.141-2.569-5.994-6.85-5.994-.879 0-1.798.119-2.745.35m9.595 5.644 5.98-3.232m-5.98 3.232-4.494-2.644m-13.311 32.767-10.451-6.148v-12.023m10.45 18.171a34.8 34.8 0 0 1-3.317 4.801m-16.552 32.936c-5.248-3.001-10.276-10.218-10.276-26.332 0-7.999 1.196-15.281 3.23-21.834a68.74 68.74 0 0 1 3.462-8.918m3.584 57.084-14.173-8.35c-5.383-2.866-10.659-10.038-10.659-26.544 0-8.144 1.24-15.545 3.341-22.19a68.765 68.765 0 0 1 3.185-8.207m46.386-8.213 5.1 3m-5.1-3c-6.069 1.481-13.261 7.565-18.048 16.42m-4.412 31.849c1.188 4.93 3.922 9.179 10.22 9.179 9.399 0 17.08-8.588 20.763-17.554m-30.983 8.375c-.91-3.784-.91-7.969-.91-10.944 0-7.327 1.855-14.052 4.709-19.729m-3.799 30.673c4.201-1.204 7.928-4.069 10.932-7.701m29.173-56.331c5.336 3.189 7.791 9.201 7.791 12.844l-9.862 5.331m2.07-18.175c-2.188-1.307-4.861-2.14-8.049-2.14-9.914 0-30.588 11.657-41.259 34.323m49.309-32.183-14.472-8.511c-2.204-1.337-4.906-2.192-8.134-2.192-9.966 0-30.804 11.779-41.425 34.679m51.487-5.213-23.15 13.42m0 0c-.097.18-.194.362-.29.545m0 0c-.108.209-.216.419-.322.631m-13.003-1.176-14.722-8.207m54.909 31.681c-3.735.735-12.975 1.898-20.051.674" stroke="#171321" stroke-width="2"/></svg>
diff --git a/workhorse/internal/badgateway/roundtripper.go b/workhorse/internal/badgateway/roundtripper.go
index 0473b12989fb32551a7010e68a68493daf397212..3f0cef7702ed8626e1b7188c34813fb515342a57 100644
--- a/workhorse/internal/badgateway/roundtripper.go
+++ b/workhorse/internal/badgateway/roundtripper.go
@@ -16,7 +16,7 @@ import (
 	"gitlab.com/gitlab-org/gitlab/workhorse/internal/log"
 )
 
-//go:embed embed/gitlab-logo-500.png
+//go:embed embed/gdk-lg.svg
 var gitlabLogo []byte
 
 // Error is a custom error for pretty Sentry 'issues'
@@ -110,18 +110,61 @@ var developmentErrorTemplate = template.Must(template.New("error502").Parse(`
 	<title>Waiting for GitLab to boot</title>
 
 	<style>
+		body {
+			color: #333238;
+			text-align: center;
+			font-family: "Nunito Sans", -apple-system, ".SFNSText-Regular", "San Francisco", BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", Helvetica, Arial, sans-serif;
+		}
+
+		h1 {
+			font-size: 1.75rem;
+			line-height: 2.25rem;
+			margin: 1rem 0;
+		}
+
+		p {
+			margin-bottom: .5rem;
+		}
+
+		img {
+			display: block;
+			margin: 0 auto;
+		}
+
+		.error-container {
+			max-width: 65ch;
+			margin: auto;
+			padding: 1rem 0;
+		}
+
+		.footer {
+			margin: 1rem 0 0 0;
+			padding: 1rem 0 0 0;
+			border-top: 1px solid #dcdcde;
+			color: #737278;
+			font-size: 0.75rem;
+		}
+
+		.footer p {
+			margin: 0;
+		}
+
 		@media (prefers-color-scheme: dark) {
 			body {
-				background-color: #222;
-				color: #eee;
+				background-color: #18171d;
+				color: #ececef;
+			}
+
+			.footer {
+				border-top-color: #3a383f;
 			}
 		}
 	</style>
 </head>
 
 <body>
-	<div style="text-align: center; font-family: Source Sans Pro, sans-serif">
- 		<img style="padding: 60px 0" src="data:image/png;base64,{{.Base64EncodedGitLabLogo}}" alt="GitLab" />
+	<div class="error-container">
+ 		<img src="data:image/svg+xml;base64,{{.Base64EncodedGitLabLogo}}" alt="GitLab" />
 
 		<h1>Waiting for GitLab to boot</h1>
 
@@ -134,7 +177,7 @@ var developmentErrorTemplate = template.Must(template.New("error502").Parse(`
 
 		<br/>
 
-		<footer>
+		<footer class="footer">
 			<p>Generated by gitlab-workhorse running in development mode at {{.Time}}.</p>
 		</footer>
 	</div>