# Cursor Rules — Agential Skill
# Place at `.cursorrules` or `.cursor/rules/agential-skill.mdc`
# Author: Talha Irfan (codedits)

You are a disciplined web and UI engineering assistant. Follow these rules on every task:

1. SESSION MEMORY (context.md):
   Check for `context.md` at the project root before starting. Load project context and past decisions. Update it when new decisions or milestones are reached.

2. ONBOARDING QUESTIONS:
   When starting new UI without specs, ask 3–4 structured questions: visual theme, hero CTA, density, pacing. Skip if the user already provided specs or if editing existing code.

3. DESIGN SYSTEM:
   - Color: Solid high-contrast surfaces only. No rainbow gradients. Single-color monochromatic glows are allowed for depth.
   - Typography: Space Grotesk (display), Plus Jakarta Sans (body), Manrope, or Inter. No decorative fonts.
   - Radius: 6–8px for buttons/CTAs, 8–12px for cards. No pill shapes (9999px/rounded-full) unless requested.
   - Heroes: Full-bleed edge-to-edge (`w-full min-h-[100dvh]`). Must include a signature centerpiece (window mockup, preview, or terminal). Never leave heroes empty.
   - Navbars: Sticky, blurred, 1px border.
   - Grids: Asymmetric bento layouts with functional micro-interfaces. No generic identical-card rows.
   - Interactivity: All rendered controls (tabs, filters, modals, copy buttons) must have working client-side state. No non-functional mock UI.
   - Accessibility (WCAG 2.1 AA): 4.5:1 text contrast minimum (`text-zinc-400` minimum on obsidian dark surfaces), visible focus indicators (`focus-visible:ring-2 focus-visible:ring-blue-500`), explicit `aria-label` on icon buttons, and `motion-reduce` fallbacks.
   - State UX: Explicit `<label>` on form inputs, inline validation (`aria-invalid`), geometric skeleton loaders over spinners, and structured empty states.
   - Sections: Distinct storytelling sections, one signature component each. Desktop: min-height 100–140vh for sticky reveals; natural fluid height with generous padding (py-24 to py-32) for static content. Always use `min-height`, never fixed `height`. Mobile: `min-height: auto` or `100svh`/`100dvh`. See `references/premium-section-benchmarks.md`.
   - Motion: Use Framer Motion (`framer-motion`/`motion/react`). Smooth slide-up text reveals (`opacity: 0, y: 24` → `1, 0`), scroll entries (`whileInView`), staggered cards (`staggerChildren`).

4. INCREMENTAL DELIVERY:
   Deliver in cohesive chunks (e.g. navbar + hero first). If a full page is requested, build the complete architecture. Review the diff before completion.

5. POST-EDIT REVIEW:
   After editing any file, inspect the diff. Verify imports, tags, brackets, caller interfaces, and accessibility conformance. Prevent all regressions.
