Paste a tailwind.config.js and get the v4 CSS it becomes: an @theme block with the right variable namespaces, and a note for every part that needs a decision.
The result appears hereEverything in theme and theme.extend that has a v4 namespace: colors, spacing, fonts, sizes, radii, shadows, screens, z-index, durations and easings. Nested keys flatten into the variable name, and DEFAULT drops out of it.
They cannot be evaluated in a browser, so lines carrying code are skipped and reported. Plugins become one @plugin line each in v4, and a required palette has to be written out as values.
The animation shorthand maps to --animate-*, but the keyframes themselves stay CSS at-rules. Copy them into the same file, outside the @theme block.