diff --git a/401.html b/401.html new file mode 100644 index 0000000..df17ea8 --- /dev/null +++ b/401.html @@ -0,0 +1,45 @@ + + + + + + 401 - Unauthorized + + + +
+

GD fedl

+ +
+
+
+
+
+

401 Status

+

Unauthorized

+

This page needs a valid sign-in or a session with the right permissions before it can be opened.

+

If you expected access, log in again or ask a moderator to verify your account.

+ +
+ +
+
+
+ + diff --git a/403.html b/403.html new file mode 100644 index 0000000..96892c5 --- /dev/null +++ b/403.html @@ -0,0 +1,45 @@ + + + + + + 403 - Forbidden + + + +
+

GD fedl

+ +
+
+
+
+
+

403 Status

+

Forbidden

+

The page exists, but your current account or network is not allowed to open it.

+

This usually means the request was understood, but access is intentionally blocked.

+ +
+ +
+
+
+ + diff --git a/404.html b/404.html new file mode 100644 index 0000000..447fc94 --- /dev/null +++ b/404.html @@ -0,0 +1,46 @@ + + + + + + 404 - Not Found + + + +
+

GD fedl

+ +
+
+
+
+
+

404 Status

+

Page Not Found

+

The page you were looking for is missing, renamed, or never existed on this site.

+

Try the main navigation or jump back to one of the core FEDL sections.

+ +
+ +
+
+
+ + diff --git a/429.html b/429.html new file mode 100644 index 0000000..820bc73 --- /dev/null +++ b/429.html @@ -0,0 +1,45 @@ + + + + + + 429 - Too Many Requests + + + +
+

GD fedl

+ +
+
+
+
+
+

429 Status

+

Too Many Requests

+

You reached the request limit for this resource. Give it a moment, then try again.

+

This is useful for API-heavy routes or rate-limited community data lookups.

+ +
+ +
+
+
+ + diff --git a/500.html b/500.html new file mode 100644 index 0000000..a27e7bd --- /dev/null +++ b/500.html @@ -0,0 +1,45 @@ + + + + + + 500 - Internal Server Error + + + +
+

GD fedl

+ +
+
+
+
+
+

500 Status

+

Internal Server Error

+

Something went wrong on the server while trying to complete your request.

+

The request looked valid, but the app hit an unexpected failure before it could respond normally.

+ +
+ +
+
+
+ + diff --git a/502.html b/502.html new file mode 100644 index 0000000..69fa71b --- /dev/null +++ b/502.html @@ -0,0 +1,45 @@ + + + + + + 502 - Bad Gateway + + + +
+

GD fedl

+ +
+
+
+
+
+

502 Status

+

Bad Gateway

+

A server acting as a gateway or proxy received an invalid response from somewhere upstream.

+

This is a good fit for integrations that depend on external APIs or cached edge services.

+ +
+ +
+
+
+ + diff --git a/503.html b/503.html new file mode 100644 index 0000000..6844b1c --- /dev/null +++ b/503.html @@ -0,0 +1,45 @@ + + + + + + 503 - Service Unavailable + + + +
+

GD fedl

+ +
+
+
+
+
+

503 Status

+

Service Unavailable

+

The site is temporarily unavailable because it is overloaded, restarting, or under maintenance.

+

Unlike a 500, this usually implies the outage is temporary and expected to recover.

+ +
+ +
+
+
+ + diff --git a/errors.html b/errors.html new file mode 100644 index 0000000..e6344ba --- /dev/null +++ b/errors.html @@ -0,0 +1,59 @@ + + + + + + Error Pages - GD fedl + + + +
+

Error Pages

+ +
+
+
+

Status Gallery

+

Common HTTP Error Pages

+

Preview the shared error page designs below. These pages are set up as standalone static HTML files so you can use them directly or wire them into hosting rules later.

