# CLAUDE.md — project guide for Claude Code

## What this is
Single-page academic profile website for Prof. Yogendra Pratap Singh
(Director, G B Pant Social Science Institute, Prayagraj; Chief Editor,
Shodh Sanchayan / shodh.net). Target domain: drypsingh.in.
It is a Node.js rebuild of a site originally made in the Airo builder
(https://kgaydxb1lk.c40.airoapp.ai). Visual parity with that original is
the goal unless the user asks for changes.

The owner of this repo is new to software. Explain changes in plain
language and prefer simple solutions over new dependencies.

## Stack
- Node.js 18+, Express 4, EJS 3. No build step, no frontend framework.
- Plain CSS (`public/css/styles.css`), vanilla JS (`public/js/main.js`).
- Fonts from Google Fonts: Lora (headings), Source Sans 3 (body),
  Noto Sans Devanagari (Hindi fallback).

## Commands
- `npm install`
- `npm run fetch-images` — download photos from the Airo site
- `npm start` / `npm run dev` (auto-restart)
- Site: http://localhost:3000

## Architecture
- `server.js` reads `data/site.json` on every request and renders
  `views/index.ejs`. Unknown routes redirect to `/`.
- ALL content lives in `data/site.json`. Keep content out of the template;
  if a new section is added, add its data to site.json and loop over it
  in index.ejs.
- Section order: header → hero (#home) → about (#bio) → research
  (#research) → quote banner → publications (#publications) → lectures
  timeline (#lectures) → social activities (#activities) → gallery
  (#gallery) → contact (#contact) → footer → cookie banner.
- Section backgrounds alternate between `.bg-cream` (#f5ecd6) and
  `.bg-light` (#f4efe4). Accent colour is terracotta #c3663a.
- Content is bilingual (Hindi + English). Always save files as UTF-8 and
  check Devanagari renders correctly after edits.

## Known content issues (copied as-is from the original — fix only if asked)
- Research card "Literary Research" has placeholder text.
- Experience stated as "two and half decades" (hero) vs "27 years" (about).
- Lecture date "िनाँक" should be "दिनांक"; 17 August talk has no year;
  talks are not in date order.
- Title says "Dr. Yp Singh"; publication 1 author "Singh, Y., et al.".
- "institutions.." double full stop; "कि स्थिति" should be "की स्थिति".
- Google Scholar / ResearchGate / ORCID / LinkedIn / X links point to the
  sites' home pages, not real profiles.

## Conventions
- Mobile breakpoints: 1023px (hamburger menu), 767px (single column),
  639px (gallery single column).
- Keep `prefers-reduced-motion` support and visible focus styles.
- Don't commit node_modules.
