2026-02-05 19:55:17 +01:00
|
|
|
{{ define "main" }}
|
|
|
|
|
<style>
|
|
|
|
|
/* Glitch animation for 404 text */
|
|
|
|
|
.glitch {
|
|
|
|
|
position: relative;
|
|
|
|
|
font-size: clamp(8rem, 20vw, 16rem);
|
|
|
|
|
font-weight: 700;
|
|
|
|
|
line-height: 1;
|
|
|
|
|
color: #fff;
|
|
|
|
|
letter-spacing: 0.02em;
|
|
|
|
|
animation: glitch-skew 4s infinite linear alternate-reverse;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
.glitch::before,
|
|
|
|
|
.glitch::after {
|
|
|
|
|
content: attr(data-text);
|
|
|
|
|
position: absolute;
|
|
|
|
|
top: 0;
|
|
|
|
|
left: 0;
|
|
|
|
|
width: 100%;
|
|
|
|
|
height: 100%;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
.glitch::before {
|
2026-02-05 20:00:30 +01:00
|
|
|
color: #888;
|
2026-02-05 19:55:17 +01:00
|
|
|
animation: glitch-1 2s infinite linear alternate-reverse;
|
|
|
|
|
clip-path: polygon(0 0, 100% 0, 100% 35%, 0 35%);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
.glitch::after {
|
2026-02-05 20:00:30 +01:00
|
|
|
color: #555;
|
2026-02-05 19:55:17 +01:00
|
|
|
animation: glitch-2 3s infinite linear alternate-reverse;
|
|
|
|
|
clip-path: polygon(0 65%, 100% 65%, 100% 100%, 0 100%);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@keyframes glitch-1 {
|
|
|
|
|
0%, 100% { transform: translate(0); }
|
|
|
|
|
20% { transform: translate(-3px, 3px); }
|
|
|
|
|
40% { transform: translate(-3px, -3px); }
|
|
|
|
|
60% { transform: translate(3px, 3px); }
|
|
|
|
|
80% { transform: translate(3px, -3px); }
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@keyframes glitch-2 {
|
|
|
|
|
0%, 100% { transform: translate(0); }
|
|
|
|
|
20% { transform: translate(3px, -3px); }
|
|
|
|
|
40% { transform: translate(3px, 3px); }
|
|
|
|
|
60% { transform: translate(-3px, -3px); }
|
|
|
|
|
80% { transform: translate(-3px, 3px); }
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@keyframes glitch-skew {
|
|
|
|
|
0%, 100% { transform: skew(0deg); }
|
|
|
|
|
30% { transform: skew(0.5deg); }
|
|
|
|
|
60% { transform: skew(-0.5deg); }
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
</style>
|
|
|
|
|
|
|
|
|
|
<section class="min-h-screen flex flex-col items-center justify-center px-4 relative z-20">
|
|
|
|
|
<div class="text-center">
|
|
|
|
|
<h1 class="glitch font-mono" data-text="404">404</h1>
|
|
|
|
|
|
|
|
|
|
<p class="mt-8 text-xl md:text-2xl text-text-secondary font-mono tracking-widest uppercase">
|
|
|
|
|
Signal Lost
|
|
|
|
|
</p>
|
|
|
|
|
|
|
|
|
|
<div class="mt-12">
|
|
|
|
|
<a
|
|
|
|
|
href="/"
|
2026-02-05 19:58:25 +01:00
|
|
|
class="group inline-flex items-center gap-2 px-6 py-3 border border-border hover:border-accent hover:bg-accent hover:text-surface-0 transition-all duration-300"
|
2026-02-05 19:55:17 +01:00
|
|
|
>
|
2026-02-05 19:58:25 +01:00
|
|
|
Return home
|
|
|
|
|
<svg
|
|
|
|
|
class="w-4 h-4 group-hover:translate-x-1 transition-transform duration-300"
|
|
|
|
|
fill="none"
|
|
|
|
|
stroke="currentColor"
|
|
|
|
|
viewBox="0 0 24 24"
|
|
|
|
|
>
|
|
|
|
|
<path
|
|
|
|
|
stroke-linecap="round"
|
|
|
|
|
stroke-linejoin="round"
|
|
|
|
|
stroke-width="2"
|
|
|
|
|
d="M17 8l4 4m0 0l-4 4m4-4H3"
|
|
|
|
|
/>
|
|
|
|
|
</svg>
|
2026-02-05 19:55:17 +01:00
|
|
|
</a>
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
</section>
|
|
|
|
|
{{ end }}
|