Files
project-afterlife/apps/web/src/app/[locale]/not-found.tsx
consultoria-as 449c02eadc
Some checks failed
Deploy Multi-VM / Deploy VM Web (push) Has been cancelled
Deploy Multi-VM / Deploy VM Auth (push) Has been cancelled
Deploy Multi-VM / Deploy Game Servers (docker-compose.fusionfall.yml, VM_FUSIONFALL_HOST, VM_FUSIONFALL_SSH_KEY, VM_FUSIONFALL_USER, fusionfall) (push) Has been cancelled
Deploy Multi-VM / Deploy Game Servers (docker-compose.maple2.yml, VM_MAPLE2_HOST, VM_MAPLE2_SSH_KEY, VM_MAPLE2_USER, maple2) (push) Has been cancelled
Deploy Multi-VM / Deploy Game Servers (docker-compose.minecraft.yml, VM_MINECRAFT_HOST, VM_MINECRAFT_SSH_KEY, VM_MINECRAFT_USER, minecraft) (push) Has been cancelled
Deploy Multi-VM / Deploy Game Servers (docker-compose.retro.yml, VM_RETRO_HOST, VM_RETRO_SSH_KEY, VM_RETRO_USER, retro) (push) Has been cancelled
feat: phase 3 redesign, game images, auth system, vm guides, service isolation
- Redesign all internal pages to warm/gold aesthetic (catalog, game detail,
  documentary, about, donate, community, guides, contact, server-status,
  login, profile, admin, not-found)
- Add real cover images for all 4 games via Strapi CMS with getImageUrl helper
- Integrate NextAuth v5 with Authentik OIDC authentication
- Add new public pages: community, guides, contact, server-status
- Add new protected pages: login, profile, admin dashboard
- Remove legacy AFC/MercadoPago system entirely
- Add Docker Compose split files for service isolation (main, auth, fusionfall, nier)
- Add OpenFusion VM deployment configs (config.vm.ini, systemd service, README-VM)
- Add NieR Reincarnation server guide and desktop client guide
- Add architecture docs for multi-VM deployment
- Add healthcheck, SSE, contact, newsletter, admin API routes
- Add reusable UI components, skeleton loaders, activity feed, bookmark system
- Update deployment and game server documentation
2026-04-28 05:15:38 +00:00

38 lines
1.2 KiB
TypeScript

"use client";
import Link from "next/link";
import { useLocale } from "next-intl";
import { motion } from "framer-motion";
export default function NotFound() {
const locale = useLocale();
const isEs = locale === "es";
return (
<div className="min-h-[70vh] flex items-center justify-center px-4">
<motion.div
initial={{ opacity: 0, y: 20 }}
animate={{ opacity: 1, y: 0 }}
transition={{ duration: 0.6 }}
className="text-center max-w-lg"
>
<h1 className="text-8xl font-bold text-[#1a1a24] mb-4">404</h1>
<h2 className="text-2xl font-semibold text-[#f5f5f7] mb-4">
{isEs ? "Página no encontrada" : "Page Not Found"}
</h2>
<p className="text-[#a0a0a8] mb-8 leading-relaxed">
{isEs
? "La página que buscas no existe o ha sido movida."
: "The page you are looking for does not exist or has been moved."}
</p>
<Link
href={`/${locale}`}
className="inline-block px-8 py-3 bg-[#d4a574] text-[#0a0a0f] font-semibold rounded-xl hover:bg-[#e8c4a0] transition-colors"
>
{isEs ? "Volver al inicio" : "Go back home"}
</Link>
</motion.div>
</div>
);
}