# BLACK HEART DANCE HOUSE — Project Context

## About
Landing page for "BLACK HEART DANCE HOUSE" — a pole dance school in Minsk, Belarus.
Instagram: @blackheartdancehouse
Content language: Russian

## Tech Stack
- **Next.js 15** (App Router, TypeScript)
- **Tailwind CSS v4** (light + dark mode, class-based toggle)
- **lucide-react** for icons
- **Fonts**: Inter (body) + Oswald (headings) via `next/font`
- **Hosting**: Vercel (planned)

## Code Style
- Function declarations for components (not arrow functions)
- PascalCase for component files, camelCase for utils
- `@/` path alias for imports
- Semantic CSS classes via `@apply`: `surface-base`, `surface-muted`, `heading-text`, `body-text`, `nav-link`, `card`, `contact-item`, `contact-icon`, `theme-border`
- Only Header + ThemeToggle are client components (minimal JS shipped)
- `next/image` with `unoptimized` for PNGs that need transparency preserved

## Project Structure
```
src/
├── app/
│   ├── layout.tsx          # Root layout, fonts, metadata
│   ├── page.tsx            # Landing: Hero → Team → About → Classes → Contact
│   ├── globals.css         # Tailwind imports
│   ├── styles/
│   │   ├── theme.css       # Theme variables, semantic classes
│   │   └── animations.css  # Keyframes, scroll reveal, modal animations
│   ├── icon.png            # Favicon
│   └── apple-icon.png
├── components/
│   ├── layout/
│   │   ├── Header.tsx      # Sticky nav, mobile menu, theme toggle ("use client")
│   │   └── Footer.tsx
│   ├── sections/
│   │   ├── Hero.tsx
│   │   ├── Team.tsx        # "use client" — clickable cards + modal
│   │   ├── About.tsx
│   │   ├── Classes.tsx
│   │   └── Contact.tsx
│   └── ui/
│       ├── Button.tsx
│       ├── SectionHeading.tsx
│       ├── SocialLinks.tsx
│       ├── ThemeToggle.tsx
│       ├── Reveal.tsx      # Intersection Observer scroll reveal
│       └── TeamMemberModal.tsx  # "use client" — member popup
├── data/
│   └── content.ts          # ALL Russian text, structured for future CMS
├── lib/
│   └── constants.ts        # BRAND constants, NAV_LINKS
└── types/
    ├── index.ts
    ├── content.ts          # SiteContent, TeamMember, ClassItem, ContactInfo
    └── navigation.ts
```

## Brand / Styling
- **Accent**: rose/red (`#e11d48`)
- **Dark mode**: bg `#0a0a0a`, surface `#171717`
- **Light mode**: bg `#fafafa`, surface `#ffffff`
- Logo: transparent PNG, uses `dark:invert` + `unoptimized`

## Content Data
- All text lives in `src/data/content.ts` (type-safe, one file to edit)
- 13 team members with photos, Instagram links, and personal descriptions
- 6 class types (Exotic Pole Dance, Pole Dance, Body Plastic, etc.)
- 2 addresses in Minsk, Yandex Maps embed with markers
- Contact: phone, Instagram

## AST Index
- **Always use the AST index** at `memory/ast-index.md` when searching for components, props, hooks, types, or styles
- Contains: component tree, all exports, props, hooks, client/server status, CSS classes, keyframes
- Covers all 31 TS/TSX files + 4 CSS files
- Update the index when adding/removing/renaming files or exports

## Git
- Remote: Gitea at `git.dolgolyov-family.by`
- User: diana.dolgolyova
- Branch: main
