--on-accent was only set by deferred theme-core.js module, causing
all fab--primary and btn--primary elements to have wrong text/icon
color on first paint. Now computed from HSL values in the synchronous
theme-init-script partial, matching theme-core.js logic exactly.
Remove hardcoded fallback from fab--label CSS.
--on-accent is set by deferred JS module, so var(--on-accent) is
undefined on first paint. Added fallback hsl(0 0% 98%) to fab--label
so text is white before JS defines the token.
- fab fab--primary fab--label (same base as contact FAB)
- fab-primary__ico--pdf with cv.svg mask
- fab__label for text
- fab__spinner for loading state
- fab--label overrides fixed width from fab--primary
- Use btn btn--primary btn--flat btn--resume (existing pattern)
- btn__icon with cv.svg mask already defined in design system
- Remove all custom fab--primary overrides
- Keep only btn__spinner and loading state CSS
- Use fab-primary__ico with mask-image (cv.svg) instead of inline SVG
- Follow same pattern as contact FAB
- Add fab-primary__spinner for loading state
- Remove custom fab--pdf styles
- New partial fab-stack-resume.html with PDF download button
- Button shows spinner during PDF generation
- Photo converted to dataURL before rendering
- html2pdf.js loaded from CDN on first click only
- CSS for fab--pdf button and loading spinner