### Changed
- Footer layout restructured: navigation links on left, brand section on right
- Footer logo now uses `logo_big.png` image instead of text
- Footer section titles and links now use monospace font matching header navigation
- Unified link hover effect across header and footer (pink underline animation)
- Removed map/location icon from footer, kept text only
### Added
- MVA number (929532937) with click-to-copy functionality in footer
- Shared `.link-nav` class in global.css for consistent navigation styling
### Removed
- Dead navigation links from footer (kept only Blog)
### Added
- Squarespace to Astro migration script (`scripts/migrate-squarespace.js`)
- Fetches blog posts from techlab.no JSON API
- Converts HTML content to Markdown using Turndown
- Downloads all images (featured + inline) to local storage
- Generates MDX files with proper frontmatter
- Handles Norwegian characters (æ, ø, å)
- CLI options: `--dry-run`, `--limit=N`, `--skip-images`, `--verbose`
- NPM scripts for migration:
- `npm run migrate` - Run full migration
- `npm run migrate:dry` - Preview without writing files
- Migration dependencies: cheerio, node-fetch, turndown, slugify
- Sample migrated blog post with images
### Technical
- Migration script uses Squarespace JSON endpoint for reliable data extraction
- Images organized in `public/images/posts/[slug]/` directories
- Posts output to `src/content/posts/` as MDX files
- Proper date parsing from Squarespace timestamps
### Added
- Comprehensive CSS design system with extensive variables
- Color palette: Dark grey background (#1a1a1a) with white text
- Primary accent: Cyan (#06b6d4)
- Secondary accent: Pink (#ec4899)
- Complete spacing scale (0-32/128px)
- Typography scale with font sizes, weights, line heights
- Border radius, shadows, and z-index systems
- Transition durations and easing functions
- Montserrat font integration for headlines (Bold Italic 700)
- Changelog system and versioning
- Dark theme throughout entire site
- Enhanced button system (primary, secondary, outline, ghost variants)
- Improved accessibility with focus states
### Changed
- Updated color scheme from light blue theme to dark theme
- Headlines now use Montserrat Bold Italic, uppercase styling
- Site base URL changed from `/techlab` to root `/`
- Site domain set to `techlab.no`
- Card components updated with dark theme styling
- Footer styling updated for dark theme
- Header navigation updated for dark theme
### Technical
- All CSS now uses comprehensive variable system
- Consistent use of design tokens across components
- Improved code organization and documentation
### Added
- Initial Astro project setup with TypeScript (strict mode)
- TinaCMS integration for content management
- MDX and Sitemap support
- Content collections schema for:
- Pages (static content)
- Posts (blog articles)
- Hardware (equipment catalog)
- Courses (educational programs)
- Team (member profiles)
- Services (service offerings)
- TinaCMS configuration with Norwegian labels
- Project structure setup:
- `/src/content/` - Content collections
- `/src/components/` - Reusable components
- `/src/layouts/` - Page layouts
- `/src/styles/` - Global styles
- `/public/` - Static assets
- `/.tina/` - TinaCMS configuration
- Base layouts:
- `BaseLayout.astro` - HTML foundation
- `PageLayout.astro` - Standard page wrapper
- Core components:
- `Header.astro` - Navigation with mobile menu
- `Footer.astro` - Site footer with links
- Homepage (`index.astro`) with sections:
- Hero section
- About section
- Featured hardware
- Featured courses
- Recent blog posts
- Environment configuration (`.env.example`)
- CSS foundation:
- `reset.css` - CSS reset
- `variables.css` - Design tokens
- `global.css` - Base styles
- README.md with comprehensive project documentation
### Technical
- Astro v5.16.8
- TypeScript strict mode
- TinaCMS v3.3.0
- Node.js 20.x+ required
- Package management with npm