- Homepage images: <Picture> from src/assets (AVIF/WebP/JPG srcset, width/
height, first image eager + fetchpriority high, rest lazy), Swedish alt
texts. (The duplicate EXIF-laden copies in public/3d-scroll were deleted
in 30e385e; README links now point at src/assets.)
- Portfolio: originals are no longer referenced (no .src access), so Astro
does not copy them to dist/. Small/Medium/Large downloads and the lightbox
srcset are EXIF-free JPGs from getImage. Old -s/-m files are no longer
imported.
- Alt texts: Swedish fallback from date (EXIF or filename), never camera
model or "undefined"; portfolio-meta.ts overrides per image.
- Gallery items are <a href> to the large image (lightbox on click);
download options are buttons; no empty H3, no H4 for the password box.
- Stats beacon unchanged; item keys computed at build time (same format).
- Script moved inside the layout so it is no longer rendered after </html>.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01WvE3C43Uwtv2vtnoFBLDw7
- Built with Astro 5.16.7 and Tailwind CSS 4.1.18
- Features advanced animations (waves, 3D scroll, smoke effects)
- Fully responsive design with mobile-first approach
- SEO optimized with semantic HTML
- Interactive elements and smooth transitions
- Professional portfolio showcase