What problem does it solve? Styling Jac client components requires knowing several distinct mechanisms—Tailwind v4 Vite plugin setup, conditional class logic, the cn() merge utility, semantic color tokens, and auto-scoped .style.css annex files—and using the wrong one for a project type (plain vs jac-shadcn) causes specificity conflicts and broken styles. ## Core Features & Use Cases - Tailwind v4 Setup: Three-step installation for non-shadcn projects using @tailwindcss/vite, jac.toml plugin registration, and a single @import "tailwindcss" entry CSS with no tailwind.config.js. - Scoped CSS Annex Files: Pair a Card.style.css file with Card.jac by base name to get compiler-hashed, auto-scoped classes with :global() opt-out—no imports needed. - cn() Utility: A Jac implementation combining clsx and tailwind-merge for conditional and merged Tailwind classes, with guidance on when to import it from lib/utils.jac in shadcn projects. - Use Case: When building a tabbed interface in a Jac app, use Python-style ternaries and string concatenation to switch border and text colors based on the active state, while semantic tokens like text-muted-foreground keep the component dark-mode compatible. ## Quick Start Ask the AI to add Tailwind v4 styling to your Jac project and write a component with conditional classes using the cn() utility.