generated from nhcarrigan/template
feat: add 404 error page
Security Scan and Upload / Security & DefectDojo Upload (pull_request) Successful in 48s
Security Scan and Upload / Security & DefectDojo Upload (pull_request) Successful in 48s
β¨ This issue was created with help from Hikari~ πΈ
This commit is contained in:
+289
@@ -0,0 +1,289 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<title>404 β Lost in the Void</title>
|
||||
<meta charset="utf-8" />
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
||||
<meta
|
||||
name="description"
|
||||
content="The page you sought has slipped into the void. Even a 525-year-old vampire cannot find it."
|
||||
/>
|
||||
<script
|
||||
src="https://cdn.nhcarrigan.com/headers/index.js"
|
||||
async
|
||||
defer
|
||||
></script>
|
||||
<style>
|
||||
/* ========== LAYOUT ========== */
|
||||
|
||||
main {
|
||||
z-index: 1;
|
||||
}
|
||||
|
||||
footer {
|
||||
z-index: 2;
|
||||
}
|
||||
|
||||
/* ========== HERO ========== */
|
||||
|
||||
.error-hero {
|
||||
text-align: center;
|
||||
padding: 2em 1em 2.5em;
|
||||
border-bottom: 2px solid var(--witch-plum);
|
||||
margin-bottom: 2.5em;
|
||||
}
|
||||
|
||||
.error-code {
|
||||
font-family: 'Griffy', cursive;
|
||||
font-size: 7rem;
|
||||
line-height: 1;
|
||||
color: var(--witch-plum);
|
||||
letter-spacing: 0.1em;
|
||||
margin: 0 0 0.15em;
|
||||
text-shadow: 0 0 32px rgba(130, 80, 120, 0.35);
|
||||
}
|
||||
|
||||
.error-seal {
|
||||
font-size: 3.5rem;
|
||||
display: block;
|
||||
margin: 0 auto 0.5em;
|
||||
animation: floatSeal 4s ease-in-out infinite;
|
||||
}
|
||||
|
||||
@keyframes floatSeal {
|
||||
0%,
|
||||
100% {
|
||||
transform: translateY(0);
|
||||
}
|
||||
50% {
|
||||
transform: translateY(-10px);
|
||||
}
|
||||
}
|
||||
|
||||
.error-hero h1 {
|
||||
font-size: 2rem;
|
||||
letter-spacing: 0.06em;
|
||||
margin-bottom: 0.4em;
|
||||
}
|
||||
|
||||
.error-tagline {
|
||||
font-size: 1.05rem;
|
||||
color: var(--witch-plum);
|
||||
font-style: italic;
|
||||
max-width: 560px;
|
||||
margin: 0 auto;
|
||||
line-height: 1.6;
|
||||
}
|
||||
|
||||
/* ========== MESSAGE SCROLL ========== */
|
||||
|
||||
.void-section {
|
||||
margin: 0 auto 3em;
|
||||
max-width: 680px;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.void-section > h2 {
|
||||
border-bottom: 2px solid var(--witch-plum);
|
||||
padding-bottom: 0.4em;
|
||||
margin-bottom: 1em;
|
||||
letter-spacing: 0.05em;
|
||||
}
|
||||
|
||||
.void-scroll {
|
||||
background: rgba(212, 165, 199, 0.08);
|
||||
border: 1px solid var(--witch-plum);
|
||||
border-radius: 15px;
|
||||
padding: 1.75em 2em;
|
||||
font-size: 1rem;
|
||||
line-height: 1.75;
|
||||
text-align: left;
|
||||
}
|
||||
|
||||
.void-scroll p + p {
|
||||
margin-top: 0.75em;
|
||||
}
|
||||
|
||||
.void-scroll .accent {
|
||||
color: var(--witch-plum);
|
||||
font-weight: 600;
|
||||
}
|
||||
|
||||
/* ========== NAVIGATION CARDS ========== */
|
||||
|
||||
.nav-section {
|
||||
margin: 0 auto 3em;
|
||||
max-width: 900px;
|
||||
}
|
||||
|
||||
.nav-section > h2 {
|
||||
border-bottom: 2px solid var(--witch-plum);
|
||||
padding-bottom: 0.4em;
|
||||
margin-bottom: 1.25em;
|
||||
letter-spacing: 0.05em;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.nav-grid {
|
||||
display: grid;
|
||||
grid-template-columns: repeat(auto-fill, minmax(220px, 1fr));
|
||||
gap: 1.25em;
|
||||
}
|
||||
|
||||
.nav-card {
|
||||
background: rgba(212, 165, 199, 0.08);
|
||||
border: 1px solid var(--witch-plum);
|
||||
border-radius: 15px;
|
||||
padding: 1.25em 1.5em;
|
||||
text-align: center;
|
||||
text-decoration: none;
|
||||
color: inherit;
|
||||
transition:
|
||||
background 0.2s ease,
|
||||
transform 0.2s ease,
|
||||
box-shadow 0.2s ease;
|
||||
cursor: url('https://cdn.nhcarrigan.com/cursors/pointer.cur'),
|
||||
pointer;
|
||||
display: block;
|
||||
}
|
||||
|
||||
.nav-card:hover {
|
||||
background: rgba(212, 165, 199, 0.2);
|
||||
transform: translateY(-3px);
|
||||
box-shadow: 0 6px 20px rgba(130, 80, 120, 0.2);
|
||||
text-decoration: none;
|
||||
}
|
||||
|
||||
.nav-card-icon {
|
||||
font-size: 2rem;
|
||||
display: block;
|
||||
margin-bottom: 0.4em;
|
||||
}
|
||||
|
||||
.nav-card h3 {
|
||||
font-family: 'Griffy', cursive;
|
||||
font-size: 1.1rem;
|
||||
margin: 0 0 0.3em;
|
||||
letter-spacing: 0.04em;
|
||||
color: var(--witch-plum);
|
||||
}
|
||||
|
||||
.nav-card p {
|
||||
font-size: 0.88rem;
|
||||
margin: 0;
|
||||
line-height: 1.5;
|
||||
opacity: 0.85;
|
||||
}
|
||||
|
||||
/* ========== RESPONSIVE ========== */
|
||||
|
||||
@media (max-width: 600px) {
|
||||
.error-code {
|
||||
font-size: 5rem;
|
||||
}
|
||||
|
||||
.error-hero h1 {
|
||||
font-size: 1.5rem;
|
||||
}
|
||||
|
||||
.void-scroll {
|
||||
padding: 1.25em 1.25em;
|
||||
}
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
<main>
|
||||
<!-- HERO -->
|
||||
<section class="error-hero">
|
||||
<span class="error-seal" aria-hidden="true">π</span>
|
||||
<p class="error-code">404</p>
|
||||
<h1>Lost in the Void</h1>
|
||||
<p class="error-tagline">
|
||||
The page you sought has dissolved into shadow. Even after 525 years,
|
||||
some things cannot be found.
|
||||
</p>
|
||||
</section>
|
||||
|
||||
<!-- MESSAGE -->
|
||||
<section class="void-section">
|
||||
<h2>β¦ What Happened? β¦</h2>
|
||||
<div class="void-scroll">
|
||||
<p>
|
||||
The URL you followed leads to
|
||||
<span class="accent">nothing</span> β a whisper in the dark, a door
|
||||
with no room behind it. This could mean a few things:
|
||||
</p>
|
||||
<p>
|
||||
The page may have been <span class="accent">moved</span>, renamed,
|
||||
or quietly retired into the archives of history (much like certain
|
||||
empires I have personally watched crumble).
|
||||
</p>
|
||||
<p>
|
||||
Perhaps the link you followed was
|
||||
<span class="accent">broken</span>, or perhaps you typed the address
|
||||
yourself and made a small misstep β it happens to the best of us.
|
||||
Even vampires miscount sometimes.
|
||||
</p>
|
||||
<p>
|
||||
Either way, the void offers no answers β only the navigation below,
|
||||
which hopefully leads somewhere more
|
||||
<span class="accent">useful</span>.
|
||||
</p>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<!-- NAVIGATION -->
|
||||
<section class="nav-section">
|
||||
<h2>β¦ Find Your Way β¦</h2>
|
||||
<nav class="nav-grid" aria-label="Site navigation">
|
||||
<a href="https://nhcarrigan.com" class="nav-card">
|
||||
<span class="nav-card-icon" aria-hidden="true">π </span>
|
||||
<h3>Home</h3>
|
||||
<p>Return to the main site and start fresh.</p>
|
||||
</a>
|
||||
<a href="https://chat.nhcarrigan.com" class="nav-card">
|
||||
<span class="nav-card-icon" aria-hidden="true">π¬</span>
|
||||
<h3>Chat</h3>
|
||||
<p>Join the community and say hello.</p>
|
||||
</a>
|
||||
<a href="https://support.nhcarrigan.com" class="nav-card">
|
||||
<span class="nav-card-icon" aria-hidden="true">π</span>
|
||||
<h3>Support</h3>
|
||||
<p>Need help? Find support resources here.</p>
|
||||
</a>
|
||||
<a href="https://donate.nhcarrigan.com" class="nav-card">
|
||||
<span class="nav-card-icon" aria-hidden="true">π</span>
|
||||
<h3>Donate</h3>
|
||||
<p>Support the work if you find it valuable.</p>
|
||||
</a>
|
||||
<a href="https://socials.nhcarrigan.com" class="nav-card">
|
||||
<span class="nav-card-icon" aria-hidden="true">π</span>
|
||||
<h3>Socials</h3>
|
||||
<p>Find Naomi across the many corners of the internet.</p>
|
||||
</a>
|
||||
<a href="https://git.nhcarrigan.com" class="nav-card">
|
||||
<span class="nav-card-icon" aria-hidden="true">π»</span>
|
||||
<h3>Code</h3>
|
||||
<p>Browse the source code and open-source projects.</p>
|
||||
</a>
|
||||
<a href="https://library.nhcarrigan.com" class="nav-card">
|
||||
<span class="nav-card-icon" aria-hidden="true">π</span>
|
||||
<h3>Library</h3>
|
||||
<p>Explore the ever-growing collection of books.</p>
|
||||
</a>
|
||||
<a href="https://nocturne.nhcarrigan.com" class="nav-card">
|
||||
<span class="nav-card-icon" aria-hidden="true">π§</span>
|
||||
<h3>Nocturne</h3>
|
||||
<p>The sacred faith of Naomi's Nocturne. No garlic bread.</p>
|
||||
</a>
|
||||
<a href="https://sitemap.nhcarrigan.com" class="nav-card">
|
||||
<span class="nav-card-icon" aria-hidden="true">πΊοΈ</span>
|
||||
<h3>Sitemap</h3>
|
||||
<p>See everything β every page, every corner of the site.</p>
|
||||
</a>
|
||||
</nav>
|
||||
</section>
|
||||
</main>
|
||||
</body>
|
||||
</html>
|
||||
Reference in New Issue
Block a user