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>
- Fixed 3 SI event posts that were missing their </article> and </main> tags
- Replaced all punctuation em-dashes and spaced en-dashes (435 across 64 files)
with commas; normalized a SI date range to a hyphen to match EN/MK
- Verified the new Gallery + in-post gallery content is fully translated in
EN/MK/SI (headings, titles, links, nav labels) with no English leftovers
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
- Each album is now a bordered card with a resting shadow and clear separation
- Blue brand tint over the cover photos; fades on hover so images brighten
- Whole card lifts with a stronger shadow on hover (album-level, not per image)
- Clicking anywhere on a card opens the event story page (removed the lightbox)
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
- Each album is now a compact collage card (1 large + 2 small photos) with a
"+N" overlay on the last tile; multiple cards per row (responsive grid)
- Title + photo count + "Read the story" link under each card
- All album photos remain in the DOM (hidden) so the lightbox still browses
the full set; clicking any tile opens the lightbox at that photo
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
- New multilingual Gallery page (en/mk/si) with 9 event albums and a
keyboard-accessible lightbox (prev/next scoped per album)
- Reuses existing event photos; links each album to its event post
- New css/pages/_gallery.css + setupGallery() lightbox in main.js
- "Gallery" link added to the "What We Do" nav (desktop + mobile) site-wide
- Gallery URLs added to sitemap.xml with hreflang
- Landing "Every Student Has a Story": removed backdrop blur on the video
thumbnail, kept the bluish gradient tint
Note: images/original/ (458 MB of raw source photos, gitignored + unused by
the site) moved out of the working tree to reclaim disk.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>