# Portfolio (2025) Personal portfolio site: project case studies, lightweight 3D and shader demos, bilingual copy (English and German). Built with **Vue 3**, **TypeScript**, and **Vite**. Motion via **GSAP** and **Lenis**, 3D via **three.js**, audio via **Howler**. GLSL is compiled through **vite-plugin-glsl**. ## Scripts | Command | Description | | -------------- | ------------------------------------ | | `npm run dev` | Dev server on port **3000** (`strictPort`) | | `npm run build` | `vue-tsc` then production bundle to `dist/` | | `npm run preview` | Serve the production build locally | | `npm run typecheck` | Typecheck only (`vue-tsc -b`) | ## Content - **Projects**: `src/content/projects/{en,de}/.ts` — copy, tags, media, links. Slugs must align with `projectIds` in `src/content/projects/index.ts`. - **Previews / listing**: `src/content/projects/previews/`. - **Tags**: variants and labels live in `src/components/tagVariants.ts` (used by `Tag.vue` and content types). ## Stack (high level) - Vue 3 (`