+ + +
+
+ + diff --git a/index.html b/index.html index b060c2b..5cbf085 100644 --- a/index.html +++ b/index.html @@ -14,6 +14,7 @@ Lists Rules Roulette + Errors
@@ -28,6 +29,7 @@ Players Rules Roulette + Errors diff --git a/styles.css b/styles.css index d917215..9183bdc 100644 --- a/styles.css +++ b/styles.css @@ -71,4 +71,31 @@ table.levels-table tr:hover td{background:rgba(255,255,255,0.01)} .rule-section p{margin:0 0 12px 0;line-height:1.7;color:#dce8f5} .rules-list{margin:0;padding-left:22px} .rules-list li{margin:0 0 8px 0;line-height:1.55;color:#dce8f5} +.error-shell main{min-height:calc(100vh - 84px);display:flex;align-items:center;justify-content:center;padding:32px 20px 56px} +.error-page{width:min(100%,980px);padding:0;overflow:hidden;border:1px solid rgba(92,197,255,0.12);background: +linear-gradient(140deg,rgba(92,197,255,0.1),rgba(7,19,38,0.95) 34%), +radial-gradient(circle at top right,rgba(255,255,255,0.07),transparent 36%), +linear-gradient(180deg,rgba(8,18,32,0.98),rgba(7,19,38,0.94))} +.error-grid{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(260px,0.85fr);gap:0} +.error-copy{padding:34px 36px} +.error-code{display:inline-block;margin:0 0 16px 0;padding:8px 14px;border-radius:999px;background:rgba(92,197,255,0.1);color:var(--accent);font-size:0.84rem;font-weight:800;letter-spacing:0.16em;text-transform:uppercase} +.error-copy h2{margin:0 0 12px 0;font-size:clamp(2.2rem,5vw,4.6rem);font-weight:900;letter-spacing:0.03em} +.error-copy p{margin:0 0 14px 0;max-width:56ch;line-height:1.7;color:#dce8f5} +.error-actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:24px} +.error-actions .btn{font-weight:700;text-decoration:none} +.ghost-btn{background:transparent;color:var(--text);border:1px solid rgba(255,255,255,0.14)} +.error-side{display:flex;flex-direction:column;justify-content:space-between;gap:18px;padding:34px 30px;background:linear-gradient(180deg,rgba(255,255,255,0.05),rgba(255,255,255,0.02))} +.error-side h3{margin:0 0 10px 0;font-size:1rem;letter-spacing:0.04em;text-transform:uppercase;color:#eef6ff} +.error-list{margin:0;padding:0;list-style:none} +.error-list li + li{margin-top:10px} +.error-list a{display:block;padding:12px 14px;border-radius:10px;background:rgba(255,255,255,0.04);border:1px solid rgba(255,255,255,0.05);color:#eaf2fb;text-decoration:none} +.error-list a span{display:block;color:var(--muted);font-size:0.88rem} +.error-tip{margin:0;padding:14px 16px;border-radius:12px;background:rgba(92,197,255,0.08);border:1px solid rgba(92,197,255,0.12);color:#d9ecff} +.error-collection{width:min(100%,1100px)} +.error-collection h2{margin:0 0 12px 0;font-size:2rem} +.status-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:14px} +.status-card{display:block;padding:18px;border-radius:14px;background:linear-gradient(180deg,rgba(255,255,255,0.05),rgba(255,255,255,0.02));border:1px solid rgba(255,255,255,0.06);text-decoration:none;color:var(--text)} +.status-card strong{display:block;margin-bottom:6px;font-size:1.65rem} +.status-card span{display:block;color:var(--muted);line-height:1.5} @media(max-width:900px){.layout{flex-direction:column}.sidebar{width:100%}.video-modal iframe{height:320px}.roulette-head{flex-direction:column;align-items:flex-start}.discord-panel{flex-direction:column;align-items:flex-start;padding:22px 20px}.discord-panel h2{font-size:1.55rem}.discord-actions{width:100%;justify-content:flex-start}.rules-view header{padding:16px 18px}.rules-view header h1{font-size:1.55rem}.rules-page{padding:24px 20px}.rules-page h2{font-size:1.65rem}} +@media(max-width:900px){.error-grid{grid-template-columns:1fr}.error-copy,.error-side{padding:24px 20px}.error-copy h2{font-size:2.5rem}}