Files
msos/404.html
T
popovskikandClaude Opus 4.8 9ce7450aa1 health: fix broken pages, add image dimensions, a11y & SEO wins
Site-wide health pass (excludes in-progress blog work). Verified with a
local server + headless browser: Timeline, homepage and gallery pages load
with zero console errors and no layout distortion.

Render bugs
- Timeline page (en/mk/si): fix ../../../ paths that overshot the site root,
  so the main stylesheet and hero image load again.
- Meet Student Slovenia 2023 (en/mk/si): remove a <figure> referencing
  event3-photo-11.png, an image that was never uploaded (broken image).

Performance
- Add intrinsic width/height to 1039 raster <img> tags to prevent layout
  shift (CLS); 450 SVGs correctly skipped. Add a global
  `img { max-width:100%; height:auto }` safety net so aspect ratio is
  preserved and images never overflow.
- Preload the homepage hero (LCP) image on en/mk/si.
- Load Font Awesome non-blocking (media=print/onload swap) with a <noscript>
  fallback, on 225 pages.

Accessibility
- Add aria-label to 57 unlabeled newsletter email inputs.
- Add an sr-only <h1> to the three "My Route" pages (had no h1).
- Add an .sr-only utility class.

SEO
- Add meta descriptions to legal/msos-hub/support pages (en/mk/si).

Note: MK/SI meta descriptions are machine-drafted and should be proofread
by a native speaker before considering them final.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-08-04 00:31:27 +02:00

75 lines
3.9 KiB
HTML

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Page not found - MSOS</title>
<meta name="robots" content="noindex">
<!-- Google tag (gtag.js) with Consent Mode v2 (default: denied) -->
<script async src="https://www.googletagmanager.com/gtag/js?id=G-WVYV807VSS"></script>
<script>
window.dataLayer = window.dataLayer || [];
function gtag(){dataLayer.push(arguments);}
gtag('consent', 'default', {
ad_storage: 'denied', ad_user_data: 'denied', ad_personalization: 'denied',
analytics_storage: 'denied', wait_for_update: 500
});
gtag('js', new Date());
gtag('config', 'G-WVYV807VSS');
</script>
<!-- Root-absolute paths: a 404 is served under the requested URL, so
relative paths would resolve against the wrong directory. -->
<link rel="preconnect" href="https://fonts.googleapis.com">
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
<link href="https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&display=swap" rel="stylesheet">
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.5.1/css/all.min.css" crossorigin="anonymous" referrerpolicy="no-referrer">
<link rel="stylesheet" href="/css/main.css">
<link rel="icon" type="image/png" href="/favicon-96x96.png" sizes="96x96">
<link rel="icon" type="image/svg+xml" href="/favicon.svg">
<link rel="shortcut icon" href="/favicon.ico">
<link rel="apple-touch-icon" sizes="180x180" href="/apple-touch-icon.png">
<link rel="manifest" href="/site.webmanifest">
<style>
.nf-wrap { min-height: 82vh; display: flex; align-items: center; justify-content: center; padding: 80px 24px; }
.nf-card { max-width: 560px; text-align: center; display: flex; flex-direction: column; align-items: center; gap: 8px; }
.nf-card img { width: 240px; max-width: 70%; height: auto; margin-bottom: 24px; }
.nf-code { font-size: 14px; font-weight: 700; letter-spacing: 0.08em; text-transform: uppercase; color: #2D738C; margin: 0; }
.nf-card h1 { font-size: 40px; line-height: 1.15; color: #101828; margin: 8px 0 0; }
.nf-card p.nf-lead { font-size: 18px; line-height: 28px; color: #667085; margin: 12px 0 28px; }
.nf-actions { display: flex; flex-wrap: wrap; gap: 12px; justify-content: center; }
.nf-links { margin-top: 28px; font-size: 15px; color: #667085; }
.nf-links a { color: #2D738C; font-weight: 500; text-decoration: none; margin: 0 8px; }
.nf-links a:hover { text-decoration: underline; }
@media (max-width: 600px){ .nf-card h1 { font-size: 30px; } }
</style>
</head>
<body>
<main class="nf-wrap">
<div class="nf-card">
<a href="/en/"><img width="604" height="130" loading="lazy" decoding="async" src="/images/1-logo.png" alt="Macedonian Student Organisation in Slovenia"></a>
<p class="nf-code">404 error</p>
<h1>Page not found</h1>
<p class="nf-lead">The page you're looking for doesn't exist or may have moved. Let's get you back on track.</p>
<div class="nf-actions">
<a href="/en/" class="btn btn-primary">Go to homepage</a>
<a href="/en/student-welcome-guide/" class="btn btn-secondary">Student welcome guide</a>
</div>
<p class="nf-links">
<a href="/en/projects/">Events &amp; projects</a>·
<a href="/en/blog/">Blog</a>·
<a href="/en/news/">News</a>·
<a href="/en/faq/">FAQs</a>
</p>
<p class="nf-links" style="margin-top:12px;">
<a href="/mk/">Македонски</a>·
<a href="/si/">Slovenščina</a>
</p>
</div>
</main>
</body>
</html>